diff --git a/dist/bundle.js b/dist/bundle.js new file mode 100644 index 0000000..5148be3 --- /dev/null +++ b/dist/bundle.js @@ -0,0 +1,3 @@ +/*! For license information please see bundle.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CosmWasmJS=t():e.CosmWasmJS=t()}(self,(function(){return(()=>{var __webpack_modules__={8926:e=>{function t(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(o,i){var a=e.apply(n,r);function s(e){t(a,o,i,s,c,"next",e)}function c(e){t(a,o,i,s,c,"throw",e)}s(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},3913:e=>{function t(e,t){for(var n=0;n{e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},8:e=>{function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},7757:(e,t,n)=>{e.exports=n(5666)},4453:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decompress=t.compress=void 0;const r=n(641);function o(e){const t=[],n=[],r=new Map;for(const o of e.entries)if(o.exist){const e={exist:i(o.exist,n,r)};t.push(e)}else{if(!o.nonexist)throw new Error("Unexpected batch entry during compress");{const e=o.nonexist,a={nonexist:{key:e.key,left:i(e.left,n,r),right:i(e.right,n,r)}};t.push(a)}}return{entries:t,lookupInners:n}}function i(e,t,n){if(!e)return;const o=e.path.map((e=>{const o=r.ics23.InnerOp.encode(e).finish();let i=n.get(o);return void 0===i&&(i=t.length,t.push(e),n.set(o,i)),i}));return{key:e.key,value:e.value,leaf:e.leaf,path:o}}function a(e){const t=e.lookupInners;return{entries:e.entries.map((e=>{if(e.exist)return{exist:s(e.exist,t)};if(e.nonexist){const n=e.nonexist;return{nonexist:{key:n.key,left:s(n.left,t),right:s(n.right,t)}}}throw new Error("Unexpected batch entry during compress")}))}}function s(e,t){if(!e)return;const{key:n,value:r,leaf:o,path:i}=e;return{key:n,value:r,leaf:o,path:(i||[]).map((e=>t[e]))}}t.compress=function(e){return e.batch?{compressed:o(e.batch)}:e},t.decompress=function(e){return e.compressed?{batch:a(e.compressed)}:e}},641:(e,t,n)=>{"use strict";var r,o,i,a=n(3302),s=a.Reader,c=a.Writer,d=a.util,u=a.roots.default||(a.roots.default={});u.ics23=((i={}).HashOp=(r={},(o=Object.create(r))[r[0]="NO_HASH"]=0,o[r[1]="SHA256"]=1,o[r[2]="SHA512"]=2,o[r[3]="KECCAK"]=3,o[r[4]="RIPEMD160"]=4,o[r[5]="BITCOIN"]=5,o[r[6]="SHA512_256"]=6,o),i.LengthOp=function(){var e={},t=Object.create(e);return t[e[0]="NO_PREFIX"]=0,t[e[1]="VAR_PROTO"]=1,t[e[2]="VAR_RLP"]=2,t[e[3]="FIXED32_BIG"]=3,t[e[4]="FIXED32_LITTLE"]=4,t[e[5]="FIXED64_BIG"]=5,t[e[6]="FIXED64_LITTLE"]=6,t[e[7]="REQUIRE_32_BYTES"]=7,t[e[8]="REQUIRE_64_BYTES"]=8,t}(),i.ExistenceProof=function(){function e(e){if(this.path=[],e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.key=e.bytes();break;case 2:r.value=e.bytes();break;case 3:r.leaf=u.ics23.LeafOp.decode(e,e.uint32());break;case 4:r.path&&r.path.length||(r.path=[]),r.path.push(u.ics23.InnerOp.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.key&&e.hasOwnProperty("key")&&!(e.key&&"number"==typeof e.key.length||d.isString(e.key)))return"key: buffer expected";if(null!=e.value&&e.hasOwnProperty("value")&&!(e.value&&"number"==typeof e.value.length||d.isString(e.value)))return"value: buffer expected";if(null!=e.leaf&&e.hasOwnProperty("leaf")&&(n=u.ics23.LeafOp.verify(e.leaf)))return"leaf."+n;if(null!=e.path&&e.hasOwnProperty("path")){if(!Array.isArray(e.path))return"path: array expected";for(var t=0;t>>3){case 1:r.key=e.bytes();break;case 2:r.left=u.ics23.ExistenceProof.decode(e,e.uint32());break;case 3:r.right=u.ics23.ExistenceProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.key&&e.hasOwnProperty("key")&&!(e.key&&"number"==typeof e.key.length||d.isString(e.key))?"key: buffer expected":null!=e.left&&e.hasOwnProperty("left")&&(t=u.ics23.ExistenceProof.verify(e.left))?"left."+t:null!=e.right&&e.hasOwnProperty("right")&&(t=u.ics23.ExistenceProof.verify(e.right))?"right."+t:null;var t},e.fromObject=function(e){if(e instanceof u.ics23.NonExistenceProof)return e;var t=new u.ics23.NonExistenceProof;if(null!=e.key&&("string"==typeof e.key?d.base64.decode(e.key,t.key=d.newBuffer(d.base64.length(e.key)),0):e.key.length&&(t.key=e.key)),null!=e.left){if("object"!=typeof e.left)throw TypeError(".ics23.NonExistenceProof.left: object expected");t.left=u.ics23.ExistenceProof.fromObject(e.left)}if(null!=e.right){if("object"!=typeof e.right)throw TypeError(".ics23.NonExistenceProof.right: object expected");t.right=u.ics23.ExistenceProof.fromObject(e.right)}return t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(t.bytes===String?n.key="":(n.key=[],t.bytes!==Array&&(n.key=d.newBuffer(n.key))),n.left=null,n.right=null),null!=e.key&&e.hasOwnProperty("key")&&(n.key=t.bytes===String?d.base64.encode(e.key,0,e.key.length):t.bytes===Array?Array.prototype.slice.call(e.key):e.key),null!=e.left&&e.hasOwnProperty("left")&&(n.left=u.ics23.ExistenceProof.toObject(e.left,t)),null!=e.right&&e.hasOwnProperty("right")&&(n.right=u.ics23.ExistenceProof.toObject(e.right,t)),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.CommitmentProof=function(){function e(e){if(e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.exist=u.ics23.ExistenceProof.decode(e,e.uint32());break;case 2:r.nonexist=u.ics23.NonExistenceProof.decode(e,e.uint32());break;case 3:r.batch=u.ics23.BatchProof.decode(e,e.uint32());break;case 4:r.compressed=u.ics23.CompressedBatchProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.exist&&e.hasOwnProperty("exist")&&(t.proof=1,n=u.ics23.ExistenceProof.verify(e.exist)))return"exist."+n;if(null!=e.nonexist&&e.hasOwnProperty("nonexist")){if(1===t.proof)return"proof: multiple values";if(t.proof=1,n=u.ics23.NonExistenceProof.verify(e.nonexist))return"nonexist."+n}if(null!=e.batch&&e.hasOwnProperty("batch")){if(1===t.proof)return"proof: multiple values";if(t.proof=1,n=u.ics23.BatchProof.verify(e.batch))return"batch."+n}if(null!=e.compressed&&e.hasOwnProperty("compressed")){if(1===t.proof)return"proof: multiple values";var n;if(t.proof=1,n=u.ics23.CompressedBatchProof.verify(e.compressed))return"compressed."+n}return null},e.fromObject=function(e){if(e instanceof u.ics23.CommitmentProof)return e;var t=new u.ics23.CommitmentProof;if(null!=e.exist){if("object"!=typeof e.exist)throw TypeError(".ics23.CommitmentProof.exist: object expected");t.exist=u.ics23.ExistenceProof.fromObject(e.exist)}if(null!=e.nonexist){if("object"!=typeof e.nonexist)throw TypeError(".ics23.CommitmentProof.nonexist: object expected");t.nonexist=u.ics23.NonExistenceProof.fromObject(e.nonexist)}if(null!=e.batch){if("object"!=typeof e.batch)throw TypeError(".ics23.CommitmentProof.batch: object expected");t.batch=u.ics23.BatchProof.fromObject(e.batch)}if(null!=e.compressed){if("object"!=typeof e.compressed)throw TypeError(".ics23.CommitmentProof.compressed: object expected");t.compressed=u.ics23.CompressedBatchProof.fromObject(e.compressed)}return t},e.toObject=function(e,t){t||(t={});var n={};return null!=e.exist&&e.hasOwnProperty("exist")&&(n.exist=u.ics23.ExistenceProof.toObject(e.exist,t),t.oneofs&&(n.proof="exist")),null!=e.nonexist&&e.hasOwnProperty("nonexist")&&(n.nonexist=u.ics23.NonExistenceProof.toObject(e.nonexist,t),t.oneofs&&(n.proof="nonexist")),null!=e.batch&&e.hasOwnProperty("batch")&&(n.batch=u.ics23.BatchProof.toObject(e.batch,t),t.oneofs&&(n.proof="batch")),null!=e.compressed&&e.hasOwnProperty("compressed")&&(n.compressed=u.ics23.CompressedBatchProof.toObject(e.compressed,t),t.oneofs&&(n.proof="compressed")),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.LeafOp=function(){function e(e){if(e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.hash=e.int32();break;case 2:r.prehashKey=e.int32();break;case 3:r.prehashValue=e.int32();break;case 4:r.length=e.int32();break;case 5:r.prefix=e.bytes();break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.hash&&e.hasOwnProperty("hash"))switch(e.hash){default:return"hash: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:}if(null!=e.prehashKey&&e.hasOwnProperty("prehashKey"))switch(e.prehashKey){default:return"prehashKey: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:}if(null!=e.prehashValue&&e.hasOwnProperty("prehashValue"))switch(e.prehashValue){default:return"prehashValue: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:}if(null!=e.length&&e.hasOwnProperty("length"))switch(e.length){default:return"length: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:}return null!=e.prefix&&e.hasOwnProperty("prefix")&&!(e.prefix&&"number"==typeof e.prefix.length||d.isString(e.prefix))?"prefix: buffer expected":null},e.fromObject=function(e){if(e instanceof u.ics23.LeafOp)return e;var t=new u.ics23.LeafOp;switch(e.hash){case"NO_HASH":case 0:t.hash=0;break;case"SHA256":case 1:t.hash=1;break;case"SHA512":case 2:t.hash=2;break;case"KECCAK":case 3:t.hash=3;break;case"RIPEMD160":case 4:t.hash=4;break;case"BITCOIN":case 5:t.hash=5;break;case"SHA512_256":case 6:t.hash=6}switch(e.prehashKey){case"NO_HASH":case 0:t.prehashKey=0;break;case"SHA256":case 1:t.prehashKey=1;break;case"SHA512":case 2:t.prehashKey=2;break;case"KECCAK":case 3:t.prehashKey=3;break;case"RIPEMD160":case 4:t.prehashKey=4;break;case"BITCOIN":case 5:t.prehashKey=5;break;case"SHA512_256":case 6:t.prehashKey=6}switch(e.prehashValue){case"NO_HASH":case 0:t.prehashValue=0;break;case"SHA256":case 1:t.prehashValue=1;break;case"SHA512":case 2:t.prehashValue=2;break;case"KECCAK":case 3:t.prehashValue=3;break;case"RIPEMD160":case 4:t.prehashValue=4;break;case"BITCOIN":case 5:t.prehashValue=5;break;case"SHA512_256":case 6:t.prehashValue=6}switch(e.length){case"NO_PREFIX":case 0:t.length=0;break;case"VAR_PROTO":case 1:t.length=1;break;case"VAR_RLP":case 2:t.length=2;break;case"FIXED32_BIG":case 3:t.length=3;break;case"FIXED32_LITTLE":case 4:t.length=4;break;case"FIXED64_BIG":case 5:t.length=5;break;case"FIXED64_LITTLE":case 6:t.length=6;break;case"REQUIRE_32_BYTES":case 7:t.length=7;break;case"REQUIRE_64_BYTES":case 8:t.length=8}return null!=e.prefix&&("string"==typeof e.prefix?d.base64.decode(e.prefix,t.prefix=d.newBuffer(d.base64.length(e.prefix)),0):e.prefix.length&&(t.prefix=e.prefix)),t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(n.hash=t.enums===String?"NO_HASH":0,n.prehashKey=t.enums===String?"NO_HASH":0,n.prehashValue=t.enums===String?"NO_HASH":0,n.length=t.enums===String?"NO_PREFIX":0,t.bytes===String?n.prefix="":(n.prefix=[],t.bytes!==Array&&(n.prefix=d.newBuffer(n.prefix)))),null!=e.hash&&e.hasOwnProperty("hash")&&(n.hash=t.enums===String?u.ics23.HashOp[e.hash]:e.hash),null!=e.prehashKey&&e.hasOwnProperty("prehashKey")&&(n.prehashKey=t.enums===String?u.ics23.HashOp[e.prehashKey]:e.prehashKey),null!=e.prehashValue&&e.hasOwnProperty("prehashValue")&&(n.prehashValue=t.enums===String?u.ics23.HashOp[e.prehashValue]:e.prehashValue),null!=e.length&&e.hasOwnProperty("length")&&(n.length=t.enums===String?u.ics23.LengthOp[e.length]:e.length),null!=e.prefix&&e.hasOwnProperty("prefix")&&(n.prefix=t.bytes===String?d.base64.encode(e.prefix,0,e.prefix.length):t.bytes===Array?Array.prototype.slice.call(e.prefix):e.prefix),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.InnerOp=function(){function e(e){if(e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.hash=e.int32();break;case 2:r.prefix=e.bytes();break;case 3:r.suffix=e.bytes();break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.hash&&e.hasOwnProperty("hash"))switch(e.hash){default:return"hash: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:}return null!=e.prefix&&e.hasOwnProperty("prefix")&&!(e.prefix&&"number"==typeof e.prefix.length||d.isString(e.prefix))?"prefix: buffer expected":null!=e.suffix&&e.hasOwnProperty("suffix")&&!(e.suffix&&"number"==typeof e.suffix.length||d.isString(e.suffix))?"suffix: buffer expected":null},e.fromObject=function(e){if(e instanceof u.ics23.InnerOp)return e;var t=new u.ics23.InnerOp;switch(e.hash){case"NO_HASH":case 0:t.hash=0;break;case"SHA256":case 1:t.hash=1;break;case"SHA512":case 2:t.hash=2;break;case"KECCAK":case 3:t.hash=3;break;case"RIPEMD160":case 4:t.hash=4;break;case"BITCOIN":case 5:t.hash=5;break;case"SHA512_256":case 6:t.hash=6}return null!=e.prefix&&("string"==typeof e.prefix?d.base64.decode(e.prefix,t.prefix=d.newBuffer(d.base64.length(e.prefix)),0):e.prefix.length&&(t.prefix=e.prefix)),null!=e.suffix&&("string"==typeof e.suffix?d.base64.decode(e.suffix,t.suffix=d.newBuffer(d.base64.length(e.suffix)),0):e.suffix.length&&(t.suffix=e.suffix)),t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(n.hash=t.enums===String?"NO_HASH":0,t.bytes===String?n.prefix="":(n.prefix=[],t.bytes!==Array&&(n.prefix=d.newBuffer(n.prefix))),t.bytes===String?n.suffix="":(n.suffix=[],t.bytes!==Array&&(n.suffix=d.newBuffer(n.suffix)))),null!=e.hash&&e.hasOwnProperty("hash")&&(n.hash=t.enums===String?u.ics23.HashOp[e.hash]:e.hash),null!=e.prefix&&e.hasOwnProperty("prefix")&&(n.prefix=t.bytes===String?d.base64.encode(e.prefix,0,e.prefix.length):t.bytes===Array?Array.prototype.slice.call(e.prefix):e.prefix),null!=e.suffix&&e.hasOwnProperty("suffix")&&(n.suffix=t.bytes===String?d.base64.encode(e.suffix,0,e.suffix.length):t.bytes===Array?Array.prototype.slice.call(e.suffix):e.suffix),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.ProofSpec=function(){function e(e){if(e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.leafSpec=u.ics23.LeafOp.decode(e,e.uint32());break;case 2:r.innerSpec=u.ics23.InnerSpec.decode(e,e.uint32());break;case 3:r.maxDepth=e.int32();break;case 4:r.minDepth=e.int32();break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.leafSpec&&e.hasOwnProperty("leafSpec")&&(t=u.ics23.LeafOp.verify(e.leafSpec))?"leafSpec."+t:null!=e.innerSpec&&e.hasOwnProperty("innerSpec")&&(t=u.ics23.InnerSpec.verify(e.innerSpec))?"innerSpec."+t:null!=e.maxDepth&&e.hasOwnProperty("maxDepth")&&!d.isInteger(e.maxDepth)?"maxDepth: integer expected":null!=e.minDepth&&e.hasOwnProperty("minDepth")&&!d.isInteger(e.minDepth)?"minDepth: integer expected":null;var t},e.fromObject=function(e){if(e instanceof u.ics23.ProofSpec)return e;var t=new u.ics23.ProofSpec;if(null!=e.leafSpec){if("object"!=typeof e.leafSpec)throw TypeError(".ics23.ProofSpec.leafSpec: object expected");t.leafSpec=u.ics23.LeafOp.fromObject(e.leafSpec)}if(null!=e.innerSpec){if("object"!=typeof e.innerSpec)throw TypeError(".ics23.ProofSpec.innerSpec: object expected");t.innerSpec=u.ics23.InnerSpec.fromObject(e.innerSpec)}return null!=e.maxDepth&&(t.maxDepth=0|e.maxDepth),null!=e.minDepth&&(t.minDepth=0|e.minDepth),t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(n.leafSpec=null,n.innerSpec=null,n.maxDepth=0,n.minDepth=0),null!=e.leafSpec&&e.hasOwnProperty("leafSpec")&&(n.leafSpec=u.ics23.LeafOp.toObject(e.leafSpec,t)),null!=e.innerSpec&&e.hasOwnProperty("innerSpec")&&(n.innerSpec=u.ics23.InnerSpec.toObject(e.innerSpec,t)),null!=e.maxDepth&&e.hasOwnProperty("maxDepth")&&(n.maxDepth=e.maxDepth),null!=e.minDepth&&e.hasOwnProperty("minDepth")&&(n.minDepth=e.minDepth),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.InnerSpec=function(){function e(e){if(this.childOrder=[],e)for(var t=Object.keys(e),n=0;n>>3){case 1:if(r.childOrder&&r.childOrder.length||(r.childOrder=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3==1?(r.entries&&r.entries.length||(r.entries=[]),r.entries.push(u.ics23.BatchEntry.decode(e,e.uint32()))):e.skipType(7&o)}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.entries&&e.hasOwnProperty("entries")){if(!Array.isArray(e.entries))return"entries: array expected";for(var t=0;t>>3){case 1:r.exist=u.ics23.ExistenceProof.decode(e,e.uint32());break;case 2:r.nonexist=u.ics23.NonExistenceProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.exist&&e.hasOwnProperty("exist")&&(t.proof=1,n=u.ics23.ExistenceProof.verify(e.exist)))return"exist."+n;if(null!=e.nonexist&&e.hasOwnProperty("nonexist")){if(1===t.proof)return"proof: multiple values";var n;if(t.proof=1,n=u.ics23.NonExistenceProof.verify(e.nonexist))return"nonexist."+n}return null},e.fromObject=function(e){if(e instanceof u.ics23.BatchEntry)return e;var t=new u.ics23.BatchEntry;if(null!=e.exist){if("object"!=typeof e.exist)throw TypeError(".ics23.BatchEntry.exist: object expected");t.exist=u.ics23.ExistenceProof.fromObject(e.exist)}if(null!=e.nonexist){if("object"!=typeof e.nonexist)throw TypeError(".ics23.BatchEntry.nonexist: object expected");t.nonexist=u.ics23.NonExistenceProof.fromObject(e.nonexist)}return t},e.toObject=function(e,t){t||(t={});var n={};return null!=e.exist&&e.hasOwnProperty("exist")&&(n.exist=u.ics23.ExistenceProof.toObject(e.exist,t),t.oneofs&&(n.proof="exist")),null!=e.nonexist&&e.hasOwnProperty("nonexist")&&(n.nonexist=u.ics23.NonExistenceProof.toObject(e.nonexist,t),t.oneofs&&(n.proof="nonexist")),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.CompressedBatchProof=function(){function e(e){if(this.entries=[],this.lookupInners=[],e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.entries&&r.entries.length||(r.entries=[]),r.entries.push(u.ics23.CompressedBatchEntry.decode(e,e.uint32()));break;case 2:r.lookupInners&&r.lookupInners.length||(r.lookupInners=[]),r.lookupInners.push(u.ics23.InnerOp.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.entries&&e.hasOwnProperty("entries")){if(!Array.isArray(e.entries))return"entries: array expected";for(var t=0;t>>3){case 1:r.exist=u.ics23.CompressedExistenceProof.decode(e,e.uint32());break;case 2:r.nonexist=u.ics23.CompressedNonExistenceProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.exist&&e.hasOwnProperty("exist")&&(t.proof=1,n=u.ics23.CompressedExistenceProof.verify(e.exist)))return"exist."+n;if(null!=e.nonexist&&e.hasOwnProperty("nonexist")){if(1===t.proof)return"proof: multiple values";var n;if(t.proof=1,n=u.ics23.CompressedNonExistenceProof.verify(e.nonexist))return"nonexist."+n}return null},e.fromObject=function(e){if(e instanceof u.ics23.CompressedBatchEntry)return e;var t=new u.ics23.CompressedBatchEntry;if(null!=e.exist){if("object"!=typeof e.exist)throw TypeError(".ics23.CompressedBatchEntry.exist: object expected");t.exist=u.ics23.CompressedExistenceProof.fromObject(e.exist)}if(null!=e.nonexist){if("object"!=typeof e.nonexist)throw TypeError(".ics23.CompressedBatchEntry.nonexist: object expected");t.nonexist=u.ics23.CompressedNonExistenceProof.fromObject(e.nonexist)}return t},e.toObject=function(e,t){t||(t={});var n={};return null!=e.exist&&e.hasOwnProperty("exist")&&(n.exist=u.ics23.CompressedExistenceProof.toObject(e.exist,t),t.oneofs&&(n.proof="exist")),null!=e.nonexist&&e.hasOwnProperty("nonexist")&&(n.nonexist=u.ics23.CompressedNonExistenceProof.toObject(e.nonexist,t),t.oneofs&&(n.proof="nonexist")),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.CompressedExistenceProof=function(){function e(e){if(this.path=[],e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.key=e.bytes();break;case 2:r.value=e.bytes();break;case 3:r.leaf=u.ics23.LeafOp.decode(e,e.uint32());break;case 4:if(r.path&&r.path.length||(r.path=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:r.key=e.bytes();break;case 2:r.left=u.ics23.CompressedExistenceProof.decode(e,e.uint32());break;case 3:r.right=u.ics23.CompressedExistenceProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.key&&e.hasOwnProperty("key")&&!(e.key&&"number"==typeof e.key.length||d.isString(e.key))?"key: buffer expected":null!=e.left&&e.hasOwnProperty("left")&&(t=u.ics23.CompressedExistenceProof.verify(e.left))?"left."+t:null!=e.right&&e.hasOwnProperty("right")&&(t=u.ics23.CompressedExistenceProof.verify(e.right))?"right."+t:null;var t},e.fromObject=function(e){if(e instanceof u.ics23.CompressedNonExistenceProof)return e;var t=new u.ics23.CompressedNonExistenceProof;if(null!=e.key&&("string"==typeof e.key?d.base64.decode(e.key,t.key=d.newBuffer(d.base64.length(e.key)),0):e.key.length&&(t.key=e.key)),null!=e.left){if("object"!=typeof e.left)throw TypeError(".ics23.CompressedNonExistenceProof.left: object expected");t.left=u.ics23.CompressedExistenceProof.fromObject(e.left)}if(null!=e.right){if("object"!=typeof e.right)throw TypeError(".ics23.CompressedNonExistenceProof.right: object expected");t.right=u.ics23.CompressedExistenceProof.fromObject(e.right)}return t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(t.bytes===String?n.key="":(n.key=[],t.bytes!==Array&&(n.key=d.newBuffer(n.key))),n.left=null,n.right=null),null!=e.key&&e.hasOwnProperty("key")&&(n.key=t.bytes===String?d.base64.encode(e.key,0,e.key.length):t.bytes===Array?Array.prototype.slice.call(e.key):e.key),null!=e.left&&e.hasOwnProperty("left")&&(n.left=u.ics23.CompressedExistenceProof.toObject(e.left,t)),null!=e.right&&e.hasOwnProperty("right")&&(n.right=u.ics23.CompressedExistenceProof.toObject(e.right,t)),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i),e.exports=u},1708:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.batchVerifyNonMembership=t.batchVerifyMembership=t.verifyNonMembership=t.verifyMembership=void 0;const r=n(4453),o=n(4659),i=n(3824);function a(e,t,n,a,s){const c=function(e,t){const n=e=>!!e&&(0,i.bytesEqual)(t,e.key);return n(e.exist)?e.exist:e.batch?e.batch.entries.map((e=>e.exist||null)).find(n):void 0}((0,r.decompress)(e),a);if(!c)return!1;try{return(0,o.verifyExistence)(c,t,n,a,s),!0}catch(e){return!1}}function s(e,t,n,a){const s=function(e,t){const n=e=>!!e&&(!e.left||(0,i.bytesBefore)(e.left.key,t))&&(!e.right||(0,i.bytesBefore)(t,e.right.key));return n(e.nonexist)?e.nonexist:e.batch?e.batch.entries.map((e=>e.nonexist||null)).find(n):void 0}((0,r.decompress)(e),a);if(!s)return!1;try{return(0,o.verifyNonExistence)(s,t,n,a),!0}catch(e){return!1}}t.verifyMembership=a,t.verifyNonMembership=s,t.batchVerifyMembership=function(e,t,n,o){const i=(0,r.decompress)(e);for(const[e,r]of o.entries())if(!a(i,t,n,e,r))return!1;return!0},t.batchVerifyNonMembership=function(e,t,n,o){const i=(0,r.decompress)(e);for(const e of o)if(!s(i,t,n,e))return!1;return!0}},5201:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.verifyNonExistence=t.verifyExistence=t.tendermintSpec=t.iavlSpec=t.calculateExistenceRoot=t.verifyNonMembership=t.verifyMembership=t.ics23=void 0;var r=n(641);Object.defineProperty(t,"ics23",{enumerable:!0,get:function(){return r.ics23}});var o=n(1708);Object.defineProperty(t,"verifyMembership",{enumerable:!0,get:function(){return o.verifyMembership}}),Object.defineProperty(t,"verifyNonMembership",{enumerable:!0,get:function(){return o.verifyNonMembership}});var i=n(4659);Object.defineProperty(t,"calculateExistenceRoot",{enumerable:!0,get:function(){return i.calculateExistenceRoot}}),Object.defineProperty(t,"iavlSpec",{enumerable:!0,get:function(){return i.iavlSpec}}),Object.defineProperty(t,"tendermintSpec",{enumerable:!0,get:function(){return i.tendermintSpec}}),Object.defineProperty(t,"verifyExistence",{enumerable:!0,get:function(){return i.verifyExistence}}),Object.defineProperty(t,"verifyNonExistence",{enumerable:!0,get:function(){return i.verifyNonExistence}})},9768:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.doHash=t.applyInner=t.applyLeaf=void 0;const r=n(830),o=n(3061),i=n(6262),a=n(641);function s(e,t){return null==e?t:e}t.applyLeaf=function(e,t,n){if(0===t.length)throw new Error("Missing key");if(0===n.length)throw new Error("Missing value");const r=l(c(e.prehashKey),d(e.length),t),o=l(c(e.prehashValue),d(e.length),n),i=new Uint8Array([...u(e.prefix),...r,...o]);return A(c(e.hash),i)},t.applyInner=function(e,t){if(0===t.length)throw new Error("Inner op needs child value");const n=new Uint8Array([...u(e.prefix),...t,...u(e.suffix)]);return A(c(e.hash),n)};const c=e=>s(e,a.ics23.HashOp.NO_HASH),d=e=>s(e,a.ics23.LengthOp.NO_PREFIX),u=e=>s(e,new Uint8Array([]));function l(e,t,n){const r=function(e,t){return e===a.ics23.HashOp.NO_HASH?t:A(e,t)}(e,n);return function(e,t){switch(e){case a.ics23.LengthOp.NO_PREFIX:return t;case a.ics23.LengthOp.VAR_PROTO:return new Uint8Array([...f(t.length),...t]);case a.ics23.LengthOp.REQUIRE_32_BYTES:if(32!==t.length)throw new Error(`Length is ${t.length}, not 32 bytes`);return t;case a.ics23.LengthOp.REQUIRE_64_BYTES:if(64!==t.length)throw new Error(`Length is ${t.length}, not 64 bytes`);return t;case a.ics23.LengthOp.FIXED32_LITTLE:return new Uint8Array([...h(t.length),...t])}throw new Error(`Unsupported lengthop: ${e}`)}(t,r)}function A(e,t){switch(e){case a.ics23.HashOp.SHA256:return(0,o.sha256)(t);case a.ics23.HashOp.SHA512:return(0,i.sha512)(t);case a.ics23.HashOp.RIPEMD160:return(0,r.ripemd160)(t);case a.ics23.HashOp.BITCOIN:return(0,r.ripemd160)((0,o.sha256)(t));case a.ics23.HashOp.SHA512_256:return(0,i.sha512_256)(t)}throw new Error(`Unsupported hashop: ${e}`)}function f(e){let t=[],n=e;for(;n>=128;){const e=n%128+128;t=[...t,e],n/=128}return t=[...t,n],new Uint8Array(t)}function h(e){const t=new Uint8Array(4);let n=e;for(let e=t.length;e>0;e--)t[Math.abs(e-t.length)]=n%256,n=Math.floor(n/256);return t}t.doHash=A},4659:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureLeftNeighbor=t.ensureSpec=t.calculateExistenceRoot=t.verifyNonExistence=t.verifyExistence=t.smtSpec=t.tendermintSpec=t.iavlSpec=void 0;const r=n(641),o=n(9768),i=n(3824);function a(e,t,n,r,o){c(e,t);const a=s(e);(0,i.ensureBytesEqual)(a,n),(0,i.ensureBytesEqual)(r,e.key),(0,i.ensureBytesEqual)(o,e.value)}function s(e){if(!e.key||!e.value)throw new Error("Existence proof needs key and value set");if(!e.leaf)throw new Error("Existence proof must start with a leaf operation");const t=e.path||[];let n=(0,o.applyLeaf)(e.leaf,e.key,e.value);for(const e of t)n=(0,o.applyInner)(e,n);return n}function c(e,t){if(!e.leaf)throw new Error("Existence proof must start with a leaf operation");if(!t.leafSpec)throw new Error("Spec must include leafSpec");if(!t.innerSpec)throw new Error("Spec must include innerSpec");(0,i.ensureLeaf)(e.leaf,t.leafSpec);const n=e.path||[];if(t.minDepth&&n.lengtht.maxDepth)throw new Error(`Too many inner nodes ${n.length}`);for(const e of n)(0,i.ensureInner)(e,t.leafSpec.prefix,t.innerSpec)}function d(e,t){const{minPrefix:n,maxPrefix:r,suffix:o}=h(e,0);for(const e of t)if(!f(e,n,r,o))throw new Error("Step not leftmost")}function u(e,t){const n=e.childOrder.length-1,{minPrefix:r,maxPrefix:o,suffix:i}=h(e,n);for(const e of t)if(!f(e,r,o,i))throw new Error("Step not leftmost")}function l(e,t,n){const r=[...t],o=[...n];let a=r.pop(),s=o.pop();for(;(0,i.bytesEqual)(a.prefix,s.prefix)&&(0,i.bytesEqual)(a.suffix,s.suffix);)a=r.pop(),s=o.pop();if(!function(e,t,n){const r=A(e,t);return A(e,n)===r+1}(e,a,s))throw new Error("Not left neightbor at first divergent step");u(e,r),d(e,o)}function A(e,t){for(let n=0;nn||(e.suffix||[]).length!==r)}function h(e,t){const n=function(e,t){if(t<0||t>=e.length)throw new Error(`Invalid branch: ${t}`);return e.findIndex((e=>e===t))}(e.childOrder,t),r=n*e.childSize;return{minPrefix:r+e.minPrefixLength,maxPrefix:r+e.maxPrefixLength,suffix:(e.childOrder.length-1-n)*e.childSize}}t.iavlSpec={leafSpec:{prefix:Uint8Array.from([0]),hash:r.ics23.HashOp.SHA256,prehashValue:r.ics23.HashOp.SHA256,prehashKey:r.ics23.HashOp.NO_HASH,length:r.ics23.LengthOp.VAR_PROTO},innerSpec:{childOrder:[0,1],minPrefixLength:4,maxPrefixLength:12,childSize:33,hash:r.ics23.HashOp.SHA256}},t.tendermintSpec={leafSpec:{prefix:Uint8Array.from([0]),hash:r.ics23.HashOp.SHA256,prehashValue:r.ics23.HashOp.SHA256,prehashKey:r.ics23.HashOp.NO_HASH,length:r.ics23.LengthOp.VAR_PROTO},innerSpec:{childOrder:[0,1],minPrefixLength:1,maxPrefixLength:1,childSize:32,hash:r.ics23.HashOp.SHA256}},t.smtSpec={leafSpec:{hash:r.ics23.HashOp.SHA256,prehashKey:r.ics23.HashOp.NO_HASH,prehashValue:r.ics23.HashOp.SHA256,length:r.ics23.LengthOp.NO_PREFIX,prefix:Uint8Array.from([0])},innerSpec:{childOrder:[0,1],childSize:32,minPrefixLength:1,maxPrefixLength:1,emptyChild:new Uint8Array(32),hash:r.ics23.HashOp.SHA256},maxDepth:256},t.verifyExistence=a,t.verifyNonExistence=function(e,t,n,r){let o,s;if(e.left&&(a(e.left,t,n,e.left.key,e.left.value),o=e.left.key),e.right&&(a(e.right,t,n,e.right.key,e.right.value),s=e.right.key),!o&&!s)throw new Error("neither left nor right proof defined");if(o&&(0,i.ensureBytesBefore)(o,r),s&&(0,i.ensureBytesBefore)(r,s),!t.innerSpec)throw new Error("no inner spec");o?s?l(t.innerSpec,e.left.path,e.right.path):u(t.innerSpec,e.left.path):d(t.innerSpec,e.right.path)},t.calculateExistenceRoot=s,t.ensureSpec=c,t.ensureLeftNeighbor=l},3824:(e,t)=>{"use strict";function n(e,t){if(e.length!==t.length)throw new Error(`Different lengths ${e.length} vs ${t.length}`);for(let n=0;nt[r])return!1}return e.length(n.maxPrefixLength||0)+r)throw new Error(`Prefix too long: ${e.prefix.length} bytes`)},t.ensureBytesEqual=n,t.bytesEqual=function(e,t){if(e.length!==t.length)return!1;for(let n=0;n{"use strict";e.exports=n(6401)},6401:(e,t,n)=>{"use strict";var r=t;function o(){r.util._configure(),r.Writer._configure(r.BufferWriter),r.Reader._configure(r.BufferReader)}r.build="minimal",r.Writer=n(7490),r.BufferWriter=n(7094),r.Reader=n(952),r.BufferReader=n(3318),r.util=n(493),r.rpc=n(7365),r.roots=n(6756),r.configure=o,o()},952:(e,t,n)=>{"use strict";e.exports=c;var r,o=n(493),i=o.LongBits,a=o.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function c(e){this.buf=e,this.pos=0,this.len=e.length}var d,u="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new c(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new c(e);throw Error("illegal buffer")},l=function(){return o.Buffer?function(e){return(c.create=function(e){return o.Buffer.isBuffer(e)?new r(e):u(e)})(e)}:u};function A(){var e=new i(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function f(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function h(){if(this.pos+8>this.len)throw s(this,8);return new i(f(this.buf,this.pos+=4),f(this.buf,this.pos+=4))}c.create=l(),c.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,c.prototype.uint32=(d=4294967295,function(){if(d=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return d;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return d}),c.prototype.int32=function(){return 0|this.uint32()},c.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},c.prototype.bool=function(){return 0!==this.uint32()},c.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return f(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|f(this.buf,this.pos+=4)},c.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},c.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},c.prototype.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,n):t===n?new this.buf.constructor(0):this._slice.call(this.buf,t,n)},c.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},c.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},c.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},c._configure=function(e){r=e,c.create=l(),r._configure();var t=o.Long?"toLong":"toNumber";o.merge(c.prototype,{int64:function(){return A.call(this)[t](!1)},uint64:function(){return A.call(this)[t](!0)},sint64:function(){return A.call(this).zzDecode()[t](!1)},fixed64:function(){return h.call(this)[t](!0)},sfixed64:function(){return h.call(this)[t](!1)}})}},3318:(e,t,n)=>{"use strict";e.exports=i;var r=n(952);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(493);function i(e){r.call(this,e)}i._configure=function(){o.Buffer&&(i.prototype._slice=o.Buffer.prototype.slice)},i.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},i._configure()},6756:e=>{"use strict";e.exports={}},7365:(e,t,n)=>{"use strict";t.Service=n(1216)},1216:(e,t,n)=>{"use strict";e.exports=o;var r=n(493);function o(e,t,n){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");r.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(o.prototype=Object.create(r.EventEmitter.prototype)).constructor=o,o.prototype.rpcCall=function e(t,n,o,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return r.asPromise(e,s,t,n,o,i);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof o))try{n=o[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},o.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},1877:(e,t,n)=>{"use strict";e.exports=o;var r=n(493);function o(e,t){this.lo=e>>>0,this.hi=t>>>0}var i=o.zero=new o(0,0);i.toNumber=function(){return 0},i.zzEncode=i.zzDecode=function(){return this},i.length=function(){return 1};var a=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(e){if(0===e)return i;var t=e<0;t&&(e=-e);var n=e>>>0,r=(e-n)/4294967296>>>0;return t&&(r=~r>>>0,n=~n>>>0,++n>4294967295&&(n=0,++r>4294967295&&(r=0))),new o(n,r)},o.from=function(e){if("number"==typeof e)return o.fromNumber(e);if(r.isString(e)){if(!r.Long)return o.fromNumber(parseInt(e,10));e=r.Long.fromString(e)}return e.low||e.high?new o(e.low>>>0,e.high>>>0):i},o.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},o.prototype.toLong=function(e){return r.Long?new r.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;o.fromHash=function(e){return e===a?i:new o((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},o.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},o.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},493:function(e,t,n){"use strict";var r=t;function o(e,t,n){for(var r=Object.keys(t),o=0;o0)},r.Buffer=function(){try{var e=r.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),r._Buffer_from=null,r._Buffer_allocUnsafe=null,r.newBuffer=function(e){return"number"==typeof e?r.Buffer?r._Buffer_allocUnsafe(e):new r.Array(e):r.Buffer?r._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},r.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,r.Long=r.global.dcodeIO&&r.global.dcodeIO.Long||r.global.Long||r.inquire("long"),r.key2Re=/^true|false|0|1$/,r.key32Re=/^-?(?:0|[1-9][0-9]*)$/,r.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,r.longToHash=function(e){return e?r.LongBits.from(e).toHash():r.LongBits.zeroHash},r.longFromHash=function(e,t){var n=r.LongBits.fromHash(e);return r.Long?r.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))},r.merge=o,r.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},r.newError=i,r.ProtocolError=i("ProtocolError"),r.oneOfGetter=function(e){for(var t={},n=0;n-1;--n)if(1===t[e[n]]&&void 0!==this[e[n]]&&null!==this[e[n]])return e[n]}},r.oneOfSetter=function(e){return function(t){for(var n=0;n{"use strict";e.exports=l;var r,o=n(493),i=o.LongBits,a=o.base64,s=o.utf8;function c(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}function d(){}function u(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function l(){this.len=0,this.head=new c(d,0,0),this.tail=this.head,this.states=null}var A=function(){return o.Buffer?function(){return(l.create=function(){return new r})()}:function(){return new l}};function f(e,t,n){t[n]=255&e}function h(e,t){this.len=e,this.next=void 0,this.val=t}function g(e,t,n){for(;e.hi;)t[n++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[n++]=127&e.lo|128,e.lo=e.lo>>>7;t[n++]=e.lo}function p(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}l.create=A(),l.alloc=function(e){return new o.Array(e)},o.Array!==Array&&(l.alloc=o.pool(l.alloc,o.Array.prototype.subarray)),l.prototype._push=function(e,t,n){return this.tail=this.tail.next=new c(e,t,n),this.len+=t,this},h.prototype=Object.create(c.prototype),h.prototype.fn=function(e,t,n){for(;e>127;)t[n++]=127&e|128,e>>>=7;t[n]=e},l.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new h((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},l.prototype.int32=function(e){return e<0?this._push(g,10,i.fromNumber(e)):this.uint32(e)},l.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},l.prototype.uint64=function(e){var t=i.from(e);return this._push(g,t.length(),t)},l.prototype.int64=l.prototype.uint64,l.prototype.sint64=function(e){var t=i.from(e).zzEncode();return this._push(g,t.length(),t)},l.prototype.bool=function(e){return this._push(f,1,e?1:0)},l.prototype.fixed32=function(e){return this._push(p,4,e>>>0)},l.prototype.sfixed32=l.prototype.fixed32,l.prototype.fixed64=function(e){var t=i.from(e);return this._push(p,4,t.lo)._push(p,4,t.hi)},l.prototype.sfixed64=l.prototype.fixed64,l.prototype.float=function(e){return this._push(o.float.writeFloatLE,4,e)},l.prototype.double=function(e){return this._push(o.float.writeDoubleLE,8,e)};var m=o.Array.prototype.set?function(e,t,n){t.set(e,n)}:function(e,t,n){for(var r=0;r>>0;if(!t)return this._push(f,1,0);if(o.isString(e)){var n=l.alloc(t=a.length(e));a.decode(e,n,0),e=n}return this.uint32(t)._push(m,t,e)},l.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(f,1,0)},l.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new c(d,0,0),this.len=0,this},l.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(d,0,0),this.len=0),this},l.prototype.ldelim=function(){var e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=t,this.len+=n),this},l.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t},l._configure=function(e){r=e,l.create=A(),r._configure()}},7094:(e,t,n)=>{"use strict";e.exports=i;var r=n(7490);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(493);function i(){r.call(this)}function a(e,t,n){e.length<40?o.utf8.write(e,t,n):t.utf8Write?t.utf8Write(e,n):t.write(e,n)}i._configure=function(){i.alloc=o._Buffer_allocUnsafe,i.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&"set"===o.Buffer.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var r=0;r>>0;return this.uint32(t),t&&this._push(i.writeBytesBuffer,t,e),this},i.prototype.string=function(e){var t=o.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},i._configure()},3217:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pubkeyToAddress=t.pubkeyToRawAddress=t.rawSecp256k1PubkeyToRawAddress=t.rawEd25519PubkeyToRawAddress=void 0;const r=n(9562),o=n(8972),i=n(11),a=n(3554);function s(e){if(32!==e.length)throw new Error(`Invalid Ed25519 pubkey length: ${e.length}`);return(0,r.sha256)(e).slice(0,20)}function c(e){if(33!==e.length)throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${e.length}`);return(0,r.ripemd160)((0,r.sha256)(e))}function d(e){if((0,a.isSecp256k1Pubkey)(e))return c((0,o.fromBase64)(e.value));if((0,a.isEd25519Pubkey)(e))return s((0,o.fromBase64)(e.value));if((0,a.isMultisigThresholdPubkey)(e)){const t=(0,i.encodeAminoPubkey)(e);return(0,r.sha256)(t).slice(0,20)}throw new Error("Unsupported public key type")}t.rawEd25519PubkeyToRawAddress=s,t.rawSecp256k1PubkeyToRawAddress=c,t.pubkeyToRawAddress=d,t.pubkeyToAddress=function(e,t){return(0,o.toBech32)(t,d(e))}},8709:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseCoins=t.coins=t.coin=void 0;const r=n(6961);function o(e,t){let n;if("number"==typeof e)try{n=new r.Uint53(e).toString()}catch(e){throw new Error("Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.")}else{if(!e.match(/^[0-9]+$/))throw new Error("Invalid unsigned integer string format");n=e.replace(/^0*/,"")||"0"}return{amount:n,denom:t}}t.coin=o,t.coins=function(e,t){return[o(e,t)]},t.parseCoins=function(e){return e.replace(/\s/g,"").split(",").filter(Boolean).map((e=>{const t=e.match(/^([0-9]+)([a-zA-Z]+)/);if(!t)throw new Error("Got an invalid coin string");return{amount:r.Uint64.fromString(t[1]).toString(),denom:t[2]}}))}},11:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.encodeBech32Pubkey=t.encodeAminoPubkey=t.decodeBech32Pubkey=t.decodeAminoPubkey=t.encodeSecp256k1Pubkey=void 0;const r=n(8972),o=n(6961),i=n(5553),a=n(3554);t.encodeSecp256k1Pubkey=function(e){if(33!==e.length||2!==e[0]&&3!==e[0])throw new Error("Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03");return{type:a.pubkeyType.secp256k1,value:(0,r.toBase64)(e)}};const s=(0,r.fromHex)("eb5ae98721"),c=(0,r.fromHex)("1624de6420"),d=(0,r.fromHex)("0dfb100520"),u=(0,r.fromHex)("22c1f7e2");function l(e){if((0,i.arrayContentStartsWith)(e,s)){const t=e.slice(s.length);if(33!==t.length)throw new Error("Invalid rest data length. Expected 33 bytes (compressed secp256k1 pubkey).");return{type:a.pubkeyType.secp256k1,value:(0,r.toBase64)(t)}}if((0,i.arrayContentStartsWith)(e,c)){const t=e.slice(c.length);if(32!==t.length)throw new Error("Invalid rest data length. Expected 32 bytes (Ed25519 pubkey).");return{type:a.pubkeyType.ed25519,value:(0,r.toBase64)(t)}}if((0,i.arrayContentStartsWith)(e,d)){const t=e.slice(d.length);if(32!==t.length)throw new Error("Invalid rest data length. Expected 32 bytes (Sr25519 pubkey).");return{type:a.pubkeyType.sr25519,value:(0,r.toBase64)(t)}}if((0,i.arrayContentStartsWith)(e,u))return function(e){const t=Array.from(e),n=t.splice(0,u.length);if(!(0,i.arrayContentStartsWith)(n,u))throw new Error("Invalid multisig prefix.");if(8!=t.shift())throw new Error("Invalid multisig data. Expecting 0x08 prefix before threshold.");const[r,o]=A(t);t.splice(0,o);const s=[];for(;t.length>0;){if(18!=t.shift())throw new Error("Invalid multisig data. Expecting 0x12 prefix before participant pubkey length.");const[e,n]=A(t);if(t.splice(0,n),t.length127)throw new Error("Decoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.Varint implementation from the Go standard library and write some tests.");return[e[0],1]}function f(e){const t=o.Uint53.fromString(e.toString()).toNumber();if(t>127)throw new Error("Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.");return[t]}function h(e){if((0,a.isMultisigThresholdPubkey)(e)){const t=Array.from(u);t.push(8),t.push(...f(e.value.threshold));for(const n of e.value.pubkeys.map((e=>h(e))))t.push(18),t.push(...f(n.length)),t.push(...n);return new Uint8Array(t)}if((0,a.isEd25519Pubkey)(e))return new Uint8Array([...c,...(0,r.fromBase64)(e.value)]);if((0,a.isSecp256k1Pubkey)(e))return new Uint8Array([...s,...(0,r.fromBase64)(e.value)]);throw new Error("Unsupported pubkey type")}t.decodeAminoPubkey=l,t.decodeBech32Pubkey=function(e){const{data:t}=(0,r.fromBech32)(e);return l(t)},t.encodeAminoPubkey=h,t.encodeBech32Pubkey=function(e,t){return(0,r.toBech32)(t,h(e))}},3359:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.executeKdf=t.makeStdTx=t.isStdTx=t.serializeSignDoc=t.makeSignDoc=t.encodeSecp256k1Signature=t.decodeSignature=t.Secp256k1Wallet=t.Secp256k1HdWallet=t.extractKdfConfiguration=t.pubkeyType=t.isSinglePubkey=t.isSecp256k1Pubkey=t.isMultisigThresholdPubkey=t.isEd25519Pubkey=t.makeCosmoshubPath=t.createMultisigThresholdPubkey=t.encodeSecp256k1Pubkey=t.encodeBech32Pubkey=t.encodeAminoPubkey=t.decodeBech32Pubkey=t.decodeAminoPubkey=t.parseCoins=t.coins=t.coin=t.rawSecp256k1PubkeyToRawAddress=t.rawEd25519PubkeyToRawAddress=t.pubkeyToRawAddress=t.pubkeyToAddress=void 0;var r=n(3217);Object.defineProperty(t,"pubkeyToAddress",{enumerable:!0,get:function(){return r.pubkeyToAddress}}),Object.defineProperty(t,"pubkeyToRawAddress",{enumerable:!0,get:function(){return r.pubkeyToRawAddress}}),Object.defineProperty(t,"rawEd25519PubkeyToRawAddress",{enumerable:!0,get:function(){return r.rawEd25519PubkeyToRawAddress}}),Object.defineProperty(t,"rawSecp256k1PubkeyToRawAddress",{enumerable:!0,get:function(){return r.rawSecp256k1PubkeyToRawAddress}});var o=n(8709);Object.defineProperty(t,"coin",{enumerable:!0,get:function(){return o.coin}}),Object.defineProperty(t,"coins",{enumerable:!0,get:function(){return o.coins}}),Object.defineProperty(t,"parseCoins",{enumerable:!0,get:function(){return o.parseCoins}});var i=n(11);Object.defineProperty(t,"decodeAminoPubkey",{enumerable:!0,get:function(){return i.decodeAminoPubkey}}),Object.defineProperty(t,"decodeBech32Pubkey",{enumerable:!0,get:function(){return i.decodeBech32Pubkey}}),Object.defineProperty(t,"encodeAminoPubkey",{enumerable:!0,get:function(){return i.encodeAminoPubkey}}),Object.defineProperty(t,"encodeBech32Pubkey",{enumerable:!0,get:function(){return i.encodeBech32Pubkey}}),Object.defineProperty(t,"encodeSecp256k1Pubkey",{enumerable:!0,get:function(){return i.encodeSecp256k1Pubkey}});var a=n(7851);Object.defineProperty(t,"createMultisigThresholdPubkey",{enumerable:!0,get:function(){return a.createMultisigThresholdPubkey}});var s=n(959);Object.defineProperty(t,"makeCosmoshubPath",{enumerable:!0,get:function(){return s.makeCosmoshubPath}});var c=n(3554);Object.defineProperty(t,"isEd25519Pubkey",{enumerable:!0,get:function(){return c.isEd25519Pubkey}}),Object.defineProperty(t,"isMultisigThresholdPubkey",{enumerable:!0,get:function(){return c.isMultisigThresholdPubkey}}),Object.defineProperty(t,"isSecp256k1Pubkey",{enumerable:!0,get:function(){return c.isSecp256k1Pubkey}}),Object.defineProperty(t,"isSinglePubkey",{enumerable:!0,get:function(){return c.isSinglePubkey}}),Object.defineProperty(t,"pubkeyType",{enumerable:!0,get:function(){return c.pubkeyType}});var d=n(4531);Object.defineProperty(t,"extractKdfConfiguration",{enumerable:!0,get:function(){return d.extractKdfConfiguration}}),Object.defineProperty(t,"Secp256k1HdWallet",{enumerable:!0,get:function(){return d.Secp256k1HdWallet}});var u=n(1295);Object.defineProperty(t,"Secp256k1Wallet",{enumerable:!0,get:function(){return u.Secp256k1Wallet}});var l=n(6891);Object.defineProperty(t,"decodeSignature",{enumerable:!0,get:function(){return l.decodeSignature}}),Object.defineProperty(t,"encodeSecp256k1Signature",{enumerable:!0,get:function(){return l.encodeSecp256k1Signature}});var A=n(1361);Object.defineProperty(t,"makeSignDoc",{enumerable:!0,get:function(){return A.makeSignDoc}}),Object.defineProperty(t,"serializeSignDoc",{enumerable:!0,get:function(){return A.serializeSignDoc}});var f=n(489);Object.defineProperty(t,"isStdTx",{enumerable:!0,get:function(){return f.isStdTx}}),Object.defineProperty(t,"makeStdTx",{enumerable:!0,get:function(){return f.makeStdTx}});var h=n(5077);Object.defineProperty(t,"executeKdf",{enumerable:!0,get:function(){return h.executeKdf}})},7851:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createMultisigThresholdPubkey=t.compareArrays=void 0;const r=n(8972),o=n(6961),i=n(3217);function a(e,t){const n=(0,r.toHex)(e),o=(0,r.toHex)(t);return n===o?0:ne.length)throw new Error(`Threshold k = ${r.toNumber()} exceeds number of keys n = ${e.length}`);const s=n?e:Array.from(e).sort(((e,t)=>a((0,i.pubkeyToRawAddress)(e),(0,i.pubkeyToRawAddress)(t))));return{type:"tendermint/PubKeyMultisigThreshold",value:{threshold:r.toString(),pubkeys:s}}}},959:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeCosmoshubPath=void 0;const r=n(9562);t.makeCosmoshubPath=function(e){return[r.Slip10RawIndex.hardened(44),r.Slip10RawIndex.hardened(118),r.Slip10RawIndex.hardened(0),r.Slip10RawIndex.normal(0),r.Slip10RawIndex.normal(e)]}},3554:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isMultisigThresholdPubkey=t.isSinglePubkey=t.pubkeyType=t.isSecp256k1Pubkey=t.isEd25519Pubkey=void 0,t.isEd25519Pubkey=function(e){return"tendermint/PubKeyEd25519"===e.type},t.isSecp256k1Pubkey=function(e){return"tendermint/PubKeySecp256k1"===e.type},t.pubkeyType={secp256k1:"tendermint/PubKeySecp256k1",ed25519:"tendermint/PubKeyEd25519",sr25519:"tendermint/PubKeySr25519",multisigThreshold:"tendermint/PubKeyMultisigThreshold"},t.isSinglePubkey=function(e){return[t.pubkeyType.ed25519,t.pubkeyType.secp256k1,t.pubkeyType.sr25519].includes(e.type)},t.isMultisigThresholdPubkey=function(e){return"tendermint/PubKeyMultisigThreshold"===e.type}},4531:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Secp256k1HdWallet=t.extractKdfConfiguration=void 0;const r=n(9562),o=n(8972),i=n(5553),a=n(3217),s=n(959),c=n(6891),d=n(1361),u=n(5077),l="secp256k1wallet-v1",A={algorithm:"argon2id",params:{outputLength:32,opsLimit:24,memLimitKib:12288}};t.extractKdfConfiguration=function(e){const t=JSON.parse(e);if(!(0,i.isNonNullObject)(t))throw new Error("Root document is not an object.");if(t.type===l)return t.kdf;throw new Error("Unsupported serialization type")};const f={bip39Password:"",hdPaths:[(0,s.makeCosmoshubPath)(0)],prefix:"cosmos"};class h{constructor(e,t){var n,r;const o=null!==(n=t.hdPaths)&&void 0!==n?n:f.hdPaths,i=null!==(r=t.prefix)&&void 0!==r?r:f.prefix;this.secret=e,this.seed=t.seed,this.accounts=o.map((e=>({hdPath:e,prefix:i})))}static async fromMnemonic(e,t={}){const n=new r.EnglishMnemonic(e),o=await r.Bip39.mnemonicToSeed(n,t.bip39Password);return new h(n,{...t,seed:o})}static async generate(e=12,t={}){const n=4*Math.floor(11*e/33),o=r.Random.getBytes(n),i=r.Bip39.encode(o);return h.fromMnemonic(i.toString(),t)}static async deserialize(e,t){const n=JSON.parse(e);if(!(0,i.isNonNullObject)(n))throw new Error("Root document is not an object.");if(n.type===l)return h.deserializeTypeV1(e,t);throw new Error("Unsupported serialization type")}static async deserializeWithEncryptionKey(e,t){const n=JSON.parse(e);if(!(0,i.isNonNullObject)(n))throw new Error("Root document is not an object.");const a=n;if(a.type===l){const e=await(0,u.decrypt)((0,o.fromBase64)(a.data),t,a.encryption),n=JSON.parse((0,o.fromUtf8)(e)),{mnemonic:s,accounts:c}=n;if((0,i.assert)("string"==typeof s),!Array.isArray(c))throw new Error("Property 'accounts' is not an array");if(!c.every((e=>{return t=e,!!(0,i.isNonNullObject)(t)&&"string"==typeof t.hdPath&&"string"==typeof t.prefix;var t})))throw new Error("Account is not in the correct format.");const d=c[0].prefix;if(!c.every((({prefix:e})=>e===d)))throw new Error("Accounts do not all have the same prefix");const l=c.map((({hdPath:e})=>(0,r.stringToPath)(e)));return h.fromMnemonic(s,{hdPaths:l,prefix:d})}throw new Error("Unsupported serialization type")}static async deserializeTypeV1(e,t){const n=JSON.parse(e);if(!(0,i.isNonNullObject)(n))throw new Error("Root document is not an object.");const r=await(0,u.executeKdf)(t,n.kdf);return h.deserializeWithEncryptionKey(e,r)}get mnemonic(){return this.secret.toString()}async getAccounts(){return(await this.getAccountsWithPrivkeys()).map((({algo:e,pubkey:t,address:n})=>({algo:e,pubkey:t,address:n})))}async signAmino(e,t){const n=(await this.getAccountsWithPrivkeys()).find((({address:t})=>t===e));if(void 0===n)throw new Error(`Address ${e} not found in wallet`);const{privkey:o,pubkey:i}=n,a=(0,r.sha256)((0,d.serializeSignDoc)(t)),s=await r.Secp256k1.createSignature(a,o),u=new Uint8Array([...s.r(32),...s.s(32)]);return{signed:t,signature:(0,c.encodeSecp256k1Signature)(i,u)}}async serialize(e){const t=A,n=await(0,u.executeKdf)(e,t);return this.serializeWithEncryptionKey(n,t)}async serializeWithEncryptionKey(e,t){const n={mnemonic:this.mnemonic,accounts:this.accounts.map((({hdPath:e,prefix:t})=>({hdPath:(0,r.pathToString)(e),prefix:t})))},i=(0,o.toUtf8)(JSON.stringify(n)),a={algorithm:u.supportedAlgorithms.xchacha20poly1305Ietf},s=await(0,u.encrypt)(i,e,a),c={type:l,kdf:t,encryption:a,data:(0,o.toBase64)(s)};return JSON.stringify(c)}async getKeyPair(e){const{privkey:t}=r.Slip10.derivePath(r.Slip10Curve.Secp256k1,this.seed,e),{pubkey:n}=await r.Secp256k1.makeKeypair(t);return{privkey:t,pubkey:r.Secp256k1.compressPubkey(n)}}async getAccountsWithPrivkeys(){return Promise.all(this.accounts.map((async({hdPath:e,prefix:t})=>{const{privkey:n,pubkey:r}=await this.getKeyPair(e);return{algo:"secp256k1",privkey:n,pubkey:r,address:(0,o.toBech32)(t,(0,a.rawSecp256k1PubkeyToRawAddress)(r))}})))}}t.Secp256k1HdWallet=h},1295:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Secp256k1Wallet=void 0;const r=n(9562),o=n(8972),i=n(3217),a=n(6891),s=n(1361);class c{constructor(e,t,n){this.privkey=e,this.pubkey=t,this.prefix=n}static async fromKey(e,t="cosmos"){const n=(await r.Secp256k1.makeKeypair(e)).pubkey;return new c(e,r.Secp256k1.compressPubkey(n),t)}get address(){return(0,o.toBech32)(this.prefix,(0,i.rawSecp256k1PubkeyToRawAddress)(this.pubkey))}async getAccounts(){return[{algo:"secp256k1",address:this.address,pubkey:this.pubkey}]}async signAmino(e,t){if(e!==this.address)throw new Error(`Address ${e} not found in wallet`);const n=new r.Sha256((0,s.serializeSignDoc)(t)).digest(),o=await r.Secp256k1.createSignature(n,this.privkey),i=new Uint8Array([...o.r(32),...o.s(32)]);return{signed:t,signature:(0,a.encodeSecp256k1Signature)(this.pubkey,i)}}}t.Secp256k1Wallet=c},6891:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeSignature=t.encodeSecp256k1Signature=void 0;const r=n(8972),o=n(11),i=n(3554);t.encodeSecp256k1Signature=function(e,t){if(64!==t.length)throw new Error("Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.");return{pub_key:(0,o.encodeSecp256k1Pubkey)(e),signature:(0,r.toBase64)(t)}},t.decodeSignature=function(e){if(e.pub_key.type===i.pubkeyType.secp256k1)return{pubkey:(0,r.fromBase64)(e.pub_key.value),signature:(0,r.fromBase64)(e.signature)};throw new Error("Unsupported pubkey type")}},1361:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serializeSignDoc=t.makeSignDoc=t.sortedJsonStringify=void 0;const r=n(8972),o=n(6961);function i(e){if("object"!=typeof e||null===e)return e;if(Array.isArray(e))return e.map(i);const t=Object.keys(e).sort(),n={};return t.forEach((t=>{n[t]=i(e[t])})),n}function a(e){return JSON.stringify(i(e))}t.sortedJsonStringify=a,t.makeSignDoc=function(e,t,n,r,i,a){return{chain_id:n,account_number:o.Uint53.fromString(i.toString()).toString(),sequence:o.Uint53.fromString(a.toString()).toString(),fee:t,msgs:e,memo:r||""}},t.serializeSignDoc=function(e){return(0,r.toUtf8)(a(e))}},489:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeStdTx=t.isStdTx=void 0,t.isStdTx=function(e){const{memo:t,msg:n,fee:r,signatures:o}=e;return"string"==typeof t&&Array.isArray(n)&&"object"==typeof r&&Array.isArray(o)},t.makeStdTx=function(e,t){return{msg:e.msgs,fee:e.fee,memo:e.memo,signatures:Array.isArray(t)?t:[t]}}},5077:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decrypt=t.encrypt=t.supportedAlgorithms=t.executeKdf=t.cosmjsSalt=void 0;const r=n(9562),o=n(8972);t.cosmjsSalt=(0,o.toAscii)("The CosmJS salt."),t.executeKdf=async function(e,n){if("argon2id"===n.algorithm){const o=n.params;if(!(0,r.isArgon2idOptions)(o))throw new Error("Invalid format of argon2id params");return r.Argon2id.execute(e,t.cosmjsSalt,o)}throw new Error("Unsupported KDF algorithm")},t.supportedAlgorithms={xchacha20poly1305Ietf:"xchacha20poly1305-ietf"},t.encrypt=async function(e,n,o){if(o.algorithm===t.supportedAlgorithms.xchacha20poly1305Ietf){const t=r.Random.getBytes(r.xchacha20NonceLength);return new Uint8Array([...t,...await r.Xchacha20poly1305Ietf.encrypt(e,n,t)])}throw new Error(`Unsupported encryption algorithm: '${o.algorithm}'`)},t.decrypt=async function(e,n,o){if(o.algorithm===t.supportedAlgorithms.xchacha20poly1305Ietf){const t=e.slice(0,r.xchacha20NonceLength);return r.Xchacha20poly1305Ietf.decrypt(e.slice(r.xchacha20NonceLength),n,t)}throw new Error(`Unsupported encryption algorithm: '${o.algorithm}'`)}},2599:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.cosmWasmTypes=void 0;const o=n(8972),i=r(n(3720));t.cosmWasmTypes={"/cosmwasm.wasm.v1.MsgStoreCode":{aminoType:"wasm/MsgStoreCode",toAmino:({sender:e,wasmByteCode:t})=>({sender:e,wasm_byte_code:(0,o.toBase64)(t)}),fromAmino:({sender:e,wasm_byte_code:t})=>({sender:e,wasmByteCode:(0,o.fromBase64)(t),instantiatePermission:void 0})},"/cosmwasm.wasm.v1.MsgInstantiateContract":{aminoType:"wasm/MsgInstantiateContract",toAmino:({sender:e,codeId:t,label:n,msg:r,funds:i,admin:a})=>({sender:e,code_id:t.toString(),label:n,msg:JSON.parse((0,o.fromUtf8)(r)),funds:i,admin:a||void 0}),fromAmino:({sender:e,code_id:t,label:n,msg:r,funds:a,admin:s})=>({sender:e,codeId:i.default.fromString(t),label:n,msg:(0,o.toUtf8)(JSON.stringify(r)),funds:[...a],admin:null!=s?s:""})},"/cosmwasm.wasm.v1.MsgUpdateAdmin":{aminoType:"wasm/MsgUpdateAdmin",toAmino:({sender:e,newAdmin:t,contract:n})=>({sender:e,new_admin:t,contract:n}),fromAmino:({sender:e,new_admin:t,contract:n})=>({sender:e,newAdmin:t,contract:n})},"/cosmwasm.wasm.v1.MsgClearAdmin":{aminoType:"wasm/MsgClearAdmin",toAmino:({sender:e,contract:t})=>({sender:e,contract:t}),fromAmino:({sender:e,contract:t})=>({sender:e,contract:t})},"/cosmwasm.wasm.v1.MsgExecuteContract":{aminoType:"wasm/MsgExecuteContract",toAmino:({sender:e,contract:t,msg:n,funds:r})=>({sender:e,contract:t,msg:JSON.parse((0,o.fromUtf8)(n)),funds:r}),fromAmino:({sender:e,contract:t,msg:n,funds:r})=>({sender:e,contract:t,msg:(0,o.toUtf8)(JSON.stringify(n)),funds:[...r]})},"/cosmwasm.wasm.v1.MsgMigrateContract":{aminoType:"wasm/MsgMigrateContract",toAmino:({sender:e,contract:t,codeId:n,msg:r})=>({sender:e,contract:t,code_id:n.toString(),msg:JSON.parse((0,o.fromUtf8)(r))}),fromAmino:({sender:e,contract:t,code_id:n,msg:r})=>({sender:e,contract:t,codeId:i.default.fromString(n),msg:(0,o.toUtf8)(JSON.stringify(r))})}}},53:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CosmWasmClient=void 0;const r=n(8972),o=n(6961),i=n(4658),a=n(3034),s=n(5553),c=n(9374),d=n(6820);class u{constructor(e){this.codesCache=new Map,e&&(this.tmClient=e,this.queryClient=i.QueryClient.withExtensions(e,i.setupAuthExtension,i.setupBankExtension,d.setupWasmExtension,i.setupTxExtension))}static async connect(e){const t=await a.Tendermint34Client.connect(e);return new u(t)}getTmClient(){return this.tmClient}forceGetTmClient(){if(!this.tmClient)throw new Error("Tendermint client not available. You cannot use online functionality in offline mode.");return this.tmClient}getQueryClient(){return this.queryClient}forceGetQueryClient(){if(!this.queryClient)throw new Error("Query client not available. You cannot use online functionality in offline mode.");return this.queryClient}async getChainId(){if(!this.chainId){const e=(await this.forceGetTmClient().status()).nodeInfo.network;if(!e)throw new Error("Chain ID must not be empty");this.chainId=e}return this.chainId}async getHeight(){return(await this.forceGetTmClient().status()).syncInfo.latestBlockHeight}async getAccount(e){try{const t=await this.forceGetQueryClient().auth.account(e);return t?(0,i.accountFromAny)(t):null}catch(e){if(/rpc error: code = NotFound/i.test(e.toString()))return null;throw e}}async getSequence(e){const t=await this.getAccount(e);if(!t)throw new Error("Account does not exist on chain. Send some tokens there before trying to query sequence.");return{accountNumber:t.accountNumber,sequence:t.sequence}}async getBlock(e){const t=await this.forceGetTmClient().block(e);return{id:(0,r.toHex)(t.blockId.hash).toUpperCase(),header:{version:{block:new o.Uint53(t.block.header.version.block).toString(),app:new o.Uint53(t.block.header.version.app).toString()},height:t.block.header.height,chainId:t.block.header.chainId,time:(0,a.toRfc3339WithNanoseconds)(t.block.header.time)},txs:t.block.txs}}async getBalance(e,t){return this.forceGetQueryClient().bank.balance(e,t)}async getTx(e){var t;return null!==(t=(await this.txsQuery(`tx.hash='${e}'`))[0])&&void 0!==t?t:null}async searchTx(e,t={}){const n=t.minHeight||0,r=t.maxHeight||Number.MAX_SAFE_INTEGER;if(r=${n} AND tx.height<=${r}`}let a;if((0,i.isSearchByHeightQuery)(e))a=e.height>=n&&e.height<=r?await this.txsQuery(`tx.height=${e.height}`):[];else if((0,i.isSearchBySentFromOrToQuery)(e)){const t=o(`message.module='bank' AND transfer.sender='${e.sentFromOrTo}'`),n=o(`message.module='bank' AND transfer.recipient='${e.sentFromOrTo}'`),[r,i]=await Promise.all([t,n].map((e=>this.txsQuery(e)))),s=r.map((e=>e.hash));a=[...r,...i.filter((e=>!s.includes(e.hash)))]}else{if(!(0,i.isSearchByTagsQuery)(e))throw new Error("Unknown query type");{const t=o(e.tags.map((e=>`${e.key}='${e.value}'`)).join(" AND "));a=await this.txsQuery(t)}}return a.filter((e=>e.height>=n&&e.height<=r))}disconnect(){this.tmClient&&this.tmClient.disconnect()}async broadcastTx(e,t=6e4,n=3e3){let o=!1;const a=setTimeout((()=>{o=!0}),t),c=async e=>{if(o)throw new i.TimeoutError(`Transaction with ID ${e} was submitted but was not yet found on the chain. You might want to check later.`,e);await(0,s.sleep)(n);const t=await this.getTx(e);return t?{code:t.code,height:t.height,rawLog:t.rawLog,transactionHash:e,gasUsed:t.gasUsed,gasWanted:t.gasWanted}:c(e)},d=await this.forceGetTmClient().broadcastTxSync({tx:e});if(d.code)throw new Error(`Broadcasting transaction failed with code ${d.code} (codespace: ${d.codeSpace}). Log: ${d.log}`);const u=(0,r.toHex)(d.hash).toUpperCase();return new Promise(((e,t)=>c(u).then((t=>{clearTimeout(a),e(t)}),(e=>{clearTimeout(a),t(e)}))))}async getCodes(){const{codeInfos:e}=await this.forceGetQueryClient().wasm.listCodeInfo();return(e||[]).map((e=>((0,s.assert)(e.creator&&e.codeId&&e.dataHash,"entry incomplete"),{id:e.codeId.toNumber(),creator:e.creator,checksum:(0,r.toHex)(e.dataHash)})))}async getCodeDetails(e){const t=this.codesCache.get(e);if(t)return t;const{codeInfo:n,data:o}=await this.forceGetQueryClient().wasm.getCode(e);(0,s.assert)(n&&n.codeId&&n.creator&&n.dataHash&&o,"codeInfo missing or incomplete");const i={id:n.codeId.toNumber(),creator:n.creator,checksum:(0,r.toHex)(n.dataHash),data:o};return this.codesCache.set(e,i),i}async getContracts(e){const{contracts:t}=await this.forceGetQueryClient().wasm.listContractsByCodeId(e);return t}async getContract(e){const{address:t,contractInfo:n}=await this.forceGetQueryClient().wasm.getContractInfo(e);if(!n)throw new Error(`No contract found at address "${e}"`);return(0,s.assert)(t,"address missing"),(0,s.assert)(n.codeId&&n.creator&&n.label,"contractInfo incomplete"),{address:t,codeId:n.codeId.toNumber(),creator:n.creator,admin:n.admin||void 0,label:n.label,ibcPortId:n.ibcPortId||void 0}}async getContractCodeHistory(e){const t=await this.forceGetQueryClient().wasm.getContractCodeHistory(e);if(!t)throw new Error(`No contract history found for address "${e}"`);const n={[c.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT]:"Init",[c.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS]:"Genesis",[c.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE]:"Migrate"};return(t.entries||[]).map((e=>((0,s.assert)(e.operation&&e.codeId&&e.msg),{operation:n[e.operation],codeId:e.codeId.toNumber(),msg:JSON.parse((0,r.fromAscii)(e.msg))})))}async queryContractRaw(e,t){await this.getContract(e);const{data:n}=await this.forceGetQueryClient().wasm.queryContractRaw(e,t);return null!=n?n:null}async queryContractSmart(e,t){try{return await this.forceGetQueryClient().wasm.queryContractSmart(e,t)}catch(t){throw t instanceof Error&&t.message.startsWith("not found: contract")?new Error(`No contract found at address "${e}"`):t}}async txsQuery(e){return(await this.forceGetTmClient().txSearchAll({query:e})).txs.map((e=>({height:e.height,hash:(0,r.toHex)(e.hash).toUpperCase(),code:e.result.code,rawLog:e.result.log||"",tx:e.tx,gasUsed:e.result.gasUsed,gasWanted:e.result.gasWanted})))}}t.CosmWasmClient=u},5994:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isMsgExecuteEncodeObject=t.isMsgMigrateEncodeObject=t.isMsgClearAdminEncodeObject=t.isMsgUpdateAdminEncodeObject=t.isMsgInstantiateContractEncodeObject=t.isMsgStoreCodeEncodeObject=void 0,t.isMsgStoreCodeEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgStoreCode"===e.typeUrl},t.isMsgInstantiateContractEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgInstantiateContract"===e.typeUrl},t.isMsgUpdateAdminEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgUpdateAdmin"===e.typeUrl},t.isMsgClearAdminEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgClearAdmin"===e.typeUrl},t.isMsgMigrateEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgMigrateContract"===e.typeUrl},t.isMsgExecuteEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgExecuteContract"===e.typeUrl}},2854:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromBinary=t.toBinary=void 0;const r=n(8972);t.toBinary=function(e){return(0,r.toBase64)((0,r.toUtf8)(JSON.stringify(e)))},t.fromBinary=function(e){return JSON.parse((0,r.fromUtf8)((0,r.fromBase64)(e)))}},4926:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SigningCosmWasmClient=t.setupWasmExtension=t.toBinary=t.fromBinary=t.isMsgUpdateAdminEncodeObject=t.isMsgStoreCodeEncodeObject=t.isMsgMigrateEncodeObject=t.isMsgInstantiateContractEncodeObject=t.isMsgExecuteEncodeObject=t.isMsgClearAdminEncodeObject=t.CosmWasmClient=t.cosmWasmTypes=void 0;var r=n(2599);Object.defineProperty(t,"cosmWasmTypes",{enumerable:!0,get:function(){return r.cosmWasmTypes}});var o=n(53);Object.defineProperty(t,"CosmWasmClient",{enumerable:!0,get:function(){return o.CosmWasmClient}});var i=n(5994);Object.defineProperty(t,"isMsgClearAdminEncodeObject",{enumerable:!0,get:function(){return i.isMsgClearAdminEncodeObject}}),Object.defineProperty(t,"isMsgExecuteEncodeObject",{enumerable:!0,get:function(){return i.isMsgExecuteEncodeObject}}),Object.defineProperty(t,"isMsgInstantiateContractEncodeObject",{enumerable:!0,get:function(){return i.isMsgInstantiateContractEncodeObject}}),Object.defineProperty(t,"isMsgMigrateEncodeObject",{enumerable:!0,get:function(){return i.isMsgMigrateEncodeObject}}),Object.defineProperty(t,"isMsgStoreCodeEncodeObject",{enumerable:!0,get:function(){return i.isMsgStoreCodeEncodeObject}}),Object.defineProperty(t,"isMsgUpdateAdminEncodeObject",{enumerable:!0,get:function(){return i.isMsgUpdateAdminEncodeObject}});var a=n(2854);Object.defineProperty(t,"fromBinary",{enumerable:!0,get:function(){return a.fromBinary}}),Object.defineProperty(t,"toBinary",{enumerable:!0,get:function(){return a.toBinary}});var s=n(6820);Object.defineProperty(t,"setupWasmExtension",{enumerable:!0,get:function(){return s.setupWasmExtension}});var c=n(2994);Object.defineProperty(t,"SigningCosmWasmClient",{enumerable:!0,get:function(){return c.SigningCosmWasmClient}})},6820:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupWasmExtension=void 0;var r=n(5371);Object.defineProperty(t,"setupWasmExtension",{enumerable:!0,get:function(){return r.setupWasmExtension}})},5371:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupWasmExtension=void 0;const o=n(8972),i=n(4658),a=n(6218),s=r(n(3720));t.setupWasmExtension=function(e){const t=(0,i.createProtobufRpcClient)(e),n=new a.QueryClientImpl(t);return{wasm:{listCodeInfo:async e=>{const t={pagination:(0,i.createPagination)(e)};return n.Codes(t)},getCode:async e=>{const t={codeId:s.default.fromNumber(e)};return n.Code(t)},listContractsByCodeId:async(e,t)=>{const r={codeId:s.default.fromNumber(e),pagination:(0,i.createPagination)(t)};return n.ContractsByCode(r)},getContractInfo:async e=>{const t={address:e};return n.ContractInfo(t)},getContractCodeHistory:async(e,t)=>{const r={address:e,pagination:(0,i.createPagination)(t)};return n.ContractHistory(r)},getAllContractState:async(e,t)=>{const r={address:e,pagination:(0,i.createPagination)(t)};return n.AllContractState(r)},queryContractRaw:async(e,t)=>{const r={address:e,queryData:t};return n.RawContractState(r)},queryContractSmart:async(e,t)=>{const r={address:e,queryData:(0,o.toAscii)(JSON.stringify(t))},{data:i}=await n.SmartContractState(r);let a;try{a=(0,o.fromUtf8)(i)}catch(e){throw new Error(`Could not UTF-8 decode smart query response from contract: ${e}`)}try{return JSON.parse(a)}catch(e){throw new Error(`Could not JSON parse smart query response from contract: ${e}`)}}}}}},2994:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SigningCosmWasmClient=void 0;const o=n(3359),i=n(9562),a=n(8972),s=n(6961),c=n(4087),d=n(4658),u=n(3034),l=n(5553),A=n(3773),f=n(422),h=n(2574),g=n(9639),p=n(1814),m=r(n(3720)),v=r(n(9591)),y=n(2599),b=n(53);function I(e){return`Error when broadcasting tx ${e.transactionHash} at height ${e.height}. Code: ${e.code}; Raw log: ${e.rawLog}`}function C(){const e=new c.Registry(d.defaultRegistryTypes);return e.register("/cosmwasm.wasm.v1.MsgClearAdmin",p.MsgClearAdmin),e.register("/cosmwasm.wasm.v1.MsgExecuteContract",p.MsgExecuteContract),e.register("/cosmwasm.wasm.v1.MsgMigrateContract",p.MsgMigrateContract),e.register("/cosmwasm.wasm.v1.MsgStoreCode",p.MsgStoreCode),e.register("/cosmwasm.wasm.v1.MsgInstantiateContract",p.MsgInstantiateContract),e.register("/cosmwasm.wasm.v1.MsgUpdateAdmin",p.MsgUpdateAdmin),e}class E extends b.CosmWasmClient{constructor(e,t,n){var r;super(e);const o=null!==(r=n.prefix)&&void 0!==r?r:"cosmos",{registry:i=C(),aminoTypes:a=new d.AminoTypes({prefix:o,additions:y.cosmWasmTypes})}=n;this.registry=i,this.aminoTypes=a,this.signer=t,this.broadcastTimeoutMs=n.broadcastTimeoutMs,this.broadcastPollIntervalMs=n.broadcastPollIntervalMs,this.gasPrice=n.gasPrice}static async connectWithSigner(e,t,n={}){const r=await u.Tendermint34Client.connect(e);return new E(r,t,n)}static async offline(e,t={}){return new E(void 0,e,t)}async simulate(e,t,n){const r=t.map((e=>this.registry.encodeAsAny(e))),i=(await this.signer.getAccounts()).find((t=>t.address===e));if(!i)throw new Error("Failed to retrieve account from signer");const a=(0,o.encodeSecp256k1Pubkey)(i.pubkey),{sequence:c}=await this.getSequence(e),{gasInfo:d}=await this.forceGetQueryClient().tx.simulate(r,n,a,c);return(0,l.assertDefined)(d),s.Uint53.fromString(d.gasUsed.toString()).toNumber()}async upload(e,t,n,r=""){const o=v.default.gzip(t,{level:9}),s={typeUrl:"/cosmwasm.wasm.v1.MsgStoreCode",value:p.MsgStoreCode.fromPartial({sender:e,wasmByteCode:o})},c=await this.signAndBroadcast(e,[s],n,r);if((0,d.isDeliverTxFailure)(c))throw new Error(I(c));const u=d.logs.parseRawLog(c.rawLog),l=d.logs.findAttribute(u,"store_code","code_id");return{originalSize:t.length,originalChecksum:(0,a.toHex)((0,i.sha256)(t)),compressedSize:o.length,compressedChecksum:(0,a.toHex)((0,i.sha256)(o)),codeId:Number.parseInt(l.value,10),logs:u,height:c.height,transactionHash:c.transactionHash,gasWanted:c.gasWanted,gasUsed:c.gasUsed}}async instantiate(e,t,n,r,o,i={}){const c={typeUrl:"/cosmwasm.wasm.v1.MsgInstantiateContract",value:p.MsgInstantiateContract.fromPartial({sender:e,codeId:m.default.fromString(new s.Uint53(t).toString()),label:r,msg:(0,a.toUtf8)(JSON.stringify(n)),funds:[...i.funds||[]],admin:i.admin})},u=await this.signAndBroadcast(e,[c],o,i.memo);if((0,d.isDeliverTxFailure)(u))throw new Error(I(u));const l=d.logs.parseRawLog(u.rawLog);return{contractAddress:d.logs.findAttribute(l,"instantiate","_contract_address").value,logs:l,height:u.height,transactionHash:u.transactionHash,gasWanted:u.gasWanted,gasUsed:u.gasUsed}}async updateAdmin(e,t,n,r,o=""){const i={typeUrl:"/cosmwasm.wasm.v1.MsgUpdateAdmin",value:p.MsgUpdateAdmin.fromPartial({sender:e,contract:t,newAdmin:n})},a=await this.signAndBroadcast(e,[i],r,o);if((0,d.isDeliverTxFailure)(a))throw new Error(I(a));return{logs:d.logs.parseRawLog(a.rawLog),height:a.height,transactionHash:a.transactionHash,gasWanted:a.gasWanted,gasUsed:a.gasUsed}}async clearAdmin(e,t,n,r=""){const o={typeUrl:"/cosmwasm.wasm.v1.MsgClearAdmin",value:p.MsgClearAdmin.fromPartial({sender:e,contract:t})},i=await this.signAndBroadcast(e,[o],n,r);if((0,d.isDeliverTxFailure)(i))throw new Error(I(i));return{logs:d.logs.parseRawLog(i.rawLog),height:i.height,transactionHash:i.transactionHash,gasWanted:i.gasWanted,gasUsed:i.gasUsed}}async migrate(e,t,n,r,o,i=""){const c={typeUrl:"/cosmwasm.wasm.v1.MsgMigrateContract",value:p.MsgMigrateContract.fromPartial({sender:e,contract:t,codeId:m.default.fromString(new s.Uint53(n).toString()),msg:(0,a.toUtf8)(JSON.stringify(r))})},u=await this.signAndBroadcast(e,[c],o,i);if((0,d.isDeliverTxFailure)(u))throw new Error(I(u));return{logs:d.logs.parseRawLog(u.rawLog),height:u.height,transactionHash:u.transactionHash,gasWanted:u.gasWanted,gasUsed:u.gasUsed}}async execute(e,t,n,r,o="",i){const s={typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:p.MsgExecuteContract.fromPartial({sender:e,contract:t,msg:(0,a.toUtf8)(JSON.stringify(n)),funds:[...i||[]]})},c=await this.signAndBroadcast(e,[s],r,o);if((0,d.isDeliverTxFailure)(c))throw new Error(I(c));return{logs:d.logs.parseRawLog(c.rawLog),height:c.height,transactionHash:c.transactionHash,gasWanted:c.gasWanted,gasUsed:c.gasUsed}}async sendTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:{fromAddress:e,toAddress:t,amount:[...n]}};return this.signAndBroadcast(e,[i],r,o)}async delegateTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.staking.v1beta1.MsgDelegate",value:f.MsgDelegate.fromPartial({delegatorAddress:e,validatorAddress:t,amount:n})};return this.signAndBroadcast(e,[i],r,o)}async undelegateTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.staking.v1beta1.MsgUndelegate",value:f.MsgUndelegate.fromPartial({delegatorAddress:e,validatorAddress:t,amount:n})};return this.signAndBroadcast(e,[i],r,o)}async withdrawRewards(e,t,n,r=""){const o={typeUrl:"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",value:A.MsgWithdrawDelegatorReward.fromPartial({delegatorAddress:e,validatorAddress:t})};return this.signAndBroadcast(e,[o],n,r)}async signAndBroadcast(e,t,n,r=""){let o;if("auto"==n||"number"==typeof n){(0,l.assertDefined)(this.gasPrice,"Gas price must be set in the client options when auto gas is used.");const i=await this.simulate(e,t,r),a="number"==typeof n?n:1.3;o=(0,d.calculateFee)(Math.round(i*a),this.gasPrice)}else o=n;const i=await this.sign(e,t,o,r),a=g.TxRaw.encode(i).finish();return this.broadcastTx(a,this.broadcastTimeoutMs,this.broadcastPollIntervalMs)}async sign(e,t,n,r,o){let i;if(o)i=o;else{const{accountNumber:t,sequence:n}=await this.getSequence(e);i={accountNumber:t,sequence:n,chainId:await this.getChainId()}}return(0,c.isOfflineDirectSigner)(this.signer)?this.signDirect(e,t,n,r,i):this.signAmino(e,t,n,r,i)}async signAmino(e,t,n,r,{accountNumber:i,sequence:d,chainId:u}){(0,l.assert)(!(0,c.isOfflineDirectSigner)(this.signer));const A=(await this.signer.getAccounts()).find((t=>t.address===e));if(!A)throw new Error("Failed to retrieve account from signer");const f=(0,c.encodePubkey)((0,o.encodeSecp256k1Pubkey)(A.pubkey)),p=h.SignMode.SIGN_MODE_LEGACY_AMINO_JSON,m=t.map((e=>this.aminoTypes.toAmino(e))),v=(0,o.makeSignDoc)(m,n,u,r,i,d),{signature:y,signed:b}=await this.signer.signAmino(e,v),I={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{messages:b.msgs.map((e=>this.aminoTypes.fromAmino(e))),memo:b.memo}},C=this.registry.encode(I),E=s.Int53.fromString(b.fee.gas).toNumber(),w=s.Int53.fromString(b.sequence).toNumber(),B=(0,c.makeAuthInfoBytes)([{pubkey:f,sequence:w}],b.fee.amount,E,p);return g.TxRaw.fromPartial({bodyBytes:C,authInfoBytes:B,signatures:[(0,a.fromBase64)(y.signature)]})}async signDirect(e,t,n,r,{accountNumber:i,sequence:d,chainId:u}){(0,l.assert)((0,c.isOfflineDirectSigner)(this.signer));const A=(await this.signer.getAccounts()).find((t=>t.address===e));if(!A)throw new Error("Failed to retrieve account from signer");const f=(0,c.encodePubkey)((0,o.encodeSecp256k1Pubkey)(A.pubkey)),h={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{messages:t,memo:r}},p=this.registry.encode(h),m=s.Int53.fromString(n.gas).toNumber(),v=(0,c.makeAuthInfoBytes)([{pubkey:f,sequence:d}],n.amount,m),y=(0,c.makeSignDoc)(p,v,u,i),{signature:b,signed:I}=await this.signer.signDirect(e,y);return g.TxRaw.fromPartial({bodyBytes:I.bodyBytes,authInfoBytes:I.authInfoBytes,signatures:[(0,a.fromBase64)(b.signature)]})}}t.SigningCosmWasmClient=E},9549:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Bip39=t.EnglishMnemonic=t.mnemonicToEntropy=t.entropyToMnemonic=void 0;const r=n(8972),o=n(2997),i=n(2387),a=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];function s(e){return Array.from(e).map((e=>e.toString(2).padStart(8,"0"))).join("")}function c(e){const t=8*e.length/32;return s((0,i.sha256)(e)).slice(0,t)}function d(e){return parseInt(e,2)}const u=[16,20,24,28,32],l=[12,15,18,21,24];function A(e){if(-1===u.indexOf(e.length))throw new Error("invalid input length");return(s(e)+c(e)).match(/(.{11})/g).map((e=>{const t=d(e);return a[t]})).join(" ")}function f(e){return e.normalize("NFKD")}function h(e){const t=f(e).split(" ");if(!l.includes(t.length))throw new Error("Invalid number of words");const n=t.map((e=>{const t=a.indexOf(e);if(-1===t)throw new Error("Found word that is not in the wordlist");return t.toString(2).padStart(11,"0")})).join(""),r=32*Math.floor(n.length/33),o=n.slice(0,r),i=n.slice(r),s=o.match(/(.{1,8})/g).map(d);if(s.length<16||s.length>32||s.length%4!=0)throw new Error("Invalid entropy");const u=Uint8Array.from(s);if(c(u)!==i)throw new Error("Invalid mnemonic checksum");return u}t.entropyToMnemonic=A,t.mnemonicToEntropy=h;class g{constructor(e){if(!g.mnemonicMatcher.test(e))throw new Error("Invalid mnemonic format");const t=e.split(" "),n=[12,15,18,21,24];if(-1===n.indexOf(t.length))throw new Error(`Invalid word count in mnemonic (allowed: ${n} got: ${t.length})`);for(const e of t)if(-1===g.wordlist.indexOf(e))throw new Error("Mnemonic contains invalid word");h(e),this.data=e}toString(){return this.data}}t.EnglishMnemonic=g,g.wordlist=a,g.mnemonicMatcher=/^[a-z]+( [a-z]+)*$/,t.Bip39=class{static encode(e){return new g(A(e))}static decode(e){return h(e.toString())}static async mnemonicToSeed(e,t){const n=(0,r.toUtf8)(f(e.toString())),i="mnemonic"+(t?f(t):""),a=(0,r.toUtf8)(i);return(0,o.pbkdf2Sha512)(n,a,2048,64)}}},3955:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hmac=void 0,t.Hmac=class{constructor(e,t){const n=(new e).blockSize;this.hash=t=>(new e).update(t).digest();let r=t;if(r.length>n&&(r=this.hash(r)),r.length92^e)),this.iKeyPad=r.map((e=>54^e)),this.messageHasher=new e,this.blockSize=n,this.update(this.iKeyPad)}update(e){return this.messageHasher.update(e),this}digest(){const e=this.messageHasher.digest();return this.hash(new Uint8Array([...this.oKeyPad,...e]))}}},9562:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringToPath=t.Slip10RawIndex=t.slip10CurveFromString=t.Slip10Curve=t.Slip10=t.pathToString=t.sha512=t.Sha512=t.sha256=t.Sha256=t.Secp256k1Signature=t.ExtendedSecp256k1Signature=t.Secp256k1=t.ripemd160=t.Ripemd160=t.Random=t.Xchacha20poly1305Ietf=t.xchacha20NonceLength=t.isArgon2idOptions=t.Ed25519Keypair=t.Ed25519=t.Argon2id=t.keccak256=t.Keccak256=t.Hmac=t.EnglishMnemonic=t.Bip39=void 0;var r=n(9549);Object.defineProperty(t,"Bip39",{enumerable:!0,get:function(){return r.Bip39}}),Object.defineProperty(t,"EnglishMnemonic",{enumerable:!0,get:function(){return r.EnglishMnemonic}});var o=n(3955);Object.defineProperty(t,"Hmac",{enumerable:!0,get:function(){return o.Hmac}});var i=n(9372);Object.defineProperty(t,"Keccak256",{enumerable:!0,get:function(){return i.Keccak256}}),Object.defineProperty(t,"keccak256",{enumerable:!0,get:function(){return i.keccak256}});var a=n(3942);Object.defineProperty(t,"Argon2id",{enumerable:!0,get:function(){return a.Argon2id}}),Object.defineProperty(t,"Ed25519",{enumerable:!0,get:function(){return a.Ed25519}}),Object.defineProperty(t,"Ed25519Keypair",{enumerable:!0,get:function(){return a.Ed25519Keypair}}),Object.defineProperty(t,"isArgon2idOptions",{enumerable:!0,get:function(){return a.isArgon2idOptions}}),Object.defineProperty(t,"xchacha20NonceLength",{enumerable:!0,get:function(){return a.xchacha20NonceLength}}),Object.defineProperty(t,"Xchacha20poly1305Ietf",{enumerable:!0,get:function(){return a.Xchacha20poly1305Ietf}});var s=n(616);Object.defineProperty(t,"Random",{enumerable:!0,get:function(){return s.Random}});var c=n(568);Object.defineProperty(t,"Ripemd160",{enumerable:!0,get:function(){return c.Ripemd160}}),Object.defineProperty(t,"ripemd160",{enumerable:!0,get:function(){return c.ripemd160}});var d=n(6649);Object.defineProperty(t,"Secp256k1",{enumerable:!0,get:function(){return d.Secp256k1}});var u=n(8222);Object.defineProperty(t,"ExtendedSecp256k1Signature",{enumerable:!0,get:function(){return u.ExtendedSecp256k1Signature}}),Object.defineProperty(t,"Secp256k1Signature",{enumerable:!0,get:function(){return u.Secp256k1Signature}});var l=n(2387);Object.defineProperty(t,"Sha256",{enumerable:!0,get:function(){return l.Sha256}}),Object.defineProperty(t,"sha256",{enumerable:!0,get:function(){return l.sha256}}),Object.defineProperty(t,"Sha512",{enumerable:!0,get:function(){return l.Sha512}}),Object.defineProperty(t,"sha512",{enumerable:!0,get:function(){return l.sha512}});var A=n(2081);Object.defineProperty(t,"pathToString",{enumerable:!0,get:function(){return A.pathToString}}),Object.defineProperty(t,"Slip10",{enumerable:!0,get:function(){return A.Slip10}}),Object.defineProperty(t,"Slip10Curve",{enumerable:!0,get:function(){return A.Slip10Curve}}),Object.defineProperty(t,"slip10CurveFromString",{enumerable:!0,get:function(){return A.slip10CurveFromString}}),Object.defineProperty(t,"Slip10RawIndex",{enumerable:!0,get:function(){return A.Slip10RawIndex}}),Object.defineProperty(t,"stringToPath",{enumerable:!0,get:function(){return A.stringToPath}})},9372:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.keccak256=t.Keccak256=void 0;const r=n(5426),o=n(9583);class i{constructor(e){this.blockSize=64,this.impl=r.keccak_256.create(),e&&this.update(e)}update(e){return this.impl.update((0,o.toRealUint8Array)(e)),this}digest(){return this.impl.digest()}}t.Keccak256=i,t.keccak256=function(e){return new i(e).digest()}},3942:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Xchacha20poly1305Ietf=t.xchacha20NonceLength=t.Ed25519=t.Ed25519Keypair=t.Argon2id=t.isArgon2idOptions=void 0;const o=n(5553),i=r(n(6869));t.isArgon2idOptions=function(e){return!!(0,o.isNonNullObject)(e)&&"number"==typeof e.outputLength&&"number"==typeof e.opsLimit&&"number"==typeof e.memLimitKib},t.Argon2id=class{static async execute(e,t,n){return await i.default.ready,i.default.crypto_pwhash(n.outputLength,e,t,n.opsLimit,1024*n.memLimitKib,i.default.crypto_pwhash_ALG_ARGON2ID13)}};class a{constructor(e,t){this.privkey=e,this.pubkey=t}static fromLibsodiumPrivkey(e){if(64!==e.length)throw new Error(`Unexpected key length ${e.length}. Must be 64.`);return new a(e.slice(0,32),e.slice(32,64))}toLibsodiumPrivkey(){return new Uint8Array([...this.privkey,...this.pubkey])}}t.Ed25519Keypair=a,t.Ed25519=class{static async makeKeypair(e){await i.default.ready;const t=i.default.crypto_sign_seed_keypair(e);return a.fromLibsodiumPrivkey(t.privateKey)}static async createSignature(e,t){return await i.default.ready,i.default.crypto_sign_detached(e,t.toLibsodiumPrivkey())}static async verifySignature(e,t,n){return await i.default.ready,i.default.crypto_sign_verify_detached(e,t,n)}},t.xchacha20NonceLength=24,t.Xchacha20poly1305Ietf=class{static async encrypt(e,t,n){return await i.default.ready,i.default.crypto_aead_xchacha20poly1305_ietf_encrypt(e,null,null,n,t)}static async decrypt(e,t,n){return await i.default.ready,i.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null,e,null,n,t)}}},2997:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.pbkdf2Sha512=t.pbkdf2Sha512Noble=t.pbkdf2Sha512Crypto=t.pbkdf2Sha512Subtle=t.getSubtle=t.getCryptoModule=void 0;const a=n(5553),s=n(9023),c=n(6262);async function d(){try{const e=await Promise.resolve().then((()=>i(n(8010))));if("object"==typeof e&&Object.keys(e).length<=1)return;return e}catch(e){return}}async function u(){const e=globalThis;let t=e.crypto&&e.crypto.subtle;if(!t){const e=await d();e&&e.webcrypto&&e.webcrypto.subtle&&(t=e.webcrypto.subtle)}return t}async function l(e,t,n,r,o){return(0,a.assert)(e,"Argument subtle is falsy"),(0,a.assert)("object"==typeof e,"Argument subtle is not of type object"),(0,a.assert)("function"==typeof e.importKey,"subtle.importKey is not a function"),(0,a.assert)("function"==typeof e.deriveBits,"subtle.deriveBits is not a function"),e.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((t=>e.deriveBits({name:"PBKDF2",salt:n,iterations:r,hash:{name:"SHA-512"}},t,8*o).then((e=>new Uint8Array(e)))))}async function A(e,t,n,r,o){return(0,a.assert)(e,"Argument crypto is falsy"),(0,a.assert)("object"==typeof e,"Argument crypto is not of type object"),(0,a.assert)("function"==typeof e.pbkdf2,"crypto.pbkdf2 is not a function"),new Promise(((i,a)=>{e.pbkdf2(t,n,r,o,"sha512",((e,t)=>{e?a(e):i(Uint8Array.from(t))}))}))}async function f(e,t,n,r){return(0,s.pbkdf2Async)(c.sha512,e,t,{c:n,dkLen:r})}t.getCryptoModule=d,t.getSubtle=u,t.pbkdf2Sha512Subtle=l,t.pbkdf2Sha512Crypto=A,t.pbkdf2Sha512Noble=f,t.pbkdf2Sha512=async function(e,t,n,r){const o=await u();if(o)return l(o,e,t,n,r);{const o=await d();return o?A(o,e,t,n,r):f(e,t,n,r)}}},616:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Random=void 0,t.Random=class{static getBytes(e){try{const t="object"==typeof window?window:self,n=void 0!==t.crypto?t.crypto:t.msCrypto,r=new Uint8Array(e);return n.getRandomValues(r),r}catch(t){try{const t=n(8010);return new Uint8Array([...t.randomBytes(e)])}catch(e){throw new Error("No secure random number generator found")}}}}},568:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ripemd160=t.Ripemd160=void 0;const r=n(830),o=n(9583);class i{constructor(e){this.blockSize=64,this.impl=r.ripemd160.create(),e&&this.update(e)}update(e){return this.impl.update((0,o.toRealUint8Array)(e)),this}digest(){return this.impl.digest()}}t.Ripemd160=i,t.ripemd160=function(e){return new i(e).digest()}},6649:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Secp256k1=void 0;const o=n(8972),i=r(n(3550)),a=r(n(6266)),s=n(8222),c=new a.default.ec("secp256k1"),d=new i.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141","hex");t.Secp256k1=class{static async makeKeypair(e){if(32!==e.length)throw new Error("input data is not a valid secp256k1 private key");const t=c.keyFromPrivate(e);if(!0!==t.validate().result)throw new Error("input data is not a valid secp256k1 private key");if(new i.default(e).gte(d))throw new Error("input data is not a valid secp256k1 private key");return{privkey:(0,o.fromHex)(t.getPrivate("hex")),pubkey:Uint8Array.from(t.getPublic("array"))}}static async createSignature(e,t){if(0===e.length)throw new Error("Message hash must not be empty");if(e.length>32)throw new Error("Message hash length must not exceed 32 bytes");const n=c.keyFromPrivate(t),{r,s:o,recoveryParam:i}=n.sign(e,{canonical:!0});if("number"!=typeof i)throw new Error("Recovery param missing");return new s.ExtendedSecp256k1Signature(Uint8Array.from(r.toArray()),Uint8Array.from(o.toArray()),i)}static async verifySignature(e,t,n){if(0===t.length)throw new Error("Message hash must not be empty");if(t.length>32)throw new Error("Message hash length must not exceed 32 bytes");const r=c.keyFromPublic(n);try{return r.verify(t,e.toDer())}catch(e){return!1}}static recoverPubkey(e,t){const n={r:(0,o.toHex)(e.r()),s:(0,o.toHex)(e.s())},r=c.recoverPubKey(t,n,e.recovery),i=c.keyFromPublic(r);return(0,o.fromHex)(i.getPublic(!1,"hex"))}static compressPubkey(e){switch(e.length){case 33:return e;case 65:return Uint8Array.from(c.keyFromPublic(e).getPublic(!0,"array"));default:throw new Error("Invalid pubkey length")}}static uncompressPubkey(e){switch(e.length){case 33:return Uint8Array.from(c.keyFromPublic(e).getPublic(!1,"array"));case 65:return e;default:throw new Error("Invalid pubkey length")}}static trimRecoveryByte(e){switch(e.length){case 64:return e;case 65:return e.slice(0,64);default:throw new Error("Invalid signature length")}}}},8222:(e,t)=>{"use strict";function n(e){let t=0;for(const n of e){if(0!==n)break;t++}return e.slice(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedSecp256k1Signature=t.Secp256k1Signature=void 0;class r{constructor(e,t){if(e.length>32||0===e.length||0===e[0])throw new Error("Unsigned integer r must be encoded as unpadded big endian.");if(t.length>32||0===t.length||0===t[0])throw new Error("Unsigned integer s must be encoded as unpadded big endian.");this.data={r:e,s:t}}static fromFixedLength(e){if(64!==e.length)throw new Error(`Got invalid data length: ${e.length}. Expected 2x 32 bytes for the pair (r, s)`);return new r(n(e.slice(0,32)),n(e.slice(32,64)))}static fromDer(e){let t=0;if(48!==e[t++])throw new Error("Prefix 0x30 expected");const o=e[t++];if(e.length-t!==o)throw new Error("Data length mismatch detected");if(2!==e[t++])throw new Error("INTEGER tag expected");const i=e[t++];if(i>=128)throw new Error("Decoding length values above 127 not supported");const a=e.slice(t,t+i);if(t+=i,2!==e[t++])throw new Error("INTEGER tag expected");const s=e[t++];if(s>=128)throw new Error("Decoding length values above 127 not supported");const c=e.slice(t,t+s);return t+=s,new r(n(a),n(c))}r(e){if(void 0===e)return this.data.r;{const t=e-this.data.r.length;if(t<0)throw new Error("Length too small to hold parameter r");const n=new Uint8Array(t);return new Uint8Array([...n,...this.data.r])}}s(e){if(void 0===e)return this.data.s;{const t=e-this.data.s.length;if(t<0)throw new Error("Length too small to hold parameter s");const n=new Uint8Array(t);return new Uint8Array([...n,...this.data.s])}}toFixedLength(){return new Uint8Array([...this.r(32),...this.s(32)])}toDer(){const e=this.data.r[0]>=128?new Uint8Array([0,...this.data.r]):this.data.r,t=this.data.s[0]>=128?new Uint8Array([0,...this.data.s]):this.data.s,n=e.length,r=t.length,o=new Uint8Array([2,n,...e,2,r,...t]);return new Uint8Array([48,o.length,...o])}}t.Secp256k1Signature=r;class o extends r{constructor(e,t,n){if(super(e,t),!Number.isInteger(n))throw new Error("The recovery parameter must be an integer.");if(n<0||n>4)throw new Error("The recovery parameter must be one of 0, 1, 2, 3.");this.recovery=n}static fromFixedLength(e){if(65!==e.length)throw new Error(`Got invalid data length ${e.length}. Expected 32 + 32 + 1`);return new o(n(e.slice(0,32)),n(e.slice(32,64)),e[64])}toFixedLength(){return new Uint8Array([...this.r(32),...this.s(32),this.recovery])}}t.ExtendedSecp256k1Signature=o},2387:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sha512=t.Sha512=t.sha256=t.Sha256=void 0;const r=n(3061),o=n(6262),i=n(9583);class a{constructor(e){this.blockSize=64,this.impl=r.sha256.create(),e&&this.update(e)}update(e){return this.impl.update((0,i.toRealUint8Array)(e)),this}digest(){return this.impl.digest()}}t.Sha256=a,t.sha256=function(e){return new a(e).digest()};class s{constructor(e){this.blockSize=128,this.impl=o.sha512.create(),e&&this.update(e)}update(e){return this.impl.update((0,i.toRealUint8Array)(e)),this}digest(){return this.impl.digest()}}t.Sha512=s,t.sha512=function(e){return new s(e).digest()}},2081:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.stringToPath=t.pathToString=t.Slip10=t.Slip10RawIndex=t.slip10CurveFromString=t.Slip10Curve=void 0;const o=n(8972),i=n(6961),a=r(n(3550)),s=r(n(6266)),c=n(3955),d=n(2387);var u;!function(e){e.Secp256k1="Bitcoin seed",e.Ed25519="ed25519 seed"}(u=t.Slip10Curve||(t.Slip10Curve={})),t.slip10CurveFromString=function(e){switch(e){case u.Ed25519:return u.Ed25519;case u.Secp256k1:return u.Secp256k1;default:throw new Error(`Unknown curve string: '${e}'`)}};class l extends i.Uint32{static hardened(e){return new l(e+2**31)}static normal(e){return new l(e)}isHardened(){return this.data>=2**31}}t.Slip10RawIndex=l;const A=new s.default.ec("secp256k1");class f{static derivePath(e,t,n){let r=this.master(e,t);for(const t of n)r=this.child(e,r.privkey,r.chainCode,t);return r}static master(e,t){const n=new c.Hmac(d.Sha512,(0,o.toAscii)(e)).update(t).digest(),r=n.slice(0,32),i=n.slice(32,64);return e!==u.Ed25519&&(this.isZero(r)||this.isGteN(e,r))?this.master(e,n):{chainCode:i,privkey:r}}static child(e,t,n,r){let o;if(r.isHardened()){const e=new Uint8Array([0,...t,...r.toBytesBigEndian()]);o=new c.Hmac(d.Sha512,n).update(e).digest()}else{if(e===u.Ed25519)throw new Error("Normal keys are not allowed with ed25519");{const i=new Uint8Array([...f.serializedPoint(e,new a.default(t)),...r.toBytesBigEndian()]);o=new c.Hmac(d.Sha512,n).update(i).digest()}}return this.childImpl(e,t,n,r,o)}static serializedPoint(e,t){if(e===u.Secp256k1)return(0,o.fromHex)(A.g.mul(t).encodeCompressed("hex"));throw new Error("curve not supported")}static childImpl(e,t,n,r,o){const i=o.slice(0,32),s=o.slice(32,64),l=s;if(e===u.Ed25519)return{chainCode:l,privkey:i};const A=this.n(e),f=new a.default(i).add(new a.default(t)).mod(A),h=Uint8Array.from(f.toArray("be",32));if(this.isGteN(e,i)||this.isZero(h)){const o=new c.Hmac(d.Sha512,n).update(new Uint8Array([1,...s,...r.toBytesBigEndian()])).digest();return this.childImpl(e,t,n,r,o)}return{chainCode:l,privkey:h}}static isZero(e){return e.every((e=>0===e))}static isGteN(e,t){return new a.default(t).gte(this.n(e))}static n(e){if(e===u.Secp256k1)return new a.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141",16);throw new Error("curve not supported")}}t.Slip10=f,t.pathToString=function(e){return e.reduce(((e,t)=>e+"/"+(t.isHardened()?t.toNumber()-2**31+"'":t.toString())),"m")},t.stringToPath=function(e){if(!e.startsWith("m"))throw new Error("Path string must start with 'm'");let t=e.slice(1);const n=new Array;for(;t;){const e=t.match(/^\/([0-9]+)('?)/);if(!e)throw new Error("Syntax error while reading path component");const[r,o,a]=e,s=i.Uint53.fromString(o).toNumber();if(s>=2**31)throw new Error("Component value too high. Must not exceed 2**31-1.");a?n.push(l.hardened(s)):n.push(l.normal(s)),t=t.slice(r.length)}return n}},9583:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toRealUint8Array=void 0,t.toRealUint8Array=function(e){return e instanceof Uint8Array?e:Uint8Array.from(e)}},7768:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromAscii=t.toAscii=void 0,t.toAscii=function(e){return Uint8Array.from(e.split("").map((e=>{const t=e.charCodeAt(0);if(t<32||t>126)throw new Error("Cannot encode character that is out of printable ASCII range: "+t);return t})))},t.fromAscii=function(e){return(t=Array.from(e),t.map((e=>{if(e<32||e>126)throw new Error("Cannot decode character that is out of printable ASCII range: "+e);return String.fromCharCode(e)}))).join("");var t}},3431:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.fromBase64=t.toBase64=void 0;const a=i(n(9742));t.toBase64=function(e){return a.fromByteArray(e)},t.fromBase64=function(e){if(!e.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new Error("Invalid base64 string format");return a.toByteArray(e)}},5438:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Bech32=t.fromBech32=t.toBech32=void 0;const a=i(n(2882));function s(e,t,n){return a.encode(e,a.toWords(t),n)}function c(e,t=1/0){const n=a.decode(e,t);return{prefix:n.prefix,data:new Uint8Array(a.fromWords(n.words))}}t.toBech32=s,t.fromBech32=c,t.Bech32=class{static encode(e,t,n){return s(e,t,n)}static decode(e,t=1/0){return c(e,t)}}},6135:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromHex=t.toHex=void 0,t.toHex=function(e){let t="";for(const n of e)t+=("0"+n.toString(16)).slice(-2);return t},t.fromHex=function(e){if(e.length%2!=0)throw new Error("hex string length must be a multiple of 2");const t=new Uint8Array(e.length/2);for(let n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUtf8=t.fromUtf8=t.toRfc3339=t.fromRfc3339=t.toHex=t.fromHex=t.toBech32=t.fromBech32=t.Bech32=t.toBase64=t.fromBase64=t.toAscii=t.fromAscii=void 0;var r=n(7768);Object.defineProperty(t,"fromAscii",{enumerable:!0,get:function(){return r.fromAscii}}),Object.defineProperty(t,"toAscii",{enumerable:!0,get:function(){return r.toAscii}});var o=n(3431);Object.defineProperty(t,"fromBase64",{enumerable:!0,get:function(){return o.fromBase64}}),Object.defineProperty(t,"toBase64",{enumerable:!0,get:function(){return o.toBase64}});var i=n(5438);Object.defineProperty(t,"Bech32",{enumerable:!0,get:function(){return i.Bech32}}),Object.defineProperty(t,"fromBech32",{enumerable:!0,get:function(){return i.fromBech32}}),Object.defineProperty(t,"toBech32",{enumerable:!0,get:function(){return i.toBech32}});var a=n(6135);Object.defineProperty(t,"fromHex",{enumerable:!0,get:function(){return a.fromHex}}),Object.defineProperty(t,"toHex",{enumerable:!0,get:function(){return a.toHex}});var s=n(7310);Object.defineProperty(t,"fromRfc3339",{enumerable:!0,get:function(){return s.fromRfc3339}}),Object.defineProperty(t,"toRfc3339",{enumerable:!0,get:function(){return s.toRfc3339}});var c=n(6081);Object.defineProperty(t,"fromUtf8",{enumerable:!0,get:function(){return c.fromUtf8}}),Object.defineProperty(t,"toUtf8",{enumerable:!0,get:function(){return c.toUtf8}})},7310:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toRfc3339=t.fromRfc3339=void 0;const n=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/;function r(e,t=2){const n="00000"+e.toString();return n.substring(n.length-t)}t.fromRfc3339=function(e){const t=n.exec(e);if(!t)throw new Error("Date string is not in RFC3339 format");const r=+t[1],o=+t[2],i=+t[3],a=+t[4],s=+t[5],c=+t[6],d=t[7]?Math.floor(1e3*+t[7]):0;let u,l,A;"Z"===t[8]?(u=1,l=0,A=0):(u="-"===t[8].substring(0,1)?-1:1,l=+t[8].substring(1,3),A=+t[8].substring(4,6));const f=u*(60*l+A)*60,h=Date.UTC(r,o-1,i,a,s,c,d)-1e3*f;return new Date(h)},t.toRfc3339=function(e){return`${e.getUTCFullYear()}-${r(e.getUTCMonth()+1)}-${r(e.getUTCDate())}T${r(e.getUTCHours())}:${r(e.getUTCMinutes())}:${r(e.getUTCSeconds())}.${r(e.getUTCMilliseconds(),3)}Z`}},6081:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromUtf8=t.toUtf8=void 0,t.toUtf8=function(e){return(new TextEncoder).encode(e)},t.fromUtf8=function(e){return new TextDecoder("utf-8",{fatal:!0}).decode(e)}},240:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FaucetClient=void 0;const o=r(n(9669));t.FaucetClient=class{constructor(e){if(!e.match(/^https?:\/\//))throw new Error("Expected base url to start with http:// or https://");const t=e.replace(/(\/+)$/,"");this.baseUrl=t}async credit(e,t){const n={address:e,denom:t};try{await o.default.post(this.baseUrl+"/credit",n)}catch(e){throw e.response?new Error(`${e}; response body: ${JSON.stringify(e.response.data)}`):e}}}},1467:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaucetClient=void 0;var r=n(240);Object.defineProperty(t,"FaucetClient",{enumerable:!0,get:function(){return r.FaucetClient}})},4111:(e,t)=>{"use strict";function n(e){return!("string"!=typeof e&&"number"!=typeof e&&"boolean"!=typeof e&&null!==e&&!r(e)&&!o(e))}function r(e){if(!Array.isArray(e))return!1;for(const t of e)if(!n(t))return!1;return!0}function o(e){return"object"==typeof e&&null!==e&&"[object Object]"===Object.prototype.toString.call(e)&&Object.values(e).every(n)}Object.defineProperty(t,"__esModule",{value:!0}),t.isJsonCompatibleDictionary=t.isJsonCompatibleArray=t.isJsonCompatibleValue=void 0,t.isJsonCompatibleValue=n,t.isJsonCompatibleArray=r,t.isJsonCompatibleDictionary=o},8729:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeJsonRpcId=void 0;let n=1e4;t.makeJsonRpcId=function(){return n+=1}},2812:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.jsonRpcCode=t.isJsonRpcSuccessResponse=t.isJsonRpcErrorResponse=t.parseJsonRpcSuccessResponse=t.parseJsonRpcResponse=t.parseJsonRpcRequest=t.parseJsonRpcId=t.parseJsonRpcErrorResponse=t.JsonRpcClient=t.makeJsonRpcId=void 0;var r=n(8729);Object.defineProperty(t,"makeJsonRpcId",{enumerable:!0,get:function(){return r.makeJsonRpcId}});var o=n(1123);Object.defineProperty(t,"JsonRpcClient",{enumerable:!0,get:function(){return o.JsonRpcClient}});var i=n(2743);Object.defineProperty(t,"parseJsonRpcErrorResponse",{enumerable:!0,get:function(){return i.parseJsonRpcErrorResponse}}),Object.defineProperty(t,"parseJsonRpcId",{enumerable:!0,get:function(){return i.parseJsonRpcId}}),Object.defineProperty(t,"parseJsonRpcRequest",{enumerable:!0,get:function(){return i.parseJsonRpcRequest}}),Object.defineProperty(t,"parseJsonRpcResponse",{enumerable:!0,get:function(){return i.parseJsonRpcResponse}}),Object.defineProperty(t,"parseJsonRpcSuccessResponse",{enumerable:!0,get:function(){return i.parseJsonRpcSuccessResponse}});var a=n(3974);Object.defineProperty(t,"isJsonRpcErrorResponse",{enumerable:!0,get:function(){return a.isJsonRpcErrorResponse}}),Object.defineProperty(t,"isJsonRpcSuccessResponse",{enumerable:!0,get:function(){return a.isJsonRpcSuccessResponse}}),Object.defineProperty(t,"jsonRpcCode",{enumerable:!0,get:function(){return a.jsonRpcCode}})},1123:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JsonRpcClient=void 0;const r=n(1459),o=n(3974);t.JsonRpcClient=class{constructor(e){this.connection=e}async run(e){const t=this.connection.responseStream.filter((t=>t.id===e.id)),n=(0,r.firstEvent)(t);this.connection.sendRequest(e);const i=await n;if((0,o.isJsonRpcErrorResponse)(i)){const e=i.error;throw new Error(`JSON RPC error: code=${e.code}; message='${e.message}'`)}return i}}},2743:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseJsonRpcResponse=t.parseJsonRpcSuccessResponse=t.parseJsonRpcErrorResponse=t.parseJsonRpcRequest=t.parseJsonRpcId=void 0;const r=n(4111);function o(e){if(!(0,r.isJsonCompatibleDictionary)(e))throw new Error("Data must be JSON compatible dictionary");const t=e.id;return"number"!=typeof t&&"string"!=typeof t?null:t}function i(e){if("number"!=typeof e.code)throw new Error("Error property 'code' is not a number");if("string"!=typeof e.message)throw new Error("Error property 'message' is not a string");let t;if(void 0===e.data)t=void 0;else{if(!(0,r.isJsonCompatibleValue)(e.data))throw new Error("Error property 'data' is defined but not a JSON compatible value.");t=e.data}return{code:e.code,message:e.message,...void 0!==t?{data:t}:{}}}function a(e){if(!(0,r.isJsonCompatibleDictionary)(e))throw new Error("Data must be JSON compatible dictionary");if("2.0"!==e.jsonrpc)throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(e)}`);const t=e.id;if("number"!=typeof t&&"string"!=typeof t&&null!==t)throw new Error("Invalid id field");if(void 0===e.error||!(0,r.isJsonCompatibleDictionary)(e.error))throw new Error("Invalid error field");return{jsonrpc:"2.0",id:t,error:i(e.error)}}function s(e){if(!(0,r.isJsonCompatibleDictionary)(e))throw new Error("Data must be JSON compatible dictionary");if("2.0"!==e.jsonrpc)throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(e)}`);const t=e.id;if("number"!=typeof t&&"string"!=typeof t)throw new Error("Invalid id field");if(void 0===e.result)throw new Error("Invalid result field");return{jsonrpc:"2.0",id:t,result:e.result}}t.parseJsonRpcId=o,t.parseJsonRpcRequest=function(e){if(!(0,r.isJsonCompatibleDictionary)(e))throw new Error("Data must be JSON compatible dictionary");if("2.0"!==e.jsonrpc)throw new Error(`Got unexpected jsonrpc version: ${e.jsonrpc}`);const t=o(e);if(null===t)throw new Error("Invalid id field");const n=e.method;if("string"!=typeof n)throw new Error("Invalid method field");if(!(0,r.isJsonCompatibleArray)(e.params)&&!(0,r.isJsonCompatibleDictionary)(e.params))throw new Error("Invalid params field");return{jsonrpc:"2.0",id:t,method:n,params:e.params}},t.parseJsonRpcErrorResponse=a,t.parseJsonRpcSuccessResponse=s,t.parseJsonRpcResponse=function(e){let t;try{t=a(e)}catch(n){t=s(e)}return t}},3974:(e,t)=>{"use strict";function n(e){return"object"==typeof e.error}Object.defineProperty(t,"__esModule",{value:!0}),t.jsonRpcCode=t.isJsonRpcSuccessResponse=t.isJsonRpcErrorResponse=void 0,t.isJsonRpcErrorResponse=n,t.isJsonRpcSuccessResponse=function(e){return!n(e)},t.jsonRpcCode={parseError:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internalError:-32603,serverError:{default:-32e3}}},8121:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LedgerSigner=t.LedgerConnector=void 0;var r=n(7960);Object.defineProperty(t,"LedgerConnector",{enumerable:!0,get:function(){return r.LedgerConnector}});var o=n(4009);Object.defineProperty(t,"LedgerSigner",{enumerable:!0,get:function(){return o.LedgerSigner}})},7960:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LedgerConnector=void 0;const o=n(3359),i=n(9562),a=n(8972),s=n(5553),c=r(n(9246)),d=r(n(1249));function u(e){return e.map((e=>e.isHardened()?e.toNumber()-2**31:e.toNumber()))}const l=(0,o.makeCosmoshubPath)(0);t.LedgerConnector=class{constructor(e,t={}){var n,r,o,i,a;const s={hdPaths:[l],prefix:"cosmos",testModeAllowed:!1,ledgerAppName:"Cosmos",requiredLedgerAppVersion:"1.5.3"};this.testModeAllowed=null!==(n=t.testModeAllowed)&&void 0!==n?n:s.testModeAllowed,this.hdPaths=null!==(r=t.hdPaths)&&void 0!==r?r:s.hdPaths,this.prefix=null!==(o=t.prefix)&&void 0!==o?o:s.prefix,this.ledgerAppName=null!==(i=t.ledgerAppName)&&void 0!==i?i:s.ledgerAppName,this.minLedgerAppVersion=null!==(a=t.minLedgerAppVersion)&&void 0!==a?a:s.requiredLedgerAppVersion,this.app=new c.default(e)}async getCosmosAppVersion(){await this.verifyCosmosAppIsOpen(),(0,s.assert)(this.app,`${this.ledgerAppName} Ledger App is not connected`);const e=await this.app.getVersion();this.handleLedgerErrors(e);const{major:t,minor:n,patch:r,test_mode:o}=e;return this.verifyAppMode(o),`${t}.${n}.${r}`}async getPubkey(e){await this.verifyDeviceIsReady(),(0,s.assert)(this.app,`${this.ledgerAppName} Ledger App is not connected`);const t=e||this.hdPaths[0],n=await this.app.publicKey(u(t));return this.handleLedgerErrors(n),Uint8Array.from(n.compressed_pk)}async getPubkeys(){return this.hdPaths.reduce(((e,t)=>e.then((async e=>[...e,await this.getPubkey(t)]))),Promise.resolve([]))}async getCosmosAddress(e){const t=e||await this.getPubkey();return(0,o.pubkeyToAddress)((0,o.encodeSecp256k1Pubkey)(t),this.prefix)}async sign(e,t){await this.verifyDeviceIsReady(),(0,s.assert)(this.app,`${this.ledgerAppName} Ledger App is not connected`);const n=t||this.hdPaths[0],r=await this.app.sign(u(n),(0,a.fromUtf8)(e));return this.handleLedgerErrors(r,"Transaction signing request was rejected by the user"),i.Secp256k1Signature.fromDer(r.signature).toFixedLength()}verifyAppMode(e){if(e&&!this.testModeAllowed)throw new Error(`DANGER: The ${this.ledgerAppName} Ledger app is in test mode and should not be used on mainnet!`)}async getOpenAppName(){(0,s.assert)(this.app,`${this.ledgerAppName} Ledger App is not connected`);const e=await this.app.appInfo();return this.handleLedgerErrors(e),e.appName}async verifyAppVersion(){const e=await this.getCosmosAppVersion();if(!d.default.gte(e,this.minLedgerAppVersion))throw new Error(`Outdated version: Please update ${this.ledgerAppName} Ledger App to the latest version.`)}async verifyCosmosAppIsOpen(){const e=await this.getOpenAppName();if("dashboard"===e.toLowerCase())throw new Error(`Please open the ${this.ledgerAppName} Ledger app on your Ledger device.`);if(e.toLowerCase()!==this.ledgerAppName.toLowerCase())throw new Error(`Please close ${e} and open the ${this.ledgerAppName} Ledger app on your Ledger device.`)}async verifyDeviceIsReady(){await this.verifyAppVersion(),await this.verifyCosmosAppIsOpen()}async showAddress(e){await this.verifyDeviceIsReady();const t=e||this.hdPaths[0],n=await this.app.showAddressAndPubKey(u(t),this.prefix);this.handleLedgerErrors(n);const{address:r,compressed_pk:i}=n;return{address:r,pubkey:(0,o.encodeSecp256k1Pubkey)(i)}}handleLedgerErrors({error_message:e="No errors",device_locked:t=!1},n="Request was rejected by the user"){if(t)throw new Error("Ledger’s screensaver mode is on");switch(e){case"U2F: Timeout":throw new Error("Connection timed out. Please try again.");case"Cosmos app does not seem to be open":throw new Error(`${this.ledgerAppName} app is not open`);case"Command not allowed":throw new Error("Transaction rejected");case"Transaction rejected":throw new Error(n);case"Unknown Status Code: 26628":throw new Error("Ledger’s screensaver mode is on");case"Instruction not supported":throw new Error(`Your ${this.ledgerAppName} Ledger App is not up to date. Please update to version ${this.minLedgerAppVersion} or newer.`);case"No errors":break;default:throw new Error(`Ledger Native Error: ${e}`)}}}},4009:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LedgerSigner=void 0;const r=n(3359),o=n(7960);t.LedgerSigner=class{constructor(e,t={}){this.hdPaths=t.hdPaths||[(0,r.makeCosmoshubPath)(0)],this.connector=new o.LedgerConnector(e,t)}async getAccounts(){if(!this.accounts){const e=await this.connector.getPubkeys();this.accounts=await Promise.all(e.map((async e=>({algo:"secp256k1",address:await this.connector.getCosmosAddress(e),pubkey:e}))))}return this.accounts}async showAddress(e){return this.connector.showAddress(e)}async signAmino(e,t){const n=this.accounts||await this.getAccounts(),o=n.findIndex((t=>t.address===e));if(-1===o)throw new Error(`Address ${e} not found in wallet`);const i=(0,r.serializeSignDoc)(t),a=n[o],s=this.hdPaths[o],c=await this.connector.sign(i,s);return{signed:t,signature:(0,r.encodeSecp256k1Signature)(a.pubkey,c)}}}},8828:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Decimal=void 0;const o=r(n(3550));class i{constructor(e,t){this.data={atomics:new o.default(e),fractionalDigits:t}}static fromUserInput(e,t){i.verifyFractionalDigits(t);const n=e.match(/[^0-9.]/);if(n)throw new Error(`Invalid character at position ${n.index+1}`);let r,o;if(-1===e.search(/\./))r=e,o="";else{const t=e.split(".");switch(t.length){case 0:case 1:throw new Error("Fewer than two elements in split result. This must not happen here.");case 2:if(!t[1])throw new Error("Fractional part missing");r=t[0],o=t[1].replace(/0+$/,"");break;default:throw new Error("More than one separator found")}}if(o.length>t)throw new Error("Got more fractional digits than supported");const a=`${r}${o.padEnd(t,"0")}`;return new i(a,t)}static fromAtomics(e,t){return i.verifyFractionalDigits(t),new i(e,t)}static verifyFractionalDigits(e){if(!Number.isInteger(e))throw new Error("Fractional digits is not an integer");if(e<0)throw new Error("Fractional digits must not be negative");if(e>100)throw new Error("Fractional digits must not exceed 100")}static compare(e,t){if(e.fractionalDigits!==t.fractionalDigits)throw new Error("Fractional digits do not match");return e.data.atomics.cmp(new o.default(t.atomics))}get atomics(){return this.data.atomics.toString()}get fractionalDigits(){return this.data.fractionalDigits}toString(){const e=new o.default(10).pow(new o.default(this.data.fractionalDigits)),t=this.data.atomics.div(e),n=this.data.atomics.mod(e);if(n.isZero())return t.toString();{const e=n.toString().padStart(this.data.fractionalDigits,"0").replace(/0+$/,"");return`${t.toString()}.${e}`}}toFloatApproximation(){const e=Number(this.toString());if(Number.isNaN(e))throw new Error("Conversion to number failed");return e}plus(e){if(this.fractionalDigits!==e.fractionalDigits)throw new Error("Fractional digits do not match");const t=this.data.atomics.add(new o.default(e.atomics));return new i(t.toString(),this.fractionalDigits)}minus(e){if(this.fractionalDigits!==e.fractionalDigits)throw new Error("Fractional digits do not match");const t=this.data.atomics.sub(new o.default(e.atomics));if(t.ltn(0))throw new Error("Difference must not be negative");return new i(t.toString(),this.fractionalDigits)}multiply(e){const t=this.data.atomics.mul(new o.default(e.toString()));return new i(t.toString(),this.fractionalDigits)}equals(e){return 0===i.compare(this,e)}isLessThan(e){return i.compare(this,e)<0}isLessThanOrEqual(e){return i.compare(this,e)<=0}isGreaterThan(e){return i.compare(this,e)>0}isGreaterThanOrEqual(e){return i.compare(this,e)>=0}}t.Decimal=i},6961:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Uint64=t.Uint53=t.Uint32=t.Int53=t.Decimal=void 0;var r=n(8828);Object.defineProperty(t,"Decimal",{enumerable:!0,get:function(){return r.Decimal}});var o=n(172);Object.defineProperty(t,"Int53",{enumerable:!0,get:function(){return o.Int53}}),Object.defineProperty(t,"Uint32",{enumerable:!0,get:function(){return o.Uint32}}),Object.defineProperty(t,"Uint53",{enumerable:!0,get:function(){return o.Uint53}}),Object.defineProperty(t,"Uint64",{enumerable:!0,get:function(){return o.Uint64}})},172:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Uint64=t.Uint53=t.Int53=t.Uint32=void 0;const o=r(n(3550)),i=new o.default("18446744073709551615",10,"be");class a{constructor(e){if(Number.isNaN(e))throw new Error("Input is not a number");if(!Number.isInteger(e))throw new Error("Input is not an integer");if(e<0||e>4294967295)throw new Error("Input not in uint32 range: "+e.toString());this.data=e}static fromBigEndianBytes(e){return a.fromBytes(e)}static fromBytes(e,t="be"){if(4!==e.length)throw new Error("Invalid input length. Expected 4 bytes.");for(let t=0;t255||e[t]<0)throw new Error("Invalid value in byte. Found: "+e[t]);const n="be"===t?e:Array.from(e).reverse();return new a(n[0]*2**24+65536*n[1]+256*n[2]+n[3])}static fromString(e){if(!e.match(/^[0-9]+$/))throw new Error("Invalid string format");return new a(Number.parseInt(e,10))}toBytesBigEndian(){return new Uint8Array([255&Math.floor(this.data/2**24),255&Math.floor(this.data/65536),255&Math.floor(this.data/256),255&Math.floor(this.data/1)])}toBytesLittleEndian(){return new Uint8Array([255&Math.floor(this.data/1),255&Math.floor(this.data/256),255&Math.floor(this.data/65536),255&Math.floor(this.data/2**24)])}toNumber(){return this.data}toString(){return this.data.toString()}}t.Uint32=a;class s{constructor(e){if(Number.isNaN(e))throw new Error("Input is not a number");if(!Number.isInteger(e))throw new Error("Input is not an integer");if(eNumber.MAX_SAFE_INTEGER)throw new Error("Input not in int53 range: "+e.toString());this.data=e}static fromString(e){if(!e.match(/^-?[0-9]+$/))throw new Error("Invalid string format");return new s(Number.parseInt(e,10))}toNumber(){return this.data}toString(){return this.data.toString()}}t.Int53=s;class c{constructor(e){const t=new s(e);if(t.toNumber()<0)throw new Error("Input is negative");this.data=t}static fromString(e){const t=s.fromString(e);return new c(t.toNumber())}toNumber(){return this.data.toNumber()}toString(){return this.data.toString()}}t.Uint53=c;class d{constructor(e){if(e.isNeg())throw new Error("Input is negative");if(e.gt(i))throw new Error("Input exceeds uint64 range");this.data=e}static fromBytesBigEndian(e){return d.fromBytes(e)}static fromBytes(e,t="be"){if(8!==e.length)throw new Error("Invalid input length. Expected 8 bytes.");for(let t=0;t255||e[t]<0)throw new Error("Invalid value in byte. Found: "+e[t]);const n="be"===t?Array.from(e):Array.from(e).reverse();return new d(new o.default(n))}static fromString(e){if(!e.match(/^[0-9]+$/))throw new Error("Invalid string format");return new d(new o.default(e,10,"be"))}static fromNumber(e){if(Number.isNaN(e))throw new Error("Input is not a number");if(!Number.isInteger(e))throw new Error("Input is not an integer");let t;try{t=new o.default(e)}catch(e){throw new Error("Input is not a safe integer")}return new d(t)}toBytesBigEndian(){return Uint8Array.from(this.data.toArray("be",8))}toBytesLittleEndian(){return Uint8Array.from(this.data.toArray("le",8))}toString(){return this.data.toString(10)}toNumber(){return this.data.toNumber()}}t.Uint64=d},8296:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseCoins=void 0;const r=n(6961);t.parseCoins=function(e){return e.replace(/\s/g,"").split(",").filter(Boolean).map((e=>{const t=e.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/);if(!t)throw new Error("Got an invalid coin string");return{amount:r.Uint64.fromString(t[1]).toString(),denom:t[2]}}))}},7358:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeTxRaw=void 0;const r=n(9639);t.decodeTxRaw=function(e){const t=r.TxRaw.decode(e);return{authInfo:r.AuthInfo.decode(t.authInfoBytes),body:r.TxBody.decode(t.bodyBytes),signatures:t.signatures}}},5443:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DirectSecp256k1HdWallet=t.extractKdfConfiguration=void 0;const r=n(3359),o=n(9562),i=n(8972),a=n(5553),s=n(9153),c=n(3580),d="directsecp256k1hdwallet-v1",u={algorithm:"argon2id",params:{outputLength:32,opsLimit:24,memLimitKib:12288}};t.extractKdfConfiguration=function(e){const t=JSON.parse(e);if(!(0,a.isNonNullObject)(t))throw new Error("Root document is not an object.");if(t.type===d)return t.kdf;throw new Error("Unsupported serialization type")};const l={bip39Password:"",hdPaths:[(0,r.makeCosmoshubPath)(0)],prefix:"cosmos"};class A{constructor(e,t){var n,r;const o=null!==(n=t.prefix)&&void 0!==n?n:l.prefix,i=null!==(r=t.hdPaths)&&void 0!==r?r:l.hdPaths;this.secret=e,this.seed=t.seed,this.accounts=i.map((e=>({hdPath:e,prefix:o})))}static async fromMnemonic(e,t={}){const n=new o.EnglishMnemonic(e),r=await o.Bip39.mnemonicToSeed(n,t.bip39Password);return new A(n,{...t,seed:r})}static async generate(e=12,t={}){const n=4*Math.floor(11*e/33),r=o.Random.getBytes(n),i=o.Bip39.encode(r);return A.fromMnemonic(i.toString(),t)}static async deserialize(e,t){const n=JSON.parse(e);if(!(0,a.isNonNullObject)(n))throw new Error("Root document is not an object.");if(n.type===d)return A.deserializeTypeV1(e,t);throw new Error("Unsupported serialization type")}static async deserializeWithEncryptionKey(e,t){const n=JSON.parse(e);if(!(0,a.isNonNullObject)(n))throw new Error("Root document is not an object.");const r=n;if(r.type===d){const e=await(0,c.decrypt)((0,i.fromBase64)(r.data),t,r.encryption),n=JSON.parse((0,i.fromUtf8)(e)),{mnemonic:s,accounts:d}=n;if((0,a.assert)("string"==typeof s),!Array.isArray(d))throw new Error("Property 'accounts' is not an array");if(!d.every((e=>{return t=e,!!(0,a.isNonNullObject)(t)&&"string"==typeof t.hdPath&&"string"==typeof t.prefix;var t})))throw new Error("Account is not in the correct format.");const u=d[0].prefix;if(!d.every((({prefix:e})=>e===u)))throw new Error("Accounts do not all have the same prefix");const l=d.map((({hdPath:e})=>(0,o.stringToPath)(e)));return A.fromMnemonic(s,{hdPaths:l,prefix:u})}throw new Error("Unsupported serialization type")}static async deserializeTypeV1(e,t){const n=JSON.parse(e);if(!(0,a.isNonNullObject)(n))throw new Error("Root document is not an object.");const r=await(0,c.executeKdf)(t,n.kdf);return A.deserializeWithEncryptionKey(e,r)}get mnemonic(){return this.secret.toString()}async getAccounts(){return(await this.getAccountsWithPrivkeys()).map((({algo:e,pubkey:t,address:n})=>({algo:e,pubkey:t,address:n})))}async signDirect(e,t){const n=(await this.getAccountsWithPrivkeys()).find((({address:t})=>t===e));if(void 0===n)throw new Error(`Address ${e} not found in wallet`);const{privkey:i,pubkey:a}=n,c=(0,s.makeSignBytes)(t),d=(0,o.sha256)(c),u=await o.Secp256k1.createSignature(d,i),l=new Uint8Array([...u.r(32),...u.s(32)]);return{signed:t,signature:(0,r.encodeSecp256k1Signature)(a,l)}}async serialize(e){const t=u,n=await(0,c.executeKdf)(e,t);return this.serializeWithEncryptionKey(n,t)}async serializeWithEncryptionKey(e,t){const n={mnemonic:this.mnemonic,accounts:this.accounts.map((({hdPath:e,prefix:t})=>({hdPath:(0,o.pathToString)(e),prefix:t})))},r=(0,i.toUtf8)(JSON.stringify(n)),a={algorithm:c.supportedAlgorithms.xchacha20poly1305Ietf},s=await(0,c.encrypt)(r,e,a),u={type:d,kdf:t,encryption:a,data:(0,i.toBase64)(s)};return JSON.stringify(u)}async getKeyPair(e){const{privkey:t}=o.Slip10.derivePath(o.Slip10Curve.Secp256k1,this.seed,e),{pubkey:n}=await o.Secp256k1.makeKeypair(t);return{privkey:t,pubkey:o.Secp256k1.compressPubkey(n)}}async getAccountsWithPrivkeys(){return Promise.all(this.accounts.map((async({hdPath:e,prefix:t})=>{const{privkey:n,pubkey:o}=await this.getKeyPair(e);return{algo:"secp256k1",privkey:n,pubkey:o,address:(0,i.toBech32)(t,(0,r.rawSecp256k1PubkeyToRawAddress)(o))}})))}}t.DirectSecp256k1HdWallet=A},4134:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DirectSecp256k1Wallet=void 0;const r=n(3359),o=n(9562),i=n(8972),a=n(9153);class s{constructor(e,t,n){this.privkey=e,this.pubkey=t,this.prefix=n}static async fromKey(e,t="cosmos"){const n=(await o.Secp256k1.makeKeypair(e)).pubkey;return new s(e,o.Secp256k1.compressPubkey(n),t)}get address(){return(0,i.toBech32)(this.prefix,(0,r.rawSecp256k1PubkeyToRawAddress)(this.pubkey))}async getAccounts(){return[{algo:"secp256k1",address:this.address,pubkey:this.pubkey}]}async signDirect(e,t){const n=(0,a.makeSignBytes)(t);if(e!==this.address)throw new Error(`Address ${e} not found in wallet`);const i=(0,o.sha256)(n),s=await o.Secp256k1.createSignature(i,this.privkey),c=new Uint8Array([...s.r(32),...s.s(32)]);return{signed:t,signature:(0,r.encodeSecp256k1Signature)(this.pubkey,c)}}}t.DirectSecp256k1Wallet=s},4087:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.coins=t.coin=t.executeKdf=t.makeSignDoc=t.makeSignBytes=t.makeAuthInfoBytes=t.isOfflineDirectSigner=t.Registry=t.isTxBodyEncodeObject=t.isTsProtoGeneratedType=t.isPbjsGeneratedType=t.encodePubkey=t.decodePubkey=t.makeCosmoshubPath=t.DirectSecp256k1Wallet=t.extractKdfConfiguration=t.DirectSecp256k1HdWallet=t.decodeTxRaw=t.parseCoins=void 0;var r=n(8296);Object.defineProperty(t,"parseCoins",{enumerable:!0,get:function(){return r.parseCoins}});var o=n(7358);Object.defineProperty(t,"decodeTxRaw",{enumerable:!0,get:function(){return o.decodeTxRaw}});var i=n(5443);Object.defineProperty(t,"DirectSecp256k1HdWallet",{enumerable:!0,get:function(){return i.DirectSecp256k1HdWallet}}),Object.defineProperty(t,"extractKdfConfiguration",{enumerable:!0,get:function(){return i.extractKdfConfiguration}});var a=n(4134);Object.defineProperty(t,"DirectSecp256k1Wallet",{enumerable:!0,get:function(){return a.DirectSecp256k1Wallet}});var s=n(8549);Object.defineProperty(t,"makeCosmoshubPath",{enumerable:!0,get:function(){return s.makeCosmoshubPath}});var c=n(4594);Object.defineProperty(t,"decodePubkey",{enumerable:!0,get:function(){return c.decodePubkey}}),Object.defineProperty(t,"encodePubkey",{enumerable:!0,get:function(){return c.encodePubkey}});var d=n(9030);Object.defineProperty(t,"isPbjsGeneratedType",{enumerable:!0,get:function(){return d.isPbjsGeneratedType}}),Object.defineProperty(t,"isTsProtoGeneratedType",{enumerable:!0,get:function(){return d.isTsProtoGeneratedType}}),Object.defineProperty(t,"isTxBodyEncodeObject",{enumerable:!0,get:function(){return d.isTxBodyEncodeObject}}),Object.defineProperty(t,"Registry",{enumerable:!0,get:function(){return d.Registry}});var u=n(1183);Object.defineProperty(t,"isOfflineDirectSigner",{enumerable:!0,get:function(){return u.isOfflineDirectSigner}});var l=n(9153);Object.defineProperty(t,"makeAuthInfoBytes",{enumerable:!0,get:function(){return l.makeAuthInfoBytes}}),Object.defineProperty(t,"makeSignBytes",{enumerable:!0,get:function(){return l.makeSignBytes}}),Object.defineProperty(t,"makeSignDoc",{enumerable:!0,get:function(){return l.makeSignDoc}});var A=n(3580);Object.defineProperty(t,"executeKdf",{enumerable:!0,get:function(){return A.executeKdf}});var f=n(3359);Object.defineProperty(t,"coin",{enumerable:!0,get:function(){return f.coin}}),Object.defineProperty(t,"coins",{enumerable:!0,get:function(){return f.coins}})},8549:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeCosmoshubPath=void 0;const r=n(9562);t.makeCosmoshubPath=function(e){return[r.Slip10RawIndex.hardened(44),r.Slip10RawIndex.hardened(118),r.Slip10RawIndex.hardened(0),r.Slip10RawIndex.normal(0),r.Slip10RawIndex.normal(e)]}},4594:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodePubkey=t.encodePubkey=void 0;const r=n(3359),o=n(8972),i=n(6961),a=n(479),s=n(7228),c=n(3862);function d(e){if("/cosmos.crypto.secp256k1.PubKey"===e.typeUrl){const{key:t}=s.PubKey.decode(e.value);return(0,r.encodeSecp256k1Pubkey)(t)}throw new Error(`Pubkey type_url ${e.typeUrl} not recognized as single public key type`)}t.encodePubkey=function e(t){if((0,r.isSecp256k1Pubkey)(t)){const e=s.PubKey.fromPartial({key:(0,o.fromBase64)(t.value)});return c.Any.fromPartial({typeUrl:"/cosmos.crypto.secp256k1.PubKey",value:Uint8Array.from(s.PubKey.encode(e).finish())})}if((0,r.isMultisigThresholdPubkey)(t)){const n=a.LegacyAminoPubKey.fromPartial({threshold:i.Uint53.fromString(t.value.threshold).toNumber(),publicKeys:t.value.pubkeys.map(e)});return c.Any.fromPartial({typeUrl:"/cosmos.crypto.multisig.LegacyAminoPubKey",value:Uint8Array.from(a.LegacyAminoPubKey.encode(n).finish())})}throw new Error(`Pubkey type ${t.type} not recognized`)},t.decodePubkey=function(e){if(!e||!e.value)return null;switch(e.typeUrl){case"/cosmos.crypto.secp256k1.PubKey":return d(e);case"/cosmos.crypto.multisig.LegacyAminoPubKey":{const{threshold:t,publicKeys:n}=a.LegacyAminoPubKey.decode(e.value);return{type:"tendermint/PubKeyMultisigThreshold",value:{threshold:t.toString(),pubkeys:n.map(d)}}}default:throw new Error(`Pubkey type_url ${e.typeUrl} not recognized`)}}},9030:(e,t,n)=>{"use strict";var r=n(8764).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.Registry=t.isTxBodyEncodeObject=t.isPbjsGeneratedType=t.isTsProtoGeneratedType=void 0;const o=n(8994),i=n(891),a=n(9639),s=n(3862);function c(e){return"function"==typeof e.fromPartial}t.isTsProtoGeneratedType=c,t.isPbjsGeneratedType=function(e){return!c(e)};const d={cosmosCoin:"/cosmos.base.v1beta1.Coin",cosmosMsgSend:"/cosmos.bank.v1beta1.MsgSend",cosmosTxBody:"/cosmos.tx.v1beta1.TxBody",googleAny:"/google.protobuf.Any"};function u(e){return"/cosmos.tx.v1beta1.TxBody"===e.typeUrl}t.isTxBodyEncodeObject=u,t.Registry=class{constructor(e){const{cosmosCoin:t,cosmosMsgSend:n}=d;this.types=e?new Map([...e]):new Map([[t,i.Coin],[n,o.MsgSend]])}register(e,t){this.types.set(e,t)}lookupType(e){return this.types.get(e)}lookupTypeWithError(e){const t=this.lookupType(e);if(!t)throw new Error(`Unregistered type url: ${e}`);return t}encode(e){const{value:t,typeUrl:n}=e;if(u(e))return this.encodeTxBody(t);const r=this.lookupTypeWithError(n),o=c(r)?r.fromPartial(t):r.create(t);return r.encode(o).finish()}encodeAsAny(e){const t=this.encode(e);return s.Any.fromPartial({typeUrl:e.typeUrl,value:t})}encodeTxBody(e){const t=e.messages.map((e=>this.encodeAsAny(e))),n=a.TxBody.fromPartial({...e,messages:t});return a.TxBody.encode(n).finish()}decode({typeUrl:e,value:t}){if(e===d.cosmosTxBody)return this.decodeTxBody(t);const n=this.lookupTypeWithError(e).decode(t);return Object.entries(n).forEach((([e,t])=>{void 0!==r&&void 0!==r.isBuffer&&r.isBuffer(t)&&(n[e]=Uint8Array.from(t))})),n}decodeTxBody(e){const t=a.TxBody.decode(e);return{...t,messages:t.messages.map((({typeUrl:e,value:t})=>{if(!e)throw new Error("Missing type_url in Any");if(!t)throw new Error("Missing value in Any");return this.decode({typeUrl:e,value:t})}))}}}},1183:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isOfflineDirectSigner=void 0,t.isOfflineDirectSigner=function(e){return void 0!==e.signDirect}},9153:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.makeSignBytes=t.makeSignDoc=t.makeAuthInfoBytes=void 0;const o=n(2574),i=n(9639),a=r(n(3720));function s(e,t){return e.map((({pubkey:e,sequence:n})=>({publicKey:e,modeInfo:{single:{mode:t}},sequence:a.default.fromNumber(n)})))}t.makeAuthInfoBytes=function(e,t,n,r=o.SignMode.SIGN_MODE_DIRECT){const c={signerInfos:s(e,r),fee:{amount:[...t],gasLimit:a.default.fromNumber(n)}};return i.AuthInfo.encode(i.AuthInfo.fromPartial(c)).finish()},t.makeSignDoc=function(e,t,n,r){return{bodyBytes:e,authInfoBytes:t,chainId:n,accountNumber:a.default.fromNumber(r)}},t.makeSignBytes=function({accountNumber:e,authInfoBytes:t,bodyBytes:n,chainId:r}){const o=i.SignDoc.fromPartial({accountNumber:e,authInfoBytes:t,bodyBytes:n,chainId:r});return i.SignDoc.encode(o).finish()}},3580:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decrypt=t.encrypt=t.supportedAlgorithms=t.executeKdf=t.cosmjsSalt=void 0;const r=n(9562),o=n(8972);t.cosmjsSalt=(0,o.toAscii)("The CosmJS salt."),t.executeKdf=async function(e,n){if("argon2id"===n.algorithm){const o=n.params;if(!(0,r.isArgon2idOptions)(o))throw new Error("Invalid format of argon2id params");return r.Argon2id.execute(e,t.cosmjsSalt,o)}throw new Error("Unsupported KDF algorithm")},t.supportedAlgorithms={xchacha20poly1305Ietf:"xchacha20poly1305-ietf"},t.encrypt=async function(e,n,o){if(o.algorithm===t.supportedAlgorithms.xchacha20poly1305Ietf){const t=r.Random.getBytes(r.xchacha20NonceLength);return new Uint8Array([...t,...await r.Xchacha20poly1305Ietf.encrypt(e,n,t)])}throw new Error(`Unsupported encryption algorithm: '${o.algorithm}'`)},t.decrypt=async function(e,n,o){if(o.algorithm===t.supportedAlgorithms.xchacha20poly1305Ietf){const t=e.slice(0,r.xchacha20NonceLength);return r.Xchacha20poly1305Ietf.decrypt(e.slice(r.xchacha20NonceLength),n,t)}throw new Error(`Unsupported encryption algorithm: '${o.algorithm}'`)}},3830:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StreamingSocket=t.SocketWrapper=t.ReconnectingSocket=t.QueueingStreamingSocket=t.ConnectionStatus=void 0;var r=n(2365);Object.defineProperty(t,"ConnectionStatus",{enumerable:!0,get:function(){return r.ConnectionStatus}}),Object.defineProperty(t,"QueueingStreamingSocket",{enumerable:!0,get:function(){return r.QueueingStreamingSocket}});var o=n(5850);Object.defineProperty(t,"ReconnectingSocket",{enumerable:!0,get:function(){return o.ReconnectingSocket}});var i=n(9320);Object.defineProperty(t,"SocketWrapper",{enumerable:!0,get:function(){return i.SocketWrapper}});var a=n(6794);Object.defineProperty(t,"StreamingSocket",{enumerable:!0,get:function(){return a.StreamingSocket}})},2365:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QueueingStreamingSocket=t.ConnectionStatus=void 0;const r=n(1459),o=n(3813),i=n(6794);var a;!function(e){e[e.Unconnected=0]="Unconnected",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.Disconnected=3]="Disconnected"}(a=t.ConnectionStatus||(t.ConnectionStatus={})),t.QueueingStreamingSocket=class{constructor(e,t=1e4,n){this.queue=[],this.isProcessingQueue=!1,this.url=e,this.timeout=t,this.reconnectedHandler=n;const s={start:e=>this.eventProducerListener=e,stop:()=>this.eventProducerListener=void 0};this.events=o.Stream.create(s),this.connectionStatusProducer=new r.DefaultValueProducer(a.Unconnected),this.connectionStatus=new r.ValueAndUpdates(this.connectionStatusProducer),this.socket=new i.StreamingSocket(this.url,this.timeout),this.socket.events.subscribe({next:e=>{if(!this.eventProducerListener)throw new Error("No event producer listener set");this.eventProducerListener.next(e)},error:()=>this.connectionStatusProducer.update(a.Disconnected)})}connect(){this.connectionStatusProducer.update(a.Connecting),this.socket.connected.then((async()=>(this.connectionStatusProducer.update(a.Connected),this.processQueue())),(()=>this.connectionStatusProducer.update(a.Disconnected))),this.socket.connect()}disconnect(){this.connectionStatusProducer.update(a.Disconnected),this.socket.disconnect()}reconnect(){this.socket=new i.StreamingSocket(this.url,this.timeout),this.socket.events.subscribe({next:e=>{if(!this.eventProducerListener)throw new Error("No event producer listener set");this.eventProducerListener.next(e)},error:()=>this.connectionStatusProducer.update(a.Disconnected)}),this.socket.connected.then((()=>{this.reconnectedHandler&&this.reconnectedHandler()})),this.connect()}getQueueLength(){return this.queue.length}queueRequest(e){this.queue.push(e),this.processQueue()}async processQueue(){if(this.isProcessingQueue||this.connectionStatus.value!==a.Connected)return;let e;for(this.isProcessingQueue=!0;e=this.queue.shift();)try{await this.socket.send(e),this.isProcessingQueue=!1}catch(t){return this.queue.unshift(e),void(this.isProcessingQueue=!1)}}}},5850:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReconnectingSocket=void 0;const r=n(3813),o=n(2365);class i{constructor(e,t=1e4,n){this.unconnected=!0,this.disconnected=!1,this.timeoutIndex=0,this.reconnectTimeout=null;const a={start:e=>this.eventProducerListener=e,stop:()=>this.eventProducerListener=void 0};this.events=r.Stream.create(a),this.socket=new o.QueueingStreamingSocket(e,t,n),this.socket.events.subscribe({next:e=>{this.eventProducerListener&&this.eventProducerListener.next(e)},error:e=>{this.eventProducerListener&&this.eventProducerListener.error(e)}}),this.connectionStatus=this.socket.connectionStatus,this.connectionStatus.updates.subscribe({next:e=>{e===o.ConnectionStatus.Connected&&(this.timeoutIndex=0),e===o.ConnectionStatus.Disconnected&&(this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.reconnectTimeout=setTimeout((()=>this.socket.reconnect()),i.calculateTimeout(this.timeoutIndex++)))}})}static calculateTimeout(e){return Math.min(2**e*100,5e3)}connect(){if(!this.unconnected)throw new Error("Cannot connect: socket has already connected");this.socket.connect(),this.unconnected=!1}disconnect(){if(this.unconnected)throw new Error("Cannot disconnect: socket has not yet connected");this.socket.disconnect(),this.eventProducerListener&&this.eventProducerListener.complete(),this.disconnected=!0}queueRequest(e){if(this.disconnected)throw new Error("Cannot queue request: socket has disconnected");this.socket.queueRequest(e)}}t.ReconnectingSocket=i},9320:function(e,t,n){"use strict";var r=n(4155),o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SocketWrapper=void 0;const i=o(n(6792));t.SocketWrapper=class{constructor(e,t,n,r,o,i=1e4){this.closed=!1,this.connected=new Promise(((e,t)=>{this.connectedResolver=e,this.connectedRejecter=t})),this.url=e,this.messageHandler=t,this.errorHandler=n,this.openHandler=r,this.closeHandler=o,this.timeout=i}connect(){const e=new i.default(this.url);e.onerror=e=>{this.clearTimeout(),this.errorHandler&&this.errorHandler(e)},e.onmessage=e=>{this.messageHandler({type:e.type,data:e.data})},e.onopen=e=>{this.clearTimeout(),this.connectedResolver(),this.openHandler&&this.openHandler()},e.onclose=e=>{this.closed=!0,this.closeHandler&&this.closeHandler(e)};const t=Date.now();this.timeoutId=setTimeout((()=>{e.onmessage=()=>0,e.onerror=()=>0,e.onopen=()=>0,e.onclose=()=>0,e.close(),this.socket=void 0;const n=Math.floor(Date.now()-t);this.connectedRejecter(`Connection attempt timed out after ${n} ms`)}),this.timeout),this.socket=e}disconnect(){if(!this.socket)throw new Error("Socket undefined. This must be called after connecting.");switch(this.clearTimeout(),this.socket.readyState){case i.default.OPEN:this.socket.close(1e3);break;case i.default.CLOSED:break;case i.default.CONNECTING:this.socket.onopen=()=>0,this.socket.onclose=()=>0,this.socket.onerror=()=>0,this.socket.onmessage=()=>0,this.socket=void 0,this.closeHandler&&this.closeHandler({wasClean:!1,code:4001});break;case i.default.CLOSING:break;default:throw new Error(`Unknown readyState: ${this.socket.readyState}`)}}async send(e){return new Promise(((t,n)=>{if(!this.socket)throw new Error("Socket undefined. This must be called after connecting.");if(this.closed)throw new Error("Socket was closed, so no data can be sent anymore.");if(this.socket.readyState!==i.default.OPEN)throw new Error("Websocket is not open");void 0!==r&&void 0!==r.versions&&void 0!==r.versions.node?this.socket.send(e,(e=>e?n(e):t())):(this.socket.send(e),t())}))}clearTimeout(){if(!this.timeoutId)throw new Error("Timeout ID not set. This should not happen and usually means connect() was not called.");clearTimeout(this.timeoutId)}}},6794:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StreamingSocket=void 0;const r=n(3813),o=n(9320);t.StreamingSocket=class{constructor(e,t=1e4){this.socket=new o.SocketWrapper(e,(e=>{this.eventProducerListener&&this.eventProducerListener.next(e)}),(e=>{this.eventProducerListener&&this.eventProducerListener.error(e)}),(()=>{}),(e=>{this.eventProducerListener&&(e.wasClean?this.eventProducerListener.complete():this.eventProducerListener.error("Socket was closed unclean"))}),t),this.connected=this.socket.connected;const n={start:e=>this.eventProducerListener=e,stop:()=>this.eventProducerListener=void 0};this.events=r.Stream.create(n)}connect(){this.socket.connect()}disconnect(){this.socket.disconnect()}async send(e){return this.socket.send(e)}}},2538:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.accountFromAny=void 0;const r=n(6961),o=n(4087),i=n(5553),a=n(3487),s=n(5303);function c(e){return r.Uint64.fromString(e.toString())}function d(e){const{address:t,pubKey:n,accountNumber:r,sequence:i}=e;return{address:t,pubkey:(0,o.decodePubkey)(n),accountNumber:c(r).toNumber(),sequence:c(i).toNumber()}}t.accountFromAny=function(e){var t,n,r,o,c,u,l;const{typeUrl:A,value:f}=e;switch(A){case"/cosmos.auth.v1beta1.BaseAccount":return d(a.BaseAccount.decode(f));case"/cosmos.auth.v1beta1.ModuleAccount":{const e=a.ModuleAccount.decode(f).baseAccount;return(0,i.assert)(e),d(e)}case"/cosmos.vesting.v1beta1.BaseVestingAccount":{const e=null===(t=s.BaseVestingAccount.decode(f))||void 0===t?void 0:t.baseAccount;return(0,i.assert)(e),d(e)}case"/cosmos.vesting.v1beta1.ContinuousVestingAccount":{const e=null===(r=null===(n=s.ContinuousVestingAccount.decode(f))||void 0===n?void 0:n.baseVestingAccount)||void 0===r?void 0:r.baseAccount;return(0,i.assert)(e),d(e)}case"/cosmos.vesting.v1beta1.DelayedVestingAccount":{const e=null===(c=null===(o=s.DelayedVestingAccount.decode(f))||void 0===o?void 0:o.baseVestingAccount)||void 0===c?void 0:c.baseAccount;return(0,i.assert)(e),d(e)}case"/cosmos.vesting.v1beta1.PeriodicVestingAccount":{const e=null===(l=null===(u=s.PeriodicVestingAccount.decode(f))||void 0===u?void 0:u.baseVestingAccount)||void 0===l?void 0:l.baseAccount;return(0,i.assert)(e),d(e)}default:throw new Error(`Unsupported type: '${A}'`)}}},2552:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isAminoMsgTransfer=t.isAminoMsgUndelegate=t.isAminoMsgBeginRedelegate=t.isAminoMsgDelegate=t.isAminoMsgEditValidator=t.isAminoMsgCreateValidator=t.isAminoMsgUnjail=t.isAminoMsgDeposit=t.isAminoMsgVote=t.isAminoMsgSubmitProposal=t.isAminoMsgSubmitEvidence=t.isAminoMsgFundCommunityPool=t.isAminoMsgWithdrawValidatorCommission=t.isAminoMsgWithdrawDelegatorReward=t.isAminoMsgSetWithdrawAddress=t.isAminoMsgVerifyInvariant=t.isAminoMsgMultiSend=t.isAminoMsgSend=void 0,t.isAminoMsgSend=function(e){return"cosmos-sdk/MsgSend"===e.type},t.isAminoMsgMultiSend=function(e){return"cosmos-sdk/MsgMultiSend"===e.type},t.isAminoMsgVerifyInvariant=function(e){return"cosmos-sdk/MsgVerifyInvariant"===e.type},t.isAminoMsgSetWithdrawAddress=function(e){return"cosmos-sdk/MsgModifyWithdrawAddress"===e.type},t.isAminoMsgWithdrawDelegatorReward=function(e){return"cosmos-sdk/MsgWithdrawDelegationReward"===e.type},t.isAminoMsgWithdrawValidatorCommission=function(e){return"cosmos-sdk/MsgWithdrawValidatorCommission"===e.type},t.isAminoMsgFundCommunityPool=function(e){return"cosmos-sdk/MsgFundCommunityPool"===e.type},t.isAminoMsgSubmitEvidence=function(e){return"cosmos-sdk/MsgSubmitEvidence"===e.type},t.isAminoMsgSubmitProposal=function(e){return"cosmos-sdk/MsgSubmitProposal"===e.type},t.isAminoMsgVote=function(e){return"cosmos-sdk/MsgVote"===e.type},t.isAminoMsgDeposit=function(e){return"cosmos-sdk/MsgDeposit"===e.type},t.isAminoMsgUnjail=function(e){return"cosmos-sdk/MsgUnjail"===e.type},t.isAminoMsgCreateValidator=function(e){return"cosmos-sdk/MsgCreateValidator"===e.type},t.isAminoMsgEditValidator=function(e){return"cosmos-sdk/MsgEditValidator"===e.type},t.isAminoMsgDelegate=function(e){return"cosmos-sdk/MsgDelegate"===e.type},t.isAminoMsgBeginRedelegate=function(e){return"cosmos-sdk/MsgBeginRedelegate"===e.type},t.isAminoMsgUndelegate=function(e){return"cosmos-sdk/MsgUndelegate"===e.type},t.isAminoMsgTransfer=function(e){return"cosmos-sdk/MsgTransfer"===e.type}},6111:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AminoTypes=void 0;const o=n(3359),i=n(8972),a=n(5553),s=n(9876),c=n(3862),d=r(n(3720));function u(e){if("string"==typeof e)return""===e?void 0:e;if("number"==typeof e)return 0===e?void 0:e;if(d.default.isLong(e))return e.isZero()?void 0:e;throw new Error(`Got unsupported type '${typeof e}'`)}function l(e){return"string"!=typeof e[1]}t.AminoTypes=class{constructor({prefix:e,additions:t={}}){const n=function(e){return{"/cosmos.authz.v1beta1.MsgGrant":"not_supported_by_chain","/cosmos.authz.v1beta1.MsgExec":"not_supported_by_chain","/cosmos.authz.v1beta1.MsgRevoke":"not_supported_by_chain","/cosmos.bank.v1beta1.MsgSend":{aminoType:"cosmos-sdk/MsgSend",toAmino:({fromAddress:e,toAddress:t,amount:n})=>({from_address:e,to_address:t,amount:[...n]}),fromAmino:({from_address:e,to_address:t,amount:n})=>({fromAddress:e,toAddress:t,amount:[...n]})},"/cosmos.bank.v1beta1.MsgMultiSend":{aminoType:"cosmos-sdk/MsgMultiSend",toAmino:({inputs:e,outputs:t})=>({inputs:e.map((e=>({address:e.address,coins:[...e.coins]}))),outputs:t.map((e=>({address:e.address,coins:[...e.coins]})))}),fromAmino:({inputs:e,outputs:t})=>({inputs:e.map((e=>({address:e.address,coins:[...e.coins]}))),outputs:t.map((e=>({address:e.address,coins:[...e.coins]})))})},"/cosmos.distribution.v1beta1.MsgFundCommunityPool":{aminoType:"cosmos-sdk/MsgFundCommunityPool",toAmino:({amount:e,depositor:t})=>({amount:[...e],depositor:t}),fromAmino:({amount:e,depositor:t})=>({amount:[...e],depositor:t})},"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress":{aminoType:"cosmos-sdk/MsgModifyWithdrawAddress",toAmino:({delegatorAddress:e,withdrawAddress:t})=>({delegator_address:e,withdraw_address:t}),fromAmino:({delegator_address:e,withdraw_address:t})=>({delegatorAddress:e,withdrawAddress:t})},"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward":{aminoType:"cosmos-sdk/MsgWithdrawDelegationReward",toAmino:({delegatorAddress:e,validatorAddress:t})=>({delegator_address:e,validator_address:t}),fromAmino:({delegator_address:e,validator_address:t})=>({delegatorAddress:e,validatorAddress:t})},"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission":{aminoType:"cosmos-sdk/MsgWithdrawValidatorCommission",toAmino:({validatorAddress:e})=>({validator_address:e}),fromAmino:({validator_address:e})=>({validatorAddress:e})},"/cosmos.gov.v1beta1.MsgDeposit":{aminoType:"cosmos-sdk/MsgDeposit",toAmino:({amount:e,depositor:t,proposalId:n})=>({amount:e,depositor:t,proposal_id:n.toString()}),fromAmino:({amount:e,depositor:t,proposal_id:n})=>({amount:Array.from(e),depositor:t,proposalId:d.default.fromString(n)})},"/cosmos.gov.v1beta1.MsgVote":{aminoType:"cosmos-sdk/MsgVote",toAmino:({option:e,proposalId:t,voter:n})=>({option:e,proposal_id:t.toString(),voter:n}),fromAmino:({option:e,proposal_id:t,voter:n})=>({option:(0,s.voteOptionFromJSON)(e),proposalId:d.default.fromString(t),voter:n})},"/cosmos.gov.v1beta1.MsgSubmitProposal":{aminoType:"cosmos-sdk/MsgSubmitProposal",toAmino:({initialDeposit:e,proposer:t,content:n})=>{let r;switch((0,a.assertDefinedAndNotNull)(n),n.typeUrl){case"/cosmos.gov.v1beta1.TextProposal":{const e=s.TextProposal.decode(n.value);r={type:"cosmos-sdk/TextProposal",value:{description:e.description,title:e.title}};break}default:throw new Error(`Unsupported proposal type: '${n.typeUrl}'`)}return{initial_deposit:e,proposer:t,content:r}},fromAmino:({initial_deposit:e,proposer:t,content:n})=>{let r;switch(n.type){case"cosmos-sdk/TextProposal":{const{value:e}=n;(0,a.assert)((0,a.isNonNullObject)(e));const{title:t,description:o}=e;(0,a.assert)("string"==typeof t),(0,a.assert)("string"==typeof o),r=c.Any.fromPartial({typeUrl:"/cosmos.gov.v1beta1.TextProposal",value:s.TextProposal.encode(s.TextProposal.fromPartial({title:t,description:o})).finish()});break}default:throw new Error(`Unsupported proposal type: '${n.type}'`)}return{initialDeposit:Array.from(e),proposer:t,content:r}}},"/cosmos.staking.v1beta1.MsgBeginRedelegate":{aminoType:"cosmos-sdk/MsgBeginRedelegate",toAmino:({delegatorAddress:e,validatorSrcAddress:t,validatorDstAddress:n,amount:r})=>((0,a.assertDefinedAndNotNull)(r,"missing amount"),{delegator_address:e,validator_src_address:t,validator_dst_address:n,amount:r}),fromAmino:({delegator_address:e,validator_src_address:t,validator_dst_address:n,amount:r})=>({delegatorAddress:e,validatorSrcAddress:t,validatorDstAddress:n,amount:r})},"/cosmos.staking.v1beta1.MsgCreateValidator":{aminoType:"cosmos-sdk/MsgCreateValidator",toAmino:({description:t,commission:n,minSelfDelegation:r,delegatorAddress:s,validatorAddress:c,pubkey:d,value:u})=>((0,a.assertDefinedAndNotNull)(t,"missing description"),(0,a.assertDefinedAndNotNull)(n,"missing commission"),(0,a.assertDefinedAndNotNull)(d,"missing pubkey"),(0,a.assertDefinedAndNotNull)(u,"missing value"),{description:{moniker:t.moniker,identity:t.identity,website:t.website,security_contact:t.securityContact,details:t.details},commission:{rate:n.rate,max_rate:n.maxRate,max_change_rate:n.maxChangeRate},min_self_delegation:r,delegator_address:s,validator_address:c,pubkey:(0,o.encodeBech32Pubkey)({type:"tendermint/PubKeySecp256k1",value:(0,i.toBase64)(d.value)},e),value:u}),fromAmino:({description:e,commission:t,min_self_delegation:n,delegator_address:r,validator_address:a,pubkey:s,value:c})=>{const d=(0,o.decodeBech32Pubkey)(s);if("tendermint/PubKeySecp256k1"!==d.type)throw new Error("Only Secp256k1 public keys are supported");return{description:{moniker:e.moniker,identity:e.identity,website:e.website,securityContact:e.security_contact,details:e.details},commission:{rate:t.rate,maxRate:t.max_rate,maxChangeRate:t.max_change_rate},minSelfDelegation:n,delegatorAddress:r,validatorAddress:a,pubkey:{typeUrl:"/cosmos.crypto.secp256k1.PubKey",value:(0,i.fromBase64)(d.value)},value:c}}},"/cosmos.staking.v1beta1.MsgDelegate":{aminoType:"cosmos-sdk/MsgDelegate",toAmino:({delegatorAddress:e,validatorAddress:t,amount:n})=>((0,a.assertDefinedAndNotNull)(n,"missing amount"),{delegator_address:e,validator_address:t,amount:n}),fromAmino:({delegator_address:e,validator_address:t,amount:n})=>({delegatorAddress:e,validatorAddress:t,amount:n})},"/cosmos.staking.v1beta1.MsgEditValidator":{aminoType:"cosmos-sdk/MsgEditValidator",toAmino:({description:e,commissionRate:t,minSelfDelegation:n,validatorAddress:r})=>((0,a.assertDefinedAndNotNull)(e,"missing description"),{description:{moniker:e.moniker,identity:e.identity,website:e.website,security_contact:e.securityContact,details:e.details},commission_rate:t,min_self_delegation:n,validator_address:r}),fromAmino:({description:e,commission_rate:t,min_self_delegation:n,validator_address:r})=>({description:{moniker:e.moniker,identity:e.identity,website:e.website,securityContact:e.security_contact,details:e.details},commissionRate:t,minSelfDelegation:n,validatorAddress:r})},"/cosmos.staking.v1beta1.MsgUndelegate":{aminoType:"cosmos-sdk/MsgUndelegate",toAmino:({delegatorAddress:e,validatorAddress:t,amount:n})=>((0,a.assertDefinedAndNotNull)(n,"missing amount"),{delegator_address:e,validator_address:t,amount:n}),fromAmino:({delegator_address:e,validator_address:t,amount:n})=>({delegatorAddress:e,validatorAddress:t,amount:n})},"/ibc.applications.transfer.v1.MsgTransfer":{aminoType:"cosmos-sdk/MsgTransfer",toAmino:({sourcePort:e,sourceChannel:t,token:n,sender:r,receiver:o,timeoutHeight:i,timeoutTimestamp:a})=>{var s,c,d;return{source_port:e,source_channel:t,token:n,sender:r,receiver:o,timeout_height:i?{revision_height:null===(s=u(i.revisionHeight))||void 0===s?void 0:s.toString(),revision_number:null===(c=u(i.revisionNumber))||void 0===c?void 0:c.toString()}:{},timeout_timestamp:null===(d=u(a))||void 0===d?void 0:d.toString()}},fromAmino:({source_port:e,source_channel:t,token:n,sender:r,receiver:o,timeout_height:i,timeout_timestamp:a})=>({sourcePort:e,sourceChannel:t,token:n,sender:r,receiver:o,timeoutHeight:i?{revisionHeight:d.default.fromString(i.revision_height||"0",!0),revisionNumber:d.default.fromString(i.revision_number||"0",!0)}:void 0,timeoutTimestamp:d.default.fromString(a||"0",!0)})},"/cosmos.feegrant.v1beta1.MsgGrantAllowance":"not_supported_by_chain","/cosmos.feegrant.v1beta1.MsgRevokeAllowance":"not_supported_by_chain"}}(e);this.register={...n,...t}}toAmino({typeUrl:e,value:t}){const n=this.register[e];if("not_supported_by_chain"===n)throw new Error(`The message type '${e}' cannot be signed using the Amino JSON sign mode because this is not supported by chain.`);if(!n)throw new Error(`Type URL '${e}' does not exist in the Amino message type register. If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.`);return{type:n.aminoType,value:n.toAmino(t)}}fromAmino({type:e,value:t}){const n=Object.entries(this.register).filter(l).filter((([t,{aminoType:n}])=>n===e));switch(n.length){case 0:throw new Error(`Amino type identifier '${e}' does not exist in the Amino message type register. If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.`);case 1:{const[e,r]=n[0];return{typeUrl:e,value:r.fromAmino(t)}}default:throw new Error(`Multiple types are registered with Amino type identifier '${e}': '`+n.map((([e,t])=>e)).sort().join("', '")+"'. Thus fromAmino cannot be performed.")}}}},3357:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isMsgVoteEncodeObject=t.isMsgSubmitProposalEncodeObject=t.isMsgDepositEncodeObject=t.isMsgTransferEncodeObject=t.isMsgWithdrawDelegatorRewardEncodeObject=t.isMsgUndelegateEncodeObject=t.isMsgDelegateEncodeObject=t.isMsgSendEncodeObject=void 0,t.isMsgSendEncodeObject=function(e){return"/cosmos.bank.v1beta1.MsgSend"===e.typeUrl},t.isMsgDelegateEncodeObject=function(e){return"/cosmos.staking.v1beta1.MsgDelegate"===e.typeUrl},t.isMsgUndelegateEncodeObject=function(e){return"/cosmos.staking.v1beta1.MsgUndelegate"===e.typeUrl},t.isMsgWithdrawDelegatorRewardEncodeObject=function(e){return"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward"===e.typeUrl},t.isMsgTransferEncodeObject=function(e){return"/ibc.applications.transfer.v1.MsgTransfer"===e.typeUrl},t.isMsgDepositEncodeObject=function(e){return"/cosmos.gov.v1beta1.MsgDeposit"===e.typeUrl},t.isMsgSubmitProposalEncodeObject=function(e){return"/cosmos.gov.v1beta1.MsgSubmitProposal"===e.typeUrl},t.isMsgVoteEncodeObject=function(e){return"/cosmos.gov.v1beta1.MsgVote"===e.typeUrl}},1371:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calculateFee=t.GasPrice=void 0;const r=n(6961),o=n(4087);class i{constructor(e,t){this.amount=e,this.denom=t}static fromString(e){const t=e.match(/^([0-9.]+)([a-z][a-z0-9]*)$/i);if(!t)throw new Error("Invalid gas price string");const[n,o,a]=t;!function(e){if(e.length<3||e.length>128)throw new Error("Denom must be between 3 and 128 characters")}(a);const s=r.Decimal.fromUserInput(o,18);return new i(s,a)}toString(){return this.amount.toString()+this.denom}}t.GasPrice=i,t.calculateFee=function(e,t){const n="string"==typeof t?i.fromString(t):t,{denom:a,amount:s}=n,c=Math.ceil(s.multiply(new r.Uint53(e)).toFloatApproximation());return{amount:(0,o.coins)(c,a),gas:e.toString()}}},4658:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.assertIsDeliverTxSuccess=t.assertIsDeliverTxFailure=t.SigningStargateClient=t.defaultRegistryTypes=t.isSearchByTagsQuery=t.isSearchBySentFromOrToQuery=t.isSearchByHeightQuery=t.setupTxExtension=t.setupStakingExtension=t.setupMintExtension=t.setupIbcExtension=t.setupGovExtension=t.setupDistributionExtension=t.setupBankExtension=t.setupAuthExtension=t.QueryClient=t.decodeCosmosSdkDecFromProto=t.createProtobufRpcClient=t.createPagination=t.makeMultisignedTx=t.logs=t.GasPrice=t.calculateFee=t.isMsgWithdrawDelegatorRewardEncodeObject=t.isMsgVoteEncodeObject=t.isMsgUndelegateEncodeObject=t.isMsgTransferEncodeObject=t.isMsgSubmitProposalEncodeObject=t.isMsgSendEncodeObject=t.isMsgDepositEncodeObject=t.isMsgDelegateEncodeObject=t.AminoTypes=t.isAminoMsgWithdrawValidatorCommission=t.isAminoMsgWithdrawDelegatorReward=t.isAminoMsgVote=t.isAminoMsgVerifyInvariant=t.isAminoMsgUnjail=t.isAminoMsgUndelegate=t.isAminoMsgSubmitProposal=t.isAminoMsgSubmitEvidence=t.isAminoMsgSetWithdrawAddress=t.isAminoMsgSend=t.isAminoMsgMultiSend=t.isAminoMsgFundCommunityPool=t.isAminoMsgEditValidator=t.isAminoMsgDeposit=t.isAminoMsgDelegate=t.isAminoMsgCreateValidator=t.isAminoMsgBeginRedelegate=t.accountFromAny=void 0,t.parseCoins=t.makeCosmoshubPath=t.coins=t.coin=t.TimeoutError=t.StargateClient=t.isDeliverTxSuccess=t.isDeliverTxFailure=void 0;var a=n(2538);Object.defineProperty(t,"accountFromAny",{enumerable:!0,get:function(){return a.accountFromAny}});var s=n(2552);Object.defineProperty(t,"isAminoMsgBeginRedelegate",{enumerable:!0,get:function(){return s.isAminoMsgBeginRedelegate}}),Object.defineProperty(t,"isAminoMsgCreateValidator",{enumerable:!0,get:function(){return s.isAminoMsgCreateValidator}}),Object.defineProperty(t,"isAminoMsgDelegate",{enumerable:!0,get:function(){return s.isAminoMsgDelegate}}),Object.defineProperty(t,"isAminoMsgDeposit",{enumerable:!0,get:function(){return s.isAminoMsgDeposit}}),Object.defineProperty(t,"isAminoMsgEditValidator",{enumerable:!0,get:function(){return s.isAminoMsgEditValidator}}),Object.defineProperty(t,"isAminoMsgFundCommunityPool",{enumerable:!0,get:function(){return s.isAminoMsgFundCommunityPool}}),Object.defineProperty(t,"isAminoMsgMultiSend",{enumerable:!0,get:function(){return s.isAminoMsgMultiSend}}),Object.defineProperty(t,"isAminoMsgSend",{enumerable:!0,get:function(){return s.isAminoMsgSend}}),Object.defineProperty(t,"isAminoMsgSetWithdrawAddress",{enumerable:!0,get:function(){return s.isAminoMsgSetWithdrawAddress}}),Object.defineProperty(t,"isAminoMsgSubmitEvidence",{enumerable:!0,get:function(){return s.isAminoMsgSubmitEvidence}}),Object.defineProperty(t,"isAminoMsgSubmitProposal",{enumerable:!0,get:function(){return s.isAminoMsgSubmitProposal}}),Object.defineProperty(t,"isAminoMsgUndelegate",{enumerable:!0,get:function(){return s.isAminoMsgUndelegate}}),Object.defineProperty(t,"isAminoMsgUnjail",{enumerable:!0,get:function(){return s.isAminoMsgUnjail}}),Object.defineProperty(t,"isAminoMsgVerifyInvariant",{enumerable:!0,get:function(){return s.isAminoMsgVerifyInvariant}}),Object.defineProperty(t,"isAminoMsgVote",{enumerable:!0,get:function(){return s.isAminoMsgVote}}),Object.defineProperty(t,"isAminoMsgWithdrawDelegatorReward",{enumerable:!0,get:function(){return s.isAminoMsgWithdrawDelegatorReward}}),Object.defineProperty(t,"isAminoMsgWithdrawValidatorCommission",{enumerable:!0,get:function(){return s.isAminoMsgWithdrawValidatorCommission}});var c=n(6111);Object.defineProperty(t,"AminoTypes",{enumerable:!0,get:function(){return c.AminoTypes}});var d=n(3357);Object.defineProperty(t,"isMsgDelegateEncodeObject",{enumerable:!0,get:function(){return d.isMsgDelegateEncodeObject}}),Object.defineProperty(t,"isMsgDepositEncodeObject",{enumerable:!0,get:function(){return d.isMsgDepositEncodeObject}}),Object.defineProperty(t,"isMsgSendEncodeObject",{enumerable:!0,get:function(){return d.isMsgSendEncodeObject}}),Object.defineProperty(t,"isMsgSubmitProposalEncodeObject",{enumerable:!0,get:function(){return d.isMsgSubmitProposalEncodeObject}}),Object.defineProperty(t,"isMsgTransferEncodeObject",{enumerable:!0,get:function(){return d.isMsgTransferEncodeObject}}),Object.defineProperty(t,"isMsgUndelegateEncodeObject",{enumerable:!0,get:function(){return d.isMsgUndelegateEncodeObject}}),Object.defineProperty(t,"isMsgVoteEncodeObject",{enumerable:!0,get:function(){return d.isMsgVoteEncodeObject}}),Object.defineProperty(t,"isMsgWithdrawDelegatorRewardEncodeObject",{enumerable:!0,get:function(){return d.isMsgWithdrawDelegatorRewardEncodeObject}});var u=n(1371);Object.defineProperty(t,"calculateFee",{enumerable:!0,get:function(){return u.calculateFee}}),Object.defineProperty(t,"GasPrice",{enumerable:!0,get:function(){return u.GasPrice}}),t.logs=i(n(2082));var l=n(9625);Object.defineProperty(t,"makeMultisignedTx",{enumerable:!0,get:function(){return l.makeMultisignedTx}});var A=n(1627);Object.defineProperty(t,"createPagination",{enumerable:!0,get:function(){return A.createPagination}}),Object.defineProperty(t,"createProtobufRpcClient",{enumerable:!0,get:function(){return A.createProtobufRpcClient}}),Object.defineProperty(t,"decodeCosmosSdkDecFromProto",{enumerable:!0,get:function(){return A.decodeCosmosSdkDecFromProto}}),Object.defineProperty(t,"QueryClient",{enumerable:!0,get:function(){return A.QueryClient}}),Object.defineProperty(t,"setupAuthExtension",{enumerable:!0,get:function(){return A.setupAuthExtension}}),Object.defineProperty(t,"setupBankExtension",{enumerable:!0,get:function(){return A.setupBankExtension}}),Object.defineProperty(t,"setupDistributionExtension",{enumerable:!0,get:function(){return A.setupDistributionExtension}}),Object.defineProperty(t,"setupGovExtension",{enumerable:!0,get:function(){return A.setupGovExtension}}),Object.defineProperty(t,"setupIbcExtension",{enumerable:!0,get:function(){return A.setupIbcExtension}}),Object.defineProperty(t,"setupMintExtension",{enumerable:!0,get:function(){return A.setupMintExtension}}),Object.defineProperty(t,"setupStakingExtension",{enumerable:!0,get:function(){return A.setupStakingExtension}}),Object.defineProperty(t,"setupTxExtension",{enumerable:!0,get:function(){return A.setupTxExtension}});var f=n(494);Object.defineProperty(t,"isSearchByHeightQuery",{enumerable:!0,get:function(){return f.isSearchByHeightQuery}}),Object.defineProperty(t,"isSearchBySentFromOrToQuery",{enumerable:!0,get:function(){return f.isSearchBySentFromOrToQuery}}),Object.defineProperty(t,"isSearchByTagsQuery",{enumerable:!0,get:function(){return f.isSearchByTagsQuery}});var h=n(9438);Object.defineProperty(t,"defaultRegistryTypes",{enumerable:!0,get:function(){return h.defaultRegistryTypes}}),Object.defineProperty(t,"SigningStargateClient",{enumerable:!0,get:function(){return h.SigningStargateClient}});var g=n(6499);Object.defineProperty(t,"assertIsDeliverTxFailure",{enumerable:!0,get:function(){return g.assertIsDeliverTxFailure}}),Object.defineProperty(t,"assertIsDeliverTxSuccess",{enumerable:!0,get:function(){return g.assertIsDeliverTxSuccess}}),Object.defineProperty(t,"isDeliverTxFailure",{enumerable:!0,get:function(){return g.isDeliverTxFailure}}),Object.defineProperty(t,"isDeliverTxSuccess",{enumerable:!0,get:function(){return g.isDeliverTxSuccess}}),Object.defineProperty(t,"StargateClient",{enumerable:!0,get:function(){return g.StargateClient}}),Object.defineProperty(t,"TimeoutError",{enumerable:!0,get:function(){return g.TimeoutError}});var p=n(4087);Object.defineProperty(t,"coin",{enumerable:!0,get:function(){return p.coin}}),Object.defineProperty(t,"coins",{enumerable:!0,get:function(){return p.coins}}),Object.defineProperty(t,"makeCosmoshubPath",{enumerable:!0,get:function(){return p.makeCosmoshubPath}}),Object.defineProperty(t,"parseCoins",{enumerable:!0,get:function(){return p.parseCoins}})},2082:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAttribute=t.parseRawLog=t.parseLogs=t.parseLog=t.parseEvent=t.parseAttribute=void 0;const r=n(5553);function o(e){if(!(0,r.isNonNullObject)(e))throw new Error("Attribute must be a non-null object");const{key:t,value:n}=e;if("string"!=typeof t||!t)throw new Error("Attribute's key must be a non-empty string");if("string"!=typeof n&&void 0!==n)throw new Error("Attribute's value must be a string or unset");return{key:t,value:n||""}}function i(e){if(!(0,r.isNonNullObject)(e))throw new Error("Event must be a non-null object");const{type:t,attributes:n}=e;if("string"!=typeof t||""===t)throw new Error("Event type must be a non-empty string");if(!Array.isArray(n))throw new Error("Event's attributes must be an array");return{type:t,attributes:n.map(o)}}function a(e){if(!(0,r.isNonNullObject)(e))throw new Error("Log must be a non-null object");const{msg_index:t,log:n,events:o}=e;if("number"!=typeof t)throw new Error("Log's msg_index must be a number");if("string"!=typeof n)throw new Error("Log's log must be a string");if(!Array.isArray(o))throw new Error("Log's events must be an array");return{msg_index:t,log:n,events:o.map(i)}}function s(e){if(!Array.isArray(e))throw new Error("Logs must be an array");return e.map(a)}t.parseAttribute=o,t.parseEvent=i,t.parseLog=a,t.parseLogs=s,t.parseRawLog=function(e="[]"){return s(JSON.parse(e).map((({events:e},t)=>({msg_index:t,events:e,log:""}))))},t.findAttribute=function(e,t,n){var r;const o=e.find((()=>!0)),i=null===(r=null==o?void 0:o.events.find((e=>e.type===t)))||void 0===r?void 0:r.attributes.find((e=>e.key===n));if(!i)throw new Error(`Could not find attribute '${n}' in first event of type '${t}' in first log.`);return i}},9625:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.makeMultisignedTx=t.makeCompactBitArray=void 0;const o=n(3359),i=n(8972),a=n(4087),s=n(7381),c=n(2574),d=n(9639),u=n(9639),l=r(n(3720));function A(e){const t=Math.ceil(e.length/8),n=e.length-8*Math.floor(e.length/8),r=new Uint8Array(t);return e.forEach(((e,t)=>{const n=Math.floor(t/8),o=t%8;e&&(r[n]|=1<<7-o)})),s.CompactBitArray.fromPartial({elems:r,extraBitsStored:n})}t.makeCompactBitArray=A,t.makeMultisignedTx=function(e,t,n,r,f){const h=Array.from(f.keys()),g=(0,i.fromBech32)(h[0]).prefix,p=Array(e.value.pubkeys.length).fill(!1),m=new Array;for(let t=0;t({single:{mode:c.SignMode.SIGN_MODE_LEGACY_AMINO_JSON}})))}},sequence:l.default.fromNumber(t)},y=d.AuthInfo.fromPartial({signerInfos:[v],fee:{amount:[...n.amount],gasLimit:l.default.fromString(n.gas)}}),b=d.AuthInfo.encode(y).finish();return u.TxRaw.fromPartial({bodyBytes:r,authInfoBytes:b,signatures:[s.MultiSignature.encode(s.MultiSignature.fromPartial({signatures:m})).finish()]})}},4812:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupAuthExtension=void 0;const r=n(4443),o=n(437);t.setupAuthExtension=function(e){const t=(0,o.createProtobufRpcClient)(e),n=new r.QueryClientImpl(t);return{auth:{account:async e=>{const{account:t}=await n.Account({address:e});return null!=t?t:null}}}}},5536:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupBankExtension=void 0;const r=n(5553),o=n(2916),i=n(437);t.setupBankExtension=function(e){const t=(0,i.createProtobufRpcClient)(e),n=new o.QueryClientImpl(t);return{bank:{balance:async(e,t)=>{const{balance:o}=await n.Balance({address:e,denom:t});return(0,r.assert)(o),o},allBalances:async e=>{const{balances:t}=await n.AllBalances({address:e});return t},totalSupply:async()=>{const{supply:e}=await n.TotalSupply({});return e},supplyOf:async e=>{const{amount:t}=await n.SupplyOf({denom:e});return(0,r.assert)(t),t},denomMetadata:async e=>{const{metadata:t}=await n.DenomMetadata({denom:e});return(0,r.assert)(t),t},denomsMetadata:async()=>{const{metadatas:e}=await n.DenomsMetadata({pagination:void 0});return e}}}}},7382:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupDistributionExtension=void 0;const o=n(6208),i=r(n(3720)),a=n(437);t.setupDistributionExtension=function(e){const t=(0,a.createProtobufRpcClient)(e),n=new o.QueryClientImpl(t);return{distribution:{communityPool:async()=>await n.CommunityPool({}),delegationRewards:async(e,t)=>await n.DelegationRewards({delegatorAddress:e,validatorAddress:t}),delegationTotalRewards:async e=>await n.DelegationTotalRewards({delegatorAddress:e}),delegatorValidators:async e=>await n.DelegatorValidators({delegatorAddress:e}),delegatorWithdrawAddress:async e=>await n.DelegatorWithdrawAddress({delegatorAddress:e}),params:async()=>await n.Params({}),validatorCommission:async e=>await n.ValidatorCommission({validatorAddress:e}),validatorOutstandingRewards:async e=>await n.ValidatorOutstandingRewards({validatorAddress:e}),validatorSlashes:async(e,t,r,o)=>await n.ValidatorSlashes({validatorAddress:e,startingHeight:i.default.fromNumber(t,!0),endingHeight:i.default.fromNumber(r,!0),pagination:(0,a.createPagination)(o)})}}}},466:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupGovExtension=void 0;const r=n(9207),o=n(437);t.setupGovExtension=function(e){const t=(0,o.createProtobufRpcClient)(e),n=new r.QueryClientImpl(t);return{gov:{params:async e=>await n.Params({paramsType:e}),proposals:async(e,t,r,i)=>await n.Proposals({proposalStatus:e,depositor:t,voter:r,pagination:(0,o.createPagination)(i)}),proposal:async e=>await n.Proposal({proposalId:(0,o.longify)(e)}),deposits:async(e,t)=>await n.Deposits({proposalId:(0,o.longify)(e),pagination:(0,o.createPagination)(t)}),deposit:async(e,t)=>await n.Deposit({proposalId:(0,o.longify)(e),depositor:t}),tally:async e=>await n.TallyResult({proposalId:(0,o.longify)(e)}),votes:async(e,t)=>await n.Votes({proposalId:(0,o.longify)(e),pagination:(0,o.createPagination)(t)}),vote:async(e,t)=>await n.Vote({proposalId:(0,o.longify)(e),voter:t})}}}},5815:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupIbcExtension=void 0;const o=n(8972),i=n(6961),a=n(5892),s=n(1787),c=n(6688),d=n(6448),u=n(2329),l=n(1234),A=r(n(3720)),f=n(437);function h(e){if("/ibc.lightclients.tendermint.v1.ClientState"!==(null==e?void 0:e.typeUrl))throw new Error(`Unexpected client state type: ${null==e?void 0:e.typeUrl}`);return l.ClientState.decode(e.value)}t.setupIbcExtension=function(e){const t=(0,f.createProtobufRpcClient)(e),n=new c.QueryClientImpl(t),r=new d.QueryClientImpl(t),g=new u.QueryClientImpl(t),p=new a.QueryClientImpl(t);return{ibc:{channel:{channel:async(e,t)=>n.Channel({portId:e,channelId:t}),channels:async e=>n.Channels({pagination:(0,f.createPagination)(e)}),allChannels:async()=>{var e;const t=[];let r,o;do{r=await n.Channels({pagination:(0,f.createPagination)(o)}),t.push(...r.channels),o=null===(e=r.pagination)||void 0===e?void 0:e.nextKey}while(o&&o.length);return{channels:t,height:r.height}},connectionChannels:async(e,t)=>n.ConnectionChannels({connection:e,pagination:(0,f.createPagination)(t)}),allConnectionChannels:async e=>{var t;const r=[];let o,i;do{o=await n.ConnectionChannels({connection:e,pagination:(0,f.createPagination)(i)}),r.push(...o.channels),i=null===(t=o.pagination)||void 0===t?void 0:t.nextKey}while(i&&i.length);return{channels:r,height:o.height}},clientState:async(e,t)=>n.ChannelClientState({portId:e,channelId:t}),consensusState:async(e,t,r,o)=>n.ChannelConsensusState({portId:e,channelId:t,revisionNumber:A.default.fromNumber(r,!0),revisionHeight:A.default.fromNumber(o,!0)}),packetCommitment:async(e,t,r)=>n.PacketCommitment({portId:e,channelId:t,sequence:r}),packetCommitments:async(e,t,r)=>n.PacketCommitments({channelId:t,portId:e,pagination:(0,f.createPagination)(r)}),allPacketCommitments:async(e,t)=>{var r;const o=[];let i,a;do{i=await n.PacketCommitments({channelId:t,portId:e,pagination:(0,f.createPagination)(a)}),o.push(...i.commitments),a=null===(r=i.pagination)||void 0===r?void 0:r.nextKey}while(a&&a.length);return{commitments:o,height:i.height}},packetReceipt:async(e,t,r)=>n.PacketReceipt({portId:e,channelId:t,sequence:A.default.fromNumber(r,!0)}),packetAcknowledgement:async(e,t,r)=>n.PacketAcknowledgement({portId:e,channelId:t,sequence:A.default.fromNumber(r,!0)}),packetAcknowledgements:async(e,t,r)=>n.PacketAcknowledgements({portId:e,channelId:t,pagination:(0,f.createPagination)(r)}),allPacketAcknowledgements:async(e,t)=>{var r;const o=[];let i,a;do{i=await n.PacketAcknowledgements({channelId:t,portId:e,pagination:(0,f.createPagination)(a)}),o.push(...i.acknowledgements),a=null===(r=i.pagination)||void 0===r?void 0:r.nextKey}while(a&&a.length);return{acknowledgements:o,height:i.height}},unreceivedPackets:async(e,t,r)=>n.UnreceivedPackets({portId:e,channelId:t,packetCommitmentSequences:r.map((e=>A.default.fromNumber(e,!0)))}),unreceivedAcks:async(e,t,r)=>n.UnreceivedAcks({portId:e,channelId:t,packetAckSequences:r.map((e=>A.default.fromNumber(e,!0)))}),nextSequenceReceive:async(e,t)=>n.NextSequenceReceive({portId:e,channelId:t})},client:{state:async e=>r.ClientState({clientId:e}),states:async e=>r.ClientStates({pagination:(0,f.createPagination)(e)}),allStates:async()=>{var e;const t=[];let n,o;do{n=await r.ClientStates({pagination:(0,f.createPagination)(o)}),t.push(...n.clientStates),o=null===(e=n.pagination)||void 0===e?void 0:e.nextKey}while(o&&o.length);return{clientStates:t}},consensusState:async(e,t)=>r.ConsensusState(d.QueryConsensusStateRequest.fromPartial({clientId:e,revisionHeight:void 0!==t?A.default.fromNumber(t,!0):void 0,latestHeight:void 0===t})),consensusStates:async(e,t)=>r.ConsensusStates({clientId:e,pagination:(0,f.createPagination)(t)}),allConsensusStates:async e=>{var t;const n=[];let o,i;do{o=await r.ConsensusStates({clientId:e,pagination:(0,f.createPagination)(i)}),n.push(...o.consensusStates),i=null===(t=o.pagination)||void 0===t?void 0:t.nextKey}while(i&&i.length);return{consensusStates:n}},params:async()=>r.ClientParams({}),stateTm:async e=>h((await r.ClientState({clientId:e})).clientState),statesTm:async e=>{const{clientStates:t}=await r.ClientStates({pagination:(0,f.createPagination)(e)});return t.map((({clientState:e})=>h(e)))},allStatesTm:async()=>{var e;const t=[];let n,o;do{n=await r.ClientStates({pagination:(0,f.createPagination)(o)}),t.push(...n.clientStates),o=null===(e=n.pagination)||void 0===e?void 0:e.nextKey}while(o&&o.length);return t.map((({clientState:e})=>h(e)))},consensusStateTm:async(e,t)=>function(e){if("/ibc.lightclients.tendermint.v1.ConsensusState"!==(null==e?void 0:e.typeUrl))throw new Error(`Unexpected client state type: ${null==e?void 0:e.typeUrl}`);return l.ConsensusState.decode(e.value)}((await r.ConsensusState(d.QueryConsensusStateRequest.fromPartial({clientId:e,revisionHeight:null==t?void 0:t.revisionHeight,revisionNumber:null==t?void 0:t.revisionNumber,latestHeight:void 0===t}))).consensusState)},connection:{connection:async e=>g.Connection({connectionId:e}),connections:async e=>g.Connections({pagination:(0,f.createPagination)(e)}),allConnections:async()=>{var e;const t=[];let n,r;do{n=await g.Connections({pagination:(0,f.createPagination)(r)}),t.push(...n.connections),r=null===(e=n.pagination)||void 0===e?void 0:e.nextKey}while(r&&r.length);return{connections:t,height:n.height}},clientConnections:async e=>g.ClientConnections({clientId:e}),clientState:async e=>g.ConnectionClientState({connectionId:e}),consensusState:async(e,t)=>g.ConnectionConsensusState(u.QueryConnectionConsensusStateRequest.fromPartial({connectionId:e,revisionHeight:A.default.fromNumber(t,!0)}))},transfer:{denomTrace:async e=>p.DenomTrace({hash:e}),denomTraces:async e=>p.DenomTraces({pagination:(0,f.createPagination)(e)}),allDenomTraces:async()=>{var e;const t=[];let n,r;do{n=await p.DenomTraces({pagination:(0,f.createPagination)(r)}),t.push(...n.denomTraces),r=null===(e=n.pagination)||void 0===e?void 0:e.nextKey}while(r&&r.length);return{denomTraces:t}},params:async()=>p.Params({})},verified:{channel:{channel:async(t,n)=>{const r=(0,o.toAscii)(`channelEnds/ports/${t}/channels/${n}`),i=await e.queryVerified("ibc",r);return i.length?s.Channel.decode(i):null},packetCommitment:async(t,n,r)=>{const i=(0,o.toAscii)(`commitments/ports/${t}/channels/${n}/packets/${r}`);return await e.queryVerified("ibc",i)},packetAcknowledgement:async(t,n,r)=>{const i=(0,o.toAscii)(`acks/ports/${t}/channels/${n}/acknowledgements/${r}`);return await e.queryVerified("ibc",i)},nextSequenceReceive:async(t,n)=>{const r=(0,o.toAscii)(`seqAcks/ports/${t}/channels/${n}/nextSequenceAck`),a=await e.queryVerified("ibc",r);return a.length?i.Uint64.fromBytes(a).toNumber():null}}}}}}},1627:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeCosmosSdkDecFromProto=t.createProtobufRpcClient=t.createPagination=t.setupTxExtension=t.setupStakingExtension=t.setupSlashingExtension=t.setupMintExtension=t.setupIbcExtension=t.setupGovExtension=t.setupDistributionExtension=t.setupBankExtension=t.setupAuthExtension=t.QueryClient=void 0;var r=n(6314);Object.defineProperty(t,"QueryClient",{enumerable:!0,get:function(){return r.QueryClient}});var o=n(4812);Object.defineProperty(t,"setupAuthExtension",{enumerable:!0,get:function(){return o.setupAuthExtension}});var i=n(5536);Object.defineProperty(t,"setupBankExtension",{enumerable:!0,get:function(){return i.setupBankExtension}});var a=n(7382);Object.defineProperty(t,"setupDistributionExtension",{enumerable:!0,get:function(){return a.setupDistributionExtension}});var s=n(466);Object.defineProperty(t,"setupGovExtension",{enumerable:!0,get:function(){return s.setupGovExtension}});var c=n(5815);Object.defineProperty(t,"setupIbcExtension",{enumerable:!0,get:function(){return c.setupIbcExtension}});var d=n(9112);Object.defineProperty(t,"setupMintExtension",{enumerable:!0,get:function(){return d.setupMintExtension}});var u=n(1885);Object.defineProperty(t,"setupSlashingExtension",{enumerable:!0,get:function(){return u.setupSlashingExtension}});var l=n(7175);Object.defineProperty(t,"setupStakingExtension",{enumerable:!0,get:function(){return l.setupStakingExtension}});var A=n(3462);Object.defineProperty(t,"setupTxExtension",{enumerable:!0,get:function(){return A.setupTxExtension}});var f=n(437);Object.defineProperty(t,"createPagination",{enumerable:!0,get:function(){return f.createPagination}}),Object.defineProperty(t,"createProtobufRpcClient",{enumerable:!0,get:function(){return f.createProtobufRpcClient}}),Object.defineProperty(t,"decodeCosmosSdkDecFromProto",{enumerable:!0,get:function(){return f.decodeCosmosSdkDecFromProto}})},9112:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupMintExtension=void 0;const r=n(5553),o=n(2879),i=n(4658),a=n(437);t.setupMintExtension=function(e){const t=(0,i.createProtobufRpcClient)(e),n=new o.QueryClientImpl(t);return{mint:{params:async()=>{const{params:e}=await n.Params({});return(0,r.assert)(e),{blocksPerYear:e.blocksPerYear,goalBonded:(0,a.decodeCosmosSdkDecFromProto)(e.goalBonded),inflationMin:(0,a.decodeCosmosSdkDecFromProto)(e.inflationMin),inflationMax:(0,a.decodeCosmosSdkDecFromProto)(e.inflationMax),inflationRateChange:(0,a.decodeCosmosSdkDecFromProto)(e.inflationRateChange),mintDenom:e.mintDenom}},inflation:async()=>{const{inflation:e}=await n.Inflation({});return(0,a.decodeCosmosSdkDecFromProto)(e)},annualProvisions:async()=>{const{annualProvisions:e}=await n.AnnualProvisions({});return(0,a.decodeCosmosSdkDecFromProto)(e)}}}}},6314:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClient=void 0;const r=n(5201),o=n(8972),i=n(1459),a=n(5553);function s(e,t,n){if(e.type!==t)throw new Error(`Op expected to be ${t}, got "${e.type}`);if(!(0,a.arrayContentEquals)(n,e.key))throw new Error(`Proven key different than queried key.\nQuery: ${(0,o.toHex)(n)}\nProven: ${(0,o.toHex)(e.key)}`);return r.ics23.CommitmentProof.decode(e.data)}class c{constructor(e){this.tmClient=e}static withExtensions(e,...t){const n=new c(e),r=t.map((e=>e(n)));for(const e of r){(0,a.assert)((0,a.isNonNullObject)(e),"Extension must be a non-null object");for(const[t,r]of Object.entries(e)){(0,a.assert)((0,a.isNonNullObject)(r),`Module must be a non-null object. Found type ${typeof r} for module "${t}".`);const e=n[t]||{};n[t]={...e,...r}}}return n}async queryVerified(e,t,n){const{height:i,proof:c,value:d}=await this.queryRawProof(e,t,n),u=s(c.ops[0],"ics23:iavl",t),l=s(c.ops[1],"ics23:simple",(0,o.toAscii)(e));(0,a.assert)(l.exist),(0,a.assert)(l.exist.value),d&&0!==d.length?((0,a.assert)(u.exist),(0,a.assert)(u.exist.value),(0,r.verifyExistence)(u.exist,r.iavlSpec,l.exist.value,t,d)):((0,a.assert)(u.nonexist),(0,r.verifyNonExistence)(u.nonexist,r.iavlSpec,l.exist.value,t));const A=await this.getNextHeader(i);return(0,r.verifyExistence)(l.exist,r.tendermintSpec,A.appHash,(0,o.toAscii)(e),l.exist.value),d}async queryRawProof(e,t,n){var r;const{key:i,value:c,height:d,proof:u,code:l,log:A}=await this.tmClient.abciQuery({path:`/store/${e}/key`,data:t,prove:!0,height:n});if(l)throw new Error(`Query failed with (${l}): ${A}`);if(!(0,a.arrayContentEquals)(t,i))throw new Error(`Response key ${(0,o.toHex)(i)} doesn't match query key ${(0,o.toHex)(t)}`);if(!d)throw new Error("No query height returned");if(!u||2!==u.ops.length)throw new Error(`Expected 2 proof ops, got ${null!==(r=null==u?void 0:u.ops.length)&&void 0!==r?r:0}. Are you using stargate?`);return s(u.ops[0],"ics23:iavl",i),s(u.ops[1],"ics23:simple",(0,o.toAscii)(e)),{key:i,value:c,height:d,proof:{ops:[...u.ops]}}}async queryUnverified(e,t){const n=await this.tmClient.abciQuery({path:e,data:t,prove:!1});if(n.code)throw new Error(`Query failed with (${n.code}): ${n.log}`);return n.value}async getNextHeader(e){if((0,a.assertDefined)(e),0===e)throw new Error("Query returned height 0, cannot prove it");const t=e+1;let n,r;try{r=this.tmClient.subscribeNewBlockHeader()}catch(e){}if(r){const e=await(0,i.firstEvent)(r);e.height===t&&(n=e)}for(;!n;){const r=(await this.tmClient.blockchain(e,t)).blockMetas.map((e=>e.header)).find((e=>e.height===t));r?n=r:await(0,a.sleep)(1e3)}return(0,a.assert)(n.height===t,"Got wrong header. This is a bug in the logic above."),n}}t.QueryClient=c},1885:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupSlashingExtension=void 0;const r=n(6701),o=n(437);t.setupSlashingExtension=function(e){const t=(0,o.createProtobufRpcClient)(e),n=new r.QueryClientImpl(t);return{slashing:{signingInfo:async e=>await n.SigningInfo({consAddress:e}),signingInfos:async e=>await n.SigningInfos({pagination:(0,o.createPagination)(e)}),params:async()=>await n.Params({})}}}},7175:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupStakingExtension=void 0;const o=n(4438),i=r(n(3720)),a=n(437);t.setupStakingExtension=function(e){const t=(0,a.createProtobufRpcClient)(e),n=new o.QueryClientImpl(t);return{staking:{delegation:async(e,t)=>await n.Delegation({delegatorAddr:e,validatorAddr:t}),delegatorDelegations:async(e,t)=>await n.DelegatorDelegations({delegatorAddr:e,pagination:(0,a.createPagination)(t)}),delegatorUnbondingDelegations:async(e,t)=>await n.DelegatorUnbondingDelegations({delegatorAddr:e,pagination:(0,a.createPagination)(t)}),delegatorValidator:async(e,t)=>await n.DelegatorValidator({delegatorAddr:e,validatorAddr:t}),delegatorValidators:async(e,t)=>await n.DelegatorValidators({delegatorAddr:e,pagination:(0,a.createPagination)(t)}),historicalInfo:async e=>await n.HistoricalInfo({height:i.default.fromNumber(e,!0)}),params:async()=>await n.Params({}),pool:async()=>await n.Pool({}),redelegations:async(e,t,r,o)=>await n.Redelegations({delegatorAddr:e,srcValidatorAddr:t,dstValidatorAddr:r,pagination:(0,a.createPagination)(o)}),unbondingDelegation:async(e,t)=>await n.UnbondingDelegation({delegatorAddr:e,validatorAddr:t}),validator:async e=>await n.Validator({validatorAddr:e}),validatorDelegations:async(e,t)=>await n.ValidatorDelegations({validatorAddr:e,pagination:(0,a.createPagination)(t)}),validators:async(e,t)=>await n.Validators({status:e,pagination:(0,a.createPagination)(t)}),validatorUnbondingDelegations:async(e,t)=>await n.ValidatorUnbondingDelegations({validatorAddr:e,pagination:(0,a.createPagination)(t)})}}}},3462:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupTxExtension=void 0;const o=n(4087),i=n(2574),a=n(4616),s=n(9639),c=r(n(3720)),d=n(437);t.setupTxExtension=function(e){const t=(0,d.createProtobufRpcClient)(e),n=new a.ServiceClientImpl(t);return{tx:{getTx:async e=>{const t={hash:e};return await n.GetTx(t)},simulate:async(e,t,r,d)=>{const u=a.SimulateRequest.fromPartial({tx:s.Tx.fromPartial({authInfo:s.AuthInfo.fromPartial({fee:s.Fee.fromPartial({}),signerInfos:[{publicKey:(0,o.encodePubkey)(r),sequence:c.default.fromNumber(d,!0),modeInfo:{single:{mode:i.SignMode.SIGN_MODE_UNSPECIFIED}}}]}),body:s.TxBody.fromPartial({messages:Array.from(e),memo:t}),signatures:[new Uint8Array]}),txBytes:void 0});return await n.Simulate(u)}}}}},437:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeCosmosSdkDecFromProto=t.longify=t.createProtobufRpcClient=t.createPagination=t.toAccAddress=void 0;const o=n(8972),i=n(6961),a=n(9551),s=r(n(3720));t.toAccAddress=function(e){return(0,o.fromBech32)(e).data},t.createPagination=function(e){return e?a.PageRequest.fromPartial({key:e,offset:s.default.fromNumber(0,!0),limit:s.default.fromNumber(0,!0),countTotal:!1}):void 0},t.createProtobufRpcClient=function(e){return{request:(t,n,r)=>{const o=`/${t}/${n}`;return e.queryUnverified(o,r)}}},t.longify=function(e){const t=i.Uint64.fromString(e.toString());return s.default.fromBytesBE([...t.toBytesBigEndian()],!0)},t.decodeCosmosSdkDecFromProto=function(e){const t="string"==typeof e?e:(0,o.fromAscii)(e);return i.Decimal.fromAtomics(t,18)}},494:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isSearchByTagsQuery=t.isSearchBySentFromOrToQuery=t.isSearchByHeightQuery=void 0,t.isSearchByHeightQuery=function(e){return void 0!==e.height},t.isSearchBySentFromOrToQuery=function(e){return void 0!==e.sentFromOrTo},t.isSearchByTagsQuery=function(e){return void 0!==e.tags}},9438:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SigningStargateClient=t.defaultRegistryTypes=void 0;const o=n(3359),i=n(8972),a=n(6961),s=n(4087),c=n(3034),d=n(5553),u=n(895),l=n(8994),A=n(891),f=n(3773),h=n(5192),g=n(750),p=n(422),m=n(2574),v=n(9639),y=n(9385),b=n(7375),I=n(9548),C=n(4848),E=r(n(3720)),w=n(6111),B=n(1371),_=n(6499);function S(){return new s.Registry(t.defaultRegistryTypes)}t.defaultRegistryTypes=[["/cosmos.authz.v1beta1.MsgExec",u.MsgExec],["/cosmos.authz.v1beta1.MsgGrant",u.MsgGrant],["/cosmos.authz.v1beta1.MsgRevoke",u.MsgRevoke],["/cosmos.bank.v1beta1.MsgMultiSend",l.MsgMultiSend],["/cosmos.bank.v1beta1.MsgSend",l.MsgSend],["/cosmos.base.v1beta1.Coin",A.Coin],["/cosmos.distribution.v1beta1.MsgFundCommunityPool",f.MsgFundCommunityPool],["/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",f.MsgSetWithdrawAddress],["/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",f.MsgWithdrawDelegatorReward],["/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",f.MsgWithdrawValidatorCommission],["/cosmos.feegrant.v1beta1.MsgGrantAllowance",h.MsgGrantAllowance],["/cosmos.feegrant.v1beta1.MsgRevokeAllowance",h.MsgRevokeAllowance],["/cosmos.gov.v1beta1.MsgDeposit",g.MsgDeposit],["/cosmos.gov.v1beta1.MsgSubmitProposal",g.MsgSubmitProposal],["/cosmos.gov.v1beta1.MsgVote",g.MsgVote],["/cosmos.staking.v1beta1.MsgBeginRedelegate",p.MsgBeginRedelegate],["/cosmos.staking.v1beta1.MsgCreateValidator",p.MsgCreateValidator],["/cosmos.staking.v1beta1.MsgDelegate",p.MsgDelegate],["/cosmos.staking.v1beta1.MsgEditValidator",p.MsgEditValidator],["/cosmos.staking.v1beta1.MsgUndelegate",p.MsgUndelegate],["/ibc.applications.transfer.v1.MsgTransfer",y.MsgTransfer],["/ibc.core.channel.v1.MsgAcknowledgement",b.MsgAcknowledgement],["/ibc.core.channel.v1.MsgChannelCloseConfirm",b.MsgChannelCloseConfirm],["/ibc.core.channel.v1.MsgChannelCloseInit",b.MsgChannelCloseInit],["/ibc.core.channel.v1.MsgChannelOpenAck",b.MsgChannelOpenAck],["/ibc.core.channel.v1.MsgChannelOpenConfirm",b.MsgChannelOpenConfirm],["/ibc.core.channel.v1.MsgChannelOpenInit",b.MsgChannelOpenInit],["/ibc.core.channel.v1.MsgChannelOpenTry",b.MsgChannelOpenTry],["/ibc.core.channel.v1.MsgRecvPacket",b.MsgRecvPacket],["/ibc.core.channel.v1.MsgTimeout",b.MsgTimeout],["/ibc.core.channel.v1.MsgTimeoutOnClose",b.MsgTimeoutOnClose],["/ibc.core.client.v1.MsgCreateClient",I.MsgCreateClient],["/ibc.core.client.v1.MsgSubmitMisbehaviour",I.MsgSubmitMisbehaviour],["/ibc.core.client.v1.MsgUpdateClient",I.MsgUpdateClient],["/ibc.core.client.v1.MsgUpgradeClient",I.MsgUpgradeClient],["/ibc.core.connection.v1.MsgConnectionOpenAck",C.MsgConnectionOpenAck],["/ibc.core.connection.v1.MsgConnectionOpenConfirm",C.MsgConnectionOpenConfirm],["/ibc.core.connection.v1.MsgConnectionOpenInit",C.MsgConnectionOpenInit],["/ibc.core.connection.v1.MsgConnectionOpenTry",C.MsgConnectionOpenTry]];class k extends _.StargateClient{constructor(e,t,n){var r;super(e);const o=null!==(r=n.prefix)&&void 0!==r?r:"cosmos",{registry:i=S(),aminoTypes:a=new w.AminoTypes({prefix:o})}=n;this.registry=i,this.aminoTypes=a,this.signer=t,this.broadcastTimeoutMs=n.broadcastTimeoutMs,this.broadcastPollIntervalMs=n.broadcastPollIntervalMs,this.gasPrice=n.gasPrice}static async connectWithSigner(e,t,n={}){const r=await c.Tendermint34Client.connect(e);return new k(r,t,n)}static async offline(e,t={}){return new k(void 0,e,t)}async simulate(e,t,n){const r=t.map((e=>this.registry.encodeAsAny(e))),i=(await this.signer.getAccounts()).find((t=>t.address===e));if(!i)throw new Error("Failed to retrieve account from signer");const s=(0,o.encodeSecp256k1Pubkey)(i.pubkey),{sequence:c}=await this.getSequence(e),{gasInfo:u}=await this.forceGetQueryClient().tx.simulate(r,n,s,c);return(0,d.assertDefined)(u),a.Uint53.fromString(u.gasUsed.toString()).toNumber()}async sendTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:{fromAddress:e,toAddress:t,amount:[...n]}};return this.signAndBroadcast(e,[i],r,o)}async delegateTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.staking.v1beta1.MsgDelegate",value:p.MsgDelegate.fromPartial({delegatorAddress:e,validatorAddress:t,amount:n})};return this.signAndBroadcast(e,[i],r,o)}async undelegateTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.staking.v1beta1.MsgUndelegate",value:p.MsgUndelegate.fromPartial({delegatorAddress:e,validatorAddress:t,amount:n})};return this.signAndBroadcast(e,[i],r,o)}async withdrawRewards(e,t,n,r=""){const o={typeUrl:"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",value:f.MsgWithdrawDelegatorReward.fromPartial({delegatorAddress:e,validatorAddress:t})};return this.signAndBroadcast(e,[o],n,r)}async sendIbcTokens(e,t,n,r,o,i,a,s,c=""){const d=a?E.default.fromNumber(a).multiply(1e9):void 0,u={typeUrl:"/ibc.applications.transfer.v1.MsgTransfer",value:y.MsgTransfer.fromPartial({sourcePort:r,sourceChannel:o,sender:e,receiver:t,token:n,timeoutHeight:i,timeoutTimestamp:d})};return this.signAndBroadcast(e,[u],s,c)}async signAndBroadcast(e,t,n,r=""){let o;if("auto"==n||"number"==typeof n){(0,d.assertDefined)(this.gasPrice,"Gas price must be set in the client options when auto gas is used.");const i=await this.simulate(e,t,r),a="number"==typeof n?n:1.3;o=(0,B.calculateFee)(Math.round(i*a),this.gasPrice)}else o=n;const i=await this.sign(e,t,o,r),a=v.TxRaw.encode(i).finish();return this.broadcastTx(a,this.broadcastTimeoutMs,this.broadcastPollIntervalMs)}async sign(e,t,n,r,o){let i;if(o)i=o;else{const{accountNumber:t,sequence:n}=await this.getSequence(e);i={accountNumber:t,sequence:n,chainId:await this.getChainId()}}return(0,s.isOfflineDirectSigner)(this.signer)?this.signDirect(e,t,n,r,i):this.signAmino(e,t,n,r,i)}async signAmino(e,t,n,r,{accountNumber:c,sequence:u,chainId:l}){(0,d.assert)(!(0,s.isOfflineDirectSigner)(this.signer));const A=(await this.signer.getAccounts()).find((t=>t.address===e));if(!A)throw new Error("Failed to retrieve account from signer");const f=(0,s.encodePubkey)((0,o.encodeSecp256k1Pubkey)(A.pubkey)),h=m.SignMode.SIGN_MODE_LEGACY_AMINO_JSON,g=t.map((e=>this.aminoTypes.toAmino(e))),p=(0,o.makeSignDoc)(g,n,l,r,c,u),{signature:y,signed:b}=await this.signer.signAmino(e,p),I={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{messages:b.msgs.map((e=>this.aminoTypes.fromAmino(e))),memo:b.memo}},C=this.registry.encode(I),E=a.Int53.fromString(b.fee.gas).toNumber(),w=a.Int53.fromString(b.sequence).toNumber(),B=(0,s.makeAuthInfoBytes)([{pubkey:f,sequence:w}],b.fee.amount,E,h);return v.TxRaw.fromPartial({bodyBytes:C,authInfoBytes:B,signatures:[(0,i.fromBase64)(y.signature)]})}async signDirect(e,t,n,r,{accountNumber:c,sequence:u,chainId:l}){(0,d.assert)((0,s.isOfflineDirectSigner)(this.signer));const A=(await this.signer.getAccounts()).find((t=>t.address===e));if(!A)throw new Error("Failed to retrieve account from signer");const f=(0,s.encodePubkey)((0,o.encodeSecp256k1Pubkey)(A.pubkey)),h={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{messages:t,memo:r}},g=this.registry.encode(h),p=a.Int53.fromString(n.gas).toNumber(),m=(0,s.makeAuthInfoBytes)([{pubkey:f,sequence:u}],n.amount,p),y=(0,s.makeSignDoc)(g,m,l,c),{signature:b,signed:I}=await this.signer.signDirect(e,y);return v.TxRaw.fromPartial({bodyBytes:I.bodyBytes,authInfoBytes:I.authInfoBytes,signatures:[(0,i.fromBase64)(b.signature)]})}}t.SigningStargateClient=k},6499:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StargateClient=t.assertIsDeliverTxFailure=t.assertIsDeliverTxSuccess=t.isDeliverTxSuccess=t.isDeliverTxFailure=t.TimeoutError=void 0;const r=n(8972),o=n(6961),i=n(3034),a=n(5553),s=n(2538),c=n(1627),d=n(494);class u extends Error{constructor(e,t){super(e),this.txId=t}}function l(e){return!!e.code}function A(e){return!l(e)}t.TimeoutError=u,t.isDeliverTxFailure=l,t.isDeliverTxSuccess=A,t.assertIsDeliverTxSuccess=function(e){if(l(e))throw new Error(`Error when broadcasting tx ${e.transactionHash} at height ${e.height}. Code: ${e.code}; Raw log: ${e.rawLog}`)},t.assertIsDeliverTxFailure=function(e){if(A(e))throw new Error(`Transaction ${e.transactionHash} did not fail at height ${e.height}. Code: ${e.code}; Raw log: ${e.rawLog}`)};class f{constructor(e){e&&(this.tmClient=e,this.queryClient=c.QueryClient.withExtensions(e,c.setupAuthExtension,c.setupBankExtension,c.setupStakingExtension,c.setupTxExtension))}static async connect(e){const t=await i.Tendermint34Client.connect(e);return new f(t)}getTmClient(){return this.tmClient}forceGetTmClient(){if(!this.tmClient)throw new Error("Tendermint client not available. You cannot use online functionality in offline mode.");return this.tmClient}getQueryClient(){return this.queryClient}forceGetQueryClient(){if(!this.queryClient)throw new Error("Query client not available. You cannot use online functionality in offline mode.");return this.queryClient}async getChainId(){if(!this.chainId){const e=(await this.forceGetTmClient().status()).nodeInfo.network;if(!e)throw new Error("Chain ID must not be empty");this.chainId=e}return this.chainId}async getHeight(){return(await this.forceGetTmClient().status()).syncInfo.latestBlockHeight}async getAccount(e){try{const t=await this.forceGetQueryClient().auth.account(e);return t?(0,s.accountFromAny)(t):null}catch(e){if(/rpc error: code = NotFound/i.test(e.toString()))return null;throw e}}async getSequence(e){const t=await this.getAccount(e);if(!t)throw new Error("Account does not exist on chain. Send some tokens there before trying to query sequence.");return{accountNumber:t.accountNumber,sequence:t.sequence}}async getBlock(e){const t=await this.forceGetTmClient().block(e);return{id:(0,r.toHex)(t.blockId.hash).toUpperCase(),header:{version:{block:new o.Uint53(t.block.header.version.block).toString(),app:new o.Uint53(t.block.header.version.app).toString()},height:t.block.header.height,chainId:t.block.header.chainId,time:(0,i.toRfc3339WithNanoseconds)(t.block.header.time)},txs:t.block.txs}}async getBalance(e,t){return this.forceGetQueryClient().bank.balance(e,t)}async getAllBalances(e){return this.forceGetQueryClient().bank.allBalances(e)}async getDelegation(e,t){var n;let r;try{r=null===(n=(await this.forceGetQueryClient().staking.delegation(e,t)).delegationResponse)||void 0===n?void 0:n.balance}catch(e){if(!e.toString().includes("key not found"))throw e}return r||null}async getTx(e){var t;return null!==(t=(await this.txsQuery(`tx.hash='${e}'`))[0])&&void 0!==t?t:null}async searchTx(e,t={}){const n=t.minHeight||0,r=t.maxHeight||Number.MAX_SAFE_INTEGER;if(r=${n} AND tx.height<=${r}`}let i;if((0,d.isSearchByHeightQuery)(e))i=e.height>=n&&e.height<=r?await this.txsQuery(`tx.height=${e.height}`):[];else if((0,d.isSearchBySentFromOrToQuery)(e)){const t=o(`message.module='bank' AND transfer.sender='${e.sentFromOrTo}'`),n=o(`message.module='bank' AND transfer.recipient='${e.sentFromOrTo}'`),[r,a]=await Promise.all([t,n].map((e=>this.txsQuery(e)))),s=r.map((e=>e.hash));i=[...r,...a.filter((e=>!s.includes(e.hash)))]}else{if(!(0,d.isSearchByTagsQuery)(e))throw new Error("Unknown query type");{const t=o(e.tags.map((e=>`${e.key}='${e.value}'`)).join(" AND "));i=await this.txsQuery(t)}}return i.filter((e=>e.height>=n&&e.height<=r))}disconnect(){this.tmClient&&this.tmClient.disconnect()}async broadcastTx(e,t=6e4,n=3e3){let o=!1;const i=setTimeout((()=>{o=!0}),t),s=async e=>{if(o)throw new u(`Transaction with ID ${e} was submitted but was not yet found on the chain. You might want to check later.`,e);await(0,a.sleep)(n);const t=await this.getTx(e);return t?{code:t.code,height:t.height,rawLog:t.rawLog,transactionHash:e,gasUsed:t.gasUsed,gasWanted:t.gasWanted}:s(e)},c=await this.forceGetTmClient().broadcastTxSync({tx:e});if(c.code)throw new Error(`Broadcasting transaction failed with code ${c.code} (codespace: ${c.codeSpace}). Log: ${c.log}`);const d=(0,r.toHex)(c.hash).toUpperCase();return new Promise(((e,t)=>s(d).then((t=>{clearTimeout(i),e(t)}),(e=>{clearTimeout(i),t(e)}))))}async txsQuery(e){return(await this.forceGetTmClient().txSearchAll({query:e})).txs.map((e=>({height:e.height,hash:(0,r.toHex)(e.hash).toUpperCase(),code:e.result.code,rawLog:e.result.log||"",tx:e.tx,gasUsed:e.result.gasUsed,gasWanted:e.result.gasWanted})))}}t.StargateClient=f},2118:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.concat=void 0;const r=n(3813);t.concat=function(...e){const t=new Array,n=new Array,o=new Set;let i=0;function a(){for(;t.length>0;)t.shift().unsubscribe();n.length=0,o.clear(),i=0}const s={start:r=>{function s(e){for(;;){const t=n[e].shift();if(void 0===t)return;r.next(t)}}function c(){return i>=e.length}e.forEach((e=>n.push([]))),c()?r.complete():e.forEach(((e,d)=>{t.push(e.subscribe({next:e=>{d===i?r.next(e):n[d].push(e)},complete:()=>{for(o.add(d);o.has(i);)s(i),i++;c()?r.complete():s(i)},error:e=>{r.error(e),a()}}))}))},stop:()=>{a()}};return r.Stream.create(s)}},7606:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultValueProducer=void 0,t.DefaultValueProducer=class{constructor(e,t){this.callbacks=t,this.internalValue=e}get value(){return this.internalValue}update(e){this.internalValue=e,this.listener&&this.listener.next(e)}error(e){this.listener&&this.listener.error(e)}start(e){this.listener=e,e.next(this.internalValue),this.callbacks&&this.callbacks.onStarted()}stop(){this.callbacks&&this.callbacks.onStop(),this.listener=void 0}}},2889:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dropDuplicates=void 0,t.dropDuplicates=function(e){return t=>{const n=new Set;return t.filter((t=>!n.has(e(t)))).debug((t=>n.add(e(t))))}}},1459:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.ValueAndUpdates=t.toListPromise=t.fromListPromise=t.firstEvent=t.dropDuplicates=t.DefaultValueProducer=t.concat=void 0;var i=n(2118);Object.defineProperty(t,"concat",{enumerable:!0,get:function(){return i.concat}});var a=n(7606);Object.defineProperty(t,"DefaultValueProducer",{enumerable:!0,get:function(){return a.DefaultValueProducer}});var s=n(2889);Object.defineProperty(t,"dropDuplicates",{enumerable:!0,get:function(){return s.dropDuplicates}});var c=n(3511);Object.defineProperty(t,"firstEvent",{enumerable:!0,get:function(){return c.firstEvent}}),Object.defineProperty(t,"fromListPromise",{enumerable:!0,get:function(){return c.fromListPromise}}),Object.defineProperty(t,"toListPromise",{enumerable:!0,get:function(){return c.toListPromise}}),o(n(165),t);var d=n(3633);Object.defineProperty(t,"ValueAndUpdates",{enumerable:!0,get:function(){return d.ValueAndUpdates}})},3511:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.firstEvent=t.toListPromise=t.fromListPromise=void 0;const r=n(3813);async function o(e,t){return new Promise(((n,r)=>{if(0===t)return void n([]);const o=new Array;e.take(t).subscribe({next:e=>{o.push(e),o.length===t&&n(o)},complete:()=>{r(`Stream completed before all events could be collected. Collected ${o.length}, expected ${t}`)},error:e=>r(e)})}))}t.fromListPromise=function(e){const t={start:t=>{e.then((e=>{for(const n of e)t.next(n);t.complete()})).catch((e=>t.error(e)))},stop:()=>{}};return r.Stream.create(t)},t.toListPromise=o,t.firstEvent=async function(e){return(await o(e,1))[0]}},165:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.lastValue=t.asArray=t.countStream=t.Reducer=void 0;class n{constructor(e,t,n){this.stream=e,this.reducer=t,this.state=n,this.completed=new Promise(((e,t)=>{const n=this.stream.subscribe({next:e=>{this.state=this.reducer(this.state,e)},complete:()=>{e(),n.unsubscribe()},error:e=>{t(e),n.unsubscribe()}})}))}value(){return this.state}async finished(){return this.completed}}function r(e,t){return e+1}function o(e,t){return[...e,t]}function i(e,t){return t}t.Reducer=n,t.countStream=function(e){return new n(e,r,0)},t.asArray=function(e){return new n(e,o,[])},t.lastValue=function(e){return new n(e,i,void 0)}},3633:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValueAndUpdates=void 0;const r=n(3813);t.ValueAndUpdates=class{constructor(e){this.producer=e,this.updates=r.MemoryStream.createWithMemory(this.producer)}get value(){return this.producer.value}async waitFor(e){const t="function"==typeof e?e:t=>t===e;return new Promise(((e,n)=>{const r=this.updates.subscribe({next:n=>{t(n)&&(e(n),setTimeout((()=>r.unsubscribe()),0))},complete:()=>{r.unsubscribe(),n("Update stream completed without expected value")},error:e=>{n(e)}})}))}}},2522:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pubkeyToAddress=t.pubkeyToRawAddress=t.rawSecp256k1PubkeyToRawAddress=t.rawEd25519PubkeyToRawAddress=void 0;const r=n(9562),o=n(8972);function i(e){if(32!==e.length)throw new Error(`Invalid Ed25519 pubkey length: ${e.length}`);return(0,r.sha256)(e).slice(0,20)}function a(e){if(33!==e.length)throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${e.length}`);return(0,r.ripemd160)((0,r.sha256)(e))}function s(e,t){switch(e){case"ed25519":return i(t);case"secp256k1":return a(t);default:throw new Error(`Pubkey type ${e} not supported`)}}t.rawEd25519PubkeyToRawAddress=i,t.rawSecp256k1PubkeyToRawAddress=a,t.pubkeyToRawAddress=s,t.pubkeyToAddress=function(e,t){return(0,o.toHex)(s(e,t)).toUpperCase()}},8477:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DateTime=t.toSeconds=t.fromSeconds=t.toRfc3339WithNanoseconds=t.fromRfc3339WithNanoseconds=void 0;const r=n(8972),o=n(6961);function i(e){const t=(0,r.fromRfc3339)(e),n=e.match(/\.(\d+)Z$/),o=n?n[1].slice(3):"";return t.nanoseconds=parseInt(o.padEnd(6,"0"),10),t}function a(e){var t,n;const r=e.toISOString(),o=null!==(n=null===(t=e.nanoseconds)||void 0===t?void 0:t.toString())&&void 0!==n?n:"";return`${r.slice(0,-1)}${o.padStart(6,"0")}Z`}t.fromRfc3339WithNanoseconds=i,t.toRfc3339WithNanoseconds=a,t.fromSeconds=function(e,t=0){const n=new o.Uint32(t).toNumber();if(n>999999999)throw new Error("Nano seconds must not exceed 999999999");const r=new Date(1e3*e+Math.floor(n/1e6));return r.nanoseconds=n%1e6,r},t.toSeconds=function(e){var t;return{seconds:Math.floor(e.getTime()/1e3),nanos:e.getTime()%1e3*1e6+(null!==(t=e.nanoseconds)&&void 0!==t?t:0)}},t.DateTime=class{static decode(e){return i(e)}static encode(e){return a(e)}}},3034:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockIdFlag=t.Tendermint34Client=t.tendermint34=t.VoteType=t.SubscriptionEventType=t.Method=t.broadcastTxSyncSuccess=t.broadcastTxCommitSuccess=t.WebsocketClient=t.HttpClient=t.toSeconds=t.toRfc3339WithNanoseconds=t.fromSeconds=t.fromRfc3339WithNanoseconds=t.DateTime=t.rawSecp256k1PubkeyToRawAddress=t.rawEd25519PubkeyToRawAddress=t.pubkeyToRawAddress=t.pubkeyToAddress=void 0;var a=n(2522);Object.defineProperty(t,"pubkeyToAddress",{enumerable:!0,get:function(){return a.pubkeyToAddress}}),Object.defineProperty(t,"pubkeyToRawAddress",{enumerable:!0,get:function(){return a.pubkeyToRawAddress}}),Object.defineProperty(t,"rawEd25519PubkeyToRawAddress",{enumerable:!0,get:function(){return a.rawEd25519PubkeyToRawAddress}}),Object.defineProperty(t,"rawSecp256k1PubkeyToRawAddress",{enumerable:!0,get:function(){return a.rawSecp256k1PubkeyToRawAddress}});var s=n(8477);Object.defineProperty(t,"DateTime",{enumerable:!0,get:function(){return s.DateTime}}),Object.defineProperty(t,"fromRfc3339WithNanoseconds",{enumerable:!0,get:function(){return s.fromRfc3339WithNanoseconds}}),Object.defineProperty(t,"fromSeconds",{enumerable:!0,get:function(){return s.fromSeconds}}),Object.defineProperty(t,"toRfc3339WithNanoseconds",{enumerable:!0,get:function(){return s.toRfc3339WithNanoseconds}}),Object.defineProperty(t,"toSeconds",{enumerable:!0,get:function(){return s.toSeconds}});var c=n(8443);Object.defineProperty(t,"HttpClient",{enumerable:!0,get:function(){return c.HttpClient}}),Object.defineProperty(t,"WebsocketClient",{enumerable:!0,get:function(){return c.WebsocketClient}});var d=n(7468);Object.defineProperty(t,"broadcastTxCommitSuccess",{enumerable:!0,get:function(){return d.broadcastTxCommitSuccess}}),Object.defineProperty(t,"broadcastTxSyncSuccess",{enumerable:!0,get:function(){return d.broadcastTxSyncSuccess}}),Object.defineProperty(t,"Method",{enumerable:!0,get:function(){return d.Method}}),Object.defineProperty(t,"SubscriptionEventType",{enumerable:!0,get:function(){return d.SubscriptionEventType}}),Object.defineProperty(t,"VoteType",{enumerable:!0,get:function(){return d.VoteType}}),t.tendermint34=i(n(7468));var u=n(7468);Object.defineProperty(t,"Tendermint34Client",{enumerable:!0,get:function(){return u.Tendermint34Client}});var l=n(3508);Object.defineProperty(t,"BlockIdFlag",{enumerable:!0,get:function(){return l.BlockIdFlag}})},7793:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createJsonRpcRequest=void 0;const n="123456789";t.createJsonRpcRequest=function(e,t){const r=t?{...t}:{};return{jsonrpc:"2.0",id:parseInt(Array.from({length:12}).map((()=>n[Math.floor(Math.random()*n.length)])).join(""),10),method:e,params:r}}},5398:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.HttpClient=t.http=void 0;const o=n(2812),i=r(n(9669)),a=n(5734);function s(e){if(e.status>=400)throw new Error(`Bad status on response: ${e.status}`);return e}async function c(e,t,n){if("undefined"!=typeof fetch){const r=n?JSON.stringify(n):void 0;return fetch(t,{method:e,body:r}).then(s).then((e=>e.json()))}return i.default.request({url:t,method:e,data:n}).then((e=>e.data))}t.http=c,t.HttpClient=class{constructor(e){this.url=(0,a.hasProtocol)(e)?e:"http://"+e}disconnect(){}async execute(e){const t=(0,o.parseJsonRpcResponse)(await c("POST",this.url,e));if((0,o.isJsonRpcErrorResponse)(t))throw new Error(JSON.stringify(t.error));return t}}},8443:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WebsocketClient=t.instanceOfRpcStreamingClient=t.HttpClient=void 0;var r=n(5398);Object.defineProperty(t,"HttpClient",{enumerable:!0,get:function(){return r.HttpClient}});var o=n(5734);Object.defineProperty(t,"instanceOfRpcStreamingClient",{enumerable:!0,get:function(){return o.instanceOfRpcStreamingClient}});var i=n(2494);Object.defineProperty(t,"WebsocketClient",{enumerable:!0,get:function(){return i.WebsocketClient}})},5734:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasProtocol=t.instanceOfRpcStreamingClient=void 0,t.instanceOfRpcStreamingClient=function(e){return"function"==typeof e.listen},t.hasProtocol=function(e){return-1!==e.search("://")}},2494:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WebsocketClient=void 0;const r=n(2812),o=n(3830),i=n(1459),a=n(3813),s=n(5734);function c(e){throw e}function d(e){if("message"!==e.type)throw new Error(`Unexcepted message type on websocket: ${e.type}`);return(0,r.parseJsonRpcResponse)(JSON.parse(e.data))}class u{constructor(e,t){this.running=!1,this.subscriptions=[],this.request=e,this.socket=t}start(e){if(this.running)throw Error("Already started. Please stop first before restarting.");this.running=!0,this.connectToClient(e),this.socket.queueRequest(JSON.stringify(this.request))}stop(){this.running=!1;const e={...this.request,method:"unsubscribe"};try{this.socket.queueRequest(JSON.stringify(e))}catch(e){if(!(e instanceof Error&&e.message.match(/socket has disconnected/i)))throw e}}connectToClient(e){const t=this.socket.events.map(d),n=t.filter((e=>e.id===this.request.id)).subscribe({next:t=>{(0,r.isJsonRpcErrorResponse)(t)&&(this.closeSubscriptions(),e.error(JSON.stringify(t.error))),n.unsubscribe()}}),o=t.filter((e=>e.id===this.request.id)).subscribe({next:t=>{(0,r.isJsonRpcErrorResponse)(t)?(this.closeSubscriptions(),e.error(JSON.stringify(t.error))):e.next(t.result)}}),i=t.subscribe({error:t=>{this.closeSubscriptions(),e.error(t)},complete:()=>{this.closeSubscriptions(),e.complete()}});this.subscriptions.push(n,o,i)}closeSubscriptions(){for(const e of this.subscriptions)e.unsubscribe();this.subscriptions=[]}}t.WebsocketClient=class{constructor(e,t=c){this.subscriptionStreams=new Map;const n=e.endsWith("/")?"websocket":"/websocket",r=(0,s.hasProtocol)(e)?e:"ws://"+e;this.url=r+n,this.socket=new o.ReconnectingSocket(this.url);const i=this.socket.events.subscribe({error:e=>{t(e),i.unsubscribe()}});this.jsonRpcResponseStream=this.socket.events.map(d),this.socket.connect()}async execute(e){const t=this.responseForRequestId(e.id);this.socket.queueRequest(JSON.stringify(e));const n=await t;if((0,r.isJsonRpcErrorResponse)(n))throw new Error(JSON.stringify(n.error));return n}listen(e){if("subscribe"!==e.method)throw new Error('Request method must be "subscribe" to start event listening');const t=e.params.query;if("string"!=typeof t)throw new Error("request.params.query must be a string");if(!this.subscriptionStreams.has(t)){const n=new u(e,this.socket),r=a.Stream.create(n);this.subscriptionStreams.set(t,r)}return this.subscriptionStreams.get(t).filter((e=>void 0!==e.query))}async connected(){await this.socket.connectionStatus.waitFor(o.ConnectionStatus.Connected)}disconnect(){this.socket.disconnect()}async responseForRequestId(e){return(0,i.firstEvent)(this.jsonRpcResponseStream.filter((t=>t.id===e)))}}},1731:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.adaptor34=void 0;const r=n(9057),o=n(5240),i=n(3106);t.adaptor34={params:o.Params,responses:i.Responses,hashTx:r.hashTx,hashBlock:r.hashBlock}},5240:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;const a=n(8972),s=n(7793),c=n(122),d=i(n(4920));function u(e){return{height:(0,c.may)(c.Integer.encode,e.height)}}t.Params=class{static encodeAbciInfo(e){return(0,s.createJsonRpcRequest)(e.method)}static encodeAbciQuery(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{path:(0,c.assertNotEmpty)(t.path),data:(0,a.toHex)(t.data),height:(0,c.may)(c.Integer.encode,t.height),prove:t.prove}));var t}static encodeBlock(e){return(0,s.createJsonRpcRequest)(e.method,u(e.params))}static encodeBlockchain(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{minHeight:(0,c.may)(c.Integer.encode,t.minHeight),maxHeight:(0,c.may)(c.Integer.encode,t.maxHeight)}));var t}static encodeBlockResults(e){return(0,s.createJsonRpcRequest)(e.method,u(e.params))}static encodeBlockSearch(e){return(0,s.createJsonRpcRequest)(e.method,{query:(t=e.params).query,page:(0,c.may)(c.Integer.encode,t.page),per_page:(0,c.may)(c.Integer.encode,t.per_page),order_by:t.order_by});var t}static encodeBroadcastTx(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{tx:(0,a.toBase64)((0,c.assertNotEmpty)(t.tx))}));var t}static encodeCommit(e){return(0,s.createJsonRpcRequest)(e.method,u(e.params))}static encodeGenesis(e){return(0,s.createJsonRpcRequest)(e.method)}static encodeHealth(e){return(0,s.createJsonRpcRequest)(e.method)}static encodeStatus(e){return(0,s.createJsonRpcRequest)(e.method)}static encodeSubscribe(e){const t={key:"tm.event",value:e.query.type},n=d.buildQuery({tags:[t],raw:e.query.raw});return(0,s.createJsonRpcRequest)("subscribe",{query:n})}static encodeTx(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{hash:(0,a.toBase64)((0,c.assertNotEmpty)(t.hash)),prove:t.prove}));var t}static encodeTxSearch(e){return(0,s.createJsonRpcRequest)(e.method,{query:(t=e.params).query,prove:t.prove,page:(0,c.may)(c.Integer.encode,t.page),per_page:(0,c.may)(c.Integer.encode,t.per_page),order_by:t.order_by});var t}static encodeValidators(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{height:(0,c.may)(c.Integer.encode,t.height),page:(0,c.may)(c.Integer.encode,t.page),per_page:(0,c.may)(c.Integer.encode,t.per_page)}));var t}}},3106:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Responses=void 0;const r=n(8972),o=n(5553),i=n(8477),a=n(3508),s=n(122),c=n(9057);function d(e){return{ops:e.ops.map((e=>({type:e.type,key:(0,r.fromBase64)(e.key),data:(0,r.fromBase64)(e.data)})))}}function u(e){return{key:(0,r.fromBase64)((0,s.assertNotEmpty)(e.key)),value:(0,r.fromBase64)((0,s.optional)(e.value,""))}}function l(e){return{type:e.type,attributes:(t=e.attributes,(0,s.assertArray)(t).map(u))};var t}function A(e){return(0,s.assertArray)(e).map(l)}function f(e){return{code:s.Integer.parse((0,s.assertNumber)((0,s.optional)(e.code,0))),codeSpace:e.codespace,log:e.log,data:(0,s.may)(r.fromBase64,e.data),events:e.events?A(e.events):[],gasWanted:s.Integer.parse((0,s.optional)(e.gas_wanted,"0")),gasUsed:s.Integer.parse((0,s.optional)(e.gas_used,"0"))}}function h(e){switch(e.type){case"tendermint/PubKeyEd25519":return{algorithm:"ed25519",data:(0,r.fromBase64)((0,s.assertNotEmpty)(e.value))};case"tendermint/PubKeySecp256k1":return{algorithm:"secp256k1",data:(0,r.fromBase64)((0,s.assertNotEmpty)(e.value))};default:throw new Error(`unknown pubkey type: ${e.type}`)}}function g(e){return{pubkey:h((0,s.assertObject)(e.pub_key)),votingPower:s.Integer.parse((0,s.assertNotEmpty)(e.voting_power)),address:(0,r.fromHex)((0,s.assertNotEmpty)(e.address)),proposerPriority:s.Integer.parse(e.proposer_priority)}}function p(e){return{maxBytes:s.Integer.parse((0,s.assertNotEmpty)(e.max_bytes)),maxGas:s.Integer.parse((0,s.assertNotEmpty)(e.max_gas))}}function m(e){return{maxAgeNumBlocks:s.Integer.parse((0,s.assertNotEmpty)(e.max_age_num_blocks)),maxAgeDuration:s.Integer.parse((0,s.assertNotEmpty)(e.max_age_duration))}}function v(e){return{block:p((0,s.assertObject)(e.block)),evidence:m((0,s.assertObject)(e.evidence))}}function y(e){return{hash:(0,r.fromHex)((0,s.assertNotEmpty)(e.hash)),parts:{total:(0,s.assertNotEmpty)(e.parts.total),hash:(0,r.fromHex)((0,s.assertNotEmpty)(e.parts.hash))}}}function b(e){var t;return{block:s.Integer.parse(e.block),app:s.Integer.parse(null!==(t=e.app)&&void 0!==t?t:0)}}function I(e){return{version:b(e.version),chainId:(0,s.assertNotEmpty)(e.chain_id),height:s.Integer.parse((0,s.assertNotEmpty)(e.height)),time:(0,i.fromRfc3339WithNanoseconds)((0,s.assertNotEmpty)(e.time)),lastBlockId:e.last_block_id.hash?y(e.last_block_id):null,lastCommitHash:(0,r.fromHex)((0,s.assertSet)(e.last_commit_hash)),dataHash:(0,r.fromHex)((0,s.assertSet)(e.data_hash)),validatorsHash:(0,r.fromHex)((0,s.assertSet)(e.validators_hash)),nextValidatorsHash:(0,r.fromHex)((0,s.assertSet)(e.next_validators_hash)),consensusHash:(0,r.fromHex)((0,s.assertSet)(e.consensus_hash)),appHash:(0,r.fromHex)((0,s.assertSet)(e.app_hash)),lastResultsHash:(0,r.fromHex)((0,s.assertSet)(e.last_results_hash)),evidenceHash:(0,r.fromHex)((0,s.assertSet)(e.evidence_hash)),proposerAddress:(0,r.fromHex)((0,s.assertNotEmpty)(e.proposer_address))}}function C(e){return{blockId:y(e.block_id),blockSize:s.Integer.parse((0,s.assertNotEmpty)(e.block_size)),header:I(e.header),numTxs:s.Integer.parse((0,s.assertNotEmpty)(e.num_txs))}}function E(e){return{blockIdFlag:(n=e.block_id_flag,(0,o.assert)(n in a.BlockIdFlag),n),validatorAddress:e.validator_address?(0,r.fromHex)(e.validator_address):void 0,timestamp:(t=e.timestamp,t&&!t.startsWith("0001-01-01")?(0,i.fromRfc3339WithNanoseconds)(t):void 0),signature:e.signature?(0,r.fromBase64)(e.signature):void 0};var t,n}function w(e){return{blockId:y((0,s.assertObject)(e.block_id)),height:s.Integer.parse((0,s.assertNotEmpty)(e.height)),round:s.Integer.parse(e.round),signatures:(0,s.assertArray)(e.signatures).map(E)}}function B(e){return{address:(0,r.fromHex)((0,s.assertNotEmpty)(e.address)),pubkey:h((0,s.assertObject)(e.pub_key)),votingPower:s.Integer.parse((0,s.assertNotEmpty)(e.power))}}function _(e){return{pubkey:h((0,s.assertObject)(e.pub_key)),votingPower:s.Integer.parse((0,s.assertNotEmpty)(e.voting_power)),address:(0,r.fromHex)((0,s.assertNotEmpty)(e.address))}}function S(e){return{id:(0,r.fromHex)((0,s.assertNotEmpty)(e.id)),listenAddr:(0,s.assertNotEmpty)(e.listen_addr),network:(0,s.assertNotEmpty)(e.network),version:(0,s.assertString)(e.version),channels:(0,s.assertNotEmpty)(e.channels),moniker:(0,s.assertNotEmpty)(e.moniker),other:(0,s.dictionaryToStringMap)(e.other),protocolVersion:{app:s.Integer.parse((0,s.assertNotEmpty)(e.protocol_version.app)),block:s.Integer.parse((0,s.assertNotEmpty)(e.protocol_version.block)),p2p:s.Integer.parse((0,s.assertNotEmpty)(e.protocol_version.p2p))}}}function k(e){return{latestBlockHash:(0,r.fromHex)((0,s.assertNotEmpty)(e.latest_block_hash)),latestAppHash:(0,r.fromHex)((0,s.assertNotEmpty)(e.latest_app_hash)),latestBlockTime:(0,i.fromRfc3339WithNanoseconds)((0,s.assertNotEmpty)(e.latest_block_time)),latestBlockHeight:s.Integer.parse((0,s.assertNotEmpty)(e.latest_block_height)),catchingUp:(0,s.assertBoolean)(e.catching_up)}}function O(e){return{data:(0,r.fromBase64)((0,s.assertNotEmpty)(e.data)),rootHash:(0,r.fromHex)((0,s.assertNotEmpty)(e.root_hash)),proof:{total:s.Integer.parse((0,s.assertNotEmpty)(e.proof.total)),index:s.Integer.parse((0,s.assertNotEmpty)(e.proof.index)),leafHash:(0,r.fromBase64)((0,s.assertNotEmpty)(e.proof.leaf_hash)),aunts:(0,s.assertArray)(e.proof.aunts).map(r.fromBase64)}}}function Q(e){return{tx:(0,r.fromBase64)((0,s.assertNotEmpty)(e.tx)),result:f((0,s.assertObject)(e.tx_result)),height:s.Integer.parse((0,s.assertNotEmpty)(e.height)),index:s.Integer.parse((0,s.assertNumber)(e.index)),hash:(0,r.fromHex)((0,s.assertNotEmpty)(e.hash)),proof:(0,s.may)(O,e.proof)}}function R(e){var t,n;return{header:I((0,s.assertObject)(e.header)),lastCommit:e.last_commit.block_id.hash?w((0,s.assertObject)(e.last_commit)):null,txs:e.data.txs?(0,s.assertArray)(e.data.txs).map(r.fromBase64):[],evidence:null!==(n=null===(t=e.evidence)||void 0===t?void 0:t.evidence)&&void 0!==n?n:[]}}function P(e){return{blockId:y(e.block_id),block:R(e.block)}}class N{static decodeAbciInfo(e){return{data:(t=(0,s.assertObject)(e.result.response)).data,lastBlockHeight:(0,s.may)(s.Integer.parse,t.last_block_height),lastBlockAppHash:(0,s.may)(r.fromBase64,t.last_block_app_hash)};var t}static decodeAbciQuery(e){return t=(0,s.assertObject)(e.result.response),{key:(0,r.fromBase64)((0,s.optional)(t.key,"")),value:(0,r.fromBase64)((0,s.optional)(t.value,"")),proof:(0,s.may)(d,t.proofOps),height:(0,s.may)(s.Integer.parse,t.height),code:(0,s.may)(s.Integer.parse,t.code),index:(0,s.may)(s.Integer.parse,t.index),log:t.log};var t}static decodeBlock(e){return P(e.result)}static decodeBlockResults(e){return t=e.result,{height:s.Integer.parse((0,s.assertNotEmpty)(t.height)),results:(t.txs_results||[]).map(f),validatorUpdates:(t.validator_updates||[]).map(g),consensusUpdates:(0,s.may)(v,t.consensus_param_updates),beginBlockEvents:A(t.begin_block_events||[]),endBlockEvents:A(t.end_block_events||[])};var t}static decodeBlockSearch(e){return t=e.result,{totalCount:s.Integer.parse((0,s.assertNotEmpty)(t.total_count)),blocks:(0,s.assertArray)(t.blocks).map(P)};var t}static decodeBlockchain(e){return t=e.result,{lastHeight:s.Integer.parse((0,s.assertNotEmpty)(t.last_height)),blockMetas:(0,s.assertArray)(t.block_metas).map(C)};var t}static decodeBroadcastTxSync(e){return{...f(t=e.result),hash:(0,r.fromHex)((0,s.assertNotEmpty)(t.hash))};var t}static decodeBroadcastTxAsync(e){return N.decodeBroadcastTxSync(e)}static decodeBroadcastTxCommit(e){return t=e.result,{height:s.Integer.parse(t.height),hash:(0,r.fromHex)((0,s.assertNotEmpty)(t.hash)),checkTx:f((0,s.assertObject)(t.check_tx)),deliverTx:(0,s.may)(f,t.deliver_tx)};var t}static decodeCommit(e){return t=e.result,{canonical:(0,s.assertBoolean)(t.canonical),header:I(t.signed_header.header),commit:w(t.signed_header.commit)};var t}static decodeGenesis(e){return t=(0,s.assertObject)(e.result.genesis),{genesisTime:(0,i.fromRfc3339WithNanoseconds)((0,s.assertNotEmpty)(t.genesis_time)),chainId:(0,s.assertNotEmpty)(t.chain_id),consensusParams:v(t.consensus_params),validators:t.validators?(0,s.assertArray)(t.validators).map(B):[],appHash:(0,r.fromHex)((0,s.assertSet)(t.app_hash)),appState:t.app_state};var t}static decodeHealth(){return null}static decodeStatus(e){return{nodeInfo:S((t=e.result).node_info),syncInfo:k(t.sync_info),validatorInfo:_(t.validator_info)};var t}static decodeNewBlockEvent(e){return R(e.data.value.block)}static decodeNewBlockHeaderEvent(e){return I(e.data.value.header)}static decodeTxEvent(e){return function(e){const t=(0,r.fromBase64)((0,s.assertNotEmpty)(e.tx));return{tx:t,hash:(0,c.hashTx)(t),result:f(e.result),height:s.Integer.parse((0,s.assertNotEmpty)(e.height)),index:(0,s.may)(s.Integer.parse,e.index)}}(e.data.value.TxResult)}static decodeTx(e){return Q(e.result)}static decodeTxSearch(e){return t=e.result,{totalCount:s.Integer.parse((0,s.assertNotEmpty)(t.total_count)),txs:(0,s.assertArray)(t.txs).map(Q)};var t}static decodeValidators(e){return t=e.result,{blockHeight:s.Integer.parse((0,s.assertNotEmpty)(t.block_height)),validators:(0,s.assertArray)(t.validators).map(g),count:s.Integer.parse((0,s.assertNotEmpty)(t.count)),total:s.Integer.parse((0,s.assertNotEmpty)(t.total))};var t}}t.Responses=N},122:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.encodeBlockId=t.encodeVersion=t.encodeBytes=t.encodeTime=t.encodeInt=t.encodeString=t.Integer=t.dictionaryToStringMap=t.may=t.optional=t.assertNotEmpty=t.assertObject=t.assertArray=t.assertNumber=t.assertString=t.assertBoolean=t.assertSet=void 0;const r=n(8972),o=n(6961);function i(e){if(void 0===e)throw new Error("Value must not be undefined");if(null===e)throw new Error("Value must not be null");return e}function a(e){return e>=128?Uint8Array.from([255&e|128,...a(e>>7)]):Uint8Array.from([255&e])}t.assertSet=i,t.assertBoolean=function(e){if(i(e),"boolean"!=typeof e)throw new Error("Value must be a boolean");return e},t.assertString=function(e){if(i(e),"string"!=typeof e)throw new Error("Value must be a string");return e},t.assertNumber=function(e){if(i(e),"number"!=typeof e)throw new Error("Value must be a number");return e},t.assertArray=function(e){if(i(e),!Array.isArray(e))throw new Error("Value must be a an array");return e},t.assertObject=function(e){if(i(e),"object"!=typeof e)throw new Error("Value must be an object");if("[object Object]"!==Object.prototype.toString.call(e))throw new Error("Value must be a simple object");return e},t.assertNotEmpty=function(e){if(i(e),"number"==typeof e&&0===e)throw new Error("must provide a non-zero value");if(0===e.length)throw new Error("must provide a non-empty value");return e},t.optional=function(e,t){return null==e?t:e},t.may=function(e,t){return null==t?void 0:e(t)},t.dictionaryToStringMap=function(e){const t=new Map;for(const n of Object.keys(e)){const r=e[n];if("string"!=typeof r)throw new Error("Found dictionary value of type other than string");t.set(n,r)}return t},t.Integer=class{static parse(e){return("number"==typeof e?new o.Int53(e):o.Int53.fromString(e)).toNumber()}static encode(e){return new o.Int53(e).toString()}},t.encodeString=function(e){const t=(0,r.toUtf8)(e);return Uint8Array.from([t.length,...t])},t.encodeInt=a,t.encodeTime=function(e){const t=e.getTime(),n=Math.floor(t/1e3),r=n?[8,...a(n)]:new Uint8Array,o=(e.nanoseconds||0)+t%1e3*1e6,i=o?[16,...a(o)]:new Uint8Array;return Uint8Array.from([...r,...i])},t.encodeBytes=function(e){if(e.length>=128)throw new Error("Not implemented for byte arrays of length 128 or more");return e.length?Uint8Array.from([e.length,...e]):new Uint8Array},t.encodeVersion=function(e){const t=e.block?Uint8Array.from([8,...a(e.block)]):new Uint8Array,n=e.app?Uint8Array.from([16,...a(e.app)]):new Uint8Array;return Uint8Array.from([...t,...n])},t.encodeBlockId=function(e){return Uint8Array.from([10,e.hash.length,...e.hash,18,e.parts.hash.length+4,8,e.parts.total,18,e.parts.hash.length,...e.parts.hash])}},9057:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hashBlock=t.hashTx=void 0;const r=n(9562),o=n(122);function i(e){switch(e.length){case 0:throw new Error("Cannot hash empty tree");case 1:return function(e){const t=new r.Sha256(Uint8Array.from([0]));return t.update(e),t.digest()}(e[0]);default:{const t=function(e){if(e<1)throw new Error("Cannot split an empty tree");const t=2**Math.floor(Math.log2(e));return t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tendermint34Client=t.VoteType=t.broadcastTxSyncSuccess=t.broadcastTxCommitSuccess=t.SubscriptionEventType=t.Method=void 0;var r=n(4920);Object.defineProperty(t,"Method",{enumerable:!0,get:function(){return r.Method}}),Object.defineProperty(t,"SubscriptionEventType",{enumerable:!0,get:function(){return r.SubscriptionEventType}});var o=n(6802);Object.defineProperty(t,"broadcastTxCommitSuccess",{enumerable:!0,get:function(){return o.broadcastTxCommitSuccess}}),Object.defineProperty(t,"broadcastTxSyncSuccess",{enumerable:!0,get:function(){return o.broadcastTxSyncSuccess}}),Object.defineProperty(t,"VoteType",{enumerable:!0,get:function(){return o.VoteType}});var i=n(4533);Object.defineProperty(t,"Tendermint34Client",{enumerable:!0,get:function(){return i.Tendermint34Client}})},4920:(e,t)=>{"use strict";var n,r;Object.defineProperty(t,"__esModule",{value:!0}),t.buildQuery=t.SubscriptionEventType=t.Method=void 0,(r=t.Method||(t.Method={})).AbciInfo="abci_info",r.AbciQuery="abci_query",r.Block="block",r.Blockchain="blockchain",r.BlockResults="block_results",r.BlockSearch="block_search",r.BroadcastTxAsync="broadcast_tx_async",r.BroadcastTxSync="broadcast_tx_sync",r.BroadcastTxCommit="broadcast_tx_commit",r.Commit="commit",r.Genesis="genesis",r.Health="health",r.Status="status",r.Subscribe="subscribe",r.Tx="tx",r.TxSearch="tx_search",r.Validators="validators",r.Unsubscribe="unsubscribe",(n=t.SubscriptionEventType||(t.SubscriptionEventType={})).NewBlock="NewBlock",n.NewBlockHeader="NewBlockHeader",n.Tx="Tx",t.buildQuery=function(e){return[...(e.tags?e.tags:[]).map((e=>`${e.key}='${e.value}'`)),...e.raw?[e.raw]:[]].join(" AND ")}},6802:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.VoteType=t.broadcastTxCommitSuccess=t.broadcastTxSyncSuccess=void 0,t.broadcastTxSyncSuccess=function(e){return 0===e.code},t.broadcastTxCommitSuccess=function(e){return 0===e.checkTx.code&&!!e.deliverTx&&0===e.deliverTx.code},(n=t.VoteType||(t.VoteType={}))[n.PreVote=1]="PreVote",n[n.PreCommit=2]="PreCommit"},4533:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Tendermint34Client=void 0;const a=n(7793),s=n(8443),c=n(1731),d=i(n(4920));class u{constructor(e){this.client=e,this.p=c.adaptor34.params,this.r=c.adaptor34.responses}static async connect(e){const t=e.startsWith("http://")||e.startsWith("https://")?new s.HttpClient(e):new s.WebsocketClient(e);return u.create(t)}static async create(e){return await this.detectVersion(e),new u(e)}static async detectVersion(e){const t=(0,a.createJsonRpcRequest)(d.Method.Status),n=(await e.execute(t)).result;if(!n||!n.node_info)throw new Error("Unrecognized format for status response");const r=n.node_info.version;if("string"!=typeof r)throw new Error("Unrecognized version format: must be string");return r}disconnect(){this.client.disconnect()}async abciInfo(){const e={method:d.Method.AbciInfo};return this.doCall(e,this.p.encodeAbciInfo,this.r.decodeAbciInfo)}async abciQuery(e){const t={params:e,method:d.Method.AbciQuery};return this.doCall(t,this.p.encodeAbciQuery,this.r.decodeAbciQuery)}async block(e){const t={method:d.Method.Block,params:{height:e}};return this.doCall(t,this.p.encodeBlock,this.r.decodeBlock)}async blockResults(e){const t={method:d.Method.BlockResults,params:{height:e}};return this.doCall(t,this.p.encodeBlockResults,this.r.decodeBlockResults)}async blockSearch(e){const t={params:e,method:d.Method.BlockSearch},n=await this.doCall(t,this.p.encodeBlockSearch,this.r.decodeBlockSearch);return{...n,blocks:[...n.blocks].sort(((e,t)=>e.block.header.height-t.block.header.height))}}async blockSearchAll(e){let t=e.page||1;const n=[];let r=!1;for(;!r;){const o=await this.blockSearch({...e,page:t});n.push(...o.blocks),n.lengthe.block.header.height-t.block.header.height)),{totalCount:n.length,blocks:n}}async blockchain(e,t){const n={method:d.Method.Blockchain,params:{minHeight:e,maxHeight:t}};return this.doCall(n,this.p.encodeBlockchain,this.r.decodeBlockchain)}async broadcastTxSync(e){const t={params:e,method:d.Method.BroadcastTxSync};return this.doCall(t,this.p.encodeBroadcastTx,this.r.decodeBroadcastTxSync)}async broadcastTxAsync(e){const t={params:e,method:d.Method.BroadcastTxAsync};return this.doCall(t,this.p.encodeBroadcastTx,this.r.decodeBroadcastTxAsync)}async broadcastTxCommit(e){const t={params:e,method:d.Method.BroadcastTxCommit};return this.doCall(t,this.p.encodeBroadcastTx,this.r.decodeBroadcastTxCommit)}async commit(e){const t={method:d.Method.Commit,params:{height:e}};return this.doCall(t,this.p.encodeCommit,this.r.decodeCommit)}async genesis(){const e={method:d.Method.Genesis};return this.doCall(e,this.p.encodeGenesis,this.r.decodeGenesis)}async health(){const e={method:d.Method.Health};return this.doCall(e,this.p.encodeHealth,this.r.decodeHealth)}async status(){const e={method:d.Method.Status};return this.doCall(e,this.p.encodeStatus,this.r.decodeStatus)}subscribeNewBlock(){const e={method:d.Method.Subscribe,query:{type:d.SubscriptionEventType.NewBlock}};return this.subscribe(e,this.r.decodeNewBlockEvent)}subscribeNewBlockHeader(){const e={method:d.Method.Subscribe,query:{type:d.SubscriptionEventType.NewBlockHeader}};return this.subscribe(e,this.r.decodeNewBlockHeaderEvent)}subscribeTx(e){const t={method:d.Method.Subscribe,query:{type:d.SubscriptionEventType.Tx,raw:e}};return this.subscribe(t,this.r.decodeTxEvent)}async tx(e){const t={params:e,method:d.Method.Tx};return this.doCall(t,this.p.encodeTx,this.r.decodeTx)}async txSearch(e){const t={params:e,method:d.Method.TxSearch};return this.doCall(t,this.p.encodeTxSearch,this.r.decodeTxSearch)}async txSearchAll(e){let t=e.page||1;const n=[];let r=!1;for(;!r;){const o=await this.txSearch({...e,page:t});n.push(...o.txs),n.lengtht(e)))}}t.Tendermint34Client=u},3508:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.BlockIdFlag=void 0,(n=t.BlockIdFlag||(t.BlockIdFlag={}))[n.Unknown=0]="Unknown",n[n.Absent=1]="Absent",n[n.Commit=2]="Commit",n[n.Nil=3]="Nil",n[n.Unrecognized=-1]="Unrecognized"},1057:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.arrayContentStartsWith=t.arrayContentEquals=void 0,t.arrayContentEquals=function(e,t){if(e.length!==t.length)return!1;for(let n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertDefinedAndNotNull=t.assertDefined=t.assert=void 0,t.assert=function(e,t){if(!e)throw new Error(t||"condition is not truthy")},t.assertDefined=function(e,t){if(void 0===e)throw new Error(null!=t?t:"value is undefined")},t.assertDefinedAndNotNull=function(e,t){if(null==e)throw new Error(null!=t?t:"value is undefined or null")}},5553:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isUint8Array=t.isNonNullObject=t.sleep=t.assertDefinedAndNotNull=t.assertDefined=t.assert=t.arrayContentStartsWith=t.arrayContentEquals=void 0;var r=n(1057);Object.defineProperty(t,"arrayContentEquals",{enumerable:!0,get:function(){return r.arrayContentEquals}}),Object.defineProperty(t,"arrayContentStartsWith",{enumerable:!0,get:function(){return r.arrayContentStartsWith}});var o=n(4427);Object.defineProperty(t,"assert",{enumerable:!0,get:function(){return o.assert}}),Object.defineProperty(t,"assertDefined",{enumerable:!0,get:function(){return o.assertDefined}}),Object.defineProperty(t,"assertDefinedAndNotNull",{enumerable:!0,get:function(){return o.assertDefinedAndNotNull}});var i=n(3029);Object.defineProperty(t,"sleep",{enumerable:!0,get:function(){return i.sleep}});var a=n(5012);Object.defineProperty(t,"isNonNullObject",{enumerable:!0,get:function(){return a.isNonNullObject}}),Object.defineProperty(t,"isUint8Array",{enumerable:!0,get:function(){return a.isUint8Array}})},3029:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sleep=void 0,t.sleep=async function(e){return new Promise((t=>setTimeout(t,e)))}},5012:(e,t,n)=>{"use strict";var r=n(8764).Buffer;function o(e){return"object"==typeof e&&null!==e}Object.defineProperty(t,"__esModule",{value:!0}),t.isUint8Array=t.isNonNullObject=void 0,t.isNonNullObject=o,t.isUint8Array=function(e){return!(!o(e)||"[object Uint8Array]"!==Object.prototype.toString.call(e)||void 0!==r&&void 0!==r.isBuffer&&r.isBuffer(e))}},7505:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SHA2=void 0;const r=n(8089);class o extends r.Hash{constructor(e,t,n,o){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=(0,r.createView)(this.buffer)}update(e){if(this.destroyed)throw new Error("instance is destroyed");const{view:t,buffer:n,blockLen:o,finished:i}=this;if(i)throw new Error("digest() was already called");const a=(e=(0,r.toBytes)(e)).length;for(let i=0;io-a&&(this.process(n,0),a=0);for(let e=a;e>o&i),s=Number(n&i),c=r?4:0,d=r?0:4;e.setUint32(t+c,a,r),e.setUint32(t+d,s,r)}(n,o-8,BigInt(8*this.length),i),this.process(n,0);const s=(0,r.createView)(e);this.get().forEach(((e,t)=>s.setUint32(4*t,e,i)))}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:o,destroyed:i,pos:a}=this;return e.length=r,e.pos=a,e.finished=o,e.destroyed=i,r%t&&e.buffer.set(n),e}}t.SHA2=o},6873:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.add5H=t.add5L=t.add4H=t.add4L=t.add3H=t.add3L=t.add=t.rotlBL=t.rotlBH=t.rotlSL=t.rotlSH=t.rotr32L=t.rotr32H=t.rotrBL=t.rotrBH=t.rotrSL=t.rotrSH=t.shrSL=t.shrSH=t.toBig=t.split=t.fromBig=void 0;const n=BigInt(2**32-1),r=BigInt(32);function o(e,t=!1){return t?{h:Number(e&n),l:Number(e>>r&n)}:{h:0|Number(e>>r&n),l:0|Number(e&n)}}t.fromBig=o,t.split=function(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let i=0;iBigInt(e>>>0)<>>0),t.shrSH=(e,t,n)=>e>>>n,t.shrSL=(e,t,n)=>e<<32-n|t>>>n,t.rotrSH=(e,t,n)=>e>>>n|t<<32-n,t.rotrSL=(e,t,n)=>e<<32-n|t>>>n,t.rotrBH=(e,t,n)=>e<<64-n|t>>>n-32,t.rotrBL=(e,t,n)=>e>>>n-32|t<<64-n,t.rotr32H=(e,t)=>t,t.rotr32L=(e,t)=>e,t.rotlSH=(e,t,n)=>e<>>32-n,t.rotlSL=(e,t,n)=>t<>>32-n,t.rotlBH=(e,t,n)=>t<>>64-n,t.rotlBL=(e,t,n)=>e<>>64-n,t.add=function(e,t,n,r){const o=(t>>>0)+(r>>>0);return{h:e+n+(o/2**32|0)|0,l:0|o}},t.add3L=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),t.add3H=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,t.add4L=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),t.add4H=(e,t,n,r,o)=>t+n+r+o+(e/2**32|0)|0,t.add5L=(e,t,n,r,o)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(o>>>0),t.add5H=(e,t,n,r,o,i)=>t+n+r+o+i+(e/2**32|0)|0},4421:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.crypto=void 0,t.crypto={node:void 0,web:"object"==typeof self&&"crypto"in self?self.crypto:void 0}},9569:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hmac=void 0;const r=n(8089);class o extends r.Hash{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,(0,r.assertHash)(e);const n=(0,r.toBytes)(t);if(this.iHash=e.create(),!(this.iHash instanceof r.Hash))throw new TypeError("Expected instance of class which extends utils.Hash");const o=this.blockLen=this.iHash.blockLen;this.outputLen=this.iHash.outputLen;const i=new Uint8Array(o);i.set(n.length>this.iHash.blockLen?e.create().update(n).digest():n);for(let e=0;enew o(e,t).update(n).digest(),t.hmac.create=(e,t)=>new o(e,t)},9023:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pbkdf2Async=t.pbkdf2=void 0;const r=n(9569),o=n(8089);function i(e,t,n,i){(0,o.assertHash)(e);const a=(0,o.checkOpts)({dkLen:32,asyncTick:10},i),{c:s,dkLen:c,asyncTick:d}=a;if((0,o.assertNumber)(s),(0,o.assertNumber)(c),(0,o.assertNumber)(d),s<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const u=(0,o.toBytes)(t),l=(0,o.toBytes)(n),A=new Uint8Array(c),f=r.hmac.create(e,u),h=f._cloneInto().update(l);return{c:s,dkLen:c,asyncTick:d,DK:A,PRF:f,PRFSalt:h}}function a(e,t,n,r,o){return e.destroy(),t.destroy(),r&&r.destroy(),o.fill(0),n}t.pbkdf2=function(e,t,n,r){const{c:s,dkLen:c,DK:d,PRF:u,PRFSalt:l}=i(e,t,n,r);let A;const f=new Uint8Array(4),h=(0,o.createView)(f),g=new Uint8Array(u.outputLen);for(let e=1,t=0;t{l._cloneInto(f).update(p).digestInto(p);for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ripemd160=t.RIPEMD160=void 0;const r=n(7505),o=n(8089),i=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),a=Uint8Array.from({length:16},((e,t)=>t)),s=a.map((e=>(9*e+5)%16));let c=[a],d=[s];for(let e=0;e<4;e++)for(let t of[c,d])t.push(t[e].map((e=>i[e])));const u=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((e=>new Uint8Array(e))),l=c.map(((e,t)=>e.map((e=>u[t][e])))),A=d.map(((e,t)=>e.map((e=>u[t][e])))),f=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),h=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),g=(e,t)=>e<>>32-t;function p(e,t,n,r){return 0===e?t^n^r:1===e?t&n|~t&r:2===e?(t|~n)^r:3===e?t&r|n&~r:t^(n|~r)}const m=new Uint32Array(16);class v extends r.SHA2{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:n,h3:r,h4:o}=this;return[e,t,n,r,o]}set(e,t,n,r,o){this.h0=0|e,this.h1=0|t,this.h2=0|n,this.h3=0|r,this.h4=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)m[n]=e.getUint32(t,!0);let n=0|this.h0,r=n,o=0|this.h1,i=o,a=0|this.h2,s=a,u=0|this.h3,v=u,y=0|this.h4,b=y;for(let e=0;e<5;e++){const t=4-e,I=f[e],C=h[e],E=c[e],w=d[e],B=l[e],_=A[e];for(let t=0;t<16;t++){const r=g(n+p(e,o,a,u)+m[E[t]]+I,B[t])+y|0;n=y,y=u,u=0|g(a,10),a=o,o=r}for(let e=0;e<16;e++){const n=g(r+p(t,i,s,v)+m[w[e]]+C,_[e])+b|0;r=b,b=v,v=0|g(s,10),s=i,i=n}}this.set(this.h1+a+v|0,this.h2+u+b|0,this.h3+y+r|0,this.h4+n+i|0,this.h0+o+s|0)}roundClean(){m.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}t.RIPEMD160=v,t.ripemd160=(0,o.wrapConstructor)((()=>new v))},3061:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sha256=void 0;const r=n(7505),o=n(8089),i=(e,t,n)=>e&t^e&n^t&n,a=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]),s=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),c=new Uint32Array(64);class d extends r.SHA2{constructor(){super(64,32,8,!1),this.A=0|s[0],this.B=0|s[1],this.C=0|s[2],this.D=0|s[3],this.E=0|s[4],this.F=0|s[5],this.G=0|s[6],this.H=0|s[7]}get(){const{A:e,B:t,C:n,D:r,E:o,F:i,G:a,H:s}=this;return[e,t,n,r,o,i,a,s]}set(e,t,n,r,o,i,a,s){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|o,this.F=0|i,this.G=0|a,this.H=0|s}process(e,t){for(let n=0;n<16;n++,t+=4)c[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=c[e-15],n=c[e-2],r=(0,o.rotr)(t,7)^(0,o.rotr)(t,18)^t>>>3,i=(0,o.rotr)(n,17)^(0,o.rotr)(n,19)^n>>>10;c[e]=i+c[e-7]+r+c[e-16]|0}let{A:n,B:r,C:s,D:d,E:u,F:l,G:A,H:f}=this;for(let e=0;e<64;e++){const t=f+((0,o.rotr)(u,6)^(0,o.rotr)(u,11)^(0,o.rotr)(u,25))+((h=u)&l^~h&A)+a[e]+c[e]|0,g=((0,o.rotr)(n,2)^(0,o.rotr)(n,13)^(0,o.rotr)(n,22))+i(n,r,s)|0;f=A,A=l,l=u,u=d+t|0,d=s,s=r,r=n,n=t+g|0}var h;n=n+this.A|0,r=r+this.B|0,s=s+this.C|0,d=d+this.D|0,u=u+this.E|0,l=l+this.F|0,A=A+this.G|0,f=f+this.H|0,this.set(n,r,s,d,u,l,A,f)}roundClean(){c.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}t.sha256=(0,o.wrapConstructor)((()=>new d))},5426:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.shake256=t.shake128=t.keccak_512=t.keccak_384=t.keccak_256=t.keccak_224=t.sha3_512=t.sha3_384=t.sha3_256=t.sha3_224=t.Keccak=t.keccakP=void 0;const a=i(n(6873)),s=n(8089),[c,d,u]=[[],[],[]],l=BigInt(0),A=BigInt(1),f=BigInt(2),h=BigInt(7),g=BigInt(256),p=BigInt(113);for(let e=0,t=A,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],c.push(2*(5*r+n)),d.push((e+1)*(e+2)/2%64);let o=l;for(let e=0;e<7;e++)t=(t<>h)*p)%g,t&f&&(o^=A<<(A<n>32?a.rotlBH(e,t,n):a.rotlSH(e,t,n),b=(e,t,n)=>n>32?a.rotlBL(e,t,n):a.rotlSL(e,t,n);function I(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const r=(t+8)%10,o=(t+2)%10,i=n[o],a=n[o+1],s=y(i,a,1)^n[r],c=b(i,a,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],o=e[3];for(let n=0;n<24;n++){const r=d[n],i=y(t,o,r),a=b(t,o,r),s=c[n];t=e[s],o=e[s+1],e[s]=i,e[s+1]=a}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=m[r],e[1]^=v[r]}n.fill(0)}t.keccakP=I;class C extends s.Hash{constructor(e,t,n,r=!1,o=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=o,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,(0,s.assertNumber)(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=(0,s.u32)(this.state)}keccak(){I(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){if(this.destroyed)throw new Error("instance is destroyed");if(this.finished)throw new Error("digest() was already called");const{blockLen:t,state:n}=this,r=(e=(0,s.toBytes)(e)).length;for(let o=0;o=this.blockLen&&this.keccak();const r=Math.min(this.blockLen-this.posOut,n-t);e.set(this.state.subarray(this.posOut,this.posOut+r),t),this.posOut+=r,t+=r}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return(0,s.assertNumber)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(e.length(0,s.wrapConstructor)((()=>new C(t,e,n)));t.sha3_224=E(6,144,28),t.sha3_256=E(6,136,32),t.sha3_384=E(6,104,48),t.sha3_512=E(6,72,64),t.keccak_224=E(1,144,28),t.keccak_256=E(1,136,32),t.keccak_384=E(1,104,48),t.keccak_512=E(1,72,64);const w=(e,t,n)=>(0,s.wrapConstructorWithOpts)(((r={})=>new C(t,e,void 0!==r.dkLen?r.dkLen:n,!0)));t.shake128=w(31,168,16),t.shake256=w(31,136,32)},6262:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.sha384=t.sha512_256=t.sha512=t.SHA512=void 0;const a=n(7505),s=i(n(6873)),c=n(8089),[d,u]=s.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))),l=new Uint32Array(80),A=new Uint32Array(80);class f extends a.SHA2{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:n,Bl:r,Ch:o,Cl:i,Dh:a,Dl:s,Eh:c,El:d,Fh:u,Fl:l,Gh:A,Gl:f,Hh:h,Hl:g}=this;return[e,t,n,r,o,i,a,s,c,d,u,l,A,f,h,g]}set(e,t,n,r,o,i,a,s,c,d,u,l,A,f,h,g){this.Ah=0|e,this.Al=0|t,this.Bh=0|n,this.Bl=0|r,this.Ch=0|o,this.Cl=0|i,this.Dh=0|a,this.Dl=0|s,this.Eh=0|c,this.El=0|d,this.Fh=0|u,this.Fl=0|l,this.Gh=0|A,this.Gl=0|f,this.Hh=0|h,this.Hl=0|g}process(e,t){for(let n=0;n<16;n++,t+=4)l[n]=e.getUint32(t),A[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|l[e-15],n=0|A[e-15],r=s.rotrSH(t,n,1)^s.rotrSH(t,n,8)^s.shrSH(t,n,7),o=s.rotrSL(t,n,1)^s.rotrSL(t,n,8)^s.shrSL(t,n,7),i=0|l[e-2],a=0|A[e-2],c=s.rotrSH(i,a,19)^s.rotrBH(i,a,61)^s.shrSH(i,a,6),d=s.rotrSL(i,a,19)^s.rotrBL(i,a,61)^s.shrSL(i,a,6),u=s.add4L(o,d,A[e-7],A[e-16]),f=s.add4H(u,r,c,l[e-7],l[e-16]);l[e]=0|f,A[e]=0|u}let{Ah:n,Al:r,Bh:o,Bl:i,Ch:a,Cl:c,Dh:f,Dl:h,Eh:g,El:p,Fh:m,Fl:v,Gh:y,Gl:b,Hh:I,Hl:C}=this;for(let e=0;e<80;e++){const t=s.rotrSH(g,p,14)^s.rotrSH(g,p,18)^s.rotrBH(g,p,41),E=s.rotrSL(g,p,14)^s.rotrSL(g,p,18)^s.rotrBL(g,p,41),w=g&m^~g&y,B=p&v^~p&b,_=s.add5L(C,E,B,u[e],A[e]),S=s.add5H(_,I,t,w,d[e],l[e]),k=0|_,O=s.rotrSH(n,r,28)^s.rotrBH(n,r,34)^s.rotrBH(n,r,39),Q=s.rotrSL(n,r,28)^s.rotrBL(n,r,34)^s.rotrBL(n,r,39),R=n&o^n&a^o&a,P=r&i^r&c^i&c;I=0|y,C=0|b,y=0|m,b=0|v,m=0|g,v=0|p,({h:g,l:p}=s.add(0|f,0|h,0|S,0|k)),f=0|a,h=0|c,a=0|o,c=0|i,o=0|n,i=0|r;const N=s.add3L(k,Q,P);n=s.add3H(N,S,O,R),r=0|N}({h:n,l:r}=s.add(0|this.Ah,0|this.Al,0|n,0|r)),({h:o,l:i}=s.add(0|this.Bh,0|this.Bl,0|o,0|i)),({h:a,l:c}=s.add(0|this.Ch,0|this.Cl,0|a,0|c)),({h:f,l:h}=s.add(0|this.Dh,0|this.Dl,0|f,0|h)),({h:g,l:p}=s.add(0|this.Eh,0|this.El,0|g,0|p)),({h:m,l:v}=s.add(0|this.Fh,0|this.Fl,0|m,0|v)),({h:y,l:b}=s.add(0|this.Gh,0|this.Gl,0|y,0|b)),({h:I,l:C}=s.add(0|this.Hh,0|this.Hl,0|I,0|C)),this.set(n,r,o,i,a,c,f,h,g,p,m,v,y,b,I,C)}roundClean(){l.fill(0),A.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}t.SHA512=f;class h extends f{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class g extends f{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}t.sha512=(0,c.wrapConstructor)((()=>new f)),t.sha512_256=(0,c.wrapConstructor)((()=>new h)),t.sha384=(0,c.wrapConstructor)((()=>new g))},8089:(e,t,n)=>{"use strict";e=n.nmd(e),Object.defineProperty(t,"__esModule",{value:!0}),t.randomBytes=t.wrapConstructorWithOpts=t.wrapConstructor=t.checkOpts=t.Hash=t.assertHash=t.assertBytes=t.assertBool=t.assertNumber=t.concatBytes=t.toBytes=t.utf8ToBytes=t.asyncLoop=t.nextTick=t.hexToBytes=t.bytesToHex=t.isLE=t.rotr=t.createView=t.u32=t.u8=void 0;const r=n(4421);if(t.u8=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t.u32=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),t.createView=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),t.rotr=(e,t)=>e<<32-t|e>>>t,t.isLE=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],!t.isLE)throw new Error("Non little-endian hardware is not supported");const o=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function i(e){if("string"!=typeof e)throw new TypeError("utf8ToBytes expected string, got "+typeof e);return(new TextEncoder).encode(e)}function a(e){if("string"==typeof e&&(e=i(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}function s(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}t.bytesToHex=function(e){let t="";for(let n=0;n{const t="function"==typeof e.require&&e.require.bind(e);try{if(t){const{setImmediate:e}=t("timers");return()=>new Promise((t=>e(t)))}}catch(e){}return()=>new Promise((e=>setTimeout(e,0)))})(),t.asyncLoop=async function(e,n,r){let o=Date.now();for(let i=0;i=0&&ee instanceof Uint8Array)))throw new Error("Uint8Array list expected");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);for(let t=0,r=0;te().update(a(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t},t.wrapConstructorWithOpts=function(e){const t=(t,n)=>e(n).update(a(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t},t.randomBytes=function(e=32){if(r.crypto.web)return r.crypto.web.getRandomValues(new Uint8Array(e));if(r.crypto.node)return new Uint8Array(r.crypto.node.randomBytes(e).buffer);throw new Error("The environment doesn't have randomBytes function")}},4537:e=>{"use strict";e.exports=function(e,t){for(var n=new Array(arguments.length-1),r=0,o=2,i=!0;o{"use strict";var n=t;n.length=function(e){var t=e.length;if(!t)return 0;for(var n=0;--t%4>1&&"="===e.charAt(t);)++n;return Math.ceil(3*e.length)/4-n};for(var r=new Array(64),o=new Array(123),i=0;i<64;)o[r[i]=i<26?i+65:i<52?i+71:i<62?i-4:i-59|43]=i++;n.encode=function(e,t,n){for(var o,i=null,a=[],s=0,c=0;t>2],o=(3&d)<<4,c=1;break;case 1:a[s++]=r[o|d>>4],o=(15&d)<<2,c=2;break;case 2:a[s++]=r[o|d>>6],a[s++]=r[63&d],c=0}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0)}return c&&(a[s++]=r[o],a[s++]=61,1===c&&(a[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var a="invalid encoding";n.decode=function(e,t,n){for(var r,i=n,s=0,c=0;c1)break;if(void 0===(d=o[d]))throw Error(a);switch(s){case 0:r=d,s=1;break;case 1:t[n++]=r<<2|(48&d)>>4,r=d,s=2;break;case 2:t[n++]=(15&r)<<4|(60&d)>>2,r=d,s=3;break;case 3:t[n++]=(3&r)<<6|d,s=0}}if(1===s)throw Error(a);return n-i},n.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},9211:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var n=this._listeners[e],r=0;r{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),n=new Uint8Array(t.buffer),r=128===n[3];function o(e,r,o){t[0]=e,r[o]=n[0],r[o+1]=n[1],r[o+2]=n[2],r[o+3]=n[3]}function i(e,r,o){t[0]=e,r[o]=n[3],r[o+1]=n[2],r[o+2]=n[1],r[o+3]=n[0]}function a(e,r){return n[0]=e[r],n[1]=e[r+1],n[2]=e[r+2],n[3]=e[r+3],t[0]}function s(e,r){return n[3]=e[r],n[2]=e[r+1],n[1]=e[r+2],n[0]=e[r+3],t[0]}e.writeFloatLE=r?o:i,e.writeFloatBE=r?i:o,e.readFloatLE=r?a:s,e.readFloatBE=r?s:a}():function(){function t(e,t,n,r){var o=t<0?1:0;if(o&&(t=-t),0===t)e(1/t>0?0:2147483648,n,r);else if(isNaN(t))e(2143289344,n,r);else if(t>34028234663852886e22)e((o<<31|2139095040)>>>0,n,r);else if(t<11754943508222875e-54)e((o<<31|Math.round(t/1401298464324817e-60))>>>0,n,r);else{var i=Math.floor(Math.log(t)/Math.LN2);e((o<<31|i+127<<23|8388607&Math.round(t*Math.pow(2,-i)*8388608))>>>0,n,r)}}function a(e,t,n){var r=e(t,n),o=2*(r>>31)+1,i=r>>>23&255,a=8388607&r;return 255===i?a?NaN:o*(1/0):0===i?1401298464324817e-60*o*a:o*Math.pow(2,i-150)*(a+8388608)}e.writeFloatLE=t.bind(null,n),e.writeFloatBE=t.bind(null,r),e.readFloatLE=a.bind(null,o),e.readFloatBE=a.bind(null,i)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),n=new Uint8Array(t.buffer),r=128===n[7];function o(e,r,o){t[0]=e,r[o]=n[0],r[o+1]=n[1],r[o+2]=n[2],r[o+3]=n[3],r[o+4]=n[4],r[o+5]=n[5],r[o+6]=n[6],r[o+7]=n[7]}function i(e,r,o){t[0]=e,r[o]=n[7],r[o+1]=n[6],r[o+2]=n[5],r[o+3]=n[4],r[o+4]=n[3],r[o+5]=n[2],r[o+6]=n[1],r[o+7]=n[0]}function a(e,r){return n[0]=e[r],n[1]=e[r+1],n[2]=e[r+2],n[3]=e[r+3],n[4]=e[r+4],n[5]=e[r+5],n[6]=e[r+6],n[7]=e[r+7],t[0]}function s(e,r){return n[7]=e[r],n[6]=e[r+1],n[5]=e[r+2],n[4]=e[r+3],n[3]=e[r+4],n[2]=e[r+5],n[1]=e[r+6],n[0]=e[r+7],t[0]}e.writeDoubleLE=r?o:i,e.writeDoubleBE=r?i:o,e.readDoubleLE=r?a:s,e.readDoubleBE=r?s:a}():function(){function t(e,t,n,r,o,i){var a=r<0?1:0;if(a&&(r=-r),0===r)e(0,o,i+t),e(1/r>0?0:2147483648,o,i+n);else if(isNaN(r))e(0,o,i+t),e(2146959360,o,i+n);else if(r>17976931348623157e292)e(0,o,i+t),e((a<<31|2146435072)>>>0,o,i+n);else{var s;if(r<22250738585072014e-324)e((s=r/5e-324)>>>0,o,i+t),e((a<<31|s/4294967296)>>>0,o,i+n);else{var c=Math.floor(Math.log(r)/Math.LN2);1024===c&&(c=1023),e(4503599627370496*(s=r*Math.pow(2,-c))>>>0,o,i+t),e((a<<31|c+1023<<20|1048576*s&1048575)>>>0,o,i+n)}}}function a(e,t,n,r,o){var i=e(r,o+t),a=e(r,o+n),s=2*(a>>31)+1,c=a>>>20&2047,d=4294967296*(1048575&a)+i;return 2047===c?d?NaN:s*(1/0):0===c?5e-324*s*d:s*Math.pow(2,c-1075)*(d+4503599627370496)}e.writeDoubleLE=t.bind(null,n,0,4),e.writeDoubleBE=t.bind(null,r,4,0),e.readDoubleLE=a.bind(null,o,0,4),e.readDoubleBE=a.bind(null,i,4,0)}(),e}function n(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}function r(e,t,n){t[n]=e>>>24,t[n+1]=e>>>16&255,t[n+2]=e>>>8&255,t[n+3]=255&e}function o(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function i(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},7199:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},6662:e=>{"use strict";e.exports=function(e,t,n){var r=n||8192,o=r>>>1,i=null,a=r;return function(n){if(n<1||n>o)return e(n);a+n>r&&(i=e(r),a=0);var s=t.call(i,a,a+=n);return 7&a&&(a=1+(7|a)),s}}},4997:(e,t)=>{"use strict";var n=t;n.length=function(e){for(var t=0,n=0,r=0;r191&&r<224?i[a++]=(31&r)<<6|63&e[t++]:r>239&&r<365?(r=((7&r)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,i[a++]=55296+(r>>10),i[a++]=56320+(1023&r)):i[a++]=(15&r)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,i.slice(0,a))),o.join("")):String.fromCharCode.apply(String,i.slice(0,a))},n.write=function(e,t,n){for(var r,o,i=n,a=0;a>6|192,t[n++]=63&r|128):55296==(64512&r)&&56320==(64512&(o=e.charCodeAt(a+1)))?(r=65536+((1023&r)<<10)+(1023&o),++a,t[n++]=r>>18|240,t[n++]=r>>12&63|128,t[n++]=r>>6&63|128,t[n++]=63&r|128):(t[n++]=r>>12|224,t[n++]=r>>6&63|128,t[n++]=63&r|128);return n-i}},9669:(e,t,n)=>{e.exports=n(1609)},5448:(e,t,n)=>{"use strict";var r=n(4867),o=n(6026),i=n(4372),a=n(5327),s=n(4097),c=n(4109),d=n(7985),u=n(5061);e.exports=function(e){return new Promise((function(t,n){var l=e.data,A=e.headers,f=e.responseType;r.isFormData(l)&&delete A["Content-Type"];var h=new XMLHttpRequest;if(e.auth){var g=e.auth.username||"",p=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";A.Authorization="Basic "+btoa(g+":"+p)}var m=s(e.baseURL,e.url);function v(){if(h){var r="getAllResponseHeaders"in h?c(h.getAllResponseHeaders()):null,i={data:f&&"text"!==f&&"json"!==f?h.response:h.responseText,status:h.status,statusText:h.statusText,headers:r,config:e,request:h};o(t,n,i),h=null}}if(h.open(e.method.toUpperCase(),a(m,e.params,e.paramsSerializer),!0),h.timeout=e.timeout,"onloadend"in h?h.onloadend=v:h.onreadystatechange=function(){h&&4===h.readyState&&(0!==h.status||h.responseURL&&0===h.responseURL.indexOf("file:"))&&setTimeout(v)},h.onabort=function(){h&&(n(u("Request aborted",e,"ECONNABORTED",h)),h=null)},h.onerror=function(){n(u("Network Error",e,null,h)),h=null},h.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(u(t,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",h)),h=null},r.isStandardBrowserEnv()){var y=(e.withCredentials||d(m))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;y&&(A[e.xsrfHeaderName]=y)}"setRequestHeader"in h&&r.forEach(A,(function(e,t){void 0===l&&"content-type"===t.toLowerCase()?delete A[t]:h.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(h.withCredentials=!!e.withCredentials),f&&"json"!==f&&(h.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&h.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&h.upload&&h.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){h&&(h.abort(),n(e),h=null)})),l||(l=null),h.send(l)}))}},1609:(e,t,n)=>{"use strict";var r=n(4867),o=n(1849),i=n(321),a=n(7185);function s(e){var t=new i(e),n=o(i.prototype.request,t);return r.extend(n,i.prototype,t),r.extend(n,t),n}var c=s(n(5655));c.Axios=i,c.create=function(e){return s(a(c.defaults,e))},c.Cancel=n(5263),c.CancelToken=n(4972),c.isCancel=n(6502),c.all=function(e){return Promise.all(e)},c.spread=n(8713),c.isAxiosError=n(6268),e.exports=c,e.exports.default=c},5263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},4972:(e,t,n)=>{"use strict";var r=n(5263);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},6502:e=>{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:(e,t,n)=>{"use strict";var r=n(4867),o=n(5327),i=n(782),a=n(3572),s=n(7185),c=n(4875),d=c.validators;function u(e){this.defaults=e,this.interceptors={request:new i,response:new i}}u.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&c.assertOptions(t,{silentJSONParsing:d.transitional(d.boolean,"1.0.0"),forcedJSONParsing:d.transitional(d.boolean,"1.0.0"),clarifyTimeoutError:d.transitional(d.boolean,"1.0.0")},!1);var n=[],r=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(r=r&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var o,i=[];if(this.interceptors.response.forEach((function(e){i.push(e.fulfilled,e.rejected)})),!r){var u=[a,void 0];for(Array.prototype.unshift.apply(u,n),u=u.concat(i),o=Promise.resolve(e);u.length;)o=o.then(u.shift(),u.shift());return o}for(var l=e;n.length;){var A=n.shift(),f=n.shift();try{l=A(l)}catch(e){f(e);break}}try{o=a(l)}catch(e){return Promise.reject(e)}for(;i.length;)o=o.then(i.shift(),i.shift());return o},u.prototype.getUri=function(e){return e=s(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(s(r||{},{method:e,url:t,data:n}))}})),e.exports=u},782:(e,t,n)=>{"use strict";var r=n(4867);function o(){this.handlers=[]}o.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},4097:(e,t,n)=>{"use strict";var r=n(1793),o=n(7303);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},5061:(e,t,n)=>{"use strict";var r=n(481);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},3572:(e,t,n)=>{"use strict";var r=n(4867),o=n(8527),i=n(6502),a=n(5655);function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return s(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return s(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(s(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:e=>{"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},7185:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){t=t||{};var n={},o=["url","method","data"],i=["headers","auth","proxy","params"],a=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],s=["validateStatus"];function c(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function d(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=c(void 0,e[o])):n[o]=c(e[o],t[o])}r.forEach(o,(function(e){r.isUndefined(t[e])||(n[e]=c(void 0,t[e]))})),r.forEach(i,d),r.forEach(a,(function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=c(void 0,e[o])):n[o]=c(void 0,t[o])})),r.forEach(s,(function(r){r in t?n[r]=c(e[r],t[r]):r in e&&(n[r]=c(void 0,e[r]))}));var u=o.concat(i).concat(a).concat(s),l=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===u.indexOf(e)}));return r.forEach(l,d),n}},6026:(e,t,n)=>{"use strict";var r=n(5061);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},8527:(e,t,n)=>{"use strict";var r=n(4867),o=n(5655);e.exports=function(e,t,n){var i=this||o;return r.forEach(n,(function(n){e=n.call(i,e,t)})),e}},5655:(e,t,n)=>{"use strict";var r=n(4155),o=n(4867),i=n(6016),a=n(481),s={"Content-Type":"application/x-www-form-urlencoded"};function c(e,t){!o.isUndefined(e)&&o.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var d,u={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==r&&"[object process]"===Object.prototype.toString.call(r))&&(d=n(5448)),d),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),o.isFormData(e)||o.isArrayBuffer(e)||o.isBuffer(e)||o.isStream(e)||o.isFile(e)||o.isBlob(e)?e:o.isArrayBufferView(e)?e.buffer:o.isURLSearchParams(e)?(c(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):o.isObject(e)||t&&"application/json"===t["Content-Type"]?(c(t,"application/json"),function(e,t,n){if(o.isString(e))try{return(0,JSON.parse)(e),o.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional,n=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,i=!n&&"json"===this.responseType;if(i||r&&o.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(i){if("SyntaxError"===e.name)throw a(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};o.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),o.forEach(["post","put","patch"],(function(e){u.headers[e]=o.merge(s)})),e.exports=u},1849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r{"use strict";var r=n(4867);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var a=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))})))})),i=a.join("&")}if(i){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},1793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},7985:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},6016:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},4109:(e,t,n)=>{"use strict";var r=n(4867),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},4875:(e,t,n)=>{"use strict";var r=n(8593),o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var i={},a=r.version.split(".");function s(e,t){for(var n=t?t.split("."):a,r=e.split("."),o=0;o<3;o++){if(n[o]>r[o])return!0;if(n[o]0;){var i=r[o],a=t[i];if(a){var s=e[i],c=void 0===s||a(s,i,e);if(!0!==c)throw new TypeError("option "+i+" must be "+c)}else if(!0!==n)throw Error("Unknown option "+i)}},validators:o}},4867:(e,t,n)=>{"use strict";var r=n(1849),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function c(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function d(e){return"[object Function]"===o.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n{"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,i=c(e),a=i[0],s=i[1],d=new o(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),u=0,l=s>0?a-4:a;for(n=0;n>16&255,d[u++]=t>>8&255,d[u++]=255&t;return 2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,d[u++]=255&t),1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,d[u++]=t>>8&255,d[u++]=255&t),d},t.fromByteArray=function(e){for(var t,r=e.length,o=r%3,i=[],a=16383,s=0,c=r-o;sc?c:s+a));return 1===o?(t=e[r-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===o&&(t=(e[r-2]<<8)+e[r-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),i.join("")};for(var n=[],r=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=i.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function d(e,t,r){for(var o,i,a=[],s=t;s>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},2882:e=>{"use strict";for(var t="qpzry9x8gf2tvdw0s3jn54khce6mua7l",n={},r=0;r>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function a(e){for(var t=1,n=0;n126)return"Invalid prefix ("+e+")";t=i(t)^r>>5}for(t=i(t),n=0;nt)return"Exceeds length limit";var r=e.toLowerCase(),o=e.toUpperCase();if(e!==r&&e!==o)return"Mixed-case string "+e;var s=(e=r).lastIndexOf("1");if(-1===s)return"No separator character for "+e;if(0===s)return"Missing prefix for "+e;var c=e.slice(0,s),d=e.slice(s+1);if(d.length<6)return"Data too short";var u=a(c);if("string"==typeof u)return u;for(var l=[],A=0;A=d.length||l.push(h)}return 1!==u?"Invalid checksum for "+e:{prefix:c,words:l}}function c(e,t,n,r){for(var o=0,i=0,a=(1<=n;)i-=n,s.push(o>>i&a);if(r)i>0&&s.push(o<=t)return"Excess padding";if(o<r)throw new TypeError("Exceeds length limit");var o=a(e=e.toLowerCase());if("string"==typeof o)throw new Error(o);for(var s=e+"1",c=0;c>5!=0)throw new Error("Non 5-bit word");o=i(o)^d,s+=t.charAt(d)}for(c=0;c<6;++c)o=i(o);for(o^=1,c=0;c<6;++c)s+=t.charAt(o>>5*(5-c)&31);return s},toWordsUnsafe:function(e){var t=c(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=c(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=c(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=c(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}}},3550:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(6601).Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function c(e,t,n){var r=s(e,n);return n-1>=t&&(r|=s(e,n-1)<<4),r}function d(e,t,n,o){for(var i=0,a=0,s=Math.min(e.length,n),c=t;c=49?d-49+10:d>=17?d-17+10:d,r(d>=0&&a0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)o=c(e,t,r)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,o=1;o<=67108863;o*=t)r++;r--,o=o/t|0;for(var i=e.length-n,a=i%r,s=Math.min(i,i-a)+n,c=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?""}var A=["","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"],f=[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],h=[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 g(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;n.words[0]=s;for(var d=1;d>>26,l=67108863&c,A=Math.min(d,t.length-1),f=Math.max(0,d-e.length+1);f<=A;f++){var h=d-f|0;u+=(a=(o=0|e.words[h])*(i=0|t.words[f])+l)/67108864|0,l=67108863&a}n.words[d]=0|l,c=0|u}return 0!==c?n.words[d]=0|c:n.length--,n._strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?A[6-c.length]+c+n:c+n,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var d=f[e],u=h[e];n="";var l=this.clone();for(l.negative=0;!l.isZero();){var g=l.modrn(u).toString(e);n=(l=l.idivn(u)).isZero()?g+n:A[d-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){this._strip();var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,i);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,o),a},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,o=0,i=0;o>8&255),n>16&255),6===i?(n>24&255),r=0,i=0):(r=a>>>24,i+=2)}if(n=0&&(e[n--]=a>>8&255),n>=0&&(e[n--]=a>>16&255),6===i?(n>=0&&(e[n--]=a>>24&255),r=0,i=0):(r=a>>>24,i+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=n.length,0!==o)this.words[this.length]=o,this.length++;else if(n!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.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 n,r,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,f=0|a[1],h=8191&f,g=f>>>13,p=0|a[2],m=8191&p,v=p>>>13,y=0|a[3],b=8191&y,I=y>>>13,C=0|a[4],E=8191&C,w=C>>>13,B=0|a[5],_=8191&B,S=B>>>13,k=0|a[6],O=8191&k,Q=k>>>13,R=0|a[7],P=8191&R,N=R>>>13,x=0|a[8],D=8191&x,M=x>>>13,T=0|a[9],U=8191&T,H=T>>>13,j=0|s[0],J=8191&j,F=j>>>13,G=0|s[1],L=8191&G,q=G>>>13,Y=0|s[2],V=8191&Y,W=Y>>>13,K=0|s[3],Z=8191&K,z=K>>>13,X=0|s[4],$=8191&X,ee=X>>>13,te=0|s[5],ne=8191&te,re=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,de=se>>>13,ue=0|s[8],le=8191&ue,Ae=ue>>>13,fe=0|s[9],he=8191&fe,ge=fe>>>13;n.negative=e.negative^t.negative,n.length=19;var pe=(d+(r=Math.imul(l,J))|0)+((8191&(o=(o=Math.imul(l,F))+Math.imul(A,J)|0))<<13)|0;d=((i=Math.imul(A,F))+(o>>>13)|0)+(pe>>>26)|0,pe&=67108863,r=Math.imul(h,J),o=(o=Math.imul(h,F))+Math.imul(g,J)|0,i=Math.imul(g,F);var me=(d+(r=r+Math.imul(l,L)|0)|0)+((8191&(o=(o=o+Math.imul(l,q)|0)+Math.imul(A,L)|0))<<13)|0;d=((i=i+Math.imul(A,q)|0)+(o>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(m,J),o=(o=Math.imul(m,F))+Math.imul(v,J)|0,i=Math.imul(v,F),r=r+Math.imul(h,L)|0,o=(o=o+Math.imul(h,q)|0)+Math.imul(g,L)|0,i=i+Math.imul(g,q)|0;var ve=(d+(r=r+Math.imul(l,V)|0)|0)+((8191&(o=(o=o+Math.imul(l,W)|0)+Math.imul(A,V)|0))<<13)|0;d=((i=i+Math.imul(A,W)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(b,J),o=(o=Math.imul(b,F))+Math.imul(I,J)|0,i=Math.imul(I,F),r=r+Math.imul(m,L)|0,o=(o=o+Math.imul(m,q)|0)+Math.imul(v,L)|0,i=i+Math.imul(v,q)|0,r=r+Math.imul(h,V)|0,o=(o=o+Math.imul(h,W)|0)+Math.imul(g,V)|0,i=i+Math.imul(g,W)|0;var ye=(d+(r=r+Math.imul(l,Z)|0)|0)+((8191&(o=(o=o+Math.imul(l,z)|0)+Math.imul(A,Z)|0))<<13)|0;d=((i=i+Math.imul(A,z)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(E,J),o=(o=Math.imul(E,F))+Math.imul(w,J)|0,i=Math.imul(w,F),r=r+Math.imul(b,L)|0,o=(o=o+Math.imul(b,q)|0)+Math.imul(I,L)|0,i=i+Math.imul(I,q)|0,r=r+Math.imul(m,V)|0,o=(o=o+Math.imul(m,W)|0)+Math.imul(v,V)|0,i=i+Math.imul(v,W)|0,r=r+Math.imul(h,Z)|0,o=(o=o+Math.imul(h,z)|0)+Math.imul(g,Z)|0,i=i+Math.imul(g,z)|0;var be=(d+(r=r+Math.imul(l,$)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(A,$)|0))<<13)|0;d=((i=i+Math.imul(A,ee)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(_,J),o=(o=Math.imul(_,F))+Math.imul(S,J)|0,i=Math.imul(S,F),r=r+Math.imul(E,L)|0,o=(o=o+Math.imul(E,q)|0)+Math.imul(w,L)|0,i=i+Math.imul(w,q)|0,r=r+Math.imul(b,V)|0,o=(o=o+Math.imul(b,W)|0)+Math.imul(I,V)|0,i=i+Math.imul(I,W)|0,r=r+Math.imul(m,Z)|0,o=(o=o+Math.imul(m,z)|0)+Math.imul(v,Z)|0,i=i+Math.imul(v,z)|0,r=r+Math.imul(h,$)|0,o=(o=o+Math.imul(h,ee)|0)+Math.imul(g,$)|0,i=i+Math.imul(g,ee)|0;var Ie=(d+(r=r+Math.imul(l,ne)|0)|0)+((8191&(o=(o=o+Math.imul(l,re)|0)+Math.imul(A,ne)|0))<<13)|0;d=((i=i+Math.imul(A,re)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(O,J),o=(o=Math.imul(O,F))+Math.imul(Q,J)|0,i=Math.imul(Q,F),r=r+Math.imul(_,L)|0,o=(o=o+Math.imul(_,q)|0)+Math.imul(S,L)|0,i=i+Math.imul(S,q)|0,r=r+Math.imul(E,V)|0,o=(o=o+Math.imul(E,W)|0)+Math.imul(w,V)|0,i=i+Math.imul(w,W)|0,r=r+Math.imul(b,Z)|0,o=(o=o+Math.imul(b,z)|0)+Math.imul(I,Z)|0,i=i+Math.imul(I,z)|0,r=r+Math.imul(m,$)|0,o=(o=o+Math.imul(m,ee)|0)+Math.imul(v,$)|0,i=i+Math.imul(v,ee)|0,r=r+Math.imul(h,ne)|0,o=(o=o+Math.imul(h,re)|0)+Math.imul(g,ne)|0,i=i+Math.imul(g,re)|0;var Ce=(d+(r=r+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(A,ie)|0))<<13)|0;d=((i=i+Math.imul(A,ae)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(P,J),o=(o=Math.imul(P,F))+Math.imul(N,J)|0,i=Math.imul(N,F),r=r+Math.imul(O,L)|0,o=(o=o+Math.imul(O,q)|0)+Math.imul(Q,L)|0,i=i+Math.imul(Q,q)|0,r=r+Math.imul(_,V)|0,o=(o=o+Math.imul(_,W)|0)+Math.imul(S,V)|0,i=i+Math.imul(S,W)|0,r=r+Math.imul(E,Z)|0,o=(o=o+Math.imul(E,z)|0)+Math.imul(w,Z)|0,i=i+Math.imul(w,z)|0,r=r+Math.imul(b,$)|0,o=(o=o+Math.imul(b,ee)|0)+Math.imul(I,$)|0,i=i+Math.imul(I,ee)|0,r=r+Math.imul(m,ne)|0,o=(o=o+Math.imul(m,re)|0)+Math.imul(v,ne)|0,i=i+Math.imul(v,re)|0,r=r+Math.imul(h,ie)|0,o=(o=o+Math.imul(h,ae)|0)+Math.imul(g,ie)|0,i=i+Math.imul(g,ae)|0;var Ee=(d+(r=r+Math.imul(l,ce)|0)|0)+((8191&(o=(o=o+Math.imul(l,de)|0)+Math.imul(A,ce)|0))<<13)|0;d=((i=i+Math.imul(A,de)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(D,J),o=(o=Math.imul(D,F))+Math.imul(M,J)|0,i=Math.imul(M,F),r=r+Math.imul(P,L)|0,o=(o=o+Math.imul(P,q)|0)+Math.imul(N,L)|0,i=i+Math.imul(N,q)|0,r=r+Math.imul(O,V)|0,o=(o=o+Math.imul(O,W)|0)+Math.imul(Q,V)|0,i=i+Math.imul(Q,W)|0,r=r+Math.imul(_,Z)|0,o=(o=o+Math.imul(_,z)|0)+Math.imul(S,Z)|0,i=i+Math.imul(S,z)|0,r=r+Math.imul(E,$)|0,o=(o=o+Math.imul(E,ee)|0)+Math.imul(w,$)|0,i=i+Math.imul(w,ee)|0,r=r+Math.imul(b,ne)|0,o=(o=o+Math.imul(b,re)|0)+Math.imul(I,ne)|0,i=i+Math.imul(I,re)|0,r=r+Math.imul(m,ie)|0,o=(o=o+Math.imul(m,ae)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,ae)|0,r=r+Math.imul(h,ce)|0,o=(o=o+Math.imul(h,de)|0)+Math.imul(g,ce)|0,i=i+Math.imul(g,de)|0;var we=(d+(r=r+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,Ae)|0)+Math.imul(A,le)|0))<<13)|0;d=((i=i+Math.imul(A,Ae)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(U,J),o=(o=Math.imul(U,F))+Math.imul(H,J)|0,i=Math.imul(H,F),r=r+Math.imul(D,L)|0,o=(o=o+Math.imul(D,q)|0)+Math.imul(M,L)|0,i=i+Math.imul(M,q)|0,r=r+Math.imul(P,V)|0,o=(o=o+Math.imul(P,W)|0)+Math.imul(N,V)|0,i=i+Math.imul(N,W)|0,r=r+Math.imul(O,Z)|0,o=(o=o+Math.imul(O,z)|0)+Math.imul(Q,Z)|0,i=i+Math.imul(Q,z)|0,r=r+Math.imul(_,$)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(S,$)|0,i=i+Math.imul(S,ee)|0,r=r+Math.imul(E,ne)|0,o=(o=o+Math.imul(E,re)|0)+Math.imul(w,ne)|0,i=i+Math.imul(w,re)|0,r=r+Math.imul(b,ie)|0,o=(o=o+Math.imul(b,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,r=r+Math.imul(m,ce)|0,o=(o=o+Math.imul(m,de)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,de)|0,r=r+Math.imul(h,le)|0,o=(o=o+Math.imul(h,Ae)|0)+Math.imul(g,le)|0,i=i+Math.imul(g,Ae)|0;var Be=(d+(r=r+Math.imul(l,he)|0)|0)+((8191&(o=(o=o+Math.imul(l,ge)|0)+Math.imul(A,he)|0))<<13)|0;d=((i=i+Math.imul(A,ge)|0)+(o>>>13)|0)+(Be>>>26)|0,Be&=67108863,r=Math.imul(U,L),o=(o=Math.imul(U,q))+Math.imul(H,L)|0,i=Math.imul(H,q),r=r+Math.imul(D,V)|0,o=(o=o+Math.imul(D,W)|0)+Math.imul(M,V)|0,i=i+Math.imul(M,W)|0,r=r+Math.imul(P,Z)|0,o=(o=o+Math.imul(P,z)|0)+Math.imul(N,Z)|0,i=i+Math.imul(N,z)|0,r=r+Math.imul(O,$)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(Q,$)|0,i=i+Math.imul(Q,ee)|0,r=r+Math.imul(_,ne)|0,o=(o=o+Math.imul(_,re)|0)+Math.imul(S,ne)|0,i=i+Math.imul(S,re)|0,r=r+Math.imul(E,ie)|0,o=(o=o+Math.imul(E,ae)|0)+Math.imul(w,ie)|0,i=i+Math.imul(w,ae)|0,r=r+Math.imul(b,ce)|0,o=(o=o+Math.imul(b,de)|0)+Math.imul(I,ce)|0,i=i+Math.imul(I,de)|0,r=r+Math.imul(m,le)|0,o=(o=o+Math.imul(m,Ae)|0)+Math.imul(v,le)|0,i=i+Math.imul(v,Ae)|0;var _e=(d+(r=r+Math.imul(h,he)|0)|0)+((8191&(o=(o=o+Math.imul(h,ge)|0)+Math.imul(g,he)|0))<<13)|0;d=((i=i+Math.imul(g,ge)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(U,V),o=(o=Math.imul(U,W))+Math.imul(H,V)|0,i=Math.imul(H,W),r=r+Math.imul(D,Z)|0,o=(o=o+Math.imul(D,z)|0)+Math.imul(M,Z)|0,i=i+Math.imul(M,z)|0,r=r+Math.imul(P,$)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(N,$)|0,i=i+Math.imul(N,ee)|0,r=r+Math.imul(O,ne)|0,o=(o=o+Math.imul(O,re)|0)+Math.imul(Q,ne)|0,i=i+Math.imul(Q,re)|0,r=r+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,ae)|0)+Math.imul(S,ie)|0,i=i+Math.imul(S,ae)|0,r=r+Math.imul(E,ce)|0,o=(o=o+Math.imul(E,de)|0)+Math.imul(w,ce)|0,i=i+Math.imul(w,de)|0,r=r+Math.imul(b,le)|0,o=(o=o+Math.imul(b,Ae)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,Ae)|0;var Se=(d+(r=r+Math.imul(m,he)|0)|0)+((8191&(o=(o=o+Math.imul(m,ge)|0)+Math.imul(v,he)|0))<<13)|0;d=((i=i+Math.imul(v,ge)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(U,Z),o=(o=Math.imul(U,z))+Math.imul(H,Z)|0,i=Math.imul(H,z),r=r+Math.imul(D,$)|0,o=(o=o+Math.imul(D,ee)|0)+Math.imul(M,$)|0,i=i+Math.imul(M,ee)|0,r=r+Math.imul(P,ne)|0,o=(o=o+Math.imul(P,re)|0)+Math.imul(N,ne)|0,i=i+Math.imul(N,re)|0,r=r+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(Q,ie)|0,i=i+Math.imul(Q,ae)|0,r=r+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,de)|0)+Math.imul(S,ce)|0,i=i+Math.imul(S,de)|0,r=r+Math.imul(E,le)|0,o=(o=o+Math.imul(E,Ae)|0)+Math.imul(w,le)|0,i=i+Math.imul(w,Ae)|0;var ke=(d+(r=r+Math.imul(b,he)|0)|0)+((8191&(o=(o=o+Math.imul(b,ge)|0)+Math.imul(I,he)|0))<<13)|0;d=((i=i+Math.imul(I,ge)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(U,$),o=(o=Math.imul(U,ee))+Math.imul(H,$)|0,i=Math.imul(H,ee),r=r+Math.imul(D,ne)|0,o=(o=o+Math.imul(D,re)|0)+Math.imul(M,ne)|0,i=i+Math.imul(M,re)|0,r=r+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,r=r+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,de)|0)+Math.imul(Q,ce)|0,i=i+Math.imul(Q,de)|0,r=r+Math.imul(_,le)|0,o=(o=o+Math.imul(_,Ae)|0)+Math.imul(S,le)|0,i=i+Math.imul(S,Ae)|0;var Oe=(d+(r=r+Math.imul(E,he)|0)|0)+((8191&(o=(o=o+Math.imul(E,ge)|0)+Math.imul(w,he)|0))<<13)|0;d=((i=i+Math.imul(w,ge)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(U,ne),o=(o=Math.imul(U,re))+Math.imul(H,ne)|0,i=Math.imul(H,re),r=r+Math.imul(D,ie)|0,o=(o=o+Math.imul(D,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,r=r+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,de)|0)+Math.imul(N,ce)|0,i=i+Math.imul(N,de)|0,r=r+Math.imul(O,le)|0,o=(o=o+Math.imul(O,Ae)|0)+Math.imul(Q,le)|0,i=i+Math.imul(Q,Ae)|0;var Qe=(d+(r=r+Math.imul(_,he)|0)|0)+((8191&(o=(o=o+Math.imul(_,ge)|0)+Math.imul(S,he)|0))<<13)|0;d=((i=i+Math.imul(S,ge)|0)+(o>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,r=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(H,ie)|0,i=Math.imul(H,ae),r=r+Math.imul(D,ce)|0,o=(o=o+Math.imul(D,de)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,de)|0,r=r+Math.imul(P,le)|0,o=(o=o+Math.imul(P,Ae)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,Ae)|0;var Re=(d+(r=r+Math.imul(O,he)|0)|0)+((8191&(o=(o=o+Math.imul(O,ge)|0)+Math.imul(Q,he)|0))<<13)|0;d=((i=i+Math.imul(Q,ge)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(U,ce),o=(o=Math.imul(U,de))+Math.imul(H,ce)|0,i=Math.imul(H,de),r=r+Math.imul(D,le)|0,o=(o=o+Math.imul(D,Ae)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,Ae)|0;var Pe=(d+(r=r+Math.imul(P,he)|0)|0)+((8191&(o=(o=o+Math.imul(P,ge)|0)+Math.imul(N,he)|0))<<13)|0;d=((i=i+Math.imul(N,ge)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(U,le),o=(o=Math.imul(U,Ae))+Math.imul(H,le)|0,i=Math.imul(H,Ae);var Ne=(d+(r=r+Math.imul(D,he)|0)|0)+((8191&(o=(o=o+Math.imul(D,ge)|0)+Math.imul(M,he)|0))<<13)|0;d=((i=i+Math.imul(M,ge)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863;var xe=(d+(r=Math.imul(U,he))|0)+((8191&(o=(o=Math.imul(U,ge))+Math.imul(H,he)|0))<<13)|0;return d=((i=Math.imul(H,ge))+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,c[0]=pe,c[1]=me,c[2]=ve,c[3]=ye,c[4]=be,c[5]=Ie,c[6]=Ce,c[7]=Ee,c[8]=we,c[9]=Be,c[10]=_e,c[11]=Se,c[12]=ke,c[13]=Oe,c[14]=Qe,c[15]=Re,c[16]=Pe,c[17]=Ne,c[18]=xe,0!==d&&(c[19]=d,n.length++),n};function m(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}n.words[i]=s,r=a,a=o}return 0!==r?n.words[i]=r:n.length--,n._strip()}function v(e,t,n){return m(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(p=g),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):n<63?g(this,e,t):n<1024?m(this,e,t):v(this,e,t)},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=i.prototype._countBits(e)-1,r=0;r>=1;return r},y.prototype.permute=function(e,t,n,r,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,n+=i/67108864|0,n+=a>>>26,this.words[o]=67108863&a}return 0!==n&&(this.words[o]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>o&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,d=0;d=0&&(0!==u||d>=o);d--){var l=0|this.words[d];this.words[d]=u<<26-i|l>>>i,u=l&s}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=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},i.prototype.isubn=function(e){if(r("number"==typeof e),r(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)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this._strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),o=e,a=0|o.words[o.length-1];0!=(n=26-this._countBits(a))&&(o=o.ushln(n),r.iushln(n),a=0|o.words[o.length-1]);var s,c=r.length-o.length;if("mod"!==t){(s=new i(null)).length=c+1,s.words=new Array(s.length);for(var d=0;d=0;l--){var A=67108864*(0|r.words[o.length+l])+(0|r.words[o.length+l-1]);for(A=Math.min(A/a|0,67108863),r._ishlnsubmul(o,A,l);0!==r.negative;)A--,r.negative=0,r._ishlnsubmul(o,1,l),r.isZero()||(r.negative^=1);s&&(s.words[l]=A)}return s&&s._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),o=e.andln(1),i=n.cmp(r);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,o=0,i=this.length-1;i>=0;i--)o=(n*o+(0|this.words[i]))%e;return t?-o:o},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,o=this.length-1;o>=0;o--){var i=(0|this.words[o])+67108864*n;this.words[o]=i/e|0,n=i%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),c=new i(1),d=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++d;for(var u=n.clone(),l=t.clone();!t.isZero();){for(var A=0,f=1;0==(t.words[0]&f)&&A<26;++A,f<<=1);if(A>0)for(t.iushrn(A);A-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(u),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var h=0,g=1;0==(n.words[0]&g)&&h<26;++h,g<<=1);if(h>0)for(n.iushrn(h);h-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(u),c.isub(l)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(s),a.isub(c)):(n.isub(t),s.isub(o),c.isub(a))}return{a:s,b:c,gcd:n.iushln(d)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var d=0,u=1;0==(t.words[0]&u)&&d<26;++d,u<<=1);if(d>0)for(t.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var l=0,A=1;0==(n.words[0]&A)&&l<26;++l,A<<=1);if(l>0)for(n.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var o=t.cmp(n);if(o<0){var i=t;t=n,n=i}else if(0===o||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;n--){var r=0|this.words[n],o=0|e.words[n];if(r!==o){ro&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new _(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function I(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function C(){I.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){I.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){I.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function B(){I.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){_.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(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)}I.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},I.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},I.prototype.split=function(e,t){e.iushrn(this.n,0,t)},I.prototype.imulK=function(e){return e.imul(this.k)},o(C,I),C.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},C.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=o,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new C;else if("p224"===e)t=new E;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new B}return b[e]=t,t},_.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},_.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},_.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(u(e,e.umod(this.m)._forceRed(this)),e)},_.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},_.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},_.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},_.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},_.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},_.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},_.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},_.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},_.prototype.isqr=function(e){return this.imul(e,e.clone())},_.prototype.sqr=function(e){return this.mul(e,e)},_.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);r(!o.isZero());var s=new i(1).toRed(this),c=s.redNeg(),d=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new i(2*u*u).toRed(this);0!==this.pow(u,d).cmp(c);)u.redIAdd(c);for(var l=this.pow(u,o),A=this.pow(e,o.addn(1).iushrn(1)),f=this.pow(e,o),h=a;0!==f.cmp(s);){for(var g=f,p=0;0!==g.cmp(s);p++)g=g.redSqr();r(p=0;r--){for(var d=t.words[r],u=c-1;u>=0;u--){var l=d>>u&1;o!==n[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===r&&0===u)&&(o=this.mul(o,n[a]),s=0,a=0)):s=0}c=26}return o},_.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},_.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new S(e)},o(S,_),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 n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=n.isub(r).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=n.isub(r).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},9931:(e,t,n)=>{var r;function o(e){this.rand=e}if(e.exports=function(e){return r||(r=new o(null)),r.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),n=0;n{"use strict";const r=n(9742),o=n(645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=c,t.SlowBuffer=function(e){return+e!=e&&(e=0),c.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function s(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return d(e,t,n)}function d(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|g(e,t);let r=s(n);const o=r.write(e,t);return o!==n&&(r=r.slice(0,o)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(K(e,Uint8Array)){const t=new Uint8Array(e);return f(t.buffer,t.byteOffset,t.byteLength)}return A(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(K(e,ArrayBuffer)||e&&K(e.buffer,ArrayBuffer))return f(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(K(e,SharedArrayBuffer)||e&&K(e.buffer,SharedArrayBuffer)))return f(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return c.from(r,t,n);const o=function(e){if(c.isBuffer(e)){const t=0|h(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||Z(e.length)?s(0):A(e):"Buffer"===e.type&&Array.isArray(e.data)?A(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return u(e),s(e<0?0:0|h(e))}function A(e){const t=e.length<0?0:0|h(e.length),n=s(t);for(let r=0;r=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function g(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||K(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return Y(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return V(e).length;default:if(o)return r?-1:Y(e).length;t=(""+t).toLowerCase(),o=!0}}function p(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return Q(this,t,n);case"utf8":case"utf-8":return _(this,t,n);case"ascii":return k(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return B(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function m(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),Z(n=+n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,o){let i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function d(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){let r=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){let n=!0;for(let r=0;ro&&(r=o):r=o;const i=t.length;let a;for(r>i/2&&(r=i/2),a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function B(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function _(e,t,n){n=Math.min(e.length,n);const r=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+a<=n){let n,r,s,c;switch(a){case 1:t<128&&(i=t);break;case 2:n=e[o+1],128==(192&n)&&(c=(31&t)<<6|63&n,c>127&&(i=c));break;case 3:n=e[o+1],r=e[o+2],128==(192&n)&&128==(192&r)&&(c=(15&t)<<12|(63&n)<<6|63&r,c>2047&&(c<55296||c>57343)&&(i=c));break;case 4:n=e[o+1],r=e[o+2],s=e[o+3],128==(192&n)&&128==(192&r)&&128==(192&s)&&(c=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&s,c>65535&&c<1114112&&(i=c))}}null===i?(i=65533,a=1):i>65535&&(i-=65536,r.push(i>>>10&1023|55296),i=56320|1023&i),r.push(i),o+=a}return function(e){const t=e.length;if(t<=S)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(c.isBuffer(t)||(t=c.from(t)),t.copy(r,o)):Uint8Array.prototype.set.call(r,t,o);else{if(!c.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,o)}o+=t.length}return r},c.byteLength=g,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(e,t,n,r,o){if(K(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;let i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0);const s=Math.min(i,a),d=this.slice(r,o),u=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let i=!1;for(;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return I(this,e,t,n);case"ascii":case"latin1":case"binary":return C(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const S=4096;function k(e,t,n){let r="";n=Math.min(e.length,n);for(let o=t;or)&&(n=r);let o="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function x(e,t,n,r,o){F(t,r,o,e,n,7);let i=Number(t&BigInt(4294967295));e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,n}function D(e,t,n,r,o){F(t,r,o,e,n,7);let i=Number(t&BigInt(4294967295));e[n+7]=i,i>>=8,e[n+6]=i,i>>=8,e[n+5]=i,i>>=8,e[n+4]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=a,a>>=8,e[n+2]=a,a>>=8,e[n+1]=a,a>>=8,e[n]=a,n+8}function M(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function T(e,t,n,r,i){return t=+t,n>>>=0,i||M(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function U(e,t,n,r,i){return t=+t,n>>>=0,i||M(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){const n=this.length;(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),t>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e+--t],o=1;for(;t>0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readBigUInt64LE=X((function(e){G(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||L(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(o)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||L(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e],o=1,i=0;for(;++i=o&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||P(e,t,this.length);let r=t,o=1,i=this[e+--r];for(;r>0&&(o*=256);)i+=this[e+--r]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readBigInt64LE=X((function(e){G(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||L(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||L(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||P(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||P(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||P(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||P(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||N(this,e,t,n,Math.pow(2,8*n)-1,0);let o=1,i=0;for(this[t]=255&e;++i>>=0,n>>>=0,r||N(this,e,t,n,Math.pow(2,8*n)-1,0);let o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigUInt64LE=X((function(e,t=0){return x(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeBigUInt64BE=X((function(e,t=0){return D(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);N(this,e,t,n,r-1,-r)}let o=0,i=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);N(this,e,t,n,r-1,-r)}let o=n-1,i=1,a=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/i>>0)-a&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigInt64LE=X((function(e,t=0){return x(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeBigInt64BE=X((function(e,t=0){return D(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeFloatLE=function(e,t,n){return T(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return T(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return U(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return U(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function F(e,t,n,r,o,i){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(i+1)}${r}`:`>= -(2${r} ** ${8*(i+1)-1}${r}) and < 2 ** ${8*(i+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new H.ERR_OUT_OF_RANGE("value",o,e)}!function(e,t,n){G(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||L(t,e.length-(n+1))}(r,o,i)}function G(e,t){if("number"!=typeof e)throw new H.ERR_INVALID_ARG_TYPE(t,"number",e)}function L(e,t,n){if(Math.floor(e)!==e)throw G(e,n),new H.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new H.ERR_BUFFER_OUT_OF_BOUNDS;throw new H.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}j("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),j("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),j("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,o=n;return Number.isInteger(n)&&Math.abs(n)>2**32?o=J(String(n)):"bigint"==typeof n&&(o=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(o=J(o)),o+="n"),r+=` It must be ${t}. Received ${o}`,r}),RangeError);const q=/[^+/0-9A-Za-z-_]/g;function Y(e,t){let n;t=t||1/0;const r=e.length;let o=null;const i=[];for(let a=0;a55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function V(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(q,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}function K(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Z(e){return e!=e}const z=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let o=0;o<16;++o)t[r+o]=e[n]+e[o]}return t}();function X(e){return"undefined"==typeof BigInt?$:e}function $(){throw new Error("BigInt not supported")}},2912:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompressedNonExistenceProof=t.CompressedExistenceProof=t.CompressedBatchEntry=t.CompressedBatchProof=t.BatchEntry=t.BatchProof=t.InnerSpec=t.ProofSpec=t.InnerOp=t.LeafOp=t.CommitmentProof=t.NonExistenceProof=t.ExistenceProof=t.lengthOpToJSON=t.lengthOpFromJSON=t.LengthOp=t.hashOpToJSON=t.hashOpFromJSON=t.HashOp=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));var a,s;function c(e){switch(e){case 0:case"NO_HASH":return a.NO_HASH;case 1:case"SHA256":return a.SHA256;case 2:case"SHA512":return a.SHA512;case 3:case"KECCAK":return a.KECCAK;case 4:case"RIPEMD160":return a.RIPEMD160;case 5:case"BITCOIN":return a.BITCOIN;default:return a.UNRECOGNIZED}}function d(e){switch(e){case a.NO_HASH:return"NO_HASH";case a.SHA256:return"SHA256";case a.SHA512:return"SHA512";case a.KECCAK:return"KECCAK";case a.RIPEMD160:return"RIPEMD160";case a.BITCOIN:return"BITCOIN";default:return"UNKNOWN"}}function u(e){switch(e){case 0:case"NO_PREFIX":return s.NO_PREFIX;case 1:case"VAR_PROTO":return s.VAR_PROTO;case 2:case"VAR_RLP":return s.VAR_RLP;case 3:case"FIXED32_BIG":return s.FIXED32_BIG;case 4:case"FIXED32_LITTLE":return s.FIXED32_LITTLE;case 5:case"FIXED64_BIG":return s.FIXED64_BIG;case 6:case"FIXED64_LITTLE":return s.FIXED64_LITTLE;case 7:case"REQUIRE_32_BYTES":return s.REQUIRE_32_BYTES;case 8:case"REQUIRE_64_BYTES":return s.REQUIRE_64_BYTES;default:return s.UNRECOGNIZED}}function l(e){switch(e){case s.NO_PREFIX:return"NO_PREFIX";case s.VAR_PROTO:return"VAR_PROTO";case s.VAR_RLP:return"VAR_RLP";case s.FIXED32_BIG:return"FIXED32_BIG";case s.FIXED32_LITTLE:return"FIXED32_LITTLE";case s.FIXED64_BIG:return"FIXED64_BIG";case s.FIXED64_LITTLE:return"FIXED64_LITTLE";case s.REQUIRE_32_BYTES:return"REQUIRE_32_BYTES";case s.REQUIRE_64_BYTES:return"REQUIRE_64_BYTES";default:return"UNKNOWN"}}t.protobufPackage="ics23",function(e){e[e.NO_HASH=0]="NO_HASH",e[e.SHA256=1]="SHA256",e[e.SHA512=2]="SHA512",e[e.KECCAK=3]="KECCAK",e[e.RIPEMD160=4]="RIPEMD160",e[e.BITCOIN=5]="BITCOIN",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(a=t.HashOp||(t.HashOp={})),t.hashOpFromJSON=c,t.hashOpToJSON=d,function(e){e[e.NO_PREFIX=0]="NO_PREFIX",e[e.VAR_PROTO=1]="VAR_PROTO",e[e.VAR_RLP=2]="VAR_RLP",e[e.FIXED32_BIG=3]="FIXED32_BIG",e[e.FIXED32_LITTLE=4]="FIXED32_LITTLE",e[e.FIXED64_BIG=5]="FIXED64_BIG",e[e.FIXED64_LITTLE=6]="FIXED64_LITTLE",e[e.REQUIRE_32_BYTES=7]="REQUIRE_32_BYTES",e[e.REQUIRE_64_BYTES=8]="REQUIRE_64_BYTES",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.LengthOp||(t.LengthOp={})),t.lengthOpFromJSON=u,t.lengthOpToJSON=l;const A={};t.ExistenceProof={encode(e,n=i.default.Writer.create()){0!==e.key.length&&n.uint32(10).bytes(e.key),0!==e.value.length&&n.uint32(18).bytes(e.value),void 0!==e.leaf&&t.LeafOp.encode(e.leaf,n.uint32(26).fork()).ldelim();for(const r of e.path)t.InnerOp.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},A);for(a.path=[],a.key=new Uint8Array,a.value=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.value=r.bytes();break;case 3:a.leaf=t.LeafOp.decode(r,r.uint32());break;case 4:a.path.push(t.InnerOp.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},A);return r.key=void 0!==e.key&&null!==e.key?S(e.key):new Uint8Array,r.value=void 0!==e.value&&null!==e.value?S(e.value):new Uint8Array,r.leaf=void 0!==e.leaf&&null!==e.leaf?t.LeafOp.fromJSON(e.leaf):void 0,r.path=(null!==(n=e.path)&&void 0!==n?n:[]).map((e=>t.InnerOp.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.key&&(n.key=O(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(n.value=O(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.leaf&&(n.leaf=e.leaf?t.LeafOp.toJSON(e.leaf):void 0),e.path?n.path=e.path.map((e=>e?t.InnerOp.toJSON(e):void 0)):n.path=[],n},fromPartial(e){var n,r,o;const i=Object.assign({},A);return i.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,i.value=null!==(r=e.value)&&void 0!==r?r:new Uint8Array,i.leaf=void 0!==e.leaf&&null!==e.leaf?t.LeafOp.fromPartial(e.leaf):void 0,i.path=(null===(o=e.path)||void 0===o?void 0:o.map((e=>t.InnerOp.fromPartial(e))))||[],i}};const f={};t.NonExistenceProof={encode:(e,n=i.default.Writer.create())=>(0!==e.key.length&&n.uint32(10).bytes(e.key),void 0!==e.left&&t.ExistenceProof.encode(e.left,n.uint32(18).fork()).ldelim(),void 0!==e.right&&t.ExistenceProof.encode(e.right,n.uint32(26).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(a.key=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.left=t.ExistenceProof.decode(r,r.uint32());break;case 3:a.right=t.ExistenceProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},f);return n.key=void 0!==e.key&&null!==e.key?S(e.key):new Uint8Array,n.left=void 0!==e.left&&null!==e.left?t.ExistenceProof.fromJSON(e.left):void 0,n.right=void 0!==e.right&&null!==e.right?t.ExistenceProof.fromJSON(e.right):void 0,n},toJSON(e){const n={};return void 0!==e.key&&(n.key=O(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.left&&(n.left=e.left?t.ExistenceProof.toJSON(e.left):void 0),void 0!==e.right&&(n.right=e.right?t.ExistenceProof.toJSON(e.right):void 0),n},fromPartial(e){var n;const r=Object.assign({},f);return r.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,r.left=void 0!==e.left&&null!==e.left?t.ExistenceProof.fromPartial(e.left):void 0,r.right=void 0!==e.right&&null!==e.right?t.ExistenceProof.fromPartial(e.right):void 0,r}};const h={};t.CommitmentProof={encode:(e,n=i.default.Writer.create())=>(void 0!==e.exist&&t.ExistenceProof.encode(e.exist,n.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.NonExistenceProof.encode(e.nonexist,n.uint32(18).fork()).ldelim(),void 0!==e.batch&&t.BatchProof.encode(e.batch,n.uint32(26).fork()).ldelim(),void 0!==e.compressed&&t.CompressedBatchProof.encode(e.compressed,n.uint32(34).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},h);for(;r.pos>>3){case 1:a.exist=t.ExistenceProof.decode(r,r.uint32());break;case 2:a.nonexist=t.NonExistenceProof.decode(r,r.uint32());break;case 3:a.batch=t.BatchProof.decode(r,r.uint32());break;case 4:a.compressed=t.CompressedBatchProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},h);return n.exist=void 0!==e.exist&&null!==e.exist?t.ExistenceProof.fromJSON(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.NonExistenceProof.fromJSON(e.nonexist):void 0,n.batch=void 0!==e.batch&&null!==e.batch?t.BatchProof.fromJSON(e.batch):void 0,n.compressed=void 0!==e.compressed&&null!==e.compressed?t.CompressedBatchProof.fromJSON(e.compressed):void 0,n},toJSON(e){const n={};return void 0!==e.exist&&(n.exist=e.exist?t.ExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(n.nonexist=e.nonexist?t.NonExistenceProof.toJSON(e.nonexist):void 0),void 0!==e.batch&&(n.batch=e.batch?t.BatchProof.toJSON(e.batch):void 0),void 0!==e.compressed&&(n.compressed=e.compressed?t.CompressedBatchProof.toJSON(e.compressed):void 0),n},fromPartial(e){const n=Object.assign({},h);return n.exist=void 0!==e.exist&&null!==e.exist?t.ExistenceProof.fromPartial(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.NonExistenceProof.fromPartial(e.nonexist):void 0,n.batch=void 0!==e.batch&&null!==e.batch?t.BatchProof.fromPartial(e.batch):void 0,n.compressed=void 0!==e.compressed&&null!==e.compressed?t.CompressedBatchProof.fromPartial(e.compressed):void 0,n}};const g={hash:0,prehashKey:0,prehashValue:0,length:0};t.LeafOp={encode:(e,t=i.default.Writer.create())=>(0!==e.hash&&t.uint32(8).int32(e.hash),0!==e.prehashKey&&t.uint32(16).int32(e.prehashKey),0!==e.prehashValue&&t.uint32(24).int32(e.prehashValue),0!==e.length&&t.uint32(32).int32(e.length),0!==e.prefix.length&&t.uint32(42).bytes(e.prefix),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.prefix=new Uint8Array;n.pos>>3){case 1:o.hash=n.int32();break;case 2:o.prehashKey=n.int32();break;case 3:o.prehashValue=n.int32();break;case 4:o.length=n.int32();break;case 5:o.prefix=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.hash=void 0!==e.hash&&null!==e.hash?c(e.hash):0,t.prehashKey=void 0!==e.prehashKey&&null!==e.prehashKey?c(e.prehashKey):0,t.prehashValue=void 0!==e.prehashValue&&null!==e.prehashValue?c(e.prehashValue):0,t.length=void 0!==e.length&&null!==e.length?u(e.length):0,t.prefix=void 0!==e.prefix&&null!==e.prefix?S(e.prefix):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=d(e.hash)),void 0!==e.prehashKey&&(t.prehashKey=d(e.prehashKey)),void 0!==e.prehashValue&&(t.prehashValue=d(e.prehashValue)),void 0!==e.length&&(t.length=l(e.length)),void 0!==e.prefix&&(t.prefix=O(void 0!==e.prefix?e.prefix:new Uint8Array)),t},fromPartial(e){var t,n,r,o,i;const a=Object.assign({},g);return a.hash=null!==(t=e.hash)&&void 0!==t?t:0,a.prehashKey=null!==(n=e.prehashKey)&&void 0!==n?n:0,a.prehashValue=null!==(r=e.prehashValue)&&void 0!==r?r:0,a.length=null!==(o=e.length)&&void 0!==o?o:0,a.prefix=null!==(i=e.prefix)&&void 0!==i?i:new Uint8Array,a}};const p={hash:0};t.InnerOp={encode:(e,t=i.default.Writer.create())=>(0!==e.hash&&t.uint32(8).int32(e.hash),0!==e.prefix.length&&t.uint32(18).bytes(e.prefix),0!==e.suffix.length&&t.uint32(26).bytes(e.suffix),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.prefix=new Uint8Array,o.suffix=new Uint8Array;n.pos>>3){case 1:o.hash=n.int32();break;case 2:o.prefix=n.bytes();break;case 3:o.suffix=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.hash=void 0!==e.hash&&null!==e.hash?c(e.hash):0,t.prefix=void 0!==e.prefix&&null!==e.prefix?S(e.prefix):new Uint8Array,t.suffix=void 0!==e.suffix&&null!==e.suffix?S(e.suffix):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=d(e.hash)),void 0!==e.prefix&&(t.prefix=O(void 0!==e.prefix?e.prefix:new Uint8Array)),void 0!==e.suffix&&(t.suffix=O(void 0!==e.suffix?e.suffix:new Uint8Array)),t},fromPartial(e){var t,n,r;const o=Object.assign({},p);return o.hash=null!==(t=e.hash)&&void 0!==t?t:0,o.prefix=null!==(n=e.prefix)&&void 0!==n?n:new Uint8Array,o.suffix=null!==(r=e.suffix)&&void 0!==r?r:new Uint8Array,o}};const m={maxDepth:0,minDepth:0};t.ProofSpec={encode:(e,n=i.default.Writer.create())=>(void 0!==e.leafSpec&&t.LeafOp.encode(e.leafSpec,n.uint32(10).fork()).ldelim(),void 0!==e.innerSpec&&t.InnerSpec.encode(e.innerSpec,n.uint32(18).fork()).ldelim(),0!==e.maxDepth&&n.uint32(24).int32(e.maxDepth),0!==e.minDepth&&n.uint32(32).int32(e.minDepth),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},m);for(;r.pos>>3){case 1:a.leafSpec=t.LeafOp.decode(r,r.uint32());break;case 2:a.innerSpec=t.InnerSpec.decode(r,r.uint32());break;case 3:a.maxDepth=r.int32();break;case 4:a.minDepth=r.int32();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},m);return n.leafSpec=void 0!==e.leafSpec&&null!==e.leafSpec?t.LeafOp.fromJSON(e.leafSpec):void 0,n.innerSpec=void 0!==e.innerSpec&&null!==e.innerSpec?t.InnerSpec.fromJSON(e.innerSpec):void 0,n.maxDepth=void 0!==e.maxDepth&&null!==e.maxDepth?Number(e.maxDepth):0,n.minDepth=void 0!==e.minDepth&&null!==e.minDepth?Number(e.minDepth):0,n},toJSON(e){const n={};return void 0!==e.leafSpec&&(n.leafSpec=e.leafSpec?t.LeafOp.toJSON(e.leafSpec):void 0),void 0!==e.innerSpec&&(n.innerSpec=e.innerSpec?t.InnerSpec.toJSON(e.innerSpec):void 0),void 0!==e.maxDepth&&(n.maxDepth=e.maxDepth),void 0!==e.minDepth&&(n.minDepth=e.minDepth),n},fromPartial(e){var n,r;const o=Object.assign({},m);return o.leafSpec=void 0!==e.leafSpec&&null!==e.leafSpec?t.LeafOp.fromPartial(e.leafSpec):void 0,o.innerSpec=void 0!==e.innerSpec&&null!==e.innerSpec?t.InnerSpec.fromPartial(e.innerSpec):void 0,o.maxDepth=null!==(n=e.maxDepth)&&void 0!==n?n:0,o.minDepth=null!==(r=e.minDepth)&&void 0!==r?r:0,o}};const v={childOrder:0,childSize:0,minPrefixLength:0,maxPrefixLength:0,hash:0};t.InnerSpec={encode(e,t=i.default.Writer.create()){t.uint32(10).fork();for(const n of e.childOrder)t.int32(n);return t.ldelim(),0!==e.childSize&&t.uint32(16).int32(e.childSize),0!==e.minPrefixLength&&t.uint32(24).int32(e.minPrefixLength),0!==e.maxPrefixLength&&t.uint32(32).int32(e.maxPrefixLength),0!==e.emptyChild.length&&t.uint32(42).bytes(e.emptyChild),0!==e.hash&&t.uint32(48).int32(e.hash),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.childOrder=[],o.emptyChild=new Uint8Array;n.pos>>3){case 1:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.posNumber(e))),n.childSize=void 0!==e.childSize&&null!==e.childSize?Number(e.childSize):0,n.minPrefixLength=void 0!==e.minPrefixLength&&null!==e.minPrefixLength?Number(e.minPrefixLength):0,n.maxPrefixLength=void 0!==e.maxPrefixLength&&null!==e.maxPrefixLength?Number(e.maxPrefixLength):0,n.emptyChild=void 0!==e.emptyChild&&null!==e.emptyChild?S(e.emptyChild):new Uint8Array,n.hash=void 0!==e.hash&&null!==e.hash?c(e.hash):0,n},toJSON(e){const t={};return e.childOrder?t.childOrder=e.childOrder.map((e=>e)):t.childOrder=[],void 0!==e.childSize&&(t.childSize=e.childSize),void 0!==e.minPrefixLength&&(t.minPrefixLength=e.minPrefixLength),void 0!==e.maxPrefixLength&&(t.maxPrefixLength=e.maxPrefixLength),void 0!==e.emptyChild&&(t.emptyChild=O(void 0!==e.emptyChild?e.emptyChild:new Uint8Array)),void 0!==e.hash&&(t.hash=d(e.hash)),t},fromPartial(e){var t,n,r,o,i,a;const s=Object.assign({},v);return s.childOrder=(null===(t=e.childOrder)||void 0===t?void 0:t.map((e=>e)))||[],s.childSize=null!==(n=e.childSize)&&void 0!==n?n:0,s.minPrefixLength=null!==(r=e.minPrefixLength)&&void 0!==r?r:0,s.maxPrefixLength=null!==(o=e.maxPrefixLength)&&void 0!==o?o:0,s.emptyChild=null!==(i=e.emptyChild)&&void 0!==i?i:new Uint8Array,s.hash=null!==(a=e.hash)&&void 0!==a?a:0,s}};const y={};t.BatchProof={encode(e,n=i.default.Writer.create()){for(const r of e.entries)t.BatchEntry.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},y);for(a.entries=[];r.pos>>3==1?a.entries.push(t.BatchEntry.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},y);return r.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.BatchEntry.fromJSON(e))),r},toJSON(e){const n={};return e.entries?n.entries=e.entries.map((e=>e?t.BatchEntry.toJSON(e):void 0)):n.entries=[],n},fromPartial(e){var n;const r=Object.assign({},y);return r.entries=(null===(n=e.entries)||void 0===n?void 0:n.map((e=>t.BatchEntry.fromPartial(e))))||[],r}};const b={};t.BatchEntry={encode:(e,n=i.default.Writer.create())=>(void 0!==e.exist&&t.ExistenceProof.encode(e.exist,n.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.NonExistenceProof.encode(e.nonexist,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},b);for(;r.pos>>3){case 1:a.exist=t.ExistenceProof.decode(r,r.uint32());break;case 2:a.nonexist=t.NonExistenceProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},b);return n.exist=void 0!==e.exist&&null!==e.exist?t.ExistenceProof.fromJSON(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.NonExistenceProof.fromJSON(e.nonexist):void 0,n},toJSON(e){const n={};return void 0!==e.exist&&(n.exist=e.exist?t.ExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(n.nonexist=e.nonexist?t.NonExistenceProof.toJSON(e.nonexist):void 0),n},fromPartial(e){const n=Object.assign({},b);return n.exist=void 0!==e.exist&&null!==e.exist?t.ExistenceProof.fromPartial(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.NonExistenceProof.fromPartial(e.nonexist):void 0,n}};const I={};t.CompressedBatchProof={encode(e,n=i.default.Writer.create()){for(const r of e.entries)t.CompressedBatchEntry.encode(r,n.uint32(10).fork()).ldelim();for(const r of e.lookupInners)t.InnerOp.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},I);for(a.entries=[],a.lookupInners=[];r.pos>>3){case 1:a.entries.push(t.CompressedBatchEntry.decode(r,r.uint32()));break;case 2:a.lookupInners.push(t.InnerOp.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n,r;const o=Object.assign({},I);return o.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.CompressedBatchEntry.fromJSON(e))),o.lookupInners=(null!==(r=e.lookupInners)&&void 0!==r?r:[]).map((e=>t.InnerOp.fromJSON(e))),o},toJSON(e){const n={};return e.entries?n.entries=e.entries.map((e=>e?t.CompressedBatchEntry.toJSON(e):void 0)):n.entries=[],e.lookupInners?n.lookupInners=e.lookupInners.map((e=>e?t.InnerOp.toJSON(e):void 0)):n.lookupInners=[],n},fromPartial(e){var n,r;const o=Object.assign({},I);return o.entries=(null===(n=e.entries)||void 0===n?void 0:n.map((e=>t.CompressedBatchEntry.fromPartial(e))))||[],o.lookupInners=(null===(r=e.lookupInners)||void 0===r?void 0:r.map((e=>t.InnerOp.fromPartial(e))))||[],o}};const C={};t.CompressedBatchEntry={encode:(e,n=i.default.Writer.create())=>(void 0!==e.exist&&t.CompressedExistenceProof.encode(e.exist,n.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.CompressedNonExistenceProof.encode(e.nonexist,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},C);for(;r.pos>>3){case 1:a.exist=t.CompressedExistenceProof.decode(r,r.uint32());break;case 2:a.nonexist=t.CompressedNonExistenceProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},C);return n.exist=void 0!==e.exist&&null!==e.exist?t.CompressedExistenceProof.fromJSON(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.CompressedNonExistenceProof.fromJSON(e.nonexist):void 0,n},toJSON(e){const n={};return void 0!==e.exist&&(n.exist=e.exist?t.CompressedExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(n.nonexist=e.nonexist?t.CompressedNonExistenceProof.toJSON(e.nonexist):void 0),n},fromPartial(e){const n=Object.assign({},C);return n.exist=void 0!==e.exist&&null!==e.exist?t.CompressedExistenceProof.fromPartial(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.CompressedNonExistenceProof.fromPartial(e.nonexist):void 0,n}};const E={path:0};t.CompressedExistenceProof={encode(e,n=i.default.Writer.create()){0!==e.key.length&&n.uint32(10).bytes(e.key),0!==e.value.length&&n.uint32(18).bytes(e.value),void 0!==e.leaf&&t.LeafOp.encode(e.leaf,n.uint32(26).fork()).ldelim(),n.uint32(34).fork();for(const t of e.path)n.int32(t);return n.ldelim(),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},E);for(a.path=[],a.key=new Uint8Array,a.value=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.value=r.bytes();break;case 3:a.leaf=t.LeafOp.decode(r,r.uint32());break;case 4:if(2==(7&e)){const e=r.uint32()+r.pos;for(;r.posNumber(e))),r},toJSON(e){const n={};return void 0!==e.key&&(n.key=O(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(n.value=O(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.leaf&&(n.leaf=e.leaf?t.LeafOp.toJSON(e.leaf):void 0),e.path?n.path=e.path.map((e=>e)):n.path=[],n},fromPartial(e){var n,r,o;const i=Object.assign({},E);return i.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,i.value=null!==(r=e.value)&&void 0!==r?r:new Uint8Array,i.leaf=void 0!==e.leaf&&null!==e.leaf?t.LeafOp.fromPartial(e.leaf):void 0,i.path=(null===(o=e.path)||void 0===o?void 0:o.map((e=>e)))||[],i}};const w={};t.CompressedNonExistenceProof={encode:(e,n=i.default.Writer.create())=>(0!==e.key.length&&n.uint32(10).bytes(e.key),void 0!==e.left&&t.CompressedExistenceProof.encode(e.left,n.uint32(18).fork()).ldelim(),void 0!==e.right&&t.CompressedExistenceProof.encode(e.right,n.uint32(26).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},w);for(a.key=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.left=t.CompressedExistenceProof.decode(r,r.uint32());break;case 3:a.right=t.CompressedExistenceProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},w);return n.key=void 0!==e.key&&null!==e.key?S(e.key):new Uint8Array,n.left=void 0!==e.left&&null!==e.left?t.CompressedExistenceProof.fromJSON(e.left):void 0,n.right=void 0!==e.right&&null!==e.right?t.CompressedExistenceProof.fromJSON(e.right):void 0,n},toJSON(e){const n={};return void 0!==e.key&&(n.key=O(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.left&&(n.left=e.left?t.CompressedExistenceProof.toJSON(e.left):void 0),void 0!==e.right&&(n.right=e.right?t.CompressedExistenceProof.toJSON(e.right):void 0),n},fromPartial(e){var n;const r=Object.assign({},w);return r.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,r.left=void 0!==e.left&&null!==e.left?t.CompressedExistenceProof.fromPartial(e.left):void 0,r.right=void 0!==e.right&&null!==e.right?t.CompressedExistenceProof.fromPartial(e.right):void 0,r}};var B=(()=>{if(void 0!==B)return B;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const _=B.atob||(e=>B.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),n=new Uint8Array(t.length);for(let e=0;eB.Buffer.from(e,"binary").toString("base64"));function O(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return k(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3487:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.ModuleAccount=t.BaseAccount=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="cosmos.auth.v1beta1";const s={address:"",accountNumber:o.default.UZERO,sequence:o.default.UZERO};t.BaseAccount={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pubKey&&a.Any.encode(e.pubKey,t.uint32(18).fork()).ldelim(),e.accountNumber.isZero()||t.uint32(24).uint64(e.accountNumber),e.sequence.isZero()||t.uint32(32).uint64(e.sequence),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.pubKey=a.Any.decode(n,n.uint32());break;case 3:o.accountNumber=n.uint64();break;case 4:o.sequence=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?a.Any.fromJSON(e.pubKey):void 0,t.accountNumber=void 0!==e.accountNumber&&null!==e.accountNumber?o.default.fromString(e.accountNumber):o.default.UZERO,t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pubKey&&(t.pubKey=e.pubKey?a.Any.toJSON(e.pubKey):void 0),void 0!==e.accountNumber&&(t.accountNumber=(e.accountNumber||o.default.UZERO).toString()),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},s);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.pubKey=void 0!==e.pubKey&&null!==e.pubKey?a.Any.fromPartial(e.pubKey):void 0,n.accountNumber=void 0!==e.accountNumber&&null!==e.accountNumber?o.default.fromValue(e.accountNumber):o.default.UZERO,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,n}};const c={name:"",permissions:""};t.ModuleAccount={encode(e,n=i.default.Writer.create()){void 0!==e.baseAccount&&t.BaseAccount.encode(e.baseAccount,n.uint32(10).fork()).ldelim(),""!==e.name&&n.uint32(18).string(e.name);for(const t of e.permissions)n.uint32(26).string(t);return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},c);for(a.permissions=[];r.pos>>3){case 1:a.baseAccount=t.BaseAccount.decode(r,r.uint32());break;case 2:a.name=r.string();break;case 3:a.permissions.push(r.string());break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},c);return r.baseAccount=void 0!==e.baseAccount&&null!==e.baseAccount?t.BaseAccount.fromJSON(e.baseAccount):void 0,r.name=void 0!==e.name&&null!==e.name?String(e.name):"",r.permissions=(null!==(n=e.permissions)&&void 0!==n?n:[]).map((e=>String(e))),r},toJSON(e){const n={};return void 0!==e.baseAccount&&(n.baseAccount=e.baseAccount?t.BaseAccount.toJSON(e.baseAccount):void 0),void 0!==e.name&&(n.name=e.name),e.permissions?n.permissions=e.permissions.map((e=>e)):n.permissions=[],n},fromPartial(e){var n,r;const o=Object.assign({},c);return o.baseAccount=void 0!==e.baseAccount&&null!==e.baseAccount?t.BaseAccount.fromPartial(e.baseAccount):void 0,o.name=null!==(n=e.name)&&void 0!==n?n:"",o.permissions=(null===(r=e.permissions)||void 0===r?void 0:r.map((e=>e)))||[],o}};const d={maxMemoCharacters:o.default.UZERO,txSigLimit:o.default.UZERO,txSizeCostPerByte:o.default.UZERO,sigVerifyCostEd25519:o.default.UZERO,sigVerifyCostSecp256k1:o.default.UZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(e.maxMemoCharacters.isZero()||t.uint32(8).uint64(e.maxMemoCharacters),e.txSigLimit.isZero()||t.uint32(16).uint64(e.txSigLimit),e.txSizeCostPerByte.isZero()||t.uint32(24).uint64(e.txSizeCostPerByte),e.sigVerifyCostEd25519.isZero()||t.uint32(32).uint64(e.sigVerifyCostEd25519),e.sigVerifyCostSecp256k1.isZero()||t.uint32(40).uint64(e.sigVerifyCostSecp256k1),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.maxMemoCharacters=n.uint64();break;case 2:o.txSigLimit=n.uint64();break;case 3:o.txSizeCostPerByte=n.uint64();break;case 4:o.sigVerifyCostEd25519=n.uint64();break;case 5:o.sigVerifyCostSecp256k1=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.maxMemoCharacters=void 0!==e.maxMemoCharacters&&null!==e.maxMemoCharacters?o.default.fromString(e.maxMemoCharacters):o.default.UZERO,t.txSigLimit=void 0!==e.txSigLimit&&null!==e.txSigLimit?o.default.fromString(e.txSigLimit):o.default.UZERO,t.txSizeCostPerByte=void 0!==e.txSizeCostPerByte&&null!==e.txSizeCostPerByte?o.default.fromString(e.txSizeCostPerByte):o.default.UZERO,t.sigVerifyCostEd25519=void 0!==e.sigVerifyCostEd25519&&null!==e.sigVerifyCostEd25519?o.default.fromString(e.sigVerifyCostEd25519):o.default.UZERO,t.sigVerifyCostSecp256k1=void 0!==e.sigVerifyCostSecp256k1&&null!==e.sigVerifyCostSecp256k1?o.default.fromString(e.sigVerifyCostSecp256k1):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.maxMemoCharacters&&(t.maxMemoCharacters=(e.maxMemoCharacters||o.default.UZERO).toString()),void 0!==e.txSigLimit&&(t.txSigLimit=(e.txSigLimit||o.default.UZERO).toString()),void 0!==e.txSizeCostPerByte&&(t.txSizeCostPerByte=(e.txSizeCostPerByte||o.default.UZERO).toString()),void 0!==e.sigVerifyCostEd25519&&(t.sigVerifyCostEd25519=(e.sigVerifyCostEd25519||o.default.UZERO).toString()),void 0!==e.sigVerifyCostSecp256k1&&(t.sigVerifyCostSecp256k1=(e.sigVerifyCostSecp256k1||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return t.maxMemoCharacters=void 0!==e.maxMemoCharacters&&null!==e.maxMemoCharacters?o.default.fromValue(e.maxMemoCharacters):o.default.UZERO,t.txSigLimit=void 0!==e.txSigLimit&&null!==e.txSigLimit?o.default.fromValue(e.txSigLimit):o.default.UZERO,t.txSizeCostPerByte=void 0!==e.txSizeCostPerByte&&null!==e.txSizeCostPerByte?o.default.fromValue(e.txSizeCostPerByte):o.default.UZERO,t.sigVerifyCostEd25519=void 0!==e.sigVerifyCostEd25519&&null!==e.sigVerifyCostEd25519?o.default.fromValue(e.sigVerifyCostEd25519):o.default.UZERO,t.sigVerifyCostSecp256k1=void 0!==e.sigVerifyCostSecp256k1&&null!==e.sigVerifyCostSecp256k1?o.default.fromValue(e.sigVerifyCostSecp256k1):o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4443:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryParamsResponse=t.QueryParamsRequest=t.QueryAccountResponse=t.QueryAccountRequest=t.QueryAccountsResponse=t.QueryAccountsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9551),s=n(3862),c=n(3487);t.protobufPackage="cosmos.auth.v1beta1";const d={};t.QueryAccountsRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.pagination=a.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},d);return t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,t}};const u={};t.QueryAccountsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.accounts)s.Any.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.accounts=[];n.pos>>3){case 1:o.accounts.push(s.Any.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.accounts=(null!==(t=e.accounts)&&void 0!==t?t:[]).map((e=>s.Any.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.accounts?t.accounts=e.accounts.map((e=>e?s.Any.toJSON(e):void 0)):t.accounts=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},u);return n.accounts=(null===(t=e.accounts)||void 0===t?void 0:t.map((e=>s.Any.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const l={address:""};t.QueryAccountRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.address=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),t},fromPartial(e){var t;const n=Object.assign({},l);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n}};const A={};t.QueryAccountResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.account&&s.Any.encode(e.account,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.account=s.Any.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.account=void 0!==e.account&&null!==e.account?s.Any.fromJSON(e.account):void 0,t},toJSON(e){const t={};return void 0!==e.account&&(t.account=e.account?s.Any.toJSON(e.account):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.account=void 0!==e.account&&null!==e.account?s.Any.fromPartial(e.account):void 0,t}};const f={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&c.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3==1?o.params=c.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);return t.params=void 0!==e.params&&null!==e.params?c.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?c.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},h);return t.params=void 0!==e.params&&null!==e.params?c.Params.fromPartial(e.params):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Accounts=this.Accounts.bind(this),this.Account=this.Account.bind(this),this.Params=this.Params.bind(this)}Accounts(e){const n=t.QueryAccountsRequest.encode(e).finish();return this.rpc.request("cosmos.auth.v1beta1.Query","Accounts",n).then((e=>t.QueryAccountsResponse.decode(new i.default.Reader(e))))}Account(e){const n=t.QueryAccountRequest.encode(e).finish();return this.rpc.request("cosmos.auth.v1beta1.Query","Account",n).then((e=>t.QueryAccountResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.auth.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},8436:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Grant=t.GenericAuthorization=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(5522);t.protobufPackage="cosmos.authz.v1beta1";const c={msg:""};t.GenericAuthorization={encode:(e,t=i.default.Writer.create())=>(""!==e.msg&&t.uint32(10).string(e.msg),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.msg=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.msg=void 0!==e.msg&&null!==e.msg?String(e.msg):"",t},toJSON(e){const t={};return void 0!==e.msg&&(t.msg=e.msg),t},fromPartial(e){var t;const n=Object.assign({},c);return n.msg=null!==(t=e.msg)&&void 0!==t?t:"",n}};const d={};function u(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}t.Grant={encode:(e,t=i.default.Writer.create())=>(void 0!==e.authorization&&a.Any.encode(e.authorization,t.uint32(10).fork()).ldelim(),void 0!==e.expiration&&s.Timestamp.encode(e.expiration,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.authorization=a.Any.decode(n,n.uint32());break;case 2:o.expiration=s.Timestamp.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);var n;return t.authorization=void 0!==e.authorization&&null!==e.authorization?a.Any.fromJSON(e.authorization):void 0,t.expiration=void 0!==e.expiration&&null!==e.expiration?(n=e.expiration)instanceof Date?u(n):"string"==typeof n?u(new Date(n)):s.Timestamp.fromJSON(n):void 0,t},toJSON(e){const t={};return void 0!==e.authorization&&(t.authorization=e.authorization?a.Any.toJSON(e.authorization):void 0),void 0!==e.expiration&&(t.expiration=function(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}(e.expiration).toISOString()),t},fromPartial(e){const t=Object.assign({},d);return t.authorization=void 0!==e.authorization&&null!==e.authorization?a.Any.fromPartial(e.authorization):void 0,t.expiration=void 0!==e.expiration&&null!==e.expiration?s.Timestamp.fromPartial(e.expiration):void 0,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},895:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgRevokeResponse=t.MsgRevoke=t.MsgGrantResponse=t.MsgExec=t.MsgExecResponse=t.MsgGrant=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(8436),s=n(3862);t.protobufPackage="cosmos.authz.v1beta1";const c={granter:"",grantee:""};t.MsgGrant={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),void 0!==e.grant&&a.Grant.encode(e.grant,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.granter=n.string();break;case 2:o.grantee=n.string();break;case 3:o.grant=a.Grant.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",t.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",t.grant=void 0!==e.grant&&null!==e.grant?a.Grant.fromJSON(e.grant):void 0,t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.grant&&(t.grant=e.grant?a.Grant.toJSON(e.grant):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.granter=null!==(t=e.granter)&&void 0!==t?t:"",r.grantee=null!==(n=e.grantee)&&void 0!==n?n:"",r.grant=void 0!==e.grant&&null!==e.grant?a.Grant.fromPartial(e.grant):void 0,r}};const d={};t.MsgExecResponse={encode(e,t=i.default.Writer.create()){for(const n of e.results)t.uint32(10).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.results=[];n.pos>>3==1?o.results.push(n.bytes()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.results=(null!==(t=e.results)&&void 0!==t?t:[]).map((e=>function(e){const t=g(e),n=new Uint8Array(t.length);for(let e=0;efunction(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return p(t.join(""))}(void 0!==e?e:new Uint8Array))):t.results=[],t},fromPartial(e){var t;const n=Object.assign({},d);return n.results=(null===(t=e.results)||void 0===t?void 0:t.map((e=>e)))||[],n}};const u={grantee:""};t.MsgExec={encode(e,t=i.default.Writer.create()){""!==e.grantee&&t.uint32(10).string(e.grantee);for(const n of e.msgs)s.Any.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.msgs=[];n.pos>>3){case 1:o.grantee=n.string();break;case 2:o.msgs.push(s.Any.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",n.msgs=(null!==(t=e.msgs)&&void 0!==t?t:[]).map((e=>s.Any.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.grantee&&(t.grantee=e.grantee),e.msgs?t.msgs=e.msgs.map((e=>e?s.Any.toJSON(e):void 0)):t.msgs=[],t},fromPartial(e){var t,n;const r=Object.assign({},u);return r.grantee=null!==(t=e.grantee)&&void 0!==t?t:"",r.msgs=(null===(n=e.msgs)||void 0===n?void 0:n.map((e=>s.Any.fromPartial(e))))||[],r}};const l={};t.MsgGrantResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const A={granter:"",grantee:"",msgTypeUrl:""};t.MsgRevoke={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),""!==e.msgTypeUrl&&t.uint32(26).string(e.msgTypeUrl),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.granter=n.string();break;case 2:o.grantee=n.string();break;case 3:o.msgTypeUrl=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",t.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",t.msgTypeUrl=void 0!==e.msgTypeUrl&&null!==e.msgTypeUrl?String(e.msgTypeUrl):"",t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.msgTypeUrl&&(t.msgTypeUrl=e.msgTypeUrl),t},fromPartial(e){var t,n,r;const o=Object.assign({},A);return o.granter=null!==(t=e.granter)&&void 0!==t?t:"",o.grantee=null!==(n=e.grantee)&&void 0!==n?n:"",o.msgTypeUrl=null!==(r=e.msgTypeUrl)&&void 0!==r?r:"",o}};const f={};t.MsgRevokeResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Grant=this.Grant.bind(this),this.Exec=this.Exec.bind(this),this.Revoke=this.Revoke.bind(this)}Grant(e){const n=t.MsgGrant.encode(e).finish();return this.rpc.request("cosmos.authz.v1beta1.Msg","Grant",n).then((e=>t.MsgGrantResponse.decode(new i.default.Reader(e))))}Exec(e){const n=t.MsgExec.encode(e).finish();return this.rpc.request("cosmos.authz.v1beta1.Msg","Exec",n).then((e=>t.MsgExecResponse.decode(new i.default.Reader(e))))}Revoke(e){const n=t.MsgRevoke.encode(e).finish();return this.rpc.request("cosmos.authz.v1beta1.Msg","Revoke",n).then((e=>t.MsgRevokeResponse.decode(new i.default.Reader(e))))}};var h=(()=>{if(void 0!==h)return h;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const g=h.atob||(e=>h.Buffer.from(e,"base64").toString("binary")),p=h.btoa||(e=>h.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4343:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=t.DenomUnit=t.Supply=t.Output=t.Input=t.SendEnabled=t.Params=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891);t.protobufPackage="cosmos.bank.v1beta1";const s={defaultSendEnabled:!1};t.Params={encode(e,n=i.default.Writer.create()){for(const r of e.sendEnabled)t.SendEnabled.encode(r,n.uint32(10).fork()).ldelim();return!0===e.defaultSendEnabled&&n.uint32(16).bool(e.defaultSendEnabled),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},s);for(a.sendEnabled=[];r.pos>>3){case 1:a.sendEnabled.push(t.SendEnabled.decode(r,r.uint32()));break;case 2:a.defaultSendEnabled=r.bool();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},s);return r.sendEnabled=(null!==(n=e.sendEnabled)&&void 0!==n?n:[]).map((e=>t.SendEnabled.fromJSON(e))),r.defaultSendEnabled=void 0!==e.defaultSendEnabled&&null!==e.defaultSendEnabled&&Boolean(e.defaultSendEnabled),r},toJSON(e){const n={};return e.sendEnabled?n.sendEnabled=e.sendEnabled.map((e=>e?t.SendEnabled.toJSON(e):void 0)):n.sendEnabled=[],void 0!==e.defaultSendEnabled&&(n.defaultSendEnabled=e.defaultSendEnabled),n},fromPartial(e){var n,r;const o=Object.assign({},s);return o.sendEnabled=(null===(n=e.sendEnabled)||void 0===n?void 0:n.map((e=>t.SendEnabled.fromPartial(e))))||[],o.defaultSendEnabled=null!==(r=e.defaultSendEnabled)&&void 0!==r&&r,o}};const c={denom:"",enabled:!1};t.SendEnabled={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),!0===e.enabled&&t.uint32(16).bool(e.enabled),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.denom=n.string();break;case 2:o.enabled=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t.enabled=void 0!==e.enabled&&null!==e.enabled&&Boolean(e.enabled),t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.enabled&&(t.enabled=e.enabled),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.denom=null!==(t=e.denom)&&void 0!==t?t:"",r.enabled=null!==(n=e.enabled)&&void 0!==n&&n,r}};const d={address:""};t.Input={encode(e,t=i.default.Writer.create()){""!==e.address&&t.uint32(10).string(e.address);for(const n of e.coins)a.Coin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.coins=[];n.pos>>3){case 1:o.address=n.string();break;case 2:o.coins.push(a.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.address=void 0!==e.address&&null!==e.address?String(e.address):"",n.coins=(null!==(t=e.coins)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),e.coins?t.coins=e.coins.map((e=>e?a.Coin.toJSON(e):void 0)):t.coins=[],t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.coins=(null===(n=e.coins)||void 0===n?void 0:n.map((e=>a.Coin.fromPartial(e))))||[],r}};const u={address:""};t.Output={encode(e,t=i.default.Writer.create()){""!==e.address&&t.uint32(10).string(e.address);for(const n of e.coins)a.Coin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.coins=[];n.pos>>3){case 1:o.address=n.string();break;case 2:o.coins.push(a.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.address=void 0!==e.address&&null!==e.address?String(e.address):"",n.coins=(null!==(t=e.coins)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),e.coins?t.coins=e.coins.map((e=>e?a.Coin.toJSON(e):void 0)):t.coins=[],t},fromPartial(e){var t,n;const r=Object.assign({},u);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.coins=(null===(n=e.coins)||void 0===n?void 0:n.map((e=>a.Coin.fromPartial(e))))||[],r}};const l={};t.Supply={encode(e,t=i.default.Writer.create()){for(const n of e.total)a.Coin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.total=[];n.pos>>3==1?o.total.push(a.Coin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.total=(null!==(t=e.total)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return e.total?t.total=e.total.map((e=>e?a.Coin.toJSON(e):void 0)):t.total=[],t},fromPartial(e){var t;const n=Object.assign({},l);return n.total=(null===(t=e.total)||void 0===t?void 0:t.map((e=>a.Coin.fromPartial(e))))||[],n}};const A={denom:"",exponent:0,aliases:""};t.DenomUnit={encode(e,t=i.default.Writer.create()){""!==e.denom&&t.uint32(10).string(e.denom),0!==e.exponent&&t.uint32(16).uint32(e.exponent);for(const n of e.aliases)t.uint32(26).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.aliases=[];n.pos>>3){case 1:o.denom=n.string();break;case 2:o.exponent=n.uint32();break;case 3:o.aliases.push(n.string());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",n.exponent=void 0!==e.exponent&&null!==e.exponent?Number(e.exponent):0,n.aliases=(null!==(t=e.aliases)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.exponent&&(t.exponent=e.exponent),e.aliases?t.aliases=e.aliases.map((e=>e)):t.aliases=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},A);return o.denom=null!==(t=e.denom)&&void 0!==t?t:"",o.exponent=null!==(n=e.exponent)&&void 0!==n?n:0,o.aliases=(null===(r=e.aliases)||void 0===r?void 0:r.map((e=>e)))||[],o}};const f={description:"",base:"",display:"",name:"",symbol:""};t.Metadata={encode(e,n=i.default.Writer.create()){""!==e.description&&n.uint32(10).string(e.description);for(const r of e.denomUnits)t.DenomUnit.encode(r,n.uint32(18).fork()).ldelim();return""!==e.base&&n.uint32(26).string(e.base),""!==e.display&&n.uint32(34).string(e.display),""!==e.name&&n.uint32(42).string(e.name),""!==e.symbol&&n.uint32(50).string(e.symbol),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(a.denomUnits=[];r.pos>>3){case 1:a.description=r.string();break;case 2:a.denomUnits.push(t.DenomUnit.decode(r,r.uint32()));break;case 3:a.base=r.string();break;case 4:a.display=r.string();break;case 5:a.name=r.string();break;case 6:a.symbol=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},f);return r.description=void 0!==e.description&&null!==e.description?String(e.description):"",r.denomUnits=(null!==(n=e.denomUnits)&&void 0!==n?n:[]).map((e=>t.DenomUnit.fromJSON(e))),r.base=void 0!==e.base&&null!==e.base?String(e.base):"",r.display=void 0!==e.display&&null!==e.display?String(e.display):"",r.name=void 0!==e.name&&null!==e.name?String(e.name):"",r.symbol=void 0!==e.symbol&&null!==e.symbol?String(e.symbol):"",r},toJSON(e){const n={};return void 0!==e.description&&(n.description=e.description),e.denomUnits?n.denomUnits=e.denomUnits.map((e=>e?t.DenomUnit.toJSON(e):void 0)):n.denomUnits=[],void 0!==e.base&&(n.base=e.base),void 0!==e.display&&(n.display=e.display),void 0!==e.name&&(n.name=e.name),void 0!==e.symbol&&(n.symbol=e.symbol),n},fromPartial(e){var n,r,o,i,a,s;const c=Object.assign({},f);return c.description=null!==(n=e.description)&&void 0!==n?n:"",c.denomUnits=(null===(r=e.denomUnits)||void 0===r?void 0:r.map((e=>t.DenomUnit.fromPartial(e))))||[],c.base=null!==(o=e.base)&&void 0!==o?o:"",c.display=null!==(i=e.display)&&void 0!==i?i:"",c.name=null!==(a=e.name)&&void 0!==a?a:"",c.symbol=null!==(s=e.symbol)&&void 0!==s?s:"",c}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},2916:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryDenomMetadataResponse=t.QueryDenomMetadataRequest=t.QueryDenomsMetadataResponse=t.QueryDenomsMetadataRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.QuerySupplyOfResponse=t.QuerySupplyOfRequest=t.QueryTotalSupplyResponse=t.QueryTotalSupplyRequest=t.QueryAllBalancesResponse=t.QueryAllBalancesRequest=t.QueryBalanceResponse=t.QueryBalanceRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891),s=n(9551),c=n(4343);t.protobufPackage="cosmos.bank.v1beta1";const d={address:"",denom:""};t.QueryBalanceRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),""!==e.denom&&t.uint32(18).string(e.denom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.denom=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.denom&&(t.denom=e.denom),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.denom=null!==(n=e.denom)&&void 0!==n?n:"",r}};const u={};t.QueryBalanceResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.balance&&a.Coin.encode(e.balance,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.balance=a.Coin.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.balance=void 0!==e.balance&&null!==e.balance?a.Coin.fromJSON(e.balance):void 0,t},toJSON(e){const t={};return void 0!==e.balance&&(t.balance=e.balance?a.Coin.toJSON(e.balance):void 0),t},fromPartial(e){const t=Object.assign({},u);return t.balance=void 0!==e.balance&&null!==e.balance?a.Coin.fromPartial(e.balance):void 0,t}};const l={address:""};t.QueryAllBalancesRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,n}};const A={};t.QueryAllBalancesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.balances)a.Coin.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.balances=[];n.pos>>3){case 1:o.balances.push(a.Coin.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.balances=(null!==(t=e.balances)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.balances?t.balances=e.balances.map((e=>e?a.Coin.toJSON(e):void 0)):t.balances=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},A);return n.balances=(null===(t=e.balances)||void 0===t?void 0:t.map((e=>a.Coin.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const f={};t.QueryTotalSupplyRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},f);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const h={};t.QueryTotalSupplyResponse={encode(e,t=i.default.Writer.create()){for(const n of e.supply)a.Coin.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.supply=[];n.pos>>3){case 1:o.supply.push(a.Coin.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},h);return n.supply=(null!==(t=e.supply)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.supply?t.supply=e.supply.map((e=>e?a.Coin.toJSON(e):void 0)):t.supply=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.supply=(null===(t=e.supply)||void 0===t?void 0:t.map((e=>a.Coin.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const g={denom:""};t.QuerySupplyOfRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3==1?o.denom=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},g);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),t},fromPartial(e){var t;const n=Object.assign({},g);return n.denom=null!==(t=e.denom)&&void 0!==t?t:"",n}};const p={};t.QuerySupplyOfResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.amount&&a.Coin.encode(e.amount,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3==1?o.amount=a.Coin.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);return t.amount=void 0!==e.amount&&null!==e.amount?a.Coin.fromJSON(e.amount):void 0,t},toJSON(e){const t={};return void 0!==e.amount&&(t.amount=e.amount?a.Coin.toJSON(e.amount):void 0),t},fromPartial(e){const t=Object.assign({},p);return t.amount=void 0!==e.amount&&null!==e.amount?a.Coin.fromPartial(e.amount):void 0,t}};const m={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const v={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&c.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3==1?o.params=c.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return t.params=void 0!==e.params&&null!==e.params?c.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?c.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},v);return t.params=void 0!==e.params&&null!==e.params?c.Params.fromPartial(e.params):void 0,t}};const y={};t.QueryDenomsMetadataRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},y);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const b={};t.QueryDenomsMetadataResponse={encode(e,t=i.default.Writer.create()){for(const n of e.metadatas)c.Metadata.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.metadatas=[];n.pos>>3){case 1:o.metadatas.push(c.Metadata.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},b);return n.metadatas=(null!==(t=e.metadatas)&&void 0!==t?t:[]).map((e=>c.Metadata.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.metadatas?t.metadatas=e.metadatas.map((e=>e?c.Metadata.toJSON(e):void 0)):t.metadatas=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},b);return n.metadatas=(null===(t=e.metadatas)||void 0===t?void 0:t.map((e=>c.Metadata.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const I={denom:""};t.QueryDenomMetadataRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(;n.pos>>3==1?o.denom=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},I);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),t},fromPartial(e){var t;const n=Object.assign({},I);return n.denom=null!==(t=e.denom)&&void 0!==t?t:"",n}};const C={};t.QueryDenomMetadataResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.metadata&&c.Metadata.encode(e.metadata,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3==1?o.metadata=c.Metadata.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},C);return t.metadata=void 0!==e.metadata&&null!==e.metadata?c.Metadata.fromJSON(e.metadata):void 0,t},toJSON(e){const t={};return void 0!==e.metadata&&(t.metadata=e.metadata?c.Metadata.toJSON(e.metadata):void 0),t},fromPartial(e){const t=Object.assign({},C);return t.metadata=void 0!==e.metadata&&null!==e.metadata?c.Metadata.fromPartial(e.metadata):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Balance=this.Balance.bind(this),this.AllBalances=this.AllBalances.bind(this),this.TotalSupply=this.TotalSupply.bind(this),this.SupplyOf=this.SupplyOf.bind(this),this.Params=this.Params.bind(this),this.DenomMetadata=this.DenomMetadata.bind(this),this.DenomsMetadata=this.DenomsMetadata.bind(this)}Balance(e){const n=t.QueryBalanceRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","Balance",n).then((e=>t.QueryBalanceResponse.decode(new i.default.Reader(e))))}AllBalances(e){const n=t.QueryAllBalancesRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","AllBalances",n).then((e=>t.QueryAllBalancesResponse.decode(new i.default.Reader(e))))}TotalSupply(e){const n=t.QueryTotalSupplyRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","TotalSupply",n).then((e=>t.QueryTotalSupplyResponse.decode(new i.default.Reader(e))))}SupplyOf(e){const n=t.QuerySupplyOfRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","SupplyOf",n).then((e=>t.QuerySupplyOfResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}DenomMetadata(e){const n=t.QueryDenomMetadataRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","DenomMetadata",n).then((e=>t.QueryDenomMetadataResponse.decode(new i.default.Reader(e))))}DenomsMetadata(e){const n=t.QueryDenomsMetadataRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","DenomsMetadata",n).then((e=>t.QueryDenomsMetadataResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},8994:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgMultiSendResponse=t.MsgMultiSend=t.MsgSendResponse=t.MsgSend=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891),s=n(4343);t.protobufPackage="cosmos.bank.v1beta1";const c={fromAddress:"",toAddress:""};t.MsgSend={encode(e,t=i.default.Writer.create()){""!==e.fromAddress&&t.uint32(10).string(e.fromAddress),""!==e.toAddress&&t.uint32(18).string(e.toAddress);for(const n of e.amount)a.Coin.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.amount=[];n.pos>>3){case 1:o.fromAddress=n.string();break;case 2:o.toAddress=n.string();break;case 3:o.amount.push(a.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},c);return n.fromAddress=void 0!==e.fromAddress&&null!==e.fromAddress?String(e.fromAddress):"",n.toAddress=void 0!==e.toAddress&&null!==e.toAddress?String(e.toAddress):"",n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.fromAddress&&(t.fromAddress=e.fromAddress),void 0!==e.toAddress&&(t.toAddress=e.toAddress),e.amount?t.amount=e.amount.map((e=>e?a.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},c);return o.fromAddress=null!==(t=e.fromAddress)&&void 0!==t?t:"",o.toAddress=null!==(n=e.toAddress)&&void 0!==n?n:"",o.amount=(null===(r=e.amount)||void 0===r?void 0:r.map((e=>a.Coin.fromPartial(e))))||[],o}};const d={};t.MsgSendResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const u={};t.MsgMultiSend={encode(e,t=i.default.Writer.create()){for(const n of e.inputs)s.Input.encode(n,t.uint32(10).fork()).ldelim();for(const n of e.outputs)s.Output.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.inputs=[],o.outputs=[];n.pos>>3){case 1:o.inputs.push(s.Input.decode(n,n.uint32()));break;case 2:o.outputs.push(s.Output.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n;const r=Object.assign({},u);return r.inputs=(null!==(t=e.inputs)&&void 0!==t?t:[]).map((e=>s.Input.fromJSON(e))),r.outputs=(null!==(n=e.outputs)&&void 0!==n?n:[]).map((e=>s.Output.fromJSON(e))),r},toJSON(e){const t={};return e.inputs?t.inputs=e.inputs.map((e=>e?s.Input.toJSON(e):void 0)):t.inputs=[],e.outputs?t.outputs=e.outputs.map((e=>e?s.Output.toJSON(e):void 0)):t.outputs=[],t},fromPartial(e){var t,n;const r=Object.assign({},u);return r.inputs=(null===(t=e.inputs)||void 0===t?void 0:t.map((e=>s.Input.fromPartial(e))))||[],r.outputs=(null===(n=e.outputs)||void 0===n?void 0:n.map((e=>s.Output.fromPartial(e))))||[],r}};const l={};t.MsgMultiSendResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Send=this.Send.bind(this),this.MultiSend=this.MultiSend.bind(this)}Send(e){const n=t.MsgSend.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Msg","Send",n).then((e=>t.MsgSendResponse.decode(new i.default.Reader(e))))}MultiSend(e){const n=t.MsgMultiSend.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Msg","MultiSend",n).then((e=>t.MsgMultiSendResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4194:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SearchTxsResult=t.TxMsgData=t.MsgData=t.SimulationResponse=t.Result=t.GasInfo=t.Attribute=t.StringEvent=t.ABCIMessageLog=t.TxResponse=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(9492);t.protobufPackage="cosmos.base.abci.v1beta1";const c={height:o.default.ZERO,txhash:"",codespace:"",code:0,data:"",rawLog:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,timestamp:""};t.TxResponse={encode(e,n=i.default.Writer.create()){e.height.isZero()||n.uint32(8).int64(e.height),""!==e.txhash&&n.uint32(18).string(e.txhash),""!==e.codespace&&n.uint32(26).string(e.codespace),0!==e.code&&n.uint32(32).uint32(e.code),""!==e.data&&n.uint32(42).string(e.data),""!==e.rawLog&&n.uint32(50).string(e.rawLog);for(const r of e.logs)t.ABCIMessageLog.encode(r,n.uint32(58).fork()).ldelim();""!==e.info&&n.uint32(66).string(e.info),e.gasWanted.isZero()||n.uint32(72).int64(e.gasWanted),e.gasUsed.isZero()||n.uint32(80).int64(e.gasUsed),void 0!==e.tx&&a.Any.encode(e.tx,n.uint32(90).fork()).ldelim(),""!==e.timestamp&&n.uint32(98).string(e.timestamp);for(const t of e.events)s.Event.encode(t,n.uint32(106).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const d=Object.assign({},c);for(d.logs=[],d.events=[];r.pos>>3){case 1:d.height=r.int64();break;case 2:d.txhash=r.string();break;case 3:d.codespace=r.string();break;case 4:d.code=r.uint32();break;case 5:d.data=r.string();break;case 6:d.rawLog=r.string();break;case 7:d.logs.push(t.ABCIMessageLog.decode(r,r.uint32()));break;case 8:d.info=r.string();break;case 9:d.gasWanted=r.int64();break;case 10:d.gasUsed=r.int64();break;case 11:d.tx=a.Any.decode(r,r.uint32());break;case 12:d.timestamp=r.string();break;case 13:d.events.push(s.Event.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return d},fromJSON(e){var n,r;const i=Object.assign({},c);return i.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,i.txhash=void 0!==e.txhash&&null!==e.txhash?String(e.txhash):"",i.codespace=void 0!==e.codespace&&null!==e.codespace?String(e.codespace):"",i.code=void 0!==e.code&&null!==e.code?Number(e.code):0,i.data=void 0!==e.data&&null!==e.data?String(e.data):"",i.rawLog=void 0!==e.rawLog&&null!==e.rawLog?String(e.rawLog):"",i.logs=(null!==(n=e.logs)&&void 0!==n?n:[]).map((e=>t.ABCIMessageLog.fromJSON(e))),i.info=void 0!==e.info&&null!==e.info?String(e.info):"",i.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromString(e.gasWanted):o.default.ZERO,i.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromString(e.gasUsed):o.default.ZERO,i.tx=void 0!==e.tx&&null!==e.tx?a.Any.fromJSON(e.tx):void 0,i.timestamp=void 0!==e.timestamp&&null!==e.timestamp?String(e.timestamp):"",i.events=(null!==(r=e.events)&&void 0!==r?r:[]).map((e=>s.Event.fromJSON(e))),i},toJSON(e){const n={};return void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.txhash&&(n.txhash=e.txhash),void 0!==e.codespace&&(n.codespace=e.codespace),void 0!==e.code&&(n.code=e.code),void 0!==e.data&&(n.data=e.data),void 0!==e.rawLog&&(n.rawLog=e.rawLog),e.logs?n.logs=e.logs.map((e=>e?t.ABCIMessageLog.toJSON(e):void 0)):n.logs=[],void 0!==e.info&&(n.info=e.info),void 0!==e.gasWanted&&(n.gasWanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(n.gasUsed=(e.gasUsed||o.default.ZERO).toString()),void 0!==e.tx&&(n.tx=e.tx?a.Any.toJSON(e.tx):void 0),void 0!==e.timestamp&&(n.timestamp=e.timestamp),e.events?n.events=e.events.map((e=>e?s.Event.toJSON(e):void 0)):n.events=[],n},fromPartial(e){var n,r,i,d,u,l,A,f,h;const g=Object.assign({},c);return g.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,g.txhash=null!==(n=e.txhash)&&void 0!==n?n:"",g.codespace=null!==(r=e.codespace)&&void 0!==r?r:"",g.code=null!==(i=e.code)&&void 0!==i?i:0,g.data=null!==(d=e.data)&&void 0!==d?d:"",g.rawLog=null!==(u=e.rawLog)&&void 0!==u?u:"",g.logs=(null===(l=e.logs)||void 0===l?void 0:l.map((e=>t.ABCIMessageLog.fromPartial(e))))||[],g.info=null!==(A=e.info)&&void 0!==A?A:"",g.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromValue(e.gasWanted):o.default.ZERO,g.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromValue(e.gasUsed):o.default.ZERO,g.tx=void 0!==e.tx&&null!==e.tx?a.Any.fromPartial(e.tx):void 0,g.timestamp=null!==(f=e.timestamp)&&void 0!==f?f:"",g.events=(null===(h=e.events)||void 0===h?void 0:h.map((e=>s.Event.fromPartial(e))))||[],g}};const d={msgIndex:0,log:""};t.ABCIMessageLog={encode(e,n=i.default.Writer.create()){0!==e.msgIndex&&n.uint32(8).uint32(e.msgIndex),""!==e.log&&n.uint32(18).string(e.log);for(const r of e.events)t.StringEvent.encode(r,n.uint32(26).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},d);for(a.events=[];r.pos>>3){case 1:a.msgIndex=r.uint32();break;case 2:a.log=r.string();break;case 3:a.events.push(t.StringEvent.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},d);return r.msgIndex=void 0!==e.msgIndex&&null!==e.msgIndex?Number(e.msgIndex):0,r.log=void 0!==e.log&&null!==e.log?String(e.log):"",r.events=(null!==(n=e.events)&&void 0!==n?n:[]).map((e=>t.StringEvent.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.msgIndex&&(n.msgIndex=e.msgIndex),void 0!==e.log&&(n.log=e.log),e.events?n.events=e.events.map((e=>e?t.StringEvent.toJSON(e):void 0)):n.events=[],n},fromPartial(e){var n,r,o;const i=Object.assign({},d);return i.msgIndex=null!==(n=e.msgIndex)&&void 0!==n?n:0,i.log=null!==(r=e.log)&&void 0!==r?r:"",i.events=(null===(o=e.events)||void 0===o?void 0:o.map((e=>t.StringEvent.fromPartial(e))))||[],i}};const u={type:""};t.StringEvent={encode(e,n=i.default.Writer.create()){""!==e.type&&n.uint32(10).string(e.type);for(const r of e.attributes)t.Attribute.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(a.attributes=[];r.pos>>3){case 1:a.type=r.string();break;case 2:a.attributes.push(t.Attribute.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},u);return r.type=void 0!==e.type&&null!==e.type?String(e.type):"",r.attributes=(null!==(n=e.attributes)&&void 0!==n?n:[]).map((e=>t.Attribute.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.type&&(n.type=e.type),e.attributes?n.attributes=e.attributes.map((e=>e?t.Attribute.toJSON(e):void 0)):n.attributes=[],n},fromPartial(e){var n,r;const o=Object.assign({},u);return o.type=null!==(n=e.type)&&void 0!==n?n:"",o.attributes=(null===(r=e.attributes)||void 0===r?void 0:r.map((e=>t.Attribute.fromPartial(e))))||[],o}};const l={key:"",value:""};t.Attribute={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.value&&t.uint32(18).string(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3){case 1:o.key=n.string();break;case 2:o.value=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.key=void 0!==e.key&&null!==e.key?String(e.key):"",t.value=void 0!==e.value&&null!==e.value?String(e.value):"",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){var t,n;const r=Object.assign({},l);return r.key=null!==(t=e.key)&&void 0!==t?t:"",r.value=null!==(n=e.value)&&void 0!==n?n:"",r}};const A={gasWanted:o.default.UZERO,gasUsed:o.default.UZERO};t.GasInfo={encode:(e,t=i.default.Writer.create())=>(e.gasWanted.isZero()||t.uint32(8).uint64(e.gasWanted),e.gasUsed.isZero()||t.uint32(16).uint64(e.gasUsed),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.gasWanted=n.uint64();break;case 2:o.gasUsed=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromString(e.gasWanted):o.default.UZERO,t.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromString(e.gasUsed):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.gasWanted&&(t.gasWanted=(e.gasWanted||o.default.UZERO).toString()),void 0!==e.gasUsed&&(t.gasUsed=(e.gasUsed||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},A);return t.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromValue(e.gasWanted):o.default.UZERO,t.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromValue(e.gasUsed):o.default.UZERO,t}};const f={log:""};t.Result={encode(e,t=i.default.Writer.create()){0!==e.data.length&&t.uint32(10).bytes(e.data),""!==e.log&&t.uint32(18).string(e.log);for(const n of e.events)s.Event.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.events=[],o.data=new Uint8Array;n.pos>>3){case 1:o.data=n.bytes();break;case 2:o.log=n.string();break;case 3:o.events.push(s.Event.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.data=void 0!==e.data&&null!==e.data?b(e.data):new Uint8Array,n.log=void 0!==e.log&&null!==e.log?String(e.log):"",n.events=(null!==(t=e.events)&&void 0!==t?t:[]).map((e=>s.Event.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.data&&(t.data=C(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(t.log=e.log),e.events?t.events=e.events.map((e=>e?s.Event.toJSON(e):void 0)):t.events=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},f);return o.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,o.log=null!==(n=e.log)&&void 0!==n?n:"",o.events=(null===(r=e.events)||void 0===r?void 0:r.map((e=>s.Event.fromPartial(e))))||[],o}};const h={};t.SimulationResponse={encode:(e,n=i.default.Writer.create())=>(void 0!==e.gasInfo&&t.GasInfo.encode(e.gasInfo,n.uint32(10).fork()).ldelim(),void 0!==e.result&&t.Result.encode(e.result,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},h);for(;r.pos>>3){case 1:a.gasInfo=t.GasInfo.decode(r,r.uint32());break;case 2:a.result=t.Result.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},h);return n.gasInfo=void 0!==e.gasInfo&&null!==e.gasInfo?t.GasInfo.fromJSON(e.gasInfo):void 0,n.result=void 0!==e.result&&null!==e.result?t.Result.fromJSON(e.result):void 0,n},toJSON(e){const n={};return void 0!==e.gasInfo&&(n.gasInfo=e.gasInfo?t.GasInfo.toJSON(e.gasInfo):void 0),void 0!==e.result&&(n.result=e.result?t.Result.toJSON(e.result):void 0),n},fromPartial(e){const n=Object.assign({},h);return n.gasInfo=void 0!==e.gasInfo&&null!==e.gasInfo?t.GasInfo.fromPartial(e.gasInfo):void 0,n.result=void 0!==e.result&&null!==e.result?t.Result.fromPartial(e.result):void 0,n}};const g={msgType:""};t.MsgData={encode:(e,t=i.default.Writer.create())=>(""!==e.msgType&&t.uint32(10).string(e.msgType),0!==e.data.length&&t.uint32(18).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.data=new Uint8Array;n.pos>>3){case 1:o.msgType=n.string();break;case 2:o.data=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.msgType=void 0!==e.msgType&&null!==e.msgType?String(e.msgType):"",t.data=void 0!==e.data&&null!==e.data?b(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.msgType&&(t.msgType=e.msgType),void 0!==e.data&&(t.data=C(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.msgType=null!==(t=e.msgType)&&void 0!==t?t:"",r.data=null!==(n=e.data)&&void 0!==n?n:new Uint8Array,r}};const p={};t.TxMsgData={encode(e,n=i.default.Writer.create()){for(const r of e.data)t.MsgData.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},p);for(a.data=[];r.pos>>3==1?a.data.push(t.MsgData.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},p);return r.data=(null!==(n=e.data)&&void 0!==n?n:[]).map((e=>t.MsgData.fromJSON(e))),r},toJSON(e){const n={};return e.data?n.data=e.data.map((e=>e?t.MsgData.toJSON(e):void 0)):n.data=[],n},fromPartial(e){var n;const r=Object.assign({},p);return r.data=(null===(n=e.data)||void 0===n?void 0:n.map((e=>t.MsgData.fromPartial(e))))||[],r}};const m={totalCount:o.default.UZERO,count:o.default.UZERO,pageNumber:o.default.UZERO,pageTotal:o.default.UZERO,limit:o.default.UZERO};t.SearchTxsResult={encode(e,n=i.default.Writer.create()){e.totalCount.isZero()||n.uint32(8).uint64(e.totalCount),e.count.isZero()||n.uint32(16).uint64(e.count),e.pageNumber.isZero()||n.uint32(24).uint64(e.pageNumber),e.pageTotal.isZero()||n.uint32(32).uint64(e.pageTotal),e.limit.isZero()||n.uint32(40).uint64(e.limit);for(const r of e.txs)t.TxResponse.encode(r,n.uint32(50).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},m);for(a.txs=[];r.pos>>3){case 1:a.totalCount=r.uint64();break;case 2:a.count=r.uint64();break;case 3:a.pageNumber=r.uint64();break;case 4:a.pageTotal=r.uint64();break;case 5:a.limit=r.uint64();break;case 6:a.txs.push(t.TxResponse.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},m);return r.totalCount=void 0!==e.totalCount&&null!==e.totalCount?o.default.fromString(e.totalCount):o.default.UZERO,r.count=void 0!==e.count&&null!==e.count?o.default.fromString(e.count):o.default.UZERO,r.pageNumber=void 0!==e.pageNumber&&null!==e.pageNumber?o.default.fromString(e.pageNumber):o.default.UZERO,r.pageTotal=void 0!==e.pageTotal&&null!==e.pageTotal?o.default.fromString(e.pageTotal):o.default.UZERO,r.limit=void 0!==e.limit&&null!==e.limit?o.default.fromString(e.limit):o.default.UZERO,r.txs=(null!==(n=e.txs)&&void 0!==n?n:[]).map((e=>t.TxResponse.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.totalCount&&(n.totalCount=(e.totalCount||o.default.UZERO).toString()),void 0!==e.count&&(n.count=(e.count||o.default.UZERO).toString()),void 0!==e.pageNumber&&(n.pageNumber=(e.pageNumber||o.default.UZERO).toString()),void 0!==e.pageTotal&&(n.pageTotal=(e.pageTotal||o.default.UZERO).toString()),void 0!==e.limit&&(n.limit=(e.limit||o.default.UZERO).toString()),e.txs?n.txs=e.txs.map((e=>e?t.TxResponse.toJSON(e):void 0)):n.txs=[],n},fromPartial(e){var n;const r=Object.assign({},m);return r.totalCount=void 0!==e.totalCount&&null!==e.totalCount?o.default.fromValue(e.totalCount):o.default.UZERO,r.count=void 0!==e.count&&null!==e.count?o.default.fromValue(e.count):o.default.UZERO,r.pageNumber=void 0!==e.pageNumber&&null!==e.pageNumber?o.default.fromValue(e.pageNumber):o.default.UZERO,r.pageTotal=void 0!==e.pageTotal&&null!==e.pageTotal?o.default.fromValue(e.pageTotal):o.default.UZERO,r.limit=void 0!==e.limit&&null!==e.limit?o.default.fromValue(e.limit):o.default.UZERO,r.txs=(null===(n=e.txs)||void 0===n?void 0:n.map((e=>t.TxResponse.fromPartial(e))))||[],r}};var v=(()=>{if(void 0!==v)return v;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const y=v.atob||(e=>v.Buffer.from(e,"base64").toString("binary"));function b(e){const t=y(e),n=new Uint8Array(t.length);for(let e=0;ev.Buffer.from(e,"binary").toString("base64"));function C(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return I(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9551:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PageResponse=t.PageRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.base.query.v1beta1";const a={offset:o.default.UZERO,limit:o.default.UZERO,countTotal:!1,reverse:!1};t.PageRequest={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),e.offset.isZero()||t.uint32(16).uint64(e.offset),e.limit.isZero()||t.uint32(24).uint64(e.limit),!0===e.countTotal&&t.uint32(32).bool(e.countTotal),!0===e.reverse&&t.uint32(40).bool(e.reverse),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.key=new Uint8Array;n.pos>>3){case 1:o.key=n.bytes();break;case 2:o.offset=n.uint64();break;case 3:o.limit=n.uint64();break;case 4:o.countTotal=n.bool();break;case 5:o.reverse=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.key=void 0!==e.key&&null!==e.key?u(e.key):new Uint8Array,t.offset=void 0!==e.offset&&null!==e.offset?o.default.fromString(e.offset):o.default.UZERO,t.limit=void 0!==e.limit&&null!==e.limit?o.default.fromString(e.limit):o.default.UZERO,t.countTotal=void 0!==e.countTotal&&null!==e.countTotal&&Boolean(e.countTotal),t.reverse=void 0!==e.reverse&&null!==e.reverse&&Boolean(e.reverse),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=A(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.offset&&(t.offset=(e.offset||o.default.UZERO).toString()),void 0!==e.limit&&(t.limit=(e.limit||o.default.UZERO).toString()),void 0!==e.countTotal&&(t.countTotal=e.countTotal),void 0!==e.reverse&&(t.reverse=e.reverse),t},fromPartial(e){var t,n,r;const i=Object.assign({},a);return i.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,i.offset=void 0!==e.offset&&null!==e.offset?o.default.fromValue(e.offset):o.default.UZERO,i.limit=void 0!==e.limit&&null!==e.limit?o.default.fromValue(e.limit):o.default.UZERO,i.countTotal=null!==(n=e.countTotal)&&void 0!==n&&n,i.reverse=null!==(r=e.reverse)&&void 0!==r&&r,i}};const s={total:o.default.UZERO};t.PageResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.nextKey.length&&t.uint32(10).bytes(e.nextKey),e.total.isZero()||t.uint32(16).uint64(e.total),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.nextKey=new Uint8Array;n.pos>>3){case 1:o.nextKey=n.bytes();break;case 2:o.total=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.nextKey=void 0!==e.nextKey&&null!==e.nextKey?u(e.nextKey):new Uint8Array,t.total=void 0!==e.total&&null!==e.total?o.default.fromString(e.total):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.nextKey&&(t.nextKey=A(void 0!==e.nextKey?e.nextKey:new Uint8Array)),void 0!==e.total&&(t.total=(e.total||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},s);return n.nextKey=null!==(t=e.nextKey)&&void 0!==t?t:new Uint8Array,n.total=void 0!==e.total&&null!==e.total?o.default.fromValue(e.total):o.default.UZERO,n}};var c=(()=>{if(void 0!==c)return c;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const d=c.atob||(e=>c.Buffer.from(e,"base64").toString("binary"));function u(e){const t=d(e),n=new Uint8Array(t.length);for(let e=0;ec.Buffer.from(e,"binary").toString("base64"));function A(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},891:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DecProto=t.IntProto=t.DecCoin=t.Coin=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.base.v1beta1";const a={denom:"",amount:""};t.Coin={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.denom=n.string();break;case 2:o.amount=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t.amount=void 0!==e.amount&&null!==e.amount?String(e.amount):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),t},fromPartial(e){var t,n;const r=Object.assign({},a);return r.denom=null!==(t=e.denom)&&void 0!==t?t:"",r.amount=null!==(n=e.amount)&&void 0!==n?n:"",r}};const s={denom:"",amount:""};t.DecCoin={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.denom=n.string();break;case 2:o.amount=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t.amount=void 0!==e.amount&&null!==e.amount?String(e.amount):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.denom=null!==(t=e.denom)&&void 0!==t?t:"",r.amount=null!==(n=e.amount)&&void 0!==n?n:"",r}};const c={int:""};t.IntProto={encode:(e,t=i.default.Writer.create())=>(""!==e.int&&t.uint32(10).string(e.int),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.int=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.int=void 0!==e.int&&null!==e.int?String(e.int):"",t},toJSON(e){const t={};return void 0!==e.int&&(t.int=e.int),t},fromPartial(e){var t;const n=Object.assign({},c);return n.int=null!==(t=e.int)&&void 0!==t?t:"",n}};const d={dec:""};t.DecProto={encode:(e,t=i.default.Writer.create())=>(""!==e.dec&&t.uint32(10).string(e.dec),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.dec=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.dec=void 0!==e.dec&&null!==e.dec?String(e.dec):"",t},toJSON(e){const t={};return void 0!==e.dec&&(t.dec=e.dec),t},fromPartial(e){var t;const n=Object.assign({},d);return n.dec=null!==(t=e.dec)&&void 0!==t?t:"",n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},479:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyAminoPubKey=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="cosmos.crypto.multisig";const s={threshold:0};t.LegacyAminoPubKey={encode(e,t=i.default.Writer.create()){0!==e.threshold&&t.uint32(8).uint32(e.threshold);for(const n of e.publicKeys)a.Any.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.publicKeys=[];n.pos>>3){case 1:o.threshold=n.uint32();break;case 2:o.publicKeys.push(a.Any.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},s);return n.threshold=void 0!==e.threshold&&null!==e.threshold?Number(e.threshold):0,n.publicKeys=(null!==(t=e.publicKeys)&&void 0!==t?t:[]).map((e=>a.Any.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.threshold&&(t.threshold=e.threshold),e.publicKeys?t.publicKeys=e.publicKeys.map((e=>e?a.Any.toJSON(e):void 0)):t.publicKeys=[],t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.threshold=null!==(t=e.threshold)&&void 0!==t?t:0,r.publicKeys=(null===(n=e.publicKeys)||void 0===n?void 0:n.map((e=>a.Any.fromPartial(e))))||[],r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},7381:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompactBitArray=t.MultiSignature=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.crypto.multisig.v1beta1";const a={};t.MultiSignature={encode(e,t=i.default.Writer.create()){for(const n of e.signatures)t.uint32(10).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.signatures=[];n.pos>>3==1?o.signatures.push(n.bytes()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},a);return n.signatures=(null!==(t=e.signatures)&&void 0!==t?t:[]).map((e=>u(e))),n},toJSON(e){const t={};return e.signatures?t.signatures=e.signatures.map((e=>A(void 0!==e?e:new Uint8Array))):t.signatures=[],t},fromPartial(e){var t;const n=Object.assign({},a);return n.signatures=(null===(t=e.signatures)||void 0===t?void 0:t.map((e=>e)))||[],n}};const s={extraBitsStored:0};t.CompactBitArray={encode:(e,t=i.default.Writer.create())=>(0!==e.extraBitsStored&&t.uint32(8).uint32(e.extraBitsStored),0!==e.elems.length&&t.uint32(18).bytes(e.elems),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.elems=new Uint8Array;n.pos>>3){case 1:o.extraBitsStored=n.uint32();break;case 2:o.elems=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.extraBitsStored=void 0!==e.extraBitsStored&&null!==e.extraBitsStored?Number(e.extraBitsStored):0,t.elems=void 0!==e.elems&&null!==e.elems?u(e.elems):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.extraBitsStored&&(t.extraBitsStored=e.extraBitsStored),void 0!==e.elems&&(t.elems=A(void 0!==e.elems?e.elems:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.extraBitsStored=null!==(t=e.extraBitsStored)&&void 0!==t?t:0,r.elems=null!==(n=e.elems)&&void 0!==n?n:new Uint8Array,r}};var c=(()=>{if(void 0!==c)return c;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const d=c.atob||(e=>c.Buffer.from(e,"base64").toString("binary"));function u(e){const t=d(e),n=new Uint8Array(t.length);for(let e=0;ec.Buffer.from(e,"binary").toString("base64"));function A(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},7228:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrivKey=t.PubKey=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.crypto.secp256k1";const a={};t.PubKey={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.key=new Uint8Array;n.pos>>3==1?o.key=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},a);return t.key=void 0!==e.key&&null!==e.key?u(e.key):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=A(void 0!==e.key?e.key:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},a);return n.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,n}};const s={};t.PrivKey={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.key=new Uint8Array;n.pos>>3==1?o.key=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},s);return t.key=void 0!==e.key&&null!==e.key?u(e.key):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=A(void 0!==e.key?e.key:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},s);return n.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,n}};var c=(()=>{if(void 0!==c)return c;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const d=c.atob||(e=>c.Buffer.from(e,"base64").toString("binary"));function u(e){const t=d(e),n=new Uint8Array(t.length);for(let e=0;ec.Buffer.from(e,"binary").toString("base64"));function A(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1790:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CommunityPoolSpendProposalWithDeposit=t.DelegationDelegatorReward=t.DelegatorStartingInfo=t.CommunityPoolSpendProposal=t.FeePool=t.ValidatorSlashEvents=t.ValidatorSlashEvent=t.ValidatorOutstandingRewards=t.ValidatorAccumulatedCommission=t.ValidatorCurrentRewards=t.ValidatorHistoricalRewards=t.Params=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891);t.protobufPackage="cosmos.distribution.v1beta1";const s={communityTax:"",baseProposerReward:"",bonusProposerReward:"",withdrawAddrEnabled:!1};t.Params={encode:(e,t=i.default.Writer.create())=>(""!==e.communityTax&&t.uint32(10).string(e.communityTax),""!==e.baseProposerReward&&t.uint32(18).string(e.baseProposerReward),""!==e.bonusProposerReward&&t.uint32(26).string(e.bonusProposerReward),!0===e.withdrawAddrEnabled&&t.uint32(32).bool(e.withdrawAddrEnabled),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.communityTax=n.string();break;case 2:o.baseProposerReward=n.string();break;case 3:o.bonusProposerReward=n.string();break;case 4:o.withdrawAddrEnabled=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.communityTax=void 0!==e.communityTax&&null!==e.communityTax?String(e.communityTax):"",t.baseProposerReward=void 0!==e.baseProposerReward&&null!==e.baseProposerReward?String(e.baseProposerReward):"",t.bonusProposerReward=void 0!==e.bonusProposerReward&&null!==e.bonusProposerReward?String(e.bonusProposerReward):"",t.withdrawAddrEnabled=void 0!==e.withdrawAddrEnabled&&null!==e.withdrawAddrEnabled&&Boolean(e.withdrawAddrEnabled),t},toJSON(e){const t={};return void 0!==e.communityTax&&(t.communityTax=e.communityTax),void 0!==e.baseProposerReward&&(t.baseProposerReward=e.baseProposerReward),void 0!==e.bonusProposerReward&&(t.bonusProposerReward=e.bonusProposerReward),void 0!==e.withdrawAddrEnabled&&(t.withdrawAddrEnabled=e.withdrawAddrEnabled),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},s);return i.communityTax=null!==(t=e.communityTax)&&void 0!==t?t:"",i.baseProposerReward=null!==(n=e.baseProposerReward)&&void 0!==n?n:"",i.bonusProposerReward=null!==(r=e.bonusProposerReward)&&void 0!==r?r:"",i.withdrawAddrEnabled=null!==(o=e.withdrawAddrEnabled)&&void 0!==o&&o,i}};const c={referenceCount:0};t.ValidatorHistoricalRewards={encode(e,t=i.default.Writer.create()){for(const n of e.cumulativeRewardRatio)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return 0!==e.referenceCount&&t.uint32(16).uint32(e.referenceCount),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.cumulativeRewardRatio=[];n.pos>>3){case 1:o.cumulativeRewardRatio.push(a.DecCoin.decode(n,n.uint32()));break;case 2:o.referenceCount=n.uint32();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},c);return n.cumulativeRewardRatio=(null!==(t=e.cumulativeRewardRatio)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n.referenceCount=void 0!==e.referenceCount&&null!==e.referenceCount?Number(e.referenceCount):0,n},toJSON(e){const t={};return e.cumulativeRewardRatio?t.cumulativeRewardRatio=e.cumulativeRewardRatio.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.cumulativeRewardRatio=[],void 0!==e.referenceCount&&(t.referenceCount=e.referenceCount),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.cumulativeRewardRatio=(null===(t=e.cumulativeRewardRatio)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],r.referenceCount=null!==(n=e.referenceCount)&&void 0!==n?n:0,r}};const d={period:o.default.UZERO};t.ValidatorCurrentRewards={encode(e,t=i.default.Writer.create()){for(const n of e.rewards)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return e.period.isZero()||t.uint32(16).uint64(e.period),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.rewards=[];n.pos>>3){case 1:o.rewards.push(a.DecCoin.decode(n,n.uint32()));break;case 2:o.period=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.rewards=(null!==(t=e.rewards)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n.period=void 0!==e.period&&null!==e.period?o.default.fromString(e.period):o.default.UZERO,n},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.rewards=[],void 0!==e.period&&(t.period=(e.period||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},d);return n.rewards=(null===(t=e.rewards)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],n.period=void 0!==e.period&&null!==e.period?o.default.fromValue(e.period):o.default.UZERO,n}};const u={};t.ValidatorAccumulatedCommission={encode(e,t=i.default.Writer.create()){for(const n of e.commission)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.commission=[];n.pos>>3==1?o.commission.push(a.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.commission=(null!==(t=e.commission)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.commission?t.commission=e.commission.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.commission=[],t},fromPartial(e){var t;const n=Object.assign({},u);return n.commission=(null===(t=e.commission)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],n}};const l={};t.ValidatorOutstandingRewards={encode(e,t=i.default.Writer.create()){for(const n of e.rewards)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.rewards=[];n.pos>>3==1?o.rewards.push(a.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.rewards=(null!==(t=e.rewards)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.rewards=[],t},fromPartial(e){var t;const n=Object.assign({},l);return n.rewards=(null===(t=e.rewards)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],n}};const A={validatorPeriod:o.default.UZERO,fraction:""};t.ValidatorSlashEvent={encode:(e,t=i.default.Writer.create())=>(e.validatorPeriod.isZero()||t.uint32(8).uint64(e.validatorPeriod),""!==e.fraction&&t.uint32(18).string(e.fraction),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.validatorPeriod=n.uint64();break;case 2:o.fraction=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.validatorPeriod=void 0!==e.validatorPeriod&&null!==e.validatorPeriod?o.default.fromString(e.validatorPeriod):o.default.UZERO,t.fraction=void 0!==e.fraction&&null!==e.fraction?String(e.fraction):"",t},toJSON(e){const t={};return void 0!==e.validatorPeriod&&(t.validatorPeriod=(e.validatorPeriod||o.default.UZERO).toString()),void 0!==e.fraction&&(t.fraction=e.fraction),t},fromPartial(e){var t;const n=Object.assign({},A);return n.validatorPeriod=void 0!==e.validatorPeriod&&null!==e.validatorPeriod?o.default.fromValue(e.validatorPeriod):o.default.UZERO,n.fraction=null!==(t=e.fraction)&&void 0!==t?t:"",n}};const f={};t.ValidatorSlashEvents={encode(e,n=i.default.Writer.create()){for(const r of e.validatorSlashEvents)t.ValidatorSlashEvent.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(a.validatorSlashEvents=[];r.pos>>3==1?a.validatorSlashEvents.push(t.ValidatorSlashEvent.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},f);return r.validatorSlashEvents=(null!==(n=e.validatorSlashEvents)&&void 0!==n?n:[]).map((e=>t.ValidatorSlashEvent.fromJSON(e))),r},toJSON(e){const n={};return e.validatorSlashEvents?n.validatorSlashEvents=e.validatorSlashEvents.map((e=>e?t.ValidatorSlashEvent.toJSON(e):void 0)):n.validatorSlashEvents=[],n},fromPartial(e){var n;const r=Object.assign({},f);return r.validatorSlashEvents=(null===(n=e.validatorSlashEvents)||void 0===n?void 0:n.map((e=>t.ValidatorSlashEvent.fromPartial(e))))||[],r}};const h={};t.FeePool={encode(e,t=i.default.Writer.create()){for(const n of e.communityPool)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.communityPool=[];n.pos>>3==1?o.communityPool.push(a.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},h);return n.communityPool=(null!==(t=e.communityPool)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.communityPool?t.communityPool=e.communityPool.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.communityPool=[],t},fromPartial(e){var t;const n=Object.assign({},h);return n.communityPool=(null===(t=e.communityPool)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],n}};const g={title:"",description:"",recipient:""};t.CommunityPoolSpendProposal={encode(e,t=i.default.Writer.create()){""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.recipient&&t.uint32(26).string(e.recipient);for(const n of e.amount)a.Coin.encode(n,t.uint32(34).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.amount=[];n.pos>>3){case 1:o.title=n.string();break;case 2:o.description=n.string();break;case 3:o.recipient=n.string();break;case 4:o.amount.push(a.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.title=void 0!==e.title&&null!==e.title?String(e.title):"",n.description=void 0!==e.description&&null!==e.description?String(e.description):"",n.recipient=void 0!==e.recipient&&null!==e.recipient?String(e.recipient):"",n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.recipient&&(t.recipient=e.recipient),e.amount?t.amount=e.amount.map((e=>e?a.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t,n,r,o;const i=Object.assign({},g);return i.title=null!==(t=e.title)&&void 0!==t?t:"",i.description=null!==(n=e.description)&&void 0!==n?n:"",i.recipient=null!==(r=e.recipient)&&void 0!==r?r:"",i.amount=(null===(o=e.amount)||void 0===o?void 0:o.map((e=>a.Coin.fromPartial(e))))||[],i}};const p={previousPeriod:o.default.UZERO,stake:"",height:o.default.UZERO};t.DelegatorStartingInfo={encode:(e,t=i.default.Writer.create())=>(e.previousPeriod.isZero()||t.uint32(8).uint64(e.previousPeriod),""!==e.stake&&t.uint32(18).string(e.stake),e.height.isZero()||t.uint32(24).uint64(e.height),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.previousPeriod=n.uint64();break;case 2:o.stake=n.string();break;case 3:o.height=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.previousPeriod=void 0!==e.previousPeriod&&null!==e.previousPeriod?o.default.fromString(e.previousPeriod):o.default.UZERO,t.stake=void 0!==e.stake&&null!==e.stake?String(e.stake):"",t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.previousPeriod&&(t.previousPeriod=(e.previousPeriod||o.default.UZERO).toString()),void 0!==e.stake&&(t.stake=e.stake),void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},p);return n.previousPeriod=void 0!==e.previousPeriod&&null!==e.previousPeriod?o.default.fromValue(e.previousPeriod):o.default.UZERO,n.stake=null!==(t=e.stake)&&void 0!==t?t:"",n.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.UZERO,n}};const m={validatorAddress:""};t.DelegationDelegatorReward={encode(e,t=i.default.Writer.create()){""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress);for(const n of e.reward)a.DecCoin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.reward=[];n.pos>>3){case 1:o.validatorAddress=n.string();break;case 2:o.reward.push(a.DecCoin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},m);return n.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",n.reward=(null!==(t=e.reward)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),e.reward?t.reward=e.reward.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.reward=[],t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",r.reward=(null===(n=e.reward)||void 0===n?void 0:n.map((e=>a.DecCoin.fromPartial(e))))||[],r}};const v={title:"",description:"",recipient:"",amount:"",deposit:""};t.CommunityPoolSpendProposalWithDeposit={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.recipient&&t.uint32(26).string(e.recipient),""!==e.amount&&t.uint32(34).string(e.amount),""!==e.deposit&&t.uint32(42).string(e.deposit),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.title=n.string();break;case 2:o.description=n.string();break;case 3:o.recipient=n.string();break;case 4:o.amount=n.string();break;case 5:o.deposit=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.title=void 0!==e.title&&null!==e.title?String(e.title):"",t.description=void 0!==e.description&&null!==e.description?String(e.description):"",t.recipient=void 0!==e.recipient&&null!==e.recipient?String(e.recipient):"",t.amount=void 0!==e.amount&&null!==e.amount?String(e.amount):"",t.deposit=void 0!==e.deposit&&null!==e.deposit?String(e.deposit):"",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.recipient&&(t.recipient=e.recipient),void 0!==e.amount&&(t.amount=e.amount),void 0!==e.deposit&&(t.deposit=e.deposit),t},fromPartial(e){var t,n,r,o,i;const a=Object.assign({},v);return a.title=null!==(t=e.title)&&void 0!==t?t:"",a.description=null!==(n=e.description)&&void 0!==n?n:"",a.recipient=null!==(r=e.recipient)&&void 0!==r?r:"",a.amount=null!==(o=e.amount)&&void 0!==o?o:"",a.deposit=null!==(i=e.deposit)&&void 0!==i?i:"",a}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6208:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryCommunityPoolResponse=t.QueryCommunityPoolRequest=t.QueryDelegatorWithdrawAddressResponse=t.QueryDelegatorWithdrawAddressRequest=t.QueryDelegatorValidatorsResponse=t.QueryDelegatorValidatorsRequest=t.QueryDelegationTotalRewardsResponse=t.QueryDelegationTotalRewardsRequest=t.QueryDelegationRewardsResponse=t.QueryDelegationRewardsRequest=t.QueryValidatorSlashesResponse=t.QueryValidatorSlashesRequest=t.QueryValidatorCommissionResponse=t.QueryValidatorCommissionRequest=t.QueryValidatorOutstandingRewardsResponse=t.QueryValidatorOutstandingRewardsRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1790),s=n(9551),c=n(891);t.protobufPackage="cosmos.distribution.v1beta1";const d={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const u={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&a.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.params=a.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?a.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},u);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromPartial(e.params):void 0,t}};const l={validatorAddress:""};t.QueryValidatorOutstandingRewardsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.validatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t;const n=Object.assign({},l);return n.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",n}};const A={};t.QueryValidatorOutstandingRewardsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.rewards&&a.ValidatorOutstandingRewards.encode(e.rewards,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.rewards=a.ValidatorOutstandingRewards.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.rewards=void 0!==e.rewards&&null!==e.rewards?a.ValidatorOutstandingRewards.fromJSON(e.rewards):void 0,t},toJSON(e){const t={};return void 0!==e.rewards&&(t.rewards=e.rewards?a.ValidatorOutstandingRewards.toJSON(e.rewards):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.rewards=void 0!==e.rewards&&null!==e.rewards?a.ValidatorOutstandingRewards.fromPartial(e.rewards):void 0,t}};const f={validatorAddress:""};t.QueryValidatorCommissionRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.validatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t;const n=Object.assign({},f);return n.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",n}};const h={};t.QueryValidatorCommissionResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.commission&&a.ValidatorAccumulatedCommission.encode(e.commission,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3==1?o.commission=a.ValidatorAccumulatedCommission.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);return t.commission=void 0!==e.commission&&null!==e.commission?a.ValidatorAccumulatedCommission.fromJSON(e.commission):void 0,t},toJSON(e){const t={};return void 0!==e.commission&&(t.commission=e.commission?a.ValidatorAccumulatedCommission.toJSON(e.commission):void 0),t},fromPartial(e){const t=Object.assign({},h);return t.commission=void 0!==e.commission&&null!==e.commission?a.ValidatorAccumulatedCommission.fromPartial(e.commission):void 0,t}};const g={validatorAddress:"",startingHeight:o.default.UZERO,endingHeight:o.default.UZERO};t.QueryValidatorSlashesRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),e.startingHeight.isZero()||t.uint32(16).uint64(e.startingHeight),e.endingHeight.isZero()||t.uint32(24).uint64(e.endingHeight),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.validatorAddress=n.string();break;case 2:o.startingHeight=n.uint64();break;case 3:o.endingHeight=n.uint64();break;case 4:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.startingHeight=void 0!==e.startingHeight&&null!==e.startingHeight?o.default.fromString(e.startingHeight):o.default.UZERO,t.endingHeight=void 0!==e.endingHeight&&null!==e.endingHeight?o.default.fromString(e.endingHeight):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.startingHeight&&(t.startingHeight=(e.startingHeight||o.default.UZERO).toString()),void 0!==e.endingHeight&&(t.endingHeight=(e.endingHeight||o.default.UZERO).toString()),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},g);return n.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",n.startingHeight=void 0!==e.startingHeight&&null!==e.startingHeight?o.default.fromValue(e.startingHeight):o.default.UZERO,n.endingHeight=void 0!==e.endingHeight&&null!==e.endingHeight?o.default.fromValue(e.endingHeight):o.default.UZERO,n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,n}};const p={};t.QueryValidatorSlashesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.slashes)a.ValidatorSlashEvent.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.slashes=[];n.pos>>3){case 1:o.slashes.push(a.ValidatorSlashEvent.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.slashes=(null!==(t=e.slashes)&&void 0!==t?t:[]).map((e=>a.ValidatorSlashEvent.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.slashes?t.slashes=e.slashes.map((e=>e?a.ValidatorSlashEvent.toJSON(e):void 0)):t.slashes=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},p);return n.slashes=(null===(t=e.slashes)||void 0===t?void 0:t.map((e=>a.ValidatorSlashEvent.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const m={delegatorAddress:"",validatorAddress:""};t.QueryDelegationRewardsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r}};const v={};t.QueryDelegationRewardsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.rewards)c.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.rewards=[];n.pos>>3==1?o.rewards.push(c.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},v);return n.rewards=(null!==(t=e.rewards)&&void 0!==t?t:[]).map((e=>c.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?c.DecCoin.toJSON(e):void 0)):t.rewards=[],t},fromPartial(e){var t;const n=Object.assign({},v);return n.rewards=(null===(t=e.rewards)||void 0===t?void 0:t.map((e=>c.DecCoin.fromPartial(e))))||[],n}};const y={delegatorAddress:""};t.QueryDelegationTotalRewardsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.delegatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),t},fromPartial(e){var t;const n=Object.assign({},y);return n.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",n}};const b={};t.QueryDelegationTotalRewardsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.rewards)a.DelegationDelegatorReward.encode(n,t.uint32(10).fork()).ldelim();for(const n of e.total)c.DecCoin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.rewards=[],o.total=[];n.pos>>3){case 1:o.rewards.push(a.DelegationDelegatorReward.decode(n,n.uint32()));break;case 2:o.total.push(c.DecCoin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n;const r=Object.assign({},b);return r.rewards=(null!==(t=e.rewards)&&void 0!==t?t:[]).map((e=>a.DelegationDelegatorReward.fromJSON(e))),r.total=(null!==(n=e.total)&&void 0!==n?n:[]).map((e=>c.DecCoin.fromJSON(e))),r},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?a.DelegationDelegatorReward.toJSON(e):void 0)):t.rewards=[],e.total?t.total=e.total.map((e=>e?c.DecCoin.toJSON(e):void 0)):t.total=[],t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.rewards=(null===(t=e.rewards)||void 0===t?void 0:t.map((e=>a.DelegationDelegatorReward.fromPartial(e))))||[],r.total=(null===(n=e.total)||void 0===n?void 0:n.map((e=>c.DecCoin.fromPartial(e))))||[],r}};const I={delegatorAddress:""};t.QueryDelegatorValidatorsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(;n.pos>>3==1?o.delegatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},I);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),t},fromPartial(e){var t;const n=Object.assign({},I);return n.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",n}};const C={validators:""};t.QueryDelegatorValidatorsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.validators)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(o.validators=[];n.pos>>3==1?o.validators.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},C);return n.validators=(null!==(t=e.validators)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.validators?t.validators=e.validators.map((e=>e)):t.validators=[],t},fromPartial(e){var t;const n=Object.assign({},C);return n.validators=(null===(t=e.validators)||void 0===t?void 0:t.map((e=>e)))||[],n}};const E={delegatorAddress:""};t.QueryDelegatorWithdrawAddressRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.pos>>3==1?o.delegatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),t},fromPartial(e){var t;const n=Object.assign({},E);return n.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",n}};const w={withdrawAddress:""};t.QueryDelegatorWithdrawAddressResponse={encode:(e,t=i.default.Writer.create())=>(""!==e.withdrawAddress&&t.uint32(10).string(e.withdrawAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3==1?o.withdrawAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},w);return t.withdrawAddress=void 0!==e.withdrawAddress&&null!==e.withdrawAddress?String(e.withdrawAddress):"",t},toJSON(e){const t={};return void 0!==e.withdrawAddress&&(t.withdrawAddress=e.withdrawAddress),t},fromPartial(e){var t;const n=Object.assign({},w);return n.withdrawAddress=null!==(t=e.withdrawAddress)&&void 0!==t?t:"",n}};const B={};t.QueryCommunityPoolRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(;n.posObject.assign({},B),toJSON:e=>({}),fromPartial:e=>Object.assign({},B)};const _={};t.QueryCommunityPoolResponse={encode(e,t=i.default.Writer.create()){for(const n of e.pool)c.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(o.pool=[];n.pos>>3==1?o.pool.push(c.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},_);return n.pool=(null!==(t=e.pool)&&void 0!==t?t:[]).map((e=>c.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.pool?t.pool=e.pool.map((e=>e?c.DecCoin.toJSON(e):void 0)):t.pool=[],t},fromPartial(e){var t;const n=Object.assign({},_);return n.pool=(null===(t=e.pool)||void 0===t?void 0:t.map((e=>c.DecCoin.fromPartial(e))))||[],n}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Params=this.Params.bind(this),this.ValidatorOutstandingRewards=this.ValidatorOutstandingRewards.bind(this),this.ValidatorCommission=this.ValidatorCommission.bind(this),this.ValidatorSlashes=this.ValidatorSlashes.bind(this),this.DelegationRewards=this.DelegationRewards.bind(this),this.DelegationTotalRewards=this.DelegationTotalRewards.bind(this),this.DelegatorValidators=this.DelegatorValidators.bind(this),this.DelegatorWithdrawAddress=this.DelegatorWithdrawAddress.bind(this),this.CommunityPool=this.CommunityPool.bind(this)}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}ValidatorOutstandingRewards(e){const n=t.QueryValidatorOutstandingRewardsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","ValidatorOutstandingRewards",n).then((e=>t.QueryValidatorOutstandingRewardsResponse.decode(new i.default.Reader(e))))}ValidatorCommission(e){const n=t.QueryValidatorCommissionRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","ValidatorCommission",n).then((e=>t.QueryValidatorCommissionResponse.decode(new i.default.Reader(e))))}ValidatorSlashes(e){const n=t.QueryValidatorSlashesRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","ValidatorSlashes",n).then((e=>t.QueryValidatorSlashesResponse.decode(new i.default.Reader(e))))}DelegationRewards(e){const n=t.QueryDelegationRewardsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","DelegationRewards",n).then((e=>t.QueryDelegationRewardsResponse.decode(new i.default.Reader(e))))}DelegationTotalRewards(e){const n=t.QueryDelegationTotalRewardsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","DelegationTotalRewards",n).then((e=>t.QueryDelegationTotalRewardsResponse.decode(new i.default.Reader(e))))}DelegatorValidators(e){const n=t.QueryDelegatorValidatorsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","DelegatorValidators",n).then((e=>t.QueryDelegatorValidatorsResponse.decode(new i.default.Reader(e))))}DelegatorWithdrawAddress(e){const n=t.QueryDelegatorWithdrawAddressRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","DelegatorWithdrawAddress",n).then((e=>t.QueryDelegatorWithdrawAddressResponse.decode(new i.default.Reader(e))))}CommunityPool(e){const n=t.QueryCommunityPoolRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","CommunityPool",n).then((e=>t.QueryCommunityPoolResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3773:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgFundCommunityPoolResponse=t.MsgFundCommunityPool=t.MsgWithdrawValidatorCommissionResponse=t.MsgWithdrawValidatorCommission=t.MsgWithdrawDelegatorRewardResponse=t.MsgWithdrawDelegatorReward=t.MsgSetWithdrawAddressResponse=t.MsgSetWithdrawAddress=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891);t.protobufPackage="cosmos.distribution.v1beta1";const s={delegatorAddress:"",withdrawAddress:""};t.MsgSetWithdrawAddress={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.withdrawAddress&&t.uint32(18).string(e.withdrawAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.withdrawAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.withdrawAddress=void 0!==e.withdrawAddress&&null!==e.withdrawAddress?String(e.withdrawAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.withdrawAddress&&(t.withdrawAddress=e.withdrawAddress),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.withdrawAddress=null!==(n=e.withdrawAddress)&&void 0!==n?n:"",r}};const c={};t.MsgSetWithdrawAddressResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={delegatorAddress:"",validatorAddress:""};t.MsgWithdrawDelegatorReward={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r}};const u={};t.MsgWithdrawDelegatorRewardResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)};const l={validatorAddress:""};t.MsgWithdrawValidatorCommission={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.validatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t;const n=Object.assign({},l);return n.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",n}};const A={};t.MsgWithdrawValidatorCommissionResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={depositor:""};t.MsgFundCommunityPool={encode(e,t=i.default.Writer.create()){for(const n of e.amount)a.Coin.encode(n,t.uint32(10).fork()).ldelim();return""!==e.depositor&&t.uint32(18).string(e.depositor),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.amount=[];n.pos>>3){case 1:o.amount.push(a.Coin.decode(n,n.uint32()));break;case 2:o.depositor=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",n},toJSON(e){const t={};return e.amount?t.amount=e.amount.map((e=>e?a.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.depositor&&(t.depositor=e.depositor),t},fromPartial(e){var t,n;const r=Object.assign({},f);return r.amount=(null===(t=e.amount)||void 0===t?void 0:t.map((e=>a.Coin.fromPartial(e))))||[],r.depositor=null!==(n=e.depositor)&&void 0!==n?n:"",r}};const h={};t.MsgFundCommunityPoolResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.SetWithdrawAddress=this.SetWithdrawAddress.bind(this),this.WithdrawDelegatorReward=this.WithdrawDelegatorReward.bind(this),this.WithdrawValidatorCommission=this.WithdrawValidatorCommission.bind(this),this.FundCommunityPool=this.FundCommunityPool.bind(this)}SetWithdrawAddress(e){const n=t.MsgSetWithdrawAddress.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","SetWithdrawAddress",n).then((e=>t.MsgSetWithdrawAddressResponse.decode(new i.default.Reader(e))))}WithdrawDelegatorReward(e){const n=t.MsgWithdrawDelegatorReward.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","WithdrawDelegatorReward",n).then((e=>t.MsgWithdrawDelegatorRewardResponse.decode(new i.default.Reader(e))))}WithdrawValidatorCommission(e){const n=t.MsgWithdrawValidatorCommission.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","WithdrawValidatorCommission",n).then((e=>t.MsgWithdrawValidatorCommissionResponse.decode(new i.default.Reader(e))))}FundCommunityPool(e){const n=t.MsgFundCommunityPool.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","FundCommunityPool",n).then((e=>t.MsgFundCommunityPoolResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5192:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgRevokeAllowanceResponse=t.MsgRevokeAllowance=t.MsgGrantAllowanceResponse=t.MsgGrantAllowance=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="cosmos.feegrant.v1beta1";const s={granter:"",grantee:""};t.MsgGrantAllowance={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),void 0!==e.allowance&&a.Any.encode(e.allowance,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.granter=n.string();break;case 2:o.grantee=n.string();break;case 3:o.allowance=a.Any.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",t.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",t.allowance=void 0!==e.allowance&&null!==e.allowance?a.Any.fromJSON(e.allowance):void 0,t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.allowance&&(t.allowance=e.allowance?a.Any.toJSON(e.allowance):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.granter=null!==(t=e.granter)&&void 0!==t?t:"",r.grantee=null!==(n=e.grantee)&&void 0!==n?n:"",r.allowance=void 0!==e.allowance&&null!==e.allowance?a.Any.fromPartial(e.allowance):void 0,r}};const c={};t.MsgGrantAllowanceResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={granter:"",grantee:""};t.MsgRevokeAllowance={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.granter=n.string();break;case 2:o.grantee=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",t.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.granter=null!==(t=e.granter)&&void 0!==t?t:"",r.grantee=null!==(n=e.grantee)&&void 0!==n?n:"",r}};const u={};t.MsgRevokeAllowanceResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.GrantAllowance=this.GrantAllowance.bind(this),this.RevokeAllowance=this.RevokeAllowance.bind(this)}GrantAllowance(e){const n=t.MsgGrantAllowance.encode(e).finish();return this.rpc.request("cosmos.feegrant.v1beta1.Msg","GrantAllowance",n).then((e=>t.MsgGrantAllowanceResponse.decode(new i.default.Reader(e))))}RevokeAllowance(e){const n=t.MsgRevokeAllowance.encode(e).finish();return this.rpc.request("cosmos.feegrant.v1beta1.Msg","RevokeAllowance",n).then((e=>t.MsgRevokeAllowanceResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9876:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TallyParams=t.VotingParams=t.DepositParams=t.Vote=t.TallyResult=t.Proposal=t.Deposit=t.TextProposal=t.WeightedVoteOption=t.proposalStatusToJSON=t.proposalStatusFromJSON=t.ProposalStatus=t.voteOptionToJSON=t.voteOptionFromJSON=t.VoteOption=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(5522),c=n(281),d=n(891);var u,l;function A(e){switch(e){case 0:case"VOTE_OPTION_UNSPECIFIED":return u.VOTE_OPTION_UNSPECIFIED;case 1:case"VOTE_OPTION_YES":return u.VOTE_OPTION_YES;case 2:case"VOTE_OPTION_ABSTAIN":return u.VOTE_OPTION_ABSTAIN;case 3:case"VOTE_OPTION_NO":return u.VOTE_OPTION_NO;case 4:case"VOTE_OPTION_NO_WITH_VETO":return u.VOTE_OPTION_NO_WITH_VETO;default:return u.UNRECOGNIZED}}function f(e){switch(e){case u.VOTE_OPTION_UNSPECIFIED:return"VOTE_OPTION_UNSPECIFIED";case u.VOTE_OPTION_YES:return"VOTE_OPTION_YES";case u.VOTE_OPTION_ABSTAIN:return"VOTE_OPTION_ABSTAIN";case u.VOTE_OPTION_NO:return"VOTE_OPTION_NO";case u.VOTE_OPTION_NO_WITH_VETO:return"VOTE_OPTION_NO_WITH_VETO";default:return"UNKNOWN"}}function h(e){switch(e){case 0:case"PROPOSAL_STATUS_UNSPECIFIED":return l.PROPOSAL_STATUS_UNSPECIFIED;case 1:case"PROPOSAL_STATUS_DEPOSIT_PERIOD":return l.PROPOSAL_STATUS_DEPOSIT_PERIOD;case 2:case"PROPOSAL_STATUS_VOTING_PERIOD":return l.PROPOSAL_STATUS_VOTING_PERIOD;case 3:case"PROPOSAL_STATUS_PASSED":return l.PROPOSAL_STATUS_PASSED;case 4:case"PROPOSAL_STATUS_REJECTED":return l.PROPOSAL_STATUS_REJECTED;case 5:case"PROPOSAL_STATUS_FAILED":return l.PROPOSAL_STATUS_FAILED;default:return l.UNRECOGNIZED}}function g(e){switch(e){case l.PROPOSAL_STATUS_UNSPECIFIED:return"PROPOSAL_STATUS_UNSPECIFIED";case l.PROPOSAL_STATUS_DEPOSIT_PERIOD:return"PROPOSAL_STATUS_DEPOSIT_PERIOD";case l.PROPOSAL_STATUS_VOTING_PERIOD:return"PROPOSAL_STATUS_VOTING_PERIOD";case l.PROPOSAL_STATUS_PASSED:return"PROPOSAL_STATUS_PASSED";case l.PROPOSAL_STATUS_REJECTED:return"PROPOSAL_STATUS_REJECTED";case l.PROPOSAL_STATUS_FAILED:return"PROPOSAL_STATUS_FAILED";default:return"UNKNOWN"}}t.protobufPackage="cosmos.gov.v1beta1",function(e){e[e.VOTE_OPTION_UNSPECIFIED=0]="VOTE_OPTION_UNSPECIFIED",e[e.VOTE_OPTION_YES=1]="VOTE_OPTION_YES",e[e.VOTE_OPTION_ABSTAIN=2]="VOTE_OPTION_ABSTAIN",e[e.VOTE_OPTION_NO=3]="VOTE_OPTION_NO",e[e.VOTE_OPTION_NO_WITH_VETO=4]="VOTE_OPTION_NO_WITH_VETO",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.VoteOption||(t.VoteOption={})),t.voteOptionFromJSON=A,t.voteOptionToJSON=f,function(e){e[e.PROPOSAL_STATUS_UNSPECIFIED=0]="PROPOSAL_STATUS_UNSPECIFIED",e[e.PROPOSAL_STATUS_DEPOSIT_PERIOD=1]="PROPOSAL_STATUS_DEPOSIT_PERIOD",e[e.PROPOSAL_STATUS_VOTING_PERIOD=2]="PROPOSAL_STATUS_VOTING_PERIOD",e[e.PROPOSAL_STATUS_PASSED=3]="PROPOSAL_STATUS_PASSED",e[e.PROPOSAL_STATUS_REJECTED=4]="PROPOSAL_STATUS_REJECTED",e[e.PROPOSAL_STATUS_FAILED=5]="PROPOSAL_STATUS_FAILED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.ProposalStatus||(t.ProposalStatus={})),t.proposalStatusFromJSON=h,t.proposalStatusToJSON=g;const p={option:0,weight:""};t.WeightedVoteOption={encode:(e,t=i.default.Writer.create())=>(0!==e.option&&t.uint32(8).int32(e.option),""!==e.weight&&t.uint32(18).string(e.weight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.option=n.int32();break;case 2:o.weight=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.option=void 0!==e.option&&null!==e.option?A(e.option):0,t.weight=void 0!==e.weight&&null!==e.weight?String(e.weight):"",t},toJSON(e){const t={};return void 0!==e.option&&(t.option=f(e.option)),void 0!==e.weight&&(t.weight=e.weight),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.option=null!==(t=e.option)&&void 0!==t?t:0,r.weight=null!==(n=e.weight)&&void 0!==n?n:"",r}};const m={title:"",description:""};t.TextProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.title=n.string();break;case 2:o.description=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.title=void 0!==e.title&&null!==e.title?String(e.title):"",t.description=void 0!==e.description&&null!==e.description?String(e.description):"",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.title=null!==(t=e.title)&&void 0!==t?t:"",r.description=null!==(n=e.description)&&void 0!==n?n:"",r}};const v={proposalId:o.default.UZERO,depositor:""};t.Deposit={encode(e,t=i.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor);for(const n of e.amount)d.Coin.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.amount=[];n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.depositor=n.string();break;case 3:o.amount.push(d.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},v);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,n.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>d.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),e.amount?t.amount=e.amount.map((e=>e?d.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,r.depositor=null!==(t=e.depositor)&&void 0!==t?t:"",r.amount=(null===(n=e.amount)||void 0===n?void 0:n.map((e=>d.Coin.fromPartial(e))))||[],r}};const y={proposalId:o.default.UZERO,status:0};t.Proposal={encode(e,n=i.default.Writer.create()){e.proposalId.isZero()||n.uint32(8).uint64(e.proposalId),void 0!==e.content&&a.Any.encode(e.content,n.uint32(18).fork()).ldelim(),0!==e.status&&n.uint32(24).int32(e.status),void 0!==e.finalTallyResult&&t.TallyResult.encode(e.finalTallyResult,n.uint32(34).fork()).ldelim(),void 0!==e.submitTime&&s.Timestamp.encode(e.submitTime,n.uint32(42).fork()).ldelim(),void 0!==e.depositEndTime&&s.Timestamp.encode(e.depositEndTime,n.uint32(50).fork()).ldelim();for(const t of e.totalDeposit)d.Coin.encode(t,n.uint32(58).fork()).ldelim();return void 0!==e.votingStartTime&&s.Timestamp.encode(e.votingStartTime,n.uint32(66).fork()).ldelim(),void 0!==e.votingEndTime&&s.Timestamp.encode(e.votingEndTime,n.uint32(74).fork()).ldelim(),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const c=Object.assign({},y);for(c.totalDeposit=[];r.pos>>3){case 1:c.proposalId=r.uint64();break;case 2:c.content=a.Any.decode(r,r.uint32());break;case 3:c.status=r.int32();break;case 4:c.finalTallyResult=t.TallyResult.decode(r,r.uint32());break;case 5:c.submitTime=s.Timestamp.decode(r,r.uint32());break;case 6:c.depositEndTime=s.Timestamp.decode(r,r.uint32());break;case 7:c.totalDeposit.push(d.Coin.decode(r,r.uint32()));break;case 8:c.votingStartTime=s.Timestamp.decode(r,r.uint32());break;case 9:c.votingEndTime=s.Timestamp.decode(r,r.uint32());break;default:r.skipType(7&e)}}return c},fromJSON(e){var n;const r=Object.assign({},y);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,r.content=void 0!==e.content&&null!==e.content?a.Any.fromJSON(e.content):void 0,r.status=void 0!==e.status&&null!==e.status?h(e.status):0,r.finalTallyResult=void 0!==e.finalTallyResult&&null!==e.finalTallyResult?t.TallyResult.fromJSON(e.finalTallyResult):void 0,r.submitTime=void 0!==e.submitTime&&null!==e.submitTime?P(e.submitTime):void 0,r.depositEndTime=void 0!==e.depositEndTime&&null!==e.depositEndTime?P(e.depositEndTime):void 0,r.totalDeposit=(null!==(n=e.totalDeposit)&&void 0!==n?n:[]).map((e=>d.Coin.fromJSON(e))),r.votingStartTime=void 0!==e.votingStartTime&&null!==e.votingStartTime?P(e.votingStartTime):void 0,r.votingEndTime=void 0!==e.votingEndTime&&null!==e.votingEndTime?P(e.votingEndTime):void 0,r},toJSON(e){const n={};return void 0!==e.proposalId&&(n.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.content&&(n.content=e.content?a.Any.toJSON(e.content):void 0),void 0!==e.status&&(n.status=g(e.status)),void 0!==e.finalTallyResult&&(n.finalTallyResult=e.finalTallyResult?t.TallyResult.toJSON(e.finalTallyResult):void 0),void 0!==e.submitTime&&(n.submitTime=R(e.submitTime).toISOString()),void 0!==e.depositEndTime&&(n.depositEndTime=R(e.depositEndTime).toISOString()),e.totalDeposit?n.totalDeposit=e.totalDeposit.map((e=>e?d.Coin.toJSON(e):void 0)):n.totalDeposit=[],void 0!==e.votingStartTime&&(n.votingStartTime=R(e.votingStartTime).toISOString()),void 0!==e.votingEndTime&&(n.votingEndTime=R(e.votingEndTime).toISOString()),n},fromPartial(e){var n,r;const i=Object.assign({},y);return i.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,i.content=void 0!==e.content&&null!==e.content?a.Any.fromPartial(e.content):void 0,i.status=null!==(n=e.status)&&void 0!==n?n:0,i.finalTallyResult=void 0!==e.finalTallyResult&&null!==e.finalTallyResult?t.TallyResult.fromPartial(e.finalTallyResult):void 0,i.submitTime=void 0!==e.submitTime&&null!==e.submitTime?s.Timestamp.fromPartial(e.submitTime):void 0,i.depositEndTime=void 0!==e.depositEndTime&&null!==e.depositEndTime?s.Timestamp.fromPartial(e.depositEndTime):void 0,i.totalDeposit=(null===(r=e.totalDeposit)||void 0===r?void 0:r.map((e=>d.Coin.fromPartial(e))))||[],i.votingStartTime=void 0!==e.votingStartTime&&null!==e.votingStartTime?s.Timestamp.fromPartial(e.votingStartTime):void 0,i.votingEndTime=void 0!==e.votingEndTime&&null!==e.votingEndTime?s.Timestamp.fromPartial(e.votingEndTime):void 0,i}};const b={yes:"",abstain:"",no:"",noWithVeto:""};t.TallyResult={encode:(e,t=i.default.Writer.create())=>(""!==e.yes&&t.uint32(10).string(e.yes),""!==e.abstain&&t.uint32(18).string(e.abstain),""!==e.no&&t.uint32(26).string(e.no),""!==e.noWithVeto&&t.uint32(34).string(e.noWithVeto),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.yes=n.string();break;case 2:o.abstain=n.string();break;case 3:o.no=n.string();break;case 4:o.noWithVeto=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.yes=void 0!==e.yes&&null!==e.yes?String(e.yes):"",t.abstain=void 0!==e.abstain&&null!==e.abstain?String(e.abstain):"",t.no=void 0!==e.no&&null!==e.no?String(e.no):"",t.noWithVeto=void 0!==e.noWithVeto&&null!==e.noWithVeto?String(e.noWithVeto):"",t},toJSON(e){const t={};return void 0!==e.yes&&(t.yes=e.yes),void 0!==e.abstain&&(t.abstain=e.abstain),void 0!==e.no&&(t.no=e.no),void 0!==e.noWithVeto&&(t.noWithVeto=e.noWithVeto),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},b);return i.yes=null!==(t=e.yes)&&void 0!==t?t:"",i.abstain=null!==(n=e.abstain)&&void 0!==n?n:"",i.no=null!==(r=e.no)&&void 0!==r?r:"",i.noWithVeto=null!==(o=e.noWithVeto)&&void 0!==o?o:"",i}};const I={proposalId:o.default.UZERO,voter:"",option:0};t.Vote={encode(e,n=i.default.Writer.create()){e.proposalId.isZero()||n.uint32(8).uint64(e.proposalId),""!==e.voter&&n.uint32(18).string(e.voter),0!==e.option&&n.uint32(24).int32(e.option);for(const r of e.options)t.WeightedVoteOption.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},I);for(a.options=[];r.pos>>3){case 1:a.proposalId=r.uint64();break;case 2:a.voter=r.string();break;case 3:a.option=r.int32();break;case 4:a.options.push(t.WeightedVoteOption.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},I);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,r.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",r.option=void 0!==e.option&&null!==e.option?A(e.option):0,r.options=(null!==(n=e.options)&&void 0!==n?n:[]).map((e=>t.WeightedVoteOption.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.proposalId&&(n.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(n.voter=e.voter),void 0!==e.option&&(n.option=f(e.option)),e.options?n.options=e.options.map((e=>e?t.WeightedVoteOption.toJSON(e):void 0)):n.options=[],n},fromPartial(e){var n,r,i;const a=Object.assign({},I);return a.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,a.voter=null!==(n=e.voter)&&void 0!==n?n:"",a.option=null!==(r=e.option)&&void 0!==r?r:0,a.options=(null===(i=e.options)||void 0===i?void 0:i.map((e=>t.WeightedVoteOption.fromPartial(e))))||[],a}};const C={};t.DepositParams={encode(e,t=i.default.Writer.create()){for(const n of e.minDeposit)d.Coin.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.maxDepositPeriod&&c.Duration.encode(e.maxDepositPeriod,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(o.minDeposit=[];n.pos>>3){case 1:o.minDeposit.push(d.Coin.decode(n,n.uint32()));break;case 2:o.maxDepositPeriod=c.Duration.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},C);return n.minDeposit=(null!==(t=e.minDeposit)&&void 0!==t?t:[]).map((e=>d.Coin.fromJSON(e))),n.maxDepositPeriod=void 0!==e.maxDepositPeriod&&null!==e.maxDepositPeriod?c.Duration.fromJSON(e.maxDepositPeriod):void 0,n},toJSON(e){const t={};return e.minDeposit?t.minDeposit=e.minDeposit.map((e=>e?d.Coin.toJSON(e):void 0)):t.minDeposit=[],void 0!==e.maxDepositPeriod&&(t.maxDepositPeriod=e.maxDepositPeriod?c.Duration.toJSON(e.maxDepositPeriod):void 0),t},fromPartial(e){var t;const n=Object.assign({},C);return n.minDeposit=(null===(t=e.minDeposit)||void 0===t?void 0:t.map((e=>d.Coin.fromPartial(e))))||[],n.maxDepositPeriod=void 0!==e.maxDepositPeriod&&null!==e.maxDepositPeriod?c.Duration.fromPartial(e.maxDepositPeriod):void 0,n}};const E={};t.VotingParams={encode:(e,t=i.default.Writer.create())=>(void 0!==e.votingPeriod&&c.Duration.encode(e.votingPeriod,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.pos>>3==1?o.votingPeriod=c.Duration.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return t.votingPeriod=void 0!==e.votingPeriod&&null!==e.votingPeriod?c.Duration.fromJSON(e.votingPeriod):void 0,t},toJSON(e){const t={};return void 0!==e.votingPeriod&&(t.votingPeriod=e.votingPeriod?c.Duration.toJSON(e.votingPeriod):void 0),t},fromPartial(e){const t=Object.assign({},E);return t.votingPeriod=void 0!==e.votingPeriod&&null!==e.votingPeriod?c.Duration.fromPartial(e.votingPeriod):void 0,t}};const w={};t.TallyParams={encode:(e,t=i.default.Writer.create())=>(0!==e.quorum.length&&t.uint32(10).bytes(e.quorum),0!==e.threshold.length&&t.uint32(18).bytes(e.threshold),0!==e.vetoThreshold.length&&t.uint32(26).bytes(e.vetoThreshold),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(o.quorum=new Uint8Array,o.threshold=new Uint8Array,o.vetoThreshold=new Uint8Array;n.pos>>3){case 1:o.quorum=n.bytes();break;case 2:o.threshold=n.bytes();break;case 3:o.vetoThreshold=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.quorum=void 0!==e.quorum&&null!==e.quorum?S(e.quorum):new Uint8Array,t.threshold=void 0!==e.threshold&&null!==e.threshold?S(e.threshold):new Uint8Array,t.vetoThreshold=void 0!==e.vetoThreshold&&null!==e.vetoThreshold?S(e.vetoThreshold):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.quorum&&(t.quorum=O(void 0!==e.quorum?e.quorum:new Uint8Array)),void 0!==e.threshold&&(t.threshold=O(void 0!==e.threshold?e.threshold:new Uint8Array)),void 0!==e.vetoThreshold&&(t.vetoThreshold=O(void 0!==e.vetoThreshold?e.vetoThreshold:new Uint8Array)),t},fromPartial(e){var t,n,r;const o=Object.assign({},w);return o.quorum=null!==(t=e.quorum)&&void 0!==t?t:new Uint8Array,o.threshold=null!==(n=e.threshold)&&void 0!==n?n:new Uint8Array,o.vetoThreshold=null!==(r=e.vetoThreshold)&&void 0!==r?r:new Uint8Array,o}};var B=(()=>{if(void 0!==B)return B;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const _=B.atob||(e=>B.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),n=new Uint8Array(t.length);for(let e=0;eB.Buffer.from(e,"binary").toString("base64"));function O(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return k(t.join(""))}function Q(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function R(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function P(e){return e instanceof Date?Q(e):"string"==typeof e?Q(new Date(e)):s.Timestamp.fromJSON(e)}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9207:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryTallyResultResponse=t.QueryTallyResultRequest=t.QueryDepositsResponse=t.QueryDepositsRequest=t.QueryDepositResponse=t.QueryDepositRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.QueryVotesResponse=t.QueryVotesRequest=t.QueryVoteResponse=t.QueryVoteRequest=t.QueryProposalsResponse=t.QueryProposalsRequest=t.QueryProposalResponse=t.QueryProposalRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9876),s=n(9551);t.protobufPackage="cosmos.gov.v1beta1";const c={proposalId:o.default.UZERO};t.QueryProposalRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.proposalId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t}};const d={};t.QueryProposalResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.proposal&&a.Proposal.encode(e.proposal,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.proposal=a.Proposal.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.proposal=void 0!==e.proposal&&null!==e.proposal?a.Proposal.fromJSON(e.proposal):void 0,t},toJSON(e){const t={};return void 0!==e.proposal&&(t.proposal=e.proposal?a.Proposal.toJSON(e.proposal):void 0),t},fromPartial(e){const t=Object.assign({},d);return t.proposal=void 0!==e.proposal&&null!==e.proposal?a.Proposal.fromPartial(e.proposal):void 0,t}};const u={proposalStatus:0,voter:"",depositor:""};t.QueryProposalsRequest={encode:(e,t=i.default.Writer.create())=>(0!==e.proposalStatus&&t.uint32(8).int32(e.proposalStatus),""!==e.voter&&t.uint32(18).string(e.voter),""!==e.depositor&&t.uint32(26).string(e.depositor),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.proposalStatus=n.int32();break;case 2:o.voter=n.string();break;case 3:o.depositor=n.string();break;case 4:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.proposalStatus=void 0!==e.proposalStatus&&null!==e.proposalStatus?a.proposalStatusFromJSON(e.proposalStatus):0,t.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",t.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.proposalStatus&&(t.proposalStatus=a.proposalStatusToJSON(e.proposalStatus)),void 0!==e.voter&&(t.voter=e.voter),void 0!==e.depositor&&(t.depositor=e.depositor),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},u);return o.proposalStatus=null!==(t=e.proposalStatus)&&void 0!==t?t:0,o.voter=null!==(n=e.voter)&&void 0!==n?n:"",o.depositor=null!==(r=e.depositor)&&void 0!==r?r:"",o.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,o}};const l={};t.QueryProposalsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.proposals)a.Proposal.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.proposals=[];n.pos>>3){case 1:o.proposals.push(a.Proposal.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.proposals=(null!==(t=e.proposals)&&void 0!==t?t:[]).map((e=>a.Proposal.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.proposals?t.proposals=e.proposals.map((e=>e?a.Proposal.toJSON(e):void 0)):t.proposals=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.proposals=(null===(t=e.proposals)||void 0===t?void 0:t.map((e=>a.Proposal.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const A={proposalId:o.default.UZERO,voter:""};t.QueryVoteRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.voter&&t.uint32(18).string(e.voter),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.voter=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(t.voter=e.voter),t},fromPartial(e){var t;const n=Object.assign({},A);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,n.voter=null!==(t=e.voter)&&void 0!==t?t:"",n}};const f={};t.QueryVoteResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.vote&&a.Vote.encode(e.vote,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.vote=a.Vote.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.vote=void 0!==e.vote&&null!==e.vote?a.Vote.fromJSON(e.vote):void 0,t},toJSON(e){const t={};return void 0!==e.vote&&(t.vote=e.vote?a.Vote.toJSON(e.vote):void 0),t},fromPartial(e){const t=Object.assign({},f);return t.vote=void 0!==e.vote&&null!==e.vote?a.Vote.fromPartial(e.vote):void 0,t}};const h={proposalId:o.default.UZERO};t.QueryVotesRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},h);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const g={};t.QueryVotesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.votes)a.Vote.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.votes=[];n.pos>>3){case 1:o.votes.push(a.Vote.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.votes=(null!==(t=e.votes)&&void 0!==t?t:[]).map((e=>a.Vote.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.votes?t.votes=e.votes.map((e=>e?a.Vote.toJSON(e):void 0)):t.votes=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},g);return n.votes=(null===(t=e.votes)||void 0===t?void 0:t.map((e=>a.Vote.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const p={paramsType:""};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.paramsType&&t.uint32(10).string(e.paramsType),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3==1?o.paramsType=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);return t.paramsType=void 0!==e.paramsType&&null!==e.paramsType?String(e.paramsType):"",t},toJSON(e){const t={};return void 0!==e.paramsType&&(t.paramsType=e.paramsType),t},fromPartial(e){var t;const n=Object.assign({},p);return n.paramsType=null!==(t=e.paramsType)&&void 0!==t?t:"",n}};const m={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.votingParams&&a.VotingParams.encode(e.votingParams,t.uint32(10).fork()).ldelim(),void 0!==e.depositParams&&a.DepositParams.encode(e.depositParams,t.uint32(18).fork()).ldelim(),void 0!==e.tallyParams&&a.TallyParams.encode(e.tallyParams,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.votingParams=a.VotingParams.decode(n,n.uint32());break;case 2:o.depositParams=a.DepositParams.decode(n,n.uint32());break;case 3:o.tallyParams=a.TallyParams.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.votingParams=void 0!==e.votingParams&&null!==e.votingParams?a.VotingParams.fromJSON(e.votingParams):void 0,t.depositParams=void 0!==e.depositParams&&null!==e.depositParams?a.DepositParams.fromJSON(e.depositParams):void 0,t.tallyParams=void 0!==e.tallyParams&&null!==e.tallyParams?a.TallyParams.fromJSON(e.tallyParams):void 0,t},toJSON(e){const t={};return void 0!==e.votingParams&&(t.votingParams=e.votingParams?a.VotingParams.toJSON(e.votingParams):void 0),void 0!==e.depositParams&&(t.depositParams=e.depositParams?a.DepositParams.toJSON(e.depositParams):void 0),void 0!==e.tallyParams&&(t.tallyParams=e.tallyParams?a.TallyParams.toJSON(e.tallyParams):void 0),t},fromPartial(e){const t=Object.assign({},m);return t.votingParams=void 0!==e.votingParams&&null!==e.votingParams?a.VotingParams.fromPartial(e.votingParams):void 0,t.depositParams=void 0!==e.depositParams&&null!==e.depositParams?a.DepositParams.fromPartial(e.depositParams):void 0,t.tallyParams=void 0!==e.tallyParams&&null!==e.tallyParams?a.TallyParams.fromPartial(e.tallyParams):void 0,t}};const v={proposalId:o.default.UZERO,depositor:""};t.QueryDepositRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.depositor=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),t},fromPartial(e){var t;const n=Object.assign({},v);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,n.depositor=null!==(t=e.depositor)&&void 0!==t?t:"",n}};const y={};t.QueryDepositResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.deposit&&a.Deposit.encode(e.deposit,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.deposit=a.Deposit.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.deposit=void 0!==e.deposit&&null!==e.deposit?a.Deposit.fromJSON(e.deposit):void 0,t},toJSON(e){const t={};return void 0!==e.deposit&&(t.deposit=e.deposit?a.Deposit.toJSON(e.deposit):void 0),t},fromPartial(e){const t=Object.assign({},y);return t.deposit=void 0!==e.deposit&&null!==e.deposit?a.Deposit.fromPartial(e.deposit):void 0,t}};const b={proposalId:o.default.UZERO};t.QueryDepositsRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},b);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const I={};t.QueryDepositsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.deposits)a.Deposit.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(o.deposits=[];n.pos>>3){case 1:o.deposits.push(a.Deposit.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},I);return n.deposits=(null!==(t=e.deposits)&&void 0!==t?t:[]).map((e=>a.Deposit.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.deposits?t.deposits=e.deposits.map((e=>e?a.Deposit.toJSON(e):void 0)):t.deposits=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},I);return n.deposits=(null===(t=e.deposits)||void 0===t?void 0:t.map((e=>a.Deposit.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const C={proposalId:o.default.UZERO};t.QueryTallyResultRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3==1?o.proposalId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},C);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},C);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t}};const E={};t.QueryTallyResultResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.tally&&a.TallyResult.encode(e.tally,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.pos>>3==1?o.tally=a.TallyResult.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return t.tally=void 0!==e.tally&&null!==e.tally?a.TallyResult.fromJSON(e.tally):void 0,t},toJSON(e){const t={};return void 0!==e.tally&&(t.tally=e.tally?a.TallyResult.toJSON(e.tally):void 0),t},fromPartial(e){const t=Object.assign({},E);return t.tally=void 0!==e.tally&&null!==e.tally?a.TallyResult.fromPartial(e.tally):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Proposal=this.Proposal.bind(this),this.Proposals=this.Proposals.bind(this),this.Vote=this.Vote.bind(this),this.Votes=this.Votes.bind(this),this.Params=this.Params.bind(this),this.Deposit=this.Deposit.bind(this),this.Deposits=this.Deposits.bind(this),this.TallyResult=this.TallyResult.bind(this)}Proposal(e){const n=t.QueryProposalRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Proposal",n).then((e=>t.QueryProposalResponse.decode(new i.default.Reader(e))))}Proposals(e){const n=t.QueryProposalsRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Proposals",n).then((e=>t.QueryProposalsResponse.decode(new i.default.Reader(e))))}Vote(e){const n=t.QueryVoteRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Vote",n).then((e=>t.QueryVoteResponse.decode(new i.default.Reader(e))))}Votes(e){const n=t.QueryVotesRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Votes",n).then((e=>t.QueryVotesResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}Deposit(e){const n=t.QueryDepositRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Deposit",n).then((e=>t.QueryDepositResponse.decode(new i.default.Reader(e))))}Deposits(e){const n=t.QueryDepositsRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Deposits",n).then((e=>t.QueryDepositsResponse.decode(new i.default.Reader(e))))}TallyResult(e){const n=t.QueryTallyResultRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","TallyResult",n).then((e=>t.QueryTallyResultResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},750:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgDepositResponse=t.MsgDeposit=t.MsgVoteWeightedResponse=t.MsgVoteWeighted=t.MsgVoteResponse=t.MsgVote=t.MsgSubmitProposalResponse=t.MsgSubmitProposal=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(9876),c=n(891);t.protobufPackage="cosmos.gov.v1beta1";const d={proposer:""};t.MsgSubmitProposal={encode(e,t=i.default.Writer.create()){void 0!==e.content&&a.Any.encode(e.content,t.uint32(10).fork()).ldelim();for(const n of e.initialDeposit)c.Coin.encode(n,t.uint32(18).fork()).ldelim();return""!==e.proposer&&t.uint32(26).string(e.proposer),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.initialDeposit=[];n.pos>>3){case 1:o.content=a.Any.decode(n,n.uint32());break;case 2:o.initialDeposit.push(c.Coin.decode(n,n.uint32()));break;case 3:o.proposer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.content=void 0!==e.content&&null!==e.content?a.Any.fromJSON(e.content):void 0,n.initialDeposit=(null!==(t=e.initialDeposit)&&void 0!==t?t:[]).map((e=>c.Coin.fromJSON(e))),n.proposer=void 0!==e.proposer&&null!==e.proposer?String(e.proposer):"",n},toJSON(e){const t={};return void 0!==e.content&&(t.content=e.content?a.Any.toJSON(e.content):void 0),e.initialDeposit?t.initialDeposit=e.initialDeposit.map((e=>e?c.Coin.toJSON(e):void 0)):t.initialDeposit=[],void 0!==e.proposer&&(t.proposer=e.proposer),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.content=void 0!==e.content&&null!==e.content?a.Any.fromPartial(e.content):void 0,r.initialDeposit=(null===(t=e.initialDeposit)||void 0===t?void 0:t.map((e=>c.Coin.fromPartial(e))))||[],r.proposer=null!==(n=e.proposer)&&void 0!==n?n:"",r}};const u={proposalId:o.default.UZERO};t.MsgSubmitProposalResponse={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.proposalId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},u);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t}};const l={proposalId:o.default.UZERO,voter:"",option:0};t.MsgVote={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.voter&&t.uint32(18).string(e.voter),0!==e.option&&t.uint32(24).int32(e.option),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.voter=n.string();break;case 3:o.option=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",t.option=void 0!==e.option&&null!==e.option?s.voteOptionFromJSON(e.option):0,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(t.voter=e.voter),void 0!==e.option&&(t.option=s.voteOptionToJSON(e.option)),t},fromPartial(e){var t,n;const r=Object.assign({},l);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,r.voter=null!==(t=e.voter)&&void 0!==t?t:"",r.option=null!==(n=e.option)&&void 0!==n?n:0,r}};const A={};t.MsgVoteResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={proposalId:o.default.UZERO,voter:""};t.MsgVoteWeighted={encode(e,t=i.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.voter&&t.uint32(18).string(e.voter);for(const n of e.options)s.WeightedVoteOption.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.options=[];n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.voter=n.string();break;case 3:o.options.push(s.WeightedVoteOption.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,n.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",n.options=(null!==(t=e.options)&&void 0!==t?t:[]).map((e=>s.WeightedVoteOption.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(t.voter=e.voter),e.options?t.options=e.options.map((e=>e?s.WeightedVoteOption.toJSON(e):void 0)):t.options=[],t},fromPartial(e){var t,n;const r=Object.assign({},f);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,r.voter=null!==(t=e.voter)&&void 0!==t?t:"",r.options=(null===(n=e.options)||void 0===n?void 0:n.map((e=>s.WeightedVoteOption.fromPartial(e))))||[],r}};const h={};t.MsgVoteWeightedResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)};const g={proposalId:o.default.UZERO,depositor:""};t.MsgDeposit={encode(e,t=i.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor);for(const n of e.amount)c.Coin.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.amount=[];n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.depositor=n.string();break;case 3:o.amount.push(c.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,n.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>c.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),e.amount?t.amount=e.amount.map((e=>e?c.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,r.depositor=null!==(t=e.depositor)&&void 0!==t?t:"",r.amount=(null===(n=e.amount)||void 0===n?void 0:n.map((e=>c.Coin.fromPartial(e))))||[],r}};const p={};t.MsgDepositResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.SubmitProposal=this.SubmitProposal.bind(this),this.Vote=this.Vote.bind(this),this.VoteWeighted=this.VoteWeighted.bind(this),this.Deposit=this.Deposit.bind(this)}SubmitProposal(e){const n=t.MsgSubmitProposal.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Msg","SubmitProposal",n).then((e=>t.MsgSubmitProposalResponse.decode(new i.default.Reader(e))))}Vote(e){const n=t.MsgVote.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Msg","Vote",n).then((e=>t.MsgVoteResponse.decode(new i.default.Reader(e))))}VoteWeighted(e){const n=t.MsgVoteWeighted.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Msg","VoteWeighted",n).then((e=>t.MsgVoteWeightedResponse.decode(new i.default.Reader(e))))}Deposit(e){const n=t.MsgDeposit.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Msg","Deposit",n).then((e=>t.MsgDepositResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4638:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.Minter=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.mint.v1beta1";const a={inflation:"",annualProvisions:""};t.Minter={encode:(e,t=i.default.Writer.create())=>(""!==e.inflation&&t.uint32(10).string(e.inflation),""!==e.annualProvisions&&t.uint32(18).string(e.annualProvisions),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.inflation=n.string();break;case 2:o.annualProvisions=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.inflation=void 0!==e.inflation&&null!==e.inflation?String(e.inflation):"",t.annualProvisions=void 0!==e.annualProvisions&&null!==e.annualProvisions?String(e.annualProvisions):"",t},toJSON(e){const t={};return void 0!==e.inflation&&(t.inflation=e.inflation),void 0!==e.annualProvisions&&(t.annualProvisions=e.annualProvisions),t},fromPartial(e){var t,n;const r=Object.assign({},a);return r.inflation=null!==(t=e.inflation)&&void 0!==t?t:"",r.annualProvisions=null!==(n=e.annualProvisions)&&void 0!==n?n:"",r}};const s={mintDenom:"",inflationRateChange:"",inflationMax:"",inflationMin:"",goalBonded:"",blocksPerYear:o.default.UZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(""!==e.mintDenom&&t.uint32(10).string(e.mintDenom),""!==e.inflationRateChange&&t.uint32(18).string(e.inflationRateChange),""!==e.inflationMax&&t.uint32(26).string(e.inflationMax),""!==e.inflationMin&&t.uint32(34).string(e.inflationMin),""!==e.goalBonded&&t.uint32(42).string(e.goalBonded),e.blocksPerYear.isZero()||t.uint32(48).uint64(e.blocksPerYear),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.mintDenom=n.string();break;case 2:o.inflationRateChange=n.string();break;case 3:o.inflationMax=n.string();break;case 4:o.inflationMin=n.string();break;case 5:o.goalBonded=n.string();break;case 6:o.blocksPerYear=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.mintDenom=void 0!==e.mintDenom&&null!==e.mintDenom?String(e.mintDenom):"",t.inflationRateChange=void 0!==e.inflationRateChange&&null!==e.inflationRateChange?String(e.inflationRateChange):"",t.inflationMax=void 0!==e.inflationMax&&null!==e.inflationMax?String(e.inflationMax):"",t.inflationMin=void 0!==e.inflationMin&&null!==e.inflationMin?String(e.inflationMin):"",t.goalBonded=void 0!==e.goalBonded&&null!==e.goalBonded?String(e.goalBonded):"",t.blocksPerYear=void 0!==e.blocksPerYear&&null!==e.blocksPerYear?o.default.fromString(e.blocksPerYear):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.mintDenom&&(t.mintDenom=e.mintDenom),void 0!==e.inflationRateChange&&(t.inflationRateChange=e.inflationRateChange),void 0!==e.inflationMax&&(t.inflationMax=e.inflationMax),void 0!==e.inflationMin&&(t.inflationMin=e.inflationMin),void 0!==e.goalBonded&&(t.goalBonded=e.goalBonded),void 0!==e.blocksPerYear&&(t.blocksPerYear=(e.blocksPerYear||o.default.UZERO).toString()),t},fromPartial(e){var t,n,r,i,a;const c=Object.assign({},s);return c.mintDenom=null!==(t=e.mintDenom)&&void 0!==t?t:"",c.inflationRateChange=null!==(n=e.inflationRateChange)&&void 0!==n?n:"",c.inflationMax=null!==(r=e.inflationMax)&&void 0!==r?r:"",c.inflationMin=null!==(i=e.inflationMin)&&void 0!==i?i:"",c.goalBonded=null!==(a=e.goalBonded)&&void 0!==a?a:"",c.blocksPerYear=void 0!==e.blocksPerYear&&null!==e.blocksPerYear?o.default.fromValue(e.blocksPerYear):o.default.UZERO,c}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},2879:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryAnnualProvisionsResponse=t.QueryAnnualProvisionsRequest=t.QueryInflationResponse=t.QueryInflationRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(4638);t.protobufPackage="cosmos.mint.v1beta1";const s={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.posObject.assign({},s),toJSON:e=>({}),fromPartial:e=>Object.assign({},s)};const c={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&a.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.params=a.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?a.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},c);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromPartial(e.params):void 0,t}};const d={};t.QueryInflationRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const u={};t.QueryInflationResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.inflation.length&&t.uint32(10).bytes(e.inflation),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.inflation=new Uint8Array;n.pos>>3==1?o.inflation=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.inflation=void 0!==e.inflation&&null!==e.inflation?g(e.inflation):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.inflation&&(t.inflation=m(void 0!==e.inflation?e.inflation:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},u);return n.inflation=null!==(t=e.inflation)&&void 0!==t?t:new Uint8Array,n}};const l={};t.QueryAnnualProvisionsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const A={};t.QueryAnnualProvisionsResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.annualProvisions.length&&t.uint32(10).bytes(e.annualProvisions),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.annualProvisions=new Uint8Array;n.pos>>3==1?o.annualProvisions=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.annualProvisions=void 0!==e.annualProvisions&&null!==e.annualProvisions?g(e.annualProvisions):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.annualProvisions&&(t.annualProvisions=m(void 0!==e.annualProvisions?e.annualProvisions:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},A);return n.annualProvisions=null!==(t=e.annualProvisions)&&void 0!==t?t:new Uint8Array,n}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Params=this.Params.bind(this),this.Inflation=this.Inflation.bind(this),this.AnnualProvisions=this.AnnualProvisions.bind(this)}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.mint.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}Inflation(e){const n=t.QueryInflationRequest.encode(e).finish();return this.rpc.request("cosmos.mint.v1beta1.Query","Inflation",n).then((e=>t.QueryInflationResponse.decode(new i.default.Reader(e))))}AnnualProvisions(e){const n=t.QueryAnnualProvisionsRequest.encode(e).finish();return this.rpc.request("cosmos.mint.v1beta1.Query","AnnualProvisions",n).then((e=>t.QueryAnnualProvisionsResponse.decode(new i.default.Reader(e))))}};var f=(()=>{if(void 0!==f)return f;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const h=f.atob||(e=>f.Buffer.from(e,"base64").toString("binary"));function g(e){const t=h(e),n=new Uint8Array(t.length);for(let e=0;ef.Buffer.from(e,"binary").toString("base64"));function m(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return p(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6701:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QuerySigningInfosResponse=t.QuerySigningInfosRequest=t.QuerySigningInfoResponse=t.QuerySigningInfoRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9726),s=n(9551);t.protobufPackage="cosmos.slashing.v1beta1";const c={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&a.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.params=a.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?a.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},d);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromPartial(e.params):void 0,t}};const u={consAddress:""};t.QuerySigningInfoRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.consAddress&&t.uint32(10).string(e.consAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.consAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.consAddress=void 0!==e.consAddress&&null!==e.consAddress?String(e.consAddress):"",t},toJSON(e){const t={};return void 0!==e.consAddress&&(t.consAddress=e.consAddress),t},fromPartial(e){var t;const n=Object.assign({},u);return n.consAddress=null!==(t=e.consAddress)&&void 0!==t?t:"",n}};const l={};t.QuerySigningInfoResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.valSigningInfo&&a.ValidatorSigningInfo.encode(e.valSigningInfo,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.valSigningInfo=a.ValidatorSigningInfo.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.valSigningInfo=void 0!==e.valSigningInfo&&null!==e.valSigningInfo?a.ValidatorSigningInfo.fromJSON(e.valSigningInfo):void 0,t},toJSON(e){const t={};return void 0!==e.valSigningInfo&&(t.valSigningInfo=e.valSigningInfo?a.ValidatorSigningInfo.toJSON(e.valSigningInfo):void 0),t},fromPartial(e){const t=Object.assign({},l);return t.valSigningInfo=void 0!==e.valSigningInfo&&null!==e.valSigningInfo?a.ValidatorSigningInfo.fromPartial(e.valSigningInfo):void 0,t}};const A={};t.QuerySigningInfosRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const f={};t.QuerySigningInfosResponse={encode(e,t=i.default.Writer.create()){for(const n of e.info)a.ValidatorSigningInfo.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.info=[];n.pos>>3){case 1:o.info.push(a.ValidatorSigningInfo.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.info=(null!==(t=e.info)&&void 0!==t?t:[]).map((e=>a.ValidatorSigningInfo.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.info?t.info=e.info.map((e=>e?a.ValidatorSigningInfo.toJSON(e):void 0)):t.info=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.info=(null===(t=e.info)||void 0===t?void 0:t.map((e=>a.ValidatorSigningInfo.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Params=this.Params.bind(this),this.SigningInfo=this.SigningInfo.bind(this),this.SigningInfos=this.SigningInfos.bind(this)}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.slashing.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}SigningInfo(e){const n=t.QuerySigningInfoRequest.encode(e).finish();return this.rpc.request("cosmos.slashing.v1beta1.Query","SigningInfo",n).then((e=>t.QuerySigningInfoResponse.decode(new i.default.Reader(e))))}SigningInfos(e){const n=t.QuerySigningInfosRequest.encode(e).finish();return this.rpc.request("cosmos.slashing.v1beta1.Query","SigningInfos",n).then((e=>t.QuerySigningInfosResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9726:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.ValidatorSigningInfo=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5522),s=n(281);t.protobufPackage="cosmos.slashing.v1beta1";const c={address:"",startHeight:o.default.ZERO,indexOffset:o.default.ZERO,tombstoned:!1,missedBlocksCounter:o.default.ZERO};t.ValidatorSigningInfo={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),e.startHeight.isZero()||t.uint32(16).int64(e.startHeight),e.indexOffset.isZero()||t.uint32(24).int64(e.indexOffset),void 0!==e.jailedUntil&&a.Timestamp.encode(e.jailedUntil,t.uint32(34).fork()).ldelim(),!0===e.tombstoned&&t.uint32(40).bool(e.tombstoned),e.missedBlocksCounter.isZero()||t.uint32(48).int64(e.missedBlocksCounter),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.startHeight=n.int64();break;case 3:o.indexOffset=n.int64();break;case 4:o.jailedUntil=a.Timestamp.decode(n,n.uint32());break;case 5:o.tombstoned=n.bool();break;case 6:o.missedBlocksCounter=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);var n;return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.startHeight=void 0!==e.startHeight&&null!==e.startHeight?o.default.fromString(e.startHeight):o.default.ZERO,t.indexOffset=void 0!==e.indexOffset&&null!==e.indexOffset?o.default.fromString(e.indexOffset):o.default.ZERO,t.jailedUntil=void 0!==e.jailedUntil&&null!==e.jailedUntil?(n=e.jailedUntil)instanceof Date?g(n):"string"==typeof n?g(new Date(n)):a.Timestamp.fromJSON(n):void 0,t.tombstoned=void 0!==e.tombstoned&&null!==e.tombstoned&&Boolean(e.tombstoned),t.missedBlocksCounter=void 0!==e.missedBlocksCounter&&null!==e.missedBlocksCounter?o.default.fromString(e.missedBlocksCounter):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.startHeight&&(t.startHeight=(e.startHeight||o.default.ZERO).toString()),void 0!==e.indexOffset&&(t.indexOffset=(e.indexOffset||o.default.ZERO).toString()),void 0!==e.jailedUntil&&(t.jailedUntil=function(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}(e.jailedUntil).toISOString()),void 0!==e.tombstoned&&(t.tombstoned=e.tombstoned),void 0!==e.missedBlocksCounter&&(t.missedBlocksCounter=(e.missedBlocksCounter||o.default.ZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.startHeight=void 0!==e.startHeight&&null!==e.startHeight?o.default.fromValue(e.startHeight):o.default.ZERO,r.indexOffset=void 0!==e.indexOffset&&null!==e.indexOffset?o.default.fromValue(e.indexOffset):o.default.ZERO,r.jailedUntil=void 0!==e.jailedUntil&&null!==e.jailedUntil?a.Timestamp.fromPartial(e.jailedUntil):void 0,r.tombstoned=null!==(n=e.tombstoned)&&void 0!==n&&n,r.missedBlocksCounter=void 0!==e.missedBlocksCounter&&null!==e.missedBlocksCounter?o.default.fromValue(e.missedBlocksCounter):o.default.ZERO,r}};const d={signedBlocksWindow:o.default.ZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(e.signedBlocksWindow.isZero()||t.uint32(8).int64(e.signedBlocksWindow),0!==e.minSignedPerWindow.length&&t.uint32(18).bytes(e.minSignedPerWindow),void 0!==e.downtimeJailDuration&&s.Duration.encode(e.downtimeJailDuration,t.uint32(26).fork()).ldelim(),0!==e.slashFractionDoubleSign.length&&t.uint32(34).bytes(e.slashFractionDoubleSign),0!==e.slashFractionDowntime.length&&t.uint32(42).bytes(e.slashFractionDowntime),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.minSignedPerWindow=new Uint8Array,o.slashFractionDoubleSign=new Uint8Array,o.slashFractionDowntime=new Uint8Array;n.pos>>3){case 1:o.signedBlocksWindow=n.int64();break;case 2:o.minSignedPerWindow=n.bytes();break;case 3:o.downtimeJailDuration=s.Duration.decode(n,n.uint32());break;case 4:o.slashFractionDoubleSign=n.bytes();break;case 5:o.slashFractionDowntime=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.signedBlocksWindow=void 0!==e.signedBlocksWindow&&null!==e.signedBlocksWindow?o.default.fromString(e.signedBlocksWindow):o.default.ZERO,t.minSignedPerWindow=void 0!==e.minSignedPerWindow&&null!==e.minSignedPerWindow?A(e.minSignedPerWindow):new Uint8Array,t.downtimeJailDuration=void 0!==e.downtimeJailDuration&&null!==e.downtimeJailDuration?s.Duration.fromJSON(e.downtimeJailDuration):void 0,t.slashFractionDoubleSign=void 0!==e.slashFractionDoubleSign&&null!==e.slashFractionDoubleSign?A(e.slashFractionDoubleSign):new Uint8Array,t.slashFractionDowntime=void 0!==e.slashFractionDowntime&&null!==e.slashFractionDowntime?A(e.slashFractionDowntime):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.signedBlocksWindow&&(t.signedBlocksWindow=(e.signedBlocksWindow||o.default.ZERO).toString()),void 0!==e.minSignedPerWindow&&(t.minSignedPerWindow=h(void 0!==e.minSignedPerWindow?e.minSignedPerWindow:new Uint8Array)),void 0!==e.downtimeJailDuration&&(t.downtimeJailDuration=e.downtimeJailDuration?s.Duration.toJSON(e.downtimeJailDuration):void 0),void 0!==e.slashFractionDoubleSign&&(t.slashFractionDoubleSign=h(void 0!==e.slashFractionDoubleSign?e.slashFractionDoubleSign:new Uint8Array)),void 0!==e.slashFractionDowntime&&(t.slashFractionDowntime=h(void 0!==e.slashFractionDowntime?e.slashFractionDowntime:new Uint8Array)),t},fromPartial(e){var t,n,r;const i=Object.assign({},d);return i.signedBlocksWindow=void 0!==e.signedBlocksWindow&&null!==e.signedBlocksWindow?o.default.fromValue(e.signedBlocksWindow):o.default.ZERO,i.minSignedPerWindow=null!==(t=e.minSignedPerWindow)&&void 0!==t?t:new Uint8Array,i.downtimeJailDuration=void 0!==e.downtimeJailDuration&&null!==e.downtimeJailDuration?s.Duration.fromPartial(e.downtimeJailDuration):void 0,i.slashFractionDoubleSign=null!==(n=e.slashFractionDoubleSign)&&void 0!==n?n:new Uint8Array,i.slashFractionDowntime=null!==(r=e.slashFractionDowntime)&&void 0!==r?r:new Uint8Array,i}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const l=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary"));function A(e){const t=l(e),n=new Uint8Array(t.length);for(let e=0;eu.Buffer.from(e,"binary").toString("base64"));function h(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return f(t.join(""))}function g(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4438:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryParamsResponse=t.QueryParamsRequest=t.QueryPoolResponse=t.QueryPoolRequest=t.QueryHistoricalInfoResponse=t.QueryHistoricalInfoRequest=t.QueryDelegatorValidatorResponse=t.QueryDelegatorValidatorRequest=t.QueryDelegatorValidatorsResponse=t.QueryDelegatorValidatorsRequest=t.QueryRedelegationsResponse=t.QueryRedelegationsRequest=t.QueryDelegatorUnbondingDelegationsResponse=t.QueryDelegatorUnbondingDelegationsRequest=t.QueryDelegatorDelegationsResponse=t.QueryDelegatorDelegationsRequest=t.QueryUnbondingDelegationResponse=t.QueryUnbondingDelegationRequest=t.QueryDelegationResponse=t.QueryDelegationRequest=t.QueryValidatorUnbondingDelegationsResponse=t.QueryValidatorUnbondingDelegationsRequest=t.QueryValidatorDelegationsResponse=t.QueryValidatorDelegationsRequest=t.QueryValidatorResponse=t.QueryValidatorRequest=t.QueryValidatorsResponse=t.QueryValidatorsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9551),s=n(9355);t.protobufPackage="cosmos.staking.v1beta1";const c={status:""};t.QueryValidatorsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.status&&t.uint32(10).string(e.status),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.status=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.status=void 0!==e.status&&null!==e.status?String(e.status):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.status&&(t.status=e.status),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},c);return n.status=null!==(t=e.status)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const d={};t.QueryValidatorsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.validators)s.Validator.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.validators=[];n.pos>>3){case 1:o.validators.push(s.Validator.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.validators=(null!==(t=e.validators)&&void 0!==t?t:[]).map((e=>s.Validator.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.validators?t.validators=e.validators.map((e=>e?s.Validator.toJSON(e):void 0)):t.validators=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},d);return n.validators=(null===(t=e.validators)||void 0===t?void 0:t.map((e=>s.Validator.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const u={validatorAddr:""};t.QueryValidatorRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddr&&t.uint32(10).string(e.validatorAddr),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.validatorAddr=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t},toJSON(e){const t={};return void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){var t;const n=Object.assign({},u);return n.validatorAddr=null!==(t=e.validatorAddr)&&void 0!==t?t:"",n}};const l={};t.QueryValidatorResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.validator&&s.Validator.encode(e.validator,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.validator=s.Validator.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.validator=void 0!==e.validator&&null!==e.validator?s.Validator.fromJSON(e.validator):void 0,t},toJSON(e){const t={};return void 0!==e.validator&&(t.validator=e.validator?s.Validator.toJSON(e.validator):void 0),t},fromPartial(e){const t=Object.assign({},l);return t.validator=void 0!==e.validator&&null!==e.validator?s.Validator.fromPartial(e.validator):void 0,t}};const A={validatorAddr:""};t.QueryValidatorDelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddr&&t.uint32(10).string(e.validatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.validatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},A);return n.validatorAddr=null!==(t=e.validatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const f={};t.QueryValidatorDelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.delegationResponses)s.DelegationResponse.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.delegationResponses=[];n.pos>>3){case 1:o.delegationResponses.push(s.DelegationResponse.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.delegationResponses=(null!==(t=e.delegationResponses)&&void 0!==t?t:[]).map((e=>s.DelegationResponse.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.delegationResponses?t.delegationResponses=e.delegationResponses.map((e=>e?s.DelegationResponse.toJSON(e):void 0)):t.delegationResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.delegationResponses=(null===(t=e.delegationResponses)||void 0===t?void 0:t.map((e=>s.DelegationResponse.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const h={validatorAddr:""};t.QueryValidatorUnbondingDelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddr&&t.uint32(10).string(e.validatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.validatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.validatorAddr=null!==(t=e.validatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const g={};t.QueryValidatorUnbondingDelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.unbondingResponses)s.UnbondingDelegation.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.unbondingResponses=[];n.pos>>3){case 1:o.unbondingResponses.push(s.UnbondingDelegation.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.unbondingResponses=(null!==(t=e.unbondingResponses)&&void 0!==t?t:[]).map((e=>s.UnbondingDelegation.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.unbondingResponses?t.unbondingResponses=e.unbondingResponses.map((e=>e?s.UnbondingDelegation.toJSON(e):void 0)):t.unbondingResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},g);return n.unbondingResponses=(null===(t=e.unbondingResponses)||void 0===t?void 0:t.map((e=>s.UnbondingDelegation.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const p={delegatorAddr:"",validatorAddr:""};t.QueryDelegationRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),""!==e.validatorAddr&&t.uint32(18).string(e.validatorAddr),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.validatorAddr=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",r.validatorAddr=null!==(n=e.validatorAddr)&&void 0!==n?n:"",r}};const m={};t.QueryDelegationResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.delegationResponse&&s.DelegationResponse.encode(e.delegationResponse,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3==1?o.delegationResponse=s.DelegationResponse.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.delegationResponse=void 0!==e.delegationResponse&&null!==e.delegationResponse?s.DelegationResponse.fromJSON(e.delegationResponse):void 0,t},toJSON(e){const t={};return void 0!==e.delegationResponse&&(t.delegationResponse=e.delegationResponse?s.DelegationResponse.toJSON(e.delegationResponse):void 0),t},fromPartial(e){const t=Object.assign({},m);return t.delegationResponse=void 0!==e.delegationResponse&&null!==e.delegationResponse?s.DelegationResponse.fromPartial(e.delegationResponse):void 0,t}};const v={delegatorAddr:"",validatorAddr:""};t.QueryUnbondingDelegationRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),""!==e.validatorAddr&&t.uint32(18).string(e.validatorAddr),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.validatorAddr=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",r.validatorAddr=null!==(n=e.validatorAddr)&&void 0!==n?n:"",r}};const y={};t.QueryUnbondingDelegationResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.unbond&&s.UnbondingDelegation.encode(e.unbond,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.unbond=s.UnbondingDelegation.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.unbond=void 0!==e.unbond&&null!==e.unbond?s.UnbondingDelegation.fromJSON(e.unbond):void 0,t},toJSON(e){const t={};return void 0!==e.unbond&&(t.unbond=e.unbond?s.UnbondingDelegation.toJSON(e.unbond):void 0),t},fromPartial(e){const t=Object.assign({},y);return t.unbond=void 0!==e.unbond&&null!==e.unbond?s.UnbondingDelegation.fromPartial(e.unbond):void 0,t}};const b={delegatorAddr:""};t.QueryDelegatorDelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},b);return n.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const I={};t.QueryDelegatorDelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.delegationResponses)s.DelegationResponse.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(o.delegationResponses=[];n.pos>>3){case 1:o.delegationResponses.push(s.DelegationResponse.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},I);return n.delegationResponses=(null!==(t=e.delegationResponses)&&void 0!==t?t:[]).map((e=>s.DelegationResponse.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.delegationResponses?t.delegationResponses=e.delegationResponses.map((e=>e?s.DelegationResponse.toJSON(e):void 0)):t.delegationResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},I);return n.delegationResponses=(null===(t=e.delegationResponses)||void 0===t?void 0:t.map((e=>s.DelegationResponse.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const C={delegatorAddr:""};t.QueryDelegatorUnbondingDelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},C);return n.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const E={};t.QueryDelegatorUnbondingDelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.unbondingResponses)s.UnbondingDelegation.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(o.unbondingResponses=[];n.pos>>3){case 1:o.unbondingResponses.push(s.UnbondingDelegation.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},E);return n.unbondingResponses=(null!==(t=e.unbondingResponses)&&void 0!==t?t:[]).map((e=>s.UnbondingDelegation.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.unbondingResponses?t.unbondingResponses=e.unbondingResponses.map((e=>e?s.UnbondingDelegation.toJSON(e):void 0)):t.unbondingResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},E);return n.unbondingResponses=(null===(t=e.unbondingResponses)||void 0===t?void 0:t.map((e=>s.UnbondingDelegation.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const w={delegatorAddr:"",srcValidatorAddr:"",dstValidatorAddr:""};t.QueryRedelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),""!==e.srcValidatorAddr&&t.uint32(18).string(e.srcValidatorAddr),""!==e.dstValidatorAddr&&t.uint32(26).string(e.dstValidatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.srcValidatorAddr=n.string();break;case 3:o.dstValidatorAddr=n.string();break;case 4:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.srcValidatorAddr=void 0!==e.srcValidatorAddr&&null!==e.srcValidatorAddr?String(e.srcValidatorAddr):"",t.dstValidatorAddr=void 0!==e.dstValidatorAddr&&null!==e.dstValidatorAddr?String(e.dstValidatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.srcValidatorAddr&&(t.srcValidatorAddr=e.srcValidatorAddr),void 0!==e.dstValidatorAddr&&(t.dstValidatorAddr=e.dstValidatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},w);return o.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",o.srcValidatorAddr=null!==(n=e.srcValidatorAddr)&&void 0!==n?n:"",o.dstValidatorAddr=null!==(r=e.dstValidatorAddr)&&void 0!==r?r:"",o.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,o}};const B={};t.QueryRedelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.redelegationResponses)s.RedelegationResponse.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(o.redelegationResponses=[];n.pos>>3){case 1:o.redelegationResponses.push(s.RedelegationResponse.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},B);return n.redelegationResponses=(null!==(t=e.redelegationResponses)&&void 0!==t?t:[]).map((e=>s.RedelegationResponse.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.redelegationResponses?t.redelegationResponses=e.redelegationResponses.map((e=>e?s.RedelegationResponse.toJSON(e):void 0)):t.redelegationResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},B);return n.redelegationResponses=(null===(t=e.redelegationResponses)||void 0===t?void 0:t.map((e=>s.RedelegationResponse.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const _={delegatorAddr:""};t.QueryDelegatorValidatorsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},_);return n.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const S={};t.QueryDelegatorValidatorsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.validators)s.Validator.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(o.validators=[];n.pos>>3){case 1:o.validators.push(s.Validator.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},S);return n.validators=(null!==(t=e.validators)&&void 0!==t?t:[]).map((e=>s.Validator.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.validators?t.validators=e.validators.map((e=>e?s.Validator.toJSON(e):void 0)):t.validators=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},S);return n.validators=(null===(t=e.validators)||void 0===t?void 0:t.map((e=>s.Validator.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const k={delegatorAddr:"",validatorAddr:""};t.QueryDelegatorValidatorRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),""!==e.validatorAddr&&t.uint32(18).string(e.validatorAddr),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},k);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.validatorAddr=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){var t,n;const r=Object.assign({},k);return r.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",r.validatorAddr=null!==(n=e.validatorAddr)&&void 0!==n?n:"",r}};const O={};t.QueryDelegatorValidatorResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.validator&&s.Validator.encode(e.validator,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},O);for(;n.pos>>3==1?o.validator=s.Validator.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},O);return t.validator=void 0!==e.validator&&null!==e.validator?s.Validator.fromJSON(e.validator):void 0,t},toJSON(e){const t={};return void 0!==e.validator&&(t.validator=e.validator?s.Validator.toJSON(e.validator):void 0),t},fromPartial(e){const t=Object.assign({},O);return t.validator=void 0!==e.validator&&null!==e.validator?s.Validator.fromPartial(e.validator):void 0,t}};const Q={height:o.default.ZERO};t.QueryHistoricalInfoRequest={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).int64(e.height),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},Q);for(;n.pos>>3==1?o.height=n.int64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},Q);return t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},Q);return t.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,t}};const R={};t.QueryHistoricalInfoResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.hist&&s.HistoricalInfo.encode(e.hist,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},R);for(;n.pos>>3==1?o.hist=s.HistoricalInfo.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},R);return t.hist=void 0!==e.hist&&null!==e.hist?s.HistoricalInfo.fromJSON(e.hist):void 0,t},toJSON(e){const t={};return void 0!==e.hist&&(t.hist=e.hist?s.HistoricalInfo.toJSON(e.hist):void 0),t},fromPartial(e){const t=Object.assign({},R);return t.hist=void 0!==e.hist&&null!==e.hist?s.HistoricalInfo.fromPartial(e.hist):void 0,t}};const P={};t.QueryPoolRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},P);for(;n.posObject.assign({},P),toJSON:e=>({}),fromPartial:e=>Object.assign({},P)};const N={};t.QueryPoolResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pool&&s.Pool.encode(e.pool,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},N);for(;n.pos>>3==1?o.pool=s.Pool.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},N);return t.pool=void 0!==e.pool&&null!==e.pool?s.Pool.fromJSON(e.pool):void 0,t},toJSON(e){const t={};return void 0!==e.pool&&(t.pool=e.pool?s.Pool.toJSON(e.pool):void 0),t},fromPartial(e){const t=Object.assign({},N);return t.pool=void 0!==e.pool&&null!==e.pool?s.Pool.fromPartial(e.pool):void 0,t}};const x={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},x);for(;n.posObject.assign({},x),toJSON:e=>({}),fromPartial:e=>Object.assign({},x)};const D={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&s.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},D);for(;n.pos>>3==1?o.params=s.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},D);return t.params=void 0!==e.params&&null!==e.params?s.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?s.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},D);return t.params=void 0!==e.params&&null!==e.params?s.Params.fromPartial(e.params):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Validators=this.Validators.bind(this),this.Validator=this.Validator.bind(this),this.ValidatorDelegations=this.ValidatorDelegations.bind(this),this.ValidatorUnbondingDelegations=this.ValidatorUnbondingDelegations.bind(this),this.Delegation=this.Delegation.bind(this),this.UnbondingDelegation=this.UnbondingDelegation.bind(this),this.DelegatorDelegations=this.DelegatorDelegations.bind(this),this.DelegatorUnbondingDelegations=this.DelegatorUnbondingDelegations.bind(this),this.Redelegations=this.Redelegations.bind(this),this.DelegatorValidators=this.DelegatorValidators.bind(this),this.DelegatorValidator=this.DelegatorValidator.bind(this),this.HistoricalInfo=this.HistoricalInfo.bind(this),this.Pool=this.Pool.bind(this),this.Params=this.Params.bind(this)}Validators(e){const n=t.QueryValidatorsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Validators",n).then((e=>t.QueryValidatorsResponse.decode(new i.default.Reader(e))))}Validator(e){const n=t.QueryValidatorRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Validator",n).then((e=>t.QueryValidatorResponse.decode(new i.default.Reader(e))))}ValidatorDelegations(e){const n=t.QueryValidatorDelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","ValidatorDelegations",n).then((e=>t.QueryValidatorDelegationsResponse.decode(new i.default.Reader(e))))}ValidatorUnbondingDelegations(e){const n=t.QueryValidatorUnbondingDelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","ValidatorUnbondingDelegations",n).then((e=>t.QueryValidatorUnbondingDelegationsResponse.decode(new i.default.Reader(e))))}Delegation(e){const n=t.QueryDelegationRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Delegation",n).then((e=>t.QueryDelegationResponse.decode(new i.default.Reader(e))))}UnbondingDelegation(e){const n=t.QueryUnbondingDelegationRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","UnbondingDelegation",n).then((e=>t.QueryUnbondingDelegationResponse.decode(new i.default.Reader(e))))}DelegatorDelegations(e){const n=t.QueryDelegatorDelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","DelegatorDelegations",n).then((e=>t.QueryDelegatorDelegationsResponse.decode(new i.default.Reader(e))))}DelegatorUnbondingDelegations(e){const n=t.QueryDelegatorUnbondingDelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","DelegatorUnbondingDelegations",n).then((e=>t.QueryDelegatorUnbondingDelegationsResponse.decode(new i.default.Reader(e))))}Redelegations(e){const n=t.QueryRedelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Redelegations",n).then((e=>t.QueryRedelegationsResponse.decode(new i.default.Reader(e))))}DelegatorValidators(e){const n=t.QueryDelegatorValidatorsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","DelegatorValidators",n).then((e=>t.QueryDelegatorValidatorsResponse.decode(new i.default.Reader(e))))}DelegatorValidator(e){const n=t.QueryDelegatorValidatorRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","DelegatorValidator",n).then((e=>t.QueryDelegatorValidatorResponse.decode(new i.default.Reader(e))))}HistoricalInfo(e){const n=t.QueryHistoricalInfoRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","HistoricalInfo",n).then((e=>t.QueryHistoricalInfoResponse.decode(new i.default.Reader(e))))}Pool(e){const n=t.QueryPoolRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Pool",n).then((e=>t.QueryPoolResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9355:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Pool=t.RedelegationResponse=t.RedelegationEntryResponse=t.DelegationResponse=t.Params=t.Redelegation=t.RedelegationEntry=t.UnbondingDelegationEntry=t.UnbondingDelegation=t.Delegation=t.DVVTriplets=t.DVVTriplet=t.DVPairs=t.DVPair=t.ValAddresses=t.Validator=t.Description=t.Commission=t.CommissionRates=t.HistoricalInfo=t.bondStatusToJSON=t.bondStatusFromJSON=t.BondStatus=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1258),s=n(5522),c=n(3862),d=n(281),u=n(891);var l;function A(e){switch(e){case 0:case"BOND_STATUS_UNSPECIFIED":return l.BOND_STATUS_UNSPECIFIED;case 1:case"BOND_STATUS_UNBONDED":return l.BOND_STATUS_UNBONDED;case 2:case"BOND_STATUS_UNBONDING":return l.BOND_STATUS_UNBONDING;case 3:case"BOND_STATUS_BONDED":return l.BOND_STATUS_BONDED;default:return l.UNRECOGNIZED}}function f(e){switch(e){case l.BOND_STATUS_UNSPECIFIED:return"BOND_STATUS_UNSPECIFIED";case l.BOND_STATUS_UNBONDED:return"BOND_STATUS_UNBONDED";case l.BOND_STATUS_UNBONDING:return"BOND_STATUS_UNBONDING";case l.BOND_STATUS_BONDED:return"BOND_STATUS_BONDED";default:return"UNKNOWN"}}t.protobufPackage="cosmos.staking.v1beta1",function(e){e[e.BOND_STATUS_UNSPECIFIED=0]="BOND_STATUS_UNSPECIFIED",e[e.BOND_STATUS_UNBONDED=1]="BOND_STATUS_UNBONDED",e[e.BOND_STATUS_UNBONDING=2]="BOND_STATUS_UNBONDING",e[e.BOND_STATUS_BONDED=3]="BOND_STATUS_BONDED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.BondStatus||(t.BondStatus={})),t.bondStatusFromJSON=A,t.bondStatusToJSON=f;const h={};t.HistoricalInfo={encode(e,n=i.default.Writer.create()){void 0!==e.header&&a.Header.encode(e.header,n.uint32(10).fork()).ldelim();for(const r of e.valset)t.Validator.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},h);for(s.valset=[];r.pos>>3){case 1:s.header=a.Header.decode(r,r.uint32());break;case 2:s.valset.push(t.Validator.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return s},fromJSON(e){var n;const r=Object.assign({},h);return r.header=void 0!==e.header&&null!==e.header?a.Header.fromJSON(e.header):void 0,r.valset=(null!==(n=e.valset)&&void 0!==n?n:[]).map((e=>t.Validator.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.header&&(n.header=e.header?a.Header.toJSON(e.header):void 0),e.valset?n.valset=e.valset.map((e=>e?t.Validator.toJSON(e):void 0)):n.valset=[],n},fromPartial(e){var n;const r=Object.assign({},h);return r.header=void 0!==e.header&&null!==e.header?a.Header.fromPartial(e.header):void 0,r.valset=(null===(n=e.valset)||void 0===n?void 0:n.map((e=>t.Validator.fromPartial(e))))||[],r}};const g={rate:"",maxRate:"",maxChangeRate:""};t.CommissionRates={encode:(e,t=i.default.Writer.create())=>(""!==e.rate&&t.uint32(10).string(e.rate),""!==e.maxRate&&t.uint32(18).string(e.maxRate),""!==e.maxChangeRate&&t.uint32(26).string(e.maxChangeRate),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.rate=n.string();break;case 2:o.maxRate=n.string();break;case 3:o.maxChangeRate=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.rate=void 0!==e.rate&&null!==e.rate?String(e.rate):"",t.maxRate=void 0!==e.maxRate&&null!==e.maxRate?String(e.maxRate):"",t.maxChangeRate=void 0!==e.maxChangeRate&&null!==e.maxChangeRate?String(e.maxChangeRate):"",t},toJSON(e){const t={};return void 0!==e.rate&&(t.rate=e.rate),void 0!==e.maxRate&&(t.maxRate=e.maxRate),void 0!==e.maxChangeRate&&(t.maxChangeRate=e.maxChangeRate),t},fromPartial(e){var t,n,r;const o=Object.assign({},g);return o.rate=null!==(t=e.rate)&&void 0!==t?t:"",o.maxRate=null!==(n=e.maxRate)&&void 0!==n?n:"",o.maxChangeRate=null!==(r=e.maxChangeRate)&&void 0!==r?r:"",o}};const p={};t.Commission={encode:(e,n=i.default.Writer.create())=>(void 0!==e.commissionRates&&t.CommissionRates.encode(e.commissionRates,n.uint32(10).fork()).ldelim(),void 0!==e.updateTime&&s.Timestamp.encode(e.updateTime,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},p);for(;r.pos>>3){case 1:a.commissionRates=t.CommissionRates.decode(r,r.uint32());break;case 2:a.updateTime=s.Timestamp.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},p);return n.commissionRates=void 0!==e.commissionRates&&null!==e.commissionRates?t.CommissionRates.fromJSON(e.commissionRates):void 0,n.updateTime=void 0!==e.updateTime&&null!==e.updateTime?M(e.updateTime):void 0,n},toJSON(e){const n={};return void 0!==e.commissionRates&&(n.commissionRates=e.commissionRates?t.CommissionRates.toJSON(e.commissionRates):void 0),void 0!==e.updateTime&&(n.updateTime=D(e.updateTime).toISOString()),n},fromPartial(e){const n=Object.assign({},p);return n.commissionRates=void 0!==e.commissionRates&&null!==e.commissionRates?t.CommissionRates.fromPartial(e.commissionRates):void 0,n.updateTime=void 0!==e.updateTime&&null!==e.updateTime?s.Timestamp.fromPartial(e.updateTime):void 0,n}};const m={moniker:"",identity:"",website:"",securityContact:"",details:""};t.Description={encode:(e,t=i.default.Writer.create())=>(""!==e.moniker&&t.uint32(10).string(e.moniker),""!==e.identity&&t.uint32(18).string(e.identity),""!==e.website&&t.uint32(26).string(e.website),""!==e.securityContact&&t.uint32(34).string(e.securityContact),""!==e.details&&t.uint32(42).string(e.details),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.moniker=n.string();break;case 2:o.identity=n.string();break;case 3:o.website=n.string();break;case 4:o.securityContact=n.string();break;case 5:o.details=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.moniker=void 0!==e.moniker&&null!==e.moniker?String(e.moniker):"",t.identity=void 0!==e.identity&&null!==e.identity?String(e.identity):"",t.website=void 0!==e.website&&null!==e.website?String(e.website):"",t.securityContact=void 0!==e.securityContact&&null!==e.securityContact?String(e.securityContact):"",t.details=void 0!==e.details&&null!==e.details?String(e.details):"",t},toJSON(e){const t={};return void 0!==e.moniker&&(t.moniker=e.moniker),void 0!==e.identity&&(t.identity=e.identity),void 0!==e.website&&(t.website=e.website),void 0!==e.securityContact&&(t.securityContact=e.securityContact),void 0!==e.details&&(t.details=e.details),t},fromPartial(e){var t,n,r,o,i;const a=Object.assign({},m);return a.moniker=null!==(t=e.moniker)&&void 0!==t?t:"",a.identity=null!==(n=e.identity)&&void 0!==n?n:"",a.website=null!==(r=e.website)&&void 0!==r?r:"",a.securityContact=null!==(o=e.securityContact)&&void 0!==o?o:"",a.details=null!==(i=e.details)&&void 0!==i?i:"",a}};const v={operatorAddress:"",jailed:!1,status:0,tokens:"",delegatorShares:"",unbondingHeight:o.default.ZERO,minSelfDelegation:""};t.Validator={encode:(e,n=i.default.Writer.create())=>(""!==e.operatorAddress&&n.uint32(10).string(e.operatorAddress),void 0!==e.consensusPubkey&&c.Any.encode(e.consensusPubkey,n.uint32(18).fork()).ldelim(),!0===e.jailed&&n.uint32(24).bool(e.jailed),0!==e.status&&n.uint32(32).int32(e.status),""!==e.tokens&&n.uint32(42).string(e.tokens),""!==e.delegatorShares&&n.uint32(50).string(e.delegatorShares),void 0!==e.description&&t.Description.encode(e.description,n.uint32(58).fork()).ldelim(),e.unbondingHeight.isZero()||n.uint32(64).int64(e.unbondingHeight),void 0!==e.unbondingTime&&s.Timestamp.encode(e.unbondingTime,n.uint32(74).fork()).ldelim(),void 0!==e.commission&&t.Commission.encode(e.commission,n.uint32(82).fork()).ldelim(),""!==e.minSelfDelegation&&n.uint32(90).string(e.minSelfDelegation),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},v);for(;r.pos>>3){case 1:a.operatorAddress=r.string();break;case 2:a.consensusPubkey=c.Any.decode(r,r.uint32());break;case 3:a.jailed=r.bool();break;case 4:a.status=r.int32();break;case 5:a.tokens=r.string();break;case 6:a.delegatorShares=r.string();break;case 7:a.description=t.Description.decode(r,r.uint32());break;case 8:a.unbondingHeight=r.int64();break;case 9:a.unbondingTime=s.Timestamp.decode(r,r.uint32());break;case 10:a.commission=t.Commission.decode(r,r.uint32());break;case 11:a.minSelfDelegation=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},v);return n.operatorAddress=void 0!==e.operatorAddress&&null!==e.operatorAddress?String(e.operatorAddress):"",n.consensusPubkey=void 0!==e.consensusPubkey&&null!==e.consensusPubkey?c.Any.fromJSON(e.consensusPubkey):void 0,n.jailed=void 0!==e.jailed&&null!==e.jailed&&Boolean(e.jailed),n.status=void 0!==e.status&&null!==e.status?A(e.status):0,n.tokens=void 0!==e.tokens&&null!==e.tokens?String(e.tokens):"",n.delegatorShares=void 0!==e.delegatorShares&&null!==e.delegatorShares?String(e.delegatorShares):"",n.description=void 0!==e.description&&null!==e.description?t.Description.fromJSON(e.description):void 0,n.unbondingHeight=void 0!==e.unbondingHeight&&null!==e.unbondingHeight?o.default.fromString(e.unbondingHeight):o.default.ZERO,n.unbondingTime=void 0!==e.unbondingTime&&null!==e.unbondingTime?M(e.unbondingTime):void 0,n.commission=void 0!==e.commission&&null!==e.commission?t.Commission.fromJSON(e.commission):void 0,n.minSelfDelegation=void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?String(e.minSelfDelegation):"",n},toJSON(e){const n={};return void 0!==e.operatorAddress&&(n.operatorAddress=e.operatorAddress),void 0!==e.consensusPubkey&&(n.consensusPubkey=e.consensusPubkey?c.Any.toJSON(e.consensusPubkey):void 0),void 0!==e.jailed&&(n.jailed=e.jailed),void 0!==e.status&&(n.status=f(e.status)),void 0!==e.tokens&&(n.tokens=e.tokens),void 0!==e.delegatorShares&&(n.delegatorShares=e.delegatorShares),void 0!==e.description&&(n.description=e.description?t.Description.toJSON(e.description):void 0),void 0!==e.unbondingHeight&&(n.unbondingHeight=(e.unbondingHeight||o.default.ZERO).toString()),void 0!==e.unbondingTime&&(n.unbondingTime=D(e.unbondingTime).toISOString()),void 0!==e.commission&&(n.commission=e.commission?t.Commission.toJSON(e.commission):void 0),void 0!==e.minSelfDelegation&&(n.minSelfDelegation=e.minSelfDelegation),n},fromPartial(e){var n,r,i,a,d,u;const l=Object.assign({},v);return l.operatorAddress=null!==(n=e.operatorAddress)&&void 0!==n?n:"",l.consensusPubkey=void 0!==e.consensusPubkey&&null!==e.consensusPubkey?c.Any.fromPartial(e.consensusPubkey):void 0,l.jailed=null!==(r=e.jailed)&&void 0!==r&&r,l.status=null!==(i=e.status)&&void 0!==i?i:0,l.tokens=null!==(a=e.tokens)&&void 0!==a?a:"",l.delegatorShares=null!==(d=e.delegatorShares)&&void 0!==d?d:"",l.description=void 0!==e.description&&null!==e.description?t.Description.fromPartial(e.description):void 0,l.unbondingHeight=void 0!==e.unbondingHeight&&null!==e.unbondingHeight?o.default.fromValue(e.unbondingHeight):o.default.ZERO,l.unbondingTime=void 0!==e.unbondingTime&&null!==e.unbondingTime?s.Timestamp.fromPartial(e.unbondingTime):void 0,l.commission=void 0!==e.commission&&null!==e.commission?t.Commission.fromPartial(e.commission):void 0,l.minSelfDelegation=null!==(u=e.minSelfDelegation)&&void 0!==u?u:"",l}};const y={addresses:""};t.ValAddresses={encode(e,t=i.default.Writer.create()){for(const n of e.addresses)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.addresses=[];n.pos>>3==1?o.addresses.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},y);return n.addresses=(null!==(t=e.addresses)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.addresses?t.addresses=e.addresses.map((e=>e)):t.addresses=[],t},fromPartial(e){var t;const n=Object.assign({},y);return n.addresses=(null===(t=e.addresses)||void 0===t?void 0:t.map((e=>e)))||[],n}};const b={delegatorAddress:"",validatorAddress:""};t.DVPair={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r}};const I={};t.DVPairs={encode(e,n=i.default.Writer.create()){for(const r of e.pairs)t.DVPair.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},I);for(a.pairs=[];r.pos>>3==1?a.pairs.push(t.DVPair.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},I);return r.pairs=(null!==(n=e.pairs)&&void 0!==n?n:[]).map((e=>t.DVPair.fromJSON(e))),r},toJSON(e){const n={};return e.pairs?n.pairs=e.pairs.map((e=>e?t.DVPair.toJSON(e):void 0)):n.pairs=[],n},fromPartial(e){var n;const r=Object.assign({},I);return r.pairs=(null===(n=e.pairs)||void 0===n?void 0:n.map((e=>t.DVPair.fromPartial(e))))||[],r}};const C={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.DVVTriplet={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&t.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&t.uint32(26).string(e.validatorDstAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorSrcAddress=n.string();break;case 3:o.validatorDstAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorSrcAddress=void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?String(e.validatorSrcAddress):"",t.validatorDstAddress=void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?String(e.validatorDstAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(t.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(t.validatorDstAddress=e.validatorDstAddress),t},fromPartial(e){var t,n,r;const o=Object.assign({},C);return o.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",o.validatorSrcAddress=null!==(n=e.validatorSrcAddress)&&void 0!==n?n:"",o.validatorDstAddress=null!==(r=e.validatorDstAddress)&&void 0!==r?r:"",o}};const E={};t.DVVTriplets={encode(e,n=i.default.Writer.create()){for(const r of e.triplets)t.DVVTriplet.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},E);for(a.triplets=[];r.pos>>3==1?a.triplets.push(t.DVVTriplet.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},E);return r.triplets=(null!==(n=e.triplets)&&void 0!==n?n:[]).map((e=>t.DVVTriplet.fromJSON(e))),r},toJSON(e){const n={};return e.triplets?n.triplets=e.triplets.map((e=>e?t.DVVTriplet.toJSON(e):void 0)):n.triplets=[],n},fromPartial(e){var n;const r=Object.assign({},E);return r.triplets=(null===(n=e.triplets)||void 0===n?void 0:n.map((e=>t.DVVTriplet.fromPartial(e))))||[],r}};const w={delegatorAddress:"",validatorAddress:"",shares:""};t.Delegation={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),""!==e.shares&&t.uint32(26).string(e.shares),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;case 3:o.shares=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.shares=void 0!==e.shares&&null!==e.shares?String(e.shares):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.shares&&(t.shares=e.shares),t},fromPartial(e){var t,n,r;const o=Object.assign({},w);return o.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",o.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",o.shares=null!==(r=e.shares)&&void 0!==r?r:"",o}};const B={delegatorAddress:"",validatorAddress:""};t.UnbondingDelegation={encode(e,n=i.default.Writer.create()){""!==e.delegatorAddress&&n.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&n.uint32(18).string(e.validatorAddress);for(const r of e.entries)t.UnbondingDelegationEntry.encode(r,n.uint32(26).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},B);for(a.entries=[];r.pos>>3){case 1:a.delegatorAddress=r.string();break;case 2:a.validatorAddress=r.string();break;case 3:a.entries.push(t.UnbondingDelegationEntry.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},B);return r.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",r.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",r.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.UnbondingDelegationEntry.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.delegatorAddress&&(n.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(n.validatorAddress=e.validatorAddress),e.entries?n.entries=e.entries.map((e=>e?t.UnbondingDelegationEntry.toJSON(e):void 0)):n.entries=[],n},fromPartial(e){var n,r,o;const i=Object.assign({},B);return i.delegatorAddress=null!==(n=e.delegatorAddress)&&void 0!==n?n:"",i.validatorAddress=null!==(r=e.validatorAddress)&&void 0!==r?r:"",i.entries=(null===(o=e.entries)||void 0===o?void 0:o.map((e=>t.UnbondingDelegationEntry.fromPartial(e))))||[],i}};const _={creationHeight:o.default.ZERO,initialBalance:"",balance:""};t.UnbondingDelegationEntry={encode:(e,t=i.default.Writer.create())=>(e.creationHeight.isZero()||t.uint32(8).int64(e.creationHeight),void 0!==e.completionTime&&s.Timestamp.encode(e.completionTime,t.uint32(18).fork()).ldelim(),""!==e.initialBalance&&t.uint32(26).string(e.initialBalance),""!==e.balance&&t.uint32(34).string(e.balance),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(;n.pos>>3){case 1:o.creationHeight=n.int64();break;case 2:o.completionTime=s.Timestamp.decode(n,n.uint32());break;case 3:o.initialBalance=n.string();break;case 4:o.balance=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.creationHeight=void 0!==e.creationHeight&&null!==e.creationHeight?o.default.fromString(e.creationHeight):o.default.ZERO,t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?M(e.completionTime):void 0,t.initialBalance=void 0!==e.initialBalance&&null!==e.initialBalance?String(e.initialBalance):"",t.balance=void 0!==e.balance&&null!==e.balance?String(e.balance):"",t},toJSON(e){const t={};return void 0!==e.creationHeight&&(t.creationHeight=(e.creationHeight||o.default.ZERO).toString()),void 0!==e.completionTime&&(t.completionTime=D(e.completionTime).toISOString()),void 0!==e.initialBalance&&(t.initialBalance=e.initialBalance),void 0!==e.balance&&(t.balance=e.balance),t},fromPartial(e){var t,n;const r=Object.assign({},_);return r.creationHeight=void 0!==e.creationHeight&&null!==e.creationHeight?o.default.fromValue(e.creationHeight):o.default.ZERO,r.completionTime=void 0!==e.completionTime&&null!==e.completionTime?s.Timestamp.fromPartial(e.completionTime):void 0,r.initialBalance=null!==(t=e.initialBalance)&&void 0!==t?t:"",r.balance=null!==(n=e.balance)&&void 0!==n?n:"",r}};const S={creationHeight:o.default.ZERO,initialBalance:"",sharesDst:""};t.RedelegationEntry={encode:(e,t=i.default.Writer.create())=>(e.creationHeight.isZero()||t.uint32(8).int64(e.creationHeight),void 0!==e.completionTime&&s.Timestamp.encode(e.completionTime,t.uint32(18).fork()).ldelim(),""!==e.initialBalance&&t.uint32(26).string(e.initialBalance),""!==e.sharesDst&&t.uint32(34).string(e.sharesDst),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(;n.pos>>3){case 1:o.creationHeight=n.int64();break;case 2:o.completionTime=s.Timestamp.decode(n,n.uint32());break;case 3:o.initialBalance=n.string();break;case 4:o.sharesDst=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);return t.creationHeight=void 0!==e.creationHeight&&null!==e.creationHeight?o.default.fromString(e.creationHeight):o.default.ZERO,t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?M(e.completionTime):void 0,t.initialBalance=void 0!==e.initialBalance&&null!==e.initialBalance?String(e.initialBalance):"",t.sharesDst=void 0!==e.sharesDst&&null!==e.sharesDst?String(e.sharesDst):"",t},toJSON(e){const t={};return void 0!==e.creationHeight&&(t.creationHeight=(e.creationHeight||o.default.ZERO).toString()),void 0!==e.completionTime&&(t.completionTime=D(e.completionTime).toISOString()),void 0!==e.initialBalance&&(t.initialBalance=e.initialBalance),void 0!==e.sharesDst&&(t.sharesDst=e.sharesDst),t},fromPartial(e){var t,n;const r=Object.assign({},S);return r.creationHeight=void 0!==e.creationHeight&&null!==e.creationHeight?o.default.fromValue(e.creationHeight):o.default.ZERO,r.completionTime=void 0!==e.completionTime&&null!==e.completionTime?s.Timestamp.fromPartial(e.completionTime):void 0,r.initialBalance=null!==(t=e.initialBalance)&&void 0!==t?t:"",r.sharesDst=null!==(n=e.sharesDst)&&void 0!==n?n:"",r}};const k={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.Redelegation={encode(e,n=i.default.Writer.create()){""!==e.delegatorAddress&&n.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&n.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&n.uint32(26).string(e.validatorDstAddress);for(const r of e.entries)t.RedelegationEntry.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},k);for(a.entries=[];r.pos>>3){case 1:a.delegatorAddress=r.string();break;case 2:a.validatorSrcAddress=r.string();break;case 3:a.validatorDstAddress=r.string();break;case 4:a.entries.push(t.RedelegationEntry.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},k);return r.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",r.validatorSrcAddress=void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?String(e.validatorSrcAddress):"",r.validatorDstAddress=void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?String(e.validatorDstAddress):"",r.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.RedelegationEntry.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.delegatorAddress&&(n.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(n.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(n.validatorDstAddress=e.validatorDstAddress),e.entries?n.entries=e.entries.map((e=>e?t.RedelegationEntry.toJSON(e):void 0)):n.entries=[],n},fromPartial(e){var n,r,o,i;const a=Object.assign({},k);return a.delegatorAddress=null!==(n=e.delegatorAddress)&&void 0!==n?n:"",a.validatorSrcAddress=null!==(r=e.validatorSrcAddress)&&void 0!==r?r:"",a.validatorDstAddress=null!==(o=e.validatorDstAddress)&&void 0!==o?o:"",a.entries=(null===(i=e.entries)||void 0===i?void 0:i.map((e=>t.RedelegationEntry.fromPartial(e))))||[],a}};const O={maxValidators:0,maxEntries:0,historicalEntries:0,bondDenom:""};t.Params={encode:(e,t=i.default.Writer.create())=>(void 0!==e.unbondingTime&&d.Duration.encode(e.unbondingTime,t.uint32(10).fork()).ldelim(),0!==e.maxValidators&&t.uint32(16).uint32(e.maxValidators),0!==e.maxEntries&&t.uint32(24).uint32(e.maxEntries),0!==e.historicalEntries&&t.uint32(32).uint32(e.historicalEntries),""!==e.bondDenom&&t.uint32(42).string(e.bondDenom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},O);for(;n.pos>>3){case 1:o.unbondingTime=d.Duration.decode(n,n.uint32());break;case 2:o.maxValidators=n.uint32();break;case 3:o.maxEntries=n.uint32();break;case 4:o.historicalEntries=n.uint32();break;case 5:o.bondDenom=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},O);return t.unbondingTime=void 0!==e.unbondingTime&&null!==e.unbondingTime?d.Duration.fromJSON(e.unbondingTime):void 0,t.maxValidators=void 0!==e.maxValidators&&null!==e.maxValidators?Number(e.maxValidators):0,t.maxEntries=void 0!==e.maxEntries&&null!==e.maxEntries?Number(e.maxEntries):0,t.historicalEntries=void 0!==e.historicalEntries&&null!==e.historicalEntries?Number(e.historicalEntries):0,t.bondDenom=void 0!==e.bondDenom&&null!==e.bondDenom?String(e.bondDenom):"",t},toJSON(e){const t={};return void 0!==e.unbondingTime&&(t.unbondingTime=e.unbondingTime?d.Duration.toJSON(e.unbondingTime):void 0),void 0!==e.maxValidators&&(t.maxValidators=e.maxValidators),void 0!==e.maxEntries&&(t.maxEntries=e.maxEntries),void 0!==e.historicalEntries&&(t.historicalEntries=e.historicalEntries),void 0!==e.bondDenom&&(t.bondDenom=e.bondDenom),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},O);return i.unbondingTime=void 0!==e.unbondingTime&&null!==e.unbondingTime?d.Duration.fromPartial(e.unbondingTime):void 0,i.maxValidators=null!==(t=e.maxValidators)&&void 0!==t?t:0,i.maxEntries=null!==(n=e.maxEntries)&&void 0!==n?n:0,i.historicalEntries=null!==(r=e.historicalEntries)&&void 0!==r?r:0,i.bondDenom=null!==(o=e.bondDenom)&&void 0!==o?o:"",i}};const Q={};t.DelegationResponse={encode:(e,n=i.default.Writer.create())=>(void 0!==e.delegation&&t.Delegation.encode(e.delegation,n.uint32(10).fork()).ldelim(),void 0!==e.balance&&u.Coin.encode(e.balance,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},Q);for(;r.pos>>3){case 1:a.delegation=t.Delegation.decode(r,r.uint32());break;case 2:a.balance=u.Coin.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},Q);return n.delegation=void 0!==e.delegation&&null!==e.delegation?t.Delegation.fromJSON(e.delegation):void 0,n.balance=void 0!==e.balance&&null!==e.balance?u.Coin.fromJSON(e.balance):void 0,n},toJSON(e){const n={};return void 0!==e.delegation&&(n.delegation=e.delegation?t.Delegation.toJSON(e.delegation):void 0),void 0!==e.balance&&(n.balance=e.balance?u.Coin.toJSON(e.balance):void 0),n},fromPartial(e){const n=Object.assign({},Q);return n.delegation=void 0!==e.delegation&&null!==e.delegation?t.Delegation.fromPartial(e.delegation):void 0,n.balance=void 0!==e.balance&&null!==e.balance?u.Coin.fromPartial(e.balance):void 0,n}};const R={balance:""};t.RedelegationEntryResponse={encode:(e,n=i.default.Writer.create())=>(void 0!==e.redelegationEntry&&t.RedelegationEntry.encode(e.redelegationEntry,n.uint32(10).fork()).ldelim(),""!==e.balance&&n.uint32(34).string(e.balance),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},R);for(;r.pos>>3){case 1:a.redelegationEntry=t.RedelegationEntry.decode(r,r.uint32());break;case 4:a.balance=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},R);return n.redelegationEntry=void 0!==e.redelegationEntry&&null!==e.redelegationEntry?t.RedelegationEntry.fromJSON(e.redelegationEntry):void 0,n.balance=void 0!==e.balance&&null!==e.balance?String(e.balance):"",n},toJSON(e){const n={};return void 0!==e.redelegationEntry&&(n.redelegationEntry=e.redelegationEntry?t.RedelegationEntry.toJSON(e.redelegationEntry):void 0),void 0!==e.balance&&(n.balance=e.balance),n},fromPartial(e){var n;const r=Object.assign({},R);return r.redelegationEntry=void 0!==e.redelegationEntry&&null!==e.redelegationEntry?t.RedelegationEntry.fromPartial(e.redelegationEntry):void 0,r.balance=null!==(n=e.balance)&&void 0!==n?n:"",r}};const P={};t.RedelegationResponse={encode(e,n=i.default.Writer.create()){void 0!==e.redelegation&&t.Redelegation.encode(e.redelegation,n.uint32(10).fork()).ldelim();for(const r of e.entries)t.RedelegationEntryResponse.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},P);for(a.entries=[];r.pos>>3){case 1:a.redelegation=t.Redelegation.decode(r,r.uint32());break;case 2:a.entries.push(t.RedelegationEntryResponse.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},P);return r.redelegation=void 0!==e.redelegation&&null!==e.redelegation?t.Redelegation.fromJSON(e.redelegation):void 0,r.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.RedelegationEntryResponse.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.redelegation&&(n.redelegation=e.redelegation?t.Redelegation.toJSON(e.redelegation):void 0),e.entries?n.entries=e.entries.map((e=>e?t.RedelegationEntryResponse.toJSON(e):void 0)):n.entries=[],n},fromPartial(e){var n;const r=Object.assign({},P);return r.redelegation=void 0!==e.redelegation&&null!==e.redelegation?t.Redelegation.fromPartial(e.redelegation):void 0,r.entries=(null===(n=e.entries)||void 0===n?void 0:n.map((e=>t.RedelegationEntryResponse.fromPartial(e))))||[],r}};const N={notBondedTokens:"",bondedTokens:""};function x(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function D(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function M(e){return e instanceof Date?x(e):"string"==typeof e?x(new Date(e)):s.Timestamp.fromJSON(e)}t.Pool={encode:(e,t=i.default.Writer.create())=>(""!==e.notBondedTokens&&t.uint32(10).string(e.notBondedTokens),""!==e.bondedTokens&&t.uint32(18).string(e.bondedTokens),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},N);for(;n.pos>>3){case 1:o.notBondedTokens=n.string();break;case 2:o.bondedTokens=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},N);return t.notBondedTokens=void 0!==e.notBondedTokens&&null!==e.notBondedTokens?String(e.notBondedTokens):"",t.bondedTokens=void 0!==e.bondedTokens&&null!==e.bondedTokens?String(e.bondedTokens):"",t},toJSON(e){const t={};return void 0!==e.notBondedTokens&&(t.notBondedTokens=e.notBondedTokens),void 0!==e.bondedTokens&&(t.bondedTokens=e.bondedTokens),t},fromPartial(e){var t,n;const r=Object.assign({},N);return r.notBondedTokens=null!==(t=e.notBondedTokens)&&void 0!==t?t:"",r.bondedTokens=null!==(n=e.bondedTokens)&&void 0!==n?n:"",r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},422:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgUndelegateResponse=t.MsgUndelegate=t.MsgBeginRedelegateResponse=t.MsgBeginRedelegate=t.MsgDelegateResponse=t.MsgDelegate=t.MsgEditValidatorResponse=t.MsgEditValidator=t.MsgCreateValidatorResponse=t.MsgCreateValidator=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9355),s=n(3862),c=n(891),d=n(5522);t.protobufPackage="cosmos.staking.v1beta1";const u={minSelfDelegation:"",delegatorAddress:"",validatorAddress:""};t.MsgCreateValidator={encode:(e,t=i.default.Writer.create())=>(void 0!==e.description&&a.Description.encode(e.description,t.uint32(10).fork()).ldelim(),void 0!==e.commission&&a.CommissionRates.encode(e.commission,t.uint32(18).fork()).ldelim(),""!==e.minSelfDelegation&&t.uint32(26).string(e.minSelfDelegation),""!==e.delegatorAddress&&t.uint32(34).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(42).string(e.validatorAddress),void 0!==e.pubkey&&s.Any.encode(e.pubkey,t.uint32(50).fork()).ldelim(),void 0!==e.value&&c.Coin.encode(e.value,t.uint32(58).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.description=a.Description.decode(n,n.uint32());break;case 2:o.commission=a.CommissionRates.decode(n,n.uint32());break;case 3:o.minSelfDelegation=n.string();break;case 4:o.delegatorAddress=n.string();break;case 5:o.validatorAddress=n.string();break;case 6:o.pubkey=s.Any.decode(n,n.uint32());break;case 7:o.value=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.description=void 0!==e.description&&null!==e.description?a.Description.fromJSON(e.description):void 0,t.commission=void 0!==e.commission&&null!==e.commission?a.CommissionRates.fromJSON(e.commission):void 0,t.minSelfDelegation=void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?String(e.minSelfDelegation):"",t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.pubkey=void 0!==e.pubkey&&null!==e.pubkey?s.Any.fromJSON(e.pubkey):void 0,t.value=void 0!==e.value&&null!==e.value?c.Coin.fromJSON(e.value):void 0,t},toJSON(e){const t={};return void 0!==e.description&&(t.description=e.description?a.Description.toJSON(e.description):void 0),void 0!==e.commission&&(t.commission=e.commission?a.CommissionRates.toJSON(e.commission):void 0),void 0!==e.minSelfDelegation&&(t.minSelfDelegation=e.minSelfDelegation),void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.pubkey&&(t.pubkey=e.pubkey?s.Any.toJSON(e.pubkey):void 0),void 0!==e.value&&(t.value=e.value?c.Coin.toJSON(e.value):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},u);return o.description=void 0!==e.description&&null!==e.description?a.Description.fromPartial(e.description):void 0,o.commission=void 0!==e.commission&&null!==e.commission?a.CommissionRates.fromPartial(e.commission):void 0,o.minSelfDelegation=null!==(t=e.minSelfDelegation)&&void 0!==t?t:"",o.delegatorAddress=null!==(n=e.delegatorAddress)&&void 0!==n?n:"",o.validatorAddress=null!==(r=e.validatorAddress)&&void 0!==r?r:"",o.pubkey=void 0!==e.pubkey&&null!==e.pubkey?s.Any.fromPartial(e.pubkey):void 0,o.value=void 0!==e.value&&null!==e.value?c.Coin.fromPartial(e.value):void 0,o}};const l={};t.MsgCreateValidatorResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const A={validatorAddress:"",commissionRate:"",minSelfDelegation:""};t.MsgEditValidator={encode:(e,t=i.default.Writer.create())=>(void 0!==e.description&&a.Description.encode(e.description,t.uint32(10).fork()).ldelim(),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),""!==e.commissionRate&&t.uint32(26).string(e.commissionRate),""!==e.minSelfDelegation&&t.uint32(34).string(e.minSelfDelegation),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.description=a.Description.decode(n,n.uint32());break;case 2:o.validatorAddress=n.string();break;case 3:o.commissionRate=n.string();break;case 4:o.minSelfDelegation=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.description=void 0!==e.description&&null!==e.description?a.Description.fromJSON(e.description):void 0,t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.commissionRate=void 0!==e.commissionRate&&null!==e.commissionRate?String(e.commissionRate):"",t.minSelfDelegation=void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?String(e.minSelfDelegation):"",t},toJSON(e){const t={};return void 0!==e.description&&(t.description=e.description?a.Description.toJSON(e.description):void 0),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.commissionRate&&(t.commissionRate=e.commissionRate),void 0!==e.minSelfDelegation&&(t.minSelfDelegation=e.minSelfDelegation),t},fromPartial(e){var t,n,r;const o=Object.assign({},A);return o.description=void 0!==e.description&&null!==e.description?a.Description.fromPartial(e.description):void 0,o.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",o.commissionRate=null!==(n=e.commissionRate)&&void 0!==n?n:"",o.minSelfDelegation=null!==(r=e.minSelfDelegation)&&void 0!==r?r:"",o}};const f={};t.MsgEditValidatorResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={delegatorAddress:"",validatorAddress:""};t.MsgDelegate={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;case 3:o.amount=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromJSON(e.amount):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},h);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromPartial(e.amount):void 0,r}};const g={};t.MsgDelegateResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)};const p={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.MsgBeginRedelegate={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&t.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&t.uint32(26).string(e.validatorDstAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorSrcAddress=n.string();break;case 3:o.validatorDstAddress=n.string();break;case 4:o.amount=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorSrcAddress=void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?String(e.validatorSrcAddress):"",t.validatorDstAddress=void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?String(e.validatorDstAddress):"",t.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromJSON(e.amount):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(t.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(t.validatorDstAddress=e.validatorDstAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},p);return o.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",o.validatorSrcAddress=null!==(n=e.validatorSrcAddress)&&void 0!==n?n:"",o.validatorDstAddress=null!==(r=e.validatorDstAddress)&&void 0!==r?r:"",o.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromPartial(e.amount):void 0,o}};const m={};t.MsgBeginRedelegateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.completionTime&&d.Timestamp.encode(e.completionTime,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3==1?o.completionTime=d.Timestamp.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?C(e.completionTime):void 0,t},toJSON(e){const t={};return void 0!==e.completionTime&&(t.completionTime=I(e.completionTime).toISOString()),t},fromPartial(e){const t=Object.assign({},m);return t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?d.Timestamp.fromPartial(e.completionTime):void 0,t}};const v={delegatorAddress:"",validatorAddress:""};t.MsgUndelegate={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;case 3:o.amount=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromJSON(e.amount):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromPartial(e.amount):void 0,r}};const y={};function b(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function I(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function C(e){return e instanceof Date?b(e):"string"==typeof e?b(new Date(e)):d.Timestamp.fromJSON(e)}t.MsgUndelegateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.completionTime&&d.Timestamp.encode(e.completionTime,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.completionTime=d.Timestamp.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?C(e.completionTime):void 0,t},toJSON(e){const t={};return void 0!==e.completionTime&&(t.completionTime=I(e.completionTime).toISOString()),t},fromPartial(e){const t=Object.assign({},y);return t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?d.Timestamp.fromPartial(e.completionTime):void 0,t}},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.CreateValidator=this.CreateValidator.bind(this),this.EditValidator=this.EditValidator.bind(this),this.Delegate=this.Delegate.bind(this),this.BeginRedelegate=this.BeginRedelegate.bind(this),this.Undelegate=this.Undelegate.bind(this)}CreateValidator(e){const n=t.MsgCreateValidator.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","CreateValidator",n).then((e=>t.MsgCreateValidatorResponse.decode(new i.default.Reader(e))))}EditValidator(e){const n=t.MsgEditValidator.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","EditValidator",n).then((e=>t.MsgEditValidatorResponse.decode(new i.default.Reader(e))))}Delegate(e){const n=t.MsgDelegate.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","Delegate",n).then((e=>t.MsgDelegateResponse.decode(new i.default.Reader(e))))}BeginRedelegate(e){const n=t.MsgBeginRedelegate.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","BeginRedelegate",n).then((e=>t.MsgBeginRedelegateResponse.decode(new i.default.Reader(e))))}Undelegate(e){const n=t.MsgUndelegate.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","Undelegate",n).then((e=>t.MsgUndelegateResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},2574:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SignatureDescriptor_Data_Multi=t.SignatureDescriptor_Data_Single=t.SignatureDescriptor_Data=t.SignatureDescriptor=t.SignatureDescriptors=t.signModeToJSON=t.signModeFromJSON=t.SignMode=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(7381);var c;function d(e){switch(e){case 0:case"SIGN_MODE_UNSPECIFIED":return c.SIGN_MODE_UNSPECIFIED;case 1:case"SIGN_MODE_DIRECT":return c.SIGN_MODE_DIRECT;case 2:case"SIGN_MODE_TEXTUAL":return c.SIGN_MODE_TEXTUAL;case 127:case"SIGN_MODE_LEGACY_AMINO_JSON":return c.SIGN_MODE_LEGACY_AMINO_JSON;default:return c.UNRECOGNIZED}}function u(e){switch(e){case c.SIGN_MODE_UNSPECIFIED:return"SIGN_MODE_UNSPECIFIED";case c.SIGN_MODE_DIRECT:return"SIGN_MODE_DIRECT";case c.SIGN_MODE_TEXTUAL:return"SIGN_MODE_TEXTUAL";case c.SIGN_MODE_LEGACY_AMINO_JSON:return"SIGN_MODE_LEGACY_AMINO_JSON";default:return"UNKNOWN"}}t.protobufPackage="cosmos.tx.signing.v1beta1",function(e){e[e.SIGN_MODE_UNSPECIFIED=0]="SIGN_MODE_UNSPECIFIED",e[e.SIGN_MODE_DIRECT=1]="SIGN_MODE_DIRECT",e[e.SIGN_MODE_TEXTUAL=2]="SIGN_MODE_TEXTUAL",e[e.SIGN_MODE_LEGACY_AMINO_JSON=127]="SIGN_MODE_LEGACY_AMINO_JSON",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(c=t.SignMode||(t.SignMode={})),t.signModeFromJSON=d,t.signModeToJSON=u;const l={};t.SignatureDescriptors={encode(e,n=i.default.Writer.create()){for(const r of e.signatures)t.SignatureDescriptor.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},l);for(a.signatures=[];r.pos>>3==1?a.signatures.push(t.SignatureDescriptor.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},l);return r.signatures=(null!==(n=e.signatures)&&void 0!==n?n:[]).map((e=>t.SignatureDescriptor.fromJSON(e))),r},toJSON(e){const n={};return e.signatures?n.signatures=e.signatures.map((e=>e?t.SignatureDescriptor.toJSON(e):void 0)):n.signatures=[],n},fromPartial(e){var n;const r=Object.assign({},l);return r.signatures=(null===(n=e.signatures)||void 0===n?void 0:n.map((e=>t.SignatureDescriptor.fromPartial(e))))||[],r}};const A={sequence:o.default.UZERO};t.SignatureDescriptor={encode:(e,n=i.default.Writer.create())=>(void 0!==e.publicKey&&a.Any.encode(e.publicKey,n.uint32(10).fork()).ldelim(),void 0!==e.data&&t.SignatureDescriptor_Data.encode(e.data,n.uint32(18).fork()).ldelim(),e.sequence.isZero()||n.uint32(24).uint64(e.sequence),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},A);for(;r.pos>>3){case 1:s.publicKey=a.Any.decode(r,r.uint32());break;case 2:s.data=t.SignatureDescriptor_Data.decode(r,r.uint32());break;case 3:s.sequence=r.uint64();break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},A);return n.publicKey=void 0!==e.publicKey&&null!==e.publicKey?a.Any.fromJSON(e.publicKey):void 0,n.data=void 0!==e.data&&null!==e.data?t.SignatureDescriptor_Data.fromJSON(e.data):void 0,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,n},toJSON(e){const n={};return void 0!==e.publicKey&&(n.publicKey=e.publicKey?a.Any.toJSON(e.publicKey):void 0),void 0!==e.data&&(n.data=e.data?t.SignatureDescriptor_Data.toJSON(e.data):void 0),void 0!==e.sequence&&(n.sequence=(e.sequence||o.default.UZERO).toString()),n},fromPartial(e){const n=Object.assign({},A);return n.publicKey=void 0!==e.publicKey&&null!==e.publicKey?a.Any.fromPartial(e.publicKey):void 0,n.data=void 0!==e.data&&null!==e.data?t.SignatureDescriptor_Data.fromPartial(e.data):void 0,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,n}};const f={};t.SignatureDescriptor_Data={encode:(e,n=i.default.Writer.create())=>(void 0!==e.single&&t.SignatureDescriptor_Data_Single.encode(e.single,n.uint32(10).fork()).ldelim(),void 0!==e.multi&&t.SignatureDescriptor_Data_Multi.encode(e.multi,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(;r.pos>>3){case 1:a.single=t.SignatureDescriptor_Data_Single.decode(r,r.uint32());break;case 2:a.multi=t.SignatureDescriptor_Data_Multi.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},f);return n.single=void 0!==e.single&&null!==e.single?t.SignatureDescriptor_Data_Single.fromJSON(e.single):void 0,n.multi=void 0!==e.multi&&null!==e.multi?t.SignatureDescriptor_Data_Multi.fromJSON(e.multi):void 0,n},toJSON(e){const n={};return void 0!==e.single&&(n.single=e.single?t.SignatureDescriptor_Data_Single.toJSON(e.single):void 0),void 0!==e.multi&&(n.multi=e.multi?t.SignatureDescriptor_Data_Multi.toJSON(e.multi):void 0),n},fromPartial(e){const n=Object.assign({},f);return n.single=void 0!==e.single&&null!==e.single?t.SignatureDescriptor_Data_Single.fromPartial(e.single):void 0,n.multi=void 0!==e.multi&&null!==e.multi?t.SignatureDescriptor_Data_Multi.fromPartial(e.multi):void 0,n}};const h={mode:0};t.SignatureDescriptor_Data_Single={encode:(e,t=i.default.Writer.create())=>(0!==e.mode&&t.uint32(8).int32(e.mode),0!==e.signature.length&&t.uint32(18).bytes(e.signature),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.signature=new Uint8Array;n.pos>>3){case 1:o.mode=n.int32();break;case 2:o.signature=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.mode=void 0!==e.mode&&null!==e.mode?d(e.mode):0,t.signature=void 0!==e.signature&&null!==e.signature?function(e){const t=m(e),n=new Uint8Array(t.length);for(let e=0;e>>3){case 1:a.bitarray=s.CompactBitArray.decode(r,r.uint32());break;case 2:a.signatures.push(t.SignatureDescriptor_Data.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},g);return r.bitarray=void 0!==e.bitarray&&null!==e.bitarray?s.CompactBitArray.fromJSON(e.bitarray):void 0,r.signatures=(null!==(n=e.signatures)&&void 0!==n?n:[]).map((e=>t.SignatureDescriptor_Data.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.bitarray&&(n.bitarray=e.bitarray?s.CompactBitArray.toJSON(e.bitarray):void 0),e.signatures?n.signatures=e.signatures.map((e=>e?t.SignatureDescriptor_Data.toJSON(e):void 0)):n.signatures=[],n},fromPartial(e){var n;const r=Object.assign({},g);return r.bitarray=void 0!==e.bitarray&&null!==e.bitarray?s.CompactBitArray.fromPartial(e.bitarray):void 0,r.signatures=(null===(n=e.signatures)||void 0===n?void 0:n.map((e=>t.SignatureDescriptor_Data.fromPartial(e))))||[],r}};var p=(()=>{if(void 0!==p)return p;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const m=p.atob||(e=>p.Buffer.from(e,"base64").toString("binary")),v=p.btoa||(e=>p.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4616:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceClientImpl=t.GetTxResponse=t.GetTxRequest=t.SimulateResponse=t.SimulateRequest=t.BroadcastTxResponse=t.BroadcastTxRequest=t.GetTxsEventResponse=t.GetTxsEventRequest=t.broadcastModeToJSON=t.broadcastModeFromJSON=t.BroadcastMode=t.orderByToJSON=t.orderByFromJSON=t.OrderBy=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9551),s=n(4194),c=n(9639);var d,u;function l(e){switch(e){case 0:case"ORDER_BY_UNSPECIFIED":return d.ORDER_BY_UNSPECIFIED;case 1:case"ORDER_BY_ASC":return d.ORDER_BY_ASC;case 2:case"ORDER_BY_DESC":return d.ORDER_BY_DESC;default:return d.UNRECOGNIZED}}function A(e){switch(e){case d.ORDER_BY_UNSPECIFIED:return"ORDER_BY_UNSPECIFIED";case d.ORDER_BY_ASC:return"ORDER_BY_ASC";case d.ORDER_BY_DESC:return"ORDER_BY_DESC";default:return"UNKNOWN"}}function f(e){switch(e){case 0:case"BROADCAST_MODE_UNSPECIFIED":return u.BROADCAST_MODE_UNSPECIFIED;case 1:case"BROADCAST_MODE_BLOCK":return u.BROADCAST_MODE_BLOCK;case 2:case"BROADCAST_MODE_SYNC":return u.BROADCAST_MODE_SYNC;case 3:case"BROADCAST_MODE_ASYNC":return u.BROADCAST_MODE_ASYNC;default:return u.UNRECOGNIZED}}function h(e){switch(e){case u.BROADCAST_MODE_UNSPECIFIED:return"BROADCAST_MODE_UNSPECIFIED";case u.BROADCAST_MODE_BLOCK:return"BROADCAST_MODE_BLOCK";case u.BROADCAST_MODE_SYNC:return"BROADCAST_MODE_SYNC";case u.BROADCAST_MODE_ASYNC:return"BROADCAST_MODE_ASYNC";default:return"UNKNOWN"}}t.protobufPackage="cosmos.tx.v1beta1",function(e){e[e.ORDER_BY_UNSPECIFIED=0]="ORDER_BY_UNSPECIFIED",e[e.ORDER_BY_ASC=1]="ORDER_BY_ASC",e[e.ORDER_BY_DESC=2]="ORDER_BY_DESC",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(d=t.OrderBy||(t.OrderBy={})),t.orderByFromJSON=l,t.orderByToJSON=A,function(e){e[e.BROADCAST_MODE_UNSPECIFIED=0]="BROADCAST_MODE_UNSPECIFIED",e[e.BROADCAST_MODE_BLOCK=1]="BROADCAST_MODE_BLOCK",e[e.BROADCAST_MODE_SYNC=2]="BROADCAST_MODE_SYNC",e[e.BROADCAST_MODE_ASYNC=3]="BROADCAST_MODE_ASYNC",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.BroadcastMode||(t.BroadcastMode={})),t.broadcastModeFromJSON=f,t.broadcastModeToJSON=h;const g={events:"",orderBy:0};t.GetTxsEventRequest={encode(e,t=i.default.Writer.create()){for(const n of e.events)t.uint32(10).string(n);return void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),0!==e.orderBy&&t.uint32(24).int32(e.orderBy),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.events=[];n.pos>>3){case 1:o.events.push(n.string());break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;case 3:o.orderBy=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.events=(null!==(t=e.events)&&void 0!==t?t:[]).map((e=>String(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,n.orderBy=void 0!==e.orderBy&&null!==e.orderBy?l(e.orderBy):0,n},toJSON(e){const t={};return e.events?t.events=e.events.map((e=>e)):t.events=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),void 0!==e.orderBy&&(t.orderBy=A(e.orderBy)),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.events=(null===(t=e.events)||void 0===t?void 0:t.map((e=>e)))||[],r.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,r.orderBy=null!==(n=e.orderBy)&&void 0!==n?n:0,r}};const p={};t.GetTxsEventResponse={encode(e,t=i.default.Writer.create()){for(const n of e.txs)c.Tx.encode(n,t.uint32(10).fork()).ldelim();for(const n of e.txResponses)s.TxResponse.encode(n,t.uint32(18).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.txs=[],o.txResponses=[];n.pos>>3){case 1:o.txs.push(c.Tx.decode(n,n.uint32()));break;case 2:o.txResponses.push(s.TxResponse.decode(n,n.uint32()));break;case 3:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n;const r=Object.assign({},p);return r.txs=(null!==(t=e.txs)&&void 0!==t?t:[]).map((e=>c.Tx.fromJSON(e))),r.txResponses=(null!==(n=e.txResponses)&&void 0!==n?n:[]).map((e=>s.TxResponse.fromJSON(e))),r.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,r},toJSON(e){const t={};return e.txs?t.txs=e.txs.map((e=>e?c.Tx.toJSON(e):void 0)):t.txs=[],e.txResponses?t.txResponses=e.txResponses.map((e=>e?s.TxResponse.toJSON(e):void 0)):t.txResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.txs=(null===(t=e.txs)||void 0===t?void 0:t.map((e=>c.Tx.fromPartial(e))))||[],r.txResponses=(null===(n=e.txResponses)||void 0===n?void 0:n.map((e=>s.TxResponse.fromPartial(e))))||[],r.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,r}};const m={mode:0};t.BroadcastTxRequest={encode:(e,t=i.default.Writer.create())=>(0!==e.txBytes.length&&t.uint32(10).bytes(e.txBytes),0!==e.mode&&t.uint32(16).int32(e.mode),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.txBytes=new Uint8Array;n.pos>>3){case 1:o.txBytes=n.bytes();break;case 2:o.mode=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.txBytes=void 0!==e.txBytes&&null!==e.txBytes?B(e.txBytes):new Uint8Array,t.mode=void 0!==e.mode&&null!==e.mode?f(e.mode):0,t},toJSON(e){const t={};return void 0!==e.txBytes&&(t.txBytes=S(void 0!==e.txBytes?e.txBytes:new Uint8Array)),void 0!==e.mode&&(t.mode=h(e.mode)),t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.txBytes=null!==(t=e.txBytes)&&void 0!==t?t:new Uint8Array,r.mode=null!==(n=e.mode)&&void 0!==n?n:0,r}};const v={};t.BroadcastTxResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.txResponse&&s.TxResponse.encode(e.txResponse,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3==1?o.txResponse=s.TxResponse.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return t.txResponse=void 0!==e.txResponse&&null!==e.txResponse?s.TxResponse.fromJSON(e.txResponse):void 0,t},toJSON(e){const t={};return void 0!==e.txResponse&&(t.txResponse=e.txResponse?s.TxResponse.toJSON(e.txResponse):void 0),t},fromPartial(e){const t=Object.assign({},v);return t.txResponse=void 0!==e.txResponse&&null!==e.txResponse?s.TxResponse.fromPartial(e.txResponse):void 0,t}};const y={};t.SimulateRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.tx&&c.Tx.encode(e.tx,t.uint32(10).fork()).ldelim(),0!==e.txBytes.length&&t.uint32(18).bytes(e.txBytes),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.txBytes=new Uint8Array;n.pos>>3){case 1:o.tx=c.Tx.decode(n,n.uint32());break;case 2:o.txBytes=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.tx=void 0!==e.tx&&null!==e.tx?c.Tx.fromJSON(e.tx):void 0,t.txBytes=void 0!==e.txBytes&&null!==e.txBytes?B(e.txBytes):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=e.tx?c.Tx.toJSON(e.tx):void 0),void 0!==e.txBytes&&(t.txBytes=S(void 0!==e.txBytes?e.txBytes:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},y);return n.tx=void 0!==e.tx&&null!==e.tx?c.Tx.fromPartial(e.tx):void 0,n.txBytes=null!==(t=e.txBytes)&&void 0!==t?t:new Uint8Array,n}};const b={};t.SimulateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.gasInfo&&s.GasInfo.encode(e.gasInfo,t.uint32(10).fork()).ldelim(),void 0!==e.result&&s.Result.encode(e.result,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.gasInfo=s.GasInfo.decode(n,n.uint32());break;case 2:o.result=s.Result.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.gasInfo=void 0!==e.gasInfo&&null!==e.gasInfo?s.GasInfo.fromJSON(e.gasInfo):void 0,t.result=void 0!==e.result&&null!==e.result?s.Result.fromJSON(e.result):void 0,t},toJSON(e){const t={};return void 0!==e.gasInfo&&(t.gasInfo=e.gasInfo?s.GasInfo.toJSON(e.gasInfo):void 0),void 0!==e.result&&(t.result=e.result?s.Result.toJSON(e.result):void 0),t},fromPartial(e){const t=Object.assign({},b);return t.gasInfo=void 0!==e.gasInfo&&null!==e.gasInfo?s.GasInfo.fromPartial(e.gasInfo):void 0,t.result=void 0!==e.result&&null!==e.result?s.Result.fromPartial(e.result):void 0,t}};const I={hash:""};t.GetTxRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.hash&&t.uint32(10).string(e.hash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(;n.pos>>3==1?o.hash=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},I);return t.hash=void 0!==e.hash&&null!==e.hash?String(e.hash):"",t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=e.hash),t},fromPartial(e){var t;const n=Object.assign({},I);return n.hash=null!==(t=e.hash)&&void 0!==t?t:"",n}};const C={};t.GetTxResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.tx&&c.Tx.encode(e.tx,t.uint32(10).fork()).ldelim(),void 0!==e.txResponse&&s.TxResponse.encode(e.txResponse,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3){case 1:o.tx=c.Tx.decode(n,n.uint32());break;case 2:o.txResponse=s.TxResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.tx=void 0!==e.tx&&null!==e.tx?c.Tx.fromJSON(e.tx):void 0,t.txResponse=void 0!==e.txResponse&&null!==e.txResponse?s.TxResponse.fromJSON(e.txResponse):void 0,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=e.tx?c.Tx.toJSON(e.tx):void 0),void 0!==e.txResponse&&(t.txResponse=e.txResponse?s.TxResponse.toJSON(e.txResponse):void 0),t},fromPartial(e){const t=Object.assign({},C);return t.tx=void 0!==e.tx&&null!==e.tx?c.Tx.fromPartial(e.tx):void 0,t.txResponse=void 0!==e.txResponse&&null!==e.txResponse?s.TxResponse.fromPartial(e.txResponse):void 0,t}},t.ServiceClientImpl=class{constructor(e){this.rpc=e,this.Simulate=this.Simulate.bind(this),this.GetTx=this.GetTx.bind(this),this.BroadcastTx=this.BroadcastTx.bind(this),this.GetTxsEvent=this.GetTxsEvent.bind(this)}Simulate(e){const n=t.SimulateRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","Simulate",n).then((e=>t.SimulateResponse.decode(new i.default.Reader(e))))}GetTx(e){const n=t.GetTxRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","GetTx",n).then((e=>t.GetTxResponse.decode(new i.default.Reader(e))))}BroadcastTx(e){const n=t.BroadcastTxRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","BroadcastTx",n).then((e=>t.BroadcastTxResponse.decode(new i.default.Reader(e))))}GetTxsEvent(e){const n=t.GetTxsEventRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","GetTxsEvent",n).then((e=>t.GetTxsEventResponse.decode(new i.default.Reader(e))))}};var E=(()=>{if(void 0!==E)return E;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const w=E.atob||(e=>E.Buffer.from(e,"base64").toString("binary"));function B(e){const t=w(e),n=new Uint8Array(t.length);for(let e=0;eE.Buffer.from(e,"binary").toString("base64"));function S(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return _(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9639:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Fee=t.ModeInfo_Multi=t.ModeInfo_Single=t.ModeInfo=t.SignerInfo=t.AuthInfo=t.TxBody=t.SignDoc=t.TxRaw=t.Tx=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(2574),c=n(7381),d=n(891);t.protobufPackage="cosmos.tx.v1beta1";const u={};t.Tx={encode(e,n=i.default.Writer.create()){void 0!==e.body&&t.TxBody.encode(e.body,n.uint32(10).fork()).ldelim(),void 0!==e.authInfo&&t.AuthInfo.encode(e.authInfo,n.uint32(18).fork()).ldelim();for(const t of e.signatures)n.uint32(26).bytes(t);return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(a.signatures=[];r.pos>>3){case 1:a.body=t.TxBody.decode(r,r.uint32());break;case 2:a.authInfo=t.AuthInfo.decode(r,r.uint32());break;case 3:a.signatures.push(r.bytes());break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},u);return r.body=void 0!==e.body&&null!==e.body?t.TxBody.fromJSON(e.body):void 0,r.authInfo=void 0!==e.authInfo&&null!==e.authInfo?t.AuthInfo.fromJSON(e.authInfo):void 0,r.signatures=(null!==(n=e.signatures)&&void 0!==n?n:[]).map((e=>C(e))),r},toJSON(e){const n={};return void 0!==e.body&&(n.body=e.body?t.TxBody.toJSON(e.body):void 0),void 0!==e.authInfo&&(n.authInfo=e.authInfo?t.AuthInfo.toJSON(e.authInfo):void 0),e.signatures?n.signatures=e.signatures.map((e=>w(void 0!==e?e:new Uint8Array))):n.signatures=[],n},fromPartial(e){var n;const r=Object.assign({},u);return r.body=void 0!==e.body&&null!==e.body?t.TxBody.fromPartial(e.body):void 0,r.authInfo=void 0!==e.authInfo&&null!==e.authInfo?t.AuthInfo.fromPartial(e.authInfo):void 0,r.signatures=(null===(n=e.signatures)||void 0===n?void 0:n.map((e=>e)))||[],r}};const l={};t.TxRaw={encode(e,t=i.default.Writer.create()){0!==e.bodyBytes.length&&t.uint32(10).bytes(e.bodyBytes),0!==e.authInfoBytes.length&&t.uint32(18).bytes(e.authInfoBytes);for(const n of e.signatures)t.uint32(26).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.signatures=[],o.bodyBytes=new Uint8Array,o.authInfoBytes=new Uint8Array;n.pos>>3){case 1:o.bodyBytes=n.bytes();break;case 2:o.authInfoBytes=n.bytes();break;case 3:o.signatures.push(n.bytes());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.bodyBytes=void 0!==e.bodyBytes&&null!==e.bodyBytes?C(e.bodyBytes):new Uint8Array,n.authInfoBytes=void 0!==e.authInfoBytes&&null!==e.authInfoBytes?C(e.authInfoBytes):new Uint8Array,n.signatures=(null!==(t=e.signatures)&&void 0!==t?t:[]).map((e=>C(e))),n},toJSON(e){const t={};return void 0!==e.bodyBytes&&(t.bodyBytes=w(void 0!==e.bodyBytes?e.bodyBytes:new Uint8Array)),void 0!==e.authInfoBytes&&(t.authInfoBytes=w(void 0!==e.authInfoBytes?e.authInfoBytes:new Uint8Array)),e.signatures?t.signatures=e.signatures.map((e=>w(void 0!==e?e:new Uint8Array))):t.signatures=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},l);return o.bodyBytes=null!==(t=e.bodyBytes)&&void 0!==t?t:new Uint8Array,o.authInfoBytes=null!==(n=e.authInfoBytes)&&void 0!==n?n:new Uint8Array,o.signatures=(null===(r=e.signatures)||void 0===r?void 0:r.map((e=>e)))||[],o}};const A={chainId:"",accountNumber:o.default.UZERO};t.SignDoc={encode:(e,t=i.default.Writer.create())=>(0!==e.bodyBytes.length&&t.uint32(10).bytes(e.bodyBytes),0!==e.authInfoBytes.length&&t.uint32(18).bytes(e.authInfoBytes),""!==e.chainId&&t.uint32(26).string(e.chainId),e.accountNumber.isZero()||t.uint32(32).uint64(e.accountNumber),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.bodyBytes=new Uint8Array,o.authInfoBytes=new Uint8Array;n.pos>>3){case 1:o.bodyBytes=n.bytes();break;case 2:o.authInfoBytes=n.bytes();break;case 3:o.chainId=n.string();break;case 4:o.accountNumber=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.bodyBytes=void 0!==e.bodyBytes&&null!==e.bodyBytes?C(e.bodyBytes):new Uint8Array,t.authInfoBytes=void 0!==e.authInfoBytes&&null!==e.authInfoBytes?C(e.authInfoBytes):new Uint8Array,t.chainId=void 0!==e.chainId&&null!==e.chainId?String(e.chainId):"",t.accountNumber=void 0!==e.accountNumber&&null!==e.accountNumber?o.default.fromString(e.accountNumber):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.bodyBytes&&(t.bodyBytes=w(void 0!==e.bodyBytes?e.bodyBytes:new Uint8Array)),void 0!==e.authInfoBytes&&(t.authInfoBytes=w(void 0!==e.authInfoBytes?e.authInfoBytes:new Uint8Array)),void 0!==e.chainId&&(t.chainId=e.chainId),void 0!==e.accountNumber&&(t.accountNumber=(e.accountNumber||o.default.UZERO).toString()),t},fromPartial(e){var t,n,r;const i=Object.assign({},A);return i.bodyBytes=null!==(t=e.bodyBytes)&&void 0!==t?t:new Uint8Array,i.authInfoBytes=null!==(n=e.authInfoBytes)&&void 0!==n?n:new Uint8Array,i.chainId=null!==(r=e.chainId)&&void 0!==r?r:"",i.accountNumber=void 0!==e.accountNumber&&null!==e.accountNumber?o.default.fromValue(e.accountNumber):o.default.UZERO,i}};const f={memo:"",timeoutHeight:o.default.UZERO};t.TxBody={encode(e,t=i.default.Writer.create()){for(const n of e.messages)a.Any.encode(n,t.uint32(10).fork()).ldelim();""!==e.memo&&t.uint32(18).string(e.memo),e.timeoutHeight.isZero()||t.uint32(24).uint64(e.timeoutHeight);for(const n of e.extensionOptions)a.Any.encode(n,t.uint32(8186).fork()).ldelim();for(const n of e.nonCriticalExtensionOptions)a.Any.encode(n,t.uint32(16378).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.messages=[],o.extensionOptions=[],o.nonCriticalExtensionOptions=[];n.pos>>3){case 1:o.messages.push(a.Any.decode(n,n.uint32()));break;case 2:o.memo=n.string();break;case 3:o.timeoutHeight=n.uint64();break;case 1023:o.extensionOptions.push(a.Any.decode(n,n.uint32()));break;case 2047:o.nonCriticalExtensionOptions.push(a.Any.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n,r;const i=Object.assign({},f);return i.messages=(null!==(t=e.messages)&&void 0!==t?t:[]).map((e=>a.Any.fromJSON(e))),i.memo=void 0!==e.memo&&null!==e.memo?String(e.memo):"",i.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?o.default.fromString(e.timeoutHeight):o.default.UZERO,i.extensionOptions=(null!==(n=e.extensionOptions)&&void 0!==n?n:[]).map((e=>a.Any.fromJSON(e))),i.nonCriticalExtensionOptions=(null!==(r=e.nonCriticalExtensionOptions)&&void 0!==r?r:[]).map((e=>a.Any.fromJSON(e))),i},toJSON(e){const t={};return e.messages?t.messages=e.messages.map((e=>e?a.Any.toJSON(e):void 0)):t.messages=[],void 0!==e.memo&&(t.memo=e.memo),void 0!==e.timeoutHeight&&(t.timeoutHeight=(e.timeoutHeight||o.default.UZERO).toString()),e.extensionOptions?t.extensionOptions=e.extensionOptions.map((e=>e?a.Any.toJSON(e):void 0)):t.extensionOptions=[],e.nonCriticalExtensionOptions?t.nonCriticalExtensionOptions=e.nonCriticalExtensionOptions.map((e=>e?a.Any.toJSON(e):void 0)):t.nonCriticalExtensionOptions=[],t},fromPartial(e){var t,n,r,i;const s=Object.assign({},f);return s.messages=(null===(t=e.messages)||void 0===t?void 0:t.map((e=>a.Any.fromPartial(e))))||[],s.memo=null!==(n=e.memo)&&void 0!==n?n:"",s.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?o.default.fromValue(e.timeoutHeight):o.default.UZERO,s.extensionOptions=(null===(r=e.extensionOptions)||void 0===r?void 0:r.map((e=>a.Any.fromPartial(e))))||[],s.nonCriticalExtensionOptions=(null===(i=e.nonCriticalExtensionOptions)||void 0===i?void 0:i.map((e=>a.Any.fromPartial(e))))||[],s}};const h={};t.AuthInfo={encode(e,n=i.default.Writer.create()){for(const r of e.signerInfos)t.SignerInfo.encode(r,n.uint32(10).fork()).ldelim();return void 0!==e.fee&&t.Fee.encode(e.fee,n.uint32(18).fork()).ldelim(),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},h);for(a.signerInfos=[];r.pos>>3){case 1:a.signerInfos.push(t.SignerInfo.decode(r,r.uint32()));break;case 2:a.fee=t.Fee.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},h);return r.signerInfos=(null!==(n=e.signerInfos)&&void 0!==n?n:[]).map((e=>t.SignerInfo.fromJSON(e))),r.fee=void 0!==e.fee&&null!==e.fee?t.Fee.fromJSON(e.fee):void 0,r},toJSON(e){const n={};return e.signerInfos?n.signerInfos=e.signerInfos.map((e=>e?t.SignerInfo.toJSON(e):void 0)):n.signerInfos=[],void 0!==e.fee&&(n.fee=e.fee?t.Fee.toJSON(e.fee):void 0),n},fromPartial(e){var n;const r=Object.assign({},h);return r.signerInfos=(null===(n=e.signerInfos)||void 0===n?void 0:n.map((e=>t.SignerInfo.fromPartial(e))))||[],r.fee=void 0!==e.fee&&null!==e.fee?t.Fee.fromPartial(e.fee):void 0,r}};const g={sequence:o.default.UZERO};t.SignerInfo={encode:(e,n=i.default.Writer.create())=>(void 0!==e.publicKey&&a.Any.encode(e.publicKey,n.uint32(10).fork()).ldelim(),void 0!==e.modeInfo&&t.ModeInfo.encode(e.modeInfo,n.uint32(18).fork()).ldelim(),e.sequence.isZero()||n.uint32(24).uint64(e.sequence),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},g);for(;r.pos>>3){case 1:s.publicKey=a.Any.decode(r,r.uint32());break;case 2:s.modeInfo=t.ModeInfo.decode(r,r.uint32());break;case 3:s.sequence=r.uint64();break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},g);return n.publicKey=void 0!==e.publicKey&&null!==e.publicKey?a.Any.fromJSON(e.publicKey):void 0,n.modeInfo=void 0!==e.modeInfo&&null!==e.modeInfo?t.ModeInfo.fromJSON(e.modeInfo):void 0,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,n},toJSON(e){const n={};return void 0!==e.publicKey&&(n.publicKey=e.publicKey?a.Any.toJSON(e.publicKey):void 0),void 0!==e.modeInfo&&(n.modeInfo=e.modeInfo?t.ModeInfo.toJSON(e.modeInfo):void 0),void 0!==e.sequence&&(n.sequence=(e.sequence||o.default.UZERO).toString()),n},fromPartial(e){const n=Object.assign({},g);return n.publicKey=void 0!==e.publicKey&&null!==e.publicKey?a.Any.fromPartial(e.publicKey):void 0,n.modeInfo=void 0!==e.modeInfo&&null!==e.modeInfo?t.ModeInfo.fromPartial(e.modeInfo):void 0,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,n}};const p={};t.ModeInfo={encode:(e,n=i.default.Writer.create())=>(void 0!==e.single&&t.ModeInfo_Single.encode(e.single,n.uint32(10).fork()).ldelim(),void 0!==e.multi&&t.ModeInfo_Multi.encode(e.multi,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},p);for(;r.pos>>3){case 1:a.single=t.ModeInfo_Single.decode(r,r.uint32());break;case 2:a.multi=t.ModeInfo_Multi.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},p);return n.single=void 0!==e.single&&null!==e.single?t.ModeInfo_Single.fromJSON(e.single):void 0,n.multi=void 0!==e.multi&&null!==e.multi?t.ModeInfo_Multi.fromJSON(e.multi):void 0,n},toJSON(e){const n={};return void 0!==e.single&&(n.single=e.single?t.ModeInfo_Single.toJSON(e.single):void 0),void 0!==e.multi&&(n.multi=e.multi?t.ModeInfo_Multi.toJSON(e.multi):void 0),n},fromPartial(e){const n=Object.assign({},p);return n.single=void 0!==e.single&&null!==e.single?t.ModeInfo_Single.fromPartial(e.single):void 0,n.multi=void 0!==e.multi&&null!==e.multi?t.ModeInfo_Multi.fromPartial(e.multi):void 0,n}};const m={mode:0};t.ModeInfo_Single={encode:(e,t=i.default.Writer.create())=>(0!==e.mode&&t.uint32(8).int32(e.mode),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3==1?o.mode=n.int32():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.mode=void 0!==e.mode&&null!==e.mode?s.signModeFromJSON(e.mode):0,t},toJSON(e){const t={};return void 0!==e.mode&&(t.mode=s.signModeToJSON(e.mode)),t},fromPartial(e){var t;const n=Object.assign({},m);return n.mode=null!==(t=e.mode)&&void 0!==t?t:0,n}};const v={};t.ModeInfo_Multi={encode(e,n=i.default.Writer.create()){void 0!==e.bitarray&&c.CompactBitArray.encode(e.bitarray,n.uint32(10).fork()).ldelim();for(const r of e.modeInfos)t.ModeInfo.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},v);for(a.modeInfos=[];r.pos>>3){case 1:a.bitarray=c.CompactBitArray.decode(r,r.uint32());break;case 2:a.modeInfos.push(t.ModeInfo.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},v);return r.bitarray=void 0!==e.bitarray&&null!==e.bitarray?c.CompactBitArray.fromJSON(e.bitarray):void 0,r.modeInfos=(null!==(n=e.modeInfos)&&void 0!==n?n:[]).map((e=>t.ModeInfo.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.bitarray&&(n.bitarray=e.bitarray?c.CompactBitArray.toJSON(e.bitarray):void 0),e.modeInfos?n.modeInfos=e.modeInfos.map((e=>e?t.ModeInfo.toJSON(e):void 0)):n.modeInfos=[],n},fromPartial(e){var n;const r=Object.assign({},v);return r.bitarray=void 0!==e.bitarray&&null!==e.bitarray?c.CompactBitArray.fromPartial(e.bitarray):void 0,r.modeInfos=(null===(n=e.modeInfos)||void 0===n?void 0:n.map((e=>t.ModeInfo.fromPartial(e))))||[],r}};const y={gasLimit:o.default.UZERO,payer:"",granter:""};t.Fee={encode(e,t=i.default.Writer.create()){for(const n of e.amount)d.Coin.encode(n,t.uint32(10).fork()).ldelim();return e.gasLimit.isZero()||t.uint32(16).uint64(e.gasLimit),""!==e.payer&&t.uint32(26).string(e.payer),""!==e.granter&&t.uint32(34).string(e.granter),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.amount=[];n.pos>>3){case 1:o.amount.push(d.Coin.decode(n,n.uint32()));break;case 2:o.gasLimit=n.uint64();break;case 3:o.payer=n.string();break;case 4:o.granter=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},y);return n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>d.Coin.fromJSON(e))),n.gasLimit=void 0!==e.gasLimit&&null!==e.gasLimit?o.default.fromString(e.gasLimit):o.default.UZERO,n.payer=void 0!==e.payer&&null!==e.payer?String(e.payer):"",n.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",n},toJSON(e){const t={};return e.amount?t.amount=e.amount.map((e=>e?d.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.gasLimit&&(t.gasLimit=(e.gasLimit||o.default.UZERO).toString()),void 0!==e.payer&&(t.payer=e.payer),void 0!==e.granter&&(t.granter=e.granter),t},fromPartial(e){var t,n,r;const i=Object.assign({},y);return i.amount=(null===(t=e.amount)||void 0===t?void 0:t.map((e=>d.Coin.fromPartial(e))))||[],i.gasLimit=void 0!==e.gasLimit&&null!==e.gasLimit?o.default.fromValue(e.gasLimit):o.default.UZERO,i.payer=null!==(n=e.payer)&&void 0!==n?n:"",i.granter=null!==(r=e.granter)&&void 0!==r?r:"",i}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const I=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary"));function C(e){const t=I(e),n=new Uint8Array(t.length);for(let e=0;eb.Buffer.from(e,"binary").toString("base64"));function w(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return E(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5303:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PermanentLockedAccount=t.PeriodicVestingAccount=t.Period=t.DelayedVestingAccount=t.ContinuousVestingAccount=t.BaseVestingAccount=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3487),s=n(891);t.protobufPackage="cosmos.vesting.v1beta1";const c={endTime:o.default.ZERO};t.BaseVestingAccount={encode(e,t=i.default.Writer.create()){void 0!==e.baseAccount&&a.BaseAccount.encode(e.baseAccount,t.uint32(10).fork()).ldelim();for(const n of e.originalVesting)s.Coin.encode(n,t.uint32(18).fork()).ldelim();for(const n of e.delegatedFree)s.Coin.encode(n,t.uint32(26).fork()).ldelim();for(const n of e.delegatedVesting)s.Coin.encode(n,t.uint32(34).fork()).ldelim();return e.endTime.isZero()||t.uint32(40).int64(e.endTime),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.originalVesting=[],o.delegatedFree=[],o.delegatedVesting=[];n.pos>>3){case 1:o.baseAccount=a.BaseAccount.decode(n,n.uint32());break;case 2:o.originalVesting.push(s.Coin.decode(n,n.uint32()));break;case 3:o.delegatedFree.push(s.Coin.decode(n,n.uint32()));break;case 4:o.delegatedVesting.push(s.Coin.decode(n,n.uint32()));break;case 5:o.endTime=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n,r;const i=Object.assign({},c);return i.baseAccount=void 0!==e.baseAccount&&null!==e.baseAccount?a.BaseAccount.fromJSON(e.baseAccount):void 0,i.originalVesting=(null!==(t=e.originalVesting)&&void 0!==t?t:[]).map((e=>s.Coin.fromJSON(e))),i.delegatedFree=(null!==(n=e.delegatedFree)&&void 0!==n?n:[]).map((e=>s.Coin.fromJSON(e))),i.delegatedVesting=(null!==(r=e.delegatedVesting)&&void 0!==r?r:[]).map((e=>s.Coin.fromJSON(e))),i.endTime=void 0!==e.endTime&&null!==e.endTime?o.default.fromString(e.endTime):o.default.ZERO,i},toJSON(e){const t={};return void 0!==e.baseAccount&&(t.baseAccount=e.baseAccount?a.BaseAccount.toJSON(e.baseAccount):void 0),e.originalVesting?t.originalVesting=e.originalVesting.map((e=>e?s.Coin.toJSON(e):void 0)):t.originalVesting=[],e.delegatedFree?t.delegatedFree=e.delegatedFree.map((e=>e?s.Coin.toJSON(e):void 0)):t.delegatedFree=[],e.delegatedVesting?t.delegatedVesting=e.delegatedVesting.map((e=>e?s.Coin.toJSON(e):void 0)):t.delegatedVesting=[],void 0!==e.endTime&&(t.endTime=(e.endTime||o.default.ZERO).toString()),t},fromPartial(e){var t,n,r;const i=Object.assign({},c);return i.baseAccount=void 0!==e.baseAccount&&null!==e.baseAccount?a.BaseAccount.fromPartial(e.baseAccount):void 0,i.originalVesting=(null===(t=e.originalVesting)||void 0===t?void 0:t.map((e=>s.Coin.fromPartial(e))))||[],i.delegatedFree=(null===(n=e.delegatedFree)||void 0===n?void 0:n.map((e=>s.Coin.fromPartial(e))))||[],i.delegatedVesting=(null===(r=e.delegatedVesting)||void 0===r?void 0:r.map((e=>s.Coin.fromPartial(e))))||[],i.endTime=void 0!==e.endTime&&null!==e.endTime?o.default.fromValue(e.endTime):o.default.ZERO,i}};const d={startTime:o.default.ZERO};t.ContinuousVestingAccount={encode:(e,n=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,n.uint32(10).fork()).ldelim(),e.startTime.isZero()||n.uint32(16).int64(e.startTime),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},d);for(;r.pos>>3){case 1:a.baseVestingAccount=t.BaseVestingAccount.decode(r,r.uint32());break;case 2:a.startTime=r.int64();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},d);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromJSON(e.baseVestingAccount):void 0,n.startTime=void 0!==e.startTime&&null!==e.startTime?o.default.fromString(e.startTime):o.default.ZERO,n},toJSON(e){const n={};return void 0!==e.baseVestingAccount&&(n.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),void 0!==e.startTime&&(n.startTime=(e.startTime||o.default.ZERO).toString()),n},fromPartial(e){const n=Object.assign({},d);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromPartial(e.baseVestingAccount):void 0,n.startTime=void 0!==e.startTime&&null!==e.startTime?o.default.fromValue(e.startTime):o.default.ZERO,n}};const u={};t.DelayedVestingAccount={encode:(e,n=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,n.uint32(10).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(;r.pos>>3==1?a.baseVestingAccount=t.BaseVestingAccount.decode(r,r.uint32()):r.skipType(7&e)}return a},fromJSON(e){const n=Object.assign({},u);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromJSON(e.baseVestingAccount):void 0,n},toJSON(e){const n={};return void 0!==e.baseVestingAccount&&(n.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),n},fromPartial(e){const n=Object.assign({},u);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromPartial(e.baseVestingAccount):void 0,n}};const l={length:o.default.ZERO};t.Period={encode(e,t=i.default.Writer.create()){e.length.isZero()||t.uint32(8).int64(e.length);for(const n of e.amount)s.Coin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.amount=[];n.pos>>3){case 1:o.length=n.int64();break;case 2:o.amount.push(s.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.length=void 0!==e.length&&null!==e.length?o.default.fromString(e.length):o.default.ZERO,n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>s.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.length&&(t.length=(e.length||o.default.ZERO).toString()),e.amount?t.amount=e.amount.map((e=>e?s.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t;const n=Object.assign({},l);return n.length=void 0!==e.length&&null!==e.length?o.default.fromValue(e.length):o.default.ZERO,n.amount=(null===(t=e.amount)||void 0===t?void 0:t.map((e=>s.Coin.fromPartial(e))))||[],n}};const A={startTime:o.default.ZERO};t.PeriodicVestingAccount={encode(e,n=i.default.Writer.create()){void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,n.uint32(10).fork()).ldelim(),e.startTime.isZero()||n.uint32(16).int64(e.startTime);for(const r of e.vestingPeriods)t.Period.encode(r,n.uint32(26).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},A);for(a.vestingPeriods=[];r.pos>>3){case 1:a.baseVestingAccount=t.BaseVestingAccount.decode(r,r.uint32());break;case 2:a.startTime=r.int64();break;case 3:a.vestingPeriods.push(t.Period.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},A);return r.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromJSON(e.baseVestingAccount):void 0,r.startTime=void 0!==e.startTime&&null!==e.startTime?o.default.fromString(e.startTime):o.default.ZERO,r.vestingPeriods=(null!==(n=e.vestingPeriods)&&void 0!==n?n:[]).map((e=>t.Period.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.baseVestingAccount&&(n.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),void 0!==e.startTime&&(n.startTime=(e.startTime||o.default.ZERO).toString()),e.vestingPeriods?n.vestingPeriods=e.vestingPeriods.map((e=>e?t.Period.toJSON(e):void 0)):n.vestingPeriods=[],n},fromPartial(e){var n;const r=Object.assign({},A);return r.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromPartial(e.baseVestingAccount):void 0,r.startTime=void 0!==e.startTime&&null!==e.startTime?o.default.fromValue(e.startTime):o.default.ZERO,r.vestingPeriods=(null===(n=e.vestingPeriods)||void 0===n?void 0:n.map((e=>t.Period.fromPartial(e))))||[],r}};const f={};t.PermanentLockedAccount={encode:(e,n=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,n.uint32(10).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(;r.pos>>3==1?a.baseVestingAccount=t.BaseVestingAccount.decode(r,r.uint32()):r.skipType(7&e)}return a},fromJSON(e){const n=Object.assign({},f);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromJSON(e.baseVestingAccount):void 0,n},toJSON(e){const n={};return void 0!==e.baseVestingAccount&&(n.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),n},fromPartial(e){const n=Object.assign({},f);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromPartial(e.baseVestingAccount):void 0,n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6218:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryCodesResponse=t.QueryCodesRequest=t.QueryCodeResponse=t.CodeInfoResponse=t.QueryCodeRequest=t.QuerySmartContractStateResponse=t.QuerySmartContractStateRequest=t.QueryRawContractStateResponse=t.QueryRawContractStateRequest=t.QueryAllContractStateResponse=t.QueryAllContractStateRequest=t.QueryContractsByCodeResponse=t.QueryContractsByCodeRequest=t.QueryContractHistoryResponse=t.QueryContractHistoryRequest=t.QueryContractInfoResponse=t.QueryContractInfoRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9374),s=n(9551);t.protobufPackage="cosmwasm.wasm.v1";const c={address:""};t.QueryContractInfoRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.address=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),t},fromPartial(e){var t;const n=Object.assign({},c);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n}};const d={address:""};t.QueryContractInfoResponse={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.contractInfo&&a.ContractInfo.encode(e.contractInfo,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.contractInfo=a.ContractInfo.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.contractInfo=void 0!==e.contractInfo&&null!==e.contractInfo?a.ContractInfo.fromJSON(e.contractInfo):void 0,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.contractInfo&&(t.contractInfo=e.contractInfo?a.ContractInfo.toJSON(e.contractInfo):void 0),t},fromPartial(e){var t;const n=Object.assign({},d);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.contractInfo=void 0!==e.contractInfo&&null!==e.contractInfo?a.ContractInfo.fromPartial(e.contractInfo):void 0,n}};const u={address:""};t.QueryContractHistoryRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},u);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,n}};const l={};t.QueryContractHistoryResponse={encode(e,t=i.default.Writer.create()){for(const n of e.entries)a.ContractCodeHistoryEntry.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.entries=[];n.pos>>3){case 1:o.entries.push(a.ContractCodeHistoryEntry.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.entries=(null!==(t=e.entries)&&void 0!==t?t:[]).map((e=>a.ContractCodeHistoryEntry.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.entries?t.entries=e.entries.map((e=>e?a.ContractCodeHistoryEntry.toJSON(e):void 0)):t.entries=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.entries=(null===(t=e.entries)||void 0===t?void 0:t.map((e=>a.ContractCodeHistoryEntry.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const A={codeId:o.default.UZERO};t.QueryContractsByCodeRequest={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.codeId=n.uint64();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const f={contracts:""};t.QueryContractsByCodeResponse={encode(e,t=i.default.Writer.create()){for(const n of e.contracts)t.uint32(10).string(n);return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.contracts=[];n.pos>>3){case 1:o.contracts.push(n.string());break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.contracts=(null!==(t=e.contracts)&&void 0!==t?t:[]).map((e=>String(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.contracts?t.contracts=e.contracts.map((e=>e)):t.contracts=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.contracts=(null===(t=e.contracts)||void 0===t?void 0:t.map((e=>e)))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const h={address:""};t.QueryAllContractStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,n}};const g={};t.QueryAllContractStateResponse={encode(e,t=i.default.Writer.create()){for(const n of e.models)a.Model.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.models=[];n.pos>>3){case 1:o.models.push(a.Model.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.models=(null!==(t=e.models)&&void 0!==t?t:[]).map((e=>a.Model.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.models?t.models=e.models.map((e=>e?a.Model.toJSON(e):void 0)):t.models=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},g);return n.models=(null===(t=e.models)||void 0===t?void 0:t.map((e=>a.Model.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const p={address:""};t.QueryRawContractStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),0!==e.queryData.length&&t.uint32(18).bytes(e.queryData),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.queryData=new Uint8Array;n.pos>>3){case 1:o.address=n.string();break;case 2:o.queryData=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.queryData=void 0!==e.queryData&&null!==e.queryData?S(e.queryData):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.queryData&&(t.queryData=O(void 0!==e.queryData?e.queryData:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.queryData=null!==(n=e.queryData)&&void 0!==n?n:new Uint8Array,r}};const m={};t.QueryRawContractStateResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.data=new Uint8Array;n.pos>>3==1?o.data=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.data=void 0!==e.data&&null!==e.data?S(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=O(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},m);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n}};const v={address:""};t.QuerySmartContractStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),0!==e.queryData.length&&t.uint32(18).bytes(e.queryData),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.queryData=new Uint8Array;n.pos>>3){case 1:o.address=n.string();break;case 2:o.queryData=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.queryData=void 0!==e.queryData&&null!==e.queryData?S(e.queryData):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.queryData&&(t.queryData=O(void 0!==e.queryData?e.queryData:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.queryData=null!==(n=e.queryData)&&void 0!==n?n:new Uint8Array,r}};const y={};t.QuerySmartContractStateResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.data=new Uint8Array;n.pos>>3==1?o.data=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.data=void 0!==e.data&&null!==e.data?S(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=O(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},y);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n}};const b={codeId:o.default.UZERO};t.QueryCodeRequest={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3==1?o.codeId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},b);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},b);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,t}};const I={codeId:o.default.UZERO,creator:""};t.CodeInfoResponse={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),""!==e.creator&&t.uint32(18).string(e.creator),0!==e.dataHash.length&&t.uint32(26).bytes(e.dataHash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(o.dataHash=new Uint8Array;n.pos>>3){case 1:o.codeId=n.uint64();break;case 2:o.creator=n.string();break;case 3:o.dataHash=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},I);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t.creator=void 0!==e.creator&&null!==e.creator?String(e.creator):"",t.dataHash=void 0!==e.dataHash&&null!==e.dataHash?S(e.dataHash):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.creator&&(t.creator=e.creator),void 0!==e.dataHash&&(t.dataHash=O(void 0!==e.dataHash?e.dataHash:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},I);return r.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,r.creator=null!==(t=e.creator)&&void 0!==t?t:"",r.dataHash=null!==(n=e.dataHash)&&void 0!==n?n:new Uint8Array,r}};const C={};t.QueryCodeResponse={encode:(e,n=i.default.Writer.create())=>(void 0!==e.codeInfo&&t.CodeInfoResponse.encode(e.codeInfo,n.uint32(10).fork()).ldelim(),0!==e.data.length&&n.uint32(18).bytes(e.data),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},C);for(a.data=new Uint8Array;r.pos>>3){case 1:a.codeInfo=t.CodeInfoResponse.decode(r,r.uint32());break;case 2:a.data=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},C);return n.codeInfo=void 0!==e.codeInfo&&null!==e.codeInfo?t.CodeInfoResponse.fromJSON(e.codeInfo):void 0,n.data=void 0!==e.data&&null!==e.data?S(e.data):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.codeInfo&&(n.codeInfo=e.codeInfo?t.CodeInfoResponse.toJSON(e.codeInfo):void 0),void 0!==e.data&&(n.data=O(void 0!==e.data?e.data:new Uint8Array)),n},fromPartial(e){var n;const r=Object.assign({},C);return r.codeInfo=void 0!==e.codeInfo&&null!==e.codeInfo?t.CodeInfoResponse.fromPartial(e.codeInfo):void 0,r.data=null!==(n=e.data)&&void 0!==n?n:new Uint8Array,r}};const E={};t.QueryCodesRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},E);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const w={};t.QueryCodesResponse={encode(e,n=i.default.Writer.create()){for(const r of e.codeInfos)t.CodeInfoResponse.encode(r,n.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,n.uint32(18).fork()).ldelim(),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},w);for(a.codeInfos=[];r.pos>>3){case 1:a.codeInfos.push(t.CodeInfoResponse.decode(r,r.uint32()));break;case 2:a.pagination=s.PageResponse.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},w);return r.codeInfos=(null!==(n=e.codeInfos)&&void 0!==n?n:[]).map((e=>t.CodeInfoResponse.fromJSON(e))),r.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,r},toJSON(e){const n={};return e.codeInfos?n.codeInfos=e.codeInfos.map((e=>e?t.CodeInfoResponse.toJSON(e):void 0)):n.codeInfos=[],void 0!==e.pagination&&(n.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),n},fromPartial(e){var n;const r=Object.assign({},w);return r.codeInfos=(null===(n=e.codeInfos)||void 0===n?void 0:n.map((e=>t.CodeInfoResponse.fromPartial(e))))||[],r.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,r}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.ContractInfo=this.ContractInfo.bind(this),this.ContractHistory=this.ContractHistory.bind(this),this.ContractsByCode=this.ContractsByCode.bind(this),this.AllContractState=this.AllContractState.bind(this),this.RawContractState=this.RawContractState.bind(this),this.SmartContractState=this.SmartContractState.bind(this),this.Code=this.Code.bind(this),this.Codes=this.Codes.bind(this)}ContractInfo(e){const n=t.QueryContractInfoRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","ContractInfo",n).then((e=>t.QueryContractInfoResponse.decode(new i.default.Reader(e))))}ContractHistory(e){const n=t.QueryContractHistoryRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","ContractHistory",n).then((e=>t.QueryContractHistoryResponse.decode(new i.default.Reader(e))))}ContractsByCode(e){const n=t.QueryContractsByCodeRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","ContractsByCode",n).then((e=>t.QueryContractsByCodeResponse.decode(new i.default.Reader(e))))}AllContractState(e){const n=t.QueryAllContractStateRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","AllContractState",n).then((e=>t.QueryAllContractStateResponse.decode(new i.default.Reader(e))))}RawContractState(e){const n=t.QueryRawContractStateRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","RawContractState",n).then((e=>t.QueryRawContractStateResponse.decode(new i.default.Reader(e))))}SmartContractState(e){const n=t.QuerySmartContractStateRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","SmartContractState",n).then((e=>t.QuerySmartContractStateResponse.decode(new i.default.Reader(e))))}Code(e){const n=t.QueryCodeRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","Code",n).then((e=>t.QueryCodeResponse.decode(new i.default.Reader(e))))}Codes(e){const n=t.QueryCodesRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","Codes",n).then((e=>t.QueryCodesResponse.decode(new i.default.Reader(e))))}};var B=(()=>{if(void 0!==B)return B;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const _=B.atob||(e=>B.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),n=new Uint8Array(t.length);for(let e=0;eB.Buffer.from(e,"binary").toString("base64"));function O(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return k(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1814:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgClearAdminResponse=t.MsgClearAdmin=t.MsgUpdateAdminResponse=t.MsgUpdateAdmin=t.MsgMigrateContractResponse=t.MsgMigrateContract=t.MsgExecuteContractResponse=t.MsgExecuteContract=t.MsgInstantiateContractResponse=t.MsgInstantiateContract=t.MsgStoreCodeResponse=t.MsgStoreCode=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9374),s=n(891);t.protobufPackage="cosmwasm.wasm.v1";const c={sender:""};t.MsgStoreCode={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),0!==e.wasmByteCode.length&&t.uint32(18).bytes(e.wasmByteCode),void 0!==e.instantiatePermission&&a.AccessConfig.encode(e.instantiatePermission,t.uint32(42).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.wasmByteCode=new Uint8Array;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.wasmByteCode=n.bytes();break;case 5:o.instantiatePermission=a.AccessConfig.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.wasmByteCode=void 0!==e.wasmByteCode&&null!==e.wasmByteCode?C(e.wasmByteCode):new Uint8Array,t.instantiatePermission=void 0!==e.instantiatePermission&&null!==e.instantiatePermission?a.AccessConfig.fromJSON(e.instantiatePermission):void 0,t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.wasmByteCode&&(t.wasmByteCode=w(void 0!==e.wasmByteCode?e.wasmByteCode:new Uint8Array)),void 0!==e.instantiatePermission&&(t.instantiatePermission=e.instantiatePermission?a.AccessConfig.toJSON(e.instantiatePermission):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.sender=null!==(t=e.sender)&&void 0!==t?t:"",r.wasmByteCode=null!==(n=e.wasmByteCode)&&void 0!==n?n:new Uint8Array,r.instantiatePermission=void 0!==e.instantiatePermission&&null!==e.instantiatePermission?a.AccessConfig.fromPartial(e.instantiatePermission):void 0,r}};const d={codeId:o.default.UZERO};t.MsgStoreCodeResponse={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.codeId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,t}};const u={sender:"",admin:"",codeId:o.default.UZERO,label:""};t.MsgInstantiateContract={encode(e,t=i.default.Writer.create()){""!==e.sender&&t.uint32(10).string(e.sender),""!==e.admin&&t.uint32(18).string(e.admin),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),""!==e.label&&t.uint32(34).string(e.label),0!==e.msg.length&&t.uint32(42).bytes(e.msg);for(const n of e.funds)s.Coin.encode(n,t.uint32(50).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.funds=[],o.msg=new Uint8Array;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.admin=n.string();break;case 3:o.codeId=n.uint64();break;case 4:o.label=n.string();break;case 5:o.msg=n.bytes();break;case 6:o.funds.push(s.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",n.admin=void 0!==e.admin&&null!==e.admin?String(e.admin):"",n.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,n.label=void 0!==e.label&&null!==e.label?String(e.label):"",n.msg=void 0!==e.msg&&null!==e.msg?C(e.msg):new Uint8Array,n.funds=(null!==(t=e.funds)&&void 0!==t?t:[]).map((e=>s.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.admin&&(t.admin=e.admin),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.label&&(t.label=e.label),void 0!==e.msg&&(t.msg=w(void 0!==e.msg?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map((e=>e?s.Coin.toJSON(e):void 0)):t.funds=[],t},fromPartial(e){var t,n,r,i,a;const c=Object.assign({},u);return c.sender=null!==(t=e.sender)&&void 0!==t?t:"",c.admin=null!==(n=e.admin)&&void 0!==n?n:"",c.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,c.label=null!==(r=e.label)&&void 0!==r?r:"",c.msg=null!==(i=e.msg)&&void 0!==i?i:new Uint8Array,c.funds=(null===(a=e.funds)||void 0===a?void 0:a.map((e=>s.Coin.fromPartial(e))))||[],c}};const l={address:""};t.MsgInstantiateContractResponse={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),0!==e.data.length&&t.uint32(18).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.data=new Uint8Array;n.pos>>3){case 1:o.address=n.string();break;case 2:o.data=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.data=void 0!==e.data&&null!==e.data?C(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.data&&(t.data=w(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},l);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.data=null!==(n=e.data)&&void 0!==n?n:new Uint8Array,r}};const A={sender:"",contract:""};t.MsgExecuteContract={encode(e,t=i.default.Writer.create()){""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(18).string(e.contract),0!==e.msg.length&&t.uint32(26).bytes(e.msg);for(const n of e.funds)s.Coin.encode(n,t.uint32(42).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.funds=[],o.msg=new Uint8Array;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.contract=n.string();break;case 3:o.msg=n.bytes();break;case 5:o.funds.push(s.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",n.contract=void 0!==e.contract&&null!==e.contract?String(e.contract):"",n.msg=void 0!==e.msg&&null!==e.msg?C(e.msg):new Uint8Array,n.funds=(null!==(t=e.funds)&&void 0!==t?t:[]).map((e=>s.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.msg&&(t.msg=w(void 0!==e.msg?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map((e=>e?s.Coin.toJSON(e):void 0)):t.funds=[],t},fromPartial(e){var t,n,r,o;const i=Object.assign({},A);return i.sender=null!==(t=e.sender)&&void 0!==t?t:"",i.contract=null!==(n=e.contract)&&void 0!==n?n:"",i.msg=null!==(r=e.msg)&&void 0!==r?r:new Uint8Array,i.funds=(null===(o=e.funds)||void 0===o?void 0:o.map((e=>s.Coin.fromPartial(e))))||[],i}};const f={};t.MsgExecuteContractResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.data=new Uint8Array;n.pos>>3==1?o.data=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.data=void 0!==e.data&&null!==e.data?C(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=w(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},f);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n}};const h={sender:"",contract:"",codeId:o.default.UZERO};t.MsgMigrateContract={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(18).string(e.contract),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),0!==e.msg.length&&t.uint32(34).bytes(e.msg),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.msg=new Uint8Array;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.contract=n.string();break;case 3:o.codeId=n.uint64();break;case 4:o.msg=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.contract=void 0!==e.contract&&null!==e.contract?String(e.contract):"",t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t.msg=void 0!==e.msg&&null!==e.msg?C(e.msg):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.msg&&(t.msg=w(void 0!==e.msg?e.msg:new Uint8Array)),t},fromPartial(e){var t,n,r;const i=Object.assign({},h);return i.sender=null!==(t=e.sender)&&void 0!==t?t:"",i.contract=null!==(n=e.contract)&&void 0!==n?n:"",i.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,i.msg=null!==(r=e.msg)&&void 0!==r?r:new Uint8Array,i}};const g={};t.MsgMigrateContractResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.data=new Uint8Array;n.pos>>3==1?o.data=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},g);return t.data=void 0!==e.data&&null!==e.data?C(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=w(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},g);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n}};const p={sender:"",newAdmin:"",contract:""};t.MsgUpdateAdmin={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.newAdmin&&t.uint32(18).string(e.newAdmin),""!==e.contract&&t.uint32(26).string(e.contract),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.newAdmin=n.string();break;case 3:o.contract=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.newAdmin=void 0!==e.newAdmin&&null!==e.newAdmin?String(e.newAdmin):"",t.contract=void 0!==e.contract&&null!==e.contract?String(e.contract):"",t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.newAdmin&&(t.newAdmin=e.newAdmin),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){var t,n,r;const o=Object.assign({},p);return o.sender=null!==(t=e.sender)&&void 0!==t?t:"",o.newAdmin=null!==(n=e.newAdmin)&&void 0!==n?n:"",o.contract=null!==(r=e.contract)&&void 0!==r?r:"",o}};const m={};t.MsgUpdateAdminResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const v={sender:"",contract:""};t.MsgClearAdmin={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(26).string(e.contract),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.sender=n.string();break;case 3:o.contract=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.contract=void 0!==e.contract&&null!==e.contract?String(e.contract):"",t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.sender=null!==(t=e.sender)&&void 0!==t?t:"",r.contract=null!==(n=e.contract)&&void 0!==n?n:"",r}};const y={};t.MsgClearAdminResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.posObject.assign({},y),toJSON:e=>({}),fromPartial:e=>Object.assign({},y)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.StoreCode=this.StoreCode.bind(this),this.InstantiateContract=this.InstantiateContract.bind(this),this.ExecuteContract=this.ExecuteContract.bind(this),this.MigrateContract=this.MigrateContract.bind(this),this.UpdateAdmin=this.UpdateAdmin.bind(this),this.ClearAdmin=this.ClearAdmin.bind(this)}StoreCode(e){const n=t.MsgStoreCode.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","StoreCode",n).then((e=>t.MsgStoreCodeResponse.decode(new i.default.Reader(e))))}InstantiateContract(e){const n=t.MsgInstantiateContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","InstantiateContract",n).then((e=>t.MsgInstantiateContractResponse.decode(new i.default.Reader(e))))}ExecuteContract(e){const n=t.MsgExecuteContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","ExecuteContract",n).then((e=>t.MsgExecuteContractResponse.decode(new i.default.Reader(e))))}MigrateContract(e){const n=t.MsgMigrateContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","MigrateContract",n).then((e=>t.MsgMigrateContractResponse.decode(new i.default.Reader(e))))}UpdateAdmin(e){const n=t.MsgUpdateAdmin.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","UpdateAdmin",n).then((e=>t.MsgUpdateAdminResponse.decode(new i.default.Reader(e))))}ClearAdmin(e){const n=t.MsgClearAdmin.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","ClearAdmin",n).then((e=>t.MsgClearAdminResponse.decode(new i.default.Reader(e))))}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const I=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary"));function C(e){const t=I(e),n=new Uint8Array(t.length);for(let e=0;eb.Buffer.from(e,"binary").toString("base64"));function w(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return E(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9374:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Model=t.AbsoluteTxPosition=t.ContractCodeHistoryEntry=t.ContractInfo=t.CodeInfo=t.Params=t.AccessConfig=t.AccessTypeParam=t.contractCodeHistoryOperationTypeToJSON=t.contractCodeHistoryOperationTypeFromJSON=t.ContractCodeHistoryOperationType=t.accessTypeToJSON=t.accessTypeFromJSON=t.AccessType=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);var s,c;function d(e){switch(e){case 0:case"ACCESS_TYPE_UNSPECIFIED":return s.ACCESS_TYPE_UNSPECIFIED;case 1:case"ACCESS_TYPE_NOBODY":return s.ACCESS_TYPE_NOBODY;case 2:case"ACCESS_TYPE_ONLY_ADDRESS":return s.ACCESS_TYPE_ONLY_ADDRESS;case 3:case"ACCESS_TYPE_EVERYBODY":return s.ACCESS_TYPE_EVERYBODY;default:return s.UNRECOGNIZED}}function u(e){switch(e){case s.ACCESS_TYPE_UNSPECIFIED:return"ACCESS_TYPE_UNSPECIFIED";case s.ACCESS_TYPE_NOBODY:return"ACCESS_TYPE_NOBODY";case s.ACCESS_TYPE_ONLY_ADDRESS:return"ACCESS_TYPE_ONLY_ADDRESS";case s.ACCESS_TYPE_EVERYBODY:return"ACCESS_TYPE_EVERYBODY";default:return"UNKNOWN"}}function l(e){switch(e){case 0:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED":return c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;case 1:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT":return c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;case 2:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE":return c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;case 3:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS":return c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;default:return c.UNRECOGNIZED}}function A(e){switch(e){case c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED";case c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT";case c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE";case c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS";default:return"UNKNOWN"}}t.protobufPackage="cosmwasm.wasm.v1",function(e){e[e.ACCESS_TYPE_UNSPECIFIED=0]="ACCESS_TYPE_UNSPECIFIED",e[e.ACCESS_TYPE_NOBODY=1]="ACCESS_TYPE_NOBODY",e[e.ACCESS_TYPE_ONLY_ADDRESS=2]="ACCESS_TYPE_ONLY_ADDRESS",e[e.ACCESS_TYPE_EVERYBODY=3]="ACCESS_TYPE_EVERYBODY",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.AccessType||(t.AccessType={})),t.accessTypeFromJSON=d,t.accessTypeToJSON=u,function(e){e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED=0]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT=1]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE=2]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS=3]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(c=t.ContractCodeHistoryOperationType||(t.ContractCodeHistoryOperationType={})),t.contractCodeHistoryOperationTypeFromJSON=l,t.contractCodeHistoryOperationTypeToJSON=A;const f={value:0};t.AccessTypeParam={encode:(e,t=i.default.Writer.create())=>(0!==e.value&&t.uint32(8).int32(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.value=n.int32():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.value=void 0!==e.value&&null!==e.value?d(e.value):0,t},toJSON(e){const t={};return void 0!==e.value&&(t.value=u(e.value)),t},fromPartial(e){var t;const n=Object.assign({},f);return n.value=null!==(t=e.value)&&void 0!==t?t:0,n}};const h={permission:0,address:""};t.AccessConfig={encode:(e,t=i.default.Writer.create())=>(0!==e.permission&&t.uint32(8).int32(e.permission),""!==e.address&&t.uint32(18).string(e.address),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.permission=n.int32();break;case 2:o.address=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.permission=void 0!==e.permission&&null!==e.permission?d(e.permission):0,t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t},toJSON(e){const t={};return void 0!==e.permission&&(t.permission=u(e.permission)),void 0!==e.address&&(t.address=e.address),t},fromPartial(e){var t,n;const r=Object.assign({},h);return r.permission=null!==(t=e.permission)&&void 0!==t?t:0,r.address=null!==(n=e.address)&&void 0!==n?n:"",r}};const g={instantiateDefaultPermission:0,maxWasmCodeSize:o.default.UZERO};t.Params={encode:(e,n=i.default.Writer.create())=>(void 0!==e.codeUploadAccess&&t.AccessConfig.encode(e.codeUploadAccess,n.uint32(10).fork()).ldelim(),0!==e.instantiateDefaultPermission&&n.uint32(16).int32(e.instantiateDefaultPermission),e.maxWasmCodeSize.isZero()||n.uint32(24).uint64(e.maxWasmCodeSize),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},g);for(;r.pos>>3){case 1:a.codeUploadAccess=t.AccessConfig.decode(r,r.uint32());break;case 2:a.instantiateDefaultPermission=r.int32();break;case 3:a.maxWasmCodeSize=r.uint64();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},g);return n.codeUploadAccess=void 0!==e.codeUploadAccess&&null!==e.codeUploadAccess?t.AccessConfig.fromJSON(e.codeUploadAccess):void 0,n.instantiateDefaultPermission=void 0!==e.instantiateDefaultPermission&&null!==e.instantiateDefaultPermission?d(e.instantiateDefaultPermission):0,n.maxWasmCodeSize=void 0!==e.maxWasmCodeSize&&null!==e.maxWasmCodeSize?o.default.fromString(e.maxWasmCodeSize):o.default.UZERO,n},toJSON(e){const n={};return void 0!==e.codeUploadAccess&&(n.codeUploadAccess=e.codeUploadAccess?t.AccessConfig.toJSON(e.codeUploadAccess):void 0),void 0!==e.instantiateDefaultPermission&&(n.instantiateDefaultPermission=u(e.instantiateDefaultPermission)),void 0!==e.maxWasmCodeSize&&(n.maxWasmCodeSize=(e.maxWasmCodeSize||o.default.UZERO).toString()),n},fromPartial(e){var n;const r=Object.assign({},g);return r.codeUploadAccess=void 0!==e.codeUploadAccess&&null!==e.codeUploadAccess?t.AccessConfig.fromPartial(e.codeUploadAccess):void 0,r.instantiateDefaultPermission=null!==(n=e.instantiateDefaultPermission)&&void 0!==n?n:0,r.maxWasmCodeSize=void 0!==e.maxWasmCodeSize&&null!==e.maxWasmCodeSize?o.default.fromValue(e.maxWasmCodeSize):o.default.UZERO,r}};const p={creator:""};t.CodeInfo={encode:(e,n=i.default.Writer.create())=>(0!==e.codeHash.length&&n.uint32(10).bytes(e.codeHash),""!==e.creator&&n.uint32(18).string(e.creator),void 0!==e.instantiateConfig&&t.AccessConfig.encode(e.instantiateConfig,n.uint32(42).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},p);for(a.codeHash=new Uint8Array;r.pos>>3){case 1:a.codeHash=r.bytes();break;case 2:a.creator=r.string();break;case 5:a.instantiateConfig=t.AccessConfig.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},p);return n.codeHash=void 0!==e.codeHash&&null!==e.codeHash?E(e.codeHash):new Uint8Array,n.creator=void 0!==e.creator&&null!==e.creator?String(e.creator):"",n.instantiateConfig=void 0!==e.instantiateConfig&&null!==e.instantiateConfig?t.AccessConfig.fromJSON(e.instantiateConfig):void 0,n},toJSON(e){const n={};return void 0!==e.codeHash&&(n.codeHash=B(void 0!==e.codeHash?e.codeHash:new Uint8Array)),void 0!==e.creator&&(n.creator=e.creator),void 0!==e.instantiateConfig&&(n.instantiateConfig=e.instantiateConfig?t.AccessConfig.toJSON(e.instantiateConfig):void 0),n},fromPartial(e){var n,r;const o=Object.assign({},p);return o.codeHash=null!==(n=e.codeHash)&&void 0!==n?n:new Uint8Array,o.creator=null!==(r=e.creator)&&void 0!==r?r:"",o.instantiateConfig=void 0!==e.instantiateConfig&&null!==e.instantiateConfig?t.AccessConfig.fromPartial(e.instantiateConfig):void 0,o}};const m={codeId:o.default.UZERO,creator:"",admin:"",label:"",ibcPortId:""};t.ContractInfo={encode:(e,n=i.default.Writer.create())=>(e.codeId.isZero()||n.uint32(8).uint64(e.codeId),""!==e.creator&&n.uint32(18).string(e.creator),""!==e.admin&&n.uint32(26).string(e.admin),""!==e.label&&n.uint32(34).string(e.label),void 0!==e.created&&t.AbsoluteTxPosition.encode(e.created,n.uint32(42).fork()).ldelim(),""!==e.ibcPortId&&n.uint32(50).string(e.ibcPortId),void 0!==e.extension&&a.Any.encode(e.extension,n.uint32(58).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},m);for(;r.pos>>3){case 1:s.codeId=r.uint64();break;case 2:s.creator=r.string();break;case 3:s.admin=r.string();break;case 4:s.label=r.string();break;case 5:s.created=t.AbsoluteTxPosition.decode(r,r.uint32());break;case 6:s.ibcPortId=r.string();break;case 7:s.extension=a.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},m);return n.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,n.creator=void 0!==e.creator&&null!==e.creator?String(e.creator):"",n.admin=void 0!==e.admin&&null!==e.admin?String(e.admin):"",n.label=void 0!==e.label&&null!==e.label?String(e.label):"",n.created=void 0!==e.created&&null!==e.created?t.AbsoluteTxPosition.fromJSON(e.created):void 0,n.ibcPortId=void 0!==e.ibcPortId&&null!==e.ibcPortId?String(e.ibcPortId):"",n.extension=void 0!==e.extension&&null!==e.extension?a.Any.fromJSON(e.extension):void 0,n},toJSON(e){const n={};return void 0!==e.codeId&&(n.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.creator&&(n.creator=e.creator),void 0!==e.admin&&(n.admin=e.admin),void 0!==e.label&&(n.label=e.label),void 0!==e.created&&(n.created=e.created?t.AbsoluteTxPosition.toJSON(e.created):void 0),void 0!==e.ibcPortId&&(n.ibcPortId=e.ibcPortId),void 0!==e.extension&&(n.extension=e.extension?a.Any.toJSON(e.extension):void 0),n},fromPartial(e){var n,r,i,s;const c=Object.assign({},m);return c.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,c.creator=null!==(n=e.creator)&&void 0!==n?n:"",c.admin=null!==(r=e.admin)&&void 0!==r?r:"",c.label=null!==(i=e.label)&&void 0!==i?i:"",c.created=void 0!==e.created&&null!==e.created?t.AbsoluteTxPosition.fromPartial(e.created):void 0,c.ibcPortId=null!==(s=e.ibcPortId)&&void 0!==s?s:"",c.extension=void 0!==e.extension&&null!==e.extension?a.Any.fromPartial(e.extension):void 0,c}};const v={operation:0,codeId:o.default.UZERO};t.ContractCodeHistoryEntry={encode:(e,n=i.default.Writer.create())=>(0!==e.operation&&n.uint32(8).int32(e.operation),e.codeId.isZero()||n.uint32(16).uint64(e.codeId),void 0!==e.updated&&t.AbsoluteTxPosition.encode(e.updated,n.uint32(26).fork()).ldelim(),0!==e.msg.length&&n.uint32(34).bytes(e.msg),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},v);for(a.msg=new Uint8Array;r.pos>>3){case 1:a.operation=r.int32();break;case 2:a.codeId=r.uint64();break;case 3:a.updated=t.AbsoluteTxPosition.decode(r,r.uint32());break;case 4:a.msg=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},v);return n.operation=void 0!==e.operation&&null!==e.operation?l(e.operation):0,n.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,n.updated=void 0!==e.updated&&null!==e.updated?t.AbsoluteTxPosition.fromJSON(e.updated):void 0,n.msg=void 0!==e.msg&&null!==e.msg?E(e.msg):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.operation&&(n.operation=A(e.operation)),void 0!==e.codeId&&(n.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.updated&&(n.updated=e.updated?t.AbsoluteTxPosition.toJSON(e.updated):void 0),void 0!==e.msg&&(n.msg=B(void 0!==e.msg?e.msg:new Uint8Array)),n},fromPartial(e){var n,r;const i=Object.assign({},v);return i.operation=null!==(n=e.operation)&&void 0!==n?n:0,i.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,i.updated=void 0!==e.updated&&null!==e.updated?t.AbsoluteTxPosition.fromPartial(e.updated):void 0,i.msg=null!==(r=e.msg)&&void 0!==r?r:new Uint8Array,i}};const y={blockHeight:o.default.UZERO,txIndex:o.default.UZERO};t.AbsoluteTxPosition={encode:(e,t=i.default.Writer.create())=>(e.blockHeight.isZero()||t.uint32(8).uint64(e.blockHeight),e.txIndex.isZero()||t.uint32(16).uint64(e.txIndex),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3){case 1:o.blockHeight=n.uint64();break;case 2:o.txIndex=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.blockHeight=void 0!==e.blockHeight&&null!==e.blockHeight?o.default.fromString(e.blockHeight):o.default.UZERO,t.txIndex=void 0!==e.txIndex&&null!==e.txIndex?o.default.fromString(e.txIndex):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.blockHeight&&(t.blockHeight=(e.blockHeight||o.default.UZERO).toString()),void 0!==e.txIndex&&(t.txIndex=(e.txIndex||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},y);return t.blockHeight=void 0!==e.blockHeight&&null!==e.blockHeight?o.default.fromValue(e.blockHeight):o.default.UZERO,t.txIndex=void 0!==e.txIndex&&null!==e.txIndex?o.default.fromValue(e.txIndex):o.default.UZERO,t}};const b={};t.Model={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),0!==e.value.length&&t.uint32(18).bytes(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.key=new Uint8Array,o.value=new Uint8Array;n.pos>>3){case 1:o.key=n.bytes();break;case 2:o.value=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.key=void 0!==e.key&&null!==e.key?E(e.key):new Uint8Array,t.value=void 0!==e.value&&null!==e.value?E(e.value):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=B(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=B(void 0!==e.value?e.value:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,r.value=null!==(n=e.value)&&void 0!==n?n:new Uint8Array,r}};var I=(()=>{if(void 0!==I)return I;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const C=I.atob||(e=>I.Buffer.from(e,"base64").toString("binary"));function E(e){const t=C(e),n=new Uint8Array(t.length);for(let e=0;eI.Buffer.from(e,"binary").toString("base64"));function B(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return w(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3862:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Any=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="google.protobuf";const a={typeUrl:""};t.Any={encode:(e,t=i.default.Writer.create())=>(""!==e.typeUrl&&t.uint32(10).string(e.typeUrl),0!==e.value.length&&t.uint32(18).bytes(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.value=new Uint8Array;n.pos>>3){case 1:o.typeUrl=n.string();break;case 2:o.value=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.typeUrl=void 0!==e.typeUrl&&null!==e.typeUrl?String(e.typeUrl):"",t.value=void 0!==e.value&&null!==e.value?function(e){const t=c(e),n=new Uint8Array(t.length);for(let e=0;e{if(void 0!==s)return s;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const c=s.atob||(e=>s.Buffer.from(e,"base64").toString("binary")),d=s.btoa||(e=>s.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},281:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Duration=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="google.protobuf";const a={seconds:o.default.ZERO,nanos:0};t.Duration={encode:(e,t=i.default.Writer.create())=>(e.seconds.isZero()||t.uint32(8).int64(e.seconds),0!==e.nanos&&t.uint32(16).int32(e.nanos),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.seconds=n.int64();break;case 2:o.nanos=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.seconds=void 0!==e.seconds&&null!==e.seconds?o.default.fromString(e.seconds):o.default.ZERO,t.nanos=void 0!==e.nanos&&null!==e.nanos?Number(e.nanos):0,t},toJSON(e){const t={};return void 0!==e.seconds&&(t.seconds=(e.seconds||o.default.ZERO).toString()),void 0!==e.nanos&&(t.nanos=e.nanos),t},fromPartial(e){var t;const n=Object.assign({},a);return n.seconds=void 0!==e.seconds&&null!==e.seconds?o.default.fromValue(e.seconds):o.default.ZERO,n.nanos=null!==(t=e.nanos)&&void 0!==t?t:0,n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5522:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Timestamp=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="google.protobuf";const a={seconds:o.default.ZERO,nanos:0};t.Timestamp={encode:(e,t=i.default.Writer.create())=>(e.seconds.isZero()||t.uint32(8).int64(e.seconds),0!==e.nanos&&t.uint32(16).int32(e.nanos),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.seconds=n.int64();break;case 2:o.nanos=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.seconds=void 0!==e.seconds&&null!==e.seconds?o.default.fromString(e.seconds):o.default.ZERO,t.nanos=void 0!==e.nanos&&null!==e.nanos?Number(e.nanos):0,t},toJSON(e){const t={};return void 0!==e.seconds&&(t.seconds=(e.seconds||o.default.ZERO).toString()),void 0!==e.nanos&&(t.nanos=e.nanos),t},fromPartial(e){var t;const n=Object.assign({},a);return n.seconds=void 0!==e.seconds&&null!==e.seconds?o.default.fromValue(e.seconds):o.default.ZERO,n.nanos=null!==(t=e.nanos)&&void 0!==t?t:0,n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5892:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryParamsResponse=t.QueryParamsRequest=t.QueryDenomTracesResponse=t.QueryDenomTracesRequest=t.QueryDenomTraceResponse=t.QueryDenomTraceRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1417),s=n(9551);t.protobufPackage="ibc.applications.transfer.v1";const c={hash:""};t.QueryDenomTraceRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.hash&&t.uint32(10).string(e.hash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.hash=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.hash=void 0!==e.hash&&null!==e.hash?String(e.hash):"",t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=e.hash),t},fromPartial(e){var t;const n=Object.assign({},c);return n.hash=null!==(t=e.hash)&&void 0!==t?t:"",n}};const d={};t.QueryDenomTraceResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.denomTrace&&a.DenomTrace.encode(e.denomTrace,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.denomTrace=a.DenomTrace.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.denomTrace=void 0!==e.denomTrace&&null!==e.denomTrace?a.DenomTrace.fromJSON(e.denomTrace):void 0,t},toJSON(e){const t={};return void 0!==e.denomTrace&&(t.denomTrace=e.denomTrace?a.DenomTrace.toJSON(e.denomTrace):void 0),t},fromPartial(e){const t=Object.assign({},d);return t.denomTrace=void 0!==e.denomTrace&&null!==e.denomTrace?a.DenomTrace.fromPartial(e.denomTrace):void 0,t}};const u={};t.QueryDenomTracesRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},u);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const l={};t.QueryDenomTracesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.denomTraces)a.DenomTrace.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.denomTraces=[];n.pos>>3){case 1:o.denomTraces.push(a.DenomTrace.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.denomTraces=(null!==(t=e.denomTraces)&&void 0!==t?t:[]).map((e=>a.DenomTrace.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.denomTraces?t.denomTraces=e.denomTraces.map((e=>e?a.DenomTrace.toJSON(e):void 0)):t.denomTraces=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.denomTraces=(null===(t=e.denomTraces)||void 0===t?void 0:t.map((e=>a.DenomTrace.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const A={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&a.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.params=a.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?a.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},f);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromPartial(e.params):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.DenomTrace=this.DenomTrace.bind(this),this.DenomTraces=this.DenomTraces.bind(this),this.Params=this.Params.bind(this)}DenomTrace(e){const n=t.QueryDenomTraceRequest.encode(e).finish();return this.rpc.request("ibc.applications.transfer.v1.Query","DenomTrace",n).then((e=>t.QueryDenomTraceResponse.decode(new i.default.Reader(e))))}DenomTraces(e){const n=t.QueryDenomTracesRequest.encode(e).finish();return this.rpc.request("ibc.applications.transfer.v1.Query","DenomTraces",n).then((e=>t.QueryDenomTracesResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("ibc.applications.transfer.v1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1417:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.DenomTrace=t.FungibleTokenPacketData=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="ibc.applications.transfer.v1";const a={denom:"",amount:o.default.UZERO,sender:"",receiver:""};t.FungibleTokenPacketData={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),e.amount.isZero()||t.uint32(16).uint64(e.amount),""!==e.sender&&t.uint32(26).string(e.sender),""!==e.receiver&&t.uint32(34).string(e.receiver),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.denom=n.string();break;case 2:o.amount=n.uint64();break;case 3:o.sender=n.string();break;case 4:o.receiver=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t.amount=void 0!==e.amount&&null!==e.amount?o.default.fromString(e.amount):o.default.UZERO,t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.receiver=void 0!==e.receiver&&null!==e.receiver?String(e.receiver):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=(e.amount||o.default.UZERO).toString()),void 0!==e.sender&&(t.sender=e.sender),void 0!==e.receiver&&(t.receiver=e.receiver),t},fromPartial(e){var t,n,r;const i=Object.assign({},a);return i.denom=null!==(t=e.denom)&&void 0!==t?t:"",i.amount=void 0!==e.amount&&null!==e.amount?o.default.fromValue(e.amount):o.default.UZERO,i.sender=null!==(n=e.sender)&&void 0!==n?n:"",i.receiver=null!==(r=e.receiver)&&void 0!==r?r:"",i}};const s={path:"",baseDenom:""};t.DenomTrace={encode:(e,t=i.default.Writer.create())=>(""!==e.path&&t.uint32(10).string(e.path),""!==e.baseDenom&&t.uint32(18).string(e.baseDenom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.path=n.string();break;case 2:o.baseDenom=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.path=void 0!==e.path&&null!==e.path?String(e.path):"",t.baseDenom=void 0!==e.baseDenom&&null!==e.baseDenom?String(e.baseDenom):"",t},toJSON(e){const t={};return void 0!==e.path&&(t.path=e.path),void 0!==e.baseDenom&&(t.baseDenom=e.baseDenom),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.path=null!==(t=e.path)&&void 0!==t?t:"",r.baseDenom=null!==(n=e.baseDenom)&&void 0!==n?n:"",r}};const c={sendEnabled:!1,receiveEnabled:!1};t.Params={encode:(e,t=i.default.Writer.create())=>(!0===e.sendEnabled&&t.uint32(8).bool(e.sendEnabled),!0===e.receiveEnabled&&t.uint32(16).bool(e.receiveEnabled),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.sendEnabled=n.bool();break;case 2:o.receiveEnabled=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.sendEnabled=void 0!==e.sendEnabled&&null!==e.sendEnabled&&Boolean(e.sendEnabled),t.receiveEnabled=void 0!==e.receiveEnabled&&null!==e.receiveEnabled&&Boolean(e.receiveEnabled),t},toJSON(e){const t={};return void 0!==e.sendEnabled&&(t.sendEnabled=e.sendEnabled),void 0!==e.receiveEnabled&&(t.receiveEnabled=e.receiveEnabled),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.sendEnabled=null!==(t=e.sendEnabled)&&void 0!==t&&t,r.receiveEnabled=null!==(n=e.receiveEnabled)&&void 0!==n&&n,r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9385:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgTransferResponse=t.MsgTransfer=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891),s=n(5022);t.protobufPackage="ibc.applications.transfer.v1";const c={sourcePort:"",sourceChannel:"",sender:"",receiver:"",timeoutTimestamp:o.default.UZERO};t.MsgTransfer={encode:(e,t=i.default.Writer.create())=>(""!==e.sourcePort&&t.uint32(10).string(e.sourcePort),""!==e.sourceChannel&&t.uint32(18).string(e.sourceChannel),void 0!==e.token&&a.Coin.encode(e.token,t.uint32(26).fork()).ldelim(),""!==e.sender&&t.uint32(34).string(e.sender),""!==e.receiver&&t.uint32(42).string(e.receiver),void 0!==e.timeoutHeight&&s.Height.encode(e.timeoutHeight,t.uint32(50).fork()).ldelim(),e.timeoutTimestamp.isZero()||t.uint32(56).uint64(e.timeoutTimestamp),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.sourcePort=n.string();break;case 2:o.sourceChannel=n.string();break;case 3:o.token=a.Coin.decode(n,n.uint32());break;case 4:o.sender=n.string();break;case 5:o.receiver=n.string();break;case 6:o.timeoutHeight=s.Height.decode(n,n.uint32());break;case 7:o.timeoutTimestamp=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.sourcePort=void 0!==e.sourcePort&&null!==e.sourcePort?String(e.sourcePort):"",t.sourceChannel=void 0!==e.sourceChannel&&null!==e.sourceChannel?String(e.sourceChannel):"",t.token=void 0!==e.token&&null!==e.token?a.Coin.fromJSON(e.token):void 0,t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.receiver=void 0!==e.receiver&&null!==e.receiver?String(e.receiver):"",t.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?s.Height.fromJSON(e.timeoutHeight):void 0,t.timeoutTimestamp=void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?o.default.fromString(e.timeoutTimestamp):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.sourcePort&&(t.sourcePort=e.sourcePort),void 0!==e.sourceChannel&&(t.sourceChannel=e.sourceChannel),void 0!==e.token&&(t.token=e.token?a.Coin.toJSON(e.token):void 0),void 0!==e.sender&&(t.sender=e.sender),void 0!==e.receiver&&(t.receiver=e.receiver),void 0!==e.timeoutHeight&&(t.timeoutHeight=e.timeoutHeight?s.Height.toJSON(e.timeoutHeight):void 0),void 0!==e.timeoutTimestamp&&(t.timeoutTimestamp=(e.timeoutTimestamp||o.default.UZERO).toString()),t},fromPartial(e){var t,n,r,i;const d=Object.assign({},c);return d.sourcePort=null!==(t=e.sourcePort)&&void 0!==t?t:"",d.sourceChannel=null!==(n=e.sourceChannel)&&void 0!==n?n:"",d.token=void 0!==e.token&&null!==e.token?a.Coin.fromPartial(e.token):void 0,d.sender=null!==(r=e.sender)&&void 0!==r?r:"",d.receiver=null!==(i=e.receiver)&&void 0!==i?i:"",d.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?s.Height.fromPartial(e.timeoutHeight):void 0,d.timeoutTimestamp=void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?o.default.fromValue(e.timeoutTimestamp):o.default.UZERO,d}};const d={};t.MsgTransferResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Transfer=this.Transfer.bind(this)}Transfer(e){const n=t.MsgTransfer.encode(e).finish();return this.rpc.request("ibc.applications.transfer.v1.Msg","Transfer",n).then((e=>t.MsgTransferResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1787:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Acknowledgement=t.PacketState=t.Packet=t.Counterparty=t.IdentifiedChannel=t.Channel=t.orderToJSON=t.orderFromJSON=t.Order=t.stateToJSON=t.stateFromJSON=t.State=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5022);var s,c;function d(e){switch(e){case 0:case"STATE_UNINITIALIZED_UNSPECIFIED":return s.STATE_UNINITIALIZED_UNSPECIFIED;case 1:case"STATE_INIT":return s.STATE_INIT;case 2:case"STATE_TRYOPEN":return s.STATE_TRYOPEN;case 3:case"STATE_OPEN":return s.STATE_OPEN;case 4:case"STATE_CLOSED":return s.STATE_CLOSED;default:return s.UNRECOGNIZED}}function u(e){switch(e){case s.STATE_UNINITIALIZED_UNSPECIFIED:return"STATE_UNINITIALIZED_UNSPECIFIED";case s.STATE_INIT:return"STATE_INIT";case s.STATE_TRYOPEN:return"STATE_TRYOPEN";case s.STATE_OPEN:return"STATE_OPEN";case s.STATE_CLOSED:return"STATE_CLOSED";default:return"UNKNOWN"}}function l(e){switch(e){case 0:case"ORDER_NONE_UNSPECIFIED":return c.ORDER_NONE_UNSPECIFIED;case 1:case"ORDER_UNORDERED":return c.ORDER_UNORDERED;case 2:case"ORDER_ORDERED":return c.ORDER_ORDERED;default:return c.UNRECOGNIZED}}function A(e){switch(e){case c.ORDER_NONE_UNSPECIFIED:return"ORDER_NONE_UNSPECIFIED";case c.ORDER_UNORDERED:return"ORDER_UNORDERED";case c.ORDER_ORDERED:return"ORDER_ORDERED";default:return"UNKNOWN"}}t.protobufPackage="ibc.core.channel.v1",function(e){e[e.STATE_UNINITIALIZED_UNSPECIFIED=0]="STATE_UNINITIALIZED_UNSPECIFIED",e[e.STATE_INIT=1]="STATE_INIT",e[e.STATE_TRYOPEN=2]="STATE_TRYOPEN",e[e.STATE_OPEN=3]="STATE_OPEN",e[e.STATE_CLOSED=4]="STATE_CLOSED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.State||(t.State={})),t.stateFromJSON=d,t.stateToJSON=u,function(e){e[e.ORDER_NONE_UNSPECIFIED=0]="ORDER_NONE_UNSPECIFIED",e[e.ORDER_UNORDERED=1]="ORDER_UNORDERED",e[e.ORDER_ORDERED=2]="ORDER_ORDERED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(c=t.Order||(t.Order={})),t.orderFromJSON=l,t.orderToJSON=A;const f={state:0,ordering:0,connectionHops:"",version:""};t.Channel={encode(e,n=i.default.Writer.create()){0!==e.state&&n.uint32(8).int32(e.state),0!==e.ordering&&n.uint32(16).int32(e.ordering),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,n.uint32(26).fork()).ldelim();for(const t of e.connectionHops)n.uint32(34).string(t);return""!==e.version&&n.uint32(42).string(e.version),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(a.connectionHops=[];r.pos>>3){case 1:a.state=r.int32();break;case 2:a.ordering=r.int32();break;case 3:a.counterparty=t.Counterparty.decode(r,r.uint32());break;case 4:a.connectionHops.push(r.string());break;case 5:a.version=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},f);return r.state=void 0!==e.state&&null!==e.state?d(e.state):0,r.ordering=void 0!==e.ordering&&null!==e.ordering?l(e.ordering):0,r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromJSON(e.counterparty):void 0,r.connectionHops=(null!==(n=e.connectionHops)&&void 0!==n?n:[]).map((e=>String(e))),r.version=void 0!==e.version&&null!==e.version?String(e.version):"",r},toJSON(e){const n={};return void 0!==e.state&&(n.state=u(e.state)),void 0!==e.ordering&&(n.ordering=A(e.ordering)),void 0!==e.counterparty&&(n.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),e.connectionHops?n.connectionHops=e.connectionHops.map((e=>e)):n.connectionHops=[],void 0!==e.version&&(n.version=e.version),n},fromPartial(e){var n,r,o,i;const a=Object.assign({},f);return a.state=null!==(n=e.state)&&void 0!==n?n:0,a.ordering=null!==(r=e.ordering)&&void 0!==r?r:0,a.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromPartial(e.counterparty):void 0,a.connectionHops=(null===(o=e.connectionHops)||void 0===o?void 0:o.map((e=>e)))||[],a.version=null!==(i=e.version)&&void 0!==i?i:"",a}};const h={state:0,ordering:0,connectionHops:"",version:"",portId:"",channelId:""};t.IdentifiedChannel={encode(e,n=i.default.Writer.create()){0!==e.state&&n.uint32(8).int32(e.state),0!==e.ordering&&n.uint32(16).int32(e.ordering),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,n.uint32(26).fork()).ldelim();for(const t of e.connectionHops)n.uint32(34).string(t);return""!==e.version&&n.uint32(42).string(e.version),""!==e.portId&&n.uint32(50).string(e.portId),""!==e.channelId&&n.uint32(58).string(e.channelId),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},h);for(a.connectionHops=[];r.pos>>3){case 1:a.state=r.int32();break;case 2:a.ordering=r.int32();break;case 3:a.counterparty=t.Counterparty.decode(r,r.uint32());break;case 4:a.connectionHops.push(r.string());break;case 5:a.version=r.string();break;case 6:a.portId=r.string();break;case 7:a.channelId=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},h);return r.state=void 0!==e.state&&null!==e.state?d(e.state):0,r.ordering=void 0!==e.ordering&&null!==e.ordering?l(e.ordering):0,r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromJSON(e.counterparty):void 0,r.connectionHops=(null!==(n=e.connectionHops)&&void 0!==n?n:[]).map((e=>String(e))),r.version=void 0!==e.version&&null!==e.version?String(e.version):"",r.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",r.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",r},toJSON(e){const n={};return void 0!==e.state&&(n.state=u(e.state)),void 0!==e.ordering&&(n.ordering=A(e.ordering)),void 0!==e.counterparty&&(n.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),e.connectionHops?n.connectionHops=e.connectionHops.map((e=>e)):n.connectionHops=[],void 0!==e.version&&(n.version=e.version),void 0!==e.portId&&(n.portId=e.portId),void 0!==e.channelId&&(n.channelId=e.channelId),n},fromPartial(e){var n,r,o,i,a,s;const c=Object.assign({},h);return c.state=null!==(n=e.state)&&void 0!==n?n:0,c.ordering=null!==(r=e.ordering)&&void 0!==r?r:0,c.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromPartial(e.counterparty):void 0,c.connectionHops=(null===(o=e.connectionHops)||void 0===o?void 0:o.map((e=>e)))||[],c.version=null!==(i=e.version)&&void 0!==i?i:"",c.portId=null!==(a=e.portId)&&void 0!==a?a:"",c.channelId=null!==(s=e.channelId)&&void 0!==s?s:"",c}};const g={portId:"",channelId:""};t.Counterparty={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r}};const p={sequence:o.default.UZERO,sourcePort:"",sourceChannel:"",destinationPort:"",destinationChannel:"",timeoutTimestamp:o.default.UZERO};t.Packet={encode:(e,t=i.default.Writer.create())=>(e.sequence.isZero()||t.uint32(8).uint64(e.sequence),""!==e.sourcePort&&t.uint32(18).string(e.sourcePort),""!==e.sourceChannel&&t.uint32(26).string(e.sourceChannel),""!==e.destinationPort&&t.uint32(34).string(e.destinationPort),""!==e.destinationChannel&&t.uint32(42).string(e.destinationChannel),0!==e.data.length&&t.uint32(50).bytes(e.data),void 0!==e.timeoutHeight&&a.Height.encode(e.timeoutHeight,t.uint32(58).fork()).ldelim(),e.timeoutTimestamp.isZero()||t.uint32(64).uint64(e.timeoutTimestamp),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.data=new Uint8Array;n.pos>>3){case 1:o.sequence=n.uint64();break;case 2:o.sourcePort=n.string();break;case 3:o.sourceChannel=n.string();break;case 4:o.destinationPort=n.string();break;case 5:o.destinationChannel=n.string();break;case 6:o.data=n.bytes();break;case 7:o.timeoutHeight=a.Height.decode(n,n.uint32());break;case 8:o.timeoutTimestamp=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t.sourcePort=void 0!==e.sourcePort&&null!==e.sourcePort?String(e.sourcePort):"",t.sourceChannel=void 0!==e.sourceChannel&&null!==e.sourceChannel?String(e.sourceChannel):"",t.destinationPort=void 0!==e.destinationPort&&null!==e.destinationPort?String(e.destinationPort):"",t.destinationChannel=void 0!==e.destinationChannel&&null!==e.destinationChannel?String(e.destinationChannel):"",t.data=void 0!==e.data&&null!==e.data?I(e.data):new Uint8Array,t.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?a.Height.fromJSON(e.timeoutHeight):void 0,t.timeoutTimestamp=void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?o.default.fromString(e.timeoutTimestamp):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),void 0!==e.sourcePort&&(t.sourcePort=e.sourcePort),void 0!==e.sourceChannel&&(t.sourceChannel=e.sourceChannel),void 0!==e.destinationPort&&(t.destinationPort=e.destinationPort),void 0!==e.destinationChannel&&(t.destinationChannel=e.destinationChannel),void 0!==e.data&&(t.data=E(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.timeoutHeight&&(t.timeoutHeight=e.timeoutHeight?a.Height.toJSON(e.timeoutHeight):void 0),void 0!==e.timeoutTimestamp&&(t.timeoutTimestamp=(e.timeoutTimestamp||o.default.UZERO).toString()),t},fromPartial(e){var t,n,r,i,s;const c=Object.assign({},p);return c.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,c.sourcePort=null!==(t=e.sourcePort)&&void 0!==t?t:"",c.sourceChannel=null!==(n=e.sourceChannel)&&void 0!==n?n:"",c.destinationPort=null!==(r=e.destinationPort)&&void 0!==r?r:"",c.destinationChannel=null!==(i=e.destinationChannel)&&void 0!==i?i:"",c.data=null!==(s=e.data)&&void 0!==s?s:new Uint8Array,c.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?a.Height.fromPartial(e.timeoutHeight):void 0,c.timeoutTimestamp=void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?o.default.fromValue(e.timeoutTimestamp):o.default.UZERO,c}};const m={portId:"",channelId:"",sequence:o.default.UZERO};t.PacketState={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),0!==e.data.length&&t.uint32(34).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.data=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.sequence=n.uint64();break;case 4:o.data=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t.data=void 0!==e.data&&null!==e.data?I(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),void 0!==e.data&&(t.data=E(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t,n,r;const i=Object.assign({},m);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,i.data=null!==(r=e.data)&&void 0!==r?r:new Uint8Array,i}};const v={};t.Acknowledgement={encode:(e,t=i.default.Writer.create())=>(void 0!==e.result&&t.uint32(170).bytes(e.result),void 0!==e.error&&t.uint32(178).string(e.error),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 21:o.result=n.bytes();break;case 22:o.error=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.result=void 0!==e.result&&null!==e.result?I(e.result):void 0,t.error=void 0!==e.error&&null!==e.error?String(e.error):void 0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=void 0!==e.result?E(e.result):void 0),void 0!==e.error&&(t.error=e.error),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.result=null!==(t=e.result)&&void 0!==t?t:void 0,r.error=null!==(n=e.error)&&void 0!==n?n:void 0,r}};var y=(()=>{if(void 0!==y)return y;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const b=y.atob||(e=>y.Buffer.from(e,"base64").toString("binary"));function I(e){const t=b(e),n=new Uint8Array(t.length);for(let e=0;ey.Buffer.from(e,"binary").toString("base64"));function E(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return C(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6688:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryNextSequenceReceiveResponse=t.QueryNextSequenceReceiveRequest=t.QueryUnreceivedAcksResponse=t.QueryUnreceivedAcksRequest=t.QueryUnreceivedPacketsResponse=t.QueryUnreceivedPacketsRequest=t.QueryPacketAcknowledgementsResponse=t.QueryPacketAcknowledgementsRequest=t.QueryPacketAcknowledgementResponse=t.QueryPacketAcknowledgementRequest=t.QueryPacketReceiptResponse=t.QueryPacketReceiptRequest=t.QueryPacketCommitmentsResponse=t.QueryPacketCommitmentsRequest=t.QueryPacketCommitmentResponse=t.QueryPacketCommitmentRequest=t.QueryChannelConsensusStateResponse=t.QueryChannelConsensusStateRequest=t.QueryChannelClientStateResponse=t.QueryChannelClientStateRequest=t.QueryConnectionChannelsResponse=t.QueryConnectionChannelsRequest=t.QueryChannelsResponse=t.QueryChannelsRequest=t.QueryChannelResponse=t.QueryChannelRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1787),s=n(5022),c=n(9551),d=n(3862);t.protobufPackage="ibc.core.channel.v1";const u={portId:"",channelId:""};t.QueryChannelRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){var t,n;const r=Object.assign({},u);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r}};const l={};t.QueryChannelResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.channel&&a.Channel.encode(e.channel,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.channel=a.Channel.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromJSON(e.channel):void 0,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.channel&&(t.channel=e.channel?a.Channel.toJSON(e.channel):void 0),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromPartial(e.channel):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const A={};t.QueryChannelsRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.pagination=c.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,t}};const f={};t.QueryChannelsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.channels)a.IdentifiedChannel.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.channels=[];n.pos>>3){case 1:o.channels.push(a.IdentifiedChannel.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.channels=(null!==(t=e.channels)&&void 0!==t?t:[]).map((e=>a.IdentifiedChannel.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.channels?t.channels=e.channels.map((e=>e?a.IdentifiedChannel.toJSON(e):void 0)):t.channels=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.channels=(null===(t=e.channels)||void 0===t?void 0:t.map((e=>a.IdentifiedChannel.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const h={connection:""};t.QueryConnectionChannelsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.connection&&t.uint32(10).string(e.connection),void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.connection=n.string();break;case 2:o.pagination=c.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.connection=void 0!==e.connection&&null!==e.connection?String(e.connection):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.connection&&(t.connection=e.connection),void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.connection=null!==(t=e.connection)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,n}};const g={};t.QueryConnectionChannelsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.channels)a.IdentifiedChannel.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.channels=[];n.pos>>3){case 1:o.channels.push(a.IdentifiedChannel.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.channels=(null!==(t=e.channels)&&void 0!==t?t:[]).map((e=>a.IdentifiedChannel.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.channels?t.channels=e.channels.map((e=>e?a.IdentifiedChannel.toJSON(e):void 0)):t.channels=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},g);return n.channels=(null===(t=e.channels)||void 0===t?void 0:t.map((e=>a.IdentifiedChannel.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const p={portId:"",channelId:""};t.QueryChannelClientStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r}};const m={};t.QueryChannelClientStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.identifiedClientState&&s.IdentifiedClientState.encode(e.identifiedClientState,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.identifiedClientState=s.IdentifiedClientState.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.identifiedClientState=void 0!==e.identifiedClientState&&null!==e.identifiedClientState?s.IdentifiedClientState.fromJSON(e.identifiedClientState):void 0,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.identifiedClientState&&(t.identifiedClientState=e.identifiedClientState?s.IdentifiedClientState.toJSON(e.identifiedClientState):void 0),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},m);return n.identifiedClientState=void 0!==e.identifiedClientState&&null!==e.identifiedClientState?s.IdentifiedClientState.fromPartial(e.identifiedClientState):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const v={portId:"",channelId:"",revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO};t.QueryChannelConsensusStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.revisionNumber.isZero()||t.uint32(24).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(32).uint64(e.revisionHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.revisionNumber=n.uint64();break;case 4:o.revisionHeight=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromString(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromString(e.revisionHeight):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromValue(e.revisionNumber):o.default.UZERO,r.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromValue(e.revisionHeight):o.default.UZERO,r}};const y={clientId:""};t.QueryChannelConsensusStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.consensusState&&d.Any.encode(e.consensusState,t.uint32(10).fork()).ldelim(),""!==e.clientId&&t.uint32(18).string(e.clientId),0!==e.proof.length&&t.uint32(26).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.consensusState=d.Any.decode(n,n.uint32());break;case 2:o.clientId=n.string();break;case 3:o.proof=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?d.Any.fromJSON(e.consensusState):void 0,t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.consensusState&&(t.consensusState=e.consensusState?d.Any.toJSON(e.consensusState):void 0),void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},y);return r.consensusState=void 0!==e.consensusState&&null!==e.consensusState?d.Any.fromPartial(e.consensusState):void 0,r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const b={portId:"",channelId:"",sequence:o.default.UZERO};t.QueryPacketCommitmentRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.sequence=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,r}};const I={};t.QueryPacketCommitmentResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.commitment.length&&t.uint32(10).bytes(e.commitment),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(o.commitment=new Uint8Array,o.proof=new Uint8Array;n.pos>>3){case 1:o.commitment=n.bytes();break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},I);return t.commitment=void 0!==e.commitment&&null!==e.commitment?U(e.commitment):new Uint8Array,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.commitment&&(t.commitment=j(void 0!==e.commitment?e.commitment:new Uint8Array)),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},I);return r.commitment=null!==(t=e.commitment)&&void 0!==t?t:new Uint8Array,r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const C={portId:"",channelId:""};t.QueryPacketCommitmentsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.pagination=c.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},C);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,r}};const E={};t.QueryPacketCommitmentsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.commitments)a.PacketState.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(o.commitments=[];n.pos>>3){case 1:o.commitments.push(a.PacketState.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},E);return n.commitments=(null!==(t=e.commitments)&&void 0!==t?t:[]).map((e=>a.PacketState.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.commitments?t.commitments=e.commitments.map((e=>e?a.PacketState.toJSON(e):void 0)):t.commitments=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},E);return n.commitments=(null===(t=e.commitments)||void 0===t?void 0:t.map((e=>a.PacketState.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const w={portId:"",channelId:"",sequence:o.default.UZERO};t.QueryPacketReceiptRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.sequence=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},w);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,r}};const B={received:!1};t.QueryPacketReceiptResponse={encode:(e,t=i.default.Writer.create())=>(!0===e.received&&t.uint32(16).bool(e.received),0!==e.proof.length&&t.uint32(26).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(o.proof=new Uint8Array;n.pos>>3){case 2:o.received=n.bool();break;case 3:o.proof=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},B);return t.received=void 0!==e.received&&null!==e.received&&Boolean(e.received),t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.received&&(t.received=e.received),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},B);return r.received=null!==(t=e.received)&&void 0!==t&&t,r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const _={portId:"",channelId:"",sequence:o.default.UZERO};t.QueryPacketAcknowledgementRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.sequence=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},_);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,r}};const S={};t.QueryPacketAcknowledgementResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.acknowledgement.length&&t.uint32(10).bytes(e.acknowledgement),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(o.acknowledgement=new Uint8Array,o.proof=new Uint8Array;n.pos>>3){case 1:o.acknowledgement=n.bytes();break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);return t.acknowledgement=void 0!==e.acknowledgement&&null!==e.acknowledgement?U(e.acknowledgement):new Uint8Array,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.acknowledgement&&(t.acknowledgement=j(void 0!==e.acknowledgement?e.acknowledgement:new Uint8Array)),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},S);return r.acknowledgement=null!==(t=e.acknowledgement)&&void 0!==t?t:new Uint8Array,r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const k={portId:"",channelId:""};t.QueryPacketAcknowledgementsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},k);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.pagination=c.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},k);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,r}};const O={};t.QueryPacketAcknowledgementsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.acknowledgements)a.PacketState.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},O);for(o.acknowledgements=[];n.pos>>3){case 1:o.acknowledgements.push(a.PacketState.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},O);return n.acknowledgements=(null!==(t=e.acknowledgements)&&void 0!==t?t:[]).map((e=>a.PacketState.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.acknowledgements?t.acknowledgements=e.acknowledgements.map((e=>e?a.PacketState.toJSON(e):void 0)):t.acknowledgements=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},O);return n.acknowledgements=(null===(t=e.acknowledgements)||void 0===t?void 0:t.map((e=>a.PacketState.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const Q={portId:"",channelId:"",packetCommitmentSequences:o.default.UZERO};t.QueryUnreceivedPacketsRequest={encode(e,t=i.default.Writer.create()){""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t.uint32(26).fork();for(const n of e.packetCommitmentSequences)t.uint64(n);return t.ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},Q);for(o.packetCommitmentSequences=[];n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.poso.default.fromString(e))),n},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),e.packetCommitmentSequences?t.packetCommitmentSequences=e.packetCommitmentSequences.map((e=>(e||o.default.UZERO).toString())):t.packetCommitmentSequences=[],t},fromPartial(e){var t,n,r;const i=Object.assign({},Q);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.packetCommitmentSequences=(null===(r=e.packetCommitmentSequences)||void 0===r?void 0:r.map((e=>o.default.fromValue(e))))||[],i}};const R={sequences:o.default.UZERO};t.QueryUnreceivedPacketsResponse={encode(e,t=i.default.Writer.create()){t.uint32(10).fork();for(const n of e.sequences)t.uint64(n);return t.ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},R);for(o.sequences=[];n.pos>>3){case 1:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.poso.default.fromString(e))),n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.sequences?t.sequences=e.sequences.map((e=>(e||o.default.UZERO).toString())):t.sequences=[],void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},R);return n.sequences=(null===(t=e.sequences)||void 0===t?void 0:t.map((e=>o.default.fromValue(e))))||[],n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const P={portId:"",channelId:"",packetAckSequences:o.default.UZERO};t.QueryUnreceivedAcksRequest={encode(e,t=i.default.Writer.create()){""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t.uint32(26).fork();for(const n of e.packetAckSequences)t.uint64(n);return t.ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},P);for(o.packetAckSequences=[];n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.poso.default.fromString(e))),n},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),e.packetAckSequences?t.packetAckSequences=e.packetAckSequences.map((e=>(e||o.default.UZERO).toString())):t.packetAckSequences=[],t},fromPartial(e){var t,n,r;const i=Object.assign({},P);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.packetAckSequences=(null===(r=e.packetAckSequences)||void 0===r?void 0:r.map((e=>o.default.fromValue(e))))||[],i}};const N={sequences:o.default.UZERO};t.QueryUnreceivedAcksResponse={encode(e,t=i.default.Writer.create()){t.uint32(10).fork();for(const n of e.sequences)t.uint64(n);return t.ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},N);for(o.sequences=[];n.pos>>3){case 1:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.poso.default.fromString(e))),n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.sequences?t.sequences=e.sequences.map((e=>(e||o.default.UZERO).toString())):t.sequences=[],void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},N);return n.sequences=(null===(t=e.sequences)||void 0===t?void 0:t.map((e=>o.default.fromValue(e))))||[],n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const x={portId:"",channelId:""};t.QueryNextSequenceReceiveRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},x);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},x);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){var t,n;const r=Object.assign({},x);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r}};const D={nextSequenceReceive:o.default.UZERO};t.QueryNextSequenceReceiveResponse={encode:(e,t=i.default.Writer.create())=>(e.nextSequenceReceive.isZero()||t.uint32(8).uint64(e.nextSequenceReceive),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},D);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.nextSequenceReceive=n.uint64();break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},D);return t.nextSequenceReceive=void 0!==e.nextSequenceReceive&&null!==e.nextSequenceReceive?o.default.fromString(e.nextSequenceReceive):o.default.UZERO,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.nextSequenceReceive&&(t.nextSequenceReceive=(e.nextSequenceReceive||o.default.UZERO).toString()),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},D);return n.nextSequenceReceive=void 0!==e.nextSequenceReceive&&null!==e.nextSequenceReceive?o.default.fromValue(e.nextSequenceReceive):o.default.UZERO,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Channel=this.Channel.bind(this),this.Channels=this.Channels.bind(this),this.ConnectionChannels=this.ConnectionChannels.bind(this),this.ChannelClientState=this.ChannelClientState.bind(this),this.ChannelConsensusState=this.ChannelConsensusState.bind(this),this.PacketCommitment=this.PacketCommitment.bind(this),this.PacketCommitments=this.PacketCommitments.bind(this),this.PacketReceipt=this.PacketReceipt.bind(this),this.PacketAcknowledgement=this.PacketAcknowledgement.bind(this),this.PacketAcknowledgements=this.PacketAcknowledgements.bind(this),this.UnreceivedPackets=this.UnreceivedPackets.bind(this),this.UnreceivedAcks=this.UnreceivedAcks.bind(this),this.NextSequenceReceive=this.NextSequenceReceive.bind(this)}Channel(e){const n=t.QueryChannelRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","Channel",n).then((e=>t.QueryChannelResponse.decode(new i.default.Reader(e))))}Channels(e){const n=t.QueryChannelsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","Channels",n).then((e=>t.QueryChannelsResponse.decode(new i.default.Reader(e))))}ConnectionChannels(e){const n=t.QueryConnectionChannelsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","ConnectionChannels",n).then((e=>t.QueryConnectionChannelsResponse.decode(new i.default.Reader(e))))}ChannelClientState(e){const n=t.QueryChannelClientStateRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","ChannelClientState",n).then((e=>t.QueryChannelClientStateResponse.decode(new i.default.Reader(e))))}ChannelConsensusState(e){const n=t.QueryChannelConsensusStateRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","ChannelConsensusState",n).then((e=>t.QueryChannelConsensusStateResponse.decode(new i.default.Reader(e))))}PacketCommitment(e){const n=t.QueryPacketCommitmentRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketCommitment",n).then((e=>t.QueryPacketCommitmentResponse.decode(new i.default.Reader(e))))}PacketCommitments(e){const n=t.QueryPacketCommitmentsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketCommitments",n).then((e=>t.QueryPacketCommitmentsResponse.decode(new i.default.Reader(e))))}PacketReceipt(e){const n=t.QueryPacketReceiptRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketReceipt",n).then((e=>t.QueryPacketReceiptResponse.decode(new i.default.Reader(e))))}PacketAcknowledgement(e){const n=t.QueryPacketAcknowledgementRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketAcknowledgement",n).then((e=>t.QueryPacketAcknowledgementResponse.decode(new i.default.Reader(e))))}PacketAcknowledgements(e){const n=t.QueryPacketAcknowledgementsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketAcknowledgements",n).then((e=>t.QueryPacketAcknowledgementsResponse.decode(new i.default.Reader(e))))}UnreceivedPackets(e){const n=t.QueryUnreceivedPacketsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","UnreceivedPackets",n).then((e=>t.QueryUnreceivedPacketsResponse.decode(new i.default.Reader(e))))}UnreceivedAcks(e){const n=t.QueryUnreceivedAcksRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","UnreceivedAcks",n).then((e=>t.QueryUnreceivedAcksResponse.decode(new i.default.Reader(e))))}NextSequenceReceive(e){const n=t.QueryNextSequenceReceiveRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","NextSequenceReceive",n).then((e=>t.QueryNextSequenceReceiveResponse.decode(new i.default.Reader(e))))}};var M=(()=>{if(void 0!==M)return M;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const T=M.atob||(e=>M.Buffer.from(e,"base64").toString("binary"));function U(e){const t=T(e),n=new Uint8Array(t.length);for(let e=0;eM.Buffer.from(e,"binary").toString("base64"));function j(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return H(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},7375:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgAcknowledgementResponse=t.MsgAcknowledgement=t.MsgTimeoutOnCloseResponse=t.MsgTimeoutOnClose=t.MsgTimeoutResponse=t.MsgTimeout=t.MsgRecvPacketResponse=t.MsgRecvPacket=t.MsgChannelCloseConfirmResponse=t.MsgChannelCloseConfirm=t.MsgChannelCloseInitResponse=t.MsgChannelCloseInit=t.MsgChannelOpenConfirmResponse=t.MsgChannelOpenConfirm=t.MsgChannelOpenAckResponse=t.MsgChannelOpenAck=t.MsgChannelOpenTryResponse=t.MsgChannelOpenTry=t.MsgChannelOpenInitResponse=t.MsgChannelOpenInit=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1787),s=n(5022);t.protobufPackage="ibc.core.channel.v1";const c={portId:"",signer:""};t.MsgChannelOpenInit={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),void 0!==e.channel&&a.Channel.encode(e.channel,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channel=a.Channel.decode(n,n.uint32());break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromJSON(e.channel):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channel&&(t.channel=e.channel?a.Channel.toJSON(e.channel):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromPartial(e.channel):void 0,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const d={};t.MsgChannelOpenInitResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const u={portId:"",previousChannelId:"",counterpartyVersion:"",signer:""};t.MsgChannelOpenTry={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.previousChannelId&&t.uint32(18).string(e.previousChannelId),void 0!==e.channel&&a.Channel.encode(e.channel,t.uint32(26).fork()).ldelim(),""!==e.counterpartyVersion&&t.uint32(34).string(e.counterpartyVersion),0!==e.proofInit.length&&t.uint32(42).bytes(e.proofInit),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(50).fork()).ldelim(),""!==e.signer&&t.uint32(58).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.proofInit=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.previousChannelId=n.string();break;case 3:o.channel=a.Channel.decode(n,n.uint32());break;case 4:o.counterpartyVersion=n.string();break;case 5:o.proofInit=n.bytes();break;case 6:o.proofHeight=s.Height.decode(n,n.uint32());break;case 7:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.previousChannelId=void 0!==e.previousChannelId&&null!==e.previousChannelId?String(e.previousChannelId):"",t.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromJSON(e.channel):void 0,t.counterpartyVersion=void 0!==e.counterpartyVersion&&null!==e.counterpartyVersion?String(e.counterpartyVersion):"",t.proofInit=void 0!==e.proofInit&&null!==e.proofInit?Q(e.proofInit):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.previousChannelId&&(t.previousChannelId=e.previousChannelId),void 0!==e.channel&&(t.channel=e.channel?a.Channel.toJSON(e.channel):void 0),void 0!==e.counterpartyVersion&&(t.counterpartyVersion=e.counterpartyVersion),void 0!==e.proofInit&&(t.proofInit=P(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o,i;const c=Object.assign({},u);return c.portId=null!==(t=e.portId)&&void 0!==t?t:"",c.previousChannelId=null!==(n=e.previousChannelId)&&void 0!==n?n:"",c.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromPartial(e.channel):void 0,c.counterpartyVersion=null!==(r=e.counterpartyVersion)&&void 0!==r?r:"",c.proofInit=null!==(o=e.proofInit)&&void 0!==o?o:new Uint8Array,c.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,c.signer=null!==(i=e.signer)&&void 0!==i?i:"",c}};const l={};t.MsgChannelOpenTryResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const A={portId:"",channelId:"",counterpartyChannelId:"",counterpartyVersion:"",signer:""};t.MsgChannelOpenAck={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),""!==e.counterpartyChannelId&&t.uint32(26).string(e.counterpartyChannelId),""!==e.counterpartyVersion&&t.uint32(34).string(e.counterpartyVersion),0!==e.proofTry.length&&t.uint32(42).bytes(e.proofTry),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(50).fork()).ldelim(),""!==e.signer&&t.uint32(58).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.proofTry=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.counterpartyChannelId=n.string();break;case 4:o.counterpartyVersion=n.string();break;case 5:o.proofTry=n.bytes();break;case 6:o.proofHeight=s.Height.decode(n,n.uint32());break;case 7:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.counterpartyChannelId=void 0!==e.counterpartyChannelId&&null!==e.counterpartyChannelId?String(e.counterpartyChannelId):"",t.counterpartyVersion=void 0!==e.counterpartyVersion&&null!==e.counterpartyVersion?String(e.counterpartyVersion):"",t.proofTry=void 0!==e.proofTry&&null!==e.proofTry?Q(e.proofTry):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.counterpartyChannelId&&(t.counterpartyChannelId=e.counterpartyChannelId),void 0!==e.counterpartyVersion&&(t.counterpartyVersion=e.counterpartyVersion),void 0!==e.proofTry&&(t.proofTry=P(void 0!==e.proofTry?e.proofTry:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o,i,a;const c=Object.assign({},A);return c.portId=null!==(t=e.portId)&&void 0!==t?t:"",c.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",c.counterpartyChannelId=null!==(r=e.counterpartyChannelId)&&void 0!==r?r:"",c.counterpartyVersion=null!==(o=e.counterpartyVersion)&&void 0!==o?o:"",c.proofTry=null!==(i=e.proofTry)&&void 0!==i?i:new Uint8Array,c.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,c.signer=null!==(a=e.signer)&&void 0!==a?a:"",c}};const f={};t.MsgChannelOpenAckResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={portId:"",channelId:"",signer:""};t.MsgChannelOpenConfirm={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),0!==e.proofAck.length&&t.uint32(26).bytes(e.proofAck),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.proofAck=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.proofAck=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.proofAck=void 0!==e.proofAck&&null!==e.proofAck?Q(e.proofAck):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.proofAck&&(t.proofAck=P(void 0!==e.proofAck?e.proofAck:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},h);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.proofAck=null!==(r=e.proofAck)&&void 0!==r?r:new Uint8Array,i.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,i.signer=null!==(o=e.signer)&&void 0!==o?o:"",i}};const g={};t.MsgChannelOpenConfirmResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)};const p={portId:"",channelId:"",signer:""};t.MsgChannelCloseInit={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r;const o=Object.assign({},p);return o.portId=null!==(t=e.portId)&&void 0!==t?t:"",o.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",o.signer=null!==(r=e.signer)&&void 0!==r?r:"",o}};const m={};t.MsgChannelCloseInitResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const v={portId:"",channelId:"",signer:""};t.MsgChannelCloseConfirm={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),0!==e.proofInit.length&&t.uint32(26).bytes(e.proofInit),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.proofInit=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.proofInit=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.proofInit=void 0!==e.proofInit&&null!==e.proofInit?Q(e.proofInit):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.proofInit&&(t.proofInit=P(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},v);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.proofInit=null!==(r=e.proofInit)&&void 0!==r?r:new Uint8Array,i.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,i.signer=null!==(o=e.signer)&&void 0!==o?o:"",i}};const y={};t.MsgChannelCloseConfirmResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.posObject.assign({},y),toJSON:e=>({}),fromPartial:e=>Object.assign({},y)};const b={signer:""};t.MsgRecvPacket={encode:(e,t=i.default.Writer.create())=>(void 0!==e.packet&&a.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofCommitment.length&&t.uint32(18).bytes(e.proofCommitment),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),""!==e.signer&&t.uint32(34).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.proofCommitment=new Uint8Array;n.pos>>3){case 1:o.packet=a.Packet.decode(n,n.uint32());break;case 2:o.proofCommitment=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;case 4:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromJSON(e.packet):void 0,t.proofCommitment=void 0!==e.proofCommitment&&null!==e.proofCommitment?Q(e.proofCommitment):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?a.Packet.toJSON(e.packet):void 0),void 0!==e.proofCommitment&&(t.proofCommitment=P(void 0!==e.proofCommitment?e.proofCommitment:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromPartial(e.packet):void 0,r.proofCommitment=null!==(t=e.proofCommitment)&&void 0!==t?t:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const I={};t.MsgRecvPacketResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(;n.posObject.assign({},I),toJSON:e=>({}),fromPartial:e=>Object.assign({},I)};const C={nextSequenceRecv:o.default.UZERO,signer:""};t.MsgTimeout={encode:(e,t=i.default.Writer.create())=>(void 0!==e.packet&&a.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofUnreceived.length&&t.uint32(18).bytes(e.proofUnreceived),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),e.nextSequenceRecv.isZero()||t.uint32(32).uint64(e.nextSequenceRecv),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(o.proofUnreceived=new Uint8Array;n.pos>>3){case 1:o.packet=a.Packet.decode(n,n.uint32());break;case 2:o.proofUnreceived=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;case 4:o.nextSequenceRecv=n.uint64();break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromJSON(e.packet):void 0,t.proofUnreceived=void 0!==e.proofUnreceived&&null!==e.proofUnreceived?Q(e.proofUnreceived):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.nextSequenceRecv=void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?o.default.fromString(e.nextSequenceRecv):o.default.UZERO,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?a.Packet.toJSON(e.packet):void 0),void 0!==e.proofUnreceived&&(t.proofUnreceived=P(void 0!==e.proofUnreceived?e.proofUnreceived:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.nextSequenceRecv&&(t.nextSequenceRecv=(e.nextSequenceRecv||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},C);return r.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromPartial(e.packet):void 0,r.proofUnreceived=null!==(t=e.proofUnreceived)&&void 0!==t?t:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r.nextSequenceRecv=void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?o.default.fromValue(e.nextSequenceRecv):o.default.UZERO,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const E={};t.MsgTimeoutResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.posObject.assign({},E),toJSON:e=>({}),fromPartial:e=>Object.assign({},E)};const w={nextSequenceRecv:o.default.UZERO,signer:""};t.MsgTimeoutOnClose={encode:(e,t=i.default.Writer.create())=>(void 0!==e.packet&&a.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofUnreceived.length&&t.uint32(18).bytes(e.proofUnreceived),0!==e.proofClose.length&&t.uint32(26).bytes(e.proofClose),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),e.nextSequenceRecv.isZero()||t.uint32(40).uint64(e.nextSequenceRecv),""!==e.signer&&t.uint32(50).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(o.proofUnreceived=new Uint8Array,o.proofClose=new Uint8Array;n.pos>>3){case 1:o.packet=a.Packet.decode(n,n.uint32());break;case 2:o.proofUnreceived=n.bytes();break;case 3:o.proofClose=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;case 5:o.nextSequenceRecv=n.uint64();break;case 6:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromJSON(e.packet):void 0,t.proofUnreceived=void 0!==e.proofUnreceived&&null!==e.proofUnreceived?Q(e.proofUnreceived):new Uint8Array,t.proofClose=void 0!==e.proofClose&&null!==e.proofClose?Q(e.proofClose):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.nextSequenceRecv=void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?o.default.fromString(e.nextSequenceRecv):o.default.UZERO,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?a.Packet.toJSON(e.packet):void 0),void 0!==e.proofUnreceived&&(t.proofUnreceived=P(void 0!==e.proofUnreceived?e.proofUnreceived:new Uint8Array)),void 0!==e.proofClose&&(t.proofClose=P(void 0!==e.proofClose?e.proofClose:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.nextSequenceRecv&&(t.nextSequenceRecv=(e.nextSequenceRecv||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r;const i=Object.assign({},w);return i.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromPartial(e.packet):void 0,i.proofUnreceived=null!==(t=e.proofUnreceived)&&void 0!==t?t:new Uint8Array,i.proofClose=null!==(n=e.proofClose)&&void 0!==n?n:new Uint8Array,i.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,i.nextSequenceRecv=void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?o.default.fromValue(e.nextSequenceRecv):o.default.UZERO,i.signer=null!==(r=e.signer)&&void 0!==r?r:"",i}};const B={};t.MsgTimeoutOnCloseResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(;n.posObject.assign({},B),toJSON:e=>({}),fromPartial:e=>Object.assign({},B)};const _={signer:""};t.MsgAcknowledgement={encode:(e,t=i.default.Writer.create())=>(void 0!==e.packet&&a.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.acknowledgement.length&&t.uint32(18).bytes(e.acknowledgement),0!==e.proofAcked.length&&t.uint32(26).bytes(e.proofAcked),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(o.acknowledgement=new Uint8Array,o.proofAcked=new Uint8Array;n.pos>>3){case 1:o.packet=a.Packet.decode(n,n.uint32());break;case 2:o.acknowledgement=n.bytes();break;case 3:o.proofAcked=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromJSON(e.packet):void 0,t.acknowledgement=void 0!==e.acknowledgement&&null!==e.acknowledgement?Q(e.acknowledgement):new Uint8Array,t.proofAcked=void 0!==e.proofAcked&&null!==e.proofAcked?Q(e.proofAcked):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?a.Packet.toJSON(e.packet):void 0),void 0!==e.acknowledgement&&(t.acknowledgement=P(void 0!==e.acknowledgement?e.acknowledgement:new Uint8Array)),void 0!==e.proofAcked&&(t.proofAcked=P(void 0!==e.proofAcked?e.proofAcked:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r;const o=Object.assign({},_);return o.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromPartial(e.packet):void 0,o.acknowledgement=null!==(t=e.acknowledgement)&&void 0!==t?t:new Uint8Array,o.proofAcked=null!==(n=e.proofAcked)&&void 0!==n?n:new Uint8Array,o.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,o.signer=null!==(r=e.signer)&&void 0!==r?r:"",o}};const S={};t.MsgAcknowledgementResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(;n.posObject.assign({},S),toJSON:e=>({}),fromPartial:e=>Object.assign({},S)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.ChannelOpenInit=this.ChannelOpenInit.bind(this),this.ChannelOpenTry=this.ChannelOpenTry.bind(this),this.ChannelOpenAck=this.ChannelOpenAck.bind(this),this.ChannelOpenConfirm=this.ChannelOpenConfirm.bind(this),this.ChannelCloseInit=this.ChannelCloseInit.bind(this),this.ChannelCloseConfirm=this.ChannelCloseConfirm.bind(this),this.RecvPacket=this.RecvPacket.bind(this),this.Timeout=this.Timeout.bind(this),this.TimeoutOnClose=this.TimeoutOnClose.bind(this),this.Acknowledgement=this.Acknowledgement.bind(this)}ChannelOpenInit(e){const n=t.MsgChannelOpenInit.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelOpenInit",n).then((e=>t.MsgChannelOpenInitResponse.decode(new i.default.Reader(e))))}ChannelOpenTry(e){const n=t.MsgChannelOpenTry.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelOpenTry",n).then((e=>t.MsgChannelOpenTryResponse.decode(new i.default.Reader(e))))}ChannelOpenAck(e){const n=t.MsgChannelOpenAck.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelOpenAck",n).then((e=>t.MsgChannelOpenAckResponse.decode(new i.default.Reader(e))))}ChannelOpenConfirm(e){const n=t.MsgChannelOpenConfirm.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelOpenConfirm",n).then((e=>t.MsgChannelOpenConfirmResponse.decode(new i.default.Reader(e))))}ChannelCloseInit(e){const n=t.MsgChannelCloseInit.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelCloseInit",n).then((e=>t.MsgChannelCloseInitResponse.decode(new i.default.Reader(e))))}ChannelCloseConfirm(e){const n=t.MsgChannelCloseConfirm.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelCloseConfirm",n).then((e=>t.MsgChannelCloseConfirmResponse.decode(new i.default.Reader(e))))}RecvPacket(e){const n=t.MsgRecvPacket.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","RecvPacket",n).then((e=>t.MsgRecvPacketResponse.decode(new i.default.Reader(e))))}Timeout(e){const n=t.MsgTimeout.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","Timeout",n).then((e=>t.MsgTimeoutResponse.decode(new i.default.Reader(e))))}TimeoutOnClose(e){const n=t.MsgTimeoutOnClose.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","TimeoutOnClose",n).then((e=>t.MsgTimeoutOnCloseResponse.decode(new i.default.Reader(e))))}Acknowledgement(e){const n=t.MsgAcknowledgement.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","Acknowledgement",n).then((e=>t.MsgAcknowledgementResponse.decode(new i.default.Reader(e))))}};var k=(()=>{if(void 0!==k)return k;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const O=k.atob||(e=>k.Buffer.from(e,"base64").toString("binary"));function Q(e){const t=O(e),n=new Uint8Array(t.length);for(let e=0;ek.Buffer.from(e,"binary").toString("base64"));function P(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return R(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5022:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.Height=t.ClientUpdateProposal=t.ClientConsensusStates=t.ConsensusStateWithHeight=t.IdentifiedClientState=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="ibc.core.client.v1";const s={clientId:""};t.IdentifiedClientState={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.clientState=a.Any.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromJSON(e.clientState):void 0,t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),t},fromPartial(e){var t;const n=Object.assign({},s);return n.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",n.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromPartial(e.clientState):void 0,n}};const c={};t.ConsensusStateWithHeight={encode:(e,n=i.default.Writer.create())=>(void 0!==e.height&&t.Height.encode(e.height,n.uint32(10).fork()).ldelim(),void 0!==e.consensusState&&a.Any.encode(e.consensusState,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},c);for(;r.pos>>3){case 1:s.height=t.Height.decode(r,r.uint32());break;case 2:s.consensusState=a.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},c);return n.height=void 0!==e.height&&null!==e.height?t.Height.fromJSON(e.height):void 0,n.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromJSON(e.consensusState):void 0,n},toJSON(e){const n={};return void 0!==e.height&&(n.height=e.height?t.Height.toJSON(e.height):void 0),void 0!==e.consensusState&&(n.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),n},fromPartial(e){const n=Object.assign({},c);return n.height=void 0!==e.height&&null!==e.height?t.Height.fromPartial(e.height):void 0,n.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromPartial(e.consensusState):void 0,n}};const d={clientId:""};t.ClientConsensusStates={encode(e,n=i.default.Writer.create()){""!==e.clientId&&n.uint32(10).string(e.clientId);for(const r of e.consensusStates)t.ConsensusStateWithHeight.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},d);for(a.consensusStates=[];r.pos>>3){case 1:a.clientId=r.string();break;case 2:a.consensusStates.push(t.ConsensusStateWithHeight.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},d);return r.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",r.consensusStates=(null!==(n=e.consensusStates)&&void 0!==n?n:[]).map((e=>t.ConsensusStateWithHeight.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.clientId&&(n.clientId=e.clientId),e.consensusStates?n.consensusStates=e.consensusStates.map((e=>e?t.ConsensusStateWithHeight.toJSON(e):void 0)):n.consensusStates=[],n},fromPartial(e){var n,r;const o=Object.assign({},d);return o.clientId=null!==(n=e.clientId)&&void 0!==n?n:"",o.consensusStates=(null===(r=e.consensusStates)||void 0===r?void 0:r.map((e=>t.ConsensusStateWithHeight.fromPartial(e))))||[],o}};const u={title:"",description:"",clientId:""};t.ClientUpdateProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.clientId&&t.uint32(26).string(e.clientId),void 0!==e.header&&a.Any.encode(e.header,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.title=n.string();break;case 2:o.description=n.string();break;case 3:o.clientId=n.string();break;case 4:o.header=a.Any.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.title=void 0!==e.title&&null!==e.title?String(e.title):"",t.description=void 0!==e.description&&null!==e.description?String(e.description):"",t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.header=void 0!==e.header&&null!==e.header?a.Any.fromJSON(e.header):void 0,t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.header&&(t.header=e.header?a.Any.toJSON(e.header):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},u);return o.title=null!==(t=e.title)&&void 0!==t?t:"",o.description=null!==(n=e.description)&&void 0!==n?n:"",o.clientId=null!==(r=e.clientId)&&void 0!==r?r:"",o.header=void 0!==e.header&&null!==e.header?a.Any.fromPartial(e.header):void 0,o}};const l={revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO};t.Height={encode:(e,t=i.default.Writer.create())=>(e.revisionNumber.isZero()||t.uint32(8).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(16).uint64(e.revisionHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3){case 1:o.revisionNumber=n.uint64();break;case 2:o.revisionHeight=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromString(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromString(e.revisionHeight):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromValue(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromValue(e.revisionHeight):o.default.UZERO,t}};const A={allowedClients:""};t.Params={encode(e,t=i.default.Writer.create()){for(const n of e.allowedClients)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.allowedClients=[];n.pos>>3==1?o.allowedClients.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.allowedClients=(null!==(t=e.allowedClients)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.allowedClients?t.allowedClients=e.allowedClients.map((e=>e)):t.allowedClients=[],t},fromPartial(e){var t;const n=Object.assign({},A);return n.allowedClients=(null===(t=e.allowedClients)||void 0===t?void 0:t.map((e=>e)))||[],n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6448:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryClientParamsResponse=t.QueryClientParamsRequest=t.QueryConsensusStatesResponse=t.QueryConsensusStatesRequest=t.QueryConsensusStateResponse=t.QueryConsensusStateRequest=t.QueryClientStatesResponse=t.QueryClientStatesRequest=t.QueryClientStateResponse=t.QueryClientStateRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(5022),c=n(9551);t.protobufPackage="ibc.core.client.v1";const d={clientId:""};t.QueryClientStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.clientId=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),t},fromPartial(e){var t;const n=Object.assign({},d);return n.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",n}};const u={};t.QueryClientStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.clientState=a.Any.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromJSON(e.clientState):void 0,t.proof=void 0!==e.proof&&null!==e.proof?I(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),void 0!==e.proof&&(t.proof=E(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},u);return n.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromPartial(e.clientState):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const l={};t.QueryClientStatesRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.pagination=c.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},l);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,t}};const A={};t.QueryClientStatesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.clientStates)s.IdentifiedClientState.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.clientStates=[];n.pos>>3){case 1:o.clientStates.push(s.IdentifiedClientState.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.clientStates=(null!==(t=e.clientStates)&&void 0!==t?t:[]).map((e=>s.IdentifiedClientState.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.clientStates?t.clientStates=e.clientStates.map((e=>e?s.IdentifiedClientState.toJSON(e):void 0)):t.clientStates=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},A);return n.clientStates=(null===(t=e.clientStates)||void 0===t?void 0:t.map((e=>s.IdentifiedClientState.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n}};const f={clientId:"",revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO,latestHeight:!1};t.QueryConsensusStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),e.revisionNumber.isZero()||t.uint32(16).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(24).uint64(e.revisionHeight),!0===e.latestHeight&&t.uint32(32).bool(e.latestHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.revisionNumber=n.uint64();break;case 3:o.revisionHeight=n.uint64();break;case 4:o.latestHeight=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromString(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromString(e.revisionHeight):o.default.UZERO,t.latestHeight=void 0!==e.latestHeight&&null!==e.latestHeight&&Boolean(e.latestHeight),t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),void 0!==e.latestHeight&&(t.latestHeight=e.latestHeight),t},fromPartial(e){var t,n;const r=Object.assign({},f);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromValue(e.revisionNumber):o.default.UZERO,r.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromValue(e.revisionHeight):o.default.UZERO,r.latestHeight=null!==(n=e.latestHeight)&&void 0!==n&&n,r}};const h={};t.QueryConsensusStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.consensusState&&a.Any.encode(e.consensusState,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.consensusState=a.Any.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromJSON(e.consensusState):void 0,t.proof=void 0!==e.proof&&null!==e.proof?I(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.consensusState&&(t.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),void 0!==e.proof&&(t.proof=E(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromPartial(e.consensusState):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const g={clientId:""};t.QueryConsensusStatesRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.pagination=c.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},g);return n.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,n}};const p={};t.QueryConsensusStatesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.consensusStates)s.ConsensusStateWithHeight.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.consensusStates=[];n.pos>>3){case 1:o.consensusStates.push(s.ConsensusStateWithHeight.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.consensusStates=(null!==(t=e.consensusStates)&&void 0!==t?t:[]).map((e=>s.ConsensusStateWithHeight.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.consensusStates?t.consensusStates=e.consensusStates.map((e=>e?s.ConsensusStateWithHeight.toJSON(e):void 0)):t.consensusStates=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},p);return n.consensusStates=(null===(t=e.consensusStates)||void 0===t?void 0:t.map((e=>s.ConsensusStateWithHeight.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n}};const m={};t.QueryClientParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const v={};t.QueryClientParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&s.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3==1?o.params=s.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return t.params=void 0!==e.params&&null!==e.params?s.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?s.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},v);return t.params=void 0!==e.params&&null!==e.params?s.Params.fromPartial(e.params):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.ClientState=this.ClientState.bind(this),this.ClientStates=this.ClientStates.bind(this),this.ConsensusState=this.ConsensusState.bind(this),this.ConsensusStates=this.ConsensusStates.bind(this),this.ClientParams=this.ClientParams.bind(this)}ClientState(e){const n=t.QueryClientStateRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ClientState",n).then((e=>t.QueryClientStateResponse.decode(new i.default.Reader(e))))}ClientStates(e){const n=t.QueryClientStatesRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ClientStates",n).then((e=>t.QueryClientStatesResponse.decode(new i.default.Reader(e))))}ConsensusState(e){const n=t.QueryConsensusStateRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ConsensusState",n).then((e=>t.QueryConsensusStateResponse.decode(new i.default.Reader(e))))}ConsensusStates(e){const n=t.QueryConsensusStatesRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ConsensusStates",n).then((e=>t.QueryConsensusStatesResponse.decode(new i.default.Reader(e))))}ClientParams(e){const n=t.QueryClientParamsRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ClientParams",n).then((e=>t.QueryClientParamsResponse.decode(new i.default.Reader(e))))}};var y=(()=>{if(void 0!==y)return y;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const b=y.atob||(e=>y.Buffer.from(e,"base64").toString("binary"));function I(e){const t=b(e),n=new Uint8Array(t.length);for(let e=0;ey.Buffer.from(e,"binary").toString("base64"));function E(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return C(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9548:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgSubmitMisbehaviourResponse=t.MsgSubmitMisbehaviour=t.MsgUpgradeClientResponse=t.MsgUpgradeClient=t.MsgUpdateClientResponse=t.MsgUpdateClient=t.MsgCreateClientResponse=t.MsgCreateClient=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="ibc.core.client.v1";const s={signer:""};t.MsgCreateClient={encode:(e,t=i.default.Writer.create())=>(void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(10).fork()).ldelim(),void 0!==e.consensusState&&a.Any.encode(e.consensusState,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.clientState=a.Any.decode(n,n.uint32());break;case 2:o.consensusState=a.Any.decode(n,n.uint32());break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromJSON(e.clientState):void 0,t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromJSON(e.consensusState):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),void 0!==e.consensusState&&(t.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t;const n=Object.assign({},s);return n.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromPartial(e.clientState):void 0,n.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromPartial(e.consensusState):void 0,n.signer=null!==(t=e.signer)&&void 0!==t?t:"",n}};const c={};t.MsgCreateClientResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={clientId:"",signer:""};t.MsgUpdateClient={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.header&&a.Any.encode(e.header,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.header=a.Any.decode(n,n.uint32());break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.header=void 0!==e.header&&null!==e.header?a.Any.fromJSON(e.header):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.header&&(t.header=e.header?a.Any.toJSON(e.header):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.header=void 0!==e.header&&null!==e.header?a.Any.fromPartial(e.header):void 0,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const u={};t.MsgUpdateClientResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)};const l={clientId:"",signer:""};t.MsgUpgradeClient={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(18).fork()).ldelim(),void 0!==e.consensusState&&a.Any.encode(e.consensusState,t.uint32(26).fork()).ldelim(),0!==e.proofUpgradeClient.length&&t.uint32(34).bytes(e.proofUpgradeClient),0!==e.proofUpgradeConsensusState.length&&t.uint32(42).bytes(e.proofUpgradeConsensusState),""!==e.signer&&t.uint32(50).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.proofUpgradeClient=new Uint8Array,o.proofUpgradeConsensusState=new Uint8Array;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.clientState=a.Any.decode(n,n.uint32());break;case 3:o.consensusState=a.Any.decode(n,n.uint32());break;case 4:o.proofUpgradeClient=n.bytes();break;case 5:o.proofUpgradeConsensusState=n.bytes();break;case 6:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromJSON(e.clientState):void 0,t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromJSON(e.consensusState):void 0,t.proofUpgradeClient=void 0!==e.proofUpgradeClient&&null!==e.proofUpgradeClient?m(e.proofUpgradeClient):new Uint8Array,t.proofUpgradeConsensusState=void 0!==e.proofUpgradeConsensusState&&null!==e.proofUpgradeConsensusState?m(e.proofUpgradeConsensusState):new Uint8Array,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),void 0!==e.consensusState&&(t.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),void 0!==e.proofUpgradeClient&&(t.proofUpgradeClient=y(void 0!==e.proofUpgradeClient?e.proofUpgradeClient:new Uint8Array)),void 0!==e.proofUpgradeConsensusState&&(t.proofUpgradeConsensusState=y(void 0!==e.proofUpgradeConsensusState?e.proofUpgradeConsensusState:new Uint8Array)),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},l);return i.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",i.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromPartial(e.clientState):void 0,i.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromPartial(e.consensusState):void 0,i.proofUpgradeClient=null!==(n=e.proofUpgradeClient)&&void 0!==n?n:new Uint8Array,i.proofUpgradeConsensusState=null!==(r=e.proofUpgradeConsensusState)&&void 0!==r?r:new Uint8Array,i.signer=null!==(o=e.signer)&&void 0!==o?o:"",i}};const A={};t.MsgUpgradeClientResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={clientId:"",signer:""};t.MsgSubmitMisbehaviour={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.misbehaviour&&a.Any.encode(e.misbehaviour,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.misbehaviour=a.Any.decode(n,n.uint32());break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.misbehaviour=void 0!==e.misbehaviour&&null!==e.misbehaviour?a.Any.fromJSON(e.misbehaviour):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.misbehaviour&&(t.misbehaviour=e.misbehaviour?a.Any.toJSON(e.misbehaviour):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},f);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.misbehaviour=void 0!==e.misbehaviour&&null!==e.misbehaviour?a.Any.fromPartial(e.misbehaviour):void 0,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const h={};t.MsgSubmitMisbehaviourResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.CreateClient=this.CreateClient.bind(this),this.UpdateClient=this.UpdateClient.bind(this),this.UpgradeClient=this.UpgradeClient.bind(this),this.SubmitMisbehaviour=this.SubmitMisbehaviour.bind(this)}CreateClient(e){const n=t.MsgCreateClient.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Msg","CreateClient",n).then((e=>t.MsgCreateClientResponse.decode(new i.default.Reader(e))))}UpdateClient(e){const n=t.MsgUpdateClient.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Msg","UpdateClient",n).then((e=>t.MsgUpdateClientResponse.decode(new i.default.Reader(e))))}UpgradeClient(e){const n=t.MsgUpgradeClient.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Msg","UpgradeClient",n).then((e=>t.MsgUpgradeClientResponse.decode(new i.default.Reader(e))))}SubmitMisbehaviour(e){const n=t.MsgSubmitMisbehaviour.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Msg","SubmitMisbehaviour",n).then((e=>t.MsgSubmitMisbehaviourResponse.decode(new i.default.Reader(e))))}};var g=(()=>{if(void 0!==g)return g;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const p=g.atob||(e=>g.Buffer.from(e,"base64").toString("binary"));function m(e){const t=p(e),n=new Uint8Array(t.length);for(let e=0;eg.Buffer.from(e,"binary").toString("base64"));function y(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return v(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},228:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MerkleProof=t.MerklePath=t.MerklePrefix=t.MerkleRoot=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(2912);t.protobufPackage="ibc.core.commitment.v1";const s={};t.MerkleRoot={encode:(e,t=i.default.Writer.create())=>(0!==e.hash.length&&t.uint32(10).bytes(e.hash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.hash=new Uint8Array;n.pos>>3==1?o.hash=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},s);return t.hash=void 0!==e.hash&&null!==e.hash?f(e.hash):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=g(void 0!==e.hash?e.hash:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},s);return n.hash=null!==(t=e.hash)&&void 0!==t?t:new Uint8Array,n}};const c={};t.MerklePrefix={encode:(e,t=i.default.Writer.create())=>(0!==e.keyPrefix.length&&t.uint32(10).bytes(e.keyPrefix),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.keyPrefix=new Uint8Array;n.pos>>3==1?o.keyPrefix=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.keyPrefix=void 0!==e.keyPrefix&&null!==e.keyPrefix?f(e.keyPrefix):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.keyPrefix&&(t.keyPrefix=g(void 0!==e.keyPrefix?e.keyPrefix:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},c);return n.keyPrefix=null!==(t=e.keyPrefix)&&void 0!==t?t:new Uint8Array,n}};const d={keyPath:""};t.MerklePath={encode(e,t=i.default.Writer.create()){for(const n of e.keyPath)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.keyPath=[];n.pos>>3==1?o.keyPath.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.keyPath=(null!==(t=e.keyPath)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.keyPath?t.keyPath=e.keyPath.map((e=>e)):t.keyPath=[],t},fromPartial(e){var t;const n=Object.assign({},d);return n.keyPath=(null===(t=e.keyPath)||void 0===t?void 0:t.map((e=>e)))||[],n}};const u={};t.MerkleProof={encode(e,t=i.default.Writer.create()){for(const n of e.proofs)a.CommitmentProof.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.proofs=[];n.pos>>3==1?o.proofs.push(a.CommitmentProof.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.proofs=(null!==(t=e.proofs)&&void 0!==t?t:[]).map((e=>a.CommitmentProof.fromJSON(e))),n},toJSON(e){const t={};return e.proofs?t.proofs=e.proofs.map((e=>e?a.CommitmentProof.toJSON(e):void 0)):t.proofs=[],t},fromPartial(e){var t;const n=Object.assign({},u);return n.proofs=(null===(t=e.proofs)||void 0===t?void 0:t.map((e=>a.CommitmentProof.fromPartial(e))))||[],n}};var l=(()=>{if(void 0!==l)return l;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const A=l.atob||(e=>l.Buffer.from(e,"base64").toString("binary"));function f(e){const t=A(e),n=new Uint8Array(t.length);for(let e=0;el.Buffer.from(e,"binary").toString("base64"));function g(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return h(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5698:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Version=t.ConnectionPaths=t.ClientPaths=t.Counterparty=t.IdentifiedConnection=t.ConnectionEnd=t.stateToJSON=t.stateFromJSON=t.State=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(228);var s;function c(e){switch(e){case 0:case"STATE_UNINITIALIZED_UNSPECIFIED":return s.STATE_UNINITIALIZED_UNSPECIFIED;case 1:case"STATE_INIT":return s.STATE_INIT;case 2:case"STATE_TRYOPEN":return s.STATE_TRYOPEN;case 3:case"STATE_OPEN":return s.STATE_OPEN;default:return s.UNRECOGNIZED}}function d(e){switch(e){case s.STATE_UNINITIALIZED_UNSPECIFIED:return"STATE_UNINITIALIZED_UNSPECIFIED";case s.STATE_INIT:return"STATE_INIT";case s.STATE_TRYOPEN:return"STATE_TRYOPEN";case s.STATE_OPEN:return"STATE_OPEN";default:return"UNKNOWN"}}t.protobufPackage="ibc.core.connection.v1",function(e){e[e.STATE_UNINITIALIZED_UNSPECIFIED=0]="STATE_UNINITIALIZED_UNSPECIFIED",e[e.STATE_INIT=1]="STATE_INIT",e[e.STATE_TRYOPEN=2]="STATE_TRYOPEN",e[e.STATE_OPEN=3]="STATE_OPEN",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.State||(t.State={})),t.stateFromJSON=c,t.stateToJSON=d;const u={clientId:"",state:0,delayPeriod:o.default.UZERO};t.ConnectionEnd={encode(e,n=i.default.Writer.create()){""!==e.clientId&&n.uint32(10).string(e.clientId);for(const r of e.versions)t.Version.encode(r,n.uint32(18).fork()).ldelim();return 0!==e.state&&n.uint32(24).int32(e.state),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,n.uint32(34).fork()).ldelim(),e.delayPeriod.isZero()||n.uint32(40).uint64(e.delayPeriod),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(a.versions=[];r.pos>>3){case 1:a.clientId=r.string();break;case 2:a.versions.push(t.Version.decode(r,r.uint32()));break;case 3:a.state=r.int32();break;case 4:a.counterparty=t.Counterparty.decode(r,r.uint32());break;case 5:a.delayPeriod=r.uint64();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},u);return r.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",r.versions=(null!==(n=e.versions)&&void 0!==n?n:[]).map((e=>t.Version.fromJSON(e))),r.state=void 0!==e.state&&null!==e.state?c(e.state):0,r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromJSON(e.counterparty):void 0,r.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromString(e.delayPeriod):o.default.UZERO,r},toJSON(e){const n={};return void 0!==e.clientId&&(n.clientId=e.clientId),e.versions?n.versions=e.versions.map((e=>e?t.Version.toJSON(e):void 0)):n.versions=[],void 0!==e.state&&(n.state=d(e.state)),void 0!==e.counterparty&&(n.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(n.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),n},fromPartial(e){var n,r,i;const a=Object.assign({},u);return a.clientId=null!==(n=e.clientId)&&void 0!==n?n:"",a.versions=(null===(r=e.versions)||void 0===r?void 0:r.map((e=>t.Version.fromPartial(e))))||[],a.state=null!==(i=e.state)&&void 0!==i?i:0,a.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromPartial(e.counterparty):void 0,a.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromValue(e.delayPeriod):o.default.UZERO,a}};const l={id:"",clientId:"",state:0,delayPeriod:o.default.UZERO};t.IdentifiedConnection={encode(e,n=i.default.Writer.create()){""!==e.id&&n.uint32(10).string(e.id),""!==e.clientId&&n.uint32(18).string(e.clientId);for(const r of e.versions)t.Version.encode(r,n.uint32(26).fork()).ldelim();return 0!==e.state&&n.uint32(32).int32(e.state),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,n.uint32(42).fork()).ldelim(),e.delayPeriod.isZero()||n.uint32(48).uint64(e.delayPeriod),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},l);for(a.versions=[];r.pos>>3){case 1:a.id=r.string();break;case 2:a.clientId=r.string();break;case 3:a.versions.push(t.Version.decode(r,r.uint32()));break;case 4:a.state=r.int32();break;case 5:a.counterparty=t.Counterparty.decode(r,r.uint32());break;case 6:a.delayPeriod=r.uint64();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},l);return r.id=void 0!==e.id&&null!==e.id?String(e.id):"",r.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",r.versions=(null!==(n=e.versions)&&void 0!==n?n:[]).map((e=>t.Version.fromJSON(e))),r.state=void 0!==e.state&&null!==e.state?c(e.state):0,r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromJSON(e.counterparty):void 0,r.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromString(e.delayPeriod):o.default.UZERO,r},toJSON(e){const n={};return void 0!==e.id&&(n.id=e.id),void 0!==e.clientId&&(n.clientId=e.clientId),e.versions?n.versions=e.versions.map((e=>e?t.Version.toJSON(e):void 0)):n.versions=[],void 0!==e.state&&(n.state=d(e.state)),void 0!==e.counterparty&&(n.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(n.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),n},fromPartial(e){var n,r,i,a;const s=Object.assign({},l);return s.id=null!==(n=e.id)&&void 0!==n?n:"",s.clientId=null!==(r=e.clientId)&&void 0!==r?r:"",s.versions=(null===(i=e.versions)||void 0===i?void 0:i.map((e=>t.Version.fromPartial(e))))||[],s.state=null!==(a=e.state)&&void 0!==a?a:0,s.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromPartial(e.counterparty):void 0,s.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromValue(e.delayPeriod):o.default.UZERO,s}};const A={clientId:"",connectionId:""};t.Counterparty={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),""!==e.connectionId&&t.uint32(18).string(e.connectionId),void 0!==e.prefix&&a.MerklePrefix.encode(e.prefix,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.connectionId=n.string();break;case 3:o.prefix=a.MerklePrefix.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t.prefix=void 0!==e.prefix&&null!==e.prefix?a.MerklePrefix.fromJSON(e.prefix):void 0,t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.prefix&&(t.prefix=e.prefix?a.MerklePrefix.toJSON(e.prefix):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},A);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.connectionId=null!==(n=e.connectionId)&&void 0!==n?n:"",r.prefix=void 0!==e.prefix&&null!==e.prefix?a.MerklePrefix.fromPartial(e.prefix):void 0,r}};const f={paths:""};t.ClientPaths={encode(e,t=i.default.Writer.create()){for(const n of e.paths)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.paths=[];n.pos>>3==1?o.paths.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.paths=(null!==(t=e.paths)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.paths?t.paths=e.paths.map((e=>e)):t.paths=[],t},fromPartial(e){var t;const n=Object.assign({},f);return n.paths=(null===(t=e.paths)||void 0===t?void 0:t.map((e=>e)))||[],n}};const h={clientId:"",paths:""};t.ConnectionPaths={encode(e,t=i.default.Writer.create()){""!==e.clientId&&t.uint32(10).string(e.clientId);for(const n of e.paths)t.uint32(18).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.paths=[];n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.paths.push(n.string());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},h);return n.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",n.paths=(null!==(t=e.paths)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),e.paths?t.paths=e.paths.map((e=>e)):t.paths=[],t},fromPartial(e){var t,n;const r=Object.assign({},h);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.paths=(null===(n=e.paths)||void 0===n?void 0:n.map((e=>e)))||[],r}};const g={identifier:"",features:""};t.Version={encode(e,t=i.default.Writer.create()){""!==e.identifier&&t.uint32(10).string(e.identifier);for(const n of e.features)t.uint32(18).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.features=[];n.pos>>3){case 1:o.identifier=n.string();break;case 2:o.features.push(n.string());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.identifier=void 0!==e.identifier&&null!==e.identifier?String(e.identifier):"",n.features=(null!==(t=e.features)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return void 0!==e.identifier&&(t.identifier=e.identifier),e.features?t.features=e.features.map((e=>e)):t.features=[],t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.identifier=null!==(t=e.identifier)&&void 0!==t?t:"",r.features=(null===(n=e.features)||void 0===n?void 0:n.map((e=>e)))||[],r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},2329:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryConnectionConsensusStateResponse=t.QueryConnectionConsensusStateRequest=t.QueryConnectionClientStateResponse=t.QueryConnectionClientStateRequest=t.QueryClientConnectionsResponse=t.QueryClientConnectionsRequest=t.QueryConnectionsResponse=t.QueryConnectionsRequest=t.QueryConnectionResponse=t.QueryConnectionRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5698),s=n(5022),c=n(9551),d=n(3862);t.protobufPackage="ibc.core.connection.v1";const u={connectionId:""};t.QueryConnectionRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.connectionId=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),t},fromPartial(e){var t;const n=Object.assign({},u);return n.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",n}};const l={};t.QueryConnectionResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.connection&&a.ConnectionEnd.encode(e.connection,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.connection=a.ConnectionEnd.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.connection=void 0!==e.connection&&null!==e.connection?a.ConnectionEnd.fromJSON(e.connection):void 0,t.proof=void 0!==e.proof&&null!==e.proof?C(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.connection&&(t.connection=e.connection?a.ConnectionEnd.toJSON(e.connection):void 0),void 0!==e.proof&&(t.proof=w(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.connection=void 0!==e.connection&&null!==e.connection?a.ConnectionEnd.fromPartial(e.connection):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const A={};t.QueryConnectionsRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.pagination=c.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,t}};const f={};t.QueryConnectionsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.connections)a.IdentifiedConnection.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.connections=[];n.pos>>3){case 1:o.connections.push(a.IdentifiedConnection.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.connections=(null!==(t=e.connections)&&void 0!==t?t:[]).map((e=>a.IdentifiedConnection.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.connections?t.connections=e.connections.map((e=>e?a.IdentifiedConnection.toJSON(e):void 0)):t.connections=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.connections=(null===(t=e.connections)||void 0===t?void 0:t.map((e=>a.IdentifiedConnection.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const h={clientId:""};t.QueryClientConnectionsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3==1?o.clientId=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),t},fromPartial(e){var t;const n=Object.assign({},h);return n.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",n}};const g={connectionPaths:""};t.QueryClientConnectionsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.connectionPaths)t.uint32(10).string(n);return 0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.connectionPaths=[],o.proof=new Uint8Array;n.pos>>3){case 1:o.connectionPaths.push(n.string());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.connectionPaths=(null!==(t=e.connectionPaths)&&void 0!==t?t:[]).map((e=>String(e))),n.proof=void 0!==e.proof&&null!==e.proof?C(e.proof):new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,n},toJSON(e){const t={};return e.connectionPaths?t.connectionPaths=e.connectionPaths.map((e=>e)):t.connectionPaths=[],void 0!==e.proof&&(t.proof=w(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.connectionPaths=(null===(t=e.connectionPaths)||void 0===t?void 0:t.map((e=>e)))||[],r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const p={connectionId:""};t.QueryConnectionClientStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3==1?o.connectionId=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),t},fromPartial(e){var t;const n=Object.assign({},p);return n.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",n}};const m={};t.QueryConnectionClientStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.identifiedClientState&&s.IdentifiedClientState.encode(e.identifiedClientState,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.identifiedClientState=s.IdentifiedClientState.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.identifiedClientState=void 0!==e.identifiedClientState&&null!==e.identifiedClientState?s.IdentifiedClientState.fromJSON(e.identifiedClientState):void 0,t.proof=void 0!==e.proof&&null!==e.proof?C(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.identifiedClientState&&(t.identifiedClientState=e.identifiedClientState?s.IdentifiedClientState.toJSON(e.identifiedClientState):void 0),void 0!==e.proof&&(t.proof=w(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},m);return n.identifiedClientState=void 0!==e.identifiedClientState&&null!==e.identifiedClientState?s.IdentifiedClientState.fromPartial(e.identifiedClientState):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const v={connectionId:"",revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO};t.QueryConnectionConsensusStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),e.revisionNumber.isZero()||t.uint32(16).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(24).uint64(e.revisionHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.connectionId=n.string();break;case 2:o.revisionNumber=n.uint64();break;case 3:o.revisionHeight=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromString(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromString(e.revisionHeight):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},v);return n.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",n.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromValue(e.revisionNumber):o.default.UZERO,n.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromValue(e.revisionHeight):o.default.UZERO,n}};const y={clientId:""};t.QueryConnectionConsensusStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.consensusState&&d.Any.encode(e.consensusState,t.uint32(10).fork()).ldelim(),""!==e.clientId&&t.uint32(18).string(e.clientId),0!==e.proof.length&&t.uint32(26).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.consensusState=d.Any.decode(n,n.uint32());break;case 2:o.clientId=n.string();break;case 3:o.proof=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?d.Any.fromJSON(e.consensusState):void 0,t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.proof=void 0!==e.proof&&null!==e.proof?C(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.consensusState&&(t.consensusState=e.consensusState?d.Any.toJSON(e.consensusState):void 0),void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.proof&&(t.proof=w(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},y);return r.consensusState=void 0!==e.consensusState&&null!==e.consensusState?d.Any.fromPartial(e.consensusState):void 0,r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Connection=this.Connection.bind(this),this.Connections=this.Connections.bind(this),this.ClientConnections=this.ClientConnections.bind(this),this.ConnectionClientState=this.ConnectionClientState.bind(this),this.ConnectionConsensusState=this.ConnectionConsensusState.bind(this)}Connection(e){const n=t.QueryConnectionRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","Connection",n).then((e=>t.QueryConnectionResponse.decode(new i.default.Reader(e))))}Connections(e){const n=t.QueryConnectionsRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","Connections",n).then((e=>t.QueryConnectionsResponse.decode(new i.default.Reader(e))))}ClientConnections(e){const n=t.QueryClientConnectionsRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","ClientConnections",n).then((e=>t.QueryClientConnectionsResponse.decode(new i.default.Reader(e))))}ConnectionClientState(e){const n=t.QueryConnectionClientStateRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","ConnectionClientState",n).then((e=>t.QueryConnectionClientStateResponse.decode(new i.default.Reader(e))))}ConnectionConsensusState(e){const n=t.QueryConnectionConsensusStateRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","ConnectionConsensusState",n).then((e=>t.QueryConnectionConsensusStateResponse.decode(new i.default.Reader(e))))}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const I=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary"));function C(e){const t=I(e),n=new Uint8Array(t.length);for(let e=0;eb.Buffer.from(e,"binary").toString("base64"));function w(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return E(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4848:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgConnectionOpenConfirmResponse=t.MsgConnectionOpenConfirm=t.MsgConnectionOpenAckResponse=t.MsgConnectionOpenAck=t.MsgConnectionOpenTryResponse=t.MsgConnectionOpenTry=t.MsgConnectionOpenInitResponse=t.MsgConnectionOpenInit=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5698),s=n(3862),c=n(5022);t.protobufPackage="ibc.core.connection.v1";const d={clientId:"",delayPeriod:o.default.UZERO,signer:""};t.MsgConnectionOpenInit={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.counterparty&&a.Counterparty.encode(e.counterparty,t.uint32(18).fork()).ldelim(),void 0!==e.version&&a.Version.encode(e.version,t.uint32(26).fork()).ldelim(),e.delayPeriod.isZero()||t.uint32(32).uint64(e.delayPeriod),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.counterparty=a.Counterparty.decode(n,n.uint32());break;case 3:o.version=a.Version.decode(n,n.uint32());break;case 4:o.delayPeriod=n.uint64();break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.counterparty=void 0!==e.counterparty&&null!==e.counterparty?a.Counterparty.fromJSON(e.counterparty):void 0,t.version=void 0!==e.version&&null!==e.version?a.Version.fromJSON(e.version):void 0,t.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromString(e.delayPeriod):o.default.UZERO,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.counterparty&&(t.counterparty=e.counterparty?a.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.version&&(t.version=e.version?a.Version.toJSON(e.version):void 0),void 0!==e.delayPeriod&&(t.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?a.Counterparty.fromPartial(e.counterparty):void 0,r.version=void 0!==e.version&&null!==e.version?a.Version.fromPartial(e.version):void 0,r.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromValue(e.delayPeriod):o.default.UZERO,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const u={};t.MsgConnectionOpenInitResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)};const l={clientId:"",previousConnectionId:"",delayPeriod:o.default.UZERO,signer:""};t.MsgConnectionOpenTry={encode(e,t=i.default.Writer.create()){""!==e.clientId&&t.uint32(10).string(e.clientId),""!==e.previousConnectionId&&t.uint32(18).string(e.previousConnectionId),void 0!==e.clientState&&s.Any.encode(e.clientState,t.uint32(26).fork()).ldelim(),void 0!==e.counterparty&&a.Counterparty.encode(e.counterparty,t.uint32(34).fork()).ldelim(),e.delayPeriod.isZero()||t.uint32(40).uint64(e.delayPeriod);for(const n of e.counterpartyVersions)a.Version.encode(n,t.uint32(50).fork()).ldelim();return void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(58).fork()).ldelim(),0!==e.proofInit.length&&t.uint32(66).bytes(e.proofInit),0!==e.proofClient.length&&t.uint32(74).bytes(e.proofClient),0!==e.proofConsensus.length&&t.uint32(82).bytes(e.proofConsensus),void 0!==e.consensusHeight&&c.Height.encode(e.consensusHeight,t.uint32(90).fork()).ldelim(),""!==e.signer&&t.uint32(98).string(e.signer),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.counterpartyVersions=[],o.proofInit=new Uint8Array,o.proofClient=new Uint8Array,o.proofConsensus=new Uint8Array;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.previousConnectionId=n.string();break;case 3:o.clientState=s.Any.decode(n,n.uint32());break;case 4:o.counterparty=a.Counterparty.decode(n,n.uint32());break;case 5:o.delayPeriod=n.uint64();break;case 6:o.counterpartyVersions.push(a.Version.decode(n,n.uint32()));break;case 7:o.proofHeight=c.Height.decode(n,n.uint32());break;case 8:o.proofInit=n.bytes();break;case 9:o.proofClient=n.bytes();break;case 10:o.proofConsensus=n.bytes();break;case 11:o.consensusHeight=c.Height.decode(n,n.uint32());break;case 12:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",n.previousConnectionId=void 0!==e.previousConnectionId&&null!==e.previousConnectionId?String(e.previousConnectionId):"",n.clientState=void 0!==e.clientState&&null!==e.clientState?s.Any.fromJSON(e.clientState):void 0,n.counterparty=void 0!==e.counterparty&&null!==e.counterparty?a.Counterparty.fromJSON(e.counterparty):void 0,n.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromString(e.delayPeriod):o.default.UZERO,n.counterpartyVersions=(null!==(t=e.counterpartyVersions)&&void 0!==t?t:[]).map((e=>a.Version.fromJSON(e))),n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromJSON(e.proofHeight):void 0,n.proofInit=void 0!==e.proofInit&&null!==e.proofInit?y(e.proofInit):new Uint8Array,n.proofClient=void 0!==e.proofClient&&null!==e.proofClient?y(e.proofClient):new Uint8Array,n.proofConsensus=void 0!==e.proofConsensus&&null!==e.proofConsensus?y(e.proofConsensus):new Uint8Array,n.consensusHeight=void 0!==e.consensusHeight&&null!==e.consensusHeight?c.Height.fromJSON(e.consensusHeight):void 0,n.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",n},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.previousConnectionId&&(t.previousConnectionId=e.previousConnectionId),void 0!==e.clientState&&(t.clientState=e.clientState?s.Any.toJSON(e.clientState):void 0),void 0!==e.counterparty&&(t.counterparty=e.counterparty?a.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(t.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),e.counterpartyVersions?t.counterpartyVersions=e.counterpartyVersions.map((e=>e?a.Version.toJSON(e):void 0)):t.counterpartyVersions=[],void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.proofInit&&(t.proofInit=I(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofClient&&(t.proofClient=I(void 0!==e.proofClient?e.proofClient:new Uint8Array)),void 0!==e.proofConsensus&&(t.proofConsensus=I(void 0!==e.proofConsensus?e.proofConsensus:new Uint8Array)),void 0!==e.consensusHeight&&(t.consensusHeight=e.consensusHeight?c.Height.toJSON(e.consensusHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,i,d,u,A;const f=Object.assign({},l);return f.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",f.previousConnectionId=null!==(n=e.previousConnectionId)&&void 0!==n?n:"",f.clientState=void 0!==e.clientState&&null!==e.clientState?s.Any.fromPartial(e.clientState):void 0,f.counterparty=void 0!==e.counterparty&&null!==e.counterparty?a.Counterparty.fromPartial(e.counterparty):void 0,f.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromValue(e.delayPeriod):o.default.UZERO,f.counterpartyVersions=(null===(r=e.counterpartyVersions)||void 0===r?void 0:r.map((e=>a.Version.fromPartial(e))))||[],f.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromPartial(e.proofHeight):void 0,f.proofInit=null!==(i=e.proofInit)&&void 0!==i?i:new Uint8Array,f.proofClient=null!==(d=e.proofClient)&&void 0!==d?d:new Uint8Array,f.proofConsensus=null!==(u=e.proofConsensus)&&void 0!==u?u:new Uint8Array,f.consensusHeight=void 0!==e.consensusHeight&&null!==e.consensusHeight?c.Height.fromPartial(e.consensusHeight):void 0,f.signer=null!==(A=e.signer)&&void 0!==A?A:"",f}};const A={};t.MsgConnectionOpenTryResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={connectionId:"",counterpartyConnectionId:"",signer:""};t.MsgConnectionOpenAck={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),""!==e.counterpartyConnectionId&&t.uint32(18).string(e.counterpartyConnectionId),void 0!==e.version&&a.Version.encode(e.version,t.uint32(26).fork()).ldelim(),void 0!==e.clientState&&s.Any.encode(e.clientState,t.uint32(34).fork()).ldelim(),void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(42).fork()).ldelim(),0!==e.proofTry.length&&t.uint32(50).bytes(e.proofTry),0!==e.proofClient.length&&t.uint32(58).bytes(e.proofClient),0!==e.proofConsensus.length&&t.uint32(66).bytes(e.proofConsensus),void 0!==e.consensusHeight&&c.Height.encode(e.consensusHeight,t.uint32(74).fork()).ldelim(),""!==e.signer&&t.uint32(82).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.proofTry=new Uint8Array,o.proofClient=new Uint8Array,o.proofConsensus=new Uint8Array;n.pos>>3){case 1:o.connectionId=n.string();break;case 2:o.counterpartyConnectionId=n.string();break;case 3:o.version=a.Version.decode(n,n.uint32());break;case 4:o.clientState=s.Any.decode(n,n.uint32());break;case 5:o.proofHeight=c.Height.decode(n,n.uint32());break;case 6:o.proofTry=n.bytes();break;case 7:o.proofClient=n.bytes();break;case 8:o.proofConsensus=n.bytes();break;case 9:o.consensusHeight=c.Height.decode(n,n.uint32());break;case 10:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t.counterpartyConnectionId=void 0!==e.counterpartyConnectionId&&null!==e.counterpartyConnectionId?String(e.counterpartyConnectionId):"",t.version=void 0!==e.version&&null!==e.version?a.Version.fromJSON(e.version):void 0,t.clientState=void 0!==e.clientState&&null!==e.clientState?s.Any.fromJSON(e.clientState):void 0,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromJSON(e.proofHeight):void 0,t.proofTry=void 0!==e.proofTry&&null!==e.proofTry?y(e.proofTry):new Uint8Array,t.proofClient=void 0!==e.proofClient&&null!==e.proofClient?y(e.proofClient):new Uint8Array,t.proofConsensus=void 0!==e.proofConsensus&&null!==e.proofConsensus?y(e.proofConsensus):new Uint8Array,t.consensusHeight=void 0!==e.consensusHeight&&null!==e.consensusHeight?c.Height.fromJSON(e.consensusHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.counterpartyConnectionId&&(t.counterpartyConnectionId=e.counterpartyConnectionId),void 0!==e.version&&(t.version=e.version?a.Version.toJSON(e.version):void 0),void 0!==e.clientState&&(t.clientState=e.clientState?s.Any.toJSON(e.clientState):void 0),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.proofTry&&(t.proofTry=I(void 0!==e.proofTry?e.proofTry:new Uint8Array)),void 0!==e.proofClient&&(t.proofClient=I(void 0!==e.proofClient?e.proofClient:new Uint8Array)),void 0!==e.proofConsensus&&(t.proofConsensus=I(void 0!==e.proofConsensus?e.proofConsensus:new Uint8Array)),void 0!==e.consensusHeight&&(t.consensusHeight=e.consensusHeight?c.Height.toJSON(e.consensusHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o,i,d;const u=Object.assign({},f);return u.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",u.counterpartyConnectionId=null!==(n=e.counterpartyConnectionId)&&void 0!==n?n:"",u.version=void 0!==e.version&&null!==e.version?a.Version.fromPartial(e.version):void 0,u.clientState=void 0!==e.clientState&&null!==e.clientState?s.Any.fromPartial(e.clientState):void 0,u.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromPartial(e.proofHeight):void 0,u.proofTry=null!==(r=e.proofTry)&&void 0!==r?r:new Uint8Array,u.proofClient=null!==(o=e.proofClient)&&void 0!==o?o:new Uint8Array,u.proofConsensus=null!==(i=e.proofConsensus)&&void 0!==i?i:new Uint8Array,u.consensusHeight=void 0!==e.consensusHeight&&null!==e.consensusHeight?c.Height.fromPartial(e.consensusHeight):void 0,u.signer=null!==(d=e.signer)&&void 0!==d?d:"",u}};const h={};t.MsgConnectionOpenAckResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)};const g={connectionId:"",signer:""};t.MsgConnectionOpenConfirm={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),0!==e.proofAck.length&&t.uint32(18).bytes(e.proofAck),void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),""!==e.signer&&t.uint32(34).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.proofAck=new Uint8Array;n.pos>>3){case 1:o.connectionId=n.string();break;case 2:o.proofAck=n.bytes();break;case 3:o.proofHeight=c.Height.decode(n,n.uint32());break;case 4:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t.proofAck=void 0!==e.proofAck&&null!==e.proofAck?y(e.proofAck):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.proofAck&&(t.proofAck=I(void 0!==e.proofAck?e.proofAck:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r;const o=Object.assign({},g);return o.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",o.proofAck=null!==(n=e.proofAck)&&void 0!==n?n:new Uint8Array,o.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromPartial(e.proofHeight):void 0,o.signer=null!==(r=e.signer)&&void 0!==r?r:"",o}};const p={};t.MsgConnectionOpenConfirmResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.ConnectionOpenInit=this.ConnectionOpenInit.bind(this),this.ConnectionOpenTry=this.ConnectionOpenTry.bind(this),this.ConnectionOpenAck=this.ConnectionOpenAck.bind(this),this.ConnectionOpenConfirm=this.ConnectionOpenConfirm.bind(this)}ConnectionOpenInit(e){const n=t.MsgConnectionOpenInit.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Msg","ConnectionOpenInit",n).then((e=>t.MsgConnectionOpenInitResponse.decode(new i.default.Reader(e))))}ConnectionOpenTry(e){const n=t.MsgConnectionOpenTry.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Msg","ConnectionOpenTry",n).then((e=>t.MsgConnectionOpenTryResponse.decode(new i.default.Reader(e))))}ConnectionOpenAck(e){const n=t.MsgConnectionOpenAck.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Msg","ConnectionOpenAck",n).then((e=>t.MsgConnectionOpenAckResponse.decode(new i.default.Reader(e))))}ConnectionOpenConfirm(e){const n=t.MsgConnectionOpenConfirm.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Msg","ConnectionOpenConfirm",n).then((e=>t.MsgConnectionOpenConfirmResponse.decode(new i.default.Reader(e))))}};var m=(()=>{if(void 0!==m)return m;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const v=m.atob||(e=>m.Buffer.from(e,"base64").toString("binary"));function y(e){const t=v(e),n=new Uint8Array(t.length);for(let e=0;em.Buffer.from(e,"binary").toString("base64"));function I(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return b(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1234:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Fraction=t.Header=t.Misbehaviour=t.ConsensusState=t.ClientState=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(281),s=n(5022),c=n(5522),d=n(228),u=n(1258),l=n(3444),A=n(2912);t.protobufPackage="ibc.lightclients.tendermint.v1";const f={chainId:"",upgradePath:"",allowUpdateAfterExpiry:!1,allowUpdateAfterMisbehaviour:!1};t.ClientState={encode(e,n=i.default.Writer.create()){""!==e.chainId&&n.uint32(10).string(e.chainId),void 0!==e.trustLevel&&t.Fraction.encode(e.trustLevel,n.uint32(18).fork()).ldelim(),void 0!==e.trustingPeriod&&a.Duration.encode(e.trustingPeriod,n.uint32(26).fork()).ldelim(),void 0!==e.unbondingPeriod&&a.Duration.encode(e.unbondingPeriod,n.uint32(34).fork()).ldelim(),void 0!==e.maxClockDrift&&a.Duration.encode(e.maxClockDrift,n.uint32(42).fork()).ldelim(),void 0!==e.frozenHeight&&s.Height.encode(e.frozenHeight,n.uint32(50).fork()).ldelim(),void 0!==e.latestHeight&&s.Height.encode(e.latestHeight,n.uint32(58).fork()).ldelim();for(const t of e.proofSpecs)A.ProofSpec.encode(t,n.uint32(66).fork()).ldelim();for(const t of e.upgradePath)n.uint32(74).string(t);return!0===e.allowUpdateAfterExpiry&&n.uint32(80).bool(e.allowUpdateAfterExpiry),!0===e.allowUpdateAfterMisbehaviour&&n.uint32(88).bool(e.allowUpdateAfterMisbehaviour),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const c=Object.assign({},f);for(c.proofSpecs=[],c.upgradePath=[];r.pos>>3){case 1:c.chainId=r.string();break;case 2:c.trustLevel=t.Fraction.decode(r,r.uint32());break;case 3:c.trustingPeriod=a.Duration.decode(r,r.uint32());break;case 4:c.unbondingPeriod=a.Duration.decode(r,r.uint32());break;case 5:c.maxClockDrift=a.Duration.decode(r,r.uint32());break;case 6:c.frozenHeight=s.Height.decode(r,r.uint32());break;case 7:c.latestHeight=s.Height.decode(r,r.uint32());break;case 8:c.proofSpecs.push(A.ProofSpec.decode(r,r.uint32()));break;case 9:c.upgradePath.push(r.string());break;case 10:c.allowUpdateAfterExpiry=r.bool();break;case 11:c.allowUpdateAfterMisbehaviour=r.bool();break;default:r.skipType(7&e)}}return c},fromJSON(e){var n,r;const o=Object.assign({},f);return o.chainId=void 0!==e.chainId&&null!==e.chainId?String(e.chainId):"",o.trustLevel=void 0!==e.trustLevel&&null!==e.trustLevel?t.Fraction.fromJSON(e.trustLevel):void 0,o.trustingPeriod=void 0!==e.trustingPeriod&&null!==e.trustingPeriod?a.Duration.fromJSON(e.trustingPeriod):void 0,o.unbondingPeriod=void 0!==e.unbondingPeriod&&null!==e.unbondingPeriod?a.Duration.fromJSON(e.unbondingPeriod):void 0,o.maxClockDrift=void 0!==e.maxClockDrift&&null!==e.maxClockDrift?a.Duration.fromJSON(e.maxClockDrift):void 0,o.frozenHeight=void 0!==e.frozenHeight&&null!==e.frozenHeight?s.Height.fromJSON(e.frozenHeight):void 0,o.latestHeight=void 0!==e.latestHeight&&null!==e.latestHeight?s.Height.fromJSON(e.latestHeight):void 0,o.proofSpecs=(null!==(n=e.proofSpecs)&&void 0!==n?n:[]).map((e=>A.ProofSpec.fromJSON(e))),o.upgradePath=(null!==(r=e.upgradePath)&&void 0!==r?r:[]).map((e=>String(e))),o.allowUpdateAfterExpiry=void 0!==e.allowUpdateAfterExpiry&&null!==e.allowUpdateAfterExpiry&&Boolean(e.allowUpdateAfterExpiry),o.allowUpdateAfterMisbehaviour=void 0!==e.allowUpdateAfterMisbehaviour&&null!==e.allowUpdateAfterMisbehaviour&&Boolean(e.allowUpdateAfterMisbehaviour),o},toJSON(e){const n={};return void 0!==e.chainId&&(n.chainId=e.chainId),void 0!==e.trustLevel&&(n.trustLevel=e.trustLevel?t.Fraction.toJSON(e.trustLevel):void 0),void 0!==e.trustingPeriod&&(n.trustingPeriod=e.trustingPeriod?a.Duration.toJSON(e.trustingPeriod):void 0),void 0!==e.unbondingPeriod&&(n.unbondingPeriod=e.unbondingPeriod?a.Duration.toJSON(e.unbondingPeriod):void 0),void 0!==e.maxClockDrift&&(n.maxClockDrift=e.maxClockDrift?a.Duration.toJSON(e.maxClockDrift):void 0),void 0!==e.frozenHeight&&(n.frozenHeight=e.frozenHeight?s.Height.toJSON(e.frozenHeight):void 0),void 0!==e.latestHeight&&(n.latestHeight=e.latestHeight?s.Height.toJSON(e.latestHeight):void 0),e.proofSpecs?n.proofSpecs=e.proofSpecs.map((e=>e?A.ProofSpec.toJSON(e):void 0)):n.proofSpecs=[],e.upgradePath?n.upgradePath=e.upgradePath.map((e=>e)):n.upgradePath=[],void 0!==e.allowUpdateAfterExpiry&&(n.allowUpdateAfterExpiry=e.allowUpdateAfterExpiry),void 0!==e.allowUpdateAfterMisbehaviour&&(n.allowUpdateAfterMisbehaviour=e.allowUpdateAfterMisbehaviour),n},fromPartial(e){var n,r,o,i,c;const d=Object.assign({},f);return d.chainId=null!==(n=e.chainId)&&void 0!==n?n:"",d.trustLevel=void 0!==e.trustLevel&&null!==e.trustLevel?t.Fraction.fromPartial(e.trustLevel):void 0,d.trustingPeriod=void 0!==e.trustingPeriod&&null!==e.trustingPeriod?a.Duration.fromPartial(e.trustingPeriod):void 0,d.unbondingPeriod=void 0!==e.unbondingPeriod&&null!==e.unbondingPeriod?a.Duration.fromPartial(e.unbondingPeriod):void 0,d.maxClockDrift=void 0!==e.maxClockDrift&&null!==e.maxClockDrift?a.Duration.fromPartial(e.maxClockDrift):void 0,d.frozenHeight=void 0!==e.frozenHeight&&null!==e.frozenHeight?s.Height.fromPartial(e.frozenHeight):void 0,d.latestHeight=void 0!==e.latestHeight&&null!==e.latestHeight?s.Height.fromPartial(e.latestHeight):void 0,d.proofSpecs=(null===(r=e.proofSpecs)||void 0===r?void 0:r.map((e=>A.ProofSpec.fromPartial(e))))||[],d.upgradePath=(null===(o=e.upgradePath)||void 0===o?void 0:o.map((e=>e)))||[],d.allowUpdateAfterExpiry=null!==(i=e.allowUpdateAfterExpiry)&&void 0!==i&&i,d.allowUpdateAfterMisbehaviour=null!==(c=e.allowUpdateAfterMisbehaviour)&&void 0!==c&&c,d}};const h={};t.ConsensusState={encode:(e,t=i.default.Writer.create())=>(void 0!==e.timestamp&&c.Timestamp.encode(e.timestamp,t.uint32(10).fork()).ldelim(),void 0!==e.root&&d.MerkleRoot.encode(e.root,t.uint32(18).fork()).ldelim(),0!==e.nextValidatorsHash.length&&t.uint32(26).bytes(e.nextValidatorsHash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.nextValidatorsHash=new Uint8Array;n.pos>>3){case 1:o.timestamp=c.Timestamp.decode(n,n.uint32());break;case 2:o.root=d.MerkleRoot.decode(n,n.uint32());break;case 3:o.nextValidatorsHash=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);var n;return t.timestamp=void 0!==e.timestamp&&null!==e.timestamp?(n=e.timestamp)instanceof Date?I(n):"string"==typeof n?I(new Date(n)):c.Timestamp.fromJSON(n):void 0,t.root=void 0!==e.root&&null!==e.root?d.MerkleRoot.fromJSON(e.root):void 0,t.nextValidatorsHash=void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash?function(e){const t=y(e),n=new Uint8Array(t.length);for(let e=0;e(""!==e.clientId&&n.uint32(10).string(e.clientId),void 0!==e.header1&&t.Header.encode(e.header1,n.uint32(18).fork()).ldelim(),void 0!==e.header2&&t.Header.encode(e.header2,n.uint32(26).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},g);for(;r.pos>>3){case 1:a.clientId=r.string();break;case 2:a.header1=t.Header.decode(r,r.uint32());break;case 3:a.header2=t.Header.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},g);return n.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",n.header1=void 0!==e.header1&&null!==e.header1?t.Header.fromJSON(e.header1):void 0,n.header2=void 0!==e.header2&&null!==e.header2?t.Header.fromJSON(e.header2):void 0,n},toJSON(e){const n={};return void 0!==e.clientId&&(n.clientId=e.clientId),void 0!==e.header1&&(n.header1=e.header1?t.Header.toJSON(e.header1):void 0),void 0!==e.header2&&(n.header2=e.header2?t.Header.toJSON(e.header2):void 0),n},fromPartial(e){var n;const r=Object.assign({},g);return r.clientId=null!==(n=e.clientId)&&void 0!==n?n:"",r.header1=void 0!==e.header1&&null!==e.header1?t.Header.fromPartial(e.header1):void 0,r.header2=void 0!==e.header2&&null!==e.header2?t.Header.fromPartial(e.header2):void 0,r}};const p={};t.Header={encode:(e,t=i.default.Writer.create())=>(void 0!==e.signedHeader&&u.SignedHeader.encode(e.signedHeader,t.uint32(10).fork()).ldelim(),void 0!==e.validatorSet&&l.ValidatorSet.encode(e.validatorSet,t.uint32(18).fork()).ldelim(),void 0!==e.trustedHeight&&s.Height.encode(e.trustedHeight,t.uint32(26).fork()).ldelim(),void 0!==e.trustedValidators&&l.ValidatorSet.encode(e.trustedValidators,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.signedHeader=u.SignedHeader.decode(n,n.uint32());break;case 2:o.validatorSet=l.ValidatorSet.decode(n,n.uint32());break;case 3:o.trustedHeight=s.Height.decode(n,n.uint32());break;case 4:o.trustedValidators=l.ValidatorSet.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.signedHeader=void 0!==e.signedHeader&&null!==e.signedHeader?u.SignedHeader.fromJSON(e.signedHeader):void 0,t.validatorSet=void 0!==e.validatorSet&&null!==e.validatorSet?l.ValidatorSet.fromJSON(e.validatorSet):void 0,t.trustedHeight=void 0!==e.trustedHeight&&null!==e.trustedHeight?s.Height.fromJSON(e.trustedHeight):void 0,t.trustedValidators=void 0!==e.trustedValidators&&null!==e.trustedValidators?l.ValidatorSet.fromJSON(e.trustedValidators):void 0,t},toJSON(e){const t={};return void 0!==e.signedHeader&&(t.signedHeader=e.signedHeader?u.SignedHeader.toJSON(e.signedHeader):void 0),void 0!==e.validatorSet&&(t.validatorSet=e.validatorSet?l.ValidatorSet.toJSON(e.validatorSet):void 0),void 0!==e.trustedHeight&&(t.trustedHeight=e.trustedHeight?s.Height.toJSON(e.trustedHeight):void 0),void 0!==e.trustedValidators&&(t.trustedValidators=e.trustedValidators?l.ValidatorSet.toJSON(e.trustedValidators):void 0),t},fromPartial(e){const t=Object.assign({},p);return t.signedHeader=void 0!==e.signedHeader&&null!==e.signedHeader?u.SignedHeader.fromPartial(e.signedHeader):void 0,t.validatorSet=void 0!==e.validatorSet&&null!==e.validatorSet?l.ValidatorSet.fromPartial(e.validatorSet):void 0,t.trustedHeight=void 0!==e.trustedHeight&&null!==e.trustedHeight?s.Height.fromPartial(e.trustedHeight):void 0,t.trustedValidators=void 0!==e.trustedValidators&&null!==e.trustedValidators?l.ValidatorSet.fromPartial(e.trustedValidators):void 0,t}};const m={numerator:o.default.UZERO,denominator:o.default.UZERO};t.Fraction={encode:(e,t=i.default.Writer.create())=>(e.numerator.isZero()||t.uint32(8).uint64(e.numerator),e.denominator.isZero()||t.uint32(16).uint64(e.denominator),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.numerator=n.uint64();break;case 2:o.denominator=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.numerator=void 0!==e.numerator&&null!==e.numerator?o.default.fromString(e.numerator):o.default.UZERO,t.denominator=void 0!==e.denominator&&null!==e.denominator?o.default.fromString(e.denominator):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.numerator&&(t.numerator=(e.numerator||o.default.UZERO).toString()),void 0!==e.denominator&&(t.denominator=(e.denominator||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},m);return t.numerator=void 0!==e.numerator&&null!==e.numerator?o.default.fromValue(e.numerator):o.default.UZERO,t.denominator=void 0!==e.denominator&&null!==e.denominator?o.default.fromValue(e.denominator):o.default.UZERO,t}};var v=(()=>{if(void 0!==v)return v;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const y=v.atob||(e=>v.Buffer.from(e,"base64").toString("binary")),b=v.btoa||(e=>v.Buffer.from(e,"binary").toString("base64"));function I(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3789:(e,t,n)=>{"use strict";e.exports=n(9570)},9570:(e,t,n)=>{"use strict";var r=t;function o(){r.util._configure(),r.Writer._configure(r.BufferWriter),r.Reader._configure(r.BufferReader)}r.build="minimal",r.Writer=n(5683),r.BufferWriter=n(8128),r.Reader=n(8489),r.BufferReader=n(1292),r.util=n(2554),r.rpc=n(7622),r.roots=n(6474),r.configure=o,o()},8489:(e,t,n)=>{"use strict";e.exports=c;var r,o=n(2554),i=o.LongBits,a=o.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function c(e){this.buf=e,this.pos=0,this.len=e.length}var d,u="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new c(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new c(e);throw Error("illegal buffer")},l=function(){return o.Buffer?function(e){return(c.create=function(e){return o.Buffer.isBuffer(e)?new r(e):u(e)})(e)}:u};function A(){var e=new i(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function f(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function h(){if(this.pos+8>this.len)throw s(this,8);return new i(f(this.buf,this.pos+=4),f(this.buf,this.pos+=4))}c.create=l(),c.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,c.prototype.uint32=(d=4294967295,function(){if(d=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return d;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return d}),c.prototype.int32=function(){return 0|this.uint32()},c.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},c.prototype.bool=function(){return 0!==this.uint32()},c.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return f(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|f(this.buf,this.pos+=4)},c.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},c.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},c.prototype.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,n):t===n?new this.buf.constructor(0):this._slice.call(this.buf,t,n)},c.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},c.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},c.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},c._configure=function(e){r=e,c.create=l(),r._configure();var t=o.Long?"toLong":"toNumber";o.merge(c.prototype,{int64:function(){return A.call(this)[t](!1)},uint64:function(){return A.call(this)[t](!0)},sint64:function(){return A.call(this).zzDecode()[t](!1)},fixed64:function(){return h.call(this)[t](!0)},sfixed64:function(){return h.call(this)[t](!1)}})}},1292:(e,t,n)=>{"use strict";e.exports=i;var r=n(8489);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(2554);function i(e){r.call(this,e)}i._configure=function(){o.Buffer&&(i.prototype._slice=o.Buffer.prototype.slice)},i.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},i._configure()},6474:e=>{"use strict";e.exports={}},7622:(e,t,n)=>{"use strict";t.Service=n(336)},336:(e,t,n)=>{"use strict";e.exports=o;var r=n(2554);function o(e,t,n){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");r.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(o.prototype=Object.create(r.EventEmitter.prototype)).constructor=o,o.prototype.rpcCall=function e(t,n,o,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return r.asPromise(e,s,t,n,o,i);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof o))try{n=o[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},o.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},8227:(e,t,n)=>{"use strict";e.exports=o;var r=n(2554);function o(e,t){this.lo=e>>>0,this.hi=t>>>0}var i=o.zero=new o(0,0);i.toNumber=function(){return 0},i.zzEncode=i.zzDecode=function(){return this},i.length=function(){return 1};var a=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(e){if(0===e)return i;var t=e<0;t&&(e=-e);var n=e>>>0,r=(e-n)/4294967296>>>0;return t&&(r=~r>>>0,n=~n>>>0,++n>4294967295&&(n=0,++r>4294967295&&(r=0))),new o(n,r)},o.from=function(e){if("number"==typeof e)return o.fromNumber(e);if(r.isString(e)){if(!r.Long)return o.fromNumber(parseInt(e,10));e=r.Long.fromString(e)}return e.low||e.high?new o(e.low>>>0,e.high>>>0):i},o.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},o.prototype.toLong=function(e){return r.Long?new r.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;o.fromHash=function(e){return e===a?i:new o((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},o.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},o.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},2554:function(e,t,n){"use strict";var r=t;function o(e,t,n){for(var r=Object.keys(t),o=0;o0)},r.Buffer=function(){try{var e=r.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),r._Buffer_from=null,r._Buffer_allocUnsafe=null,r.newBuffer=function(e){return"number"==typeof e?r.Buffer?r._Buffer_allocUnsafe(e):new r.Array(e):r.Buffer?r._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},r.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,r.Long=r.global.dcodeIO&&r.global.dcodeIO.Long||r.global.Long||r.inquire("long"),r.key2Re=/^true|false|0|1$/,r.key32Re=/^-?(?:0|[1-9][0-9]*)$/,r.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,r.longToHash=function(e){return e?r.LongBits.from(e).toHash():r.LongBits.zeroHash},r.longFromHash=function(e,t){var n=r.LongBits.fromHash(e);return r.Long?r.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))},r.merge=o,r.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},r.newError=i,r.ProtocolError=i("ProtocolError"),r.oneOfGetter=function(e){for(var t={},n=0;n-1;--n)if(1===t[e[n]]&&void 0!==this[e[n]]&&null!==this[e[n]])return e[n]}},r.oneOfSetter=function(e){return function(t){for(var n=0;n{"use strict";e.exports=l;var r,o=n(2554),i=o.LongBits,a=o.base64,s=o.utf8;function c(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}function d(){}function u(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function l(){this.len=0,this.head=new c(d,0,0),this.tail=this.head,this.states=null}var A=function(){return o.Buffer?function(){return(l.create=function(){return new r})()}:function(){return new l}};function f(e,t,n){t[n]=255&e}function h(e,t){this.len=e,this.next=void 0,this.val=t}function g(e,t,n){for(;e.hi;)t[n++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[n++]=127&e.lo|128,e.lo=e.lo>>>7;t[n++]=e.lo}function p(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}l.create=A(),l.alloc=function(e){return new o.Array(e)},o.Array!==Array&&(l.alloc=o.pool(l.alloc,o.Array.prototype.subarray)),l.prototype._push=function(e,t,n){return this.tail=this.tail.next=new c(e,t,n),this.len+=t,this},h.prototype=Object.create(c.prototype),h.prototype.fn=function(e,t,n){for(;e>127;)t[n++]=127&e|128,e>>>=7;t[n]=e},l.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new h((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},l.prototype.int32=function(e){return e<0?this._push(g,10,i.fromNumber(e)):this.uint32(e)},l.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},l.prototype.uint64=function(e){var t=i.from(e);return this._push(g,t.length(),t)},l.prototype.int64=l.prototype.uint64,l.prototype.sint64=function(e){var t=i.from(e).zzEncode();return this._push(g,t.length(),t)},l.prototype.bool=function(e){return this._push(f,1,e?1:0)},l.prototype.fixed32=function(e){return this._push(p,4,e>>>0)},l.prototype.sfixed32=l.prototype.fixed32,l.prototype.fixed64=function(e){var t=i.from(e);return this._push(p,4,t.lo)._push(p,4,t.hi)},l.prototype.sfixed64=l.prototype.fixed64,l.prototype.float=function(e){return this._push(o.float.writeFloatLE,4,e)},l.prototype.double=function(e){return this._push(o.float.writeDoubleLE,8,e)};var m=o.Array.prototype.set?function(e,t,n){t.set(e,n)}:function(e,t,n){for(var r=0;r>>0;if(!t)return this._push(f,1,0);if(o.isString(e)){var n=l.alloc(t=a.length(e));a.decode(e,n,0),e=n}return this.uint32(t)._push(m,t,e)},l.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(f,1,0)},l.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new c(d,0,0),this.len=0,this},l.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(d,0,0),this.len=0),this},l.prototype.ldelim=function(){var e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=t,this.len+=n),this},l.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t},l._configure=function(e){r=e,l.create=A(),r._configure()}},8128:(e,t,n)=>{"use strict";e.exports=i;var r=n(5683);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(2554);function i(){r.call(this)}function a(e,t,n){e.length<40?o.utf8.write(e,t,n):t.utf8Write?t.utf8Write(e,n):t.write(e,n)}i._configure=function(){i.alloc=o._Buffer_allocUnsafe,i.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&"set"===o.Buffer.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var r=0;r>>0;return this.uint32(t),t&&this._push(i.writeBytesBuffer,t,e),this},i.prototype.string=function(e){var t=o.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},i._configure()},9492:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Event=t.LastCommitInfo=t.BlockParams=t.ConsensusParams=t.ResponseApplySnapshotChunk=t.ResponseLoadSnapshotChunk=t.ResponseOfferSnapshot=t.ResponseListSnapshots=t.ResponseCommit=t.ResponseEndBlock=t.ResponseDeliverTx=t.ResponseCheckTx=t.ResponseBeginBlock=t.ResponseQuery=t.ResponseInitChain=t.ResponseSetOption=t.ResponseInfo=t.ResponseFlush=t.ResponseEcho=t.ResponseException=t.Response=t.RequestApplySnapshotChunk=t.RequestLoadSnapshotChunk=t.RequestOfferSnapshot=t.RequestListSnapshots=t.RequestCommit=t.RequestEndBlock=t.RequestDeliverTx=t.RequestCheckTx=t.RequestBeginBlock=t.RequestQuery=t.RequestInitChain=t.RequestSetOption=t.RequestInfo=t.RequestFlush=t.RequestEcho=t.Request=t.responseApplySnapshotChunk_ResultToJSON=t.responseApplySnapshotChunk_ResultFromJSON=t.ResponseApplySnapshotChunk_Result=t.responseOfferSnapshot_ResultToJSON=t.responseOfferSnapshot_ResultFromJSON=t.ResponseOfferSnapshot_Result=t.evidenceTypeToJSON=t.evidenceTypeFromJSON=t.EvidenceType=t.checkTxTypeToJSON=t.checkTxTypeFromJSON=t.CheckTxType=t.protobufPackage=void 0,t.ABCIApplicationClientImpl=t.Snapshot=t.Evidence=t.VoteInfo=t.ValidatorUpdate=t.Validator=t.TxResult=t.EventAttribute=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5522),s=n(1258),c=n(1494),d=n(7134),u=n(984);var l,A,f,h;function g(e){switch(e){case 0:case"NEW":return l.NEW;case 1:case"RECHECK":return l.RECHECK;default:return l.UNRECOGNIZED}}function p(e){switch(e){case l.NEW:return"NEW";case l.RECHECK:return"RECHECK";default:return"UNKNOWN"}}function m(e){switch(e){case 0:case"UNKNOWN":return A.UNKNOWN;case 1:case"DUPLICATE_VOTE":return A.DUPLICATE_VOTE;case 2:case"LIGHT_CLIENT_ATTACK":return A.LIGHT_CLIENT_ATTACK;default:return A.UNRECOGNIZED}}function v(e){switch(e){case A.UNKNOWN:return"UNKNOWN";case A.DUPLICATE_VOTE:return"DUPLICATE_VOTE";case A.LIGHT_CLIENT_ATTACK:return"LIGHT_CLIENT_ATTACK";default:return"UNKNOWN"}}function y(e){switch(e){case 0:case"UNKNOWN":return f.UNKNOWN;case 1:case"ACCEPT":return f.ACCEPT;case 2:case"ABORT":return f.ABORT;case 3:case"REJECT":return f.REJECT;case 4:case"REJECT_FORMAT":return f.REJECT_FORMAT;case 5:case"REJECT_SENDER":return f.REJECT_SENDER;default:return f.UNRECOGNIZED}}function b(e){switch(e){case f.UNKNOWN:return"UNKNOWN";case f.ACCEPT:return"ACCEPT";case f.ABORT:return"ABORT";case f.REJECT:return"REJECT";case f.REJECT_FORMAT:return"REJECT_FORMAT";case f.REJECT_SENDER:return"REJECT_SENDER";default:return"UNKNOWN"}}function I(e){switch(e){case 0:case"UNKNOWN":return h.UNKNOWN;case 1:case"ACCEPT":return h.ACCEPT;case 2:case"ABORT":return h.ABORT;case 3:case"RETRY":return h.RETRY;case 4:case"RETRY_SNAPSHOT":return h.RETRY_SNAPSHOT;case 5:case"REJECT_SNAPSHOT":return h.REJECT_SNAPSHOT;default:return h.UNRECOGNIZED}}function C(e){switch(e){case h.UNKNOWN:return"UNKNOWN";case h.ACCEPT:return"ACCEPT";case h.ABORT:return"ABORT";case h.RETRY:return"RETRY";case h.RETRY_SNAPSHOT:return"RETRY_SNAPSHOT";case h.REJECT_SNAPSHOT:return"REJECT_SNAPSHOT";default:return"UNKNOWN"}}t.protobufPackage="tendermint.abci",function(e){e[e.NEW=0]="NEW",e[e.RECHECK=1]="RECHECK",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.CheckTxType||(t.CheckTxType={})),t.checkTxTypeFromJSON=g,t.checkTxTypeToJSON=p,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.DUPLICATE_VOTE=1]="DUPLICATE_VOTE",e[e.LIGHT_CLIENT_ATTACK=2]="LIGHT_CLIENT_ATTACK",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(A=t.EvidenceType||(t.EvidenceType={})),t.evidenceTypeFromJSON=m,t.evidenceTypeToJSON=v,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACCEPT=1]="ACCEPT",e[e.ABORT=2]="ABORT",e[e.REJECT=3]="REJECT",e[e.REJECT_FORMAT=4]="REJECT_FORMAT",e[e.REJECT_SENDER=5]="REJECT_SENDER",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(f=t.ResponseOfferSnapshot_Result||(t.ResponseOfferSnapshot_Result={})),t.responseOfferSnapshot_ResultFromJSON=y,t.responseOfferSnapshot_ResultToJSON=b,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACCEPT=1]="ACCEPT",e[e.ABORT=2]="ABORT",e[e.RETRY=3]="RETRY",e[e.RETRY_SNAPSHOT=4]="RETRY_SNAPSHOT",e[e.REJECT_SNAPSHOT=5]="REJECT_SNAPSHOT",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(h=t.ResponseApplySnapshotChunk_Result||(t.ResponseApplySnapshotChunk_Result={})),t.responseApplySnapshotChunk_ResultFromJSON=I,t.responseApplySnapshotChunk_ResultToJSON=C;const E={};t.Request={encode:(e,n=i.default.Writer.create())=>(void 0!==e.echo&&t.RequestEcho.encode(e.echo,n.uint32(10).fork()).ldelim(),void 0!==e.flush&&t.RequestFlush.encode(e.flush,n.uint32(18).fork()).ldelim(),void 0!==e.info&&t.RequestInfo.encode(e.info,n.uint32(26).fork()).ldelim(),void 0!==e.setOption&&t.RequestSetOption.encode(e.setOption,n.uint32(34).fork()).ldelim(),void 0!==e.initChain&&t.RequestInitChain.encode(e.initChain,n.uint32(42).fork()).ldelim(),void 0!==e.query&&t.RequestQuery.encode(e.query,n.uint32(50).fork()).ldelim(),void 0!==e.beginBlock&&t.RequestBeginBlock.encode(e.beginBlock,n.uint32(58).fork()).ldelim(),void 0!==e.checkTx&&t.RequestCheckTx.encode(e.checkTx,n.uint32(66).fork()).ldelim(),void 0!==e.deliverTx&&t.RequestDeliverTx.encode(e.deliverTx,n.uint32(74).fork()).ldelim(),void 0!==e.endBlock&&t.RequestEndBlock.encode(e.endBlock,n.uint32(82).fork()).ldelim(),void 0!==e.commit&&t.RequestCommit.encode(e.commit,n.uint32(90).fork()).ldelim(),void 0!==e.listSnapshots&&t.RequestListSnapshots.encode(e.listSnapshots,n.uint32(98).fork()).ldelim(),void 0!==e.offerSnapshot&&t.RequestOfferSnapshot.encode(e.offerSnapshot,n.uint32(106).fork()).ldelim(),void 0!==e.loadSnapshotChunk&&t.RequestLoadSnapshotChunk.encode(e.loadSnapshotChunk,n.uint32(114).fork()).ldelim(),void 0!==e.applySnapshotChunk&&t.RequestApplySnapshotChunk.encode(e.applySnapshotChunk,n.uint32(122).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},E);for(;r.pos>>3){case 1:a.echo=t.RequestEcho.decode(r,r.uint32());break;case 2:a.flush=t.RequestFlush.decode(r,r.uint32());break;case 3:a.info=t.RequestInfo.decode(r,r.uint32());break;case 4:a.setOption=t.RequestSetOption.decode(r,r.uint32());break;case 5:a.initChain=t.RequestInitChain.decode(r,r.uint32());break;case 6:a.query=t.RequestQuery.decode(r,r.uint32());break;case 7:a.beginBlock=t.RequestBeginBlock.decode(r,r.uint32());break;case 8:a.checkTx=t.RequestCheckTx.decode(r,r.uint32());break;case 9:a.deliverTx=t.RequestDeliverTx.decode(r,r.uint32());break;case 10:a.endBlock=t.RequestEndBlock.decode(r,r.uint32());break;case 11:a.commit=t.RequestCommit.decode(r,r.uint32());break;case 12:a.listSnapshots=t.RequestListSnapshots.decode(r,r.uint32());break;case 13:a.offerSnapshot=t.RequestOfferSnapshot.decode(r,r.uint32());break;case 14:a.loadSnapshotChunk=t.RequestLoadSnapshotChunk.decode(r,r.uint32());break;case 15:a.applySnapshotChunk=t.RequestApplySnapshotChunk.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},E);return n.echo=void 0!==e.echo&&null!==e.echo?t.RequestEcho.fromJSON(e.echo):void 0,n.flush=void 0!==e.flush&&null!==e.flush?t.RequestFlush.fromJSON(e.flush):void 0,n.info=void 0!==e.info&&null!==e.info?t.RequestInfo.fromJSON(e.info):void 0,n.setOption=void 0!==e.setOption&&null!==e.setOption?t.RequestSetOption.fromJSON(e.setOption):void 0,n.initChain=void 0!==e.initChain&&null!==e.initChain?t.RequestInitChain.fromJSON(e.initChain):void 0,n.query=void 0!==e.query&&null!==e.query?t.RequestQuery.fromJSON(e.query):void 0,n.beginBlock=void 0!==e.beginBlock&&null!==e.beginBlock?t.RequestBeginBlock.fromJSON(e.beginBlock):void 0,n.checkTx=void 0!==e.checkTx&&null!==e.checkTx?t.RequestCheckTx.fromJSON(e.checkTx):void 0,n.deliverTx=void 0!==e.deliverTx&&null!==e.deliverTx?t.RequestDeliverTx.fromJSON(e.deliverTx):void 0,n.endBlock=void 0!==e.endBlock&&null!==e.endBlock?t.RequestEndBlock.fromJSON(e.endBlock):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.RequestCommit.fromJSON(e.commit):void 0,n.listSnapshots=void 0!==e.listSnapshots&&null!==e.listSnapshots?t.RequestListSnapshots.fromJSON(e.listSnapshots):void 0,n.offerSnapshot=void 0!==e.offerSnapshot&&null!==e.offerSnapshot?t.RequestOfferSnapshot.fromJSON(e.offerSnapshot):void 0,n.loadSnapshotChunk=void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?t.RequestLoadSnapshotChunk.fromJSON(e.loadSnapshotChunk):void 0,n.applySnapshotChunk=void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?t.RequestApplySnapshotChunk.fromJSON(e.applySnapshotChunk):void 0,n},toJSON(e){const n={};return void 0!==e.echo&&(n.echo=e.echo?t.RequestEcho.toJSON(e.echo):void 0),void 0!==e.flush&&(n.flush=e.flush?t.RequestFlush.toJSON(e.flush):void 0),void 0!==e.info&&(n.info=e.info?t.RequestInfo.toJSON(e.info):void 0),void 0!==e.setOption&&(n.setOption=e.setOption?t.RequestSetOption.toJSON(e.setOption):void 0),void 0!==e.initChain&&(n.initChain=e.initChain?t.RequestInitChain.toJSON(e.initChain):void 0),void 0!==e.query&&(n.query=e.query?t.RequestQuery.toJSON(e.query):void 0),void 0!==e.beginBlock&&(n.beginBlock=e.beginBlock?t.RequestBeginBlock.toJSON(e.beginBlock):void 0),void 0!==e.checkTx&&(n.checkTx=e.checkTx?t.RequestCheckTx.toJSON(e.checkTx):void 0),void 0!==e.deliverTx&&(n.deliverTx=e.deliverTx?t.RequestDeliverTx.toJSON(e.deliverTx):void 0),void 0!==e.endBlock&&(n.endBlock=e.endBlock?t.RequestEndBlock.toJSON(e.endBlock):void 0),void 0!==e.commit&&(n.commit=e.commit?t.RequestCommit.toJSON(e.commit):void 0),void 0!==e.listSnapshots&&(n.listSnapshots=e.listSnapshots?t.RequestListSnapshots.toJSON(e.listSnapshots):void 0),void 0!==e.offerSnapshot&&(n.offerSnapshot=e.offerSnapshot?t.RequestOfferSnapshot.toJSON(e.offerSnapshot):void 0),void 0!==e.loadSnapshotChunk&&(n.loadSnapshotChunk=e.loadSnapshotChunk?t.RequestLoadSnapshotChunk.toJSON(e.loadSnapshotChunk):void 0),void 0!==e.applySnapshotChunk&&(n.applySnapshotChunk=e.applySnapshotChunk?t.RequestApplySnapshotChunk.toJSON(e.applySnapshotChunk):void 0),n},fromPartial(e){const n=Object.assign({},E);return n.echo=void 0!==e.echo&&null!==e.echo?t.RequestEcho.fromPartial(e.echo):void 0,n.flush=void 0!==e.flush&&null!==e.flush?t.RequestFlush.fromPartial(e.flush):void 0,n.info=void 0!==e.info&&null!==e.info?t.RequestInfo.fromPartial(e.info):void 0,n.setOption=void 0!==e.setOption&&null!==e.setOption?t.RequestSetOption.fromPartial(e.setOption):void 0,n.initChain=void 0!==e.initChain&&null!==e.initChain?t.RequestInitChain.fromPartial(e.initChain):void 0,n.query=void 0!==e.query&&null!==e.query?t.RequestQuery.fromPartial(e.query):void 0,n.beginBlock=void 0!==e.beginBlock&&null!==e.beginBlock?t.RequestBeginBlock.fromPartial(e.beginBlock):void 0,n.checkTx=void 0!==e.checkTx&&null!==e.checkTx?t.RequestCheckTx.fromPartial(e.checkTx):void 0,n.deliverTx=void 0!==e.deliverTx&&null!==e.deliverTx?t.RequestDeliverTx.fromPartial(e.deliverTx):void 0,n.endBlock=void 0!==e.endBlock&&null!==e.endBlock?t.RequestEndBlock.fromPartial(e.endBlock):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.RequestCommit.fromPartial(e.commit):void 0,n.listSnapshots=void 0!==e.listSnapshots&&null!==e.listSnapshots?t.RequestListSnapshots.fromPartial(e.listSnapshots):void 0,n.offerSnapshot=void 0!==e.offerSnapshot&&null!==e.offerSnapshot?t.RequestOfferSnapshot.fromPartial(e.offerSnapshot):void 0,n.loadSnapshotChunk=void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?t.RequestLoadSnapshotChunk.fromPartial(e.loadSnapshotChunk):void 0,n.applySnapshotChunk=void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?t.RequestApplySnapshotChunk.fromPartial(e.applySnapshotChunk):void 0,n}};const w={message:""};t.RequestEcho={encode:(e,t=i.default.Writer.create())=>(""!==e.message&&t.uint32(10).string(e.message),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3==1?o.message=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},w);return t.message=void 0!==e.message&&null!==e.message?String(e.message):"",t},toJSON(e){const t={};return void 0!==e.message&&(t.message=e.message),t},fromPartial(e){var t;const n=Object.assign({},w);return n.message=null!==(t=e.message)&&void 0!==t?t:"",n}};const B={};t.RequestFlush={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(;n.posObject.assign({},B),toJSON:e=>({}),fromPartial:e=>Object.assign({},B)};const _={version:"",blockVersion:o.default.UZERO,p2pVersion:o.default.UZERO};t.RequestInfo={encode:(e,t=i.default.Writer.create())=>(""!==e.version&&t.uint32(10).string(e.version),e.blockVersion.isZero()||t.uint32(16).uint64(e.blockVersion),e.p2pVersion.isZero()||t.uint32(24).uint64(e.p2pVersion),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(;n.pos>>3){case 1:o.version=n.string();break;case 2:o.blockVersion=n.uint64();break;case 3:o.p2pVersion=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.version=void 0!==e.version&&null!==e.version?String(e.version):"",t.blockVersion=void 0!==e.blockVersion&&null!==e.blockVersion?o.default.fromString(e.blockVersion):o.default.UZERO,t.p2pVersion=void 0!==e.p2pVersion&&null!==e.p2pVersion?o.default.fromString(e.p2pVersion):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.version&&(t.version=e.version),void 0!==e.blockVersion&&(t.blockVersion=(e.blockVersion||o.default.UZERO).toString()),void 0!==e.p2pVersion&&(t.p2pVersion=(e.p2pVersion||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},_);return n.version=null!==(t=e.version)&&void 0!==t?t:"",n.blockVersion=void 0!==e.blockVersion&&null!==e.blockVersion?o.default.fromValue(e.blockVersion):o.default.UZERO,n.p2pVersion=void 0!==e.p2pVersion&&null!==e.p2pVersion?o.default.fromValue(e.p2pVersion):o.default.UZERO,n}};const S={key:"",value:""};t.RequestSetOption={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.value&&t.uint32(18).string(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(;n.pos>>3){case 1:o.key=n.string();break;case 2:o.value=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);return t.key=void 0!==e.key&&null!==e.key?String(e.key):"",t.value=void 0!==e.value&&null!==e.value?String(e.value):"",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){var t,n;const r=Object.assign({},S);return r.key=null!==(t=e.key)&&void 0!==t?t:"",r.value=null!==(n=e.value)&&void 0!==n?n:"",r}};const k={chainId:"",initialHeight:o.default.ZERO};t.RequestInitChain={encode(e,n=i.default.Writer.create()){void 0!==e.time&&a.Timestamp.encode(e.time,n.uint32(10).fork()).ldelim(),""!==e.chainId&&n.uint32(18).string(e.chainId),void 0!==e.consensusParams&&t.ConsensusParams.encode(e.consensusParams,n.uint32(26).fork()).ldelim();for(const r of e.validators)t.ValidatorUpdate.encode(r,n.uint32(34).fork()).ldelim();return 0!==e.appStateBytes.length&&n.uint32(42).bytes(e.appStateBytes),e.initialHeight.isZero()||n.uint32(48).int64(e.initialHeight),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},k);for(s.validators=[],s.appStateBytes=new Uint8Array;r.pos>>3){case 1:s.time=a.Timestamp.decode(r,r.uint32());break;case 2:s.chainId=r.string();break;case 3:s.consensusParams=t.ConsensusParams.decode(r,r.uint32());break;case 4:s.validators.push(t.ValidatorUpdate.decode(r,r.uint32()));break;case 5:s.appStateBytes=r.bytes();break;case 6:s.initialHeight=r.int64();break;default:r.skipType(7&e)}}return s},fromJSON(e){var n;const r=Object.assign({},k);return r.time=void 0!==e.time&&null!==e.time?be(e.time):void 0,r.chainId=void 0!==e.chainId&&null!==e.chainId?String(e.chainId):"",r.consensusParams=void 0!==e.consensusParams&&null!==e.consensusParams?t.ConsensusParams.fromJSON(e.consensusParams):void 0,r.validators=(null!==(n=e.validators)&&void 0!==n?n:[]).map((e=>t.ValidatorUpdate.fromJSON(e))),r.appStateBytes=void 0!==e.appStateBytes&&null!==e.appStateBytes?ge(e.appStateBytes):new Uint8Array,r.initialHeight=void 0!==e.initialHeight&&null!==e.initialHeight?o.default.fromString(e.initialHeight):o.default.ZERO,r},toJSON(e){const n={};return void 0!==e.time&&(n.time=ye(e.time).toISOString()),void 0!==e.chainId&&(n.chainId=e.chainId),void 0!==e.consensusParams&&(n.consensusParams=e.consensusParams?t.ConsensusParams.toJSON(e.consensusParams):void 0),e.validators?n.validators=e.validators.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):n.validators=[],void 0!==e.appStateBytes&&(n.appStateBytes=me(void 0!==e.appStateBytes?e.appStateBytes:new Uint8Array)),void 0!==e.initialHeight&&(n.initialHeight=(e.initialHeight||o.default.ZERO).toString()),n},fromPartial(e){var n,r,i;const s=Object.assign({},k);return s.time=void 0!==e.time&&null!==e.time?a.Timestamp.fromPartial(e.time):void 0,s.chainId=null!==(n=e.chainId)&&void 0!==n?n:"",s.consensusParams=void 0!==e.consensusParams&&null!==e.consensusParams?t.ConsensusParams.fromPartial(e.consensusParams):void 0,s.validators=(null===(r=e.validators)||void 0===r?void 0:r.map((e=>t.ValidatorUpdate.fromPartial(e))))||[],s.appStateBytes=null!==(i=e.appStateBytes)&&void 0!==i?i:new Uint8Array,s.initialHeight=void 0!==e.initialHeight&&null!==e.initialHeight?o.default.fromValue(e.initialHeight):o.default.ZERO,s}};const O={path:"",height:o.default.ZERO,prove:!1};t.RequestQuery={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),""!==e.path&&t.uint32(18).string(e.path),e.height.isZero()||t.uint32(24).int64(e.height),!0===e.prove&&t.uint32(32).bool(e.prove),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},O);for(o.data=new Uint8Array;n.pos>>3){case 1:o.data=n.bytes();break;case 2:o.path=n.string();break;case 3:o.height=n.int64();break;case 4:o.prove=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},O);return t.data=void 0!==e.data&&null!==e.data?ge(e.data):new Uint8Array,t.path=void 0!==e.path&&null!==e.path?String(e.path):"",t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,t.prove=void 0!==e.prove&&null!==e.prove&&Boolean(e.prove),t},toJSON(e){const t={};return void 0!==e.data&&(t.data=me(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.path&&(t.path=e.path),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.prove&&(t.prove=e.prove),t},fromPartial(e){var t,n,r;const i=Object.assign({},O);return i.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,i.path=null!==(n=e.path)&&void 0!==n?n:"",i.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,i.prove=null!==(r=e.prove)&&void 0!==r&&r,i}};const Q={};t.RequestBeginBlock={encode(e,n=i.default.Writer.create()){0!==e.hash.length&&n.uint32(10).bytes(e.hash),void 0!==e.header&&s.Header.encode(e.header,n.uint32(18).fork()).ldelim(),void 0!==e.lastCommitInfo&&t.LastCommitInfo.encode(e.lastCommitInfo,n.uint32(26).fork()).ldelim();for(const r of e.byzantineValidators)t.Evidence.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},Q);for(a.byzantineValidators=[],a.hash=new Uint8Array;r.pos>>3){case 1:a.hash=r.bytes();break;case 2:a.header=s.Header.decode(r,r.uint32());break;case 3:a.lastCommitInfo=t.LastCommitInfo.decode(r,r.uint32());break;case 4:a.byzantineValidators.push(t.Evidence.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},Q);return r.hash=void 0!==e.hash&&null!==e.hash?ge(e.hash):new Uint8Array,r.header=void 0!==e.header&&null!==e.header?s.Header.fromJSON(e.header):void 0,r.lastCommitInfo=void 0!==e.lastCommitInfo&&null!==e.lastCommitInfo?t.LastCommitInfo.fromJSON(e.lastCommitInfo):void 0,r.byzantineValidators=(null!==(n=e.byzantineValidators)&&void 0!==n?n:[]).map((e=>t.Evidence.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.hash&&(n.hash=me(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.header&&(n.header=e.header?s.Header.toJSON(e.header):void 0),void 0!==e.lastCommitInfo&&(n.lastCommitInfo=e.lastCommitInfo?t.LastCommitInfo.toJSON(e.lastCommitInfo):void 0),e.byzantineValidators?n.byzantineValidators=e.byzantineValidators.map((e=>e?t.Evidence.toJSON(e):void 0)):n.byzantineValidators=[],n},fromPartial(e){var n,r;const o=Object.assign({},Q);return o.hash=null!==(n=e.hash)&&void 0!==n?n:new Uint8Array,o.header=void 0!==e.header&&null!==e.header?s.Header.fromPartial(e.header):void 0,o.lastCommitInfo=void 0!==e.lastCommitInfo&&null!==e.lastCommitInfo?t.LastCommitInfo.fromPartial(e.lastCommitInfo):void 0,o.byzantineValidators=(null===(r=e.byzantineValidators)||void 0===r?void 0:r.map((e=>t.Evidence.fromPartial(e))))||[],o}};const R={type:0};t.RequestCheckTx={encode:(e,t=i.default.Writer.create())=>(0!==e.tx.length&&t.uint32(10).bytes(e.tx),0!==e.type&&t.uint32(16).int32(e.type),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},R);for(o.tx=new Uint8Array;n.pos>>3){case 1:o.tx=n.bytes();break;case 2:o.type=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},R);return t.tx=void 0!==e.tx&&null!==e.tx?ge(e.tx):new Uint8Array,t.type=void 0!==e.type&&null!==e.type?g(e.type):0,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=me(void 0!==e.tx?e.tx:new Uint8Array)),void 0!==e.type&&(t.type=p(e.type)),t},fromPartial(e){var t,n;const r=Object.assign({},R);return r.tx=null!==(t=e.tx)&&void 0!==t?t:new Uint8Array,r.type=null!==(n=e.type)&&void 0!==n?n:0,r}};const P={};t.RequestDeliverTx={encode:(e,t=i.default.Writer.create())=>(0!==e.tx.length&&t.uint32(10).bytes(e.tx),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},P);for(o.tx=new Uint8Array;n.pos>>3==1?o.tx=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},P);return t.tx=void 0!==e.tx&&null!==e.tx?ge(e.tx):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=me(void 0!==e.tx?e.tx:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},P);return n.tx=null!==(t=e.tx)&&void 0!==t?t:new Uint8Array,n}};const N={height:o.default.ZERO};t.RequestEndBlock={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).int64(e.height),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},N);for(;n.pos>>3==1?o.height=n.int64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},N);return t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},N);return t.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,t}};const x={};t.RequestCommit={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},x);for(;n.posObject.assign({},x),toJSON:e=>({}),fromPartial:e=>Object.assign({},x)};const D={};t.RequestListSnapshots={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},D);for(;n.posObject.assign({},D),toJSON:e=>({}),fromPartial:e=>Object.assign({},D)};const M={};t.RequestOfferSnapshot={encode:(e,n=i.default.Writer.create())=>(void 0!==e.snapshot&&t.Snapshot.encode(e.snapshot,n.uint32(10).fork()).ldelim(),0!==e.appHash.length&&n.uint32(18).bytes(e.appHash),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},M);for(a.appHash=new Uint8Array;r.pos>>3){case 1:a.snapshot=t.Snapshot.decode(r,r.uint32());break;case 2:a.appHash=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},M);return n.snapshot=void 0!==e.snapshot&&null!==e.snapshot?t.Snapshot.fromJSON(e.snapshot):void 0,n.appHash=void 0!==e.appHash&&null!==e.appHash?ge(e.appHash):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.snapshot&&(n.snapshot=e.snapshot?t.Snapshot.toJSON(e.snapshot):void 0),void 0!==e.appHash&&(n.appHash=me(void 0!==e.appHash?e.appHash:new Uint8Array)),n},fromPartial(e){var n;const r=Object.assign({},M);return r.snapshot=void 0!==e.snapshot&&null!==e.snapshot?t.Snapshot.fromPartial(e.snapshot):void 0,r.appHash=null!==(n=e.appHash)&&void 0!==n?n:new Uint8Array,r}};const T={height:o.default.UZERO,format:0,chunk:0};t.RequestLoadSnapshotChunk={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).uint64(e.height),0!==e.format&&t.uint32(16).uint32(e.format),0!==e.chunk&&t.uint32(24).uint32(e.chunk),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},T);for(;n.pos>>3){case 1:o.height=n.uint64();break;case 2:o.format=n.uint32();break;case 3:o.chunk=n.uint32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},T);return t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.UZERO,t.format=void 0!==e.format&&null!==e.format?Number(e.format):0,t.chunk=void 0!==e.chunk&&null!==e.chunk?Number(e.chunk):0,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),void 0!==e.format&&(t.format=e.format),void 0!==e.chunk&&(t.chunk=e.chunk),t},fromPartial(e){var t,n;const r=Object.assign({},T);return r.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.UZERO,r.format=null!==(t=e.format)&&void 0!==t?t:0,r.chunk=null!==(n=e.chunk)&&void 0!==n?n:0,r}};const U={index:0,sender:""};t.RequestApplySnapshotChunk={encode:(e,t=i.default.Writer.create())=>(0!==e.index&&t.uint32(8).uint32(e.index),0!==e.chunk.length&&t.uint32(18).bytes(e.chunk),""!==e.sender&&t.uint32(26).string(e.sender),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},U);for(o.chunk=new Uint8Array;n.pos>>3){case 1:o.index=n.uint32();break;case 2:o.chunk=n.bytes();break;case 3:o.sender=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},U);return t.index=void 0!==e.index&&null!==e.index?Number(e.index):0,t.chunk=void 0!==e.chunk&&null!==e.chunk?ge(e.chunk):new Uint8Array,t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t},toJSON(e){const t={};return void 0!==e.index&&(t.index=e.index),void 0!==e.chunk&&(t.chunk=me(void 0!==e.chunk?e.chunk:new Uint8Array)),void 0!==e.sender&&(t.sender=e.sender),t},fromPartial(e){var t,n,r;const o=Object.assign({},U);return o.index=null!==(t=e.index)&&void 0!==t?t:0,o.chunk=null!==(n=e.chunk)&&void 0!==n?n:new Uint8Array,o.sender=null!==(r=e.sender)&&void 0!==r?r:"",o}};const H={};t.Response={encode:(e,n=i.default.Writer.create())=>(void 0!==e.exception&&t.ResponseException.encode(e.exception,n.uint32(10).fork()).ldelim(),void 0!==e.echo&&t.ResponseEcho.encode(e.echo,n.uint32(18).fork()).ldelim(),void 0!==e.flush&&t.ResponseFlush.encode(e.flush,n.uint32(26).fork()).ldelim(),void 0!==e.info&&t.ResponseInfo.encode(e.info,n.uint32(34).fork()).ldelim(),void 0!==e.setOption&&t.ResponseSetOption.encode(e.setOption,n.uint32(42).fork()).ldelim(),void 0!==e.initChain&&t.ResponseInitChain.encode(e.initChain,n.uint32(50).fork()).ldelim(),void 0!==e.query&&t.ResponseQuery.encode(e.query,n.uint32(58).fork()).ldelim(),void 0!==e.beginBlock&&t.ResponseBeginBlock.encode(e.beginBlock,n.uint32(66).fork()).ldelim(),void 0!==e.checkTx&&t.ResponseCheckTx.encode(e.checkTx,n.uint32(74).fork()).ldelim(),void 0!==e.deliverTx&&t.ResponseDeliverTx.encode(e.deliverTx,n.uint32(82).fork()).ldelim(),void 0!==e.endBlock&&t.ResponseEndBlock.encode(e.endBlock,n.uint32(90).fork()).ldelim(),void 0!==e.commit&&t.ResponseCommit.encode(e.commit,n.uint32(98).fork()).ldelim(),void 0!==e.listSnapshots&&t.ResponseListSnapshots.encode(e.listSnapshots,n.uint32(106).fork()).ldelim(),void 0!==e.offerSnapshot&&t.ResponseOfferSnapshot.encode(e.offerSnapshot,n.uint32(114).fork()).ldelim(),void 0!==e.loadSnapshotChunk&&t.ResponseLoadSnapshotChunk.encode(e.loadSnapshotChunk,n.uint32(122).fork()).ldelim(),void 0!==e.applySnapshotChunk&&t.ResponseApplySnapshotChunk.encode(e.applySnapshotChunk,n.uint32(130).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},H);for(;r.pos>>3){case 1:a.exception=t.ResponseException.decode(r,r.uint32());break;case 2:a.echo=t.ResponseEcho.decode(r,r.uint32());break;case 3:a.flush=t.ResponseFlush.decode(r,r.uint32());break;case 4:a.info=t.ResponseInfo.decode(r,r.uint32());break;case 5:a.setOption=t.ResponseSetOption.decode(r,r.uint32());break;case 6:a.initChain=t.ResponseInitChain.decode(r,r.uint32());break;case 7:a.query=t.ResponseQuery.decode(r,r.uint32());break;case 8:a.beginBlock=t.ResponseBeginBlock.decode(r,r.uint32());break;case 9:a.checkTx=t.ResponseCheckTx.decode(r,r.uint32());break;case 10:a.deliverTx=t.ResponseDeliverTx.decode(r,r.uint32());break;case 11:a.endBlock=t.ResponseEndBlock.decode(r,r.uint32());break;case 12:a.commit=t.ResponseCommit.decode(r,r.uint32());break;case 13:a.listSnapshots=t.ResponseListSnapshots.decode(r,r.uint32());break;case 14:a.offerSnapshot=t.ResponseOfferSnapshot.decode(r,r.uint32());break;case 15:a.loadSnapshotChunk=t.ResponseLoadSnapshotChunk.decode(r,r.uint32());break;case 16:a.applySnapshotChunk=t.ResponseApplySnapshotChunk.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},H);return n.exception=void 0!==e.exception&&null!==e.exception?t.ResponseException.fromJSON(e.exception):void 0,n.echo=void 0!==e.echo&&null!==e.echo?t.ResponseEcho.fromJSON(e.echo):void 0,n.flush=void 0!==e.flush&&null!==e.flush?t.ResponseFlush.fromJSON(e.flush):void 0,n.info=void 0!==e.info&&null!==e.info?t.ResponseInfo.fromJSON(e.info):void 0,n.setOption=void 0!==e.setOption&&null!==e.setOption?t.ResponseSetOption.fromJSON(e.setOption):void 0,n.initChain=void 0!==e.initChain&&null!==e.initChain?t.ResponseInitChain.fromJSON(e.initChain):void 0,n.query=void 0!==e.query&&null!==e.query?t.ResponseQuery.fromJSON(e.query):void 0,n.beginBlock=void 0!==e.beginBlock&&null!==e.beginBlock?t.ResponseBeginBlock.fromJSON(e.beginBlock):void 0,n.checkTx=void 0!==e.checkTx&&null!==e.checkTx?t.ResponseCheckTx.fromJSON(e.checkTx):void 0,n.deliverTx=void 0!==e.deliverTx&&null!==e.deliverTx?t.ResponseDeliverTx.fromJSON(e.deliverTx):void 0,n.endBlock=void 0!==e.endBlock&&null!==e.endBlock?t.ResponseEndBlock.fromJSON(e.endBlock):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.ResponseCommit.fromJSON(e.commit):void 0,n.listSnapshots=void 0!==e.listSnapshots&&null!==e.listSnapshots?t.ResponseListSnapshots.fromJSON(e.listSnapshots):void 0,n.offerSnapshot=void 0!==e.offerSnapshot&&null!==e.offerSnapshot?t.ResponseOfferSnapshot.fromJSON(e.offerSnapshot):void 0,n.loadSnapshotChunk=void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?t.ResponseLoadSnapshotChunk.fromJSON(e.loadSnapshotChunk):void 0,n.applySnapshotChunk=void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?t.ResponseApplySnapshotChunk.fromJSON(e.applySnapshotChunk):void 0,n},toJSON(e){const n={};return void 0!==e.exception&&(n.exception=e.exception?t.ResponseException.toJSON(e.exception):void 0),void 0!==e.echo&&(n.echo=e.echo?t.ResponseEcho.toJSON(e.echo):void 0),void 0!==e.flush&&(n.flush=e.flush?t.ResponseFlush.toJSON(e.flush):void 0),void 0!==e.info&&(n.info=e.info?t.ResponseInfo.toJSON(e.info):void 0),void 0!==e.setOption&&(n.setOption=e.setOption?t.ResponseSetOption.toJSON(e.setOption):void 0),void 0!==e.initChain&&(n.initChain=e.initChain?t.ResponseInitChain.toJSON(e.initChain):void 0),void 0!==e.query&&(n.query=e.query?t.ResponseQuery.toJSON(e.query):void 0),void 0!==e.beginBlock&&(n.beginBlock=e.beginBlock?t.ResponseBeginBlock.toJSON(e.beginBlock):void 0),void 0!==e.checkTx&&(n.checkTx=e.checkTx?t.ResponseCheckTx.toJSON(e.checkTx):void 0),void 0!==e.deliverTx&&(n.deliverTx=e.deliverTx?t.ResponseDeliverTx.toJSON(e.deliverTx):void 0),void 0!==e.endBlock&&(n.endBlock=e.endBlock?t.ResponseEndBlock.toJSON(e.endBlock):void 0),void 0!==e.commit&&(n.commit=e.commit?t.ResponseCommit.toJSON(e.commit):void 0),void 0!==e.listSnapshots&&(n.listSnapshots=e.listSnapshots?t.ResponseListSnapshots.toJSON(e.listSnapshots):void 0),void 0!==e.offerSnapshot&&(n.offerSnapshot=e.offerSnapshot?t.ResponseOfferSnapshot.toJSON(e.offerSnapshot):void 0),void 0!==e.loadSnapshotChunk&&(n.loadSnapshotChunk=e.loadSnapshotChunk?t.ResponseLoadSnapshotChunk.toJSON(e.loadSnapshotChunk):void 0),void 0!==e.applySnapshotChunk&&(n.applySnapshotChunk=e.applySnapshotChunk?t.ResponseApplySnapshotChunk.toJSON(e.applySnapshotChunk):void 0),n},fromPartial(e){const n=Object.assign({},H);return n.exception=void 0!==e.exception&&null!==e.exception?t.ResponseException.fromPartial(e.exception):void 0,n.echo=void 0!==e.echo&&null!==e.echo?t.ResponseEcho.fromPartial(e.echo):void 0,n.flush=void 0!==e.flush&&null!==e.flush?t.ResponseFlush.fromPartial(e.flush):void 0,n.info=void 0!==e.info&&null!==e.info?t.ResponseInfo.fromPartial(e.info):void 0,n.setOption=void 0!==e.setOption&&null!==e.setOption?t.ResponseSetOption.fromPartial(e.setOption):void 0,n.initChain=void 0!==e.initChain&&null!==e.initChain?t.ResponseInitChain.fromPartial(e.initChain):void 0,n.query=void 0!==e.query&&null!==e.query?t.ResponseQuery.fromPartial(e.query):void 0,n.beginBlock=void 0!==e.beginBlock&&null!==e.beginBlock?t.ResponseBeginBlock.fromPartial(e.beginBlock):void 0,n.checkTx=void 0!==e.checkTx&&null!==e.checkTx?t.ResponseCheckTx.fromPartial(e.checkTx):void 0,n.deliverTx=void 0!==e.deliverTx&&null!==e.deliverTx?t.ResponseDeliverTx.fromPartial(e.deliverTx):void 0,n.endBlock=void 0!==e.endBlock&&null!==e.endBlock?t.ResponseEndBlock.fromPartial(e.endBlock):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.ResponseCommit.fromPartial(e.commit):void 0,n.listSnapshots=void 0!==e.listSnapshots&&null!==e.listSnapshots?t.ResponseListSnapshots.fromPartial(e.listSnapshots):void 0,n.offerSnapshot=void 0!==e.offerSnapshot&&null!==e.offerSnapshot?t.ResponseOfferSnapshot.fromPartial(e.offerSnapshot):void 0,n.loadSnapshotChunk=void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?t.ResponseLoadSnapshotChunk.fromPartial(e.loadSnapshotChunk):void 0,n.applySnapshotChunk=void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?t.ResponseApplySnapshotChunk.fromPartial(e.applySnapshotChunk):void 0,n}};const j={error:""};t.ResponseException={encode:(e,t=i.default.Writer.create())=>(""!==e.error&&t.uint32(10).string(e.error),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},j);for(;n.pos>>3==1?o.error=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},j);return t.error=void 0!==e.error&&null!==e.error?String(e.error):"",t},toJSON(e){const t={};return void 0!==e.error&&(t.error=e.error),t},fromPartial(e){var t;const n=Object.assign({},j);return n.error=null!==(t=e.error)&&void 0!==t?t:"",n}};const J={message:""};t.ResponseEcho={encode:(e,t=i.default.Writer.create())=>(""!==e.message&&t.uint32(10).string(e.message),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},J);for(;n.pos>>3==1?o.message=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},J);return t.message=void 0!==e.message&&null!==e.message?String(e.message):"",t},toJSON(e){const t={};return void 0!==e.message&&(t.message=e.message),t},fromPartial(e){var t;const n=Object.assign({},J);return n.message=null!==(t=e.message)&&void 0!==t?t:"",n}};const F={};t.ResponseFlush={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},F);for(;n.posObject.assign({},F),toJSON:e=>({}),fromPartial:e=>Object.assign({},F)};const G={data:"",version:"",appVersion:o.default.UZERO,lastBlockHeight:o.default.ZERO};t.ResponseInfo={encode:(e,t=i.default.Writer.create())=>(""!==e.data&&t.uint32(10).string(e.data),""!==e.version&&t.uint32(18).string(e.version),e.appVersion.isZero()||t.uint32(24).uint64(e.appVersion),e.lastBlockHeight.isZero()||t.uint32(32).int64(e.lastBlockHeight),0!==e.lastBlockAppHash.length&&t.uint32(42).bytes(e.lastBlockAppHash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},G);for(o.lastBlockAppHash=new Uint8Array;n.pos>>3){case 1:o.data=n.string();break;case 2:o.version=n.string();break;case 3:o.appVersion=n.uint64();break;case 4:o.lastBlockHeight=n.int64();break;case 5:o.lastBlockAppHash=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},G);return t.data=void 0!==e.data&&null!==e.data?String(e.data):"",t.version=void 0!==e.version&&null!==e.version?String(e.version):"",t.appVersion=void 0!==e.appVersion&&null!==e.appVersion?o.default.fromString(e.appVersion):o.default.UZERO,t.lastBlockHeight=void 0!==e.lastBlockHeight&&null!==e.lastBlockHeight?o.default.fromString(e.lastBlockHeight):o.default.ZERO,t.lastBlockAppHash=void 0!==e.lastBlockAppHash&&null!==e.lastBlockAppHash?ge(e.lastBlockAppHash):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=e.data),void 0!==e.version&&(t.version=e.version),void 0!==e.appVersion&&(t.appVersion=(e.appVersion||o.default.UZERO).toString()),void 0!==e.lastBlockHeight&&(t.lastBlockHeight=(e.lastBlockHeight||o.default.ZERO).toString()),void 0!==e.lastBlockAppHash&&(t.lastBlockAppHash=me(void 0!==e.lastBlockAppHash?e.lastBlockAppHash:new Uint8Array)),t},fromPartial(e){var t,n,r;const i=Object.assign({},G);return i.data=null!==(t=e.data)&&void 0!==t?t:"",i.version=null!==(n=e.version)&&void 0!==n?n:"",i.appVersion=void 0!==e.appVersion&&null!==e.appVersion?o.default.fromValue(e.appVersion):o.default.UZERO,i.lastBlockHeight=void 0!==e.lastBlockHeight&&null!==e.lastBlockHeight?o.default.fromValue(e.lastBlockHeight):o.default.ZERO,i.lastBlockAppHash=null!==(r=e.lastBlockAppHash)&&void 0!==r?r:new Uint8Array,i}};const L={code:0,log:"",info:""};t.ResponseSetOption={encode:(e,t=i.default.Writer.create())=>(0!==e.code&&t.uint32(8).uint32(e.code),""!==e.log&&t.uint32(26).string(e.log),""!==e.info&&t.uint32(34).string(e.info),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},L);for(;n.pos>>3){case 1:o.code=n.uint32();break;case 3:o.log=n.string();break;case 4:o.info=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},L);return t.code=void 0!==e.code&&null!==e.code?Number(e.code):0,t.log=void 0!==e.log&&null!==e.log?String(e.log):"",t.info=void 0!==e.info&&null!==e.info?String(e.info):"",t},toJSON(e){const t={};return void 0!==e.code&&(t.code=e.code),void 0!==e.log&&(t.log=e.log),void 0!==e.info&&(t.info=e.info),t},fromPartial(e){var t,n,r;const o=Object.assign({},L);return o.code=null!==(t=e.code)&&void 0!==t?t:0,o.log=null!==(n=e.log)&&void 0!==n?n:"",o.info=null!==(r=e.info)&&void 0!==r?r:"",o}};const q={};t.ResponseInitChain={encode(e,n=i.default.Writer.create()){void 0!==e.consensusParams&&t.ConsensusParams.encode(e.consensusParams,n.uint32(10).fork()).ldelim();for(const r of e.validators)t.ValidatorUpdate.encode(r,n.uint32(18).fork()).ldelim();return 0!==e.appHash.length&&n.uint32(26).bytes(e.appHash),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},q);for(a.validators=[],a.appHash=new Uint8Array;r.pos>>3){case 1:a.consensusParams=t.ConsensusParams.decode(r,r.uint32());break;case 2:a.validators.push(t.ValidatorUpdate.decode(r,r.uint32()));break;case 3:a.appHash=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},q);return r.consensusParams=void 0!==e.consensusParams&&null!==e.consensusParams?t.ConsensusParams.fromJSON(e.consensusParams):void 0,r.validators=(null!==(n=e.validators)&&void 0!==n?n:[]).map((e=>t.ValidatorUpdate.fromJSON(e))),r.appHash=void 0!==e.appHash&&null!==e.appHash?ge(e.appHash):new Uint8Array,r},toJSON(e){const n={};return void 0!==e.consensusParams&&(n.consensusParams=e.consensusParams?t.ConsensusParams.toJSON(e.consensusParams):void 0),e.validators?n.validators=e.validators.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):n.validators=[],void 0!==e.appHash&&(n.appHash=me(void 0!==e.appHash?e.appHash:new Uint8Array)),n},fromPartial(e){var n,r;const o=Object.assign({},q);return o.consensusParams=void 0!==e.consensusParams&&null!==e.consensusParams?t.ConsensusParams.fromPartial(e.consensusParams):void 0,o.validators=(null===(n=e.validators)||void 0===n?void 0:n.map((e=>t.ValidatorUpdate.fromPartial(e))))||[],o.appHash=null!==(r=e.appHash)&&void 0!==r?r:new Uint8Array,o}};const Y={code:0,log:"",info:"",index:o.default.ZERO,height:o.default.ZERO,codespace:""};t.ResponseQuery={encode:(e,t=i.default.Writer.create())=>(0!==e.code&&t.uint32(8).uint32(e.code),""!==e.log&&t.uint32(26).string(e.log),""!==e.info&&t.uint32(34).string(e.info),e.index.isZero()||t.uint32(40).int64(e.index),0!==e.key.length&&t.uint32(50).bytes(e.key),0!==e.value.length&&t.uint32(58).bytes(e.value),void 0!==e.proofOps&&c.ProofOps.encode(e.proofOps,t.uint32(66).fork()).ldelim(),e.height.isZero()||t.uint32(72).int64(e.height),""!==e.codespace&&t.uint32(82).string(e.codespace),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},Y);for(o.key=new Uint8Array,o.value=new Uint8Array;n.pos>>3){case 1:o.code=n.uint32();break;case 3:o.log=n.string();break;case 4:o.info=n.string();break;case 5:o.index=n.int64();break;case 6:o.key=n.bytes();break;case 7:o.value=n.bytes();break;case 8:o.proofOps=c.ProofOps.decode(n,n.uint32());break;case 9:o.height=n.int64();break;case 10:o.codespace=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},Y);return t.code=void 0!==e.code&&null!==e.code?Number(e.code):0,t.log=void 0!==e.log&&null!==e.log?String(e.log):"",t.info=void 0!==e.info&&null!==e.info?String(e.info):"",t.index=void 0!==e.index&&null!==e.index?o.default.fromString(e.index):o.default.ZERO,t.key=void 0!==e.key&&null!==e.key?ge(e.key):new Uint8Array,t.value=void 0!==e.value&&null!==e.value?ge(e.value):new Uint8Array,t.proofOps=void 0!==e.proofOps&&null!==e.proofOps?c.ProofOps.fromJSON(e.proofOps):void 0,t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,t.codespace=void 0!==e.codespace&&null!==e.codespace?String(e.codespace):"",t},toJSON(e){const t={};return void 0!==e.code&&(t.code=e.code),void 0!==e.log&&(t.log=e.log),void 0!==e.info&&(t.info=e.info),void 0!==e.index&&(t.index=(e.index||o.default.ZERO).toString()),void 0!==e.key&&(t.key=me(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=me(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.proofOps&&(t.proofOps=e.proofOps?c.ProofOps.toJSON(e.proofOps):void 0),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.codespace&&(t.codespace=e.codespace),t},fromPartial(e){var t,n,r,i,a,s;const d=Object.assign({},Y);return d.code=null!==(t=e.code)&&void 0!==t?t:0,d.log=null!==(n=e.log)&&void 0!==n?n:"",d.info=null!==(r=e.info)&&void 0!==r?r:"",d.index=void 0!==e.index&&null!==e.index?o.default.fromValue(e.index):o.default.ZERO,d.key=null!==(i=e.key)&&void 0!==i?i:new Uint8Array,d.value=null!==(a=e.value)&&void 0!==a?a:new Uint8Array,d.proofOps=void 0!==e.proofOps&&null!==e.proofOps?c.ProofOps.fromPartial(e.proofOps):void 0,d.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,d.codespace=null!==(s=e.codespace)&&void 0!==s?s:"",d}};const V={};t.ResponseBeginBlock={encode(e,n=i.default.Writer.create()){for(const r of e.events)t.Event.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},V);for(a.events=[];r.pos>>3==1?a.events.push(t.Event.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},V);return r.events=(null!==(n=e.events)&&void 0!==n?n:[]).map((e=>t.Event.fromJSON(e))),r},toJSON(e){const n={};return e.events?n.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):n.events=[],n},fromPartial(e){var n;const r=Object.assign({},V);return r.events=(null===(n=e.events)||void 0===n?void 0:n.map((e=>t.Event.fromPartial(e))))||[],r}};const W={code:0,log:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,codespace:""};t.ResponseCheckTx={encode(e,n=i.default.Writer.create()){0!==e.code&&n.uint32(8).uint32(e.code),0!==e.data.length&&n.uint32(18).bytes(e.data),""!==e.log&&n.uint32(26).string(e.log),""!==e.info&&n.uint32(34).string(e.info),e.gasWanted.isZero()||n.uint32(40).int64(e.gasWanted),e.gasUsed.isZero()||n.uint32(48).int64(e.gasUsed);for(const r of e.events)t.Event.encode(r,n.uint32(58).fork()).ldelim();return""!==e.codespace&&n.uint32(66).string(e.codespace),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},W);for(a.events=[],a.data=new Uint8Array;r.pos>>3){case 1:a.code=r.uint32();break;case 2:a.data=r.bytes();break;case 3:a.log=r.string();break;case 4:a.info=r.string();break;case 5:a.gasWanted=r.int64();break;case 6:a.gasUsed=r.int64();break;case 7:a.events.push(t.Event.decode(r,r.uint32()));break;case 8:a.codespace=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},W);return r.code=void 0!==e.code&&null!==e.code?Number(e.code):0,r.data=void 0!==e.data&&null!==e.data?ge(e.data):new Uint8Array,r.log=void 0!==e.log&&null!==e.log?String(e.log):"",r.info=void 0!==e.info&&null!==e.info?String(e.info):"",r.gasWanted=void 0!==e.gas_wanted&&null!==e.gas_wanted?o.default.fromString(e.gas_wanted):o.default.ZERO,r.gasUsed=void 0!==e.gas_used&&null!==e.gas_used?o.default.fromString(e.gas_used):o.default.ZERO,r.events=(null!==(n=e.events)&&void 0!==n?n:[]).map((e=>t.Event.fromJSON(e))),r.codespace=void 0!==e.codespace&&null!==e.codespace?String(e.codespace):"",r},toJSON(e){const n={};return void 0!==e.code&&(n.code=e.code),void 0!==e.data&&(n.data=me(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(n.log=e.log),void 0!==e.info&&(n.info=e.info),void 0!==e.gasWanted&&(n.gas_wanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(n.gas_used=(e.gasUsed||o.default.ZERO).toString()),e.events?n.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):n.events=[],void 0!==e.codespace&&(n.codespace=e.codespace),n},fromPartial(e){var n,r,i,a,s,c;const d=Object.assign({},W);return d.code=null!==(n=e.code)&&void 0!==n?n:0,d.data=null!==(r=e.data)&&void 0!==r?r:new Uint8Array,d.log=null!==(i=e.log)&&void 0!==i?i:"",d.info=null!==(a=e.info)&&void 0!==a?a:"",d.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromValue(e.gasWanted):o.default.ZERO,d.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromValue(e.gasUsed):o.default.ZERO,d.events=(null===(s=e.events)||void 0===s?void 0:s.map((e=>t.Event.fromPartial(e))))||[],d.codespace=null!==(c=e.codespace)&&void 0!==c?c:"",d}};const K={code:0,log:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,codespace:""};t.ResponseDeliverTx={encode(e,n=i.default.Writer.create()){0!==e.code&&n.uint32(8).uint32(e.code),0!==e.data.length&&n.uint32(18).bytes(e.data),""!==e.log&&n.uint32(26).string(e.log),""!==e.info&&n.uint32(34).string(e.info),e.gasWanted.isZero()||n.uint32(40).int64(e.gasWanted),e.gasUsed.isZero()||n.uint32(48).int64(e.gasUsed);for(const r of e.events)t.Event.encode(r,n.uint32(58).fork()).ldelim();return""!==e.codespace&&n.uint32(66).string(e.codespace),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},K);for(a.events=[],a.data=new Uint8Array;r.pos>>3){case 1:a.code=r.uint32();break;case 2:a.data=r.bytes();break;case 3:a.log=r.string();break;case 4:a.info=r.string();break;case 5:a.gasWanted=r.int64();break;case 6:a.gasUsed=r.int64();break;case 7:a.events.push(t.Event.decode(r,r.uint32()));break;case 8:a.codespace=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},K);return r.code=void 0!==e.code&&null!==e.code?Number(e.code):0,r.data=void 0!==e.data&&null!==e.data?ge(e.data):new Uint8Array,r.log=void 0!==e.log&&null!==e.log?String(e.log):"",r.info=void 0!==e.info&&null!==e.info?String(e.info):"",r.gasWanted=void 0!==e.gas_wanted&&null!==e.gas_wanted?o.default.fromString(e.gas_wanted):o.default.ZERO,r.gasUsed=void 0!==e.gas_used&&null!==e.gas_used?o.default.fromString(e.gas_used):o.default.ZERO,r.events=(null!==(n=e.events)&&void 0!==n?n:[]).map((e=>t.Event.fromJSON(e))),r.codespace=void 0!==e.codespace&&null!==e.codespace?String(e.codespace):"",r},toJSON(e){const n={};return void 0!==e.code&&(n.code=e.code),void 0!==e.data&&(n.data=me(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(n.log=e.log),void 0!==e.info&&(n.info=e.info),void 0!==e.gasWanted&&(n.gas_wanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(n.gas_used=(e.gasUsed||o.default.ZERO).toString()),e.events?n.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):n.events=[],void 0!==e.codespace&&(n.codespace=e.codespace),n},fromPartial(e){var n,r,i,a,s,c;const d=Object.assign({},K);return d.code=null!==(n=e.code)&&void 0!==n?n:0,d.data=null!==(r=e.data)&&void 0!==r?r:new Uint8Array,d.log=null!==(i=e.log)&&void 0!==i?i:"",d.info=null!==(a=e.info)&&void 0!==a?a:"",d.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromValue(e.gasWanted):o.default.ZERO,d.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromValue(e.gasUsed):o.default.ZERO,d.events=(null===(s=e.events)||void 0===s?void 0:s.map((e=>t.Event.fromPartial(e))))||[],d.codespace=null!==(c=e.codespace)&&void 0!==c?c:"",d}};const Z={};t.ResponseEndBlock={encode(e,n=i.default.Writer.create()){for(const r of e.validatorUpdates)t.ValidatorUpdate.encode(r,n.uint32(10).fork()).ldelim();void 0!==e.consensusParamUpdates&&t.ConsensusParams.encode(e.consensusParamUpdates,n.uint32(18).fork()).ldelim();for(const r of e.events)t.Event.encode(r,n.uint32(26).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},Z);for(a.validatorUpdates=[],a.events=[];r.pos>>3){case 1:a.validatorUpdates.push(t.ValidatorUpdate.decode(r,r.uint32()));break;case 2:a.consensusParamUpdates=t.ConsensusParams.decode(r,r.uint32());break;case 3:a.events.push(t.Event.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n,r;const o=Object.assign({},Z);return o.validatorUpdates=(null!==(n=e.validatorUpdates)&&void 0!==n?n:[]).map((e=>t.ValidatorUpdate.fromJSON(e))),o.consensusParamUpdates=void 0!==e.consensusParamUpdates&&null!==e.consensusParamUpdates?t.ConsensusParams.fromJSON(e.consensusParamUpdates):void 0,o.events=(null!==(r=e.events)&&void 0!==r?r:[]).map((e=>t.Event.fromJSON(e))),o},toJSON(e){const n={};return e.validatorUpdates?n.validatorUpdates=e.validatorUpdates.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):n.validatorUpdates=[],void 0!==e.consensusParamUpdates&&(n.consensusParamUpdates=e.consensusParamUpdates?t.ConsensusParams.toJSON(e.consensusParamUpdates):void 0),e.events?n.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):n.events=[],n},fromPartial(e){var n,r;const o=Object.assign({},Z);return o.validatorUpdates=(null===(n=e.validatorUpdates)||void 0===n?void 0:n.map((e=>t.ValidatorUpdate.fromPartial(e))))||[],o.consensusParamUpdates=void 0!==e.consensusParamUpdates&&null!==e.consensusParamUpdates?t.ConsensusParams.fromPartial(e.consensusParamUpdates):void 0,o.events=(null===(r=e.events)||void 0===r?void 0:r.map((e=>t.Event.fromPartial(e))))||[],o}};const z={retainHeight:o.default.ZERO};t.ResponseCommit={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(18).bytes(e.data),e.retainHeight.isZero()||t.uint32(24).int64(e.retainHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},z);for(o.data=new Uint8Array;n.pos>>3){case 2:o.data=n.bytes();break;case 3:o.retainHeight=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},z);return t.data=void 0!==e.data&&null!==e.data?ge(e.data):new Uint8Array,t.retainHeight=void 0!==e.retainHeight&&null!==e.retainHeight?o.default.fromString(e.retainHeight):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=me(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.retainHeight&&(t.retainHeight=(e.retainHeight||o.default.ZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},z);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n.retainHeight=void 0!==e.retainHeight&&null!==e.retainHeight?o.default.fromValue(e.retainHeight):o.default.ZERO,n}};const X={};t.ResponseListSnapshots={encode(e,n=i.default.Writer.create()){for(const r of e.snapshots)t.Snapshot.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},X);for(a.snapshots=[];r.pos>>3==1?a.snapshots.push(t.Snapshot.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},X);return r.snapshots=(null!==(n=e.snapshots)&&void 0!==n?n:[]).map((e=>t.Snapshot.fromJSON(e))),r},toJSON(e){const n={};return e.snapshots?n.snapshots=e.snapshots.map((e=>e?t.Snapshot.toJSON(e):void 0)):n.snapshots=[],n},fromPartial(e){var n;const r=Object.assign({},X);return r.snapshots=(null===(n=e.snapshots)||void 0===n?void 0:n.map((e=>t.Snapshot.fromPartial(e))))||[],r}};const $={result:0};t.ResponseOfferSnapshot={encode:(e,t=i.default.Writer.create())=>(0!==e.result&&t.uint32(8).int32(e.result),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},$);for(;n.pos>>3==1?o.result=n.int32():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},$);return t.result=void 0!==e.result&&null!==e.result?y(e.result):0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=b(e.result)),t},fromPartial(e){var t;const n=Object.assign({},$);return n.result=null!==(t=e.result)&&void 0!==t?t:0,n}};const ee={};t.ResponseLoadSnapshotChunk={encode:(e,t=i.default.Writer.create())=>(0!==e.chunk.length&&t.uint32(10).bytes(e.chunk),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},ee);for(o.chunk=new Uint8Array;n.pos>>3==1?o.chunk=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},ee);return t.chunk=void 0!==e.chunk&&null!==e.chunk?ge(e.chunk):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.chunk&&(t.chunk=me(void 0!==e.chunk?e.chunk:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},ee);return n.chunk=null!==(t=e.chunk)&&void 0!==t?t:new Uint8Array,n}};const te={result:0,refetchChunks:0,rejectSenders:""};t.ResponseApplySnapshotChunk={encode(e,t=i.default.Writer.create()){0!==e.result&&t.uint32(8).int32(e.result),t.uint32(18).fork();for(const n of e.refetchChunks)t.uint32(n);t.ldelim();for(const n of e.rejectSenders)t.uint32(26).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},te);for(o.refetchChunks=[],o.rejectSenders=[];n.pos>>3){case 1:o.result=n.int32();break;case 2:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.posNumber(e))),r.rejectSenders=(null!==(n=e.rejectSenders)&&void 0!==n?n:[]).map((e=>String(e))),r},toJSON(e){const t={};return void 0!==e.result&&(t.result=C(e.result)),e.refetchChunks?t.refetchChunks=e.refetchChunks.map((e=>e)):t.refetchChunks=[],e.rejectSenders?t.rejectSenders=e.rejectSenders.map((e=>e)):t.rejectSenders=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},te);return o.result=null!==(t=e.result)&&void 0!==t?t:0,o.refetchChunks=(null===(n=e.refetchChunks)||void 0===n?void 0:n.map((e=>e)))||[],o.rejectSenders=(null===(r=e.rejectSenders)||void 0===r?void 0:r.map((e=>e)))||[],o}};const ne={};t.ConsensusParams={encode:(e,n=i.default.Writer.create())=>(void 0!==e.block&&t.BlockParams.encode(e.block,n.uint32(10).fork()).ldelim(),void 0!==e.evidence&&d.EvidenceParams.encode(e.evidence,n.uint32(18).fork()).ldelim(),void 0!==e.validator&&d.ValidatorParams.encode(e.validator,n.uint32(26).fork()).ldelim(),void 0!==e.version&&d.VersionParams.encode(e.version,n.uint32(34).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},ne);for(;r.pos>>3){case 1:a.block=t.BlockParams.decode(r,r.uint32());break;case 2:a.evidence=d.EvidenceParams.decode(r,r.uint32());break;case 3:a.validator=d.ValidatorParams.decode(r,r.uint32());break;case 4:a.version=d.VersionParams.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},ne);return n.block=void 0!==e.block&&null!==e.block?t.BlockParams.fromJSON(e.block):void 0,n.evidence=void 0!==e.evidence&&null!==e.evidence?d.EvidenceParams.fromJSON(e.evidence):void 0,n.validator=void 0!==e.validator&&null!==e.validator?d.ValidatorParams.fromJSON(e.validator):void 0,n.version=void 0!==e.version&&null!==e.version?d.VersionParams.fromJSON(e.version):void 0,n},toJSON(e){const n={};return void 0!==e.block&&(n.block=e.block?t.BlockParams.toJSON(e.block):void 0),void 0!==e.evidence&&(n.evidence=e.evidence?d.EvidenceParams.toJSON(e.evidence):void 0),void 0!==e.validator&&(n.validator=e.validator?d.ValidatorParams.toJSON(e.validator):void 0),void 0!==e.version&&(n.version=e.version?d.VersionParams.toJSON(e.version):void 0),n},fromPartial(e){const n=Object.assign({},ne);return n.block=void 0!==e.block&&null!==e.block?t.BlockParams.fromPartial(e.block):void 0,n.evidence=void 0!==e.evidence&&null!==e.evidence?d.EvidenceParams.fromPartial(e.evidence):void 0,n.validator=void 0!==e.validator&&null!==e.validator?d.ValidatorParams.fromPartial(e.validator):void 0,n.version=void 0!==e.version&&null!==e.version?d.VersionParams.fromPartial(e.version):void 0,n}};const re={maxBytes:o.default.ZERO,maxGas:o.default.ZERO};t.BlockParams={encode:(e,t=i.default.Writer.create())=>(e.maxBytes.isZero()||t.uint32(8).int64(e.maxBytes),e.maxGas.isZero()||t.uint32(16).int64(e.maxGas),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},re);for(;n.pos>>3){case 1:o.maxBytes=n.int64();break;case 2:o.maxGas=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},re);return t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromString(e.maxBytes):o.default.ZERO,t.maxGas=void 0!==e.maxGas&&null!==e.maxGas?o.default.fromString(e.maxGas):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),void 0!==e.maxGas&&(t.maxGas=(e.maxGas||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},re);return t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromValue(e.maxBytes):o.default.ZERO,t.maxGas=void 0!==e.maxGas&&null!==e.maxGas?o.default.fromValue(e.maxGas):o.default.ZERO,t}};const oe={round:0};t.LastCommitInfo={encode(e,n=i.default.Writer.create()){0!==e.round&&n.uint32(8).int32(e.round);for(const r of e.votes)t.VoteInfo.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},oe);for(a.votes=[];r.pos>>3){case 1:a.round=r.int32();break;case 2:a.votes.push(t.VoteInfo.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},oe);return r.round=void 0!==e.round&&null!==e.round?Number(e.round):0,r.votes=(null!==(n=e.votes)&&void 0!==n?n:[]).map((e=>t.VoteInfo.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.round&&(n.round=e.round),e.votes?n.votes=e.votes.map((e=>e?t.VoteInfo.toJSON(e):void 0)):n.votes=[],n},fromPartial(e){var n,r;const o=Object.assign({},oe);return o.round=null!==(n=e.round)&&void 0!==n?n:0,o.votes=(null===(r=e.votes)||void 0===r?void 0:r.map((e=>t.VoteInfo.fromPartial(e))))||[],o}};const ie={type:""};t.Event={encode(e,n=i.default.Writer.create()){""!==e.type&&n.uint32(10).string(e.type);for(const r of e.attributes)t.EventAttribute.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},ie);for(a.attributes=[];r.pos>>3){case 1:a.type=r.string();break;case 2:a.attributes.push(t.EventAttribute.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},ie);return r.type=void 0!==e.type&&null!==e.type?String(e.type):"",r.attributes=(null!==(n=e.attributes)&&void 0!==n?n:[]).map((e=>t.EventAttribute.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.type&&(n.type=e.type),e.attributes?n.attributes=e.attributes.map((e=>e?t.EventAttribute.toJSON(e):void 0)):n.attributes=[],n},fromPartial(e){var n,r;const o=Object.assign({},ie);return o.type=null!==(n=e.type)&&void 0!==n?n:"",o.attributes=(null===(r=e.attributes)||void 0===r?void 0:r.map((e=>t.EventAttribute.fromPartial(e))))||[],o}};const ae={index:!1};t.EventAttribute={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),0!==e.value.length&&t.uint32(18).bytes(e.value),!0===e.index&&t.uint32(24).bool(e.index),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},ae);for(o.key=new Uint8Array,o.value=new Uint8Array;n.pos>>3){case 1:o.key=n.bytes();break;case 2:o.value=n.bytes();break;case 3:o.index=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ae);return t.key=void 0!==e.key&&null!==e.key?ge(e.key):new Uint8Array,t.value=void 0!==e.value&&null!==e.value?ge(e.value):new Uint8Array,t.index=void 0!==e.index&&null!==e.index&&Boolean(e.index),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=me(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=me(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.index&&(t.index=e.index),t},fromPartial(e){var t,n,r;const o=Object.assign({},ae);return o.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,o.value=null!==(n=e.value)&&void 0!==n?n:new Uint8Array,o.index=null!==(r=e.index)&&void 0!==r&&r,o}};const se={height:o.default.ZERO,index:0};t.TxResult={encode:(e,n=i.default.Writer.create())=>(e.height.isZero()||n.uint32(8).int64(e.height),0!==e.index&&n.uint32(16).uint32(e.index),0!==e.tx.length&&n.uint32(26).bytes(e.tx),void 0!==e.result&&t.ResponseDeliverTx.encode(e.result,n.uint32(34).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},se);for(a.tx=new Uint8Array;r.pos>>3){case 1:a.height=r.int64();break;case 2:a.index=r.uint32();break;case 3:a.tx=r.bytes();break;case 4:a.result=t.ResponseDeliverTx.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},se);return n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.index=void 0!==e.index&&null!==e.index?Number(e.index):0,n.tx=void 0!==e.tx&&null!==e.tx?ge(e.tx):new Uint8Array,n.result=void 0!==e.result&&null!==e.result?t.ResponseDeliverTx.fromJSON(e.result):void 0,n},toJSON(e){const n={};return void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.index&&(n.index=e.index),void 0!==e.tx&&(n.tx=me(void 0!==e.tx?e.tx:new Uint8Array)),void 0!==e.result&&(n.result=e.result?t.ResponseDeliverTx.toJSON(e.result):void 0),n},fromPartial(e){var n,r;const i=Object.assign({},se);return i.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,i.index=null!==(n=e.index)&&void 0!==n?n:0,i.tx=null!==(r=e.tx)&&void 0!==r?r:new Uint8Array,i.result=void 0!==e.result&&null!==e.result?t.ResponseDeliverTx.fromPartial(e.result):void 0,i}};const ce={power:o.default.ZERO};t.Validator={encode:(e,t=i.default.Writer.create())=>(0!==e.address.length&&t.uint32(10).bytes(e.address),e.power.isZero()||t.uint32(24).int64(e.power),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},ce);for(o.address=new Uint8Array;n.pos>>3){case 1:o.address=n.bytes();break;case 3:o.power=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ce);return t.address=void 0!==e.address&&null!==e.address?ge(e.address):new Uint8Array,t.power=void 0!==e.power&&null!==e.power?o.default.fromString(e.power):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=me(void 0!==e.address?e.address:new Uint8Array)),void 0!==e.power&&(t.power=(e.power||o.default.ZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},ce);return n.address=null!==(t=e.address)&&void 0!==t?t:new Uint8Array,n.power=void 0!==e.power&&null!==e.power?o.default.fromValue(e.power):o.default.ZERO,n}};const de={power:o.default.ZERO};t.ValidatorUpdate={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pubKey&&u.PublicKey.encode(e.pubKey,t.uint32(10).fork()).ldelim(),e.power.isZero()||t.uint32(16).int64(e.power),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},de);for(;n.pos>>3){case 1:o.pubKey=u.PublicKey.decode(n,n.uint32());break;case 2:o.power=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},de);return t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?u.PublicKey.fromJSON(e.pubKey):void 0,t.power=void 0!==e.power&&null!==e.power?o.default.fromString(e.power):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.pubKey&&(t.pubKey=e.pubKey?u.PublicKey.toJSON(e.pubKey):void 0),void 0!==e.power&&(t.power=(e.power||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},de);return t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?u.PublicKey.fromPartial(e.pubKey):void 0,t.power=void 0!==e.power&&null!==e.power?o.default.fromValue(e.power):o.default.ZERO,t}};const ue={signedLastBlock:!1};t.VoteInfo={encode:(e,n=i.default.Writer.create())=>(void 0!==e.validator&&t.Validator.encode(e.validator,n.uint32(10).fork()).ldelim(),!0===e.signedLastBlock&&n.uint32(16).bool(e.signedLastBlock),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},ue);for(;r.pos>>3){case 1:a.validator=t.Validator.decode(r,r.uint32());break;case 2:a.signedLastBlock=r.bool();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},ue);return n.validator=void 0!==e.validator&&null!==e.validator?t.Validator.fromJSON(e.validator):void 0,n.signedLastBlock=void 0!==e.signedLastBlock&&null!==e.signedLastBlock&&Boolean(e.signedLastBlock),n},toJSON(e){const n={};return void 0!==e.validator&&(n.validator=e.validator?t.Validator.toJSON(e.validator):void 0),void 0!==e.signedLastBlock&&(n.signedLastBlock=e.signedLastBlock),n},fromPartial(e){var n;const r=Object.assign({},ue);return r.validator=void 0!==e.validator&&null!==e.validator?t.Validator.fromPartial(e.validator):void 0,r.signedLastBlock=null!==(n=e.signedLastBlock)&&void 0!==n&&n,r}};const le={type:0,height:o.default.ZERO,totalVotingPower:o.default.ZERO};t.Evidence={encode:(e,n=i.default.Writer.create())=>(0!==e.type&&n.uint32(8).int32(e.type),void 0!==e.validator&&t.Validator.encode(e.validator,n.uint32(18).fork()).ldelim(),e.height.isZero()||n.uint32(24).int64(e.height),void 0!==e.time&&a.Timestamp.encode(e.time,n.uint32(34).fork()).ldelim(),e.totalVotingPower.isZero()||n.uint32(40).int64(e.totalVotingPower),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},le);for(;r.pos>>3){case 1:s.type=r.int32();break;case 2:s.validator=t.Validator.decode(r,r.uint32());break;case 3:s.height=r.int64();break;case 4:s.time=a.Timestamp.decode(r,r.uint32());break;case 5:s.totalVotingPower=r.int64();break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},le);return n.type=void 0!==e.type&&null!==e.type?m(e.type):0,n.validator=void 0!==e.validator&&null!==e.validator?t.Validator.fromJSON(e.validator):void 0,n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.time=void 0!==e.time&&null!==e.time?be(e.time):void 0,n.totalVotingPower=void 0!==e.totalVotingPower&&null!==e.totalVotingPower?o.default.fromString(e.totalVotingPower):o.default.ZERO,n},toJSON(e){const n={};return void 0!==e.type&&(n.type=v(e.type)),void 0!==e.validator&&(n.validator=e.validator?t.Validator.toJSON(e.validator):void 0),void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.time&&(n.time=ye(e.time).toISOString()),void 0!==e.totalVotingPower&&(n.totalVotingPower=(e.totalVotingPower||o.default.ZERO).toString()),n},fromPartial(e){var n;const r=Object.assign({},le);return r.type=null!==(n=e.type)&&void 0!==n?n:0,r.validator=void 0!==e.validator&&null!==e.validator?t.Validator.fromPartial(e.validator):void 0,r.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,r.time=void 0!==e.time&&null!==e.time?a.Timestamp.fromPartial(e.time):void 0,r.totalVotingPower=void 0!==e.totalVotingPower&&null!==e.totalVotingPower?o.default.fromValue(e.totalVotingPower):o.default.ZERO,r}};const Ae={height:o.default.UZERO,format:0,chunks:0};t.Snapshot={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).uint64(e.height),0!==e.format&&t.uint32(16).uint32(e.format),0!==e.chunks&&t.uint32(24).uint32(e.chunks),0!==e.hash.length&&t.uint32(34).bytes(e.hash),0!==e.metadata.length&&t.uint32(42).bytes(e.metadata),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},Ae);for(o.hash=new Uint8Array,o.metadata=new Uint8Array;n.pos>>3){case 1:o.height=n.uint64();break;case 2:o.format=n.uint32();break;case 3:o.chunks=n.uint32();break;case 4:o.hash=n.bytes();break;case 5:o.metadata=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},Ae);return t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.UZERO,t.format=void 0!==e.format&&null!==e.format?Number(e.format):0,t.chunks=void 0!==e.chunks&&null!==e.chunks?Number(e.chunks):0,t.hash=void 0!==e.hash&&null!==e.hash?ge(e.hash):new Uint8Array,t.metadata=void 0!==e.metadata&&null!==e.metadata?ge(e.metadata):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),void 0!==e.format&&(t.format=e.format),void 0!==e.chunks&&(t.chunks=e.chunks),void 0!==e.hash&&(t.hash=me(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.metadata&&(t.metadata=me(void 0!==e.metadata?e.metadata:new Uint8Array)),t},fromPartial(e){var t,n,r,i;const a=Object.assign({},Ae);return a.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.UZERO,a.format=null!==(t=e.format)&&void 0!==t?t:0,a.chunks=null!==(n=e.chunks)&&void 0!==n?n:0,a.hash=null!==(r=e.hash)&&void 0!==r?r:new Uint8Array,a.metadata=null!==(i=e.metadata)&&void 0!==i?i:new Uint8Array,a}},t.ABCIApplicationClientImpl=class{constructor(e){this.rpc=e,this.Echo=this.Echo.bind(this),this.Flush=this.Flush.bind(this),this.Info=this.Info.bind(this),this.SetOption=this.SetOption.bind(this),this.DeliverTx=this.DeliverTx.bind(this),this.CheckTx=this.CheckTx.bind(this),this.Query=this.Query.bind(this),this.Commit=this.Commit.bind(this),this.InitChain=this.InitChain.bind(this),this.BeginBlock=this.BeginBlock.bind(this),this.EndBlock=this.EndBlock.bind(this),this.ListSnapshots=this.ListSnapshots.bind(this),this.OfferSnapshot=this.OfferSnapshot.bind(this),this.LoadSnapshotChunk=this.LoadSnapshotChunk.bind(this),this.ApplySnapshotChunk=this.ApplySnapshotChunk.bind(this)}Echo(e){const n=t.RequestEcho.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Echo",n).then((e=>t.ResponseEcho.decode(new i.default.Reader(e))))}Flush(e){const n=t.RequestFlush.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Flush",n).then((e=>t.ResponseFlush.decode(new i.default.Reader(e))))}Info(e){const n=t.RequestInfo.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Info",n).then((e=>t.ResponseInfo.decode(new i.default.Reader(e))))}SetOption(e){const n=t.RequestSetOption.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","SetOption",n).then((e=>t.ResponseSetOption.decode(new i.default.Reader(e))))}DeliverTx(e){const n=t.RequestDeliverTx.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","DeliverTx",n).then((e=>t.ResponseDeliverTx.decode(new i.default.Reader(e))))}CheckTx(e){const n=t.RequestCheckTx.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","CheckTx",n).then((e=>t.ResponseCheckTx.decode(new i.default.Reader(e))))}Query(e){const n=t.RequestQuery.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Query",n).then((e=>t.ResponseQuery.decode(new i.default.Reader(e))))}Commit(e){const n=t.RequestCommit.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Commit",n).then((e=>t.ResponseCommit.decode(new i.default.Reader(e))))}InitChain(e){const n=t.RequestInitChain.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","InitChain",n).then((e=>t.ResponseInitChain.decode(new i.default.Reader(e))))}BeginBlock(e){const n=t.RequestBeginBlock.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","BeginBlock",n).then((e=>t.ResponseBeginBlock.decode(new i.default.Reader(e))))}EndBlock(e){const n=t.RequestEndBlock.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","EndBlock",n).then((e=>t.ResponseEndBlock.decode(new i.default.Reader(e))))}ListSnapshots(e){const n=t.RequestListSnapshots.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","ListSnapshots",n).then((e=>t.ResponseListSnapshots.decode(new i.default.Reader(e))))}OfferSnapshot(e){const n=t.RequestOfferSnapshot.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","OfferSnapshot",n).then((e=>t.ResponseOfferSnapshot.decode(new i.default.Reader(e))))}LoadSnapshotChunk(e){const n=t.RequestLoadSnapshotChunk.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","LoadSnapshotChunk",n).then((e=>t.ResponseLoadSnapshotChunk.decode(new i.default.Reader(e))))}ApplySnapshotChunk(e){const n=t.RequestApplySnapshotChunk.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","ApplySnapshotChunk",n).then((e=>t.ResponseApplySnapshotChunk.decode(new i.default.Reader(e))))}};var fe=(()=>{if(void 0!==fe)return fe;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const he=fe.atob||(e=>fe.Buffer.from(e,"base64").toString("binary"));function ge(e){const t=he(e),n=new Uint8Array(t.length);for(let e=0;efe.Buffer.from(e,"binary").toString("base64"));function me(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return pe(t.join(""))}function ve(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function ye(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function be(e){return e instanceof Date?ve(e):"string"==typeof e?ve(new Date(e)):a.Timestamp.fromJSON(e)}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},984:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PublicKey=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="tendermint.crypto";const a={};t.PublicKey={encode:(e,t=i.default.Writer.create())=>(void 0!==e.ed25519&&t.uint32(10).bytes(e.ed25519),void 0!==e.secp256k1&&t.uint32(18).bytes(e.secp256k1),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.ed25519=n.bytes();break;case 2:o.secp256k1=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.ed25519=void 0!==e.ed25519&&null!==e.ed25519?d(e.ed25519):void 0,t.secp256k1=void 0!==e.secp256k1&&null!==e.secp256k1?d(e.secp256k1):void 0,t},toJSON(e){const t={};return void 0!==e.ed25519&&(t.ed25519=void 0!==e.ed25519?l(e.ed25519):void 0),void 0!==e.secp256k1&&(t.secp256k1=void 0!==e.secp256k1?l(e.secp256k1):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},a);return r.ed25519=null!==(t=e.ed25519)&&void 0!==t?t:void 0,r.secp256k1=null!==(n=e.secp256k1)&&void 0!==n?n:void 0,r}};var s=(()=>{if(void 0!==s)return s;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const c=s.atob||(e=>s.Buffer.from(e,"base64").toString("binary"));function d(e){const t=c(e),n=new Uint8Array(t.length);for(let e=0;es.Buffer.from(e,"binary").toString("base64"));function l(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return u(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1494:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ProofOps=t.ProofOp=t.DominoOp=t.ValueOp=t.Proof=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="tendermint.crypto";const a={total:o.default.ZERO,index:o.default.ZERO};t.Proof={encode(e,t=i.default.Writer.create()){e.total.isZero()||t.uint32(8).int64(e.total),e.index.isZero()||t.uint32(16).int64(e.index),0!==e.leafHash.length&&t.uint32(26).bytes(e.leafHash);for(const n of e.aunts)t.uint32(34).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.aunts=[],o.leafHash=new Uint8Array;n.pos>>3){case 1:o.total=n.int64();break;case 2:o.index=n.int64();break;case 3:o.leafHash=n.bytes();break;case 4:o.aunts.push(n.bytes());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},a);return n.total=void 0!==e.total&&null!==e.total?o.default.fromString(e.total):o.default.ZERO,n.index=void 0!==e.index&&null!==e.index?o.default.fromString(e.index):o.default.ZERO,n.leafHash=void 0!==e.leafHash&&null!==e.leafHash?f(e.leafHash):new Uint8Array,n.aunts=(null!==(t=e.aunts)&&void 0!==t?t:[]).map((e=>f(e))),n},toJSON(e){const t={};return void 0!==e.total&&(t.total=(e.total||o.default.ZERO).toString()),void 0!==e.index&&(t.index=(e.index||o.default.ZERO).toString()),void 0!==e.leafHash&&(t.leafHash=g(void 0!==e.leafHash?e.leafHash:new Uint8Array)),e.aunts?t.aunts=e.aunts.map((e=>g(void 0!==e?e:new Uint8Array))):t.aunts=[],t},fromPartial(e){var t,n;const r=Object.assign({},a);return r.total=void 0!==e.total&&null!==e.total?o.default.fromValue(e.total):o.default.ZERO,r.index=void 0!==e.index&&null!==e.index?o.default.fromValue(e.index):o.default.ZERO,r.leafHash=null!==(t=e.leafHash)&&void 0!==t?t:new Uint8Array,r.aunts=(null===(n=e.aunts)||void 0===n?void 0:n.map((e=>e)))||[],r}};const s={};t.ValueOp={encode:(e,n=i.default.Writer.create())=>(0!==e.key.length&&n.uint32(10).bytes(e.key),void 0!==e.proof&&t.Proof.encode(e.proof,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},s);for(a.key=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.proof=t.Proof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},s);return n.key=void 0!==e.key&&null!==e.key?f(e.key):new Uint8Array,n.proof=void 0!==e.proof&&null!==e.proof?t.Proof.fromJSON(e.proof):void 0,n},toJSON(e){const n={};return void 0!==e.key&&(n.key=g(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.proof&&(n.proof=e.proof?t.Proof.toJSON(e.proof):void 0),n},fromPartial(e){var n;const r=Object.assign({},s);return r.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,r.proof=void 0!==e.proof&&null!==e.proof?t.Proof.fromPartial(e.proof):void 0,r}};const c={key:"",input:"",output:""};t.DominoOp={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.input&&t.uint32(18).string(e.input),""!==e.output&&t.uint32(26).string(e.output),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.key=n.string();break;case 2:o.input=n.string();break;case 3:o.output=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.key=void 0!==e.key&&null!==e.key?String(e.key):"",t.input=void 0!==e.input&&null!==e.input?String(e.input):"",t.output=void 0!==e.output&&null!==e.output?String(e.output):"",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.input&&(t.input=e.input),void 0!==e.output&&(t.output=e.output),t},fromPartial(e){var t,n,r;const o=Object.assign({},c);return o.key=null!==(t=e.key)&&void 0!==t?t:"",o.input=null!==(n=e.input)&&void 0!==n?n:"",o.output=null!==(r=e.output)&&void 0!==r?r:"",o}};const d={type:""};t.ProofOp={encode:(e,t=i.default.Writer.create())=>(""!==e.type&&t.uint32(10).string(e.type),0!==e.key.length&&t.uint32(18).bytes(e.key),0!==e.data.length&&t.uint32(26).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.key=new Uint8Array,o.data=new Uint8Array;n.pos>>3){case 1:o.type=n.string();break;case 2:o.key=n.bytes();break;case 3:o.data=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.type=void 0!==e.type&&null!==e.type?String(e.type):"",t.key=void 0!==e.key&&null!==e.key?f(e.key):new Uint8Array,t.data=void 0!==e.data&&null!==e.data?f(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.type&&(t.type=e.type),void 0!==e.key&&(t.key=g(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.data&&(t.data=g(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t,n,r;const o=Object.assign({},d);return o.type=null!==(t=e.type)&&void 0!==t?t:"",o.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,o.data=null!==(r=e.data)&&void 0!==r?r:new Uint8Array,o}};const u={};t.ProofOps={encode(e,n=i.default.Writer.create()){for(const r of e.ops)t.ProofOp.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(a.ops=[];r.pos>>3==1?a.ops.push(t.ProofOp.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},u);return r.ops=(null!==(n=e.ops)&&void 0!==n?n:[]).map((e=>t.ProofOp.fromJSON(e))),r},toJSON(e){const n={};return e.ops?n.ops=e.ops.map((e=>e?t.ProofOp.toJSON(e):void 0)):n.ops=[],n},fromPartial(e){var n;const r=Object.assign({},u);return r.ops=(null===(n=e.ops)||void 0===n?void 0:n.map((e=>t.ProofOp.fromPartial(e))))||[],r}};var l=(()=>{if(void 0!==l)return l;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const A=l.atob||(e=>l.Buffer.from(e,"base64").toString("binary"));function f(e){const t=A(e),n=new Uint8Array(t.length);for(let e=0;el.Buffer.from(e,"binary").toString("base64"));function g(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return h(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},7134:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashedParams=t.VersionParams=t.ValidatorParams=t.EvidenceParams=t.BlockParams=t.ConsensusParams=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(281);t.protobufPackage="tendermint.types";const s={};t.ConsensusParams={encode:(e,n=i.default.Writer.create())=>(void 0!==e.block&&t.BlockParams.encode(e.block,n.uint32(10).fork()).ldelim(),void 0!==e.evidence&&t.EvidenceParams.encode(e.evidence,n.uint32(18).fork()).ldelim(),void 0!==e.validator&&t.ValidatorParams.encode(e.validator,n.uint32(26).fork()).ldelim(),void 0!==e.version&&t.VersionParams.encode(e.version,n.uint32(34).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},s);for(;r.pos>>3){case 1:a.block=t.BlockParams.decode(r,r.uint32());break;case 2:a.evidence=t.EvidenceParams.decode(r,r.uint32());break;case 3:a.validator=t.ValidatorParams.decode(r,r.uint32());break;case 4:a.version=t.VersionParams.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},s);return n.block=void 0!==e.block&&null!==e.block?t.BlockParams.fromJSON(e.block):void 0,n.evidence=void 0!==e.evidence&&null!==e.evidence?t.EvidenceParams.fromJSON(e.evidence):void 0,n.validator=void 0!==e.validator&&null!==e.validator?t.ValidatorParams.fromJSON(e.validator):void 0,n.version=void 0!==e.version&&null!==e.version?t.VersionParams.fromJSON(e.version):void 0,n},toJSON(e){const n={};return void 0!==e.block&&(n.block=e.block?t.BlockParams.toJSON(e.block):void 0),void 0!==e.evidence&&(n.evidence=e.evidence?t.EvidenceParams.toJSON(e.evidence):void 0),void 0!==e.validator&&(n.validator=e.validator?t.ValidatorParams.toJSON(e.validator):void 0),void 0!==e.version&&(n.version=e.version?t.VersionParams.toJSON(e.version):void 0),n},fromPartial(e){const n=Object.assign({},s);return n.block=void 0!==e.block&&null!==e.block?t.BlockParams.fromPartial(e.block):void 0,n.evidence=void 0!==e.evidence&&null!==e.evidence?t.EvidenceParams.fromPartial(e.evidence):void 0,n.validator=void 0!==e.validator&&null!==e.validator?t.ValidatorParams.fromPartial(e.validator):void 0,n.version=void 0!==e.version&&null!==e.version?t.VersionParams.fromPartial(e.version):void 0,n}};const c={maxBytes:o.default.ZERO,maxGas:o.default.ZERO,timeIotaMs:o.default.ZERO};t.BlockParams={encode:(e,t=i.default.Writer.create())=>(e.maxBytes.isZero()||t.uint32(8).int64(e.maxBytes),e.maxGas.isZero()||t.uint32(16).int64(e.maxGas),e.timeIotaMs.isZero()||t.uint32(24).int64(e.timeIotaMs),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.maxBytes=n.int64();break;case 2:o.maxGas=n.int64();break;case 3:o.timeIotaMs=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromString(e.maxBytes):o.default.ZERO,t.maxGas=void 0!==e.maxGas&&null!==e.maxGas?o.default.fromString(e.maxGas):o.default.ZERO,t.timeIotaMs=void 0!==e.timeIotaMs&&null!==e.timeIotaMs?o.default.fromString(e.timeIotaMs):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),void 0!==e.maxGas&&(t.maxGas=(e.maxGas||o.default.ZERO).toString()),void 0!==e.timeIotaMs&&(t.timeIotaMs=(e.timeIotaMs||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromValue(e.maxBytes):o.default.ZERO,t.maxGas=void 0!==e.maxGas&&null!==e.maxGas?o.default.fromValue(e.maxGas):o.default.ZERO,t.timeIotaMs=void 0!==e.timeIotaMs&&null!==e.timeIotaMs?o.default.fromValue(e.timeIotaMs):o.default.ZERO,t}};const d={maxAgeNumBlocks:o.default.ZERO,maxBytes:o.default.ZERO};t.EvidenceParams={encode:(e,t=i.default.Writer.create())=>(e.maxAgeNumBlocks.isZero()||t.uint32(8).int64(e.maxAgeNumBlocks),void 0!==e.maxAgeDuration&&a.Duration.encode(e.maxAgeDuration,t.uint32(18).fork()).ldelim(),e.maxBytes.isZero()||t.uint32(24).int64(e.maxBytes),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.maxAgeNumBlocks=n.int64();break;case 2:o.maxAgeDuration=a.Duration.decode(n,n.uint32());break;case 3:o.maxBytes=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.maxAgeNumBlocks=void 0!==e.maxAgeNumBlocks&&null!==e.maxAgeNumBlocks?o.default.fromString(e.maxAgeNumBlocks):o.default.ZERO,t.maxAgeDuration=void 0!==e.maxAgeDuration&&null!==e.maxAgeDuration?a.Duration.fromJSON(e.maxAgeDuration):void 0,t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromString(e.maxBytes):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxAgeNumBlocks&&(t.maxAgeNumBlocks=(e.maxAgeNumBlocks||o.default.ZERO).toString()),void 0!==e.maxAgeDuration&&(t.maxAgeDuration=e.maxAgeDuration?a.Duration.toJSON(e.maxAgeDuration):void 0),void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return t.maxAgeNumBlocks=void 0!==e.maxAgeNumBlocks&&null!==e.maxAgeNumBlocks?o.default.fromValue(e.maxAgeNumBlocks):o.default.ZERO,t.maxAgeDuration=void 0!==e.maxAgeDuration&&null!==e.maxAgeDuration?a.Duration.fromPartial(e.maxAgeDuration):void 0,t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromValue(e.maxBytes):o.default.ZERO,t}};const u={pubKeyTypes:""};t.ValidatorParams={encode(e,t=i.default.Writer.create()){for(const n of e.pubKeyTypes)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.pubKeyTypes=[];n.pos>>3==1?o.pubKeyTypes.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.pubKeyTypes=(null!==(t=e.pubKeyTypes)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.pubKeyTypes?t.pubKeyTypes=e.pubKeyTypes.map((e=>e)):t.pubKeyTypes=[],t},fromPartial(e){var t;const n=Object.assign({},u);return n.pubKeyTypes=(null===(t=e.pubKeyTypes)||void 0===t?void 0:t.map((e=>e)))||[],n}};const l={appVersion:o.default.UZERO};t.VersionParams={encode:(e,t=i.default.Writer.create())=>(e.appVersion.isZero()||t.uint32(8).uint64(e.appVersion),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.appVersion=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.appVersion=void 0!==e.appVersion&&null!==e.appVersion?o.default.fromString(e.appVersion):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.appVersion&&(t.appVersion=(e.appVersion||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return t.appVersion=void 0!==e.appVersion&&null!==e.appVersion?o.default.fromValue(e.appVersion):o.default.UZERO,t}};const A={blockMaxBytes:o.default.ZERO,blockMaxGas:o.default.ZERO};t.HashedParams={encode:(e,t=i.default.Writer.create())=>(e.blockMaxBytes.isZero()||t.uint32(8).int64(e.blockMaxBytes),e.blockMaxGas.isZero()||t.uint32(16).int64(e.blockMaxGas),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.blockMaxBytes=n.int64();break;case 2:o.blockMaxGas=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.blockMaxBytes=void 0!==e.blockMaxBytes&&null!==e.blockMaxBytes?o.default.fromString(e.blockMaxBytes):o.default.ZERO,t.blockMaxGas=void 0!==e.blockMaxGas&&null!==e.blockMaxGas?o.default.fromString(e.blockMaxGas):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.blockMaxBytes&&(t.blockMaxBytes=(e.blockMaxBytes||o.default.ZERO).toString()),void 0!==e.blockMaxGas&&(t.blockMaxGas=(e.blockMaxGas||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},A);return t.blockMaxBytes=void 0!==e.blockMaxBytes&&null!==e.blockMaxBytes?o.default.fromValue(e.blockMaxBytes):o.default.ZERO,t.blockMaxGas=void 0!==e.blockMaxGas&&null!==e.blockMaxGas?o.default.fromValue(e.blockMaxGas):o.default.ZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1258:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TxProof=t.BlockMeta=t.LightBlock=t.SignedHeader=t.Proposal=t.CommitSig=t.Commit=t.Vote=t.Data=t.Header=t.BlockID=t.Part=t.PartSetHeader=t.signedMsgTypeToJSON=t.signedMsgTypeFromJSON=t.SignedMsgType=t.blockIDFlagToJSON=t.blockIDFlagFromJSON=t.BlockIDFlag=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1494),s=n(1083),c=n(5522),d=n(3444);var u,l;function A(e){switch(e){case 0:case"BLOCK_ID_FLAG_UNKNOWN":return u.BLOCK_ID_FLAG_UNKNOWN;case 1:case"BLOCK_ID_FLAG_ABSENT":return u.BLOCK_ID_FLAG_ABSENT;case 2:case"BLOCK_ID_FLAG_COMMIT":return u.BLOCK_ID_FLAG_COMMIT;case 3:case"BLOCK_ID_FLAG_NIL":return u.BLOCK_ID_FLAG_NIL;default:return u.UNRECOGNIZED}}function f(e){switch(e){case u.BLOCK_ID_FLAG_UNKNOWN:return"BLOCK_ID_FLAG_UNKNOWN";case u.BLOCK_ID_FLAG_ABSENT:return"BLOCK_ID_FLAG_ABSENT";case u.BLOCK_ID_FLAG_COMMIT:return"BLOCK_ID_FLAG_COMMIT";case u.BLOCK_ID_FLAG_NIL:return"BLOCK_ID_FLAG_NIL";default:return"UNKNOWN"}}function h(e){switch(e){case 0:case"SIGNED_MSG_TYPE_UNKNOWN":return l.SIGNED_MSG_TYPE_UNKNOWN;case 1:case"SIGNED_MSG_TYPE_PREVOTE":return l.SIGNED_MSG_TYPE_PREVOTE;case 2:case"SIGNED_MSG_TYPE_PRECOMMIT":return l.SIGNED_MSG_TYPE_PRECOMMIT;case 32:case"SIGNED_MSG_TYPE_PROPOSAL":return l.SIGNED_MSG_TYPE_PROPOSAL;default:return l.UNRECOGNIZED}}function g(e){switch(e){case l.SIGNED_MSG_TYPE_UNKNOWN:return"SIGNED_MSG_TYPE_UNKNOWN";case l.SIGNED_MSG_TYPE_PREVOTE:return"SIGNED_MSG_TYPE_PREVOTE";case l.SIGNED_MSG_TYPE_PRECOMMIT:return"SIGNED_MSG_TYPE_PRECOMMIT";case l.SIGNED_MSG_TYPE_PROPOSAL:return"SIGNED_MSG_TYPE_PROPOSAL";default:return"UNKNOWN"}}t.protobufPackage="tendermint.types",function(e){e[e.BLOCK_ID_FLAG_UNKNOWN=0]="BLOCK_ID_FLAG_UNKNOWN",e[e.BLOCK_ID_FLAG_ABSENT=1]="BLOCK_ID_FLAG_ABSENT",e[e.BLOCK_ID_FLAG_COMMIT=2]="BLOCK_ID_FLAG_COMMIT",e[e.BLOCK_ID_FLAG_NIL=3]="BLOCK_ID_FLAG_NIL",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.BlockIDFlag||(t.BlockIDFlag={})),t.blockIDFlagFromJSON=A,t.blockIDFlagToJSON=f,function(e){e[e.SIGNED_MSG_TYPE_UNKNOWN=0]="SIGNED_MSG_TYPE_UNKNOWN",e[e.SIGNED_MSG_TYPE_PREVOTE=1]="SIGNED_MSG_TYPE_PREVOTE",e[e.SIGNED_MSG_TYPE_PRECOMMIT=2]="SIGNED_MSG_TYPE_PRECOMMIT",e[e.SIGNED_MSG_TYPE_PROPOSAL=32]="SIGNED_MSG_TYPE_PROPOSAL",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.SignedMsgType||(t.SignedMsgType={})),t.signedMsgTypeFromJSON=h,t.signedMsgTypeToJSON=g;const p={total:0};t.PartSetHeader={encode:(e,t=i.default.Writer.create())=>(0!==e.total&&t.uint32(8).uint32(e.total),0!==e.hash.length&&t.uint32(18).bytes(e.hash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.hash=new Uint8Array;n.pos>>3){case 1:o.total=n.uint32();break;case 2:o.hash=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.total=void 0!==e.total&&null!==e.total?Number(e.total):0,t.hash=void 0!==e.hash&&null!==e.hash?R(e.hash):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.total&&(t.total=e.total),void 0!==e.hash&&(t.hash=N(void 0!==e.hash?e.hash:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.total=null!==(t=e.total)&&void 0!==t?t:0,r.hash=null!==(n=e.hash)&&void 0!==n?n:new Uint8Array,r}};const m={index:0};t.Part={encode:(e,t=i.default.Writer.create())=>(0!==e.index&&t.uint32(8).uint32(e.index),0!==e.bytes.length&&t.uint32(18).bytes(e.bytes),void 0!==e.proof&&a.Proof.encode(e.proof,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.bytes=new Uint8Array;n.pos>>3){case 1:o.index=n.uint32();break;case 2:o.bytes=n.bytes();break;case 3:o.proof=a.Proof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.index=void 0!==e.index&&null!==e.index?Number(e.index):0,t.bytes=void 0!==e.bytes&&null!==e.bytes?R(e.bytes):new Uint8Array,t.proof=void 0!==e.proof&&null!==e.proof?a.Proof.fromJSON(e.proof):void 0,t},toJSON(e){const t={};return void 0!==e.index&&(t.index=e.index),void 0!==e.bytes&&(t.bytes=N(void 0!==e.bytes?e.bytes:new Uint8Array)),void 0!==e.proof&&(t.proof=e.proof?a.Proof.toJSON(e.proof):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.index=null!==(t=e.index)&&void 0!==t?t:0,r.bytes=null!==(n=e.bytes)&&void 0!==n?n:new Uint8Array,r.proof=void 0!==e.proof&&null!==e.proof?a.Proof.fromPartial(e.proof):void 0,r}};const v={};t.BlockID={encode:(e,n=i.default.Writer.create())=>(0!==e.hash.length&&n.uint32(10).bytes(e.hash),void 0!==e.partSetHeader&&t.PartSetHeader.encode(e.partSetHeader,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},v);for(a.hash=new Uint8Array;r.pos>>3){case 1:a.hash=r.bytes();break;case 2:a.partSetHeader=t.PartSetHeader.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},v);return n.hash=void 0!==e.hash&&null!==e.hash?R(e.hash):new Uint8Array,n.partSetHeader=void 0!==e.partSetHeader&&null!==e.partSetHeader?t.PartSetHeader.fromJSON(e.partSetHeader):void 0,n},toJSON(e){const n={};return void 0!==e.hash&&(n.hash=N(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.partSetHeader&&(n.partSetHeader=e.partSetHeader?t.PartSetHeader.toJSON(e.partSetHeader):void 0),n},fromPartial(e){var n;const r=Object.assign({},v);return r.hash=null!==(n=e.hash)&&void 0!==n?n:new Uint8Array,r.partSetHeader=void 0!==e.partSetHeader&&null!==e.partSetHeader?t.PartSetHeader.fromPartial(e.partSetHeader):void 0,r}};const y={chainId:"",height:o.default.ZERO};t.Header={encode:(e,n=i.default.Writer.create())=>(void 0!==e.version&&s.Consensus.encode(e.version,n.uint32(10).fork()).ldelim(),""!==e.chainId&&n.uint32(18).string(e.chainId),e.height.isZero()||n.uint32(24).int64(e.height),void 0!==e.time&&c.Timestamp.encode(e.time,n.uint32(34).fork()).ldelim(),void 0!==e.lastBlockId&&t.BlockID.encode(e.lastBlockId,n.uint32(42).fork()).ldelim(),0!==e.lastCommitHash.length&&n.uint32(50).bytes(e.lastCommitHash),0!==e.dataHash.length&&n.uint32(58).bytes(e.dataHash),0!==e.validatorsHash.length&&n.uint32(66).bytes(e.validatorsHash),0!==e.nextValidatorsHash.length&&n.uint32(74).bytes(e.nextValidatorsHash),0!==e.consensusHash.length&&n.uint32(82).bytes(e.consensusHash),0!==e.appHash.length&&n.uint32(90).bytes(e.appHash),0!==e.lastResultsHash.length&&n.uint32(98).bytes(e.lastResultsHash),0!==e.evidenceHash.length&&n.uint32(106).bytes(e.evidenceHash),0!==e.proposerAddress.length&&n.uint32(114).bytes(e.proposerAddress),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},y);for(a.lastCommitHash=new Uint8Array,a.dataHash=new Uint8Array,a.validatorsHash=new Uint8Array,a.nextValidatorsHash=new Uint8Array,a.consensusHash=new Uint8Array,a.appHash=new Uint8Array,a.lastResultsHash=new Uint8Array,a.evidenceHash=new Uint8Array,a.proposerAddress=new Uint8Array;r.pos>>3){case 1:a.version=s.Consensus.decode(r,r.uint32());break;case 2:a.chainId=r.string();break;case 3:a.height=r.int64();break;case 4:a.time=c.Timestamp.decode(r,r.uint32());break;case 5:a.lastBlockId=t.BlockID.decode(r,r.uint32());break;case 6:a.lastCommitHash=r.bytes();break;case 7:a.dataHash=r.bytes();break;case 8:a.validatorsHash=r.bytes();break;case 9:a.nextValidatorsHash=r.bytes();break;case 10:a.consensusHash=r.bytes();break;case 11:a.appHash=r.bytes();break;case 12:a.lastResultsHash=r.bytes();break;case 13:a.evidenceHash=r.bytes();break;case 14:a.proposerAddress=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},y);return n.version=void 0!==e.version&&null!==e.version?s.Consensus.fromJSON(e.version):void 0,n.chainId=void 0!==e.chainId&&null!==e.chainId?String(e.chainId):"",n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.time=void 0!==e.time&&null!==e.time?M(e.time):void 0,n.lastBlockId=void 0!==e.lastBlockId&&null!==e.lastBlockId?t.BlockID.fromJSON(e.lastBlockId):void 0,n.lastCommitHash=void 0!==e.lastCommitHash&&null!==e.lastCommitHash?R(e.lastCommitHash):new Uint8Array,n.dataHash=void 0!==e.dataHash&&null!==e.dataHash?R(e.dataHash):new Uint8Array,n.validatorsHash=void 0!==e.validatorsHash&&null!==e.validatorsHash?R(e.validatorsHash):new Uint8Array,n.nextValidatorsHash=void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash?R(e.nextValidatorsHash):new Uint8Array,n.consensusHash=void 0!==e.consensusHash&&null!==e.consensusHash?R(e.consensusHash):new Uint8Array,n.appHash=void 0!==e.appHash&&null!==e.appHash?R(e.appHash):new Uint8Array,n.lastResultsHash=void 0!==e.lastResultsHash&&null!==e.lastResultsHash?R(e.lastResultsHash):new Uint8Array,n.evidenceHash=void 0!==e.evidenceHash&&null!==e.evidenceHash?R(e.evidenceHash):new Uint8Array,n.proposerAddress=void 0!==e.proposerAddress&&null!==e.proposerAddress?R(e.proposerAddress):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.version&&(n.version=e.version?s.Consensus.toJSON(e.version):void 0),void 0!==e.chainId&&(n.chainId=e.chainId),void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.time&&(n.time=D(e.time).toISOString()),void 0!==e.lastBlockId&&(n.lastBlockId=e.lastBlockId?t.BlockID.toJSON(e.lastBlockId):void 0),void 0!==e.lastCommitHash&&(n.lastCommitHash=N(void 0!==e.lastCommitHash?e.lastCommitHash:new Uint8Array)),void 0!==e.dataHash&&(n.dataHash=N(void 0!==e.dataHash?e.dataHash:new Uint8Array)),void 0!==e.validatorsHash&&(n.validatorsHash=N(void 0!==e.validatorsHash?e.validatorsHash:new Uint8Array)),void 0!==e.nextValidatorsHash&&(n.nextValidatorsHash=N(void 0!==e.nextValidatorsHash?e.nextValidatorsHash:new Uint8Array)),void 0!==e.consensusHash&&(n.consensusHash=N(void 0!==e.consensusHash?e.consensusHash:new Uint8Array)),void 0!==e.appHash&&(n.appHash=N(void 0!==e.appHash?e.appHash:new Uint8Array)),void 0!==e.lastResultsHash&&(n.lastResultsHash=N(void 0!==e.lastResultsHash?e.lastResultsHash:new Uint8Array)),void 0!==e.evidenceHash&&(n.evidenceHash=N(void 0!==e.evidenceHash?e.evidenceHash:new Uint8Array)),void 0!==e.proposerAddress&&(n.proposerAddress=N(void 0!==e.proposerAddress?e.proposerAddress:new Uint8Array)),n},fromPartial(e){var n,r,i,a,d,u,l,A,f,h;const g=Object.assign({},y);return g.version=void 0!==e.version&&null!==e.version?s.Consensus.fromPartial(e.version):void 0,g.chainId=null!==(n=e.chainId)&&void 0!==n?n:"",g.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,g.time=void 0!==e.time&&null!==e.time?c.Timestamp.fromPartial(e.time):void 0,g.lastBlockId=void 0!==e.lastBlockId&&null!==e.lastBlockId?t.BlockID.fromPartial(e.lastBlockId):void 0,g.lastCommitHash=null!==(r=e.lastCommitHash)&&void 0!==r?r:new Uint8Array,g.dataHash=null!==(i=e.dataHash)&&void 0!==i?i:new Uint8Array,g.validatorsHash=null!==(a=e.validatorsHash)&&void 0!==a?a:new Uint8Array,g.nextValidatorsHash=null!==(d=e.nextValidatorsHash)&&void 0!==d?d:new Uint8Array,g.consensusHash=null!==(u=e.consensusHash)&&void 0!==u?u:new Uint8Array,g.appHash=null!==(l=e.appHash)&&void 0!==l?l:new Uint8Array,g.lastResultsHash=null!==(A=e.lastResultsHash)&&void 0!==A?A:new Uint8Array,g.evidenceHash=null!==(f=e.evidenceHash)&&void 0!==f?f:new Uint8Array,g.proposerAddress=null!==(h=e.proposerAddress)&&void 0!==h?h:new Uint8Array,g}};const b={};t.Data={encode(e,t=i.default.Writer.create()){for(const n of e.txs)t.uint32(10).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.txs=[];n.pos>>3==1?o.txs.push(n.bytes()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},b);return n.txs=(null!==(t=e.txs)&&void 0!==t?t:[]).map((e=>R(e))),n},toJSON(e){const t={};return e.txs?t.txs=e.txs.map((e=>N(void 0!==e?e:new Uint8Array))):t.txs=[],t},fromPartial(e){var t;const n=Object.assign({},b);return n.txs=(null===(t=e.txs)||void 0===t?void 0:t.map((e=>e)))||[],n}};const I={type:0,height:o.default.ZERO,round:0,validatorIndex:0};t.Vote={encode:(e,n=i.default.Writer.create())=>(0!==e.type&&n.uint32(8).int32(e.type),e.height.isZero()||n.uint32(16).int64(e.height),0!==e.round&&n.uint32(24).int32(e.round),void 0!==e.blockId&&t.BlockID.encode(e.blockId,n.uint32(34).fork()).ldelim(),void 0!==e.timestamp&&c.Timestamp.encode(e.timestamp,n.uint32(42).fork()).ldelim(),0!==e.validatorAddress.length&&n.uint32(50).bytes(e.validatorAddress),0!==e.validatorIndex&&n.uint32(56).int32(e.validatorIndex),0!==e.signature.length&&n.uint32(66).bytes(e.signature),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},I);for(a.validatorAddress=new Uint8Array,a.signature=new Uint8Array;r.pos>>3){case 1:a.type=r.int32();break;case 2:a.height=r.int64();break;case 3:a.round=r.int32();break;case 4:a.blockId=t.BlockID.decode(r,r.uint32());break;case 5:a.timestamp=c.Timestamp.decode(r,r.uint32());break;case 6:a.validatorAddress=r.bytes();break;case 7:a.validatorIndex=r.int32();break;case 8:a.signature=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},I);return n.type=void 0!==e.type&&null!==e.type?h(e.type):0,n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.round=void 0!==e.round&&null!==e.round?Number(e.round):0,n.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromJSON(e.blockId):void 0,n.timestamp=void 0!==e.timestamp&&null!==e.timestamp?M(e.timestamp):void 0,n.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?R(e.validatorAddress):new Uint8Array,n.validatorIndex=void 0!==e.validatorIndex&&null!==e.validatorIndex?Number(e.validatorIndex):0,n.signature=void 0!==e.signature&&null!==e.signature?R(e.signature):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.type&&(n.type=g(e.type)),void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(n.round=e.round),void 0!==e.blockId&&(n.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.timestamp&&(n.timestamp=D(e.timestamp).toISOString()),void 0!==e.validatorAddress&&(n.validatorAddress=N(void 0!==e.validatorAddress?e.validatorAddress:new Uint8Array)),void 0!==e.validatorIndex&&(n.validatorIndex=e.validatorIndex),void 0!==e.signature&&(n.signature=N(void 0!==e.signature?e.signature:new Uint8Array)),n},fromPartial(e){var n,r,i,a,s;const d=Object.assign({},I);return d.type=null!==(n=e.type)&&void 0!==n?n:0,d.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,d.round=null!==(r=e.round)&&void 0!==r?r:0,d.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromPartial(e.blockId):void 0,d.timestamp=void 0!==e.timestamp&&null!==e.timestamp?c.Timestamp.fromPartial(e.timestamp):void 0,d.validatorAddress=null!==(i=e.validatorAddress)&&void 0!==i?i:new Uint8Array,d.validatorIndex=null!==(a=e.validatorIndex)&&void 0!==a?a:0,d.signature=null!==(s=e.signature)&&void 0!==s?s:new Uint8Array,d}};const C={height:o.default.ZERO,round:0};t.Commit={encode(e,n=i.default.Writer.create()){e.height.isZero()||n.uint32(8).int64(e.height),0!==e.round&&n.uint32(16).int32(e.round),void 0!==e.blockId&&t.BlockID.encode(e.blockId,n.uint32(26).fork()).ldelim();for(const r of e.signatures)t.CommitSig.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},C);for(a.signatures=[];r.pos>>3){case 1:a.height=r.int64();break;case 2:a.round=r.int32();break;case 3:a.blockId=t.BlockID.decode(r,r.uint32());break;case 4:a.signatures.push(t.CommitSig.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},C);return r.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,r.round=void 0!==e.round&&null!==e.round?Number(e.round):0,r.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromJSON(e.blockId):void 0,r.signatures=(null!==(n=e.signatures)&&void 0!==n?n:[]).map((e=>t.CommitSig.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(n.round=e.round),void 0!==e.blockId&&(n.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),e.signatures?n.signatures=e.signatures.map((e=>e?t.CommitSig.toJSON(e):void 0)):n.signatures=[],n},fromPartial(e){var n,r;const i=Object.assign({},C);return i.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,i.round=null!==(n=e.round)&&void 0!==n?n:0,i.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromPartial(e.blockId):void 0,i.signatures=(null===(r=e.signatures)||void 0===r?void 0:r.map((e=>t.CommitSig.fromPartial(e))))||[],i}};const E={blockIdFlag:0};t.CommitSig={encode:(e,t=i.default.Writer.create())=>(0!==e.blockIdFlag&&t.uint32(8).int32(e.blockIdFlag),0!==e.validatorAddress.length&&t.uint32(18).bytes(e.validatorAddress),void 0!==e.timestamp&&c.Timestamp.encode(e.timestamp,t.uint32(26).fork()).ldelim(),0!==e.signature.length&&t.uint32(34).bytes(e.signature),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(o.validatorAddress=new Uint8Array,o.signature=new Uint8Array;n.pos>>3){case 1:o.blockIdFlag=n.int32();break;case 2:o.validatorAddress=n.bytes();break;case 3:o.timestamp=c.Timestamp.decode(n,n.uint32());break;case 4:o.signature=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},E);return t.blockIdFlag=void 0!==e.blockIdFlag&&null!==e.blockIdFlag?A(e.blockIdFlag):0,t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?R(e.validatorAddress):new Uint8Array,t.timestamp=void 0!==e.timestamp&&null!==e.timestamp?M(e.timestamp):void 0,t.signature=void 0!==e.signature&&null!==e.signature?R(e.signature):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.blockIdFlag&&(t.blockIdFlag=f(e.blockIdFlag)),void 0!==e.validatorAddress&&(t.validatorAddress=N(void 0!==e.validatorAddress?e.validatorAddress:new Uint8Array)),void 0!==e.timestamp&&(t.timestamp=D(e.timestamp).toISOString()),void 0!==e.signature&&(t.signature=N(void 0!==e.signature?e.signature:new Uint8Array)),t},fromPartial(e){var t,n,r;const o=Object.assign({},E);return o.blockIdFlag=null!==(t=e.blockIdFlag)&&void 0!==t?t:0,o.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:new Uint8Array,o.timestamp=void 0!==e.timestamp&&null!==e.timestamp?c.Timestamp.fromPartial(e.timestamp):void 0,o.signature=null!==(r=e.signature)&&void 0!==r?r:new Uint8Array,o}};const w={type:0,height:o.default.ZERO,round:0,polRound:0};t.Proposal={encode:(e,n=i.default.Writer.create())=>(0!==e.type&&n.uint32(8).int32(e.type),e.height.isZero()||n.uint32(16).int64(e.height),0!==e.round&&n.uint32(24).int32(e.round),0!==e.polRound&&n.uint32(32).int32(e.polRound),void 0!==e.blockId&&t.BlockID.encode(e.blockId,n.uint32(42).fork()).ldelim(),void 0!==e.timestamp&&c.Timestamp.encode(e.timestamp,n.uint32(50).fork()).ldelim(),0!==e.signature.length&&n.uint32(58).bytes(e.signature),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},w);for(a.signature=new Uint8Array;r.pos>>3){case 1:a.type=r.int32();break;case 2:a.height=r.int64();break;case 3:a.round=r.int32();break;case 4:a.polRound=r.int32();break;case 5:a.blockId=t.BlockID.decode(r,r.uint32());break;case 6:a.timestamp=c.Timestamp.decode(r,r.uint32());break;case 7:a.signature=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},w);return n.type=void 0!==e.type&&null!==e.type?h(e.type):0,n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.round=void 0!==e.round&&null!==e.round?Number(e.round):0,n.polRound=void 0!==e.polRound&&null!==e.polRound?Number(e.polRound):0,n.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromJSON(e.blockId):void 0,n.timestamp=void 0!==e.timestamp&&null!==e.timestamp?M(e.timestamp):void 0,n.signature=void 0!==e.signature&&null!==e.signature?R(e.signature):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.type&&(n.type=g(e.type)),void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(n.round=e.round),void 0!==e.polRound&&(n.polRound=e.polRound),void 0!==e.blockId&&(n.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.timestamp&&(n.timestamp=D(e.timestamp).toISOString()),void 0!==e.signature&&(n.signature=N(void 0!==e.signature?e.signature:new Uint8Array)),n},fromPartial(e){var n,r,i,a;const s=Object.assign({},w);return s.type=null!==(n=e.type)&&void 0!==n?n:0,s.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,s.round=null!==(r=e.round)&&void 0!==r?r:0,s.polRound=null!==(i=e.polRound)&&void 0!==i?i:0,s.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromPartial(e.blockId):void 0,s.timestamp=void 0!==e.timestamp&&null!==e.timestamp?c.Timestamp.fromPartial(e.timestamp):void 0,s.signature=null!==(a=e.signature)&&void 0!==a?a:new Uint8Array,s}};const B={};t.SignedHeader={encode:(e,n=i.default.Writer.create())=>(void 0!==e.header&&t.Header.encode(e.header,n.uint32(10).fork()).ldelim(),void 0!==e.commit&&t.Commit.encode(e.commit,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},B);for(;r.pos>>3){case 1:a.header=t.Header.decode(r,r.uint32());break;case 2:a.commit=t.Commit.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},B);return n.header=void 0!==e.header&&null!==e.header?t.Header.fromJSON(e.header):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.Commit.fromJSON(e.commit):void 0,n},toJSON(e){const n={};return void 0!==e.header&&(n.header=e.header?t.Header.toJSON(e.header):void 0),void 0!==e.commit&&(n.commit=e.commit?t.Commit.toJSON(e.commit):void 0),n},fromPartial(e){const n=Object.assign({},B);return n.header=void 0!==e.header&&null!==e.header?t.Header.fromPartial(e.header):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.Commit.fromPartial(e.commit):void 0,n}};const _={};t.LightBlock={encode:(e,n=i.default.Writer.create())=>(void 0!==e.signedHeader&&t.SignedHeader.encode(e.signedHeader,n.uint32(10).fork()).ldelim(),void 0!==e.validatorSet&&d.ValidatorSet.encode(e.validatorSet,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},_);for(;r.pos>>3){case 1:a.signedHeader=t.SignedHeader.decode(r,r.uint32());break;case 2:a.validatorSet=d.ValidatorSet.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},_);return n.signedHeader=void 0!==e.signedHeader&&null!==e.signedHeader?t.SignedHeader.fromJSON(e.signedHeader):void 0,n.validatorSet=void 0!==e.validatorSet&&null!==e.validatorSet?d.ValidatorSet.fromJSON(e.validatorSet):void 0,n},toJSON(e){const n={};return void 0!==e.signedHeader&&(n.signedHeader=e.signedHeader?t.SignedHeader.toJSON(e.signedHeader):void 0),void 0!==e.validatorSet&&(n.validatorSet=e.validatorSet?d.ValidatorSet.toJSON(e.validatorSet):void 0),n},fromPartial(e){const n=Object.assign({},_);return n.signedHeader=void 0!==e.signedHeader&&null!==e.signedHeader?t.SignedHeader.fromPartial(e.signedHeader):void 0,n.validatorSet=void 0!==e.validatorSet&&null!==e.validatorSet?d.ValidatorSet.fromPartial(e.validatorSet):void 0,n}};const S={blockSize:o.default.ZERO,numTxs:o.default.ZERO};t.BlockMeta={encode:(e,n=i.default.Writer.create())=>(void 0!==e.blockId&&t.BlockID.encode(e.blockId,n.uint32(10).fork()).ldelim(),e.blockSize.isZero()||n.uint32(16).int64(e.blockSize),void 0!==e.header&&t.Header.encode(e.header,n.uint32(26).fork()).ldelim(),e.numTxs.isZero()||n.uint32(32).int64(e.numTxs),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},S);for(;r.pos>>3){case 1:a.blockId=t.BlockID.decode(r,r.uint32());break;case 2:a.blockSize=r.int64();break;case 3:a.header=t.Header.decode(r,r.uint32());break;case 4:a.numTxs=r.int64();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},S);return n.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromJSON(e.blockId):void 0,n.blockSize=void 0!==e.blockSize&&null!==e.blockSize?o.default.fromString(e.blockSize):o.default.ZERO,n.header=void 0!==e.header&&null!==e.header?t.Header.fromJSON(e.header):void 0,n.numTxs=void 0!==e.numTxs&&null!==e.numTxs?o.default.fromString(e.numTxs):o.default.ZERO,n},toJSON(e){const n={};return void 0!==e.blockId&&(n.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.blockSize&&(n.blockSize=(e.blockSize||o.default.ZERO).toString()),void 0!==e.header&&(n.header=e.header?t.Header.toJSON(e.header):void 0),void 0!==e.numTxs&&(n.numTxs=(e.numTxs||o.default.ZERO).toString()),n},fromPartial(e){const n=Object.assign({},S);return n.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromPartial(e.blockId):void 0,n.blockSize=void 0!==e.blockSize&&null!==e.blockSize?o.default.fromValue(e.blockSize):o.default.ZERO,n.header=void 0!==e.header&&null!==e.header?t.Header.fromPartial(e.header):void 0,n.numTxs=void 0!==e.numTxs&&null!==e.numTxs?o.default.fromValue(e.numTxs):o.default.ZERO,n}};const k={};t.TxProof={encode:(e,t=i.default.Writer.create())=>(0!==e.rootHash.length&&t.uint32(10).bytes(e.rootHash),0!==e.data.length&&t.uint32(18).bytes(e.data),void 0!==e.proof&&a.Proof.encode(e.proof,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},k);for(o.rootHash=new Uint8Array,o.data=new Uint8Array;n.pos>>3){case 1:o.rootHash=n.bytes();break;case 2:o.data=n.bytes();break;case 3:o.proof=a.Proof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return t.rootHash=void 0!==e.rootHash&&null!==e.rootHash?R(e.rootHash):new Uint8Array,t.data=void 0!==e.data&&null!==e.data?R(e.data):new Uint8Array,t.proof=void 0!==e.proof&&null!==e.proof?a.Proof.fromJSON(e.proof):void 0,t},toJSON(e){const t={};return void 0!==e.rootHash&&(t.rootHash=N(void 0!==e.rootHash?e.rootHash:new Uint8Array)),void 0!==e.data&&(t.data=N(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.proof&&(t.proof=e.proof?a.Proof.toJSON(e.proof):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},k);return r.rootHash=null!==(t=e.rootHash)&&void 0!==t?t:new Uint8Array,r.data=null!==(n=e.data)&&void 0!==n?n:new Uint8Array,r.proof=void 0!==e.proof&&null!==e.proof?a.Proof.fromPartial(e.proof):void 0,r}};var O=(()=>{if(void 0!==O)return O;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const Q=O.atob||(e=>O.Buffer.from(e,"base64").toString("binary"));function R(e){const t=Q(e),n=new Uint8Array(t.length);for(let e=0;eO.Buffer.from(e,"binary").toString("base64"));function N(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return P(t.join(""))}function x(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function D(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function M(e){return e instanceof Date?x(e):"string"==typeof e?x(new Date(e)):c.Timestamp.fromJSON(e)}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3444:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleValidator=t.Validator=t.ValidatorSet=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(984);t.protobufPackage="tendermint.types";const s={totalVotingPower:o.default.ZERO};t.ValidatorSet={encode(e,n=i.default.Writer.create()){for(const r of e.validators)t.Validator.encode(r,n.uint32(10).fork()).ldelim();return void 0!==e.proposer&&t.Validator.encode(e.proposer,n.uint32(18).fork()).ldelim(),e.totalVotingPower.isZero()||n.uint32(24).int64(e.totalVotingPower),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},s);for(a.validators=[];r.pos>>3){case 1:a.validators.push(t.Validator.decode(r,r.uint32()));break;case 2:a.proposer=t.Validator.decode(r,r.uint32());break;case 3:a.totalVotingPower=r.int64();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},s);return r.validators=(null!==(n=e.validators)&&void 0!==n?n:[]).map((e=>t.Validator.fromJSON(e))),r.proposer=void 0!==e.proposer&&null!==e.proposer?t.Validator.fromJSON(e.proposer):void 0,r.totalVotingPower=void 0!==e.totalVotingPower&&null!==e.totalVotingPower?o.default.fromString(e.totalVotingPower):o.default.ZERO,r},toJSON(e){const n={};return e.validators?n.validators=e.validators.map((e=>e?t.Validator.toJSON(e):void 0)):n.validators=[],void 0!==e.proposer&&(n.proposer=e.proposer?t.Validator.toJSON(e.proposer):void 0),void 0!==e.totalVotingPower&&(n.totalVotingPower=(e.totalVotingPower||o.default.ZERO).toString()),n},fromPartial(e){var n;const r=Object.assign({},s);return r.validators=(null===(n=e.validators)||void 0===n?void 0:n.map((e=>t.Validator.fromPartial(e))))||[],r.proposer=void 0!==e.proposer&&null!==e.proposer?t.Validator.fromPartial(e.proposer):void 0,r.totalVotingPower=void 0!==e.totalVotingPower&&null!==e.totalVotingPower?o.default.fromValue(e.totalVotingPower):o.default.ZERO,r}};const c={votingPower:o.default.ZERO,proposerPriority:o.default.ZERO};t.Validator={encode:(e,t=i.default.Writer.create())=>(0!==e.address.length&&t.uint32(10).bytes(e.address),void 0!==e.pubKey&&a.PublicKey.encode(e.pubKey,t.uint32(18).fork()).ldelim(),e.votingPower.isZero()||t.uint32(24).int64(e.votingPower),e.proposerPriority.isZero()||t.uint32(32).int64(e.proposerPriority),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.address=new Uint8Array;n.pos>>3){case 1:o.address=n.bytes();break;case 2:o.pubKey=a.PublicKey.decode(n,n.uint32());break;case 3:o.votingPower=n.int64();break;case 4:o.proposerPriority=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.address=void 0!==e.address&&null!==e.address?function(e){const t=l(e),n=new Uint8Array(t.length);for(let e=0;e(void 0!==e.pubKey&&a.PublicKey.encode(e.pubKey,t.uint32(10).fork()).ldelim(),e.votingPower.isZero()||t.uint32(16).int64(e.votingPower),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.pubKey=a.PublicKey.decode(n,n.uint32());break;case 2:o.votingPower=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?a.PublicKey.fromJSON(e.pubKey):void 0,t.votingPower=void 0!==e.votingPower&&null!==e.votingPower?o.default.fromString(e.votingPower):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.pubKey&&(t.pubKey=e.pubKey?a.PublicKey.toJSON(e.pubKey):void 0),void 0!==e.votingPower&&(t.votingPower=(e.votingPower||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?a.PublicKey.fromPartial(e.pubKey):void 0,t.votingPower=void 0!==e.votingPower&&null!==e.votingPower?o.default.fromValue(e.votingPower):o.default.ZERO,t}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw"Unable to locate global object"})();const l=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary")),A=u.btoa||(e=>u.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1083:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Consensus=t.App=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="tendermint.version";const a={protocol:o.default.UZERO,software:""};t.App={encode:(e,t=i.default.Writer.create())=>(e.protocol.isZero()||t.uint32(8).uint64(e.protocol),""!==e.software&&t.uint32(18).string(e.software),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.protocol=n.uint64();break;case 2:o.software=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.protocol=void 0!==e.protocol&&null!==e.protocol?o.default.fromString(e.protocol):o.default.UZERO,t.software=void 0!==e.software&&null!==e.software?String(e.software):"",t},toJSON(e){const t={};return void 0!==e.protocol&&(t.protocol=(e.protocol||o.default.UZERO).toString()),void 0!==e.software&&(t.software=e.software),t},fromPartial(e){var t;const n=Object.assign({},a);return n.protocol=void 0!==e.protocol&&null!==e.protocol?o.default.fromValue(e.protocol):o.default.UZERO,n.software=null!==(t=e.software)&&void 0!==t?t:"",n}};const s={block:o.default.UZERO,app:o.default.UZERO};t.Consensus={encode:(e,t=i.default.Writer.create())=>(e.block.isZero()||t.uint32(8).uint64(e.block),e.app.isZero()||t.uint32(16).uint64(e.app),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.block=n.uint64();break;case 2:o.app=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.block=void 0!==e.block&&null!==e.block?o.default.fromString(e.block):o.default.UZERO,t.app=void 0!==e.app&&null!==e.app?o.default.fromString(e.app):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.block&&(t.block=(e.block||o.default.UZERO).toString()),void 0!==e.app&&(t.app=(e.app||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},s);return t.block=void 0!==e.block&&null!==e.block?o.default.fromValue(e.block):o.default.UZERO,t.app=void 0!==e.app&&null!==e.app?o.default.fromValue(e.app):o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4289:(e,t,n)=>{"use strict";var r=n(2215),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,c=s&&function(){var e={};try{for(var t in s(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),d=function(e,t,n,r){var o;(!(t in e)||"function"==typeof(o=r)&&"[object Function]"===i.call(o)&&r())&&(c?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},u=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s{"use strict";var r=t;r.version=n(8597).i8,r.utils=n(953),r.rand=n(9931),r.curve=n(8254),r.curves=n(5427),r.ec=n(7954),r.eddsa=n(5980)},4918:(e,t,n)=>{"use strict";var r=n(3785),o=n(953),i=o.getNAF,a=o.getJSF,s=o.assert;function c(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(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 n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function d(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){s(e.precomputed);var n=e._getDoubles(),r=i(t,1,this._bitLength),o=(1<=a;u--)c=(c<<1)+r[u];d.push(c)}for(var l=this.jpoint(null,null,null),A=this.jpoint(null,null,null),f=o;f>0;f--){for(a=0;a=0;d--){for(var u=0;d>=0&&0===a[d];d--)u++;if(d>=0&&u++,c=c.dblp(u),d<0)break;var l=a[d];s(0!==l),c="affine"===e.type?l>0?c.mixedAdd(o[l-1>>1]):c.mixedAdd(o[-l-1>>1].neg()):l>0?c.add(o[l-1>>1]):c.add(o[-l-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,r,o){var s,c,d,u=this._wnafT1,l=this._wnafT2,A=this._wnafT3,f=0;for(s=0;s=1;s-=2){var g=s-1,p=s;if(1===u[g]&&1===u[p]){var m=[t[g],null,null,t[p]];0===t[g].y.cmp(t[p].y)?(m[1]=t[g].add(t[p]),m[2]=t[g].toJ().mixedAdd(t[p].neg())):0===t[g].y.cmp(t[p].y.redNeg())?(m[1]=t[g].toJ().mixedAdd(t[p]),m[2]=t[g].add(t[p].neg())):(m[1]=t[g].toJ().mixedAdd(t[p]),m[2]=t[g].toJ().mixedAdd(t[p].neg()));var v=[-3,-1,-5,-7,0,7,5,1,3],y=a(n[g],n[p]);for(f=Math.max(y[0].length,f),A[g]=new Array(f),A[p]=new Array(f),c=0;c=0;s--){for(var w=0;s>=0;){var B=!0;for(c=0;c=0&&w++,C=C.dblp(w),s<0)break;for(c=0;c0?d=l[c][_-1>>1]:_<0&&(d=l[c][-_-1>>1].neg()),C="affine"===d.type?C.mixedAdd(d):C.add(d))}}for(s=0;s=Math.ceil((e.bitLength()+1)/t.step)},d.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,o=0;o{"use strict";var r=n(953),o=n(3785),i=n(5717),a=n(4918),s=r.assert;function c(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 o(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new o(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new o(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 d(e,t,n,r,i){a.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(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 o(t,16),this.y=new o(n,16),this.z=r?new o(r,16):this.curve.one,this.t=i&&new o(i,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()))))}i(c,a),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},c.prototype.pointFromX=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),i=this.one.redSub(this.c2.redMul(this.d).redMul(n)),a=r.redMul(i.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var c=s.fromRed().isOdd();return(t&&!c||!t&&c)&&(s=s.redNeg()),this.point(e,s)},c.prototype.pointFromY=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),i=n.redMul(this.d).redMul(this.c2).redSub(this.a),a=r.redMul(i.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)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(o)},i(d,a.BasePoint),c.prototype.pointFromJSON=function(e){return d.fromJSON(this,e)},c.prototype.point=function(e,t,n,r){return new d(this,e,t,n,r)},d.fromJSON=function(e,t){return new d(e,t[0],t[1],t[2])},d.prototype.inspect=function(){return this.isInfinity()?"":""},d.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},d.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=r.redAdd(t),a=i.redSub(n),s=r.redSub(t),c=o.redMul(a),d=i.redMul(s),u=o.redMul(s),l=a.redMul(i);return this.curve.point(c,d,l,u)},d.prototype._projDbl=function(){var e,t,n,r,o,i,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var d=(r=this.curve._mulA(s)).redAdd(c);this.zOne?(e=a.redSub(s).redSub(c).redMul(d.redSub(this.curve.two)),t=d.redMul(r.redSub(c)),n=d.redSqr().redSub(d).redSub(d)):(o=this.z.redSqr(),i=d.redSub(o).redISub(o),e=a.redSub(s).redISub(c).redMul(i),t=d.redMul(r.redSub(c)),n=d.redMul(i))}else r=s.redAdd(c),o=this.curve._mulC(this.z).redSqr(),i=r.redSub(o).redSub(o),e=this.curve._mulC(a.redISub(r)).redMul(i),t=this.curve._mulC(r).redMul(s.redISub(c)),n=r.redMul(i);return this.curve.point(e,t,n)},d.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},d.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=n.redSub(t),a=o.redSub(r),s=o.redAdd(r),c=n.redAdd(t),d=i.redMul(a),u=s.redMul(c),l=i.redMul(c),A=a.redMul(s);return this.curve.point(d,u,A,l)},d.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),o=r.redSqr(),i=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(i).redMul(a),c=o.redSub(s),d=o.redAdd(s),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(a),l=r.redMul(c).redMul(u);return this.curve.twisted?(t=r.redMul(d).redMul(a.redSub(this.curve._mulA(i))),n=c.redMul(d)):(t=r.redMul(d).redMul(a.redSub(i)),n=this.curve._mulC(c).redMul(d)),this.curve.point(l,t,n)},d.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},d.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},d.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},d.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},d.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},d.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},d.prototype.getX=function(){return this.normalize(),this.x.fromRed()},d.prototype.getY=function(){return this.normalize(),this.y.fromRed()},d.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},d.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},d.prototype.toP=d.prototype.normalize,d.prototype.mixedAdd=d.prototype.add},8254:(e,t,n)=>{"use strict";var r=t;r.base=n(4918),r.short=n(6673),r.mont=n(2881),r.edwards=n(1138)},2881:(e,t,n)=>{"use strict";var r=n(3785),o=n(5717),i=n(4918),a=n(953);function s(e){i.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){i.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}o(s,i),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},o(c,i.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new c(this,e,t)},s.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),o=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,o)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(n),a=o.redMul(r),s=t.z.redMul(i.redAdd(a).redSqr()),c=t.x.redMul(i.redISub(a).redSqr());return this.curve.point(s,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},6673:(e,t,n)=>{"use strict";var r=n(953),o=n(3785),i=n(5717),a=n(4918),s=r.assert;function c(e){a.call(this,"short",e),this.a=new o(e.a,16).toRed(this.red),this.b=new o(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 d(e,t,n,r){a.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new o(t,16),this.y=new o(n,16),r&&(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 u(e,t,n,r){a.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new o(0)):(this.x=new o(t,16),this.y=new o(n,16),this.z=new o(r,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}i(c,a),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new o(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new o(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:(n=i[1],s(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new o(e.a,16),b:new o(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:o.mont(e),n=new o(2).toRed(t).redInvm(),r=n.redNeg(),i=new o(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,r,i,a,s,c,d,u,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),A=e,f=this.n.clone(),h=new o(1),g=new o(0),p=new o(0),m=new o(1),v=0;0!==A.cmpn(0);){var y=f.div(A);d=f.sub(y.mul(A)),u=p.sub(y.mul(h));var b=m.sub(y.mul(g));if(!r&&d.cmp(l)<0)t=c.neg(),n=h,r=d.neg(),i=u;else if(r&&2==++v)break;c=d,f=A,A=d,p=h,h=u,m=g,g=b}a=d.neg(),s=u;var I=r.sqr().add(i.sqr());return a.sqr().add(s.sqr()).cmp(I)>=0&&(a=t,s=n),r.negative&&(r=r.neg(),i=i.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:r,b:i},{a,b:s}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],o=r.b.mul(e).divRound(this.n),i=n.b.neg().mul(e).divRound(this.n),a=o.mul(n.a),s=i.mul(r.a),c=o.mul(n.b),d=i.mul(r.b);return{k1:e.sub(a).sub(s),k2:c.add(d).neg()}},c.prototype.pointFromX=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(o).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},d.prototype.isInfinity=function(){return this.inf},d.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 n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},d.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,n=this.x.redSqr(),r=e.redInvm(),o=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},d.prototype.getX=function(){return this.x.fromRed()},d.prototype.getY=function(){return this.y.fromRed()},d.prototype.mul=function(e){return e=new o(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)},d.prototype.mulAdd=function(e,t,n){var r=[this,t],o=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,o):this.curve._wnafMulAdd(1,r,o,2)},d.prototype.jmulAdd=function(e,t,n){var r=[this,t],o=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,o,!0):this.curve._wnafMulAdd(1,r,o,2,!0)},d.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))},d.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},d.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},i(u,a.BasePoint),c.prototype.jpoint=function(e,t,n){return new u(this,e,t,n)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),o=e.x.redMul(n),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(n.redMul(this.z)),s=r.redSub(o),c=i.redSub(a);if(0===s.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var d=s.redSqr(),u=d.redMul(s),l=r.redMul(d),A=c.redSqr().redIAdd(u).redISub(l).redISub(l),f=c.redMul(l.redISub(A)).redISub(i.redMul(u)),h=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(A,f,h)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=n.redSub(r),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),d=c.redMul(a),u=n.redMul(c),l=s.redSqr().redIAdd(d).redISub(u).redISub(u),A=s.redMul(u.redISub(l)).redISub(o.redMul(d)),f=this.z.redMul(a);return this.curve.jpoint(l,A,f)},u.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 n=this;for(t=0;t=0)return!1;if(n.redIAdd(o),0===this.x.cmp(n))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},5427:(e,t,n)=>{"use strict";var r,o=t,i=n(3715),a=n(8254),s=n(953).assert;function c(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 d(e,t){Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(o,e,{configurable:!0,enumerable:!0,value:n}),n}})}o.PresetCurve=c,d("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:i.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),d("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:i.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),d("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:i.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),d("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:i.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"]}),d("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:i.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"]}),d("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:i.sha256,gRed:!1,g:["9"]}),d("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:i.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(1037)}catch(e){r=void 0}d("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:i.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},7954:(e,t,n)=>{"use strict";var r=n(3785),o=n(2156),i=n(953),a=n(5427),s=n(9931),c=i.assert,d=n(1251),u=n(611);function l(e){if(!(this instanceof l))return new l(e);"string"==typeof e&&(c(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}e.exports=l,l.prototype.keyPair=function(e){return new d(this,e)},l.prototype.keyFromPrivate=function(e,t){return d.fromPrivate(this,e,t)},l.prototype.keyFromPublic=function(e,t){return d.fromPublic(this,e,t)},l.prototype.genKeyPair=function(e){e||(e={});for(var t=new o({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||s(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),i=this.n.sub(new r(2));;){var a=new r(t.generate(n));if(!(a.cmp(i)>0))return a.iaddn(1),this.keyFromPrivate(a)}},l.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},l.prototype.sign=function(e,t,n,i){"object"==typeof n&&(i=n,n=null),i||(i={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var a=this.n.byteLength(),s=t.getPrivate().toArray("be",a),c=e.toArray("be",a),d=new o({hash:this.hash,entropy:s,nonce:c,pers:i.pers,persEnc:i.persEnc||"utf8"}),l=this.n.sub(new r(1)),A=0;;A++){var f=i.k?i.k(A):new r(d.generate(this.n.byteLength()));if(!((f=this._truncateToN(f,!0)).cmpn(1)<=0||f.cmp(l)>=0)){var h=this.g.mul(f);if(!h.isInfinity()){var g=h.getX(),p=g.umod(this.n);if(0!==p.cmpn(0)){var m=f.invm(this.n).mul(p.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(h.getY().isOdd()?1:0)|(0!==g.cmp(p)?2:0);return i.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new u({r:p,s:m,recoveryParam:v})}}}}}},l.prototype.verify=function(e,t,n,o){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,o);var i=(t=new u(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,c=a.invm(this.n),d=c.mul(e).umod(this.n),l=c.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(d,n.getPublic(),l)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(d,n.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},l.prototype.recoverPubKey=function(e,t,n,o){c((3&n)===n,"The recovery param is more than two bits"),t=new u(t,o);var i=this.n,a=new r(e),s=t.r,d=t.s,l=1&n,A=n>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&A)throw new Error("Unable to find sencond key candinate");s=A?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var f=t.r.invm(i),h=i.sub(a).mul(f).umod(i),g=d.mul(f).umod(i);return this.g.mulAdd(h,s,g)},l.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new u(t,r)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(e){continue}if(i.eq(n))return o}throw new Error("Unable to find valid recovery factor")}},1251:(e,t,n)=>{"use strict";var r=n(3785),o=n(953).assert;function i(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=i,i.fromPublic=function(e,t,n){return t instanceof i?t:new i(e,{pub:t,pubEnc:n})},i.fromPrivate=function(e,t,n){return t instanceof i?t:new i(e,{priv:t,privEnc:n})},i.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},i.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},i.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},i.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},i.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?o(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||o(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},i.prototype.derive=function(e){return e.validate()||o(e.validate(),"public point not validated"),e.mul(this.priv).getX()},i.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},i.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},i.prototype.inspect=function(){return""}},611:(e,t,n)=>{"use strict";var r=n(3785),o=n(953),i=o.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(i(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function d(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=a,a.prototype._importDER=function(e,t){e=o.toArray(e,t);var n=new s;if(48!==e[n.place++])return!1;var i=c(e,n);if(!1===i)return!1;if(i+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var a=c(e,n);if(!1===a)return!1;var d=e.slice(n.place,a+n.place);if(n.place+=a,2!==e[n.place++])return!1;var u=c(e,n);if(!1===u)return!1;if(e.length!==u+n.place)return!1;var l=e.slice(n.place,u+n.place);if(0===d[0]){if(!(128&d[1]))return!1;d=d.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new r(d),this.s=new r(l),this.recoveryParam=null,!0},a.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=d(t),n=d(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];u(r,t.length),(r=r.concat(t)).push(2),u(r,n.length);var i=r.concat(n),a=[48];return u(a,i.length),a=a.concat(i),o.encode(a,e)}},5980:(e,t,n)=>{"use strict";var r=n(3715),o=n(5427),i=n(953),a=i.assert,s=i.parseBytes,c=n(9087),d=n(3622);function u(e){if(a("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=o[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=r.sha512}e.exports=u,u.prototype.sign=function(e,t){e=s(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),o=this.g.mul(r),i=this.encodePoint(o),a=this.hashInt(i,n.pubBytes(),e).mul(n.priv()),c=r.add(a).umod(this.curve.n);return this.makeSignature({R:o,S:c,Rencoded:i})},u.prototype.verify=function(e,t,n){e=s(e),t=this.makeSignature(t);var r=this.keyFromPublic(n),o=this.hashInt(t.Rencoded(),r.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(r.pub().mul(o)).eq(i)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var r=n(953),o=r.assert,i=r.parseBytes,a=r.cachedProperty;function s(e,t){this.eddsa=e,this._secret=i(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=i(t.pub)}s.fromPublic=function(e,t){return t instanceof s?t:new s(e,{pub:t})},s.fromSecret=function(e,t){return t instanceof s?t:new s(e,{secret:t})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(e){return o(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},s.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},s.prototype.getSecret=function(e){return o(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},s.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=s},3622:(e,t,n)=>{"use strict";var r=n(3785),o=n(953),i=o.assert,a=o.cachedProperty,s=o.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=s(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),i(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}a(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),a(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),a(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),a(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return o.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},1037:e=>{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"]]}}},953:(e,t,n)=>{"use strict";var r=t,o=n(3785),i=n(9746),a=n(4504);r.assert=i,r.toArray=a.toArray,r.zero2=a.zero2,r.toHex=a.toHex,r.encode=a.encode,r.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var o=1<(o>>1)-1?(o>>1)-c:c,i.isubn(s)):s=0,r[a]=s,i.iushrn(1)}return r},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,c=e.andln(3)+o&3,d=t.andln(3)+i&3;3===c&&(c=-1),3===d&&(d=-1),a=0==(1&c)?0:3!=(r=e.andln(7)+o&7)&&5!==r||2!==d?c:-c,n[0].push(a),s=0==(1&d)?0:3!=(r=t.andln(7)+i&7)&&5!==r||2!==c?d:-d,n[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new o(e,"hex","le")}},3785:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(5568).Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function c(e,t,n){var r=s(e,n);return n-1>=t&&(r|=s(e,n-1)<<4),r}function d(e,t,n,r){for(var o=0,i=Math.min(e.length,n),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)o=c(e,t,r)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,o=1;o<=67108863;o*=t)r++;r--,o=o/t|0;for(var i=e.length-n,a=i%r,s=Math.min(i,i-a)+n,c=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var u=["","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"],l=[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],A=[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 f(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;n.words[0]=s;for(var d=1;d>>26,l=67108863&c,A=Math.min(d,t.length-1),f=Math.max(0,d-e.length+1);f<=A;f++){var h=d-f|0;u+=(a=(o=0|e.words[h])*(i=0|t.words[f])+l)/67108864|0,l=67108863&a}n.words[d]=0|l,c=0|u}return 0!==c?n.words[d]=0|c:n.length--,n.strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?u[6-c.length]+c+n:c+n,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var d=l[e],f=A[e];n="";var h=this.clone();for(h.negative=0;!h.isZero();){var g=h.modn(f).toString(e);n=(h=h.idivn(f)).isZero()?g+n:u[d-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return r(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,d=new e(i),u=this.clone();if(c){for(s=0;!u.isZero();s++)a=u.andln(255),u.iushrn(8),d[s]=a;for(;s=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=n.length,0!==o)this.words[this.length]=o,this.length++;else if(n!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.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 n,r,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,f=0|a[1],h=8191&f,g=f>>>13,p=0|a[2],m=8191&p,v=p>>>13,y=0|a[3],b=8191&y,I=y>>>13,C=0|a[4],E=8191&C,w=C>>>13,B=0|a[5],_=8191&B,S=B>>>13,k=0|a[6],O=8191&k,Q=k>>>13,R=0|a[7],P=8191&R,N=R>>>13,x=0|a[8],D=8191&x,M=x>>>13,T=0|a[9],U=8191&T,H=T>>>13,j=0|s[0],J=8191&j,F=j>>>13,G=0|s[1],L=8191&G,q=G>>>13,Y=0|s[2],V=8191&Y,W=Y>>>13,K=0|s[3],Z=8191&K,z=K>>>13,X=0|s[4],$=8191&X,ee=X>>>13,te=0|s[5],ne=8191&te,re=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,de=se>>>13,ue=0|s[8],le=8191&ue,Ae=ue>>>13,fe=0|s[9],he=8191&fe,ge=fe>>>13;n.negative=e.negative^t.negative,n.length=19;var pe=(d+(r=Math.imul(l,J))|0)+((8191&(o=(o=Math.imul(l,F))+Math.imul(A,J)|0))<<13)|0;d=((i=Math.imul(A,F))+(o>>>13)|0)+(pe>>>26)|0,pe&=67108863,r=Math.imul(h,J),o=(o=Math.imul(h,F))+Math.imul(g,J)|0,i=Math.imul(g,F);var me=(d+(r=r+Math.imul(l,L)|0)|0)+((8191&(o=(o=o+Math.imul(l,q)|0)+Math.imul(A,L)|0))<<13)|0;d=((i=i+Math.imul(A,q)|0)+(o>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(m,J),o=(o=Math.imul(m,F))+Math.imul(v,J)|0,i=Math.imul(v,F),r=r+Math.imul(h,L)|0,o=(o=o+Math.imul(h,q)|0)+Math.imul(g,L)|0,i=i+Math.imul(g,q)|0;var ve=(d+(r=r+Math.imul(l,V)|0)|0)+((8191&(o=(o=o+Math.imul(l,W)|0)+Math.imul(A,V)|0))<<13)|0;d=((i=i+Math.imul(A,W)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(b,J),o=(o=Math.imul(b,F))+Math.imul(I,J)|0,i=Math.imul(I,F),r=r+Math.imul(m,L)|0,o=(o=o+Math.imul(m,q)|0)+Math.imul(v,L)|0,i=i+Math.imul(v,q)|0,r=r+Math.imul(h,V)|0,o=(o=o+Math.imul(h,W)|0)+Math.imul(g,V)|0,i=i+Math.imul(g,W)|0;var ye=(d+(r=r+Math.imul(l,Z)|0)|0)+((8191&(o=(o=o+Math.imul(l,z)|0)+Math.imul(A,Z)|0))<<13)|0;d=((i=i+Math.imul(A,z)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(E,J),o=(o=Math.imul(E,F))+Math.imul(w,J)|0,i=Math.imul(w,F),r=r+Math.imul(b,L)|0,o=(o=o+Math.imul(b,q)|0)+Math.imul(I,L)|0,i=i+Math.imul(I,q)|0,r=r+Math.imul(m,V)|0,o=(o=o+Math.imul(m,W)|0)+Math.imul(v,V)|0,i=i+Math.imul(v,W)|0,r=r+Math.imul(h,Z)|0,o=(o=o+Math.imul(h,z)|0)+Math.imul(g,Z)|0,i=i+Math.imul(g,z)|0;var be=(d+(r=r+Math.imul(l,$)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(A,$)|0))<<13)|0;d=((i=i+Math.imul(A,ee)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(_,J),o=(o=Math.imul(_,F))+Math.imul(S,J)|0,i=Math.imul(S,F),r=r+Math.imul(E,L)|0,o=(o=o+Math.imul(E,q)|0)+Math.imul(w,L)|0,i=i+Math.imul(w,q)|0,r=r+Math.imul(b,V)|0,o=(o=o+Math.imul(b,W)|0)+Math.imul(I,V)|0,i=i+Math.imul(I,W)|0,r=r+Math.imul(m,Z)|0,o=(o=o+Math.imul(m,z)|0)+Math.imul(v,Z)|0,i=i+Math.imul(v,z)|0,r=r+Math.imul(h,$)|0,o=(o=o+Math.imul(h,ee)|0)+Math.imul(g,$)|0,i=i+Math.imul(g,ee)|0;var Ie=(d+(r=r+Math.imul(l,ne)|0)|0)+((8191&(o=(o=o+Math.imul(l,re)|0)+Math.imul(A,ne)|0))<<13)|0;d=((i=i+Math.imul(A,re)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(O,J),o=(o=Math.imul(O,F))+Math.imul(Q,J)|0,i=Math.imul(Q,F),r=r+Math.imul(_,L)|0,o=(o=o+Math.imul(_,q)|0)+Math.imul(S,L)|0,i=i+Math.imul(S,q)|0,r=r+Math.imul(E,V)|0,o=(o=o+Math.imul(E,W)|0)+Math.imul(w,V)|0,i=i+Math.imul(w,W)|0,r=r+Math.imul(b,Z)|0,o=(o=o+Math.imul(b,z)|0)+Math.imul(I,Z)|0,i=i+Math.imul(I,z)|0,r=r+Math.imul(m,$)|0,o=(o=o+Math.imul(m,ee)|0)+Math.imul(v,$)|0,i=i+Math.imul(v,ee)|0,r=r+Math.imul(h,ne)|0,o=(o=o+Math.imul(h,re)|0)+Math.imul(g,ne)|0,i=i+Math.imul(g,re)|0;var Ce=(d+(r=r+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(A,ie)|0))<<13)|0;d=((i=i+Math.imul(A,ae)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(P,J),o=(o=Math.imul(P,F))+Math.imul(N,J)|0,i=Math.imul(N,F),r=r+Math.imul(O,L)|0,o=(o=o+Math.imul(O,q)|0)+Math.imul(Q,L)|0,i=i+Math.imul(Q,q)|0,r=r+Math.imul(_,V)|0,o=(o=o+Math.imul(_,W)|0)+Math.imul(S,V)|0,i=i+Math.imul(S,W)|0,r=r+Math.imul(E,Z)|0,o=(o=o+Math.imul(E,z)|0)+Math.imul(w,Z)|0,i=i+Math.imul(w,z)|0,r=r+Math.imul(b,$)|0,o=(o=o+Math.imul(b,ee)|0)+Math.imul(I,$)|0,i=i+Math.imul(I,ee)|0,r=r+Math.imul(m,ne)|0,o=(o=o+Math.imul(m,re)|0)+Math.imul(v,ne)|0,i=i+Math.imul(v,re)|0,r=r+Math.imul(h,ie)|0,o=(o=o+Math.imul(h,ae)|0)+Math.imul(g,ie)|0,i=i+Math.imul(g,ae)|0;var Ee=(d+(r=r+Math.imul(l,ce)|0)|0)+((8191&(o=(o=o+Math.imul(l,de)|0)+Math.imul(A,ce)|0))<<13)|0;d=((i=i+Math.imul(A,de)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(D,J),o=(o=Math.imul(D,F))+Math.imul(M,J)|0,i=Math.imul(M,F),r=r+Math.imul(P,L)|0,o=(o=o+Math.imul(P,q)|0)+Math.imul(N,L)|0,i=i+Math.imul(N,q)|0,r=r+Math.imul(O,V)|0,o=(o=o+Math.imul(O,W)|0)+Math.imul(Q,V)|0,i=i+Math.imul(Q,W)|0,r=r+Math.imul(_,Z)|0,o=(o=o+Math.imul(_,z)|0)+Math.imul(S,Z)|0,i=i+Math.imul(S,z)|0,r=r+Math.imul(E,$)|0,o=(o=o+Math.imul(E,ee)|0)+Math.imul(w,$)|0,i=i+Math.imul(w,ee)|0,r=r+Math.imul(b,ne)|0,o=(o=o+Math.imul(b,re)|0)+Math.imul(I,ne)|0,i=i+Math.imul(I,re)|0,r=r+Math.imul(m,ie)|0,o=(o=o+Math.imul(m,ae)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,ae)|0,r=r+Math.imul(h,ce)|0,o=(o=o+Math.imul(h,de)|0)+Math.imul(g,ce)|0,i=i+Math.imul(g,de)|0;var we=(d+(r=r+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,Ae)|0)+Math.imul(A,le)|0))<<13)|0;d=((i=i+Math.imul(A,Ae)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(U,J),o=(o=Math.imul(U,F))+Math.imul(H,J)|0,i=Math.imul(H,F),r=r+Math.imul(D,L)|0,o=(o=o+Math.imul(D,q)|0)+Math.imul(M,L)|0,i=i+Math.imul(M,q)|0,r=r+Math.imul(P,V)|0,o=(o=o+Math.imul(P,W)|0)+Math.imul(N,V)|0,i=i+Math.imul(N,W)|0,r=r+Math.imul(O,Z)|0,o=(o=o+Math.imul(O,z)|0)+Math.imul(Q,Z)|0,i=i+Math.imul(Q,z)|0,r=r+Math.imul(_,$)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(S,$)|0,i=i+Math.imul(S,ee)|0,r=r+Math.imul(E,ne)|0,o=(o=o+Math.imul(E,re)|0)+Math.imul(w,ne)|0,i=i+Math.imul(w,re)|0,r=r+Math.imul(b,ie)|0,o=(o=o+Math.imul(b,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,r=r+Math.imul(m,ce)|0,o=(o=o+Math.imul(m,de)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,de)|0,r=r+Math.imul(h,le)|0,o=(o=o+Math.imul(h,Ae)|0)+Math.imul(g,le)|0,i=i+Math.imul(g,Ae)|0;var Be=(d+(r=r+Math.imul(l,he)|0)|0)+((8191&(o=(o=o+Math.imul(l,ge)|0)+Math.imul(A,he)|0))<<13)|0;d=((i=i+Math.imul(A,ge)|0)+(o>>>13)|0)+(Be>>>26)|0,Be&=67108863,r=Math.imul(U,L),o=(o=Math.imul(U,q))+Math.imul(H,L)|0,i=Math.imul(H,q),r=r+Math.imul(D,V)|0,o=(o=o+Math.imul(D,W)|0)+Math.imul(M,V)|0,i=i+Math.imul(M,W)|0,r=r+Math.imul(P,Z)|0,o=(o=o+Math.imul(P,z)|0)+Math.imul(N,Z)|0,i=i+Math.imul(N,z)|0,r=r+Math.imul(O,$)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(Q,$)|0,i=i+Math.imul(Q,ee)|0,r=r+Math.imul(_,ne)|0,o=(o=o+Math.imul(_,re)|0)+Math.imul(S,ne)|0,i=i+Math.imul(S,re)|0,r=r+Math.imul(E,ie)|0,o=(o=o+Math.imul(E,ae)|0)+Math.imul(w,ie)|0,i=i+Math.imul(w,ae)|0,r=r+Math.imul(b,ce)|0,o=(o=o+Math.imul(b,de)|0)+Math.imul(I,ce)|0,i=i+Math.imul(I,de)|0,r=r+Math.imul(m,le)|0,o=(o=o+Math.imul(m,Ae)|0)+Math.imul(v,le)|0,i=i+Math.imul(v,Ae)|0;var _e=(d+(r=r+Math.imul(h,he)|0)|0)+((8191&(o=(o=o+Math.imul(h,ge)|0)+Math.imul(g,he)|0))<<13)|0;d=((i=i+Math.imul(g,ge)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(U,V),o=(o=Math.imul(U,W))+Math.imul(H,V)|0,i=Math.imul(H,W),r=r+Math.imul(D,Z)|0,o=(o=o+Math.imul(D,z)|0)+Math.imul(M,Z)|0,i=i+Math.imul(M,z)|0,r=r+Math.imul(P,$)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(N,$)|0,i=i+Math.imul(N,ee)|0,r=r+Math.imul(O,ne)|0,o=(o=o+Math.imul(O,re)|0)+Math.imul(Q,ne)|0,i=i+Math.imul(Q,re)|0,r=r+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,ae)|0)+Math.imul(S,ie)|0,i=i+Math.imul(S,ae)|0,r=r+Math.imul(E,ce)|0,o=(o=o+Math.imul(E,de)|0)+Math.imul(w,ce)|0,i=i+Math.imul(w,de)|0,r=r+Math.imul(b,le)|0,o=(o=o+Math.imul(b,Ae)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,Ae)|0;var Se=(d+(r=r+Math.imul(m,he)|0)|0)+((8191&(o=(o=o+Math.imul(m,ge)|0)+Math.imul(v,he)|0))<<13)|0;d=((i=i+Math.imul(v,ge)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(U,Z),o=(o=Math.imul(U,z))+Math.imul(H,Z)|0,i=Math.imul(H,z),r=r+Math.imul(D,$)|0,o=(o=o+Math.imul(D,ee)|0)+Math.imul(M,$)|0,i=i+Math.imul(M,ee)|0,r=r+Math.imul(P,ne)|0,o=(o=o+Math.imul(P,re)|0)+Math.imul(N,ne)|0,i=i+Math.imul(N,re)|0,r=r+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(Q,ie)|0,i=i+Math.imul(Q,ae)|0,r=r+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,de)|0)+Math.imul(S,ce)|0,i=i+Math.imul(S,de)|0,r=r+Math.imul(E,le)|0,o=(o=o+Math.imul(E,Ae)|0)+Math.imul(w,le)|0,i=i+Math.imul(w,Ae)|0;var ke=(d+(r=r+Math.imul(b,he)|0)|0)+((8191&(o=(o=o+Math.imul(b,ge)|0)+Math.imul(I,he)|0))<<13)|0;d=((i=i+Math.imul(I,ge)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(U,$),o=(o=Math.imul(U,ee))+Math.imul(H,$)|0,i=Math.imul(H,ee),r=r+Math.imul(D,ne)|0,o=(o=o+Math.imul(D,re)|0)+Math.imul(M,ne)|0,i=i+Math.imul(M,re)|0,r=r+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,r=r+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,de)|0)+Math.imul(Q,ce)|0,i=i+Math.imul(Q,de)|0,r=r+Math.imul(_,le)|0,o=(o=o+Math.imul(_,Ae)|0)+Math.imul(S,le)|0,i=i+Math.imul(S,Ae)|0;var Oe=(d+(r=r+Math.imul(E,he)|0)|0)+((8191&(o=(o=o+Math.imul(E,ge)|0)+Math.imul(w,he)|0))<<13)|0;d=((i=i+Math.imul(w,ge)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(U,ne),o=(o=Math.imul(U,re))+Math.imul(H,ne)|0,i=Math.imul(H,re),r=r+Math.imul(D,ie)|0,o=(o=o+Math.imul(D,ae)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,ae)|0,r=r+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,de)|0)+Math.imul(N,ce)|0,i=i+Math.imul(N,de)|0,r=r+Math.imul(O,le)|0,o=(o=o+Math.imul(O,Ae)|0)+Math.imul(Q,le)|0,i=i+Math.imul(Q,Ae)|0;var Qe=(d+(r=r+Math.imul(_,he)|0)|0)+((8191&(o=(o=o+Math.imul(_,ge)|0)+Math.imul(S,he)|0))<<13)|0;d=((i=i+Math.imul(S,ge)|0)+(o>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,r=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(H,ie)|0,i=Math.imul(H,ae),r=r+Math.imul(D,ce)|0,o=(o=o+Math.imul(D,de)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,de)|0,r=r+Math.imul(P,le)|0,o=(o=o+Math.imul(P,Ae)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,Ae)|0;var Re=(d+(r=r+Math.imul(O,he)|0)|0)+((8191&(o=(o=o+Math.imul(O,ge)|0)+Math.imul(Q,he)|0))<<13)|0;d=((i=i+Math.imul(Q,ge)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(U,ce),o=(o=Math.imul(U,de))+Math.imul(H,ce)|0,i=Math.imul(H,de),r=r+Math.imul(D,le)|0,o=(o=o+Math.imul(D,Ae)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,Ae)|0;var Pe=(d+(r=r+Math.imul(P,he)|0)|0)+((8191&(o=(o=o+Math.imul(P,ge)|0)+Math.imul(N,he)|0))<<13)|0;d=((i=i+Math.imul(N,ge)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(U,le),o=(o=Math.imul(U,Ae))+Math.imul(H,le)|0,i=Math.imul(H,Ae);var Ne=(d+(r=r+Math.imul(D,he)|0)|0)+((8191&(o=(o=o+Math.imul(D,ge)|0)+Math.imul(M,he)|0))<<13)|0;d=((i=i+Math.imul(M,ge)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863;var xe=(d+(r=Math.imul(U,he))|0)+((8191&(o=(o=Math.imul(U,ge))+Math.imul(H,he)|0))<<13)|0;return d=((i=Math.imul(H,ge))+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,c[0]=pe,c[1]=me,c[2]=ve,c[3]=ye,c[4]=be,c[5]=Ie,c[6]=Ce,c[7]=Ee,c[8]=we,c[9]=Be,c[10]=_e,c[11]=Se,c[12]=ke,c[13]=Oe,c[14]=Qe,c[15]=Re,c[16]=Pe,c[17]=Ne,c[18]=xe,0!==d&&(c[19]=d,n.length++),n};function g(e,t,n){return(new p).mulp(e,t,n)}function p(e,t){this.x=e,this.y=t}Math.imul||(h=f),i.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?h(this,e,t):r<63?f(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}n.words[i]=s,r=a,a=o}return 0!==r?n.words[i]=r:n.length--,n.strip()}(this,e,t):g(this,e,t),n},p.prototype.makeRBT=function(e){for(var t=new Array(e),n=i.prototype._countBits(e)-1,r=0;r>=1;return r},p.prototype.permute=function(e,t,n,r,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>o}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,d=0;d=0&&(0!==u||d>=o);d--){var l=0|this.words[d];this.words[d]=u<<26-i|l>>>i,u=l&s}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=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},i.prototype.isubn=function(e){if(r("number"==typeof e),r(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)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),o=e,a=0|o.words[o.length-1];0!=(n=26-this._countBits(a))&&(o=o.ushln(n),r.iushln(n),a=0|o.words[o.length-1]);var s,c=r.length-o.length;if("mod"!==t){(s=new i(null)).length=c+1,s.words=new Array(s.length);for(var d=0;d=0;l--){var A=67108864*(0|r.words[o.length+l])+(0|r.words[o.length+l-1]);for(A=Math.min(A/a|0,67108863),r._ishlnsubmul(o,A,l);0!==r.negative;)A--,r.negative=0,r._ishlnsubmul(o,1,l),r.isZero()||(r.negative^=1);s&&(s.words[l]=A)}return s&&s.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),o=e.andln(1),i=n.cmp(r);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},i.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),c=new i(1),d=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++d;for(var u=n.clone(),l=t.clone();!t.isZero();){for(var A=0,f=1;0==(t.words[0]&f)&&A<26;++A,f<<=1);if(A>0)for(t.iushrn(A);A-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(u),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var h=0,g=1;0==(n.words[0]&g)&&h<26;++h,g<<=1);if(h>0)for(n.iushrn(h);h-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(u),c.isub(l)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(s),a.isub(c)):(n.isub(t),s.isub(o),c.isub(a))}return{a:s,b:c,gcd:n.iushln(d)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var d=0,u=1;0==(t.words[0]&u)&&d<26;++d,u<<=1);if(d>0)for(t.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var l=0,A=1;0==(n.words[0]&A)&&l<26;++l,A<<=1);if(l>0)for(n.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var o=t.cmp(n);if(o<0){var i=t;t=n,n=i}else if(0===o||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;n--){var r=0|this.words[n],o=0|e.words[n];if(r!==o){ro&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new E(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function I(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function C(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function w(e){E.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(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 e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},o(y,v),y.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=o,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new b;else if("p192"===e)t=new I;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new C}return m[e]=t,t},E.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},E.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(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):e.umod(this.m)._forceRed(this)},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 n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},E.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},E.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},E.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},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(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);r(!o.isZero());var s=new i(1).toRed(this),c=s.redNeg(),d=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new i(2*u*u).toRed(this);0!==this.pow(u,d).cmp(c);)u.redIAdd(c);for(var l=this.pow(u,o),A=this.pow(e,o.addn(1).iushrn(1)),f=this.pow(e,o),h=a;0!==f.cmp(s);){for(var g=f,p=0;0!==g.cmp(s);p++)g=g.redSqr();r(p=0;r--){for(var d=t.words[r],u=c-1;u>=0;u--){var l=d>>u&1;o!==n[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===r&&0===u)&&(o=this.mul(o,n[a]),s=0,a=0)):s=0}c=26}return o},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},i.mont=function(e){return new w(e)},o(w,E),w.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},w.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},w.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=n.isub(r).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},w.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=n.isub(r).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},w.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},7187:e=>{"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise((function(n,r){function o(n){e.removeListener(t,i),r(n)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",o),n([].slice.call(arguments))}g(e,t,i,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&g(e,"error",t,{once:!0})}(e,o)}))},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function d(e,t,n,r){var o,i,a,d;if(s(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]),void 0===a)a=i[t]=n,++e._eventsCount;else if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=c(e))>0&&a.length>o&&!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,d=u,console&&console.warn&&console.warn(d)}return e}function u(){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 l(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=u.bind(r);return o.listener=n,r.wrapFn=o,o}function A(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)r(c,this,t);else{var d=c.length,u=h(c,d);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},i.prototype.listeners=function(e){return A(this,e,!0)},i.prototype.rawListeners=function(e){return A(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},i.prototype.listenerCount=f,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},1221:e=>{"use strict";"undefined"!=typeof self?e.exports=self:"undefined"!=typeof window?e.exports=window:e.exports=Function("return this")()},2503:(e,t,n)=>{"use strict";var r=n(4289),o=n(1221),i=n(2168),a=n(9471),s=i(),c=function(){return s};r(c,{getPolyfill:i,implementation:o,shim:a}),e.exports=c},2168:(e,t,n)=>{"use strict";var r=n(1221);e.exports=function(){return"object"==typeof n.g&&n.g&&n.g.Math===Math&&n.g.Array===Array?n.g:r}},9471:(e,t,n)=>{"use strict";var r=n(4289),o=n(2168);e.exports=function(){var e=o();if(r.supportsDescriptors){var t=Object.getOwnPropertyDescriptor(e,"globalThis");(!t||t.configurable&&(t.enumerable||t.writable||globalThis!==e))&&Object.defineProperty(e,"globalThis",{configurable:!0,enumerable:!1,value:e,writable:!1})}else"object"==typeof globalThis&&globalThis===e||(e.globalThis=e);return e}},3349:(e,t,n)=>{"use strict";var r=n(9509).Buffer,o=n(8473).Transform;function i(e){o.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(5717)(i,o),i.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},i.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},i.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer")}(e),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,o=0;this._blockOffset+e.length-o>=this._blockSize;){for(var i=this._blockOffset;i0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},i.prototype._update=function(){throw new Error("_update is not implemented")},i.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 n=0;n<4;++n)this._length[n]=0;return t},i.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=i},3715:(e,t,n)=>{var r=t;r.utils=n(6436),r.common=n(5772),r.sha=n(9041),r.ripemd=n(2949),r.hmac=n(2344),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},5772:(e,t,n)=>{"use strict";var r=n(6436),o=n(9746);function i(){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=i,i.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var o=0;o>>24&255,r[o++]=e>>>16&255,r[o++]=e>>>8&255,r[o++]=255&e}else for(r[o++]=255&e,r[o++]=e>>>8&255,r[o++]=e>>>16&255,r[o++]=e>>>24&255,r[o++]=0,r[o++]=0,r[o++]=0,r[o++]=0,i=8;i{"use strict";var r=n(6436),o=n(9746);function i(e,t,n){if(!(this instanceof i))return new i(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=i,i.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),o(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var r=n(6436),o=n(5772),i=r.rotl32,a=r.sum32,s=r.sum32_3,c=r.sum32_4,d=o.BlockHash;function u(){if(!(this instanceof u))return new u;d.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function A(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function f(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(u,d),t.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],o=this.h[2],d=this.h[3],u=this.h[4],v=n,y=r,b=o,I=d,C=u,E=0;E<80;E++){var w=a(i(c(n,l(E,r,o,d),e[h[E]+t],A(E)),p[E]),u);n=u,u=d,d=i(o,10),o=r,r=w,w=a(i(c(v,l(79-E,y,b,I),e[g[E]+t],f(E)),m[E]),C),v=C,C=I,I=i(b,10),b=y,y=w}w=s(this.h[1],o,I),this.h[1]=s(this.h[2],d,C),this.h[2]=s(this.h[3],u,v),this.h[3]=s(this.h[4],n,y),this.h[4]=s(this.h[0],r,b),this.h[0]=w},u.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var h=[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],g=[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],p=[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],m=[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]},9041:(e,t,n)=>{"use strict";t.sha1=n(4761),t.sha224=n(799),t.sha256=n(9344),t.sha384=n(772),t.sha512=n(5900)},4761:(e,t,n)=>{"use strict";var r=n(6436),o=n(5772),i=n(7038),a=r.rotl32,s=r.sum32,c=r.sum32_5,d=i.ft_1,u=o.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function A(){if(!(this instanceof A))return new A;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(A,u),e.exports=A,A.blockSize=512,A.outSize=160,A.hmacStrength=80,A.padLength=64,A.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436),o=n(9344);function i(){if(!(this instanceof i))return new i;o.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(i,o),e.exports=i,i.blockSize=512,i.outSize=224,i.hmacStrength=192,i.padLength=64,i.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},9344:(e,t,n)=>{"use strict";var r=n(6436),o=n(5772),i=n(7038),a=n(9746),s=r.sum32,c=r.sum32_4,d=r.sum32_5,u=i.ch32,l=i.maj32,A=i.s0_256,f=i.s1_256,h=i.g0_256,g=i.g1_256,p=o.BlockHash,m=[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;p.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=m,this.W=new Array(64)}r.inherits(v,p),e.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436),o=n(5900);function i(){if(!(this instanceof i))return new i;o.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(i,o),e.exports=i,i.blockSize=1024,i.outSize=384,i.hmacStrength=192,i.padLength=128,i.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},5900:(e,t,n)=>{"use strict";var r=n(6436),o=n(5772),i=n(9746),a=r.rotr64_hi,s=r.rotr64_lo,c=r.shr64_hi,d=r.shr64_lo,u=r.sum64,l=r.sum64_hi,A=r.sum64_lo,f=r.sum64_4_hi,h=r.sum64_4_lo,g=r.sum64_5_hi,p=r.sum64_5_lo,m=o.BlockHash,v=[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];function y(){if(!(this instanceof y))return new y;m.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=v,this.W=new Array(160)}function b(e,t,n,r,o){var i=e&n^~e&o;return i<0&&(i+=4294967296),i}function I(e,t,n,r,o,i){var a=t&r^~t&i;return a<0&&(a+=4294967296),a}function C(e,t,n,r,o){var i=e&n^e&o^n&o;return i<0&&(i+=4294967296),i}function E(e,t,n,r,o,i){var a=t&r^t&i^r&i;return a<0&&(a+=4294967296),a}function w(e,t){var n=a(e,t,28)^a(t,e,2)^a(t,e,7);return n<0&&(n+=4294967296),n}function B(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function _(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function S(e,t){var n=a(e,t,1)^a(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function k(e,t){var n=s(e,t,1)^s(e,t,8)^d(e,t,7);return n<0&&(n+=4294967296),n}function O(e,t){var n=s(e,t,19)^s(t,e,29)^d(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(y,m),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436).rotr32;function o(e,t,n){return e&t^~e&n}function i(e,t,n){return e&t^e&n^t&n}function a(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?o(t,n,r):1===e||3===e?a(t,n,r):2===e?i(t,n,r):void 0},t.ch32=o,t.maj32=i,t.p32=a,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},6436:(e,t,n)=>{"use strict";var r=n(9746),o=n(5717);function i(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 c(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=o,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),o=0;o>6|192,n[r++]=63&a|128):i(e,o)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++o)),n[r++]=a>>18|240,n[r++]=a>>12&63|128,n[r++]=a>>6&63|128,n[r++]=63&a|128):(n[r++]=a>>12|224,n[r++]=a>>6&63|128,n[r++]=63&a|128)}else for(o=0;o>>0}return a},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,o=0;r>>24,n[o+1]=i>>>16&255,n[o+2]=i>>>8&255,n[o+3]=255&i):(n[o+3]=i>>>24,n[o+2]=i>>>16&255,n[o+1]=i>>>8&255,n[o]=255&i)}return n},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,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,o){return e+t+n+r+o>>>0},t.sum64=function(e,t,n,r){var o=e[t],i=r+e[t+1]>>>0,a=(i>>0,e[t+1]=i},t.sum64_hi=function(e,t,n,r){return(t+r>>>0>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,o,i,a,s){var c=0,d=t;return c+=(d=d+r>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,r,o,i,a,s){return t+r+i+s>>>0},t.sum64_5_hi=function(e,t,n,r,o,i,a,s,c,d){var u=0,l=t;return u+=(l=l+r>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,r,o,i,a,s,c,d){return t+r+i+s+d>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},2156:(e,t,n)=>{"use strict";var r=n(3715),o=n(4504),i=n(9746);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=o.toArray(e.entropy,e.entropyEnc||"hex"),n=o.toArray(e.nonce,e.nonceEnc||"hex"),r=o.toArray(e.pers,e.persEnc||"hex");i(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=a,a.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},a.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=o.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length{t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,u=-7,l=n?o-1:0,A=n?-1:1,f=e[t+l];for(l+=A,i=f&(1<<-u)-1,f>>=-u,u+=s;u>0;i=256*i+e[t+l],l+=A,u-=8);for(a=i&(1<<-u)-1,i>>=-u,u+=r;u>0;a=256*a+e[t+l],l+=A,u-=8);if(0===i)i=1-d;else{if(i===c)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,r),i-=d}return(f?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,d=8*i-o-1,u=(1<>1,A=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:i-1,h=r?1:-1,g=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=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+l>=1?A/c:A*Math.pow(2,1-l))*c>=2&&(a++,c/=2),a+l>=u?(s=0,a=u):a+l>=1?(s=(t*c-1)*Math.pow(2,o),a+=l):(s=t*Math.pow(2,l-1)*Math.pow(2,o),a=0));o>=8;e[n+f]=255&s,f+=h,s/=256,o-=8);for(a=a<0;e[n+f]=255&a,f+=h,a/=256,d-=8);e[n+f-h]|=128*g}},5717:e=>{"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 n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},6792:(e,t,n)=>{var r=null;"undefined"!=typeof WebSocket?r=WebSocket:"undefined"!=typeof MozWebSocket?r=MozWebSocket:void 0!==n.g?r=n.g.WebSocket||n.g.MozWebSocket:"undefined"!=typeof window?r=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(r=self.WebSocket||self.MozWebSocket),e.exports=r},5793:(e,t,n)=>{"use strict";var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.errorCodeToString=d,t.processErrorResponse=u,t.getVersion=function(e){return l.apply(this,arguments)},t.ERROR_CODE=t.P1_VALUES=t.PAYLOAD_TYPE=t.INS=t.APP_KEY=t.CHUNK_SIZE=t.CLA=void 0;var o=r(n(7757)),i=r(n(8926)),a=r(n(8));t.CLA=85,t.CHUNK_SIZE=250,t.APP_KEY="CSM";var s={GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2,GET_ADDR_SECP256K1:4};t.INS=s,t.PAYLOAD_TYPE={INIT:0,ADD:1,LAST:2},t.P1_VALUES={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},t.ERROR_CODE={NoError:36864};var c={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",36864:"No errors",36865:"Device is busy",26626:"Error deriving keys",25600:"Execution Error",26368:"Wrong Length",27010:"Empty Buffer",27011:"Output buffer too small",27012:"Data is invalid",27013:"Conditions not satisfied",27014:"Transaction rejected",27264:"Bad key handle",27392:"Invalid P1/P2",27904:"Instruction not supported",28160:"App does not seem to be open",28416:"Unknown error",28417:"Sign/verify error"};function d(e){return e in c?c[e]:"Unknown Status Code: ".concat(e)}function u(e){if(e){if(t=e,!("object"!==(0,a.default)(t)||null===t||t instanceof Array||t instanceof Date)){if(Object.prototype.hasOwnProperty.call(e,"statusCode"))return{return_code:e.statusCode,error_message:d(e.statusCode)};if(Object.prototype.hasOwnProperty.call(e,"return_code")&&Object.prototype.hasOwnProperty.call(e,"error_message"))return e}return{return_code:65535,error_message:e.toString()}}var t;return{return_code:65535,error_message:e.toString()}}function l(){return(l=(0,i.default)(o.default.mark((function e(t){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.send(85,s.GET_VERSION,0,0).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],r=0;return e.length>=9&&(r=(e[5]<<24)+(e[6]<<16)+(e[7]<<8)+(e[8]<<0)),{return_code:n,error_message:d(n),test_mode:0!==e[0],major:e[1],minor:e[2],patch:e[3],device_locked:1===e[4],target_id:r.toString(16)}}),u));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},5496:(e,t,n)=>{"use strict";var r=n(8764).Buffer,o=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.serializePathv1=function(e){if(null==e||e.length<3)throw new Error("Invalid path.");if(e.length>10)throw new Error("Invalid path. Length should be <= 10");var t=r.alloc(1+4*e.length);t.writeUInt8(e.length,0);for(var n=0;n2&&(o=e.slice(0,e.length-2)),{signature:o,return_code:n,error_message:r}}),s.processErrorResponse));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e){if(65!==e.length)throw new Error("decompressed public key length should be 65 bytes");var t=e.slice(33,65),n=r.from([2+(1&t[t.length-1])]);return r.concat([n,e.slice(1,33)])}function u(){return(u=(0,a.default)(i.default.mark((function e(t,n){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.transport.send(s.CLA,s.INS.INS_PUBLIC_KEY_SECP256K1,0,0,n,[s.ERROR_CODE.NoError]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],o=r.from(e.slice(0,65));return{pk:o,compressed_pk:d(o),return_code:n,error_message:(0,s.errorCodeToString)(n)}}),s.processErrorResponse));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},2449:(e,t,n)=>{"use strict";var r=n(8764).Buffer,o=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.serializePathv2=function(e){if(!e||5!==e.length)throw new Error("Invalid path.");var t=r.alloc(20);return t.writeUInt32LE(2147483648+e[0],0),t.writeUInt32LE(2147483648+e[1],4),t.writeUInt32LE(2147483648+e[2],8),t.writeUInt32LE(e[3],12),t.writeUInt32LE(e[4],16),t},t.signSendChunkv2=function(e,t,n,r){return d.apply(this,arguments)},t.publicKeyv2=function(e,t){return u.apply(this,arguments)};var i=o(n(7757)),a=o(n(8926)),s=n(5496),c=n(5793);function d(){return(d=(0,a.default)(i.default.mark((function e(t,n,r,o){var a;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=c.PAYLOAD_TYPE.ADD,1===n&&(a=c.PAYLOAD_TYPE.INIT),n===r&&(a=c.PAYLOAD_TYPE.LAST),e.abrupt("return",(0,s.signSendChunkv1)(t,a,0,o));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function u(){return(u=(0,a.default)(i.default.mark((function e(t,n){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.transport.send(c.CLA,c.INS.GET_ADDR_SECP256K1,0,0,n,[c.ERROR_CODE.NoError]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1];return{pk:"OBSOLETE PROPERTY",compressed_pk:r.from(e.slice(0,33)),return_code:n,error_message:(0,c.errorCodeToString)(n)}}),c.processErrorResponse));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},9246:(e,t,n)=>{"use strict";var r=n(8764).Buffer,o=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(7757)),a=o(n(8926)),s=o(n(4575)),c=o(n(3913)),d=o(n(8010)),u=o(n(9785)),l=o(n(2882)),A=n(5496),f=n(2449),h=n(5793),g=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h.APP_KEY;if((0,s.default)(this,e),!t)throw new Error("Transport has not been defined");this.transport=t,t.decorateAppAPIMethods(this,["getVersion","sign","getAddressAndPubKey","appInfo","deviceInfo","getBech32FromPK"],n)}var t,n,o,g,p,m,v,y,b,I;return(0,c.default)(e,[{key:"serializePath",value:(I=(0,a.default)(i.default.mark((function e(t){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,h.getVersion)(this.transport);case 2:if(this.versionResponse=e.sent,this.versionResponse.return_code===h.ERROR_CODE.NoError){e.next=5;break}throw this.versionResponse;case 5:e.t0=this.versionResponse.major,e.next=1===e.t0?8:2===e.t0?9:10;break;case 8:return e.abrupt("return",(0,A.serializePathv1)(t));case 9:return e.abrupt("return",(0,f.serializePathv2)(t));case 10:return e.abrupt("return",{return_code:25600,error_message:"App Version is not supported"});case 11:case"end":return e.stop()}}),e,this)}))),function(e){return I.apply(this,arguments)})},{key:"signGetChunks",value:(b=(0,a.default)(i.default.mark((function e(t,n){var o,a,s,c,d;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.serializePath(t);case 2:for(o=e.sent,(a=[]).push(o),s=r.from(n),c=0;cs.length&&(d=s.length),a.push(s.slice(c,d));return e.abrupt("return",a);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return b.apply(this,arguments)})},{key:"getVersion",value:(y=(0,a.default)(i.default.mark((function e(){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,h.getVersion)(this.transport);case 3:return this.versionResponse=e.sent,e.abrupt("return",this.versionResponse);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",(0,h.processErrorResponse)(e.t0));case 10:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(){return y.apply(this,arguments)})},{key:"appInfo",value:(v=(0,a.default)(i.default.mark((function e(){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.transport.send(176,1,0,0).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],r={},o="err",i="err",a=0,s=0;if(1!==e[0])r.error_message="response format ID not recognized",r.return_code=36865;else{var c=e[1];o=e.slice(2,2+c).toString("ascii");var d=2+c,u=e[d];d+=1,i=e.slice(d,d+u).toString("ascii"),a=e[d+=u],s=e[d+=1]}return{return_code:n,error_message:(0,h.errorCodeToString)(n),appName:o,appVersion:i,flagLen:a,flagsValue:s,flag_recovery:0!=(1&s),flag_signed_mcu_code:0!=(2&s),flag_onboarded:0!=(4&s),flag_pin_validated:0!=(128&s)}}),h.processErrorResponse));case 1:case"end":return e.stop()}}),e,this)}))),function(){return v.apply(this,arguments)})},{key:"deviceInfo",value:(m=(0,a.default)(i.default.mark((function e(){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.transport.send(224,1,0,0,r.from([]),[h.ERROR_CODE.NoError,28160]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1];if(28160===n)return{return_code:n,error_message:"This command is only available in the Dashboard"};var r=e.slice(0,4).toString("hex"),o=4,i=e[o];o+=1;var a=e.slice(o,o+i).toString(),s=e[o+=i];o+=1;var c=e.slice(o,o+s).toString("hex"),d=e[o+=s];o+=1;var u=e.slice(o,o+d);0===u[d-1]&&(u=e.slice(o,o+d-1));var l=u.toString();return{return_code:n,error_message:(0,h.errorCodeToString)(n),targetId:r,seVersion:a,flag:c,mcuVersion:l}}),h.processErrorResponse));case 1:case"end":return e.stop()}}),e,this)}))),function(){return m.apply(this,arguments)})},{key:"publicKey",value:(p=(0,a.default)(i.default.mark((function t(n){var o,a;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.serializePath(n);case 3:o=t.sent,t.t0=this.versionResponse.major,t.next=1===t.t0?7:2===t.t0?8:10;break;case 7:return t.abrupt("return",(0,A.publicKeyv1)(this,o));case 8:return a=r.concat([e.serializeHRP("cosmos"),o]),t.abrupt("return",(0,f.publicKeyv2)(this,a));case 10:return t.abrupt("return",{return_code:25600,error_message:"App Version is not supported"});case 11:t.next=16;break;case 13:return t.prev=13,t.t1=t.catch(0),t.abrupt("return",(0,h.processErrorResponse)(t.t1));case 16:case"end":return t.stop()}}),t,this,[[0,13]])}))),function(e){return p.apply(this,arguments)})},{key:"getAddressAndPubKey",value:(g=(0,a.default)(i.default.mark((function t(n,o){var a=this;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.serializePath(n).then((function(t){var n=r.concat([e.serializeHRP(o),t]);return a.transport.send(h.CLA,h.INS.GET_ADDR_SECP256K1,h.P1_VALUES.ONLY_RETRIEVE,0,n,[h.ERROR_CODE.NoError]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],o=r.from(e.slice(0,33));return{bech32_address:r.from(e.slice(33,-2)).toString(),compressed_pk:o,return_code:n,error_message:(0,h.errorCodeToString)(n)}}),h.processErrorResponse)})).catch((function(e){return(0,h.processErrorResponse)(e)})));case 4:return t.prev=4,t.t0=t.catch(0),t.abrupt("return",(0,h.processErrorResponse)(t.t0));case 7:case"end":return t.stop()}}),t,this,[[0,4]])}))),function(e,t){return g.apply(this,arguments)})},{key:"showAddressAndPubKey",value:(o=(0,a.default)(i.default.mark((function t(n,o){var a=this;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.serializePath(n).then((function(t){var n=r.concat([e.serializeHRP(o),t]);return a.transport.send(h.CLA,h.INS.GET_ADDR_SECP256K1,h.P1_VALUES.SHOW_ADDRESS_IN_DEVICE,0,n,[h.ERROR_CODE.NoError]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],o=r.from(e.slice(0,33));return{bech32_address:r.from(e.slice(33,-2)).toString(),compressed_pk:o,return_code:n,error_message:(0,h.errorCodeToString)(n)}}),h.processErrorResponse)})).catch((function(e){return(0,h.processErrorResponse)(e)})));case 4:return t.prev=4,t.t0=t.catch(0),t.abrupt("return",(0,h.processErrorResponse)(t.t0));case 7:case"end":return t.stop()}}),t,this,[[0,4]])}))),function(e,t){return o.apply(this,arguments)})},{key:"signSendChunk",value:(n=(0,a.default)(i.default.mark((function e(t,n,r){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=this.versionResponse.major,e.next=1===e.t0?3:2===e.t0?4:5;break;case 3:return e.abrupt("return",(0,A.signSendChunkv1)(this,t,n,r));case 4:return e.abrupt("return",(0,f.signSendChunkv2)(this,t,n,r));case 5:return e.abrupt("return",{return_code:25600,error_message:"App Version is not supported"});case 6:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"sign",value:(t=(0,a.default)(i.default.mark((function e(t,n){var r=this;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.signGetChunks(t,n).then((function(e){return r.signSendChunk(1,e.length,e[0],[h.ERROR_CODE.NoError]).then(function(){var t=(0,a.default)(i.default.mark((function t(n){var o,a;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:o={return_code:n.return_code,error_message:n.error_message,signature:null},a=1;case 2:if(!(a83)throw new Error("Invalid HRP");var t=r.alloc(1+e.length);return t.writeUInt8(e.length,0),t.write(e,1),t}},{key:"getBech32FromPK",value:function(e,t){if(33!==t.length)throw new Error("expected compressed public key [31 bytes]");var n=d.default.createHash("sha256").update(t).digest(),r=(new u.default).update(n).digest();return l.default.encode(e,l.default.toWords(r))}}]),e}();t.default=g},6869:function(e,t,n){var r,o,i,a,s;s="object"==typeof(a=this).sodium&&"function"==typeof a.sodium.onload?a.sodium.onload:null,o=[t,n(4608)],r=function(e,t){"use strict";var n,r=t.ready.then((function(){function r(){if(0!==n._sodium_init())throw new Error("libsodium was not correctly initialized.");for(var t=["crypto_aead_chacha20poly1305_decrypt","crypto_aead_chacha20poly1305_decrypt_detached","crypto_aead_chacha20poly1305_encrypt","crypto_aead_chacha20poly1305_encrypt_detached","crypto_aead_chacha20poly1305_ietf_decrypt","crypto_aead_chacha20poly1305_ietf_decrypt_detached","crypto_aead_chacha20poly1305_ietf_encrypt","crypto_aead_chacha20poly1305_ietf_encrypt_detached","crypto_aead_chacha20poly1305_ietf_keygen","crypto_aead_chacha20poly1305_keygen","crypto_aead_xchacha20poly1305_ietf_decrypt","crypto_aead_xchacha20poly1305_ietf_decrypt_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_encrypt_detached","crypto_aead_xchacha20poly1305_ietf_keygen","crypto_auth","crypto_auth_hmacsha256","crypto_auth_hmacsha256_keygen","crypto_auth_hmacsha256_verify","crypto_auth_hmacsha512","crypto_auth_hmacsha512_keygen","crypto_auth_hmacsha512_verify","crypto_auth_keygen","crypto_auth_verify","crypto_box_beforenm","crypto_box_curve25519xchacha20poly1305_keypair","crypto_box_curve25519xchacha20poly1305_seal","crypto_box_curve25519xchacha20poly1305_seal_open","crypto_box_detached","crypto_box_easy","crypto_box_easy_afternm","crypto_box_keypair","crypto_box_open_detached","crypto_box_open_easy","crypto_box_open_easy_afternm","crypto_box_seal","crypto_box_seal_open","crypto_box_seed_keypair","crypto_core_ed25519_add","crypto_core_ed25519_from_hash","crypto_core_ed25519_from_uniform","crypto_core_ed25519_is_valid_point","crypto_core_ed25519_random","crypto_core_ed25519_scalar_add","crypto_core_ed25519_scalar_complement","crypto_core_ed25519_scalar_invert","crypto_core_ed25519_scalar_mul","crypto_core_ed25519_scalar_negate","crypto_core_ed25519_scalar_random","crypto_core_ed25519_scalar_reduce","crypto_core_ed25519_scalar_sub","crypto_core_ed25519_sub","crypto_core_ristretto255_add","crypto_core_ristretto255_from_hash","crypto_core_ristretto255_is_valid_point","crypto_core_ristretto255_random","crypto_core_ristretto255_scalar_add","crypto_core_ristretto255_scalar_complement","crypto_core_ristretto255_scalar_invert","crypto_core_ristretto255_scalar_mul","crypto_core_ristretto255_scalar_negate","crypto_core_ristretto255_scalar_random","crypto_core_ristretto255_scalar_reduce","crypto_core_ristretto255_scalar_sub","crypto_core_ristretto255_sub","crypto_generichash","crypto_generichash_blake2b_salt_personal","crypto_generichash_final","crypto_generichash_init","crypto_generichash_keygen","crypto_generichash_update","crypto_hash","crypto_hash_sha256","crypto_hash_sha256_final","crypto_hash_sha256_init","crypto_hash_sha256_update","crypto_hash_sha512","crypto_hash_sha512_final","crypto_hash_sha512_init","crypto_hash_sha512_update","crypto_kdf_derive_from_key","crypto_kdf_keygen","crypto_kx_client_session_keys","crypto_kx_keypair","crypto_kx_seed_keypair","crypto_kx_server_session_keys","crypto_onetimeauth","crypto_onetimeauth_final","crypto_onetimeauth_init","crypto_onetimeauth_keygen","crypto_onetimeauth_update","crypto_onetimeauth_verify","crypto_pwhash","crypto_pwhash_scryptsalsa208sha256","crypto_pwhash_scryptsalsa208sha256_ll","crypto_pwhash_scryptsalsa208sha256_str","crypto_pwhash_scryptsalsa208sha256_str_verify","crypto_pwhash_str","crypto_pwhash_str_needs_rehash","crypto_pwhash_str_verify","crypto_scalarmult","crypto_scalarmult_base","crypto_scalarmult_ed25519","crypto_scalarmult_ed25519_base","crypto_scalarmult_ed25519_base_noclamp","crypto_scalarmult_ed25519_noclamp","crypto_scalarmult_ristretto255","crypto_scalarmult_ristretto255_base","crypto_secretbox_detached","crypto_secretbox_easy","crypto_secretbox_keygen","crypto_secretbox_open_detached","crypto_secretbox_open_easy","crypto_secretstream_xchacha20poly1305_init_pull","crypto_secretstream_xchacha20poly1305_init_push","crypto_secretstream_xchacha20poly1305_keygen","crypto_secretstream_xchacha20poly1305_pull","crypto_secretstream_xchacha20poly1305_push","crypto_secretstream_xchacha20poly1305_rekey","crypto_shorthash","crypto_shorthash_keygen","crypto_shorthash_siphashx24","crypto_sign","crypto_sign_detached","crypto_sign_ed25519_pk_to_curve25519","crypto_sign_ed25519_sk_to_curve25519","crypto_sign_ed25519_sk_to_pk","crypto_sign_ed25519_sk_to_seed","crypto_sign_final_create","crypto_sign_final_verify","crypto_sign_init","crypto_sign_keypair","crypto_sign_open","crypto_sign_seed_keypair","crypto_sign_update","crypto_sign_verify_detached","crypto_stream_chacha20","crypto_stream_chacha20_ietf_xor","crypto_stream_chacha20_ietf_xor_ic","crypto_stream_chacha20_keygen","crypto_stream_chacha20_xor","crypto_stream_chacha20_xor_ic","crypto_stream_keygen","crypto_stream_xchacha20_keygen","crypto_stream_xchacha20_xor","crypto_stream_xchacha20_xor_ic","randombytes_buf","randombytes_buf_deterministic","randombytes_close","randombytes_random","randombytes_set_implementation","randombytes_stir","randombytes_uniform","sodium_version_string"],r=[I,C,E,w,B,_,S,k,O,Q,R,P,N,x,D,M,T,U,H,j,J,F,G,L,q,Y,V,W,K,Z,z,X,$,ee,te,ne,re,oe,ie,ae,se,ce,de,ue,le,Ae,fe,he,ge,pe,me,ve,ye,be,Ie,Ce,Ee,we,Be,_e,Se,ke,Oe,Qe,Re,Pe,Ne,xe,De,Me,Te,Ue,He,je,Je,Fe,Ge,Le,qe,Ye,Ve,We,Ke,Ze,ze,Xe,$e,et,tt,nt,rt,ot,it,at,st,ct,dt,ut,lt,At,ft,ht,gt,pt,mt,vt,yt,bt,It,Ct,Et,wt,Bt,_t,St,kt,Ot,Qt,Rt,Pt,Nt,xt,Dt,Mt,Tt,Ut,Ht,jt,Jt,Ft,Gt,Lt,qt,Yt,Vt,Wt,Kt,Zt,zt,Xt,$t,en,tn,nn,rn,on,an,sn,cn,dn,un,ln,An,fn],o=0;o=240?(u=4,c=!0):l>=224?(u=3,c=!0):l>=192?(u=2,c=!0):l<128&&(u=1,c=!0)}while(!c);for(var A=u-(s.length-d),f=0;f>8&-39)<<8|87+(t=e[i]>>>4)+(t-10>>8&-39),o+=String.fromCharCode(255&r)+String.fromCharCode(r>>>8);return o}var s={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function c(e){if(null==e)return s.URLSAFE_NO_PADDING;if(e!==s.ORIGINAL&&e!==s.ORIGINAL_NO_PADDING&&e!==s.URLSAFE&&e!=s.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function d(e,t){t=c(t),e=b(o,e,"input");var r,o=[],a=0|Math.floor(e.length/3),s=e.length-3*a,d=4*a+(0!==s?0==(2&t)?4:2+(s>>>1):0),u=new f(d+1),l=h(e);return o.push(l),o.push(u.address),0===n._sodium_bin2base64(u.address,u.length,l,e.length,t)&&m(o,"conversion failed"),u.length=d,r=i(u.to_Uint8Array()),p(o),r}function u(e,t){var n=t||"uint8array";if(!l(n))throw new Error(n+" output format is not available");if(e instanceof f){if("uint8array"===n)return e.to_Uint8Array();if("text"===n)return i(e.to_Uint8Array());if("hex"===n)return a(e.to_Uint8Array());if("base64"===n)return d(e.to_Uint8Array(),s.URLSAFE_NO_PADDING);throw new Error('What is output format "'+n+'"?')}if("object"==typeof e){for(var r=Object.keys(e),o={},c=0;c>>24>>>8,c,l);var C=u(m,a);return p(s),C}function We(e){var t=[];A(e);var r=new f(0|n._crypto_kdf_keybytes()),o=r.address;t.push(o),n._crypto_kdf_keygen(o);var i=u(r,e);return p(t),i}function Ke(e,t,r,o){var i=[];A(o),e=b(i,e,"clientPublicKey");var a,s=0|n._crypto_kx_publickeybytes();e.length!==s&&v(i,"invalid clientPublicKey length"),a=h(e),i.push(a),t=b(i,t,"clientSecretKey");var c,d=0|n._crypto_kx_secretkeybytes();t.length!==d&&v(i,"invalid clientSecretKey length"),c=h(t),i.push(c),r=b(i,r,"serverPublicKey");var l,g=0|n._crypto_kx_publickeybytes();r.length!==g&&v(i,"invalid serverPublicKey length"),l=h(r),i.push(l);var y=new f(0|n._crypto_kx_sessionkeybytes()),I=y.address;i.push(I);var C=new f(0|n._crypto_kx_sessionkeybytes()),E=C.address;if(i.push(E),0==(0|n._crypto_kx_client_session_keys(I,E,a,c,l))){var w=u({sharedRx:y,sharedTx:C},o);return p(i),w}m(i,"invalid usage")}function Ze(e){var t=[];A(e);var r=new f(0|n._crypto_kx_publickeybytes()),o=r.address;t.push(o);var i=new f(0|n._crypto_kx_secretkeybytes()),a=i.address;if(t.push(a),0==(0|n._crypto_kx_keypair(o,a))){var s={publicKey:u(r,e),privateKey:u(i,e),keyType:"x25519"};return p(t),s}m(t,"internal error")}function ze(e,t){var r=[];A(t),e=b(r,e,"seed");var o,i=0|n._crypto_kx_seedbytes();e.length!==i&&v(r,"invalid seed length"),o=h(e),r.push(o);var a=new f(0|n._crypto_kx_publickeybytes()),s=a.address;r.push(s);var c=new f(0|n._crypto_kx_secretkeybytes()),d=c.address;if(r.push(d),0==(0|n._crypto_kx_seed_keypair(s,d,o))){var l={publicKey:u(a,t),privateKey:u(c,t),keyType:"x25519"};return p(r),l}m(r,"internal error")}function Xe(e,t,r,o){var i=[];A(o),e=b(i,e,"serverPublicKey");var a,s=0|n._crypto_kx_publickeybytes();e.length!==s&&v(i,"invalid serverPublicKey length"),a=h(e),i.push(a),t=b(i,t,"serverSecretKey");var c,d=0|n._crypto_kx_secretkeybytes();t.length!==d&&v(i,"invalid serverSecretKey length"),c=h(t),i.push(c),r=b(i,r,"clientPublicKey");var l,g=0|n._crypto_kx_publickeybytes();r.length!==g&&v(i,"invalid clientPublicKey length"),l=h(r),i.push(l);var y=new f(0|n._crypto_kx_sessionkeybytes()),I=y.address;i.push(I);var C=new f(0|n._crypto_kx_sessionkeybytes()),E=C.address;if(i.push(E),0==(0|n._crypto_kx_server_session_keys(I,E,a,c,l))){var w=u({sharedRx:y,sharedTx:C},o);return p(i),w}m(i,"invalid usage")}function $e(e,t,r){var o=[];A(r);var i=h(e=b(o,e,"message")),a=e.length;o.push(i),t=b(o,t,"key");var s,c=0|n._crypto_onetimeauth_keybytes();t.length!==c&&v(o,"invalid key length"),s=h(t),o.push(s);var d=new f(0|n._crypto_onetimeauth_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_onetimeauth(l,i,a,0,s))){var g=u(d,r);return p(o),g}m(o,"invalid usage")}function et(e,t){var r=[];A(t),y(r,e,"state_address");var o=new f(0|n._crypto_onetimeauth_bytes()),i=o.address;if(r.push(i),0==(0|n._crypto_onetimeauth_final(e,i))){var a=(n._free(e),u(o,t));return p(r),a}m(r,"invalid usage")}function tt(e,t){var r=[];A(t);var o=null;null!=e&&(o=h(e=b(r,e,"key")),e.length,r.push(o));var i=new f(144).address;if(0==(0|n._crypto_onetimeauth_init(i,o))){var a=i;return p(r),a}m(r,"invalid usage")}function nt(e){var t=[];A(e);var r=new f(0|n._crypto_onetimeauth_keybytes()),o=r.address;t.push(o),n._crypto_onetimeauth_keygen(o);var i=u(r,e);return p(t),i}function rt(e,t,r){var o=[];A(r),y(o,e,"state_address");var i=h(t=b(o,t,"message_chunk")),a=t.length;o.push(i),0!=(0|n._crypto_onetimeauth_update(e,i,a))&&m(o,"invalid usage"),p(o)}function ot(e,t,r){var o=[];e=b(o,e,"hash");var i,a=0|n._crypto_onetimeauth_bytes();e.length!==a&&v(o,"invalid hash length"),i=h(e),o.push(i);var s=h(t=b(o,t,"message")),c=t.length;o.push(s),r=b(o,r,"key");var d,u=0|n._crypto_onetimeauth_keybytes();r.length!==u&&v(o,"invalid key length"),d=h(r),o.push(d);var l=0==(0|n._crypto_onetimeauth_verify(i,s,c,0,d));return p(o),l}function it(e,t,r,o,i,a,s){var c=[];A(s),y(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&v(c,"keyLength must be an unsigned integer");var d=h(t=b(c,t,"password")),l=t.length;c.push(d),r=b(c,r,"salt");var g,I=0|n._crypto_pwhash_saltbytes();r.length!==I&&v(c,"invalid salt length"),g=h(r),c.push(g),y(c,o,"opsLimit"),("number"!=typeof o||(0|o)!==o||o<0)&&v(c,"opsLimit must be an unsigned integer"),y(c,i,"memLimit"),("number"!=typeof i||(0|i)!==i||i<0)&&v(c,"memLimit must be an unsigned integer"),y(c,a,"algorithm"),("number"!=typeof a||(0|a)!==a||a<0)&&v(c,"algorithm must be an unsigned integer");var C=new f(0|e),E=C.address;if(c.push(E),0==(0|n._crypto_pwhash(E,e,0,d,l,0,g,o,0,i,a))){var w=u(C,s);return p(c),w}m(c,"invalid usage")}function at(e,t,r,o,i,a){var s=[];A(a),y(s,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&v(s,"keyLength must be an unsigned integer");var c=h(t=b(s,t,"password")),d=t.length;s.push(c),r=b(s,r,"salt");var l,g=0|n._crypto_pwhash_scryptsalsa208sha256_saltbytes();r.length!==g&&v(s,"invalid salt length"),l=h(r),s.push(l),y(s,o,"opsLimit"),("number"!=typeof o||(0|o)!==o||o<0)&&v(s,"opsLimit must be an unsigned integer"),y(s,i,"memLimit"),("number"!=typeof i||(0|i)!==i||i<0)&&v(s,"memLimit must be an unsigned integer");var I=new f(0|e),C=I.address;if(s.push(C),0==(0|n._crypto_pwhash_scryptsalsa208sha256(C,e,0,c,d,0,l,o,0,i))){var E=u(I,a);return p(s),E}m(s,"invalid usage")}function st(e,t,r,o,i,a,s){var c=[];A(s);var d=h(e=b(c,e,"password")),l=e.length;c.push(d);var g=h(t=b(c,t,"salt")),I=t.length;c.push(g),y(c,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&v(c,"opsLimit must be an unsigned integer"),y(c,o,"r"),("number"!=typeof o||(0|o)!==o||o<0)&&v(c,"r must be an unsigned integer"),y(c,i,"p"),("number"!=typeof i||(0|i)!==i||i<0)&&v(c,"p must be an unsigned integer"),y(c,a,"keyLength"),("number"!=typeof a||(0|a)!==a||a<0)&&v(c,"keyLength must be an unsigned integer");var C=new f(0|a),E=C.address;if(c.push(E),0==(0|n._crypto_pwhash_scryptsalsa208sha256_ll(d,l,g,I,r,0,o,i,E,a))){var w=u(C,s);return p(c),w}m(c,"invalid usage")}function ct(e,t,r,o){var i=[];A(o);var a=h(e=b(i,e,"password")),s=e.length;i.push(a),y(i,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&v(i,"opsLimit must be an unsigned integer"),y(i,r,"memLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&v(i,"memLimit must be an unsigned integer");var c=new f(0|n._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(i.push(c),0==(0|n._crypto_pwhash_scryptsalsa208sha256_str(c,a,s,0,t,0,r))){var d=n.UTF8ToString(c);return p(i),d}m(i,"invalid usage")}function dt(e,t,r){var i=[];A(r),"string"!=typeof e&&v(i,"hashed_password must be a string"),e=o(e+"\0"),null!=s&&e.length-1!==s&&v(i,"invalid hashed_password length");var a=h(e),s=e.length-1;i.push(a);var c=h(t=b(i,t,"password")),d=t.length;i.push(c);var u=0==(0|n._crypto_pwhash_scryptsalsa208sha256_str_verify(a,c,d,0));return p(i),u}function ut(e,t,r,o){var i=[];A(o);var a=h(e=b(i,e,"password")),s=e.length;i.push(a),y(i,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&v(i,"opsLimit must be an unsigned integer"),y(i,r,"memLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&v(i,"memLimit must be an unsigned integer");var c=new f(0|n._crypto_pwhash_strbytes()).address;if(i.push(c),0==(0|n._crypto_pwhash_str(c,a,s,0,t,0,r))){var d=n.UTF8ToString(c);return p(i),d}m(i,"invalid usage")}function lt(e,t,r,i){var a=[];A(i),"string"!=typeof e&&v(a,"hashed_password must be a string"),e=o(e+"\0"),null!=c&&e.length-1!==c&&v(a,"invalid hashed_password length");var s=h(e),c=e.length-1;a.push(s),y(a,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&v(a,"opsLimit must be an unsigned integer"),y(a,r,"memLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&v(a,"memLimit must be an unsigned integer");var d=0!=(0|n._crypto_pwhash_str_needs_rehash(s,t,0,r));return p(a),d}function At(e,t,r){var i=[];A(r),"string"!=typeof e&&v(i,"hashed_password must be a string"),e=o(e+"\0"),null!=s&&e.length-1!==s&&v(i,"invalid hashed_password length");var a=h(e),s=e.length-1;i.push(a);var c=h(t=b(i,t,"password")),d=t.length;i.push(c);var u=0==(0|n._crypto_pwhash_str_verify(a,c,d,0));return p(i),u}function ft(e,t,r){var o=[];A(r),e=b(o,e,"privateKey");var i,a=0|n._crypto_scalarmult_scalarbytes();e.length!==a&&v(o,"invalid privateKey length"),i=h(e),o.push(i),t=b(o,t,"publicKey");var s,c=0|n._crypto_scalarmult_bytes();t.length!==c&&v(o,"invalid publicKey length"),s=h(t),o.push(s);var d=new f(0|n._crypto_scalarmult_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_scalarmult(l,i,s))){var g=u(d,r);return p(o),g}m(o,"weak public key")}function ht(e,t){var r=[];A(t),e=b(r,e,"privateKey");var o,i=0|n._crypto_scalarmult_scalarbytes();e.length!==i&&v(r,"invalid privateKey length"),o=h(e),r.push(o);var a=new f(0|n._crypto_scalarmult_bytes()),s=a.address;if(r.push(s),0==(0|n._crypto_scalarmult_base(s,o))){var c=u(a,t);return p(r),c}m(r,"unknown error")}function gt(e,t,r){var o=[];A(r),e=b(o,e,"n");var i,a=0|n._crypto_scalarmult_ed25519_scalarbytes();e.length!==a&&v(o,"invalid n length"),i=h(e),o.push(i),t=b(o,t,"p");var s,c=0|n._crypto_scalarmult_ed25519_bytes();t.length!==c&&v(o,"invalid p length"),s=h(t),o.push(s);var d=new f(0|n._crypto_scalarmult_ed25519_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_scalarmult_ed25519(l,i,s))){var g=u(d,r);return p(o),g}m(o,"invalid point or scalar is 0")}function pt(e,t){var r=[];A(t),e=b(r,e,"scalar");var o,i=0|n._crypto_scalarmult_ed25519_scalarbytes();e.length!==i&&v(r,"invalid scalar length"),o=h(e),r.push(o);var a=new f(0|n._crypto_scalarmult_ed25519_bytes()),s=a.address;if(r.push(s),0==(0|n._crypto_scalarmult_ed25519_base(s,o))){var c=u(a,t);return p(r),c}m(r,"scalar is 0")}function mt(e,t){var r=[];A(t),e=b(r,e,"scalar");var o,i=0|n._crypto_scalarmult_ed25519_scalarbytes();e.length!==i&&v(r,"invalid scalar length"),o=h(e),r.push(o);var a=new f(0|n._crypto_scalarmult_ed25519_bytes()),s=a.address;if(r.push(s),0==(0|n._crypto_scalarmult_ed25519_base_noclamp(s,o))){var c=u(a,t);return p(r),c}m(r,"scalar is 0")}function vt(e,t,r){var o=[];A(r),e=b(o,e,"n");var i,a=0|n._crypto_scalarmult_ed25519_scalarbytes();e.length!==a&&v(o,"invalid n length"),i=h(e),o.push(i),t=b(o,t,"p");var s,c=0|n._crypto_scalarmult_ed25519_bytes();t.length!==c&&v(o,"invalid p length"),s=h(t),o.push(s);var d=new f(0|n._crypto_scalarmult_ed25519_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_scalarmult_ed25519_noclamp(l,i,s))){var g=u(d,r);return p(o),g}m(o,"invalid point or scalar is 0")}function yt(e,t,r){var o=[];A(r),e=b(o,e,"scalar");var i,a=0|n._crypto_scalarmult_ristretto255_scalarbytes();e.length!==a&&v(o,"invalid scalar length"),i=h(e),o.push(i),t=b(o,t,"element");var s,c=0|n._crypto_scalarmult_ristretto255_bytes();t.length!==c&&v(o,"invalid element length"),s=h(t),o.push(s);var d=new f(0|n._crypto_scalarmult_ristretto255_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_scalarmult_ristretto255(l,i,s))){var g=u(d,r);return p(o),g}m(o,"result is identity element")}function bt(e,t){var r=[];A(t),e=b(r,e,"scalar");var o,i=0|n._crypto_core_ristretto255_scalarbytes();e.length!==i&&v(r,"invalid scalar length"),o=h(e),r.push(o);var a=new f(0|n._crypto_core_ristretto255_bytes()),s=a.address;if(r.push(s),0==(0|n._crypto_scalarmult_ristretto255_base(s,o))){var c=u(a,t);return p(r),c}m(r,"scalar is 0")}function It(e,t,r,o){var i=[];A(o);var a=h(e=b(i,e,"message")),s=e.length;i.push(a),t=b(i,t,"nonce");var c,d=0|n._crypto_secretbox_noncebytes();t.length!==d&&v(i,"invalid nonce length"),c=h(t),i.push(c),r=b(i,r,"key");var l,g=0|n._crypto_secretbox_keybytes();r.length!==g&&v(i,"invalid key length"),l=h(r),i.push(l);var y=new f(0|s),I=y.address;i.push(I);var C=new f(0|n._crypto_secretbox_macbytes()),E=C.address;if(i.push(E),0==(0|n._crypto_secretbox_detached(I,E,a,s,0,c,l))){var w=u({mac:C,cipher:y},o);return p(i),w}m(i,"invalid usage")}function Ct(e,t,r,o){var i=[];A(o);var a=h(e=b(i,e,"message")),s=e.length;i.push(a),t=b(i,t,"nonce");var c,d=0|n._crypto_secretbox_noncebytes();t.length!==d&&v(i,"invalid nonce length"),c=h(t),i.push(c),r=b(i,r,"key");var l,g=0|n._crypto_secretbox_keybytes();r.length!==g&&v(i,"invalid key length"),l=h(r),i.push(l);var y=new f(s+n._crypto_secretbox_macbytes()|0),I=y.address;if(i.push(I),0==(0|n._crypto_secretbox_easy(I,a,s,0,c,l))){var C=u(y,o);return p(i),C}m(i,"invalid usage")}function Et(e){var t=[];A(e);var r=new f(0|n._crypto_secretbox_keybytes()),o=r.address;t.push(o),n._crypto_secretbox_keygen(o);var i=u(r,e);return p(t),i}function wt(e,t,r,o,i){var a=[];A(i);var s=h(e=b(a,e,"ciphertext")),c=e.length;a.push(s),t=b(a,t,"mac");var d,l=0|n._crypto_secretbox_macbytes();t.length!==l&&v(a,"invalid mac length"),d=h(t),a.push(d),r=b(a,r,"nonce");var g,y=0|n._crypto_secretbox_noncebytes();r.length!==y&&v(a,"invalid nonce length"),g=h(r),a.push(g),o=b(a,o,"key");var I,C=0|n._crypto_secretbox_keybytes();o.length!==C&&v(a,"invalid key length"),I=h(o),a.push(I);var E=new f(0|c),w=E.address;if(a.push(w),0==(0|n._crypto_secretbox_open_detached(w,s,d,c,0,g,I))){var B=u(E,i);return p(a),B}m(a,"wrong secret key for the given ciphertext")}function Bt(e,t,r,o){var i=[];A(o),e=b(i,e,"ciphertext");var a,s=n._crypto_secretbox_macbytes(),c=e.length;c>>0;return p([]),t}function un(e,t){var r=[];A(t);for(var o=n._malloc(24),i=0;i<6;i++)n.setValue(o+4*i,n.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][i]]),"i32");0!=(0|n._randombytes_set_implementation(o))&&m(r,"unsupported implementation"),p(r)}function ln(e){A(e),n._randombytes_stir()}function An(e,t){var r=[];A(t),y(r,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&v(r,"upper_bound must be an unsigned integer");var o=n._randombytes_uniform(e)>>>0;return p(r),o}function fn(){var e=n._sodium_version_string(),t=n.UTF8ToString(e);return p([]),t}return f.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(n.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,t){if(!(e instanceof Uint8Array&&t instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can added");var n=e.length,r=0,o=0;if(t.length!=e.length)throw new TypeError("Arguments must have the same length");for(o=0;o>=8,r+=e[o]+t[o],e[o]=255&r},e.base64_variants=s,e.compare=function(e,t){if(!(e instanceof Uint8Array&&t instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==t.length)throw new TypeError("Only instances of identical length can be compared");for(var n=0,r=1,o=e.length;o-- >0;)n|=t[o]-e[o]>>8&r,r&=(t[o]^e[o])-1>>8;return n+n+r-1},e.from_base64=function(e,t){t=c(t);var r,o=[],i=new f(3*(e=b(o,e,"input")).length/4),a=h(e),s=g(4),d=g(4);return o.push(a),o.push(i.address),o.push(i.result_bin_len_p),o.push(i.b64_end_p),0!==n._sodium_base642bin(i.address,i.length,a,e.length,0,s,d,t)&&m(o,"invalid input"),n.getValue(d,"i32")-a!==e.length&&m(o,"incomplete input"),i.length=n.getValue(s,"i32"),r=i.to_Uint8Array(),p(o),r},e.from_hex=function(e){var t,r=[],o=new f((e=b(r,e,"input")).length/2),i=h(e),a=g(4);return r.push(i),r.push(o.address),r.push(o.hex_end_p),0!==n._sodium_hex2bin(o.address,o.length,i,e.length,0,0,a)&&m(r,"invalid input"),n.getValue(a,"i32")-i!==e.length&&m(r,"incomplete input"),t=o.to_Uint8Array(),p(r),t},e.from_string=o,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var t=256,n=0,r=e.length;n>=8,t+=e[n],e[n]=255&t},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var t=0,n=0,r=e.length;n 0");var r,o=[],i=g(4),a=1,s=0,c=0|e.length,d=new f(c+t);o.push(i),o.push(d.address);for(var u=d.address,l=d.address+c+t;u>>48|c>>>32|c>>>16|c))-1>>16);return 0!==n._sodium_pad(i,d.address,e.length,t,d.length)&&m(o,"internal error"),d.length=n.getValue(i,"i32"),r=d.to_Uint8Array(),p(o),r},e.unpad=function(e,t){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((t|=0)<=0)throw new Error("block size must be > 0");var r=[],o=h(e),i=g(4);return r.push(o),r.push(i),0!==n._sodium_unpad(i,o,e.length,t)&&m(r,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,n.getValue(i,"i32")),p(r),e},e.ready=r,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=d,e.to_hex=a,e.to_string=i,e},void 0!==(i=r.apply(t,o))&&(e.exports=i),s&&a.sodium.ready.then((function(){s(a.sodium)}))},4608:function(e,t,n){var r,o,i=n(4155),a=n(8764).Buffer;r=function(t){"use strict";var r;void 0===(r=t)&&(r={});var o=r;"object"!=typeof o.sodium&&("object"==typeof n.g?o=n.g:"object"==typeof window&&(o=window)),"object"==typeof o.sodium&&"number"==typeof o.sodium.totalMemory&&(r.TOTAL_MEMORY=o.sodium.totalMemory);var s=r;return r.ready=new Promise((function(t,r){(c=s).onAbort=r,c.print=function(e){},c.printErr=function(e){},c.onRuntimeInitialized=function(){try{c._crypto_secretbox_keybytes(),t()}catch(e){r(e)}},c.useBackupModule=function(){return new Promise((function(t,r){(c={}).onAbort=r,c.onRuntimeInitialized=function(){Object.keys(s).forEach((function(e){"getRandomValue"!==e&&delete s[e]})),Object.keys(c).forEach((function(e){s[e]=c[e]})),t()};var o,c=void 0!==c?c:{},d={};for(o in c)c.hasOwnProperty(o)&&(d[o]=c[o]);var u=[],l=!1,A=!1,f=!1,h=!1;l="object"==typeof window,A="function"==typeof importScripts,f="object"==typeof i&&"object"==typeof i.versions&&"string"==typeof i.versions.node,h=!l&&!f&&!A;var g,p,m,v,y,b="";function I(e){return c.locateFile?c.locateFile(e,b):b+e}f?(b=A?n(6470).dirname(b)+"/":"//",g=function(e,t){var r=xe(e);return r?t?r:r.toString():(v||(v=n(5992)),y||(y=n(6470)),e=y.normalize(e),v.readFileSync(e,t?null:"utf8"))},m=function(e){var t=g(e,!0);return t.buffer||(t=new Uint8Array(t)),O(t.buffer),t},i.argv.length>1&&i.argv[1].replace(/\\/g,"/"),u=i.argv.slice(2),e.exports=c,c.inspect=function(){return"[Emscripten Module object]"}):h?("undefined"!=typeof read&&(g=function(e){var t=xe(e);return t?Re(t):read(e)}),m=function(e){var t;return(t=xe(e))?t:"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(O("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?u=scriptArgs:void 0!==arguments&&(u=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(l||A)&&(A?b=self.location.href:"undefined"!=typeof document&&document.currentScript&&(b=document.currentScript.src),b=0!==b.indexOf("blob:")?b.substr(0,b.lastIndexOf("/")+1):"",g=function(e){try{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText}catch(t){var n=xe(e);if(n)return Re(n);throw t}},A&&(m=function(e){try{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}catch(t){var n=xe(e);if(n)return n;throw t}}),p=function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)t(r.response);else{var o=xe(e);o?t(o.buffer):n()}},r.onerror=n,r.send(null)}),c.print;var C,E=c.printErr||void 0;for(o in d)d.hasOwnProperty(o)&&(c[o]=d[o]);d=null,c.arguments&&(u=c.arguments),c.thisProgram&&c.thisProgram,c.quit&&c.quit,c.wasmBinary&&(C=c.wasmBinary),c.noExitRuntime&&c.noExitRuntime;var w,B={Memory:function(e){this.buffer=new ArrayBuffer(65536*e.initial)},Module:function(e){},Instance:function(e,t){this.exports=function(e){for(var t,n=new Uint8Array(123),r=25;r>=0;--r)n[48+r]=52+r,n[65+r]=r,n[97+r]=26+r;function o(e,t,r){for(var o,i,a=0,s=t,c=r.length,d=t+(3*c>>2)-("="==r[c-2])-("="==r[c-1]);a>4,s>2),s>2]=c[0|G]|c[G+1|0]<<8|c[G+2|0]<<16|c[G+3|0]<<24,s[Y+4>>2]=oe,16!=(0|(Z=Z+1|0)););for(n=q(V,e,64),G=s[(t=n)>>2],Z=s[t+4>>2],d=G,G=(oe=s[t+32>>2])+(V=s[t+128>>2])|0,t=($=s[t+36>>2])+s[t+132>>2]|0,t=G>>>0>>0?t+1|0:t,V=G,t=t+Z|0,V=t=(G=d+G|0)>>>0>>0?t+1|0:t,J=Cn((Z=G)^(c[0|(G=e- -64|0)]|c[G+1|0]<<8|c[G+2|0]<<16|c[G+3|0]<<24)^-1377402159,t^(c[G+4|0]|c[G+5|0]<<8|c[G+6|0]<<16|c[G+7|0]<<24)^1359893119,32),G=t=C,t=t+1779033703|0,d=oe^(Y=J-205731576|0),oe=t=Y>>>0<4089235720?t+1|0:t,Q=Cn(d,$^t,24),R=t=C,K=G,d=J,t=t+V|0,t=(t=(J=Q+Z|0)>>>0>>0?t+1|0:t)+(f=r=s[n+140>>2])|0,d=Cn(d^(l=Z=(G=s[n+136>>2])+J|0),(B=J>>>0>l>>>0?t+1|0:t)^K,16),t=oe+(T=C)|0,f=Cn((E=Z=Y+d|0)^Q,(V=Y>>>0>E>>>0?t+1|0:t)^R,63),h=C,Y=s[n+12>>2],Z=(Q=s[n+144>>2])+($=oe=s[n+40>>2])|0,t=(W=s[n+148>>2])+(K=s[n+44>>2])|0,t=Z>>>0<$>>>0?t+1|0:t,$=Z,t=t+Y|0,t=(Z=Z+s[n+8>>2]|0)>>>0<$>>>0?t+1|0:t,J=Cn(Z^(c[e+72|0]|c[e+73|0]<<8|c[e+74|0]<<16|c[e+75|0]<<24)^725511199,(c[e+76|0]|c[e+77|0]<<8|c[e+78|0]<<16|c[e+79|0]<<24)^t^-1694144372,32),K=Cn(u=(Y=J-2067093701|0)^oe,K^(R=(oe=C)-((J>>>0<2067093701)+1150833018|0)|0),24),g=s[n+156>>2],u=K,t=t+($=C)|0,t=(t=(K=K+Z|0)>>>0>>0?t+1|0:t)+g|0,Ae=Cn((I=Z=K+s[n+152>>2]|0)^J,(_=K>>>0>I>>>0?t+1|0:t)^oe,16),t=R+(k=C)|0,ge=Z=Y+Ae|0,J=Cn(u^Z,(Y=Y>>>0>Z>>>0?t+1|0:t)^$,63),R=C,oe=s[n+20>>2],Z=(N=s[n+160>>2])+(K=s[n+48>>2])|0,t=(se=s[n+164>>2])+(p=s[n+52>>2])|0,$=Z,t=(t=Z>>>0>>0?t+1|0:t)+oe|0,ue=Z=Z+s[n+16>>2]|0,Z=Z>>>0<$>>>0?t+1|0:t,m=Cn(ue^(c[e+80|0]|c[e+81|0]<<8|c[e+82|0]<<16|c[e+83|0]<<24)^-79577749,Z^(c[e+84|0]|c[e+85|0]<<8|c[e+86|0]<<16|c[e+87|0]<<24)^528734635,32),oe=t=C,t=t+1013904242|0,u=K^($=m-23791573|0),K=t=$>>>0<4271175723?t+1|0:t,t=Cn(u,p^t,24),g=oe,o=s[n+172>>2],u=t,A=m,m=t,ue=t+ue|0,t=(p=C)+Z|0,t=(t=m>>>0>ue>>>0?t+1|0:t)+(j=o)|0,ee=Cn(A^(w=Z=(oe=s[n+168>>2])+(m=ue)|0),(j=m>>>0>w>>>0?t+1|0:t)^g,16),t=K+(M=C)|0,p=Cn(u^(S=Z=$+ee|0),(K=S>>>0<$>>>0?t+1|0:t)^p,63),g=C,m=s[n+28>>2],$=(Z=s[n+176>>2])+(b=ue=s[n+56>>2])|0,t=(pe=s[n+180>>2])+(v=s[n+60>>2])|0,t=(t=b>>>0>$>>>0?t+1|0:t)+m|0,t=(b=$)>>>0>(P=$=b+s[n+24>>2]|0)>>>0?t+1|0:t,x=Cn(P^(c[e+88|0]|c[e+89|0]<<8|c[e+90|0]<<16|c[e+91|0]<<24)^327033209,t^(c[e+92|0]|c[e+93|0]<<8|c[e+94|0]<<16|c[e+95|0]<<24)^1541459225,32),m=Cn(A=(u=(m=x)+1595750129|0)^ue,v^(ue=($=C)-((m>>>0<2699217167)+1521486533|0)|0),24),v=ue,O=$,ue=s[n+188>>2],A=m,U=u,t=(b=C)+t|0,t=(t=(P=m+P|0)>>>0>>0?t+1|0:t)+(D=ue)|0,z=m=($=s[n+184>>2])+P|0,u=Cn(m^x,(u=O)^(O=m>>>0

>>0?t+1|0:t),16),t=(t=v)+(v=C)|0,P=m=U+u|0,x=b,b=t=m>>>0>>0?t+1|0:t,A=Cn(A^m,x^t,63),m=C,x=R,U=J,F=S,t=R+B|0,R=l=l+J|0,t=(t=l>>>0>>0?t+1|0:t)+(D=L=s[n+196>>2])|0,S=Cn((l=J=(te=s[n+192>>2])+l|0)^u,(J=R>>>0>l>>>0?t+1|0:t)^v,32),t=(t=K)+(K=C)|0,B=t=(R=F+(B=S)|0)>>>0>>0?t+1|0:t,t=Cn(U^R,t^x,24),he=s[n+204>>2],U=t,u=S,v=l,l=t,S=v+t|0,t=(v=C)+J|0,t=(t=l>>>0>S>>>0?t+1|0:t)+(D=he)|0,ie=J=(x=s[n+200>>2])+(l=S)|0,fe=Cn(u^J,(l=l>>>0>J>>>0?t+1|0:t)^K,16),t=B+(S=C)|0,D=Cn(U^(u=K=R+fe|0),(B=v)^(v=R>>>0>u>>>0?t+1|0:t),63),B=C,K=g,F=p,t=g+_|0,t=(t=(R=p+I|0)>>>0

>>0?t+1|0:t)+(U=le=s[n+212>>2])|0,I=Cn((H=d)^(d=R=(J=s[n+208>>2])+(p=R)|0),(p=p>>>0>d>>>0?t+1|0:t)^T,32),t=b+(R=C)|0,K=Cn(F^(g=P+I|0),(t=g>>>0

>>0?t+1|0:t)^K,24),T=t,_=R,X=s[n+220>>2],F=K,H=g,t=(g=C)+p|0,t=(t=(b=d+K|0)>>>0>>0?t+1|0:t)+(U=X)|0,_=Cn((b=K=(R=s[n+216>>2])+(p=b)|0)^I,(P=p>>>0>b>>>0?t+1|0:t)^_,16),t=(d=C)+T|0,de=K=H+(p=_)|0,U=Cn(F^K,(p=p>>>0>K>>>0?t+1|0:t)^g,63),g=C,T=m,F=A,t=m+j|0,t=(t=(A=A+w|0)>>>0>>0?t+1|0:t)+(I=a=s[n+228>>2])|0,A=Cn((j=m=(K=s[n+224>>2])+A|0)^Ae,(m=m>>>0>>0?t+1|0:t)^k,32),t=(k=C)+V|0,E=w=E+A|0,V=Cn(F^w,(t=w>>>0>>0?t+1|0:t)^T,24),w=t,F=s[n+236>>2],I=V,t=(T=C)+m|0,t=(t=(j=j+V|0)>>>0>>0?t+1|0:t)+F|0,ce=Cn((j=V=(re=s[n+232>>2])+(m=j)|0)^A,(V=k)^(k=m>>>0>j>>>0?t+1|0:t),16),t=(t=w)+(w=C)|0,m=Cn(I^(A=V=(m=ce)+E|0),(E=m>>>0>A>>>0?t+1|0:t)^T,63),T=C,I=h,ne=f,ae=ge,t=h+O|0,t=(t=(ge=f+z|0)>>>0>>0?t+1|0:t)+(H=Ae=s[n+244>>2])|0,h=t=(f=(V=s[n+240>>2])+(h=ge)|0)>>>0>>0?t+1|0:t,ee=Cn(f^ee,t^M,32),t=(t=Y)+(Y=C)|0,z=M=ae+(O=ee)|0,I=Cn(ne^M,(t=O>>>0>M>>>0?t+1|0:t)^I,24),ne=ae=C,M=t,O=Y,me=I,t=h+ae|0,t=(t=(I=f+I|0)>>>0>>0?t+1|0:t)+(ge=s[n+252>>2])|0,I=f=(Y=s[n+248>>2])+(h=I)|0,H=Cn(f^ee,(H=O)^(O=f>>>0>>0?t+1|0:t),16),t=(t=M)+(M=C)|0,ee=Cn(me^(ae=f=(h=H)+z|0),(f=f>>>0>>0?t+1|0:t)^ne,63),ne=t=C,h=t,me=_,t=l+Ae|0,t=(t=(_=V)>>>0>(z=_+ie|0)>>>0?t+1|0:t)+h|0,z=Cn(me^(h=_=(l=z)+ee|0),(_=l>>>0>h>>>0?t+1|0:t)^d,32),t=E+(l=C)|0,A=t=(d=A+z|0)>>>0>>0?t+1|0:t,ie=ee=Cn(ee^d,ne^t,24),ne=t=C,E=t,ve=ee,t=_+le|0,t=(t=(ee=h+J|0)>>>0>>0?t+1|0:t)+E|0,ie=h=ie+(_=ee)|0,me=Cn(h^z,(E=l)^(l=h>>>0<_>>>0?t+1|0:t),16),t=A+(E=C)|0,A=t=(h=d+me|0)>>>0>>0?t+1|0:t,ee=Cn(ve^(d=h),t^ne,63),_=C,z=D,t=se+(h=B)|0,t=(t=(D=N+D|0)>>>0>>0?t+1|0:t)+P|0,N=t=(B=b+D|0)>>>0>>0?t+1|0:t,P=Cn(B^ce,t^w,32),t=(t=f)+(f=C)|0,t=(w=(b=P)+ae|0)>>>0>>0?t+1|0:t,b=h,h=t,D=Cn(z^w,b^t,24),se=t=C,b=t,z=P,t=N+L|0,t=(t=(P=B+te|0)>>>0>>0?t+1|0:t)+b|0,t=(B=(N=P)+D|0)>>>0>>0?t+1|0:t,N=B,b=t,ce=Cn(z^B,t^f,16),t=h+(P=C)|0,ae=f=w+ce|0,D=Cn(f^D,(h=f>>>0>>0?t+1|0:t)^se,63),f=C,B=g,t=g+he|0,t=(t=(w=x+U|0)>>>0>>0?t+1|0:t)+k|0,M=Cn((x=g=w+j|0)^H,(g=g>>>0>>0?t+1|0:t)^M,32),t=v+(k=C)|0,t=u>>>0>(w=u+M|0)>>>0?t+1|0:t,u=B,B=t,u=v=Cn(w^U,u^t,24),U=t=C,j=t,z=M,t=g+ge|0,t=(t=(v=(M=Y)+x|0)>>>0>>0?t+1|0:t)+j|0,H=g=u+v|0,ne=Cn(z^g,(M=k)^(k=g>>>0>>0?t+1|0:t),16),t=B+(j=C)|0,U=Cn((x=g=w+ne|0)^u,(g=g>>>0>>0?t+1|0:t)^U,63),B=C,u=m,t=(w=T)+F|0,t=(t=(M=m+re|0)>>>0>>0?t+1|0:t)+O|0,v=Cn((M=m=I+M|0)^fe,(m=m>>>0>>0?t+1|0:t)^S,32),t=(t=p)+(p=C)|0,S=Cn(u^(O=T=v+de|0),(t=T>>>0>>0?t+1|0:t)^w,24),I=T=C,w=t,z=O,O=v,v=(t=M)+(M=Z)|0,t=m+pe|0,t=(t=v>>>0>>0?t+1|0:t)+T|0,M=m=v+(u=S)|0,v=t=m>>>0>>0?t+1|0:t,O=Cn(O^m,t^p,16),t=(T=C)+w|0,z=Cn(S^(u=p=z+(m=O)|0),(m=u>>>0>>0?t+1|0:t)^I,63),p=C,w=f,S=x,I=O,t=l+r|0,t=(t=(O=G)>>>0>(x=O+ie|0)>>>0?t+1|0:t)+f|0,x=Cn(I^(f=O=x+D|0),(l=T)^(T=f>>>0>>0?t+1|0:t),32),t=(t=g)+(g=C)|0,t=(l=x)>>>0>(O=S+l|0)>>>0?t+1|0:t,I=S=Cn((l=O)^D,t^w,24),D=w=C,O=t,ie=x,t=T+a|0,t=(t=(x=f+K|0)>>>0>>0?t+1|0:t)+w|0,w=f=(T=x)+S|0,fe=Cn(ie^f,(x=f>>>0>>0?t+1|0:t)^g,16),t=(t=O)+(O=C)|0,l=f=(g=fe)+l|0,se=Cn(f^I,(S=f>>>0>>0?t+1|0:t)^D,63),g=C,D=u,t=b+(f=B)|0,t=(t=(T=N+U|0)>>>0>>0?t+1|0:t)+(I=de=s[n+132>>2])|0,T=t=(B=(u=s[n+128>>2])+T|0)>>>0>>0?t+1|0:t,b=Cn(B^me,t^E,32),t=(t=m)+(m=C)|0,E=N=D+b|0,D=I=Cn(N^U,(t=N>>>0>>0?t+1|0:t)^f,24),U=f=C,N=t,ie=b,t=T+W|0,T=b=Q+B|0,t=(t=b>>>0>>0?t+1|0:t)+f|0,f=Cn(ie^(b=B=b+I|0),(f=m)^(m=b>>>0>>0?t+1|0:t),16),t=(t=N)+(N=C)|0,E=B=f+E|0,he=Cn(B^D,(I=B>>>0>>0?t+1|0:t)^U,63),B=C,T=p,t=k+X|0,t=(t=(U=R+H|0)>>>0>>0?t+1|0:t)+p|0,t=(k=(D=U)+z|0)>>>0>>0?t+1|0:t,D=k,p=t,U=Cn(k^ce,t^P,32),t=A+(k=C)|0,t=d>>>0>(P=d+U|0)>>>0?t+1|0:t,z=A=Cn((d=P)^z,t^T,24),ie=T=C,P=t,H=d,t=p+ue|0,t=(d=$)>>>0>(A=d+D|0)>>>0?t+1|0:t,d=A,t=t+T|0,A=k,k=t=d>>>0>(p=z+d|0)>>>0?t+1|0:t,ce=Cn((d=p)^U,A^t,16),t=(p=C)+P|0,z=Cn((P=T=H+(A=ce)|0)^z,(t=A>>>0>P>>>0?t+1|0:t)^ie,63),T=C,D=t,U=f,H=ee,t=o+(A=_)|0,t=(t=(f=oe)>>>0>(ee=f+ee|0)>>>0?t+1|0:t)+v|0,_=f=M+ee|0,v=Cn(f^ne,(v=j)^(j=f>>>0>>0?t+1|0:t),32),t=(f=C)+h|0,ie=M=v+ae|0,A=Cn(H^M,(t=M>>>0>>0?t+1|0:t)^A,24),ne=ae=C,h=t,M=f,ae=A,H=v,t=j+ne|0,t=(t=(v=A+_|0)>>>0<_>>>0?t+1|0:t)+(ee=s[n+156>>2])|0,j=_=(f=s[n+152>>2])+v|0,A=M,M=t=_>>>0>>0?t+1|0:t,H=Cn(H^_,A^t,16),t=(t=h)+(h=C)|0,A=t=(v=H)>>>0>(_=v+ie|0)>>>0?t+1|0:t,ie=Cn(ae^(v=_),t^ne,63),ae=t=C,_=t,ne=P,t=x+X|0,t=(t=(P=w+R|0)>>>0>>0?t+1|0:t)+_|0,_=w=P+ie|0,U=Cn(w^U,(x=N)^(N=w>>>0

>>0?t+1|0:t),32),t=(w=C)+D|0,x=t=(P=ne+(x=U)|0)>>>0>>0?t+1|0:t,ae=ie=Cn(ie^P,ae^t,24),ne=t=C,D=t,me=U,t=N+L|0,t=(t=(U=_+te|0)>>>0<_>>>0?t+1|0:t)+D|0,t=(_=(N=U)+ie|0)>>>0>>0?t+1|0:t,N=_,D=w,w=t,ie=Cn(me^_,D^t,16),t=x+(D=C)|0,t=(_=P+ie|0)>>>0

>>0?t+1|0:t,P=_,x=t,te=Cn(_^ae,t^ne,63),_=C,U=g,ne=se,t=g+a|0,t=m+(K>>>0>(se=K+se|0)>>>0?t+1|0:t)|0,L=g=b+se|0,se=Cn(g^ce,(m=p)^(p=g>>>0>>0?t+1|0:t),32),t=A+(g=C)|0,b=t=(m=v+se|0)>>>0>>0?t+1|0:t,U=A=Cn(ne^m,t^U,24),ce=t=C,v=t,t=p+de|0,t=(t=(A=u+L|0)>>>0>>0?t+1|0:t)+v|0,L=p=U+(u=A)|0,se=Cn(p^se,(v=p>>>0>>0?t+1|0:t)^g,16),t=b+(u=C)|0,de=p=m+se|0,A=Cn(p^U,(m=p>>>0>>0?t+1|0:t)^ce,63),p=C,t=o+(g=B)|0,t=k+((b=oe)>>>0>(U=b+he|0)>>>0?t+1|0:t)|0,b=h,h=t=d>>>0>(B=d+U|0)>>>0?t+1|0:t,U=Cn((d=B)^H,b^t,32),t=S+(B=C)|0,t=l>>>0>(k=l+U|0)>>>0?t+1|0:t,l=g,g=t,l=Cn(k^he,l^t,24),he=t=C,b=t,ne=l,t=h+W|0,t=(t=(l=Q)>>>0>(S=l+d|0)>>>0?t+1|0:t)+b|0,ce=h=ne+(l=S)|0,H=Cn(h^U,(b=h>>>0>>0?t+1|0:t)^B,16),t=g+(l=C)|0,U=h=k+H|0,S=Cn(ne^h,(B=h>>>0>>0?t+1|0:t)^he,63),h=C,t=ge+(g=T)|0,t=M+((d=(k=Y)+z|0)>>>0>>0?t+1|0:t)|0,k=t=(T=j+d|0)>>>0>>0?t+1|0:t,d=Cn(T^fe,t^O,32),t=I+(j=C)|0,O=g,g=t=E>>>0>(M=E+d|0)>>>0?t+1|0:t,E=Cn(M^z,O^t,24),z=t=C,O=t,ne=d,t=k+F|0,t=(t=(d=T+re|0)>>>0>>0?t+1|0:t)+O|0,d=Cn(ne^(O=T=d+(I=E)|0),(I=j)^(j=d>>>0>O>>>0?t+1|0:t),16),t=g+(k=C)|0,E=Cn(E^(I=T=M+d|0),(T=I>>>0>>0?t+1|0:t)^z,63),g=C,M=p,z=A,ne=d,t=w+le|0,w=d=N+J|0,t=(t=d>>>0>>0?t+1|0:t)+p|0,A=Cn(ne^(d=N=d+A|0),(p=w>>>0>d>>>0?t+1|0:t)^k,32),t=(t=B)+(B=C)|0,N=t=(k=A+U|0)>>>0>>0?t+1|0:t,U=M=Cn(z^k,t^M,24),z=t=C,w=t,t=p+Ae|0,t=(t=(d=(M=V)+d|0)>>>0>>0?t+1|0:t)+w|0,he=p=U+d|0,fe=Cn(p^A,(w=p>>>0>>0?t+1|0:t)^B,16),t=N+(M=C)|0,U=Cn((ae=p=k+fe|0)^U,(p=p>>>0>>0?t+1|0:t)^z,63),B=C,k=h,A=S,t=v+ee|0,t=(t=(S=f+L|0)>>>0>>0?t+1|0:t)+h|0,h=t=(v=S)>>>0>(N=A+v|0)>>>0?t+1|0:t,S=Cn((v=N)^ie,t^D,32),t=(t=T)+(T=C)|0,t=(d=S)>>>0>(N=d+I|0)>>>0?t+1|0:t,I=A=Cn(A^(d=N),t^k,24),N=t,D=d,d=S,S=(t=v)+(v=Z)|0,t=h+pe|0,t=(t=v>>>0>S>>>0?t+1|0:t)+(k=C)|0,t=(h=(v=S)+A|0)>>>0>>0?t+1|0:t,v=h,S=t,d=Cn(d^h,t^T,16),t=(A=C)+N|0,T=Cn((ie=h=D+d|0)^I,(h=h>>>0>>0?t+1|0:t)^k,63),k=C,N=g,D=E,t=b+ue|0,t=(t=(I=(E=$)+ce|0)>>>0>>0?t+1|0:t)+g|0,E=b=D+I|0,g=t=b>>>0>>0?t+1|0:t,I=Cn(b^se,t^u,32),t=x+(b=C)|0,x=u=P+I|0,D=u=Cn(D^u,(t=u>>>0

>>0?t+1|0:t)^N,24),L=N=C,P=t,z=x,t=g+r|0,t=(t=(u=(x=G)+E|0)>>>0>>0?t+1|0:t)+N|0,t=(g=D+u|0)>>>0>>0?t+1|0:t,x=g,u=b,b=t,ce=Cn(g^I,u^t,16),t=(t=P)+(P=C)|0,D=Cn((g=z+(N=ce)|0)^D,(t=g>>>0>>0?t+1|0:t)^L,63),N=C,E=g,I=t,t=j+(u=_)|0,_=g=O+te|0,t=(t=g>>>0>>0?t+1|0:t)+(L=s[n+204>>2])|0,_=t=(g=(z=s[n+200>>2])+g|0)>>>0<_>>>0?t+1|0:t,O=Cn(g^H,t^l,32),t=(t=m)+(m=C)|0,t=(l=O)>>>0>(j=l+de|0)>>>0?t+1|0:t,u=Cn((l=j)^te,t^u,24),H=de=C,j=t,ne=l,de=O,t=_+H|0,t=(t=(O=g+u|0)>>>0>>0?t+1|0:t)+(te=s[n+164>>2])|0,O=g=(se=s[n+160>>2])+(_=O)|0,de=Cn(de^g,(l=g>>>0<_>>>0?t+1|0:t)^m,16),t=(t=j)+(j=C)|0,u=Cn(u^(ne=g=ne+(m=de)|0),(g=g>>>0>>0?t+1|0:t)^H,63),H=t=C,m=t,me=d,t=w+ue|0,t=(t=(d=(_=$)+he|0)>>>0<_>>>0?t+1|0:t)+m|0,A=Cn(me^(m=_=d+u|0),(_=d>>>0>m>>>0?t+1|0:t)^A,32),t=(w=C)+I|0,E=d=E+A|0,I=Cn(u^d,(t=d>>>0>>0?t+1|0:t)^H,24),H=u=C,d=t,he=E,me=A,t=_+L|0,t=(t=(A=m+z|0)>>>0>>0?t+1|0:t)+u|0,E=m=A+I|0,me=Cn(me^m,(u=w)^(w=m>>>0>>0?t+1|0:t),16),t=(u=C)+d|0,he=Cn((ve=m=he+(_=me)|0)^I,(m=m>>>0<_>>>0?t+1|0:t)^H,63),_=C,t=ee+(d=B)|0,t=(t=(A=f+U|0)>>>0>>0?t+1|0:t)+S|0,A=Cn((S=f=A+v|0)^ce,(f=f>>>0>>0?t+1|0:t)^P,32),t=(t=g)+(g=C)|0,v=t=A>>>0>(B=A+ne|0)>>>0?t+1|0:t,I=d=Cn(B^U,t^d,24),U=t=C,P=t,d=(t=S)+(S=G)|0,t=f+r|0,t=(t=d>>>0>>0?t+1|0:t)+P|0,ee=f=I+d|0,ce=Cn(f^A,(P=f>>>0>>0?t+1|0:t)^g,16),t=v+(S=C)|0,H=f=B+ce|0,d=Cn(f^I,(g=f>>>0>>0?t+1|0:t)^U,63),f=C,A=T,t=(B=k)+F|0,t=(t=(v=T+re|0)>>>0>>0?t+1|0:t)+b|0,k=t=(T=v+x|0)>>>0>>0?t+1|0:t,b=Cn(T^de,t^j,32),t=(t=p)+(p=C)|0,t=(v=b)>>>0>(j=v+ae|0)>>>0?t+1|0:t,x=Cn(A^(v=j),t^B,24),I=B=C,j=t,U=v,F=b,t=k+a|0,k=b=T+K|0,t=(t=b>>>0>>0?t+1|0:t)+B|0,de=Cn(F^(b=T=b+(A=x)|0),(v=k>>>0>b>>>0?t+1|0:t)^p,16),t=(t=j)+(j=C)|0,I=Cn(x^(A=p=U+(B=de)|0),(B=A>>>0>>0?t+1|0:t)^I,63),p=C,T=N,t=N+X|0,t=(t=(x=R+D|0)>>>0>>0?t+1|0:t)+l|0,t=(k=O+x|0)>>>0>>0?t+1|0:t,O=k,k=t,x=Cn(O^fe,t^M,32),t=(t=h)+(h=C)|0,l=T,T=t=(N=(M=x)+ie|0)>>>0>>0?t+1|0:t,D=l=Cn(N^D,l^t,24),U=t=C,M=t,F=x,x=(t=O)+(O=V)|0,t=k+Ae|0,t=(t=O>>>0>x>>>0?t+1|0:t)+M|0,M=k=(O=x)+l|0,l=Cn(F^k,(O=k>>>0>>0?t+1|0:t)^h,16),t=T+(k=C)|0,t=(h=N+l|0)>>>0>>0?t+1|0:t,N=h,x=t,D=Cn(h^D,t^U,63),h=C,T=f,U=d,F=l,t=w+W|0,t=(t=(d=(l=Q)+E|0)>>>0>>0?t+1|0:t)+f|0,f=t=d>>>0>(w=U+d|0)>>>0?t+1|0:t,l=Cn(F^w,t^k,32),t=(t=B)+(B=C)|0,t=(d=l)>>>0>(k=d+A|0)>>>0?t+1|0:t,E=A=Cn(U^(d=k),t^T,24),k=t,U=l,l=(t=w)+(w=Z)|0,t=f+pe|0,t=(t=l>>>0>>0?t+1|0:t)+(T=C)|0,w=f=l+A|0,l=t=f>>>0>>0?t+1|0:t,f=(B=fe=Cn(U^f,t^B,16))+d|0,t=(d=C)+k|0,A=f,F=Cn(k=f^E,(E=f>>>0>>0?t+1|0:t)^T,63),T=C,t=P+o|0,t=(t=(B=oe)>>>0>(k=B+ee|0)>>>0?t+1|0:t)+(f=p)|0,P=B=k+I|0,u=Cn(B^me,(p=B>>>0>>0?t+1|0:t)^u,32),t=x+(B=C)|0,t=(k=N+u|0)>>>0>>0?t+1|0:t,N=k,x=Cn(k^I,t^f,24),U=f=C,k=t,ee=N,t=p+le|0,t=(N=J)>>>0>(P=N+P|0)>>>0?t+1|0:t,N=P,t=t+f|0,P=p=P+(I=x)|0,p=Cn(p^u,(x=p>>>0>>0?t+1|0:t)^B,16),t=(N=C)+k|0,ae=f=ee+p|0,re=Cn(f^I,(B=f>>>0

>>0?t+1|0:t)^U,63),k=C,U=D,t=v+te|0,t=(t=(u=b+se|0)>>>0>>0?t+1|0:t)+(f=h)|0,I=Cn((h=b=u+D|0)^ce,(b=u>>>0>h>>>0?t+1|0:t)^S,32),t=(t=m)+(m=C)|0,D=v=(S=I)+ve|0,u=Cn(U^v,(t=v>>>0>>0?t+1|0:t)^f,24),v=f=C,S=t,U=u,t=b+f|0,t=(t=(u=h+u|0)>>>0>>0?t+1|0:t)+(ee=s[n+132>>2])|0,b=h=(f=s[n+128>>2])+u|0,u=t=h>>>0>>0?t+1|0:t,ce=Cn(h^I,t^m,16),t=(t=S)+(S=C)|0,ie=Cn(U^(h=(m=ce)+D|0),(t=h>>>0>>0?t+1|0:t)^v,63),m=C,I=h,D=t,U=p,t=ge+(v=_)|0,t=(t=(h=(p=Y)+he|0)>>>0

>>0?t+1|0:t)+O|0,M=Cn((h=p=h+M|0)^de,(_=h>>>0>>0?t+1|0:t)^j,32),t=(p=C)+g|0,t=(O=M)>>>0>(j=O+H|0)>>>0?t+1|0:t,v=Cn((O=j)^he,t^v,24),ne=H=C,g=t,j=p,de=M,t=_+H|0,t=(t=(M=h+v|0)>>>0>>0?t+1|0:t)+(he=s[n+196>>2])|0,M=h=(p=s[n+192>>2])+(_=M)|0,de=Cn(de^h,(H=j)^(j=h>>>0<_>>>0?t+1|0:t),16),t=(t=g)+(g=C)|0,v=Cn(v^(H=h=(_=de)+O|0),(h=h>>>0<_>>>0?t+1|0:t)^ne,63),ne=t=C,_=t,t=l+L|0,t=(t=(O=w+z|0)>>>0>>0?t+1|0:t)+_|0,t=(w=O+v|0)>>>0>>0?t+1|0:t,O=w,_=t,l=Cn(w^U,t^N,32),t=(N=C)+D|0,I=w=I+l|0,D=Cn(v^w,(t=w>>>0>>0?t+1|0:t)^ne,24),L=w=C,v=t,U=l,t=_+ee|0,t=(t=(l=f+O|0)>>>0>>0?t+1|0:t)+w|0,z=_=l+D|0,ne=Cn(U^_,(w=_>>>0>>0?t+1|0:t)^N,16),t=(t=v)+(v=C)|0,O=_=(N=ne)+I|0,L=Cn(_^D,(l=_>>>0>>0?t+1|0:t)^L,63),N=C,t=o+(_=T)|0,t=x+((I=oe)>>>0>(D=I+F|0)>>>0?t+1|0:t)|0,P=t=(T=P+D|0)>>>0

>>0?t+1|0:t,I=Cn(T^ce,t^S,32),t=(t=h)+(h=C)|0,t=(S=I)>>>0>(x=S+H|0)>>>0?t+1|0:t,S=_,_=t,D=Cn(x^F,S^t,24),F=t=C,S=t,U=I,t=P+ue|0,t=(t=(I=T+$|0)>>>0>>0?t+1|0:t)+S|0,S=t=(T=(P=I)+D|0)>>>0

>>0?t+1|0:t,ce=Cn(U^(P=T),t^h,16),t=_+(I=C)|0,H=h=x+ce|0,D=Cn(h^D,(T=h>>>0>>0?t+1|0:t)^F,63),h=C,_=k,t=k+W|0,t=u+(Q>>>0>(U=Q+re|0)>>>0?t+1|0:t)|0,u=g,g=t=b>>>0>(k=b+U|0)>>>0?t+1|0:t,U=Cn(k^de,u^t,32),t=E+(b=C)|0,u=_,_=t=A>>>0>(x=A+U|0)>>>0?t+1|0:t,E=A=Cn(x^re,u^t,24),u=t=C,t=g+te|0,t=(t=(A=k+se|0)>>>0>>0?t+1|0:t)+u|0,te=g=E+A|0,se=Cn(g^U,(k=g>>>0>>0?t+1|0:t)^b,16),t=_+(b=C)|0,re=g=x+se|0,A=Cn(g^E,(_=g>>>0>>0?t+1|0:t)^u,63),g=C,x=m,t=m+le|0,t=j+((u=J)>>>0>(E=u+ie|0)>>>0?t+1|0:t)|0,d=Cn((u=m=M+E|0)^fe,(m=u>>>0>>0?t+1|0:t)^d,32),t=(t=B)+(B=C)|0,U=x=Cn((E=j=d+ae|0)^ie,(t=d>>>0>E>>>0?t+1|0:t)^x,24),F=j=C,M=t,t=m+ge|0,t=(t=(u=(x=Y)+u|0)>>>0>>0?t+1|0:t)+j|0,j=m=U+u|0,d=Cn(m^d,(x=m>>>0>>0?t+1|0:t)^B,16),t=(t=M)+(M=C)|0,ie=m=d+E|0,U=Cn(m^U,(B=m>>>0>>0?t+1|0:t)^F,63),m=C,F=D,de=d,t=w+Ae|0,t=(t=(d=V)>>>0>(E=d+z|0)>>>0?t+1|0:t)+(u=h)|0,h=t=(d=E)>>>0>(w=d+D|0)>>>0?t+1|0:t,E=Cn(de^(d=w),t^M,32),t=(t=_)+(_=C)|0,D=w=(M=E)+re|0,F=u=Cn(F^w,(t=w>>>0>>0?t+1|0:t)^u,24),re=w=C,M=t,t=h+r|0,t=(t=(d=(u=G)+d|0)>>>0>>0?t+1|0:t)+w|0,fe=h=F+d|0,de=Cn(h^E,(u=_)^(_=h>>>0>>0?t+1|0:t),16),t=(w=C)+M|0,M=h=(u=de)+D|0,F=Cn(h^F,(u=h>>>0>>0?t+1|0:t)^re,63),h=C,D=A,t=S+X|0,S=A=R+P|0,t=(t=A>>>0

>>0?t+1|0:t)+(d=g)|0,E=Cn((A=P=D+A|0)^ne,(g=A>>>0>>0?t+1|0:t)^v,32),t=(t=B)+(B=C)|0,P=t=(v=(P=E)+ie|0)>>>0

>>0?t+1|0:t,D=d=Cn(D^v,t^d,24),re=t=C,S=t,t=g+a|0,t=(t=(d=K)>>>0>(A=d+A|0)>>>0?t+1|0:t)+S|0,S=g=D+(d=A)|0,B=Cn(g^E,(d=g>>>0>>0?t+1|0:t)^B,16),t=P+(A=C)|0,t=(g=v+B|0)>>>0>>0?t+1|0:t,v=g,P=t,re=Cn(g^D,t^re,63),g=C,E=m,z=U,t=k+pe|0,t=(t=(D=Z)>>>0>(U=D+te|0)>>>0?t+1|0:t)+m|0,t=(k=z+(D=U)|0)>>>0>>0?t+1|0:t,D=k,m=t,U=Cn(k^ce,t^I,32),t=l+(k=C)|0,l=t=(I=O+U|0)>>>0>>0?t+1|0:t,I=Cn(z^(O=I),t^E,24),z=t=C,E=t,t=m+he|0,t=(t=(D=p+D|0)>>>0

>>0?t+1|0:t)+E|0,E=m=(te=I)+(I=D)|0,ie=Cn(m^U,(D=k)^(k=m>>>0>>0?t+1|0:t),16),t=l+(I=C)|0,t=(m=O+ie|0)>>>0>>0?t+1|0:t,O=m,te=Cn(m^te,t^z,63),m=C,D=t,ne=L,t=x+(l=N)|0,t=(t=(L=j+L|0)>>>0>>0?t+1|0:t)+(z=ce=s[n+156>>2])|0,j=t=(N=(U=s[n+152>>2])+(j=L)|0)>>>0>>0?t+1|0:t,x=Cn(N^se,t^b,32),t=(t=T)+(T=C)|0,L=b=x+H|0,z=l=Cn(ne^b,(t=b>>>0>>0?t+1|0:t)^l,24),H=se=C,b=t,ne=ae=s[n+236>>2],ae=L,L=x,t=j+H|0,t=(t=(l=l+N|0)>>>0>>0?t+1|0:t)+ne|0,t=(N=(x=s[n+232>>2])+l|0)>>>0>>0?t+1|0:t,l=T,T=t,se=Cn(L^N,l^t,16),t=(j=C)+b|0,z=Cn((b=l=ae+(L=se)|0)^z,(l=l>>>0>>0?t+1|0:t)^H,63),H=t=C,L=t,ae=B,t=_+W|0,t=(t=(B=Q+fe|0)>>>0>>0?t+1|0:t)+L|0,A=Cn(ae^(L=Q=B+z|0),(Q=Q>>>0>>0?t+1|0:t)^A,32),t=(B=C)+D|0,D=_=O+A|0,W=Cn(z^_,H^(t=_>>>0>>0?t+1|0:t),24),fe=_=C,O=t,z=D,H=A,t=Q+a|0,t=(t=(A=K)>>>0>(D=A+L|0)>>>0?t+1|0:t)+_|0,H=Cn(H^(_=Q=(A=D)+W|0),(A=A>>>0>_>>>0?t+1|0:t)^B,16),t=(t=O)+(O=C)|0,D=Q=z+(B=H)|0,z=Cn(Q^W,(L=Q>>>0>>0?t+1|0:t)^fe,63),B=C,Q=h,ae=F,t=h+pe|0,t=d+(Z>>>0>(F=Z+F|0)>>>0?t+1|0:t)|0,I=Cn((W=h=S+F|0)^ie,(h=h>>>0>>0?t+1|0:t)^I,32),t=l+(S=C)|0,t=(d=b+I|0)>>>0>>0?t+1|0:t,b=d,l=Q,Q=t,F=d=Cn(ae^d,l^t,24),ie=t=C,l=t,ae=d,fe=I,t=h+le|0,t=(t=(d=J)>>>0>(I=d+W|0)>>>0?t+1|0:t)+l|0,F=h=F+(d=I)|0,fe=Cn(fe^h,(l=h>>>0>>0?t+1|0:t)^S,16),t=Q+(S=C)|0,t=(h=b+fe|0)>>>0>>0?t+1|0:t,b=h,d=t,I=Cn(ae^h,t^ie,63),h=C,Q=g,t=g+ee|0,t=(t=(W=f+re|0)>>>0>>0?t+1|0:t)+k|0,t=(f=E+W|0)>>>0>>0?t+1|0:t,E=f,f=t,W=Cn(E^se,t^j,32),t=u+(g=C)|0,u=Q,Q=t=(k=M+W|0)>>>0>>0?t+1|0:t,u=M=Cn(k^re,u^t,24),re=t=C,j=t,t=f+X|0,t=(t=(M=R+E|0)>>>0>>0?t+1|0:t)+j|0,E=R=u+(f=M)|0,W=Cn(R^W,(M=g)^(g=f>>>0>R>>>0?t+1|0:t),16),t=Q+(j=C)|0,X=R=k+W|0,M=Cn(R^u,(f=R>>>0>>0?t+1|0:t)^re,63),Q=C,R=m,t=m+he|0,t=(t=(k=p+te|0)>>>0

>>0?t+1|0:t)+T|0,t=(p=k+N|0)>>>0>>0?t+1|0:t,N=p,p=t,w=Cn(N^de,t^w,32),t=P+(m=C)|0,u=R,R=t=v>>>0>(T=v+w|0)>>>0?t+1|0:t,P=v=Cn(T^te,u^t,24),u=t=C,t=p+ce|0,t=(t=(N=N+U|0)>>>0>>0?t+1|0:t)+u|0,k=p=N+v|0,w=Cn(p^w,(v=m)^(m=p>>>0>>0?t+1|0:t),16),t=R+(N=C)|0,u=Cn((v=p=T+w|0)^P,(p=p>>>0>>0?t+1|0:t)^u,63),R=C,T=h,U=w,t=h+A|0,t=(w=_+I|0)>>>0<_>>>0?t+1|0:t,_=w,t=t+(P=s[n+164>>2])|0,P=Cn(U^(w=h=w+s[n+160>>2]|0),(h=h>>>0<_>>>0?t+1|0:t)^N,32),t=(t=f)+(f=C)|0,A=T,T=t=(_=(N=P)+X|0)>>>0>>0?t+1|0:t,A=Cn(_^I,A^t,24),U=t=C,N=t,t=h+ne|0,t=(t=(w=w+x|0)>>>0>>0?t+1|0:t)+N|0,re=Cn((X=h=w+A|0)^P,(h=h>>>0>>0?t+1|0:t)^f,16),t=T+(N=C)|0,T=f=_+re|0,I=Cn(f^A,(_=f>>>0<_>>>0?t+1|0:t)^U,63),f=C,A=M,x=v,t=l+ue|0,t=(t=(v=(M=$)+F|0)>>>0>>0?t+1|0:t)+(w=Q)|0,O=Cn((P=M=A+v|0)^H,(Q=v>>>0>P>>>0?t+1|0:t)^O,32),t=(t=p)+(p=C)|0,l=w,w=t=(v=O)>>>0>(M=x+v|0)>>>0?t+1|0:t,l=x=Cn(A^M,l^t,24),A=t=C,x=O,t=Q+o|0,t=(t=(O=oe)>>>0>(P=O+P|0)>>>0?t+1|0:t)+A|0,P=Cn(x^(v=Q=P+l|0),(O=v>>>0

>>0?t+1|0:t)^p,16),t=w+(x=C)|0,U=Cn((w=Q=M+P|0)^l,(M=w>>>0>>0?t+1|0:t)^A,63),Q=C,F=u,t=g+ge|0,t=(l=Y)>>>0>(u=l+E|0)>>>0?t+1|0:t,l=u,t=t+(p=R)|0,A=Cn((u=g=F+u|0)^fe,(R=u>>>0>>0?t+1|0:t)^S,32),t=L+(g=C)|0,S=p,p=t=(l=D+A|0)>>>0>>0?t+1|0:t,E=Cn(F^l,S^t,24),L=t=C,S=t,D=A,A=(t=u)+(u=V)|0,t=R+Ae|0,t=(t=u>>>0>A>>>0?t+1|0:t)+S|0,S=t=(u=A)>>>0>(R=u+E|0)>>>0?t+1|0:t,F=Cn(D^R,t^g,16),t=p+(u=C)|0,D=Cn((g=l+F|0)^E,(t=g>>>0>>0?t+1|0:t)^L,63),p=C,A=t,t=r+(l=B)|0,t=m+((E=G)>>>0>(L=E+z|0)>>>0?t+1|0:t)|0,E=B=k+L|0,L=Cn(B^W,(m=B>>>0>>0?t+1|0:t)^j,32),t=d+(B=C)|0,j=t=b>>>0>(k=b+L|0)>>>0?t+1|0:t,W=t=Cn(k^z,t^l,24),b=t,l=t+E|0,t=(d=C)+m|0,t=(t=l>>>0>>0?t+1|0:t)+(te=s[n+204>>2])|0,t=(m=l+s[n+200>>2]|0)>>>0>>0?t+1|0:t,l=B,B=t,te=Cn(m^L,l^t,16),t=j+(b=C)|0,t=(l=k+te|0)>>>0>>0?t+1|0:t,k=l,j=t,d=Cn(W^l,t^d,63),l=t=C,E=g,W=P,t=h+a|0,t=(t=(g=K)>>>0>(P=g+X|0)>>>0?t+1|0:t)+l|0,W=Cn(W^(L=h=(g=P)+d|0),(h=h>>>0>>0?t+1|0:t)^x,32),t=(g=C)+A|0,x=t=(P=E+(x=W)|0)>>>0>>0?t+1|0:t,d=Cn(d^P,l^t,24),E=t=C,l=t,H=d,t=h+o|0,t=(t=(d=oe)>>>0>(A=d+L|0)>>>0?t+1|0:t)+l|0,W=Cn((l=h=H+(d=A)|0)^W,(d=l>>>0>>0?t+1|0:t)^g,16),t=x+(A=C)|0,t=(h=P+W|0)>>>0

>>0?t+1|0:t,P=h,x=t,h=Cn(H^h,t^E,63),g=C,E=f,H=I,t=f+r|0,t=O+((I=G)>>>0>(L=H+I|0)>>>0?t+1|0:t)|0,u=Cn((I=f=v+L|0)^F,(f=f>>>0>>0?t+1|0:t)^u,32),t=j+(v=C)|0,j=t=k>>>0>(O=k+u|0)>>>0?t+1|0:t,L=E=Cn(H^(k=O),t^E,24),X=t=C,O=t,H=E,F=u,t=f+ge|0,t=(t=(u=Y)>>>0>(E=u+I|0)>>>0?t+1|0:t)+O|0,L=f=L+(u=E)|0,F=Cn(F^f,(O=v)^(v=f>>>0>>0?t+1|0:t),16),t=j+(O=C)|0,t=(f=k+F|0)>>>0>>0?t+1|0:t,k=f,j=t,I=Cn(H^f,t^X,63),f=C,H=U,t=Ae+(u=Q)|0,t=S+((E=V)>>>0>(U=E+U|0)>>>0?t+1|0:t)|0,E=Cn((S=Q=R+U|0)^te,(Q=R>>>0>S>>>0?t+1|0:t)^b,32),t=_+(R=C)|0,t=(b=T+E|0)>>>0>>0?t+1|0:t,T=b,_=t,t=Cn(H^b,t^u,24),X=s[n+236>>2],H=t,u=S,S=t,u=u+t|0,t=(b=C)+Q|0,t=(t=u>>>0>>0?t+1|0:t)+X|0,u=t=(Q=u+s[n+232>>2]|0)>>>0>>0?t+1|0:t,X=Cn((S=Q)^E,t^R,16),t=_+(E=C)|0,U=Q=T+X|0,b=Cn(H^Q,(R=Q>>>0>>0?t+1|0:t)^b,63),Q=C,T=p,H=D,t=p+B|0,t=(t=(_=m+D|0)>>>0>>0?t+1|0:t)+(te=s[n+164>>2])|0,N=Cn((D=p=(m=_)+s[n+160>>2]|0)^re,(p=p>>>0>>0?t+1|0:t)^N,32),t=M+(m=C)|0,M=T,T=t=w>>>0>(B=w+N|0)>>>0?t+1|0:t,M=w=Cn(H^B,M^t,24),re=t=C,_=t,H=N,t=p+le|0,t=(t=(w=(N=J)+D|0)>>>0>>0?t+1|0:t)+_|0,te=p=M+w|0,w=Cn(H^p,(_=m)^(m=p>>>0>>0?t+1|0:t),16),t=T+(_=C)|0,t=(p=B+w|0)>>>0>>0?t+1|0:t,B=p,T=t,D=Cn(p^M,t^re,63),p=C,N=f,H=w,t=f+d|0,t=(t=(w=l+I|0)>>>0>>0?t+1|0:t)+(M=s[n+132>>2])|0,l=Cn(H^(M=f=w+s[n+128>>2]|0),(f=f>>>0>>0?t+1|0:t)^_,32),t=(t=R)+(R=C)|0,d=N,N=t=l>>>0>(_=l+U|0)>>>0?t+1|0:t,d=Cn(_^I,d^t,24),U=t=C,w=t,I=l,l=(t=M)+(M=$)|0,t=f+ue|0,t=(t=l>>>0>>0?t+1|0:t)+w|0,re=f=l+d|0,ee=Cn(I^f,(w=f>>>0>>0?t+1|0:t)^R,16),t=N+(M=C)|0,N=t=(R=_+ee|0)>>>0<_>>>0?t+1|0:t,I=Cn((_=R)^d,t^U,63),R=C,U=b,t=v+pe|0,v=l=(b=Z)+L|0,t=(t=l>>>0>>0?t+1|0:t)+(f=Q)|0,d=Cn((l=b=U+l|0)^W,(Q=v>>>0>l>>>0?t+1|0:t)^A,32),t=T+(b=C)|0,t=(v=B+d|0)>>>0>>0?t+1|0:t,B=v,A=f,f=t,t=Cn(U^v,A^t,24),U=s[n+156>>2],A=t,v=t,l=t+l|0,t=(T=C)+Q|0,t=(t=l>>>0>>0?t+1|0:t)+U|0,t=l>>>0>(Q=l+s[n+152>>2]|0)>>>0?t+1|0:t,l=b,b=t,L=Cn((v=Q)^d,l^t,16),t=f+(l=C)|0,d=T,T=t=(Q=B+L|0)>>>0>>0?t+1|0:t,U=Cn(A^(B=Q),d^t,63),f=C,Q=p,t=p+u|0,t=(t=(d=S+D|0)>>>0>>0?t+1|0:t)+(A=s[n+204>>2])|0,t=(p=d+s[n+200>>2]|0)>>>0>>0?t+1|0:t,d=O,O=t,d=Cn(p^F,d^t,32),t=x+(S=C)|0,t=(u=P+d|0)>>>0

>>0?t+1|0:t,P=u,A=Q,Q=t,u=Cn(u^D,A^t,24),A=t=C,F=u,t=t+O|0,t=(t=(u=p+u|0)>>>0

>>0?t+1|0:t)+(D=s[n+148>>2])|0,t=(p=u+s[n+144>>2]|0)>>>0>>0?t+1|0:t,O=p,u=S,S=t,W=Cn(p^d,u^t,16),t=Q+(u=C)|0,t=(p=P+W|0)>>>0

>>0?t+1|0:t,P=p,x=t,D=Cn(F^p,A^t,63),p=C,Q=g,F=h,t=g+m|0,g=d=h+te|0,t=(t=d>>>0>>0?t+1|0:t)+(A=s[n+196>>2])|0,A=Cn((d=h=d+s[n+192>>2]|0)^X,(h=d>>>0>>0?t+1|0:t)^E,32),t=j+(g=C)|0,Q=Cn(F^(m=k+A|0),(t=m>>>0>>0?t+1|0:t)^Q,24),k=t,X=s[n+220>>2],E=Q,H=m,t=(m=C)+h|0,h=d=d+Q|0,t=(t=d>>>0>>0?t+1|0:t)+(F=X)|0,F=Cn(Q=(d=Q=(j=s[n+216>>2])+d|0)^A,(A=h>>>0>d>>>0?t+1|0:t)^g,16),t=(t=k)+(k=C)|0,t=(h=F)>>>0>(Q=H+h|0)>>>0?t+1|0:t,h=m,m=t,t=Cn(E^Q,h^t,63),z=s[n+236>>2],H=t,g=t,E=t+re|0,t=(h=C)+w|0,t=(t=g>>>0>E>>>0?t+1|0:t)+z|0,L=Cn((E=g=(w=E)+s[n+232>>2]|0)^L,(g=g>>>0>>0?t+1|0:t)^l,32),t=x+(w=C)|0,t=(l=P+L|0)>>>0

>>0?t+1|0:t,P=l,x=h,h=t,t=Cn(H^l,x^t,24),H=L,l=t,E=t+E|0,t=(x=C)+g|0,t=X+(l>>>0>E>>>0?t+1|0:t)|0,L=g=E+j|0,X=Cn(H^g,(E=w)^(w=g>>>0>>0?t+1|0:t),16),t=h+(j=C)|0,t=(g=P+X|0)>>>0

>>0?t+1|0:t,P=g,h=x,x=t,h=Cn(l^g,h^t,63),g=C,H=I,t=ue+(l=R)|0,t=b+((I=(E=$)+I|0)>>>0>>0?t+1|0:t)|0,u=Cn((E=R=v+I|0)^W,(R=v>>>0>R>>>0?t+1|0:t)^u,32),t=m+(b=C)|0,t=(v=Q+u|0)>>>0>>0?t+1|0:t,Q=v,m=t,I=l=Cn(H^v,t^l,24),W=t=C,v=t,H=u,t=R+Ae|0,t=(t=(l=V)>>>0>(u=l+E|0)>>>0?t+1|0:t)+v|0,re=R=I+(l=u)|0,te=Cn(H^R,(u=b)^(b=l>>>0>R>>>0?t+1|0:t),16),t=m+(v=C)|0,E=Cn((m=R=Q+te|0)^I,(l=m>>>0>>0?t+1|0:t)^W,63),Q=C,R=f,t=f+a|0,t=S+((u=K)>>>0>(I=u+U|0)>>>0?t+1|0:t)|0,u=Cn((S=f=O+I|0)^F,(f=f>>>0>>0?t+1|0:t)^k,32),t=N+(k=C)|0,t=_>>>0>(O=_+u|0)>>>0?t+1|0:t,_=O,O=R,R=t,I=O=Cn(_^U,O^t,24),U=t=C,N=t,t=f+r|0,t=(t=(O=G)>>>0>(S=O+S|0)>>>0?t+1|0:t)+N|0,N=f=I+S|0,W=Cn(f^u,(O=k)^(k=f>>>0>>0?t+1|0:t),16),t=R+(O=C)|0,t=(f=_+W|0)>>>0<_>>>0?t+1|0:t,_=f,S=t,I=Cn(f^I,t^U,63),R=C,t=A+(f=p)|0,t=(t=(u=d+D|0)>>>0>>0?t+1|0:t)+(U=s[n+156>>2])|0,d=M,M=t=(p=u+s[n+152>>2]|0)>>>0>>0?t+1|0:t,A=Cn(p^ee,d^t,32),t=T+(u=C)|0,t=(d=B+A|0)>>>0>>0?t+1|0:t,B=d,T=f,f=t,d=Cn(d^D,T^t,24),D=t=C,H=d,t=M+t|0,t=(t=(d=d+p|0)>>>0

>>0?t+1|0:t)+(U=s[n+204>>2])|0,F=p=d+s[n+200>>2]|0,d=Cn(p^A,(M=p>>>0>>0?t+1|0:t)^u,16),t=f+(p=C)|0,t=(u=B+d|0)>>>0>>0?t+1|0:t,B=u,T=t,D=Cn(H^u,D^t,63),f=C,U=d,t=w+o|0,t=(t=(d=oe)>>>0>(A=d+L|0)>>>0?t+1|0:t)+(u=Q)|0,Q=w=(d=A)+E|0,A=Cn(U^w,(A=p)^(p=d>>>0>w>>>0?t+1|0:t),32),t=S+(w=C)|0,t=(d=_+A|0)>>>0<_>>>0?t+1|0:t,_=d,S=t,d=Cn(d^E,t^u,24),u=t=C,E=d,t=p+t|0,t=(t=(d=d+Q|0)>>>0>>0?t+1|0:t)+(U=s[n+132>>2])|0,L=Q=d+s[n+128>>2]|0,ee=Cn(Q^A,(p=w)^(w=d>>>0>Q>>>0?t+1|0:t),16),t=S+(d=C)|0,S=t=(Q=_+ee|0)>>>0<_>>>0?t+1|0:t,U=Cn(E^(_=Q),t^u,63),Q=C,t=b+ge|0,t=(t=(u=Y)>>>0>(A=u+re|0)>>>0?t+1|0:t)+(p=R)|0,R=t=(u=A)>>>0>(b=u+I|0)>>>0?t+1|0:t,A=Cn((u=b)^X,t^j,32),t=T+(j=C)|0,t=B>>>0>(b=B+A|0)>>>0?t+1|0:t,B=b,E=p,p=t,t=Cn(b^I,E^t,24),I=s[n+164>>2],E=t,b=t,u=t+u|0,t=(T=C)+R|0,t=(t=u>>>0>>0?t+1|0:t)+I|0,t=(R=u+s[n+160>>2]|0)>>>0>>0?t+1|0:t,u=j,j=t,u=Cn((b=R)^A,u^t,16),t=p+(A=C)|0,p=T,T=t=(R=B+u|0)>>>0>>0?t+1|0:t,R=Cn(E^(B=R),p^t,63),p=C,E=f,H=D,t=f+k|0,t=(t=(I=N+D|0)>>>0>>0?t+1|0:t)+(X=s[n+196>>2])|0,D=Cn((I=f=(k=I)+s[n+192>>2]|0)^te,(f=f>>>0>>0?t+1|0:t)^v,32),t=x+(k=C)|0,v=t=(N=P+D|0)>>>0

>>0?t+1|0:t,x=Cn(H^N,t^E,24),X=t=C,P=t,H=x,t=f+pe|0,t=(t=(E=(x=Z)+I|0)>>>0>>0?t+1|0:t)+P|0,re=f=H+(x=E)|0,te=Cn(f^D,(E=k)^(k=f>>>0>>0?t+1|0:t),16),t=v+(P=C)|0,t=(f=N+te|0)>>>0>>0?t+1|0:t,N=f,E=Cn(H^f,t^X,63),f=C,v=g,x=t,H=h,t=g+M|0,t=(t=(I=h+F|0)>>>0>>0?t+1|0:t)+(D=s[n+148>>2])|0,O=Cn((I=h=(g=I)+s[n+144>>2]|0)^W,(h=h>>>0>>0?t+1|0:t)^O,32),t=l+(g=C)|0,t=m>>>0>(M=m+O|0)>>>0?t+1|0:t,m=M,M=t,D=l=Cn(H^m,t^v,24),W=t=C,v=t,F=O,t=h+le|0,t=(t=(l=(O=J)+I|0)>>>0>>0?t+1|0:t)+v|0,v=h=D+l|0,X=Cn(F^h,(O=h>>>0>>0?t+1|0:t)^g,16),t=M+(g=C)|0,t=(h=m+X|0)>>>0>>0?t+1|0:t,m=h,M=t,l=Cn(h^D,t^W,63),I=t=C,h=t,D=N,W=u,t=w+pe|0,w=u=(N=Z)+L|0,t=(t=u>>>0>>0?t+1|0:t)+h|0,A=Cn(W^(u=N=u+l|0),(h=w>>>0>u>>>0?t+1|0:t)^A,32),t=(N=C)+x|0,x=t=(w=D+A|0)>>>0>>0?t+1|0:t,I=Cn(l^w,I^t,24),L=t=C,l=t,D=A,A=(t=u)+(u=Y)|0,t=h+ge|0,t=(t=u>>>0>A>>>0?t+1|0:t)+l|0,W=h=(u=A)+I|0,F=Cn(D^h,(l=N)^(N=h>>>0>>0?t+1|0:t),16),t=x+(l=C)|0,t=(h=w+F|0)>>>0>>0?t+1|0:t,w=h,x=t,D=Cn(h^I,t^L,63),h=C,t=Ae+(u=Q)|0,t=j+((A=V)>>>0>(I=A+U|0)>>>0?t+1|0:t)|0,P=Cn((A=Q=b+I|0)^te,(Q=A>>>0>>0?t+1|0:t)^P,32),t=M+(j=C)|0,M=t=m>>>0>(b=m+P|0)>>>0?t+1|0:t,t=Cn((m=b)^U,t^u,24),U=s[n+204>>2],I=t,L=P,P=t,u=t+A|0,t=(b=C)+Q|0,t=(t=u>>>0

>>0?t+1|0:t)+U|0,U=Q=u+s[n+200>>2]|0,L=Cn(L^Q,(A=j)^(j=Q>>>0>>0?t+1|0:t),16),t=M+(P=C)|0,M=Q=m+L|0,A=Cn(I^Q,(u=b)^(b=m>>>0>Q>>>0?t+1|0:t),63),Q=C,m=p,H=R,t=p+k|0,t=(t=(u=R+re|0)>>>0>>0?t+1|0:t)+(I=s[n+220>>2])|0,u=Cn((k=R=u+s[n+216>>2]|0)^X,(R=u>>>0>k>>>0?t+1|0:t)^g,32),t=S+(p=C)|0,S=m,m=t=(g=_+u|0)>>>0<_>>>0?t+1|0:t,t=Cn(H^g,S^t,24),X=s[n+156>>2],I=t,S=k,k=t,S=S+t|0,t=(_=C)+R|0,t=(t=k>>>0>S>>>0?t+1|0:t)+X|0,X=R=(k=S)+s[n+152>>2]|0,re=Cn(R^u,(k=R>>>0>>0?t+1|0:t)^p,16),t=m+(S=C)|0,p=Cn(I^(m=R=g+re|0),(u=_)^(_=g>>>0>m>>>0?t+1|0:t),63),g=C,R=f,t=f+O|0,t=(t=(u=v+E|0)>>>0>>0?t+1|0:t)+(I=s[n+132>>2])|0,v=t=(f=u+s[n+128>>2]|0)>>>0>>0?t+1|0:t,d=Cn(f^ee,t^d,32),t=T+(O=C)|0,t=(u=B+d|0)>>>0>>0?t+1|0:t,B=u,I=R,R=t,u=Cn(u^E,I^t,24),E=t=C,H=u,t=v+t|0,t=(t=(u=f+u|0)>>>0>>0?t+1|0:t)+(I=s[n+196>>2])|0,t=(f=u+s[n+192>>2]|0)>>>0>>0?t+1|0:t,v=f,u=O,O=t,d=Cn(f^d,u^t,16),t=R+(f=C)|0,t=(u=B+d|0)>>>0>>0?t+1|0:t,B=u,T=t,I=Cn(H^u,E^t,63),R=C,H=A,E=d,t=N+a|0,t=(t=(d=K)>>>0>(A=d+W|0)>>>0?t+1|0:t)+(u=Q)|0,Q=N=H+(d=A)|0,A=Cn(E^N,(A=f)^(f=d>>>0>N>>>0?t+1|0:t),32),t=_+(N=C)|0,E=d=m+A|0,d=Cn(H^d,(t=d>>>0>>0?t+1|0:t)^u,24),_=t,te=s[n+148>>2],W=d,t=f+(m=C)|0,t=(t=(d=d+Q|0)>>>0>>0?t+1|0:t)+(ee=te)|0,z=Cn((ee=Q=(u=s[n+144>>2])+d|0)^A,(Q=d>>>0>Q>>>0?t+1|0:t)^N,16),t=(t=_)+(_=C)|0,t=(f=(N=z)+E|0)>>>0>>0?t+1|0:t,N=f,d=t,f=Cn(W^f,t^m,63),m=C,H=p,t=(A=g)+j|0,t=(t=(E=p+U|0)>>>0

>>0?t+1|0:t)+(W=s[n+236>>2])|0,l=Cn((E=p=(g=E)+s[n+232>>2]|0)^F,(p=g>>>0>p>>>0?t+1|0:t)^l,32),t=T+(g=C)|0,T=t=B>>>0>(j=B+l|0)>>>0?t+1|0:t,U=A=Cn(H^(B=j),t^A,24),W=t=C,j=t,H=l,t=p+ue|0,t=(t=(l=$)>>>0>(A=l+E|0)>>>0?t+1|0:t)+j|0,F=p=U+(l=A)|0,l=Cn(H^p,(j=p>>>0>>0?t+1|0:t)^g,16),t=T+(A=C)|0,T=p=B+l|0,U=Cn(p^U,(E=p>>>0>>0?t+1|0:t)^W,63),p=C,W=I,t=k+r|0,t=(t=(B=G)>>>0>(I=B+X|0)>>>0?t+1|0:t)+(g=R)|0,I=Cn((R=B=W+(k=I)|0)^L,(B=B>>>0>>0?t+1|0:t)^P,32),t=x+(k=C)|0,x=Cn(W^(P=w+I|0),(t=w>>>0>P>>>0?t+1|0:t)^g,24),w=t,X=s[n+164>>2],L=x,H=P,t=B+(g=C)|0,B=x=R+x|0,t=(t=x>>>0>>0?t+1|0:t)+(W=X)|0,x=k,k=t=(R=(P=s[n+160>>2])+B|0)>>>0>>0?t+1|0:t,se=Cn(R^I,x^t,16),t=(t=w)+(w=C)|0,x=t=(B=H+(x=se)|0)>>>0>>0?t+1|0:t,L=Cn(L^B,t^g,63),g=C,I=h,H=D,t=h+le|0,t=O+((D=J)>>>0>(W=H+D|0)>>>0?t+1|0:t)|0,S=Cn((D=h=v+W|0)^re,(h=h>>>0>>0?t+1|0:t)^S,32),t=b+(v=C)|0,b=t=(O=M+S|0)>>>0>>0?t+1|0:t,W=I=Cn(H^(M=O),t^I,24),re=t=C,O=t,H=S,t=h+o|0,t=(t=(I=(S=oe)+D|0)>>>0>>0?t+1|0:t)+O|0,O=h=W+I|0,D=Cn(H^h,(S=v)^(v=h>>>0>>0?t+1|0:t),16),t=b+(S=C)|0,t=(h=M+D|0)>>>0>>0?t+1|0:t,M=h,b=t,I=Cn(h^W,t^re,63),W=t=C,h=t,H=l,t=Q+le|0,Q=l=J+ee|0,t=(t=l>>>0>>0?t+1|0:t)+h|0,A=Cn(H^(l=J=l+I|0),(Q=Q>>>0>l>>>0?t+1|0:t)^A,32),t=x+(h=C)|0,le=J=B+A|0,x=t=B>>>0>J>>>0?t+1|0:t,H=J=Cn(I^J,W^t,24),t=(B=C)+Q|0,t=(t=(l=l+J|0)>>>0>>0?t+1|0:t)+te|0,W=Cn((I=J=l+u|0)^A,(l=u>>>0>I>>>0?t+1|0:t)^h,16),t=(t=x)+(x=C)|0,le=J=(Q=W)+le|0,h=Cn(H^J,(Q=Q>>>0>J>>>0?t+1|0:t)^B,63),B=C,J=m,H=f,t=m+j|0,m=u=f+F|0,t=(t=u>>>0>>0?t+1|0:t)+(A=s[n+196>>2])|0,A=Cn((u=f=u+s[n+192>>2]|0)^se,(f=u>>>0>>0?t+1|0:t)^w,32),t=b+(m=C)|0,b=J,J=t=(w=M+A|0)>>>0>>0?t+1|0:t,H=t=Cn(H^w,b^t,24),M=t,b=t+u|0,t=(j=C)+f|0,t=X+(b>>>0>>0?t+1|0:t)|0,X=f=b+P|0,F=Cn(f^A,(u=m)^(m=f>>>0

>>0?t+1|0:t),16),t=J+(M=C)|0,t=(f=w+F|0)>>>0>>0?t+1|0:t,w=f,u=j,j=t,u=Cn(H^f,u^t,63),J=C,t=ue+(f=p)|0,t=k+((b=$)>>>0>(P=b+U|0)>>>0?t+1|0:t)|0,b=p=R+P|0,P=Cn(p^D,(R=p>>>0>>0?t+1|0:t)^S,32),t=d+(p=C)|0,d=f,f=t=(k=N+P|0)>>>0>>0?t+1|0:t,d=S=Cn(k^U,d^t,24),A=t=C,S=P,P=(t=b)+(b=Z)|0,t=R+pe|0,t=(t=b>>>0>P>>>0?t+1|0:t)+A|0,N=R=(b=P)+d|0,D=Cn(S^R,(b=R>>>0>>0?t+1|0:t)^p,16),t=f+(P=C)|0,f=Cn((U=R=k+D|0)^d,(R=R>>>0>>0?t+1|0:t)^A,63),p=C,k=g,t=g+r|0,t=v+((d=(S=G)+L|0)>>>0>>0?t+1|0:t)|0,t=(g=O+d|0)>>>0>>0?t+1|0:t,O=g,g=t,S=Cn(O^z,t^_,32),t=E+(_=C)|0,t=(v=T+S|0)>>>0>>0?t+1|0:t,T=v,d=k,k=t,d=Cn(v^L,d^t,24),E=t=C,v=t,A=S,S=(t=O)+(O=oe)|0,t=g+o|0,t=(t=O>>>0>S>>>0?t+1|0:t)+v|0,L=g=S+d|0,S=Cn(A^g,(O=_)^(_=g>>>0>>0?t+1|0:t),16),t=k+(v=C)|0,t=(g=T+S|0)>>>0>>0?t+1|0:t,T=g,k=t,A=Cn(g^d,t^E,63),g=C,d=u,E=S,t=l+ge|0,t=(t=(u=(S=Y)+I|0)>>>0>>0?t+1|0:t)+(O=J)|0,S=l=d+u|0,J=t=l>>>0>>0?t+1|0:t,u=Cn(E^l,t^v,32),t=(t=R)+(R=C)|0,l=O,O=t=u>>>0>(v=u+U|0)>>>0?t+1|0:t,t=Cn(d^v,l^t,24),E=s[n+220>>2],d=t,U=u,l=S,S=t,u=l+t|0,t=(l=C)+J|0,t=(t=u>>>0>>0?t+1|0:t)+E|0,U=Cn(U^(I=J=u+s[n+216>>2]|0),(S=u>>>0>I>>>0?t+1|0:t)^R,16),t=O+(u=C)|0,O=t=v>>>0>(J=v+U|0)>>>0?t+1|0:t,J=Cn(d^(v=J),t^l,63),R=C,H=f,t=(l=p)+m|0,p=d=f+X|0,t=(t=d>>>0>>0?t+1|0:t)+(E=s[n+204>>2])|0,x=Cn((d=f=d+s[n+200>>2]|0)^W,(f=d>>>0

>>0?t+1|0:t)^x,32),t=k+(p=C)|0,T=t=(m=T+x|0)>>>0>>0?t+1|0:t,E=l=Cn(H^m,t^l,24),W=t=C,k=t,H=x,t=f+Ae|0,t=(t=(l=(x=V)+d|0)>>>0>>0?t+1|0:t)+k|0,X=f=E+l|0,re=Cn(H^f,(k=f>>>0>>0?t+1|0:t)^p,16),t=T+(x=C)|0,t=(f=m+re|0)>>>0>>0?t+1|0:t,m=f,T=t,f=Cn(f^E,t^W,63),p=C,H=A,t=(l=g)+b|0,t=(A=A+N|0)>>>0>>0?t+1|0:t,N=A,t=t+(E=W=s[n+156>>2])|0,E=Cn((A=g=(d=s[n+152>>2])+A|0)^F,(g=A>>>0>>0?t+1|0:t)^M,32),t=(t=Q)+(Q=C)|0,M=t=(N=E+le|0)>>>0>>0?t+1|0:t,le=l=Cn(H^N,t^l,24),F=t=C,b=t,H=l,t=g+a|0,t=(t=(l=K)>>>0>(A=l+A|0)>>>0?t+1|0:t)+b|0,le=g=le+(l=A)|0,te=Cn(g^E,(b=g>>>0>>0?t+1|0:t)^Q,16),t=M+(g=C)|0,t=(Q=N+te|0)>>>0>>0?t+1|0:t,N=Q,M=t,E=Cn(H^Q,t^F,63),Q=C,H=h,t=(l=B)+_|0,B=A=h+L|0,t=(t=A>>>0>>0?t+1|0:t)+(F=s[n+236>>2])|0,P=Cn((A=h=A+s[n+232>>2]|0)^D,(B=A>>>0>>0?t+1|0:t)^P,32),t=j+(_=C)|0,D=h=w+P|0,h=Cn(H^h,(t=h>>>0>>0?t+1|0:t)^l,24),j=t,F=s[n+132>>2],L=h,H=D,D=P,t=(w=C)+B|0,t=(t=(l=h+A|0)>>>0>>0?t+1|0:t)+F|0,t=(h=(P=s[n+128>>2])+l|0)>>>0>>0?t+1|0:t,B=h,l=_,_=t,D=Cn(D^h,l^t,16),t=(t=j)+(j=C)|0,t=(h=H+(l=D)|0)>>>0>>0?t+1|0:t,l=h,h=w,w=t,L=t=Cn(L^l,h^t,63),A=t,I=t+I|0,t=(h=C)+S|0,t=F+(A>>>0>I>>>0?t+1|0:t)|0,I=Cn((A=S=I+P|0)^re,(P=P>>>0>A>>>0?t+1|0:t)^x,32),t=M+(x=C)|0,t=N>>>0>(S=N+I|0)>>>0?t+1|0:t,N=S,S=h,h=t,L=S=Cn(L^N,S^t,24),F=t=C,M=t,H=S,t=P+r|0,t=(t=(A=(S=G)+A|0)>>>0>>0?t+1|0:t)+M|0,L=P=L+A|0,re=Cn(P^I,(M=P>>>0>>0?t+1|0:t)^x,16),t=h+(P=C)|0,t=N>>>0>(x=N+re|0)>>>0?t+1|0:t,N=x,x=t,I=Cn(H^N,t^F,63),h=C,S=R,H=J,t=R+k|0,R=A=J+X|0,t=(t=A>>>0>>0?t+1|0:t)+(F=s[n+148>>2])|0,X=Cn((A=J=A+s[n+144>>2]|0)^te,(J=R>>>0>A>>>0?t+1|0:t)^g,32),t=w+(R=C)|0,k=t=(g=l+X|0)>>>0>>0?t+1|0:t,F=t=Cn(H^g,t^S,24),l=t,S=t+A|0,t=(w=C)+J|0,t=W+(l>>>0>S>>>0?t+1|0:t)|0,W=J=d+S|0,X=Cn(J^X,(l=d>>>0>J>>>0?t+1|0:t)^R,16),t=k+(S=C)|0,R=Cn(F^(k=J=g+X|0),(d=w)^(w=g>>>0>k>>>0?t+1|0:t),63),g=C,J=p,F=f,t=p+b|0,p=d=f+le|0,t=(t=d>>>0>>0?t+1|0:t)+(A=s[n+164>>2])|0,A=Cn((d=f=d+s[n+160>>2]|0)^D,(f=d>>>0

>>0?t+1|0:t)^j,32),t=O+(p=C)|0,O=J,J=t=v>>>0>(j=v+A|0)>>>0?t+1|0:t,v=Cn(F^j,O^t,24),D=t=C,b=t,H=v,t=f+o|0,t=(t=(v=oe)>>>0>(O=v+d|0)>>>0?t+1|0:t)+b|0,le=f=H+(v=O)|0,F=Cn(f^A,(b=f>>>0>>0?t+1|0:t)^p,16),t=J+(v=C)|0,t=(f=j+F|0)>>>0>>0?t+1|0:t,j=f,O=t,f=Cn(H^f,t^D,63),p=C,J=Q,t=Q+pe|0,t=_+((d=Z)>>>0>(A=d+E|0)>>>0?t+1|0:t)|0,u=Cn((d=Q=B+A|0)^U,(Q=d>>>0>>0?t+1|0:t)^u,32),t=T+(B=C)|0,A=J,J=t=m>>>0>(_=m+u|0)>>>0?t+1|0:t,A=_=Cn((m=_)^E,A^t,24),E=t=C,D=u,t=Q+ue|0,t=(t=(u=(_=$)+d|0)>>>0<_>>>0?t+1|0:t)+E|0,T=Q=A+u|0,u=Cn(D^Q,(d=B)^(B=Q>>>0>>0?t+1|0:t),16),t=J+(_=C)|0,E=Cn((d=Q=m+u|0)^A,(Q=m>>>0>d>>>0?t+1|0:t)^E,63),J=C,m=g,D=R,U=u,t=g+M|0,t=(t=(u=R+L|0)>>>0>>0?t+1|0:t)+(A=s[n+196>>2])|0,u=Cn(U^(M=R=u+s[n+192>>2]|0),(R=u>>>0>R>>>0?t+1|0:t)^_,32),t=O+(g=C)|0,A=m,m=t=(_=j+u|0)>>>0>>0?t+1|0:t,t=Cn(D^_,A^t,24),D=s[n+204>>2],A=t,O=M,M=t,O=O+t|0,t=(j=C)+R|0,t=(t=O>>>0>>0?t+1|0:t)+D|0,U=R=O+s[n+200>>2]|0,L=Cn(R^u,(M=R>>>0>>0?t+1|0:t)^g,16),t=m+(O=C)|0,R=Cn(A^(m=R=_+L|0),(_=m>>>0<_>>>0?t+1|0:t)^j,63),g=C,j=p,D=f,H=d,t=p+l|0,t=(t=(d=f+W|0)>>>0>>0?t+1|0:t)+(A=te=s[n+212>>2])|0,d=Cn((l=f=(u=s[n+208>>2])+d|0)^re,(f=f>>>0>>0?t+1|0:t)^P,32),t=(t=Q)+(Q=C)|0,A=j,j=t=(p=H+d|0)>>>0>>0?t+1|0:t,t=Cn(D^p,A^t,24),D=s[n+220>>2],H=t,A=d,d=l,l=t,d=d+t|0,t=(P=C)+f|0,t=(t=d>>>0>>0?t+1|0:t)+D|0,W=f=d+s[n+216>>2]|0,d=Cn(A^f,(l=f>>>0>>0?t+1|0:t)^Q,16),t=j+(A=C)|0,j=Q=p+d|0,Q=Cn(H^Q,(f=P)^(P=p>>>0>Q>>>0?t+1|0:t),63),f=C,H=E,t=b+a|0,t=(t=(E=K)>>>0>(D=E+le|0)>>>0?t+1|0:t)+(p=J)|0,D=Cn((J=b=H+(E=D)|0)^X,(b=b>>>0>>0?t+1|0:t)^S,32),t=x+(S=C)|0,t=N>>>0>(E=N+D|0)>>>0?t+1|0:t,N=E,E=p,p=t,E=Cn(H^N,E^t,24),x=t=C,H=E,t=b+t|0,t=(t=(E=E+J|0)>>>0>>0?t+1|0:t)+(X=s[n+236>>2])|0,le=J=(b=E)+s[n+232>>2]|0,X=Cn(J^D,(b=b>>>0>J>>>0?t+1|0:t)^S,16),t=p+(S=C)|0,D=Cn(H^(p=J=N+X|0),(N=N>>>0>p>>>0?t+1|0:t)^x,63),J=C,x=h,H=I,t=h+Ae|0,t=B+((I=(E=V)+I|0)>>>0>>0?t+1|0:t)|0,v=Cn((E=h=T+I|0)^F,(h=h>>>0>>0?t+1|0:t)^v,32),t=w+(B=C)|0,k=t=k>>>0>(T=k+v|0)>>>0?t+1|0:t,I=x=Cn(H^T,t^x,24),F=t=C,w=t,H=v,t=h+ge|0,t=(t=(v=Y)>>>0>(x=v+E|0)>>>0?t+1|0:t)+w|0,w=h=I+(v=x)|0,E=Cn(H^h,(E=B)^(B=h>>>0>>0?t+1|0:t),16),t=k+(v=C)|0,t=(h=T+E|0)>>>0>>0?t+1|0:t,T=h,k=t,x=Cn(h^I,t^F,63),I=t=C,h=t,F=d,t=M+Ae|0,M=d=U+V|0,t=(t=d>>>0>>0?t+1|0:t)+h|0,A=Cn(F^(d=V=d+x|0),(V=M>>>0>d>>>0?t+1|0:t)^A,32),t=N+(h=C)|0,N=t=p>>>0>(M=p+A|0)>>>0?t+1|0:t,U=t=Cn(x^(p=M),I^t,24),x=t,d=t+d|0,t=(M=C)+V|0,t=te+(d>>>0>>0?t+1|0:t)|0,I=Cn((I=A)^(A=V=d+u|0),(x=u>>>0>A>>>0?t+1|0:t)^h,16),t=N+(u=C)|0,p=Cn(U^(N=V=p+I|0),(d=M)^(M=p>>>0>N>>>0?t+1|0:t),63),h=C,V=g,F=R,t=g+l|0,g=d=R+W|0,t=(t=d>>>0>>0?t+1|0:t)+(U=s[n+164>>2])|0,S=Cn((d=R=d+s[n+160>>2]|0)^X,(R=g>>>0>d>>>0?t+1|0:t)^S,32),t=k+(g=C)|0,t=(l=T+S|0)>>>0>>0?t+1|0:t,T=l,k=V,V=t,t=Cn(F^l,k^t,24),W=s[n+196>>2],F=t,U=S,l=t,S=t+d|0,t=(k=C)+R|0,t=(t=l>>>0>S>>>0?t+1|0:t)+W|0,U=Cn(U^(d=R=(l=S)+s[n+192>>2]|0),(S=g)^(g=l>>>0>d>>>0?t+1|0:t),16),t=V+(W=C)|0,t=(R=T+U|0)>>>0>>0?t+1|0:t,T=R,l=k,k=t,l=Cn(F^R,l^t,63),V=C,R=f,F=Q,t=f+b|0,t=(t=(S=Q+le|0)>>>0>>0?t+1|0:t)+(Ae=s[n+204>>2])|0,v=Cn((S=Q=(f=S)+s[n+200>>2]|0)^E,(Q=f>>>0>Q>>>0?t+1|0:t)^v,32),t=_+(f=C)|0,t=m>>>0>(b=m+v|0)>>>0?t+1|0:t,m=b,b=R,R=t,E=b=Cn(F^m,b^t,24),Ae=t=C,_=t,F=b,t=Q+ge|0,t=(t=(b=S+Y|0)>>>0>>0?t+1|0:t)+_|0,E=Cn((S=Y=E+b|0)^v,(E=f)^(f=b>>>0>S>>>0?t+1|0:t),16),t=R+(_=C)|0,b=t=m>>>0>(Y=m+E|0)>>>0?t+1|0:t,Y=Cn(F^(m=Y),t^Ae,63),Q=C,t=B+(R=J)|0,B=v=w+D|0,t=(t=v>>>0>>0?t+1|0:t)+(Ae=s[n+236>>2])|0,O=Cn((v=J=v+s[n+232>>2]|0)^L,(J=B>>>0>v>>>0?t+1|0:t)^O,32),t=P+(B=C)|0,P=R,R=t=(w=j+O|0)>>>0>>0?t+1|0:t,P=Cn(w^D,P^t,24),L=t=C,j=t,t=J+pe|0,t=(t=(v=v+Z|0)>>>0>>0?t+1|0:t)+j|0,D=Cn((j=Z=v+P|0)^O,(D=B)^(B=v>>>0>j>>>0?t+1|0:t),16),t=R+(pe=C)|0,v=t=w>>>0>(Z=w+D|0)>>>0?t+1|0:t,J=Cn(P^(w=Z),t^L,63),R=C,t=x+r|0,t=(t=(P=A+G|0)>>>0>>0?t+1|0:t)+(O=V)|0,t=P>>>0>(G=P+l|0)>>>0?t+1|0:t,P=G,G=t,t=a+t|0,K=t=(O=K+P|0)>>>0>>0?t+1|0:t,A=O,O=Cn(P^D,G^pe,32),t=b+(P=C)|0,x=Cn((b=G=m+O|0)^l,(G=m>>>0>b>>>0?t+1|0:t)^V,24),t=(l=C)+K|0,t=(m=x)>>>0>(V=A+m|0)>>>0?t+1|0:t,m=V,s[n>>2]=m,s[n+4>>2]=t,Z=t,t=Cn(m^O,t^P,16),O=V=C,s[n+120>>2]=t,s[n+124>>2]=O,K=t,b=t+b|0,t=O+G|0,s[n+80>>2]=b,t=b>>>0>>0?t+1|0:t,s[n+84>>2]=t,ye=n,be=Cn(x^b,t^l,63),s[ye+40>>2]=be,s[n+44>>2]=C,G=Q,l=Y,t=g+Q|0,t=(t=(K=d+Y|0)>>>0>>0?t+1|0:t)+(b=s[n+132>>2])|0,K=t=(Y=K+s[n+128>>2]|0)>>>0>>0?t+1|0:t,g=Cn(Y^I,t^u,32),t=v+(b=C)|0,d=G,G=t=w>>>0>(Q=w+g|0)>>>0?t+1|0:t,v=Cn(l^(w=Q),d^t,24),t=K+(O=C)|0,t=(Q=v+Y|0)>>>0>>0?t+1|0:t,Y=(K=s[n+144>>2])+Q|0,t=s[n+148>>2]+t|0,t=Y>>>0>>0?t+1|0:t,s[n+8>>2]=Y,s[n+12>>2]=t,t=Cn(g^Y,t^b,16),Q=V=C,s[n+96>>2]=t,s[n+100>>2]=Q,Y=t,K=t+w|0,t=Q+G|0,G=K,s[n+88>>2]=G,t=Y>>>0>G>>>0?t+1|0:t,s[n+92>>2]=t,ye=n,be=Cn(v^G,t^O,63),s[ye+48>>2]=be,s[n+52>>2]=C,d=$,t=f+R|0,t=(t=(Y=S+J|0)>>>0>>0?t+1|0:t)+(K=s[n+220>>2])|0,t=(V=Y+s[n+216>>2]|0)>>>0>>0?t+1|0:t,$=V,K=V,Y=d+V|0,V=t,t=t+ue|0,t=Y>>>0>>0?t+1|0:t,K=Y,Y=t,d=K,l=J,K=Cn(U^$,V^W,32),t=M+(J=C)|0,R=Cn(l^(Q=V=N+K|0),(V=N>>>0>Q>>>0?t+1|0:t)^R,24),t=(g=C)+Y|0,Y=$=d+(f=R)|0,s[n+16>>2]=Y,t=f>>>0>Y>>>0?t+1|0:t,s[n+20>>2]=t,t=Cn(Y^K,t^J,16),G=C,s[n+104>>2]=t,s[n+108>>2]=G,Y=t,$=t+Q|0,t=V+G|0,V=$,s[n+64>>2]=V,t=Y>>>0>V>>>0?t+1|0:t,s[n+68>>2]=t,ye=n,be=Cn(f^V,t^g,63),s[ye+56>>2]=be,s[n+60>>2]=C,t=h+o|0,t=(t=(Y=p+oe|0)>>>0

>>0?t+1|0:t)+B|0,oe=t=j>>>0>(Y=j+Y|0)>>>0?t+1|0:t,J=Cn(Y^E,t^_,32),t=k+(Q=C)|0,G=t=T>>>0>($=T+J|0)>>>0?t+1|0:t,R=Cn($^p,h^t,24),t=oe+(f=C)|0,t=Y>>>0>(K=R+Y|0)>>>0?t+1|0:t,Y=(oe=s[n+152>>2])+K|0,t=s[n+156>>2]+t|0,t=Y>>>0>>0?t+1|0:t,s[n+24>>2]=Y,s[n+28>>2]=t,t=Cn(J^Y,t^Q,16),s[n+112>>2]=t,oe=C,s[n+116>>2]=oe,Y=t+$|0,t=G+oe|0,G=Y,s[n+72>>2]=G,t=G>>>0<$>>>0?t+1|0:t,s[n+76>>2]=t,ye=n,be=Cn(R^G,t^f,63),s[ye+32>>2]=be,s[n+36>>2]=C,t=s[n+68>>2]^(c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24)^Z,G=s[n+64>>2]^(c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24)^m,i[0|e]=G,i[e+1|0]=G>>>8,i[e+2|0]=G>>>16,i[e+3|0]=G>>>24,i[e+4|0]=t,i[e+5|0]=t>>>8,i[e+6|0]=t>>>16,i[e+7|0]=t>>>24,Z=1;t=(G=Z<<3)+e|0,V=G=n+G|0,Y=s[G>>2]^(c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24),oe=s[(G=G- -64|0)>>2],G=s[G+4>>2]^s[V+4>>2]^(c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24),V=Y^oe,i[0|t]=V,i[t+1|0]=V>>>8,i[t+2|0]=V>>>16,i[t+3|0]=V>>>24,i[t+4|0]=G,i[t+5|0]=G>>>8,i[t+6|0]=G>>>16,i[t+7|0]=G>>>24,8!=(0|(Z=Z+1|0)););y=n+256|0}function w(e,t,n,r){var o=0,i=0,a=0,c=0,d=0,u=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,y=0,b=0,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,M=0,T=0,U=0,H=0,j=0,J=0,F=0;for(function(e,t){for(var n=0,r=0,o=0,i=0,a=0;i=o=(r=n<<3)+e|0,a=Te(t+r|0),s[i>>2]=a,s[o+4>>2]=C,16!=(0|(n=n+1|0)););}(n,t),t=q(r,e,64),l=s[n>>2],h=s[n+4>>2],r=0;;){if(o=Cn(E=s[(a=t)+32>>2],f=s[a+36>>2],14),m=C,o=Cn(E,f,18)^o,b=C^m,i=l,l=Cn(E,f,41)^o,o=(C^b)+h|0,o=l>>>0>(m=i+l|0)>>>0?o+1|0:o,l=m,p=s[a+48>>2],l=(b=s[(h=34784+(F=r<<3)|0)>>2])+l|0,o=s[h+4>>2]+o|0,o=l>>>0>>0?o+1|0:o,l=(h=p^((_=s[a+40>>2])^p)&E)+l|0,o=(((i=s[a+52>>2])^(I=s[a+44>>2]))&f^i)+o|0,o=l>>>0>>0?o+1|0:o,m=(d=l)+(l=s[a+56>>2])|0,o=s[a+60>>2]+o|0,o=l>>>0>m>>>0?o+1|0:o,h=m+(b=s[a+24>>2])|0,l=o,o=o+s[a+28>>2]|0,o=h>>>0>>0?o+1|0:o,b=h,g=o,s[a+24>>2]=h,s[a+28>>2]=o,o=Cn(w=s[a>>2],h=s[a+4>>2],28),y=C,o=Cn(w,h,34)^o,c=C^y,y=m+(Cn(w,h,39)^o)|0,o=l+(C^c)|0,o=m>>>0>y>>>0?o+1|0:o,m=(d=w&((c=s[a+16>>2])|(u=s[a+8>>2]))|c&u)+y|0,o=(h&((y=s[a+20>>2])|(l=s[a+12>>2]))|l&y)+o|0,m=o=d>>>0>(A=m)>>>0?o+1|0:o,s[a+56>>2]=A,s[a+60>>2]=o,o=Cn(b,g,14),d=C,T=Cn(b,g,18)^o,d^=C,v=c,o=((f^I)&g^I)+i|0,o=(c=(E^_)&b^_)>>>0>(p=c+p|0)>>>0?o+1|0:o,i=Cn(b,g,41)^T,o=(C^d)+o|0,o=i>>>0>(p=i+p|0)>>>0?o+1|0:o,p=(d=s[(c=T=(i=(1|r)<<3)+n|0)>>2])+p|0,o=s[c+4>>2]+o|0,o=d>>>0>p>>>0?o+1|0:o,p=(c=s[(i=i+34784|0)>>2])+p|0,o=s[i+4>>2]+o|0,c=o=c>>>0>p>>>0?o+1|0:o,o=o+y|0,y=p=v+(i=d=p)|0,i=o=i>>>0>p>>>0?o+1|0:o,s[a+16>>2]=p,s[a+20>>2]=o,p=a,o=Cn(A,m,28),a=C,B=Cn(A,m,34)^o,k=C^a,a=(o=d)+(d=(u|w)&A|u&w)|0,o=((l|h)&m|l&h)+c|0,o=a>>>0>>0?o+1|0:o,c=Cn(A,m,39)^B,o=(C^k)+o|0,B=a=c+a|0,a=o=a>>>0>>0?o+1|0:o,s[p+48>>2]=B,s[p+52>>2]=o,d=p,o=Cn(y,i,14),p=C,c=Cn(y,i,18)^o,k=C^p,v=u,o=((f^g)&i^f)+I|0,o=(u=(b^E)&y^E)>>>0>(p=u+_|0)>>>0?o+1|0:o,c=Cn(y,i,41)^c,o=(C^k)+o|0,o=c>>>0>(p=c+p|0)>>>0?o+1|0:o,p=(_=s[(u=N=(c=(2|r)<<3)+n|0)>>2])+p|0,o=s[u+4>>2]+o|0,o=p>>>0<_>>>0?o+1|0:o,p=(u=s[(c=c+34784|0)>>2])+p|0,o=s[c+4>>2]+o|0,o=u>>>0>p>>>0?o+1|0:o,p=v+(c=u=p)|0,v=l,l=o,o=v+o|0,c=o=c>>>0>p>>>0?o+1|0:o,s[d+8>>2]=p,s[d+12>>2]=o,o=Cn(B,a,28),_=C,I=Cn(B,a,34)^o,_^=C,o=((h|m)&a|h&m)+l|0,o=(u=(k=(A|w)&B|A&w)+u|0)>>>0>>0?o+1|0:o,l=u,u=Cn(B,a,39)^I,o=(C^_)+o|0,_=l=l+u|0,l=o=l>>>0>>0?o+1|0:o,s[d+40>>2]=_,s[d+44>>2]=o,u=d,o=Cn(p,c,14),d=C,I=Cn(p,c,18)^o,k=C^d,v=w,o=(g^(i^g)&c)+f|0,o=(d=(w=b^(y^b)&p)+E|0)>>>0>>0?o+1|0:o,f=d,d=Cn(p,c,41)^I,o=(C^k)+o|0,o=d>>>0>(f=f+d|0)>>>0?o+1|0:o,f=(I=s[(E=w=(d=(3|r)<<3)+n|0)>>2])+f|0,o=s[E+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,f=(E=s[(d=d+34784|0)>>2])+f|0,o=s[d+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,E=f,f=v+(d=f)|0,v=h,h=o,o=v+o|0,d=o=d>>>0>f>>>0?o+1|0:o,s[u>>2]=f,s[u+4>>2]=o,o=Cn(_,l,28),I=C,k=Cn(_,l,34)^o,I^=C,o=((a|m)&l|a&m)+h|0,o=(E=(P=(A|B)&_|A&B)+E|0)>>>0

>>0?o+1|0:o,h=E,E=Cn(_,l,39)^k,o=(C^I)+o|0,o=(h=h+E|0)>>>0>>0?o+1|0:o,E=h,h=o,s[u+32>>2]=E,s[u+36>>2]=o,o=Cn(f,d,14),I=C,k=Cn(f,d,18)^o,I^=C,v=A,o=g+(i^(i^c)&d)|0,o=(A=b+(y^(p^y)&f)|0)>>>0>>0?o+1|0:o,g=Cn(f,d,41)^k,o=(C^I)+o|0,o=g>>>0>(b=g+A|0)>>>0?o+1|0:o,b=(I=s[(A=x=(g=(4|r)<<3)+n|0)>>2])+b|0,o=s[A+4>>2]+o|0,o=b>>>0>>0?o+1|0:o,b=(A=s[(g=g+34784|0)>>2])+b|0,o=s[g+4>>2]+o|0,g=m,m=o=A>>>0>b>>>0?o+1|0:o,o=g+o|0,g=o=(A=b)>>>0>(b=v+A|0)>>>0?o+1|0:o,s[u+56>>2]=b,s[u+60>>2]=o,o=Cn(E,h,28),I=C,k=Cn(E,h,34)^o,I^=C,o=((a|l)&h|a&l)+m|0,o=(A=(P=(_|B)&E|_&B)+A|0)>>>0

>>0?o+1|0:o,m=A,A=Cn(E,h,39)^k,o=(C^I)+o|0,I=m=m+A|0,m=o=A>>>0>m>>>0?o+1|0:o,s[u+24>>2]=I,s[u+28>>2]=o,o=Cn(b,g,14),A=C,k=Cn(b,g,18)^o,P=C^A,v=B,o=i+(c^(c^d)&g)|0,o=(A=y+(p^(f^p)&b)|0)>>>0>>0?o+1|0:o,i=Cn(b,g,41)^k,o=(C^P)+o|0,o=i>>>0>(y=i+A|0)>>>0?o+1|0:o,y=(k=s[(A=B=(i=(5|r)<<3)+n|0)>>2])+y|0,o=s[A+4>>2]+o|0,o=y>>>0>>0?o+1|0:o,y=(A=s[(i=i+34784|0)>>2])+y|0,o=s[i+4>>2]+o|0,o=A>>>0>y>>>0?o+1|0:o,y=v+(i=A=y)|0,v=a,a=o,o=v+o|0,i=o=i>>>0>y>>>0?o+1|0:o,s[u+48>>2]=y,s[u+52>>2]=o,o=Cn(I,m,28),k=C,P=Cn(I,m,34)^o,k^=C,o=((l|h)&m|l&h)+a|0,o=(A=(S=(E|_)&I|E&_)+A|0)>>>0>>0?o+1|0:o,a=A,A=Cn(I,m,39)^P,o=(C^k)+o|0,P=a=a+A|0,a=o=a>>>0>>0?o+1|0:o,s[u+16>>2]=P,s[u+20>>2]=o,o=Cn(y,i,14),A=C,k=Cn(y,i,18)^o,S=C^A,v=_,o=c+(d^(d^g)&i)|0,o=(A=p+(f^(f^b)&y)|0)>>>0

>>0?o+1|0:o,c=Cn(y,i,41)^k,o=(C^S)+o|0,o=c>>>0>(p=c+A|0)>>>0?o+1|0:o,p=(_=s[(A=H=(c=(6|r)<<3)+n|0)>>2])+p|0,o=s[A+4>>2]+o|0,o=p>>>0<_>>>0?o+1|0:o,p=(A=s[(c=c+34784|0)>>2])+p|0,o=s[c+4>>2]+o|0,o=A>>>0>p>>>0?o+1|0:o,p=v+(c=A=p)|0,v=l,l=o,o=v+o|0,c=o=c>>>0>p>>>0?o+1|0:o,s[u+40>>2]=p,s[u+44>>2]=o,o=Cn(P,a,28),_=C,k=Cn(P,a,34)^o,_^=C,o=((h|m)&a|h&m)+l|0,o=(A=(S=(I|E)&P|I&E)+A|0)>>>0>>0?o+1|0:o,l=A,A=Cn(P,a,39)^k,o=(C^_)+o|0,S=l=l+A|0,l=o=l>>>0>>0?o+1|0:o,s[u+8>>2]=S,s[u+12>>2]=o,o=Cn(p,c,14),A=C,_=Cn(p,c,18)^o,k=C^A,v=E,o=d+(g^(i^g)&c)|0,o=(A=f+(b^(y^b)&p)|0)>>>0>>0?o+1|0:o,d=Cn(p,c,41)^_,o=(C^k)+o|0,o=d>>>0>(f=d+A|0)>>>0?o+1|0:o,f=(E=s[(A=_=(d=(7|r)<<3)+n|0)>>2])+f|0,o=s[A+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,f=(A=s[(d=d+34784|0)>>2])+f|0,o=s[d+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,f=v+(d=A=f)|0,v=h,h=o,o=v+o|0,d=o=d>>>0>f>>>0?o+1|0:o,s[u+32>>2]=f,s[u+36>>2]=o,o=Cn(S,l,28),E=C,k=Cn(S,l,34)^o,E^=C,o=((a|m)&l|a&m)+h|0,o=(A=(v=(I|P)&S|I&P)+A|0)>>>0>>0?o+1|0:o,h=A,A=Cn(S,l,39)^k,o=(C^E)+o|0,v=h=h+A|0,h=o=A>>>0>h>>>0?o+1|0:o,s[u>>2]=v,s[u+4>>2]=o,A=u,o=Cn(f,d,14),u=C,E=Cn(f,d,18)^o,k=C^u,o=g+(i^(i^c)&d)|0,o=(u=b+(y^(p^y)&f)|0)>>>0>>0?o+1|0:o,g=Cn(f,d,41)^E,o=(C^k)+o|0,o=g>>>0>(b=g+u|0)>>>0?o+1|0:o,b=(E=s[(u=k=(g=(8|r)<<3)+n|0)>>2])+b|0,o=s[u+4>>2]+o|0,o=b>>>0>>0?o+1|0:o,b=(u=s[(g=g+34784|0)>>2])+b|0,o=s[g+4>>2]+o|0,o=u>>>0>b>>>0?o+1|0:o,E=b,u=m,m=o,o=u+o|0,u=o=(g=b)>>>0>(b=g+I|0)>>>0?o+1|0:o,s[A+24>>2]=b,s[A+28>>2]=o,g=A,o=Cn(v,h,28),A=C,I=Cn(v,h,34)^o,O=C^A,A=(o=E)+(E=(S|P)&v|S&P)|0,o=((a|l)&h|a&l)+m|0,o=A>>>0>>0?o+1|0:o,m=A,A=Cn(v,h,39)^I,o=(C^O)+o|0,O=m=m+A|0,m=o=A>>>0>m>>>0?o+1|0:o,s[g+56>>2]=O,s[g+60>>2]=o,o=Cn(b,u,14),A=C,E=Cn(b,u,18)^o,I=C^A,o=i+(c^(c^d)&u)|0,o=(A=y+(p^(f^p)&b)|0)>>>0>>0?o+1|0:o,i=Cn(b,u,41)^E,o=(C^I)+o|0,o=i>>>0>(y=i+A|0)>>>0?o+1|0:o,y=(I=s[(A=E=(i=(9|r)<<3)+n|0)>>2])+y|0,o=s[A+4>>2]+o|0,o=y>>>0>>0?o+1|0:o,y=(A=s[(i=i+34784|0)>>2])+y|0,o=s[i+4>>2]+o|0,o=A>>>0>y>>>0?o+1|0:o,A=a,a=o,o=A+o|0,A=o=(i=y)>>>0>(y=i+P|0)>>>0?o+1|0:o,s[g+16>>2]=y,s[g+20>>2]=o,o=Cn(O,m,28),I=C,P=Cn(O,m,34)^o,I^=C,o=((l|h)&m|l&h)+a|0,o=(i=(Q=(v|S)&O|v&S)+i|0)>>>0>>0?o+1|0:o,a=i,i=Cn(O,m,39)^P,o=(C^I)+o|0,Q=a=a+i|0,a=o=a>>>0>>0?o+1|0:o,s[g+48>>2]=Q,s[g+52>>2]=o,o=Cn(y,A,14),i=C,I=Cn(y,A,18)^o,P=C^i,o=c+(d^(u^d)&A)|0,o=(i=p+(f^(f^b)&y)|0)>>>0

>>0?o+1|0:o,c=i,i=Cn(y,A,41)^I,o=(C^P)+o|0,o=i>>>0>(p=c+i|0)>>>0?o+1|0:o,p=(I=s[(c=P=(i=(10|r)<<3)+n|0)>>2])+p|0,o=s[c+4>>2]+o|0,o=p>>>0>>0?o+1|0:o,p=(c=s[(i=i+34784|0)>>2])+p|0,o=s[i+4>>2]+o|0,o=c>>>0>p>>>0?o+1|0:o,I=p,c=l,l=o,o=c+o|0,c=o=(i=p)>>>0>(p=i+S|0)>>>0?o+1|0:o,s[g+8>>2]=p,s[g+12>>2]=o,i=g,o=Cn(Q,a,28),g=C,S=Cn(Q,a,34)^o,D=C^g,g=(o=I)+(I=(v|O)&Q|v&O)|0,o=((h|m)&a|h&m)+l|0,o=g>>>0>>0?o+1|0:o,l=g,g=Cn(Q,a,39)^S,o=(C^D)+o|0,g=o=(l=l+g|0)>>>0>>0?o+1|0:o,s[i+40>>2]=l,s[i+44>>2]=o,o=Cn(p,c,14),I=C,S=Cn(p,c,18)^o,D=C^I,R=v,o=d+(u^(u^A)&c)|0,o=(I=f+(b^(y^b)&p)|0)>>>0>>0?o+1|0:o,d=Cn(p,c,41)^S,o=(C^D)+o|0,o=d>>>0>(f=d+I|0)>>>0?o+1|0:o,f=(v=s[(I=(d=(11|r)<<3)+n|0)>>2])+f|0,o=s[I+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,f=(S=s[(d=d+34784|0)>>2])+f|0,o=s[d+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,v=f,S=h,h=o,o=S+o|0,d=o=(d=f)>>>0>(f=R+d|0)>>>0?o+1|0:o,s[i>>2]=f,s[i+4>>2]=o,S=i,o=Cn(l,g,28),i=C,D=Cn(l,g,34)^o,M=C^i,i=(o=v)+(v=(O|Q)&l|O&Q)|0,o=((a|m)&g|a&m)+h|0,o=i>>>0>>0?o+1|0:o,h=i,i=Cn(l,g,39)^D,o=(C^M)+o|0,i=o=i>>>0>(h=h+i|0)>>>0?o+1|0:o,s[S+32>>2]=h,s[S+36>>2]=o,v=S,o=Cn(f,d,14),S=C,D=Cn(f,d,18)^o,M=C^S,R=O,o=u+(A^(c^A)&d)|0,o=(S=b+(y^(p^y)&f)|0)>>>0>>0?o+1|0:o,u=Cn(f,d,41)^D,o=(C^M)+o|0,o=u>>>0>(b=u+S|0)>>>0?o+1|0:o,b=(D=s[(O=S=(u=(12|r)<<3)+n|0)>>2])+b|0,o=s[O+4>>2]+o|0,o=b>>>0>>0?o+1|0:o,b=(O=s[(u=u+34784|0)>>2])+b|0,o=s[u+4>>2]+o|0,o=b>>>0>>0?o+1|0:o,O=b,b=R+(u=b)|0,R=m,m=o,o=R+o|0,D=b,b=o=u>>>0>b>>>0?o+1|0:o,s[v+56>>2]=D,s[v+60>>2]=o,u=v,o=Cn(h,i,28),v=C,M=Cn(h,i,34)^o,R=C^v,v=(o=O)+(O=(l|Q)&h|l&Q)|0,o=((a|g)&i|a&g)+m|0,o=v>>>0>>0?o+1|0:o,m=v,v=Cn(h,i,39)^M,o=(C^R)+o|0,O=m=m+v|0,m=o=m>>>0>>0?o+1|0:o,s[u+24>>2]=O,s[u+28>>2]=o,v=u,o=Cn(D,b,14),u=C,M=Cn(D,b,18)^o,R=C^u,U=Q,o=A+(c^(c^d)&b)|0,o=(u=y+(p^(f^p)&D)|0)>>>0>>0?o+1|0:o,A=u,u=Cn(D,b,41)^M,o=(C^R)+o|0,o=u>>>0>(y=A+u|0)>>>0?o+1|0:o,u=(u=y)+(M=s[(y=(A=(13|r)<<3)+n|0)>>2])|0,o=s[y+4>>2]+o|0,o=u>>>0>>0?o+1|0:o,u=(Q=s[(A=A+34784|0)>>2])+u|0,o=s[A+4>>2]+o|0,o=u>>>0>>0?o+1|0:o,Q=u,A=u,R=a,a=o,o=R+o|0,M=u=U+u|0,u=o=u>>>0>>0?o+1|0:o,s[v+48>>2]=M,s[v+52>>2]=o,A=v,o=Cn(O,m,28),v=C,R=Cn(O,m,34)^o,U=C^v,v=(o=Q)+(Q=(l|h)&O|l&h)|0,o=((i|g)&m|i&g)+a|0,o=v>>>0>>0?o+1|0:o,a=v,v=Cn(O,m,39)^R,o=(C^U)+o|0,Q=a=a+v|0,a=o=a>>>0>>0?o+1|0:o,s[A+16>>2]=Q,s[A+20>>2]=o,o=Cn(M,u,14),v=C,R=Cn(M,u,18)^o,U=C^v,o=c+(d^(d^b)&u)|0,o=(v=p+(f^(f^D)&M)|0)>>>0

>>0?o+1|0:o,c=Cn(M,u,41)^R,o=(C^U)+o|0,o=c>>>0>(p=c+v|0)>>>0?o+1|0:o,c=(c=p)+(U=s[(p=(v=(14|r)<<3)+n|0)>>2])|0,o=s[p+4>>2]+o|0,o=c>>>0>>0?o+1|0:o,c=(R=s[(v=v+34784|0)>>2])+c|0,o=s[v+4>>2]+o|0,U=c,v=o=c>>>0>>0?o+1|0:o,o=g+o|0,R=c=l+c|0,l=o=c>>>0>>0?o+1|0:o,s[A+40>>2]=c,s[A+44>>2]=o,c=A,o=Cn(Q,a,28),g=C,A=Cn(Q,a,34)^o,j=C^g,g=(o=U)+(U=(h|O)&Q|h&O)|0,o=((i|m)&a|i&m)+v|0,o=g>>>0>>0?o+1|0:o,A=Cn(Q,a,39)^A,o=(C^j)+o|0,o=A>>>0>(g=A+g|0)>>>0?o+1|0:o,A=g,g=o,s[c+8>>2]=A,s[c+12>>2]=o,o=Cn(R,l,14),c=C,U=Cn(R,l,18)^o,j=C^c,o=d+(b^(u^b)&l)|0,o=(v=f+(D^(D^M)&R)|0)>>>0>>0?o+1|0:o,b=Cn(R,l,41)^U,o=(C^j)+o|0,o=(l=b+v|0)>>>0>>0?o+1|0:o,l=(u=s[(d=b=(f=(15|r)<<3)+n|0)>>2])+l|0,o=s[d+4>>2]+o|0,o=l>>>0>>0?o+1|0:o,l=(d=s[(f=f+34784|0)>>2])+l|0,o=s[f+4>>2]+o|0,o=l>>>0>>0?o+1|0:o,f=h+(d=l)|0,l=o,o=i+o|0,s[(c=t)+32>>2]=f,s[c+36>>2]=f>>>0>>0?o+1|0:o,o=Cn(A,g,28),h=C,i=Cn(A,g,34)^o,c=C^h,o=((a|m)&g|a&m)+l|0,m=(f=(a=d)+(d=(O|Q)&A|O&Q)|0)+(a=Cn(A,g,39)^i)|0,o=(C^c)+(d>>>0>f>>>0?o+1|0:o)|0,s[(h=t)>>2]=m,s[h+4>>2]=a>>>0>m>>>0?o+1|0:o,64==(0|r)){for(;m=n=(r=J<<3)+e|0,r=(a=s[(o=t+r|0)>>2])+s[m>>2]|0,o=s[m+4>>2]+s[o+4>>2]|0,s[m>>2]=r,s[m+4>>2]=r>>>0>>0?o+1|0:o,8!=(0|(J=J+1|0)););break}g=((r=r+16|0)<<3)+n|0,O=m=s[p+4>>2],o=m>>>6|0,m=((63&m)<<26|(Q=s[p>>2])>>>6)^Cn(Q,m,19),o^=C,m=(i=Cn(Q,O,61)^m)+(a=v=s[E>>2])|0,o=(h=s[E+4>>2])+(C^o)|0,o=a>>>0>m>>>0?o+1|0:o,m=(l=s[(a=n+F|0)>>2])+m|0,o=s[a+4>>2]+o|0,m=l>>>0>(i=m)>>>0?o+1|0:o,l=a=s[T+4>>2],o=a>>>7|0,a=((127&a)<<25|(f=s[T>>2])>>>7)^Cn(f,a,1),o^=C,d=i,i=Cn(f,l,8)^a,o=(C^o)+m|0,c=a=d+i|0,a=o=a>>>0>>0?o+1|0:o,s[g>>2]=c,s[g+4>>2]=o,o=s[(g=T)+76>>2]+l|0,i=f,l=(f=s[g+72>>2])>>>0>(i=m=i+f|0)>>>0?o+1|0:o,m=f=s[b+4>>2],o=f>>>6|0,f=((63&f)<<26|(A=s[b>>2])>>>6)^Cn(A,f,19),o^=C,d=i,i=Cn(A,m,61)^f,o=(C^o)+l|0,l=i>>>0>(d=f=d+i|0)>>>0?o+1|0:o,f=i=s[g+12>>2],o=i>>>7|0,i=((127&i)<<25|(u=s[g+8>>2])>>>7)^Cn(u,i,1),o^=C,T=d,d=Cn(u,f,8)^i,o=(C^o)+l|0,o=(i=T+d|0)>>>0>>0?o+1|0:o,d=i,l=o,s[g+128>>2]=i,s[g+132>>2]=o,g=N,i=f,o=Cn(c,a,19),N=C,f=o,o=a>>>6|0,a=(a=Cn(c,a,61)^f^((63&a)<<26|c>>>6))+(c=T=s[I>>2])|0,o=(f=s[I+4>>2])+(C^o^N)|0,o=a>>>0>>0?o+1|0:o,c=a,o=o+i|0,u=a=a+u|0,a=a>>>0>>0?o+1|0:o,c=i=s[w+4>>2],o=i>>>7|0,i=((127&i)<<25|(N=s[w>>2])>>>7)^Cn(N,i,1),o^=C,R=u,u=Cn(N,c,8)^i,o=(C^o)+a|0,o=(i=R+u|0)>>>0>>0?o+1|0:o,u=i,a=o,s[g+128>>2]=i,s[g+132>>2]=o,g=(o=N)+(N=s[(i=w)+72>>2])|0,o=s[i+76>>2]+c|0,c=o=g>>>0>>0?o+1|0:o,o=Cn(d,l,19),N=C,w=g,g=o,o=l>>>6|0,g=Cn(d,l,61)^g^((63&l)<<26|d>>>6),o=(C^o^N)+c|0,N=l=w+g|0,l=l>>>0>>0?o+1|0:o,g=c=s[i+12>>2],o=c>>>7|0,c=((127&c)<<25|(d=s[i+8>>2])>>>7)^Cn(d,c,1),o^=C,w=Cn(d,g,8)^c,o=(C^o)+l|0,o=(c=w+N|0)>>>0>>0?o+1|0:o,w=c,l=o,s[i+128>>2]=c,s[i+132>>2]=o,i=x,c=g,o=Cn(u,a,19),x=C,R=d,d=o,o=a>>>6|0,a=(a=Cn(u,a,61)^d^((63&a)<<26|u>>>6))+(d=N=s[y>>2])|0,o=(g=s[y+4>>2])+(C^o^x)|0,o=a>>>0>>0?o+1|0:o,d=a,o=o+c|0,x=a=R+a|0,a=a>>>0>>0?o+1|0:o,d=c=s[B+4>>2],o=c>>>7|0,c=((127&c)<<25|(u=s[B>>2])>>>7)^Cn(u,c,1),o^=C,R=x,x=Cn(u,d,8)^c,o=(C^o)+a|0,o=(c=R+x|0)>>>0>>0?o+1|0:o,x=c,a=o,s[i+128>>2]=c,s[i+132>>2]=o,i=(o=u)+(u=s[(c=B)+72>>2])|0,o=s[c+76>>2]+d|0,d=o=i>>>0>>0?o+1|0:o,o=Cn(w,l,19),u=C,B=i,R=o,o=(i=l)>>>6|0,i=R^((63&i)<<26|w>>>6)^Cn(w,i,61),o=(C^o^u)+d|0,l=i>>>0>(u=l=B+i|0)>>>0?o+1|0:o,o=(i=d=s[c+12>>2])>>>7|0,d=((127&i)<<25|(B=s[c+8>>2])>>>7)^Cn(B,i,1),o^=C,w=u,u=Cn(B,i,8)^d,o=(C^o)+l|0,w=d=w+u|0,l=o=u>>>0>d>>>0?o+1|0:o,s[c+128>>2]=d,s[c+132>>2]=o,c=H,d=i,o=Cn(x,a,19),H=C,i=o,o=a>>>6|0,i=Cn(x,a,61)^i^((63&a)<<26|x>>>6),o=(C^o^H)+m|0,o=(a=i+A|0)>>>0>>0?o+1|0:o,i=a,o=o+d|0,B=a=a+B|0,a=a>>>0>>0?o+1|0:o,o=(i=u=s[_+4>>2])>>>7|0,u=((127&i)<<25|(d=s[_>>2])>>>7)^Cn(d,i,1),o^=C,x=B,B=Cn(d,i,8)^u,o=(C^o)+a|0,a=o=(u=x+B|0)>>>0>>0?o+1|0:o,s[c+128>>2]=u,s[c+132>>2]=o,o=s[(c=_)+76>>2]+i|0,d=(i=d=(B=s[c+72>>2])+d|0)>>>0>>0?o+1|0:o,o=Cn(w,l,19),B=C,x=i,_=o,o=(i=l)>>>6|0,i=_^((63&i)<<26|w>>>6)^Cn(w,i,61),o=(C^o^B)+d|0,w=l=x+i|0,l=i>>>0>l>>>0?o+1|0:o,o=(i=d=s[c+12>>2])>>>7|0,d=((127&i)<<25|(B=s[c+8>>2])>>>7)^Cn(B,i,1),o^=C,x=w,w=Cn(B,i,8)^d,o=(C^o)+l|0,o=(d=x+w|0)>>>0>>0?o+1|0:o,w=d,l=o,s[c+128>>2]=d,s[c+132>>2]=o,d=i,o=Cn(u,a,19),_=C,i=o,o=a>>>6|0,a=(a=Cn(u,a,61)^i^((63&a)<<26|u>>>6))+(i=s[(c=k)+72>>2])|0,o=s[c+76>>2]+(C^o^_)|0,o=a>>>0>>0?o+1|0:o,i=a,o=o+d|0,i=o=(a=a+B|0)>>>0>>0?o+1|0:o,o=Cn(v,h,1),d=C,B=a,u=o,o=(a=h)>>>7|0,u=u^((127&a)<<25|v>>>7)^Cn(v,a,8),o=(C^o^d)+i|0,d=a=B+u|0,a=o=a>>>0>>0?o+1|0:o,s[c+128>>2]=d,s[c+132>>2]=o,o=s[(i=E)+76>>2]+h|0,h=c=(u=s[i+72>>2])+v|0,c=c>>>0>>0?o+1|0:o,o=Cn(w,l,19),u=C,v=h,h=o,o=l>>>6|0,h=Cn(w,l,61)^h^((63&l)<<26|w>>>6),o=(C^o^u)+c|0,l=(u=l=v+h|0)>>>0>>0?o+1|0:o,h=c=s[i+12>>2],o=c>>>7|0,c=((127&c)<<25|(w=s[i+8>>2])>>>7)^Cn(w,c,1),o^=C,v=u,u=Cn(w,h,8)^c,o=(C^o)+l|0,o=(c=v+u|0)>>>0>>0?o+1|0:o,u=c,l=o,s[i+128>>2]=c,s[i+132>>2]=o,c=h,o=Cn(d,a,19),B=C,i=o,o=a>>>6|0,a=(a=Cn(d,a,61)^i^((63&a)<<26|d>>>6))+(h=s[(i=P)+72>>2])|0,o=s[i+76>>2]+(C^o^B)|0,o=a>>>0>>0?o+1|0:o,h=a,o=o+c|0,h=o=(a=a+w|0)>>>0>>0?o+1|0:o,o=Cn(T,f,1),c=C,v=a,d=o,o=(a=f)>>>7|0,d=d^((127&a)<<25|T>>>7)^Cn(T,a,8),o=(C^o^c)+h|0,c=a=v+d|0,a=o=a>>>0>>0?o+1|0:o,s[i+128>>2]=c,s[i+132>>2]=o,h=(d=s[(i=I)+72>>2])+T|0,o=s[i+76>>2]+f|0,f=o=d>>>0>h>>>0?o+1|0:o,o=Cn(u,l,19),d=C,v=h,h=o,o=l>>>6|0,h=Cn(u,l,61)^h^((63&l)<<26|u>>>6),o=(C^o^d)+f|0,l=(d=l=v+h|0)>>>0>>0?o+1|0:o,h=f=s[i+12>>2],o=f>>>7|0,f=((127&f)<<25|(u=s[i+8>>2])>>>7)^Cn(u,f,1),o^=C,v=d,d=Cn(u,h,8)^f,o=(C^o)+l|0,o=d>>>0>(f=v+d|0)>>>0?o+1|0:o,d=f,l=o,s[i+128>>2]=d,s[i+132>>2]=o,i=h,o=Cn(c,a,19),T=C,h=o,o=a>>>6|0,a=(a=Cn(c,a,61)^h^((63&a)<<26|c>>>6))+(h=s[(f=S)+72>>2])|0,o=s[f+76>>2]+(C^o^T)|0,o=a>>>0>>0?o+1|0:o,h=a,o=o+i|0,h=o=(a=a+u|0)>>>0>>0?o+1|0:o,o=Cn(N,g,1),i=C,u=a,c=o,o=(a=g)>>>7|0,c=c^((127&a)<<25|N>>>7)^Cn(N,a,8),o=(C^o^i)+h|0,i=a=u+c|0,a=o=a>>>0>>0?o+1|0:o,s[f+128>>2]=i,s[f+132>>2]=o,f=(c=s[(h=y)+72>>2])+N|0,o=s[h+76>>2]+g|0,g=o=c>>>0>f>>>0?o+1|0:o,o=Cn(d,l,19),c=C,u=f,f=o,o=l>>>6|0,f=Cn(d,l,61)^f^((63&l)<<26|d>>>6),o=(C^o^c)+g|0,l=(c=l=u+f|0)>>>0>>0?o+1|0:o,g=f=s[h+12>>2],o=f>>>7|0,f=((127&f)<<25|(y=s[h+8>>2])>>>7)^Cn(y,f,1),o^=C,f=Cn(y,g,8)^f,o=(C^o)+l|0,o=f>>>0>(y=f+c|0)>>>0?o+1|0:o,f=y,l=o,s[h+128>>2]=f,s[h+132>>2]=o,y=(g=s[(h=p)+72>>2])+Q|0,o=s[h+76>>2]+O|0,p=o=g>>>0>y>>>0?o+1|0:o,o=Cn(i,a,19),g=C,d=y,c=o,o=a>>>6|0,y=Cn(i,a,61)^c^((63&a)<<26|i>>>6),o=(C^o^g)+p|0,y=o=(a=d+y|0)>>>0>>0?o+1|0:o,o=Cn(A,m,1),p=C,i=a,d=o,o=(a=m)>>>7|0,a=i+(g=d^((127&a)<<25|A>>>7)^Cn(A,a,8))|0,o=(C^o^p)+y|0,s[h+128>>2]=a,s[h+132>>2]=a>>>0>>0?o+1|0:o,o=s[(a=b)+76>>2]+m|0,m=h=(y=s[a+72>>2])+A|0,h=h>>>0>>0?o+1|0:o,o=Cn(f,l,19),y=C,i=o,o=l>>>6|0,l=Cn(f,l,61)^i^((63&l)<<26|f>>>6),o=(C^o^y)+h|0,m=l>>>0>(p=m=l+m|0)>>>0?o+1|0:o,b=((127&(h=y=s[a+12>>2]))<<25|(l=s[a+8>>2])>>>7)^Cn(l,h,1),o=C^h>>>7,b=(y=Cn(l,h,8)^b)+p|0,o=(C^o)+m|0,s[a+128>>2]=b,s[a+132>>2]=y>>>0>b>>>0?o+1|0:o}}function B(e){var t,n,r,o,a,s,d,u,l,A,f,h,g,p,m,v,y,b,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,M=0,T=0,U=0,H=0,j=0,J=0,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0,ie=0,ae=0;p=kt(e),m=c[e+2|0]|c[e+3|0]<<8|c[e+4|0]<<16|c[e+5|0]<<24,v=kt(e+5|0),y=C,te=c[e+7|0]|c[e+8|0]<<8|c[e+9|0]<<16|c[e+10|0]<<24,ne=c[e+10|0]|c[e+11|0]<<8|c[e+12|0]<<16|c[e+13|0]<<24,b=kt(e+13|0),re=C,M=c[e+15|0]|c[e+16|0]<<8|c[e+17|0]<<16|c[e+18|0]<<24,Z=kt(e+18|0),T=C,R=kt(e+21|0),S=c[e+23|0]|c[e+24|0]<<8|c[e+25|0]<<16|c[e+26|0]<<24,_=kt(e+26|0),E=C,ee=c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,L=c[e+31|0]|c[e+32|0]<<8|c[e+33|0]<<16|c[e+34|0]<<24,W=kt(e+34|0),V=C,U=c[e+36|0]|c[e+37|0]<<8|c[e+38|0]<<16|c[e+39|0]<<24,z=kt(e+39|0),j=C,O=kt(e+42|0),B=c[e+44|0]|c[e+45|0]<<8|c[e+46|0]<<16|c[e+47|0]<<24,w=kt(e+47|0),I=2097151&((3&E)<<30|_>>>2),_=fn(t=2097151&((3&(k=C))<<30|w>>>2),0,136657,0)+I|0,E=C,E=I>>>0>_>>>0?E+1|0:E,w=fn(n=(c[e+49|0]|c[e+50|0]<<8|c[e+51|0]<<16|c[e+52|0]<<24)>>>7&2097151,0,-997805,-1),I=C+E|0,I=w>>>0>(_=w+_|0)>>>0?I+1|0:I,E=fn(r=(c[e+52|0]|c[e+53|0]<<8|c[e+54|0]<<16|c[e+55|0]<<24)>>>4&2097151,0,654183,0),w=C+I|0,w=E>>>0>(_=E+_|0)>>>0?w+1|0:w,I=_,E=kt(e+55|0),_=I+(E=fn(o=2097151&((1&(_=C))<<31|E>>>1),0,470296,0))|0,I=C+w|0,I=E>>>0>_>>>0?I+1|0:I,w=fn(a=(c[e+57|0]|c[e+58|0]<<8|c[e+59|0]<<16|c[e+60|0]<<24)>>>6&2097151,0,666643,0),E=C+I|0,N=E=w>>>0>(_=w+_|0)>>>0?E+1|0:E,w=E,Q=B>>>5&2097151,E=2097151&O,B=fn(s=(c[e+60|0]|c[e+61|0]<<8|c[e+62|0]<<16|c[e+63|0]<<24)>>>3|0,0,-683901,-1)+E|0,I=C,O=B,x=I=E>>>0>B>>>0?I+1|0:I,D=(I=B)- -1048576|0,F=B=x-((I>>>0<4293918720)-1|0)|0,I=B>>21,u=Q=(B=(2097151&B)<<11|D>>>21)+Q|0,Y=E=B>>>0>Q>>>0?I+1|0:I,I=fn(Q,E,-683901,-1),E=C+w|0,K=k=I+_|0,P=I>>>0>k>>>0?E+1|0:E,w=S>>>5&2097151,k=fn(t,0,-997805,-1)+w|0,I=C,I=w>>>0>k>>>0?I+1|0:I,E=fn(n,0,654183,0),w=C+I|0,w=E>>>0>(k=E+k|0)>>>0?w+1|0:w,I=fn(r,0,470296,0),E=C+w|0,E=I>>>0>(k=I+k|0)>>>0?E+1|0:E,w=fn(o,0,666643,0),I=C+E|0,w=w>>>0>(S=k=w+k|0)>>>0?I+1|0:I,I=2097151&R,k=fn(t,0,654183,0)+I|0,E=C,E=I>>>0>k>>>0?E+1|0:E,B=(I=k)+(k=fn(n,0,470296,0))|0,I=C+E|0,I=B>>>0>>0?I+1|0:I,k=fn(r,0,666643,0),E=C+I|0,Q=B=k+B|0,B=E=B>>>0>>0?E+1|0:E,X=(I=Q)- -1048576|0,H=k=E-((I>>>0<4293918720)-1|0)|0,w=(I=k>>>21|0)+w|0,R=w=(E=(2097151&k)<<11|X>>>21)>>>0>(S=k=E+S|0)>>>0?w+1|0:w,G=(I=S)- -1048576|0,h=_- -1048576|0,N=N-((_>>>0<4293918720)-1|0)|0,E=(I=(w=J=w-((I>>>0<4293918720)-1|0)|0)>>21)+P|0,N=(E=(_=(2097151&w)<<11|G>>>21)>>>0>(J=_+K|0)>>>0?E+1|0:E)-(((I=-2097152&h)>>>0>(_=J)>>>0)+(k=N)|0)|0,oe=(I=_-I|0)-(E=-2097152&(g=I- -1048576|0))|0,ie=N-((I>>>0>>0)+(_=N-((I>>>0<4293918720)-1|0)|0)|0)|0,E=fn(u,Y,136657,0)+S|0,I=R+C|0,I=E>>>0>>0?I+1|0:I,$=(S=E)-(E=-2097152&G)|0,K=I-((E>>>0>S>>>0)+w|0)|0,N=O-(I=-2097152&D)|0,P=x-((I>>>0>O>>>0)+F|0)|0,I=2097151&((7&j)<<29|z>>>3),w=fn(s,0,136657,0)+I|0,E=C,E=I>>>0>w>>>0?E+1|0:E,S=(I=w)+(w=fn(a,0,-683901,-1))|0,I=C+E|0,O=S,S=w>>>0>S>>>0?I+1|0:I,I=fn(o,0,-683901,-1),E=C,w=I,E=(I=U>>>6&2097151)>>>0>(w=w+I|0)>>>0?E+1|0:E,R=(I=fn(s,0,-997805,-1))+w|0,w=C+E|0,w=I>>>0>R>>>0?w+1|0:w,E=fn(a,0,136657,0),I=C+w|0,G=E=(D=I=E>>>0>(R=E+R|0)>>>0?I+1|0:I)-(((I=R)>>>0<4293918720)-1|0)|0,I=(2097151&E)<<11|(z=I- -1048576|0)>>>21,E=(E>>21)+S|0,x=E=I>>>0>(O=I+O|0)>>>0?E+1|0:E,J=(I=O)- -1048576|0,F=E=E-((I>>>0<4293918720)-1|0)|0,I=(w=E>>21)+P|0,l=S=(E=(2097151&E)<<11|J>>>21)+N|0,q=I=E>>>0>S>>>0?I+1|0:I,E=fn(S,I,-683901,-1),I=C+K|0,ae=w=E+$|0,U=E>>>0>w>>>0?I+1|0:I,P=Q,I=2097151&((7&T)<<29|Z>>>3),w=fn(t,0,470296,0)+I|0,E=C,E=I>>>0>w>>>0?E+1|0:E,I=fn(n,0,666643,0),E=C+E|0,N=w=I+w|0,w=I>>>0>w>>>0?E+1|0:E,S=M>>>6&2097151,Q=fn(t,0,666643,0)+S|0,I=C,T=S=(M=I=S>>>0>Q>>>0?I+1|0:I)-(((I=Q)>>>0<4293918720)-1|0)|0,E=(E=S>>>21|0)+w|0,j=E=(I=(2097151&S)<<11|($=I- -1048576|0)>>>21)>>>0>(S=I+N|0)>>>0?E+1|0:E,Z=E-(((I=S)>>>0<4293918720)-1|0)|0,K=I- -1048576|0,d=O-(I=-2097152&J)|0,A=w=x-((I>>>0>O>>>0)+F|0)|0,I=((N=Z)>>>21|0)+B|0,I=(O=(2097151&N)<<11|K>>>21)>>>0>(P=O+P|0)>>>0?I+1|0:I,P=(B=fn(u,Y,-997805,-1))+((O=P)-(E=-2097152&X)|0)|0,E=C+(I-((8191&H)+(E>>>0>O>>>0)|0)|0)|0,E=B>>>0>P>>>0?E+1|0:E,I=fn(l,q,136657,0),E=C+E|0,E=I>>>0>(B=I+P|0)>>>0?E+1|0:E,w=fn(d,w,-683901,-1),I=C+E|0,x=I=w>>>0>(B=w+B|0)>>>0?I+1|0:I,J=(I=B)- -1048576|0,F=w=x-((I>>>0<4293918720)-1|0)|0,E=(I=w>>21)+U|0,P=E=(w=(2097151&w)<<11|J>>>21)>>>0>(O=w+ae|0)>>>0?E+1|0:E,H=(I=w=O)- -1048576|0,I=(I=(O=U=E-((I>>>0<4293918720)-1|0)|0)>>21)+ie|0,oe=U=(E=(2097151&O)<<11|H>>>21)+oe|0,U=E>>>0>U>>>0?I+1|0:I,ie=w-(I=-2097152&H)|0,ae=P-((I>>>0>w>>>0)+O|0)|0,Z=B-(I=-2097152&J)|0,X=x-((I>>>0>B>>>0)+F|0)|0,I=fn(u,Y,654183,0),w=C+(j-((8191&N)+((E=-2097152&K)>>>0>S>>>0)|0)|0)|0,w=I>>>0>(B=I+(S-E|0)|0)>>>0?w+1|0:w,E=fn(l,q,-997805,-1),I=C+w|0,I=E>>>0>(B=E+B|0)>>>0?I+1|0:I,w=fn(d,A,136657,0),E=C+I|0,J=B=w+B|0,O=w>>>0>B>>>0?E+1|0:E,H=R-(I=-2097152&z)|0,j=D-((I>>>0>R>>>0)+G|0)|0,E=2097151&((1&V)<<31|W>>>1),B=fn(r,0,-683901,-1)+E|0,I=C,I=E>>>0>B>>>0?I+1|0:I,E=fn(o,0,136657,0),I=C+I|0,I=E>>>0>(w=E+B|0)>>>0?I+1|0:I,B=(E=w)+(w=fn(s,0,654183,0))|0,E=C+I|0,E=w>>>0>B>>>0?E+1|0:E,I=fn(a,0,-997805,-1),E=C+E|0,R=w=I+B|0,B=I>>>0>w>>>0?E+1|0:E,I=fn(n,0,-683901,-1),w=C,E=I,w=(I=L>>>4&2097151)>>>0>(E=E+I|0)>>>0?w+1|0:w,S=(I=E)+(E=fn(r,0,136657,0))|0,I=C+w|0,I=E>>>0>S>>>0?I+1|0:I,w=fn(o,0,-997805,-1),E=C+I|0,E=w>>>0>(S=w+S|0)>>>0?E+1|0:E,w=fn(s,0,470296,0),I=C+E|0,I=w>>>0>(S=w+S|0)>>>0?I+1|0:I,w=fn(a,0,654183,0),E=C+I|0,x=E=w>>>0>(S=w+S|0)>>>0?E+1|0:E,G=(I=S)- -1048576|0,F=w=E-((I>>>0<4293918720)-1|0)|0,I=(I=w>>21)+B|0,B=w=(E=(2097151&w)<<11|G>>>21)+R|0,P=I=E>>>0>w>>>0?I+1|0:I,N=(I=w)- -1048576|0,R=w=P-((I>>>0<4293918720)-1|0)|0,E=(I=w>>21)+j|0,f=D=(w=(2097151&w)<<11|N>>>21)+H|0,L=E=w>>>0>D>>>0?E+1|0:E,I=fn(D,E,-683901,-1),w=C+O|0,j=E=I+J|0,O=I>>>0>E>>>0?w+1|0:w,W=B-(I=-2097152&N)|0,V=R=P-((I>>>0>B>>>0)+R|0)|0,w=(I=fn(u,Y,470296,0))+(Q-(E=-2097152&$)|0)|0,E=C+(M-((2047&T)+(E>>>0>Q>>>0)|0)|0)|0,E=I>>>0>w>>>0?E+1|0:E,I=fn(l,q,654183,0),E=C+E|0,E=I>>>0>(w=I+w|0)>>>0?E+1|0:E,B=(I=fn(d,A,-997805,-1))+w|0,w=C+E|0,w=I>>>0>B>>>0?w+1|0:w,E=fn(D,L,136657,0),I=C+w|0,I=E>>>0>(B=E+B|0)>>>0?I+1|0:I,w=fn(W,R,-683901,-1),E=C+I|0,P=E=w>>>0>(B=w+B|0)>>>0?E+1|0:E,T=(I=B)- -1048576|0,R=w=E-((I>>>0<4293918720)-1|0)|0,I=(I=w>>21)+O|0,O=I=(E=(2097151&w)<<11|T>>>21)>>>0>(w=E+j|0)>>>0?I+1|0:I,N=(I=w)- -1048576|0,E=(I=(Q=j=O-((I>>>0<4293918720)-1|0)|0)>>21)+X|0,Z=M=(j=(2097151&Q)<<11|N>>>21)+Z|0,j=M>>>0>>0?E+1|0:E,X=w-(I=-2097152&N)|0,z=O-((I>>>0>w>>>0)+Q|0)|0,J=B-(I=-2097152&T)|0,D=P-((I>>>0>B>>>0)+R|0)|0,E=2097151&((1&re)<<31|b>>>1),B=fn(u,Y,666643,0)+E|0,I=C,I=E>>>0>B>>>0?I+1|0:I,w=fn(l,q,470296,0),E=C+I|0,E=w>>>0>(B=w+B|0)>>>0?E+1|0:E,w=fn(d,A,654183,0),I=C+E|0,I=w>>>0>(B=w+B|0)>>>0?I+1|0:I,E=fn(f,L,-997805,-1),w=C+I|0,w=E>>>0>(B=E+B|0)>>>0?w+1|0:w,I=fn(W,V,136657,0),E=C+w|0,R=B=I+B|0,Q=I>>>0>B>>>0?E+1|0:E,O=S-(I=-2097152&G)|0,S=x-((I>>>0>S>>>0)+F|0)|0,I=fn(t,0,-683901,-1),E=C,w=I,E=(I=ee>>>7&2097151)>>>0>(w=w+I|0)>>>0?E+1|0:E,B=(I=fn(n,0,136657,0))+w|0,w=C+E|0,w=I>>>0>B>>>0?w+1|0:w,E=fn(r,0,-997805,-1),I=C+w|0,I=E>>>0>(B=E+B|0)>>>0?I+1|0:I,w=fn(o,0,654183,0),E=C+I|0,E=w>>>0>(B=w+B|0)>>>0?E+1|0:E,w=fn(s,0,666643,0),I=C+E|0,I=w>>>0>(B=w+B|0)>>>0?I+1|0:I,w=fn(a,0,470296,0),E=C+I|0,I=E=w>>>0>(B=w+B|0)>>>0?E+1|0:E,E=k>>21,B=(k=(2097151&k)<<11|h>>>21)+(w=B)|0,w=I+E|0,F=w=B>>>0>>0?w+1|0:w,x=(I=B)- -1048576|0,P=w=w-((I>>>0<4293918720)-1|0)|0,I=(E=w>>21)+S|0,Y=k=(w=(2097151&w)<<11|x>>>21)+O|0,H=I=w>>>0>k>>>0?I+1|0:I,I=fn(k,I,-683901,-1),E=C+Q|0,Q=w=I+R|0,k=I>>>0>w>>>0?E+1|0:E,I=fn(l,q,666643,0),w=C,E=I,w=(I=ne>>>4&2097151)>>>0>(E=E+I|0)>>>0?w+1|0:w,S=(I=E)+(E=fn(d,A,470296,0))|0,I=C+w|0,I=E>>>0>S>>>0?I+1|0:I,w=fn(f,L,654183,0),E=C+I|0,E=w>>>0>(S=w+S|0)>>>0?E+1|0:E,I=fn(W,V,-997805,-1),E=C+E|0,E=I>>>0>(w=I+S|0)>>>0?E+1|0:E,S=(I=w)+(w=fn(Y,H,136657,0))|0,I=C+E|0,R=I=w>>>0>S>>>0?I+1|0:I,M=(I=S)- -1048576|0,O=w=R-((I>>>0<4293918720)-1|0)|0,I=(E=w>>21)+k|0,w=I=(w=(2097151&w)<<11|M>>>21)>>>0>(k=Q=w+Q|0)>>>0?I+1|0:I,T=(I=k)- -1048576|0,I=(E=(Q=N=w-((I>>>0<4293918720)-1|0)|0)>>21)+D|0,$=G=(N=(2097151&Q)<<11|T>>>21)+J|0,N=N>>>0>G>>>0?I+1|0:I,I=B-(E=-2097152&x)|0,B=F-((E>>>0>B>>>0)+P|0)|0,P=I,I=(I=_>>21)+B|0,x=I=(E=(2097151&_)<<11|g>>>21)>>>0>(B=_=P+E|0)>>>0?I+1|0:I,G=(I=B)- -1048576|0,F=_=x-((I>>>0<4293918720)-1|0)|0,D=I=_>>21,I=fn(q=(2097151&_)<<11|G>>>21,I,-683901,-1),E=C+w|0,E=I>>>0>(_=I+k|0)>>>0?E+1|0:E,K=(w=_)-(I=-2097152&T)|0,J=E-((I>>>0>w>>>0)+Q|0)|0,E=fn(q,D,136657,0)+S|0,I=R+C|0,I=E>>>0>>0?I+1|0:I,ee=(w=E)-(E=-2097152&M)|0,M=I-((E>>>0>w>>>0)+O|0)|0,I=fn(d,A,666643,0),E=C,w=I,E=(I=te>>>7&2097151)>>>0>(w=w+I|0)>>>0?E+1|0:E,_=(I=fn(f,L,470296,0))+w|0,w=C+E|0,w=I>>>0>_>>>0?w+1|0:w,E=fn(W,V,654183,0),I=C+w|0,I=E>>>0>(_=E+_|0)>>>0?I+1|0:I,E=fn(Y,H,-997805,-1),I=C+I|0,O=w=E+_|0,w=E>>>0>w>>>0?I+1|0:I,I=2097151&((3&y)<<30|v>>>2),_=fn(f,L,666643,0)+I|0,E=C,E=I>>>0>_>>>0?E+1|0:E,I=fn(W,V,470296,0),E=C+E|0,E=I>>>0>(_=I+_|0)>>>0?E+1|0:E,k=(I=_)+(_=fn(Y,H,654183,0))|0,I=C+E|0,Q=I=_>>>0>k>>>0?I+1|0:I,T=(I=_=k)- -1048576|0,I=(E=(S=k=Q-((I>>>0<4293918720)-1|0)|0)>>21)+w|0,R=O=(k=(2097151&S)<<11|T>>>21)+O|0,w=I=k>>>0>O>>>0?I+1|0:I,O=(I=O)- -1048576|0,I=(E=(k=P=w-((I>>>0<4293918720)-1|0)|0)>>21)+M|0,te=L=(P=(2097151&k)<<11|O>>>21)+ee|0,P=P>>>0>L>>>0?I+1|0:I,I=fn(q,D,-997805,-1),w=C+w|0,w=I>>>0>(E=I+R|0)>>>0?w+1|0:w,ne=E-(I=-2097152&O)|0,re=w-((I>>>0>E>>>0)+k|0)|0,I=fn(q,D,654183,0)+_|0,E=Q+C|0,E=I>>>0<_>>>0?E+1|0:E,ee=(w=I)-(I=-2097152&T)|0,L=E-((I>>>0>w>>>0)+S|0)|0,I=fn(W,V,666643,0),w=C,E=I,w=(I=m>>>5&2097151)>>>0>(E=E+I|0)>>>0?w+1|0:w,_=(I=E)+(E=fn(Y,H,470296,0))|0,I=C+w|0,S=_,w=E>>>0>_>>>0?I+1|0:I,E=2097151&p,_=fn(Y,H,666643,0)+E|0,I=C,k=_,O=_=(R=I=E>>>0>_>>>0?I+1|0:I)-(((I=_)>>>0<4293918720)-1|0)|0,w=(E=_>>21)+w|0,Q=w=(I=(2097151&_)<<11|(M=I- -1048576|0)>>>21)>>>0>(_=I+S|0)>>>0?w+1|0:w,T=(I=_)- -1048576|0,S=w=w-((I>>>0<4293918720)-1|0)|0,I=(E=w>>21)+L|0,w=I=(w=(2097151&w)<<11|T>>>21)>>>0>(H=w+ee|0)>>>0?I+1|0:I,I=fn(q,D,470296,0)+_|0,E=Q+C|0,S=(E=I>>>0<_>>>0?E+1|0:E)-(((_=-2097152&T)>>>0>(Q=I)>>>0)+S|0)|0,Q=I=I-_|0,_=(E=fn(q,D,666643,0))+(k-(I=-2097152&M)|0)|0,I=C+(R-((I>>>0>k>>>0)+O|0)|0)|0,k=_,E=(E=(I=E>>>0>_>>>0?I+1|0:I)>>21)+S|0,V=_=Q+(I=(2097151&I)<<11|_>>>21)|0,w=(I=(E=I>>>0>_>>>0?E+1|0:E)>>21)+w|0,S=_=(E=(2097151&E)<<11|_>>>21)+H|0,E=(w=E>>>0>(I=_)>>>0?w+1|0:w)>>21,w=(2097151&w)<<11|I>>>21,I=E+re|0,O=_=w+ne|0,w=(I=w>>>0>(E=_)>>>0?I+1|0:I)>>21,I=(2097151&I)<<11|E>>>21,E=w+P|0,P=_=I+te|0,I=(I=(E=I>>>0>(w=_)>>>0?E+1|0:E)>>21)+J|0,H=w=(E=(2097151&E)<<11|w>>>21)+K|0,E=(E=(I=E>>>0>w>>>0?I+1|0:I)>>21)+N|0,D=w=(I=(2097151&I)<<11|w>>>21)+$|0,I=(E=I>>>0>w>>>0?E+1|0:E)>>21,E=(2097151&E)<<11|w>>>21,w=I+z|0,M=_=E+X|0,E=(w=E>>>0>(I=_)>>>0?w+1|0:w)>>21,w=(2097151&w)<<11|I>>>21,I=E+j|0,T=_=w+Z|0,w=(I=w>>>0>(E=_)>>>0?I+1|0:I)>>21,I=(2097151&I)<<11|E>>>21,E=w+ae|0,j=_=I+ie|0,I=(I=(E=I>>>0>(w=_)>>>0?E+1|0:E)>>21)+U|0,N=w=(E=(2097151&E)<<11|w>>>21)+oe|0,E=(I=E>>>0>w>>>0?I+1|0:I)>>21,_=(2097151&I)<<11|w>>>21,I=B-(w=-2097152&G)|0,w=(x-((w>>>0>B>>>0)+F|0)|0)+E|0,F=_=_+I|0,U=(2097151&(w=I>>>0>(E=_)>>>0?w+1|0:w))<<11|E>>>21,R=I=w>>21,E=2097151&k,w=fn(U,I,666643,0)+E|0,I=C,Q=w,_=I=E>>>0>w>>>0?I+1|0:I,i[0|e]=w,i[e+1|0]=(255&I)<<24|w>>>8,I=2097151&V,w=fn(U,R,470296,0)+I|0,E=C,E=I>>>0>w>>>0?E+1|0:E,k=w,B=(2097151&(w=_))<<11|Q>>>21,w=(I=w>>21)+E|0,w=B>>>0>(x=k+B|0)>>>0?w+1|0:w,B=x,i[e+4|0]=(2047&w)<<21|B>>>11,I=E=w,w=B,i[e+3|0]=(7&I)<<29|w>>>3,w=2097151&S,S=fn(U,R,654183,0)+w|0,I=C,I=w>>>0>S>>>0?I+1|0:I,w=S,S=(2097151&E)<<11|B>>>21,E=(E>>21)+I|0,E=S>>>0>(x=w+S|0)>>>0?E+1|0:E,S=x,I=E,i[e+6|0]=(63&I)<<26|S>>>6,k=0,w=31&((65535&_)<<16|Q>>>16),E=Q=2097151&B,i[e+2|0]=w|E<<5,w=2097151&O,B=fn(U,R,-997805,-1)+w|0,E=C,w=E=w>>>0>B>>>0?E+1|0:E,w=(E=I>>21)+w|0,O=B=(I=(2097151&I)<<11|S>>>21)+B|0,w=I>>>0>B>>>0?w+1|0:w,i[e+9|0]=(511&w)<<23|B>>>9,I=E=w,w=B,i[e+8|0]=(1&I)<<31|w>>>1,B=0,w=S&=2097151,i[e+5|0]=(524287&k)<<13|Q>>>19|w<<2,w=2097151&P,k=fn(U,R,136657,0)+w|0,I=C,I=(I=w>>>0>k>>>0?I+1|0:I)+(w=E>>21)|0,Q=k=(E=(2097151&E)<<11|O>>>21)+k|0,I=E>>>0>k>>>0?I+1|0:I,E=k,i[e+12|0]=(4095&I)<<20|E>>>12,w=I,i[e+11|0]=(15&I)<<28|E>>>4,k=0,E=P=2097151&O,i[e+7|0]=(16383&B)<<18|S>>>14|E<<7,I=2097151&H,B=fn(U,R,-683901,-1)+I|0,E=C,E=I>>>0>B>>>0?E+1|0:E,E=(I=w>>21)+E|0,S=B=(w=(2097151&w)<<11|Q>>>21)+B|0,I=E=w>>>0>B>>>0?E+1|0:E,i[e+14|0]=(127&I)<<25|B>>>7,B=0,w=O=2097151&Q,i[e+10|0]=(131071&k)<<15|P>>>17|w<<4,E=I>>21,w=(I=(2097151&I)<<11|S>>>21)>>>0>(Q=I+(2097151&D)|0)>>>0?E+1|0:E,i[e+17|0]=(1023&w)<<22|Q>>>10,I=w,w=Q,i[e+16|0]=(3&I)<<30|w>>>2,w=R=2097151&S,i[e+13|0]=(1048575&B)<<12|O>>>20|w<<1,w=(2097151&I)<<11|Q>>>21,I>>=21,I=w>>>0>(S=w+(2097151&M)|0)>>>0?I+1|0:I,E=S,i[e+20|0]=(8191&I)<<19|E>>>13,i[e+19|0]=(31&I)<<27|E>>>5,E=O=2097151&Q,i[e+15|0]=(32767&k)<<17|R>>>15|E<<6,_=(2097151&I)<<11|S>>>21,I=E=I>>21,_=I=_>>>0>(R=_+(2097151&T)|0)>>>0?I+1|0:I,i[e+21|0]=R,I=S,i[e+18|0]=(262143&B)<<14|O>>>18|I<<3,I=_,i[e+22|0]=(255&I)<<24|R>>>8,w=I,I>>=21,w=(S=(k=(2097151&w)<<11|R>>>21)+(2097151&j)|0)>>>0>>0?I+1|0:I,i[(E=e)+25|0]=(2047&w)<<21|S>>>11,I=w,w=S,i[E+24|0]=(7&I)<<29|w>>>3,w=E,k=(2097151&I)<<11|S>>>21,I>>=21,E=I=k>>>0>(B=Q=k+(2097151&N)|0)>>>0?I+1|0:I,i[w+27|0]=(63&I)<<26|B>>>6,k=0,I=Q=2097151&S,i[w+23|0]=31&((65535&_)<<16|R>>>16)|I<<5,E=(I=E)>>21,E=(I=(2097151&I)<<11|B>>>21)>>>0>(_=I+(2097151&F)|0)>>>0?E+1|0:E,w=_,i[e+31|0]=(131071&E)<<15|w>>>17,I=E,i[e+30|0]=(511&I)<<23|w>>>9,i[e+29|0]=(1&I)<<31|w>>>1,E=0,B&=2097151,i[e+26|0]=(524287&k)<<13|Q>>>19|B<<2,i[e+28|0]=(16383&E)<<18|B>>>14|w<<7}function _(e){var t,n=0,r=0,o=0,i=0,a=0,u=0,l=0,f=0,h=0,g=0,p=0,m=0,v=0;y=t=y-16|0;e:{t:{n:{r:{o:{i:{a:{s:{c:{d:{u:{l:{if((e|=0)>>>0<=244){if(3&(n=(a=s[8961])>>>(r=(f=e>>>0<11?16:e+11&-8)>>>3|0)|0)){e=(i=s[35892+(n=(o=r+(1&(-1^n))|0)<<3)>>2])+8|0,(0|(r=s[i+8>>2]))!=(0|(n=n+35884|0))?(s[r+12>>2]=n,s[n+8>>2]=r):(m=35844,v=Pt(-2,o)&a,s[m>>2]=v),n=o<<3,s[i+4>>2]=3|n,s[4+(n=n+i|0)>>2]=1|s[n+4>>2];break e}if((g=s[8963])>>>0>=f>>>0)break l;if(n){r=e=(n=(0-(e=(0-(e=2<>>12&16,r|=e=(n=n>>>e|0)>>>5&8,r|=e=(n=n>>>e|0)>>>2&4,u=s[35892+(e=(r=((r|=e=(n=n>>>e|0)>>>1&2)|(e=(n=n>>>e|0)>>>1&1))+(n>>>e|0)|0)<<3)>>2],(0|(n=s[u+8>>2]))!=(0|(e=e+35884|0))?(s[n+12>>2]=e,s[e+8>>2]=n):(a=Pt(-2,r)&a,s[8961]=a),e=u+8|0,s[u+4>>2]=3|f,i=(n=r<<3)-f|0,s[4+(o=u+f|0)>>2]=1|i,s[n+u>>2]=i,g&&(r=35884+((n=g>>>3|0)<<3)|0,u=s[8966],(n=1<>2]:(s[8961]=n|a,n=r),s[r+8>>2]=u,s[n+12>>2]=u,s[u+12>>2]=r,s[u+8>>2]=n),s[8966]=o,s[8963]=i;break e}if(!(l=s[8962]))break l;for(r=e=(n=(l&0-l)-1|0)>>>12&16,r|=e=(n=n>>>e|0)>>>5&8,r|=e=(n=n>>>e|0)>>>2&4,n=s[36148+(((r|=e=(n=n>>>e|0)>>>1&2)|(e=(n=n>>>e|0)>>>1&1))+(n>>>e|0)<<2)>>2],i=(-8&s[n+4>>2])-f|0,r=n;(e=s[r+16>>2])||(e=s[r+20>>2]);)i=(o=(r=(-8&s[e+4>>2])-f|0)>>>0>>0)?r:i,n=o?e:n,r=e;if((h=n+f|0)>>>0<=n>>>0)break u;if(p=s[n+24>>2],(0|(o=s[n+12>>2]))!=(0|n)){e=s[n+8>>2],s[e+12>>2]=o,s[o+8>>2]=e;break t}if(!(e=s[(r=n+20|0)>>2])){if(!(e=s[n+16>>2]))break d;r=n+16|0}for(;u=r,o=e,(e=s[(r=e+20|0)>>2])||(r=o+16|0,e=s[o+16>>2]););s[u>>2]=0;break t}if(f=-1,!(e>>>0>4294967231)&&(f=-8&(e=e+11|0),h=s[8962])){a=31,i=0-f|0,f>>>0<=16777215&&(e=e>>>8|0,e<<=u=e+1048320>>>16&8,a=28+((e=((e<<=r=e+520192>>>16&4)<<(n=e+245760>>>16&2)>>>15|0)-(n|r|u)|0)<<1|f>>>e+21&1)|0);A:{f:{if(r=s[36148+(a<<2)>>2])for(e=0,n=f<<(31==(0|a)?0:25-(a>>>1|0)|0);;){if(!((u=(-8&s[r+4>>2])-f|0)>>>0>=i>>>0||(o=r,i=u))){i=0,e=r;break f}if(u=s[r+20>>2],r=s[16+((n>>>29&4)+r|0)>>2],e=u?(0|u)==(0|r)?e:u:e,n<<=1,!r)break}else e=0;if(!(e|o)){if(!(e=(0-(e=2<>>12&16,r|=e=(n=n>>>e|0)>>>5&8,r|=e=(n=n>>>e|0)>>>2&4,e=s[36148+(((r|=e=(n=n>>>e|0)>>>1&2)|(e=(n=n>>>e|0)>>>1&1))+(n>>>e|0)<<2)>>2]}if(!e)break A}for(;i=(r=(n=(-8&s[e+4>>2])-f|0)>>>0>>0)?n:i,o=r?e:o,e=(n=s[e+16>>2])||s[e+20>>2];);}if(!(!o|s[8963]-f>>>0<=i>>>0)){if((l=o+f|0)>>>0<=o>>>0)break u;if(a=s[o+24>>2],(0|o)!=(0|(n=s[o+12>>2]))){e=s[o+8>>2],s[e+12>>2]=n,s[n+8>>2]=e;break n}if(!(e=s[(r=o+20|0)>>2])){if(!(e=s[o+16>>2]))break c;r=o+16|0}for(;u=r,n=e,(e=s[(r=e+20|0)>>2])||(r=n+16|0,e=s[n+16>>2]););s[u>>2]=0;break n}}}if((r=s[8963])>>>0>=f>>>0){o=s[8966],(n=r-f|0)>>>0>=16?(s[8963]=n,e=o+f|0,s[8966]=e,s[e+4>>2]=1|n,s[r+o>>2]=n,s[o+4>>2]=3|f):(s[8966]=0,s[8963]=0,s[o+4>>2]=3|r,s[4+(e=r+o|0)>>2]=1|s[e+4>>2]),e=o+8|0;break e}if((l=s[8964])>>>0>f>>>0){n=l-f|0,s[8964]=n,e=(r=s[8967])+f|0,s[8967]=e,s[e+4>>2]=1|n,s[r+4>>2]=3|f,e=r+8|0;break e}if(e=0,n=h=f+47|0,s[9079]?r=s[9081]:(s[9082]=-1,s[9083]=-1,s[9080]=4096,s[9081]=4096,s[9079]=t+12&-16^1431655768,s[9084]=0,s[9072]=0,r=4096),(r=(u=n+r|0)&(i=0-r|0))>>>0<=f>>>0)break e;if((o=s[9071])&&o>>>0<(a=(n=s[9069])+r|0)>>>0|n>>>0>=a>>>0)break e;if(4&c[36288])break i;l:{A:{if(o=s[8967])for(e=36292;;){if(o>>>0<(n=s[e>>2])+s[e+4>>2]>>>0&&n>>>0<=o>>>0)break A;if(!(e=s[e+8>>2]))break}if(-1==(0|(n=tt(0))))break a;if(a=r,(e=(o=s[9080])-1|0)&n&&(a=(r-n|0)+(e+n&0-o)|0),a>>>0<=f>>>0|a>>>0>2147483646)break a;if((o=s[9071])&&o>>>0<(i=(e=s[9069])+a|0)>>>0|e>>>0>=i>>>0)break a;if((0|n)!=(0|(e=tt(a))))break l;break o}if((a=i&u-l)>>>0>2147483646)break a;if((0|(n=tt(a)))==(s[e>>2]+s[e+4>>2]|0))break s;e=n}if(!(-1==(0|e)|f+48>>>0<=a>>>0)){if((n=(n=s[9081])+(h-a|0)&0-n)>>>0>2147483646){n=e;break o}if(-1!=(0|tt(n))){a=n+a|0,n=e;break o}tt(0-a|0);break a}if(n=e,-1!=(0|e))break o;break a}A()}o=0;break t}n=0;break n}if(-1!=(0|n))break o}s[9072]=4|s[9072]}if(r>>>0>2147483646)break r;if((n=tt(r))>>>0>=(e=tt(0))>>>0|-1==(0|n)|-1==(0|e))break r;if((a=e-n|0)>>>0<=f+40>>>0)break r}e=s[9069]+a|0,s[9069]=e,e>>>0>d[9070]&&(s[9070]=e);o:{i:{a:{if(u=s[8967]){for(e=36292;;){if(((o=s[e>>2])+(r=s[e+4>>2])|0)==(0|n))break a;if(!(e=s[e+8>>2]))break}break i}for((e=s[8965])>>>0<=n>>>0&&e||(s[8965]=n),e=0,s[9074]=a,s[9073]=n,s[8969]=-1,s[8970]=s[9079],s[9076]=0;r=35884+(o=e<<3)|0,s[o+35892>>2]=r,s[o+35896>>2]=r,32!=(0|(e=e+1|0)););r=(o=a-40|0)-(e=n+8&7?-8-n&7:0)|0,s[8964]=r,e=e+n|0,s[8967]=e,s[e+4>>2]=1|r,s[4+(n+o|0)>>2]=40,s[8968]=s[9083];break o}if(!(8&c[e+12|0]|n>>>0<=u>>>0|o>>>0>u>>>0)){s[e+4>>2]=r+a,r=(e=u+8&7?-8-u&7:0)+u|0,s[8967]=r,e=(n=s[8964]+a|0)-e|0,s[8964]=e,s[r+4>>2]=1|e,s[4+(n+u|0)>>2]=40,s[8968]=s[9083];break o}}(o=s[8965])>>>0>n>>>0&&(s[8965]=n,o=0),r=n+a|0,e=36292;i:{a:{s:{c:{d:{u:{for(;;){if((0|r)!=s[e>>2]){if(e=s[e+8>>2])continue;break u}break}if(!(8&c[e+12|0]))break d}for(e=36292;;){if((r=s[e>>2])>>>0<=u>>>0&&(i=r+s[e+4>>2]|0)>>>0>u>>>0)break c;e=s[e+8>>2]}}if(s[e>>2]=n,s[e+4>>2]=s[e+4>>2]+a,s[4+(h=(n+8&7?-8-n&7:0)+n|0)>>2]=3|f,r=((a=r+(r+8&7?-8-r&7:0)|0)-h|0)-f|0,l=f+h|0,(0|a)==(0|u)){s[8967]=l,e=s[8964]+r|0,s[8964]=e,s[l+4>>2]=1|e;break a}if(s[8966]==(0|a)){s[8966]=l,e=s[8963]+r|0,s[8963]=e,s[l+4>>2]=1|e,s[e+l>>2]=e;break a}if(1==(3&(e=s[a+4>>2]))){u=-8&e;d:if(e>>>0<=255){if(o=s[a+8>>2],e=e>>>3|0,(0|(n=s[a+12>>2]))==(0|o)){m=35844,v=s[8961]&Pt(-2,e),s[m>>2]=v;break d}s[o+12>>2]=n,s[n+8>>2]=o}else{if(f=s[a+24>>2],(0|a)==(0|(n=s[a+12>>2])))if((i=s[(e=a+20|0)>>2])||(i=s[(e=a+16|0)>>2])){for(;o=e,(i=s[(e=(n=i)+20|0)>>2])||(e=n+16|0,i=s[n+16>>2]););s[o>>2]=0}else n=0;else e=s[a+8>>2],s[e+12>>2]=n,s[n+8>>2]=e;if(f){o=s[a+28>>2];u:{if(s[(e=36148+(o<<2)|0)>>2]==(0|a)){if(s[e>>2]=n,n)break u;m=35848,v=s[8962]&Pt(-2,o),s[m>>2]=v;break d}if(s[f+(s[f+16>>2]==(0|a)?16:20)>>2]=n,!n)break d}s[n+24>>2]=f,(e=s[a+16>>2])&&(s[n+16>>2]=e,s[e+24>>2]=n),(e=s[a+20>>2])&&(s[n+20>>2]=e,s[e+24>>2]=n)}}a=a+u|0,r=r+u|0}if(s[a+4>>2]=-2&s[a+4>>2],s[l+4>>2]=1|r,s[r+l>>2]=r,r>>>0<=255){n=35884+((e=r>>>3|0)<<3)|0,(r=s[8961])&(e=1<>2]:(s[8961]=e|r,e=n),s[n+8>>2]=l,s[e+12>>2]=l,s[l+12>>2]=n,s[l+8>>2]=e;break a}if(e=31,r>>>0<=16777215&&(e=r>>>8|0,e<<=i=e+1048320>>>16&8,e=28+((e=((e<<=o=e+520192>>>16&4)<<(n=e+245760>>>16&2)>>>15|0)-(n|o|i)|0)<<1|r>>>e+21&1)|0),s[l+28>>2]=e,s[l+16>>2]=0,s[l+20>>2]=0,i=36148+(e<<2)|0,(o=s[8962])&(n=1<>>1|0)|0),n=s[i>>2];;){if(o=n,(-8&s[n+4>>2])==(0|r))break s;if(n=e>>>29|0,e<<=1,!(n=s[16+(i=o+(4&n)|0)>>2]))break}s[i+16>>2]=l,s[l+24>>2]=o}else s[8962]=n|o,s[i>>2]=l,s[l+24>>2]=i;s[l+12>>2]=l,s[l+8>>2]=l;break a}for(r=(o=a-40|0)-(e=n+8&7?-8-n&7:0)|0,s[8964]=r,e=e+n|0,s[8967]=e,s[e+4>>2]=1|r,s[4+(n+o|0)>>2]=40,s[8968]=s[9083],s[(r=(e=(i+(i-39&7?39-i&7:0)|0)-47|0)>>>0>>0?u:e)+4>>2]=27,e=s[9076],s[r+16>>2]=s[9075],s[r+20>>2]=e,e=s[9074],s[r+8>>2]=s[9073],s[r+12>>2]=e,s[9075]=r+8,s[9074]=a,s[9073]=n,s[9076]=0,e=r+24|0;s[e+4>>2]=7,n=e+8|0,e=e+4|0,n>>>0>>0;);if((0|r)==(0|u))break o;if(s[r+4>>2]=-2&s[r+4>>2],i=r-u|0,s[u+4>>2]=1|i,s[r>>2]=i,i>>>0<=255){n=35884+((e=i>>>3|0)<<3)|0,(r=s[8961])&(e=1<>2]:(s[8961]=e|r,e=n),s[n+8>>2]=u,s[e+12>>2]=u,s[u+12>>2]=n,s[u+8>>2]=e;break o}if(e=31,s[u+16>>2]=0,s[u+20>>2]=0,i>>>0<=16777215&&(e=i>>>8|0,e<<=o=e+1048320>>>16&8,e=28+((e=((e<<=r=e+520192>>>16&4)<<(n=e+245760>>>16&2)>>>15|0)-(n|r|o)|0)<<1|i>>>e+21&1)|0),s[u+28>>2]=e,o=36148+(e<<2)|0,(r=s[8962])&(n=1<>>1|0)|0),n=s[o>>2];;){if(r=n,(0|i)==(-8&s[n+4>>2]))break i;if(n=e>>>29|0,e<<=1,!(n=s[16+(o=r+(4&n)|0)>>2]))break}s[o+16>>2]=u,s[u+24>>2]=r}else s[8962]=n|r,s[o>>2]=u,s[u+24>>2]=o;s[u+12>>2]=u,s[u+8>>2]=u;break o}e=s[o+8>>2],s[e+12>>2]=l,s[o+8>>2]=l,s[l+24>>2]=0,s[l+12>>2]=o,s[l+8>>2]=e}e=h+8|0;break e}e=s[r+8>>2],s[e+12>>2]=u,s[r+8>>2]=u,s[u+24>>2]=0,s[u+12>>2]=r,s[u+8>>2]=e}if(!((e=s[8964])>>>0<=f>>>0)){n=e-f|0,s[8964]=n,e=(r=s[8967])+f|0,s[8967]=e,s[e+4>>2]=1|n,s[r+4>>2]=3|f,e=r+8|0;break e}}s[8960]=48,e=0;break e}n:if(a){r=s[o+28>>2];r:{if(s[(e=36148+(r<<2)|0)>>2]==(0|o)){if(s[e>>2]=n,n)break r;h=Pt(-2,r)&h,s[8962]=h;break n}if(s[a+(s[a+16>>2]==(0|o)?16:20)>>2]=n,!n)break n}s[n+24>>2]=a,(e=s[o+16>>2])&&(s[n+16>>2]=e,s[e+24>>2]=n),(e=s[o+20>>2])&&(s[n+20>>2]=e,s[e+24>>2]=n)}n:if(i>>>0<=15)e=i+f|0,s[o+4>>2]=3|e,s[4+(e=e+o|0)>>2]=1|s[e+4>>2];else if(s[o+4>>2]=3|f,s[l+4>>2]=1|i,s[i+l>>2]=i,i>>>0<=255)n=35884+((e=i>>>3|0)<<3)|0,(r=s[8961])&(e=1<>2]:(s[8961]=e|r,e=n),s[n+8>>2]=l,s[e+12>>2]=l,s[l+12>>2]=n,s[l+8>>2]=e;else{e=31,i>>>0<=16777215&&(e=i>>>8|0,e<<=u=e+1048320>>>16&8,e=28+((e=((e<<=r=e+520192>>>16&4)<<(n=e+245760>>>16&2)>>>15|0)-(n|r|u)|0)<<1|i>>>e+21&1)|0),s[l+28>>2]=e,s[l+16>>2]=0,s[l+20>>2]=0,r=36148+(e<<2)|0;r:{if((n=1<>>1|0)|0),f=s[r>>2];;){if((-8&s[(n=f)+4>>2])==(0|i))break r;if(r=e>>>29|0,e<<=1,!(f=s[16+(r=n+(4&r)|0)>>2]))break}s[r+16>>2]=l,s[l+24>>2]=n}else s[8962]=n|h,s[r>>2]=l,s[l+24>>2]=r;s[l+12>>2]=l,s[l+8>>2]=l;break n}e=s[n+8>>2],s[e+12>>2]=l,s[n+8>>2]=l,s[l+24>>2]=0,s[l+12>>2]=n,s[l+8>>2]=e}e=o+8|0;break e}t:if(p){r=s[n+28>>2];n:{if(s[(e=36148+(r<<2)|0)>>2]==(0|n)){if(s[e>>2]=o,o)break n;m=35848,v=Pt(-2,r)&l,s[m>>2]=v;break t}if(s[(s[p+16>>2]==(0|n)?16:20)+p>>2]=o,!o)break t}s[o+24>>2]=p,(e=s[n+16>>2])&&(s[o+16>>2]=e,s[e+24>>2]=o),(e=s[n+20>>2])&&(s[o+20>>2]=e,s[e+24>>2]=o)}i>>>0<=15?(e=i+f|0,s[n+4>>2]=3|e,s[4+(e=e+n|0)>>2]=1|s[e+4>>2]):(s[n+4>>2]=3|f,s[h+4>>2]=1|i,s[i+h>>2]=i,g&&(r=35884+((e=g>>>3|0)<<3)|0,o=s[8966],(e=1<>2]:(s[8961]=e|a,e=r),s[r+8>>2]=o,s[e+12>>2]=o,s[o+12>>2]=r,s[o+8>>2]=e),s[8966]=h,s[8963]=i),e=n+8|0}return y=t+16|0,0|e}function S(e,t,n){var r,o,i,a,c,d,l,A,f,h,g,p,m,v,y,b,I,E,w,B,_,S,k,O,Q,R,P,N,x,D,M,T,U,H,j,J,F,G,L,q,Y,V,W,K,Z,z,X,$,ee,te,ne,re,oe,ie,ae=0,se=0,ce=0,de=0,ue=0,le=0,Ae=0,fe=0,he=0,ge=0,pe=0,me=0,ve=0,ye=0,be=0,Ie=0,Ce=0,Ee=0,we=0,Be=0,_e=0,Se=0,ke=0,Oe=0,Qe=0;Ae=e,r=ae=ke=s[n+4>>2],f=ae>>31,J=ae=(be=s[t+20>>2])<<1,ae=fn(r,f,ae,k=ae>>31),ce=C,se=ae,o=ae=s[n>>2],i=ae>>31,h=ae=s[t+24>>2],ue=fn(o,i,ae,a=ae>>31),ae=C+ce|0,ae=(se=se+ue|0)>>>0>>0?ae+1|0:ae,ce=se,F=se=le=s[n+8>>2],I=se>>31,g=se=s[t+16>>2],se=ce+(ue=fn(le,I,se,c=se>>31))|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,G=ae=Ce=s[n+12>>2],E=ae>>31,L=ae=(me=s[t+12>>2])<<1,ae=(ue=fn(Ce,E,ae,O=ae>>31))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=ae,z=ae=Ie=s[n+16>>2],_=ae>>31,p=ae=s[t+8>>2],ue=fn(Ie,_,ae,d=ae>>31),ae=C+se|0,ae=(ce=ce+ue|0)>>>0>>0?ae+1|0:ae,de=ce,X=se=ge=s[n+20>>2],Q=se>>31,q=se=(he=s[t+4>>2])<<1,ce=fn(ge,Q,se,R=se>>31),ae=C+ae|0,ae=(se=de+ce|0)>>>0>>0?ae+1|0:ae,ce=se,$=se=pe=s[n+24>>2],Y=se>>31,m=se=s[t>>2],ue=fn(pe,Y,se,l=se>>31),se=C+ae|0,se=(ce=ce+ue|0)>>>0>>0?se+1|0:se,Ee=s[n+28>>2],w=ae=u(Ee,19),B=ae>>31,V=ae=(ve=s[t+36>>2])<<1,ae=(ue=fn(w,B,ae,P=ae>>31))+ce|0,ce=C+se|0,ce=ae>>>0>>0?ce+1|0:ce,se=ae,ye=s[n+32>>2],we=ae=u(ye,19),Be=ae>>31,v=ae=s[t+32>>2],ue=fn(we,Be,ae,A=ae>>31),ae=C+ce|0,ae=(se=se+ue|0)>>>0>>0?ae+1|0:ae,ce=se,ee=s[n+36>>2],y=n=u(ee,19),b=n>>31,W=n=(t=s[t+28>>2])<<1,se=fn(y,b,n,N=n>>31),ae=C+ae|0,fe=n=ce+se|0,n=n>>>0>>0?ae+1|0:ae,ae=fn(g,c,r,f),se=C,be=fn(o,i,ue=be,x=ue>>31),ce=C+se|0,ce=(ae=be+ae|0)>>>0>>0?ce+1|0:ce,be=me,me=fn(le,I,me,D=me>>31),se=C+ce|0,se=(ae=me+ae|0)>>>0>>0?se+1|0:se,ce=(me=fn(p,d,Ce,E))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,me=he,ce=fn(Ie,_,he,M=he>>31),ae=C+ae|0,ae=(se=se+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(m,l,ge,Q),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=se,T=se=u(pe,19),se=ce+(ve=fn(se,S=se>>31,he=ve,U=he>>31))|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,ae=(ve=fn(v,A,w,B))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ve=t,t=(ce=fn(we,Be,t,H=t>>31))+ae|0,ae=C+se|0,ae=t>>>0>>0?ae+1|0:ae,se=fn(y,b,h,a),ae=C+ae|0,Se=t=se+t|0,t=t>>>0>>0?ae+1|0:ae,ae=fn(r,f,L,O),ce=C,se=(pe=fn(o,i,g,c))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,pe=fn(p,d,le,I),ce=C+ae|0,ce=(se=pe+se|0)>>>0>>0?ce+1|0:ce,ae=(pe=fn(Ce,E,q,R))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(pe=fn(m,l,Ie,_))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,de=ce,K=se=u(ge,19),ce=fn(se,j=se>>31,V,P),ae=C+ae|0,ae=(se=de+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(v,A,T,S),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ge=fn(w,B,W,N),ce=C+ae|0,ce=(se=ge+se|0)>>>0>>0?ce+1|0:ce,ae=(ge=fn(we,Be,h,a))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(ge=fn(y,b,J,k))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,ge=ce,ne=ae,pe=se=ce+33554432|0,re=ae=se>>>0<33554432?ae+1|0:ae,ce=Se,Se=(67108863&ae)<<6|se>>>26,ae=(ae>>26)+t|0,ae=(ce=ce+Se|0)>>>0>>0?ae+1|0:ae,oe=t=(Se=ce)+16777216|0,ae=n+(se=(ce=t>>>0<16777216?ae+1|0:ae)>>25)|0,ae=(t=(ce=(33554431&ce)<<7|t>>>25)+fe|0)>>>0>>0?ae+1|0:ae,Oe=t=(n=t)+33554432|0,t=ae=t>>>0<33554432?ae+1|0:ae,ae=-67108864&Oe,s[Ae+24>>2]=n-ae,fe=Ae,n=fn(r,f,q,R),ae=C,se=fn(o,i,p,d),ce=C+ae|0,ce=(n=se+n|0)>>>0>>0?ce+1|0:ce,se=fn(m,l,le,I),ae=C+ce|0,ae=(n=se+n|0)>>>0>>0?ae+1|0:ae,ce=n,Ae=n=u(Ce,19),se=fn(n,Ce=n>>31,V,P),ae=C+ae|0,ae=(n=ce+se|0)>>>0>>0?ae+1|0:ae,se=n,te=n=u(Ie,19),n=se+(ce=fn(v,A,n,Z=n>>31))|0,se=C+ae|0,se=n>>>0>>0?se+1|0:se,ce=fn(W,N,K,j),ae=C+se|0,ae=(n=ce+n|0)>>>0>>0?ae+1|0:ae,se=fn(h,a,T,S),ce=C+ae|0,ce=(n=se+n|0)>>>0>>0?ce+1|0:ce,se=fn(w,B,J,k),ae=C+ce|0,ae=(n=se+n|0)>>>0>>0?ae+1|0:ae,se=fn(we,Be,g,c),ae=C+ae|0,ae=(n=se+n|0)>>>0>>0?ae+1|0:ae,ce=fn(y,b,L,O),se=C+ae|0,de=n=ce+n|0,n=n>>>0>>0?se+1|0:se,ae=fn(m,l,r,f),ce=C,se=(Ie=fn(o,i,me,M))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ce=se,Ie=se=u(le,19),se=ce+(le=fn(se,_e=se>>31,he,U))|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,le=fn(v,A,Ae,Ce),ae=C+ce|0,ae=(se=le+se|0)>>>0>>0?ae+1|0:ae,ce=fn(te,Z,ve,H),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=(le=fn(h,a,K,j))+se|0,se=C+ae|0,se=ce>>>0>>0?se+1|0:se,le=fn(T,S,ue,x),ae=C+se|0,ae=(ce=le+ce|0)>>>0>>0?ae+1|0:ae,se=(le=fn(g,c,w,B))+ce|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,le=fn(we,Be,be,D),ae=C+ce|0,ae=(se=le+se|0)>>>0>>0?ae+1|0:ae,ce=fn(y,b,p,d),ae=C+ae|0,Qe=se=ce+se|0,le=se>>>0>>0?ae+1|0:ae,ae=fn(ae=u(r,19),ae>>31,V,P),se=C,ce=fn(o,i,m,l),se=C+se|0,se=(ae=ce+ae|0)>>>0>>0?se+1|0:se,ce=(ke=fn(v,A,Ie,_e))+ae|0,ae=C+se|0,se=(Ae=fn(Ae,Ce,W,N))+ce|0,ce=C+(ce>>>0>>0?ae+1|0:ae)|0,ce=se>>>0>>0?ce+1|0:ce,Ae=fn(h,a,te,Z),ae=C+ce|0,ae=(se=Ae+se|0)>>>0>>0?ae+1|0:ae,ce=fn(J,k,K,j),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=(Ae=fn(g,c,T,S))+se|0,se=C+ae|0,se=ce>>>0>>0?se+1|0:se,Ae=fn(w,B,L,O),ae=C+se|0,ae=(ce=Ae+ce|0)>>>0>>0?ae+1|0:ae,se=(Ae=fn(we,Be,p,d))+ce|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,Ae=fn(y,b,q,R),ae=C+ce|0,ae=(se=Ae+se|0)>>>0>>0?ae+1|0:ae,Ae=se,ke=ae,Ce=se=se+33554432|0,Ie=ae=se>>>0<33554432?ae+1|0:ae,_e=(67108863&ae)<<6|se>>>26,se=(ce=ae>>26)+le|0,le=ae=_e+Qe|0,ce=de,ae=ae>>>0<_e>>>0?se+1|0:se,ie=se=le+16777216|0,de=(33554431&(ae=se>>>0<16777216?ae+1|0:ae))<<7|se>>>25,ae=(ae>>25)+n|0,ae=(se=ce+de|0)>>>0>>0?ae+1|0:ae,_e=n=se+33554432|0,n=ae=n>>>0<33554432?ae+1|0:ae,ae=-67108864&_e,s[fe+8>>2]=se-ae,de=fe,ae=fn(h,a,r,f),ce=C,se=(fe=fn(o,i,ve,H))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ce=fn(F,I,ue,x),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=fn(g,c,G,E),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,fe=fn(z,_,be,D),ce=C+ae|0,ce=(se=fe+se|0)>>>0>>0?ce+1|0:ce,ae=(fe=fn(p,d,X,Q))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(fe=fn(me,M,$,Y))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,ce=fn(m,l,fe=Ee,Qe=fe>>31),ae=C+ae|0,ae=(se=se+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(we,Be,he,U),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,Ee=fn(y,b,v,A),ce=C+ae|0,ce=(se=Ee+se|0)>>>0>>0?ce+1|0:ce,ae=t>>26,t=(Ee=(67108863&t)<<6|Oe>>>26)+se|0,se=ae+ce|0,ae=se=t>>>0>>0?se+1|0:se,Oe=t=(ce=t)+16777216|0,t=ae=t>>>0<16777216?ae+1|0:ae,ae=-33554432&Oe,s[de+28>>2]=ce-ae,Ee=de,ae=fn(p,d,r,f),se=C,de=fn(o,i,be,D),ce=C+se|0,ce=(ae=de+ae|0)>>>0>>0?ce+1|0:ce,de=fn(F,I,me,M),se=C+ce|0,se=(ae=de+ae|0)>>>0>>0?se+1|0:se,ce=(de=fn(m,l,G,E))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,ce=fn(te,Z,he,U),ae=C+ae|0,ae=(se=se+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(v,A,K,j),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,de=fn(T,S,ve,H),ce=C+ae|0,ce=(se=de+se|0)>>>0>>0?ce+1|0:ce,ae=(de=fn(h,a,w,B))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(de=fn(we,Be,ue,x))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,ce=fn(y,b,g,c),ae=C+ae|0,de=se=se+ce|0,ae=(ae=se>>>0>>0?ae+1|0:ae)+(se=n>>26)|0,ae=(n=de+(ce=(67108863&n)<<6|_e>>>26)|0)>>>0>>0?ae+1|0:ae,we=n=(se=n)+16777216|0,n=ce=n>>>0<16777216?ae+1|0:ae,ae=-33554432&we,s[Ee+12>>2]=se-ae,ae=fn(r,f,W,N),ce=C,se=(de=fn(o,i,v,A))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ce=fn(h,a,F,I),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,de=fn(G,E,J,k),ce=C+ae|0,ce=(se=de+se|0)>>>0>>0?ce+1|0:ce,ae=(de=fn(g,c,z,_))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(de=fn(L,O,X,Q))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,ce=fn(p,d,$,Y),ae=C+ae|0,ae=(se=se+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(fe,Qe,q,R),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ye=fn(m,l,de=ye,Be=de>>31),ce=C+ae|0,ce=(se=ye+se|0)>>>0>>0?ce+1|0:ce,ae=(ye=fn(y,b,V,P))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ye=ae,ae=(ae=t>>25)+se|0,ae=(t=ye+(ce=(33554431&t)<<7|Oe>>>25)|0)>>>0>>0?ae+1|0:ae,ye=t=(se=t)+33554432|0,t=ae=t>>>0<33554432?ae+1|0:ae,ae=-67108864&ye,s[Ee+32>>2]=se-ae,ce=se=ge-(ae=-67108864&pe)|0,ae=(ae=ne-((ae>>>0>ge>>>0)+re|0)|0)+(se=n>>25)|0,ae=(n=ce+(ge=(33554431&n)<<7|we>>>25)|0)>>>0>>0?ae+1|0:ae,(se=n+33554432|0)>>>0<33554432&&(ae=ae+1|0),ae=(Se-(-33554432&oe)|0)+((67108863&ae)<<6|se>>>26)|0,s[e+20>>2]=ae,ae=-67108864&se,s[e+16>>2]=n-ae,ae=fn(v,A,r,f),ce=C,se=(he=fn(o,i,he,U))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ce=(he=fn(F,I,ve,H))+se|0,se=C+ae|0,se=ce>>>0>>0?se+1|0:se,ae=(he=fn(h,a,G,E))+ce|0,ce=C+se|0,se=(ue=fn(z,_,ue,x))+ae|0,ae=C+(ae>>>0>>0?ce+1|0:ce)|0,ae=se>>>0>>0?ae+1|0:ae,ce=fn(g,c,X,Q),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=fn(be,D,$,Y),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=(ue=fn(p,d,fe,Qe))+se|0,se=C+ae|0,se=ce>>>0>>0?se+1|0:se,ae=(ue=fn(de,Be,me,M))+ce|0,ce=C+se|0,ce=ae>>>0>>0?ce+1|0:ce,se=(ue=fn(m,l,ee,ee>>31))+ae|0,ae=C+ce|0,n=se,ae=(ae=se>>>0>>0?ae+1|0:ae)+(se=t>>26)|0,ae=(t=n+(ce=(67108863&t)<<6|ye>>>26)|0)>>>0>>0?ae+1|0:ae,ae=(t=(n=t)+16777216|0)>>>0<16777216?ae+1|0:ae,t=-33554432&(se=t),s[e+36>>2]=n-t,ce=le-(-33554432&ie)|0,ue=Ae-(t=-67108864&Ce)|0,be=ke-((t>>>0>Ae>>>0)+Ie|0)|0,ae=fn((33554431&(t=ae))<<7|se>>>25,ae>>=25,19,0),se=C+be|0,ae=se=(t=ae+ue|0)>>>0>>0?se+1|0:se,n=((67108863&(ae=(n=t+33554432|0)>>>0<33554432?ae+1|0:ae))<<6|(se=n)>>>26)+ce|0,s[e+4>>2]=n,n=e,e=-67108864&se,s[n>>2]=t-e}function k(e,t){var n,r,o,i,a,c,d,l,A,f,h,g,p,m,v,y,b,I,E,w,B,_,S,k,O,Q,R,P,N,x,D,M,T,U,H,j,J,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0;V=e,f=G=(F=s[t+12>>2])<<1,K=F,F=fn(G,a=G>>31,F,k=F>>31),q=C,G=F,n=F=s[t+16>>2],c=F>>31,b=F=(z=s[t+8>>2])<<1,Y=fn(n,c,F,p=F>>31),F=C+q|0,F=(G=G+Y|0)>>>0>>0?F+1|0:F,q=G,m=G=(Y=s[t+20>>2])<<1,v=G>>31,d=G=(X=s[t+4>>2])<<1,L=fn(m,v,G,r=G>>31),G=C+F|0,G=(q=q+L|0)>>>0>>0?G+1|0:G,w=F=W=s[t+24>>2],h=F>>31,l=F=(re=s[t>>2])<<1,L=fn(W,h,F,o=F>>31),F=C+G|0,F=(q=L+q|0)>>>0>>0?F+1|0:F,Z=q,G=s[t+32>>2],y=q=u(G,19),O=G,q=fn(q,g=q>>31,G,B=G>>31),F=C+F|0,F=(G=Z+q|0)>>>0>>0?F+1|0:F,Z=G,ee=s[t+36>>2],A=G=u(ee,38),i=G>>31,x=t=(q=s[t+28>>2])<<1,L=fn(G,i,t,Q=t>>31),t=C+F|0,te=G=Z+L|0,$=G>>>0>>0?t+1|0:t,t=fn(d,r,n,c),F=C,G=fn(b,p,K,k),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,D=Y,L=fn(Y,_=Y>>31,l,o),G=C+F|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=fn(y,g,x,Q),F=C+G|0,F=(t=L+t|0)>>>0>>0?F+1|0:F,G=fn(A,i,W,h),F=C+F|0,Z=t=G+t|0,oe=t>>>0>>0?F+1|0:F,t=fn(d,r,f,a),G=C,F=(z=fn(L=z,I=L>>31,L,I))+t|0,t=C+G|0,t=F>>>0>>0?t+1|0:t,G=(z=fn(l,o,n,c))+F|0,F=C+t|0,F=G>>>0>>0?F+1|0:F,S=t=u(q,38),z=q,t=(q=fn(t,E=t>>31,q,R=q>>31))+G|0,G=C+F|0,G=t>>>0>>0?G+1|0:G,t=(F=t)+(q=fn(y,g,t=W<<1,t>>31))|0,F=C+G|0,F=t>>>0>>0?F+1|0:F,G=fn(A,i,m,v),F=C+F|0,P=t=G+t|0,U=F=t>>>0>>0?F+1|0:F,t=F,M=F=P+33554432|0,H=t=F>>>0<33554432?t+1|0:t,F=(F=t>>26)+oe|0,oe=t=(G=(67108863&t)<<6|M>>>26)+Z|0,G=t>>>0>>0?F+1|0:F,j=t=t+16777216|0,F=(F=(G=t>>>0<16777216?G+1|0:G)>>25)+$|0,F=(t=(G=(33554431&G)<<7|t>>>25)+te|0)>>>0>>0?F+1|0:F,G=t,t=F,Z=F=G+33554432|0,q=t=F>>>0<33554432?t+1|0:t,t=-67108864&F,s[V+24>>2]=G-t,t=fn(l,o,L,I),F=C,X=fn(d,r,V=X,ne=V>>31),G=C+F|0,G=(t=X+t|0)>>>0>>0?G+1|0:G,F=t,X=t=u(W,19),t=F+(W=fn(t,te=t>>31,W,h))|0,F=C+G|0,F=t>>>0>>0?F+1|0:F,G=(W=fn(m,v,S,E))+t|0,t=C+F|0,t=G>>>0>>0?t+1|0:t,T=F=n<<1,W=fn(y,g,F,N=F>>31),F=C+t|0,F=(G=W+G|0)>>>0>>0?F+1|0:F,t=G,G=fn(A,i,f,a),F=C+F|0,$=t=t+G|0,W=t>>>0>>0?F+1|0:F,t=fn(m,v,X,te),F=C,V=fn(l,o,V,ne),G=C+F|0,G=(t=V+t|0)>>>0>>0?G+1|0:G,V=fn(n,c,S,E),F=C+G|0,F=(t=V+t|0)>>>0>>0?F+1|0:F,G=(V=fn(y,g,f,a))+t|0,t=C+F|0,t=G>>>0>>0?t+1|0:t,V=fn(A,i,L,I),F=C+t|0,ne=G=V+G|0,V=G>>>0>>0?F+1|0:F,t=fn(t=u(Y,38),t>>31,Y,_),F=C,Y=t,G=fn(t=re,G=t>>31,t,G),F=C+F|0,F=(t=Y+G|0)>>>0>>0?F+1|0:F,Y=fn(X,te,T,N),G=C+F|0,G=(t=Y+t|0)>>>0>>0?G+1|0:G,Y=fn(f,a,S,E),F=C+G|0,F=(t=Y+t|0)>>>0>>0?F+1|0:F,G=(Y=fn(y,g,b,p))+t|0,t=C+F|0,t=G>>>0>>0?t+1|0:t,Y=fn(d,r,A,i),F=C+t|0,X=G=Y+G|0,te=F=G>>>0>>0?F+1|0:F,re=t=G+33554432|0,J=F=t>>>0<33554432?F+1|0:F,G=(t=F>>26)+V|0,V=F=(Y=(67108863&F)<<6|re>>>26)+ne|0,F=F>>>0>>0?G+1|0:G,ne=t=V+16777216|0,Y=(33554431&(F=t>>>0<16777216?F+1|0:F))<<7|t>>>25,F=(F>>25)+W|0,F=(G=Y+$|0)>>>0>>0?F+1|0:F,W=G=(t=G)+33554432|0,Y=F=G>>>0<33554432?F+1|0:F,F=-67108864&G,s[e+8>>2]=t-F,t=fn(b,p,D,_),F=C,G=fn(n,c,f,a),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=fn(d,r,w,h),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=fn(l,o,z,R),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=($=fn(A,i,O,B))+t|0,t=C+F|0,F=q>>26,q=(Z=(67108863&q)<<6|Z>>>26)+G|0,G=(t=G>>>0<$>>>0?t+1|0:t)+F|0,F=G=q>>>0>>0?G+1|0:G,Z=G=(t=q)+16777216|0,q=F=G>>>0<16777216?F+1|0:F,F=-33554432&G,s[e+28>>2]=t-F,t=fn(l,o,K,k),G=C,F=(L=fn(d,r,L,I))+t|0,t=C+G|0,t=F>>>0>>0?t+1|0:t,L=fn(w,h,S,E),G=C+t|0,G=(F=L+F|0)>>>0>>0?G+1|0:G,t=(L=fn(y,g,m,v))+F|0,F=C+G|0,F=t>>>0>>0?F+1|0:F,G=fn(A,i,n,c),F=C+F|0,F=(F=(t=G+t|0)>>>0>>0?F+1|0:F)+(G=Y>>26)|0,G=t=(Y=(67108863&Y)<<6|W>>>26)+t|0,t=F=t>>>0>>0?F+1|0:F,W=F=G+16777216|0,Y=t=F>>>0<16777216?t+1|0:t,t=-33554432&F,s[e+12>>2]=G-t,L=e,t=fn(w,h,b,p),F=C,G=fn(n,c,n,c),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=fn(f,a,m,v),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=(K=fn(d,r,x,Q))+t|0,t=C+F|0,t=G>>>0>>0?t+1|0:t,F=(K=fn(l,o,O,B))+G|0,G=C+t|0,G=F>>>0>>0?G+1|0:G,t=(ee=fn(A,i,K=ee,$=K>>31))+F|0,F=C+G|0,F=t>>>0>>0?F+1|0:F,e=t,F=(t=q>>25)+F|0,F=(G=e+(q=(33554431&q)<<7|Z>>>25)|0)>>>0>>0?F+1|0:F,ee=G=(t=G)+33554432|0,q=F=G>>>0<33554432?F+1|0:F,F=-67108864&G,s[L+32>>2]=t-F,F=Y>>25,G=(Y=(33554431&Y)<<7|W>>>25)+(P-(t=-67108864&M)|0)|0,t=F+(U-((t>>>0>P>>>0)+H|0)|0)|0,F=t=G>>>0>>0?t+1|0:t,Y=t=G+33554432|0,t=((67108863&(F=t>>>0<33554432?F+1|0:F))<<6|t>>>26)+(oe=oe-(-33554432&j)|0)|0,s[L+20>>2]=t,t=-67108864&Y,s[L+16>>2]=G-t,Y=L,t=fn(f,a,w,h),G=C,F=(L=fn(D,_,T,N))+t|0,t=C+G|0,t=F>>>0>>0?t+1|0:t,G=(L=fn(b,p,z,R))+F|0,F=C+t|0,F=G>>>0>>0?F+1|0:F,t=(L=fn(d,r,O,B))+G|0,G=C+F|0,G=t>>>0>>0?G+1|0:G,L=fn(l,o,K,$),F=C+G|0,G=t=L+t|0,F=(t=t>>>0>>0?F+1|0:F)+(F=q>>26)|0,F=(G=(q=(67108863&q)<<6|ee>>>26)+G|0)>>>0>>0?F+1|0:F,q=G,t=F,t=(F=G+16777216|0)>>>0<16777216?t+1|0:t,G=-33554432&F,s[Y+36>>2]=q-G,L=fn((33554431&t)<<7|F>>>25,t>>25,19,0),F=C+(te-(((G=-67108864&re)>>>0>X>>>0)+J|0)|0)|0,G=t=L+(X-G|0)|0,t=t>>>0>>0?F+1|0:F,t=(V-(-33554432&ne)|0)+((67108863&(t=(F=G+33554432|0)>>>0<33554432?t+1|0:t))<<6|F>>>26)|0,s[Y+4>>2]=t,e=-67108864&F,s[Y>>2]=G-e}function O(e,t,n){var r,o=0,i=0,a=0,c=0,d=0,u=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,b=0,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,M=0,T=0,U=0,H=0,j=0,J=0,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0,ie=0;for(y=r=y-2048|0,Qn(r+1024|0,t),ot(r+1024|0,e),Qn(r,r+1024|0),ot(r,n),t=0;c=s[(o=h=(r+1024|0)+(64|(e=w<<7))|0)>>2],A=s[(a=f=(r+1024|0)+(96|e)|0)>>2],a=s[a+4>>2],d=c,v=s[o+4>>2],l=A,o=e+(r+1024|0)|0,u=s[(c=(r+1024|0)+(32|e)|0)>>2],A=s[c+4>>2],l=Cn(l^(E=ut(s[o>>2],s[o+4>>2],u,A)),(i=a)^(a=C),32),A=Cn(d=(m=ut(d,v,l,i=C))^u,A^(u=C),24),U=Cn((R=ut(E,d=a,A,a=C))^l,(p=C)^i,16),a=Cn(A^(H=ut(m,u,U,x=C)),(D=C)^a,63),A=C,l=s[(u=(r+1024|0)+(104|e)|0)>>2],m=s[u+4>>2],k=s[(i=E=(r+1024|0)+(72|e)|0)>>2],g=s[i+4>>2],B=Cn((B=l)^(_=ut(I=s[(i=l=(r+1024|0)+(8|e)|0)>>2],v=s[i+4>>2],N=s[(i=(r+1024|0)+(40|e)|0)>>2],d=s[i+4>>2])),(v=m)^(m=C),32),d=Cn(g=(I=ut(k,g,B,v=C))^N,d^(N=C),24),Y=Cn((M=ut(_,g=m,d,m=C))^B,(j=C)^v,16),m=Cn(d^(z=ut(I,N,Y,K=C)),(X=C)^m,63),d=C,B=s[(_=N=(r+1024|0)+(112|e)|0)>>2],I=s[_+4>>2],P=s[(_=(r+1024|0)+(80|e)|0)>>2],b=s[_+4>>2],k=B,B=(r+1024|0)+(16|e)|0,O=s[(Q=v=(r+1024|0)+(48|e)|0)>>2],Q=s[Q+4>>2],k=Cn(k^(T=ut(s[B>>2],s[B+4>>2],O,Q)),(g=I)^(I=C),32),Q=Cn(b=(g=ut(P,b,k,S=C))^O,Q^(O=C),24),te=Cn(($=ut(T,b=I,Q,I=C))^k,(ee=C)^S,16),I=Cn(Q^(V=ut(g,O,te,ne=C)),(L=C)^I,63),Q=C,k=s[(O=(r+1024|0)+(120|e)|0)>>2],S=s[O+4>>2],re=s[(g=T=(r+1024|0)+(88|e)|0)>>2],q=s[g+4>>2],F=Cn((P=k)^(W=ut(Z=s[(g=k=(r+1024|0)+(24|e)|0)>>2],b=s[g+4>>2],J=s[(e=(r+1024|0)+(56|e)|0)>>2],g=s[e+4>>2])),(b=S)^(S=C),32),g=Cn(b=(q=ut(re,q,F,G=C))^J,g^(J=C),24),P=J,F=Cn((J=ut(W,b=S,g,S=C))^F,(W=C)^G,16),S=Cn(g^(q=ut(q,P,F,G=C)),(Z=C)^S,63),g=C,P=V,b=L,V=Cn(F^(R=ut(R,p,m,d)),G^(p=C),32),m=Cn((F=ut(P,b,V,L=C))^m,(G=C)^d,24),d=ut(d=R,p,m,R=C),p=C,s[o>>2]=d,s[o+4>>2]=p,o=Cn(d^V,L^p,16),d=C,s[O>>2]=o,s[O+4>>2]=d,o=ut(F,G,o,d),d=C,s[_>>2]=o,s[_+4>>2]=d,oe=i,ie=Cn(o^m,d^R,63),s[oe>>2]=ie,s[i+4>>2]=C,p=I,d=Cn(U^(i=ut(M,j,I,Q)),x^(m=C),32),o=Cn(p^(I=ut(q,Z,d,_=C)),(o=Q)^(Q=C),24),i=ut(i,p=m,o,m=C),O=C,s[l>>2]=i,s[l+4>>2]=O,l=Cn(i^d,_^O,16),i=C,s[f>>2]=l,s[f+4>>2]=i,f=ut(I,Q,l,i),s[T>>2]=f,l=C,s[T+4>>2]=l,oe=v,ie=Cn(o^f,l^m,63),s[oe>>2]=ie,s[v+4>>2]=C,o=ut($,ee,S,g),d=ut(H,D,i=Cn(Y^o,K^(l=C),32),m=C),o=ut(o,v=l,f=Cn(d^S,(_=C)^g,24),l=C),I=v=C,s[B>>2]=o,s[B+4>>2]=I,o=Cn(o^i,m^I,16),i=C,s[u>>2]=o,s[u+4>>2]=i,o=ut(d,_,o,i),s[h>>2]=o,i=h,h=C,s[i+4>>2]=h,oe=e,ie=Cn(o^f,h^l,63),s[oe>>2]=ie,s[e+4>>2]=C,i=a,o=Cn(te^(h=ut(J,W,a,A)),ne^(f=C),32),e=Cn(i^(u=ut(z,X,o,a=C)),(e=A)^(A=C),24),h=ut(h,i=f,e,f=C),i=l=C,s[k>>2]=h,s[k+4>>2]=i,h=Cn(o^h,a^i,16),o=C,s[N>>2]=h,s[N+4>>2]=o,h=ut(u,A,h,o),s[E>>2]=h,o=C,s[E+4>>2]=o,oe=c,ie=Cn(e^h,o^f,63),s[oe>>2]=ie,s[c+4>>2]=C,8!=(0|(w=w+1|0)););for(;w=s[768+(e=(f=t<<4)+(r+1024|0)|0)>>2],h=s[e+772>>2],d=s[(o=e+512|0)>>2],l=s[o+4>>2],i=w,w=s[e+256>>2],o=s[e+260>>2],a=Cn(i^(c=ut(s[e>>2],s[e+4>>2],w,o)),(a=h)^(h=C),32),o=Cn(i=(u=ut(d,l,a,A=C))^w,o^(w=C),24),v=w,m=Cn((l=ut(c,h,o,w=C))^a,(i=C)^A,16),w=Cn(o^(N=ut(u,v,m,d=C)),(_=C)^w,63),h=C,o=s[e+780>>2],I=s[e+520>>2],p=s[e+524>>2],u=Cn((B=s[e+776>>2])^(A=ut(v=s[(c=f=(r+1024|0)+(8|f)|0)>>2],A=s[c+4>>2],c=s[e+264>>2],a=s[e+268>>2])),(v=o)^(o=C),32),a=Cn(v=(B=ut(I,p,u,E=C))^c,a^(c=C),24),p=B,I=Cn((B=ut(A,v=o,a,o=C))^u,(v=C)^E,16),o=Cn(a^(O=ut(p,c,I,Q=C)),(T=C)^o,63),c=C,a=s[e+900>>2],b=s[e+640>>2],R=s[e+644>>2],g=s[e+896>>2],A=s[e+384>>2],u=s[e+388>>2],k=Cn(g^(E=ut(s[e+128>>2],s[e+132>>2],A,u)),(p=a)^(a=C),32),u=Cn(p=(g=ut(b,R,k,S=C))^A,u^(A=C),24),b=g,g=Cn((g=k)^(k=ut(E,p=a,u,a=C)),(p=S)^(S=C),16),a=Cn(u^(p=ut(b,A,g,R=C)),(U=C)^a,63),A=C,u=s[e+908>>2],L=s[e+648>>2],K=s[e+652>>2],P=s[e+904>>2],E=s[e+392>>2],x=s[e+396>>2],D=Cn(P^(H=ut(s[e+136>>2],s[e+140>>2],E,x)),(b=u)^(u=C),32),P=x=Cn(b=(j=ut(L,K,D,M=C))^E,x^(E=C),24),D=Cn((x=ut(H,b=u,x,u=C))^D,(H=C)^M,16),u=Cn(P^(j=ut(j,E,D,M=C)),(Y=C)^u,63),E=C,P=p,b=U,p=Cn(D^(l=ut(l,i,o,c)),M^(i=C),32),o=Cn((D=ut(P,b,p,U=C))^o,(M=C)^c,24),c=ut(c=l,i,o,l=C),i=C,s[e>>2]=c,s[e+4>>2]=i,c=Cn(c^p,U^i,16),i=C,s[e+904>>2]=c,s[e+908>>2]=i,c=ut(D,M,c,i),i=C,s[e+640>>2]=c,s[e+644>>2]=i,oe=e,ie=Cn(o^c,l^i,63),s[oe+264>>2]=ie,s[e+268>>2]=C,p=a,c=ut(B,v,a,A),m=ut(j,Y,l=Cn(m^c,d^(a=C),32),i=C),c=ut(c,d=a,o=Cn(p^m,(o=A)^(A=C),24),a=C),d=C,s[f>>2]=c,s[f+4>>2]=d,f=Cn(c^l,i^d,16),c=C,s[e+768>>2]=f,s[e+772>>2]=c,f=ut(m,A,f,c),s[e+648>>2]=f,c=C,s[e+652>>2]=c,oe=e,ie=Cn(o^f,c^a,63),s[oe+384>>2]=ie,s[e+388>>2]=C,l=u,a=Cn(I^(o=ut(k,S,u,E)),Q^(c=C),32),f=Cn(l^(u=ut(N,_,a,A=C)),(i=E)^(E=C),24),o=ut(o,i=c,f,c=C),i=l=C,s[e+128>>2]=o,s[e+132>>2]=i,o=Cn(o^a,i^A,16),a=C,s[e+776>>2]=o,s[e+780>>2]=a,o=ut(u,E,o,a),s[e+512>>2]=o,a=C,s[e+516>>2]=a,oe=e,ie=Cn(o^f,c^a,63),s[oe+392>>2]=ie,s[e+396>>2]=C,f=ut(x,H,w,h),A=ut(O,T,c=Cn(g^f,R^(o=C),32),a=C),h=ut(i=f,o,w=Cn(A^w,(u=C)^h,24),f=C),o=C,s[e+136>>2]=h,s[e+140>>2]=o,h=Cn(c^h,a^o,16),o=C,s[e+896>>2]=h,s[e+900>>2]=o,h=ut(A,u,h,o),s[e+520>>2]=h,o=C,s[e+524>>2]=o,oe=e,ie=Cn(h^w,o^f,63),s[oe+256>>2]=ie,s[e+260>>2]=C,8!=(0|(t=t+1|0)););Qn(n,r),ot(n,r+1024|0),y=r+2048|0}function Q(e,t,n){var r,o=0,i=0,a=0,c=0,d=0,u=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,b=0,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,M=0,T=0,U=0,H=0,j=0,J=0,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0,ie=0;for(y=r=y-2048|0,Qn(r+1024|0,t),ot(r+1024|0,e),Qn(r,r+1024|0),t=0;c=s[(o=h=(r+1024|0)+(64|(e=w<<7))|0)>>2],A=s[(a=f=(r+1024|0)+(96|e)|0)>>2],a=s[a+4>>2],d=c,v=s[o+4>>2],l=A,o=e+(r+1024|0)|0,u=s[(c=(r+1024|0)+(32|e)|0)>>2],A=s[c+4>>2],l=Cn(l^(E=ut(s[o>>2],s[o+4>>2],u,A)),(i=a)^(a=C),32),A=Cn(d=(m=ut(d,v,l,i=C))^u,A^(u=C),24),U=Cn((R=ut(E,d=a,A,a=C))^l,(p=C)^i,16),a=Cn(A^(H=ut(m,u,U,x=C)),(D=C)^a,63),A=C,l=s[(u=(r+1024|0)+(104|e)|0)>>2],m=s[u+4>>2],k=s[(i=E=(r+1024|0)+(72|e)|0)>>2],g=s[i+4>>2],B=Cn((B=l)^(_=ut(I=s[(i=l=(r+1024|0)+(8|e)|0)>>2],v=s[i+4>>2],N=s[(i=(r+1024|0)+(40|e)|0)>>2],d=s[i+4>>2])),(v=m)^(m=C),32),d=Cn(g=(I=ut(k,g,B,v=C))^N,d^(N=C),24),Y=Cn((M=ut(_,g=m,d,m=C))^B,(j=C)^v,16),m=Cn(d^(z=ut(I,N,Y,K=C)),(X=C)^m,63),d=C,B=s[(_=N=(r+1024|0)+(112|e)|0)>>2],I=s[_+4>>2],P=s[(_=(r+1024|0)+(80|e)|0)>>2],b=s[_+4>>2],k=B,B=(r+1024|0)+(16|e)|0,O=s[(Q=v=(r+1024|0)+(48|e)|0)>>2],Q=s[Q+4>>2],k=Cn(k^(T=ut(s[B>>2],s[B+4>>2],O,Q)),(g=I)^(I=C),32),Q=Cn(b=(g=ut(P,b,k,S=C))^O,Q^(O=C),24),te=Cn(($=ut(T,b=I,Q,I=C))^k,(ee=C)^S,16),I=Cn(Q^(V=ut(g,O,te,ne=C)),(L=C)^I,63),Q=C,k=s[(O=(r+1024|0)+(120|e)|0)>>2],S=s[O+4>>2],re=s[(g=T=(r+1024|0)+(88|e)|0)>>2],q=s[g+4>>2],F=Cn((P=k)^(W=ut(Z=s[(g=k=(r+1024|0)+(24|e)|0)>>2],b=s[g+4>>2],J=s[(e=(r+1024|0)+(56|e)|0)>>2],g=s[e+4>>2])),(b=S)^(S=C),32),g=Cn(b=(q=ut(re,q,F,G=C))^J,g^(J=C),24),P=J,F=Cn((J=ut(W,b=S,g,S=C))^F,(W=C)^G,16),S=Cn(g^(q=ut(q,P,F,G=C)),(Z=C)^S,63),g=C,P=V,b=L,V=Cn(F^(R=ut(R,p,m,d)),G^(p=C),32),m=Cn((F=ut(P,b,V,L=C))^m,(G=C)^d,24),d=ut(d=R,p,m,R=C),p=C,s[o>>2]=d,s[o+4>>2]=p,o=Cn(d^V,L^p,16),d=C,s[O>>2]=o,s[O+4>>2]=d,o=ut(F,G,o,d),d=C,s[_>>2]=o,s[_+4>>2]=d,oe=i,ie=Cn(o^m,d^R,63),s[oe>>2]=ie,s[i+4>>2]=C,p=I,d=Cn(U^(i=ut(M,j,I,Q)),x^(m=C),32),o=Cn(p^(I=ut(q,Z,d,_=C)),(o=Q)^(Q=C),24),i=ut(i,p=m,o,m=C),O=C,s[l>>2]=i,s[l+4>>2]=O,l=Cn(i^d,_^O,16),i=C,s[f>>2]=l,s[f+4>>2]=i,f=ut(I,Q,l,i),s[T>>2]=f,l=C,s[T+4>>2]=l,oe=v,ie=Cn(o^f,l^m,63),s[oe>>2]=ie,s[v+4>>2]=C,o=ut($,ee,S,g),d=ut(H,D,i=Cn(Y^o,K^(l=C),32),m=C),o=ut(o,v=l,f=Cn(d^S,(_=C)^g,24),l=C),I=v=C,s[B>>2]=o,s[B+4>>2]=I,o=Cn(o^i,m^I,16),i=C,s[u>>2]=o,s[u+4>>2]=i,o=ut(d,_,o,i),s[h>>2]=o,i=h,h=C,s[i+4>>2]=h,oe=e,ie=Cn(o^f,h^l,63),s[oe>>2]=ie,s[e+4>>2]=C,i=a,o=Cn(te^(h=ut(J,W,a,A)),ne^(f=C),32),e=Cn(i^(u=ut(z,X,o,a=C)),(e=A)^(A=C),24),h=ut(h,i=f,e,f=C),i=l=C,s[k>>2]=h,s[k+4>>2]=i,h=Cn(o^h,a^i,16),o=C,s[N>>2]=h,s[N+4>>2]=o,h=ut(u,A,h,o),s[E>>2]=h,o=C,s[E+4>>2]=o,oe=c,ie=Cn(e^h,o^f,63),s[oe>>2]=ie,s[c+4>>2]=C,8!=(0|(w=w+1|0)););for(;w=s[768+(e=(f=t<<4)+(r+1024|0)|0)>>2],h=s[e+772>>2],d=s[(o=e+512|0)>>2],l=s[o+4>>2],i=w,w=s[e+256>>2],o=s[e+260>>2],a=Cn(i^(c=ut(s[e>>2],s[e+4>>2],w,o)),(a=h)^(h=C),32),o=Cn(i=(u=ut(d,l,a,A=C))^w,o^(w=C),24),v=w,m=Cn((l=ut(c,h,o,w=C))^a,(i=C)^A,16),w=Cn(o^(N=ut(u,v,m,d=C)),(_=C)^w,63),h=C,o=s[e+780>>2],I=s[e+520>>2],p=s[e+524>>2],u=Cn((B=s[e+776>>2])^(A=ut(v=s[(c=f=(r+1024|0)+(8|f)|0)>>2],A=s[c+4>>2],c=s[e+264>>2],a=s[e+268>>2])),(v=o)^(o=C),32),a=Cn(v=(B=ut(I,p,u,E=C))^c,a^(c=C),24),p=B,I=Cn((B=ut(A,v=o,a,o=C))^u,(v=C)^E,16),o=Cn(a^(O=ut(p,c,I,Q=C)),(T=C)^o,63),c=C,a=s[e+900>>2],b=s[e+640>>2],R=s[e+644>>2],g=s[e+896>>2],A=s[e+384>>2],u=s[e+388>>2],k=Cn(g^(E=ut(s[e+128>>2],s[e+132>>2],A,u)),(p=a)^(a=C),32),u=Cn(p=(g=ut(b,R,k,S=C))^A,u^(A=C),24),b=g,g=Cn((g=k)^(k=ut(E,p=a,u,a=C)),(p=S)^(S=C),16),a=Cn(u^(p=ut(b,A,g,R=C)),(U=C)^a,63),A=C,u=s[e+908>>2],L=s[e+648>>2],K=s[e+652>>2],P=s[e+904>>2],E=s[e+392>>2],x=s[e+396>>2],D=Cn(P^(H=ut(s[e+136>>2],s[e+140>>2],E,x)),(b=u)^(u=C),32),P=x=Cn(b=(j=ut(L,K,D,M=C))^E,x^(E=C),24),D=Cn((x=ut(H,b=u,x,u=C))^D,(H=C)^M,16),u=Cn(P^(j=ut(j,E,D,M=C)),(Y=C)^u,63),E=C,P=p,b=U,p=Cn(D^(l=ut(l,i,o,c)),M^(i=C),32),o=Cn((D=ut(P,b,p,U=C))^o,(M=C)^c,24),c=ut(c=l,i,o,l=C),i=C,s[e>>2]=c,s[e+4>>2]=i,c=Cn(c^p,U^i,16),i=C,s[e+904>>2]=c,s[e+908>>2]=i,c=ut(D,M,c,i),i=C,s[e+640>>2]=c,s[e+644>>2]=i,oe=e,ie=Cn(o^c,l^i,63),s[oe+264>>2]=ie,s[e+268>>2]=C,p=a,c=ut(B,v,a,A),m=ut(j,Y,l=Cn(m^c,d^(a=C),32),i=C),c=ut(c,d=a,o=Cn(p^m,(o=A)^(A=C),24),a=C),d=C,s[f>>2]=c,s[f+4>>2]=d,f=Cn(c^l,i^d,16),c=C,s[e+768>>2]=f,s[e+772>>2]=c,f=ut(m,A,f,c),s[e+648>>2]=f,c=C,s[e+652>>2]=c,oe=e,ie=Cn(o^f,c^a,63),s[oe+384>>2]=ie,s[e+388>>2]=C,l=u,a=Cn(I^(o=ut(k,S,u,E)),Q^(c=C),32),f=Cn(l^(u=ut(N,_,a,A=C)),(i=E)^(E=C),24),o=ut(o,i=c,f,c=C),i=l=C,s[e+128>>2]=o,s[e+132>>2]=i,o=Cn(o^a,i^A,16),a=C,s[e+776>>2]=o,s[e+780>>2]=a,o=ut(u,E,o,a),s[e+512>>2]=o,a=C,s[e+516>>2]=a,oe=e,ie=Cn(o^f,c^a,63),s[oe+392>>2]=ie,s[e+396>>2]=C,f=ut(x,H,w,h),A=ut(O,T,c=Cn(g^f,R^(o=C),32),a=C),h=ut(i=f,o,w=Cn(A^w,(u=C)^h,24),f=C),o=C,s[e+136>>2]=h,s[e+140>>2]=o,h=Cn(c^h,a^o,16),o=C,s[e+896>>2]=h,s[e+900>>2]=o,h=ut(A,u,h,o),s[e+520>>2]=h,o=C,s[e+524>>2]=o,oe=e,ie=Cn(h^w,o^f,63),s[oe+256>>2]=ie,s[e+260>>2]=C,8!=(0|(t=t+1|0)););Qn(n,r),ot(n,r+1024|0),y=r+2048|0}function R(e){var t=0,n=0,r=0,o=0,i=0,a=0,c=0,u=0,l=0;e:if(e|=0){i=(r=e-8|0)+(e=-8&(t=s[e-4>>2]))|0;t:if(!(1&t)){if(!(3&t))break e;if((r=r-(t=s[r>>2])|0)>>>0>2])))return s[8963]=e,s[i+4>>2]=-2&t,s[r+4>>2]=1|e,void(s[e+r>>2]=e)}else{if(t>>>0<=255){if(o=s[r+8>>2],t=t>>>3|0,(0|(n=s[r+12>>2]))==(0|o)){u=35844,l=s[8961]&Pt(-2,t),s[u>>2]=l;break t}s[o+12>>2]=n,s[n+8>>2]=o;break t}if(c=s[r+24>>2],(0|r)==(0|(t=s[r+12>>2])))if((n=s[(o=r+20|0)>>2])||(n=s[(o=r+16|0)>>2])){for(;a=o,(n=s[(o=(t=n)+20|0)>>2])||(o=t+16|0,n=s[t+16>>2]););s[a>>2]=0}else t=0;else n=s[r+8>>2],s[n+12>>2]=t,s[t+8>>2]=n;if(!c)break t;o=s[r+28>>2];n:{if(s[(n=36148+(o<<2)|0)>>2]==(0|r)){if(s[n>>2]=t,t)break n;u=35848,l=s[8962]&Pt(-2,o),s[u>>2]=l;break t}if(s[c+(s[c+16>>2]==(0|r)?16:20)>>2]=t,!t)break t}if(s[t+24>>2]=c,(n=s[r+16>>2])&&(s[t+16>>2]=n,s[n+24>>2]=t),!(n=s[r+20>>2]))break t;s[t+20>>2]=n,s[n+24>>2]=t}}if(!(r>>>0>=i>>>0)&&1&(t=s[i+4>>2])){t:{if(!(2&t)){if(s[8967]==(0|i)){if(s[8967]=r,e=s[8964]+e|0,s[8964]=e,s[r+4>>2]=1|e,s[8966]!=(0|r))break e;return s[8963]=0,void(s[8966]=0)}if(s[8966]==(0|i))return s[8966]=r,e=s[8963]+e|0,s[8963]=e,s[r+4>>2]=1|e,void(s[e+r>>2]=e);e=(-8&t)+e|0;n:if(t>>>0<=255){if(t=t>>>3|0,(0|(n=s[i+8>>2]))==(0|(o=s[i+12>>2]))){u=35844,l=s[8961]&Pt(-2,t),s[u>>2]=l;break n}s[n+12>>2]=o,s[o+8>>2]=n}else{if(c=s[i+24>>2],(0|i)==(0|(t=s[i+12>>2])))if((n=s[(o=i+20|0)>>2])||(n=s[(o=i+16|0)>>2])){for(;a=o,(n=s[(o=(t=n)+20|0)>>2])||(o=t+16|0,n=s[t+16>>2]););s[a>>2]=0}else t=0;else n=s[i+8>>2],s[n+12>>2]=t,s[t+8>>2]=n;if(c){o=s[i+28>>2];r:{if(s[(n=36148+(o<<2)|0)>>2]==(0|i)){if(s[n>>2]=t,t)break r;u=35848,l=s[8962]&Pt(-2,o),s[u>>2]=l;break n}if(s[c+(s[c+16>>2]==(0|i)?16:20)>>2]=t,!t)break n}s[t+24>>2]=c,(n=s[i+16>>2])&&(s[t+16>>2]=n,s[n+24>>2]=t),(n=s[i+20>>2])&&(s[t+20>>2]=n,s[n+24>>2]=t)}}if(s[r+4>>2]=1|e,s[e+r>>2]=e,s[8966]!=(0|r))break t;return void(s[8963]=e)}s[i+4>>2]=-2&t,s[r+4>>2]=1|e,s[e+r>>2]=e}if(e>>>0<=255)return t=35884+((e=e>>>3|0)<<3)|0,(n=s[8961])&(e=1<>2]:(s[8961]=e|n,e=t),s[t+8>>2]=r,s[e+12>>2]=r,s[r+12>>2]=t,void(s[r+8>>2]=e);o=31,s[r+16>>2]=0,s[r+20>>2]=0,e>>>0<=16777215&&(t=e>>>8|0,t<<=a=t+1048320>>>16&8,o=28+((t=((t<<=o=t+520192>>>16&4)<<(n=t+245760>>>16&2)>>>15|0)-(n|o|a)|0)<<1|e>>>t+21&1)|0),s[r+28>>2]=o,a=36148+(o<<2)|0;t:{n:{if((n=s[8962])&(t=1<>>1|0)|0),t=s[a>>2];;){if(n=t,(-8&s[t+4>>2])==(0|e))break n;if(t=o>>>29|0,o<<=1,!(t=s[16+(a=n+(4&t)|0)>>2]))break}s[a+16>>2]=r,s[r+24>>2]=n}else s[8962]=t|n,s[a>>2]=r,s[r+24>>2]=a;s[r+12>>2]=r,s[r+8>>2]=r;break t}e=s[n+8>>2],s[e+12>>2]=r,s[n+8>>2]=r,s[r+24>>2]=0,s[r+12>>2]=n,s[r+8>>2]=e}e=s[8969]-1|0,s[8969]=e||-1}}}function P(e,t){var n,r=0,o=0,i=0,a=0,c=0,d=0,u=0;n=e+t|0;e:{t:if(!(1&(r=s[e+4>>2]))){if(!(3&r))break e;if(t=(r=s[e>>2])+t|0,(0|(e=e-r|0))==s[8966]){if(3==(3&(r=s[n+4>>2])))return s[8963]=t,s[n+4>>2]=-2&r,s[e+4>>2]=1|t,void(s[n>>2]=t)}else{if(r>>>0<=255){if(i=s[e+8>>2],r=r>>>3|0,(0|(o=s[e+12>>2]))==(0|i)){d=35844,u=s[8961]&Pt(-2,r),s[d>>2]=u;break t}s[i+12>>2]=o,s[o+8>>2]=i;break t}if(c=s[e+24>>2],(0|(r=s[e+12>>2]))==(0|e))if((o=s[(i=e+20|0)>>2])||(o=s[(i=e+16|0)>>2])){for(;a=i,(o=s[(i=(r=o)+20|0)>>2])||(i=r+16|0,o=s[r+16>>2]););s[a>>2]=0}else r=0;else o=s[e+8>>2],s[o+12>>2]=r,s[r+8>>2]=o;if(!c)break t;i=s[e+28>>2];n:{if(s[(o=36148+(i<<2)|0)>>2]==(0|e)){if(s[o>>2]=r,r)break n;d=35848,u=s[8962]&Pt(-2,i),s[d>>2]=u;break t}if(s[c+(s[c+16>>2]==(0|e)?16:20)>>2]=r,!r)break t}if(s[r+24>>2]=c,(o=s[e+16>>2])&&(s[r+16>>2]=o,s[o+24>>2]=r),!(o=s[e+20>>2]))break t;s[r+20>>2]=o,s[o+24>>2]=r}}t:{if(!(2&(r=s[n+4>>2]))){if(s[8967]==(0|n)){if(s[8967]=e,t=s[8964]+t|0,s[8964]=t,s[e+4>>2]=1|t,s[8966]!=(0|e))break e;return s[8963]=0,void(s[8966]=0)}if(s[8966]==(0|n))return s[8966]=e,t=s[8963]+t|0,s[8963]=t,s[e+4>>2]=1|t,void(s[e+t>>2]=t);t=(-8&r)+t|0;n:if(r>>>0<=255){if(i=s[n+8>>2],r=r>>>3|0,(0|(o=s[n+12>>2]))==(0|i)){d=35844,u=s[8961]&Pt(-2,r),s[d>>2]=u;break n}s[i+12>>2]=o,s[o+8>>2]=i}else{if(c=s[n+24>>2],(0|n)==(0|(r=s[n+12>>2])))if((i=s[(o=n+20|0)>>2])||(i=s[(o=n+16|0)>>2])){for(;a=o,(i=s[(o=(r=i)+20|0)>>2])||(o=r+16|0,i=s[r+16>>2]););s[a>>2]=0}else r=0;else o=s[n+8>>2],s[o+12>>2]=r,s[r+8>>2]=o;if(c){i=s[n+28>>2];r:{if(s[(o=36148+(i<<2)|0)>>2]==(0|n)){if(s[o>>2]=r,r)break r;d=35848,u=s[8962]&Pt(-2,i),s[d>>2]=u;break n}if(s[c+(s[c+16>>2]==(0|n)?16:20)>>2]=r,!r)break n}s[r+24>>2]=c,(o=s[n+16>>2])&&(s[r+16>>2]=o,s[o+24>>2]=r),(o=s[n+20>>2])&&(s[r+20>>2]=o,s[o+24>>2]=r)}}if(s[e+4>>2]=1|t,s[e+t>>2]=t,s[8966]!=(0|e))break t;return void(s[8963]=t)}s[n+4>>2]=-2&r,s[e+4>>2]=1|t,s[e+t>>2]=t}if(t>>>0<=255)return r=35884+((t=t>>>3|0)<<3)|0,(o=s[8961])&(t=1<>2]:(s[8961]=t|o,t=r),s[r+8>>2]=e,s[t+12>>2]=e,s[e+12>>2]=r,void(s[e+8>>2]=t);i=31,s[e+16>>2]=0,s[e+20>>2]=0,t>>>0<=16777215&&(r=t>>>8|0,r<<=a=r+1048320>>>16&8,i=28+((r=((r<<=i=r+520192>>>16&4)<<(o=r+245760>>>16&2)>>>15|0)-(o|i|a)|0)<<1|t>>>r+21&1)|0),s[e+28>>2]=i,a=36148+(i<<2)|0;t:{if((o=s[8962])&(r=1<>>1|0)|0),r=s[a>>2];;){if(o=r,(-8&s[r+4>>2])==(0|t))break t;if(r=i>>>29|0,i<<=1,!(r=s[16+(a=o+(4&r)|0)>>2]))break}s[a+16>>2]=e,s[e+24>>2]=o}else s[8962]=r|o,s[a>>2]=e,s[e+24>>2]=a;return s[e+12>>2]=e,void(s[e+8>>2]=e)}t=s[o+8>>2],s[t+12>>2]=e,s[o+8>>2]=e,s[e+24>>2]=0,s[e+12>>2]=o,s[e+8>>2]=t}}function N(e,t,n,r,o){var a,d,u,l,A,f,h,g,p,m,v,b,I,C,E,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,M=0,T=0,U=0,H=0,j=0,J=0,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0;for(y=a=y+-64|0,d=s[e+60>>2],u=s[e+56>>2],G=s[e+52>>2],J=s[e+48>>2],l=s[e+44>>2],A=s[e+40>>2],f=s[e+36>>2],h=s[e+32>>2],g=s[e+28>>2],p=s[e+24>>2],m=s[e+20>>2],v=s[e+16>>2],b=s[e+12>>2],I=s[e+8>>2],C=s[e+4>>2],E=s[e>>2];;){if(!o&r>>>0>63|o)_=n;else{if(S=0,_=w=ae(a,0,64),r|o)for(;i[w+S|0]=c[t+S|0],!o&(S=S+1|0)>>>0>>0|o;);t=_,Y=n}for(L=20,R=E,P=C,N=I,x=b,S=v,w=m,n=p,D=g,k=h,O=f,M=A,T=d,U=u,B=G,H=J,F=l;Q=S,R=On((S=S+R|0)^H,16),H=On(Q^(k=R+k|0),12),Q=k,k=On((k=R)^(R=S+H|0),8),S=On(H^(j=Q+k|0),7),Q=w,P=On((w=w+P|0)^B,16),B=On(Q^(O=P+O|0),12),Q=O,O=On((O=P)^(P=w+B|0),8),w=On(B^(q=Q+O|0),7),B=n,N=On((n=n+N|0)^U,16),Q=U=On(B^(M=N+M|0),12),U=On((B=N)^(N=n+U|0),8),n=On(Q^(M=U+M|0),7),B=D,x=On((D=D+x|0)^T,16),F=B=On(B^(T=x+F|0),12),Q=T,T=On((T=x)^(x=D+B|0),8),D=On(F^(B=Q+T|0),7),Q=M,M=On((R=w+R|0)^T,16),w=On((H=Q+M|0)^w,12),T=On(M^(R=w+R|0),8),w=On(w^(M=H+T|0),7),k=On((P=n+P|0)^k,16),n=On((B=k+B|0)^n,12),H=On(k^(P=n+P|0),8),n=On(n^(F=B+H|0),7),k=On((N=D+N|0)^O,16),D=On((O=k+j|0)^D,12),B=On(k^(N=D+N|0),8),D=On(D^(k=O+B|0),7),O=On((x=S+x|0)^U,16),S=On((j=O+q|0)^S,12),U=On(O^(x=S+x|0),8),S=On(S^(O=j+U|0),7),L=L-2|0;);if(L=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,j=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,q=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,V=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,W=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,K=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,Z=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,z=c[t+32|0]|c[t+33|0]<<8|c[t+34|0]<<16|c[t+35|0]<<24,X=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24,$=c[t+40|0]|c[t+41|0]<<8|c[t+42|0]<<16|c[t+43|0]<<24,ee=c[t+44|0]|c[t+45|0]<<8|c[t+46|0]<<16|c[t+47|0]<<24,te=c[t+48|0]|c[t+49|0]<<8|c[t+50|0]<<16|c[t+51|0]<<24,ne=c[t+52|0]|c[t+53|0]<<8|c[t+54|0]<<16|c[t+55|0]<<24,re=c[t+56|0]|c[t+57|0]<<8|c[t+58|0]<<16|c[t+59|0]<<24,Q=c[t+60|0]|c[t+61|0]<<8|c[t+62|0]<<16|c[t+63|0]<<24,Jt(_,R+E^(c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24)),Jt(_+4|0,P+C^L),Jt(_+8|0,N+I^j),Jt(_+12|0,x+b^q),Jt(_+16|0,S+v^V),Jt(_+20|0,w+m^W),Jt(_+24|0,n+p^K),Jt(_+28|0,D+g^Z),Jt(_+32|0,k+h^z),Jt(_+36|0,O+f^X),Jt(_+40|0,$^M+A),Jt(_+44|0,ee^F+l),Jt(_+48|0,te^H+J),Jt(_+52|0,ne^B+G),Jt(_+56|0,re^U+u),Jt(_+60|0,Q^T+d),G=((J=(n=J)+1|0)>>>0>>0)+G|0,!o&r>>>0<=64){if(!(!r|!o&r>>>0>63|0!=(0|o)))for(w=0;i[w+Y|0]=c[_+w|0],(0|r)!=(0|(w=w+1|0)););s[e+52>>2]=G,s[e+48>>2]=J,y=a- -64|0;break}t=t- -64|0,n=_- -64|0,o=o-1|0,o=(r=r+-64|0)>>>0<4294967232?o+1|0:o}}function x(e,t,n,r){var o=0,i=0,a=0,d=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,y=0,b=0,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0;if(g=s[e+36>>2],d=s[e+32>>2],a=s[e+28>>2],i=s[e+24>>2],l=s[e+20>>2],!r&n>>>0>=16|r)for(k=!c[e+80|0]<<24,m=s[e+4>>2],O=u(m,5),b=s[e+8>>2],S=u(b,5),B=s[e+12>>2],_=u(B,5),o=s[e+16>>2],I=u(o,5),Q=o,v=s[e>>2];o=fn(A=((c[t+3|0]|c[t+4|0]<<8|c[t+5|0]<<16|c[t+6|0]<<24)>>>2&67108863)+i|0,0,B,0),f=C,i=(p=fn(l=(67108863&(c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24))+l|0,0,Q,0))+o|0,o=C+f|0,o=i>>>0

>>0?o+1|0:o,h=i,i=fn(f=((c[t+6|0]|c[t+7|0]<<8|c[t+8|0]<<16|c[t+9|0]<<24)>>>4&67108863)+a|0,0,b,0),o=C+o|0,o=i>>>0>(a=h+i|0)>>>0?o+1|0:o,i=a,a=fn(p=((c[t+9|0]|c[t+10|0]<<8|c[t+11|0]<<16|c[t+12|0]<<24)>>>6|0)+d|0,0,m,0),o=C+o|0,o=a>>>0>(d=i+a|0)>>>0?o+1|0:o,i=d,d=fn(y=g+k+((c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24)>>>8)|0,0,v,0),o=C+o|0,R=g=i+d|0,g=d>>>0>g>>>0?o+1|0:o,o=fn(A,0,b,0),a=C,d=(i=fn(l,0,B,0))+o|0,o=C+a|0,o=i>>>0>d>>>0?o+1|0:o,a=fn(f,0,m,0),o=C+o|0,o=a>>>0>(d=a+d|0)>>>0?o+1|0:o,a=fn(p,0,v,0),o=C+o|0,o=a>>>0>(d=a+d|0)>>>0?o+1|0:o,a=fn(y,0,I,0),o=C+o|0,P=d=a+d|0,d=a>>>0>d>>>0?o+1|0:o,o=fn(A,0,m,0),i=C,a=(E=fn(l,0,b,0))+o|0,o=C+i|0,o=a>>>0>>0?o+1|0:o,i=fn(f,0,v,0),o=C+o|0,o=i>>>0>(a=i+a|0)>>>0?o+1|0:o,i=fn(p,0,I,0),o=C+o|0,o=i>>>0>(a=i+a|0)>>>0?o+1|0:o,i=fn(y,0,_,0),o=C+o|0,E=a=i+a|0,a=i>>>0>a>>>0?o+1|0:o,o=fn(A,0,v,0),h=C,i=(w=fn(l,0,m,0))+o|0,o=C+h|0,o=i>>>0>>0?o+1|0:o,h=fn(f,0,I,0),o=C+o|0,o=(i=h+i|0)>>>0>>0?o+1|0:o,h=fn(p,0,_,0),o=C+o|0,o=(i=h+i|0)>>>0>>0?o+1|0:o,h=fn(y,0,S,0),o=C+o|0,o=(i=h+i|0)>>>0>>0?o+1|0:o,h=i,i=o,o=fn(A,0,I,0),w=C,A=(l=fn(l,0,v,0))+o|0,o=C+w|0,o=A>>>0>>0?o+1|0:o,l=fn(f,0,_,0),o=C+o|0,o=(A=l+A|0)>>>0>>0?o+1|0:o,l=fn(p,0,S,0),o=C+o|0,o=(A=l+A|0)>>>0>>0?o+1|0:o,l=fn(y,0,O,0),o=C+o|0,o=(A=l+A|0)>>>0>>0?o+1|0:o,l=A,f=(67108863&o)<<6|A>>>26,o=i,f=(67108863&(o=(A=f+h|0)>>>0>>0?o+1|0:o))<<6|(i=A)>>>26,o=a,o=(i=f+E|0)>>>0>>0?o+1|0:o,f=i,i=(67108863&o)<<6|i>>>26,o=d,p=a=i+P|0,a=(67108863&(o=i>>>0>a>>>0?o+1|0:o))<<6|a>>>26,o=g,g=d=a+R|0,i=(67108863&A)+((o=u((67108863&(o=a>>>0>d>>>0?o+1|0:o))<<6|d>>>26,5)+(67108863&l)|0)>>>26|0)|0,a=67108863&f,d=67108863&p,g&=67108863,l=67108863&o,t=t+16|0,!(r=r-(n>>>0<16)|0)&(n=n-16|0)>>>0>15|r;);s[e+20>>2]=l,s[e+36>>2]=g,s[e+32>>2]=d,s[e+28>>2]=a,s[e+24>>2]=i}function D(e,t,n){var r,o,a,s,d=0,u=0,l=0,A=0,f=0;return y=a=y-160|0,Rt(t,n,32,0),i[0|t]=248&c[0|t],i[t+31|0]=63&c[t+31|0]|64,ie(a,t),ct(e,a),u=c[(o=n)+8|0]|c[o+9|0]<<8|c[o+10|0]<<16|c[o+11|0]<<24,d=c[o+12|0]|c[o+13|0]<<8|c[o+14|0]<<16|c[o+15|0]<<24,l=c[o+16|0]|c[o+17|0]<<8|c[o+18|0]<<16|c[o+19|0]<<24,A=c[o+20|0]|c[o+21|0]<<8|c[o+22|0]<<16|c[o+23|0]<<24,f=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,n=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,r=t,s=c[o+28|0]|c[o+29|0]<<8|c[o+30|0]<<16|c[o+31|0]<<24,t=c[o+24|0]|c[o+25|0]<<8|c[o+26|0]<<16|c[o+27|0]<<24,i[r+24|0]=t,i[r+25|0]=t>>>8,i[r+26|0]=t>>>16,i[r+27|0]=t>>>24,i[r+28|0]=s,i[r+29|0]=s>>>8,i[r+30|0]=s>>>16,i[r+31|0]=s>>>24,i[r+16|0]=l,i[r+17|0]=l>>>8,i[r+18|0]=l>>>16,i[r+19|0]=l>>>24,i[r+20|0]=A,i[r+21|0]=A>>>8,i[r+22|0]=A>>>16,i[r+23|0]=A>>>24,i[r+8|0]=u,i[r+9|0]=u>>>8,i[r+10|0]=u>>>16,i[r+11|0]=u>>>24,i[r+12|0]=d,i[r+13|0]=d>>>8,i[r+14|0]=d>>>16,i[r+15|0]=d>>>24,i[0|r]=f,i[r+1|0]=f>>>8,i[r+2|0]=f>>>16,i[r+3|0]=f>>>24,i[r+4|0]=n,i[r+5|0]=n>>>8,i[r+6|0]=n>>>16,i[r+7|0]=n>>>24,l=c[(d=e)+8|0]|c[d+9|0]<<8|c[d+10|0]<<16|c[d+11|0]<<24,A=c[d+12|0]|c[d+13|0]<<8|c[d+14|0]<<16|c[d+15|0]<<24,f=c[d+16|0]|c[d+17|0]<<8|c[d+18|0]<<16|c[d+19|0]<<24,n=c[d+20|0]|c[d+21|0]<<8|c[d+22|0]<<16|c[d+23|0]<<24,t=c[0|d]|c[d+1|0]<<8|c[d+2|0]<<16|c[d+3|0]<<24,e=c[d+4|0]|c[d+5|0]<<8|c[d+6|0]<<16|c[d+7|0]<<24,u=c[d+28|0]|c[d+29|0]<<8|c[d+30|0]<<16|c[d+31|0]<<24,d=c[d+24|0]|c[d+25|0]<<8|c[d+26|0]<<16|c[d+27|0]<<24,i[r+56|0]=d,i[r+57|0]=d>>>8,i[r+58|0]=d>>>16,i[r+59|0]=d>>>24,i[r+60|0]=u,i[r+61|0]=u>>>8,i[r+62|0]=u>>>16,i[r+63|0]=u>>>24,i[r+48|0]=f,i[r+49|0]=f>>>8,i[r+50|0]=f>>>16,i[r+51|0]=f>>>24,i[r+52|0]=n,i[r+53|0]=n>>>8,i[r+54|0]=n>>>16,i[r+55|0]=n>>>24,i[r+40|0]=l,i[r+41|0]=l>>>8,i[r+42|0]=l>>>16,i[r+43|0]=l>>>24,i[r+44|0]=A,i[r+45|0]=A>>>8,i[r+46|0]=A>>>16,i[r+47|0]=A>>>24,i[r+32|0]=t,i[r+33|0]=t>>>8,i[r+34|0]=t>>>16,i[r+35|0]=t>>>24,i[r+36|0]=e,i[r+37|0]=e>>>8,i[r+38|0]=e>>>16,i[r+39|0]=e>>>24,y=a+160|0,0}function M(e,t,n){var r,o=0,a=0,s=0;y=r=y+-64|0;e:{if(!(!n|n>>>0>=65)){if(o=-1,!(c[e+80|0]|c[e+81|0]<<8|c[e+82|0]<<16|c[e+83|0]<<24|c[e+84|0]|c[e+85|0]<<8|c[e+86|0]<<16|c[e+87|0]<<24)){if(a=e,(o=c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)>>>0>=129){if(se(e,128),E(e,s=e+96|0),o=(c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)-128|0,i[e+352|0]=o,i[e+353|0]=o>>>8,i[e+354|0]=o>>>16,i[e+355|0]=o>>>24,o>>>0>=129)break e;q(s,e+224|0,o),o=c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24}se(a,o),c[e+356|0]&&(i[e+88|0]=255,i[e+89|0]=255,i[e+90|0]=255,i[e+91|0]=255,i[e+92|0]=255,i[e+93|0]=255,i[e+94|0]=255,i[e+95|0]=255),i[e+80|0]=255,i[e+81|0]=255,i[e+82|0]=255,i[e+83|0]=255,i[e+84|0]=255,i[e+85|0]=255,i[e+86|0]=255,i[e+87|0]=255,ae((o=e+96|0)+(a=c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)|0,0,256-a|0),E(e,o),ft(r,c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24),ft(8|r,c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24),ft(r+16|0,c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24),ft(r+24|0,c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24,c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24),ft(r+32|0,c[e+32|0]|c[e+33|0]<<8|c[e+34|0]<<16|c[e+35|0]<<24,c[e+36|0]|c[e+37|0]<<8|c[e+38|0]<<16|c[e+39|0]<<24),ft(r+40|0,c[e+40|0]|c[e+41|0]<<8|c[e+42|0]<<16|c[e+43|0]<<24,c[e+44|0]|c[e+45|0]<<8|c[e+46|0]<<16|c[e+47|0]<<24),ft(r+48|0,c[e+48|0]|c[e+49|0]<<8|c[e+50|0]<<16|c[e+51|0]<<24,c[e+52|0]|c[e+53|0]<<8|c[e+54|0]<<16|c[e+55|0]<<24),ft(r+56|0,c[e+56|0]|c[e+57|0]<<8|c[e+58|0]<<16|c[e+59|0]<<24,c[e+60|0]|c[e+61|0]<<8|c[e+62|0]<<16|c[e+63|0]<<24),q(t,r,n),ht(e,64),ht(o,256),o=0}return y=r- -64|0,o}zt(),A()}f(1854,1886,306,1931),A()}function T(e,t){var n,r,o,i,a,d,u,l,A,f=0,h=0,g=0,p=0,m=0,v=0,y=0,b=0,I=0,E=0,w=0;n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,I=kt(t+4|0),f=C,y=kt(t+7|0),g=C,b=kt(t+10|0),h=C,r=kt(t+13|0),m=C,p=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,o=kt(t+20|0),E=C,i=kt(t+23|0),a=C,d=kt(t+26|0),u=C,l=kt(t+29|0),t=h<<3|b>>>29,w=h=b<<3,b=h=h+16777216|0,h=t=h>>>0<16777216?t+1|0:t,g=t=g<<5|y>>>27,A=v=y<<5,f=t=f<<6|(y=I)>>>26,I=t=16777216+(y<<=6)|0,v=t,t=(t=(f=t>>>0<16777216?f+1|0:f)>>25)+g|0,t=(f=A+(v=(33554431&f)<<7|v>>>25)|0)>>>0>>0?t+1|0:t,(g=f+33554432|0)>>>0<33554432&&(t=t+1|0),t=(w-(-33554432&b)|0)+((67108863&t)<<6|g>>>26)|0,s[e+12>>2]=t,t=-67108864&g,s[e+8>>2]=f-t,t=0,v=p=(g=p)+16777216|0,p=t=p>>>0<16777216?1:t,w=g-(-33554432&v)|0,t=m<<2|(g=r)>>>30,m=g<<2,g=t,t=(t=h>>25)+g|0,f=t=(h=(f=m)+(m=(33554431&h)<<7|b>>>25)|0)>>>0>>0?t+1|0:t,g=t=h+33554432|0,t=((67108863&(f=t>>>0<33554432?f+1|0:f))<<6|t>>>26)+w|0,s[e+20>>2]=t,t=-67108864&g,s[e+16>>2]=h-t,m=(f=o)<<7,t=(t=E<<7|f>>>25)+(f=p>>25)|0,t=(p=m+(g=(33554431&p)<<7|v>>>25)|0)>>>0>>0?t+1|0:t,p=f=p,g=f=f+33554432|0,f=t=f>>>0<33554432?t+1|0:t,t=-67108864&g,s[(h=e)+24>>2]=p-t,p=h,t=a<<5|(h=i)>>>27,E=h<<=5,m=h=h+16777216|0,h=t=h>>>0<16777216?t+1|0:t,t=(E-(-33554432&m)|0)+((67108863&f)<<6|g>>>26)|0,s[p+28>>2]=t,g=(f=d)<<4,f=t=u<<4|f>>>28,t=(t=h>>25)+f|0,t=(h=(v=g)+(g=(33554431&h)<<7|m>>>25)|0)>>>0>>0?t+1|0:t,h=f=h,g=f=f+33554432|0,f=t=f>>>0<33554432?t+1|0:t,t=-67108864&g,s[p+32>>2]=h-t,t=0,h=p=(p=l)<<2&33554428,t=(p=p+16777216|0)>>>0<16777216?t+1|0:t,f=(h-(33554432&p)|0)+((67108863&f)<<6|g>>>26)|0,s[e+36>>2]=f,p=fn((33554431&t)<<7|p>>>25,t>>>25|0,19,0),t=C,t=(f=p+n|0)>>>0

>>0?t+1|0:t,(h=f+33554432|0)>>>0<33554432&&(t=t+1|0),t=(y-(-33554432&I)|0)+((67108863&t)<<6|h>>>26)|0,s[e+4>>2]=t,t=e,e=-67108864&h,s[t>>2]=f-e}function U(e,t){var n,r,o,i,a,c,d,u,l,A=0,f=0,h=0,g=0,p=0,m=0,v=0,y=0,b=0,I=0,E=0,w=0,B=0,_=0;E=f=s[(A=t)+4>>2],b=f>>31,w=f=s[A+8>>2],r=f>>31,v=f=s[A+12>>2],I=f>>31,B=f=s[A+16>>2],o=f>>31,y=f=s[A+20>>2],m=f>>31,_=f=s[A+24>>2],i=f>>31,a=f=s[A>>2],c=f>>31,g=f=fn(A=s[A+36>>2],A>>31,121666,0),A=C,n=f=f+16777216|0,f=A=f>>>0<16777216?A+1|0:A,d=g-(-33554432&n)|0,h=fn(A=s[t+32>>2],A>>31,121666,0),u=C,g=fn(t=s[t+28>>2],t>>31,121666,0),A=C,p=h,l=t=g+16777216|0,h=t,t=(t=(A=t>>>0<16777216?A+1|0:A)>>25)+u|0,t=(A=p+(h=(33554431&A)<<7|h>>>25)|0)>>>0>>0?t+1|0:t,h=A,A=t,p=t=h+33554432|0,t=((67108863&(A=t>>>0<33554432?A+1|0:A))<<6|t>>>26)+d|0,s[e+36>>2]=t,t=-67108864&p,s[e+32>>2]=h-t,p=g-(-33554432&l)|0,A=fn(_,i,121666,0),_=C,g=fn(y,m,121666,0),t=C,h=A,y=A=g+16777216|0,m=A,A=(A=(t=A>>>0<16777216?t+1|0:t)>>25)+_|0,A=(t=h+(m=(33554431&t)<<7|m>>>25)|0)>>>0>>0?A+1|0:A,(h=t+33554432|0)>>>0<33554432&&(A=A+1|0),A=p+((67108863&A)<<6|h>>>26)|0,s[e+28>>2]=A,A=-67108864&h,s[e+24>>2]=t-A,y=g-(-33554432&y)|0,t=fn(B,o,121666,0),B=C,g=fn(v,I,121666,0),A=C,p=t,v=t=g+16777216|0,I=(33554431&(A=t>>>0<16777216?A+1|0:A))<<7|t>>>25,A=(A>>25)+B|0,t=A=(h=p+I|0)>>>0>>0?A+1|0:A,t=((67108863&(t=(A=h+33554432|0)>>>0<33554432?t+1|0:t))<<6|A>>>26)+y|0,s[e+20>>2]=t,t=-67108864&A,s[e+16>>2]=h-t,v=g-(-33554432&v)|0,A=fn(w,r,121666,0),w=C,g=fn(E,b,121666,0),t=C,p=A,E=A=g+16777216|0,b=(33554431&(t=A>>>0<16777216?t+1|0:t))<<7|A>>>25,t=(t>>25)+w|0,A=t=(h=p+b|0)>>>0>>0?t+1|0:t,p=t=h+33554432|0,t=((67108863&(A=t>>>0<33554432?A+1|0:A))<<6|t>>>26)+v|0,s[e+12>>2]=t,t=-67108864&p,s[e+8>>2]=h-t,t=fn((33554431&f)<<7|n>>>25,f>>25,19,0),A=C,p=g-(-33554432&E)|0,f=fn(a,c,121666,0),A=C+A|0,A=(t=f+t|0)>>>0>>0?A+1|0:A,(f=t+33554432|0)>>>0<33554432&&(A=A+1|0),A=p+((67108863&A)<<6|f>>>26)|0,s[e+4>>2]=A,A=e,e=-67108864&f,s[A>>2]=t-e}function H(e,t,n,r){var o,a=0,d=0;y=o=y-16|0,a=-31;e:{t:{n:{r:switch(r-1|0){case 1:if(t>>>0<13)break t;r=c[35660]|c[35661]<<8|c[35662]<<16|c[35663]<<24,a=c[35656]|c[35657]<<8|c[35658]<<16|c[35659]<<24,i[0|e]=a,i[e+1|0]=a>>>8,i[e+2|0]=a>>>16,i[e+3|0]=a>>>24,i[e+4|0]=r,i[e+5|0]=r>>>8,i[e+6|0]=r>>>16,i[e+7|0]=r>>>24,r=c[35665]|c[35666]<<8|c[35667]<<16|c[35668]<<24,a=c[35661]|c[35662]<<8|c[35663]<<16|c[35664]<<24,i[e+5|0]=a,i[e+6|0]=a>>>8,i[e+7|0]=a>>>16,i[e+8|0]=a>>>24,i[e+9|0]=r,i[e+10|0]=r>>>8,i[e+11|0]=r>>>16,i[e+12|0]=r>>>24,d=-12,r=12;break n;case 0:break r;default:break e}if(t>>>0<12)break t;r=c[35673]|c[35674]<<8|c[35675]<<16|c[35676]<<24,a=c[35669]|c[35670]<<8|c[35671]<<16|c[35672]<<24,i[0|e]=a,i[e+1|0]=a>>>8,i[e+2|0]=a>>>16,i[e+3|0]=a>>>24,i[e+4|0]=r,i[e+5|0]=r>>>8,i[e+6|0]=r>>>16,i[e+7|0]=r>>>24,r=c[35677]|c[35678]<<8|c[35679]<<16|c[35680]<<24,i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,d=-11,r=11}if(a=le(n))break e;if(Le(o+5|0,19),!((a=t+d|0)>>>0<=(t=Oe(o+5|0))>>>0)&&(e=q(e+r|0,o+5|0,t+1|0),!((r=a-t|0)>>>0<4)&&(i[0|(e=e+t|0)]=36,i[e+1|0]=109,i[e+2|0]=61,i[e+3|0]=0,Le(o+5|0,s[n+44>>2]),!((r=r-3|0)>>>0<=(t=Oe(o+5|0))>>>0)&&(e=q(e+3|0,o+5|0,t+1|0),!((r=r-t|0)>>>0<4)&&(i[0|(e=e+t|0)]=44,i[e+1|0]=116,i[e+2|0]=61,i[e+3|0]=0,Le(o+5|0,s[n+40>>2]),!((r=r-3|0)>>>0<=(t=Oe(o+5|0))>>>0)&&(e=q(e+3|0,o+5|0,t+1|0),!((r=r-t|0)>>>0<4)&&(i[0|(e=e+t|0)]=44,i[e+1|0]=112,i[e+2|0]=61,i[e+3|0]=0,Le(o+5|0,s[n+48>>2]),!((r=r-3|0)>>>0<=(t=Oe(o+5|0))>>>0)&&(e=q(e+3|0,o+5|0,t+1|0),!((r=r-t|0)>>>0<2)&&(i[0|(e=e+t|0)]=36,i[e+1|0]=0,z(e=e+1|0,t=r-1|0,s[n+16>>2],s[n+20>>2],3)))))))))){if(a=-31,(r=(r=t)-(t=Oe(e))|0)>>>0<2)break e;return i[0|(e=e+t|0)]=36,i[e+1|0]=0,e=z(e+1|0,r-1|0,s[n>>2],s[n+4>>2],3),y=o+16|0,e?0:-31}}a=-31}return y=o+16|0,a}function j(e,t,n,r){var o,a=0;o=a=y,y=a=a-576&-64,s[a+188>>2]=0,Jt(a+188|0,t);e:if(t>>>0<=64){if((0|st(a+192|0,0,0,t))<0)break e;if((0|bn(a+192|0,a+188|0,4,0))<0)break e;if((0|bn(a+192|0,n,r,0))<0)break e;Tt(a+192|0,e,t)}else if(!((0|st(a+192|0,0,0,64))<0||(0|bn(a+192|0,a+188|0,4,0))<0||(0|bn(a+192|0,n,r,0))<0||(0|Tt(a+192|0,a+112|0,64))<0)){if(n=s[a+116>>2],r=s[a+112>>2],i[0|e]=r,i[e+1|0]=r>>>8,i[e+2|0]=r>>>16,i[e+3|0]=r>>>24,i[e+4|0]=n,i[e+5|0]=n>>>8,i[e+6|0]=n>>>16,i[e+7|0]=n>>>24,n=s[a+124>>2],r=s[a+120>>2],i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,i[e+12|0]=n,i[e+13|0]=n>>>8,i[e+14|0]=n>>>16,i[e+15|0]=n>>>24,n=s[a+140>>2],r=s[a+136>>2],i[e+24|0]=r,i[e+25|0]=r>>>8,i[e+26|0]=r>>>16,i[e+27|0]=r>>>24,i[e+28|0]=n,i[e+29|0]=n>>>8,i[e+30|0]=n>>>16,i[e+31|0]=n>>>24,n=s[a+132>>2],r=s[a+128>>2],i[e+16|0]=r,i[e+17|0]=r>>>8,i[e+18|0]=r>>>16,i[e+19|0]=r>>>24,i[e+20|0]=n,i[e+21|0]=n>>>8,i[e+22|0]=n>>>16,i[e+23|0]=n>>>24,e=e+32|0,(t=t-32|0)>>>0>=65)for(;;){if(q(a+48|0,a+112|0,64),(0|Bt(a+112|0,64,a+48|0,64,0,0,0))<0)break e;if(n=s[a+116>>2],r=s[a+112>>2],i[0|e]=r,i[e+1|0]=r>>>8,i[e+2|0]=r>>>16,i[e+3|0]=r>>>24,i[e+4|0]=n,i[e+5|0]=n>>>8,i[e+6|0]=n>>>16,i[e+7|0]=n>>>24,n=s[a+124>>2],r=s[a+120>>2],i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,i[e+12|0]=n,i[e+13|0]=n>>>8,i[e+14|0]=n>>>16,i[e+15|0]=n>>>24,n=s[a+140>>2],r=s[a+136>>2],i[e+24|0]=r,i[e+25|0]=r>>>8,i[e+26|0]=r>>>16,i[e+27|0]=r>>>24,i[e+28|0]=n,i[e+29|0]=n>>>8,i[e+30|0]=n>>>16,i[e+31|0]=n>>>24,n=s[a+132>>2],r=s[a+128>>2],i[e+16|0]=r,i[e+17|0]=r>>>8,i[e+18|0]=r>>>16,i[e+19|0]=r>>>24,i[e+20|0]=n,i[e+21|0]=n>>>8,i[e+22|0]=n>>>16,i[e+23|0]=n>>>24,e=e+32|0,!((t=t-32|0)>>>0>64))break}q(a+48|0,a+112|0,64),(0|Bt(a+112|0,t,a+48|0,64,0,0,0))<0||q(e,a+112|0,t)}ht(a+192|0,384),y=o}function J(e,t,n){var r=0,o=0,i=0,a=0,s=0,d=0,u=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,y=0,b=0,I=0,C=0;for(i=2036477234,A=857760878,f=1634760805,a=1797285236,l=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,r=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,o=c[n+8|0]|c[n+9|0]<<8|c[n+10|0]<<16|c[n+11|0]<<24,d=c[n+12|0]|c[n+13|0]<<8|c[n+14|0]<<16|c[n+15|0]<<24,g=c[n+16|0]|c[n+17|0]<<8|c[n+18|0]<<16|c[n+19|0]<<24,p=c[n+20|0]|c[n+21|0]<<8|c[n+22|0]<<16|c[n+23|0]<<24,v=c[n+24|0]|c[n+25|0]<<8|c[n+26|0]<<16|c[n+27|0]<<24,y=c[n+28|0]|c[n+29|0]<<8|c[n+30|0]<<16|c[n+31|0]<<24,n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,h=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,s=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,t=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24;u=l,f=On((m=n)^(n=l+f|0),16),u=g=On(u^(l=f+g|0),12),g=On((m=f)^(f=n+g|0),8),l=On(u^(b=g+l|0),7),u=r,A=On((n=r+A|0)^h,16),u=h=On(u^(r=A+p|0),12),h=On((m=A)^(A=n+h|0),8),n=On(u^(p=h+r|0),7),u=o,r=On((i=i+o|0)^s,16),u=s=On(u^(o=r+v|0),12),m=On(r^(s=i+s|0),8),i=On(u^(r=m+o|0),7),a=On((o=t)^(t=a+d|0),16),d=On((o=a+y|0)^d,12),t=On(a^(I=t+d|0),8),a=On(d^(o=t+o|0),7),u=r,r=On((r=t)^(t=n+f|0),16),n=On((d=u+r|0)^n,12),t=On(r^(f=t+n|0),8),r=On(n^(v=d+t|0),7),u=o,o=On((n=i+A|0)^g,16),i=On((d=u+o|0)^i,12),n=On(o^(A=n+i|0),8),o=On(i^(y=d+n|0),7),d=On((i=a+s|0)^h,16),a=On((s=d+b|0)^a,12),h=On(d^(i=i+a|0),8),d=On(a^(g=s+h|0),7),s=On((a=l+I|0)^m,16),l=On((p=s+p|0)^l,12),s=On(s^(a=a+l|0),8),l=On(l^(p=p+s|0),7),10!=(0|(C=C+1|0)););Jt(e,f),Jt(e+4|0,A),Jt(e+8|0,i),Jt(e+12|0,a),Jt(e+16|0,n),Jt(e+20|0,h),Jt(e+24|0,s),Jt(e+28|0,t)}function F(e){var t,n=0,r=0;y=t=y-48|0,n=c[28+(e|=0)|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,s[t+24>>2]=c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24,s[t+28>>2]=n,n=c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24,s[t+16>>2]=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,s[t+20>>2]=n,n=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,s[t>>2]=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,s[t+4>>2]=n,n=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,s[t+8>>2]=c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,s[t+12>>2]=n,n=c[e+40|0]|c[e+41|0]<<8|c[e+42|0]<<16|c[e+43|0]<<24,s[t+32>>2]=c[e+36|0]|c[e+37|0]<<8|c[e+38|0]<<16|c[e+39|0]<<24,s[t+36>>2]=n,Vn[s[8957]](t,t,40,0,e+32|0,0,e),n=s[t+28>>2],r=s[t+24>>2],i[e+24|0]=r,i[e+25|0]=r>>>8,i[e+26|0]=r>>>16,i[e+27|0]=r>>>24,i[e+28|0]=n,i[e+29|0]=n>>>8,i[e+30|0]=n>>>16,i[e+31|0]=n>>>24,n=s[t+20>>2],r=s[t+16>>2],i[e+16|0]=r,i[e+17|0]=r>>>8,i[e+18|0]=r>>>16,i[e+19|0]=r>>>24,i[e+20|0]=n,i[e+21|0]=n>>>8,i[e+22|0]=n>>>16,i[e+23|0]=n>>>24,n=s[t+12>>2],r=s[t+8>>2],i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,i[e+12|0]=n,i[e+13|0]=n>>>8,i[e+14|0]=n>>>16,i[e+15|0]=n>>>24,n=s[t+4>>2],r=s[t>>2],i[0|e]=r,i[e+1|0]=r>>>8,i[e+2|0]=r>>>16,i[e+3|0]=r>>>24,i[e+4|0]=n,i[e+5|0]=n>>>8,i[e+6|0]=n>>>16,i[e+7|0]=n>>>24,n=s[t+36>>2],r=s[t+32>>2],i[e+36|0]=r,i[e+37|0]=r>>>8,i[e+38|0]=r>>>16,i[e+39|0]=r>>>24,i[e+40|0]=n,i[e+41|0]=n>>>8,i[e+42|0]=n>>>16,i[e+43|0]=n>>>24,qt(e),y=t+48|0}function G(e,t,n){var r=0,o=0,i=0,a=0,s=0,d=0,u=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,y=0,b=0,I=0,C=0,E=0,w=0;for(o=2036477234,i=857760878,a=1634760805,s=1797285236,v=20,l=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,m=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,y=c[n+8|0]|c[n+9|0]<<8|c[n+10|0]<<16|c[n+11|0]<<24,g=c[n+12|0]|c[n+13|0]<<8|c[n+14|0]<<16|c[n+15|0]<<24,A=c[n+16|0]|c[n+17|0]<<8|c[n+18|0]<<16|c[n+19|0]<<24,d=c[n+20|0]|c[n+21|0]<<8|c[n+22|0]<<16|c[n+23|0]<<24,f=c[n+24|0]|c[n+25|0]<<8|c[n+26|0]<<16|c[n+27|0]<<24,h=c[n+28|0]|c[n+29|0]<<8|c[n+30|0]<<16|c[n+31|0]<<24,n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,u=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,r=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,t=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24;b=r,r=On(a+d|0,7)^g,p=b^On(r+a|0,9),I=On(r+p|0,13)^d,g=On(p+I|0,18),t=On(i+l|0,7)^t,f=On(t+i|0,9)^f,l=On(t+f|0,13)^l,E=On(f+l|0,18),h=On(n+o|0,7)^h,d=On(h+o|0,9)^m,C=On(d+h|0,13)^n,w=On(d+C|0,18),n=On(s+A|0,7)^y,u=On(n+s|0,9)^u,A=On(n+u|0,13)^A,b=On(u+A|0,18),l=On((a^=g)+n|0,7)^l,m=On(l+a|0,9)^d,y=On(l+m|0,13)^n,a=On(m+y|0,18)^a,n=On((i^=E)+r|0,7)^C,u=On(n+i|0,9)^u,g=On(n+u|0,13)^r,i=On(u+g|0,18)^i,A=On((o^=w)+t|0,7)^A,r=On(A+o|0,9)^p,t=On(r+A|0,13)^t,o=On(t+r|0,18)^o,d=On((s^=b)+h|0,7)^I,f=On(d+s|0,9)^f,h=On(d+f|0,13)^h,s=On(f+h|0,18)^s,p=v>>>0>2,v=v-2|0,p;);return Jt(e,a),Jt(e+4|0,i),Jt(e+8|0,o),Jt(e+12|0,s),Jt(e+16|0,n),Jt(e+20|0,u),Jt(e+24|0,r),Jt(e+28|0,t),0}function L(e,t,n,r,o,a,d){var u,l,A,f,h,g,p,m=0;return y=u=y-560|0,cn(u+352|0,d),Rt(u+288|0,a,32,0),Y(u+352|0,u+320|0,32,0),Y(u+352|0,n,r,o),Nt(u+352|0,u+224|0),l=c[(m=a)+32|0]|c[m+33|0]<<8|c[m+34|0]<<16|c[m+35|0]<<24,A=c[m+36|0]|c[m+37|0]<<8|c[m+38|0]<<16|c[m+39|0]<<24,f=c[m+40|0]|c[m+41|0]<<8|c[m+42|0]<<16|c[m+43|0]<<24,h=c[m+44|0]|c[m+45|0]<<8|c[m+46|0]<<16|c[m+47|0]<<24,g=c[m+48|0]|c[m+49|0]<<8|c[m+50|0]<<16|c[m+51|0]<<24,a=c[m+52|0]|c[m+53|0]<<8|c[m+54|0]<<16|c[m+55|0]<<24,p=c[m+60|0]|c[m+61|0]<<8|c[m+62|0]<<16|c[m+63|0]<<24,m=c[m+56|0]|c[m+57|0]<<8|c[m+58|0]<<16|c[m+59|0]<<24,i[e+56|0]=m,i[e+57|0]=m>>>8,i[e+58|0]=m>>>16,i[e+59|0]=m>>>24,i[e+60|0]=p,i[e+61|0]=p>>>8,i[e+62|0]=p>>>16,i[e+63|0]=p>>>24,i[e+48|0]=g,i[e+49|0]=g>>>8,i[e+50|0]=g>>>16,i[e+51|0]=g>>>24,i[e+52|0]=a,i[e+53|0]=a>>>8,i[e+54|0]=a>>>16,i[e+55|0]=a>>>24,i[e+40|0]=f,i[e+41|0]=f>>>8,i[e+42|0]=f>>>16,i[e+43|0]=f>>>24,i[e+44|0]=h,i[e+45|0]=h>>>8,i[e+46|0]=h>>>16,i[e+47|0]=h>>>24,i[0|(a=e+32|0)]=l,i[a+1|0]=l>>>8,i[a+2|0]=l>>>16,i[a+3|0]=l>>>24,i[a+4|0]=A,i[a+5|0]=A>>>8,i[a+6|0]=A>>>16,i[a+7|0]=A>>>24,B(u+224|0),ie(u,u+224|0),ct(e,u),cn(u+352|0,d),Y(u+352|0,e,64,0),Y(u+352|0,n,r,o),Nt(u+352|0,u+160|0),B(u+160|0),i[u+288|0]=248&c[u+288|0],i[u+319|0]=63&c[u+319|0]|64,function(e,t,n,r){var o,a,s,d,u,l,A,f,h,g,p,m,v,y,b,I,E,w,B,_,S,k,O,Q,R,P,N,x,D,M,T,U,H,j,J,F,G,L,q,Y,V,W,K,Z,z,X,$,ee,te=0,ne=0,re=0,oe=0,ie=0,ae=0,se=0,ce=0,de=0,ue=0,le=0,Ae=0,fe=0,he=0,ge=0,pe=0,me=0,ve=0,ye=0,be=0,Ie=0,Ce=0,Ee=0,we=0,Be=0,_e=0,Se=0,ke=0,Oe=0,Qe=0,Re=0,Pe=0,Ne=0,xe=0,De=0,Me=0,Te=0,Ue=0,He=0,je=0,Je=0,Fe=0,Ge=0,Le=0,qe=0,Ye=0,Ve=0,We=0,Ke=0,Ze=0,ze=0;He=kt(t),me=c[t+2|0]|c[t+3|0]<<8|c[t+4|0]<<16|c[t+5|0]<<24,Ve=kt(t+5|0),Oe=C,ve=c[t+7|0]|c[t+8|0]<<8|c[t+9|0]<<16|c[t+10|0]<<24,ye=c[t+10|0]|c[t+11|0]<<8|c[t+12|0]<<16|c[t+13|0]<<24,Re=kt(t+13|0),le=C,fe=c[t+15|0]|c[t+16|0]<<8|c[t+17|0]<<16|c[t+18|0]<<24,Ge=kt(t+18|0),he=C,Qe=kt(t+21|0),se=c[t+23|0]|c[t+24|0]<<8|c[t+25|0]<<16|c[t+26|0]<<24,de=kt(t+26|0),oe=C,re=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,De=kt(n),Ce=c[(t=n)+2|0]|c[t+3|0]<<8|c[t+4|0]<<16|c[t+5|0]<<24,qe=kt(t+5|0),ue=C,ge=c[t+7|0]|c[t+8|0]<<8|c[t+9|0]<<16|c[t+10|0]<<24,pe=c[t+10|0]|c[t+11|0]<<8|c[t+12|0]<<16|c[t+13|0]<<24,Ye=kt(t+13|0),Ae=C,ie=c[t+15|0]|c[t+16|0]<<8|c[t+17|0]<<16|c[t+18|0]<<24,Le=kt(t+18|0),ne=C,je=kt(t+21|0),te=c[t+23|0]|c[t+24|0]<<8|c[t+25|0]<<16|c[t+26|0]<<24,ce=kt(t+26|0),n=C,t=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,Z=kt(r),z=c[r+2|0]|c[r+3|0]<<8|c[r+4|0]<<16|c[r+5|0]<<24,X=kt(r+5|0),$=C,Me=c[r+7|0]|c[r+8|0]<<8|c[r+9|0]<<16|c[r+10|0]<<24,Je=c[r+10|0]|c[r+11|0]<<8|c[r+12|0]<<16|c[r+13|0]<<24,Fe=kt(r+13|0),xe=C,Pe=c[r+15|0]|c[r+16|0]<<8|c[r+17|0]<<16|c[r+18|0]<<24,We=kt(r+18|0),Se=C,we=kt(r+21|0),t=fn(o=t>>>7|0,0,a=2097151&((3&oe)<<30|de>>>2),0),ae=C,oe=t,t=fn(s=2097151&((3&n)<<30|ce>>>2),0,d=re>>>7|0,0),n=C+ae|0,ae=re=oe+t|0,re=t>>>0>re>>>0?n+1|0:n,t=fn(a,0,s,0),oe=C,te=(n=fn(u=te>>>5&2097151,0,d,0))+t|0,t=C+oe|0,n=t=n>>>0>te>>>0?t+1|0:t,t=fn(o,0,l=se>>>5&2097151,0),n=C+n|0,se=te=t+te|0,Ee=n=t>>>0>te>>>0?n+1|0:n,be=(t=te)- -1048576|0,Ie=n=n-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+re|0,de=t=(n=(2097151&n)<<11|be>>>21)>>>0>(re=oe=n+ae|0)>>>0?t+1|0:t,Be=(t=re)- -1048576|0,ce=ae=de-((t>>>0<4293918720)-1|0)|0,oe=fn(o,0,d,0),n=ke=(Ue=C)-(((t=oe)>>>0<4293918720)-1|0)|0,te=ae>>21,ke=(2097151&ae)<<11|Be>>>21,oe=t-(ae=-2097152&(Te=t- -1048576|0))|0,t=(Ue-((t>>>0>>0)+n|0)|0)+te|0,U=t=oe>>>0>(P=ke+oe|0)>>>0?t+1|0:t,ae=fn(P,t,-683901,-1),oe=C,H=t=n>>21,t=fn(x=(2097151&n)<<11|Te>>>21,t,136657,0),te=C+oe|0,ke=n=t+ae|0,ae=t>>>0>n>>>0?te+1|0:te,t=fn(A=2097151&((1&Ae)<<31|Ye>>>1),0,a,0),n=C,te=t,t=fn(f=pe>>>4&2097151,0,d,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,t=fn(h=ie>>>6&2097151,0,l,0),n=C+n|0,n=t>>>0>(te=t+te|0)>>>0?n+1|0:n,R=t=0,oe=te,te=fn(g=2097151&je,t,p=2097151&((7&he)<<29|Ge>>>3),0),t=C+n|0,t=te>>>0>(oe=oe+te|0)>>>0?t+1|0:t,te=fn(m=2097151&((7&ne)<<29|Le>>>3),0,v=2097151&Qe,0),n=C+t|0,n=te>>>0>(oe=te+oe|0)>>>0?n+1|0:n,t=fn(u,0,y=fe>>>6&2097151,0),te=C+n|0,te=t>>>0>(oe=t+oe|0)>>>0?te+1|0:te,n=fn(s,0,b=2097151&((1&le)<<31|Re>>>1),0),t=C+te|0,n=n>>>0>(te=oe=n+oe|0)>>>0?t+1|0:t,t=fn(o,0,I=ye>>>4&2097151,0),n=C+n|0,he=te=t+te|0,oe=t>>>0>te>>>0?n+1|0:n,t=fn(a,0,f,0),n=C,ne=(te=t)+(t=fn(E=ge>>>7&2097151,0,d,0))|0,te=C+n|0,te=t>>>0>ne>>>0?te+1|0:te,n=fn(l,0,A,0),t=C+te|0,t=n>>>0>(ne=n+ne|0)>>>0?t+1|0:t,te=fn(h,0,v,0),n=C+t|0,n=te>>>0>(ne=te+ne|0)>>>0?n+1|0:n,t=fn(g,R,y,0),n=C+n|0,n=t>>>0>(te=t+ne|0)>>>0?n+1|0:n,ne=(t=te)+(te=fn(p,0,m,0))|0,t=C+n|0,t=te>>>0>ne>>>0?t+1|0:t,n=fn(u,0,b,0),te=C+t|0,te=n>>>0>(ne=n+ne|0)>>>0?te+1|0:te,n=fn(s,0,I,0),t=C+te|0,n=n>>>0>(te=ne=n+ne|0)>>>0?t+1|0:t,t=fn(o,0,w=ve>>>7&2097151,0),n=C+n|0,pe=te=t+te|0,ie=n=t>>>0>te>>>0?n+1|0:n,Ae=(t=te)- -1048576|0,ne=n=n-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+oe|0,n=t=(n=(2097151&n)<<11|Ae>>>21)>>>0>(ge=n+he|0)>>>0?t+1|0:t,t=t+ae|0,t=(te=oe=ge)>>>0>(ge=te+ke|0)>>>0?t+1|0:t,ae=(ae=n)-(((n=oe)>>>0<4293918720)-1|0)|0,le=n- -1048576|0,fe=(n=te=ge)-(te=-2097152&le)|0,he=t-((oe=ae)+(n>>>0>>0)|0)|0,D=re-(t=-2097152&Be)|0,j=n=de-((t>>>0>re>>>0)+ce|0)|0,t=fn(x,H,-997805,-1),te=C+ie|0,te=t>>>0>(re=t+pe|0)>>>0?te+1|0:te,ie=(t=re)+(re=fn(P,U,136657,0))|0,t=C+te|0,n=fn(D,n,-683901,-1),t=C+(re>>>0>ie>>>0?t+1|0:t)|0,t=n>>>0>(te=n+ie|0)>>>0?t+1|0:t,ae=te-(n=-2097152&Ae)|0,ie=t-((n>>>0>te>>>0)+ne|0)|0,t=fn(a,0,E,0),te=C,re=(n=fn(B=2097151&((3&ue)<<30|qe>>>2),0,d,0))+t|0,t=C+te|0,t=n>>>0>re>>>0?t+1|0:t,te=fn(l,0,f,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,t=fn(A,0,v,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,n=fn(h,0,p,0),t=C+te|0,t=n>>>0>(re=n+re|0)>>>0?t+1|0:t,te=fn(g,R,b,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,te=fn(m,0,y,0),t=C+n|0,t=te>>>0>(re=te+re|0)>>>0?t+1|0:t,te=fn(u,0,I,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,t=fn(s,0,w,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,n=fn(o,0,_=2097151&((3&Oe)<<30|Ve>>>2),0),t=C+te|0,re=n>>>0>(ne=re=n+re|0)>>>0?t+1|0:t,t=fn(a,0,B,0),n=C,te=t,t=fn(S=Ce>>>5&2097151,0,d,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,ce=(t=fn(l,0,E,0))+te|0,te=C+n|0,te=t>>>0>ce>>>0?te+1|0:te,n=fn(f,0,v,0),t=C+te|0,t=n>>>0>(ce=n+ce|0)>>>0?t+1|0:t,n=fn(A,0,p,0),t=C+t|0,t=n>>>0>(te=n+ce|0)>>>0?t+1|0:t,ce=(n=te)+(te=fn(h,0,y,0))|0,n=C+t|0,n=te>>>0>ce>>>0?n+1|0:n,t=fn(g,R,I,0),n=C+n|0,n=t>>>0>(te=t+ce|0)>>>0?n+1|0:n,ce=(t=fn(m,0,b,0))+te|0,te=C+n|0,te=t>>>0>ce>>>0?te+1|0:te,n=fn(u,0,w,0),t=C+te|0,t=n>>>0>(ce=n+ce|0)>>>0?t+1|0:t,n=fn(s,0,_,0),t=C+t|0,n=t=n>>>0>(te=n+ce|0)>>>0?t+1|0:t,t=fn(o,0,k=me>>>5&2097151,0),n=C+n|0,ge=te=t+te|0,qe=n=t>>>0>te>>>0?n+1|0:n,ee=(t=te)- -1048576|0,Ye=te=n-((t>>>0<4293918720)-1|0)|0,t=(t=te>>21)+re|0,pe=te=(n=(2097151&te)<<11|ee>>>21)+ne|0,Le=t=n>>>0>te>>>0?t+1|0:t,Ve=(t=te)- -1048576|0,je=te=Le-((t>>>0<4293918720)-1|0)|0,n=(t=te>>21)+ie|0,Ae=re=(te=(2097151&te)<<11|Ve>>>21)+ae|0,Ue=n=te>>>0>re>>>0?n+1|0:n,Re=(t=re)- -1048576|0,ke=te=n-((t>>>0<4293918720)-1|0)|0,t=(t=te>>21)+he|0,ie=te=(n=(2097151&te)<<11|Re>>>21)+fe|0,me=te=(Be=t=n>>>0>te>>>0?t+1|0:t)-(((t=te)>>>0<4293918720)-1|0)|0,de=(2097151&te)<<11|(Qe=t- -1048576|0)>>>21,ne=te>>21,t=fn(a,0,h,0),n=C,te=t,t=fn(d,0,A,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,t=fn(g,R,v,0),n=C+n|0,n=t>>>0>(te=t+te|0)>>>0?n+1|0:n,re=(t=te)+(te=fn(l,0,m,0))|0,t=C+n|0,t=te>>>0>re>>>0?t+1|0:t,n=fn(u,0,p,0),te=C+t|0,te=n>>>0>(re=n+re|0)>>>0?te+1|0:te,n=fn(s,0,y,0),t=C+te|0,t=n>>>0>(re=n+re|0)>>>0?t+1|0:t,te=fn(o,0,b,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,te=fn(x,H,-683901,-1),n=(t=n)+C|0,n=te>>>0>(ae=re+te|0)>>>0?n+1|0:n,te=ae,ae=(ae=t)-(((t=re)>>>0<4293918720)-1|0)|0,Ce=t- -1048576|0,ce=(t=te)-(te=-2097152&Ce)|0,te=n-((re=ae)+(t>>>0>>0)|0)|0,t=(t=oe>>21)+te|0,t=(n=(2097151&oe)<<11|le>>>21)>>>0>(oe=n+ce|0)>>>0?t+1|0:t,ae=(n=oe)-(te=-2097152&(ue=n- -1048576|0))|0,te=(t-((n>>>0>>0)+(oe=ce=t-((n>>>0<4293918720)-1|0)|0)|0)|0)+ne|0,J=de=ae+de|0,F=te=ae>>>0>de>>>0?te+1|0:te,ce=fn(de,te,-683901,-1),ae=C,n=fn(l,0,g,R),t=C,te=n,n=fn(d,0,h,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ne=(n=te)+(te=fn(a,0,m,0))|0,n=C+t|0,n=te>>>0>ne>>>0?n+1|0:n,te=fn(u,0,v,0),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,te=fn(s,0,p,0),n=C+t|0,n=te>>>0>(ne=te+ne|0)>>>0?n+1|0:n,t=fn(o,0,y,0),te=C+n|0,te=t>>>0>(ne=t+ne|0)>>>0?te+1|0:te,t=(t=re>>21)+te|0,ve=ne=(t=(n=(2097151&re)<<11|Ce>>>21)>>>0>(re=n+ne|0)>>>0?t+1|0:t)-(((n=re)>>>0<4293918720)-1|0)|0,re=n-(te=-2097152&(Ne=n- -1048576|0))|0,te=(t-((n>>>0>>0)+ne|0)|0)+(oe>>21)|0,G=re=(t=(2097151&oe)<<11|ue>>>21)+re|0,L=te=t>>>0>re>>>0?te+1|0:te,n=fn(re,te,136657,0),t=C+ae|0,Ge=te=n+ce|0,ye=n>>>0>te>>>0?t+1|0:t,n=fn(v,0,S,0),t=C,te=n,n=fn(O=2097151&De,0,l,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,re=(n=te)+(te=fn(p,0,B,0))|0,n=C+t|0,n=te>>>0>re>>>0?n+1|0:n,t=fn(y,0,E,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,n=fn(f,0,b,0),t=C+te|0,t=n>>>0>(re=n+re|0)>>>0?t+1|0:t,te=fn(A,0,I,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,te=fn(h,0,w,0),t=C+n|0,t=te>>>0>(re=te+re|0)>>>0?t+1|0:t,te=fn(g,R,k,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,t=fn(m,0,_,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,n=fn(u,0,Q=2097151&He,0),t=C+te|0,t=n>>>0>(re=n+re|0)>>>0?t+1|0:t,oe=re=(te=(c[r+23|0]|c[r+24|0]<<8|c[r+25|0]<<16|c[r+26|0]<<24)>>>5&2097151)+re|0,re=te>>>0>re>>>0?t+1|0:t,t=fn(p,0,S,0),n=C,te=t,t=fn(v,0,O,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,ne=(t=fn(y,0,B,0))+te|0,te=C+n|0,te=t>>>0>ne>>>0?te+1|0:te,n=fn(b,0,E,0),t=C+te|0,t=n>>>0>(ne=n+ne|0)>>>0?t+1|0:t,n=fn(f,0,I,0),t=C+t|0,t=n>>>0>(te=n+ne|0)>>>0?t+1|0:t,ne=(n=te)+(te=fn(A,0,w,0))|0,n=C+t|0,n=te>>>0>ne>>>0?n+1|0:n,t=fn(h,0,_,0),n=C+n|0,n=t>>>0>(te=t+ne|0)>>>0?n+1|0:n,ne=(t=fn(g,R,Q,0))+te|0,te=C+n|0,te=t>>>0>ne>>>0?te+1|0:te,n=fn(m,0,k,0),t=C+te|0,t=n>>>0>(ne=n+ne|0)>>>0?t+1|0:t,ne=te=(n=2097151&we)+ne|0,fe=te=(le=t=n>>>0>te>>>0?t+1|0:t)-(((t=te)>>>0<4293918720)-1|0)|0,t=(2097151&te)<<11|(Oe=t- -1048576|0)>>>21,te=(te>>>21|0)+re|0,ue=te=t>>>0>(oe=t+oe|0)>>>0?te+1|0:te,De=se-(t=-2097152&be)|0,we=Ee-((t>>>0>se>>>0)+Ie|0)|0,n=fn(a,0,u,0),t=C,te=n,n=fn(d,0,g,R),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,re=(n=te)+(te=fn(s,0,l,0))|0,n=C+t|0,n=te>>>0>re>>>0?n+1|0:n,t=fn(o,0,v,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,ae=re,t=fn(d,0,m,0),n=C,re=t,t=fn(a,0,g,R),n=C+n|0,n=t>>>0>(re=re+t|0)>>>0?n+1|0:n,se=(t=re)+(re=fn(l,0,u,0))|0,t=C+n|0,t=re>>>0>se>>>0?t+1|0:t,n=fn(s,0,v,0),t=C+t|0,t=n>>>0>(re=n+se|0)>>>0?t+1|0:t,se=(n=re)+(re=fn(o,0,p,0))|0,n=C+t|0,de=n=re>>>0>se>>>0?n+1|0:n,Ee=(t=re=se)- -1048576|0,ce=se=n-((t>>>0<4293918720)-1|0)|0,n=(t=se>>21)+te|0,ae=n=(te=ae=(se=(2097151&se)<<11|Ee>>>21)+ae|0)>>>0>>0?n+1|0:n,Ie=(t=te)- -1048576|0,n=(t=(se=be=n-((t>>>0<4293918720)-1|0)|0)>>21)+we|0,q=n=(be=(2097151&se)<<11|Ie>>>21)>>>0>(N=De=be+De|0)>>>0?n+1|0:n,we=fn(N,n,470296,0),be=C,M=te-(n=-2097152&Ie)|0,Te=t=ae-((n>>>0>te>>>0)+se|0)|0,n=fn(D,j,666643,0),te=C+be|0,te=n>>>0>(se=n+we|0)>>>0?te+1|0:te,n=fn(M,t,654183,0),t=C+te|0,n=n>>>0>(ae=se=n+se|0)>>>0?t+1|0:t,t=re-(te=-2097152&Ee)|0,te=(ve>>21)+(se=de-((te>>>0>re>>>0)+ce|0)|0)|0,Y=ce=(re=(2097151&ve)<<11|Ne>>>21)+t|0,He=te=re>>>0>ce>>>0?te+1|0:te,Ke=oe- -1048576|0,re=se=ue-((oe>>>0<4293918720)-1|0)|0,t=fn(ce,te,-997805,-1),n=C+n|0,t=(n=t>>>0>(te=t+ae|0)>>>0?n+1|0:n)+ue|0,t=te>>>0>(oe=te+oe|0)>>>0?t+1|0:t,we=(te=oe)-(n=-2097152&Ke)|0,be=t-((n>>>0>te>>>0)+re|0)|0,t=fn(M,Te,470296,0),n=C,oe=(te=t)+(t=fn(N,q,666643,0))|0,te=C+n|0,te=t>>>0>oe>>>0?te+1|0:te,n=fn(ce,He,654183,0),t=C+te|0,n=le+(n>>>0>(oe=n+oe|0)>>>0?t+1|0:t)|0,ue=(te=ne+oe|0)-(t=-2097152&Oe)|0,se=(n=te>>>0>>0?n+1|0:n)-((t>>>0>te>>>0)+fe|0)|0,n=fn(y,0,S,0),t=C,te=n,n=fn(p,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,n=fn(b,0,B,0),t=C+t|0,t=n>>>0>(te=n+te|0)>>>0?t+1|0:t,oe=(n=te)+(te=fn(I,0,E,0))|0,n=C+t|0,n=te>>>0>oe>>>0?n+1|0:n,t=fn(f,0,w,0),te=C+n|0,te=t>>>0>(oe=t+oe|0)>>>0?te+1|0:te,t=fn(A,0,_,0),n=C+te|0,n=t>>>0>(oe=t+oe|0)>>>0?n+1|0:n,te=fn(h,0,k,0),t=C+n|0,t=te>>>0>(oe=te+oe|0)>>>0?t+1|0:t,n=fn(m,0,Q,0),t=C+t|0,t=n>>>0>(te=n+oe|0)>>>0?t+1|0:t,n=te,oe=(te=2097151&((7&Se)<<29|We>>>3))>>>0>(ne=oe=n+te|0)>>>0?t+1|0:t,t=fn(b,0,S,0),n=C,ae=(te=t)+(t=fn(y,0,O,0))|0,te=C+n|0,te=t>>>0>ae>>>0?te+1|0:te,n=fn(I,0,B,0),t=C+te|0,t=n>>>0>(ae=n+ae|0)>>>0?t+1|0:t,te=fn(w,0,E,0),n=C+t|0,n=te>>>0>(ae=te+ae|0)>>>0?n+1|0:n,te=fn(f,0,_,0),t=C+n|0,t=te>>>0>(ae=te+ae|0)>>>0?t+1|0:t,te=fn(A,0,k,0),n=C+t|0,n=te>>>0>(ae=te+ae|0)>>>0?n+1|0:n,t=fn(h,0,Q,0),te=C+n|0,t=t>>>0>(n=ae=t+ae|0)>>>0?te+1|0:te,Ee=te=ae+(n=Pe>>>6&2097151)|0,he=te=(de=t=n>>>0>te>>>0?t+1|0:t)-(((t=te)>>>0<4293918720)-1|0)|0,t=(2097151&te)<<11|(Ie=t- -1048576|0)>>>21,te=(te>>>21|0)+oe|0,ce=te=t>>>0>(ne=t+ne|0)>>>0?te+1|0:te,ve=(t=ne)- -1048576|0,ae=te=te-((t>>>0<4293918720)-1|0)|0,t=(n=te>>>21|0)+se|0,le=oe=(te=(2097151&te)<<11|ve>>>21)+ue|0,Ce=te=(se=t=te>>>0>oe>>>0?t+1|0:t)-(((t=oe)>>>0<4293918720)-1|0)|0,t=(2097151&te)<<11|(fe=t- -1048576|0)>>>21,te=(te>>21)+be|0,t=(n=te=t>>>0>(oe=t+we|0)>>>0?te+1|0:te)+ye|0,ue=(ue=n)-(((n=oe)>>>0<4293918720)-1|0)|0,Ze=n- -1048576|0,ze=(n=te=Se=oe+Ge|0)-(te=-2097152&Ze)|0,_e=(t=oe>>>0>Se>>>0?t+1|0:t)-((oe=ue)+(n>>>0>>0)|0)|0,t=fn(G,L,-997805,-1),n=C+se|0,Ne=te=t+le|0,ue=t>>>0>te>>>0?n+1|0:n,n=fn(Y,He,470296,0),t=C,te=n,n=fn(M,Te,666643,0),t=C+t|0,t=(t=n>>>0>(te=te+n|0)>>>0?t+1|0:t)+ce|0,t=(n=te+ne|0)>>>0>>0?t+1|0:t,ve=(te=n)-(n=-2097152&ve)|0,ye=t-((n>>>0>te>>>0)+ae|0)|0,t=fn(Y,He,666643,0),n=C+de|0,le=te=t+Ee|0,se=t>>>0>te>>>0?n+1|0:n,n=fn(I,0,S,0),t=C,te=n,n=fn(b,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,n=fn(w,0,B,0),t=C+t|0,t=n>>>0>(te=n+te|0)>>>0?t+1|0:t,ne=(n=te)+(te=fn(_,0,E,0))|0,n=C+t|0,n=te>>>0>ne>>>0?n+1|0:n,t=fn(f,0,k,0),te=C+n|0,te=t>>>0>(ne=t+ne|0)>>>0?te+1|0:te,t=fn(A,0,Q,0),n=C+te|0,t=n=t>>>0>(ne=t+ne|0)>>>0?n+1|0:n,ae=ne=(te=2097151&((1&xe)<<31|Fe>>>1))+ne|0,ne=te>>>0>ne>>>0?t+1|0:t,n=fn(w,0,S,0),t=C,te=n,n=fn(I,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ce=(n=te)+(te=fn(_,0,B,0))|0,n=C+t|0,n=te>>>0>ce>>>0?n+1|0:n,t=fn(k,0,E,0),n=C+n|0,n=t>>>0>(te=t+ce|0)>>>0?n+1|0:n,ce=(t=fn(f,0,Q,0))+te|0,te=C+n|0,t=t>>>0>(n=ce)>>>0?te+1|0:te,de=te=ce+(n=Je>>>4&2097151)|0,Je=te=(Oe=t=n>>>0>te>>>0?t+1|0:t)-(((t=te)>>>0<4293918720)-1|0)|0,t=(2097151&te)<<11|(We=t- -1048576|0)>>>21,te=(te>>>21|0)+ne|0,ce=ae=t+ae|0,xe=te=t>>>0>ae>>>0?te+1|0:te,Ge=(t=ae)- -1048576|0,Pe=te=te-((t>>>0<4293918720)-1|0)|0,t=(n=te>>>21|0)+se|0,Ee=te=(Se=(te=(te=(2097151&te)<<11|Ge>>>21)>>>0>(n=ne=te+le|0)>>>0?t+1|0:t)-(((t=-2097152&Ie)>>>0>n>>>0)+he|0)|0)-(((t=ae=n-t|0)>>>0<4293918720)-1|0)|0,n=(n=te>>21)+ye|0,we=te=(t=(2097151&te)<<11|(De=t- -1048576|0)>>>21)+ve|0,Ie=n=t>>>0>te>>>0?n+1|0:n,be=(t=te)- -1048576|0,ve=ne=n-((t>>>0<4293918720)-1|0)|0,T=ie-(t=-2097152&Qe)|0,Fe=te=Be-((t>>>0>ie>>>0)+me|0)|0,t=(n=ne>>21)+ue|0,t=(ne=(2097151&ne)<<11|be>>>21)>>>0>(ie=ne+Ne|0)>>>0?t+1|0:t,se=(ne=fn(J,F,136657,0))+(ie-(n=-2097152&fe)|0)|0,n=C+(t-((n>>>0>ie>>>0)+Ce|0)|0)|0,n=ne>>>0>se>>>0?n+1|0:n,te=fn(T,te,-683901,-1),t=C+n|0,se=ne=te+se|0,le=te=(ye=t=te>>>0>ne>>>0?t+1|0:t)-(((t=ne)>>>0<4293918720)-1|0)|0,n=(n=te>>21)+_e|0,ie=te=(t=(2097151&te)<<11|(Qe=t- -1048576|0)>>>21)+ze|0,fe=n=t>>>0>te>>>0?n+1|0:n,he=te=n-(((t=te)>>>0<4293918720)-1|0)|0,Ne=(2097151&te)<<11|(Be=t- -1048576|0)>>>21,Ce=te>>21,n=fn(l,0,S,0),t=C,te=n,n=fn(a,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ne=(n=fn(v,0,B,0))+te|0,te=C+t|0,te=n>>>0>ne>>>0?te+1|0:te,t=fn(p,0,E,0),n=C+te|0,n=t>>>0>(ne=t+ne|0)>>>0?n+1|0:n,te=fn(f,0,y,0),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,te=fn(A,0,b,0),n=C+t|0,n=te>>>0>(ne=te+ne|0)>>>0?n+1|0:n,te=fn(h,0,I,0),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,n=fn(g,R,_,0),te=C+t|0,te=n>>>0>(ne=n+ne|0)>>>0?te+1|0:te,t=fn(m,0,w,0),n=C+te|0,n=t>>>0>(ne=t+ne|0)>>>0?n+1|0:n,te=fn(u,0,k,0),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,te=fn(s,0,Q,0),n=C+t|0,n=te>>>0>(ne=te+ne|0)>>>0?n+1|0:n,t=kt(r+26|0),te=2097151&((3&(te=C))<<30|t>>>2),t=n,me=ne=te+ne|0,ne=t=te>>>0>ne>>>0?t+1|0:t,t=fn(D,j,470296,0),n=C,_e=(te=t)+(t=fn(P,U,666643,0))|0,te=C+n|0,te=t>>>0>_e>>>0?te+1|0:te,t=fn(N,q,654183,0),n=C+te|0,n=t>>>0>(_e=t+_e|0)>>>0?n+1|0:n,t=fn(M,Te,-997805,-1),n=C+n|0,n=t>>>0>(te=t+_e|0)>>>0?n+1|0:n,_e=(t=te)+(te=fn(Y,He,136657,0))|0,t=C+n|0,t=(t=te>>>0>_e>>>0?t+1|0:t)+ne|0,t=(n=_e)>>>0>(te=n+me|0)>>>0?t+1|0:t,n=te,te=t,V=(t=me)- -1048576|0,ne=ue=ne-((t>>>0<4293918720)-1|0)|0,ue=n,te=(n=re>>21)+te|0,te=(t=(2097151&re)<<11|Ke>>>21)>>>0>(re=ue+t|0)>>>0?te+1|0:te,n=re-(t=-2097152&V)|0,me=fn(G,L,-683901,-1),t=(re=te-((t>>>0>re>>>0)+ne|0)|0)+C|0,te=t=me>>>0>(_e=n+me|0)>>>0?t+1|0:t,ue=re-(((t=n)>>>0<4293918720)-1|0)|0,W=t- -1048576|0,te=(n=oe>>21)+te|0,te=(t=(2097151&oe)<<11|Ze>>>21)>>>0>(oe=t+(me=_e)|0)>>>0?te+1|0:te,me=n=oe-(t=-2097152&W)|0,t=(oe=te-((t>>>0>oe>>>0)+(re=ue)|0)|0)+Ce|0,K=n- -1048576|0,ue=oe-((n>>>0<4293918720)-1|0)|0,Ke=(n=te=Ne=n+Ne|0)-(te=-2097152&K)|0,Ze=(me>>>0>n>>>0?t+1|0:t)-((n>>>0>>0)+(oe=ue)|0)|0,ze=ie-(t=-2097152&Be)|0,_e=fe-((t>>>0>ie>>>0)+he|0)|0,Ne=se-(t=-2097152&Qe)|0,Qe=ye-((t>>>0>se>>>0)+le|0)|0,n=fn(G,L,654183,0),t=C+Ie|0,t=n>>>0>(te=n+we|0)>>>0?t+1|0:t,se=((ie=te)-(n=-2097152&be)|0)+(te=fn(J,F,-997805,-1))|0,n=C+(t-((n>>>0>ie>>>0)+ve|0)|0)|0,n=te>>>0>se>>>0?n+1|0:n,te=fn(T,Fe,136657,0),t=C+n|0,Be=ie=te+se|0,se=te>>>0>ie>>>0?t+1|0:t,me=Ae-(t=-2097152&Re)|0,ye=Ue-((t>>>0>Ae>>>0)+ke|0)|0,t=fn(P,U,-997805,-1),n=C,te=t,t=fn(x,H,654183,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,t=fn(D,j,136657,0),n=C+n|0,n=t>>>0>(te=t+te|0)>>>0?n+1|0:n,ie=(t=te)+(te=fn(N,q,-683901,-1))|0,t=C+n|0,te=Le+(te>>>0>ie>>>0?t+1|0:t)|0,le=(n=ie+pe|0)-(t=-2097152&Ve)|0,fe=(te=n>>>0>>0?te+1|0:te)-((t>>>0>n>>>0)+je|0)|0,t=fn(P,U,654183,0),n=C,te=t,t=fn(x,H,470296,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,ie=(t=te)+(te=fn(D,j,-997805,-1))|0,t=C+n|0,n=ie+ge|0,te=qe+(te>>>0>ie>>>0?t+1|0:t)|0,ie=(t=fn(N,q,136657,0))+n|0,n=C+(n>>>0>>0?te+1|0:te)|0,n=t>>>0>ie>>>0?n+1|0:n,te=fn(M,Te,-683901,-1),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,pe=(te=ie)-(n=-2097152&ee)|0,Ae=t-((n>>>0>te>>>0)+Ye|0)|0,n=fn(a,0,S,0),t=C,te=n,n=fn(d,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ie=(n=te)+(te=fn(l,0,B,0))|0,n=C+t|0,n=te>>>0>ie>>>0?n+1|0:n,te=fn(v,0,E,0),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,n=fn(f,0,p,0),te=C+t|0,te=n>>>0>(ie=n+ie|0)>>>0?te+1|0:te,t=fn(A,0,y,0),n=C+te|0,n=t>>>0>(ie=t+ie|0)>>>0?n+1|0:n,te=fn(h,0,b,0),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,te=fn(g,R,w,0),n=C+t|0,n=te>>>0>(ie=te+ie|0)>>>0?n+1|0:n,te=fn(m,0,I,0),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,n=fn(u,0,_,0),te=C+t|0,te=n>>>0>(ie=n+ie|0)>>>0?te+1|0:te,t=fn(o,0,Q,0),n=C+te|0,n=t>>>0>(ie=t+ie|0)>>>0?n+1|0:n,te=fn(s,0,k,0),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,n=(r=(c[r+28|0]|c[r+29|0]<<8|c[r+30|0]<<16|c[r+31|0]<<24)>>>7|0)>>>0>(te=r+ie|0)>>>0?t+1|0:t,t=te,te=ne>>21,ne=t+(r=(2097151&ne)<<11|V>>>21)|0,t=n+te|0,ie=ne,he=t=r>>>0>ne>>>0?t+1|0:t,Ie=(t=ne)- -1048576|0,Ce=n=he-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+Ae|0,ne=r=(n=(2097151&n)<<11|Ie>>>21)+pe|0,ue=t=n>>>0>r>>>0?t+1|0:t,ve=(t=r)- -1048576|0,ge=n=ue-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+fe|0,pe=t=(n=(2097151&n)<<11|ve>>>21)>>>0>(r=n+le|0)>>>0?t+1|0:t,fe=(t=r)- -1048576|0,Ae=n=pe-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+ye|0,Re=le=(n=(2097151&n)<<11|fe>>>21)+me|0,ke=t=n>>>0>le>>>0?t+1|0:t,t=fn(le,t,-683901,-1),n=C+se|0,le=te=t+Be|0,se=t>>>0>te>>>0?n+1|0:n,we=r-(t=-2097152&fe)|0,Be=Ae=pe-((t>>>0>r>>>0)+Ae|0)|0,n=fn(G,L,470296,0)+ae|0,t=Se+C|0,t=n>>>0>>0?t+1|0:t,ae=((te=n)-(r=-2097152&De)|0)+(n=fn(J,F,654183,0))|0,te=C+(t-((r>>>0>te>>>0)+Ee|0)|0)|0,t=fn(T,Fe,-997805,-1),n=C+(n>>>0>ae>>>0?te+1|0:te)|0,n=t>>>0>(r=t+ae|0)>>>0?n+1|0:n,te=(t=r)+(r=fn(Re,ke,136657,0))|0,t=C+n|0,t=r>>>0>te>>>0?t+1|0:t,r=fn(we,Ae,-683901,-1),n=C+t|0,pe=n=r>>>0>(te=r+te|0)>>>0?n+1|0:n,ye=(t=te)- -1048576|0,Ae=r=n-((t>>>0<4293918720)-1|0)|0,t=(t=r>>21)+se|0,ae=t=(n=(2097151&r)<<11|ye>>>21)>>>0>(r=n+le|0)>>>0?t+1|0:t,fe=(t=r)- -1048576|0,n=(t=(se=le=ae-((t>>>0<4293918720)-1|0)|0)>>21)+Qe|0,Qe=Ee=(le=(2097151&se)<<11|fe>>>21)+Ne|0,le=le>>>0>Ee>>>0?n+1|0:n,qe=r-(t=-2097152&fe)|0,Ye=ae-((t>>>0>r>>>0)+se|0)|0,je=te-(t=-2097152&ye)|0,Ue=pe-((t>>>0>te>>>0)+Ae|0)|0,t=fn(G,L,666643,0),te=C+(xe-(((n=-2097152&Ge)>>>0>ce>>>0)+Pe|0)|0)|0,te=t>>>0>(r=t+(ce-n|0)|0)>>>0?te+1|0:te,t=fn(J,F,470296,0),n=C+te|0,n=t>>>0>(r=t+r|0)>>>0?n+1|0:n,te=(t=r)+(r=fn(T,Fe,654183,0))|0,t=C+n|0,Ae=te,r=r>>>0>te>>>0?t+1|0:t,ce=ne-(t=-2097152&ve)|0,se=ue-((t>>>0>ne>>>0)+ge|0)|0,n=fn(P,U,470296,0),t=C,te=n,n=fn(x,H,666643,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ne=(n=te)+(te=fn(D,j,654183,0))|0,n=C+t|0,n=te>>>0>ne>>>0?n+1|0:n,te=fn(N,q,-997805,-1),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,n=fn(M,Te,136657,0),te=C+t|0,te=n>>>0>(ne=n+ne|0)>>>0?te+1|0:te,t=fn(Y,He,-683901,-1),n=C+te|0,t=he+(t>>>0>(ne=t+ne|0)>>>0?n+1|0:n)|0,t=(te=ne+ie|0)>>>0>>0?t+1|0:t,n=(ne=te)-(te=-2097152&Ie)|0,te=t-((te>>>0>ne>>>0)+Ce|0)|0,t=(t=re>>21)+te|0,ae=re=(ne=n)+(n=(2097151&re)<<11|W>>>21)|0,ge=te=(ue=t=n>>>0>re>>>0?t+1|0:t)-(((t=re)>>>0<4293918720)-1|0)|0,n=(2097151&te)<<11|(Se=t- -1048576|0)>>>21,te=(te>>21)+se|0,be=re=n+ce|0,me=te=n>>>0>re>>>0?te+1|0:te,t=fn(re,te,-683901,-1),n=C+r|0,n=t>>>0>(te=t+Ae|0)>>>0?n+1|0:n,r=fn(Re,ke,-997805,-1),t=C+n|0,t=r>>>0>(te=r+te|0)>>>0?t+1|0:t,r=fn(we,Be,136657,0),n=C+t|0,ce=te=r+te|0,ne=r>>>0>te>>>0?n+1|0:n,n=fn(_,0,S,0),t=C,r=n,n=fn(w,0,O,0),t=C+t|0,t=n>>>0>(r=r+n|0)>>>0?t+1|0:t,n=fn(k,0,B,0),te=C+t|0,te=n>>>0>(r=n+r|0)>>>0?te+1|0:te,t=fn(Q,0,E,0),n=C+te|0,t=n=t>>>0>(r=t+r|0)>>>0?n+1|0:n,ie=r=(n=Me>>>7&2097151)+r|0,r=n>>>0>r>>>0?t+1|0:t,t=fn(k,0,S,0),n=C,te=t,t=fn(_,0,O,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,t=fn(Q,0,B,0),n=C+n|0,n=t>>>0>(te=t+te|0)>>>0?n+1|0:n,re=(t=te)+(te=2097151&((3&$)<<30|X>>>2))|0,t=n,se=re,fe=te=(re=t=te>>>0>re>>>0?t+1|0:t)-(((t=se)>>>0<4293918720)-1|0)|0,n=(n=te>>>21|0)+r|0,ie=te=(t=(2097151&te)<<11|(Pe=t- -1048576|0)>>>21)+ie|0,he=n=t>>>0>te>>>0?n+1|0:n,Ee=(t=te)- -1048576|0,pe=r=n-((t>>>0<4293918720)-1|0)|0,t=(n=r>>>21|0)+Oe|0,t=(r=de+((2097151&r)<<11|Ee>>>21)|0)>>>0>>0?t+1|0:t,de=((te=r)-(n=-2097152&We)|0)+(r=fn(J,F,666643,0))|0,n=C+(t-((n>>>0>te>>>0)+Je|0)|0)|0,n=r>>>0>de>>>0?n+1|0:n,t=fn(T,Fe,470296,0),n=C+n|0,n=t>>>0>(r=t+de|0)>>>0?n+1|0:n,te=(t=r)+(r=fn(be,me,136657,0))|0,t=C+n|0,t=r>>>0>te>>>0?t+1|0:t,n=fn(Re,ke,654183,0),t=C+t|0,t=n>>>0>(r=n+te|0)>>>0?t+1|0:t,n=fn(we,Be,-997805,-1),te=C+t|0,Ie=r=n+r|0,Ae=te=n>>>0>r>>>0?te+1|0:te,ve=(t=r)- -1048576|0,de=r=te-((t>>>0<4293918720)-1|0)|0,n=(t=r>>21)+ne|0,ne=te=(r=(2097151&r)<<11|ve>>>21)+ce|0,r=n=r>>>0>te>>>0?n+1|0:n,ce=te=n-(((t=te)>>>0<4293918720)-1|0)|0,n=(2097151&te)<<11|(ye=t- -1048576|0)>>>21,te=(te>>21)+Ue|0,Le=Ce=n+je|0,Ce=n>>>0>Ce>>>0?te+1|0:te,te=oe>>21,oe=(t=(2097151&oe)<<11|K>>>21)+(ae-(n=-2097152&Se)|0)|0,n=te+(ue-((n>>>0>ae>>>0)+ge|0)|0)|0,ue=n=t>>>0>oe>>>0?n+1|0:n,ge=n=n-(((t=oe)>>>0<4293918720)-1|0)|0,xe=te=n>>21,n=fn(Me=(2097151&n)<<11|(Se=t- -1048576|0)>>>21,te,-683901,-1),t=C+r|0,t=n>>>0>(te=n+ne|0)>>>0?t+1|0:t,je=te-(n=-2097152&ye)|0,Ue=t-((n>>>0>te>>>0)+ce|0)|0,t=fn(Me,xe,136657,0),n=C+Ae|0,n=t>>>0>(r=t+Ie|0)>>>0?n+1|0:n,Oe=r-(t=-2097152&ve)|0,Je=n-((t>>>0>r>>>0)+de|0)|0,r=(t=fn(T,Fe,666643,0))+(ie-(n=-2097152&Ee)|0)|0,n=C+(he-((n>>>0>ie>>>0)+pe|0)|0)|0,n=t>>>0>r>>>0?n+1|0:n,te=(t=r)+(r=fn(be,me,-997805,-1))|0,t=C+n|0,t=r>>>0>te>>>0?t+1|0:t,r=(n=fn(Re,ke,470296,0))+te|0,te=C+t|0,te=n>>>0>r>>>0?te+1|0:te,t=fn(we,Be,654183,0),n=C+te|0,he=r=t+r|0,ae=t>>>0>r>>>0?n+1|0:n,ne=re,n=fn(Q,0,S,0),t=C,r=n,n=fn(k,0,O,0),t=C+t|0,t=n>>>0>(r=r+n|0)>>>0?t+1|0:t,n=r,n=(r=z>>>5&2097151)>>>0>(te=n+r|0)>>>0?t+1|0:t,r=2097151&Z,re=fn(Q,0,O,0)+r|0,t=C,Ae=r=(pe=t=r>>>0>re>>>0?t+1|0:t)-(((t=re)>>>0<4293918720)-1|0)|0,ie=te,n=n+(te=r>>>21|0)|0,de=n=(t=(2097151&r)<<11|(Ee=t- -1048576|0)>>>21)>>>0>(r=ie+t|0)>>>0?n+1|0:n,Ie=(t=r)- -1048576|0,ce=n=n-((t>>>0<4293918720)-1|0)|0,t=(te=n>>>21|0)+ne|0,t=(n=(2097151&n)<<11|Ie>>>21)>>>0>(ie=n+se|0)>>>0?t+1|0:t,ie=(te=fn(be,me,654183,0))+((ne=ie)-(n=-2097152&Pe)|0)|0,n=C+(t-((16383&fe)+(n>>>0>ne>>>0)|0)|0)|0,t=fn(Re,ke,666643,0),te=C+(te>>>0>ie>>>0?n+1|0:n)|0,te=t>>>0>(ne=t+ie|0)>>>0?te+1|0:te,n=fn(we,Be,470296,0),t=C+te|0,ve=ne=n+ne|0,se=t=n>>>0>ne>>>0?t+1|0:t,ye=(t=ne)- -1048576|0,ie=n=se-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+ae|0,fe=ne=(n=(2097151&n)<<11|ye>>>21)+he|0,n=t=n>>>0>ne>>>0?t+1|0:t,he=(t=ne)- -1048576|0,t=(te=(ne=ae=n-((t>>>0<4293918720)-1|0)|0)>>21)+Je|0,ae=(ae=(2097151&ne)<<11|he>>>21)>>>0>(Oe=Pe=ae+Oe|0)>>>0?t+1|0:t,t=fn(Me,xe,-997805,-1);n=C+n|0,n=t>>>0>(te=t+fe|0)>>>0?n+1|0:n,Je=te-(t=-2097152&he)|0,Pe=n-((t>>>0>te>>>0)+ne|0)|0,t=fn(Me,xe,654183,0),n=C+se|0,n=t>>>0>(te=t+ve|0)>>>0?n+1|0:n,fe=te-(t=-2097152&ye)|0,he=n-((t>>>0>te>>>0)+ie|0)|0,te=(n=fn(be,me,470296,0))+(r-(t=-2097152&Ie)|0)|0,t=C+(de-((16383&ce)+(t>>>0>r>>>0)|0)|0)|0,t=n>>>0>te>>>0?t+1|0:t,r=(n=fn(we,Be,666643,0))+te|0,te=C+t|0,te=n>>>0>r>>>0?te+1|0:te,ne=r,r=(t=fn(be,me,666643,0))+(re-(n=-2097152&Ee)|0)|0,n=C+(pe-((4095&Ae)+(n>>>0>re>>>0)|0)|0)|0,se=n=t>>>0>r>>>0?n+1|0:n,Ae=(t=r)- -1048576|0,ie=re=n-((t>>>0<4293918720)-1|0)|0,te=(t=re>>21)+te|0,de=re=(n=(2097151&re)<<11|Ae>>>21)+ne|0,ne=te=n>>>0>re>>>0?te+1|0:te,ce=(t=re)- -1048576|0,re=te=te-((t>>>0<4293918720)-1|0)|0,n=(t=te>>21)+he|0,te=n=(te=(2097151&te)<<11|ce>>>21)>>>0>(pe=te+fe|0)>>>0?n+1|0:n,n=fn(Me,xe,470296,0),t=C+ne|0,t=n>>>0>(de=n+de|0)>>>0?t+1|0:t,n=de-(ne=-2097152&ce)|0,ne=t-((ne>>>0>de>>>0)+re|0)|0,ce=n,re=(t=fn(Me,xe,666643,0))+(r-(n=-2097152&Ae)|0)|0,n=C+(se-((n>>>0>r>>>0)+ie|0)|0)|0,t=(t=(n=t>>>0>re>>>0?n+1|0:n)>>21)+ne|0,ie=r=ce+(n=(2097151&n)<<11|(r=re)>>>21)|0,te=(n=(t=n>>>0>r>>>0?t+1|0:t)>>21)+te|0,ne=r=(t=(2097151&t)<<11|r>>>21)+pe|0,r=(2097151&(te=t>>>0>(n=r)>>>0?te+1|0:te))<<11|n>>>21,n=(t=te>>21)+Pe|0,de=te=r+Je|0,te=(n=r>>>0>(t=te)>>>0?n+1|0:n)>>21,n=(2097151&n)<<11|t>>>21,t=te+ae|0,Ie=r=n+Oe|0,n=(n=(t=n>>>0>r>>>0?t+1|0:t)>>21)+Ue|0,ve=r=(t=(2097151&t)<<11|r>>>21)+je|0,t=(t=(n=t>>>0>r>>>0?n+1|0:n)>>21)+Ce|0,ye=r=(n=(2097151&n)<<11|r>>>21)+Le|0,te=(n=(t=n>>>0>r>>>0?t+1|0:t)>>21)+Ye|0,fe=r=(t=(2097151&t)<<11|r>>>21)+qe|0,r=(2097151&(te=t>>>0>(n=r)>>>0?te+1|0:te))<<11|n>>>21,n=(t=te>>21)+le|0,he=te=r+Qe|0,te=(n=r>>>0>(t=te)>>>0?n+1|0:n)>>21,n=(2097151&n)<<11|t>>>21,t=te+_e|0,Ce=r=n+ze|0,n=(n=(t=n>>>0>r>>>0?t+1|0:t)>>21)+Ze|0,pe=r=(t=(2097151&t)<<11|r>>>21)+Ke|0,t=(n=t>>>0>r>>>0?n+1|0:n)>>21,se=(te=(2097151&n)<<11|r>>>21)+(n=oe-(r=-2097152&Se)|0)|0,te=(ue-((r>>>0>oe>>>0)+ge|0)|0)+t|0,Ae=se,ge=(2097151&(te=n>>>0>(t=se)>>>0?te+1|0:te))<<11|t>>>21,ae=n=te>>21,t=2097151&re,r=fn(ge,n,666643,0)+t|0,n=C,se=r,r=n=t>>>0>r>>>0?n+1|0:n,i[0|e]=se,i[e+1|0]=(255&n)<<24|se>>>8,re=e,n=2097151&ie,te=fn(ge,ae,470296,0)+n|0,t=C,t=n>>>0>te>>>0?t+1|0:t,ie=te,oe=(2097151&(te=r))<<11|se>>>21,te=t+(n=te>>21)|0,te=oe>>>0>(ie=ie+oe|0)>>>0?te+1|0:te,oe=ie,i[re+4|0]=(2047&te)<<21|oe>>>11,t=te,te=oe,i[re+3|0]=(7&t)<<29|te>>>3,te=2097151&ne,ne=fn(ge,ae,654183,0)+te|0,n=C,n=te>>>0>ne>>>0?n+1|0:n,te=ne,ne=(2097151&t)<<11|oe>>>21,t=(t>>21)+n|0,n=t=ne>>>0>(ie=te+ne|0)>>>0?t+1|0:t,i[re+6|0]=(63&t)<<26|ie>>>6,ne=0,t=ce=2097151&oe,i[re+2|0]=31&((65535&r)<<16|se>>>16)|t<<5,r=2097151&de,te=fn(ge,ae,-997805,-1)+r|0,t=C,r=t=r>>>0>te>>>0?t+1|0:t,t=n>>21,oe=(n=(2097151&n)<<11|ie>>>21)+te|0,te=t+r|0,se=oe,te=n>>>0>oe>>>0?te+1|0:te,i[re+9|0]=(511&te)<<23|oe>>>9,t=te,i[re+8|0]=(1&t)<<31|oe>>>1,oe=0,r=de=2097151&ie,i[re+5|0]=(524287&ne)<<13|ce>>>19|r<<2,r=2097151&Ie,te=fn(ge,ae,136657,0)+r|0,n=C,n=r>>>0>te>>>0?n+1|0:n,r=te,n=n+(te=t>>21)|0,ie=r=r+(t=(2097151&t)<<11|se>>>21)|0,n=t>>>0>r>>>0?n+1|0:n,i[re+12|0]=(4095&n)<<20|r>>>12,r=n,t=n,n=ie,i[re+11|0]=(15&t)<<28|n>>>4,re=0,n=ce=2097151&se,i[e+7|0]=(16383&oe)<<18|de>>>14|n<<7,te=e,n=2097151&ve,oe=fn(ge,ae,-683901,-1)+n|0,t=C,t=(t=n>>>0>oe>>>0?t+1|0:t)+(n=r>>21)|0,n=t=(r=(2097151&r)<<11|ie>>>21)>>>0>(ne=oe=r+oe|0)>>>0?t+1|0:t,i[te+14|0]=(127&t)<<25|ne>>>7,oe=0,r=se=2097151&ie,i[te+10|0]=(131071&re)<<15|ce>>>17|r<<4,r=te,t>>=21,te=(n=(2097151&n)<<11|ne>>>21)>>>0>(ie=n+(2097151&ye)|0)>>>0?t+1|0:t,i[r+17|0]=(1023&te)<<22|ie>>>10,t=te,i[r+16|0]=(3&t)<<30|ie>>>2,r=ae=2097151&ne,i[e+13|0]=(1048575&oe)<<12|se>>>20|r<<1,n=t,t>>=21,n=(te=(2097151&n)<<11|ie>>>21)>>>0>(ne=te+(2097151&fe)|0)>>>0?t+1|0:t,i[(r=e)+20|0]=(8191&n)<<19|ne>>>13,t=n,n=ne,i[r+19|0]=(31&t)<<27|n>>>5,n=se=2097151&ie,i[r+15|0]=(32767&re)<<17|ae>>>15|n<<6,n=t,t>>=21,n=(r=(2097151&n)<<11|ne>>>21)>>>0>(ae=r+(2097151&he)|0)>>>0?t+1|0:t,i[e+21|0]=ae,t=ne,i[e+18|0]=(262143&oe)<<14|se>>>18|t<<3,r=n,t=n,n=ae,i[e+22|0]=(255&t)<<24|n>>>8,n=t>>21,te=(t=(2097151&t)<<11|ae>>>21)>>>0>(ne=t+(2097151&Ce)|0)>>>0?n+1|0:n,i[e+25|0]=(2047&te)<<21|ne>>>11,t=te,te=ne,i[e+24|0]=(7&t)<<29|te>>>3,n=t>>21,n=(re=(2097151&t)<<11|ne>>>21)>>>0>(ie=re+(2097151&pe)|0)>>>0?n+1|0:n,re=ie,t=n,i[(te=e)+27|0]=(63&t)<<26|re>>>6,te=0,n=ie=2097151&ne,i[e+23|0]=31&((65535&r)<<16|ae>>>16)|n<<5,n=t,t>>=21,t=(n=(2097151&n)<<11|re>>>21)>>>0>(oe=n+(2097151&Ae)|0)>>>0?t+1|0:t,r=oe,i[e+31|0]=(131071&t)<<15|r>>>17,i[e+30|0]=(511&t)<<23|r>>>9,i[e+29|0]=(1&t)<<31|r>>>1,t=0,ne=re&=2097151,i[e+26|0]=(524287&te)<<13|ie>>>19|ne<<2,i[e+28|0]=(16383&t)<<18|ne>>>14|r<<7}(a,u+160|0,u+288|0,u+224|0),ht(u+288|0,64),ht(u+224|0,64),t&&(s[t>>2]=64,s[t+4>>2]=0),y=u+560|0,0}function q(e,t,n){var r,o=0,a=0;if(n>>>0>=512)return m(0|e,0|t,0|n),e;r=e+n|0;e:if(3&(e^t))if(r>>>0<4)n=e;else if((o=r-4|0)>>>0>>0)n=e;else for(n=e;i[0|n]=c[0|t],i[n+1|0]=c[t+1|0],i[n+2|0]=c[t+2|0],i[n+3|0]=c[t+3|0],t=t+4|0,o>>>0>=(n=n+4|0)>>>0;);else{t:if((0|n)<1)n=e;else if(3&e)for(n=e;;){if(i[0|n]=c[0|t],t=t+1|0,r>>>0<=(n=n+1|0)>>>0)break t;if(!(3&n))break}else n=e;if(!((o=-4&r)>>>0<64||(a=o+-64|0)>>>0>>0))for(;s[n>>2]=s[t>>2],s[n+4>>2]=s[t+4>>2],s[n+8>>2]=s[t+8>>2],s[n+12>>2]=s[t+12>>2],s[n+16>>2]=s[t+16>>2],s[n+20>>2]=s[t+20>>2],s[n+24>>2]=s[t+24>>2],s[n+28>>2]=s[t+28>>2],s[n+32>>2]=s[t+32>>2],s[n+36>>2]=s[t+36>>2],s[n+40>>2]=s[t+40>>2],s[n+44>>2]=s[t+44>>2],s[n+48>>2]=s[t+48>>2],s[n+52>>2]=s[t+52>>2],s[n+56>>2]=s[t+56>>2],s[n+60>>2]=s[t+60>>2],t=t- -64|0,a>>>0>=(n=n- -64|0)>>>0;);if(n>>>0>=o>>>0)break e;for(;s[n>>2]=s[t>>2],t=t+4|0,o>>>0>(n=n+4|0)>>>0;);}if(n>>>0>>0)for(;i[0|n]=c[0|t],t=t+1|0,(0|r)!=(0|(n=n+1|0)););return e}function Y(e,t,n,r){var o,a=0,d=0,u=0,l=0,A=0,f=0,h=0;if(y=o=y-704|0,n|r)if(a=r<<3|n>>>29,u=(h=s[(d=e)+72>>2])+(A=n<<3)|0,a=a+(l=s[d+76>>2])|0,f=u,s[d+72>>2]=u,a=u>>>0>>0?a+1|0:a,s[d+76>>2]=a,f=(A=(0|a)==(0|l)&h>>>0>f>>>0|a>>>0>>0)+s[(d=u=d- -64|0)>>2]|0,a=s[d+4>>2],a=A>>>0>f>>>0?a+1|0:a,u=(A=r>>>29|0)+f|0,s[d>>2]=u,s[d+4>>2]=u>>>0>>0?a+1|0:a,(0|(a=r))==(0|(f=0-((l=127&((7&l)<<29|h>>>3))>>>0>128)|0))&n>>>0>=(u=128-l|0)>>>0|a>>>0>f>>>0){for(d=0,a=0;i[80+(e+(A=d+l|0)|0)|0]=c[t+d|0],(0|u)!=(0|(d=d+1|0))|(0|(a=d>>>0<1?a+1|0:a))!=(0|f););if(w(e,e+80|0,o,a=o+640|0),t=t+u|0,!(r=r-((n>>>0>>0)+f|0)|0)&(n=n-u|0)>>>0>127|r)for(;w(e,t,o,a),t=t+128|0,!(r=r-(n>>>0<128)|0)&(n=n-128|0)>>>0>127|r;);if(n|r)for(d=0,a=0;i[80+(e+d|0)|0]=c[t+d|0],(0|n)!=(0|(d=l=d+1|0))|(0|r)!=(0|(a=l>>>0<1?a+1|0:a)););ht(o,704)}else for(d=n,u=(n=!r&n>>>0>1|0!=(0|r))?d:1,h=n?r:0,d=0,a=0;i[80+(e+(r=d+l|0)|0)|0]=c[t+d|0],(0|u)!=(0|(d=n=d+1|0))|(0|(a=n>>>0<1?a+1|0:a))!=(0|h););return y=o+704|0,0}function V(e,t,n,r,o,a,c,d){e|=0,t|=0,n|=0,r|=0,o|=0,a|=0,c|=0,d|=0;var u,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,b=0;y=u=y-16|0,s[u+12>>2]=0,En(d);e:{if(r){v=4&d;t:{n:{r:{for(;;){l=h;o:{i:{for(;;){if(p=i[n+l|0],255!=(0|(f=v?Fe(p):Ge(p))))break i;if(!o)break o;if(!nn(o,p))break r;if(!((l=l+1|0)>>>0>>0))break}e=h+1|0,s[u+12>>2]=e>>>0>>0?r:e;break n}if(m=(m<<6)+f|0,(f=A+6|0)>>>0<8)A=f;else{if(A=A-2|0,t>>>0<=g>>>0){s[u+12>>2]=l,s[8960]=68,l=1;break t}i[e+g|0]=m>>>A,g=g+1|0}if((h=l+1|0)>>>0>>0)continue}break}s[u+12>>2]=h;break n}s[u+12>>2]=l}l=0}if(!(A>>>0<=4)){e=-1;break e}}if(e=-1,!((-1<>2];;){n:{if(t>>>0<=a>>>0)s[8960]=68;else{if(61==(0|(c=i[e+a|0]))){o=o-1|0;break n}if(r&&nn(r,c))break n;s[8960]=28}d=-1;break t}if(a=a+1|0,s[n>>2]=a,!o)break}return d}(n,r,u+12|0,o,A>>>1|0)))){e=0;t:if(o&&!((l=s[u+12>>2])>>>0>=r>>>0)){n:{for(;;){if(!nn(o,i[n+l|0]))break n;if((0|(l=l+1|0))==(0|r))break}s[u+12>>2]=r;break t}s[u+12>>2]=l}b=g}}return t=s[u+12>>2],c?s[c>>2]=t+n:(0|t)!=(0|r)&&(s[8960]=28,e=-1),a&&(s[a>>2]=b),y=u+16|0,0|e}function W(e,t,n){var r,o,i,a=0;y=r=y-16|0,o=s[e+20>>2],s[e+20>>2]=0,i=s[e+4>>2],s[e+4>>2]=0,a=-26;e:{t:{n:switch(n-1|0){case 1:if(a=-32,qe(t,35621,9))break e;t=t+9|0;break t;case 0:break n;default:break e}if(a=-32,qe(t,35631,8))break e;t=t+8|0}if(!qe(t,35640,3)&&(t=Qe(t+3|0,r+12|0))){if(a=-26,19!=s[r+12>>2])break e;if(!qe(t,35644,3)&&(t=Qe(t+3|0,r+12|0))&&(s[e+44>>2]=s[r+12>>2],!qe(t,35648,3)&&(t=Qe(t+3|0,r+12|0))&&(s[e+40>>2]=s[r+12>>2],!qe(t,35652,3)&&(t=Qe(t+3|0,r+12|0))&&(n=s[r+12>>2],s[e+48>>2]=n,s[e+52>>2]=n,36==(0|(n=c[0|t]))&&(s[r+12>>2]=o,t=36==(0|n)?t+1|0:t,!V(s[e+16>>2],o,t,Oe(t),0,r+12|0,r+8|0,3)&&(s[e+20>>2]=s[r+12>>2],t=s[r+8>>2],36==(0|(n=c[0|t]))&&(s[r+12>>2]=i,t=36==(0|n)?t+1|0:t,!V(s[e>>2],i,t,Oe(t),0,r+12|0,r+8|0,3)))))))){if(s[e+4>>2]=s[r+12>>2],t=s[r+8>>2],a=le(e))break e;return y=r+16|0,c[0|t]?-32:0}}a=-32}return y=r+16|0,a}function K(e,t){var n;for(y=n=y-192|0,k(n+144|0,t),k(n+96|0,n+144|0),k(n+96|0,n+96|0),S(n+96|0,t,n+96|0),S(n+144|0,n+144|0,n+96|0),k(n+48|0,n+144|0),S(n+96|0,n+96|0,n+48|0),k(n+48|0,n+96|0),t=1;k(n+48|0,n+48|0),5!=(0|(t=t+1|0)););for(S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),t=1;k(n+48|0,n+48|0),10!=(0|(t=t+1|0)););for(S(n+48|0,n+48|0,n+96|0),k(n,n+48|0),t=1;k(n,n),20!=(0|(t=t+1|0)););for(S(n+48|0,n,n+48|0),t=1;k(n+48|0,n+48|0),11!=(0|(t=t+1|0)););for(S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),t=1;k(n+48|0,n+48|0),50!=(0|(t=t+1|0)););for(S(n+48|0,n+48|0,n+96|0),k(n,n+48|0),t=1;k(n,n),100!=(0|(t=t+1|0)););for(S(n+48|0,n,n+48|0),t=1;k(n+48|0,n+48|0),51!=(0|(t=t+1|0)););for(S(n+96|0,n+48|0,n+96|0),t=1;k(n+96|0,n+96|0),6!=(0|(t=t+1|0)););S(e,n+96|0,n+144|0),y=n+192|0}function Z(e,t){var n,r,o,a,c,d,l,A,f,h,g=0,p=0,m=0,v=0,y=0,b=0,I=0;(p=m=s[e+60>>2])|(g=s[e+56>>2])&&(m=g,i[(v=g+e|0)- -64|0]=1,!(p=(g=g+1|0)>>>0<1?p+1|0:p)&g>>>0<=15&&ae(v+65|0,0,15-m|0),i[e+80|0]=1,x(e,e- -64|0,16,0)),f=s[e+52>>2],h=s[e+48>>2],m=s[e+44>>2],I=s[e+24>>2],y=s[e+28>>2]+(I>>>26|0)|0,g=s[e+32>>2]+(y>>>26|0)|0,A=(n=(a=(-67108864|(o=s[e+36>>2]+(g>>>26|0)|0))+((l=(d=67108863&g)+((y=(b=67108863&y)+((p=(g=(67108863&I)+((p=s[e+20>>2]+u(o>>>26|0,5)|0)>>>26|0)|0)+((c=5+(v=67108863&p)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>31)&g|(r=67108863&(I=(a>>>31|0)-1|0))&p,p=0,p=(g=v&n|r&c|A<<26)>>>0>(v=g+s[e+40>>2]|0)>>>0?1:p,Jt(t,v),y=(g=(b=b&n|y&r)<<20|A>>>6)+m|0,m=0,m=g>>>0>y>>>0?1:m,g=p,p=m,p=g>>>0>(y=g+y|0)>>>0?p+1|0:p,Jt(t+4|0,y),m=0,m=(g=(v=n&d|r&l)<<14|b>>>12)>>>0>(b=g+h|0)>>>0?1:m,g=p,p=m,p=g>>>0>(b=g+b|0)>>>0?p+1|0:p,Jt(t+8|0,b),Jt(m=t+12|0,p=p+(v=(t=(I&a|n&o)<<8|v>>>18)+f|0)|0),ht(e,88)}function z(e,t,n,r,o){e|=0,t|=0,n|=0,r|=0;var a=0,s=0,d=0,l=0,h=0,g=0,p=0,m=0,v=0;En(o|=0),s=(a=(r>>>0)/3|0)<<2,(a=u(a,-3)+r|0)&&(s=2&o?(2|s)+(a>>>1|0)|0:s+4|0);e:{t:{n:{r:{if(t>>>0>s>>>0){if(!(4&o)){if(d=0,!r)break n;o=0,a=0;break r}if(d=0,!r)break n;for(o=0,a=0;;){for(h=c[n+l|0]|h<<8,o=o+8|0;g=a,p=o,m=e+a|0,v=it(h>>>(o=o-6|0)&63),i[0|m]=v,a=a+1|0,o>>>0>5;);if((0|(l=l+1|0))==(0|r))break}if(d=a,!o)break n;m=e+a|0,v=it(h<<12-p&63),i[0|m]=v,d=g+2|0;break n}zt(),A()}for(;;){for(h=c[n+l|0]|h<<8,o=o+8|0;g=a,p=o,m=e+a|0,v=at(h>>>(o=o-6|0)&63),i[0|m]=v,a=a+1|0,o>>>0>5;);if((0|(l=l+1|0))==(0|r))break}d=a,o&&(m=e+a|0,v=at(h<<12-p&63),i[0|m]=v,d=g+2|0)}if((a=d)>>>0<=s>>>0){if(a>>>0>>0)break t;s=a;break e}f(35568,35587,230,35603),A()}ae(e+a|0,61,s-a|0)}return ae(e+s|0,0,(t>>>0>(n=s+1|0)>>>0?t:n)-s|0),0|e}function X(e,t,n,r){var o=0,a=0,d=0,u=0,l=0,A=0;e:{if((o=s[e+56>>2])|(a=s[e+60>>2])){if(A=e,l=d=16-o|0,l=(d=(0|(u=0-((o>>>0>16)+a|0)|0))==(0|r)&n>>>0>>0|r>>>0>>0)?n:l,(d=u=d?r:u)|l){if(i[(e+o|0)- -64|0]=c[0|t],a=1,o=0,1!=(0|l)|d)for(;u=a+s[e+56>>2]|0,i[(e+u|0)- -64|0]=c[t+a|0],(0|l)!=(0|(a=a+1|0))|(0|(o=a>>>0<1?o+1|0:o))!=(0|d););o=s[e+56>>2],a=s[e+60>>2]}if(u=o+l|0,o=a+d|0,a=u,s[A+56>>2]=a,o=a>>>0>>0?o+1|0:o,s[A+60>>2]=o,!o&a>>>0<16)break e;x(e,e- -64|0,16,0),s[e+56>>2]=0,s[e+60>>2]=0,n=(o=n)-(a=l)|0,r=r-((o>>>0>>0)+d|0)|0,t=t+a|0}if(!r&n>>>0>=16|r&&(x(e,t,o=-16&n,r),n&=15,r=0,t=t+o|0),n|r){for(a=0,o=0;A=a+s[e+56>>2]|0,i[(e+A|0)- -64|0]=c[t+a|0],(0|n)!=(0|(a=a+1|0))|(0|r)!=(0|(o=a>>>0<1?o+1|0:o)););t=e,o=n+s[e+56>>2]|0,e=r+s[e+60>>2]|0,s[t+56>>2]=o,s[t+60>>2]=n>>>0>o>>>0?e+1|0:e}}}function $(e,t){var n=0,r=0,o=0,i=0,a=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0;e:if(e&&(2!=s[e+36>>2]||(o=s[t>>2],c[t+8|0]<2&&!o)?(function(e,t,n){var r,o=0,i=0,a=0;if(y=r=y-4096|0,Nn(r+3072|0),Nn(r+2048|0),!(!e|!t)&&(s[r+2048>>2]=s[t>>2],s[r+2052>>2]=0,s[r+2056>>2]=s[t+4>>2],s[r+2060>>2]=0,s[r+2064>>2]=c[t+8|0],s[r+2068>>2]=0,s[r+2072>>2]=s[e+16>>2],s[r+2076>>2]=0,s[r+2080>>2]=s[e+8>>2],s[r+2084>>2]=0,s[r+2088>>2]=s[e+36>>2],s[r+2092>>2]=0,s[e+20>>2]))for(t=0;(a=127&t)||(o=s[r+2100>>2],o=(i=s[r+2096>>2]+1|0)>>>0<1?o+1|0:o,s[r+2096>>2]=i,s[r+2100>>2]=o,Nn(r),Nn(r+1024|0),O(r+3072|0,r+2048|0,r),O(r+3072|0,r,r+1024|0)),a=s[4+(i=(r+1024|0)+(a<<3)|0)>>2],s[(o=(t<<3)+n|0)>>2]=s[i>>2],s[o+4>>2]=a,(t=t+1|0)>>>0>2];);y=r+4096|0}(e,t,f=s[e+4>>2]),o=s[t>>2],r=0):(f=s[e+4>>2],r=1),g=r,!((a=!((r=c[t+8|0])|o)<<1)>>>0>=(n=s[e+20>>2])>>>0)))for(i=s[e+24>>2],n=(o=(u(i,s[t+4>>2])+a|0)+u(n,r)|0)+((o>>>0)%(i>>>0)|0?-1:i-1|0)|0;;){if(h=1==((o>>>0)%(i>>>0)|0)?o-1|0:n,g?(l=s[e>>2],n=s[l+4>>2]+(h<<10)|0):(l=s[e>>2],n=(a<<3)+f|0),r=s[n+4>>2],p=s[n>>2],n=s[e+28>>2],s[t+12>>2]=a,r=(r>>>0)%(n>>>0)|0,A=s[t+4>>2],n=c[t+8|0]?r:A,l=s[l+4>>2],m=i,v=r,i=s[t>>2],A=(l+(u(m,n=(r=i)?v:n)<<10)|0)+(we(e,t,p,!0&(0|n)==(0|A))<<10)|0,r=l+(h<<10)|0,n=l+(o<<10)|0,i?O(r,A,n):Q(r,A,n),(a=a+1|0)>>>0>=d[e+20>>2])break e;o=o+1|0,n=h+1|0,i=s[e+24>>2]}}function ee(e,t,n){var r,o,i,a,c,d,u,l,A,f,h,g,p=0,m=0,v=0,y=0,b=0,I=0,C=0,E=0,w=0;r=s[t+4>>2],o=s[e+4>>2],i=s[t+8>>2],m=s[e+8>>2],a=s[t+12>>2],v=s[e+12>>2],c=s[t+16>>2],y=s[e+16>>2],d=s[t+20>>2],b=s[e+20>>2],u=s[t+24>>2],I=s[e+24>>2],l=s[t+28>>2],C=s[e+28>>2],A=s[t+32>>2],E=s[e+32>>2],f=s[t+36>>2],w=s[e+36>>2],g=(n=0-n|0)&((h=s[t>>2])^(p=s[e>>2])),s[e>>2]=g^p,p=w,w=n&(w^f),s[e+36>>2]=p^w,p=E,E=n&(E^A),s[e+32>>2]=p^E,p=C,C=n&(C^l),s[e+28>>2]=p^C,p=I,I=n&(I^u),s[e+24>>2]=p^I,p=b,b=n&(b^d),s[e+20>>2]=p^b,p=y,y=n&(y^c),s[e+16>>2]=p^y,p=v,v=n&(v^a),s[e+12>>2]=p^v,p=m,m=n&(m^i),s[e+8>>2]=p^m,p=e,e=n&(r^o),s[p+4>>2]=e^o,s[t+36>>2]=w^f,s[t+32>>2]=E^A,s[t+28>>2]=C^l,s[t+24>>2]=I^u,s[t+20>>2]=b^d,s[t+16>>2]=y^c,s[t+12>>2]=v^a,s[t+8>>2]=m^i,s[t+4>>2]=e^r,s[t>>2]=h^g}function te(e,t){var n;s[e>>2]=67108863&(c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24),s[e+4>>2]=(c[t+3|0]|c[t+4|0]<<8|c[t+5|0]<<16|c[t+6|0]<<24)>>>2&67108611,s[e+8>>2]=(c[t+6|0]|c[t+7|0]<<8|c[t+8|0]<<16|c[t+9|0]<<24)>>>4&67092735,s[e+12>>2]=(c[t+9|0]|c[t+10|0]<<8|c[t+11|0]<<16|c[t+12|0]<<24)>>>6&66076671,n=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,s[e+20>>2]=0,s[e+24>>2]=0,s[e+28>>2]=0,s[e+32>>2]=0,s[e+36>>2]=0,s[e+16>>2]=n>>>8&1048575,s[e+40>>2]=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,s[e+44>>2]=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,s[e+48>>2]=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,t=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,i[e+80|0]=0,s[e+56>>2]=0,s[e+60>>2]=0,s[e+52>>2]=t}function ne(e,t,n){var r=0;e:if((0|e)!=(0|t)){if((t-e|0)-n>>>0<=0-(n<<1)>>>0)return q(e,t,n);if(r=3&(e^t),e>>>0>>0){if(r)r=e;else{if(3&e)for(r=e;;){if(!n)break e;if(i[0|r]=c[0|t],t=t+1|0,n=n-1|0,!(3&(r=r+1|0)))break}else r=e;if(!(n>>>0<=3))for(;s[r>>2]=s[t>>2],t=t+4|0,r=r+4|0,(n=n-4|0)>>>0>3;);}if(n)for(;i[0|r]=c[0|t],r=r+1|0,t=t+1|0,n=n-1|0;);}else{if(!r){if(e+n&3)for(;;){if(!n)break e;if(i[0|(r=(n=n-1|0)+e|0)]=c[t+n|0],!(3&r))break}if(!(n>>>0<=3))for(;s[(n=n-4|0)+e>>2]=s[t+n>>2],n>>>0>3;);}if(!n)break e;for(;i[(n=n-1|0)+e|0]=c[t+n|0],n;);}}return e}function re(e,t){var n,r=0;y=n=y-48|0,function(e,t){var n,r,o,i,a,c,d,l,A=0;r=s[t+28>>2],o=s[t+24>>2],i=s[t+20>>2],a=s[t+16>>2],c=s[t+12>>2],d=s[t+8>>2],l=s[t+4>>2],A=s[t>>2],n=s[t+36>>2],t=s[t+32>>2],A=u(((r+(o+(i+(a+(c+(d+(l+(A+(u(n,19)+16777216>>>25|0)>>26)>>25)>>26)>>25)>>26)>>25)>>26)>>25)+t>>26)+n>>25,19)+A|0,s[e>>2]=67108863&A,A=l+(A>>26)|0,s[e+4>>2]=33554431&A,A=d+(A>>25)|0,s[e+8>>2]=67108863&A,A=c+(A>>26)|0,s[e+12>>2]=33554431&A,A=a+(A>>25)|0,s[e+16>>2]=67108863&A,A=i+(A>>26)|0,s[e+20>>2]=33554431&A,A=o+(A>>25)|0,s[e+24>>2]=67108863&A,A=r+(A>>26)|0,s[e+28>>2]=33554431&A,t=t+(A>>25)|0,s[e+32>>2]=67108863&t,s[e+36>>2]=n+(t>>26)&33554431}(n,t),t=s[n>>2],i[0|e]=t,i[e+2|0]=t>>>16,i[e+1|0]=t>>>8,r=s[n+4>>2],i[e+5|0]=r>>>14,i[e+4|0]=r>>>6,i[e+3|0]=r<<2|t>>>24,t=s[n+8>>2],i[e+8|0]=t>>>13,i[e+7|0]=t>>>5,i[e+6|0]=t<<3|r>>>22,r=s[n+12>>2],i[e+11|0]=r>>>11,i[e+10|0]=r>>>3,i[e+9|0]=r<<5|t>>>21,t=s[n+16>>2],i[e+15|0]=t>>>18,i[e+14|0]=t>>>10,i[e+13|0]=t>>>2,i[e+12|0]=t<<6|r>>>19,t=s[n+20>>2],i[e+16|0]=t,i[e+18|0]=t>>>16,i[e+17|0]=t>>>8,r=s[n+24>>2],i[e+21|0]=r>>>15,i[e+20|0]=r>>>7,i[e+19|0]=r<<1|t>>>24,t=s[n+28>>2],i[e+24|0]=t>>>13,i[e+23|0]=t>>>5,i[e+22|0]=t<<3|r>>>23,r=s[n+32>>2],i[e+27|0]=r>>>12,i[e+26|0]=r>>>4,i[e+25|0]=r<<4|t>>>21,t=s[n+36>>2],i[e+31|0]=t>>>18,i[e+30|0]=t>>>10,i[e+29|0]=t>>>2,i[e+28|0]=t<<6|r>>>20,y=n+48|0}function oe(e,t,n,r){var o=0,a=0,s=0,d=0,u=0,l=0;e:if(n|r)for(l=e+224|0,s=e+96|0,o=c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24;;){if(d=96+(e+o|0)|0,u=a=256-o|0,!r&n>>>0<=a>>>0){q(d,t,n),t=n+(c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)|0,i[e+352|0]=t,i[e+353|0]=t>>>8,i[e+354|0]=t>>>16,i[e+355|0]=t>>>24;break e}if(q(d,t,a),o=(c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)+a|0,i[e+352|0]=o,i[e+353|0]=o>>>8,i[e+354|0]=o>>>16,i[e+355|0]=o>>>24,se(e,128),E(e,s),q(s,l,128),o=(c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)-128|0,i[e+352|0]=o,i[e+353|0]=o>>>8,i[e+354|0]=o>>>16,i[e+355|0]=o>>>24,t=t+a|0,!((n=(a=n)-u|0)|(r=r-(a>>>0>>0)|0)))break}return 0}function ie(e,t){var n,r=0,o=0,a=0,s=0;for(y=n=y-464|0;o=r<<1,s=c[t+r|0],i[o+(n+400|0)|0]=15&s,i[(n+400|0)+(1|o)|0]=s>>>4,32!=(0|(r=r+1|0)););for(r=0;t=((o=(t=r)+c[0|(r=(n+400|0)+a|0)]|0)<<24)- -134217728|0,i[0|r]=o-(t>>24&240),r=t>>28,63!=(0|(a=a+1|0)););for(i[n+463|0]=c[n+463|0]+r,Xt(e),r=1;gn(n,r>>>1|0,i[(n+400|0)+r|0]),ze(n+240|0,e,n),bt(e,n+240|0),t=r>>>0<62,r=r+2|0,t;);for(jt(n+240|0,e),St(n+120|0,n+240|0),et(n+240|0,n+120|0),St(n+120|0,n+240|0),et(n+240|0,n+120|0),St(n+120|0,n+240|0),et(n+240|0,n+120|0),bt(e,n+240|0),r=0;gn(n,r>>>1|0,i[(n+400|0)+r|0]),ze(n+240|0,e,n),bt(e,n+240|0),t=r>>>0<62,r=r+2|0,t;);y=n+464|0}function ae(e,t,n){var r=0,o=0,a=0,c=0;if(n&&(i[(r=e+n|0)-1|0]=t,i[0|e]=t,!(n>>>0<3||(i[r-2|0]=t,i[e+1|0]=t,i[r-3|0]=t,i[e+2|0]=t,n>>>0<7||(i[r-4|0]=t,i[e+3|0]=t,n>>>0<9||(o=(r=0-e&3)+e|0,t=u(255&t,16843009),s[o>>2]=t,s[(r=(n=n-r&-4)+o|0)-4>>2]=t,n>>>0<9||(s[o+8>>2]=t,s[o+4>>2]=t,s[r-8>>2]=t,s[r-12>>2]=t,n>>>0<25||(s[o+24>>2]=t,s[o+20>>2]=t,s[o+16>>2]=t,s[o+12>>2]=t,s[r-16>>2]=t,s[r-20>>2]=t,s[r-24>>2]=t,s[r-28>>2]=t,(n=n-(c=4&o|24)|0)>>>0<32))))))))for(r=t,a=t,t=o+c|0;s[t+24>>2]=a,s[t+28>>2]=r,s[t+16>>2]=a,s[t+20>>2]=r,s[t+8>>2]=a,s[t+12>>2]=r,s[t>>2]=a,s[t+4>>2]=r,t=t+32|0,(n=n-32|0)>>>0>31;);return e}function se(e,t){var n,r,o,a=0,s=0;s=a=e- -64|0,r=1+(n=c[a+4|0]|c[a+5|0]<<8|c[a+6|0]<<16|c[a+7|0]<<24)|0,a=(t=t+(a=o=c[0|a]|c[a+1|0]<<8|c[a+2|0]<<16|c[a+3|0]<<24)|0)>>>0>>0?r:n,i[0|s]=t,i[s+1|0]=t>>>8,i[s+2|0]=t>>>16,i[s+3|0]=t>>>24,i[s+4|0]=a,i[s+5|0]=a>>>8,i[s+6|0]=a>>>16,i[s+7|0]=a>>>24,t=(a=(0|a)==(0|n)&t>>>0>>0|a>>>0>>0)+(c[e+72|0]|c[e+73|0]<<8|c[e+74|0]<<16|c[e+75|0]<<24)|0,s=c[e+76|0]|c[e+77|0]<<8|c[e+78|0]<<16|c[e+79|0]<<24,a=t>>>0>>0?s+1|0:s,i[e+72|0]=t,i[e+73|0]=t>>>8,i[e+74|0]=t>>>16,i[e+75|0]=t>>>24,i[e+76|0]=a,i[e+77|0]=a>>>8,i[e+78|0]=a>>>16,i[e+79|0]=a>>>24}function ce(e,t,n,r,o,i,a){var c,d,u,l,A=0;return y=c=y-352|0,G(c,i,a),!o&r>>>0<=n-e>>>0|e>>>0>=n>>>0&&!(!o&r>>>0>e-n>>>0|o&&e>>>0>n>>>0)||(n=ne(e,n,r)),s[c+56>>2]=0,s[c+60>>2]=0,s[c+48>>2]=0,s[c+52>>2]=0,s[c+40>>2]=0,s[c+44>>2]=0,s[c+32>>2]=0,s[c+36>>2]=0,(d=!((a=(A=!o&r>>>0>32|0!=(0|o))?32:r)|(A=A?0:o)))||q(c- -64|0,n,a),l=i+16|0,$t(c+32|0,c+32|0,u=a+32|0,i=u>>>0<32?A+1|0:A,l,c),wn(c+96|0,c+32|0),d||q(e,c- -64|0,a),ht(c+32|0,64),!o&r>>>0>=33|o&&en(e+a|0,i=n+a|0,(n=r)-a|0,o-(A+(n>>>0>>0)|0)|0,l,c),ht(c,32),mn(c+96|0,e,r,o),Bn(c+96|0,t),ht(c+96|0,256),y=c+352|0,0}function de(e,t){s[e>>2]=1634760805,s[e+4>>2]=857760878,s[e+8>>2]=2036477234,s[e+12>>2]=1797285236,s[e+16>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,s[e+20>>2]=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,s[e+24>>2]=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,s[e+28>>2]=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,s[e+32>>2]=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,s[e+36>>2]=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,s[e+40>>2]=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,s[e+44>>2]=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24}function ue(e,t,n,r,o,i,a){var c,d,u=0,l=0;y=c=y-96|0,G(c,i,a),d=i+16|0,Vn[s[8952]](c+32|0,32,0,d,c),i=-1;e:{if(!(0|Vn[s[8946]](n,t,r,o,c+32|0))){if(i=0,!e)break e;!o&r>>>0<=e-t>>>0|e>>>0<=t>>>0&&!(!o&r>>>0>t-e>>>0|o&&e>>>0>>0)||(t=ne(e,t,r)),n=(i=!o&r>>>0>32|0!=(0|o))?32:r,a=i=i?0:o,n|i?(l=q(c- -64|0,t,n),i=a,$t(c+32|0,c+32|0,u=n+32|0,i=u>>>0<32?i+1|0:i,d,c),q(e,l,n)):(i=a,$t(c+32|0,c+32|0,u=n+32|0,i=u>>>0<32?i+1|0:i,d,c)),i=0,!o&r>>>0<33||en((u=e)+(e=n)|0,e+t|0,r-e|0,o-(a+(e>>>0>r>>>0)|0)|0,d,c)}ht(c,32)}return y=c+96|0,i}function le(e){var t=0,n=0,r=0;if(!e)return-25;if(!s[e>>2])return-1;e:{t:{if(t=-2,!(d[e+4>>2]<16)&&(s[e+8>>2]||(t=-18,!s[e+12>>2]))){if(n=s[e+20>>2],!s[e+16>>2])break t;if(t=-6,!(n>>>0<8)&&(s[e+24>>2]||(t=-20,!s[e+28>>2]))&&(s[e+32>>2]||(t=-21,!s[e+36>>2]))){if(!(n=s[e+48>>2]))return-16;if(t=-17,!(n>>>0>16777215||(t=-14,(r=s[e+44>>2])>>>0<8||(t=-15,r>>>0>2097152||(t=-14,n<<3>>>0>r>>>0))))){if(!s[e+40>>2])return-12;if(e=s[e+52>>2])break e;t=-28}}}return t}return n?-19:-6}return e>>>0>16777215?-29:0}function Ae(e,t,n){var r,o,i,a,c,d,u,l,A,f,h,g,p,m,v,y,b,I,C,E;h=s[t+4>>2],r=s[e+4>>2],g=s[t+8>>2],o=s[e+8>>2],p=s[t+12>>2],i=s[e+12>>2],m=s[t+16>>2],a=s[e+16>>2],v=s[t+20>>2],c=s[e+20>>2],y=s[t+24>>2],d=s[e+24>>2],b=s[t+28>>2],u=s[e+28>>2],I=s[t+32>>2],l=s[e+32>>2],C=s[t+36>>2],A=s[e+36>>2],f=s[e>>2],E=s[t>>2]^f,t=0-n|0,s[e>>2]=f^E&t,s[e+36>>2]=t&(A^C)^A,s[e+32>>2]=t&(l^I)^l,s[e+28>>2]=t&(u^b)^u,s[e+24>>2]=t&(d^y)^d,s[e+20>>2]=t&(c^v)^c,s[e+16>>2]=t&(a^m)^a,s[e+12>>2]=t&(i^p)^i,s[e+8>>2]=t&(o^g)^o,s[e+4>>2]=t&(r^h)^r}function fe(e,t){for(var n=0,r=0,o=0,a=0,s=0,d=0,u=0,l=0;i[e+n|0]=c[(n>>>3|0)+t|0]>>>(7&n)&1,256!=(0|(n=n+1|0)););for(;;){d=(t=d)+1|0;e:if(c[0|(s=e+t|0)]&&(n=d,o=1,!(t>>>0>254)))for(;;){t:if(a=i[0|(r=e+n|0)])if((0|(l=(u=i[0|s])+(a<<=o)|0))<=15)i[0|s]=l,i[0|r]=0;else{if((0|(r=u-a|0))<-15)break e;for(i[0|s]=r;;){if(!c[0|(r=e+n|0)]){i[0|r]=1;break t}if(i[0|r]=0,r=n>>>0<255,n=n+1|0,!r)break}}if(o>>>0>5)break e;if(!((n=t+(o=o+1|0)|0)>>>0<256))break}if(256==(0|d))break}}function he(e,t,n,r){var o,i,a,c,d=0;y=o=y+-64|0,ae(o+8|0,0,52),d=Oe(e),s[o+20>>2]=d,s[o+36>>2]=d,s[o+4>>2]=d,i=_(d),s[o+32>>2]=i,a=_(d),s[o+16>>2]=a,c=_(d),s[o>>2]=c;e:if(!c|!i|!a||!(d=_(d)))R(i),R(a),R(c),e=-22;else{if(e=W(o,e,r)){R(s[o+32>>2]),R(s[o+16>>2]),R(s[o>>2]),R(d);break e}e=0,t=Ce(s[o+40>>2],s[o+44>>2],s[o+52>>2],t,n,s[o+16>>2],s[o+20>>2],d,s[o+4>>2],0,0,r),R(s[o+32>>2]),R(s[o+16>>2]),(t||Xe(d,s[o>>2],s[o+4>>2]))&&(e=-35),R(d),R(s[o>>2])}return y=o- -64|0,e}function ge(e,t){var n,r,o=0;y=n=y-288|0,T(r=e+40|0,t),yn(o=e+80|0),k(n+240|0,r),S(n+192|0,n+240|0,2128),pe(n+240|0,n+240|0,o),me(n+192|0,n+192|0,o),k(n+144|0,n+192|0),S(n+144|0,n+144|0,n+192|0),k(e,n+144|0),S(e,e,n+192|0),S(e,e,n+240|0),function(e,t){var n,r=0;for(y=n=y-144|0,k(n+96|0,t),k(n+48|0,n+96|0),k(n+48|0,n+48|0),S(n+48|0,t,n+48|0),S(n+96|0,n+96|0,n+48|0),k(n+96|0,n+96|0),S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),r=1;k(n+48|0,n+48|0),5!=(0|(r=r+1|0)););for(S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),r=1;k(n+48|0,n+48|0),10!=(0|(r=r+1|0)););for(S(n+48|0,n+48|0,n+96|0),k(n,n+48|0),r=1;k(n,n),20!=(0|(r=r+1|0)););for(S(n+48|0,n,n+48|0),r=1;k(n+48|0,n+48|0),11!=(0|(r=r+1|0)););for(S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),r=1;k(n+48|0,n+48|0),50!=(0|(r=r+1|0)););for(S(n+48|0,n+48|0,n+96|0),k(n,n+48|0),r=1;k(n,n),100!=(0|(r=r+1|0)););for(S(n+48|0,n,n+48|0),r=1;k(n+48|0,n+48|0),51!=(0|(r=r+1|0)););S(n+96|0,n+48|0,n+96|0),k(n+96|0,n+96|0),k(n+96|0,n+96|0),S(e,n+96|0,t),y=n+144|0}(e,e),S(e,e,n+144|0),S(e,e,n+240|0),k(n+96|0,e),S(n+96|0,n+96|0,n+192|0),pe(n+48|0,n+96|0,n+240|0);e:{if(!Ht(n+48|0)){if(me(n,n+96|0,n+240|0),o=-1,!Ht(n))break e;S(e,e,2176)}(0|Gt(e))==(c[t+31|0]>>>7|0)&&Re(e,e),S(e+120|0,e,r),o=0}return y=n+288|0,o}function pe(e,t,n){var r,o,i,a,c,d,u,l,A,f,h,g,p,m,v,y,b,I;r=s[n+4>>2],o=s[t+4>>2],i=s[n+8>>2],a=s[t+8>>2],c=s[n+12>>2],d=s[t+12>>2],u=s[n+16>>2],l=s[t+16>>2],A=s[n+20>>2],f=s[t+20>>2],h=s[n+24>>2],g=s[t+24>>2],p=s[n+28>>2],m=s[t+28>>2],v=s[n+32>>2],y=s[t+32>>2],b=s[n+36>>2],I=s[t+36>>2],s[e>>2]=s[t>>2]-s[n>>2],s[e+36>>2]=I-b,s[e+32>>2]=y-v,s[e+28>>2]=m-p,s[e+24>>2]=g-h,s[e+20>>2]=f-A,s[e+16>>2]=l-u,s[e+12>>2]=d-c,s[e+8>>2]=a-i,s[e+4>>2]=o-r}function me(e,t,n){var r,o,i,a,c,d,u,l,A,f,h,g,p,m,v,y,b,I;r=s[n+4>>2],o=s[t+4>>2],i=s[n+8>>2],a=s[t+8>>2],c=s[n+12>>2],d=s[t+12>>2],u=s[n+16>>2],l=s[t+16>>2],A=s[n+20>>2],f=s[t+20>>2],h=s[n+24>>2],g=s[t+24>>2],p=s[n+28>>2],m=s[t+28>>2],v=s[n+32>>2],y=s[t+32>>2],b=s[n+36>>2],I=s[t+36>>2],s[e>>2]=s[n>>2]+s[t>>2],s[e+36>>2]=b+I,s[e+32>>2]=v+y,s[e+28>>2]=p+m,s[e+24>>2]=h+g,s[e+20>>2]=A+f,s[e+16>>2]=u+l,s[e+12>>2]=c+d,s[e+8>>2]=i+a,s[e+4>>2]=r+o}function ve(e){var t,n=0,r=0,o=0,a=0;for(i[11+(t=y-16|0)|0]=0,i[t+12|0]=0,i[t+13|0]=0,i[t+14|0]=0,s[t+8>>2]=0;;){for(o=c[e+r|0],n=0;i[0|(a=(t+8|0)+n|0)]=c[0|a]|o^c[(3232+(n<<5)|0)+r|0],7!=(0|(n=n+1|0)););if(31==(0|(r=r+1|0)))break}for(r=127&c[e+31|0],e=0,n=0;i[0|(o=(t+8|0)+n|0)]=c[0|o]|r^c[3263+(n<<5)|0],7!=(0|(n=n+1|0)););for(n=0;n=c[(t+8|0)+e|0]-1|n,7!=(0|(e=e+1|0)););return n>>>8&1}function ye(e,t){var n=0,r=0,o=0,a=0,s=0;for(ae(q(e,1952,64)- -64|0,0,293);o=r=(n=a<<3)+e|0,n=t+n|0,s=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24,r=(c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24)^(c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24),n=(c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24)^s,i[0|o]=n,i[o+1|0]=n>>>8,i[o+2|0]=n>>>16,i[o+3|0]=n>>>24,i[o+4|0]=r,i[o+5|0]=r>>>8,i[o+6|0]=r>>>16,i[o+7|0]=r>>>24,8!=(0|(a=a+1|0)););}function be(e,t,n,r,o){var i,a=0;y=i=y+-64|0;e:{t:{if(a=!n,(n=Oe(e))>>>0<128&&a){if(s[i+56>>2]=0,s[i+48>>2]=0,s[i+52>>2]=0,s[i+40>>2]=0,s[i+44>>2]=0,a=function(e){var t=0,n=0;return t=0,e&&(n=e,t=e,(1|e)>>>0<65536||(t=n)),n=t,!(e=_(t))|!(3&c[e-4|0])||ae(e,0,n),e}(n))break t}else s[8960]=28;e=-1;break e}s[i+32>>2]=0,s[i+36>>2]=0,s[i+8>>2]=a,s[i+16>>2]=a,s[i+20>>2]=n,s[i>>2]=a,s[i+12>>2]=n,s[i+24>>2]=0,s[i+28>>2]=0,s[i+4>>2]=n,W(i,e,o)?(s[8960]=28,e=-1):(e=1,(0|t)==s[i+40>>2]&&(e=s[i+44>>2]!=(r>>>10|0))),R(a)}return y=i- -64|0,e}function Ie(e,t){var n,r=0,o=0,a=0,l=0;if(y=n=y-48|0,!((r=le(e))||(r=-26,t-1>>>0>1||(a=s[e+44>>2],r=s[e+48>>2],s[n>>2]=0,o=s[e+40>>2],s[n+28>>2]=r,s[n+12>>2]=-1,s[n+8>>2]=o,r=((o=a>>>0<(o=r<<3)>>>0?o:a)>>>0)/((a=r<<2)>>>0)|0,s[n+20>>2]=r,s[n+24>>2]=r<<2,s[n+16>>2]=u(r,a),r=s[e+52>>2],s[n+36>>2]=t,s[n+32>>2]=r,r=function(e,t){var n,r=0;return y=n=y-80|0,r=-25,!e|!t||(r=_(s[e+20>>2]<<3),s[e+4>>2]=r,r?(r=function(e,t){var n,r=0,o=0;y=n=y-16|0,o=-22;e:if(!(!e|!t)&&1024==(((r=t<<10)>>>0)/(t>>>0)|0)&&(t=_(12),s[e>>2]=t,t)){s[t>>2]=0,s[t+4>>2]=0,t=function(e,t){if(t>>>0>4294967168)e=48;else{if(!(t=function(e){var t=0,n=0,r=0,o=0,i=0,a=0;return e>>>0>=4294967168?(s[8960]=48,0):(e=_(76+(r=e>>>0<11?16:e+11&-8)|0))?(t=e-8|0,63&e?(o=(-8&(a=s[(i=e-4|0)>>2]))-(n=(e=(e=(e+63&-64)-8|0)-t>>>0>15?e:e- -64|0)-t|0)|0,3&a?(s[e+4>>2]=o|1&s[e+4>>2]|2,s[4+(o=e+o|0)>>2]=1|s[o+4>>2],s[i>>2]=n|1&s[i>>2]|2,s[e+4>>2]=1|s[e+4>>2],P(t,n)):(t=s[t>>2],s[e+4>>2]=o,s[e>>2]=t+n)):e=t,3&(t=s[e+4>>2])&&((n=-8&t)>>>0<=r+16>>>0||(s[e+4>>2]=r|1&t|2,t=e+r|0,r=n-r|0,s[t+4>>2]=3|r,s[4+(n=e+n|0)>>2]=1|s[n+4>>2],P(t,r))),e+8|0):0}(t)))return 48;s[e>>2]=t,e=0}return e}(n+12|0,r),s[8960]=t;t:{if(t)s[n+12>>2]=0;else if(t=s[n+12>>2])break t;R(s[e>>2]),s[e>>2]=0;break e}s[s[e>>2]>>2]=t,s[s[e>>2]+4>>2]=t,s[s[e>>2]+8>>2]=r,o=0}return y=n+16|0,o}(e,s[e+16>>2]))?At(e,s[t+56>>2]):(function(e,t,n){var r,o=0;r=o=y,y=o=o-448&-64,!e|!t||(st(o- -64|0,0,0,64),Jt(o+60|0,s[t+48>>2]),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,s[t+4>>2]),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,s[t+44>>2]),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,s[t+40>>2]),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,19),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,n),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,s[t+12>>2]),bn(o- -64|0,o+60|0,4,0),(n=s[t+8>>2])&&(bn(o- -64|0,n,s[t+12>>2],0),1&i[t+56|0]&&(ht(s[t+8>>2],s[t+12>>2]),s[t+12>>2]=0)),Jt(o+60|0,s[t+20>>2]),bn(o- -64|0,o+60|0,4,0),(n=s[t+16>>2])&&bn(o- -64|0,n,s[t+20>>2],0),Jt(o+60|0,s[t+28>>2]),bn(o- -64|0,o+60|0,4,0),(n=s[t+24>>2])&&(bn(o- -64|0,n,s[t+28>>2],0),2&c[t+56|0]&&(ht(s[t+24>>2],s[t+28>>2]),s[t+28>>2]=0)),Jt(o+60|0,s[t+36>>2]),bn(o- -64|0,o+60|0,4,0),(n=s[t+32>>2])&&bn(o- -64|0,n,s[t+36>>2],0),Tt(o- -64|0,e,64)),y=r}(n,t,s[e+36>>2]),ht(n- -64|0,8),function(e,t){var n,r=0,o=0,i=0;if(y=n=y-1024|0,s[t+28>>2])for(i=e+68|0,o=e- -64|0;Jt(o,0),Jt(i,r),j(n,1024,e,72),We(s[s[t>>2]+4>>2]+(u(s[t+24>>2],r)<<10)|0,n),Jt(o,1),j(n,1024,e,72),We(1024+(s[s[t>>2]+4>>2]+(u(s[t+24>>2],r)<<10)|0)|0,n),(r=r+1|0)>>>0>2];);ht(n,1024),y=n+1024|0}(n,e),ht(n,72),r=0):r=-22),y=n+80|0,r}(n,e))))){if(s[n+8>>2])for(;_e(n,l),(l=l+1|0)>>>0>2];);!function(e,t){var n,r=0,o=0;if(y=n=y-2048|0,!(!e|!t)){if(Qn(n+1024|0,(s[s[t>>2]+4>>2]+(s[t+24>>2]<<10)|0)-1024|0),d[t+28>>2]>=2)for(r=1;o=s[t+24>>2],ot(n+1024|0,(s[s[t>>2]+4>>2]+(o+u(r,o)<<10)|0)-1024|0),(r=r+1|0)>>>0>2];);!function(e,t){for(var n=0,r=0;ft((n=r<<3)+e|0,s[(n=t+n|0)>>2],s[n+4>>2]),128!=(0|(r=r+1|0)););}(n,n+1024|0),j(s[e>>2],s[e+4>>2],n,1024),ht(n+1024|0,1024),ht(n,1024),At(t,s[e+56>>2])}y=n+2048|0}(e,n),r=0}return y=n+48|0,r}function Ce(e,t,n,r,o,i,a,c,d,u,l,A){var f,h;return y=f=y+-64|0,(h=_(d))?(s[f+32>>2]=0,s[f+36>>2]=0,s[f+24>>2]=0,s[f+28>>2]=0,s[f+20>>2]=a,s[f+16>>2]=i,s[f+12>>2]=o,s[f+8>>2]=r,s[f+4>>2]=d,s[f>>2]=h,s[f+56>>2]=0,s[f+52>>2]=n,s[f+48>>2]=n,s[f+44>>2]=t,s[f+40>>2]=e,(n=Ie(f,A))?ht(h,d):!u|!l||!H(u,l,f,A)?(c&&q(c,h,d),ht(h,d),n=0):(ht(h,d),ht(u,l),n=-31),R(h)):n=-22,y=f- -64|0,n}function Ee(e,t,n,r,o,a){var s,d,l=0,A=0,f=0;return y=s=y-592|0,l=-1,function(e){var t=0,n=0,r=0,o=0,i=0;for(t=32,n=1;i=(r=c[(t=t-1|0)+e|0])-(o=c[t+3456|0])>>8&n|255&i,n&=65535+(r^o)>>>8,t;);return 0!=(0|i)}(d=e+32|0)&&(ve(e)||function(e){var t=0,n=0;for(n=127&(-1^c[e+31|0]),t=30;n=-1^c[e+t|0]|n,t=t-1|0;);return 1&(((255&n)-1&236-c[0|e])>>>8^-1)}(o)&&(ve(o)||ge(s+128|0,o)||(cn(s+384|0,a),Y(s+384|0,e,32,0),Y(s+384|0,o,32,0),Y(s+384|0,t,n,r),Nt(s+384|0,s+320|0),B(s+320|0),function(e,t,n,r){var o;y=o=y-2272|0,fe(o+2016|0,t),fe(o+1760|0,r),wt(o+480|0,n),jt(o+320|0,n),bt(o,o+320|0),Ye(o+320|0,o,o+480|0),bt(o+160|0,o+320|0),wt(t=o+640|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+800|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+960|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+1120|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+1280|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+1440|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(o+1600|0,o+160|0),xn(e),yn(e+40|0),yn(e+80|0),r=255;e:{for(;;){if(!(c[(n=r)+(o+2016|0)|0]|c[(o+1760|0)+n|0])){if(r=n-1|0,n)continue;break e}break}if(!((0|n)<0))for(;et(o+320|0,e),(0|(n=i[(t=n)+(o+2016|0)|0]))>=1?(bt(o+160|0,o+320|0),Ye(o+320|0,o+160|0,(o+480|0)+u((254&n)>>>1|0,160)|0)):(0|n)>-1||(bt(o+160|0,o+320|0),Ve(o+320|0,o+160|0,(o+480|0)+u((0-n&254)>>>1|0,160)|0)),(0|(n=i[t+(o+1760|0)|0]))>=1?(bt(o+160|0,o+320|0),ze(o+320|0,o+160|0,u((254&n)>>>1|0,120)+2272|0)):(0|n)>-1||(bt(o+160|0,o+320|0),Ze(o+320|0,o+160|0,u((0-n&254)>>>1|0,120)+2272|0)),St(e,o+320|0),n=t-1|0,(0|t)>0;);}y=o+2272|0}(s+8|0,s+320|0,s+128|0,d),ct(s+288|0,s+8|0),A=-1,f=_n(s+288|0,e),l=((s+288|0)==(0|e)?A:f)|Xe(e,s+288|0,32)))),y=s+592|0,l}function we(e,t,n,r){var o=0,i=0;e:if(s[t>>2])i=s[e+24>>2],o=s[e+20>>2],r=r?s[t+12>>2]+(i+(-1^o)|0)|0:(i-o|0)-!s[t+12>>2]|0,i=0,3!=(0|(t=c[t+8|0]))&&(i=u(o,t+1|0));else{if(!(o=c[t+8|0])){r=s[t+12>>2]-1|0,i=0;break e}if(o=u(o,s[e+20>>2]),t=s[t+12>>2],r){r=(t+o|0)-1|0,i=0;break e}r=o-!t|0,i=0}return t=i+(o=r-1|0)|0,fn(n,0,n,0),fn(r,0,C,0),function(e,t,n){var r=0,o=0,i=0,a=0,s=0,c=0,d=0,A=0,f=0;e:{t:{n:{r:{o:{i:{a:{s:{c:{if(o=t){if(!(r=n))break c;break s}return b=e-u((e>>>0)/(n>>>0)|0,n)|0,I=0,void(C=0)}if(!e)break a;break i}if(!((a=r-1|0)&r))break o;s=0-(a=(l(r)+33|0)-l(o)|0)|0;break n}return b=0,I=o,void(C=0)}if((r=32-l(o)|0)>>>0<31)break r;break t}if(b=e&a,I=0,1==(0|r))break e;return n=31&(e=r?31-l(r-1^r)|0:32),void(C=(63&e)>>>0>=32?0:t>>>n|0)}a=r+1|0,s=63-r|0}if(r=t,i=31&(o=63&a),o>>>0>=32?(o=0,i=r>>>i|0):(o=r>>>i|0,i=((1<>>i),r=31&(s&=63),s>>>0>=32?(t=e<>>32-r|t<>>31)-(A=n&(c=s-((o=o<<1|i>>>31)+(r>>>0>>0)|0)>>31))|0,o=o-(d>>>0>>0)|0,t=t<<1|e>>>31,e=f|e<<1,f=1&c,a=a-1|0;);return b=i,I=o,void(C=t<<1|e>>>31)}b=e,I=t,t=0}C=t}(t-(n=C)|0,(t>>>0>>0)-(t>>>0>>0)|0,s[e+24>>2]),C=I,b}function Be(e,t,n,r,o,i,a,s,c,d){var u;return y=u=y-352|0,kn(u+32|0,64,c,d),wn(u+96|0,u+32|0),ht(u+32|0,64),mn(u+96|0,i,a,s),mn(u+96|0,34688,0-a&15,0),mn(u+96|0,t,n,r),mn(u+96|0,34688,0-n&15,0),ft(u+24|0,a,s),mn(u+96|0,u+24|0,8,0),ft(u+24|0,n,r),mn(u+96|0,u+24|0,8,0),Bn(u+96|0,u),ht(u+96|0,256),o=Sn(u,o),ht(u,16),e&&(o?(ae(e,0,n),o=-1):(rt(e,t,n,r,c,1,d),o=0)),y=u+352|0,o}function _e(e,t){var n,r=0,o=0,a=0;if(y=n=y-32|0,!(!e|!s[e+28>>2]))for(s[n+16>>2]=t,r=1;;){if(i[n+24|0]=o,t=0,a=0,r)for(;s[n+28>>2]=0,r=s[n+28>>2],s[n+8>>2]=s[n+24>>2],s[n+12>>2]=r,s[n+20>>2]=t,r=s[n+20>>2],s[n>>2]=s[n+16>>2],s[n+4>>2]=r,$(e,n),(t=t+1|0)>>>0<(a=s[e+28>>2])>>>0;);if(r=a,4==(0|(o=o+1|0)))break}y=n+32|0}function Se(e,t,n,r,o,i,a,c,d,u,l){var A;return y=A=y-336|0,kn(A+16|0,64,u,l),wn(A+80|0,A+16|0),ht(A+16|0,64),mn(A+80|0,a,c,d),mn(A+80|0,34688,0-c&15,0),rt(e,r,o,i,u,1,l),mn(A+80|0,e,o,i),mn(A+80|0,34688,0-o&15,0),ft(A+8|0,c,d),mn(A+80|0,A+8|0,8,0),ft(A+8|0,o,i),mn(A+80|0,A+8|0,8,0),Bn(A+80|0,t),ht(A+80|0,256),n&&(s[n>>2]=16,s[n+4>>2]=0),y=A+336|0,0}function ke(e,t,n,r,o,i,a,s,c,d){var u;return y=u=y-352|0,An(u+32|0,c,d),wn(u+96|0,u+32|0),ht(u+32|0,64),mn(u+96|0,i,a,s),ft(u+24|0,a,s),mn(u+96|0,u+24|0,8,0),mn(u+96|0,t,n,r),ft(u+24|0,n,r),mn(u+96|0,u+24|0,8,0),Bn(u+96|0,u),ht(u+96|0,256),o=Sn(u,o),ht(u,16),e&&(o?(ae(e,0,n),o=-1):(Dt(e,t,n,r,c,d),o=0)),y=u+352|0,o}function Oe(e){var t=0,n=0,r=0;e:{t:if(3&(t=e)){if(!c[0|e])return 0;for(;;){if(!(3&(t=t+1|0)))break t;if(!c[0|t])break}break e}for(;n=t,t=t+4|0,!((-1^(r=s[n>>2]))&r-16843009&-2139062144););if(!(255&r))return n-e|0;for(;r=c[n+1|0],n=t=n+1|0,r;);}return t-e|0}function Qe(e,t){var n,r=0,o=0,i=0,a=0,d=0;e:if(!(((n=c[0|e])-48&255)>>>0>9)){for(o=n,r=e;;){if(a=r,i>>>0>429496729)break e;if((o=(255&o)-48|0)>>>0>(-1^(r=u(i,10)))>>>0)break e;if(i=r+o|0,!(((o=c[0|(r=a+1|0)])-48&255)>>>0<10))break}(0|e)==(0|r)|(48==(0|n)?(0|e)!=(0|a):0)||(s[t>>2]=i,d=r)}return d}function Re(e,t){var n,r,o,i,a,c,d,u,l;n=s[t+4>>2],r=s[t+8>>2],o=s[t+12>>2],i=s[t+16>>2],a=s[t+20>>2],c=s[t+24>>2],d=s[t+28>>2],u=s[t+32>>2],l=s[t+36>>2],s[e>>2]=0-s[t>>2],s[e+36>>2]=0-l,s[e+32>>2]=0-u,s[e+28>>2]=0-d,s[e+24>>2]=0-c,s[e+20>>2]=0-a,s[e+16>>2]=0-i,s[e+12>>2]=0-o,s[e+8>>2]=0-r,s[e+4>>2]=0-n}function Pe(e,t,n){var r=0;r=t<<8&16711680|t<<24,r|=255&(n<<8|t>>>24)|65280&(n<<24|t>>>8),t=-16777216&((255&n)<<24|t>>>8)|16711680&((16777215&n)<<8|t>>>24)|n>>>8&65280|n>>>24|0,i[0|e]=t,i[e+1|0]=t>>>8,i[e+2|0]=t>>>16,i[e+3|0]=t>>>24,t=r,i[e+4|0]=t,i[e+5|0]=t>>>8,i[e+6|0]=t>>>16,i[e+7|0]=t>>>24}function Ne(e,t,n){var r;r=e,n?(s[e+48>>2]=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,n=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24):(s[e+48>>2]=0,n=0),s[r+52>>2]=n,s[e+56>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,s[e+60>>2]=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24}function xe(e,t){var n,r,o,i,a,c,d,u,l;n=s[t+8>>2],r=s[t+12>>2],o=s[t+16>>2],i=s[t+20>>2],a=s[t+24>>2],c=s[t+28>>2],d=s[t>>2],u=s[t+4>>2],l=s[t+36>>2],s[e+32>>2]=s[t+32>>2],s[e+36>>2]=l,s[e+24>>2]=a,s[e+28>>2]=c,s[e+16>>2]=o,s[e+20>>2]=i,s[e+8>>2]=n,s[e+12>>2]=r,s[e>>2]=d,s[e+4>>2]=u}function De(e,t,n,r,o,i,a,d,u,l,A){var f;return y=f=y-48|0,s[f+8>>2]=0,s[f>>2]=0,s[f+4>>2]=0,J(f+16|0,l,A),A=c[l+16|0]|c[l+17|0]<<8|c[l+18|0]<<16|c[l+19|0]<<24,l=c[l+20|0]|c[l+21|0]<<8|c[l+22|0]<<16|c[l+23|0]<<24,s[f+4>>2]=A,s[f+8>>2]=l,function(e,t,n,r,o,i,a,c,d,u,l){var A;y=A=y-336|0,ln(A+16|0,64,u,l),wn(A+80|0,A+16|0),ht(A+16|0,64),mn(A+80|0,a,c,d),mn(A+80|0,34704,0-c&15,0),xt(e,r,o,i,u,1,l),mn(A+80|0,e,o,i),mn(A+80|0,34704,0-o&15,0),ft(A+8|0,c,d),mn(A+80|0,A+8|0,8,0),ft(A+8|0,o,i),mn(A+80|0,A+8|0,8,0),Bn(A+80|0,t),ht(A+80|0,256),n&&(s[n>>2]=16,s[n+4>>2]=0),y=A+336|0}(e,t,n,r,o,i,a,d,u,f,f+16|0),ht(f+16|0,32),y=f+48|0,0}function Me(e,t,n,r,o,i,a,d,u,l){var A;return y=A=y-48|0,s[A+8>>2]=0,s[A>>2]=0,s[A+4>>2]=0,J(A+16|0,u,l),l=c[u+16|0]|c[u+17|0]<<8|c[u+18|0]<<16|c[u+19|0]<<24,u=c[u+20|0]|c[u+21|0]<<8|c[u+22|0]<<16|c[u+23|0]<<24,s[A+4>>2]=l,s[A+8>>2]=u,e=function(e,t,n,r,o,i,a,s,c,d){var u;return y=u=y-352|0,ln(u+32|0,64,c,d),wn(u+96|0,u+32|0),ht(u+32|0,64),mn(u+96|0,i,a,s),mn(u+96|0,34704,0-a&15,0),mn(u+96|0,t,n,r),mn(u+96|0,34704,0-n&15,0),ft(u+24|0,a,s),mn(u+96|0,u+24|0,8,0),ft(u+24|0,n,r),mn(u+96|0,u+24|0,8,0),Bn(u+96|0,u),ht(u+96|0,256),o=Sn(u,o),ht(u,16),e&&(o?(ae(e,0,n),o=-1):(xt(e,t,n,r,c,1,d),o=0)),y=u+352|0,o}(e,t,n,r,o,i,a,d,A,A+16|0),ht(A+16|0,32),y=A+48|0,e}function Te(e){var t;return t=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,e=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,C=65280&(e<<24|t>>>8)|255&(e<<8|t>>>24)|t<<8&16711680|t<<24,-16777216&((255&e)<<24|t>>>8)|16711680&((16777215&e)<<8|t>>>24)|e>>>8&65280|e>>>24|0}function Ue(e,t,n,r,o,i,a,c,d,u,l){var A;return y=A=y-336|0,An(A+16|0,u,l),wn(A+80|0,A+16|0),ht(A+16|0,64),mn(A+80|0,a,c,d),ft(A+8|0,c,d),mn(A+80|0,A+8|0,8,0),Dt(e,r,o,i,u,l),mn(A+80|0,e,o,i),ft(A+8|0,o,i),mn(A+80|0,A+8|0,8,0),Bn(A+80|0,t),ht(A+80|0,256),n&&(s[n>>2]=16,s[n+4>>2]=0),y=A+336|0,0}function He(e,t,n,r){var o;if(y=o=y-192|0,!(!n|(t-1&255)>>>0>=64|(r-1&255)>>>0>=64))return a[o+130>>1]=257,i[o+129|0]=r,i[o+128|0]=t,Vt(o+128|4),ft(o+128|8,0,0),ae(o+144|0,0,48),ye(e,o+128|0),ae(r+o|0,0,128-r|0),oe(t=e,e=q(o,n,r),128,0),ht(e,128),y=e+192|0,0;zt(),A()}function je(e,t,n){s[e+48>>2]=n?c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24:0,s[e+52>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,s[e+56>>2]=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,s[e+60>>2]=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24}function Je(e,t,n,r,o,i,a){var c;return y=c=y-16|0,e=ae(e,0,128),a>>>0<2147483649&&!(r|i)?a>>>0>8191&&o|i?(gt(c,16),e=Ce(o,a>>>10|0,1,t,n,c,16,0,32,e,128,2)?-1:0):(s[8960]=28,e=-1):(s[8960]=22,e=-1),y=c+16|0,e}function Fe(e){var t=0;return(0-(t=e+4&(e+65488>>>8^-1)&(57-e>>>8^-1)&255|((t=e-65|0)>>>8^-1)&t&(90-e>>>8^-1)&255|e+185&(e+65439>>>8^-1)&(122-e>>>8^-1)&255|63&(1+(16288^e)>>>8^-1)|62&(1+(16338^e)>>>8^-1))>>>8^-1)&1+(65470^e)>>>8&255|t}function Ge(e){var t=0;return(0-(t=e+4&(e+65488>>>8^-1)&(57-e>>>8^-1)&255|((t=e-65|0)>>>8^-1)&t&(90-e>>>8^-1)&255|e+185&(e+65439>>>8^-1)&(122-e>>>8^-1)&255|63&(1+(16336^e)>>>8^-1)|62&(1+(16340^e)>>>8^-1))>>>8^-1)&1+(65470^e)>>>8&255|t}function Le(e,t){var n,r,o=0,a=0,s=0,c=0;for(y=n=y-16|0,o=10;c=o,s=(t>>>0)/10|0,i[0|(a=(o=o-1|0)+(n+6|0)|0)]=t-u(s,10)|48,!(t>>>0<10)&&(t=s,o););r=q(t=e,a,e=11-c|0)+e|0,i[0|r]=0,y=n+16|0}function qe(e,t,n){var r=0,o=0,i=0;if(!n)return 0;e:if(r=c[0|e]){for(;;){if((0|(o=c[0|t]))==(0|r)&&!(!(n=n-1|0)|!o)){if(t=t+1|0,r=c[e+1|0],e=e+1|0,r)continue;break e}break}i=r}return(255&i)-c[0|t]|0}function Ye(e,t,n){var r,o,i,a=0;y=o=y-48|0,me(e,a=t+40|0,t),pe(r=e+40|0,a,t),S(a=e+80|0,e,n),S(r,r,n+40|0),S(i=e+120|0,n+120|0,t+120|0),S(e,t+80|0,n+80|0),me(o,e,e),pe(e,a,r),me(r,a,r),me(a,o,i),pe(i,o,i),y=o+48|0}function Ve(e,t,n){var r,o,i,a=0;y=o=y-48|0,me(e,a=t+40|0,t),pe(r=e+40|0,a,t),S(a=e+80|0,e,n+40|0),S(r,r,n),S(i=e+120|0,n+120|0,t+120|0),S(e,t+80|0,n+80|0),me(o,e,e),pe(e,a,r),me(r,a,r),pe(a,o,i),me(i,o,i),y=o+48|0}function We(e,t){for(var n=0,r=0,o=0,i=0;o=(n=r<<3)+e|0,i=c[0|(n=t+n|0)]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,n=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,s[o>>2]=i,s[o+4>>2]=n,128!=(0|(r=r+1|0)););}function Ke(e,t,n){var r;if(s[12+(r=y-16|0)>>2]=e,s[r+8>>2]=t,t=0,s[r+4>>2]=0,(0|n)>=1)for(;s[r+4>>2]=s[r+4>>2]|c[s[r+8>>2]+t|0]^c[s[r+12>>2]+t|0],(0|n)!=(0|(t=t+1|0)););return(s[r+4>>2]-1>>>8&1)-1|0}function Ze(e,t,n){var r,o,i,a=0;y=o=y-48|0,me(e,a=t+40|0,t),pe(r=e+40|0,a,t),S(a=e+80|0,e,n+40|0),S(r,r,n),S(i=e+120|0,n+80|0,t+120|0),me(o,t=t+80|0,t),pe(e,a,r),me(r,a,r),pe(a,o,i),me(i,o,i),y=o+48|0}function ze(e,t,n){var r,o,i,a=0;y=o=y-48|0,me(e,a=t+40|0,t),pe(r=e+40|0,a,t),S(a=e+80|0,e,n),S(r,r,n+40|0),S(i=e+120|0,n+80|0,t+120|0),me(o,t=t+80|0,t),pe(e,a,r),me(r,a,r),me(a,o,i),pe(i,o,i),y=o+48|0}function Xe(e,t,n){var r;if(s[12+(r=y-16|0)>>2]=e,s[r+8>>2]=t,t=0,i[r+7|0]=0,n)for(;i[r+7|0]=c[r+7|0]|c[s[r+8>>2]+t|0]^c[s[r+12>>2]+t|0],(0|n)!=(0|(t=t+1|0)););return(c[r+7|0]-1>>>8&1)-1|0}function $e(e,t,n){var r,o=0,a=0;if(y=r=y-16|0,i[r+15|0]=0,a=-1,!(0|Vn[s[8950]](e,t,n))){for(;i[r+15|0]=c[e+o|0]|c[r+15|0],32!=(0|(o=o+1|0)););a=0-(c[r+15|0]-1>>>8&1)|0}return y=r+16|0,a}function et(e,t){var n,r,o,i,a;y=r=y-48|0,k(e,t),k(n=e+80|0,a=t+40|0),function(e,t){var n,r,o,i,a,c,d,l,A,f,h,g,p,m,v,y,b,I,E,w,B,_,S,k,O,Q,R,P,N,x,D,M,T,U,H,j,J,F,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0,ie=0,ae=0,se=0,ce=0;a=G=(V=s[t+12>>2])<<1,c=G>>31,d=G=(z=s[t+4>>2])<<1,G=fn(a,c,G,n=G>>31),q=C,L=G,_=G=ne=s[t+8>>2],Y=fn(G,X=G>>31,G,X),G=C+q|0,G=(L=L+Y|0)>>>0>>0?G+1|0:G,Y=L,r=L=re=s[t+16>>2],l=L>>31,A=L=(oe=s[t>>2])<<1,q=fn(r,l,L,o=L>>31),G=C+G|0,G=(L=Y+q|0)>>>0>>0?G+1|0:G,K=L,q=s[t+28>>2],E=L=u(q,38),N=q,Y=fn(L,y=L>>31,q,S=q>>31),G=C+G|0,G=(L=K+Y|0)>>>0>>0?G+1|0:G,W=L,K=s[t+32>>2],Z=fn(h=L=u(K,19),g=L>>31,L=(Y=s[t+24>>2])<<1,L>>31),L=C+G|0,L=Z>>>0>($=W+Z|0)>>>0?L+1|0:L,W=$,te=s[t+36>>2],f=G=u(te,38),i=G>>31,b=t=($=s[t+20>>2])<<1,Z=fn(G,i,t,m=t>>31),t=C+L|0,k=(G=W+Z|0)<<1,U=G=(G>>>0>>0?t+1|0:t)<<1|G>>>31,x=t=k+33554432|0,H=G=t>>>0<33554432?G+1|0:G,t=G>>26,G=(67108863&G)<<6|x>>>26,L=fn(d,n,r,l),Z=C,W=G,I=G=ne<<1,ie=V,V=fn(G,v=G>>31,V,O=V>>31),G=C+Z|0,G=(L=V+L|0)>>>0>>0?G+1|0:G,ne=$,V=(Z=fn($,w=$>>31,A,o))+L|0,L=C+G|0,L=V>>>0>>0?L+1|0:L,re=V,D=G=q<<1,V=fn(h,g,G,Q=G>>31),G=C+L|0,G=(q=re+V|0)>>>0>>0?G+1|0:G,L=q,V=Y,q=fn(f,i,Y,p=Y>>31),G=C+G|0,G=(L=L+q|0)>>>0>>0?G+1|0:G,q=L,t=t+(L=G<<1|L>>>31)|0,ae=G=W+(q<<=1)|0,G=G>>>0>>0?t+1|0:t,j=t=ae+16777216|0,t=(33554431&(G=t>>>0<16777216?G+1|0:G))<<7|t>>>25,q=G>>25,G=fn(a,c,ie,O),L=C,W=t,t=(Z=fn(r,l,I,v))+G|0,G=C+L|0,G=t>>>0>>0?G+1|0:G,L=fn(d,n,b,m),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(Z=fn(A,o,Y,p))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,Z=K,K=fn(h,g,K,B=K>>31),G=C+t|0,G=(L=K+L|0)>>>0>>0?G+1|0:G,t=(K=fn(f,i,D,Q))+L|0,L=C+G|0,t=((G=t)>>>0>>0?L+1|0:L)<<1|G>>>31,K=G<<1,G=t+q|0,G=(L=W+K|0)>>>0>>0?G+1|0:G,se=L=(t=L)+33554432|0,q=G=L>>>0<33554432?G+1|0:G,G=-67108864&L,s[e+24>>2]=t-G,K=e,t=fn(t=u($,38),t>>31,$,w),G=C,W=t,$=fn(t=oe,L=t>>31,t,L),L=C+G|0,L=(t=W+$|0)>>>0<$>>>0?L+1|0:L,G=t,ee=t=u(Y,19),R=t>>31,M=t=r<<1,t=G+(Y=fn(ee,R,t,P=t>>31))|0,G=C+L|0,G=t>>>0>>0?G+1|0:G,L=fn(a,c,E,y),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(Y=fn(h,g,I,v))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,Y=fn(d,n,f,i),G=C+t|0,J=G=((t=L=Y+L|0)>>>0>>0?G+1|0:G)<<1|t>>>31,oe=t=33554432+($=t<<1)|0,re=L=t>>>0<33554432?G+1|0:G,t=(67108863&L)<<6|t>>>26,Y=L>>26,G=fn(ee,R,b,m),L=C,ce=t,t=(z=fn(A,o,W=z,T=W>>31))+G|0,G=C+L|0,G=t>>>0>>0?G+1|0:G,L=(z=fn(r,l,E,y))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,z=fn(h,g,a,c),G=C+t|0,G=(L=z+L|0)>>>0>>0?G+1|0:G,t=(z=fn(f,i,_,X))+L|0,L=C+G|0,t=((G=t)>>>0>>0?L+1|0:L)<<1|G>>>31,z=G<<1,G=t+Y|0,G=(L=ce+z|0)>>>0>>0?G+1|0:G,z=L,(t=L+16777216|0)>>>0<16777216&&(G=G+1|0),ce=t,L=t,t=G>>25,G=(33554431&G)<<7|L>>>25,Y=t,t=fn(A,o,_,X),L=C,F=G,W=fn(d,n,W,T),G=C+L|0,G=(t=W+t|0)>>>0>>0?G+1|0:G,W=fn(ee,R,V,p),L=C+G|0,L=(t=W+t|0)>>>0>>0?L+1|0:L,W=fn(b,m,E,y),G=C+L|0,G=(t=W+t|0)>>>0>>0?G+1|0:G,L=fn(h,g,M,P),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(W=fn(f,i,a,c))+t|0,t=C+G|0,G=(G=(t=L>>>0>>0?t+1|0:t)<<1|L>>>31)+Y|0,L=G=(t=F+(L<<=1)|0)>>>0>>0?G+1|0:G,W=G=t+33554432|0,Y=L=G>>>0<33554432?L+1|0:L,G&=-67108864,s[K+8>>2]=t-G,t=fn(I,v,ne,w),L=C,G=(ee=fn(r,l,a,c))+t|0,t=C+L|0,t=G>>>0>>0?t+1|0:t,L=(ee=fn(d,n,V,p))+G|0,G=C+t|0,G=L>>>0>>0?G+1|0:G,t=(ee=fn(A,o,N,S))+L|0,L=C+G|0,L=t>>>0>>0?L+1|0:L,ee=fn(f,i,Z,B),G=C+L|0,G=(G=(G=(t=ee+t|0)>>>0>>0?G+1|0:G)<<1|t>>>31)+(L=q>>26)|0,L=t=(q=(67108863&q)<<6|se>>>26)+(t<<1)|0,t=G=t>>>0>>0?G+1|0:G,se=G=L+16777216|0,q=t=G>>>0<16777216?t+1|0:t,t=-33554432&G,s[K+28>>2]=L-t,t=fn(A,o,ie,O),G=C,L=fn(d,n,_,X),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=fn(V,p,E,y),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(X=fn(h,g,b,m))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,G=(X=fn(f,i,r,l))+L|0,L=C+t|0,t=G,G=(G>>>0>>0?L+1|0:L)<<1|G>>>31,L=t<<1,G=(t=Y>>26)+G|0,G=(L=L+(Y=(67108863&Y)<<6|W>>>26)|0)>>>0>>0?G+1|0:G,ie=L=(t=L)+16777216|0,Y=G=L>>>0<16777216?G+1|0:G,G=-33554432&L,s[K+12>>2]=t-G,X=e,t=fn(V,p,I,v),G=C,L=fn(r,l,r,l),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=fn(a,c,b,m),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=fn(d,n,D,Q),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(K=fn(A,o,Z,B))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,G=(te=fn(f,i,K=te,W=K>>31))+L|0,L=C+t|0,e=(t=G)<<1,G=(t=q>>25)+(G=(G>>>0>>0?L+1|0:L)<<1|G>>>31)|0,G=(L=e+(q=(33554431&q)<<7|se>>>25)|0)>>>0>>0?G+1|0:G,te=L=(t=L)+33554432|0,q=G=L>>>0<33554432?G+1|0:G,G=-67108864&L,s[X+32>>2]=t-G,G=Y>>25,L=(Y=(33554431&Y)<<7|ie>>>25)+(k-(t=-67108864&x)|0)|0,t=G+(U-((t>>>0>k>>>0)+H|0)|0)|0,G=t=L>>>0>>0?t+1|0:t,Y=t=L+33554432|0,t=((67108863&(G=t>>>0<33554432?G+1|0:G))<<6|t>>>26)+(ae=ae-(-33554432&j)|0)|0,s[X+20>>2]=t,t=-67108864&Y,s[X+16>>2]=L-t,t=fn(a,c,V,p),L=C,G=(V=fn(ne,w,M,P))+t|0,t=C+L|0,t=G>>>0>>0?t+1|0:t,L=(V=fn(I,v,N,S))+G|0,G=C+t|0,G=L>>>0>>0?G+1|0:G,t=(V=fn(d,n,Z,B))+L|0,L=C+G|0,L=t>>>0>>0?L+1|0:L,V=fn(A,o,K,W),G=C+L|0,G=(G=(G=(t=V+t|0)>>>0>>0?G+1|0:G)<<1|t>>>31)+(L=q>>26)|0,G=(t=(q=(67108863&q)<<6|te>>>26)+(t<<1)|0)>>>0>>0?G+1|0:G,L=t,q=t,t=G,t=(G=L+16777216|0)>>>0<16777216?t+1|0:t,L=-33554432&G,s[X+36>>2]=q-L,Y=z-(-33554432&ce)|0,t=(G=fn((33554431&t)<<7|G>>>25,t>>25,19,0))+($-(L=-67108864&oe)|0)|0,L=C+(J-((L>>>0>$>>>0)+re|0)|0)|0,L=t>>>0>>0?L+1|0:L,G=t,t=L,t=((67108863&(t=(L=G+33554432|0)>>>0<33554432?t+1|0:t))<<6|L>>>26)+Y|0,s[X+4>>2]=t,e=-67108864&L,s[X>>2]=G-e}(i=e+120|0,t+80|0),me(o=e+40|0,t,a),k(r,o),me(o,n,e),pe(n,n,e),pe(e,r,o),pe(i,i,n),y=r+48|0}function tt(e){var t,n;return(e=(t=s[8943])+(n=e+3&-4)|0)>>>0<=t>>>0&&(0|n)>=1||e>>>0>Wn()<<16>>>0&&!(0|v(0|e))?(s[8960]=48,-1):(s[8943]=e,t)}function nt(e,t){var n;return y=n=y+-64|0,(t-1&255)>>>0>=64&&(zt(),A()),i[n+3|0]=1,i[n+1|0]=0,i[n+2|0]=1,i[0|n]=t,Vt(4|n),ft(8|n,0,0),ae(n+16|0,0,48),ye(e,n),y=n- -64|0,0}function rt(e,t,n,r,o,i,a){var s=0,c=0;s=r,1==(((s=(c=n+63|0)>>>0<63?s+1|0:s)>>>6|0)+(0!=(0|(s=(63&s)<<26|c>>>6)))|0)&(c=0-s|0)>>>0>>0&&(zt(),A()),xt(e,t,n,r,o,i,a)}function ot(e,t){for(var n=0,r=0,o=0,i=0;r=(n=o<<3)+e|0,i=s[(n=t+n|0)>>2],n=s[r+4>>2]^s[n+4>>2],s[r>>2]=s[r>>2]^i,s[r+4>>2]=n,128!=(0|(o=o+1|0)););}function it(e){var t,n;return 95&(1+(32704^e)>>>8^-1)|45&(1+(16321^e)>>>8^-1)|(t=e+65510>>>8&255)&e+65|(n=e+65484>>>8|0)&e+71&(255^t)|e+252&e+65474>>>8&(-1^n)&255}function at(e){var t,n;return 47&(1+(16320^e)>>>8^-1)|43&(1+(16321^e)>>>8^-1)|(t=e+65510>>>8&255)&e+65|(n=e+65484>>>8|0)&e+71&(255^t)|e+252&e+65474>>>8&(-1^n)&255}function st(e,t,n,r){var o=0;o=-1;e:if(!(n>>>0>64|r-1>>>0>63)){t:{if(!n||!t){if(!nt(e,255&r))break t;break e}if(He(e,255&r,t,255&n))break e}o=0}return o}function ct(e,t){var n,r,o;y=n=y-144|0,K(n+96|0,t+80|0),S(n+48|0,t,n+96|0),S(n,t+40|0,n+96|0),re(e,n),r=e,o=Gt(n+48|0)<<7^c[e+31|0],i[r+31|0]=o,y=n+144|0}function dt(e,t){var n,r=0;if(i[15+(n=y-16|0)|0]=0,t)for(;i[n+15|0]=c[e+r|0]|c[n+15|0],(0|(r=r+1|0))!=(0|t););return c[n+15|0]-1>>>8&1}function ut(e,t,n,r){var o;return r=t+r|0,r=(o=e+n|0)>>>0>>0?r+1|0:r,n=fn(e<<1&-2,1&(t=t<<1|e>>>31),n,0),e=C+r|0,C=e=(t=n+o|0)>>>0>>0?e+1|0:e,t}function lt(e,t,n){var r,o=0;if(r=n>>>3|0)for(n=0;Pe((o=n<<3)+e|0,s[(o=t+o|0)>>2],s[o+4>>2]),(0|r)!=(0|(n=n+1|0)););}function At(e,t){var n=0;!function(e,t){t&&((t=s[e>>2])&&ht(s[t+4>>2],s[e+16>>2]<<10),(t=s[e+4>>2])&&ht(t,s[e+20>>2]<<3))}(e,4&t),R(s[e+4>>2]),s[e+4>>2]=0,(t=s[e>>2])&&(n=s[t>>2])&&R(n),R(t),s[e>>2]=0}function ft(e,t,n){i[0|e]=t,i[e+1|0]=t>>>8,i[e+2|0]=t>>>16,i[e+3|0]=t>>>24,i[e+4|0]=n,i[e+5|0]=n>>>8,i[e+6|0]=n>>>16,i[e+7|0]=n>>>24}function ht(e,t){var n;if(s[12+(n=y-16|0)>>2]=e,t)for(e=0;i[s[n+12>>2]+e|0]=0,(0|t)!=(0|(e=e+1|0)););}function gt(e,t){e|=0;var n=0,r=0,o=0;if(t|=0)for(;r=e+n|0,o=Ot(),i[0|r]=o,(0|(n=n+1|0))!=(0|t););}function pt(e,t,n,r,o){var i,a;return e|=0,t|=0,n|=0,r|=0,y=i=(a=y)-128&-64,te(i,o|=0),X(i,t,n,r),Z(i,e),y=a,0}function mt(e){var t=0,n=0,r=0;for(t=1;t=c[0|(r=e+n|0)]+t|0,i[0|r]=t,t=t>>>8|0,4!=(0|(n=n+1|0)););}function vt(e,t,n,r,o,i,a,s){var c,d=0;return y=c=y-32|0,d=-1,Kt(c,a,s)||(d=on(e,t,n,r,o,i,c),ht(c,32)),y=c+32|0,d}function yt(e,t,n,r,o,i,a,s){var c,d=0;return y=c=y-32|0,d=-1,Kt(c,a,s)||(d=an(e,t,n,r,o,i,c),ht(c,32)),y=c+32|0,d}function bt(e,t){var n,r,o;S(e,t,n=t+120|0),S(e+40|0,r=t+40|0,o=t+80|0),S(e+80|0,o,n),S(e+120|0,t,r)}function It(e,t,n,r,o,i,a){return!r&n>>>0>=16|r?yt(e,t+16|0,t,n-16|0,r-(n>>>0<16)|0,o,i,a):-1}function Ct(e,t){for(var n=0,r=0;i[0|(r=e+n|0)]=c[0|r]^c[t+n|0],8!=(0|(n=n+1|0)););}function Et(e,t,n){var r,o;y=r=(o=y)-384&-64,Lt(r,0,0,24),vn(r,t,32,0),vn(r,n,32,0),Wt(r,e,24),y=o}function wt(e,t){var n;me(e,n=t+40|0,t),pe(e+40|0,n,t),xe(e+80|0,t+80|0),S(e+120|0,t+120|0,2224)}function Bt(e,t,n,r,o,i,a){return t-1>>>0>63|a>>>0>64?-1:function(e,t,n,r,o,i,a){var s,c=0;if(s=c=y,y=c=c-384&-64,!(!e|(r-1&255)>>>0>=64|(o|i?!t:0)|a>>>0>=65|(a?!n:0)))return a?He(c,r,n,a):nt(c,r),oe(c,t,o,i),M(c,e,r),y=s,0;zt(),A()}(e,n,i,255&t,r,o,255&a)}function _t(e,t,n,r,o,i,a){return!r&n>>>0>=4294967280|r&&(zt(),A()),vt(e+16|0,e,t,n,r,o,i,a)}function St(e,t){var n;S(e,t,n=t+120|0),S(e+40|0,t+40|0,t=t+80|0),S(e+80|0,t,n)}function kt(e){var t;return t=c[0|e]|c[e+1|0]<<8,e=c[e+2|0],C=e>>>16|0,t|e<<16}function Ot(){var e,t;return y=e=y-16|0,i[e+15|0]=0,t=0|h(1024,e+15|0,0),y=e+16|0,0|t}function Qt(e,t,n,r,o){var a;return y=a=y-416|0,function(e,t){var n,r=0,o=0;for(y=n=y-192|0,Mt(e),ae(n- -64|0,54,128),i[n+64|0]=54^c[0|t],r=1;i[0|(o=(n- -64|0)+r|0)]=c[0|o]^c[t+r|0],32!=(0|(r=r+1|0)););for(Y(e,n- -64|0,128,0),Mt(e=e+208|0),ae(n- -64|0,92,128),i[n+64|0]=92^c[0|t],r=1;i[0|(o=(n- -64|0)+r|0)]=c[0|o]^c[t+r|0],32!=(0|(r=r+1|0)););Y(e,n- -64|0,128,0),ht(n- -64|0,128),ht(n,64),y=n+192|0}(a,o),Y(a,t,n,r),function(e,t){var n,r=0;y=n=y+-64|0,function(e,t){var n;y=n=y+-64|0,Nt(e,n),Y(e=e+208|0,n,64,0),Nt(e,t),ht(n,64),y=n- -64|0}(e,n),r=s[n+28>>2],e=s[n+24>>2],i[t+24|0]=e,i[t+25|0]=e>>>8,i[t+26|0]=e>>>16,i[t+27|0]=e>>>24,i[t+28|0]=r,i[t+29|0]=r>>>8,i[t+30|0]=r>>>16,i[t+31|0]=r>>>24,r=s[n+20>>2],e=s[n+16>>2],i[t+16|0]=e,i[t+17|0]=e>>>8,i[t+18|0]=e>>>16,i[t+19|0]=e>>>24,i[t+20|0]=r,i[t+21|0]=r>>>8,i[t+22|0]=r>>>16,i[t+23|0]=r>>>24,r=s[n+12>>2],e=s[n+8>>2],i[t+8|0]=e,i[t+9|0]=e>>>8,i[t+10|0]=e>>>16,i[t+11|0]=e>>>24,i[t+12|0]=r,i[t+13|0]=r>>>8,i[t+14|0]=r>>>16,i[t+15|0]=r>>>24,r=s[n+4>>2],e=s[n>>2],i[0|t]=e,i[t+1|0]=e>>>8,i[t+2|0]=e>>>16,i[t+3|0]=e>>>24,i[t+4|0]=r,i[t+5|0]=r>>>8,i[t+6|0]=r>>>16,i[t+7|0]=r>>>24,y=n- -64|0}(a,e),y=a+416|0,0}function Rt(e,t,n,r){var o;return y=o=y-208|0,Mt(o),Y(o,t,n,r),Nt(o,e),y=o+208|0,0}function Pt(e,t){var n=0;return(-1>>>(n=31&t)&e)<>>e}function Nt(e,t){var n;y=n=y-704|0,function(e,t){var n,r=0;(n=s[e+72>>2]>>>3&127)>>>0<=111?q(80+(e+n|0)|0,35424,112-n|0):(q((r=e+80|0)+n|0,35424,128-n|0),w(e,r,t,t+640|0),ae(r,0,112)),lt(e+192|0,e- -64|0,16),w(e,e+80|0,t,t+640|0)}(e,n),lt(t,e,64),ht(n,704),ht(e,208),y=n+704|0}function xt(e,t,n,r,o,i,a){1==(0|r)|r>>>0>1&&(zt(),A()),Vn[s[8957]](e,t,n,r,o,i,a)}function Dt(e,t,n,r,o,i){1==(0|r)|r>>>0>1&&(zt(),A()),Vn[s[8956]](e,t,n,r,o,1,0,i)}function Mt(e){s[e+64>>2]=0,s[e+68>>2]=0,s[e+72>>2]=0,s[e+76>>2]=0,q(e,34720,64)}function Tt(e,t,n){return n>>>0>=256&&(f(2016,2036,107,2089),A()),M(e,t,255&n)}function Ut(){var e;y=e=y-16|0,i[e+15|0]=0,h(1062,e+15|0,0),y=e+16|0}function Ht(e){var t;return y=t=y-32|0,re(t,e),e=dt(t,32),y=t+32|0,e}function jt(e,t){var n;y=n=y-128|0,function(e,t){xe(e,t),xe(e+40|0,t+40|0),xe(e+80|0,t+80|0)}(n+8|0,t),et(e,n+8|0),y=n+128|0}function Jt(e,t){i[0|e]=t,i[e+1|0]=t>>>8,i[e+2|0]=t>>>16,i[e+3|0]=t>>>24}function Ft(e,t,n){Ae(e,t,n),Ae(e+40|0,t+40|0,n),Ae(e+80|0,t+80|0,n)}function Gt(e){var t;return y=t=y-32|0,re(t,e),y=t+32|0,1&i[0|t]}function Lt(e,t,n,r){return 0|st(e|=0,t|=0,n|=0,r|=0)}function qt(e){i[e+32|0]=1,i[e+33|0]=0,i[e+34|0]=0,i[e+35|0]=0}function Yt(e){s[e>>2]=0,s[e+4>>2]=0,s[e+8>>2]=0,s[e+12>>2]=0}function Vt(e){i[0|e]=0,i[e+1|0]=0,i[e+2|0]=0,i[e+3|0]=0}function Wt(e,t,n){return 0|Tt(e|=0,t|=0,n|=0)}function Kt(e,t,n){return 0|function(e,t,n){var r,o=0;return y=r=y-32|0,o=-1,$e(r,n,t)||(o=G(e,35552,r)),y=r+32|0,o}(e|=0,t|=0,n|=0)}function Zt(e,t,n){return 0|$e(e|=0,t|=0,n|=0)}function zt(){var e;(e=s[9105])&&Vn[0|e](),g(),A()}function Xt(e){xn(e),yn(e+40|0),yn(e+80|0),xn(e+120|0)}function $t(e,t,n,r,o,i){Vn[s[8953]](e,t,n,r,o,0,0,i)}function en(e,t,n,r,o,i){Vn[s[8953]](e,t,n,r,o,1,0,i)}function tn(e,t){return e|=0,gt(t|=0,32),0|pn(e,t)}function nn(e,t){return e=function(e,t){var n=0,r=0;e:{if(r=255&t){if(3&e)for(;;){if(!(n=c[0|e])|(0|n)==(255&t))break e;if(!(3&(e=e+1|0)))break}t:if(!((-1^(n=s[e>>2]))&n-16843009&-2139062144))for(r=u(r,16843009);;){if((-1^(n^=r))&n-16843009&-2139062144)break t;if(n=s[e+4>>2],e=e+4|0,n-16843009&(-1^n)&-2139062144)break}for(;(r=c[0|(n=e)])&&(e=n+1|0,(0|r)!=(255&t)););return n}return Oe(e)+e|0}return e}(e,t),c[0|e]==(255&t)?e:0}function rn(e,t,n,r,o,i){return L(e,t,n,r,o,i,0),0}function on(e,t,n,r,o,i,a){return ce(e,t,n,r,o,i,a)}function an(e,t,n,r,o,i,a){return ue(e,t,n,r,o,i,a)}function sn(e,t,n,r,o,i,a){return Bt(e,t,n,r,o,i,a)}function cn(e,t){Mt(e),t&&Y(e,35728,34,0)}function dn(e,t,n,r,o){return Ee(e,t,n,r,o,0)}function un(e,t){return 0|pn(e|=0,t|=0)}function ln(e,t,n,r){Vn[s[8955]](e,t,0,n,r)}function An(e,t,n){Vn[s[8954]](e,64,0,t,n)}function fn(e,t,n,r){return function(e,t,n,r){var o,i,a,s,c=0,d=0;return s=u(c=n>>>16|0,d=e>>>16|0),c=(65535&(d=((a=u(o=65535&n,i=65535&e))>>>16|0)+u(d,o)|0))+u(c,i)|0,e=(u(t,n)+s|0)+u(e,r)+(d>>>16)+(c>>>16)|0,C=e,65535&a|c<<16}(e,t,n,r)}function hn(e,t){return(255&(e^t))-1>>>31|0}function gn(e,t,n){!function(e,t,n){var r,o;y=r=y-128|0,yn(e),yn(e+40|0),xn(e+80|0),Ft(e,t,hn(n=n-((0-(o=(128&n)>>>7|0)&n)<<1)<<24>>24,1)),Ft(e,t+120|0,hn(n,2)),Ft(e,t+240|0,hn(n,3)),Ft(e,t+360|0,hn(n,4)),Ft(e,t+480|0,hn(n,5)),Ft(e,t+600|0,hn(n,6)),Ft(e,t+720|0,hn(n,7)),Ft(e,t+840|0,hn(n,8)),xe(r+8|0,e+40|0),xe(r+48|0,e),Re(r+88|0,e+80|0),Ft(e,r+8|0,o),y=r+128|0}(e,u(t,960)+3488|0,n)}function pn(e,t){return 0|Vn[s[8951]](e,t)}function mn(e,t,n,r){Vn[s[8948]](e,t,n,r)}function vn(e,t,n,r){return bn(e,t,n,r)}function yn(e){s[e>>2]=1,ae(e+4|0,0,36)}function bn(e,t,n,r){return oe(e,t,n,r)}function In(e,t,n){return function(e,t,n){var r=0,o=0,i=0,a=0;return r=31&(i=a=63&n),i>>>0>=32?r=-1>>>r|0:(o=-1>>>r|0,r=(1<>>r),i=r&e,r=t&o,o=31&a,a>>>0>=32?(r=i<>>32-o|r<>>0>=32?(r=-1<>>32-n|-1<>>0>=32?(n=0,e=r>>>t|0):(n=r>>>t|0,e=((1<>>t),C=n|i,e|a}(e,t,n)}function Cn(e,t,n){return function(e,t,n){var r=0,o=0,i=0,a=0,s=0;return r=31&(a=63&n),a>>>0>=32?(o=-1<>>32-r|-1<>>0>=32?(o=0,a=r>>>i|0):(o=r>>>i|0,a=((1<>>i),s=o,i=31&(r=0-n&63),r>>>0>=32?(o=0,n=-1>>>i|0):(o=-1>>>i|0,n=(1<>>i),e&=n,t&=o,o=31&r,r>>>0>=32?(n=e<>>32-o|t<>>0<18,N=N+2|0,O;);Jt(e,n+1634760805|0),Jt(e+4|0,y+r|0),Jt(e+8|0,b+o|0),Jt(e+12|0,Q+i|0),Jt(e+16|0,I+a|0),Jt(e+20|0,k+857760878|0),Jt(e+24|0,C+A|0),Jt(e+28|0,E+f|0),Jt(e+32|0,w+h|0),Jt(e+36|0,S+g|0),Jt(e+40|0,t+2036477234|0),Jt(e+44|0,m+s|0),Jt(e+48|0,p+d|0),Jt(e+52|0,v+u|0),Jt(e+56|0,_+l|0),Jt(e+60|0,B+1797285236|0)}(e,t,n)}function Nn(e){ae(e,0,1024)}function xn(e){ae(e,0,40)}function Dn(){return 16}function Mn(){return 32}function Tn(){return 24}function Un(){return-17}function Hn(){return 64}function jn(){return 1}function Jn(){return 2}function Fn(){return 8}function Gn(){return 0}function Ln(){return-1}function qn(){return 3}o(t=c,1024,"InsgcmV0dXJuIE1vZHVsZS5nZXRSYW5kb21WYWx1ZSgpOyB9IgB7IGlmIChNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPT09IHVuZGVmaW5lZCkgeyB0cnkgeyB2YXIgd2luZG93XyA9ICdvYmplY3QnID09PSB0eXBlb2Ygd2luZG93ID8gd2luZG93IDogc2VsZjsgdmFyIGNyeXB0b18gPSB0eXBlb2Ygd2luZG93Xy5jcnlwdG8gIT09ICd1bmRlZmluZWQnID8gd2luZG93Xy5jcnlwdG8gOiB3aW5kb3dfLm1zQ3J5cHRvOyB2YXIgcmFuZG9tVmFsdWVzU3RhbmRhcmQgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IG5ldyBVaW50MzJBcnJheSgxKTsgY3J5cHRvXy5nZXRSYW5kb21WYWx1ZXMoYnVmKTsgcmV0dXJuIGJ1ZlswXSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVzU3RhbmRhcmQoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVzU3RhbmRhcmQ7IH0gY2F0Y2ggKGUpIHsgdHJ5IHsgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOyB2YXIgcmFuZG9tVmFsdWVOb2RlSlMgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IGNyeXB0b1sncmFuZG9tQnl0ZXMnXSg0KTsgcmV0dXJuIChidWZbMF0gPDwgMjQgfCBidWZbMV0gPDwgMTYgfCBidWZbMl0gPDwgOCB8IGJ1ZlszXSkgPj4+IDA7IH07IHJhbmRvbVZhbHVlTm9kZUpTKCk7IE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9IHJhbmRvbVZhbHVlTm9kZUpTOyB9IGNhdGNoIChlKSB7IHRocm93ICdObyBzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm91bmQnOyB9IH0gfSB9AExpYnNvZGl1bURSR2J1Zl9sZW4gPD0gU0laRV9NQVgAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwByYW5kb21ieXRlcwBTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGJsYWtlMmJfZmluYWwAAAAAAAAAAAjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FtvdXRsZW4gPD0gVUlOVDhfTUFYAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAAAAAAAAAtnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu"),o(t,2224,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),o(t,2272,"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/"),o(t,3264,"AQ=="),o(t,3296,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),o(t,3487,"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"),o(t,34460,"AQ=="),o(t,34496,"AQ=="),o(t,34528,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw=="),o(t,34720,"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA"),o(t,35568,"YjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJA=="),o(t,35728,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMBADEuMC4xOA=="),o(t,35772,"UI5QAABAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAAN");var Yn,Vn=((Yn=[null,pt,function(e,t,n,r,o){var i;return e|=0,y=i=y-16|0,pt(i,t|=0,n|=0,r|=0,o|=0),e=Sn(e,i),y=i+16|0,0|e},function(e,t){return te(e|=0,t|=0),0},function(e,t,n,r){return X(e|=0,t|=0,n|=0,r|=0),0},function(e,t){return Z(e|=0,t|=0),0},function(e,t,n){e|=0,t|=0;var r,o=0,a=0;if(y=r=y-336|0,o=-1,!function(e){var t,n=0,r=0,o=0,a=0;for(i[11+(t=y-16|0)|0]=0,i[t+12|0]=0,i[t+13|0]=0,i[t+14|0]=0,s[t+8>>2]=0;;){for(o=c[e+r|0],n=0;i[0|(a=(t+8|0)+n|0)]=c[0|a]|o^c[(34464+(n<<5)|0)+r|0],7!=(0|(n=n+1|0)););if(31==(0|(r=r+1|0)))break}for(r=127&c[e+31|0],e=0,n=0;i[0|(o=(t+8|0)+n|0)]=c[0|o]|r^c[34495+(n<<5)|0],7!=(0|(n=n+1|0)););for(n=0;n=c[(t+8|0)+e|0]-1|n,7!=(0|(e=e+1|0)););return n>>>8&1}(n|=0)){for(o=0;i[e+o|0]=c[t+o|0],32!=(0|(o=o+1|0)););for(i[0|e]=248&c[0|e],i[e+31|0]=63&c[e+31|0]|64,T(r+288|0,n),yn(r+240|0),xn(r+192|0),xe(r+144|0,r+288|0),yn(r+96|0),n=254,t=0;o=t,a=n,ee(r+240|0,r+144|0,o^=t=c[(n>>>3|0)+e|0]>>>(7&n)&1),ee(r+192|0,r+96|0,o),n=n-1|0,pe(r+48|0,r+144|0,r+96|0),pe(r,r+240|0,r+192|0),me(r+240|0,r+240|0,r+192|0),me(r+192|0,r+144|0,r+96|0),S(r+96|0,r+48|0,r+240|0),S(r+192|0,r+192|0,r),k(r+48|0,r),k(r,r+240|0),me(r+144|0,r+96|0,r+192|0),pe(r+192|0,r+96|0,r+192|0),S(r+240|0,r,r+48|0),pe(r,r,r+48|0),k(r+192|0,r+192|0),U(r+96|0,r),k(r+144|0,r+144|0),me(r+48|0,r+48|0,r+96|0),S(r+96|0,r+288|0,r+192|0),S(r+192|0,r,r+48|0),a;);ee(r+240|0,r+144|0,t),ee(r+192|0,r+96|0,t),K(r+192|0,r+192|0),S(r+240|0,r+240|0,r+192|0),re(e,r+240|0),o=0}return y=r+336|0,0|o},function(e,t){e|=0,t|=0;var n,r=0;for(y=n=y-208|0;i[e+r|0]=c[t+r|0],32!=(0|(r=r+1|0)););return i[0|e]=248&c[0|e],i[e+31|0]=63&c[e+31|0]|64,ie(n+48|0,e),function(e,t,n){var r;y=r=y-96|0,me(r+48|0,n,t),pe(r,n,t),K(r,r),S(e,r+48|0,r),y=r+96|0}(n,n+88|0,n+128|0),re(e,n),y=n+208|0,0},function(e,t,n,r,o){e|=0,r|=0,o|=0;var a,d=0;if(y=a=y-112|0,(t|=0)|(n|=0)){d=c[o+28|0]|c[o+29|0]<<8|c[o+30|0]<<16|c[o+31|0]<<24,s[a+24>>2]=c[o+24|0]|c[o+25|0]<<8|c[o+26|0]<<16|c[o+27|0]<<24,s[a+28>>2]=d,d=c[o+20|0]|c[o+21|0]<<8|c[o+22|0]<<16|c[o+23|0]<<24,s[a+16>>2]=c[o+16|0]|c[o+17|0]<<8|c[o+18|0]<<16|c[o+19|0]<<24,s[a+20>>2]=d,d=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,s[a>>2]=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,s[a+4>>2]=d,d=c[o+12|0]|c[o+13|0]<<8|c[o+14|0]<<16|c[o+15|0]<<24,s[a+8>>2]=c[o+8|0]|c[o+9|0]<<8|c[o+10|0]<<16|c[o+11|0]<<24,s[a+12>>2]=d,o=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24,r=c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24,s[a+104>>2]=0,s[a+108>>2]=0,s[a+96>>2]=o,s[a+100>>2]=r;e:{if(!n&t>>>0>=64|n){for(;;){for(Pn(e,a+96|0,a),o=8,r=1;r=c[0|(d=(a+96|0)+o|0)]+r|0,i[0|d]=r,r=r>>>8|0,16!=(0|(o=o+1|0)););if(e=e- -64|0,n=n-1|0,!(!(n=(t=t+-64|0)>>>0<4294967232?n+1|0:n)&t>>>0>63|n))break}if(!(t|n))break e}for(o=0,Pn(a+32|0,a+96|0,a);i[e+o|0]=c[(a+32|0)+o|0],(0|t)!=(0|(o=o+1|0)););}ht(a+32|0,64),ht(a,32)}return y=a+112|0,0},function(e,t,n,r,o,a,d,u){e|=0,t|=0,o|=0,a|=0,d|=0,u|=0;var l,A=0,f=0;if(y=l=y-112|0,(n|=0)|(r|=0)){for(A=c[u+28|0]|c[u+29|0]<<8|c[u+30|0]<<16|c[u+31|0]<<24,s[l+24>>2]=c[u+24|0]|c[u+25|0]<<8|c[u+26|0]<<16|c[u+27|0]<<24,s[l+28>>2]=A,A=c[u+20|0]|c[u+21|0]<<8|c[u+22|0]<<16|c[u+23|0]<<24,s[l+16>>2]=c[u+16|0]|c[u+17|0]<<8|c[u+18|0]<<16|c[u+19|0]<<24,s[l+20>>2]=A,A=c[u+4|0]|c[u+5|0]<<8|c[u+6|0]<<16|c[u+7|0]<<24,s[l>>2]=c[0|u]|c[u+1|0]<<8|c[u+2|0]<<16|c[u+3|0]<<24,s[l+4>>2]=A,A=8,f=c[u+12|0]|c[u+13|0]<<8|c[u+14|0]<<16|c[u+15|0]<<24,s[l+8>>2]=c[u+8|0]|c[u+9|0]<<8|c[u+10|0]<<16|c[u+11|0]<<24,s[l+12>>2]=f,u=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,s[l+96>>2]=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,s[l+100>>2]=u;i[(l+96|0)+A|0]=a,a=(255&d)<<24|a>>>8,d=d>>>8|0,16!=(0|(A=A+1|0)););if(!r&n>>>0>63|r)for(;;){for(A=0,Pn(l+32|0,l+96|0,l);i[e+A|0]=c[(l+32|0)+A|0]^c[t+A|0],u=1,64!=(0|(A=A+1|0)););for(A=8;o=c[0|(a=(l+96|0)+A|0)]+u|0,i[0|a]=o,u=o>>>8|0,16!=(0|(A=A+1|0)););if(t=t- -64|0,e=e- -64|0,r=r-1|0,!(!(r=(n=n+-64|0)>>>0<4294967232?r+1|0:r)&n>>>0>63|r))break}if(n|r)for(A=0,Pn(l+32|0,l+96|0,l);i[e+A|0]=c[(l+32|0)+A|0]^c[t+A|0],(0|n)!=(0|(A=A+1|0)););ht(l+32|0,64),ht(l,32)}return y=l+112|0,0},function(e,t,n,r,o){var i;return e|=0,r|=0,y=i=y+-64|0,(t|=0)|(n|=0)&&(de(i,o|=0),Ne(i,r,0),N(i,e=ae(e,0,t),e,t,n),ht(i,64)),y=i- -64|0,0},function(e,t,n,r,o){var i;return e|=0,r|=0,y=i=y+-64|0,(t|=0)|(n|=0)&&(de(i,o|=0),je(i,r,0),N(i,e=ae(e,0,t),e,t,n),ht(i,64)),y=i- -64|0,0},function(e,t,n,r,o,i,a,s){var c;return e|=0,t|=0,o|=0,a|=0,s|=0,y=c=y-80|0,(n|=0)|(r|=0)&&(Jt(c+8|0,i|=0),Jt(c+12|0,a),de(c+16|0,s),Ne(c+16|0,o,c+8|0),N(c+16|0,t,e,n,r),ht(c+16|0,64)),y=c+80|0,0},function(e,t,n,r,o,i,a){var s;return e|=0,t|=0,o|=0,a|=0,y=s=y-80|0,(n|=0)|(r|=0)&&(Jt(s+12|0,i|=0),de(s+16|0,a),je(s+16|0,o,s+12|0),N(s+16|0,t,e,n,r),ht(s+16|0,64)),y=s+80|0,0}]).grow=function(e){var t=this.length;return this.length=this.length+e,t},Yn.set=function(e,t){this[e]=t},Yn.get=function(e){return this[e]},Yn);function Wn(){return r.byteLength/65536|0}return{h:Vn,i:function(){},j:function(e,t,n,r,o,i,a,s,c,d,u,l){return 0|Ue(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,u|=0,l|=0)},k:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){if(!o&r>>>0<4294967280)return Ue(e,e+r|0,0,n,r,o,i,a,c,d,u),t&&(o=(e=r+16|0)>>>0<16?o+1|0:o,s[t>>2]=e,s[t+4>>2]=o),0;zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0,u|=0,l|=0)},l:function(e,t,n,r,o,i,a,s,c,d,u,l){return 0|Se(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,u|=0,l|=0)},m:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){if(!o&r>>>0<4294967280)return Se(e,e+r|0,0,n,r,o,i,a,c,d,u),t&&(o=(e=r+16|0)>>>0<16?o+1|0:o,s[t>>2]=e,s[t+4>>2]=o),0;zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0,u|=0,l|=0)},n:function(e,t,n,r,o,i,a,s,c,d,u){return 0|ke(e|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,d|=0,u|=0)},o:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){var l=0;return l=-1,!o&r>>>0>=16|o&&(l=ke(e,n,r-16|0,o-(r>>>0<16)|0,(n+r|0)-16|0,i,a,c,d,u)),t&&(s[t>>2]=l?0:r-16|0,s[t+4>>2]=l?0:o-(r>>>0<16)|0),l}(e|=0,t|=0,r|=0,o|=0,i|=0,a|=0,c|=0,d|=0,u|=0,l|=0)},p:function(e,t,n,r,o,i,a,s,c,d,u){return 0|Be(e|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,d|=0,u|=0)},q:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){var l=0;return l=-1,!o&r>>>0>=16|o&&(l=Be(e,n,r-16|0,o-(r>>>0<16)|0,(n+r|0)-16|0,i,a,c,d,u)),t&&(s[t>>2]=l?0:r-16|0,s[t+4>>2]=l?0:o-(r>>>0<16)|0),l}(e|=0,t|=0,r|=0,o|=0,i|=0,a|=0,c|=0,d|=0,u|=0,l|=0)},r:Mn,s:function(){return 12},t:Gn,u:Dn,v:Un,w:Rn,x:Mn,y:Fn,z:Gn,A:Dn,B:Un,C:Rn,D:function(e,t,n,r,o,i,a,s,c,d,u,l){return 0|De(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,u|=0,l|=0)},E:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){if(!o&r>>>0<4294967280)return De(e,e+r|0,0,n,r,o,i,a,c,d,u),t&&(o=(e=r+16|0)>>>0<16?o+1|0:o,s[t>>2]=e,s[t+4>>2]=o),0;zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0,u|=0,l|=0)},F:function(e,t,n,r,o,i,a,s,c,d,u){return 0|Me(e|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,d|=0,u|=0)},G:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){var l=0;return l=-1,!o&r>>>0>=16|o&&(l=Me(e,n,r-16|0,o-(r>>>0<16)|0,(n+r|0)-16|0,i,a,c,d,u)),t&&(s[t>>2]=l?0:r-16|0,s[t+4>>2]=l?0:o-(r>>>0<16)|0),l}(e|=0,t|=0,r|=0,o|=0,i|=0,a|=0,c|=0,d|=0,u|=0,l|=0)},H:Mn,I:Tn,J:Gn,K:Dn,L:Un,M:Rn,N:Mn,O:Mn,P:function(e,t,n,r,o){return 0|Qt(e|=0,t|=0,n|=0,r|=0,o|=0)},Q:function(e,t,n,r,o){return 0|function(e,t,n,r,o){var i;return y=i=y-32|0,Qt(i,t,n,r,o),t=_n(e,i),n=Xe(i,e,32),y=i+32|0,n|((0|e)==(0|i)?-1:t)}(e|=0,t|=0,n|=0,r|=0,o|=0)},R:Rn,S:Mn,T:Mn,U:Mn,V:Mn,W:Tn,X:Dn,Y:Un,Z:function(e,t,n){return 0|function(e,t,n){var r,o=0;return y=r=y+-64|0,Rt(r,n,32,0),n=s[r+28>>2],o=s[r+24>>2],i[t+24|0]=o,i[t+25|0]=o>>>8,i[t+26|0]=o>>>16,i[t+27|0]=o>>>24,i[t+28|0]=n,i[t+29|0]=n>>>8,i[t+30|0]=n>>>16,i[t+31|0]=n>>>24,n=s[r+20>>2],o=s[r+16>>2],i[t+16|0]=o,i[t+17|0]=o>>>8,i[t+18|0]=o>>>16,i[t+19|0]=o>>>24,i[t+20|0]=n,i[t+21|0]=n>>>8,i[t+22|0]=n>>>16,i[t+23|0]=n>>>24,n=s[r+12>>2],o=s[r+8>>2],i[t+8|0]=o,i[t+9|0]=o>>>8,i[t+10|0]=o>>>16,i[t+11|0]=o>>>24,i[t+12|0]=n,i[t+13|0]=n>>>8,i[t+14|0]=n>>>16,i[t+15|0]=n>>>24,n=s[r+4>>2],o=s[r>>2],i[0|t]=o,i[t+1|0]=o>>>8,i[t+2|0]=o>>>16,i[t+3|0]=o>>>24,i[t+4|0]=n,i[t+5|0]=n>>>8,i[t+6|0]=n>>>16,i[t+7|0]=n>>>24,ht(r,64),e=pn(e,t),y=r- -64|0,e}(e|=0,t|=0,n|=0)},_:tn,$:Kt,aa:function(e,t,n,r,o,i,a){return 0|on(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},ba:function(e,t,n,r,o,i,a,s){return 0|vt(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0)},ca:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){return!r&n>>>0>=4294967280|r&&(zt(),A()),on(e+16|0,e,t,n,r,o,i)}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},da:function(e,t,n,r,o,i,a){return 0|_t(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},ea:function(e,t,n,r,o,i,a){return 0|an(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},fa:function(e,t,n,r,o,i,a,s){return 0|yt(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0)},ga:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){return!r&n>>>0>=16|r?an(e,t+16|0,t,n-16|0,r-(n>>>0<16)|0,o,i):-1}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},ha:function(e,t,n,r,o,i,a){return 0|It(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},ia:function(e,t,n,r,o){return 0|function(e,t,n,r,o){var a,c=0;return y=a=y-96|0,c=-1,tn(a+32|0,a)||(Et(a- -64|0,a+32|0,o),c=_t(e+32|0,t,n,r,a- -64|0,o,a),t=s[a+60>>2],n=s[a+56>>2],i[e+24|0]=n,i[e+25|0]=n>>>8,i[e+26|0]=n>>>16,i[e+27|0]=n>>>24,i[e+28|0]=t,i[e+29|0]=t>>>8,i[e+30|0]=t>>>16,i[e+31|0]=t>>>24,t=s[a+52>>2],n=s[a+48>>2],i[e+16|0]=n,i[e+17|0]=n>>>8,i[e+18|0]=n>>>16,i[e+19|0]=n>>>24,i[e+20|0]=t,i[e+21|0]=t>>>8,i[e+22|0]=t>>>16,i[e+23|0]=t>>>24,t=s[a+44>>2],n=s[a+40>>2],i[e+8|0]=n,i[e+9|0]=n>>>8,i[e+10|0]=n>>>16,i[e+11|0]=n>>>24,i[e+12|0]=t,i[e+13|0]=t>>>8,i[e+14|0]=t>>>16,i[e+15|0]=t>>>24,t=s[a+36>>2],n=s[a+32>>2],i[0|e]=n,i[e+1|0]=n>>>8,i[e+2|0]=n>>>16,i[e+3|0]=n>>>24,i[e+4|0]=t,i[e+5|0]=t>>>8,i[e+6|0]=t>>>16,i[e+7|0]=t>>>24,ht(a,32),ht(a+32|0,32),ht(a- -64|0,24)),y=a+96|0,c}(e|=0,t|=0,n|=0,r|=0,o|=0)},ja:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){var a,s=0;return y=a=y-32|0,s=-1,!r&n>>>0>=48|r&&(Et(a,t,o),s=It(e,t+32|0,n-32|0,r-(n>>>0<32)|0,a,t,i)),y=a+32|0,s}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},ka:function(){return 48},la:Dn,ma:Hn,na:Mn,oa:Dn,pa:Hn,qa:Mn,ra:function(){return 384},sa:function(e,t,n,r,o,i,a){return 0|sn(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},ta:Lt,ua:function(e,t,n,r){return 0|vn(e|=0,t|=0,n|=0,r|=0)},va:Wt,wa:Rn,xa:Hn,ya:function(e,t,n,r){return 0|Rt(e|=0,t|=0,n|=0,r|=0)},za:Dn,Aa:Hn,Ba:Fn,Ca:Mn,Da:function(e,t,n,r,o,d){return 0|function(e,t,n,r,o,d){var u,l;return y=u=y-32|0,l=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,o=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,s[u+24>>2]=0,s[u+28>>2]=0,s[u+16>>2]=l,s[u+20>>2]=o,ft(u,n,r),s[u+8>>2]=0,s[u+12>>2]=0,t-16>>>0>=49?(s[8960]=28,e=-1):(n=u+16|0,e=t-1>>>0>63?-1:function(e,t,n,r,o){var d,u=0;if(d=u=y,y=u=u-384&-64,!(!t|!e|(n-1&255)>>>0>=64))return function(e,t,n,r,o){var d;if(y=d=y-192|0,!(!n|(t-1&255)>>>0>=64))return a[d+130>>1]=257,i[d+129|0]=32,i[d+128|0]=t,Vt(d+128|4),ft(d+128|8,0,0),s[d+152>>2]=0,s[d+156>>2]=0,s[d+144>>2]=0,s[d+148>>2]=0,r?function(e,t){var n,r=0;r=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,i[e+32|0]=n,i[e+33|0]=n>>>8,i[e+34|0]=n>>>16,i[e+35|0]=n>>>24,i[e+36|0]=r,i[e+37|0]=r>>>8,i[e+38|0]=r>>>16,i[e+39|0]=r>>>24,r=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,t=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,i[e+40|0]=t,i[e+41|0]=t>>>8,i[e+42|0]=t>>>16,i[e+43|0]=t>>>24,i[e+44|0]=r,i[e+45|0]=r>>>8,i[e+46|0]=r>>>16,i[e+47|0]=r>>>24}(d+128|0,r):(s[d+168>>2]=0,s[d+172>>2]=0,s[d+160>>2]=0,s[d+164>>2]=0),o?function(e,t){var n,r=0;r=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,i[e+48|0]=n,i[e+49|0]=n>>>8,i[e+50|0]=n>>>16,i[e+51|0]=n>>>24,i[e+52|0]=r,i[e+53|0]=r>>>8,i[e+54|0]=r>>>16,i[e+55|0]=r>>>24,r=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,t=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,i[e+56|0]=t,i[e+57|0]=t>>>8,i[e+58|0]=t>>>16,i[e+59|0]=t>>>24,i[e+60|0]=r,i[e+61|0]=r>>>8,i[e+62|0]=r>>>16,i[e+63|0]=r>>>24}(d+128|0,o):(s[d+184>>2]=0,s[d+188>>2]=0,s[d+176>>2]=0,s[d+180>>2]=0),ye(e,d+128|0),ae(d+32|0,0,96),oe(t=e,e=q(d,n,32),128,0),ht(e,128),void(y=e+192|0);zt(),A()}(u,n,t,r,o),oe(u,0,0,0),M(u,e,n),y=d,0;zt(),A()}(e,d,255&t,u,n)),y=u+32|0,e}(e|=0,t|=0,n|=0,r|=0,o|=0,d|=0)},Ea:Rn,Fa:function(e,t,n){return e|=0,sn(t|=0,32,n|=0,32,0,0,0),0|un(e,t)},Ga:function(e,t){return e|=0,gt(t|=0,32),0|un(e,t)},Ha:function(e,t,n,r,o){t|=0,n|=0,o|=0;var a,s,d=0;if(s=d=y,y=d=d-512&-64,a=(e|=0)||t){if(e=-1,!Zt(d+96|0,r|=0,o)){for(t=t||a,e=0,Lt(d+128|0,0,0,64),vn(d+128|0,d+96|0,32,0),ht(d+96|0,32),vn(d+128|0,n,32,0),vn(d+128|0,o,32,0),Wt(d+128|0,d+32|0,64),ht(d+128|0,384);n=(d+32|0)+e|0,i[e+a|0]=c[0|n],i[e+t|0]=c[n+32|0],32!=(0|(e=e+1|0)););ht(d+32|0,64),e=0}return y=s,0|e}zt(),A()},Ia:function(e,t,n,r,o){t|=0,n|=0,o|=0;var a,s,d=0;if(s=d=y,y=d=d-512&-64,a=(e|=0)||t){if(e=-1,!Zt(d+96|0,r|=0,o)){for(t=t||a,e=0,Lt(d+128|0,0,0,64),vn(d+128|0,d+96|0,32,0),ht(d+96|0,32),vn(d+128|0,o,32,0),vn(d+128|0,n,32,0),Wt(d+128|0,d+32|0,64),ht(d+128|0,384);n=(d+32|0)+e|0,i[e+t|0]=c[0|n],i[e+a|0]=c[n+32|0],32!=(0|(e=e+1|0)););ht(d+32|0,64),e=0}return y=s,0|e}zt(),A()},Ja:Mn,Ka:Mn,La:Mn,Ma:Mn,Na:jn,Oa:Jn,Pa:Jn,Qa:Dn,Ra:Ln,Sa:Gn,Ta:Ln,Ua:Dn,Va:function(){return 128},Wa:function(){return 35681},Xa:jn,Ya:Ln,Za:function(){return 8192},_a:function(){return-2147483648},$a:Jn,ab:function(){return 67108864},bb:qn,cb:function(){return 268435456},db:function(){return 4},eb:function(){return 1073741824},fb:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u,l){switch(l-1|0){case 0:return function(e,t,n,r,o,i,a,c,d,u){var l,A;A=t,l=ae(e,0,t),e=22;e:if(!n){if(!(!n&t>>>0<16)){if(i|d|u>>>0>2147483648)break e;if(!(!d&c>>>0<3|u>>>0<8192)){if(e=28,(0|r)==(0|l))break e;return Ce(c,u>>>10|0,1,r,o,a,16,l,A,0,0,1)?-1:0}}e=28}return s[8960]=e,-1}(e,t,n,r,o,i,a,c,d,u);case 1:return function(e,t,n,r,o,i,a,c,d,u){var l,A;A=t,l=ae(e,0,t),e=22;e:if(!n){if(!(!n&t>>>0<16)){if(i|d|u>>>0>2147483648)break e;if(!(!(c|d)|u>>>0<8192)){if(e=28,(0|r)==(0|l))break e;return Ce(c,u>>>10|0,1,r,o,a,16,l,A,0,0,2)?-1:0}}e=28}return s[8960]=e,-1}(e,t,n,r,o,i,a,c,d,u)}return s[8960]=28,-1}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0,d|=0,u|=0,l|=0)},gb:function(e,t,n,r,o,i,a){return 0|Je(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},hb:function(e,t,n,r,o,i,a,c){return 0|function(e,t,n,r,o,i,a,c){switch(c-1|0){case 1:return Je(e,t,n,r,o,i,a);default:zt(),A();case 0:}return function(e,t,n,r,o,i,a){var c;return y=c=y-16|0,e=ae(e,0,128),a>>>0<2147483649&&!(r|i)?a>>>0>8191&&!i&o>>>0>=3|0!=(0|i)?(gt(c,16),e=Ce(o,a>>>10|0,1,t,n,c,16,0,32,e,128,1)?-1:0):(s[8960]=28,e=-1):(s[8960]=22,e=-1),y=c+16|0,e}(e,t,n,r,o,i,a)}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0)},ib:function(e,t,n,r){return 0|function(e,t,n,r){return qe(e,35681,10)?qe(e,35692,9)?(s[8960]=28,-1):function(e,t,n,r){e:{if(1==(0|r)|r>>>0>1)s[8960]=22;else{if(!(e=he(e,t,n,1)))break e;-35==(0|e)&&(s[8960]=28)}e=-1}return e}(e,t,n,r):function(e,t,n,r){e:{if(1==(0|r)|r>>>0>1)s[8960]=22;else{if(!(e=he(e,t,n,2)))break e;-35==(0|e)&&(s[8960]=28)}e=-1}return e}(e,t,n,r)}(e|=0,t|=0,n|=0,r|=0)},jb:function(e,t,n,r){return 0|function(e,t,n,r){return qe(e,35681,10)?qe(e,35692,9)?(s[8960]=28,-1):be(e,t,n,r,1):be(e,t,n,r,2)}(e|=0,t|=0,n|=0,r|=0)},kb:un,lb:Zt,mb:Mn,nb:Mn,ob:Mn,pb:Tn,qb:Dn,rb:Un,sb:Rn,tb:on,ub:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){return!r&n>>>0>=4294967280|r&&(zt(),A()),ce(e+16|0,e,t,n,r,o,i),0}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},vb:an,wb:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){return!r&n>>>0>=16|r?ue(e,t+16|0,t,n-16|0,r-(n>>>0<16)|0,o,i):-1}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},xb:Rn,yb:function(e,t,n){return e|=0,n|=0,gt(t|=0,24),J(e,t,n),qt(e),n=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,t=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,i[e+44|0]=0,i[e+45|0]=0,i[e+46|0]=0,i[e+47|0]=0,i[e+48|0]=0,i[e+49|0]=0,i[e+50|0]=0,i[e+51|0]=0,i[e+36|0]=n,i[e+37|0]=n>>>8,i[e+38|0]=n>>>16,i[e+39|0]=n>>>24,i[e+40|0]=t,i[e+41|0]=t>>>8,i[e+42|0]=t>>>16,i[e+43|0]=t>>>24,0},zb:function(e,t,n){return J(e|=0,t|=0,n|=0),qt(e),n=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,t=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,i[e+44|0]=0,i[e+45|0]=0,i[e+46|0]=0,i[e+47|0]=0,i[e+48|0]=0,i[e+49|0]=0,i[e+50|0]=0,i[e+51|0]=0,i[e+36|0]=n,i[e+37|0]=n>>>8,i[e+38|0]=n>>>16,i[e+39|0]=n>>>24,i[e+40|0]=t,i[e+41|0]=t>>>8,i[e+42|0]=t>>>16,i[e+43|0]=t>>>24,0},Ab:F,Bb:function(e,t,n,r,o,a,d,u,l,f){return 0|function(e,t,n,r,o,a,d,u,l,f){var h,g=0;if(y=h=y-336|0,n&&(s[n>>2]=0,s[n+4>>2]=0),!a&o>>>0<4294967279)return kn(h+16|0,64,g=e+32|0,e),wn(h+80|0,h+16|0),ht(h+16|0,64),mn(h+80|0,d,u,l),mn(h+80|0,35712,0-u&15,0),ae(h+16|0,0,64),i[h+16|0]=f,rt(h+16|0,h+16|0,64,0,g,1,e),mn(h+80|0,h+16|0,64,0),i[0|t]=c[h+16|0],rt(d=t+1|0,r,o,a,g,2,e),mn(h+80|0,d,o,a),mn(h+80|0,35712,15&o,0),ft(h+8|0,u,l),mn(h+80|0,h+8|0,8,0),ft(h+8|0,o- -64|0,a-((o>>>0<4294967232)-1|0)|0),mn(h+80|0,h+8|0,8,0),Bn(h+80|0,t=o+d|0),ht(h+80|0,256),Ct(e+36|0,t),mt(g),(2&f||dt(g,4))&&F(e),n&&(a=(e=o+17|0)>>>0<17?a+1|0:a,s[n>>2]=e,s[n+4>>2]=a),y=h+336|0,0;zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,a|=0,d|=0,u|=0,l|=0,f|=0)},Cb:function(e,t,n,r,o,a,d,u,l,f){return 0|function(e,t,n,r,o,a,d,u,l,f){var h,g=0,p=0,m=0,v=0,b=0;y=h=y-352|0,n&&(s[n>>2]=0,s[n+4>>2]=0),r&&(i[0|r]=255),v=-1;e:{if(!(!d&a>>>0<17)){if(!(g=d-(a>>>0<17)|0)&(p=a-17|0)>>>0>=4294967279|g)break e;kn(h+32|0,64,m=e+32|0,e),wn(h+96|0,h+32|0),ht(h+32|0,64),mn(h+96|0,u,l,f),mn(h+96|0,35712,0-l&15,0),ae(h+32|0,0,64),i[h+32|0]=c[0|o],rt(h+32|0,h+32|0,64,0,m,1,e),b=c[h+32|0],i[h+32|0]=c[0|o],mn(h+96|0,h+32|0,64,0),mn(h+96|0,u=o+1|0,p,g),mn(h+96|0,35712,a-1&15,0),ft(h+24|0,l,f),mn(h+96|0,h+24|0,8,0),ft(h+24|0,o=a+47|0,d=o>>>0<47?d+1|0:d),mn(h+96|0,h+24|0,8,0),Bn(h+96|0,h),ht(h+96|0,256),Xe(h,u+p|0,16)?ht(h,16):(rt(t,u,p,g,m,2,e),Ct(e+36|0,h),mt(m),(2&b||dt(m,4))&&F(e),n&&(s[n>>2]=p,s[n+4>>2]=g),v=0,r&&(i[0|r]=b))}return y=h+352|0,v}zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,a|=0,d|=0,u|=0,l|=0,f|=0)},Db:function(){return 52},Eb:function(){return 17},Fb:Tn,Gb:Mn,Hb:function(){return-18},Ib:Gn,Jb:jn,Kb:Jn,Lb:qn,Mb:Fn,Nb:Dn,Ob:function(e,t,n,r,o){return 0|function(e,t,n,r){var o=0,i=0,a=0,s=0,d=0,u=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,y=0,b=0;if(o=1886610805^(a=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24),s=1936682341^(i=c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24),d=1852142177^a,l=1819895653^i,a=1852075885^(f=c[r+8|0]|c[r+9|0]<<8|c[r+10|0]<<16|c[r+11|0]<<24),i=1685025377^(r=c[r+12|0]|c[r+13|0]<<8|c[r+14|0]<<16|c[r+15|0]<<24),f^=2037671283,u=1952801890^r,(0|(r=(t+n|0)-(p=7&n)|0))!=(0|t)){for(;A=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,h=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,g=In(a,i,13),m=C,v=1+(i=i+s|0)|0,s=i,y=In(i=o+a|0,s=i>>>0>>0?v:s,32),v=C,u=o=u^h,a=In(f^=A,o,16),o=d+f|0,d=l+u|0,f=l=(d=o>>>0>>0?d+1|0:d)^C,l=In(a^=o,l,21),u=C,g=In(i^=g,s^=m,17),b=C,s=d+s|0,d=o,s=In(o=o+i|0,i=d>>>0>o>>>0?s+1|0:s,32),d=C,m=In(g^=o,i^=b,13),b=C,v=1+(o=f+v|0)|0,f=o,a=(o=a+y|0)>>>0>>0?v:f,g=f=o+g|0,i=a+i|0,i=In(f,y=o>>>0>f>>>0?i+1|0:i,32),f=C,l=In(o^=l,a^=u,16),a=d+a|0,a=(o=o+s|0)>>>0>>0?a+1|0:a,s=i+(d=o^l)|0,i=(u=f)+(f=a^C)|0,f=In(d,f,21)^s,u=(v=s>>>0>>0?i+1|0:i)^C,d=i=y^b,i=In(l=g^m,i,17),a=a+d|0,l=(d=o+l|0)>>>0>>0?a+1|0:a,a=i^d,i=l^C,o=s^A,s=h^v,d=In(d,l,32),l=C,(0|r)!=(0|(t=t+8|0)););t=r}switch(r=n<<24,n=0,p-1|0){case 6:r|=c[t+6|0]<<16;case 5:r|=c[t+5|0]<<8;case 4:r|=c[t+4|0];case 3:A=(n=c[t+3|0])>>>8|0,n<<=24,r|=A;case 2:n|=(A=c[t+2|0])<<16,r|=h=A>>>16|0;case 1:n|=(A=c[t+1|0])<<8,r|=h=A>>>24|0;case 0:n=c[0|t]|n}return A=In(a,i,13),h=C,t=i+s|0,p=In(a=o+a|0,i=a>>>0>>0?t+1|0:t,32),g=C,s=o=r^u,o=In(t=n^f,o,16),s=s+l|0,l=d=(s=(u=t)>>>0>(t=t+d|0)>>>0?s+1|0:s)^C,d=In(o^=t,d,21),f=C,A=In(a^=A,i^=h,17),h=C,i=s+i|0,u=t,i=In(t=t+a|0,a=u>>>0>t>>>0?i+1|0:i,32),s=C,A=In(u=t^A,a^=h,13),h=C,m=1+(t=l+g|0)|0,l=t,a=(o=(t=o+p|0)>>>0>>0?m:l)+a|0,a=In(u=l=t+u|0,l=t>>>0>l>>>0?a+1|0:a,32),p=C,d=In(t^=d,o^=f,16),o=s+o|0,o=(t=t+i|0)>>>0>>0?o+1|0:o,i=t^d,d=s=o^C,s=In(i,s,21),f=C,h=l^=h,l=In(u^=A,l,17),A=C,o=o+h|0,m=t,u=In(t=t+u|0,o=m>>>0>t>>>0?o+1|0:o,32),h=C,A=In(t^=l,l=o^A,13),g=C,m=t,d=1+(t=d+p|0)|0,o=t,r=l+(r^(o=(t=a+i|0)>>>0>>0?d:o))|0,n=In(i=a=m+(n^=t)|0,a=n>>>0>a>>>0?r+1|0:r,32),d=C,s=In(t^=s,r=o^f,16),r=r+h|0,r=(o=t)>>>0>(t=t+(255^u)|0)>>>0?r+1|0:r,o=t^s,l=s=r^C,s=In(o,s,21),f=C,u=a^=g,a=In(i^=A,a,17),A=C,r=r+u|0,u=t,i=In(t=t+i|0,r=u>>>0>t>>>0?r+1|0:r,32),u=C,h=In(a^=t,A^=r,13),p=C,l=1+(t=d+l|0)|0,r=t,o=(r=(t=n+o|0)>>>0>>0?l:r)+A|0,d=o=t>>>0>(n=t+a|0)>>>0?o+1|0:o,o=In(n,o,32),l=C,s=In(t^=s,r^=f,16),r=r+u|0,u=t,a=(t=t+i|0)^s,s=i=(r=u>>>0>t>>>0?r+1|0:r)^C,i=In(a,i,21),f=C,u=d^=p,d=In(n^=h,d,17),A=C,r=r+u|0,u=t,u=In(t=t+n|0,n=u>>>0>t>>>0?r+1|0:r,32),h=C,p=In(d^=t,A^=n,13),g=C,r=1+(t=s+l|0)|0,n=t,o=(r=(t=o+a|0)>>>0>>0?r:n)+A|0,s=o=t>>>0>(n=t+d|0)>>>0?o+1|0:o,o=In(n,o,32),d=C,i=In(t^=i,r^=f,16),r=r+h|0,l=t,a=(t=t+u|0)^i,l=i=(r=l>>>0>t>>>0?r+1|0:r)^C,i=In(a,i,21),f=C,u=s^=g,s=In(n^=p,s,17),A=C,r=r+u|0,u=t,r=In(t=t+n|0,n=u>>>0>t>>>0?r+1|0:r,32),u=C,A=n^=A,h=In(s^=t,n,13),p=C,l=1+(t=d+l|0)|0,n=t,d=a=f^(o=(t=o+a|0)>>>0>>0?l:n),a=In(n=t^i,a,16),i=d+u|0,u=n,a=In((n=n+r|0)^a,(r=u>>>0>n>>>0?i+1|0:i)^C,21),i=C,o=o+A|0,l=1+(r=r+(o=((u=t)>>>0>(t=t+s|0)>>>0?o+1|0:o)^p)|0)|0,u=r,n=(t=n+(r=t^h)|0)>>>0>>0?l:u,r=In(r,o,17)^t^a,o=C^n^i,ft(e,In(t,n,32)^r,C^o),0}(e|=0,t|=0,n|=0,o|=0)},Pb:function(e){gt(e|=0,16)},Qb:function(){return 208},Rb:Hn,Sb:Mn,Tb:Mn,Ub:Hn,Vb:function(){return-65},Wb:function(e,t,n){return 0|D(e|=0,t|=0,n|=0)},Xb:function(e,t){return 0|function(e,t){var n;return y=n=y-32|0,gt(n,32),D(e,t,n),ht(n,32),y=n+32|0,0}(e|=0,t|=0)},Yb:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){var a,c;return y=a=y-16|0,c=n,n=r,rn(e,a+8|0,ne(e- -64|0,c,r),r,o,i),64!=s[a+8>>2]|s[a+12>>2]?(t&&(s[t>>2]=0,s[t+4>>2]=0),ae(e,0,n- -64|0),e=-1):(e=0,t&&(s[t>>2]=r- -64,s[t+4>>2]=o-((r>>>0<4294967232)-1|0))),y=a+16|0,e}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},Zb:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){var a=0;e:{t:{if(!(!o&r>>>0<64||(o=o-1|0,!(o=(r=r+-64|0)>>>0<4294967232?o+1|0:o)&r>>>0>4294967231|o))){if(!dn(n,a=n- -64|0,r,o,i))break t;e&&ae(e,0,r)}if(n=-1,!t)break e;return s[t>>2]=0,s[t+4>>2]=0,-1}t&&(s[t>>2]=r,s[t+4>>2]=o),n=0,e&&ne(e,a,r)}return n}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},_b:function(e,t,n,r,o,i){return 0|rn(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},$b:function(e,t,n,r,o){return 0|dn(e|=0,t|=0,n|=0,r|=0,o|=0)},ac:function(e){return Mt(e|=0),0},bc:function(e,t,n,r){return 0|Y(e|=0,t|=0,n|=0,r|=0)},cc:function(e,t,n,r){return 0|function(e,t,n,r){var o;return y=o=y+-64|0,Nt(e,o),e=L(t,n,o,64,0,r,1),y=o- -64|0,e}(e|=0,t|=0,n|=0,r|=0)},dc:function(e,t,n){return 0|function(e,t,n){var r;return y=r=y+-64|0,Nt(e,r),e=Ee(t,r,64,0,n,1),y=r- -64|0,e}(e|=0,t|=0,n|=0)},ec:function(e,t){e|=0;var n,r=0;return y=n=y-256|0,r=-1,ve(t|=0)||ge(n+96|0,t)||function(e){var t;return y=t=y-160|0,function(e,t){var n,r=0;for(y=n=y-1760|0,wt(n+480|0,t),jt(n+320|0,t),bt(n,n+320|0),Ye(n+320|0,n,n+480|0),bt(n+160|0,n+320|0),wt(t=n+640|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+800|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+960|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+1120|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+1280|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+1440|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(n+1600|0,n+160|0),Xt(e),t=252;jt(n+320|0,e),r=t,(0|(t=i[t+34208|0]))>=1?(bt(n+160|0,n+320|0),Ye(n+320|0,n+160|0,(n+480|0)+u((254&t)>>>1|0,160)|0)):(0|t)>-1||(bt(n+160|0,n+320|0),Ve(n+320|0,n+160|0,(n+480|0)+u((0-t&254)>>>1|0,160)|0)),bt(e,n+320|0),t=r-1|0,r;);y=n+1760|0}(t,e),e=Ht(t),y=t+160|0,e}(n+96|0)&&(yn(n),pe(n,n,t=n+136|0),yn(n+48|0),me(n+48|0,n+48|0,t),K(n,n),S(n+48|0,n+48|0,n),re(e,n+48|0),r=0),y=n+256|0,0|r},fc:function(e,t){e|=0;var n,r=0;return y=n=y+-64|0,Rt(n,t|=0,32,0),i[0|n]=248&c[0|n],i[n+31|0]=63&c[n+31|0]|64,t=s[n+20>>2],r=s[n+16>>2],i[e+16|0]=r,i[e+17|0]=r>>>8,i[e+18|0]=r>>>16,i[e+19|0]=r>>>24,i[e+20|0]=t,i[e+21|0]=t>>>8,i[e+22|0]=t>>>16,i[e+23|0]=t>>>24,t=s[n+12>>2],r=s[n+8>>2],i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,i[e+12|0]=t,i[e+13|0]=t>>>8,i[e+14|0]=t>>>16,i[e+15|0]=t>>>24,t=s[n+4>>2],r=s[n>>2],i[0|e]=r,i[e+1|0]=r>>>8,i[e+2|0]=r>>>16,i[e+3|0]=r>>>24,i[e+4|0]=t,i[e+5|0]=t>>>8,i[e+6|0]=t>>>16,i[e+7|0]=t>>>24,t=s[n+28>>2],r=s[n+24>>2],i[e+24|0]=r,i[e+25|0]=r>>>8,i[e+26|0]=r>>>16,i[e+27|0]=r>>>24,i[e+28|0]=t,i[e+29|0]=t>>>8,i[e+30|0]=t>>>16,i[e+31|0]=t>>>24,ht(n,64),y=n- -64|0,0},gc:Ot,hc:Ut,ic:function(e){var t=0,n=0;if((e|=0)>>>0>=2){for(n=(0-e>>>0)%(e>>>0)|0;(t=Ot())>>>0>>0;);e=(t>>>0)%(e>>>0)|0}else e=0;return 0|e},jc:gt,kc:function(e,t,n){kn(e|=0,t|=0,1784,n|=0)},lc:Mn,mc:function(){var e=0,t=0;return(e=s[9097])&&(e=s[e+20>>2])&&(t=0|Vn[0|e]()),0|t},nc:function(e,t,n){!function(e,t,n){1==(0|n)|n>>>0>1&&(f(1796,1816,197,1842),A()),gt(e,t)}(e|=0,t|=0,n|=0)},oc:function(e,t,n,r){e|=0,n|=0;var o=0,a=0,s=0;if(!((r|=0)>>>0>2147483646|r<<1>>>0>=(t|=0)>>>0)){if(t=0,r){for(;o=t<<1,a=(s=c[t+n|0])>>>4|0,i[o+e|0]=87+(a+(a+65526>>>8&217)|0),a=(1|o)+e|0,o=15&s,i[0|a]=22272+((o<<8)+(o+65526&55552)|0)>>>8,(0|r)!=(0|(t=t+1|0)););t=r<<1}else t=0;return i[t+e|0]=0,0|e}zt(),A()},pc:function(e,t,n,r,o,a,d){e|=0,t|=0,n|=0,o|=0,a|=0,d|=0;var u=0,l=0,A=0,f=0,h=0,g=0,p=0,m=0,v=0,y=0,b=0;e:if(r|=0){t:{n:{r:for(;;){for(l=u;;){o:{if(!(255&((v=(65526+(p=(223&(g=c[n+l|0]))-55&255)^p+65520)>>>8|0)|(A=65526+(y=48^g)>>>8|0)))){if(A=1,!o|255&h)break n;if(nn(o,g))break o;u=l;break e}if(t>>>0<=f>>>0){s[8960]=68,A=0;break n}if(u=p&v|A&y,255&h?(i[e+f|0]=u|b,f=f+1|0):b=u<<4,h^=-1,A=1,(u=l+1|0)>>>0>>0)continue r;break t}if(h=0,!((l=l+1|0)>>>0>>0))break}break}u=(e=u+1|0)>>>0>>0?r:e;break e}u=l}255&h?(s[8960]=28,m=-1,u=u-1|0,f=0):A||(f=0,m=-1)}return d?s[d>>2]=n+u:(0|r)!=(0|u)&&(s[8960]=28,m=-1),a&&(s[a>>2]=f),0|m},qc:function(e,t){var n;return e|=0,En(t|=0),e=u(n=(e>>>0)/3|0,-3)+e|0,u(4-(3-e&0-(t>>>1&1))|0,1&(e|e>>>1))+(n<<2|1)|0},rc:z,sc:V,tc:function(){var e=0;return s[9104]?e=1:(s[9086]=0,function(){var e;y=e=y-16|0,Yt(e),s[e>>2]&&(Yt(e),ae(36348,0,40)),y=e+16|0}(),s[9085]=1,Ut(),function(){var e=0;(0|(e=0|p(30)))>=1?s[8944]=e:e=s[8944],e>>>0<=15&&(zt(),A()),gt(36400,16)}(),s[9104]=1,e=0),0|e},uc:function(e,t,n,r,o){e|=0,t|=0,n|=0,o|=0;var a,d=0,u=0,l=0;y=a=y-16|0;e:{if(r|=0){if(l=-1,(d=(d=r-1|0)-(u=d&r?(n>>>0)%(r>>>0)|0:n&d)|0)>>>0>=(-1^n)>>>0)break e;if(!((n=n+d|0)>>>0>=o>>>0))for(e&&(s[e>>2]=n+1),e=t+n|0,l=0,i[a+15|0]=0,t=r>>>0>1?r:1,r=0;o=n=e-r|0,u=c[0|n]&c[a+15|0],n=(r^d)-1>>>24|0,i[0|o]=u|128&n,i[a+15|0]=n|c[a+15|0],(0|t)!=(0|(r=r+1|0)););}else l=-1;return y=a+16|0,0|l}zt(),A()},vc:function(e,t,n,r){e|=0,t|=0,n|=0,r|=0;var o,i=0,a=0,d=0,u=0,l=0;if(s[12+(o=y-16|0)>>2]=0,r-1>>>0>>0){for(l=(i=n-1|0)+t|0,n=0,t=0;u=((128^(a=c[l-n|0]))-1&s[o+12>>2]-1&d-1)>>>8&1,s[o+12>>2]=s[o+12>>2]|0-u&n,t|=u,d|=a,(0|r)!=(0|(n=n+1|0)););s[e>>2]=i-s[o+12>>2],e=t-1|0}else e=-1;return 0|e},wc:function(){return 35762},xc:function(){return 10},yc:qn,zc:jn,Ac:function(){return 35840},Bc:_,Cc:R}}(e)}(Me)},instantiate:function(e,t){return{then:function(t){var n=new B.Module(e);t({instance:new B.Instance(n)})}}},RuntimeError:Error};function _(e,t,n,r){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":R[e>>0]=t;break;case"i16":N[e>>1]=t;break;case"i32":x[e>>2]=t;break;case"i64":Ae=[t>>>0,(le=t,+Math.abs(le)>=1?le>0?(0|Math.min(+Math.floor(le/4294967296),4294967295))>>>0:~~+Math.ceil((le-+(~~le>>>0))/4294967296)>>>0:0)],x[e>>2]=Ae[0],x[e+4>>2]=Ae[1];break;case"float":D[e>>2]=t;break;case"double":M[e>>3]=t;break;default:ie("invalid type for setValue: "+n)}}function S(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return R[e>>0];case"i16":return N[e>>1];case"i32":case"i64":return x[e>>2];case"float":return D[e>>2];case"double":return M[e>>3];default:ie("invalid type for getValue: "+t)}return null}C=[],"object"!=typeof B&&ie("no native wasm support detected");var k=!1;function O(e,t){e||ie("Assertion failed: "+t)}var Q,R,P,N,x,D,M,T="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function U(e,t,n){for(var r=t+n,o=t;e[o]&&!(o>=r);)++o;if(o-t>16&&e.subarray&&T)return T.decode(e.subarray(t,o));for(var i="";t>10,56320|1023&d)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function H(e,t){return e?U(P,e,t):""}function j(e,t){return e%t>0&&(e+=t-e%t),e}function J(e){Q=e,c.HEAP8=R=new Int8Array(e),c.HEAP16=N=new Int16Array(e),c.HEAP32=x=new Int32Array(e),c.HEAPU8=P=new Uint8Array(e),c.HEAPU16=new Uint16Array(e),c.HEAPU32=new Uint32Array(e),c.HEAPF32=D=new Float32Array(e),c.HEAPF64=M=new Float64Array(e)}var F,G=c.INITIAL_MEMORY||16777216;(w=c.wasmMemory?c.wasmMemory:new B.Memory({initial:G/65536,maximum:32768}))&&(Q=w.buffer),G=Q.byteLength,J(Q);var L=[],q=[],Y=[],V=[];function W(){if(c.preRun)for("function"==typeof c.preRun&&(c.preRun=[c.preRun]);c.preRun.length;)X(c.preRun.shift());ve(L)}function K(){ve(q)}function Z(){ve(Y)}function z(){if(c.postRun)for("function"==typeof c.postRun&&(c.postRun=[c.postRun]);c.postRun.length;)$(c.postRun.shift());ve(V)}function X(e){L.unshift(e)}function $(e){V.unshift(e)}q.push({func:function(){Te()}});var ee=0,te=null,ne=null;function re(e){ee++,c.monitorRunDependencies&&c.monitorRunDependencies(ee)}function oe(e){if(ee--,c.monitorRunDependencies&&c.monitorRunDependencies(ee),0==ee&&(null!==te&&(clearInterval(te),te=null),ne)){var t=ne;ne=null,t()}}function ie(e){throw c.onAbort&&c.onAbort(e),E(e+=""),k=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new B.RuntimeError(e)}function ae(e,t){return String.prototype.startsWith?e.startsWith(t):0===e.indexOf(t)}c.preloadedImages={},c.preloadedAudios={};var se="data:application/octet-stream;base64,";function ce(e){return ae(e,se)}var de="file://";function ue(e){return ae(e,de)}var le,Ae,fe="<<< WASM_BINARY_FILE >>>";function he(e){try{if(e==fe&&C)return new Uint8Array(C);var t=xe(e);if(t)return t;if(m)return m(e);throw"both async and sync fetching of the wasm failed"}catch(e){ie(e)}}function ge(){if(!C&&(l||A)){if("function"==typeof fetch&&!ue(fe))return fetch(fe,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+fe+"'";return e.arrayBuffer()})).catch((function(){return he(fe)}));if(p)return new Promise((function(e,t){p(fe,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return he(fe)}))}function pe(){var e={a:Me};function t(e,t){var n=e.exports;c.asm=n,F=c.asm.h,oe()}function n(e){t(e.instance)}function r(t){return ge().then((function(t){return B.instantiate(t,e)})).then(t,(function(e){E("failed to asynchronously prepare wasm: "+e),ie(e)}))}if(re(),c.instantiateWasm)try{return c.instantiateWasm(e,t)}catch(e){return E("Module.instantiateWasm callback failed with error: "+e),!1}return C||"function"!=typeof B.instantiateStreaming||ce(fe)||ue(fe)||"function"!=typeof fetch?r(n):fetch(fe,{credentials:"same-origin"}).then((function(t){return B.instantiateStreaming(t,e).then(n,(function(e){return E("wasm streaming compile failed: "+e),E("falling back to ArrayBuffer instantiation"),r(n)}))})),{}}ce(fe)||(fe=I(fe));var me={1024:function(){return c.getRandomValue()},1062:function(){if(void 0===c.getRandomValue)try{var e="object"==typeof window?window:self,t=void 0!==e.crypto?e.crypto:e.msCrypto,r=function(){var e=new Uint32Array(1);return t.getRandomValues(e),e[0]>>>0};r(),c.getRandomValue=r}catch(e){try{var o=n(8010),i=function(){var e=o.randomBytes(4);return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0};i(),c.getRandomValue=i}catch(e){throw"No secure random number generator found"}}}};function ve(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?F.get(n)():F.get(n)(t.arg):n(void 0===t.arg?null:t.arg)}else t(c)}}function ye(e,t,n,r){ie("Assertion failed: "+H(e)+", at: "+[t?H(t):"unknown filename",n,r?H(r):"unknown function"])}function be(){ie()}function Ie(e,t,n){var r=Oe(t,n);return me[e].apply(null,r)}function Ce(e,t,n){P.copyWithin(e,t,t+n)}function Ee(){return P.length}function we(e){try{return w.grow(e-Q.byteLength+65535>>>16),J(w.buffer),1}catch(e){}}function Be(e){e>>>=0;var t=Ee(),n=2147483648;if(e>n)return!1;for(var r=1;r<=4;r*=2){var o=t*(1+.2/r);if(o=Math.min(o,e+100663296),we(Math.min(n,j(Math.max(16777216,e,o),65536))))return!0}return!1}function _e(e){return x[Ue()>>2]=e,e}function Se(e){switch(e){case 30:case 75:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return _e(28),-1}var ke=[];function Oe(e,t){var n;for(ke.length=0,t>>=2;n=P[e++];){var r=n<105;r&&1&t&&t++,ke.push(r?M[t++>>1]:x[t]),++t}return ke}var Qe=!1;function Re(e){for(var t=[],n=0;n255&&(Qe&&O(!1,"Character code "+r+" ("+String.fromCharCode(r)+") at offset "+n+" not in 0x00-0xFF."),r&=255),t.push(String.fromCharCode(r))}return t.join("")}var Pe="function"==typeof atob?atob:function(e){var t,n,r,o,i,a,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",d=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=s.indexOf(e.charAt(d++))<<2|(o=s.indexOf(e.charAt(d++)))>>4,n=(15&o)<<4|(i=s.indexOf(e.charAt(d++)))>>2,r=(3&i)<<6|(a=s.indexOf(e.charAt(d++))),c+=String.fromCharCode(t),64!==i&&(c+=String.fromCharCode(n)),64!==a&&(c+=String.fromCharCode(r))}while(d0||(W(),ee>0||(c.setStatus?(c.setStatus("Running..."),setTimeout((function(){setTimeout((function(){c.setStatus("")}),1),t()}),1)):t()))}if(c._malloc=function(){return(c._malloc=c.asm.Bc).apply(null,arguments)},c._free=function(){return(c._free=c.asm.Cc).apply(null,arguments)},c.setValue=_,c.getValue=S,c.UTF8ToString=H,ne=function e(){De||He(),De||(ne=e)},c.run=He,c.preInit)for("function"==typeof c.preInit&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();He()}))};var o,c=void 0!==c?c:{},d={};for(o in c)c.hasOwnProperty(o)&&(d[o]=c[o]);var u=[],l=!1,A=!1,f=!1,h=!1;l="object"==typeof window,A="function"==typeof importScripts,f="object"==typeof i&&"object"==typeof i.versions&&"string"==typeof i.versions.node,h=!l&&!f&&!A;var g,p,m,v,y,b="";function I(e){return c.locateFile?c.locateFile(e,b):b+e}f?(b=A?n(6470).dirname(b)+"/":"//",g=function(e,t){var r=Pe(e);return r?t?r:r.toString():(v||(v=n(5992)),y||(y=n(6470)),e=y.normalize(e),v.readFileSync(e,t?null:"utf8"))},m=function(e){var t=g(e,!0);return t.buffer||(t=new Uint8Array(t)),k(t.buffer),t},i.argv.length>1&&i.argv[1].replace(/\\/g,"/"),u=i.argv.slice(2),e.exports=c,c.inspect=function(){return"[Emscripten Module object]"}):h?("undefined"!=typeof read&&(g=function(e){var t=Pe(e);return t?Oe(t):read(e)}),m=function(e){var t;return(t=Pe(e))?t:"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(k("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?u=scriptArgs:void 0!==arguments&&(u=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(l||A)&&(A?b=self.location.href:"undefined"!=typeof document&&document.currentScript&&(b=document.currentScript.src),b=0!==b.indexOf("blob:")?b.substr(0,b.lastIndexOf("/")+1):"",g=function(e){try{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText}catch(t){var n=Pe(e);if(n)return Oe(n);throw t}},A&&(m=function(e){try{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}catch(t){var n=Pe(e);if(n)return n;throw t}}),p=function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)t(r.response);else{var o=Pe(e);o?t(o.buffer):n()}},r.onerror=n,r.send(null)}),c.print;var C,E,w=c.printErr||void 0;for(o in d)d.hasOwnProperty(o)&&(c[o]=d[o]);function B(e,t,n,r){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":Q[e>>0]=t;break;case"i16":P[e>>1]=t;break;case"i32":N[e>>2]=t;break;case"i64":ue=[t>>>0,(de=t,+Math.abs(de)>=1?de>0?(0|Math.min(+Math.floor(de/4294967296),4294967295))>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],N[e>>2]=ue[0],N[e+4>>2]=ue[1];break;case"float":x[e>>2]=t;break;case"double":D[e>>3]=t;break;default:re("invalid type for setValue: "+n)}}function _(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return Q[e>>0];case"i16":return P[e>>1];case"i32":case"i64":return N[e>>2];case"float":return x[e>>2];case"double":return D[e>>3];default:re("invalid type for getValue: "+t)}return null}d=null,c.arguments&&(u=c.arguments),c.thisProgram&&c.thisProgram,c.quit&&c.quit,c.wasmBinary&&(C=c.wasmBinary),c.noExitRuntime&&c.noExitRuntime,"object"!=typeof WebAssembly&&re("no native wasm support detected");var S=!1;function k(e,t){e||re("Assertion failed: "+t)}var O,Q,R,P,N,x,D,M="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function T(e,t,n){for(var r=t+n,o=t;e[o]&&!(o>=r);)++o;if(o-t>16&&e.subarray&&M)return M.decode(e.subarray(t,o));for(var i="";t>10,56320|1023&d)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function U(e,t){return e?T(R,e,t):""}function H(e,t){return e%t>0&&(e+=t-e%t),e}function j(e){O=e,c.HEAP8=Q=new Int8Array(e),c.HEAP16=P=new Int16Array(e),c.HEAP32=N=new Int32Array(e),c.HEAPU8=R=new Uint8Array(e),c.HEAPU16=new Uint16Array(e),c.HEAPU32=new Uint32Array(e),c.HEAPF32=x=new Float32Array(e),c.HEAPF64=D=new Float64Array(e)}c.INITIAL_MEMORY;var J,F=[],G=[],L=[],q=[];function Y(){if(c.preRun)for("function"==typeof c.preRun&&(c.preRun=[c.preRun]);c.preRun.length;)Z(c.preRun.shift());pe(F)}function V(){pe(G)}function W(){pe(L)}function K(){if(c.postRun)for("function"==typeof c.postRun&&(c.postRun=[c.postRun]);c.postRun.length;)z(c.postRun.shift());pe(q)}function Z(e){F.unshift(e)}function z(e){q.unshift(e)}G.push({func:function(){De()}});var X=0,$=null,ee=null;function te(e){X++,c.monitorRunDependencies&&c.monitorRunDependencies(X)}function ne(e){if(X--,c.monitorRunDependencies&&c.monitorRunDependencies(X),0==X&&(null!==$&&(clearInterval($),$=null),ee)){var t=ee;ee=null,t()}}function re(e){throw c.onAbort&&c.onAbort(e),w(e+=""),S=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}function oe(e,t){return String.prototype.startsWith?e.startsWith(t):0===e.indexOf(t)}c.preloadedImages={},c.preloadedAudios={};var ie="data:application/octet-stream;base64,";function ae(e){return oe(e,ie)}var se="file://";function ce(e){return oe(e,se)}var de,ue,le="data:application/octet-stream;base64,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CiASfnwgCSALfnwiEUKAgIAQfCIUQhqHfCIiQoCAgAh8IiNCGYd8IhkgGUKAgIAQfCIZQoCAgOAPg30+AgggACASIBh+IA0gDn58IAkgEH58IAwgHH58IAsgF358IBNCGod8IhMgE0KAgIAIfCITQoCAgPAPg30+AhwgACAMIBp+IAkgFX58IBAgFn58IAogD358IAsgDX58IBlCGod8IgogCkKAgIAIfCIKQoCAgPAPg30+AgwgACAQIBJ+IA0gDX58IA4gD358IAkgG358IAwgF358IAsgA6wiDX58IBNCGYd8IgsgC0KAgIAQfCILQoCAgOAPg30+AiAgACAgICFCgICA8A+DfSAeIB9CgICAYIN9IApCGYd8IgpCgICAEHwiD0IaiHw+AhQgACAKIA9CgICA4A+DfT4CECAAIA4gEH4gGCAdfnwgEiAcfnwgCSAXfnwgDCANfnwgC0Iah3wiCSAJQoCAgAh8IglCgICA8A+DfT4CJCAAICIgI0KAgIDwD4N9IBEgFEKAgIBgg30gCUIZh0ITfnwiCUKAgIAQfCIMQhqIfD4CBCAAIAkgDEKAgIDgD4N9PgIACxAAIAAzAAAgADEAAkIQhoQL8wICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACwkAIAAgATcAAAuCBAEDfyACQYAETwRAIAAgASACEAQaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvsAQESfyACKAIEIQMgASgCBCEEIAIoAgghBSABKAIIIQYgAigCDCEHIAEoAgwhCCACKAIQIQkgASgCECEKIAIoAhQhCyABKAIUIQwgAigCGCENIAEoAhghDiACKAIcIQ8gASgCHCEQIAIoAiAhESABKAIgIRIgAigCJCETIAEoAiQhFCAAIAIoAgAgASgCAGo2AgAgACATIBRqNgIkIAAgESASajYCICAAIA8gEGo2AhwgACANIA5qNgIYIAAgCyAMajYCFCAAIAkgCmo2AhAgACAHIAhqNgIMIAAgBSAGajYCCCAAIAMgBGo2AgQLGAEBf0HEnAIoAgAiAARAIAARDgALEAIAC0ABA38gACABIAFB+ABqIgIQCyAAQShqIAFBKGoiAyABQdAAaiIEEAsgAEHQAGogBCACEAsgAEH4AGogASADEAsL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREg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czYCFCABIAUgEHM2AhAgASAEIA9zNgIMIAEgAyANczYCCCABIAAgC3M2AgQgASAWIBdzNgIACykBAX8jAEGAAWsiAiQAIAJBCGogARDoAiAAIAJBCGoQOSACQYABaiQACzIBAX8gACABIAFB+ABqIgIQCyAAQShqIAFBKGogAUHQAGoiARALIABB0ABqIAEgAhALC68CARN/IAEoAgQhDCAAKAIEIQMgASgCCCENIAAoAgghBCABKAIMIQ4gACgCDCEFIAEoAhAhDyAAKAIQIQYgASgCFCEQIAAoAhQhByABKAIYIREgACgCGCEIIAEoAhwhEiAAKAIcIQkgASgCICETIAAoAiAhCiABKAIkIRQgACgCJCELIABBACACayICIAAoAgAiFSABKAIAc3EgFXM2AgAgACALIAsgFHMgAnFzNgIkIAAgCiAKIBNzIAJxczYCICAAIAkgCSAScyACcXM2AhwgACAIIAggEXMgAnFzNgIYIAAgByAHIBBzIAJxczYCFCAAIAYgBiAPcyACcXM2AhAgACAFIAUgDnMgAnFzNgIMIAAgBCAEIA1zIAJxczYCCCAAIAMgAyAMcyACcXM2AgQLJAEBfyMAQSBrIgEkACABIAAQLSABQSAQZSEAIAFBIGokACAAC6YEAgp/Dn4gACgCJCEEIAAoAiAhBSAAKAIcIQYgACgCGCEHIAAoAhQhAyACQhBaBEAgAC0AUEVBGHQhCCAAKAIEIglBBWytIRkgACgCCCIKQQVsrSEXIAAoAgwiC0EFbK0hFSAAKAIQIgxBBWytIRMgDK0hGiALrSEYIAqtIRYgCa0hFCAANQIAIRIDQCABKAADQQJ2Qf///x9xIAdqrSINIBh+IAEoAABB////H3EgA2qtIg4gGn58IAEoAAZBBHZB////H3EgBmqtIg8gFn58IAEoAAlBBnYgBWqtIhAgFH58IAQgCGogASgADEEIdmqtIhEgEn58IA0gFn4gDiAYfnwgDyAUfnwgECASfnwgESATfnwgDSAUfiAOIBZ+fCAPIBJ+fCAQIBN+fCARIBV+fCANIBJ+IA4gFH58IA8gE358IBAgFX58IBEgF358IA0gE34gDiASfnwgDyAVfnwgECAXfnwgESAZfnwiDUIaiEL/////D4N8Ig5CGohC/////w+DfCIPQhqIQv////8Pg3wiEEIaiEL/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aiAFIAYQDCAJQQhqIAYQESAJQdAAaiAJQQhqQggQDCAAIAMgBCAHIAgQogEgCUHQAGogACAEEAwgCUEIaiAEEBEgCUHQAGogCUEIakIIEAwgCUHQAGogARAjIAlB0ABqQYACEAkgAgRAIAJCEDcDAAsgCUHQAmokAEEACygAIAJCgICAgBBaBEAQFAALIAAgASACIANCASAEQfCXAigCABEVABoLFgAgAELAACABIAJB6JcCKAIAEREAGgsyACAAIAIEfyACKAAABUEACzYCMCAAIAEoAAA2AjQgACABKAAENgI4IAAgASgACDYCPAs9ACAAAn8gAgRAIAAgAigAADYCMCACKAAEDAELIABBADYCMEEACzYCNCAAIAEoAAA2AjggACABKAAENgI8CxkAIAAgASACIANCASAEQeSXAigCABEVABoLKAEBfyMAQRBrIgAkACAAQQA6AA9BpgggAEEPakEAEAEaIABBEGokAAtqAQN/IwBBEGsiAyQAIANBADoAD0F/IQUgACABIAJB2JcCKAIAEQMARQRAA0AgAyAAIARqLQAAIAMtAA9yOgAPIARBAWoiBEEgRw0AC0EAIAMtAA9BAWtBCHZBAXFrIQULIANBEGokACAFCxMAIAAgAUHAB2xBoBtqIAIQ5gILEAAgAEIANwIAIABCADcCCAsdACAAEDggAEEoahAdIABB0ABqEB0gAEH4AGoQOAuAAgEIfwNAIAAgAmogASACQQN2ai0AACACQQdxdkEBcToAACACQQFqIgJBgAJHDQALA0AgBCIBQQFqIQQCQCAAIAFqIgYtAABFDQAgBCECQQEhBSABQf4BSw0AA0ACQCAAIAJqIgMsAAAiB0UNACAHIAV0IgcgBiwAACIIaiIJQQ9MBEAgBiAJOgAAIANBADoAAAwBCyAIIAdrIgNBcUgNAiAGIAM6AAADQCAAIAJqIgMtAABFBEAgA0EBOgAADAILIANBADoAACACQf8BSSEDIAJBAWohAiADDQALCyAFQQVLDQEgBUEBaiIFIAFqIgJBgAJJDQALCyAEQYACRw0ACwuVAQEEfyMAQTBrIgUkACAAIAFBKGoiAyABEBMgAEEoaiIEIAMgARAWIABB0ABqIgMgACACQShqEAsgBCAEIAIQCyAAQfgAaiIGIAJB+ABqIAFB+ABqEAsgACABQdAAaiACQdAA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CSACQYAIaiQAC/ADAQJ/IwAiAyEEIANBwANrQUBxIgMkACAARSABRXJFBEAgA0FAa0EAQQBBwAAQPhogA0E8aiABKAIwEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIEEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIsEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIoEAogA0FAayADQTxqQgQQGBogA0E8akETEAogA0FAayADQTxqQgQQGBogA0E8aiACEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIMEAogA0FAayADQTxqQgQQGBoCQCABKAIIIgJFDQAgA0FAayACIAE1AgwQGBogAS0AOEEBcUUNACABKAIIIAEoAgwQCSABQQA2AgwLIANBPGogASgCFBAKIANBQGsgA0E8akIEEBgaIAEoAhAiAgRAIANBQGsgAiABNQIUEBgaCyADQTxqIAEoAhwQCiADQUBrIANBPGpCBBAYGgJAIAEoAhgiAkUNACADQUBrIAIgATUCHBAYGiABLQA4QQJxRQ0AIAEoAhggASgCHBAJIAFBADYCHAsgA0E8aiABKAIkEAogA0FAayADQTxqQgQQGBogASgCICICBEAgA0FAayACIAE1AiQQGBoLIANBQGsgAEHAABA9GgsgBCQAC68BAQN/IwBBEGsiAiQAQWohAwJAIABFIAFFcg0AIAFBCnQiBCABbkGACEcNACAAQQwQICIBNgIAIAFFDQAgAUIANwIAQYCYAiACQQxqIAQQsgEiATYCAAJAAkAgAQRAIAJBADYCDAwBCyACKAIMIgENAQsgACgCABAZIABBADYCAAwBCyAAKAIAIAE2AgAgACgCACABNgIEIAAoAgAgBDYCCEEAIQMLIAJBEGokACADC4cBAQJ/IwBB0ABrIgMkAEFnIQICQCAARSABRXINACAAIAAoAhRBA3QQICICNgIEIAJFBEBBaiECDAELIAAgACgCEBC8ASICBEAgACABKAI4EIMBDAELIAMgASAAKAIkELsBIANBQGtBCBAJIAMgABC6ASADQcgAEAlBACECCyADQdAAaiQAIAILkwEBBH8jAEEgayICJAACQCAARQ0AIAAoAhxFDQAgAiABNgIQQQEhBANAIAIgAzoAGEEAIQFBACEFIAQEQANAIAJBADYCHCACIAIpAxg3AwggAiABNgIUIAIgAikDEDcDACAAIAIQxQEgAUEBaiIBIAAoAhwiBUkNAAsLIAUhBCADQQFqIgNBBEcNAAsLIAJBIGokAAs5AAJAIAFFDQAgACgCACIBBEAgASgCBCAAKAIQQQp0EAkLIAAoAgQiAUUNACABIAAoAhRBA3QQCQsLKAECfwNAIAAgAkEDdCIDaiABIANqKQMAEBEgAkEBaiICQYABRw0ACwu8AQEDfyMAQYAQayICJAAgAEUgAUVyRQRAIAJBgAhqIAEoAgAoAgQgASgCGEEKdGpBgAhrECogASgCHEECTwRAQQEhAwNAIAJBgAhqIAEoAgAoAgQgASgCGCIEIAMgBGxqQQp0akGACGsQLiADQQFqIgMgASgCHEkNAAsLIAIgAkGACGoQwAEgACgCACAAKAIEIAJBgAgQViACQYAIakGACBAJIAJBgAgQCSABIAAoAjgQgwELIAJBgBBqJAALjQ0CEX8QfiMAQYAQayIDJAAgA0GACGogARAqIANBgAhqIAAQLiADIANBgAhqECpBACEBA0AgA0GACGogBEEHdCIAQcAAcmoiBSkDACADQYAIaiAAQeAAcmoiBikDACADQYAIaiAAaiIHKQMAIANBgAhqIABBIHJqIggpAwAiGBAHIhSFQSAQBiIVEAciFiAYhUEYEAYhGCAYIBYgFSAUIBgQByIXhUEQEAYiGhAHIiGFQT8QBiEYIANBgAhqIABByAByaiIJKQMAIANBgAhqIABB6AByaiIKKQMAIANBgAhqIABBCHJqIgspAwAgA0GACGogAEEocmoiDCkDACIUEAciFYVBIBAGIhYQByIbIBSFQRgQBiEUIBQgGyAWIBUgFBAHIhuFQRAQBiIiEAciI4VBPxAGIRQgA0GACGogAEHQAHJqIg0pAwAgA0GACGogAEHwAHJqIg4pAwAgA0GACGogAEEQcmoiDykDACADQYAIaiAAQTByaiIQKQMAIhUQByIWhUEgEAYiHBAHIh0gFYVBGBAGIRUgFSAdIBwgFiAVEAciHYVBEBAGIhwQByIehUE/EAYhFSADQYAIaiAAQdgAcmoiESkDACADQYAIaiAAQfgAcmoiEikDACADQYAIaiAAQRhyaiITKQMAIANBgAhqIABBOHJqIgApAwAiFhAHIh+FQSAQBiIZEAciICAWhUEYEAYhFiAWICAgGSAfIBYQByIfhUEQEAYiGRAHIiCFQT8QBiEWIAcgFyAUEAciFyAUIB4gFyAZhUEgEAYiFxAHIh6FQRgQBiIUEAciGTcDACASIBcgGYVBEBAGIhc3AwAgDSAeIBcQByIXNwMAIAwgFCAXhUE/EAY3AwAgCyAbIBUQByIUIBUgICAUIBqFQSAQBiIUEAciF4VBGBAGIhUQByIaNwMAIAYgFCAahUEQEAYiFDcDACARIBcgFBAHIhQ3AwAgECAUIBWFQT8QBjcDACAPIB0gFhAHIhQgFiAhIBQgIoVBIBAGIhQQByIVhUEYEAYiFhAHIhc3AwAgCiAUIBeFQRAQBiIUNwMAIAUgFSAUEAciFDcDACAAIBQgFoVBPxAGNwMAIBMgHyAYEAciFCAYICMgFCAchUEgEAYiFBAHIhWFQRgQBiIYEAciFjcDACAOIBQgFoVBEBAGIhQ3AwAgCSAVIBQQByIUNwMAIAggFCAYhUE/EAY3AwAgBEEBaiIEQQhHDQALA0AgAUEEdCIEIANBgAhqaiIAIgVBgARqKQMAIAApA4AGIAApAwAgACkDgAIiGBAHIhSFQSAQBiIVEAciFiAYhUEYEAYhGCAYIBYgFSAUIBgQByIXhUEQEAYiGhAHIiGFQT8QBiEYIAApA4gEIAApA4gGIANBgAhqIARBCHJqIgQpAwAgACkDiAIiFBAHIhWFQSAQBiIWEAciGyAUhUEYEAYhFCAUIBsgFiAVIBQQByIbhUEQEAYiIhAHIiOFQT8QBiEUIAApA4AFIAApA4AHIAApA4ABIAApA4ADIhUQByIWhUEgEAYiHBAHIh0gFYVBGBAGIRUgFSAdIBwgFiAVEAciHYVBEBAGIhwQByIehUE/EAYhFSAAKQOIBSAAKQOIByAAKQOIASAAKQOIAyIWEAciH4VBIBAGIhkQByIgIBaFQRgQBiEWIBYgICAZIB8gFhAHIh+FQRAQBiIZEAciIIVBPxAGIRYgACAXIBQQByIXIBQgHiAXIBmFQSAQBiIXEAciHoVBGBAGIhQQByIZNwMAIAAgFyAZhUEQEAYiFzcDiAcgACAeIBcQByIXNwOABSAAIBQgF4VBPxAGNwOIAiAEIBsgFRAHIhQgFSAgIBQgGoVBIBAGIhQQByIXhUEYEAYiFRAHIho3AwAgACAUIBqFQRAQBiIUNwOABiAAIBcgFBAHIhQ3A4gFIAAgFCAVhUE/EAY3A4ADIAAgHSAWEAciFCAWICEgFCAihUEgEAYiFBAHIhWFQRgQBiIWEAciFzcDgAEgACAUIBeFQRAQBiIUNwOIBiAFIBUgFBAHIhQ3A4AEIAAgFCAWhUE/EAY3A4gDIAAgHyAYEAciFCAYICMgFCAchUEgEAYiFBAHIhWFQRgQBiIYEAciFjcDiAEgACAUIBaFQRAQBiIUNwOAByAAIBUgFBAHIhQ3A4gEIAAgFCAYhUE/EAY3A4ACIAFBAWoiAUEIRw0ACyACIAMQKiACIANBgAhqEC4gA0GAEGokAAvMAQICfwF+An4gASgCAEUEQCABLQAIIgRFBEAgASgCDEEBayEDQgAMAgsgACgCFCAEbCEEIAEoAgwhASADBEAgASAEakEBayEDQgAMAgsgBCABRWshA0IADAELIAAoAhQhBCAAKAIYIQUCfyADBEAgASgCDCAFIARBf3NqagwBCyAFIARrIAEoAgxFawshA0IAIAEtAAgiAUEDRg0AGiAEIAFBAWpsrQshBiAGIANBAWutfCADrSACrSIGIAZ+QiCIfkIgiH0gADUCGIKnC/MBAQJ/IwBBgCBrIgMkACADQYAYahA8IANBgBBqEDwCQCAARSABRXINACADIAE1AgA3A4AQIAMgATUCBDcDiBAgAyABMQAINwOQECADIAA1AhA3A5gQIAMgADUCCDcDoBAgAyAANQIkNwOoECAAKAIURQ0AQQAhAQNAIAFB/wBxIgRFBEAgAyADKQOwEEIBfDcDsBAgAxA8IANBgAhqEDwgA0GAGGogA0GAEGogAxBVIANBgBhqIAMgA0GACGoQVQsgAiABQQN0aiADQYAIaiAEQQN0aikDADcDACABQQFqIgEgACgCFEkNAAsLIANBgCBqJAALjgMCC38CfgJAIABFDQACfwJAIAAoAiRBAkcNACABKAIAIgJFBEAgAS0ACEECSQ0BCyAAKAIEIQlBAQwBCyAAIAEgACgCBCIJEMQBIAEoAgAhAkEACyEKIAIgAS0ACCIDckVBAXQiBiAAKAIUIgJPDQBBfyAAKAIYIgRBAWsgBiAEIAEoAgRsaiACIANsaiICIARwGyACaiEDA0AgAkEBayADIAIgBHBBAUYbIQMCfyAKRQRAIAAoAgAhByAJIAZBA3RqDAELIAAoAgAiBygCBCADQQp0agsiBSgCBCEIIAUoAgAhCyAAKAIcIQwgASAGNgIMIAcoAgQiBSAEIAggDHCtIg0gDSABNQIEIg0gAS0ACBsgASgCACIIGyIOp2xBCnRqIAAgASALIA0gDlEQwwFBCnRqIQQgBSADQQp0aiEHIAUgAkEKdGohBQJAIAgEQCAHIAQgBRBVDAELIAcgBCAFEMIBCyAGQQFqIgYgACgCFE8NASACQQFqIQIgA0EBaiEDIAAoAhghBAwACwALC1kBAn8jACIFIQYgBUGAA2tBQHEiBSQAIAFFIABFIAJBAWtB/wFxQcAAT3JyRQRAIAUgAiABIAMgBBDIASAFQQBCABAyGiAFIAAgAhBYGiAGJABBAA8LEBQAC4ABAQJ/IwAiBiEHIAZBgANrQUBxIgYkACAARSADQQFrQf8BcUHAAE9yQQAgAUUgBFAbciAFQcEATyACRUEAIAUbcnJFBEACQCAFBEAgBiADIAIgBRCEARoMAQsgBiADEIUBGgsgBiABIAQQMhogBiAAIAMQWBogByQAQQAPCxAUAAvqAQEBfyMAQcABayIFJAAgAkUgAUEBa0H/AXFBwABPckUEQCAFQYECOwGCASAFQSA6AIEBIAUgAToAgAEgBUGAAWpBBHIQWiAFQYABakEIckIAEBEgBUIANwOYASAFQgA3A5ABAkAgAwRAIAVBgAFqIAMQ4AEMAQsgBUIANwOoASAFQgA3A6ABCwJAIAQEQCAFQYABaiAEENUBDAELIAVCADcDuAEgBUIANwOwAQsgACAFQYABahBbIAVBIGpBAEHgABAQGiAAIAUgAkEgEBIiAEKAARAyGiAAQYABEAkgAEHAAWokAA8LEBQACxEAIAAgAa0gAq1CIIaEEL0CCxIAIAAgASACrSADrUIghoQQHAsVACAAIAEgAq0gA61CIIaEIAQQhgELFwAgACABIAIgA60gBK1CIIaEIAUQiAELFwAgACABIAIgA60gBK1CIIaEIAUQhAILFwAgACABIAIgA60gBK1CIIaEIAUQhQILFQAgACABIAKtIAOtQiCGhCAEEIoCCyUAIAAgASACIAMgBCAFrSAGrUIghoQgByAIrSAJrUIghoQQjgILJQAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCRCPAgsXACAAIAEgAq0gA61CIIaEIAQgBRC6AgsYACAAIAEgAiADrSAErUIghoQgBSAGEGoLFwAgACABIAKtIAOtQiCGhCAEIAUQuwILFgAgACABKQAANwAwIAAgASkACDcAOAsYACAAIAEgAiADrSAErUIghoQgBSAGEGsLEwAgACABrSACrUIghoQgAxCSAgsTACAAIAEgAq0gA61CIIaEEJMCCyEAIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYgBxCUAgsfACAAIAEgAq0gA61CIIaEIAStIAWtQiCGhCAGEIwBCy0AIAAgAa0gAq1CIIaEIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChCVAgsXACAAIAEgAq0gA61CIIaEIAQgBRCzAgsSACAAIAEgAq0gA61CIIaEEDQLEgAgACABIAKtIAOtQiCGhBAlCxkAIAAgASACIAOtIAStQiCGhCAFIAYQlAELFgAgACABKQAANwAgIAAgASkACDcAKAsXACAAIAEgAq0gA61CIIaEIAQgBRC1AgsVACAAIAEgAq0gA61CIIaEIAQQtgILGQAgACABIAKtIAOtQiCGhCAEIAUgBhCVAQsXACAAIAEgAq0gA61CIIaEIAQgBRC4AgsbACAAIAEgAiADrSAErUIghoQgBSAGIAcQlgELGAAgACABIAIgA60gBK1CIIaEIAUgBhBoCxkAIAAgASACrSADrUIghoQgBCAFIAYQlwELFwAgACABIAKtIAOtQiCGhCAEIAUQuQILGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJgBCxgAIAAgASACIAOtIAStQiCGhCAFIAYQaQsVACAAIAEgAq0gA61CIIaEIAQQwAILFQAgACABIAKtIAOtQiCGhCAEEJoBCyUAIAAgASADIAStIAWtQiCGhCAGIAetIAitQiCGhCAJIAoQyQILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCcAQslACAAIAEgAiADrSAErUIghoQgBSAGrSAHrUIghoQgCSAKEMsCCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxCdAQslACAAIAEgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCSAKEM8CCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQngELJQAgACABIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChDQAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEJ8BCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0QILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKABCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0gILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKEBCwQAQQoLBgBBspcCCwsAIAAgASACEIICCw0AIAAgASACIAMQgwILCAAgABA1QQALCQAgACABEIgCCwsAIAAgASACEIoBCwUAQb9/CwUAQdABCywBAX8jAEFAaiIDJAAgACADECcgASADQsAAIAJBARCHASEAIANBQGskACAACy4BAX8jAEFAaiIEJAAgACAEECcgASACIARCwAAgA0EBEIkBIQAgBEFAayQAIAALewEBfwJAAkACQCADQsAAVA0AIANCQHwiA0K/////D1YNACACIAJBQGsiBSADIAQQhgFFDQEgAEUNACAAQQAgA6cQEBoLQX8hAiABRQ0BIAFCADcDAEF/DwsgAQRAIAEgAzcDAAtBACECIABFDQAgACAFIAOnEEcaCyACC3MBAX8jAEEQayIFJAAgACAFQQhqIABBQGsgAiADpyICEEcgAyAEEIgBGgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQEBpBfyEADAELQQAhACABRQ0AIAEgA0JAfTcDAAsgBUEQaiQAIAALbQEBfyMAQUBqIgIkACACIAFCIBA0GiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQCSACQUBrJABBAAuGAQECfyMAQYACayICJABBfyEDAkAgARB1DQAgAkHgAGogARCuAQ0AIAJB4ABqEOUCRQ0AIAIQHSACIAIgAkGIAWoiARAWIAJBMGoQHSACQTBqIAJBMGogARATIAIgAhA6IAJBMGogAkEwaiACEAsgACACQTBqEC1BACEDCyACQYACaiQAIAMLLAEBfyMAQSBrIgIkACACQSAQHyAAIAEg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ASACQhB9IAMgBBBqBSAFCwslACACQvD///8PWgRAEBQACyAAQRBqIAAgASACIAMgBBBrGkEACwsAIAAgASACEL8CCy8AIAFCgICAgBBaBEBBACIAQYQOaiAAQZgOakHFASAAQbIOahAAAAsgACABpxAfCzMBAn8jAEEgayIDJABBfyEEIAMgAiABEKgBRQRAIABB4JUCIAMQbSEECyADQSBqJAAgBAtWAQF/IwBBQGoiAyQAIAMgAkIgEDQaIAEgAykDGDcAGCABIAMpAxA3ABAgASADKQMINwAIIAEgAykDADcAACADQcAAEAkgACABEHIhACADQUBrJAAgAAtAAQF/IwBBIGsiBCQAIAQgASACIAMQmgEaIAAgBBCAASEBIAQgAEEgEEUhAyAEQSBqJAAgA0F/IAEgACAERhtyC0MBAX8jAEFAaiICJAAgACACEMICIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACACQUBrJAALNwEBfyMAQUBqIgIkACAAIAIQJyAAQdABaiIAIAJCwAAQHBogACABECcgAkHAABAJIAJBQGskAAvhAQEDfyMAQcABayICJAAgABA1IAJBQGtBNkGAARAQGiACIAEtAABBNnM6AEBBASEDA0AgAkFAayADaiIEIAQtAAAgASADai0AAHM6AAAgA0EBaiIDQSBHDQALIAAgAkFAa0KAARAcGiAAQdABaiIAEDUgAkFAa0HcAEGAARAQGiACIAEtAABB3ABzOgBAQQEhAwNAIAJBQGsgA2oiBCAELQAAIAEgA2otAABzOgAAIANBAWoiA0EgRw0ACyAAIAJBQGtCgAEQHBogAkFAa0GAARAJIAJBwAAQCSACQcABaiQAC2YBAX4gACkAACIBQjiGIAFCKIZCgICAgICAwP8Ag4QgAUIYhkKAgICAgOA/gyABQgiGQoCAgIDwH4OEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhAsmAQJ/AkBBpJwCKAIAIgBFDQAgACgCFCIARQ0AIAARAQAhAQsgAQtkACAAIAFCKIZCgICAgICAwP8AgyABQjiGhCABQhiGQoCAgICA4D+DIAFCCIZCgICAgPAfg4SEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4D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BiADakENEAggDXMiDSAGakESEAggBXMhBSAaQRJJIRAgGkECaiEaIBANAAsgACACQeXwwYsGahAKIABBBGogByASahAKIABBCGogCCATahAKIABBDGogESAUahAKIABBEGogCSAVahAKIABBFGogDkHuyIGZA2oQCiAAQRhqIAogG2oQCiAAQRxqIAsgHGoQCiAAQSBqIAwgHWoQCiAAQSRqIA8gHmoQCiAAQShqIAFBstqIywdqEAogAEEsaiAEIBZqEAogAEEwaiADIBdqEAogAEE0aiAGIBhqEAogAEE4aiANIBlqEAogAEE8aiAFQfTKgdkGahAKCzoBAX8jAEHgAGsiAyQAIANBMGogAiABEBMgAyACIAEQFiADIAMQOiAAIANBMGogAxALIANB4ABqJAALdgECfyMAQdABayICJAADQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyACQTBqIAAQdiACIAJB2ABqIAJBgAFqENwCIAAgAhAtIAJB0AFqJABBAAu9AwEMfiABNAIEIQIgATQCCCEDIAE0AgwhBCABNAIQIQUgATQCFCEGIAE0AhghByABNAIAIQsgACABNAIkQsK2B34iCCAIQoCAgAh8IghCgICA8A+DfSABNAIgQsK2B34gATQCHELCtgd+IglCgICACHwiCkIZh3wiDEKAgIAQfCINQhqIfD4CJCAAIAwgDUKAgIDgD4N9PgIgIAAgCSAKQoCAgPAPg30gB0LCtgd+IAZCwrYHfiIGQoCAgAh8IgdCGYd8IglCgICAEHwiCkIaiHw+AhwgACAJIApCgICA4A+DfT4CGCAAIAYgB0KAgIDwD4N9IAVCwrYHfiAEQsK2B34iBEKAgIAIfCIFQhmHfCIGQoCAgBB8IgdCGoh8PgIUIAAgBiAHQoCAgOAPg30+AhAgACAEIAVCgICA8A+DfSADQsK2B34gAkLCtgd+IgJCgICACHwiA0IZh3wiBEKAgIAQfCIFQhqIfD4CDCAAIAQgBUKAgIDgD4N9PgIIIAAgAiADQoCAgPAPg30gCEIZh0ITfiALQsK2B358IgJCgICAEHwiA0IaiHw+AgQgACACIANCgICA4A+DfT4CAAvcAQEFfyMAQRBrIgNBADYACyADQQA2AggDQCAAIAJqLQAAIQRBACEBA0AgA0EIaiABaiIFIAUtAAAgAUEFdEGgjQJqIAJqLQAAIARzcjoAACABQQFqIgFBB0cNAAsgAkEBaiICQR9HDQALIAAtAB9B/wBxIQJBACEAQQAhAQNAIANBCGogAWoiBCAELQAAIAIgAUEFdEG/jQJqLQAAc3I6AAAgAUEBaiIBQQdHDQALQQAhAQNAIANBCGogAGotAABBAWsgAXIhASAAQQFqIgBBB0cNAAsgAUEIdkEBcQvcBAEDfyMAQdACayIDJABBfyEEIAIQ3wJFBEBBACEEA0AgACAEaiABIARqLQAAOgAAIARBAWoiBEEgRw0ACyAAIAAtAABB+AFxOgAAIAAgAC0AH0E/cUHAAHI6AB8gA0GgAmogAhB7IANB8AFqEB0gA0HAAWoQOCADQZABaiADQaACahAsIANB4ABqEB1B/gEhAkEAIQQDQCADQfABaiADQZABaiAAIAIiBUEDdmotAAAgAkEHcXZBAXEiASAEcyIEEE4gA0HAAWogA0HgAGogBBBOIAJBAWshAiADQTBqIANBkAFqIANB4ABqEBYgAyADQfABaiADQcABahAWIANB8AFqIANB8AFqIANBwAFqEBMgA0HAAWogA0GQAWogA0HgAGoQEyADQeAAaiADQTBqIANB8AFqEAsgA0HAAWogA0HAAWogAxALIANBMGogAxAOIAMgA0HwAWoQDiADQZABaiADQeAAaiADQcABahATIANBwAFqIANB4ABqIANBwAFqEBYgA0HwAWogAyADQTBqEAsgAyADIANBMGoQFiADQcABaiADQcABahAOIANB4ABqIAMQ3gIgA0GQAWogA0GQAWoQDiADQTBqIANBMGogA0HgAGoQEyADQeAAaiADQaACaiADQcABahALIANBwAFqIAMgA0EwahALIAEhBCAFDQALIANB8AFqIANBkAFqIAEQTiADQcABaiADQeAAaiABEE4gA0HAAWogA0HAAWoQOiADQfABaiADQfABaiADQcABahALIAAgA0HwAWoQLUEAIQQLIANB0AJqJAAgBAtUAQV/QSAhAUEBIQIDQCAAIAFBAWsiAWotAAAiBCABQYAbai0AACIFa0EIdSACcSADQf8BcXIhAyAEIAVzQf//A2pBCHYgAnEhAiABDQALIANBAEcL6B4BOn4gARAPIRIg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CiAAIAtC////AIMgBEIVh3wiBkIKiDwAESAAIAZCAog8ABAgACAEQv///wCDIgdCAYYgBUIUiIQ8AA0gACAMQv///wCDIAZCFYd8IgRCDYg8ABQgACAEQgWIPAATIAAgBkL///8AgyIFQgaGIAdCD4iEPAAPIAAgDkL///8AgyAEQhWHfCIGPAAVIAAgBEIDhiAFQhKIhDwAEiAAIAZCCIg8ABYgACAPQv///wCDIAZCFYd8IgRCC4g8ABkgACAEQgOIPAAYIAAgEEL///8AgyAEQhWHfCIFQgaIPAAbIAAgBkIQiEIfgyAEQv///wCDIgRCBYaEPAAXIAAgDUL///8AgyAFQhWHfCIGQhGIPAAfIAAgBkIJiDwAHiAAIAZCAYg8AB0gACAFQv///wCDIgVCAoYgBEITiIQ8ABogACAGQgeGIAVCDoiEPAAcC1IBA38gAC0AH0F/c0H/AHEhAUEeIQIDQCABIAAgAmotAABBf3NyIQEgAkEBayIDIQIgAw0ACyABQf8BcUEBa0HsASAALQAAa3FBCHZBf3NBAXELjAQBAn8jAEHgDWsiAiQAIAJB4ANqIAEQGyACQcACaiABEE8gAiACQcACahAVIAJBwAJqIAIgAkHgA2oQGiACQaABaiACQcACahAVIAJBgAVqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAZqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAdqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJB4AhqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBgApqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAtqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAxqIAJBoAFqEBsgABCrAUH8ASEBA0AgAkHAAmogABBPAkAgASIDQaCLAmosAAAiAUEBTgRAIAJBoAFqIAJBwAJqEBUgAkHAAmogAkGgAWogAkHgA2ogAUH+AXFBAXZBoAFsahAaDAELIAFBf0oNACACQaABaiACQcACahAVIAJBwAJqIAJBoAFqIAJB4ANqQQAgAWtB/gFx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/////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBnxsL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4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ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBnI0CCwEBAEHAjQILAQEAQeCNAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQaCPAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB8JUCC4UBYjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJABBkJcCCyhTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAMS4wLjE4AEG8lwILOVCOUAAAQAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ==";function Ae(e){try{if(e==le&&C)return new Uint8Array(C);var t=Pe(e);if(t)return t;if(m)return m(e);throw"both async and sync fetching of the wasm failed"}catch(e){re(e)}}function fe(){if(!C&&(l||A)){if("function"==typeof fetch&&!ce(le))return fetch(le,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+le+"'";return e.arrayBuffer()})).catch((function(){return Ae(le)}));if(p)return new Promise((function(e,t){p(le,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return Ae(le)}))}function he(){var e={a:xe};function t(e,t){var n=e.exports;c.asm=n,j((E=c.asm.g).buffer),J=c.asm.h,ne()}function n(e){t(e.instance)}function r(t){return fe().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){w("failed to asynchronously prepare wasm: "+e),re(e)}))}if(te(),c.instantiateWasm)try{return c.instantiateWasm(e,t)}catch(e){return w("Module.instantiateWasm callback failed with error: "+e),!1}return C||"function"!=typeof WebAssembly.instantiateStreaming||ae(le)||ce(le)||"function"!=typeof fetch?r(n):fetch(le,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(n,(function(e){return w("wasm streaming compile failed: "+e),w("falling back to ArrayBuffer instantiation"),r(n)}))})),{}}ae(le)||(le=I(le));var ge={1024:function(){return c.getRandomValue()},1062:function(){if(void 0===c.getRandomValue)try{var e="object"==typeof window?window:self,t=void 0!==e.crypto?e.crypto:e.msCrypto,r=function(){var e=new Uint32Array(1);return t.getRandomValues(e),e[0]>>>0};r(),c.getRandomValue=r}catch(e){try{var o=n(8010),i=function(){var e=o.randomBytes(4);return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0};i(),c.getRandomValue=i}catch(e){throw"No secure random number generator found"}}}};function pe(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?J.get(n)():J.get(n)(t.arg):n(void 0===t.arg?null:t.arg)}else t(c)}}function me(e,t,n,r){re("Assertion failed: "+U(e)+", at: "+[t?U(t):"unknown filename",n,r?U(r):"unknown function"])}function ve(){re()}function ye(e,t,n){var r=Se(t,n);return ge[e].apply(null,r)}function be(e,t,n){R.copyWithin(e,t,t+n)}function Ie(){return R.length}function Ce(e){try{return E.grow(e-O.byteLength+65535>>>16),j(E.buffer),1}catch(e){}}function Ee(e){e>>>=0;var t=Ie(),n=2147483648;if(e>n)return!1;for(var r=1;r<=4;r*=2){var o=t*(1+.2/r);if(o=Math.min(o,e+100663296),Ce(Math.min(n,H(Math.max(16777216,e,o),65536))))return!0}return!1}function we(e){return N[Me()>>2]=e,e}function Be(e){switch(e){case 30:case 75:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return we(28),-1}var _e=[];function Se(e,t){var n;for(_e.length=0,t>>=2;n=R[e++];){var r=n<105;r&&1&t&&t++,_e.push(r?D[t++>>1]:N[t]),++t}return _e}var ke=!1;function Oe(e){for(var t=[],n=0;n255&&(ke&&k(!1,"Character code "+r+" ("+String.fromCharCode(r)+") at offset "+n+" not in 0x00-0xFF."),r&=255),t.push(String.fromCharCode(r))}return t.join("")}var Qe="function"==typeof atob?atob:function(e){var t,n,r,o,i,a,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",d=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=s.indexOf(e.charAt(d++))<<2|(o=s.indexOf(e.charAt(d++)))>>4,n=(15&o)<<4|(i=s.indexOf(e.charAt(d++)))>>2,r=(3&i)<<6|(a=s.indexOf(e.charAt(d++))),c+=String.fromCharCode(t),64!==i&&(c+=String.fromCharCode(n)),64!==a&&(c+=String.fromCharCode(r))}while(d0||(Y(),X>0||(c.setStatus?(c.setStatus("Running..."),setTimeout((function(){setTimeout((function(){c.setStatus("")}),1),t()}),1)):t()))}if(c._malloc=function(){return(c._malloc=c.asm.Bc).apply(null,arguments)},c._free=function(){return(c._free=c.asm.Cc).apply(null,arguments)},c.setValue=B,c.getValue=_,c.UTF8ToString=U,ee=function e(){Ne||Te(),Ne||(ee=e)},c.run=Te,c.preInit)for("function"==typeof c.preInit&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();Te()})).catch((function(){return s.useBackupModule()})),r},void 0===(o=r.apply(t,[t]))||(e.exports=o)},3720:e=>{e.exports=n;var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function n(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function r(e){return!0===(e&&e.__isLong__)}n.prototype.__isLong__,Object.defineProperty(n.prototype,"__isLong__",{value:!0}),n.isLong=r;var o={},i={};function a(e,t){var n,r,a;return t?(a=0<=(e>>>=0)&&e<256)&&(r=i[e])?r:(n=c(e,(0|e)<0?-1:0,!0),a&&(i[e]=n),n):(a=-128<=(e|=0)&&e<128)&&(r=o[e])?r:(n=c(e,e<0?-1:0,!1),a&&(o[e]=n),n)}function s(e,t){if(isNaN(e))return t?m:p;if(t){if(e<0)return m;if(e>=f)return C}else{if(e<=-h)return E;if(e+1>=h)return I}return e<0?s(-e,t).neg():c(e%A|0,e/A|0,t)}function c(e,t,r){return new n(e,t,r)}n.fromInt=a,n.fromNumber=s,n.fromBits=c;var d=Math.pow;function u(e,t,n){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return p;if("number"==typeof t?(n=t,t=!1):t=!!t,(n=n||10)<2||360)throw Error("interior hyphen");if(0===r)return u(e.substring(1),t,n).neg();for(var o=s(d(n,8)),i=p,a=0;a>>0:this.low},w.toNumber=function(){return this.unsigned?(this.high>>>0)*A+(this.low>>>0):this.high*A+(this.low>>>0)},w.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=c).isZero())return u+a;for(;u.length<6;)u="0"+u;a=""+u+a}},w.getHighBits=function(){return this.high},w.getHighBitsUnsigned=function(){return this.high>>>0},w.getLowBits=function(){return this.low},w.getLowBitsUnsigned=function(){return this.low>>>0},w.getNumBitsAbs=function(){if(this.isNegative())return this.eq(E)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},w.isOdd=function(){return 1==(1&this.low)},w.isEven=function(){return 0==(1&this.low)},w.equals=function(e){return r(e)||(e=l(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},w.eq=w.equals,w.notEquals=function(e){return!this.eq(e)},w.neq=w.notEquals,w.ne=w.notEquals,w.lessThan=function(e){return this.comp(e)<0},w.lt=w.lessThan,w.lessThanOrEqual=function(e){return this.comp(e)<=0},w.lte=w.lessThanOrEqual,w.le=w.lessThanOrEqual,w.greaterThan=function(e){return this.comp(e)>0},w.gt=w.greaterThan,w.greaterThanOrEqual=function(e){return this.comp(e)>=0},w.gte=w.greaterThanOrEqual,w.ge=w.greaterThanOrEqual,w.compare=function(e){if(r(e)||(e=l(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},w.comp=w.compare,w.negate=function(){return!this.unsigned&&this.eq(E)?E:this.not().add(v)},w.neg=w.negate,w.add=function(e){r(e)||(e=l(e));var t=this.high>>>16,n=65535&this.high,o=this.low>>>16,i=65535&this.low,a=e.high>>>16,s=65535&e.high,d=e.low>>>16,u=0,A=0,f=0,h=0;return f+=(h+=i+(65535&e.low))>>>16,A+=(f+=o+d)>>>16,u+=(A+=n+s)>>>16,u+=t+a,c((f&=65535)<<16|(h&=65535),(u&=65535)<<16|(A&=65535),this.unsigned)},w.subtract=function(e){return r(e)||(e=l(e)),this.add(e.neg())},w.sub=w.subtract,w.multiply=function(e){if(this.isZero())return p;if(r(e)||(e=l(e)),t)return c(t.mul(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned);if(e.isZero())return p;if(this.eq(E))return e.isOdd()?E:p;if(e.eq(E))return this.isOdd()?E:p;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(g)&&e.lt(g))return s(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,o=65535&this.high,i=this.low>>>16,a=65535&this.low,d=e.high>>>16,u=65535&e.high,A=e.low>>>16,f=65535&e.low,h=0,m=0,v=0,y=0;return v+=(y+=a*f)>>>16,m+=(v+=i*f)>>>16,v&=65535,m+=(v+=a*A)>>>16,h+=(m+=o*f)>>>16,m&=65535,h+=(m+=i*A)>>>16,m&=65535,h+=(m+=a*u)>>>16,h+=n*f+o*A+i*u+a*d,c((v&=65535)<<16|(y&=65535),(h&=65535)<<16|(m&=65535),this.unsigned)},w.mul=w.multiply,w.divide=function(e){if(r(e)||(e=l(e)),e.isZero())throw Error("division by zero");var n,o,i;if(t)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?c((this.unsigned?t.div_u:t.div_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?m:p;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return m;if(e.gt(this.shru(1)))return y;i=m}else{if(this.eq(E))return e.eq(v)||e.eq(b)?E:e.eq(E)?v:(n=this.shr(1).div(e).shl(1)).eq(p)?e.isNegative()?v:b:(o=this.sub(e.mul(n)),i=n.add(o.div(e)));if(e.eq(E))return this.unsigned?m:p;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=p}for(o=this;o.gte(e);){n=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:d(2,a-48),A=s(n),f=A.mul(e);f.isNegative()||f.gt(o);)f=(A=s(n-=u,this.unsigned)).mul(e);A.isZero()&&(A=v),i=i.add(A),o=o.sub(f)}return i},w.div=w.divide,w.modulo=function(e){return r(e)||(e=l(e)),t?c((this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},w.mod=w.modulo,w.rem=w.modulo,w.not=function(){return c(~this.low,~this.high,this.unsigned)},w.and=function(e){return r(e)||(e=l(e)),c(this.low&e.low,this.high&e.high,this.unsigned)},w.or=function(e){return r(e)||(e=l(e)),c(this.low|e.low,this.high|e.high,this.unsigned)},w.xor=function(e){return r(e)||(e=l(e)),c(this.low^e.low,this.high^e.high,this.unsigned)},w.shiftLeft=function(e){return r(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?c(this.low<>>32-e,this.unsigned):c(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):c(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},w.shr=w.shiftRight,w.shiftRightUnsigned=function(e){if(r(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return e<32?c(this.low>>>e|t<<32-e,t>>>e,this.unsigned):c(32===e?t:t>>>e-32,0,this.unsigned)},w.shru=w.shiftRightUnsigned,w.shr_u=w.shiftRightUnsigned,w.toSigned=function(){return this.unsigned?c(this.low,this.high,!1):this},w.toUnsigned=function(){return this.unsigned?this:c(this.low,this.high,!0)},w.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},w.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},w.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},n.fromBytes=function(e,t,r){return r?n.fromBytesLE(e,t):n.fromBytesBE(e,t)},n.fromBytesLE=function(e,t){return new n(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},n.fromBytesBE=function(e,t){return new n(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},9593:(e,t,n)=>{"use strict";const r=n(4411),o=Symbol("max"),i=Symbol("length"),a=Symbol("lengthCalculator"),s=Symbol("allowStale"),c=Symbol("maxAge"),d=Symbol("dispose"),u=Symbol("noDisposeOnSet"),l=Symbol("lruList"),A=Symbol("cache"),f=Symbol("updateAgeOnGet"),h=()=>1,g=(e,t,n)=>{const r=e[A].get(t);if(r){const t=r.value;if(p(e,t)){if(v(e,r),!e[s])return}else n&&(e[f]&&(r.value.now=Date.now()),e[l].unshiftNode(r));return t.value}},p=(e,t)=>{if(!t||!t.maxAge&&!e[c])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[c]&&n>e[c]},m=e=>{if(e[i]>e[o])for(let t=e[l].tail;e[i]>e[o]&&null!==t;){const n=t.prev;v(e,t),t=n}},v=(e,t)=>{if(t){const n=t.value;e[d]&&e[d](n.key,n.value),e[i]-=n.length,e[A].delete(n.key),e[l].removeNode(t)}};class y{constructor(e,t,n,r,o){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=o||0}}const b=(e,t,n,r)=>{let o=n.value;p(e,o)&&(v(e,n),e[s]||(o=void 0)),o&&t.call(r,o.value,o.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[o]=e.max||1/0;const t=e.length||h;if(this[a]="function"!=typeof t?h:t,this[s]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[c]=e.maxAge||0,this[d]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[f]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[o]=e||1/0,m(this)}get max(){return this[o]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[c]=e,m(this)}get maxAge(){return this[c]}set lengthCalculator(e){"function"!=typeof e&&(e=h),e!==this[a]&&(this[a]=e,this[i]=0,this[l].forEach((e=>{e.length=this[a](e.value,e.key),this[i]+=e.length}))),m(this)}get lengthCalculator(){return this[a]}get length(){return this[i]}get itemCount(){return this[l].length}rforEach(e,t){t=t||this;for(let n=this[l].tail;null!==n;){const r=n.prev;b(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[l].head;null!==n;){const r=n.next;b(this,e,n,t),n=r}}keys(){return this[l].toArray().map((e=>e.key))}values(){return this[l].toArray().map((e=>e.value))}reset(){this[d]&&this[l]&&this[l].length&&this[l].forEach((e=>this[d](e.key,e.value))),this[A]=new Map,this[l]=new r,this[i]=0}dump(){return this[l].map((e=>!p(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[l]}set(e,t,n){if((n=n||this[c])&&"number"!=typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[a](t,e);if(this[A].has(e)){if(s>this[o])return v(this,this[A].get(e)),!1;const a=this[A].get(e).value;return this[d]&&(this[u]||this[d](e,a.value)),a.now=r,a.maxAge=n,a.value=t,this[i]+=s-a.length,a.length=s,this.get(e),m(this),!0}const f=new y(e,t,s,r,n);return f.length>this[o]?(this[d]&&this[d](e,t),!1):(this[i]+=f.length,this[l].unshift(f),this[A].set(e,this[l].head),m(this),!0)}has(e){if(!this[A].has(e))return!1;const t=this[A].get(e).value;return!p(this,t)}get(e){return g(this,e,!0)}peek(e){return g(this,e,!1)}pop(){const e=this[l].tail;return e?(v(this,e),e.value):null}del(e){v(this,this[A].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],o=r.e||0;if(0===o)this.set(r.k,r.v);else{const e=o-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[A].forEach(((e,t)=>g(this,t,!1)))}}},9746:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},4504:(e,t)=>{"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function o(e){for(var t="",n=0;n>8,a=255&o;i?n.push(i,a):n.push(a)}return n},n.zero2=r,n.toHex=o,n.encode=function(e,t){return"hex"===t?o(e):e}},8987:(e,t,n)=>{"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,a=n(1414),s=Object.prototype.propertyIsEnumerable,c=!s.call({toString:null},"toString"),d=s.call((function(){}),"prototype"),u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],l=function(e){var t=e.constructor;return t&&t.prototype===e},A={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!A["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{l(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===i.call(e),r=a(e),s=t&&"[object String]"===i.call(e),A=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var h=d&&n;if(s&&e.length>0&&!o.call(e,0))for(var g=0;g0)for(var p=0;p{"use strict";var r=Array.prototype.slice,o=n(1414),i=Object.keys,a=i?function(e){return i(e)}:n(8987),s=Object.keys;a.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?s(r.call(e)):s(e)})}else Object.keys=a;return Object.keys||a},e.exports=a},1414:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},9591:(e,t,n)=>{"use strict";const{Deflate:r,deflate:o,deflateRaw:i,gzip:a}=n(4555),{Inflate:s,inflate:c,inflateRaw:d,ungzip:u}=n(8843),l=n(1619);e.exports.Deflate=r,e.exports.deflate=o,e.exports.deflateRaw=i,e.exports.gzip=a,e.exports.Inflate=s,e.exports.inflate=c,e.exports.inflateRaw=d,e.exports.ungzip=u,e.exports.constants=l},4555:(e,t,n)=>{"use strict";const r=n(405),o=n(4236),i=n(9373),a=n(8898),s=n(2292),c=Object.prototype.toString,{Z_NO_FLUSH:d,Z_SYNC_FLUSH:u,Z_FULL_FLUSH:l,Z_FINISH:A,Z_OK:f,Z_STREAM_END:h,Z_DEFAULT_COMPRESSION:g,Z_DEFAULT_STRATEGY:p,Z_DEFLATED:m}=n(1619);function v(e){this.options=o.assign({level:g,method:m,chunkSize:16384,windowBits:15,memLevel:8,strategy:p},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==f)throw new Error(a[n]);if(t.header&&r.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?i.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,n=r.deflateSetDictionary(this.strm,e),n!==f)throw new Error(a[n]);this._dict_set=!0}}function y(e,t){const n=new v(t);if(n.push(e,!0),n.err)throw n.msg||a[n.err];return n.result}v.prototype.push=function(e,t){const n=this.strm,o=this.options.chunkSize;let a,s;if(this.ended)return!1;for(s=t===~~t?t:!0===t?A:d,"string"==typeof e?n.input=i.string2buf(e):"[object ArrayBuffer]"===c.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(o),n.next_out=0,n.avail_out=o),(s===u||s===l)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(a=r.deflate(n,s),a===h)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),a=r.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===f;if(0!==n.avail_out){if(s>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},v.prototype.onData=function(e){this.chunks.push(e)},v.prototype.onEnd=function(e){e===f&&(this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Deflate=v,e.exports.deflate=y,e.exports.deflateRaw=function(e,t){return(t=t||{}).raw=!0,y(e,t)},e.exports.gzip=function(e,t){return(t=t||{}).gzip=!0,y(e,t)},e.exports.constants=n(1619)},8843:(e,t,n)=>{"use strict";const r=n(7948),o=n(4236),i=n(9373),a=n(8898),s=n(2292),c=n(2401),d=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:l,Z_OK:A,Z_STREAM_END:f,Z_NEED_DICT:h,Z_STREAM_ERROR:g,Z_DATA_ERROR:p,Z_MEM_ERROR:m}=n(1619);function v(e){this.options=o.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let n=r.inflateInit2(this.strm,t.windowBits);if(n!==A)throw new Error(a[n]);if(this.header=new c,r.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=i.string2buf(t.dictionary):"[object ArrayBuffer]"===d.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=r.inflateSetDictionary(this.strm,t.dictionary),n!==A)))throw new Error(a[n])}function y(e,t){const n=new v(t);if(n.push(e),n.err)throw n.msg||a[n.err];return n.result}v.prototype.push=function(e,t){const n=this.strm,o=this.options.chunkSize,a=this.options.dictionary;let s,c,v;if(this.ended)return!1;for(c=t===~~t?t:!0===t?l:u,"[object ArrayBuffer]"===d.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(o),n.next_out=0,n.avail_out=o),s=r.inflate(n,c),s===h&&a&&(s=r.inflateSetDictionary(n,a),s===A?s=r.inflate(n,c):s===p&&(s=h));n.avail_in>0&&s===f&&n.state.wrap>0&&0!==e[n.next_in];)r.inflateReset(n),s=r.inflate(n,c);switch(s){case g:case p:case h:case m:return this.onEnd(s),this.ended=!0,!1}if(v=n.avail_out,n.next_out&&(0===n.avail_out||s===f))if("string"===this.options.to){let e=i.utf8border(n.output,n.next_out),t=n.next_out-e,r=i.buf2string(n.output,e);n.next_out=t,n.avail_out=o-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(r)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(s!==A||0!==v){if(s===f)return s=r.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},v.prototype.onData=function(e){this.chunks.push(e)},v.prototype.onEnd=function(e){e===A&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Inflate=v,e.exports.inflate=y,e.exports.inflateRaw=function(e,t){return(t=t||{}).raw=!0,y(e,t)},e.exports.ungzip=y,e.exports.constants=n(1619)},4236:e=>{"use strict";const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const n=Array.prototype.slice.call(arguments,1);for(;n.length;){const r=n.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(const n in r)t(r,n)&&(e[n]=r[n])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let n=0,r=e.length;n{"use strict";let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const n=new Uint8Array(256);for(let e=0;e<256;e++)n[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;n[254]=n[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,n,r,o,i,a=e.length,s=0;for(o=0;o>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},e.exports.buf2string=(e,r)=>{const o=r||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,r));let i,a;const s=new Array(2*o);for(a=0,i=0;i4)s[a++]=65533,i+=r-1;else{for(t&=2===r?31:3===r?15:7;r>1&&i1?s[a++]=65533:t<65536?s[a++]=t:(t-=65536,s[a++]=55296|t>>10&1023,s[a++]=56320|1023&t)}}return((e,n)=>{if(n<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===n?e:e.subarray(0,n));let r="";for(let t=0;t{(t=t||e.length)>e.length&&(t=e.length);let r=t-1;for(;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+n[e[r]]>t?r:t}},6069:e=>{"use strict";e.exports=(e,t,n,r)=>{let o=65535&e|0,i=e>>>16&65535|0,a=0;for(;0!==n;){a=n>2e3?2e3:n,n-=a;do{o=o+t[r++]|0,i=i+o|0}while(--a);o%=65521,i%=65521}return o|i<<16|0}},1619:e=>{"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},2869:e=>{"use strict";const t=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());e.exports=(e,n,r,o)=>{const i=t,a=o+r;e^=-1;for(let t=o;t>>8^i[255&(e^n[t])];return-1^e}},405:(e,t,n)=>{"use strict";const{_tr_init:r,_tr_stored_block:o,_tr_flush_block:i,_tr_tally:a,_tr_align:s}=n(342),c=n(6069),d=n(2869),u=n(8898),{Z_NO_FLUSH:l,Z_PARTIAL_FLUSH:A,Z_FULL_FLUSH:f,Z_FINISH:h,Z_BLOCK:g,Z_OK:p,Z_STREAM_END:m,Z_STREAM_ERROR:v,Z_DATA_ERROR:y,Z_BUF_ERROR:b,Z_DEFAULT_COMPRESSION:I,Z_FILTERED:C,Z_HUFFMAN_ONLY:E,Z_RLE:w,Z_FIXED:B,Z_DEFAULT_STRATEGY:_,Z_UNKNOWN:S,Z_DEFLATED:k}=n(1619),O=258,Q=262,R=103,P=113,N=666,x=(e,t)=>(e.msg=u[t],t),D=e=>(e<<1)-(e>4?9:0),M=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let T=(e,t,n)=>(t<{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))},H=(e,t)=>{i(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,U(e.strm)},j=(e,t)=>{e.pending_buf[e.pending++]=t},J=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},F=(e,t,n,r)=>{let o=e.avail_in;return o>r&&(o=r),0===o?0:(e.avail_in-=o,t.set(e.input.subarray(e.next_in,e.next_in+o),n),1===e.state.wrap?e.adler=c(e.adler,t,o,n):2===e.state.wrap&&(e.adler=d(e.adler,t,o,n)),e.next_in+=o,e.total_in+=o,o)},G=(e,t)=>{let n,r,o=e.max_chain_length,i=e.strstart,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-Q?e.strstart-(e.w_size-Q):0,d=e.window,u=e.w_mask,l=e.prev,A=e.strstart+O;let f=d[i+a-1],h=d[i+a];e.prev_length>=e.good_match&&(o>>=2),s>e.lookahead&&(s=e.lookahead);do{if(n=t,d[n+a]===h&&d[n+a-1]===f&&d[n]===d[i]&&d[++n]===d[i+1]){i+=2,n++;do{}while(d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&ia){if(e.match_start=t,a=r,r>=s)break;f=d[i+a-1],h=d[i+a]}}}while((t=l[t&u])>c&&0!=--o);return a<=e.lookahead?a:e.lookahead},L=e=>{const t=e.w_size;let n,r,o,i,a;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Q)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do{o=e.head[--n],e.head[n]=o>=t?o-t:0}while(--r);r=t,n=r;do{o=e.prev[--n],e.prev[n]=o>=t?o-t:0}while(--r);i+=t}if(0===e.strm.avail_in)break;if(r=F(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=r,e.lookahead+e.insert>=3)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=T(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=T(e,e.ins_h,e.window[a+3-1]),e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let n,r;for(;;){if(e.lookahead=3&&(e.ins_h=T(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-Q&&(e.match_length=G(e,n)),e.match_length>=3)if(r=a(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=T(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=T(e,e.ins_h,e.window[e.strstart+1]);else r=a(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(H(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===h?(H(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(H(e,!1),0===e.strm.avail_out)?1:2},Y=(e,t)=>{let n,r,o;for(;;){if(e.lookahead=3&&(e.ins_h=T(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==n&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){o=e.strstart+e.lookahead-3,r=a(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=o&&(e.ins_h=T(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(H(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(r=a(e,0,e.window[e.strstart-1]),r&&H(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=a(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===h?(H(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(H(e,!1),0===e.strm.avail_out)?1:2};function V(e,t,n,r,o){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=o}const W=[new V(0,0,0,0,((e,t)=>{let n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(L(e),0===e.lookahead&&t===l)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,H(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-Q&&(H(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===h?(H(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(H(e,!1),e.strm.avail_out),1)})),new V(4,4,8,4,q),new V(4,5,16,8,q),new V(4,6,32,32,q),new V(4,4,16,16,Y),new V(8,16,32,32,Y),new V(8,16,128,128,Y),new V(8,32,128,256,Y),new V(32,128,258,1024,Y),new V(32,258,258,4096,Y)];function K(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=k,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),M(this.dyn_ltree),M(this.dyn_dtree),M(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),M(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),M(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Z=e=>{if(!e||!e.state)return x(e,v);e.total_in=e.total_out=0,e.data_type=S;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:P,e.adler=2===t.wrap?0:1,t.last_flush=l,r(t),p},z=e=>{const t=Z(e);var n;return t===p&&((n=e.state).window_size=2*n.w_size,M(n.head),n.max_lazy_match=W[n.level].max_lazy,n.good_match=W[n.level].good_length,n.nice_match=W[n.level].nice_length,n.max_chain_length=W[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0),t},X=(e,t,n,r,o,i)=>{if(!e)return v;let a=1;if(t===I&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),o<1||o>9||n!==k||r<8||r>15||t<0||t>9||i<0||i>B)return x(e,v);8===r&&(r=9);const s=new K;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=r,s.w_size=1<X(e,t,k,15,8,_),e.exports.deflateInit2=X,e.exports.deflateReset=z,e.exports.deflateResetKeep=Z,e.exports.deflateSetHeader=(e,t)=>e&&e.state?2!==e.state.wrap?v:(e.state.gzhead=t,p):v,e.exports.deflate=(e,t)=>{let n,r;if(!e||!e.state||t>g||t<0)return e?x(e,v):v;const i=e.state;if(!e.output||!e.input&&0!==e.avail_in||i.status===N&&t!==h)return x(e,0===e.avail_out?b:v);i.strm=e;const c=i.last_flush;if(i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,j(i,31),j(i,139),j(i,8),i.gzhead?(j(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),j(i,255&i.gzhead.time),j(i,i.gzhead.time>>8&255),j(i,i.gzhead.time>>16&255),j(i,i.gzhead.time>>24&255),j(i,9===i.level?2:i.strategy>=E||i.level<2?4:0),j(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(j(i,255&i.gzhead.extra.length),j(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=d(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(j(i,0),j(i,0),j(i,0),j(i,0),j(i,0),j(i,9===i.level?2:i.strategy>=E||i.level<2?4:0),j(i,3),i.status=P);else{let t=k+(i.w_bits-8<<4)<<8,n=-1;n=i.strategy>=E||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=n<<6,0!==i.strstart&&(t|=32),t+=31-t%31,i.status=P,J(i,t),0!==i.strstart&&(J(i,e.adler>>>16),J(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),U(e),n=i.pending,i.pending!==i.pending_buf_size));)j(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),U(e),n=i.pending,i.pending===i.pending_buf_size)){r=1;break}r=i.gzindexn&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),0===r&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),U(e),n=i.pending,i.pending===i.pending_buf_size)){r=1;break}r=i.gzindexn&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),0===r&&(i.status=R)}else i.status=R;if(i.status===R&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&U(e),i.pending+2<=i.pending_buf_size&&(j(i,255&e.adler),j(i,e.adler>>8&255),e.adler=0,i.status=P)):i.status=P),0!==i.pending){if(U(e),0===e.avail_out)return i.last_flush=-1,p}else if(0===e.avail_in&&D(t)<=D(c)&&t!==h)return x(e,b);if(i.status===N&&0!==e.avail_in)return x(e,b);if(0!==e.avail_in||0!==i.lookahead||t!==l&&i.status!==N){let n=i.strategy===E?((e,t)=>{let n;for(;;){if(0===e.lookahead&&(L(e),0===e.lookahead)){if(t===l)return 1;break}if(e.match_length=0,n=a(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(H(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===h?(H(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(H(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===w?((e,t)=>{let n,r,o,i;const s=e.window;for(;;){if(e.lookahead<=O){if(L(e),e.lookahead<=O&&t===l)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(o=e.strstart-1,r=s[o],r===s[++o]&&r===s[++o]&&r===s[++o])){i=e.strstart+O;do{}while(r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&oe.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=a(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(H(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===h?(H(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(H(e,!1),0===e.strm.avail_out)?1:2})(i,t):W[i.level].func(i,t);if(3!==n&&4!==n||(i.status=N),1===n||3===n)return 0===e.avail_out&&(i.last_flush=-1),p;if(2===n&&(t===A?s(i):t!==g&&(o(i,0,0,!1),t===f&&(M(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),U(e),0===e.avail_out))return i.last_flush=-1,p}return t!==h?p:i.wrap<=0?m:(2===i.wrap?(j(i,255&e.adler),j(i,e.adler>>8&255),j(i,e.adler>>16&255),j(i,e.adler>>24&255),j(i,255&e.total_in),j(i,e.total_in>>8&255),j(i,e.total_in>>16&255),j(i,e.total_in>>24&255)):(J(i,e.adler>>>16),J(i,65535&e.adler)),U(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?p:m)},e.exports.deflateEnd=e=>{if(!e||!e.state)return v;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&t!==R&&t!==P&&t!==N?x(e,v):(e.state=null,t===P?x(e,y):p)},e.exports.deflateSetDictionary=(e,t)=>{let n=t.length;if(!e||!e.state)return v;const r=e.state,o=r.wrap;if(2===o||1===o&&42!==r.status||r.lookahead)return v;if(1===o&&(e.adler=c(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){0===o&&(M(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(n-r.w_size,n),0),t=e,n=r.w_size}const i=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,L(r);r.lookahead>=3;){let e=r.strstart,t=r.lookahead-2;do{r.ins_h=T(r,r.ins_h,r.window[e+3-1]),r.prev[e&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=e,e++}while(--t);r.strstart=e,r.lookahead=2,L(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=i,r.wrap=o,p},e.exports.deflateInfo="pako deflate (from Nodeca project)"},2401:e=>{"use strict";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},4264:e=>{"use strict";e.exports=function(e,t){let n,r,o,i,a,s,c,d,u,l,A,f,h,g,p,m,v,y,b,I,C,E,w,B;const _=e.state;n=e.next_in,w=e.input,r=n+(e.avail_in-5),o=e.next_out,B=e.output,i=o-(t-e.avail_out),a=o+(e.avail_out-257),s=_.dmax,c=_.wsize,d=_.whave,u=_.wnext,l=_.window,A=_.hold,f=_.bits,h=_.lencode,g=_.distcode,p=(1<<_.lenbits)-1,m=(1<<_.distbits)-1;e:do{f<15&&(A+=w[n++]<>>24,A>>>=y,f-=y,y=v>>>16&255,0===y)B[o++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=h[(65535&v)+(A&(1<>>=y,f-=y),f<15&&(A+=w[n++]<>>24,A>>>=y,f-=y,y=v>>>16&255,!(16&y)){if(0==(64&y)){v=g[(65535&v)+(A&(1<s){e.msg="invalid distance too far back",_.mode=30;break e}if(A>>>=y,f-=y,y=o-i,I>y){if(y=I-y,y>d&&_.sane){e.msg="invalid distance too far back",_.mode=30;break e}if(C=0,E=l,0===u){if(C+=c-y,y2;)B[o++]=E[C++],B[o++]=E[C++],B[o++]=E[C++],b-=3;b&&(B[o++]=E[C++],b>1&&(B[o++]=E[C++]))}else{C=o-I;do{B[o++]=B[C++],B[o++]=B[C++],B[o++]=B[C++],b-=3}while(b>2);b&&(B[o++]=B[C++],b>1&&(B[o++]=B[C++]))}break}}break}}while(n>3,n-=b,f-=b<<3,A&=(1<{"use strict";const r=n(6069),o=n(2869),i=n(4264),a=n(9241),{Z_FINISH:s,Z_BLOCK:c,Z_TREES:d,Z_OK:u,Z_STREAM_END:l,Z_NEED_DICT:A,Z_STREAM_ERROR:f,Z_DATA_ERROR:h,Z_MEM_ERROR:g,Z_BUF_ERROR:p,Z_DEFLATED:m}=n(1619),v=12,y=30,b=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function I(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const C=e=>{if(!e||!e.state)return f;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},E=e=>{if(!e||!e.state)return f;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,C(e)},w=(e,t)=>{let n;if(!e||!e.state)return f;const r=e.state;return t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?f:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,E(e))},B=(e,t)=>{if(!e)return f;const n=new I;e.state=n,n.window=null;const r=w(e,t);return r!==u&&(e.state=null),r};let _,S,k=!0;const O=e=>{if(k){_=new Int32Array(512),S=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(a(1,e.lens,0,288,_,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a(2,e.lens,0,32,S,0,e.work,{bits:5}),k=!1}e.lencode=_,e.lenbits=9,e.distcode=S,e.distbits=5},Q=(e,t,n,r)=>{let o;const i=e.state;return null===i.window&&(i.wsize=1<=i.wsize?(i.window.set(t.subarray(n-i.wsize,n),0),i.wnext=0,i.whave=i.wsize):(o=i.wsize-i.wnext,o>r&&(o=r),i.window.set(t.subarray(n-r,n-r+o),i.wnext),(r-=o)?(i.window.set(t.subarray(n-r,n),0),i.wnext=r,i.whave=i.wsize):(i.wnext+=o,i.wnext===i.wsize&&(i.wnext=0),i.whaveB(e,15),e.exports.inflateInit2=B,e.exports.inflate=(e,t)=>{let n,I,C,E,w,B,_,S,k,R,P,N,x,D,M,T,U,H,j,J,F,G,L=0;const q=new Uint8Array(4);let Y,V;const W=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return f;n=e.state,n.mode===v&&(n.mode=13),w=e.next_out,C=e.output,_=e.avail_out,E=e.next_in,I=e.input,B=e.avail_in,S=n.hold,k=n.bits,R=B,P=_,G=u;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;k<16;){if(0===B)break e;B--,S+=I[E++]<>>8&255,n.check=o(n.check,q,2,0),S=0,k=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&S)<<8)+(S>>8))%31){e.msg="incorrect header check",n.mode=y;break}if((15&S)!==m){e.msg="unknown compression method",n.mode=y;break}if(S>>>=4,k-=4,F=8+(15&S),0===n.wbits)n.wbits=F;else if(F>n.wbits){e.msg="invalid window size",n.mode=y;break}n.dmax=1<>8&1),512&n.flags&&(q[0]=255&S,q[1]=S>>>8&255,n.check=o(n.check,q,2,0)),S=0,k=0,n.mode=3;case 3:for(;k<32;){if(0===B)break e;B--,S+=I[E++]<>>8&255,q[2]=S>>>16&255,q[3]=S>>>24&255,n.check=o(n.check,q,4,0)),S=0,k=0,n.mode=4;case 4:for(;k<16;){if(0===B)break e;B--,S+=I[E++]<>8),512&n.flags&&(q[0]=255&S,q[1]=S>>>8&255,n.check=o(n.check,q,2,0)),S=0,k=0,n.mode=5;case 5:if(1024&n.flags){for(;k<16;){if(0===B)break e;B--,S+=I[E++]<>>8&255,n.check=o(n.check,q,2,0)),S=0,k=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(N=n.length,N>B&&(N=B),N&&(n.head&&(F=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(I.subarray(E,E+N),F)),512&n.flags&&(n.check=o(n.check,I,N,E)),B-=N,E+=N,n.length-=N),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===B)break e;N=0;do{F=I[E+N++],n.head&&F&&n.length<65536&&(n.head.name+=String.fromCharCode(F))}while(F&&N>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=v;break;case 10:for(;k<32;){if(0===B)break e;B--,S+=I[E++]<>>=7&k,k-=7&k,n.mode=27;break}for(;k<3;){if(0===B)break e;B--,S+=I[E++]<>>=1,k-=1,3&S){case 0:n.mode=14;break;case 1:if(O(n),n.mode=20,t===d){S>>>=2,k-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=y}S>>>=2,k-=2;break;case 14:for(S>>>=7&k,k-=7&k;k<32;){if(0===B)break e;B--,S+=I[E++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=y;break}if(n.length=65535&S,S=0,k=0,n.mode=15,t===d)break e;case 15:n.mode=16;case 16:if(N=n.length,N){if(N>B&&(N=B),N>_&&(N=_),0===N)break e;C.set(I.subarray(E,E+N),w),B-=N,E+=N,_-=N,w+=N,n.length-=N;break}n.mode=v;break;case 17:for(;k<14;){if(0===B)break e;B--,S+=I[E++]<>>=5,k-=5,n.ndist=1+(31&S),S>>>=5,k-=5,n.ncode=4+(15&S),S>>>=4,k-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=y;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,k-=3}for(;n.have<19;)n.lens[W[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,Y={bits:n.lenbits},G=a(0,n.lens,0,19,n.lencode,0,n.work,Y),n.lenbits=Y.bits,G){e.msg="invalid code lengths set",n.mode=y;break}n.have=0,n.mode=19;case 19:for(;n.have>>24,T=L>>>16&255,U=65535&L,!(M<=k);){if(0===B)break e;B--,S+=I[E++]<>>=M,k-=M,n.lens[n.have++]=U;else{if(16===U){for(V=M+2;k>>=M,k-=M,0===n.have){e.msg="invalid bit length repeat",n.mode=y;break}F=n.lens[n.have-1],N=3+(3&S),S>>>=2,k-=2}else if(17===U){for(V=M+3;k>>=M,k-=M,F=0,N=3+(7&S),S>>>=3,k-=3}else{for(V=M+7;k>>=M,k-=M,F=0,N=11+(127&S),S>>>=7,k-=7}if(n.have+N>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=y;break}for(;N--;)n.lens[n.have++]=F}}if(n.mode===y)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=y;break}if(n.lenbits=9,Y={bits:n.lenbits},G=a(1,n.lens,0,n.nlen,n.lencode,0,n.work,Y),n.lenbits=Y.bits,G){e.msg="invalid literal/lengths set",n.mode=y;break}if(n.distbits=6,n.distcode=n.distdyn,Y={bits:n.distbits},G=a(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,Y),n.distbits=Y.bits,G){e.msg="invalid distances set",n.mode=y;break}if(n.mode=20,t===d)break e;case 20:n.mode=21;case 21:if(B>=6&&_>=258){e.next_out=w,e.avail_out=_,e.next_in=E,e.avail_in=B,n.hold=S,n.bits=k,i(e,P),w=e.next_out,C=e.output,_=e.avail_out,E=e.next_in,I=e.input,B=e.avail_in,S=n.hold,k=n.bits,n.mode===v&&(n.back=-1);break}for(n.back=0;L=n.lencode[S&(1<>>24,T=L>>>16&255,U=65535&L,!(M<=k);){if(0===B)break e;B--,S+=I[E++]<>H)],M=L>>>24,T=L>>>16&255,U=65535&L,!(H+M<=k);){if(0===B)break e;B--,S+=I[E++]<>>=H,k-=H,n.back+=H}if(S>>>=M,k-=M,n.back+=M,n.length=U,0===T){n.mode=26;break}if(32&T){n.back=-1,n.mode=v;break}if(64&T){e.msg="invalid literal/length code",n.mode=y;break}n.extra=15&T,n.mode=22;case 22:if(n.extra){for(V=n.extra;k>>=n.extra,k-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;L=n.distcode[S&(1<>>24,T=L>>>16&255,U=65535&L,!(M<=k);){if(0===B)break e;B--,S+=I[E++]<>H)],M=L>>>24,T=L>>>16&255,U=65535&L,!(H+M<=k);){if(0===B)break e;B--,S+=I[E++]<>>=H,k-=H,n.back+=H}if(S>>>=M,k-=M,n.back+=M,64&T){e.msg="invalid distance code",n.mode=y;break}n.offset=U,n.extra=15&T,n.mode=24;case 24:if(n.extra){for(V=n.extra;k>>=n.extra,k-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=y;break}n.mode=25;case 25:if(0===_)break e;if(N=P-_,n.offset>N){if(N=n.offset-N,N>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=y;break}N>n.wnext?(N-=n.wnext,x=n.wsize-N):x=n.wnext-N,N>n.length&&(N=n.length),D=n.window}else D=C,x=w-n.offset,N=n.length;N>_&&(N=_),_-=N,n.length-=N;do{C[w++]=D[x++]}while(--N);0===n.length&&(n.mode=21);break;case 26:if(0===_)break e;C[w++]=n.length,_--,n.mode=21;break;case 27:if(n.wrap){for(;k<32;){if(0===B)break e;B--,S|=I[E++]<{if(!e||!e.state)return f;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(!e||!e.state)return f;const n=e.state;return 0==(2&n.wrap)?f:(n.head=t,t.done=!1,u)},e.exports.inflateSetDictionary=(e,t)=>{const n=t.length;let o,i,a;return e&&e.state?(o=e.state,0!==o.wrap&&11!==o.mode?f:11===o.mode&&(i=1,i=r(i,t,n,0),i!==o.check)?h:(a=Q(e,t,n,n),a?(o.mode=31,g):(o.havedict=1,u))):f},e.exports.inflateInfo="pako inflate (from Nodeca project)"},9241:e=>{"use strict";const t=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),r=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,a,s,c,d,u,l)=>{const A=l.bits;let f,h,g,p,m,v,y=0,b=0,I=0,C=0,E=0,w=0,B=0,_=0,S=0,k=0,O=null,Q=0;const R=new Uint16Array(16),P=new Uint16Array(16);let N,x,D,M=null,T=0;for(y=0;y<=15;y++)R[y]=0;for(b=0;b=1&&0===R[C];C--);if(E>C&&(E=C),0===C)return c[d++]=20971520,c[d++]=20971520,l.bits=1,0;for(I=1;I0&&(0===e||1!==C))return-1;for(P[1]=0,y=1;y<15;y++)P[y+1]=P[y]+R[y];for(b=0;b852||2===e&&S>592)return 1;for(;;){N=y-B,u[b]v?(x=M[T+u[b]],D=O[Q+u[b]]):(x=96,D=0),f=1<>B)+h]=N<<24|x<<16|D|0}while(0!==h);for(f=1<>=1;if(0!==f?(k&=f-1,k+=f):k=0,b++,0==--R[y]){if(y===C)break;y=i[a+u[b]]}if(y>E&&(k&p)!==g){for(0===B&&(B=E),m+=I,w=y-B,_=1<852||2===e&&S>592)return 1;g=k&p,c[g]=E<<24|w<<16|m-d|0}}return 0!==k&&(c[m+k]=y-B<<24|64<<16|0),l.bits=E,0}},8898:e=>{"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},342:e=>{"use strict";function t(e){let t=e.length;for(;--t>=0;)e[t]=0}const n=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),r=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),o=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=new Array(576);t(a);const s=new Array(60);t(s);const c=new Array(512);t(c);const d=new Array(256);t(d);const u=new Array(29);t(u);const l=new Array(30);function A(e,t,n,r,o){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=o,this.has_stree=e&&e.length}let f,h,g;function p(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(l);const m=e=>e<256?c[e]:c[256+(e>>>7)],v=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},y=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<{y(e,n[2*t],n[2*t+1])},I=(e,t)=>{let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1},C=(e,t,n)=>{const r=new Array(16);let o,i,a=0;for(o=1;o<=15;o++)r[o]=a=a+n[o-1]<<1;for(i=0;i<=t;i++){let t=e[2*i+1];0!==t&&(e[2*i]=I(r[t]++,t))}},E=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},w=e=>{e.bi_valid>8?v(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},B=(e,t,n,r)=>{const o=2*t,i=2*n;return e[o]{const r=e.heap[n];let o=n<<1;for(;o<=e.heap_len&&(o{let i,a,s,c,A=0;if(0!==e.last_lit)do{i=e.pending_buf[e.d_buf+2*A]<<8|e.pending_buf[e.d_buf+2*A+1],a=e.pending_buf[e.l_buf+A],A++,0===i?b(e,a,t):(s=d[a],b(e,s+256+1,t),c=n[s],0!==c&&(a-=u[s],y(e,a,c)),i--,s=m(i),b(e,s,o),c=r[s],0!==c&&(i-=l[s],y(e,i,c)))}while(A{const n=t.dyn_tree,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,i=t.stat_desc.elems;let a,s,c,d=-1;for(e.heap_len=0,e.heap_max=573,a=0;a>1;a>=1;a--)_(e,n,a);c=i;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],_(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[2*c]=n[2*a]+n[2*s],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[2*a+1]=n[2*s+1]=c,e.heap[1]=c++,_(e,n,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const n=t.dyn_tree,r=t.max_code,o=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let d,u,l,A,f,h,g=0;for(A=0;A<=15;A++)e.bl_count[A]=0;for(n[2*e.heap[e.heap_max]+1]=0,d=e.heap_max+1;d<573;d++)u=e.heap[d],A=n[2*n[2*u+1]+1]+1,A>c&&(A=c,g++),n[2*u+1]=A,u>r||(e.bl_count[A]++,f=0,u>=s&&(f=a[u-s]),h=n[2*u],e.opt_len+=h*(A+f),i&&(e.static_len+=h*(o[2*u+1]+f)));if(0!==g){do{for(A=c-1;0===e.bl_count[A];)A--;e.bl_count[A]--,e.bl_count[A+1]+=2,e.bl_count[c]--,g-=2}while(g>0);for(A=c;0!==A;A--)for(u=e.bl_count[A];0!==u;)l=e.heap[--d],l>r||(n[2*l+1]!==A&&(e.opt_len+=(A-n[2*l+1])*n[2*l],n[2*l+1]=A),u--)}})(e,t),C(n,d,e.bl_count)},O=(e,t,n)=>{let r,o,i=-1,a=t[1],s=0,c=7,d=4;for(0===a&&(c=138,d=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)o=a,a=t[2*(r+1)+1],++s{let r,o,i=-1,a=t[1],s=0,c=7,d=4;for(0===a&&(c=138,d=3),r=0;r<=n;r++)if(o=a,a=t[2*(r+1)+1],!(++s{y(e,0+(r?1:0),3),((e,t,n,r)=>{w(e),v(e,n),v(e,~n),e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n})(e,t,n)};e.exports._tr_init=e=>{R||((()=>{let e,t,i,p,m;const v=new Array(16);for(i=0,p=0;p<28;p++)for(u[p]=i,e=0;e<1<>=7;p<30;p++)for(l[p]=m<<7,e=0;e<1<{let o,c,d=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),k(e,e.l_desc),k(e,e.d_desc),d=(e=>{let t;for(O(e,e.dyn_ltree,e.l_desc.max_code),O(e,e.dyn_dtree,e.d_desc.max_code),k(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*i[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),o=e.opt_len+3+7>>>3,c=e.static_len+3+7>>>3,c<=o&&(o=c)):o=c=n+5,n+4<=o&&-1!==t?P(e,t,n,r):4===e.strategy||c===o?(y(e,2+(r?1:0),3),S(e,a,s)):(y(e,4+(r?1:0),3),((e,t,n,r)=>{let o;for(y(e,t-257,5),y(e,n-1,5),y(e,r-4,4),o=0;o(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(d[n]+256+1)]++,e.dyn_dtree[2*m(t)]++),e.last_lit===e.lit_bufsize-1),e.exports._tr_align=e=>{y(e,2,3),b(e,256,a),(e=>{16===e.bi_valid?(v(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},2292:e=>{"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},6470:(e,t,n)=>{"use strict";var r=n(4155);function o(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function i(e,t){for(var n,r="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s2){var c=r.lastIndexOf("/");if(c!==r.length-1){-1===c?(r="",o=0):o=(r=r.slice(0,c)).length-1-r.lastIndexOf("/"),i=s,a=0;continue}}else if(2===r.length||1===r.length){r="",o=0,i=s,a=0;continue}t&&(r.length>0?r+="/..":r="..",o=2)}else r.length>0?r+="/"+e.slice(i+1,s):r=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var a={resolve:function(){for(var e,t="",n=!1,a=arguments.length-1;a>=-1&&!n;a--){var s;a>=0?s=arguments[a]:(void 0===e&&(e=r.cwd()),s=e),o(s),0!==s.length&&(t=s+"/"+t,n=47===s.charCodeAt(0))}return t=i(t,!n),n?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(o(e),0===e.length)return".";var t=47===e.charCodeAt(0),n=47===e.charCodeAt(e.length-1);return 0!==(e=i(e,!t)).length||t||(e="."),e.length>0&&n&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return o(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t0&&(void 0===e?e=n:e+="/"+n)}return void 0===e?".":a.normalize(e)},relative:function(e,t){if(o(e),o(t),e===t)return"";if((e=a.resolve(e))===(t=a.resolve(t)))return"";for(var n=1;nd){if(47===t.charCodeAt(s+l))return t.slice(s+l+1);if(0===l)return t.slice(s+l)}else i>d&&(47===e.charCodeAt(n+l)?u=l:0===l&&(u=0));break}var A=e.charCodeAt(n+l);if(A!==t.charCodeAt(s+l))break;47===A&&(u=l)}var f="";for(l=n+u+1;l<=r;++l)l!==r&&47!==e.charCodeAt(l)||(0===f.length?f+="..":f+="/..");return f.length>0?f+t.slice(s+u):(s+=u,47===t.charCodeAt(s)&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(o(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,r=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!i){r=a;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"//":e.slice(0,r)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');o(e);var n,r=0,i=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,c=-1;for(n=e.length-1;n>=0;--n){var d=e.charCodeAt(n);if(47===d){if(!a){r=n+1;break}}else-1===c&&(a=!1,c=n+1),s>=0&&(d===t.charCodeAt(s)?-1==--s&&(i=n):(s=-1,i=c))}return r===i?i=c:-1===i&&(i=e.length),e.slice(r,i)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!a){r=n+1;break}}else-1===i&&(a=!1,i=n+1);return-1===i?"":e.slice(r,i)},extname:function(e){o(e);for(var t=-1,n=0,r=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var c=e.charCodeAt(s);if(47!==c)-1===r&&(i=!1,r=s+1),46===c?-1===t?t=s:1!==a&&(a=1):-1!==t&&(a=-1);else if(!i){n=s+1;break}}return-1===t||-1===r||0===a||1===a&&t===r-1&&t===n+1?"":e.slice(t,r)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){o(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,r=e.charCodeAt(0),i=47===r;i?(t.root="/",n=1):n=0;for(var a=-1,s=0,c=-1,d=!0,u=e.length-1,l=0;u>=n;--u)if(47!==(r=e.charCodeAt(u)))-1===c&&(d=!1,c=u+1),46===r?-1===a?a=u:1!==l&&(l=1):-1!==a&&(l=-1);else if(!d){s=u+1;break}return-1===a||-1===c||0===l||1===l&&a===c-1&&a===s+1?-1!==c&&(t.base=t.name=0===s&&i?e.slice(1,c):e.slice(s,c)):(0===s&&i?(t.name=e.slice(1,a),t.base=e.slice(1,c)):(t.name=e.slice(s,a),t.base=e.slice(s,c)),t.ext=e.slice(a,c)),s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};a.posix=a,e.exports=a},4155:e=>{var t,n,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var s,c=[],d=!1,u=-1;function l(){d&&s&&(d=!1,s.length?c=s.concat(c):u=-1,c.length&&A())}function A(){if(!d){var e=a(l);d=!0;for(var t=c.length;t;){for(s=c,c=[];++u1)for(var n=1;n{"use strict";var t={};function n(e,n,r){r||(r=Error);var o=function(e){var t,r;function o(t,r,o){return e.call(this,function(e,t,r){return"string"==typeof n?n:n(e,t,r)}(t,r,o))||this}return r=e,(t=o).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,o}(r);o.prototype.name=r.name,o.prototype.code=e,t[e]=o}function r(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){var o,i,a,s,c;if("string"==typeof t&&(i="not ",t.substr(0,i.length)===i)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))a="The ".concat(e," ").concat(o," ").concat(r(t,"type"));else{var d=("number"!=typeof c&&(c=0),c+".".length>(s=e).length||-1===s.indexOf(".",c)?"argument":"property");a='The "'.concat(e,'" ').concat(d," ").concat(o," ").concat(r(t,"type"))}return a+". Received type ".concat(typeof n)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},6753:(e,t,n)=>{"use strict";var r=n(4155),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=u;var i=n(9481),a=n(4229);n(5717)(u,i);for(var s=o(a.prototype),c=0;c{"use strict";e.exports=o;var r=n(4605);function o(e){if(!(this instanceof o))return new o(e);r.call(this,e)}n(5717)(o,r),o.prototype._transform=function(e,t,n){n(null,e)}},9481:(e,t,n)=>{"use strict";var r,o=n(4155);e.exports=B,B.ReadableState=w,n(7187).EventEmitter;var i,a=function(e,t){return e.listeners(t).length},s=n(222),c=n(8764).Buffer,d=n.g.Uint8Array||function(){},u=n(9630);i=u&&u.debuglog?u.debuglog("stream"):function(){};var l,A,f,h=n(7327),g=n(1195),p=n(2457).getHighWaterMark,m=n(4281).q,v=m.ERR_INVALID_ARG_TYPE,y=m.ERR_STREAM_PUSH_AFTER_EOF,b=m.ERR_METHOD_NOT_IMPLEMENTED,I=m.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(5717)(B,s);var C=g.errorOrDestroy,E=["error","close","destroy","pause","resume"];function w(e,t,o){r=r||n(6753),e=e||{},"boolean"!=typeof o&&(o=t instanceof r),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=p(this,e,"readableHighWaterMark",o),this.buffer=new h,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&&(l||(l=n(2553).s),this.decoder=new l(e.encoding),this.encoding=e.encoding)}function B(e){if(r=r||n(6753),!(this instanceof B))return new B(e);var t=this instanceof r;this._readableState=new w(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),s.call(this)}function _(e,t,n,r,o){i("readableAddChunk",t);var a,s=e._readableState;if(null===t)s.reading=!1,function(e,t){if(i("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?Q(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,R(e)))}}(e,s);else if(o||(a=function(e,t){var n,r;return r=t,c.isBuffer(r)||r instanceof d||"string"==typeof t||void 0===t||e.objectMode||(n=new v("chunk",["string","Buffer","Uint8Array"],t)),n}(s,t)),a)C(e,a);else if(s.objectMode||t&&t.length>0)if("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r)s.endEmitted?C(e,new I):S(e,s,t,!0);else if(s.ended)C(e,new y);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?S(e,s,t,!1):P(e,s)):S(e,s,t,!1)}else r||(s.reading=!1,P(e,s));return!s.ended&&(s.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=k?e=k:(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 Q(e){var t=e._readableState;i("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(i("emitReadable",t.flowing),t.emittedReadable=!0,o.nextTick(R,e))}function R(e){var t=e._readableState;i("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,T(e)}function P(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(N,e,t))}function N(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function D(e){i("readable nexttick read 0"),e.read(0)}function M(e,t){i("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),T(e),t.flowing&&!t.reading&&e.read(0)}function T(e){var t=e._readableState;for(i("flow",t.flowing);t.flowing&&null!==e.read(););}function U(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function H(e){var t=e._readableState;i("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,o.nextTick(j,t,e))}function j(e,t){if(i("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function J(e,t){for(var n=0,r=e.length;n=t.highWaterMark:t.length>0)||t.ended))return i("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?H(this):Q(this),null;if(0===(e=O(e,t))&&t.ended)return 0===t.length&&H(this),null;var r,o=t.needReadable;return i("need readable",o),(0===t.length||t.length-e0?U(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),n!==e&&t.ended&&H(this)),null!==r&&this.emit("data",r),r},B.prototype._read=function(e){C(this,new b("_read()"))},B.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,i("pipe count=%d opts=%j",r.pipesCount,t);var s=t&&!1===t.end||e===o.stdout||e===o.stderr?g:c;function c(){i("onend"),e.end()}r.endEmitted?o.nextTick(s):n.once("end",s),e.on("unpipe",(function t(o,a){i("onunpipe"),o===n&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,i("cleanup"),e.removeListener("close",f),e.removeListener("finish",h),e.removeListener("drain",d),e.removeListener("error",A),e.removeListener("unpipe",t),n.removeListener("end",c),n.removeListener("end",g),n.removeListener("data",l),u=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||d())}));var d=function(e){return function(){var t=e._readableState;i("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,T(e))}}(n);e.on("drain",d);var u=!1;function l(t){i("ondata");var o=e.write(t);i("dest.write",o),!1===o&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==J(r.pipes,e))&&!u&&(i("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function A(t){i("onerror",t),g(),e.removeListener("error",A),0===a(e,"error")&&C(e,t)}function f(){e.removeListener("finish",h),g()}function h(){i("onfinish"),e.removeListener("close",f),g()}function g(){i("unpipe"),n.unpipe(e)}return n.on("data",l),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events.error?Array.isArray(e._events.error)?e._events.error.unshift(n):e._events.error=[n,e._events.error]:e.on(t,n)}(e,"error",A),e.once("close",f),e.once("finish",h),e.emit("pipe",n),r.flowing||(i("pipe resume"),n.resume()),e},B.prototype.unpipe=function(e){var t=this._readableState,n={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,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,i("on readable",r.length,r.reading),r.length?Q(this):r.reading||o.nextTick(D,this))),n},B.prototype.addListener=B.prototype.on,B.prototype.removeListener=function(e,t){var n=s.prototype.removeListener.call(this,e,t);return"readable"===e&&o.nextTick(x,this),n},B.prototype.removeAllListeners=function(e){var t=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||o.nextTick(x,this),t},B.prototype.resume=function(){var e=this._readableState;return e.flowing||(i("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,o.nextTick(M,e,t))}(this,e)),e.paused=!1,this},B.prototype.pause=function(){return i("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(i("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},B.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var o in e.on("end",(function(){if(i("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(o){i("wrapped data"),n.decoder&&(o=n.decoder.write(o)),n.objectMode&&null==o||(n.objectMode||o&&o.length)&&(t.push(o)||(r=!0,e.pause()))})),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var a=0;a{"use strict";e.exports=u;var r=n(4281).q,o=r.ERR_METHOD_NOT_IMPLEMENTED,i=r.ERR_MULTIPLE_CALLBACK,a=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=r.ERR_TRANSFORM_WITH_LENGTH_0,c=n(6753);function d(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new i);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length{"use strict";var r,o=n(4155);function i(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;for(e.entry=null;r;){var o=r.callback;t.pendingcb--,o(undefined),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=B,B.WritableState=w;var a,s={deprecate:n(4927)},c=n(222),d=n(8764).Buffer,u=n.g.Uint8Array||function(){},l=n(1195),A=n(2457).getHighWaterMark,f=n(4281).q,h=f.ERR_INVALID_ARG_TYPE,g=f.ERR_METHOD_NOT_IMPLEMENTED,p=f.ERR_MULTIPLE_CALLBACK,m=f.ERR_STREAM_CANNOT_PIPE,v=f.ERR_STREAM_DESTROYED,y=f.ERR_STREAM_NULL_VALUES,b=f.ERR_STREAM_WRITE_AFTER_END,I=f.ERR_UNKNOWN_ENCODING,C=l.errorOrDestroy;function E(){}function w(e,t,a){r=r||n(6753),e=e||{},"boolean"!=typeof a&&(a=t instanceof r),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=A(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,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 n=e._writableState,r=n.sync,i=n.writecb;if("function"!=typeof i)throw new p;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,i){--t.pendingcb,n?(o.nextTick(i,r),o.nextTick(R,e,t),e._writableState.errorEmitted=!0,C(e,r)):(i(r),e._writableState.errorEmitted=!0,C(e,r),R(e,t))}(e,n,r,t,i);else{var a=O(n)||e.destroyed;a||n.corked||n.bufferProcessing||!n.bufferedRequest||k(e,n),r?o.nextTick(S,e,n,a,i):S(e,n,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.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function B(e){var t=this instanceof(r=r||n(6753));if(!t&&!a.call(B,this))return new B(e);this._writableState=new w(e,this,t),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)),c.call(this)}function _(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new v("write")):n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function S(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),R(e,t)}function k(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),a=t.corkedRequestsFree;a.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,_(e,t,!0,t.length,o,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new i(t),t.bufferedRequestCount=0}else{for(;n;){var d=n.chunk,u=n.encoding,l=n.callback;if(_(e,t,!1,t.objectMode?1:d.length,d,u,l),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function O(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function Q(e,t){e._final((function(n){t.pendingcb--,n&&C(e,n),t.prefinished=!0,e.emit("prefinish"),R(e,t)}))}function R(e,t){var n=O(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,o.nextTick(Q,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(5717)(B,c),w.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(w.prototype,"buffer",{get:s.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]?(a=Function.prototype[Symbol.hasInstance],Object.defineProperty(B,Symbol.hasInstance,{value:function(e){return!!a.call(this,e)||this===B&&e&&e._writableState instanceof w}})):a=function(e){return e instanceof this},B.prototype.pipe=function(){C(this,new m)},B.prototype.write=function(e,t,n){var r,i=this._writableState,a=!1,s=!i.objectMode&&(r=e,d.isBuffer(r)||r instanceof u);return s&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof n&&(n=E),i.ending?function(e,t){var n=new b;C(e,n),o.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var i;return null===n?i=new y:"string"==typeof n||t.objectMode||(i=new h("chunk",["string","Buffer"],n)),!i||(C(e,i),o.nextTick(r,i),!1)}(this,i,e,n))&&(i.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=d.from(t,n)),t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new I(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(B.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(B.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),B.prototype._write=function(e,t,n){n(new g("_write()"))},B.prototype._writev=null,B.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,R(e,t),n&&(t.finished?o.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(B.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(B.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),B.prototype.destroy=l.destroy,B.prototype._undestroy=l.undestroy,B.prototype._destroy=function(e,t){t(e)}},1086:(e,t,n)=>{"use strict";var r,o=n(4155);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var a=n(8610),s=Symbol("lastResolve"),c=Symbol("lastReject"),d=Symbol("error"),u=Symbol("ended"),l=Symbol("lastPromise"),A=Symbol("handlePromise"),f=Symbol("stream");function h(e,t){return{value:e,done:t}}function g(e){var t=e[s];if(null!==t){var n=e[f].read();null!==n&&(e[l]=null,e[s]=null,e[c]=null,t(h(n,!1)))}}function p(e){o.nextTick(g,e)}var m=Object.getPrototypeOf((function(){})),v=Object.setPrototypeOf((i(r={get stream(){return this[f]},next:function(){var e=this,t=this[d];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)return new Promise((function(t,n){o.nextTick((function(){e[d]?n(e[d]):t(h(void 0,!0))}))}));var n,r=this[l];if(r)n=new Promise(function(e,t){return function(n,r){e.then((function(){t[u]?n(h(void 0,!0)):t[A](n,r)}),r)}}(r,this));else{var i=this[f].read();if(null!==i)return Promise.resolve(h(i,!1));n=new Promise(this[A])}return this[l]=n,n}},Symbol.asyncIterator,(function(){return this})),i(r,"return",(function(){var e=this;return new Promise((function(t,n){e[f].destroy(null,(function(e){e?n(e):t(h(void 0,!0))}))}))})),r),m);e.exports=function(e){var t,n=Object.create(v,(i(t={},f,{value:e,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,c,{value:null,writable:!0}),i(t,d,{value:null,writable:!0}),i(t,u,{value:e._readableState.endEmitted,writable:!0}),i(t,A,{value:function(e,t){var r=n[f].read();r?(n[l]=null,n[s]=null,n[c]=null,e(h(r,!1))):(n[s]=e,n[c]=t)},writable:!0}),t));return n[l]=null,a(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[c];return null!==t&&(n[l]=null,n[s]=null,n[c]=null,t(e)),void(n[d]=e)}var r=n[s];null!==r&&(n[l]=null,n[s]=null,n[c]=null,r(h(void 0,!0))),n[u]=!0})),e.on("readable",p.bind(null,n)),n}},7327:(e,t,n)=>{"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){for(var n=0;n0?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,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return a.alloc(0);for(var t,n,r,o=a.allocUnsafe(e>>>0),i=this.head,s=0;i;)t=i.data,n=o,r=s,a.prototype.copy.call(t,n,r),s+=i.data.length,i=i.next;return o}},{key:"consume",value:function(e,t){var n;return eo.length?o.length:e;if(i===o.length?r+=o:r+=o.slice(0,e),0==(e-=i)){i===o.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=o.slice(i));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=a.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var o=n.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),0==(e-=i)){i===o.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(i));break}++r}return this.length-=r,t}},{key:c,value:function(e,t){return s(this,function(e){for(var t=1;t{"use strict";var r=n(4155);function o(e,t){a(e,t),i(e)}function i(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function a(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,s=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return s||c?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,r.nextTick(a,this,e)):r.nextTick(a,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?n._writableState?n._writableState.errorEmitted?r.nextTick(i,n):(n._writableState.errorEmitted=!0,r.nextTick(o,n,e)):r.nextTick(o,n,e):t?(r.nextTick(i,n),t(e)):r.nextTick(i,n)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}}},8610:(e,t,n)=>{"use strict";var r=n(4281).q.ERR_STREAM_PREMATURE_CLOSE;function o(){}e.exports=function e(t,n,i){if("function"==typeof n)return e(t,null,n);n||(n={}),i=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),o=0;o{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},9946:(e,t,n)=>{"use strict";var r,o=n(4281).q,i=o.ERR_MISSING_ARGS,a=o.ERR_STREAM_DESTROYED;function s(e){if(e)throw e}function c(e,t,o,i){i=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(i);var s=!1;e.on("close",(function(){s=!0})),void 0===r&&(r=n(8610)),r(e,{readable:t,writable:o},(function(e){if(e)return i(e);s=!0,i()}));var c=!1;return function(t){if(!s&&!c)return c=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new a("pipe"))}}function d(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?s:e.pop():s}e.exports=function(){for(var e=arguments.length,t=new Array(e),n=0;n0,(function(e){r||(r=e),e&&a.forEach(d),i||(a.forEach(d),o(r))}))}));return t.reduce(u)}},2457:(e,t,n)=>{"use strict";var r=n(4281).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,o){var i=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,o,n);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new r(o?n:"highWaterMark",i);return Math.floor(i)}return e.objectMode?16:16384}}},222:(e,t,n)=>{e.exports=n(7187).EventEmitter},8473:(e,t,n)=>{(t=e.exports=n(9481)).Stream=t,t.Readable=t,t.Writable=n(4229),t.Duplex=n(6753),t.Transform=n(4605),t.PassThrough=n(2725),t.finished=n(8610),t.pipeline=n(9946)},5666:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function d(e,t,n,r){var o=t&&t.prototype instanceof p?t:p,i=Object.create(o.prototype),a=new k(r||[]);return i._invoke=function(e,t,n){var r=l;return function(o,i){if(r===f)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return Q()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var s=B(a,n);if(s){if(s===g)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var c=u(e,t,n);if("normal"===c.type){if(r=n.done?h:A,c.arg===g)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=h,n.method="throw",n.arg=c.arg)}}}(e,n,a),i}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=d;var l="suspendedStart",A="suspendedYield",f="executing",h="completed",g={};function p(){}function m(){}function v(){}var y={};c(y,i,(function(){return this}));var b=Object.getPrototypeOf,I=b&&b(b(O([])));I&&I!==n&&r.call(I,i)&&(y=I);var C=v.prototype=p.prototype=Object.create(y);function E(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function n(o,i,a,s){var c=u(e[o],e,i);if("throw"!==c.type){var d=c.arg,l=d.value;return l&&"object"==typeof l&&r.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(l).then((function(e){d.value=e,a(d)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function B(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,B(e,n),"throw"===n.method))return g;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var o=u(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,g;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,g):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function _(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 S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function O(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),d=r.call(a,"finallyLoc");if(c&&d){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;S(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:O(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),g}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},9785:(e,t,n)=>{"use strict";var r=n(8764).Buffer,o=n(5717),i=n(3349),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],c=[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],d=[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],u=[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],l=[0,1518500249,1859775393,2400959708,2840853838],A=[1352829926,1548603684,1836072691,2053994217,0];function f(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function h(e,t){return e<>>32-t}function g(e,t,n,r,o,i,a,s){return h(e+(t^n^r)+i+a|0,s)+o|0}function p(e,t,n,r,o,i,a,s){return h(e+(t&n|~t&r)+i+a|0,s)+o|0}function m(e,t,n,r,o,i,a,s){return h(e+((t|~n)^r)+i+a|0,s)+o|0}function v(e,t,n,r,o,i,a,s){return h(e+(t&r|n&~r)+i+a|0,s)+o|0}function y(e,t,n,r,o,i,a,s){return h(e+(t^(n|~r))+i+a|0,s)+o|0}o(f,i),f.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,o=0|this._c,i=0|this._d,f=0|this._e,b=0|this._a,I=0|this._b,C=0|this._c,E=0|this._d,w=0|this._e,B=0;B<80;B+=1){var _,S;B<16?(_=g(n,r,o,i,f,e[s[B]],l[0],d[B]),S=y(b,I,C,E,w,e[c[B]],A[0],u[B])):B<32?(_=p(n,r,o,i,f,e[s[B]],l[1],d[B]),S=v(b,I,C,E,w,e[c[B]],A[1],u[B])):B<48?(_=m(n,r,o,i,f,e[s[B]],l[2],d[B]),S=m(b,I,C,E,w,e[c[B]],A[2],u[B])):B<64?(_=v(n,r,o,i,f,e[s[B]],l[3],d[B]),S=p(b,I,C,E,w,e[c[B]],A[3],u[B])):(_=y(n,r,o,i,f,e[s[B]],l[4],d[B]),S=g(b,I,C,E,w,e[c[B]],A[4],u[B])),n=f,f=i,i=h(o,10),o=r,r=_,b=w,w=E,E=h(C,10),C=I,I=S}var k=this._b+o+E|0;this._b=this._c+i+w|0,this._c=this._d+f+b|0,this._d=this._e+n+I|0,this._e=this._a+r+C|0,this._a=k},f.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=r.alloc?r.alloc(20):new r(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=f},9509:(e,t,n)=>{var r=n(8764),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},2257:(e,t,n)=>{const r=Symbol("SemVer ANY");class o{static get ANY(){return r}constructor(e,t){if(t=i(t),e instanceof o){if(e.loose===!!t.loose)return e;e=e.value}d("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,d("comp",this)}parse(e){const t=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new u(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(d("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new u(e,this.options)}catch(e){return!1}return c(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof o))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new l(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new l(this.value,t).test(e.semver);const n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),r=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),i=this.semver.version===e.semver.version,a=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),s=c(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),d=c(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||r||i&&a||s||d}}e.exports=o;const i=n(2893),{re:a,t:s}=n(5765),c=n(7539),d=n(4225),u=n(6376),l=n(6902)},6902:(e,t,n)=>{class r{constructor(e,t){if(t=i(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof a)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!h(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&g(e[0])){this.set=[e];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();const t=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=o.get(t);if(n)return n;const r=this.options.loose,i=r?d[u.HYPHENRANGELOOSE]:d[u.HYPHENRANGE];e=e.replace(i,S(this.options.includePrerelease)),s("hyphen replace",e),e=e.replace(d[u.COMPARATORTRIM],l),s("comparator trim",e,d[u.COMPARATORTRIM]),e=(e=(e=e.replace(d[u.TILDETRIM],A)).replace(d[u.CARETTRIM],f)).split(/\s+/).join(" ");const c=r?d[u.COMPARATORLOOSE]:d[u.COMPARATOR],g=e.split(" ").map((e=>m(e,this.options))).join(" ").split(/\s+/).map((e=>_(e,this.options))).filter(this.options.loose?e=>!!e.match(c):()=>!0).map((e=>new a(e,this.options))),p=(g.length,new Map);for(const e of g){if(h(e))return[e];p.set(e.value,e)}p.size>1&&p.has("")&&p.delete("");const v=[...p.values()];return o.set(t,v),v}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some((n=>p(n,t)&&e.set.some((e=>p(e,t)&&n.every((n=>e.every((e=>n.intersects(e,t)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new c(e,this.options)}catch(e){return!1}for(let t=0;t"<0.0.0-0"===e.value,g=e=>""===e.value,p=(e,t)=>{let n=!0;const r=e.slice();let o=r.pop();for(;n&&r.length;)n=r.every((e=>o.intersects(e,t))),o=r.pop();return n},m=(e,t)=>(s("comp",e,t),e=I(e,t),s("caret",e),e=y(e,t),s("tildes",e),e=E(e,t),s("xrange",e),e=B(e,t),s("stars",e),e),v=e=>!e||"x"===e.toLowerCase()||"*"===e,y=(e,t)=>e.trim().split(/\s+/).map((e=>b(e,t))).join(" "),b=(e,t)=>{const n=t.loose?d[u.TILDELOOSE]:d[u.TILDE];return e.replace(n,((t,n,r,o,i)=>{let a;return s("tilde",e,t,n,r,o,i),v(n)?a="":v(r)?a=`>=${n}.0.0 <${+n+1}.0.0-0`:v(o)?a=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:i?(s("replaceTilde pr",i),a=`>=${n}.${r}.${o}-${i} <${n}.${+r+1}.0-0`):a=`>=${n}.${r}.${o} <${n}.${+r+1}.0-0`,s("tilde return",a),a}))},I=(e,t)=>e.trim().split(/\s+/).map((e=>C(e,t))).join(" "),C=(e,t)=>{s("caret",e,t);const n=t.loose?d[u.CARETLOOSE]:d[u.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,o,i,a)=>{let c;return s("caret",e,t,n,o,i,a),v(n)?c="":v(o)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:v(i)?c="0"===n?`>=${n}.${o}.0${r} <${n}.${+o+1}.0-0`:`>=${n}.${o}.0${r} <${+n+1}.0.0-0`:a?(s("replaceCaret pr",a),c="0"===n?"0"===o?`>=${n}.${o}.${i}-${a} <${n}.${o}.${+i+1}-0`:`>=${n}.${o}.${i}-${a} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${i}-${a} <${+n+1}.0.0-0`):(s("no pr"),c="0"===n?"0"===o?`>=${n}.${o}.${i}${r} <${n}.${o}.${+i+1}-0`:`>=${n}.${o}.${i}${r} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${i} <${+n+1}.0.0-0`),s("caret return",c),c}))},E=(e,t)=>(s("replaceXRanges",e,t),e.split(/\s+/).map((e=>w(e,t))).join(" ")),w=(e,t)=>{e=e.trim();const n=t.loose?d[u.XRANGELOOSE]:d[u.XRANGE];return e.replace(n,((n,r,o,i,a,c)=>{s("xRange",e,n,r,o,i,a,c);const d=v(o),u=d||v(i),l=u||v(a),A=l;return"="===r&&A&&(r=""),c=t.includePrerelease?"-0":"",d?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&A?(u&&(i=0),a=0,">"===r?(r=">=",u?(o=+o+1,i=0,a=0):(i=+i+1,a=0)):"<="===r&&(r="<",u?o=+o+1:i=+i+1),"<"===r&&(c="-0"),n=`${r+o}.${i}.${a}${c}`):u?n=`>=${o}.0.0${c} <${+o+1}.0.0-0`:l&&(n=`>=${o}.${i}.0${c} <${o}.${+i+1}.0-0`),s("xRange return",n),n}))},B=(e,t)=>(s("replaceStars",e,t),e.trim().replace(d[u.STAR],"")),_=(e,t)=>(s("replaceGTE0",e,t),e.trim().replace(d[t.includePrerelease?u.GTE0PRE:u.GTE0],"")),S=e=>(t,n,r,o,i,a,s,c,d,u,l,A,f)=>`${n=v(r)?"":v(o)?`>=${r}.0.0${e?"-0":""}`:v(i)?`>=${r}.${o}.0${e?"-0":""}`:a?`>=${n}`:`>=${n}${e?"-0":""}`} ${c=v(d)?"":v(u)?`<${+d+1}.0.0-0`:v(l)?`<${d}.${+u+1}.0-0`:A?`<=${d}.${u}.${l}-${A}`:e?`<${d}.${u}.${+l+1}-0`:`<=${c}`}`.trim(),k=(e,t,n)=>{for(let n=0;n0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},6376:(e,t,n)=>{const r=n(4225),{MAX_LENGTH:o,MAX_SAFE_INTEGER:i}=n(3295),{re:a,t:s}=n(5765),c=n(2893),{compareIdentifiers:d}=n(6742);class u{constructor(e,t){if(t=c(t),e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>o)throw new TypeError(`version is longer than ${o} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?a[s.LOOSE]:a[s.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}e.exports=u},3507:(e,t,n)=>{const r=n(3959);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},7539:(e,t,n)=>{const r=n(8718),o=n(1194),i=n(1312),a=n(5903),s=n(1544),c=n(2056);e.exports=(e,t,n,d)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,d);case"!=":return o(e,n,d);case">":return i(e,n,d);case">=":return a(e,n,d);case"<":return s(e,n,d);case"<=":return c(e,n,d);default:throw new TypeError(`Invalid operator: ${t}`)}}},9038:(e,t,n)=>{const r=n(6376),o=n(3959),{re:i,t:a}=n(5765);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){let t;for(;(t=i[a.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&t.index+t[0].length===n.index+n[0].length||(n=t),i[a.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;i[a.COERCERTL].lastIndex=-1}else n=e.match(i[a.COERCE]);return null===n?null:o(`${n[2]}.${n[3]||"0"}.${n[4]||"0"}`,t)}},8880:(e,t,n)=>{const r=n(6376);e.exports=(e,t,n)=>{const o=new r(e,n),i=new r(t,n);return o.compare(i)||o.compareBuild(i)}},7880:(e,t,n)=>{const r=n(6269);e.exports=(e,t)=>r(e,t,!0)},6269:(e,t,n)=>{const r=n(6376);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},2378:(e,t,n)=>{const r=n(3959),o=n(8718);e.exports=(e,t)=>{if(o(e,t))return null;{const n=r(e),o=r(t),i=n.prerelease.length||o.prerelease.length,a=i?"pre":"",s=i?"prerelease":"";for(const e in n)if(("major"===e||"minor"===e||"patch"===e)&&n[e]!==o[e])return a+e;return s}}},8718:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>0===r(e,t,n)},1312:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(e,t,n)>0},5903:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(e,t,n)>=0},253:(e,t,n)=>{const r=n(6376);e.exports=(e,t,n,o)=>{"string"==typeof n&&(o=n,n=void 0);try{return new r(e,n).inc(t,o).version}catch(e){return null}}},1544:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(e,t,n)<0},2056:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(e,t,n)<=0},8679:(e,t,n)=>{const r=n(6376);e.exports=(e,t)=>new r(e,t).major},7789:(e,t,n)=>{const r=n(6376);e.exports=(e,t)=>new r(e,t).minor},1194:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>0!==r(e,t,n)},3959:(e,t,n)=>{const{MAX_LENGTH:r}=n(3295),{re:o,t:i}=n(5765),a=n(6376),s=n(2893);e.exports=(e,t)=>{if(t=s(t),e instanceof a)return e;if("string"!=typeof e)return null;if(e.length>r)return null;if(!(t.loose?o[i.LOOSE]:o[i.FULL]).test(e))return null;try{return new a(e,t)}catch(e){return null}}},2358:(e,t,n)=>{const r=n(6376);e.exports=(e,t)=>new r(e,t).patch},7559:(e,t,n)=>{const r=n(3959);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},9795:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(t,e,n)},3657:(e,t,n)=>{const r=n(8880);e.exports=(e,t)=>e.sort(((e,n)=>r(n,e,t)))},5712:(e,t,n)=>{const r=n(6902);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},1100:(e,t,n)=>{const r=n(8880);e.exports=(e,t)=>e.sort(((e,n)=>r(e,n,t)))},6397:(e,t,n)=>{const r=n(3959);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},1249:(e,t,n)=>{const r=n(5765);e.exports={re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:n(3295).SEMVER_SPEC_VERSION,SemVer:n(6376),compareIdentifiers:n(6742).compareIdentifiers,rcompareIdentifiers:n(6742).rcompareIdentifiers,parse:n(3959),valid:n(6397),clean:n(3507),inc:n(253),diff:n(2378),major:n(8679),minor:n(7789),patch:n(2358),prerelease:n(7559),compare:n(6269),rcompare:n(9795),compareLoose:n(7880),compareBuild:n(8880),sort:n(1100),rsort:n(3657),gt:n(1312),lt:n(1544),eq:n(8718),neq:n(1194),gte:n(5903),lte:n(2056),cmp:n(7539),coerce:n(9038),Comparator:n(2257),Range:n(6902),satisfies:n(5712),toComparators:n(1042),maxSatisfying:n(5775),minSatisfying:n(1657),minVersion:n(5316),validRange:n(9042),outside:n(6826),gtr:n(9118),ltr:n(32),intersects:n(2937),simplifyRange:n(7908),subset:n(2691)}},3295:e=>{const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},4225:(e,t,n)=>{var r=n(4155);const o="object"==typeof r&&r.env&&r.env.NODE_DEBUG&&/\bsemver\b/i.test(r.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=o},6742:e=>{const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),o=t.test(n);return r&&o&&(e=+e,n=+n),e===n?0:r&&!o?-1:o&&!r?1:en(t,e)}},2893:e=>{const t=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:t.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{}},5765:(e,t,n)=>{const{MAX_SAFE_COMPONENT_LENGTH:r}=n(3295),o=n(4225),i=(t=e.exports={}).re=[],a=t.src=[],s=t.t={};let c=0;const d=(e,t,n)=>{const r=c++;o(r,t),s[e]=r,a[r]=t,i[r]=new RegExp(t,n?"g":void 0)};d("NUMERICIDENTIFIER","0|[1-9]\\d*"),d("NUMERICIDENTIFIERLOOSE","[0-9]+"),d("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),d("MAINVERSION",`(${a[s.NUMERICIDENTIFIER]})\\.(${a[s.NUMERICIDENTIFIER]})\\.(${a[s.NUMERICIDENTIFIER]})`),d("MAINVERSIONLOOSE",`(${a[s.NUMERICIDENTIFIERLOOSE]})\\.(${a[s.NUMERICIDENTIFIERLOOSE]})\\.(${a[s.NUMERICIDENTIFIERLOOSE]})`),d("PRERELEASEIDENTIFIER",`(?:${a[s.NUMERICIDENTIFIER]}|${a[s.NONNUMERICIDENTIFIER]})`),d("PRERELEASEIDENTIFIERLOOSE",`(?:${a[s.NUMERICIDENTIFIERLOOSE]}|${a[s.NONNUMERICIDENTIFIER]})`),d("PRERELEASE",`(?:-(${a[s.PRERELEASEIDENTIFIER]}(?:\\.${a[s.PRERELEASEIDENTIFIER]})*))`),d("PRERELEASELOOSE",`(?:-?(${a[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[s.PRERELEASEIDENTIFIERLOOSE]})*))`),d("BUILDIDENTIFIER","[0-9A-Za-z-]+"),d("BUILD",`(?:\\+(${a[s.BUILDIDENTIFIER]}(?:\\.${a[s.BUILDIDENTIFIER]})*))`),d("FULLPLAIN",`v?${a[s.MAINVERSION]}${a[s.PRERELEASE]}?${a[s.BUILD]}?`),d("FULL",`^${a[s.FULLPLAIN]}$`),d("LOOSEPLAIN",`[v=\\s]*${a[s.MAINVERSIONLOOSE]}${a[s.PRERELEASELOOSE]}?${a[s.BUILD]}?`),d("LOOSE",`^${a[s.LOOSEPLAIN]}$`),d("GTLT","((?:<|>)?=?)"),d("XRANGEIDENTIFIERLOOSE",`${a[s.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),d("XRANGEIDENTIFIER",`${a[s.NUMERICIDENTIFIER]}|x|X|\\*`),d("XRANGEPLAIN",`[v=\\s]*(${a[s.XRANGEIDENTIFIER]})(?:\\.(${a[s.XRANGEIDENTIFIER]})(?:\\.(${a[s.XRANGEIDENTIFIER]})(?:${a[s.PRERELEASE]})?${a[s.BUILD]}?)?)?`),d("XRANGEPLAINLOOSE",`[v=\\s]*(${a[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[s.XRANGEIDENTIFIERLOOSE]})(?:${a[s.PRERELEASELOOSE]})?${a[s.BUILD]}?)?)?`),d("XRANGE",`^${a[s.GTLT]}\\s*${a[s.XRANGEPLAIN]}$`),d("XRANGELOOSE",`^${a[s.GTLT]}\\s*${a[s.XRANGEPLAINLOOSE]}$`),d("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),d("COERCERTL",a[s.COERCE],!0),d("LONETILDE","(?:~>?)"),d("TILDETRIM",`(\\s*)${a[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",d("TILDE",`^${a[s.LONETILDE]}${a[s.XRANGEPLAIN]}$`),d("TILDELOOSE",`^${a[s.LONETILDE]}${a[s.XRANGEPLAINLOOSE]}$`),d("LONECARET","(?:\\^)"),d("CARETTRIM",`(\\s*)${a[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",d("CARET",`^${a[s.LONECARET]}${a[s.XRANGEPLAIN]}$`),d("CARETLOOSE",`^${a[s.LONECARET]}${a[s.XRANGEPLAINLOOSE]}$`),d("COMPARATORLOOSE",`^${a[s.GTLT]}\\s*(${a[s.LOOSEPLAIN]})$|^$`),d("COMPARATOR",`^${a[s.GTLT]}\\s*(${a[s.FULLPLAIN]})$|^$`),d("COMPARATORTRIM",`(\\s*)${a[s.GTLT]}\\s*(${a[s.LOOSEPLAIN]}|${a[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",d("HYPHENRANGE",`^\\s*(${a[s.XRANGEPLAIN]})\\s+-\\s+(${a[s.XRANGEPLAIN]})\\s*$`),d("HYPHENRANGELOOSE",`^\\s*(${a[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[s.XRANGEPLAINLOOSE]})\\s*$`),d("STAR","(<|>)?=?\\s*\\*"),d("GTE0","^\\s*>=\\s*0.0.0\\s*$"),d("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},9118:(e,t,n)=>{const r=n(6826);e.exports=(e,t,n)=>r(e,t,">",n)},2937:(e,t,n)=>{const r=n(6902);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t))},32:(e,t,n)=>{const r=n(6826);e.exports=(e,t,n)=>r(e,t,"<",n)},5775:(e,t,n)=>{const r=n(6376),o=n(6902);e.exports=(e,t,n)=>{let i=null,a=null,s=null;try{s=new o(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(i&&-1!==a.compare(e)||(i=e,a=new r(i,n)))})),i}},1657:(e,t,n)=>{const r=n(6376),o=n(6902);e.exports=(e,t,n)=>{let i=null,a=null,s=null;try{s=new o(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(i&&1!==a.compare(e)||(i=e,a=new r(i,n)))})),i}},5316:(e,t,n)=>{const r=n(6376),o=n(6902),i=n(1312);e.exports=(e,t)=>{e=new o(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":a&&!i(t,a)||(a=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!a||n&&!i(n,a)||(n=a)}return n&&e.test(n)?n:null}},6826:(e,t,n)=>{const r=n(6376),o=n(2257),{ANY:i}=o,a=n(6902),s=n(5712),c=n(1312),d=n(1544),u=n(2056),l=n(5903);e.exports=(e,t,n,A)=>{let f,h,g,p,m;switch(e=new r(e,A),t=new a(t,A),n){case">":f=c,h=u,g=d,p=">",m=">=";break;case"<":f=d,h=l,g=c,p="<",m="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(s(e,t,A))return!1;for(let n=0;n{e.semver===i&&(e=new o(">=0.0.0")),a=a||e,s=s||e,f(e.semver,a.semver,A)?a=e:g(e.semver,s.semver,A)&&(s=e)})),a.operator===p||a.operator===m)return!1;if((!s.operator||s.operator===p)&&h(e,s.semver))return!1;if(s.operator===m&&g(e,s.semver))return!1}return!0}},7908:(e,t,n)=>{const r=n(5712),o=n(6269);e.exports=(e,t,n)=>{const i=[];let a=null,s=null;const c=e.sort(((e,t)=>o(e,t,n)));for(const e of c)r(e,t,n)?(s=e,a||(a=e)):(s&&i.push([a,s]),s=null,a=null);a&&i.push([a,null]);const d=[];for(const[e,t]of i)e===t?d.push(e):t||e!==c[0]?t?e===c[0]?d.push(`<=${t}`):d.push(`${e} - ${t}`):d.push(`>=${e}`):d.push("*");const u=d.join(" || "),l="string"==typeof t.raw?t.raw:String(t);return u.length{const r=n(6902),o=n(2257),{ANY:i}=o,a=n(5712),s=n(6269),c=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===i){if(1===t.length&&t[0].semver===i)return!0;e=n.includePrerelease?[new o(">=0.0.0-0")]:[new o(">=0.0.0")]}if(1===t.length&&t[0].semver===i){if(n.includePrerelease)return!0;t=[new o(">=0.0.0")]}const r=new Set;let c,l,A,f,h,g,p;for(const t of e)">"===t.operator||">="===t.operator?c=d(c,t,n):"<"===t.operator||"<="===t.operator?l=u(l,t,n):r.add(t.semver);if(r.size>1)return null;if(c&&l){if(A=s(c.semver,l.semver,n),A>0)return null;if(0===A&&(">="!==c.operator||"<="!==l.operator))return null}for(const e of r){if(c&&!a(e,String(c),n))return null;if(l&&!a(e,String(l),n))return null;for(const r of t)if(!a(e,String(r),n))return!1;return!0}let m=!(!l||n.includePrerelease||!l.semver.prerelease.length)&&l.semver,v=!(!c||n.includePrerelease||!c.semver.prerelease.length)&&c.semver;m&&1===m.prerelease.length&&"<"===l.operator&&0===m.prerelease[0]&&(m=!1);for(const e of t){if(p=p||">"===e.operator||">="===e.operator,g=g||"<"===e.operator||"<="===e.operator,c)if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),">"===e.operator||">="===e.operator){if(f=d(c,e,n),f===e&&f!==c)return!1}else if(">="===c.operator&&!a(c.semver,String(e),n))return!1;if(l)if(m&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===m.major&&e.semver.minor===m.minor&&e.semver.patch===m.patch&&(m=!1),"<"===e.operator||"<="===e.operator){if(h=u(l,e,n),h===e&&h!==l)return!1}else if("<="===l.operator&&!a(l.semver,String(e),n))return!1;if(!e.operator&&(l||c)&&0!==A)return!1}return!(c&&g&&!l&&0!==A||l&&p&&!c&&0!==A||v||m)},d=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},u=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let o=!1;e:for(const r of e.set){for(const e of t.set){const t=c(r,e,n);if(o=o||null!==t,t)continue e}if(o)return!1}return!0}},1042:(e,t,n)=>{const r=n(6902);e.exports=(e,t)=>new r(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")))},9042:(e,t,n)=>{const r=n(6902);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}},2553:(e,t,n)=>{"use strict";var r=n(9509).Buffer,o=r.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 i(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&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=d,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=u,this.end=l,t=3;break;default:return this.write=A,void(this.end=f)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.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,n=function(e,t,n){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!==n?n: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 c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function d(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?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-n))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function A(e){return e.toString(this.encoding)}function f(e){return e&&e.length?this.write(e):""}t.s=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(o>0&&(e.lastNeed=o-1),o):--r=0?(o>0&&(e.lastNeed=o-2),o):--r=0?(o>0&&(2===o?o=0:e.lastNeed=o-3),o):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.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}},1839:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.Symbol;if("function"==typeof n)if(n.observable)t=n.observable;else{t=n.for("https://github.com/benlesh/symbol-observable");try{n.observable=t}catch(e){}}else t="@@observable";return t}},868:(e,t,n)=>{e.exports=n(1839)},6910:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serializeSignDoc=t.Secp256k1Wallet=t.Secp256k1HdWallet=t.rawSecp256k1PubkeyToRawAddress=t.pubkeyType=t.pubkeyToRawAddress=t.pubkeyToAddress=t.parseCoins=t.makeStdTx=t.makeSignDoc=t.makeCosmoshubPath=t.isStdTx=t.isSinglePubkey=t.isSecp256k1Pubkey=t.encodeSecp256k1Signature=t.encodeSecp256k1Pubkey=t.encodeBech32Pubkey=t.encodeAminoPubkey=t.decodeSignature=t.decodeBech32Pubkey=t.decodeAminoPubkey=t.coins=t.coin=void 0;var r=n(3359);Object.defineProperty(t,"coin",{enumerable:!0,get:function(){return r.coin}}),Object.defineProperty(t,"coins",{enumerable:!0,get:function(){return r.coins}}),Object.defineProperty(t,"decodeAminoPubkey",{enumerable:!0,get:function(){return r.decodeAminoPubkey}}),Object.defineProperty(t,"decodeBech32Pubkey",{enumerable:!0,get:function(){return r.decodeBech32Pubkey}}),Object.defineProperty(t,"decodeSignature",{enumerable:!0,get:function(){return r.decodeSignature}}),Object.defineProperty(t,"encodeAminoPubkey",{enumerable:!0,get:function(){return r.encodeAminoPubkey}}),Object.defineProperty(t,"encodeBech32Pubkey",{enumerable:!0,get:function(){return r.encodeBech32Pubkey}}),Object.defineProperty(t,"encodeSecp256k1Pubkey",{enumerable:!0,get:function(){return r.encodeSecp256k1Pubkey}}),Object.defineProperty(t,"encodeSecp256k1Signature",{enumerable:!0,get:function(){return r.encodeSecp256k1Signature}}),Object.defineProperty(t,"isSecp256k1Pubkey",{enumerable:!0,get:function(){return r.isSecp256k1Pubkey}}),Object.defineProperty(t,"isSinglePubkey",{enumerable:!0,get:function(){return r.isSinglePubkey}}),Object.defineProperty(t,"isStdTx",{enumerable:!0,get:function(){return r.isStdTx}}),Object.defineProperty(t,"makeCosmoshubPath",{enumerable:!0,get:function(){return r.makeCosmoshubPath}}),Object.defineProperty(t,"makeSignDoc",{enumerable:!0,get:function(){return r.makeSignDoc}}),Object.defineProperty(t,"makeStdTx",{enumerable:!0,get:function(){return r.makeStdTx}}),Object.defineProperty(t,"parseCoins",{enumerable:!0,get:function(){return r.parseCoins}}),Object.defineProperty(t,"pubkeyToAddress",{enumerable:!0,get:function(){return r.pubkeyToAddress}}),Object.defineProperty(t,"pubkeyToRawAddress",{enumerable:!0,get:function(){return r.pubkeyToRawAddress}}),Object.defineProperty(t,"pubkeyType",{enumerable:!0,get:function(){return r.pubkeyType}}),Object.defineProperty(t,"rawSecp256k1PubkeyToRawAddress",{enumerable:!0,get:function(){return r.rawSecp256k1PubkeyToRawAddress}}),Object.defineProperty(t,"Secp256k1HdWallet",{enumerable:!0,get:function(){return r.Secp256k1HdWallet}}),Object.defineProperty(t,"Secp256k1Wallet",{enumerable:!0,get:function(){return r.Secp256k1Wallet}}),Object.defineProperty(t,"serializeSignDoc",{enumerable:!0,get:function(){return r.serializeSignDoc}})},3685:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toBinary=t.SigningCosmWasmClient=t.fromBinary=t.CosmWasmClient=void 0;var r=n(4926);Object.defineProperty(t,"CosmWasmClient",{enumerable:!0,get:function(){return r.CosmWasmClient}}),Object.defineProperty(t,"fromBinary",{enumerable:!0,get:function(){return r.fromBinary}}),Object.defineProperty(t,"SigningCosmWasmClient",{enumerable:!0,get:function(){return r.SigningCosmWasmClient}}),Object.defineProperty(t,"toBinary",{enumerable:!0,get:function(){return r.toBinary}})},8010:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Random=t.pathToString=t.Bip39=void 0;var r=n(9562);Object.defineProperty(t,"Bip39",{enumerable:!0,get:function(){return r.Bip39}}),Object.defineProperty(t,"pathToString",{enumerable:!0,get:function(){return r.pathToString}}),Object.defineProperty(t,"Random",{enumerable:!0,get:function(){return r.Random}})},1558:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUtf8=t.toRfc3339=t.toHex=t.toBech32=t.toBase64=t.toAscii=t.fromUtf8=t.fromRfc3339=t.fromHex=t.fromBech32=t.fromBase64=t.fromAscii=t.Bech32=void 0;var r=n(8972);Object.defineProperty(t,"Bech32",{enumerable:!0,get:function(){return r.Bech32}}),Object.defineProperty(t,"fromAscii",{enumerable:!0,get:function(){return r.fromAscii}}),Object.defineProperty(t,"fromBase64",{enumerable:!0,get:function(){return r.fromBase64}}),Object.defineProperty(t,"fromBech32",{enumerable:!0,get:function(){return r.fromBech32}}),Object.defineProperty(t,"fromHex",{enumerable:!0,get:function(){return r.fromHex}}),Object.defineProperty(t,"fromRfc3339",{enumerable:!0,get:function(){return r.fromRfc3339}}),Object.defineProperty(t,"fromUtf8",{enumerable:!0,get:function(){return r.fromUtf8}}),Object.defineProperty(t,"toAscii",{enumerable:!0,get:function(){return r.toAscii}}),Object.defineProperty(t,"toBase64",{enumerable:!0,get:function(){return r.toBase64}}),Object.defineProperty(t,"toBech32",{enumerable:!0,get:function(){return r.toBech32}}),Object.defineProperty(t,"toHex",{enumerable:!0,get:function(){return r.toHex}}),Object.defineProperty(t,"toRfc3339",{enumerable:!0,get:function(){return r.toRfc3339}}),Object.defineProperty(t,"toUtf8",{enumerable:!0,get:function(){return r.toUtf8}})},5237:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaucetClient=void 0;var r=n(1467);Object.defineProperty(t,"FaucetClient",{enumerable:!0,get:function(){return r.FaucetClient}})},372:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupNodeLedger=t.setupNodeLocal=t.setupWebLedger=t.setupWebKeplr=void 0;const r=n(6910),o=n(3685),i=n(6780),a=n(2126);t.setupWebKeplr=async function(e){if(!window.keplr)throw new Error("Keplr is not supported or installed on this browser!");await window.keplr.enable(e.chainId).catch((()=>{throw new Error("Keplr can't connect to this chainId!")}));const{prefix:t,gasPrice:n}=e,r=await window.getOfflineSignerAuto(e.chainId);return await o.SigningCosmWasmClient.connectWithSigner(e.rpcEndpoint,r,{prefix:t,gasPrice:n})},t.setupWebLedger=async function(e,t){const{prefix:n,gasPrice:a}=e,s=12e4,c=await t.create(s,s),d=new i.LedgerSigner(c,{hdPaths:[(0,r.makeCosmoshubPath)(0)],prefix:n}),u=await o.SigningCosmWasmClient.connectWithSigner(e.rpcEndpoint,d,{prefix:n,gasPrice:a});if(await u.getChainId()!==e.chainId)throw Error("Given ChainId doesn't match the clients ChainID!");return u},t.setupNodeLocal=async function(e,t){const{prefix:n,gasPrice:r}=e,i=await a.DirectSecp256k1HdWallet.fromMnemonic(t,{prefix:n}),s=await o.SigningCosmWasmClient.connectWithSigner(e.rpcEndpoint,i,{prefix:n,gasPrice:r});if(await s.getChainId()!==e.chainId)throw Error("Given ChainId doesn't match the clients ChainID!");return s},t.setupNodeLedger=async function(e,t){const{prefix:n,gasPrice:a}=e,s=12e4,c=await t.create(s,s),d=new i.LedgerSigner(c,{hdPaths:[(0,r.makeCosmoshubPath)(0)],prefix:n}),u=await o.SigningCosmWasmClient.connectWithSigner(e.rpcEndpoint,d,{prefix:n,gasPrice:a});if(await u.getChainId()!==e.chainId)throw Error("Given ChainId doesn't match the clients ChainID!");return u}},3607:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.setupWebLedger=t.setupWebKeplr=t.setupNodeLocal=t.setupNodeLedger=void 0,o(n(6910),t),o(n(3685),t),o(n(8010),t),o(n(1558),t),o(n(5237),t),o(n(6780),t),o(n(6490),t),o(n(2126),t),o(n(8099),t),o(n(8120),t);var i=n(372);Object.defineProperty(t,"setupNodeLedger",{enumerable:!0,get:function(){return i.setupNodeLedger}}),Object.defineProperty(t,"setupNodeLocal",{enumerable:!0,get:function(){return i.setupNodeLocal}}),Object.defineProperty(t,"setupWebKeplr",{enumerable:!0,get:function(){return i.setupWebKeplr}}),Object.defineProperty(t,"setupWebLedger",{enumerable:!0,get:function(){return i.setupWebLedger}})},6780:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LedgerSigner=void 0;var r=n(8121);Object.defineProperty(t,"LedgerSigner",{enumerable:!0,get:function(){return r.LedgerSigner}})},6490:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Decimal=void 0;var r=n(6961);Object.defineProperty(t,"Decimal",{enumerable:!0,get:function(){return r.Decimal}})},2126:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Registry=t.DirectSecp256k1HdWallet=void 0;var r=n(4087);Object.defineProperty(t,"DirectSecp256k1HdWallet",{enumerable:!0,get:function(){return r.DirectSecp256k1HdWallet}}),Object.defineProperty(t,"Registry",{enumerable:!0,get:function(){return r.Registry}})},8099:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupTxExtension=t.setupStakingExtension=t.setupMintExtension=t.setupIbcExtension=t.setupGovExtension=t.setupDistributionExtension=t.setupBankExtension=t.setupAuthExtension=t.createPagination=t.calculateFee=t.QueryClient=t.GasPrice=void 0;var r=n(4658);Object.defineProperty(t,"GasPrice",{enumerable:!0,get:function(){return r.GasPrice}}),Object.defineProperty(t,"QueryClient",{enumerable:!0,get:function(){return r.QueryClient}});var o=n(4658);Object.defineProperty(t,"calculateFee",{enumerable:!0,get:function(){return o.calculateFee}}),Object.defineProperty(t,"createPagination",{enumerable:!0,get:function(){return o.createPagination}}),Object.defineProperty(t,"setupAuthExtension",{enumerable:!0,get:function(){return o.setupAuthExtension}}),Object.defineProperty(t,"setupBankExtension",{enumerable:!0,get:function(){return o.setupBankExtension}}),Object.defineProperty(t,"setupDistributionExtension",{enumerable:!0,get:function(){return o.setupDistributionExtension}}),Object.defineProperty(t,"setupGovExtension",{enumerable:!0,get:function(){return o.setupGovExtension}}),Object.defineProperty(t,"setupIbcExtension",{enumerable:!0,get:function(){return o.setupIbcExtension}}),Object.defineProperty(t,"setupMintExtension",{enumerable:!0,get:function(){return o.setupMintExtension}}),Object.defineProperty(t,"setupStakingExtension",{enumerable:!0,get:function(){return o.setupStakingExtension}}),Object.defineProperty(t,"setupTxExtension",{enumerable:!0,get:function(){return o.setupTxExtension}})},8120:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNonNullObject=void 0;var r=n(5553);Object.defineProperty(t,"isNonNullObject",{enumerable:!0,get:function(){return r.isNonNullObject}})},4927:(e,t,n)=>{function r(e){try{if(!n.g.localStorage)return!1}catch(e){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).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)}}},3813:function(e,t,n){"use strict";var r,o=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},r(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0}),t.NO_IL=t.NO=t.MemoryStream=t.Stream=void 0;var i=n(868),a=n(2503),s=i.default(a.getPolyfill()),c={};function d(){}function u(e){for(var t=e.length,n=Array(t),r=0;r=this.max&&t._n(e)},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),B=function(){function e(e,t){this.out=e,this.op=t}return e.prototype._n=function(){this.op.end()},e.prototype._e=function(e){this.out._e(e)},e.prototype._c=function(){this.op.end()},e}(),_=function(){function e(e,t){this.type="endWhen",this.ins=t,this.out=c,this.o=e,this.oil=A}return e.prototype._start=function(e){this.out=e,this.o._add(this.oil=new B(e,this)),this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.o._remove(this.oil),this.out=c,this.oil=A},e.prototype.end=function(){var e=this.out;e!==c&&e._c()},e.prototype._n=function(e){var t=this.out;t!==c&&t._n(e)},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){this.end()},e}(),S=function(){function e(e,t){this.type="filter",this.ins=t,this.out=c,this.f=e}return e.prototype._start=function(e){this.out=e,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=l(this,e,t);n!==c&&n&&t._n(e)}},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),k=function(){function e(e,t){this.out=e,this.op=t}return e.prototype._n=function(e){this.out._n(e)},e.prototype._e=function(e){this.out._e(e)},e.prototype._c=function(){this.op.inner=c,this.op.less()},e}(),O=function(){function e(e){this.type="flatten",this.ins=e,this.out=c,this.open=!0,this.inner=c,this.il=A}return e.prototype._start=function(e){this.out=e,this.open=!0,this.inner=c,this.il=A,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.inner!==c&&this.inner._remove(this.il),this.out=c,this.open=!0,this.inner=c,this.il=A},e.prototype.less=function(){var e=this.out;e!==c&&(this.open||this.inner!==c||e._c())},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=this.inner,r=this.il;n!==c&&r!==A&&n._remove(r),(this.inner=e)._add(this.il=new k(t,this))}},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){this.open=!1,this.less()},e}(),Q=function(){function e(e,t,n){var r=this;this.type="fold",this.ins=n,this.out=c,this.f=function(t){return e(r.acc,t)},this.acc=this.seed=t}return e.prototype._start=function(e){this.out=e,this.acc=this.seed,e._n(this.acc),this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c,this.acc=this.seed},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=l(this,e,t);n!==c&&t._n(this.acc=n)}},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),R=function(){function e(e){this.type="last",this.ins=e,this.out=c,this.has=!1,this.val=c}return e.prototype._start=function(e){this.out=e,this.has=!1,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c,this.val=c},e.prototype._n=function(e){this.has=!0,this.val=e},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&(this.has?(e._n(this.val),e._c()):e._e(new Error("last() failed because input stream completed")))},e}(),P=function(){function e(e,t){this.type="map",this.ins=t,this.out=c,this.f=e}return e.prototype._start=function(e){this.out=e,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=l(this,e,t);n!==c&&t._n(n)}},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),N=function(){function e(e){this.type="remember",this.ins=e,this.out=c}return e.prototype._start=function(e){this.out=e,this.ins._add(e)},e.prototype._stop=function(){this.ins._remove(this.out),this.out=c},e}(),x=function(){function e(e,t){this.type="replaceError",this.ins=t,this.out=c,this.f=e}return e.prototype._start=function(e){this.out=e,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c},e.prototype._n=function(e){var t=this.out;t!==c&&t._n(e)},e.prototype._e=function(e){var t=this.out;if(t!==c)try{this.ins._remove(this),(this.ins=this.f(e))._add(this)}catch(e){t._e(e)}},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),D=function(){function e(e,t){this.type="startWith",this.ins=e,this.out=c,this.val=t}return e.prototype._start=function(e){this.out=e,this.out._n(this.val),this.ins._add(e)},e.prototype._stop=function(){this.ins._remove(this.out),this.out=c},e}(),M=function(){function e(e,t){this.type="take",this.ins=t,this.out=c,this.max=e,this.taken=0}return e.prototype._start=function(e){this.out=e,this.taken=0,this.max<=0?e._c():this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=++this.taken;n1))if(this._stopID!==c)clearTimeout(this._stopID),this._stopID=c;else{var r=this._prod;r!==c&&r._start(this)}},e.prototype._remove=function(e){var t=this,n=this._target;if(n)return n._remove(e);var r=this._ils,o=r.indexOf(e);o>-1&&(r.splice(o,1),this._prod!==c&&r.length<=0?(this._err=c,this._stopID=setTimeout((function(){return t._stopNow()}))):1===r.length&&this._pruneCycles())},e.prototype._pruneCycles=function(){this._hasNoSinks(this,[])&&this._remove(this._ils[0])},e.prototype._hasNoSinks=function(e,t){if(-1!==t.indexOf(e))return!0;if(e.out===this)return!0;if(e.out&&e.out!==c)return this._hasNoSinks(e.out,t.concat(e));if(e._ils){for(var n=0,r=e._ils.length;n1)this._has&&e._n(this._v);else if(this._stopID!==c)this._has&&e._n(this._v),clearTimeout(this._stopID),this._stopID=c;else if(this._has)e._n(this._v);else{var r=this._prod;r!==c&&r._start(this)}},t.prototype._stopNow=function(){this._has=!1,e.prototype._stopNow.call(this)},t.prototype._x=function(){this._has=!1,e.prototype._x.call(this)},t.prototype.map=function(e){return this._map(e)},t.prototype.mapTo=function(t){return e.prototype.mapTo.call(this,t)},t.prototype.take=function(t){return e.prototype.take.call(this,t)},t.prototype.endWhen=function(t){return e.prototype.endWhen.call(this,t)},t.prototype.replaceError=function(t){return e.prototype.replaceError.call(this,t)},t.prototype.remember=function(){return this},t.prototype.debug=function(t){return e.prototype.debug.call(this,t)},t}(T);t.MemoryStream=U;var H=T;t.default=H},9602:e=>{"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},4411:(e,t,n)=>{"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,o=arguments.length;n1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var o=0;null!==r;o++)n=e(n,r.value,o),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var o=this.length-1;null!==r;o--)n=e(n,r.value,o),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(tthis.length&&(t=this.length);for(var o=0,i=this.head;null!==i&&othis.length&&(t=this.length);for(var o=this.length,i=this.tail;null!==i&&o>t;o--)i=i.prev;for(;null!==i&&o>e;o--,i=i.prev)n.push(i.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,i=this.head;null!==i&&r{},5568:()=>{},5992:()=>{},2361:()=>{},9630:()=>{},8593:e=>{"use strict";e.exports=JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}')},8597:e=>{"use strict";e.exports={i8:"6.5.4"}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var __webpack_exports__=__webpack_require__(3607);return __webpack_exports__})()})); +//# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/dist/bundle.js.map b/dist/bundle.js.map new file mode 100644 index 0000000..be7452a --- /dev/null +++ b/dist/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,IARvB,CASGK,MAAM,WACT,8CCVA,SAASC,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQC,EAAKC,GACpE,IACE,IAAIC,EAAOP,EAAIK,GAAKC,GAChBE,EAAQD,EAAKC,MACjB,MAAOC,GAEP,YADAP,EAAOO,GAILF,EAAKG,KACPT,EAAQO,GAERG,QAAQV,QAAQO,GAAOI,KAAKT,EAAOC,GAwBvCT,EAAOD,QApBP,SAA2BmB,GACzB,OAAO,WACL,IAAIf,EAAOgB,KACPC,EAAOC,UACX,OAAO,IAAIL,SAAQ,SAAUV,EAASC,GACpC,IAAIF,EAAMa,EAAGI,MAAMnB,EAAMiB,GAEzB,SAASZ,EAAMK,GACbT,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,GAGlE,SAASJ,EAAOc,GACdnB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASc,GAGnEf,OAAMgB,QAKwBxB,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,kBC9BzGC,EAAOD,QANP,SAAyB2B,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,sCAIU5B,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,kBCNvG,SAAS8B,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWxB,IAAKwB,IAalDlC,EAAOD,QATP,SAAsB4B,EAAaa,EAAYC,GAM7C,OALID,GAAYX,EAAkBF,EAAYe,UAAWF,GACrDC,GAAaZ,EAAkBF,EAAac,GAChDH,OAAOC,eAAeZ,EAAa,YAAa,CAC9CU,UAAU,IAELV,GAGsB3B,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,kBCbpGC,EAAOD,QANP,SAAgC4C,GAC9B,OAAOA,GAAOA,EAAIlB,WAAakB,EAAM,CACnC,QAAWA,IAI0B3C,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,eCN9G,SAAS6C,EAAQD,GAGf,OAAQ3C,EAAOD,QAAU6C,EAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUH,GAC/G,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBE,QAAUF,EAAII,cAAgBF,QAAUF,IAAQE,OAAOH,UAAY,gBAAkBC,GACvH3C,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,QAAU6C,EAAQD,GAG5F3C,EAAOD,QAAU6C,EAAS5C,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,wBCV/FC,EAAOD,QAAU,EAAjB,mCCCAuC,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQiD,WAAajD,EAAQkD,cAAW,EACxC,MAAMC,EAAc,EAAQ,KAe5B,SAASC,EAAcC,GACnB,MAAMC,EAAW,GACXC,EAAS,GACTC,EAAW,IAAIC,IACrB,IAAK,MAAMC,KAASL,EAAMM,QACtB,GAAID,EAAME,MAAO,CACb,MAAMC,EAAS,CAAED,MAAOE,EAAcJ,EAAME,MAAOL,EAAQC,IAC3DF,EAASS,KAAKF,OAEb,KAAIH,EAAMM,SAYX,MAAM,IAAIC,MAAM,0CAZK,CACrB,MAAMC,EAAMR,EAAMM,SACZH,EAAS,CACXG,SAAU,CACNrD,IAAKuD,EAAIvD,IACTwD,KAAML,EAAcI,EAAIC,KAAMZ,EAAQC,GACtCY,MAAON,EAAcI,EAAIE,MAAOb,EAAQC,KAGhDF,EAASS,KAAKF,IAMtB,MAAO,CACHF,QAASL,EACTe,aAAcd,GAGtB,SAASO,EAAcF,EAAOL,EAAQC,GAClC,IAAKI,EACD,OAEJ,MAAMU,EAAOV,EAAMU,KAAKC,KAAKC,IACzB,MAAMC,EAAMtB,EAAYuB,MAAMC,QAAQC,OAAOJ,GAAOK,SACpD,IAAIC,EAAMtB,EAASuB,IAAIN,GAMvB,YALYhD,IAARqD,IACAA,EAAMvB,EAAOrB,OACbqB,EAAOQ,KAAKS,GACZhB,EAASwB,IAAIP,EAAKK,IAEfA,KAEX,MAAO,CACHnE,IAAKiD,EAAMjD,IACXG,MAAO8C,EAAM9C,MACbmE,KAAMrB,EAAMqB,KACZX,KAAAA,GAGR,SAASY,EAAgB7B,GACrB,MAAME,EAASF,EAAMgB,aAmBrB,MAAO,CACHV,QAnBYN,EAAMM,QAAQY,KAAKY,IAC/B,GAAIA,EAAKvB,MACL,MAAO,CAAEA,MAAOwB,EAAgBD,EAAKvB,MAAOL,IAE3C,GAAI4B,EAAKnB,SAAU,CACpB,MAAME,EAAMiB,EAAKnB,SACjB,MAAO,CACHA,SAAU,CACNrD,IAAKuD,EAAIvD,IACTwD,KAAMiB,EAAgBlB,EAAIC,KAAMZ,GAChCa,MAAOgB,EAAgBlB,EAAIE,MAAOb,KAK1C,MAAM,IAAIU,MAAM,8CAO5B,SAASmB,EAAgBxB,EAAOL,GAC5B,IAAKK,EACD,OAEJ,MAAM,IAAEjD,EAAG,MAAEG,EAAK,KAAEmE,EAAI,KAAEX,GAASV,EAEnC,MAAO,CAAEjD,IAAAA,EAAKG,MAAAA,EAAOmE,KAAAA,EAAMX,MADVA,GAAQ,IAAIC,KAAKO,GAAQvB,EAAOuB,MAvFrD9E,EAAQkD,SANR,SAAkBG,GACd,OAAKA,EAAMgC,MAGJ,CAAEC,WAAYlC,EAAcC,EAAMgC,QAF9BhC,GAWfrD,EAAQiD,WANR,SAAoBI,GAChB,OAAKA,EAAMiC,WAGJ,CAAED,MAAOH,EAAgB7B,EAAMiC,aAF3BjC,+BCVf,IA8BYkC,EAAiBC,EAfrBd,EAfJe,EAAY,EAAQ,MAGpBC,EAAUD,EAAUE,OAAQC,EAAUH,EAAUI,OAAQC,EAAQL,EAAUM,KAG1EC,EAAQP,EAAUQ,MAAe,UAAMR,EAAUQ,MAAe,QAAI,IAExED,EAAMtB,QAOEA,EAAQ,IAcNwB,QACEX,EAAa,IAAIC,EAASjD,OAAO4D,OAAOZ,IACrCA,EAAW,GAAK,WAAa,EACpCC,EAAOD,EAAW,GAAK,UAAY,EACnCC,EAAOD,EAAW,GAAK,UAAY,EACnCC,EAAOD,EAAW,GAAK,UAAY,EACnCC,EAAOD,EAAW,GAAK,aAAe,EACtCC,EAAOD,EAAW,GAAK,WAAa,EACpCC,EAAOD,EAAW,GAAK,cAAgB,EAChCC,GAoBXd,EAAM0B,SAAW,WACb,IAAIb,EAAa,GAAIC,EAASjD,OAAO4D,OAAOZ,GAU5C,OATAC,EAAOD,EAAW,GAAK,aAAe,EACtCC,EAAOD,EAAW,GAAK,aAAe,EACtCC,EAAOD,EAAW,GAAK,WAAa,EACpCC,EAAOD,EAAW,GAAK,eAAiB,EACxCC,EAAOD,EAAW,GAAK,kBAAoB,EAC3CC,EAAOD,EAAW,GAAK,eAAiB,EACxCC,EAAOD,EAAW,GAAK,kBAAoB,EAC3CC,EAAOD,EAAW,GAAK,oBAAsB,EAC7CC,EAAOD,EAAW,GAAK,oBAAsB,EACtCC,EAXM,GAcjBd,EAAM2B,eAAiB,WAsCnB,SAASA,EAAeC,GAEpB,GADAlF,KAAKkD,KAAO,GACRgC,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KA+QhD,OAtQAoE,EAAe1D,UAAUhC,IAAMmF,EAAMU,UAAU,IAQ/CH,EAAe1D,UAAU7B,MAAQgF,EAAMU,UAAU,IAQjDH,EAAe1D,UAAUsC,KAAO,KAQhCoB,EAAe1D,UAAU2B,KAAOwB,EAAMW,WAUtCJ,EAAeF,OAAS,SAAgBG,GACpC,OAAO,IAAID,EAAeC,IAY9BD,EAAezB,OAAS,SAAgB8B,EAASC,GAS7C,GARKA,IACDA,EAASf,EAAQO,UACF,MAAfO,EAAQ/F,KAAe+F,EAAQE,eAAe,QAC9CD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ/F,KACtC,MAAjB+F,EAAQ5F,OAAiB4F,EAAQE,eAAe,UAChDD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ5F,OACvC,MAAhB4F,EAAQzB,MAAgByB,EAAQE,eAAe,SAC/CZ,EAAMtB,MAAMqC,OAAOnC,OAAO8B,EAAQzB,KAAM0B,EAAOE,OAA8B,IAAIG,QAAQC,SACzE,MAAhBP,EAAQpC,MAAgBoC,EAAQpC,KAAKpC,OACrC,IAAK,IAAID,EAAI,EAAGA,EAAIyE,EAAQpC,KAAKpC,SAAUD,EACvC+D,EAAMtB,MAAMC,QAAQC,OAAO8B,EAAQpC,KAAKrC,GAAI0E,EAAOE,OAA8B,IAAIG,QAAQC,SACrG,OAAON,GAYXN,EAAea,gBAAkB,SAAyBR,EAASC,GAC/D,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxCZ,EAAec,OAAS,SAAgBC,EAAQlF,GACtCkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAM2B,eACtFe,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ/F,IAAMyG,EAAON,QACrB,MACJ,KAAK,EACDJ,EAAQ5F,MAAQsG,EAAON,QACvB,MACJ,KAAK,EACDJ,EAAQzB,KAAOe,EAAMtB,MAAMqC,OAAOI,OAAOC,EAAQA,EAAOP,UACxD,MACJ,KAAK,EACKH,EAAQpC,MAAQoC,EAAQpC,KAAKpC,SAC/BwE,EAAQpC,KAAO,IACnBoC,EAAQpC,KAAKP,KAAKiC,EAAMtB,MAAMC,QAAQwC,OAAOC,EAAQA,EAAOP,WAC5D,MACJ,QACIO,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXL,EAAeqB,gBAAkB,SAAyBN,GAGtD,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtCR,EAAesB,OAAS,SAAgBjB,GACpC,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,GAAmB,MAAfA,EAAQ/F,KAAe+F,EAAQE,eAAe,UACxCF,EAAQ/F,KAAqC,iBAAvB+F,EAAQ/F,IAAIuB,QAAuB4D,EAAM8B,SAASlB,EAAQ/F,MAClF,MAAO,uBACf,GAAqB,MAAjB+F,EAAQ5F,OAAiB4F,EAAQE,eAAe,YAC1CF,EAAQ5F,OAAyC,iBAAzB4F,EAAQ5F,MAAMoB,QAAuB4D,EAAM8B,SAASlB,EAAQ5F,QACtF,MAAO,yBACf,GAAoB,MAAhB4F,EAAQzB,MAAgByB,EAAQE,eAAe,UAC3C7F,EAAQiF,EAAMtB,MAAMqC,OAAOY,OAAOjB,EAAQzB,OAE1C,MAAO,QAAUlE,EAEzB,GAAoB,MAAhB2F,EAAQpC,MAAgBoC,EAAQE,eAAe,QAAS,CACxD,IAAKiB,MAAMC,QAAQpB,EAAQpC,MACvB,MAAO,uBACX,IAAK,IAAIrC,EAAI,EAAGA,EAAIyE,EAAQpC,KAAKpC,SAAUD,EAAG,CAC1C,IAAIlB,EACJ,GADIA,EAAQiF,EAAMtB,MAAMC,QAAQgD,OAAOjB,EAAQpC,KAAKrC,IAEhD,MAAO,QAAUlB,GAG7B,OAAO,MAWXsF,EAAe0B,WAAa,SAAoBC,GAC5C,GAAIA,aAAkBhC,EAAMtB,MAAM2B,eAC9B,OAAO2B,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAM2B,eAW9B,GAVkB,MAAd2B,EAAOrH,MACmB,iBAAfqH,EAAOrH,IACdmF,EAAMmC,OAAOd,OAAOa,EAAOrH,IAAK+F,EAAQ/F,IAAMmF,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOrH,MAAO,GAC3FqH,EAAOrH,IAAIuB,SAChBwE,EAAQ/F,IAAMqH,EAAOrH,MACT,MAAhBqH,EAAOlH,QACqB,iBAAjBkH,EAAOlH,MACdgF,EAAMmC,OAAOd,OAAOa,EAAOlH,MAAO4F,EAAQ5F,MAAQgF,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOlH,QAAS,GACjGkH,EAAOlH,MAAMoB,SAClBwE,EAAQ5F,MAAQkH,EAAOlH,QACZ,MAAfkH,EAAO/C,KAAc,CACrB,GAA2B,iBAAhB+C,EAAO/C,KACd,MAAMpD,UAAU,+CACpB6E,EAAQzB,KAAOe,EAAMtB,MAAMqC,OAAOgB,WAAWC,EAAO/C,MAExD,GAAI+C,EAAO1D,KAAM,CACb,IAAKuD,MAAMC,QAAQE,EAAO1D,MACtB,MAAMzC,UAAU,8CACpB6E,EAAQpC,KAAO,GACf,IAAK,IAAIrC,EAAI,EAAGA,EAAI+F,EAAO1D,KAAKpC,SAAUD,EAAG,CACzC,GAA8B,iBAAnB+F,EAAO1D,KAAKrC,GACnB,MAAMJ,UAAU,+CACpB6E,EAAQpC,KAAKrC,GAAK+D,EAAMtB,MAAMC,QAAQoD,WAAWC,EAAO1D,KAAKrC,KAGrE,OAAOyE,GAYXL,EAAe6B,SAAW,SAAkBxB,EAASyB,GAC5CA,IACDA,EAAU,IACd,IAAIH,EAAS,GA0Bb,IAzBIG,EAAQC,QAAUD,EAAQE,YAC1BL,EAAO1D,KAAO,IACd6D,EAAQE,WACJF,EAAQrB,QAAUwB,OAClBN,EAAOrH,IAAM,IAEbqH,EAAOrH,IAAM,GACTwH,EAAQrB,QAAUe,QAClBG,EAAOrH,IAAMmF,EAAMU,UAAUwB,EAAOrH,OAExCwH,EAAQrB,QAAUwB,OAClBN,EAAOlH,MAAQ,IAEfkH,EAAOlH,MAAQ,GACXqH,EAAQrB,QAAUe,QAClBG,EAAOlH,MAAQgF,EAAMU,UAAUwB,EAAOlH,SAE9CkH,EAAO/C,KAAO,MAEC,MAAfyB,EAAQ/F,KAAe+F,EAAQE,eAAe,SAC9CoB,EAAOrH,IAAMwH,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ/F,IAAK,EAAG+F,EAAQ/F,IAAIuB,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ/F,KAAO+F,EAAQ/F,KAC7J,MAAjB+F,EAAQ5F,OAAiB4F,EAAQE,eAAe,WAChDoB,EAAOlH,MAAQqH,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ5F,MAAO,EAAG4F,EAAQ5F,MAAMoB,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ5F,OAAS4F,EAAQ5F,OACtK,MAAhB4F,EAAQzB,MAAgByB,EAAQE,eAAe,UAC/CoB,EAAO/C,KAAOe,EAAMtB,MAAMqC,OAAOmB,SAASxB,EAAQzB,KAAMkD,IACxDzB,EAAQpC,MAAQoC,EAAQpC,KAAKpC,OAAQ,CACrC8F,EAAO1D,KAAO,GACd,IAAK,IAAImE,EAAI,EAAGA,EAAI/B,EAAQpC,KAAKpC,SAAUuG,EACvCT,EAAO1D,KAAKmE,GAAKzC,EAAMtB,MAAMC,QAAQuD,SAASxB,EAAQpC,KAAKmE,GAAIN,GAEvE,OAAOH,GAUX3B,EAAe1D,UAAU+F,OAAS,WAC9B,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDtC,EA1TY,GA6TvB3B,EAAMkE,kBAAoB,WAmBtB,SAASA,EAAkBtC,GACvB,GAAIA,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAiOhD,OAxNA2G,EAAkBjG,UAAUhC,IAAMmF,EAAMU,UAAU,IAQlDoC,EAAkBjG,UAAUwB,KAAO,KAQnCyE,EAAkBjG,UAAUyB,MAAQ,KAUpCwE,EAAkBzC,OAAS,SAAgBG,GACvC,OAAO,IAAIsC,EAAkBtC,IAYjCsC,EAAkBhE,OAAS,SAAgB8B,EAASC,GAShD,OARKA,IACDA,EAASf,EAAQO,UACF,MAAfO,EAAQ/F,KAAe+F,EAAQE,eAAe,QAC9CD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ/F,KACvC,MAAhB+F,EAAQvC,MAAgBuC,EAAQE,eAAe,SAC/CZ,EAAMtB,MAAM2B,eAAezB,OAAO8B,EAAQvC,KAAMwC,EAAOE,OAA8B,IAAIG,QAAQC,SAChF,MAAjBP,EAAQtC,OAAiBsC,EAAQE,eAAe,UAChDZ,EAAMtB,MAAM2B,eAAezB,OAAO8B,EAAQtC,MAAOuC,EAAOE,OAA8B,IAAIG,QAAQC,SAC/FN,GAYXiC,EAAkB1B,gBAAkB,SAAyBR,EAASC,GAClE,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxC2B,EAAkBzB,OAAS,SAAgBC,EAAQlF,GACzCkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMkE,kBACtFxB,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ/F,IAAMyG,EAAON,QACrB,MACJ,KAAK,EACDJ,EAAQvC,KAAO6B,EAAMtB,MAAM2B,eAAec,OAAOC,EAAQA,EAAOP,UAChE,MACJ,KAAK,EACDH,EAAQtC,MAAQ4B,EAAMtB,MAAM2B,eAAec,OAAOC,EAAQA,EAAOP,UACjE,MACJ,QACIO,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXkC,EAAkBlB,gBAAkB,SAAyBN,GAGzD,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtC+B,EAAkBjB,OAAS,SAAgBjB,GACvC,MAAuB,iBAAZA,GAAoC,OAAZA,EACxB,kBACQ,MAAfA,EAAQ/F,KAAe+F,EAAQE,eAAe,UACxCF,EAAQ/F,KAAqC,iBAAvB+F,EAAQ/F,IAAIuB,QAAuB4D,EAAM8B,SAASlB,EAAQ/F,MAC3E,uBACK,MAAhB+F,EAAQvC,MAAgBuC,EAAQE,eAAe,UAC3C7F,EAAQiF,EAAMtB,MAAM2B,eAAesB,OAAOjB,EAAQvC,OAE3C,QAAUpD,EAEJ,MAAjB2F,EAAQtC,OAAiBsC,EAAQE,eAAe,WAC5C7F,EAAQiF,EAAMtB,MAAM2B,eAAesB,OAAOjB,EAAQtC,QAE3C,SAAWrD,EAEnB,KATH,IAKIA,GAeZ6H,EAAkBb,WAAa,SAAoBC,GAC/C,GAAIA,aAAkBhC,EAAMtB,MAAMkE,kBAC9B,OAAOZ,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMkE,kBAM9B,GALkB,MAAdZ,EAAOrH,MACmB,iBAAfqH,EAAOrH,IACdmF,EAAMmC,OAAOd,OAAOa,EAAOrH,IAAK+F,EAAQ/F,IAAMmF,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOrH,MAAO,GAC3FqH,EAAOrH,IAAIuB,SAChBwE,EAAQ/F,IAAMqH,EAAOrH,MACV,MAAfqH,EAAO7D,KAAc,CACrB,GAA2B,iBAAhB6D,EAAO7D,KACd,MAAMtC,UAAU,kDACpB6E,EAAQvC,KAAO6B,EAAMtB,MAAM2B,eAAe0B,WAAWC,EAAO7D,MAEhE,GAAoB,MAAhB6D,EAAO5D,MAAe,CACtB,GAA4B,iBAAjB4D,EAAO5D,MACd,MAAMvC,UAAU,mDACpB6E,EAAQtC,MAAQ4B,EAAMtB,MAAM2B,eAAe0B,WAAWC,EAAO5D,OAEjE,OAAOsC,GAYXkC,EAAkBV,SAAW,SAAkBxB,EAASyB,GAC/CA,IACDA,EAAU,IACd,IAAIH,EAAS,GAkBb,OAjBIG,EAAQE,WACJF,EAAQrB,QAAUwB,OAClBN,EAAOrH,IAAM,IAEbqH,EAAOrH,IAAM,GACTwH,EAAQrB,QAAUe,QAClBG,EAAOrH,IAAMmF,EAAMU,UAAUwB,EAAOrH,OAE5CqH,EAAO7D,KAAO,KACd6D,EAAO5D,MAAQ,MAEA,MAAfsC,EAAQ/F,KAAe+F,EAAQE,eAAe,SAC9CoB,EAAOrH,IAAMwH,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ/F,IAAK,EAAG+F,EAAQ/F,IAAIuB,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ/F,KAAO+F,EAAQ/F,KAC9J,MAAhB+F,EAAQvC,MAAgBuC,EAAQE,eAAe,UAC/CoB,EAAO7D,KAAO6B,EAAMtB,MAAM2B,eAAe6B,SAASxB,EAAQvC,KAAMgE,IAC/C,MAAjBzB,EAAQtC,OAAiBsC,EAAQE,eAAe,WAChDoB,EAAO5D,MAAQ4B,EAAMtB,MAAM2B,eAAe6B,SAASxB,EAAQtC,MAAO+D,IAC/DH,GAUXY,EAAkBjG,UAAU+F,OAAS,WACjC,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDC,EAxPe,GA2P1BlE,EAAMmE,gBAAkB,WAoBpB,SAASA,EAAgBvC,GACrB,GAAIA,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAoChD,IAAI6G,EA0PJ,OArRAD,EAAgBlG,UAAUiB,MAAQ,KAQlCiF,EAAgBlG,UAAUqB,SAAW,KAQrC6E,EAAgBlG,UAAU0C,MAAQ,KAQlCwD,EAAgBlG,UAAU2C,WAAa,KAWvC/C,OAAOC,eAAeqG,EAAgBlG,UAAW,QAAS,CACtDoC,IAAKe,EAAMiD,YAAYD,EAAe,CAAC,QAAS,WAAY,QAAS,eACrE9D,IAAKc,EAAMkD,YAAYF,KAW3BD,EAAgB1C,OAAS,SAAgBG,GACrC,OAAO,IAAIuC,EAAgBvC,IAY/BuC,EAAgBjE,OAAS,SAAgB8B,EAASC,GAW9C,OAVKA,IACDA,EAASf,EAAQO,UACA,MAAjBO,EAAQ9C,OAAiB8C,EAAQE,eAAe,UAChDZ,EAAMtB,MAAM2B,eAAezB,OAAO8B,EAAQ9C,MAAO+C,EAAOE,OAA8B,IAAIG,QAAQC,SAC9E,MAApBP,EAAQ1C,UAAoB0C,EAAQE,eAAe,aACnDZ,EAAMtB,MAAMkE,kBAAkBhE,OAAO8B,EAAQ1C,SAAU2C,EAAOE,OAA8B,IAAIG,QAAQC,SACvF,MAAjBP,EAAQrB,OAAiBqB,EAAQE,eAAe,UAChDZ,EAAMtB,MAAMuE,WAAWrE,OAAO8B,EAAQrB,MAAOsB,EAAOE,OAA8B,IAAIG,QAAQC,SACxE,MAAtBP,EAAQpB,YAAsBoB,EAAQE,eAAe,eACrDZ,EAAMtB,MAAMwE,qBAAqBtE,OAAO8B,EAAQpB,WAAYqB,EAAOE,OAA8B,IAAIG,QAAQC,SAC1GN,GAYXkC,EAAgB3B,gBAAkB,SAAyBR,EAASC,GAChE,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxC4B,EAAgB1B,OAAS,SAAgBC,EAAQlF,GACvCkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMmE,gBACtFzB,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ9C,MAAQoC,EAAMtB,MAAM2B,eAAec,OAAOC,EAAQA,EAAOP,UACjE,MACJ,KAAK,EACDH,EAAQ1C,SAAWgC,EAAMtB,MAAMkE,kBAAkBzB,OAAOC,EAAQA,EAAOP,UACvE,MACJ,KAAK,EACDH,EAAQrB,MAAQW,EAAMtB,MAAMuE,WAAW9B,OAAOC,EAAQA,EAAOP,UAC7D,MACJ,KAAK,EACDH,EAAQpB,WAAaU,EAAMtB,MAAMwE,qBAAqB/B,OAAOC,EAAQA,EAAOP,UAC5E,MACJ,QACIO,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXmC,EAAgBnB,gBAAkB,SAAyBN,GAGvD,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtCgC,EAAgBlB,OAAS,SAAgBjB,GACrC,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,IAAIJ,EAAa,GACjB,GAAqB,MAAjBI,EAAQ9C,OAAiB8C,EAAQE,eAAe,WAChDN,EAAWjD,MAAQ,EAEXtC,EAAQiF,EAAMtB,MAAM2B,eAAesB,OAAOjB,EAAQ9C,QAElD,MAAO,SAAW7C,EAG9B,GAAwB,MAApB2F,EAAQ1C,UAAoB0C,EAAQE,eAAe,YAAa,CAChE,GAAyB,IAArBN,EAAWjD,MACX,MAAO,yBAIP,GAHJiD,EAAWjD,MAAQ,EAEXtC,EAAQiF,EAAMtB,MAAMkE,kBAAkBjB,OAAOjB,EAAQ1C,UAErD,MAAO,YAAcjD,EAGjC,GAAqB,MAAjB2F,EAAQrB,OAAiBqB,EAAQE,eAAe,SAAU,CAC1D,GAAyB,IAArBN,EAAWjD,MACX,MAAO,yBAIP,GAHJiD,EAAWjD,MAAQ,EAEXtC,EAAQiF,EAAMtB,MAAMuE,WAAWtB,OAAOjB,EAAQrB,OAE9C,MAAO,SAAWtE,EAG9B,GAA0B,MAAtB2F,EAAQpB,YAAsBoB,EAAQE,eAAe,cAAe,CACpE,GAAyB,IAArBN,EAAWjD,MACX,MAAO,yBAGP,IAAItC,EACJ,GAHJuF,EAAWjD,MAAQ,EAEXtC,EAAQiF,EAAMtB,MAAMwE,qBAAqBvB,OAAOjB,EAAQpB,YAExD,MAAO,cAAgBvE,EAGnC,OAAO,MAWX8H,EAAgBd,WAAa,SAAoBC,GAC7C,GAAIA,aAAkBhC,EAAMtB,MAAMmE,gBAC9B,OAAOb,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMmE,gBAC9B,GAAoB,MAAhBb,EAAOpE,MAAe,CACtB,GAA4B,iBAAjBoE,EAAOpE,MACd,MAAM/B,UAAU,iDACpB6E,EAAQ9C,MAAQoC,EAAMtB,MAAM2B,eAAe0B,WAAWC,EAAOpE,OAEjE,GAAuB,MAAnBoE,EAAOhE,SAAkB,CACzB,GAA+B,iBAApBgE,EAAOhE,SACd,MAAMnC,UAAU,oDACpB6E,EAAQ1C,SAAWgC,EAAMtB,MAAMkE,kBAAkBb,WAAWC,EAAOhE,UAEvE,GAAoB,MAAhBgE,EAAO3C,MAAe,CACtB,GAA4B,iBAAjB2C,EAAO3C,MACd,MAAMxD,UAAU,iDACpB6E,EAAQrB,MAAQW,EAAMtB,MAAMuE,WAAWlB,WAAWC,EAAO3C,OAE7D,GAAyB,MAArB2C,EAAO1C,WAAoB,CAC3B,GAAiC,iBAAtB0C,EAAO1C,WACd,MAAMzD,UAAU,sDACpB6E,EAAQpB,WAAaU,EAAMtB,MAAMwE,qBAAqBnB,WAAWC,EAAO1C,YAE5E,OAAOoB,GAYXmC,EAAgBX,SAAW,SAAkBxB,EAASyB,GAC7CA,IACDA,EAAU,IACd,IAAIH,EAAS,GAqBb,OApBqB,MAAjBtB,EAAQ9C,OAAiB8C,EAAQE,eAAe,WAChDoB,EAAOpE,MAAQoC,EAAMtB,MAAM2B,eAAe6B,SAASxB,EAAQ9C,MAAOuE,GAC9DA,EAAQgB,SACRnB,EAAO3E,MAAQ,UAEC,MAApBqD,EAAQ1C,UAAoB0C,EAAQE,eAAe,cACnDoB,EAAOhE,SAAWgC,EAAMtB,MAAMkE,kBAAkBV,SAASxB,EAAQ1C,SAAUmE,GACvEA,EAAQgB,SACRnB,EAAO3E,MAAQ,aAEF,MAAjBqD,EAAQrB,OAAiBqB,EAAQE,eAAe,WAChDoB,EAAO3C,MAAQW,EAAMtB,MAAMuE,WAAWf,SAASxB,EAAQrB,MAAO8C,GAC1DA,EAAQgB,SACRnB,EAAO3E,MAAQ,UAEG,MAAtBqD,EAAQpB,YAAsBoB,EAAQE,eAAe,gBACrDoB,EAAO1C,WAAaU,EAAMtB,MAAMwE,qBAAqBhB,SAASxB,EAAQpB,WAAY6C,GAC9EA,EAAQgB,SACRnB,EAAO3E,MAAQ,eAEhB2E,GAUXa,EAAgBlG,UAAU+F,OAAS,WAC/B,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDE,EAtTa,GAyTxBnE,EAAMqC,OAAS,WAkCX,SAASA,EAAOT,GACZ,GAAIA,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAmahD,OA1ZA8E,EAAOpE,UAAUyG,KAAO,EAQxBrC,EAAOpE,UAAU0G,WAAa,EAQ9BtC,EAAOpE,UAAU2G,aAAe,EAQhCvC,EAAOpE,UAAUT,OAAS,EAQ1B6E,EAAOpE,UAAU4G,OAASzD,EAAMU,UAAU,IAU1CO,EAAOZ,OAAS,SAAgBG,GAC5B,OAAO,IAAIS,EAAOT,IAYtBS,EAAOnC,OAAS,SAAgB8B,EAASC,GAarC,OAZKA,IACDA,EAASf,EAAQO,UACD,MAAhBO,EAAQ0C,MAAgB1C,EAAQE,eAAe,SAC/CD,EAAOE,OAA8B,GAAG2C,MAAM9C,EAAQ0C,MAChC,MAAtB1C,EAAQ2C,YAAsB3C,EAAQE,eAAe,eACrDD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQ2C,YAC/B,MAAxB3C,EAAQ4C,cAAwB5C,EAAQE,eAAe,iBACvDD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQ4C,cACrC,MAAlB5C,EAAQxE,QAAkBwE,EAAQE,eAAe,WACjDD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQxE,QACrC,MAAlBwE,EAAQ6C,QAAkB7C,EAAQE,eAAe,WACjDD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ6C,QACpD5C,GAYXI,EAAOG,gBAAkB,SAAyBR,EAASC,GACvD,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxCF,EAAOI,OAAS,SAAgBC,EAAQlF,GAC9BkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMqC,OACtFK,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ0C,KAAOhC,EAAOoC,QACtB,MACJ,KAAK,EACD9C,EAAQ2C,WAAajC,EAAOoC,QAC5B,MACJ,KAAK,EACD9C,EAAQ4C,aAAelC,EAAOoC,QAC9B,MACJ,KAAK,EACD9C,EAAQxE,OAASkF,EAAOoC,QACxB,MACJ,KAAK,EACD9C,EAAQ6C,OAASnC,EAAON,QACxB,MACJ,QACIM,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXK,EAAOW,gBAAkB,SAAyBN,GAG9C,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtCE,EAAOY,OAAS,SAAgBjB,GAC5B,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,GAAoB,MAAhBA,EAAQ0C,MAAgB1C,EAAQE,eAAe,QAC/C,OAAQF,EAAQ0C,MAChB,QACI,MAAO,4BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAGT,GAA0B,MAAtB1C,EAAQ2C,YAAsB3C,EAAQE,eAAe,cACrD,OAAQF,EAAQ2C,YAChB,QACI,MAAO,kCACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAGT,GAA4B,MAAxB3C,EAAQ4C,cAAwB5C,EAAQE,eAAe,gBACvD,OAAQF,EAAQ4C,cAChB,QACI,MAAO,oCACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAGT,GAAsB,MAAlB5C,EAAQxE,QAAkBwE,EAAQE,eAAe,UACjD,OAAQF,EAAQxE,QAChB,QACI,MAAO,8BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAGT,OAAsB,MAAlBwE,EAAQ6C,QAAkB7C,EAAQE,eAAe,aAC3CF,EAAQ6C,QAA2C,iBAA1B7C,EAAQ6C,OAAOrH,QAAuB4D,EAAM8B,SAASlB,EAAQ6C,SACjF,0BACR,MAWXxC,EAAOgB,WAAa,SAAoBC,GACpC,GAAIA,aAAkBhC,EAAMtB,MAAMqC,OAC9B,OAAOiB,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMqC,OAC9B,OAAQiB,EAAOoB,MACf,IAAK,UACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,YACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,UACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,aACL,KAAK,EACD1C,EAAQ0C,KAAO,EAGnB,OAAQpB,EAAOqB,YACf,IAAK,UACL,KAAK,EACD3C,EAAQ2C,WAAa,EACrB,MACJ,IAAK,SACL,KAAK,EACD3C,EAAQ2C,WAAa,EACrB,MACJ,IAAK,SACL,KAAK,EACD3C,EAAQ2C,WAAa,EACrB,MACJ,IAAK,SACL,KAAK,EACD3C,EAAQ2C,WAAa,EACrB,MACJ,IAAK,YACL,KAAK,EACD3C,EAAQ2C,WAAa,EACrB,MACJ,IAAK,UACL,KAAK,EACD3C,EAAQ2C,WAAa,EACrB,MACJ,IAAK,aACL,KAAK,EACD3C,EAAQ2C,WAAa,EAGzB,OAAQrB,EAAOsB,cACf,IAAK,UACL,KAAK,EACD5C,EAAQ4C,aAAe,EACvB,MACJ,IAAK,SACL,KAAK,EACD5C,EAAQ4C,aAAe,EACvB,MACJ,IAAK,SACL,KAAK,EACD5C,EAAQ4C,aAAe,EACvB,MACJ,IAAK,SACL,KAAK,EACD5C,EAAQ4C,aAAe,EACvB,MACJ,IAAK,YACL,KAAK,EACD5C,EAAQ4C,aAAe,EACvB,MACJ,IAAK,UACL,KAAK,EACD5C,EAAQ4C,aAAe,EACvB,MACJ,IAAK,aACL,KAAK,EACD5C,EAAQ4C,aAAe,EAG3B,OAAQtB,EAAO9F,QACf,IAAK,YACL,KAAK,EACDwE,EAAQxE,OAAS,EACjB,MACJ,IAAK,YACL,KAAK,EACDwE,EAAQxE,OAAS,EACjB,MACJ,IAAK,UACL,KAAK,EACDwE,EAAQxE,OAAS,EACjB,MACJ,IAAK,cACL,KAAK,EACDwE,EAAQxE,OAAS,EACjB,MACJ,IAAK,iBACL,KAAK,EACDwE,EAAQxE,OAAS,EACjB,MACJ,IAAK,cACL,KAAK,EACDwE,EAAQxE,OAAS,EACjB,MACJ,IAAK,iBACL,KAAK,EACDwE,EAAQxE,OAAS,EACjB,MACJ,IAAK,mBACL,KAAK,EACDwE,EAAQxE,OAAS,EACjB,MACJ,IAAK,mBACL,KAAK,EACDwE,EAAQxE,OAAS,EAQrB,OALqB,MAAjB8F,EAAOuB,SACsB,iBAAlBvB,EAAOuB,OACdzD,EAAMmC,OAAOd,OAAOa,EAAOuB,OAAQ7C,EAAQ6C,OAASzD,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOuB,SAAU,GACpGvB,EAAOuB,OAAOrH,SACnBwE,EAAQ6C,OAASvB,EAAOuB,SACzB7C,GAYXK,EAAOmB,SAAW,SAAkBxB,EAASyB,GACpCA,IACDA,EAAU,IACd,IAAIH,EAAS,GAwBb,OAvBIG,EAAQE,WACRL,EAAOoB,KAAOjB,EAAQsB,QAAUnB,OAAS,UAAY,EACrDN,EAAOqB,WAAalB,EAAQsB,QAAUnB,OAAS,UAAY,EAC3DN,EAAOsB,aAAenB,EAAQsB,QAAUnB,OAAS,UAAY,EAC7DN,EAAO9F,OAASiG,EAAQsB,QAAUnB,OAAS,YAAc,EACrDH,EAAQrB,QAAUwB,OAClBN,EAAOuB,OAAS,IAEhBvB,EAAOuB,OAAS,GACZpB,EAAQrB,QAAUe,QAClBG,EAAOuB,OAASzD,EAAMU,UAAUwB,EAAOuB,WAG/B,MAAhB7C,EAAQ0C,MAAgB1C,EAAQE,eAAe,UAC/CoB,EAAOoB,KAAOjB,EAAQsB,QAAUnB,OAAStC,EAAMtB,MAAMwB,OAAOQ,EAAQ0C,MAAQ1C,EAAQ0C,MAC9D,MAAtB1C,EAAQ2C,YAAsB3C,EAAQE,eAAe,gBACrDoB,EAAOqB,WAAalB,EAAQsB,QAAUnB,OAAStC,EAAMtB,MAAMwB,OAAOQ,EAAQ2C,YAAc3C,EAAQ2C,YACxE,MAAxB3C,EAAQ4C,cAAwB5C,EAAQE,eAAe,kBACvDoB,EAAOsB,aAAenB,EAAQsB,QAAUnB,OAAStC,EAAMtB,MAAMwB,OAAOQ,EAAQ4C,cAAgB5C,EAAQ4C,cAClF,MAAlB5C,EAAQxE,QAAkBwE,EAAQE,eAAe,YACjDoB,EAAO9F,OAASiG,EAAQsB,QAAUnB,OAAStC,EAAMtB,MAAM0B,SAASM,EAAQxE,QAAUwE,EAAQxE,QACxE,MAAlBwE,EAAQ6C,QAAkB7C,EAAQE,eAAe,YACjDoB,EAAOuB,OAASpB,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ6C,OAAQ,EAAG7C,EAAQ6C,OAAOrH,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ6C,QAAU7C,EAAQ6C,QACvLvB,GAUXjB,EAAOpE,UAAU+F,OAAS,WACtB,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnD5B,EAzcI,GA4cfrC,EAAMC,QAAU,WAiCZ,SAASA,EAAQ2B,GACb,GAAIA,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAsQhD,OA7PA0C,EAAQhC,UAAUyG,KAAO,EAQzBzE,EAAQhC,UAAU4G,OAASzD,EAAMU,UAAU,IAQ3C7B,EAAQhC,UAAU+G,OAAS5D,EAAMU,UAAU,IAU3C7B,EAAQwB,OAAS,SAAgBG,GAC7B,OAAO,IAAI3B,EAAQ2B,IAYvB3B,EAAQC,OAAS,SAAgB8B,EAASC,GAStC,OARKA,IACDA,EAASf,EAAQO,UACD,MAAhBO,EAAQ0C,MAAgB1C,EAAQE,eAAe,SAC/CD,EAAOE,OAA8B,GAAG2C,MAAM9C,EAAQ0C,MACpC,MAAlB1C,EAAQ6C,QAAkB7C,EAAQE,eAAe,WACjDD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ6C,QACrC,MAAlB7C,EAAQgD,QAAkBhD,EAAQE,eAAe,WACjDD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQgD,QACpD/C,GAYXhC,EAAQuC,gBAAkB,SAAyBR,EAASC,GACxD,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxCtC,EAAQwC,OAAS,SAAgBC,EAAQlF,GAC/BkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMC,QACtFyC,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ0C,KAAOhC,EAAOoC,QACtB,MACJ,KAAK,EACD9C,EAAQ6C,OAASnC,EAAON,QACxB,MACJ,KAAK,EACDJ,EAAQgD,OAAStC,EAAON,QACxB,MACJ,QACIM,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaX/B,EAAQ+C,gBAAkB,SAAyBN,GAG/C,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtClC,EAAQgD,OAAS,SAAgBjB,GAC7B,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,GAAoB,MAAhBA,EAAQ0C,MAAgB1C,EAAQE,eAAe,QAC/C,OAAQF,EAAQ0C,MAChB,QACI,MAAO,4BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAGT,OAAsB,MAAlB1C,EAAQ6C,QAAkB7C,EAAQE,eAAe,aAC3CF,EAAQ6C,QAA2C,iBAA1B7C,EAAQ6C,OAAOrH,QAAuB4D,EAAM8B,SAASlB,EAAQ6C,SACjF,0BACO,MAAlB7C,EAAQgD,QAAkBhD,EAAQE,eAAe,aAC3CF,EAAQgD,QAA2C,iBAA1BhD,EAAQgD,OAAOxH,QAAuB4D,EAAM8B,SAASlB,EAAQgD,SACjF,0BACR,MAWX/E,EAAQoD,WAAa,SAAoBC,GACrC,GAAIA,aAAkBhC,EAAMtB,MAAMC,QAC9B,OAAOqD,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMC,QAC9B,OAAQqD,EAAOoB,MACf,IAAK,UACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,YACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,UACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,aACL,KAAK,EACD1C,EAAQ0C,KAAO,EAanB,OAVqB,MAAjBpB,EAAOuB,SACsB,iBAAlBvB,EAAOuB,OACdzD,EAAMmC,OAAOd,OAAOa,EAAOuB,OAAQ7C,EAAQ6C,OAASzD,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOuB,SAAU,GACpGvB,EAAOuB,OAAOrH,SACnBwE,EAAQ6C,OAASvB,EAAOuB,SACX,MAAjBvB,EAAO0B,SACsB,iBAAlB1B,EAAO0B,OACd5D,EAAMmC,OAAOd,OAAOa,EAAO0B,OAAQhD,EAAQgD,OAAS5D,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAO0B,SAAU,GACpG1B,EAAO0B,OAAOxH,SACnBwE,EAAQgD,OAAS1B,EAAO0B,SACzBhD,GAYX/B,EAAQuD,SAAW,SAAkBxB,EAASyB,GACrCA,IACDA,EAAU,IACd,IAAIH,EAAS,GAwBb,OAvBIG,EAAQE,WACRL,EAAOoB,KAAOjB,EAAQsB,QAAUnB,OAAS,UAAY,EACjDH,EAAQrB,QAAUwB,OAClBN,EAAOuB,OAAS,IAEhBvB,EAAOuB,OAAS,GACZpB,EAAQrB,QAAUe,QAClBG,EAAOuB,OAASzD,EAAMU,UAAUwB,EAAOuB,UAE3CpB,EAAQrB,QAAUwB,OAClBN,EAAO0B,OAAS,IAEhB1B,EAAO0B,OAAS,GACZvB,EAAQrB,QAAUe,QAClBG,EAAO0B,OAAS5D,EAAMU,UAAUwB,EAAO0B,WAG/B,MAAhBhD,EAAQ0C,MAAgB1C,EAAQE,eAAe,UAC/CoB,EAAOoB,KAAOjB,EAAQsB,QAAUnB,OAAStC,EAAMtB,MAAMwB,OAAOQ,EAAQ0C,MAAQ1C,EAAQ0C,MAClE,MAAlB1C,EAAQ6C,QAAkB7C,EAAQE,eAAe,YACjDoB,EAAOuB,OAASpB,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ6C,OAAQ,EAAG7C,EAAQ6C,OAAOrH,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ6C,QAAU7C,EAAQ6C,QACxK,MAAlB7C,EAAQgD,QAAkBhD,EAAQE,eAAe,YACjDoB,EAAO0B,OAASvB,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQgD,OAAQ,EAAGhD,EAAQgD,OAAOxH,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQgD,QAAUhD,EAAQgD,QACvL1B,GAUXrD,EAAQhC,UAAU+F,OAAS,WACvB,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDhE,EA3SK,GA8ShBD,EAAMiF,UAAY,WA6Bd,SAASA,EAAUrD,GACf,GAAIA,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KA6OhD,OApOA0H,EAAUhH,UAAUiH,SAAW,KAQ/BD,EAAUhH,UAAUkH,UAAY,KAQhCF,EAAUhH,UAAUmH,SAAW,EAQ/BH,EAAUhH,UAAUoH,SAAW,EAU/BJ,EAAUxD,OAAS,SAAgBG,GAC/B,OAAO,IAAIqD,EAAUrD,IAYzBqD,EAAU/E,OAAS,SAAgB8B,EAASC,GAWxC,OAVKA,IACDA,EAASf,EAAQO,UACG,MAApBO,EAAQkD,UAAoBlD,EAAQE,eAAe,aACnDZ,EAAMtB,MAAMqC,OAAOnC,OAAO8B,EAAQkD,SAAUjD,EAAOE,OAA8B,IAAIG,QAAQC,SACxE,MAArBP,EAAQmD,WAAqBnD,EAAQE,eAAe,cACpDZ,EAAMtB,MAAMsF,UAAUpF,OAAO8B,EAAQmD,UAAWlD,EAAOE,OAA8B,IAAIG,QAAQC,SAC7E,MAApBP,EAAQoD,UAAoBpD,EAAQE,eAAe,aACnDD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQoD,UACnC,MAApBpD,EAAQqD,UAAoBrD,EAAQE,eAAe,aACnDD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQqD,UACpDpD,GAYXgD,EAAUzC,gBAAkB,SAAyBR,EAASC,GAC1D,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxC0C,EAAUxC,OAAS,SAAgBC,EAAQlF,GACjCkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMiF,UACtFvC,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQkD,SAAW5D,EAAMtB,MAAMqC,OAAOI,OAAOC,EAAQA,EAAOP,UAC5D,MACJ,KAAK,EACDH,EAAQmD,UAAY7D,EAAMtB,MAAMsF,UAAU7C,OAAOC,EAAQA,EAAOP,UAChE,MACJ,KAAK,EACDH,EAAQoD,SAAW1C,EAAOoC,QAC1B,MACJ,KAAK,EACD9C,EAAQqD,SAAW3C,EAAOoC,QAC1B,MACJ,QACIpC,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXiD,EAAUjC,gBAAkB,SAAyBN,GAGjD,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtC8C,EAAUhC,OAAS,SAAgBjB,GAC/B,MAAuB,iBAAZA,GAAoC,OAAZA,EACxB,kBACa,MAApBA,EAAQkD,UAAoBlD,EAAQE,eAAe,cAC/C7F,EAAQiF,EAAMtB,MAAMqC,OAAOY,OAAOjB,EAAQkD,WAEnC,YAAc7I,EAEJ,MAArB2F,EAAQmD,WAAqBnD,EAAQE,eAAe,eAChD7F,EAAQiF,EAAMtB,MAAMsF,UAAUrC,OAAOjB,EAAQmD,YAEtC,aAAe9I,EAEN,MAApB2F,EAAQoD,UAAoBpD,EAAQE,eAAe,cAC9Cd,EAAMmE,UAAUvD,EAAQoD,UAClB,6BACS,MAApBpD,EAAQqD,UAAoBrD,EAAQE,eAAe,cAC9Cd,EAAMmE,UAAUvD,EAAQqD,UAClB,6BACR,KAfH,IAKIhJ,GAqBZ4I,EAAU5B,WAAa,SAAoBC,GACvC,GAAIA,aAAkBhC,EAAMtB,MAAMiF,UAC9B,OAAO3B,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMiF,UAC9B,GAAuB,MAAnB3B,EAAO4B,SAAkB,CACzB,GAA+B,iBAApB5B,EAAO4B,SACd,MAAM/H,UAAU,8CACpB6E,EAAQkD,SAAW5D,EAAMtB,MAAMqC,OAAOgB,WAAWC,EAAO4B,UAE5D,GAAwB,MAApB5B,EAAO6B,UAAmB,CAC1B,GAAgC,iBAArB7B,EAAO6B,UACd,MAAMhI,UAAU,+CACpB6E,EAAQmD,UAAY7D,EAAMtB,MAAMsF,UAAUjC,WAAWC,EAAO6B,WAMhE,OAJuB,MAAnB7B,EAAO8B,WACPpD,EAAQoD,SAA6B,EAAlB9B,EAAO8B,UACP,MAAnB9B,EAAO+B,WACPrD,EAAQqD,SAA6B,EAAlB/B,EAAO+B,UACvBrD,GAYXiD,EAAUzB,SAAW,SAAkBxB,EAASyB,GACvCA,IACDA,EAAU,IACd,IAAIH,EAAS,GAeb,OAdIG,EAAQE,WACRL,EAAO4B,SAAW,KAClB5B,EAAO6B,UAAY,KACnB7B,EAAO8B,SAAW,EAClB9B,EAAO+B,SAAW,GAEE,MAApBrD,EAAQkD,UAAoBlD,EAAQE,eAAe,cACnDoB,EAAO4B,SAAW5D,EAAMtB,MAAMqC,OAAOmB,SAASxB,EAAQkD,SAAUzB,IAC3C,MAArBzB,EAAQmD,WAAqBnD,EAAQE,eAAe,eACpDoB,EAAO6B,UAAY7D,EAAMtB,MAAMsF,UAAU9B,SAASxB,EAAQmD,UAAW1B,IACjD,MAApBzB,EAAQoD,UAAoBpD,EAAQE,eAAe,cACnDoB,EAAO8B,SAAWpD,EAAQoD,UACN,MAApBpD,EAAQqD,UAAoBrD,EAAQE,eAAe,cACnDoB,EAAO+B,SAAWrD,EAAQqD,UACvB/B,GAUX2B,EAAUhH,UAAU+F,OAAS,WACzB,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDgB,EA9QO,GAiRlBjF,EAAMsF,UAAY,WAsBd,SAASA,EAAU1D,GAEf,GADAlF,KAAK8I,WAAa,GACd5D,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAoVhD,OA3UA+H,EAAUrH,UAAUuH,WAAapE,EAAMW,WAQvCuD,EAAUrH,UAAUwH,UAAY,EAQhCH,EAAUrH,UAAUyH,gBAAkB,EAQtCJ,EAAUrH,UAAU0H,gBAAkB,EAQtCL,EAAUrH,UAAU2H,WAAaxE,EAAMU,UAAU,IAQjDwD,EAAUrH,UAAUyG,KAAO,EAU3BY,EAAU7D,OAAS,SAAgBG,GAC/B,OAAO,IAAI0D,EAAU1D,IAYzB0D,EAAUpF,OAAS,SAAgB8B,EAASC,GAGxC,GAFKA,IACDA,EAASf,EAAQO,UACK,MAAtBO,EAAQwD,YAAsBxD,EAAQwD,WAAWhI,OAAQ,CACzDyE,EAAOE,OAA8B,IAAIG,OACzC,IAAK,IAAI/E,EAAI,EAAGA,EAAIyE,EAAQwD,WAAWhI,SAAUD,EAC7C0E,EAAO6C,MAAM9C,EAAQwD,WAAWjI,IACpC0E,EAAOM,SAYX,OAVyB,MAArBP,EAAQyD,WAAqBzD,EAAQE,eAAe,cACpDD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQyD,WAC5B,MAA3BzD,EAAQ0D,iBAA2B1D,EAAQE,eAAe,oBAC1DD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQ0D,iBAC5B,MAA3B1D,EAAQ2D,iBAA2B3D,EAAQE,eAAe,oBAC1DD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQ2D,iBACjC,MAAtB3D,EAAQ4D,YAAsB5D,EAAQE,eAAe,eACrDD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ4D,YACvC,MAAhB5D,EAAQ0C,MAAgB1C,EAAQE,eAAe,SAC/CD,EAAOE,OAA8B,IAAI2C,MAAM9C,EAAQ0C,MACpDzC,GAYXqD,EAAU9C,gBAAkB,SAAyBR,EAASC,GAC1D,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxC+C,EAAU7C,OAAS,SAAgBC,EAAQlF,GACjCkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMsF,UACtF5C,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EAGD,GAFMd,EAAQwD,YAAcxD,EAAQwD,WAAWhI,SAC3CwE,EAAQwD,WAAa,IACP,IAAP,EAAN1C,GAED,IADA,IAAI+C,EAAOnD,EAAOP,SAAWO,EAAOG,IAC7BH,EAAOG,IAAMgD,GAChB7D,EAAQwD,WAAWnG,KAAKqD,EAAOoC,cAEnC9C,EAAQwD,WAAWnG,KAAKqD,EAAOoC,SACnC,MACJ,KAAK,EACD9C,EAAQyD,UAAY/C,EAAOoC,QAC3B,MACJ,KAAK,EACD9C,EAAQ0D,gBAAkBhD,EAAOoC,QACjC,MACJ,KAAK,EACD9C,EAAQ2D,gBAAkBjD,EAAOoC,QACjC,MACJ,KAAK,EACD9C,EAAQ4D,WAAalD,EAAON,QAC5B,MACJ,KAAK,EACDJ,EAAQ0C,KAAOhC,EAAOoC,QACtB,MACJ,QACIpC,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXsD,EAAUtC,gBAAkB,SAAyBN,GAGjD,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtCmD,EAAUrC,OAAS,SAAgBjB,GAC/B,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,GAA0B,MAAtBA,EAAQwD,YAAsBxD,EAAQE,eAAe,cAAe,CACpE,IAAKiB,MAAMC,QAAQpB,EAAQwD,YACvB,MAAO,6BACX,IAAK,IAAIjI,EAAI,EAAGA,EAAIyE,EAAQwD,WAAWhI,SAAUD,EAC7C,IAAK6D,EAAMmE,UAAUvD,EAAQwD,WAAWjI,IACpC,MAAO,iCAEnB,GAAyB,MAArByE,EAAQyD,WAAqBzD,EAAQE,eAAe,eAC/Cd,EAAMmE,UAAUvD,EAAQyD,WACzB,MAAO,8BACf,GAA+B,MAA3BzD,EAAQ0D,iBAA2B1D,EAAQE,eAAe,qBACrDd,EAAMmE,UAAUvD,EAAQ0D,iBACzB,MAAO,oCACf,GAA+B,MAA3B1D,EAAQ2D,iBAA2B3D,EAAQE,eAAe,qBACrDd,EAAMmE,UAAUvD,EAAQ2D,iBACzB,MAAO,oCACf,GAA0B,MAAtB3D,EAAQ4D,YAAsB5D,EAAQE,eAAe,iBAC/CF,EAAQ4D,YAAmD,iBAA9B5D,EAAQ4D,WAAWpI,QAAuB4D,EAAM8B,SAASlB,EAAQ4D,aAChG,MAAO,8BACf,GAAoB,MAAhB5D,EAAQ0C,MAAgB1C,EAAQE,eAAe,QAC/C,OAAQF,EAAQ0C,MAChB,QACI,MAAO,4BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAGT,OAAO,MAWXY,EAAUjC,WAAa,SAAoBC,GACvC,GAAIA,aAAkBhC,EAAMtB,MAAMsF,UAC9B,OAAOhC,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMsF,UAC9B,GAAIhC,EAAOkC,WAAY,CACnB,IAAKrC,MAAMC,QAAQE,EAAOkC,YACtB,MAAMrI,UAAU,+CACpB6E,EAAQwD,WAAa,GACrB,IAAK,IAAIjI,EAAI,EAAGA,EAAI+F,EAAOkC,WAAWhI,SAAUD,EAC5CyE,EAAQwD,WAAWjI,GAA4B,EAAvB+F,EAAOkC,WAAWjI,GAalD,OAXwB,MAApB+F,EAAOmC,YACPzD,EAAQyD,UAA+B,EAAnBnC,EAAOmC,WACD,MAA1BnC,EAAOoC,kBACP1D,EAAQ0D,gBAA2C,EAAzBpC,EAAOoC,iBACP,MAA1BpC,EAAOqC,kBACP3D,EAAQ2D,gBAA2C,EAAzBrC,EAAOqC,iBACZ,MAArBrC,EAAOsC,aAC0B,iBAAtBtC,EAAOsC,WACdxE,EAAMmC,OAAOd,OAAOa,EAAOsC,WAAY5D,EAAQ4D,WAAaxE,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOsC,aAAc,GAChHtC,EAAOsC,WAAWpI,SACvBwE,EAAQ4D,WAAatC,EAAOsC,aAC5BtC,EAAOoB,MACf,IAAK,UACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,SACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,YACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,UACL,KAAK,EACD1C,EAAQ0C,KAAO,EACf,MACJ,IAAK,aACL,KAAK,EACD1C,EAAQ0C,KAAO,EAGnB,OAAO1C,GAYXsD,EAAU9B,SAAW,SAAkBxB,EAASyB,GACvCA,IACDA,EAAU,IACd,IAAIH,EAAS,GAgBb,IAfIG,EAAQC,QAAUD,EAAQE,YAC1BL,EAAOkC,WAAa,IACpB/B,EAAQE,WACRL,EAAOmC,UAAY,EACnBnC,EAAOoC,gBAAkB,EACzBpC,EAAOqC,gBAAkB,EACrBlC,EAAQrB,QAAUwB,OAClBN,EAAOsC,WAAa,IAEpBtC,EAAOsC,WAAa,GAChBnC,EAAQrB,QAAUe,QAClBG,EAAOsC,WAAaxE,EAAMU,UAAUwB,EAAOsC,cAEnDtC,EAAOoB,KAAOjB,EAAQsB,QAAUnB,OAAS,UAAY,GAErD5B,EAAQwD,YAAcxD,EAAQwD,WAAWhI,OAAQ,CACjD8F,EAAOkC,WAAa,GACpB,IAAK,IAAIzB,EAAI,EAAGA,EAAI/B,EAAQwD,WAAWhI,SAAUuG,EAC7CT,EAAOkC,WAAWzB,GAAK/B,EAAQwD,WAAWzB,GAYlD,OAVyB,MAArB/B,EAAQyD,WAAqBzD,EAAQE,eAAe,eACpDoB,EAAOmC,UAAYzD,EAAQyD,WACA,MAA3BzD,EAAQ0D,iBAA2B1D,EAAQE,eAAe,qBAC1DoB,EAAOoC,gBAAkB1D,EAAQ0D,iBACN,MAA3B1D,EAAQ2D,iBAA2B3D,EAAQE,eAAe,qBAC1DoB,EAAOqC,gBAAkB3D,EAAQ2D,iBACX,MAAtB3D,EAAQ4D,YAAsB5D,EAAQE,eAAe,gBACrDoB,EAAOsC,WAAanC,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ4D,WAAY,EAAG5D,EAAQ4D,WAAWpI,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ4D,YAAc5D,EAAQ4D,YAC1L,MAAhB5D,EAAQ0C,MAAgB1C,EAAQE,eAAe,UAC/CoB,EAAOoB,KAAOjB,EAAQsB,QAAUnB,OAAStC,EAAMtB,MAAMwB,OAAOQ,EAAQ0C,MAAQ1C,EAAQ0C,MACjFpB,GAUXgC,EAAUrH,UAAU+F,OAAS,WACzB,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDqB,EA/WO,GAkXlBtF,EAAMuE,WAAa,WAiBf,SAASA,EAAW3C,GAEhB,GADAlF,KAAKuC,QAAU,GACX2C,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAuLhD,OA9KAgH,EAAWtG,UAAUgB,QAAUmC,EAAMW,WAUrCwC,EAAW9C,OAAS,SAAgBG,GAChC,OAAO,IAAI2C,EAAW3C,IAY1B2C,EAAWrE,OAAS,SAAgB8B,EAASC,GAGzC,GAFKA,IACDA,EAASf,EAAQO,UACE,MAAnBO,EAAQ/C,SAAmB+C,EAAQ/C,QAAQzB,OAC3C,IAAK,IAAID,EAAI,EAAGA,EAAIyE,EAAQ/C,QAAQzB,SAAUD,EAC1C+D,EAAMtB,MAAM8F,WAAW5F,OAAO8B,EAAQ/C,QAAQ1B,GAAI0E,EAAOE,OAA8B,IAAIG,QAAQC,SAC3G,OAAON,GAYXsC,EAAW/B,gBAAkB,SAAyBR,EAASC,GAC3D,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxCgC,EAAW9B,OAAS,SAAgBC,EAAQlF,GAClCkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMuE,WACtF7B,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACTW,IAAQ,GACX,GACKd,EAAQ/C,SAAW+C,EAAQ/C,QAAQzB,SACrCwE,EAAQ/C,QAAU,IACtB+C,EAAQ/C,QAAQI,KAAKiC,EAAMtB,MAAM8F,WAAWrD,OAAOC,EAAQA,EAAOP,YAGlEO,EAAOK,SAAe,EAAND,GAIxB,OAAOd,GAaXuC,EAAWvB,gBAAkB,SAAyBN,GAGlD,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtCoC,EAAWtB,OAAS,SAAgBjB,GAChC,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,GAAuB,MAAnBA,EAAQ/C,SAAmB+C,EAAQE,eAAe,WAAY,CAC9D,IAAKiB,MAAMC,QAAQpB,EAAQ/C,SACvB,MAAO,0BACX,IAAK,IAAI1B,EAAI,EAAGA,EAAIyE,EAAQ/C,QAAQzB,SAAUD,EAAG,CAC7C,IAAIlB,EAAQiF,EAAMtB,MAAM8F,WAAW7C,OAAOjB,EAAQ/C,QAAQ1B,IAC1D,GAAIlB,EACA,MAAO,WAAaA,GAGhC,OAAO,MAWXkI,EAAWlB,WAAa,SAAoBC,GACxC,GAAIA,aAAkBhC,EAAMtB,MAAMuE,WAC9B,OAAOjB,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMuE,WAC9B,GAAIjB,EAAOrE,QAAS,CAChB,IAAKkE,MAAMC,QAAQE,EAAOrE,SACtB,MAAM9B,UAAU,6CACpB6E,EAAQ/C,QAAU,GAClB,IAAK,IAAI1B,EAAI,EAAGA,EAAI+F,EAAOrE,QAAQzB,SAAUD,EAAG,CAC5C,GAAiC,iBAAtB+F,EAAOrE,QAAQ1B,GACtB,MAAMJ,UAAU,8CACpB6E,EAAQ/C,QAAQ1B,GAAK+D,EAAMtB,MAAM8F,WAAWzC,WAAWC,EAAOrE,QAAQ1B,KAG9E,OAAOyE,GAYXuC,EAAWf,SAAW,SAAkBxB,EAASyB,GACxCA,IACDA,EAAU,IACd,IAAIH,EAAS,GAGb,IAFIG,EAAQC,QAAUD,EAAQE,YAC1BL,EAAOrE,QAAU,IACjB+C,EAAQ/C,SAAW+C,EAAQ/C,QAAQzB,OAAQ,CAC3C8F,EAAOrE,QAAU,GACjB,IAAK,IAAI8E,EAAI,EAAGA,EAAI/B,EAAQ/C,QAAQzB,SAAUuG,EAC1CT,EAAOrE,QAAQ8E,GAAKzC,EAAMtB,MAAM8F,WAAWtC,SAASxB,EAAQ/C,QAAQ8E,GAAIN,GAEhF,OAAOH,GAUXiB,EAAWtG,UAAU+F,OAAS,WAC1B,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDM,EA7MQ,GAgNnBvE,EAAM8F,WAAa,WAkBf,SAASA,EAAWlE,GAChB,GAAIA,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAoBhD,IAAI6G,EAwMJ,OAnNA0B,EAAW7H,UAAUiB,MAAQ,KAQ7B4G,EAAW7H,UAAUqB,SAAW,KAWhCzB,OAAOC,eAAegI,EAAW7H,UAAW,QAAS,CACjDoC,IAAKe,EAAMiD,YAAYD,EAAe,CAAC,QAAS,aAChD9D,IAAKc,EAAMkD,YAAYF,KAW3B0B,EAAWrE,OAAS,SAAgBG,GAChC,OAAO,IAAIkE,EAAWlE,IAY1BkE,EAAW5F,OAAS,SAAgB8B,EAASC,GAOzC,OANKA,IACDA,EAASf,EAAQO,UACA,MAAjBO,EAAQ9C,OAAiB8C,EAAQE,eAAe,UAChDZ,EAAMtB,MAAM2B,eAAezB,OAAO8B,EAAQ9C,MAAO+C,EAAOE,OAA8B,IAAIG,QAAQC,SAC9E,MAApBP,EAAQ1C,UAAoB0C,EAAQE,eAAe,aACnDZ,EAAMtB,MAAMkE,kBAAkBhE,OAAO8B,EAAQ1C,SAAU2C,EAAOE,OAA8B,IAAIG,QAAQC,SACrGN,GAYX6D,EAAWtD,gBAAkB,SAAyBR,EAASC,GAC3D,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxCuD,EAAWrD,OAAS,SAAgBC,EAAQlF,GAClCkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAM8F,WACtFpD,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ9C,MAAQoC,EAAMtB,MAAM2B,eAAec,OAAOC,EAAQA,EAAOP,UACjE,MACJ,KAAK,EACDH,EAAQ1C,SAAWgC,EAAMtB,MAAMkE,kBAAkBzB,OAAOC,EAAQA,EAAOP,UACvE,MACJ,QACIO,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaX8D,EAAW9C,gBAAkB,SAAyBN,GAGlD,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtC2D,EAAW7C,OAAS,SAAgBjB,GAChC,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,IAAIJ,EAAa,GACjB,GAAqB,MAAjBI,EAAQ9C,OAAiB8C,EAAQE,eAAe,WAChDN,EAAWjD,MAAQ,EAEXtC,EAAQiF,EAAMtB,MAAM2B,eAAesB,OAAOjB,EAAQ9C,QAElD,MAAO,SAAW7C,EAG9B,GAAwB,MAApB2F,EAAQ1C,UAAoB0C,EAAQE,eAAe,YAAa,CAChE,GAAyB,IAArBN,EAAWjD,MACX,MAAO,yBAGP,IAAItC,EACJ,GAHJuF,EAAWjD,MAAQ,EAEXtC,EAAQiF,EAAMtB,MAAMkE,kBAAkBjB,OAAOjB,EAAQ1C,UAErD,MAAO,YAAcjD,EAGjC,OAAO,MAWXyJ,EAAWzC,WAAa,SAAoBC,GACxC,GAAIA,aAAkBhC,EAAMtB,MAAM8F,WAC9B,OAAOxC,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAM8F,WAC9B,GAAoB,MAAhBxC,EAAOpE,MAAe,CACtB,GAA4B,iBAAjBoE,EAAOpE,MACd,MAAM/B,UAAU,4CACpB6E,EAAQ9C,MAAQoC,EAAMtB,MAAM2B,eAAe0B,WAAWC,EAAOpE,OAEjE,GAAuB,MAAnBoE,EAAOhE,SAAkB,CACzB,GAA+B,iBAApBgE,EAAOhE,SACd,MAAMnC,UAAU,+CACpB6E,EAAQ1C,SAAWgC,EAAMtB,MAAMkE,kBAAkBb,WAAWC,EAAOhE,UAEvE,OAAO0C,GAYX8D,EAAWtC,SAAW,SAAkBxB,EAASyB,GACxCA,IACDA,EAAU,IACd,IAAIH,EAAS,GAWb,OAVqB,MAAjBtB,EAAQ9C,OAAiB8C,EAAQE,eAAe,WAChDoB,EAAOpE,MAAQoC,EAAMtB,MAAM2B,eAAe6B,SAASxB,EAAQ9C,MAAOuE,GAC9DA,EAAQgB,SACRnB,EAAO3E,MAAQ,UAEC,MAApBqD,EAAQ1C,UAAoB0C,EAAQE,eAAe,cACnDoB,EAAOhE,SAAWgC,EAAMtB,MAAMkE,kBAAkBV,SAASxB,EAAQ1C,SAAUmE,GACvEA,EAAQgB,SACRnB,EAAO3E,MAAQ,aAEhB2E,GAUXwC,EAAW7H,UAAU+F,OAAS,WAC1B,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnD6B,EAlPQ,GAqPnB9F,EAAMwE,qBAAuB,WAkBzB,SAASA,EAAqB5C,GAG1B,GAFAlF,KAAKuC,QAAU,GACfvC,KAAKiD,aAAe,GAChBiC,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAiOhD,OAxNAiH,EAAqBvG,UAAUgB,QAAUmC,EAAMW,WAQ/CyC,EAAqBvG,UAAU0B,aAAeyB,EAAMW,WAUpDyC,EAAqB/C,OAAS,SAAgBG,GAC1C,OAAO,IAAI4C,EAAqB5C,IAYpC4C,EAAqBtE,OAAS,SAAgB8B,EAASC,GAGnD,GAFKA,IACDA,EAASf,EAAQO,UACE,MAAnBO,EAAQ/C,SAAmB+C,EAAQ/C,QAAQzB,OAC3C,IAAK,IAAID,EAAI,EAAGA,EAAIyE,EAAQ/C,QAAQzB,SAAUD,EAC1C+D,EAAMtB,MAAM+F,qBAAqB7F,OAAO8B,EAAQ/C,QAAQ1B,GAAI0E,EAAOE,OAA8B,IAAIG,QAAQC,SACrH,GAA4B,MAAxBP,EAAQrC,cAAwBqC,EAAQrC,aAAanC,OACrD,IAASD,EAAI,EAAGA,EAAIyE,EAAQrC,aAAanC,SAAUD,EAC/C+D,EAAMtB,MAAMC,QAAQC,OAAO8B,EAAQrC,aAAapC,GAAI0E,EAAOE,OAA8B,IAAIG,QAAQC,SAC7G,OAAON,GAYXuC,EAAqBhC,gBAAkB,SAAyBR,EAASC,GACrE,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxCiC,EAAqB/B,OAAS,SAAgBC,EAAQlF,GAC5CkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMwE,qBACtF9B,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACKd,EAAQ/C,SAAW+C,EAAQ/C,QAAQzB,SACrCwE,EAAQ/C,QAAU,IACtB+C,EAAQ/C,QAAQI,KAAKiC,EAAMtB,MAAM+F,qBAAqBtD,OAAOC,EAAQA,EAAOP,WAC5E,MACJ,KAAK,EACKH,EAAQrC,cAAgBqC,EAAQrC,aAAanC,SAC/CwE,EAAQrC,aAAe,IAC3BqC,EAAQrC,aAAaN,KAAKiC,EAAMtB,MAAMC,QAAQwC,OAAOC,EAAQA,EAAOP,WACpE,MACJ,QACIO,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXwC,EAAqBxB,gBAAkB,SAAyBN,GAG5D,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtCqC,EAAqBvB,OAAS,SAAgBjB,GAC1C,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,GAAuB,MAAnBA,EAAQ/C,SAAmB+C,EAAQE,eAAe,WAAY,CAC9D,IAAKiB,MAAMC,QAAQpB,EAAQ/C,SACvB,MAAO,0BACX,IAAK,IAAI1B,EAAI,EAAGA,EAAIyE,EAAQ/C,QAAQzB,SAAUD,EAE1C,GADIlB,EAAQiF,EAAMtB,MAAM+F,qBAAqB9C,OAAOjB,EAAQ/C,QAAQ1B,IAEhE,MAAO,WAAalB,EAGhC,GAA4B,MAAxB2F,EAAQrC,cAAwBqC,EAAQE,eAAe,gBAAiB,CACxE,IAAKiB,MAAMC,QAAQpB,EAAQrC,cACvB,MAAO,+BACX,IAASpC,EAAI,EAAGA,EAAIyE,EAAQrC,aAAanC,SAAUD,EAAG,CAClD,IAAIlB,EACJ,GADIA,EAAQiF,EAAMtB,MAAMC,QAAQgD,OAAOjB,EAAQrC,aAAapC,IAExD,MAAO,gBAAkBlB,GAGrC,OAAO,MAWXmI,EAAqBnB,WAAa,SAAoBC,GAClD,GAAIA,aAAkBhC,EAAMtB,MAAMwE,qBAC9B,OAAOlB,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMwE,qBAC9B,GAAIlB,EAAOrE,QAAS,CAChB,IAAKkE,MAAMC,QAAQE,EAAOrE,SACtB,MAAM9B,UAAU,uDACpB6E,EAAQ/C,QAAU,GAClB,IAAK,IAAI1B,EAAI,EAAGA,EAAI+F,EAAOrE,QAAQzB,SAAUD,EAAG,CAC5C,GAAiC,iBAAtB+F,EAAOrE,QAAQ1B,GACtB,MAAMJ,UAAU,wDACpB6E,EAAQ/C,QAAQ1B,GAAK+D,EAAMtB,MAAM+F,qBAAqB1C,WAAWC,EAAOrE,QAAQ1B,KAGxF,GAAI+F,EAAO3D,aAAc,CACrB,IAAKwD,MAAMC,QAAQE,EAAO3D,cACtB,MAAMxC,UAAU,4DAEpB,IADA6E,EAAQrC,aAAe,GACdpC,EAAI,EAAGA,EAAI+F,EAAO3D,aAAanC,SAAUD,EAAG,CACjD,GAAsC,iBAA3B+F,EAAO3D,aAAapC,GAC3B,MAAMJ,UAAU,6DACpB6E,EAAQrC,aAAapC,GAAK+D,EAAMtB,MAAMC,QAAQoD,WAAWC,EAAO3D,aAAapC,KAGrF,OAAOyE,GAYXwC,EAAqBhB,SAAW,SAAkBxB,EAASyB,GAClDA,IACDA,EAAU,IACd,IAAIH,EAAS,GAKb,IAJIG,EAAQC,QAAUD,EAAQE,YAC1BL,EAAOrE,QAAU,GACjBqE,EAAO3D,aAAe,IAEtBqC,EAAQ/C,SAAW+C,EAAQ/C,QAAQzB,OAAQ,CAC3C8F,EAAOrE,QAAU,GACjB,IAAK,IAAI8E,EAAI,EAAGA,EAAI/B,EAAQ/C,QAAQzB,SAAUuG,EAC1CT,EAAOrE,QAAQ8E,GAAKzC,EAAMtB,MAAM+F,qBAAqBvC,SAASxB,EAAQ/C,QAAQ8E,GAAIN,GAE1F,GAAIzB,EAAQrC,cAAgBqC,EAAQrC,aAAanC,OAE7C,IADA8F,EAAO3D,aAAe,GACboE,EAAI,EAAGA,EAAI/B,EAAQrC,aAAanC,SAAUuG,EAC/CT,EAAO3D,aAAaoE,GAAKzC,EAAMtB,MAAMC,QAAQuD,SAASxB,EAAQrC,aAAaoE,GAAIN,GAEvF,OAAOH,GAUXkB,EAAqBvG,UAAU+F,OAAS,WACpC,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDO,EAzPkB,GA4P7BxE,EAAM+F,qBAAuB,WAkBzB,SAASA,EAAqBnE,GAC1B,GAAIA,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAoBhD,IAAI6G,EAwMJ,OAnNA2B,EAAqB9H,UAAUiB,MAAQ,KAQvC6G,EAAqB9H,UAAUqB,SAAW,KAW1CzB,OAAOC,eAAeiI,EAAqB9H,UAAW,QAAS,CAC3DoC,IAAKe,EAAMiD,YAAYD,EAAe,CAAC,QAAS,aAChD9D,IAAKc,EAAMkD,YAAYF,KAW3B2B,EAAqBtE,OAAS,SAAgBG,GAC1C,OAAO,IAAImE,EAAqBnE,IAYpCmE,EAAqB7F,OAAS,SAAgB8B,EAASC,GAOnD,OANKA,IACDA,EAASf,EAAQO,UACA,MAAjBO,EAAQ9C,OAAiB8C,EAAQE,eAAe,UAChDZ,EAAMtB,MAAMgG,yBAAyB9F,OAAO8B,EAAQ9C,MAAO+C,EAAOE,OAA8B,IAAIG,QAAQC,SACxF,MAApBP,EAAQ1C,UAAoB0C,EAAQE,eAAe,aACnDZ,EAAMtB,MAAMiG,4BAA4B/F,OAAO8B,EAAQ1C,SAAU2C,EAAOE,OAA8B,IAAIG,QAAQC,SAC/GN,GAYX8D,EAAqBvD,gBAAkB,SAAyBR,EAASC,GACrE,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxCwD,EAAqBtD,OAAS,SAAgBC,EAAQlF,GAC5CkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAM+F,qBACtFrD,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ9C,MAAQoC,EAAMtB,MAAMgG,yBAAyBvD,OAAOC,EAAQA,EAAOP,UAC3E,MACJ,KAAK,EACDH,EAAQ1C,SAAWgC,EAAMtB,MAAMiG,4BAA4BxD,OAAOC,EAAQA,EAAOP,UACjF,MACJ,QACIO,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaX+D,EAAqB/C,gBAAkB,SAAyBN,GAG5D,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtC4D,EAAqB9C,OAAS,SAAgBjB,GAC1C,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,IAAIJ,EAAa,GACjB,GAAqB,MAAjBI,EAAQ9C,OAAiB8C,EAAQE,eAAe,WAChDN,EAAWjD,MAAQ,EAEXtC,EAAQiF,EAAMtB,MAAMgG,yBAAyB/C,OAAOjB,EAAQ9C,QAE5D,MAAO,SAAW7C,EAG9B,GAAwB,MAApB2F,EAAQ1C,UAAoB0C,EAAQE,eAAe,YAAa,CAChE,GAAyB,IAArBN,EAAWjD,MACX,MAAO,yBAGP,IAAItC,EACJ,GAHJuF,EAAWjD,MAAQ,EAEXtC,EAAQiF,EAAMtB,MAAMiG,4BAA4BhD,OAAOjB,EAAQ1C,UAE/D,MAAO,YAAcjD,EAGjC,OAAO,MAWX0J,EAAqB1C,WAAa,SAAoBC,GAClD,GAAIA,aAAkBhC,EAAMtB,MAAM+F,qBAC9B,OAAOzC,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAM+F,qBAC9B,GAAoB,MAAhBzC,EAAOpE,MAAe,CACtB,GAA4B,iBAAjBoE,EAAOpE,MACd,MAAM/B,UAAU,sDACpB6E,EAAQ9C,MAAQoC,EAAMtB,MAAMgG,yBAAyB3C,WAAWC,EAAOpE,OAE3E,GAAuB,MAAnBoE,EAAOhE,SAAkB,CACzB,GAA+B,iBAApBgE,EAAOhE,SACd,MAAMnC,UAAU,yDACpB6E,EAAQ1C,SAAWgC,EAAMtB,MAAMiG,4BAA4B5C,WAAWC,EAAOhE,UAEjF,OAAO0C,GAYX+D,EAAqBvC,SAAW,SAAkBxB,EAASyB,GAClDA,IACDA,EAAU,IACd,IAAIH,EAAS,GAWb,OAVqB,MAAjBtB,EAAQ9C,OAAiB8C,EAAQE,eAAe,WAChDoB,EAAOpE,MAAQoC,EAAMtB,MAAMgG,yBAAyBxC,SAASxB,EAAQ9C,MAAOuE,GACxEA,EAAQgB,SACRnB,EAAO3E,MAAQ,UAEC,MAApBqD,EAAQ1C,UAAoB0C,EAAQE,eAAe,cACnDoB,EAAOhE,SAAWgC,EAAMtB,MAAMiG,4BAA4BzC,SAASxB,EAAQ1C,SAAUmE,GACjFA,EAAQgB,SACRnB,EAAO3E,MAAQ,aAEhB2E,GAUXyC,EAAqB9H,UAAU+F,OAAS,WACpC,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnD8B,EAlPkB,GAqP7B/F,EAAMgG,yBAA2B,WAoB7B,SAASA,EAAyBpE,GAE9B,GADAlF,KAAKkD,KAAO,GACRgC,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAkRhD,OAzQAyI,EAAyB/H,UAAUhC,IAAMmF,EAAMU,UAAU,IAQzDkE,EAAyB/H,UAAU7B,MAAQgF,EAAMU,UAAU,IAQ3DkE,EAAyB/H,UAAUsC,KAAO,KAQ1CyF,EAAyB/H,UAAU2B,KAAOwB,EAAMW,WAUhDiE,EAAyBvE,OAAS,SAAgBG,GAC9C,OAAO,IAAIoE,EAAyBpE,IAYxCoE,EAAyB9F,OAAS,SAAgB8B,EAASC,GASvD,GARKA,IACDA,EAASf,EAAQO,UACF,MAAfO,EAAQ/F,KAAe+F,EAAQE,eAAe,QAC9CD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ/F,KACtC,MAAjB+F,EAAQ5F,OAAiB4F,EAAQE,eAAe,UAChDD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ5F,OACvC,MAAhB4F,EAAQzB,MAAgByB,EAAQE,eAAe,SAC/CZ,EAAMtB,MAAMqC,OAAOnC,OAAO8B,EAAQzB,KAAM0B,EAAOE,OAA8B,IAAIG,QAAQC,SACzE,MAAhBP,EAAQpC,MAAgBoC,EAAQpC,KAAKpC,OAAQ,CAC7CyE,EAAOE,OAA8B,IAAIG,OACzC,IAAK,IAAI/E,EAAI,EAAGA,EAAIyE,EAAQpC,KAAKpC,SAAUD,EACvC0E,EAAO6C,MAAM9C,EAAQpC,KAAKrC,IAC9B0E,EAAOM,SAEX,OAAON,GAYX+D,EAAyBxD,gBAAkB,SAAyBR,EAASC,GACzE,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxCyD,EAAyBvD,OAAS,SAAgBC,EAAQlF,GAChDkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMgG,yBACtFtD,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ/F,IAAMyG,EAAON,QACrB,MACJ,KAAK,EACDJ,EAAQ5F,MAAQsG,EAAON,QACvB,MACJ,KAAK,EACDJ,EAAQzB,KAAOe,EAAMtB,MAAMqC,OAAOI,OAAOC,EAAQA,EAAOP,UACxD,MACJ,KAAK,EAGD,GAFMH,EAAQpC,MAAQoC,EAAQpC,KAAKpC,SAC/BwE,EAAQpC,KAAO,IACD,IAAP,EAANkD,GAED,IADA,IAAI+C,EAAOnD,EAAOP,SAAWO,EAAOG,IAC7BH,EAAOG,IAAMgD,GAChB7D,EAAQpC,KAAKP,KAAKqD,EAAOoC,cAE7B9C,EAAQpC,KAAKP,KAAKqD,EAAOoC,SAC7B,MACJ,QACIpC,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXgE,EAAyBhD,gBAAkB,SAAyBN,GAGhE,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtC6D,EAAyB/C,OAAS,SAAgBjB,GAC9C,GAAuB,iBAAZA,GAAoC,OAAZA,EAC/B,MAAO,kBACX,GAAmB,MAAfA,EAAQ/F,KAAe+F,EAAQE,eAAe,UACxCF,EAAQ/F,KAAqC,iBAAvB+F,EAAQ/F,IAAIuB,QAAuB4D,EAAM8B,SAASlB,EAAQ/F,MAClF,MAAO,uBACf,GAAqB,MAAjB+F,EAAQ5F,OAAiB4F,EAAQE,eAAe,YAC1CF,EAAQ5F,OAAyC,iBAAzB4F,EAAQ5F,MAAMoB,QAAuB4D,EAAM8B,SAASlB,EAAQ5F,QACtF,MAAO,yBACf,GAAoB,MAAhB4F,EAAQzB,MAAgByB,EAAQE,eAAe,QAAS,CACxD,IAAI7F,EAAQiF,EAAMtB,MAAMqC,OAAOY,OAAOjB,EAAQzB,MAC9C,GAAIlE,EACA,MAAO,QAAUA,EAEzB,GAAoB,MAAhB2F,EAAQpC,MAAgBoC,EAAQE,eAAe,QAAS,CACxD,IAAKiB,MAAMC,QAAQpB,EAAQpC,MACvB,MAAO,uBACX,IAAK,IAAIrC,EAAI,EAAGA,EAAIyE,EAAQpC,KAAKpC,SAAUD,EACvC,IAAK6D,EAAMmE,UAAUvD,EAAQpC,KAAKrC,IAC9B,MAAO,2BAEnB,OAAO,MAWXyI,EAAyB3C,WAAa,SAAoBC,GACtD,GAAIA,aAAkBhC,EAAMtB,MAAMgG,yBAC9B,OAAO1C,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMgG,yBAW9B,GAVkB,MAAd1C,EAAOrH,MACmB,iBAAfqH,EAAOrH,IACdmF,EAAMmC,OAAOd,OAAOa,EAAOrH,IAAK+F,EAAQ/F,IAAMmF,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOrH,MAAO,GAC3FqH,EAAOrH,IAAIuB,SAChBwE,EAAQ/F,IAAMqH,EAAOrH,MACT,MAAhBqH,EAAOlH,QACqB,iBAAjBkH,EAAOlH,MACdgF,EAAMmC,OAAOd,OAAOa,EAAOlH,MAAO4F,EAAQ5F,MAAQgF,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOlH,QAAS,GACjGkH,EAAOlH,MAAMoB,SAClBwE,EAAQ5F,MAAQkH,EAAOlH,QACZ,MAAfkH,EAAO/C,KAAc,CACrB,GAA2B,iBAAhB+C,EAAO/C,KACd,MAAMpD,UAAU,yDACpB6E,EAAQzB,KAAOe,EAAMtB,MAAMqC,OAAOgB,WAAWC,EAAO/C,MAExD,GAAI+C,EAAO1D,KAAM,CACb,IAAKuD,MAAMC,QAAQE,EAAO1D,MACtB,MAAMzC,UAAU,wDACpB6E,EAAQpC,KAAO,GACf,IAAK,IAAIrC,EAAI,EAAGA,EAAI+F,EAAO1D,KAAKpC,SAAUD,EACtCyE,EAAQpC,KAAKrC,GAAsB,EAAjB+F,EAAO1D,KAAKrC,GAEtC,OAAOyE,GAYXgE,EAAyBxC,SAAW,SAAkBxB,EAASyB,GACtDA,IACDA,EAAU,IACd,IAAIH,EAAS,GA0Bb,IAzBIG,EAAQC,QAAUD,EAAQE,YAC1BL,EAAO1D,KAAO,IACd6D,EAAQE,WACJF,EAAQrB,QAAUwB,OAClBN,EAAOrH,IAAM,IAEbqH,EAAOrH,IAAM,GACTwH,EAAQrB,QAAUe,QAClBG,EAAOrH,IAAMmF,EAAMU,UAAUwB,EAAOrH,OAExCwH,EAAQrB,QAAUwB,OAClBN,EAAOlH,MAAQ,IAEfkH,EAAOlH,MAAQ,GACXqH,EAAQrB,QAAUe,QAClBG,EAAOlH,MAAQgF,EAAMU,UAAUwB,EAAOlH,SAE9CkH,EAAO/C,KAAO,MAEC,MAAfyB,EAAQ/F,KAAe+F,EAAQE,eAAe,SAC9CoB,EAAOrH,IAAMwH,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ/F,IAAK,EAAG+F,EAAQ/F,IAAIuB,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ/F,KAAO+F,EAAQ/F,KAC7J,MAAjB+F,EAAQ5F,OAAiB4F,EAAQE,eAAe,WAChDoB,EAAOlH,MAAQqH,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ5F,MAAO,EAAG4F,EAAQ5F,MAAMoB,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ5F,OAAS4F,EAAQ5F,OACtK,MAAhB4F,EAAQzB,MAAgByB,EAAQE,eAAe,UAC/CoB,EAAO/C,KAAOe,EAAMtB,MAAMqC,OAAOmB,SAASxB,EAAQzB,KAAMkD,IACxDzB,EAAQpC,MAAQoC,EAAQpC,KAAKpC,OAAQ,CACrC8F,EAAO1D,KAAO,GACd,IAAK,IAAImE,EAAI,EAAGA,EAAI/B,EAAQpC,KAAKpC,SAAUuG,EACvCT,EAAO1D,KAAKmE,GAAK/B,EAAQpC,KAAKmE,GAEtC,OAAOT,GAUX0C,EAAyB/H,UAAU+F,OAAS,WACxC,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnD+B,EA3SsB,GA8SjChG,EAAMiG,4BAA8B,WAmBhC,SAASA,EAA4BrE,GACjC,GAAIA,EACA,IAAK,IAAIC,EAAOhE,OAAOgE,KAAKD,GAAarE,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EACpC,MAAvBqE,EAAWC,EAAKtE,MAChBb,KAAKmF,EAAKtE,IAAMqE,EAAWC,EAAKtE,KAiOhD,OAxNA0I,EAA4BhI,UAAUhC,IAAMmF,EAAMU,UAAU,IAQ5DmE,EAA4BhI,UAAUwB,KAAO,KAQ7CwG,EAA4BhI,UAAUyB,MAAQ,KAU9CuG,EAA4BxE,OAAS,SAAgBG,GACjD,OAAO,IAAIqE,EAA4BrE,IAY3CqE,EAA4B/F,OAAS,SAAgB8B,EAASC,GAS1D,OARKA,IACDA,EAASf,EAAQO,UACF,MAAfO,EAAQ/F,KAAe+F,EAAQE,eAAe,QAC9CD,EAAOE,OAA8B,IAAIC,MAAMJ,EAAQ/F,KACvC,MAAhB+F,EAAQvC,MAAgBuC,EAAQE,eAAe,SAC/CZ,EAAMtB,MAAMgG,yBAAyB9F,OAAO8B,EAAQvC,KAAMwC,EAAOE,OAA8B,IAAIG,QAAQC,SAC1F,MAAjBP,EAAQtC,OAAiBsC,EAAQE,eAAe,UAChDZ,EAAMtB,MAAMgG,yBAAyB9F,OAAO8B,EAAQtC,MAAOuC,EAAOE,OAA8B,IAAIG,QAAQC,SACzGN,GAYXgE,EAA4BzD,gBAAkB,SAAyBR,EAASC,GAC5E,OAAOvF,KAAKwD,OAAO8B,EAASC,GAAQM,UAcxC0D,EAA4BxD,OAAS,SAAgBC,EAAQlF,GACnDkF,aAAkB1B,IACpB0B,EAAS1B,EAAQS,OAAOiB,IAE5B,IADA,IAAIC,OAAiB5F,IAAXS,EAAuBkF,EAAOE,IAAMF,EAAOG,IAAMrF,EAAQwE,EAAU,IAAIV,EAAMtB,MAAMiG,4BACtFvD,EAAOG,IAAMF,GAAK,CACrB,IAAIG,EAAMJ,EAAOP,SACjB,OAAQW,IAAQ,GAChB,KAAK,EACDd,EAAQ/F,IAAMyG,EAAON,QACrB,MACJ,KAAK,EACDJ,EAAQvC,KAAO6B,EAAMtB,MAAMgG,yBAAyBvD,OAAOC,EAAQA,EAAOP,UAC1E,MACJ,KAAK,EACDH,EAAQtC,MAAQ4B,EAAMtB,MAAMgG,yBAAyBvD,OAAOC,EAAQA,EAAOP,UAC3E,MACJ,QACIO,EAAOK,SAAe,EAAND,IAIxB,OAAOd,GAaXiE,EAA4BjD,gBAAkB,SAAyBN,GAGnE,OAFMA,aAAkB1B,IACpB0B,EAAS,IAAI1B,EAAQ0B,IAClBhG,KAAK+F,OAAOC,EAAQA,EAAOP,WAWtC8D,EAA4BhD,OAAS,SAAgBjB,GACjD,MAAuB,iBAAZA,GAAoC,OAAZA,EACxB,kBACQ,MAAfA,EAAQ/F,KAAe+F,EAAQE,eAAe,UACxCF,EAAQ/F,KAAqC,iBAAvB+F,EAAQ/F,IAAIuB,QAAuB4D,EAAM8B,SAASlB,EAAQ/F,MAC3E,uBACK,MAAhB+F,EAAQvC,MAAgBuC,EAAQE,eAAe,UAC3C7F,EAAQiF,EAAMtB,MAAMgG,yBAAyB/C,OAAOjB,EAAQvC,OAErD,QAAUpD,EAEJ,MAAjB2F,EAAQtC,OAAiBsC,EAAQE,eAAe,WAC5C7F,EAAQiF,EAAMtB,MAAMgG,yBAAyB/C,OAAOjB,EAAQtC,QAErD,SAAWrD,EAEnB,KATH,IAKIA,GAeZ4J,EAA4B5C,WAAa,SAAoBC,GACzD,GAAIA,aAAkBhC,EAAMtB,MAAMiG,4BAC9B,OAAO3C,EACX,IAAItB,EAAU,IAAIV,EAAMtB,MAAMiG,4BAM9B,GALkB,MAAd3C,EAAOrH,MACmB,iBAAfqH,EAAOrH,IACdmF,EAAMmC,OAAOd,OAAOa,EAAOrH,IAAK+F,EAAQ/F,IAAMmF,EAAMU,UAAUV,EAAMmC,OAAO/F,OAAO8F,EAAOrH,MAAO,GAC3FqH,EAAOrH,IAAIuB,SAChBwE,EAAQ/F,IAAMqH,EAAOrH,MACV,MAAfqH,EAAO7D,KAAc,CACrB,GAA2B,iBAAhB6D,EAAO7D,KACd,MAAMtC,UAAU,4DACpB6E,EAAQvC,KAAO6B,EAAMtB,MAAMgG,yBAAyB3C,WAAWC,EAAO7D,MAE1E,GAAoB,MAAhB6D,EAAO5D,MAAe,CACtB,GAA4B,iBAAjB4D,EAAO5D,MACd,MAAMvC,UAAU,6DACpB6E,EAAQtC,MAAQ4B,EAAMtB,MAAMgG,yBAAyB3C,WAAWC,EAAO5D,OAE3E,OAAOsC,GAYXiE,EAA4BzC,SAAW,SAAkBxB,EAASyB,GACzDA,IACDA,EAAU,IACd,IAAIH,EAAS,GAkBb,OAjBIG,EAAQE,WACJF,EAAQrB,QAAUwB,OAClBN,EAAOrH,IAAM,IAEbqH,EAAOrH,IAAM,GACTwH,EAAQrB,QAAUe,QAClBG,EAAOrH,IAAMmF,EAAMU,UAAUwB,EAAOrH,OAE5CqH,EAAO7D,KAAO,KACd6D,EAAO5D,MAAQ,MAEA,MAAfsC,EAAQ/F,KAAe+F,EAAQE,eAAe,SAC9CoB,EAAOrH,IAAMwH,EAAQrB,QAAUwB,OAASxC,EAAMmC,OAAOrD,OAAO8B,EAAQ/F,IAAK,EAAG+F,EAAQ/F,IAAIuB,QAAUiG,EAAQrB,QAAUe,MAAQA,MAAMlF,UAAU4F,MAAMC,KAAK9B,EAAQ/F,KAAO+F,EAAQ/F,KAC9J,MAAhB+F,EAAQvC,MAAgBuC,EAAQE,eAAe,UAC/CoB,EAAO7D,KAAO6B,EAAMtB,MAAMgG,yBAAyBxC,SAASxB,EAAQvC,KAAMgE,IACzD,MAAjBzB,EAAQtC,OAAiBsC,EAAQE,eAAe,WAChDoB,EAAO5D,MAAQ4B,EAAMtB,MAAMgG,yBAAyBxC,SAASxB,EAAQtC,MAAO+D,IACzEH,GAUX2C,EAA4BhI,UAAU+F,OAAS,WAC3C,OAAOtH,KAAK4B,YAAYkF,SAAS9G,KAAMqE,EAAUM,KAAK4C,gBAGnDgC,EAxPyB,GA2P7BjG,GAGXzE,EAAOD,QAAUgG,+BC1xHjBzD,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ4K,yBAA2B5K,EAAQ6K,sBAAwB7K,EAAQ8K,oBAAsB9K,EAAQ+K,sBAAmB,EAC5H,MAAMC,EAAa,EAAQ,MACrBC,EAAW,EAAQ,MACnBC,EAAU,EAAQ,MA0BxB,SAASH,EAAiB1H,EAAO8H,EAAMrL,EAAMa,EAAKG,GAC9C,MACM8C,EAyDV,SAAwBP,EAAO1C,GAC3B,MAAMyK,EAASC,KAAQA,IAAK,EAAIH,EAAQI,YAAY3K,EAAK0K,EAAE1K,KAC3D,OAAIyK,EAAM/H,EAAMO,OACLP,EAAMO,MAERP,EAAMgC,MACJhC,EAAMgC,MAAM1B,QAAQY,KAAKgH,GAAMA,EAAE3H,OAAS,OAAM4H,KAAKJ,QAD3D,EA9DSK,EADD,EAAIT,EAAW/H,YAAYI,GACL1C,GACnC,IAAKiD,EACD,OAAO,EAEX,IAEI,OADA,EAAIqH,EAASS,iBAAiB9H,EAAOuH,EAAMrL,EAAMa,EAAKG,IAC/C,EAEX,MAAO6K,GACH,OAAO,GAOf,SAASb,EAAoBzH,EAAO8H,EAAMrL,EAAMa,GAC5C,MACMqD,EAiDV,SAA2BX,EAAO1C,GAC9B,MAAMyK,EAASC,KACDA,KACJA,EAAElH,OAAQ,EAAI+G,EAAQU,aAAaP,EAAElH,KAAKxD,IAAKA,OAC/C0K,EAAEjH,QAAS,EAAI8G,EAAQU,aAAajL,EAAK0K,EAAEjH,MAAMzD,MAE3D,OAAIyK,EAAM/H,EAAMW,UACLX,EAAMW,SAERX,EAAMgC,MACJhC,EAAMgC,MAAM1B,QAAQY,KAAKgH,GAAMA,EAAEvH,UAAY,OAAMwH,KAAKJ,QAD9D,EA1DYS,EADJ,EAAIb,EAAW/H,YAAYI,GACC1C,GACzC,IAAKqD,EACD,OAAO,EAEX,IAEI,OADA,EAAIiH,EAASa,oBAAoB9H,EAAUmH,EAAMrL,EAAMa,IAChD,EAEX,MAAOgL,GACH,OAAO,GAff3L,EAAQ+K,iBAAmBA,EAkB3B/K,EAAQ8K,oBAAsBA,EAa9B9K,EAAQ6K,sBATR,SAA+BxH,EAAO8H,EAAMrL,EAAMiM,GAC9C,MAAMC,GAAO,EAAIhB,EAAW/H,YAAYI,GACxC,IAAK,MAAO1C,EAAKG,KAAUiL,EAAMpI,UAC7B,IAAKoH,EAAiBiB,EAAMb,EAAMrL,EAAMa,EAAKG,GACzC,OAAO,EAGf,OAAO,GAeXd,EAAQ4K,yBATR,SAAkCvH,EAAO8H,EAAMrL,EAAMyG,GACjD,MAAMyF,GAAO,EAAIhB,EAAW/H,YAAYI,GACxC,IAAK,MAAM1C,KAAO4F,EACd,IAAKuE,EAAoBkB,EAAMb,EAAMrL,EAAMa,GACvC,OAAO,EAGf,OAAO,gCCtFX4B,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ8L,mBAAqB9L,EAAQ0L,gBAAkB1L,EAAQiM,eAAiBjM,EAAQkM,SAAWlM,EAAQmM,uBAAyBnM,EAAQ8K,oBAAsB9K,EAAQ+K,iBAAmB/K,EAAQ0E,WAAQ,EAC7M,IAAIvB,EAAc,EAAQ,KAC1BZ,OAAOC,eAAexC,EAAS,QAAS,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO5B,EAAYuB,SAClG,IAAI0H,EAAU,EAAQ,MACtB7J,OAAOC,eAAexC,EAAS,mBAAoB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOqH,EAAQrB,oBACzGxI,OAAOC,eAAexC,EAAS,sBAAuB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOqH,EAAQtB,uBAC5G,IAAIG,EAAW,EAAQ,MACvB1I,OAAOC,eAAexC,EAAS,yBAA0B,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOkG,EAASkB,0BAChH5J,OAAOC,eAAexC,EAAS,WAAY,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOkG,EAASiB,YAClG3J,OAAOC,eAAexC,EAAS,iBAAkB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOkG,EAASgB,kBACxG1J,OAAOC,eAAexC,EAAS,kBAAmB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOkG,EAASS,mBACzGnJ,OAAOC,eAAexC,EAAS,qBAAsB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOkG,EAASa,mDCZ5GvJ,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQqM,OAASrM,EAAQsM,WAAatM,EAAQuM,eAAY,EAC1D,MAAMC,EAAc,EAAQ,KACtBC,EAAW,EAAQ,MACnBC,EAAW,EAAQ,MACnBvJ,EAAc,EAAQ,KA8B5B,SAASwJ,EAAOC,EAAO9L,GACnB,OAAO8L,MAAAA,EAAwC9L,EAAQ8L,EAd3D5M,EAAQuM,UAhBR,SAAmBtH,EAAMtE,EAAKG,GAC1B,GAAmB,IAAfH,EAAIuB,OACJ,MAAM,IAAI+B,MAAM,eAEpB,GAAqB,IAAjBnD,EAAMoB,OACN,MAAM,IAAI+B,MAAM,iBAEpB,MAAM4I,EAAOC,EAAgBC,EAAW9H,EAAKoE,YAAa2D,EAAa/H,EAAK/C,QAASvB,GAC/EsM,EAASH,EAAgBC,EAAW9H,EAAKqE,cAAe0D,EAAa/H,EAAK/C,QAASpB,GACnFoM,EAAO,IAAIC,WAAW,IACrBC,EAAYnI,EAAKsE,WACjBsD,KACAI,IAEP,OAAOZ,EAAOU,EAAW9H,EAAKmE,MAAO8D,IAczClN,EAAQsM,WAXR,SAAoB9H,EAAO6I,GACvB,GAAqB,IAAjBA,EAAMnL,OACN,MAAM,IAAI+B,MAAM,8BAEpB,MAAMqJ,EAAW,IAAIH,WAAW,IACzBC,EAAY5I,EAAM+E,WAClB8D,KACAD,EAAY5I,EAAMkF,UAEzB,OAAO2C,EAAOU,EAAWvI,EAAM4E,MAAOkE,IAM1C,MAAMP,EAAcQ,GAAMZ,EAAOY,EAAGpK,EAAYuB,MAAMwB,OAAOsH,SACvDR,EAAgBS,GAAMd,EAAOc,EAAGtK,EAAYuB,MAAM0B,SAASsH,WAC3DN,EAAeO,GAAMhB,EAAOgB,EAAG,IAAIR,WAAW,KACpD,SAASL,EAAgBc,EAAQC,EAAUX,GACvC,MAAMK,EAKV,SAAsBK,EAAQN,GAC1B,OAAIM,IAAWzK,EAAYuB,MAAMwB,OAAOsH,QAC7BF,EAEJjB,EAAOuB,EAAQN,GATZQ,CAAaF,EAAQV,GAC/B,OA8BJ,SAAoBW,EAAUX,GAC1B,OAAQW,GACJ,KAAK1K,EAAYuB,MAAM0B,SAASsH,UAC5B,OAAOR,EACX,KAAK/J,EAAYuB,MAAM0B,SAAS2H,UAC5B,OAAO,IAAIZ,WAAW,IAAIa,EAAkBd,EAAKhL,WAAYgL,IACjE,KAAK/J,EAAYuB,MAAM0B,SAAS6H,iBAC5B,GAAoB,KAAhBf,EAAKhL,OACL,MAAM,IAAI+B,MAAM,aAAaiJ,EAAKhL,wBAEtC,OAAOgL,EACX,KAAK/J,EAAYuB,MAAM0B,SAAS8H,iBAC5B,GAAoB,KAAhBhB,EAAKhL,OACL,MAAM,IAAI+B,MAAM,aAAaiJ,EAAKhL,wBAEtC,OAAOgL,EACX,KAAK/J,EAAYuB,MAAM0B,SAAS+H,eAC5B,OAAO,IAAIhB,WAAW,IAAIiB,EAAgBlB,EAAKhL,WAAYgL,IAOnE,MAAM,IAAIjJ,MAAM,yBAAyB4J,KAtDlCQ,CAAWR,EAAUN,GAYhC,SAASlB,EAAOuB,EAAQN,GACpB,OAAQM,GACJ,KAAKzK,EAAYuB,MAAMwB,OAAOoI,OAC1B,OAAO,EAAI7B,EAAS8B,QAAQjB,GAChC,KAAKnK,EAAYuB,MAAMwB,OAAOsI,OAC1B,OAAO,EAAI9B,EAAS+B,QAAQnB,GAChC,KAAKnK,EAAYuB,MAAMwB,OAAOwI,UAC1B,OAAO,EAAIlC,EAAYmC,WAAWrB,GACtC,KAAKnK,EAAYuB,MAAMwB,OAAO0I,QAC1B,OAAO,EAAIpC,EAAYmC,YAAW,EAAIlC,EAAS8B,QAAQjB,IAC3D,KAAKnK,EAAYuB,MAAMwB,OAAO2I,WAC1B,OAAO,EAAInC,EAASoC,YAAYxB,GAExC,MAAM,IAAIrJ,MAAM,uBAAuB2J,KA+B3C,SAASI,EAAkBe,GACvB,IAAIC,EAAM,GACNvB,EAAIsB,EACR,KAAOtB,GAAK,KAAK,CACb,MAAME,EAAKF,EAAI,IAAO,IACtBuB,EAAM,IAAIA,EAAKrB,GACfF,GAAQ,IAGZ,OADAuB,EAAM,IAAIA,EAAKvB,GACR,IAAIN,WAAW6B,GAE1B,SAASZ,EAAgBW,GACrB,MAAMC,EAAM,IAAI7B,WAAW,GAC3B,IAAIM,EAAIsB,EACR,IAAK,IAAI9M,EAAI+M,EAAI9M,OAAQD,EAAI,EAAGA,IAC5B+M,EAAIC,KAAKC,IAAIjN,EAAI+M,EAAI9M,SAAWuL,EAAI,IACpCA,EAAIwB,KAAKE,MAAM1B,EAAI,KAEvB,OAAOuB,EA/CXhP,EAAQqM,OAASA,+BCtEjB9J,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQoP,mBAAqBpP,EAAQqP,WAAarP,EAAQmM,uBAAyBnM,EAAQ8L,mBAAqB9L,EAAQ0L,gBAAkB1L,EAAQsP,QAAUtP,EAAQiM,eAAiBjM,EAAQkM,cAAW,EACxM,MAAM/I,EAAc,EAAQ,KACtBoM,EAAQ,EAAQ,MAChBrE,EAAU,EAAQ,MAqDxB,SAASQ,EAAgBrI,EAAO8H,EAAMrL,EAAMa,EAAKG,GAC7CuO,EAAWhM,EAAO8H,GAClB,MAAMqE,EAAOrD,EAAuB9I,IACpC,EAAI6H,EAAQuE,kBAAkBD,EAAM1P,IACpC,EAAIoL,EAAQuE,kBAAkB9O,EAAK0C,EAAM1C,MACzC,EAAIuK,EAAQuE,kBAAkB3O,EAAOuC,EAAMvC,OA4C/C,SAASqL,EAAuB9I,GAC5B,IAAKA,EAAM1C,MAAQ0C,EAAMvC,MACrB,MAAM,IAAImD,MAAM,2CAEpB,IAAKZ,EAAM4B,KACP,MAAM,IAAIhB,MAAM,oDAEpB,MAAMK,EAAOjB,EAAMiB,MAAQ,GAC3B,IAAIoL,GAAM,EAAIH,EAAMhD,WAAWlJ,EAAM4B,KAAM5B,EAAM1C,IAAK0C,EAAMvC,OAC5D,IAAK,MAAM0D,KAASF,EAChBoL,GAAM,EAAIH,EAAMjD,YAAY9H,EAAOkL,GAEvC,OAAOA,EAIX,SAASL,EAAWhM,EAAO8H,GACvB,IAAK9H,EAAM4B,KACP,MAAM,IAAIhB,MAAM,oDAEpB,IAAKkH,EAAKvB,SACN,MAAM,IAAI3F,MAAM,8BAEpB,IAAKkH,EAAKtB,UACN,MAAM,IAAI5F,MAAM,gCAEpB,EAAIiH,EAAQyE,YAAYtM,EAAM4B,KAAMkG,EAAKvB,UACzC,MAAMtF,EAAOjB,EAAMiB,MAAQ,GAC3B,GAAI6G,EAAKpB,UAAYzF,EAAKpC,OAASiJ,EAAKpB,SACpC,MAAM,IAAI9F,MAAM,uBAAuBK,EAAKpC,UAEhD,GAAIiJ,EAAKrB,UAAYxF,EAAKpC,OAASiJ,EAAKrB,SACpC,MAAM,IAAI7F,MAAM,wBAAwBK,EAAKpC,UAEjD,IAAK,MAAMsC,KAASF,GAChB,EAAI4G,EAAQ0E,aAAapL,EAAO2G,EAAKvB,SAASL,OAAQ4B,EAAKtB,WAInE,SAASgG,EAAe1E,EAAM7G,GAC1B,MAAM,UAAEwL,EAAS,UAAEC,EAAS,OAAErG,GAAWsG,EAAW7E,EAAM,GAE1D,IAAK,MAAM8E,KAAQ3L,EACf,IAAK4L,EAAWD,EAAMH,EAAWC,EAAWrG,GACxC,MAAM,IAAIzF,MAAM,qBAI5B,SAASkM,EAAgBhF,EAAM7G,GAC3B,MAAMgD,EAAM6D,EAAKjB,WAAWhI,OAAS,GAC/B,UAAE4N,EAAS,UAAEC,EAAS,OAAErG,GAAWsG,EAAW7E,EAAM7D,GAE1D,IAAK,MAAM2I,KAAQ3L,EACf,IAAK4L,EAAWD,EAAMH,EAAWC,EAAWrG,GACxC,MAAM,IAAIzF,MAAM,qBAI5B,SAASmL,EAAmBjE,EAAMhH,EAAMC,GACpC,MAAMgM,EAAU,IAAIjM,GACdkM,EAAW,IAAIjM,GACrB,IAAIkM,EAAUF,EAAQG,MAClBC,EAAWH,EAASE,MACxB,MAAO,EAAIrF,EAAQI,YAAYgF,EAAQ/G,OAAQiH,EAASjH,UACpD,EAAI2B,EAAQI,YAAYgF,EAAQ5G,OAAQ8G,EAAS9G,SACjD4G,EAAUF,EAAQG,MAClBC,EAAWH,EAASE,MAIxB,IAUJ,SAAoBpF,EAAMhH,EAAMC,GAC5B,MAAMqM,EAAUC,EAAiBvF,EAAMhH,GAEvC,OADiBuM,EAAiBvF,EAAM/G,KACpBqM,EAAU,EAbzBE,CAAWxF,EAAMmF,EAASE,GAC3B,MAAM,IAAIvM,MAAM,8CAGpBkM,EAAgBhF,EAAMiF,GACtBP,EAAe1E,EAAMkF,GAUzB,SAASK,EAAiBvF,EAAM3G,GAC5B,IAAK,IAAIoM,EAAS,EAAGA,EAASzF,EAAKjB,WAAWhI,OAAQ0O,IAAU,CAC5D,MAAM,UAAEd,EAAS,UAAEC,EAAS,OAAErG,GAAWsG,EAAW7E,EAAMyF,GAC1D,GAAIV,EAAW1L,EAAOsL,EAAWC,EAAWrG,GACxC,OAAOkH,EAGf,MAAM,IAAI3M,MAAM,+CAEpB,SAASiM,EAAWW,EAAIf,EAAWC,EAAWrG,GAC1C,SAAKmH,EAAGtH,QAAU,IAAIrH,OAAS4N,IAG1Be,EAAGtH,QAAU,IAAIrH,OAAS6N,IAGvBc,EAAGnH,QAAU,IAAIxH,SAAWwH,GAExC,SAASsG,EAAW7E,EAAMyF,GACtB,MAAM9L,EASV,SAAqBgM,EAAOF,GACxB,GAAIA,EAAS,GAAKA,GAAUE,EAAM5O,OAC9B,MAAM,IAAI+B,MAAM,mBAAmB2M,KAEvC,OAAOE,EAAMC,WAAWC,GAAQA,IAAQJ,IAb5BK,CAAY9F,EAAKjB,WAAY0G,GAEnCrH,EAASzE,EAAMqG,EAAKhB,UAK1B,MAAO,CAAE2F,UAJSvG,EAAS4B,EAAKf,gBAIZ2F,UAHFxG,EAAS4B,EAAKd,gBAGDX,QADfyB,EAAKjB,WAAWhI,OAAS,EAAI4C,GAAOqG,EAAKhB,WAnN7DnK,EAAQkM,SAAW,CACftC,SAAU,CACNL,OAAQ4D,WAAW+D,KAAK,CAAC,IACzB9H,KAAMjG,EAAYuB,MAAMwB,OAAOoI,OAC/BhF,aAAcnG,EAAYuB,MAAMwB,OAAOoI,OACvCjF,WAAYlG,EAAYuB,MAAMwB,OAAOsH,QACrCtL,OAAQiB,EAAYuB,MAAM0B,SAAS2H,WAEvClE,UAAW,CACPK,WAAY,CAAC,EAAG,GAChBE,gBAAiB,EACjBC,gBAAiB,GACjBF,UAAW,GACXf,KAAMjG,EAAYuB,MAAMwB,OAAOoI,SAGvCtO,EAAQiM,eAAiB,CACrBrC,SAAU,CACNL,OAAQ4D,WAAW+D,KAAK,CAAC,IACzB9H,KAAMjG,EAAYuB,MAAMwB,OAAOoI,OAC/BhF,aAAcnG,EAAYuB,MAAMwB,OAAOoI,OACvCjF,WAAYlG,EAAYuB,MAAMwB,OAAOsH,QACrCtL,OAAQiB,EAAYuB,MAAM0B,SAAS2H,WAEvClE,UAAW,CACPK,WAAY,CAAC,EAAG,GAChBE,gBAAiB,EACjBC,gBAAiB,EACjBF,UAAW,GACXf,KAAMjG,EAAYuB,MAAMwB,OAAOoI,SAGvCtO,EAAQsP,QAAU,CACd1F,SAAU,CACNR,KAAMjG,EAAYuB,MAAMwB,OAAOoI,OAC/BjF,WAAYlG,EAAYuB,MAAMwB,OAAOsH,QACrClE,aAAcnG,EAAYuB,MAAMwB,OAAOoI,OACvCpM,OAAQiB,EAAYuB,MAAM0B,SAASsH,UACnCnE,OAAQ4D,WAAW+D,KAAK,CAAC,KAE7BrH,UAAW,CACPK,WAAY,CAAC,EAAG,GAChBC,UAAW,GACXC,gBAAiB,EACjBC,gBAAiB,EACjBC,WAAY,IAAI6C,WAAW,IAC3B/D,KAAMjG,EAAYuB,MAAMwB,OAAOoI,QAEnCxE,SAAU,KAWd9J,EAAQ0L,gBAAkBA,EAsC1B1L,EAAQ8L,mBAlCR,SAA4BzI,EAAO8H,EAAMrL,EAAMa,GAC3C,IAAIwQ,EACAC,EASJ,GARI/N,EAAMc,OACNuH,EAAgBrI,EAAMc,KAAMgH,EAAMrL,EAAMuD,EAAMc,KAAKxD,IAAK0C,EAAMc,KAAKrD,OACnEqQ,EAAU9N,EAAMc,KAAKxD,KAErB0C,EAAMe,QACNsH,EAAgBrI,EAAMe,MAAO+G,EAAMrL,EAAMuD,EAAMe,MAAMzD,IAAK0C,EAAMe,MAAMtD,OACtEsQ,EAAW/N,EAAMe,MAAMzD,MAEtBwQ,IAAYC,EACb,MAAM,IAAInN,MAAM,wCAQpB,GANIkN,IACA,EAAIjG,EAAQmG,mBAAmBF,EAASxQ,GAExCyQ,IACA,EAAIlG,EAAQmG,mBAAmB1Q,EAAKyQ,IAEnCjG,EAAKtB,UACN,MAAM,IAAI5F,MAAM,iBAEfkN,EAGKC,EAINhC,EAAmBjE,EAAKtB,UAAWxG,EAAMc,KAAKG,KAAMjB,EAAMe,MAAME,MAHhE6L,EAAgBhF,EAAKtB,UAAWxG,EAAMc,KAAKG,MAH3CuL,EAAe1E,EAAKtB,UAAWxG,EAAMe,MAAME,OA4BnDtE,EAAQmM,uBAAyBA,EAwBjCnM,EAAQqP,WAAaA,EAuCrBrP,EAAQoP,mBAAqBA,6BCvI7B,SAASK,EAAiB6B,EAAG3D,GACzB,GAAI2D,EAAEpP,SAAWyL,EAAEzL,OACf,MAAM,IAAI+B,MAAM,qBAAqBqN,EAAEpP,aAAayL,EAAEzL,UAE1D,IAAK,IAAID,EAAI,EAAGA,EAAIqP,EAAEpP,OAAQD,IAC1B,GAAIqP,EAAErP,KAAO0L,EAAE1L,GACX,MAAM,IAAIgC,MAAM,0BAA0BhC,MAAMqP,EAAErP,SAAS0L,EAAE1L,MA2CzE,SAAS2J,EAAY2F,EAAOC,GACxB,MAAMC,EAAMF,EAAMrP,OAASsP,EAAKtP,OAASqP,EAAMrP,OAASsP,EAAKtP,OAC7D,IAAK,IAAID,EAAI,EAAGA,EAAIwP,EAAKxP,IAAK,CAC1B,GAAIsP,EAAMtP,GAAKuP,EAAKvP,GAChB,OAAO,EAEX,GAAIsP,EAAMtP,GAAKuP,EAAKvP,GAChB,OAAO,EAKf,OAAOsP,EAAMrP,OAASsP,EAAKtP,OA7G/BK,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ4L,YAAc5L,EAAQqR,kBAAoBrR,EAAQsL,WAAatL,EAAQyP,iBAAmBzP,EAAQ4P,YAAc5P,EAAQ2P,gBAAa,EAgB7I3P,EAAQ2P,WAfR,SAAoB1K,EAAMkG,GACtB,GAAIlG,EAAKmE,OAAS+B,EAAK/B,KACnB,MAAM,IAAInF,MAAM,sBAAsBgB,EAAKmE,QAE/C,GAAInE,EAAKoE,aAAe8B,EAAK9B,WACzB,MAAM,IAAIpF,MAAM,0BAA0BgB,EAAKoE,cAEnD,GAAIpE,EAAKqE,eAAiB6B,EAAK7B,aAC3B,MAAM,IAAIrF,MAAM,4BAA4BgB,EAAKqE,gBAErD,GAAIrE,EAAK/C,SAAWiJ,EAAKjJ,OACrB,MAAM,IAAI+B,MAAM,yBAAyBgB,EAAK/C,WAwBtD,SAAsBwP,EAAOnI,GAEzB,GAAKA,GAA4B,IAAlBA,EAAOrH,OAAtB,CAGA,IAAKwP,EACD,MAAM,IAAIzN,MAAM,wBAEpBwL,EAAiBlG,EAAQmI,EAAMnJ,MAAM,EAAGgB,EAAOrH,UA9B/CyP,CAAa1M,EAAKsE,OAAQ4B,EAAK5B,SAqBnCvJ,EAAQ4P,YAlBR,SAAqBpL,EAAO+E,EAAQ4B,GAChC,GAAI3G,EAAM4E,OAAS+B,EAAK/B,KACpB,MAAM,IAAInF,MAAM,sBAAsBO,EAAM4E,QAEhD,IAAK5E,EAAM+E,OACP,MAAM,IAAItF,MAAM,gCAEpB,GA8CJ,SAAmByN,EAAOnI,GAEtB,IAAKA,GAA4B,IAAlBA,EAAOrH,OAClB,OAAO,EAEX,IAAKwP,EACD,OAAO,EAEX,GAAIA,EAAMxP,QAAUqH,EAAOrH,OACvB,OAAO,EAEX,IAAK,IAAID,EAAI,EAAGA,EAAIsH,EAAOrH,OAAQD,IAC/B,GAAIyP,EAAMzP,KAAOsH,EAAOtH,GACpB,OAAO,EAGf,MAAM,EA9DF2P,CAAUpN,EAAM+E,OAAQA,GACxB,MAAM,IAAItF,MAAM,8BAEpB,GAAIO,EAAM+E,OAAOrH,QAAUiJ,EAAKf,iBAAmB,GAC/C,MAAM,IAAInG,MAAM,qBAAqBO,EAAM+E,OAAOrH,gBAEtD,MAAM2P,GAAqB1G,EAAKjB,WAAWhI,OAAS,GAAKiJ,EAAKhB,UAC9D,GAAI3F,EAAM+E,OAAOrH,QAAUiJ,EAAKd,iBAAmB,GAAKwH,EACpD,MAAM,IAAI5N,MAAM,oBAAoBO,EAAM+E,OAAOrH,iBAyBzDlC,EAAQyP,iBAAmBA,EAY3BzP,EAAQsL,WAXR,SAAoBgG,EAAG3D,GACnB,GAAI2D,EAAEpP,SAAWyL,EAAEzL,OACf,OAAO,EAEX,IAAK,IAAID,EAAI,EAAGA,EAAIqP,EAAEpP,OAAQD,IAC1B,GAAIqP,EAAErP,KAAO0L,EAAE1L,GACX,OAAO,EAGf,OAAO,GA4BXjC,EAAQqR,kBALR,SAA2BE,EAAOC,GAC9B,IAAK5F,EAAY2F,EAAOC,GACpB,MAAM,IAAIvN,MAAM,wBAkBxBjE,EAAQ4L,YAAcA,+BC7GtB3L,EAAOD,QAAU,EAAjB,mCCFA,IAAI8R,EAAW9R,EA2Bf,SAAS+R,IACLD,EAAS/L,KAAKiM,aACdF,EAASjM,OAAOmM,WAAWF,EAASG,cACpCH,EAASnM,OAAOqM,WAAWF,EAASI,cAtBxCJ,EAASK,MAAQ,UAGjBL,EAASjM,OAAe,EAAQ,MAChCiM,EAASG,aAAe,EAAQ,MAChCH,EAASnM,OAAe,EAAQ,KAChCmM,EAASI,aAAe,EAAQ,MAGhCJ,EAAS/L,KAAe,EAAQ,KAChC+L,EAASM,IAAe,EAAQ,MAChCN,EAAS7L,MAAe,EAAQ,MAChC6L,EAASC,UAAeA,EAcxBA,gCClCA9R,EAAOD,QAAU2F,EAEjB,IAEIuM,EAFAnM,EAAY,EAAQ,KAIpBsM,EAAYtM,EAAKsM,SACjBC,EAAYvM,EAAKuM,KAGrB,SAASC,EAAgBnL,EAAQoL,GAC7B,OAAOC,WAAW,uBAAyBrL,EAAOG,IAAM,OAASiL,GAAe,GAAK,MAAQpL,EAAOE,KASxG,SAAS3B,EAAO+M,GAMZtR,KAAKuR,IAAMD,EAMXtR,KAAKmG,IAAM,EAMXnG,KAAKkG,IAAMoL,EAAOxQ,OAGtB,IA4CQpB,EA5CJ8R,EAAqC,oBAAfzF,WACpB,SAA4BuF,GAC1B,GAAIA,aAAkBvF,YAActF,MAAMC,QAAQ4K,GAC9C,OAAO,IAAI/M,EAAO+M,GACtB,MAAMzO,MAAM,mBAGd,SAAsByO,GACpB,GAAI7K,MAAMC,QAAQ4K,GACd,OAAO,IAAI/M,EAAO+M,GACtB,MAAMzO,MAAM,mBAGhBkC,EAAS,WACT,OAAOJ,EAAK8M,OACN,SAA6BH,GAC3B,OAAQ/M,EAAOQ,OAAS,SAAuBuM,GAC3C,OAAO3M,EAAK8M,OAAOC,SAASJ,GACtB,IAAIR,EAAaQ,GAEjBE,EAAaF,KACpBA,IAGLE,GAwDV,SAASG,IAEL,IAAIC,EAAO,IAAIX,EAAS,EAAG,GACvBpQ,EAAI,EACR,KAAIb,KAAKkG,IAAMlG,KAAKmG,IAAM,GAanB,CACH,KAAOtF,EAAI,IAAKA,EAAG,CAEf,GAAIb,KAAKmG,KAAOnG,KAAKkG,IACjB,MAAMiL,EAAgBnR,MAG1B,GADA4R,EAAKC,IAAMD,EAAKC,IAA2B,IAArB7R,KAAKuR,IAAIvR,KAAKmG,OAAmB,EAAJtF,KAAW,EAC1Db,KAAKuR,IAAIvR,KAAKmG,OAAS,IACvB,OAAOyL,EAIf,OADAA,EAAKC,IAAMD,EAAKC,IAA6B,IAAvB7R,KAAKuR,IAAIvR,KAAKmG,SAAqB,EAAJtF,KAAW,EACzD+Q,EAxBP,KAAO/Q,EAAI,IAAKA,EAGZ,GADA+Q,EAAKC,IAAMD,EAAKC,IAA2B,IAArB7R,KAAKuR,IAAIvR,KAAKmG,OAAmB,EAAJtF,KAAW,EAC1Db,KAAKuR,IAAIvR,KAAKmG,OAAS,IACvB,OAAOyL,EAKf,GAFAA,EAAKC,IAAMD,EAAKC,IAA2B,IAArB7R,KAAKuR,IAAIvR,KAAKmG,OAAe,MAAQ,EAC3DyL,EAAKE,IAAMF,EAAKE,IAA2B,IAArB9R,KAAKuR,IAAIvR,KAAKmG,OAAgB,KAAO,EACvDnG,KAAKuR,IAAIvR,KAAKmG,OAAS,IACvB,OAAOyL,EAgBf,GAfI/Q,EAAI,EAeJb,KAAKkG,IAAMlG,KAAKmG,IAAM,GACtB,KAAOtF,EAAI,IAAKA,EAGZ,GADA+Q,EAAKE,IAAMF,EAAKE,IAA2B,IAArB9R,KAAKuR,IAAIvR,KAAKmG,OAAmB,EAAJtF,EAAQ,KAAO,EAC9Db,KAAKuR,IAAIvR,KAAKmG,OAAS,IACvB,OAAOyL,OAGf,KAAO/Q,EAAI,IAAKA,EAAG,CAEf,GAAIb,KAAKmG,KAAOnG,KAAKkG,IACjB,MAAMiL,EAAgBnR,MAG1B,GADA4R,EAAKE,IAAMF,EAAKE,IAA2B,IAArB9R,KAAKuR,IAAIvR,KAAKmG,OAAmB,EAAJtF,EAAQ,KAAO,EAC9Db,KAAKuR,IAAIvR,KAAKmG,OAAS,IACvB,OAAOyL,EAInB,MAAM/O,MAAM,2BAkChB,SAASkP,EAAgBR,EAAKtL,GAC1B,OAAQsL,EAAItL,EAAM,GACVsL,EAAItL,EAAM,IAAM,EAChBsL,EAAItL,EAAM,IAAM,GAChBsL,EAAItL,EAAM,IAAM,MAAQ,EA+BpC,SAAS+L,IAGL,GAAIhS,KAAKmG,IAAM,EAAInG,KAAKkG,IACpB,MAAMiL,EAAgBnR,KAAM,GAEhC,OAAO,IAAIiR,EAASc,EAAgB/R,KAAKuR,IAAKvR,KAAKmG,KAAO,GAAI4L,EAAgB/R,KAAKuR,IAAKvR,KAAKmG,KAAO,IA3KxG5B,EAAOQ,OAASA,IAEhBR,EAAOhD,UAAU0Q,OAAStN,EAAK8B,MAAMlF,UAAU2Q,UAAuCvN,EAAK8B,MAAMlF,UAAU4F,MAO3G5C,EAAOhD,UAAUkE,QACT/F,EAAQ,WACL,WACuD,GAA1DA,GAAuC,IAArBM,KAAKuR,IAAIvR,KAAKmG,QAAuB,EAAOnG,KAAKuR,IAAIvR,KAAKmG,OAAS,IAAK,OAAOzG,EACvC,GAA1DA,GAASA,GAA8B,IAArBM,KAAKuR,IAAIvR,KAAKmG,OAAgB,KAAO,EAAOnG,KAAKuR,IAAIvR,KAAKmG,OAAS,IAAK,OAAOzG,EACvC,GAA1DA,GAASA,GAA8B,IAArBM,KAAKuR,IAAIvR,KAAKmG,OAAe,MAAQ,EAAOnG,KAAKuR,IAAIvR,KAAKmG,OAAS,IAAK,OAAOzG,EACvC,GAA1DA,GAASA,GAA8B,IAArBM,KAAKuR,IAAIvR,KAAKmG,OAAe,MAAQ,EAAOnG,KAAKuR,IAAIvR,KAAKmG,OAAS,IAAK,OAAOzG,EACvC,GAA1DA,GAASA,GAA+B,GAAtBM,KAAKuR,IAAIvR,KAAKmG,OAAe,MAAQ,EAAOnG,KAAKuR,IAAIvR,KAAKmG,OAAS,IAAK,OAAOzG,EAGjG,IAAKM,KAAKmG,KAAO,GAAKnG,KAAKkG,IAEvB,MADAlG,KAAKmG,IAAMnG,KAAKkG,IACViL,EAAgBnR,KAAM,IAEhC,OAAON,IAQf6E,EAAOhD,UAAU6G,MAAQ,WACrB,OAAuB,EAAhBpI,KAAKyF,UAOhBlB,EAAOhD,UAAU4Q,OAAS,WACtB,IAAIzS,EAAQM,KAAKyF,SACjB,OAAO/F,IAAU,IAAc,EAARA,GAAa,GAqFxC6E,EAAOhD,UAAU6Q,KAAO,WACpB,OAAyB,IAAlBpS,KAAKyF,UAchBlB,EAAOhD,UAAU8Q,QAAU,WAGvB,GAAIrS,KAAKmG,IAAM,EAAInG,KAAKkG,IACpB,MAAMiL,EAAgBnR,KAAM,GAEhC,OAAO+R,EAAgB/R,KAAKuR,IAAKvR,KAAKmG,KAAO,IAOjD5B,EAAOhD,UAAU+Q,SAAW,WAGxB,GAAItS,KAAKmG,IAAM,EAAInG,KAAKkG,IACpB,MAAMiL,EAAgBnR,KAAM,GAEhC,OAAkD,EAA3C+R,EAAgB/R,KAAKuR,IAAKvR,KAAKmG,KAAO,IAmCjD5B,EAAOhD,UAAUgR,MAAQ,WAGrB,GAAIvS,KAAKmG,IAAM,EAAInG,KAAKkG,IACpB,MAAMiL,EAAgBnR,KAAM,GAEhC,IAAIN,EAAQiF,EAAK4N,MAAMC,YAAYxS,KAAKuR,IAAKvR,KAAKmG,KAElD,OADAnG,KAAKmG,KAAO,EACLzG,GAQX6E,EAAOhD,UAAUkR,OAAS,WAGtB,GAAIzS,KAAKmG,IAAM,EAAInG,KAAKkG,IACpB,MAAMiL,EAAgBnR,KAAM,GAEhC,IAAIN,EAAQiF,EAAK4N,MAAMG,aAAa1S,KAAKuR,IAAKvR,KAAKmG,KAEnD,OADAnG,KAAKmG,KAAO,EACLzG,GAOX6E,EAAOhD,UAAUmE,MAAQ,WACrB,IAAI5E,EAASd,KAAKyF,SACdkN,EAAS3S,KAAKmG,IACdF,EAASjG,KAAKmG,IAAMrF,EAGxB,GAAImF,EAAMjG,KAAKkG,IACX,MAAMiL,EAAgBnR,KAAMc,GAGhC,OADAd,KAAKmG,KAAOrF,EACR2F,MAAMC,QAAQ1G,KAAKuR,KACZvR,KAAKuR,IAAIpK,MAAMwL,EAAO1M,GAC1B0M,IAAU1M,EACX,IAAIjG,KAAKuR,IAAI3P,YAAY,GACzB5B,KAAKiS,OAAO7K,KAAKpH,KAAKuR,IAAKoB,EAAO1M,IAO5C1B,EAAOhD,UAAUqR,OAAS,WACtB,IAAIlN,EAAQ1F,KAAK0F,QACjB,OAAOwL,EAAK2B,KAAKnN,EAAO,EAAGA,EAAM5E,SAQrCyD,EAAOhD,UAAUuR,KAAO,SAAchS,GAClC,GAAsB,iBAAXA,EAAqB,CAE5B,GAAId,KAAKmG,IAAMrF,EAASd,KAAKkG,IACzB,MAAMiL,EAAgBnR,KAAMc,GAChCd,KAAKmG,KAAOrF,OAEZ,GAEI,GAAId,KAAKmG,KAAOnG,KAAKkG,IACjB,MAAMiL,EAAgBnR,YACE,IAAvBA,KAAKuR,IAAIvR,KAAKmG,QAE3B,OAAOnG,MAQXuE,EAAOhD,UAAU8E,SAAW,SAAS0M,GACjC,OAAQA,GACJ,KAAK,EACD/S,KAAK8S,OACL,MACJ,KAAK,EACD9S,KAAK8S,KAAK,GACV,MACJ,KAAK,EACD9S,KAAK8S,KAAK9S,KAAKyF,UACf,MACJ,KAAK,EACD,KAA0C,IAAlCsN,EAA2B,EAAhB/S,KAAKyF,WACpBzF,KAAKqG,SAAS0M,GAElB,MACJ,KAAK,EACD/S,KAAK8S,KAAK,GACV,MAGJ,QACI,MAAMjQ,MAAM,qBAAuBkQ,EAAW,cAAgB/S,KAAKmG,KAE3E,OAAOnG,MAGXuE,EAAOqM,WAAa,SAASoC,GACzBlC,EAAekC,EACfzO,EAAOQ,OAASA,IAChB+L,EAAaF,aAEb,IAAI7Q,EAAK4E,EAAKsO,KAAO,SAAsC,WAC3DtO,EAAKuO,MAAM3O,EAAOhD,UAAW,CAEzB4R,MAAO,WACH,OAAOxB,EAAevK,KAAKpH,MAAMD,IAAI,IAGzCqT,OAAQ,WACJ,OAAOzB,EAAevK,KAAKpH,MAAMD,IAAI,IAGzCsT,OAAQ,WACJ,OAAO1B,EAAevK,KAAKpH,MAAMsT,WAAWvT,IAAI,IAGpDwT,QAAS,WACL,OAAOvB,EAAY5K,KAAKpH,MAAMD,IAAI,IAGtCyT,SAAU,WACN,OAAOxB,EAAY5K,KAAKpH,MAAMD,IAAI,oCCrZ9ClB,EAAOD,QAAUkS,EAGjB,IAAIvM,EAAS,EAAQ,MACpBuM,EAAavP,UAAYJ,OAAO4D,OAAOR,EAAOhD,YAAYK,YAAckP,EAEzE,IAAInM,EAAO,EAAQ,KASnB,SAASmM,EAAaQ,GAClB/M,EAAO6C,KAAKpH,KAAMsR,GAStBR,EAAaF,WAAa,WAElBjM,EAAK8M,SACLX,EAAavP,UAAU0Q,OAAStN,EAAK8M,OAAOlQ,UAAU4F,QAO9D2J,EAAavP,UAAUqR,OAAS,WAC5B,IAAI1M,EAAMlG,KAAKyF,SACf,OAAOzF,KAAKuR,IAAIkC,UACVzT,KAAKuR,IAAIkC,UAAUzT,KAAKmG,IAAKnG,KAAKmG,IAAM0H,KAAKwC,IAAIrQ,KAAKmG,IAAMD,EAAKlG,KAAKkG,MACtElG,KAAKuR,IAAImC,SAAS,QAAS1T,KAAKmG,IAAKnG,KAAKmG,IAAM0H,KAAKwC,IAAIrQ,KAAKmG,IAAMD,EAAKlG,KAAKkG,OAUxF4K,EAAaF,oCCjDb/R,EAAOD,QAAU,gCCKPA,EA6BN+U,QAAU,EAAQ,mCClCtB9U,EAAOD,QAAU+U,EAEjB,IAAIhP,EAAO,EAAQ,KAsCnB,SAASgP,EAAQC,EAASC,EAAkBC,GAExC,GAAuB,mBAAZF,EACP,MAAMnT,UAAU,8BAEpBkE,EAAKoP,aAAa3M,KAAKpH,MAMvBA,KAAK4T,QAAUA,EAMf5T,KAAK6T,iBAAmBG,QAAQH,GAMhC7T,KAAK8T,kBAAoBE,QAAQF,IA1DpCH,EAAQpS,UAAYJ,OAAO4D,OAAOJ,EAAKoP,aAAaxS,YAAYK,YAAc+R,EAwE/EA,EAAQpS,UAAU0S,QAAU,SAASA,EAAQC,EAAQC,EAAaC,EAAcC,EAASC,GAErF,IAAKD,EACD,MAAM5T,UAAU,6BAEpB,IAAIzB,EAAOgB,KACX,IAAKsU,EACD,OAAO3P,EAAK4P,UAAUN,EAASjV,EAAMkV,EAAQC,EAAaC,EAAcC,GAE5E,GAAKrV,EAAK4U,QAKV,IACI,OAAO5U,EAAK4U,QACRM,EACAC,EAAYnV,EAAK6U,iBAAmB,kBAAoB,UAAUQ,GAAS5Q,UAC3E,SAAqBrD,EAAKoU,GAEtB,GAAIpU,EAEA,OADApB,EAAKyV,KAAK,QAASrU,EAAK8T,GACjBI,EAASlU,GAGpB,GAAiB,OAAboU,EAAJ,CAKA,KAAMA,aAAoBJ,GACtB,IACII,EAAWJ,EAAapV,EAAK8U,kBAAoB,kBAAoB,UAAUU,GACjF,MAAOpU,GAEL,OADApB,EAAKyV,KAAK,QAASrU,EAAK8T,GACjBI,EAASlU,GAKxB,OADApB,EAAKyV,KAAK,OAAQD,EAAUN,GACrBI,EAAS,KAAME,GAdlBxV,EAAKiH,KAAqB,MAiBxC,MAAO7F,GAGL,OAFApB,EAAKyV,KAAK,QAASrU,EAAK8T,QACxBQ,YAAW,WAAaJ,EAASlU,KAAS,QAnC1CsU,YAAW,WAAaJ,EAASzR,MAAM,oBAAsB,IA6CrE8Q,EAAQpS,UAAU0E,IAAM,SAAa0O,GAOjC,OANI3U,KAAK4T,UACAe,GACD3U,KAAK4T,QAAQ,KAAM,KAAM,MAC7B5T,KAAK4T,QAAU,KACf5T,KAAKyU,KAAK,OAAOG,OAEd5U,mCC3IXnB,EAAOD,QAAUqS,EAEjB,IAAItM,EAAO,EAAQ,KAUnB,SAASsM,EAASY,EAAIC,GASlB9R,KAAK6R,GAAKA,IAAO,EAMjB7R,KAAK8R,GAAKA,IAAO,EAQrB,IAAI+C,EAAO5D,EAAS4D,KAAO,IAAI5D,EAAS,EAAG,GAE3C4D,EAAKC,SAAW,WAAa,OAAO,GACpCD,EAAKE,SAAWF,EAAKvB,SAAW,WAAa,OAAOtT,MACpD6U,EAAK/T,OAAS,WAAa,OAAO,GAOlC,IAAIkU,EAAW/D,EAAS+D,SAAW,mBAOnC/D,EAASgE,WAAa,SAAoBvV,GACtC,GAAc,IAAVA,EACA,OAAOmV,EACX,IAAIK,EAAOxV,EAAQ,EACfwV,IACAxV,GAASA,GACb,IAAImS,EAAKnS,IAAU,EACfoS,GAAMpS,EAAQmS,GAAM,aAAe,EAUvC,OATIqD,IACApD,GAAMA,IAAO,EACbD,GAAMA,IAAO,IACPA,EAAK,aACPA,EAAK,IACCC,EAAK,aACPA,EAAK,KAGV,IAAIb,EAASY,EAAIC,IAQ5Bb,EAASnB,KAAO,SAAcpQ,GAC1B,GAAqB,iBAAVA,EACP,OAAOuR,EAASgE,WAAWvV,GAC/B,GAAIiF,EAAK6B,SAAS9G,GAAQ,CAEtB,IAAIiF,EAAKsO,KAGL,OAAOhC,EAASgE,WAAWE,SAASzV,EAAO,KAF3CA,EAAQiF,EAAKsO,KAAKmC,WAAW1V,GAIrC,OAAOA,EAAM2V,KAAO3V,EAAM4V,KAAO,IAAIrE,EAASvR,EAAM2V,MAAQ,EAAG3V,EAAM4V,OAAS,GAAKT,GAQvF5D,EAAS1P,UAAUuT,SAAW,SAAkBS,GAC5C,IAAKA,GAAYvV,KAAK8R,KAAO,GAAI,CAC7B,IAAID,EAAgB,GAAV7R,KAAK6R,KAAW,EACtBC,GAAM9R,KAAK8R,KAAW,EAG1B,OAFKD,IACDC,EAAKA,EAAK,IAAM,KACXD,EAAU,WAALC,GAElB,OAAO9R,KAAK6R,GAAe,WAAV7R,KAAK8R,IAQ1Bb,EAAS1P,UAAUiU,OAAS,SAAgBD,GACxC,OAAO5Q,EAAKsO,KACN,IAAItO,EAAKsO,KAAe,EAAVjT,KAAK6R,GAAkB,EAAV7R,KAAK8R,GAAQkC,QAAQuB,IAEhD,CAAEF,IAAe,EAAVrV,KAAK6R,GAAQyD,KAAgB,EAAVtV,KAAK8R,GAAQyD,SAAUvB,QAAQuB,KAGnE,IAAIE,EAAavO,OAAO3F,UAAUkU,WAOlCxE,EAASyE,SAAW,SAAkB1N,GAClC,OAAIA,IAASgN,EACFH,EACJ,IAAI5D,GACLwE,EAAWrO,KAAKY,EAAM,GACtByN,EAAWrO,KAAKY,EAAM,IAAM,EAC5ByN,EAAWrO,KAAKY,EAAM,IAAM,GAC5ByN,EAAWrO,KAAKY,EAAM,IAAM,MAAQ,GAEpCyN,EAAWrO,KAAKY,EAAM,GACtByN,EAAWrO,KAAKY,EAAM,IAAM,EAC5ByN,EAAWrO,KAAKY,EAAM,IAAM,GAC5ByN,EAAWrO,KAAKY,EAAM,IAAM,MAAQ,IAQ9CiJ,EAAS1P,UAAUoU,OAAS,WACxB,OAAOzO,OAAO0O,aACO,IAAjB5V,KAAK6R,GACL7R,KAAK6R,KAAO,EAAK,IACjB7R,KAAK6R,KAAO,GAAK,IACjB7R,KAAK6R,KAAO,GACK,IAAjB7R,KAAK8R,GACL9R,KAAK8R,KAAO,EAAK,IACjB9R,KAAK8R,KAAO,GAAK,IACjB9R,KAAK8R,KAAO,KAQpBb,EAAS1P,UAAUwT,SAAW,WAC1B,IAAIc,EAAS7V,KAAK8R,IAAM,GAGxB,OAFA9R,KAAK8R,KAAQ9R,KAAK8R,IAAM,EAAI9R,KAAK6R,KAAO,IAAMgE,KAAU,EACxD7V,KAAK6R,IAAQ7R,KAAK6R,IAAM,EAAsBgE,KAAU,EACjD7V,MAOXiR,EAAS1P,UAAU+R,SAAW,WAC1B,IAAIuC,IAAmB,EAAV7V,KAAK6R,IAGlB,OAFA7R,KAAK6R,KAAQ7R,KAAK6R,KAAO,EAAI7R,KAAK8R,IAAM,IAAM+D,KAAU,EACxD7V,KAAK8R,IAAQ9R,KAAK8R,KAAO,EAAqB+D,KAAU,EACjD7V,MAOXiR,EAAS1P,UAAUT,OAAS,WACxB,IAAIgV,EAAS9V,KAAK6R,GACdkE,GAAS/V,KAAK6R,KAAO,GAAK7R,KAAK8R,IAAM,KAAO,EAC5CkE,EAAShW,KAAK8R,KAAO,GACzB,OAAiB,IAAVkE,EACU,IAAVD,EACED,EAAQ,MACNA,EAAQ,IAAM,EAAI,EAClBA,EAAQ,QAAU,EAAI,EACxBC,EAAQ,MACNA,EAAQ,IAAM,EAAI,EAClBA,EAAQ,QAAU,EAAI,EAC1BC,EAAQ,IAAM,EAAI,sCCrM7B,IAAIrR,EAAO/F,EA2OX,SAASsU,EAAM+C,EAAKC,EAAKC,GACrB,IAAK,IAAIhR,EAAOhE,OAAOgE,KAAK+Q,GAAMrV,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,OACnCR,IAAjB4V,EAAI9Q,EAAKtE,KAAsBsV,IAC/BF,EAAI9Q,EAAKtE,IAAMqV,EAAI/Q,EAAKtE,KAChC,OAAOoV,EAoBX,SAASG,EAASC,GAEd,SAASC,EAAYhR,EAASJ,GAE1B,KAAMlF,gBAAgBsW,GAClB,OAAO,IAAIA,EAAYhR,EAASJ,GAKpC/D,OAAOC,eAAepB,KAAM,UAAW,CAAE2D,IAAK,WAAa,OAAO2B,KAG9DzC,MAAM0T,kBACN1T,MAAM0T,kBAAkBvW,KAAMsW,GAE9BnV,OAAOC,eAAepB,KAAM,QAAS,CAAEN,OAAO,IAAImD,OAAQ2T,OAAS,KAEnEtR,GACAgO,EAAMlT,KAAMkF,GAWpB,OARCoR,EAAY/U,UAAYJ,OAAO4D,OAAOlC,MAAMtB,YAAYK,YAAc0U,EAEvEnV,OAAOC,eAAekV,EAAY/U,UAAW,OAAQ,CAAEoC,IAAK,WAAa,OAAO0S,KAEhFC,EAAY/U,UAAUmS,SAAW,WAC7B,OAAO1T,KAAKqW,KAAO,KAAOrW,KAAKsF,SAG5BgR,EA9RX3R,EAAK4P,UAAY,EAAQ,MAGzB5P,EAAKkC,OAAS,EAAQ,MAGtBlC,EAAKoP,aAAe,EAAQ,MAG5BpP,EAAK4N,MAAQ,EAAQ,KAGrB5N,EAAK8R,QAAU,EAAQ,MAGvB9R,EAAKuM,KAAO,EAAQ,MAGpBvM,EAAK+R,KAAO,EAAQ,MAGpB/R,EAAKsM,SAAW,EAAQ,MAOxBtM,EAAKgS,OAAS3C,aAA0B,IAAX,EAAA4C,GACP,EAAAA,GACA,EAAAA,EAAOC,SACP,EAAAD,EAAOC,QAAQC,UACf,EAAAF,EAAOC,QAAQC,SAASC,MAO9CpS,EAAKqS,OAASrS,EAAKgS,QAAU,EAAAC,GACG,oBAAXK,QAA0BA,QACf,oBAAXjY,MAA0BA,MACjCgB,KAQd2E,EAAKU,WAAalE,OAAO+V,OAAS/V,OAAO+V,OAAO,IAAiC,GAOjFvS,EAAKwS,YAAchW,OAAO+V,OAAS/V,OAAO+V,OAAO,IAAiC,GAQlFvS,EAAKkE,UAAYuO,OAAOvO,WAAwC,SAAmBnJ,GAC/E,MAAwB,iBAAVA,GAAsB2X,SAAS3X,IAAUmO,KAAKE,MAAMrO,KAAWA,GAQjFiF,EAAK6B,SAAW,SAAkB9G,GAC9B,MAAwB,iBAAVA,GAAsBA,aAAiBwH,QAQzDvC,EAAK2S,SAAW,SAAkB5X,GAC9B,OAAOA,GAA0B,iBAAVA,GAW3BiF,EAAK4S,MAQL5S,EAAK6S,MAAQ,SAAehW,EAAKiW,GAC7B,IAAI/X,EAAQ8B,EAAIiW,GAChB,QAAa,MAAT/X,IAAiB8B,EAAIgE,eAAeiS,MACZ,iBAAV/X,IAAuB+G,MAAMC,QAAQhH,GAASA,EAAMoB,OAASK,OAAOgE,KAAKzF,GAAOoB,QAAU,IAehH6D,EAAK8M,OAAS,WACV,IACI,IAAIA,EAAS9M,EAAK8R,QAAQ,UAAUhF,OAEpC,OAAOA,EAAOlQ,UAAUmW,UAAYjG,EAAoC,KAC1E,MAAOkG,GAEL,OAAO,MAPD,GAYdhT,EAAKiT,aAAe,KAGpBjT,EAAKkT,oBAAsB,KAO3BlT,EAAKS,UAAY,SAAmB0S,GAEhC,MAA8B,iBAAhBA,EACRnT,EAAK8M,OACD9M,EAAKkT,oBAAoBC,GACzB,IAAInT,EAAK8B,MAAMqR,GACnBnT,EAAK8M,OACD9M,EAAKiT,aAAaE,GACI,oBAAf/L,WACH+L,EACA,IAAI/L,WAAW+L,IAOjCnT,EAAK8B,MAA8B,oBAAfsF,WAA6BA,WAAwCtF,MAezF9B,EAAKsO,KAAkCtO,EAAKqS,OAAOe,SAAsCpT,EAAKqS,OAAOe,QAAQ9E,MACtEtO,EAAKqS,OAAO/D,MACvCtO,EAAK8R,QAAQ,QAOzB9R,EAAKqT,OAAS,mBAOdrT,EAAKsT,QAAU,wBAOftT,EAAKuT,QAAU,6CAOfvT,EAAKwT,WAAa,SAAoBzY,GAClC,OAAOA,EACDiF,EAAKsM,SAASnB,KAAKpQ,GAAOiW,SAC1BhR,EAAKsM,SAAS+D,UASxBrQ,EAAKyT,aAAe,SAAsBpQ,EAAMuN,GAC5C,IAAI3D,EAAOjN,EAAKsM,SAASyE,SAAS1N,GAClC,OAAIrD,EAAKsO,KACEtO,EAAKsO,KAAKoF,SAASzG,EAAKC,GAAID,EAAKE,GAAIyD,GACzC3D,EAAKkD,SAASd,QAAQuB,KAkBjC5Q,EAAKuO,MAAQA,EAObvO,EAAK2T,QAAU,SAAiBC,GAC5B,OAAOA,EAAIC,OAAO,GAAGC,cAAgBF,EAAIG,UAAU,IA0CvD/T,EAAKyR,SAAWA,EAmBhBzR,EAAKgU,cAAgBvC,EAAS,iBAoB9BzR,EAAKgD,YAAc,SAAkBiR,GAEjC,IADA,IAAIC,EAAW,GACNhY,EAAI,EAAGA,EAAI+X,EAAW9X,SAAUD,EACrCgY,EAASD,EAAW/X,IAAM,EAO9B,OAAO,WACH,IAAK,IAAIsE,EAAOhE,OAAOgE,KAAKnF,MAAOa,EAAIsE,EAAKrE,OAAS,EAAGD,GAAK,IAAKA,EAC9D,GAA0B,IAAtBgY,EAAS1T,EAAKtE,UAA+BR,IAAlBL,KAAKmF,EAAKtE,KAAuC,OAAlBb,KAAKmF,EAAKtE,IACpE,OAAOsE,EAAKtE,KAiB5B8D,EAAKiD,YAAc,SAAkBgR,GAQjC,OAAO,SAASvC,GACZ,IAAK,IAAIxV,EAAI,EAAGA,EAAI+X,EAAW9X,SAAUD,EACjC+X,EAAW/X,KAAOwV,UACXrW,KAAK4Y,EAAW/X,MAoBvC8D,EAAK4C,cAAgB,CACjBuR,MAAO5R,OACPmB,MAAOnB,OACPxB,MAAOwB,OACP6R,MAAM,GAIVpU,EAAKiM,WAAa,WACd,IAAIa,EAAS9M,EAAK8M,OAEbA,GAML9M,EAAKiT,aAAenG,EAAO3B,OAAS/D,WAAW+D,MAAQ2B,EAAO3B,MAE1D,SAAqBpQ,EAAOsZ,GACxB,OAAO,IAAIvH,EAAO/R,EAAOsZ,IAEjCrU,EAAKkT,oBAAsBpG,EAAOwH,aAE9B,SAA4BC,GACxB,OAAO,IAAIzH,EAAOyH,KAbtBvU,EAAKiT,aAAejT,EAAKkT,oBAAsB,mCCpZvDhZ,EAAOD,QAAU6F,EAEjB,IAEIoM,EAFAlM,EAAY,EAAQ,KAIpBsM,EAAYtM,EAAKsM,SACjBpK,EAAYlC,EAAKkC,OACjBqK,EAAYvM,EAAKuM,KAWrB,SAASiI,EAAGpZ,EAAImG,EAAK0J,GAMjB5P,KAAKD,GAAKA,EAMVC,KAAKkG,IAAMA,EAMXlG,KAAKoZ,UAAO/Y,EAMZL,KAAK4P,IAAMA,EAIf,SAASyJ,KAUT,SAASC,EAAM/T,GAMXvF,KAAKuZ,KAAOhU,EAAOgU,KAMnBvZ,KAAKwZ,KAAOjU,EAAOiU,KAMnBxZ,KAAKkG,IAAMX,EAAOW,IAMlBlG,KAAKoZ,KAAO7T,EAAOkU,OAQvB,SAAShV,IAMLzE,KAAKkG,IAAM,EAMXlG,KAAKuZ,KAAO,IAAIJ,EAAGE,EAAM,EAAG,GAM5BrZ,KAAKwZ,KAAOxZ,KAAKuZ,KAMjBvZ,KAAKyZ,OAAS,KASlB,IAAI1U,EAAS,WACT,OAAOJ,EAAK8M,OACN,WACE,OAAQhN,EAAOM,OAAS,WACpB,OAAO,IAAI8L,OAIjB,WACE,OAAO,IAAIpM,IAuCvB,SAASiV,EAAU9J,EAAK2B,EAAKpL,GACzBoL,EAAIpL,GAAa,IAANyJ,EAoBf,SAAS+J,EAASzT,EAAK0J,GACnB5P,KAAKkG,IAAMA,EACXlG,KAAKoZ,UAAO/Y,EACZL,KAAK4P,IAAMA,EA8Cf,SAASgK,EAAchK,EAAK2B,EAAKpL,GAC7B,KAAOyJ,EAAIkC,IACPP,EAAIpL,KAAkB,IAATyJ,EAAIiC,GAAW,IAC5BjC,EAAIiC,IAAMjC,EAAIiC,KAAO,EAAIjC,EAAIkC,IAAM,MAAQ,EAC3ClC,EAAIkC,MAAQ,EAEhB,KAAOlC,EAAIiC,GAAK,KACZN,EAAIpL,KAAkB,IAATyJ,EAAIiC,GAAW,IAC5BjC,EAAIiC,GAAKjC,EAAIiC,KAAO,EAExBN,EAAIpL,KAASyJ,EAAIiC,GA2CrB,SAASgI,EAAajK,EAAK2B,EAAKpL,GAC5BoL,EAAIpL,GAA0B,IAAdyJ,EAChB2B,EAAIpL,EAAM,GAAMyJ,IAAQ,EAAM,IAC9B2B,EAAIpL,EAAM,GAAMyJ,IAAQ,GAAM,IAC9B2B,EAAIpL,EAAM,GAAMyJ,IAAQ,GA7J5BnL,EAAOM,OAASA,IAOhBN,EAAOqV,MAAQ,SAAeZ,GAC1B,OAAO,IAAIvU,EAAK8B,MAAMyS,IAKtBvU,EAAK8B,QAAUA,QACfhC,EAAOqV,MAAQnV,EAAK+R,KAAKjS,EAAOqV,MAAOnV,EAAK8B,MAAMlF,UAAU2Q,WAUhEzN,EAAOlD,UAAUwY,MAAQ,SAAcha,EAAImG,EAAK0J,GAG5C,OAFA5P,KAAKwZ,KAAOxZ,KAAKwZ,KAAKJ,KAAO,IAAID,EAAGpZ,EAAImG,EAAK0J,GAC7C5P,KAAKkG,KAAOA,EACLlG,MA8BX2Z,EAASpY,UAAYJ,OAAO4D,OAAOoU,EAAG5X,WACtCoY,EAASpY,UAAUxB,GAxBnB,SAAuB6P,EAAK2B,EAAKpL,GAC7B,KAAOyJ,EAAM,KACT2B,EAAIpL,KAAe,IAANyJ,EAAY,IACzBA,KAAS,EAEb2B,EAAIpL,GAAOyJ,GA0BfnL,EAAOlD,UAAUkE,OAAS,SAAsB/F,GAW5C,OARAM,KAAKkG,MAAQlG,KAAKwZ,KAAOxZ,KAAKwZ,KAAKJ,KAAO,IAAIO,GACzCja,KAAkB,GACT,IAAY,EACpBA,EAAQ,MAAY,EACpBA,EAAQ,QAAY,EACpBA,EAAQ,UAAY,EACA,EAC1BA,IAAQwG,IACDlG,MASXyE,EAAOlD,UAAU6G,MAAQ,SAAqB1I,GAC1C,OAAOA,EAAQ,EACTM,KAAK+Z,MAAMH,EAAe,GAAI3I,EAASgE,WAAWvV,IAClDM,KAAKyF,OAAO/F,IAQtB+E,EAAOlD,UAAU4Q,OAAS,SAAsBzS,GAC5C,OAAOM,KAAKyF,QAAQ/F,GAAS,EAAIA,GAAS,MAAQ,IAsBtD+E,EAAOlD,UAAU6R,OAAS,SAAsB1T,GAC5C,IAAIkS,EAAOX,EAASnB,KAAKpQ,GACzB,OAAOM,KAAK+Z,MAAMH,EAAehI,EAAK9Q,SAAU8Q,IAUpDnN,EAAOlD,UAAU4R,MAAQ1O,EAAOlD,UAAU6R,OAQ1C3O,EAAOlD,UAAU8R,OAAS,SAAsB3T,GAC5C,IAAIkS,EAAOX,EAASnB,KAAKpQ,GAAOqV,WAChC,OAAO/U,KAAK+Z,MAAMH,EAAehI,EAAK9Q,SAAU8Q,IAQpDnN,EAAOlD,UAAU6Q,KAAO,SAAoB1S,GACxC,OAAOM,KAAK+Z,MAAML,EAAW,EAAGha,EAAQ,EAAI,IAehD+E,EAAOlD,UAAU8Q,QAAU,SAAuB3S,GAC9C,OAAOM,KAAK+Z,MAAMF,EAAc,EAAGna,IAAU,IASjD+E,EAAOlD,UAAU+Q,SAAW7N,EAAOlD,UAAU8Q,QAQ7C5N,EAAOlD,UAAUgS,QAAU,SAAuB7T,GAC9C,IAAIkS,EAAOX,EAASnB,KAAKpQ,GACzB,OAAOM,KAAK+Z,MAAMF,EAAc,EAAGjI,EAAKC,IAAIkI,MAAMF,EAAc,EAAGjI,EAAKE,KAU5ErN,EAAOlD,UAAUiS,SAAW/O,EAAOlD,UAAUgS,QAQ7C9O,EAAOlD,UAAUgR,MAAQ,SAAqB7S,GAC1C,OAAOM,KAAK+Z,MAAMpV,EAAK4N,MAAMyH,aAAc,EAAGta,IASlD+E,EAAOlD,UAAUkR,OAAS,SAAsB/S,GAC5C,OAAOM,KAAK+Z,MAAMpV,EAAK4N,MAAM0H,cAAe,EAAGva,IAGnD,IAAIwa,EAAavV,EAAK8B,MAAMlF,UAAUqC,IAChC,SAAwBgM,EAAK2B,EAAKpL,GAChCoL,EAAI3N,IAAIgM,EAAKzJ,IAGf,SAAwByJ,EAAK2B,EAAKpL,GAChC,IAAK,IAAItF,EAAI,EAAGA,EAAI+O,EAAI9O,SAAUD,EAC9B0Q,EAAIpL,EAAMtF,GAAK+O,EAAI/O,IAQ/B4D,EAAOlD,UAAUmE,MAAQ,SAAqBhG,GAC1C,IAAIwG,EAAMxG,EAAMoB,SAAW,EAC3B,IAAKoF,EACD,OAAOlG,KAAK+Z,MAAML,EAAW,EAAG,GACpC,GAAI/U,EAAK6B,SAAS9G,GAAQ,CACtB,IAAI6R,EAAM9M,EAAOqV,MAAM5T,EAAMW,EAAO/F,OAAOpB,IAC3CmH,EAAOd,OAAOrG,EAAO6R,EAAK,GAC1B7R,EAAQ6R,EAEZ,OAAOvR,KAAKyF,OAAOS,GAAK6T,MAAMG,EAAYhU,EAAKxG,IAQnD+E,EAAOlD,UAAUqR,OAAS,SAAsBlT,GAC5C,IAAIwG,EAAMgL,EAAKpQ,OAAOpB,GACtB,OAAOwG,EACDlG,KAAKyF,OAAOS,GAAK6T,MAAM7I,EAAKiJ,MAAOjU,EAAKxG,GACxCM,KAAK+Z,MAAML,EAAW,EAAG,IAQnCjV,EAAOlD,UAAUqE,KAAO,WAIpB,OAHA5F,KAAKyZ,OAAS,IAAIH,EAAMtZ,MACxBA,KAAKuZ,KAAOvZ,KAAKwZ,KAAO,IAAIL,EAAGE,EAAM,EAAG,GACxCrZ,KAAKkG,IAAM,EACJlG,MAOXyE,EAAOlD,UAAU6Y,MAAQ,WAUrB,OATIpa,KAAKyZ,QACLzZ,KAAKuZ,KAASvZ,KAAKyZ,OAAOF,KAC1BvZ,KAAKwZ,KAASxZ,KAAKyZ,OAAOD,KAC1BxZ,KAAKkG,IAASlG,KAAKyZ,OAAOvT,IAC1BlG,KAAKyZ,OAASzZ,KAAKyZ,OAAOL,OAE1BpZ,KAAKuZ,KAAOvZ,KAAKwZ,KAAO,IAAIL,EAAGE,EAAM,EAAG,GACxCrZ,KAAKkG,IAAO,GAETlG,MAOXyE,EAAOlD,UAAUsE,OAAS,WACtB,IAAI0T,EAAOvZ,KAAKuZ,KACZC,EAAOxZ,KAAKwZ,KACZtT,EAAOlG,KAAKkG,IAOhB,OANAlG,KAAKoa,QAAQ3U,OAAOS,GAChBA,IACAlG,KAAKwZ,KAAKJ,KAAOG,EAAKH,KACtBpZ,KAAKwZ,KAAOA,EACZxZ,KAAKkG,KAAOA,GAETlG,MAOXyE,EAAOlD,UAAUkC,OAAS,WAItB,IAHA,IAAI8V,EAAOvZ,KAAKuZ,KAAKH,KACjB7H,EAAOvR,KAAK4B,YAAYkY,MAAM9Z,KAAKkG,KACnCC,EAAO,EACJoT,GACHA,EAAKxZ,GAAGwZ,EAAK3J,IAAK2B,EAAKpL,GACvBA,GAAOoT,EAAKrT,IACZqT,EAAOA,EAAKH,KAGhB,OAAO7H,GAGX9M,EAAOmM,WAAa,SAASyJ,GACzBxJ,EAAewJ,EACf5V,EAAOM,OAASA,IAChB8L,EAAaD,2CC9cjB/R,EAAOD,QAAUiS,EAGjB,IAAIpM,EAAS,EAAQ,OACpBoM,EAAatP,UAAYJ,OAAO4D,OAAON,EAAOlD,YAAYK,YAAciP,EAEzE,IAAIlM,EAAO,EAAQ,KAQnB,SAASkM,IACLpM,EAAO2C,KAAKpH,MAwChB,SAASsa,EAAkB1K,EAAK2B,EAAKpL,GAC7ByJ,EAAI9O,OAAS,GACb6D,EAAKuM,KAAKiJ,MAAMvK,EAAK2B,EAAKpL,GACrBoL,EAAImG,UACTnG,EAAImG,UAAU9H,EAAKzJ,GAEnBoL,EAAI4I,MAAMvK,EAAKzJ,GA3CvB0K,EAAaD,WAAa,WAOtBC,EAAaiJ,MAAQnV,EAAKkT,oBAE1BhH,EAAa0J,iBAAmB5V,EAAK8M,QAAU9M,EAAK8M,OAAOlQ,qBAAqBwK,YAAiD,QAAnCpH,EAAK8M,OAAOlQ,UAAUqC,IAAIyS,KAClH,SAA8BzG,EAAK2B,EAAKpL,GACxCoL,EAAI3N,IAAIgM,EAAKzJ,IAIb,SAA+ByJ,EAAK2B,EAAKpL,GACzC,GAAIyJ,EAAI4K,KACN5K,EAAI4K,KAAKjJ,EAAKpL,EAAK,EAAGyJ,EAAI9O,aACvB,IAAK,IAAID,EAAI,EAAGA,EAAI+O,EAAI9O,QAC3ByQ,EAAIpL,KAASyJ,EAAI/O,OAQ7BgQ,EAAatP,UAAUmE,MAAQ,SAA4BhG,GACnDiF,EAAK6B,SAAS9G,KACdA,EAAQiF,EAAKiT,aAAalY,EAAO,WACrC,IAAIwG,EAAMxG,EAAMoB,SAAW,EAI3B,OAHAd,KAAKyF,OAAOS,GACRA,GACAlG,KAAK+Z,MAAMlJ,EAAa0J,iBAAkBrU,EAAKxG,GAC5CM,MAeX6Q,EAAatP,UAAUqR,OAAS,SAA6BlT,GACzD,IAAIwG,EAAMvB,EAAK8M,OAAOgJ,WAAW/a,GAIjC,OAHAM,KAAKyF,OAAOS,GACRA,GACAlG,KAAK+Z,MAAMO,EAAmBpU,EAAKxG,GAChCM,MAWX6Q,EAAaD,0CClFbzP,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ8b,gBAAkB9b,EAAQ+b,mBAAqB/b,EAAQgc,+BAAiChc,EAAQic,kCAA+B,EACvI,MAAMC,EAAW,EAAQ,MACnBC,EAAa,EAAQ,MACrBC,EAAa,EAAQ,IACrBC,EAAY,EAAQ,MAC1B,SAASJ,EAA6BK,GAClC,GAA0B,KAAtBA,EAAWpa,OACX,MAAM,IAAI+B,MAAM,kCAAkCqY,EAAWpa,UAEjE,OAAO,EAAIga,EAAS3N,QAAQ+N,GAAY/T,MAAM,EAAG,IAGrD,SAASyT,EAA+BM,GACpC,GAA0B,KAAtBA,EAAWpa,OACX,MAAM,IAAI+B,MAAM,iDAAiDqY,EAAWpa,UAEhF,OAAO,EAAIga,EAASvN,YAAW,EAAIuN,EAAS3N,QAAQ+N,IAIxD,SAASP,EAAmBQ,GACxB,IAAI,EAAIF,EAAUG,mBAAmBD,GAEjC,OAAOP,GADY,EAAIG,EAAWM,YAAYF,EAAOzb,QAGpD,IAAI,EAAIub,EAAUK,iBAAiBH,GAEpC,OAAON,GADY,EAAIE,EAAWM,YAAYF,EAAOzb,QAGpD,IAAI,EAAIub,EAAUM,2BAA2BJ,GAAS,CAEvD,MAAMD,GAAa,EAAIF,EAAWQ,mBAAmBL,GACrD,OAAO,EAAIL,EAAS3N,QAAQ+N,GAAY/T,MAAM,EAAG,IAGjD,MAAM,IAAItE,MAAM,+BAxBxBjE,EAAQic,6BAA+BA,EAOvCjc,EAAQgc,+BAAiCA,EAoBzChc,EAAQ+b,mBAAqBA,EAI7B/b,EAAQ8b,gBAHR,SAAyBS,EAAQhT,GAC7B,OAAO,EAAI4S,EAAWU,UAAUtT,EAAQwS,EAAmBQ,kCC1C/Dha,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ8c,WAAa9c,EAAQ+c,MAAQ/c,EAAQgd,UAAO,EACpD,MAAMC,EAAS,EAAQ,MAUvB,SAASD,EAAKE,EAAQC,GAClB,IAAIC,EACJ,GAAsB,iBAAXF,EACP,IACIE,EAAY,IAAIH,EAAOI,OAAOH,GAAQpI,WAE1C,MAAOwI,GACH,MAAM,IAAIrZ,MAAM,sHAGnB,CACD,IAAKiZ,EAAO9R,MAAM,YACd,MAAM,IAAInH,MAAM,0CAEpBmZ,EAAYF,EAAOK,QAAQ,MAAO,KAAO,IAE7C,MAAO,CACHL,OAAQE,EACRD,MAAOA,GAGfnd,EAAQgd,KAAOA,EAOfhd,EAAQ+c,MAHR,SAAeG,EAAQC,GACnB,MAAO,CAACH,EAAKE,EAAQC,KA6BzBnd,EAAQ8c,WAfR,SAAoBU,GAChB,OAAOA,EACFD,QAAQ,MAAO,IACfE,MAAM,KACNC,OAAOtI,SACP7Q,KAAKoZ,IACN,MAAMvS,EAAQuS,EAAKvS,MAAM,wBACzB,IAAKA,EACD,MAAM,IAAInH,MAAM,8BACpB,MAAO,CACHiZ,OAAQD,EAAOW,OAAOpH,WAAWpL,EAAM,IAAI0J,WAC3CqI,MAAO/R,EAAM,mCC/DzB7I,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ6d,mBAAqB7d,EAAQ4c,kBAAoB5c,EAAQ8d,mBAAqB9d,EAAQ+d,kBAAoB/d,EAAQge,2BAAwB,EAClJ,MAAM7B,EAAa,EAAQ,MACrBc,EAAS,EAAQ,MACjBgB,EAAU,EAAQ,MAClB5B,EAAY,EAAQ,MAU1Brc,EAAQge,sBATR,SAA+BzB,GAC3B,GAAsB,KAAlBA,EAAOra,QAAgC,IAAdqa,EAAO,IAA6B,IAAdA,EAAO,GACtD,MAAM,IAAItY,MAAM,qFAEpB,MAAO,CACHia,KAAM7B,EAAU8B,WAAWC,UAC3Btd,OAAO,EAAIqb,EAAWkC,UAAU9B,KAOxC,MAAM+B,GAA6B,EAAInC,EAAWoC,SAAS,cACrDC,GAA2B,EAAIrC,EAAWoC,SAAS,cACnDE,GAA2B,EAAItC,EAAWoC,SAAS,cAEnDG,GAAqC,EAAIvC,EAAWoC,SAAS,YAInE,SAASR,EAAkB7Q,GACvB,IAAI,EAAI+Q,EAAQU,wBAAwBzR,EAAMoR,GAA6B,CACvE,MAAMM,EAAO1R,EAAK3E,MAAM+V,EAA2Bpc,QACnD,GAAoB,KAAhB0c,EAAK1c,OACL,MAAM,IAAI+B,MAAM,8EAEpB,MAAO,CACHia,KAAM7B,EAAU8B,WAAWC,UAC3Btd,OAAO,EAAIqb,EAAWkC,UAAUO,IAGnC,IAAI,EAAIX,EAAQU,wBAAwBzR,EAAMsR,GAA2B,CAC1E,MAAMI,EAAO1R,EAAK3E,MAAMiW,EAAyBtc,QACjD,GAAoB,KAAhB0c,EAAK1c,OACL,MAAM,IAAI+B,MAAM,iEAEpB,MAAO,CACHia,KAAM7B,EAAU8B,WAAWU,QAC3B/d,OAAO,EAAIqb,EAAWkC,UAAUO,IAGnC,IAAI,EAAIX,EAAQU,wBAAwBzR,EAAMuR,GAA2B,CAC1E,MAAMG,EAAO1R,EAAK3E,MAAMkW,EAAyBvc,QACjD,GAAoB,KAAhB0c,EAAK1c,OACL,MAAM,IAAI+B,MAAM,iEAEpB,MAAO,CACHia,KAAM7B,EAAU8B,WAAWW,QAC3Bhe,OAAO,EAAIqb,EAAWkC,UAAUO,IAGnC,IAAI,EAAIX,EAAQU,wBAAwBzR,EAAMwR,GAE/C,OAsCR,SAA8BxR,GAC1B,MAAM9F,EAASS,MAAMqJ,KAAKhE,GAEpB6R,EAAmB3X,EAAO4X,OAAO,EAAGN,EAAmCxc,QAC7E,KAAK,EAAI+b,EAAQU,wBAAwBI,EAAkBL,GACvD,MAAM,IAAIza,MAAM,4BAGpB,GAAsB,GAAlBmD,EAAO6X,QACP,MAAM,IAAIhb,MAAM,kEAGpB,MAAOib,EAAWC,GAAwBC,EAAchY,GACxDA,EAAO4X,OAAO,EAAGG,GAEjB,MAAME,EAAU,GAChB,KAAOjY,EAAOlF,OAAS,GAAG,CAEtB,GAAsB,IAAlBkF,EAAO6X,QACP,MAAM,IAAIhb,MAAM,kFAGpB,MAAOqb,EAAcC,GAAyBH,EAAchY,GAG5D,GAFAA,EAAO4X,OAAO,EAAGO,GAEbnY,EAAOlF,OAASod,EAChB,MAAM,IAAIrb,MAAM,iCAGpB,MAAMub,EAAgBpY,EAAO4X,OAAO,EAAGM,GACjC/C,EAASwB,EAAkB5Q,WAAW+D,KAAKsO,IACjDH,EAAQtb,KAAKwY,GAEjB,MAAO,CACH2B,KAAM7B,EAAU8B,WAAWsB,kBAC3B3e,MAAO,CACHoe,UAAWA,EAAUpK,WACrBuK,QAASA,IA3ENK,CAAqBxS,GAG5B,MAAM,IAAIjJ,MAAM,yDAA0D,EAAIkY,EAAWwD,OAAOzS,EAAK3E,MAAM,EAAG,KAoBtH,SAAS6W,EAAchY,GACnB,GAAIA,EAAOlF,OAAS,EAChB,MAAM,IAAI+B,MAAM,4BAEpB,GAAImD,EAAO,GAAK,IACZ,MAAM,IAAInD,MAAM,uLAEpB,MAAO,CAACmD,EAAO,GAAI,GAuDvB,SAASwY,EAAc9e,GACnB,MAAM+e,EAAU5C,EAAOI,OAAO7G,WAAW1V,EAAMgU,YAAYoB,WAC3D,GAAI2J,EAAU,IACV,MAAM,IAAI5b,MAAM,2LAEpB,MAAO,CAAC4b,GAKZ,SAASjD,EAAkBL,GACvB,IAAI,EAAIF,EAAUM,2BAA2BJ,GAAS,CAClD,MAAMuD,EAAMjY,MAAMqJ,KAAKwN,GACvBoB,EAAI/b,KAAK,GACT+b,EAAI/b,QAAQ6b,EAAcrD,EAAOzb,MAAMoe,YACvC,IAAK,MAAM5C,KAAcC,EAAOzb,MAAMue,QAAQ9a,KAAK8G,GAAMuR,EAAkBvR,KACvEyU,EAAI/b,KAAK,IACT+b,EAAI/b,QAAQ6b,EAActD,EAAWpa,SACrC4d,EAAI/b,QAAQuY,GAEhB,OAAO,IAAInP,WAAW2S,GAErB,IAAI,EAAIzD,EAAUK,iBAAiBH,GACpC,OAAO,IAAIpP,WAAW,IAAIqR,MAA6B,EAAIrC,EAAWM,YAAYF,EAAOzb,SAExF,IAAI,EAAIub,EAAUG,mBAAmBD,GACtC,OAAO,IAAIpP,WAAW,IAAImR,MAA+B,EAAInC,EAAWM,YAAYF,EAAOzb,SAG3F,MAAM,IAAImD,MAAM,2BA5GxBjE,EAAQ+d,kBAAoBA,EAW5B/d,EAAQ8d,mBAJR,SAA4BiC,GACxB,MAAM,KAAE7S,IAAS,EAAIiP,EAAW6D,YAAYD,GAC5C,OAAOhC,EAAkB7Q,IAsG7BlN,EAAQ4c,kBAAoBA,EAU5B5c,EAAQ6d,mBAHR,SAA4BtB,EAAQhT,GAChC,OAAO,EAAI4S,EAAWU,UAAUtT,EAAQqT,EAAkBL,kCCzL9Dha,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQigB,WAAajgB,EAAQkgB,UAAYlgB,EAAQmgB,QAAUngB,EAAQogB,iBAAmBpgB,EAAQqgB,YAAcrgB,EAAQsgB,yBAA2BtgB,EAAQugB,gBAAkBvgB,EAAQwgB,gBAAkBxgB,EAAQygB,kBAAoBzgB,EAAQ0gB,wBAA0B1gB,EAAQme,WAAane,EAAQ2gB,eAAiB3gB,EAAQwc,kBAAoBxc,EAAQ2c,0BAA4B3c,EAAQ0c,gBAAkB1c,EAAQ4gB,kBAAoB5gB,EAAQ6gB,8BAAgC7gB,EAAQge,sBAAwBhe,EAAQ6d,mBAAqB7d,EAAQ4c,kBAAoB5c,EAAQ8d,mBAAqB9d,EAAQ+d,kBAAoB/d,EAAQ8c,WAAa9c,EAAQ+c,MAAQ/c,EAAQgd,KAAOhd,EAAQgc,+BAAiChc,EAAQic,6BAA+Bjc,EAAQ+b,mBAAqB/b,EAAQ8b,qBAAkB,EAC1xB,IAAIgF,EAAc,EAAQ,MAC1Bve,OAAOC,eAAexC,EAAS,kBAAmB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO+b,EAAYhF,mBAC5GvZ,OAAOC,eAAexC,EAAS,qBAAsB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO+b,EAAY/E,sBAC/GxZ,OAAOC,eAAexC,EAAS,+BAAgC,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO+b,EAAY7E,gCACzH1Z,OAAOC,eAAexC,EAAS,iCAAkC,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO+b,EAAY9E,kCAC3H,IAAI+E,EAAU,EAAQ,MACtBxe,OAAOC,eAAexC,EAAS,OAAQ,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOgc,EAAQ/D,QAC7Fza,OAAOC,eAAexC,EAAS,QAAS,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOgc,EAAQhE,SAC9Fxa,OAAOC,eAAexC,EAAS,aAAc,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOgc,EAAQjE,cACnG,IAAIX,EAAa,EAAQ,IACzB5Z,OAAOC,eAAexC,EAAS,oBAAqB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOoX,EAAW4B,qBAC7Gxb,OAAOC,eAAexC,EAAS,qBAAsB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOoX,EAAW2B,sBAC9Gvb,OAAOC,eAAexC,EAAS,oBAAqB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOoX,EAAWS,qBAC7Gra,OAAOC,eAAexC,EAAS,qBAAsB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOoX,EAAW0B,sBAC9Gtb,OAAOC,eAAexC,EAAS,wBAAyB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOoX,EAAW6B,yBACjH,IAAIgD,EAAa,EAAQ,MACzBze,OAAOC,eAAexC,EAAS,gCAAiC,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOic,EAAWH,iCACzH,IAAII,EAAU,EAAQ,KACtB1e,OAAOC,eAAexC,EAAS,oBAAqB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOkc,EAAQL,qBAC1G,IAAIvE,EAAY,EAAQ,MACxB9Z,OAAOC,eAAexC,EAAS,kBAAmB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOsX,EAAUK,mBAC1Gna,OAAOC,eAAexC,EAAS,4BAA6B,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOsX,EAAUM,6BACpHpa,OAAOC,eAAexC,EAAS,oBAAqB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOsX,EAAUG,qBAC5Gja,OAAOC,eAAexC,EAAS,iBAAkB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOsX,EAAUsE,kBACzGpe,OAAOC,eAAexC,EAAS,aAAc,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOsX,EAAU8B,cACrG,IAAI+C,EAAsB,EAAQ,MAClC3e,OAAOC,eAAexC,EAAS,0BAA2B,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOmc,EAAoBR,2BAC5Hne,OAAOC,eAAexC,EAAS,oBAAqB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOmc,EAAoBT,qBACtH,IAAIU,EAAoB,EAAQ,MAChC5e,OAAOC,eAAexC,EAAS,kBAAmB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOoc,EAAkBX,mBAClH,IAAIY,EAAc,EAAQ,MAC1B7e,OAAOC,eAAexC,EAAS,kBAAmB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOqc,EAAYb,mBAC5Ghe,OAAOC,eAAexC,EAAS,2BAA4B,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOqc,EAAYd,4BACrH,IAAIe,EAAY,EAAQ,MACxB9e,OAAOC,eAAexC,EAAS,cAAe,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOsc,EAAUhB,eACtG9d,OAAOC,eAAexC,EAAS,mBAAoB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOsc,EAAUjB,oBAC3G,IAAIkB,EAAU,EAAQ,KACtB/e,OAAOC,eAAexC,EAAS,UAAW,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOuc,EAAQnB,WAChG5d,OAAOC,eAAexC,EAAS,YAAa,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOuc,EAAQpB,aAClG,IAAIqB,EAAW,EAAQ,MACvBhf,OAAOC,eAAexC,EAAS,aAAc,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOwc,EAAStB,2CC1CpG1d,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ6gB,8BAAgC7gB,EAAQwhB,mBAAgB,EAChE,MAAMrF,EAAa,EAAQ,MACrBc,EAAS,EAAQ,MACjB6D,EAAc,EAAQ,MAQ5B,SAASU,EAAclQ,EAAG3D,GACtB,MAAM8T,GAAO,EAAItF,EAAWwD,OAAOrO,GAC7BoQ,GAAO,EAAIvF,EAAWwD,OAAOhS,GACnC,OAAO8T,IAASC,EAAO,EAAID,EAAOC,GAAQ,EAAI,EAElD1hB,EAAQwhB,cAAgBA,EAsBxBxhB,EAAQ6gB,8BArBR,SAAuCxB,EAASH,EAAWyC,GAAS,GAChE,MAAMC,EAAgB,IAAI3E,EAAOI,OAAO6B,GACxC,GAAI0C,EAAc1L,WAAamJ,EAAQnd,OACnC,MAAM,IAAI+B,MAAM,iBAAiB2d,EAAc1L,yCAAyCmJ,EAAQnd,UAEpG,MAAM2f,EAAaF,EACbtC,EACAxX,MAAMqJ,KAAKmO,GAASyC,MAAK,CAACC,EAAKC,IAItBR,GAFY,EAAIV,EAAY/E,oBAAoBgG,IACpC,EAAIjB,EAAY/E,oBAAoBiG,MAG/D,MAAO,CACH9D,KAAM,qCACNpd,MAAO,CACHoe,UAAW0C,EAAc9M,WACzBuK,QAASwC,iCCnCrBtf,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ4gB,uBAAoB,EAC5B,MAAM1E,EAAW,EAAQ,MAczBlc,EAAQ4gB,kBATR,SAA2BtP,GACvB,MAAO,CACH4K,EAAS+F,eAAeC,SAAS,IACjChG,EAAS+F,eAAeC,SAAS,KACjChG,EAAS+F,eAAeC,SAAS,GACjChG,EAAS+F,eAAeE,OAAO,GAC/BjG,EAAS+F,eAAeE,OAAO7Q,gCCbvC/O,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ2c,0BAA4B3c,EAAQ2gB,eAAiB3gB,EAAQme,WAAane,EAAQwc,kBAAoBxc,EAAQ0c,qBAAkB,EAIxI1c,EAAQ0c,gBAHR,SAAyBH,GACrB,MAAuB,6BAAhBA,EAAO2B,MAMlBle,EAAQwc,kBAHR,SAA2BD,GACvB,MAAuB,+BAAhBA,EAAO2B,MAGlBle,EAAQme,WAAa,CAEjBC,UAAW,6BAEXS,QAAS,2BAETC,QAAS,2BACTW,kBAAmB,sCAMvBzf,EAAQ2gB,eAJR,SAAwBpE,GAEpB,MADwB,CAACvc,EAAQme,WAAWU,QAAS7e,EAAQme,WAAWC,UAAWpe,EAAQme,WAAWW,SAC/EsD,SAAS7F,EAAO2B,OAM3Cle,EAAQ2c,0BAHR,SAAmCJ,GAC/B,MAAuB,uCAAhBA,EAAO2B,mCCzBlB3b,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQygB,kBAAoBzgB,EAAQ0gB,6BAA0B,EAC9D,MAAMxE,EAAW,EAAQ,MACnBC,EAAa,EAAQ,MACrB8B,EAAU,EAAQ,MAClB6C,EAAc,EAAQ,MACtBG,EAAU,EAAQ,KAClBG,EAAc,EAAQ,MACtBC,EAAY,EAAQ,MACpBE,EAAW,EAAQ,MACnBc,EAAsB,qBAKtBC,EAA8B,CAChCC,UAAW,WACXC,OAAQ,CACJC,aAAc,GACdC,SAAU,GACVC,YAAa,QA0BrB3iB,EAAQ0gB,wBAXR,SAAiCkC,GAC7B,MAAM9iB,EAAO+iB,KAAKC,MAAMF,GACxB,KAAK,EAAI3E,EAAQ8E,iBAAiBjjB,GAC9B,MAAM,IAAImE,MAAM,mCACpB,GAAQnE,EAAKoe,OACJmE,EACD,OAAiCviB,EAR9BkjB,IAUH,MAAM,IAAI/e,MAAM,mCAI5B,MAAMgf,EAAiB,CACnBC,cAAe,GACfC,QAAS,EAAC,EAAIlC,EAAQL,mBAAmB,IACzCrX,OAAQ,UAEZ,MAAMkX,EACFzd,YAAYogB,EAAUjb,GAClB,IAAIwD,EAAI0X,EACR,MAAMF,EAAqC,QAA1BxX,EAAKxD,EAAQgb,eAA4B,IAAPxX,EAAgBA,EAAKsX,EAAeE,QACjF5Z,EAAmC,QAAzB8Z,EAAKlb,EAAQoB,cAA2B,IAAP8Z,EAAgBA,EAAKJ,EAAe1Z,OACrFnI,KAAKkiB,OAASF,EACdhiB,KAAKmiB,KAAOpb,EAAQob,KACpBniB,KAAKoiB,SAAWL,EAAQ5e,KAAKkf,IAAW,CACpCA,OAAQA,EACRla,OAAAA,MASRma,0BAA0BN,EAAUjb,EAAU,IAC1C,MAAMwb,EAAkB,IAAIzH,EAAS0H,gBAAgBR,GAC/CG,QAAarH,EAAS2H,MAAMC,eAAeH,EAAiBxb,EAAQ+a,eAC1E,OAAO,IAAIzC,EAAkBkD,EAAiB,IACvCxb,EACHob,KAAMA,IASdG,sBAAsBxhB,EAAS,GAAIiG,EAAU,IACzC,MAAM4b,EAAgB,EAAI9U,KAAKE,MAAO,GAAKjN,EAAU,IAC/C8hB,EAAU9H,EAAS+H,OAAOC,SAASH,GACnCX,EAAWlH,EAAS2H,MAAMjf,OAAOof,GACvC,OAAOvD,EAAkB0D,aAAaf,EAAStO,WAAY3M,GAQ/Dub,yBAAyBd,EAAewB,GACpC,MAAMtkB,EAAO+iB,KAAKC,MAAMF,GACxB,KAAK,EAAI3E,EAAQ8E,iBAAiBjjB,GAC9B,MAAM,IAAImE,MAAM,mCACpB,GAAQnE,EAAKoe,OACJmE,EACD,OAAO5B,EAAkB4D,kBAAkBzB,EAAewB,GAE1D,MAAM,IAAIngB,MAAM,kCAY5Byf,0CAA0Cd,EAAe0B,GACrD,MAAMxkB,EAAO+iB,KAAKC,MAAMF,GACxB,KAAK,EAAI3E,EAAQ8E,iBAAiBjjB,GAC9B,MAAM,IAAImE,MAAM,mCACpB,MAAMsgB,EAAczkB,EACpB,GAAQykB,EAAYrG,OACXmE,EAAqB,CACtB,MAAMmC,QAAuB,EAAIjD,EAASkD,UAAS,EAAItI,EAAWM,YAAY8H,EAAYrX,MAAOoX,EAAeC,EAAYG,YACtHC,EAAoB9B,KAAKC,OAAM,EAAI3G,EAAWyI,UAAUJ,KACxD,SAAEpB,EAAQ,SAAEI,GAAamB,EAE/B,IADA,EAAI1G,EAAQ4G,QAA4B,iBAAbzB,IACtBvb,MAAMC,QAAQ0b,GACf,MAAM,IAAIvf,MAAM,uCACpB,IAAKuf,EAASsB,OAAOC,IAAYC,OA1GvBC,EA0GwCF,KAzGzD,EAAI9G,EAAQ8E,iBAAiBkC,IAEN,iBAAjBA,EAAMxB,QAEW,iBAAjBwB,EAAM1b,OALrB,IAA0B0b,KA2GN,MAAM,IAAIhhB,MAAM,yCAEpB,MAAMihB,EAAc1B,EAAS,GAAGja,OAChC,IAAKia,EAASsB,OAAM,EAAGvb,OAAAA,KAAaA,IAAW2b,IAC3C,MAAM,IAAIjhB,MAAM,4CAEpB,MAAMkf,EAAUK,EAASjf,KAAI,EAAGkf,OAAAA,MAAa,EAAIvH,EAASiJ,cAAc1B,KACxE,OAAOhD,EAAkB0D,aAAaf,EAAU,CAC5CD,QAASA,EACT5Z,OAAQ2b,IAIZ,MAAM,IAAIjhB,MAAM,kCAG5Byf,+BAA+Bd,EAAewB,GAC1C,MAAMtkB,EAAO+iB,KAAKC,MAAMF,GACxB,KAAK,EAAI3E,EAAQ8E,iBAAiBjjB,GAC9B,MAAM,IAAImE,MAAM,mCACpB,MAAMqgB,QAAsB,EAAI/C,EAAStB,YAAYmE,EAAUtkB,EAAKkjB,KACpE,OAAOvC,EAAkB2E,6BAA6BxC,EAAe0B,GAErElB,eACA,OAAOhiB,KAAKkiB,OAAOxO,WAEvBuQ,oBAEI,aADmCjkB,KAAKkkB,2BACZ/gB,KAAI,EAAGghB,KAAAA,EAAMhJ,OAAAA,EAAQiJ,QAAAA,MAAc,CAC3DD,KAAMA,EACNhJ,OAAQA,EACRiJ,QAASA,MAGjBH,gBAAgBI,EAAeC,GAC3B,MACMX,SADiB3jB,KAAKkkB,2BACH9Z,MAAK,EAAGga,QAAAA,KAAcA,IAAYC,IAC3D,QAAgBhkB,IAAZsjB,EACA,MAAM,IAAI9gB,MAAM,WAAWwhB,yBAE/B,MAAM,QAAEE,EAAO,OAAEpJ,GAAWwI,EACtBre,GAAU,EAAIwV,EAAS3N,SAAQ,EAAI8S,EAAUjB,kBAAkBsF,IAC/DE,QAAkB1J,EAAS2J,UAAUC,gBAAgBpf,EAASif,GAC9DI,EAAiB,IAAI5Y,WAAW,IAAIyY,EAAUI,EAAE,OAAQJ,EAAUK,EAAE,MAC1E,MAAO,CACHC,OAAQR,EACRE,WAAW,EAAIxE,EAAYd,0BAA0B/D,EAAQwJ,IASrEV,gBAAgBjB,GACZ,MAAM+B,EAAmB7D,EACnBgC,QAAsB,EAAI/C,EAAStB,YAAYmE,EAAU+B,GAC/D,OAAO/kB,KAAKglB,2BAA2B9B,EAAe6B,GAW1Dd,iCAAiCf,EAAe6B,GAC5C,MAAME,EAAgB,CAClBjD,SAAUhiB,KAAKgiB,SACfI,SAAUpiB,KAAKoiB,SAASjf,KAAI,EAAGkf,OAAAA,EAAQla,OAAAA,MAAa,CAChDka,QAAQ,EAAIvH,EAASoK,cAAc7C,GACnCla,OAAQA,OAGVgd,GAAmB,EAAIpK,EAAWqK,QAAQ3D,KAAK4D,UAAUJ,IACzDK,EAA0B,CAC5BnE,UAAWhB,EAASoF,oBAAoBC,uBAEtCC,QAAsB,EAAItF,EAASuF,SAASP,EAAkBjC,EAAeoC,GAC7E5G,EAAM,CACR5B,KAAMmE,EACNW,IAAKmD,EACLzB,WAAYgC,EACZxZ,MAAM,EAAIiP,EAAWkC,UAAUwI,IAEnC,OAAOhE,KAAK4D,UAAU3G,GAE1BuF,iBAAiB5B,GACb,MAAM,QAAEkC,GAAYzJ,EAAS6K,OAAOC,WAAW9K,EAAS+K,YAAYpB,UAAWzkB,KAAKmiB,KAAME,IACpF,OAAElH,SAAiBL,EAAS2J,UAAUqB,YAAYvB,GACxD,MAAO,CACHA,QAASA,EACTpJ,OAAQL,EAAS2J,UAAUsB,eAAe5K,IAGlD8I,gCACI,OAAOpkB,QAAQmmB,IAAIhmB,KAAKoiB,SAASjf,KAAI8gB,OAAS5B,OAAAA,EAAQla,OAAAA,MAClD,MAAM,QAAEoc,EAAO,OAAEpJ,SAAiBnb,KAAKimB,WAAW5D,GAElD,MAAO,CACH8B,KAAM,YACNI,QAASA,EACTpJ,OAAQA,EACRiJ,SALY,EAAIrJ,EAAWU,UAAUtT,GAAQ,EAAIuX,EAAY9E,gCAAgCO,UAU7Gvc,EAAQygB,kBAAoBA,+BCjP5Ble,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQwgB,qBAAkB,EAC1B,MAAMtE,EAAW,EAAQ,MACnBC,EAAa,EAAQ,MACrB2E,EAAc,EAAQ,MACtBM,EAAc,EAAQ,MACtBC,EAAY,EAAQ,MAM1B,MAAMb,EACFxd,YAAY2iB,EAASpJ,EAAQhT,GACzBnI,KAAKukB,QAAUA,EACfvkB,KAAKmb,OAASA,EACdnb,KAAKmI,OAASA,EAQlBma,qBAAqBiC,EAASpc,EAAS,UACnC,MAAM+d,SAAsBpL,EAAS2J,UAAUqB,YAAYvB,IAAUpJ,OACrE,OAAO,IAAIiE,EAAgBmF,EAASzJ,EAAS2J,UAAUsB,eAAeG,GAAe/d,GAErFic,cACA,OAAO,EAAIrJ,EAAWU,UAAUzb,KAAKmI,QAAQ,EAAIuX,EAAY9E,gCAAgC5a,KAAKmb,SAEtG8I,oBACI,MAAO,CACH,CACIE,KAAM,YACNC,QAASpkB,KAAKokB,QACdjJ,OAAQnb,KAAKmb,SAIzB8I,gBAAgBI,EAAeC,GAC3B,GAAID,IAAkBrkB,KAAKokB,QACvB,MAAM,IAAIvhB,MAAM,WAAWwhB,yBAE/B,MAAM/e,EAAU,IAAIwV,EAASqL,QAAO,EAAIlG,EAAUjB,kBAAkBsF,IAAU8B,SACxE5B,QAAkB1J,EAAS2J,UAAUC,gBAAgBpf,EAAStF,KAAKukB,SACnEI,EAAiB,IAAI5Y,WAAW,IAAIyY,EAAUI,EAAE,OAAQJ,EAAUK,EAAE,MAC1E,MAAO,CACHC,OAAQR,EACRE,WAAW,EAAIxE,EAAYd,0BAA0Blf,KAAKmb,OAAQwJ,KAI9E/lB,EAAQwgB,gBAAkBA,+BCrD1Bje,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQugB,gBAAkBvgB,EAAQsgB,8BAA2B,EAE7D,MAAMnE,EAAa,EAAQ,MACrBC,EAAa,EAAQ,IACrBC,EAAY,EAAQ,MAgB1Brc,EAAQsgB,yBATR,SAAkC/D,EAAQqJ,GACtC,GAAyB,KAArBA,EAAU1jB,OACV,MAAM,IAAI+B,MAAM,oIAEpB,MAAO,CACHwjB,SAAS,EAAIrL,EAAW4B,uBAAuBzB,GAC/CqJ,WAAW,EAAIzJ,EAAWkC,UAAUuH,KAgB5C5lB,EAAQugB,gBAZR,SAAyBqF,GACrB,GAAQA,EAAU6B,QAAQvJ,OAEjB7B,EAAU8B,WAAWC,UACtB,MAAO,CACH7B,QAAQ,EAAIJ,EAAWM,YAAYmJ,EAAU6B,QAAQ3mB,OACrD8kB,WAAW,EAAIzJ,EAAWM,YAAYmJ,EAAUA,YAGpD,MAAM,IAAI3hB,MAAM,yDC/B5B1B,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQogB,iBAAmBpgB,EAAQqgB,YAAcrgB,EAAQ0nB,yBAAsB,EAE/E,MAAMvL,EAAa,EAAQ,MACrBc,EAAS,EAAQ,MACvB,SAAS0K,EAAa/kB,GAClB,GAAmB,iBAARA,GAA4B,OAARA,EAC3B,OAAOA,EAEX,GAAIiF,MAAMC,QAAQlF,GACd,OAAOA,EAAI2B,IAAIojB,GAEnB,MAAMC,EAAarlB,OAAOgE,KAAK3D,GAAKkf,OAC9B+F,EAAS,GAKf,OAHAD,EAAWE,SAASnnB,IAChBknB,EAAOlnB,GAAOgnB,EAAa/kB,EAAIjC,OAE5BknB,EAIX,SAASH,EAAoB9kB,GACzB,OAAOigB,KAAK4D,UAAUkB,EAAa/kB,IAEvC5C,EAAQ0nB,oBAAsBA,EAW9B1nB,EAAQqgB,YAVR,SAAqB0H,EAAMC,EAAKC,EAASC,EAAMC,EAAeC,GAC1D,MAAO,CACHC,SAAUJ,EACVK,eAAgBrL,EAAOI,OAAO7G,WAAW2R,EAAcrT,YAAYA,WACnEsT,SAAUnL,EAAOI,OAAO7G,WAAW4R,EAAStT,YAAYA,WACxDkT,IAAKA,EACLD,KAAMA,EACNG,KAAMA,GAAQ,KAOtBloB,EAAQogB,iBAHR,SAA0BsF,GACtB,OAAO,EAAIvJ,EAAWqK,QAAQkB,EAAoBhC,+BCtCtDnjB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQkgB,UAAYlgB,EAAQmgB,aAAU,EAKtCngB,EAAQmgB,QAJR,SAAiBoI,GACb,MAAM,KAAEL,EAAI,IAAEM,EAAG,IAAER,EAAG,WAAES,GAAeF,EACvC,MAAwB,iBAATL,GAAqBrgB,MAAMC,QAAQ0gB,IAAuB,iBAARR,GAAoBngB,MAAMC,QAAQ2gB,IAWvGzoB,EAAQkgB,UARR,SAAmBwI,EAASD,GACxB,MAAO,CACHD,IAAKE,EAAQX,KACbC,IAAKU,EAAQV,IACbE,KAAMQ,EAAQR,KACdO,WAAY5gB,MAAMC,QAAQ2gB,GAAcA,EAAa,CAACA,kCCZ9DlmB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQykB,QAAUzkB,EAAQ8mB,QAAU9mB,EAAQ2mB,oBAAsB3mB,EAAQigB,WAAajgB,EAAQ2oB,gBAAa,EAC5G,MAAMzM,EAAW,EAAQ,MACnBC,EAAa,EAAQ,MAM3Bnc,EAAQ2oB,YAAa,EAAIxM,EAAWyM,SAAS,oBAa7C5oB,EAAQigB,WAZRoF,eAA0BjB,EAAUyE,GAChC,GACS,aADDA,EAActG,UACD,CACb,MAAMpa,EAAU0gB,EAAcrG,OAC9B,KAAK,EAAItG,EAAS4M,mBAAmB3gB,GACjC,MAAM,IAAIlE,MAAM,qCACpB,OAAOiY,EAAS6M,SAASC,QAAQ5E,EAAUpkB,EAAQ2oB,WAAYxgB,GAG/D,MAAM,IAAIlE,MAAM,8BAI5BjE,EAAQ2mB,oBAAsB,CAC1BC,sBAAuB,0BAgB3B5mB,EAAQ8mB,QAdRzB,eAAuB4D,EAAW3E,EAAe4E,GAC7C,GAAQA,EAAO3G,YACNviB,EAAQ2mB,oBAAoBC,sBAAuB,CACpD,MAAMuC,EAAQjN,EAAS+H,OAAOC,SAAShI,EAASkN,sBAEhD,OAAO,IAAIjc,WAAW,IACfgc,WACOjN,EAASmN,sBAAsBvC,QAAQmC,EAAW3E,EAAe6E,KAI/E,MAAM,IAAIllB,MAAM,sCAAsCilB,EAAO3G,eAczEviB,EAAQykB,QAVRY,eAAuBiE,EAAYhF,EAAe4E,GAC9C,GAAQA,EAAO3G,YACNviB,EAAQ2mB,oBAAoBC,sBAAuB,CACpD,MAAMuC,EAAQG,EAAW/gB,MAAM,EAAG2T,EAASkN,sBAC3C,OAAOlN,EAASmN,sBAAsB5E,QAAQ6E,EAAW/gB,MAAM2T,EAASkN,sBAAuB9E,EAAe6E,GAG9G,MAAM,IAAIllB,MAAM,sCAAsCilB,EAAO3G,kDChDzE,IAAIgH,EAAmBnoB,MAAQA,KAAKmoB,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAI9nB,WAAc8nB,EAAM,CAAE,QAAWA,IAExDjnB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQypB,mBAAgB,EAExB,MAAMtN,EAAa,EAAQ,MACrBuN,EAASH,EAAgB,EAAQ,OACvCvpB,EAAQypB,cAAgB,CACpB,iCAAkC,CAC9BE,UAAW,oBACXC,QAAS,EAAGC,OAAAA,EAAQC,aAAAA,MAAmB,CACnCD,OAAQA,EACRE,gBAAgB,EAAI5N,EAAWkC,UAAUyL,KAE7CE,UAAW,EAAGH,OAAAA,EAAQE,eAAAA,MAAqB,CACvCF,OAAQA,EACRC,cAAc,EAAI3N,EAAWM,YAAYsN,GACzCE,2BAAuBxoB,KAG/B,2CAA4C,CACxCkoB,UAAW,8BACXC,QAAS,EAAGC,OAAAA,EAAQK,OAAAA,EAAQC,MAAAA,EAAO3B,IAAAA,EAAK4B,MAAAA,EAAOC,MAAAA,MAAa,CACxDR,OAAQA,EACRS,QAASJ,EAAOpV,WAChBqV,MAAOA,EACP3B,IAAK3F,KAAKC,OAAM,EAAI3G,EAAWyI,UAAU4D,IACzC4B,MAAOA,EACPC,MAAOA,QAAS5oB,IAEpBuoB,UAAW,EAAGH,OAAAA,EAAQS,QAAAA,EAASH,MAAAA,EAAO3B,IAAAA,EAAK4B,MAAAA,EAAOC,MAAAA,MAAa,CAC3DR,OAAQA,EACRK,OAAQR,EAAOa,QAAQ/T,WAAW8T,GAClCH,MAAOA,EACP3B,KAAK,EAAIrM,EAAWqK,QAAQ3D,KAAK4D,UAAU+B,IAC3C4B,MAAO,IAAIA,GACXC,MAAOA,MAAAA,EAAqCA,EAAQ,MAG5D,mCAAoC,CAChCV,UAAW,sBACXC,QAAS,EAAGC,OAAAA,EAAQW,SAAAA,EAAUC,SAAAA,MAAe,CACzCZ,OAAQA,EACRa,UAAWF,EACXC,SAAUA,IAEdT,UAAW,EAAGH,OAAAA,EAAQa,UAAAA,EAAWD,SAAAA,MAAe,CAC5CZ,OAAQA,EACRW,SAAUE,EACVD,SAAUA,KAGlB,kCAAmC,CAC/Bd,UAAW,qBACXC,QAAS,EAAGC,OAAAA,EAAQY,SAAAA,MAAe,CAC/BZ,OAAQA,EACRY,SAAUA,IAEdT,UAAW,EAAGH,OAAAA,EAAQY,SAAAA,MAAe,CACjCZ,OAAQA,EACRY,SAAUA,KAGlB,uCAAwC,CACpCd,UAAW,0BACXC,QAAS,EAAGC,OAAAA,EAAQY,SAAAA,EAAUjC,IAAAA,EAAK4B,MAAAA,MAAY,CAC3CP,OAAQA,EACRY,SAAUA,EACVjC,IAAK3F,KAAKC,OAAM,EAAI3G,EAAWyI,UAAU4D,IACzC4B,MAAOA,IAEXJ,UAAW,EAAGH,OAAAA,EAAQY,SAAAA,EAAUjC,IAAAA,EAAK4B,MAAAA,MAAY,CAC7CP,OAAQA,EACRY,SAAUA,EACVjC,KAAK,EAAIrM,EAAWqK,QAAQ3D,KAAK4D,UAAU+B,IAC3C4B,MAAO,IAAIA,MAGnB,uCAAwC,CACpCT,UAAW,0BACXC,QAAS,EAAGC,OAAAA,EAAQY,SAAAA,EAAUP,OAAAA,EAAQ1B,IAAAA,MAAU,CAC5CqB,OAAQA,EACRY,SAAUA,EACVH,QAASJ,EAAOpV,WAChB0T,IAAK3F,KAAKC,OAAM,EAAI3G,EAAWyI,UAAU4D,MAE7CwB,UAAW,EAAGH,OAAAA,EAAQY,SAAAA,EAAUH,QAAAA,EAAS9B,IAAAA,MAAW,CAChDqB,OAAQA,EACRY,SAAUA,EACVP,OAAQR,EAAOa,QAAQ/T,WAAW8T,GAClC9B,KAAK,EAAIrM,EAAWqK,QAAQ3D,KAAK4D,UAAU+B,mCC3FvDjmB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ2qB,oBAAiB,EAEzB,MAAMxO,EAAa,EAAQ,MACrBc,EAAS,EAAQ,MACjB2N,EAAa,EAAQ,MACrBC,EAAmB,EAAQ,MAC3B5M,EAAU,EAAQ,MAClB6M,EAAU,EAAQ,MAClBC,EAAY,EAAQ,MAC1B,MAAMJ,EACF3nB,YAAYgoB,GACR5pB,KAAK6pB,WAAa,IAAIxnB,IAClBunB,IACA5pB,KAAK4pB,SAAWA,EAChB5pB,KAAK8pB,YAAcN,EAAWO,YAAYC,eAAeJ,EAAUJ,EAAWS,mBAAoBT,EAAWU,mBAAoBP,EAAUQ,mBAAoBX,EAAWY,mBAGlL9H,qBAAqB+H,GACjB,MAAMT,QAAiBH,EAAiBa,mBAAmBC,QAAQF,GACnE,OAAO,IAAId,EAAeK,GAE9BY,cACI,OAAOxqB,KAAK4pB,SAEhBa,mBACI,IAAKzqB,KAAK4pB,SACN,MAAM,IAAI/mB,MAAM,yFAEpB,OAAO7C,KAAK4pB,SAEhBc,iBACI,OAAO1qB,KAAK8pB,YAEhBa,sBACI,IAAK3qB,KAAK8pB,YACN,MAAM,IAAIjnB,MAAM,oFAEpB,OAAO7C,KAAK8pB,YAEhB7F,mBACI,IAAKjkB,KAAK6mB,QAAS,CACf,MACMA,SADiB7mB,KAAKyqB,mBAAmBG,UACtBC,SAASC,QAClC,IAAKjE,EACD,MAAM,IAAIhkB,MAAM,8BACpB7C,KAAK6mB,QAAUA,EAEnB,OAAO7mB,KAAK6mB,QAEhB5C,kBAEI,aADqBjkB,KAAKyqB,mBAAmBG,UAC/BG,SAASC,kBAE3B/G,iBAAiBgH,GACb,IACI,MAAMtH,QAAgB3jB,KAAK2qB,sBAAsBO,KAAKvH,QAAQsH,GAC9D,OAAOtH,GAAU,EAAI6F,EAAW2B,gBAAgBxH,GAAW,KAE/D,MAAOhkB,GACH,GAAI,8BAA8ByrB,KAAKzrB,EAAM+T,YACzC,OAAO,KAEX,MAAM/T,GAGdskB,kBAAkBG,GACd,MAAMT,QAAgB3jB,KAAKqrB,WAAWjH,GACtC,IAAKT,EACD,MAAM,IAAI9gB,MAAM,4FAEpB,MAAO,CACHkkB,cAAepD,EAAQoD,cACvBC,SAAUrD,EAAQqD,UAG1B/C,eAAeqH,GACX,MAAM9W,QAAiBxU,KAAKyqB,mBAAmBc,MAAMD,GACrD,MAAO,CACHE,IAAI,EAAIzQ,EAAWwD,OAAO/J,EAASiX,QAAQzjB,MAAM0jB,cACjDC,OAAQ,CACJC,QAAS,CACLL,MAAO,IAAI1P,EAAOI,OAAOzH,EAAS+W,MAAMI,OAAOC,QAAQL,OAAO7X,WAC9DmY,IAAK,IAAIhQ,EAAOI,OAAOzH,EAAS+W,MAAMI,OAAOC,QAAQC,KAAKnY,YAE9D4X,OAAQ9W,EAAS+W,MAAMI,OAAOL,OAC9BzE,QAASrS,EAAS+W,MAAMI,OAAO9E,QAC/BiF,MAAM,EAAIrC,EAAiBsC,0BAA0BvX,EAAS+W,MAAMI,OAAOG,OAE/EE,IAAKxX,EAAS+W,MAAMS,KAG5B/H,iBAAiBG,EAAS6H,GACtB,OAAOjsB,KAAK2qB,sBAAsBuB,KAAKC,QAAQ/H,EAAS6H,GAE5DhI,YAAYuH,GACR,IAAIjhB,EAEJ,OAA6B,QAArBA,SADcvK,KAAKosB,SAAS,YAAYZ,OAC3B,UAAuB,IAAPjhB,EAAgBA,EAAK,KAE9D0Z,eAAeoI,EAAO/P,EAAS,IAC3B,MAAMgQ,EAAYhQ,EAAOgQ,WAAa,EAChCC,EAAYjQ,EAAOiQ,WAAanV,OAAOoV,iBAC7C,GAAID,EAAYD,EACZ,MAAO,GACX,SAASG,EAAYC,GACjB,MAAO,GAAGA,oBAAgCJ,oBAA4BC,IAE1E,IAAIP,EACJ,IAAI,EAAIxC,EAAWmD,uBAAuBN,GACtCL,EACIK,EAAMf,QAAUgB,GAAaD,EAAMf,QAAUiB,QACjCvsB,KAAKosB,SAAS,aAAaC,EAAMf,UACvC,QAET,IAAI,EAAI9B,EAAWoD,6BAA6BP,GAAQ,CACzD,MAAMQ,EAAYJ,EAAY,8CAA8CJ,EAAMS,iBAC5EC,EAAgBN,EAAY,iDAAiDJ,EAAMS,kBAClFE,EAAMC,SAAkBptB,QAAQmmB,IAAI,CAAC6G,EAAWE,GAAe5pB,KAAK+pB,GAAaltB,KAAKosB,SAASc,MAChGC,EAAaH,EAAK7pB,KAAKiqB,GAAMA,EAAEplB,OACrCgkB,EAAM,IAAIgB,KAASC,EAAS3Q,QAAQ8Q,IAAOD,EAAWnM,SAASoM,EAAEplB,aAEhE,MAAI,EAAIwhB,EAAW6D,qBAAqBhB,GAKzC,MAAM,IAAIxpB,MAAM,sBALiC,CACjD,MAAMqqB,EAAWT,EAAYJ,EAAMiB,KAAKnqB,KAAKiqB,GAAM,GAAGA,EAAE7tB,QAAQ6tB,EAAE1tB,WAAU6tB,KAAK,UACjFvB,QAAYhsB,KAAKosB,SAASc,IAM9B,OADiBlB,EAAI1P,QAAQkR,GAAOA,EAAGlC,QAAUgB,GAAakB,EAAGlC,QAAUiB,IAG/EkB,aACQztB,KAAK4pB,UACL5pB,KAAK4pB,SAAS6D,aAetBxJ,kBAAkBuJ,EAAIE,EAAY,IAAOC,EAAiB,KACtD,IAAIC,GAAW,EACf,MAAMC,EAAgBnZ,YAAW,KAC7BkZ,GAAW,IACZF,GACGI,EAAY7J,MAAO8J,IACrB,GAAIH,EACA,MAAM,IAAIpE,EAAWwE,aAAa,uBAAuBD,qFAAyFA,SAEhJ,EAAIlR,EAAQoR,OAAON,GACzB,MAAMlH,QAAezmB,KAAKkuB,MAAMH,GAChC,OAAOtH,EACD,CACE0H,KAAM1H,EAAO0H,KACb7C,OAAQ7E,EAAO6E,OACf8C,OAAQ3H,EAAO2H,OACfC,gBAAiBN,EACjBO,QAAS7H,EAAO6H,QAChBC,UAAW9H,EAAO8H,WAEpBT,EAAUC,IAEdS,QAAoBxuB,KAAKyqB,mBAAmBgE,gBAAgB,CAAEjB,GAAAA,IACpE,GAAIgB,EAAYL,KACZ,MAAM,IAAItrB,MAAM,6CAA6C2rB,EAAYL,oBAAoBK,EAAYE,oBAAoBF,EAAYG,OAE7I,MAAMC,GAAgB,EAAI7T,EAAWwD,OAAOiQ,EAAYxmB,MAAM0jB,cAC9D,OAAO,IAAI7rB,SAAQ,CAACV,EAASC,IAAW0uB,EAAUc,GAAe9uB,MAAMJ,IACnEmvB,aAAahB,GACb1uB,EAAQO,MACRC,IACAkvB,aAAahB,GACbzuB,EAAOO,QAGfskB,iBACI,MAAM,UAAE6K,SAAoB9uB,KAAK2qB,sBAAsBoE,KAAKC,eAC5D,OAAQF,GAAa,IAAI3rB,KAAKb,KAC1B,EAAIua,EAAQ4G,QAAQnhB,EAAM2sB,SAAW3sB,EAAMwmB,QAAUxmB,EAAM4sB,SAAU,oBAC9D,CACH1D,GAAIlpB,EAAMwmB,OAAOhU,WACjBma,QAAS3sB,EAAM2sB,QACfE,UAAU,EAAIpU,EAAWwD,OAAOjc,EAAM4sB,cAIlDjL,qBAAqB6E,GACjB,MAAMsG,EAASpvB,KAAK6pB,WAAWlmB,IAAImlB,GACnC,GAAIsG,EACA,OAAOA,EACX,MAAM,SAAEC,EAAQ,KAAEvjB,SAAe9L,KAAK2qB,sBAAsBoE,KAAKO,QAAQxG,IACzE,EAAIjM,EAAQ4G,QAAQ4L,GAAYA,EAASvG,QAAUuG,EAASJ,SAAWI,EAASH,UAAYpjB,EAAM,kCAClG,MAAMyjB,EAAc,CAChB/D,GAAI6D,EAASvG,OAAOhU,WACpBma,QAASI,EAASJ,QAClBE,UAAU,EAAIpU,EAAWwD,OAAO8Q,EAASH,UACzCpjB,KAAMA,GAGV,OADA9L,KAAK6pB,WAAWjmB,IAAIklB,EAAQyG,GACrBA,EAEXtL,mBAAmB6E,GAEf,MAAM,UAAE0G,SAAoBxvB,KAAK2qB,sBAAsBoE,KAAKU,sBAAsB3G,GAClF,OAAO0G,EAKXvL,kBAAkBG,GACd,MAAQA,QAASsL,EAAgB,aAAEC,SAAuB3vB,KAAK2qB,sBAAsBoE,KAAKa,gBAAgBxL,GAC1G,IAAKuL,EACD,MAAM,IAAI9sB,MAAM,iCAAiCuhB,MAGrD,OAFA,EAAIvH,EAAQ4G,QAAQiM,EAAkB,oBACtC,EAAI7S,EAAQ4G,QAAQkM,EAAa7G,QAAU6G,EAAaV,SAAWU,EAAa5G,MAAO,2BAChF,CACH3E,QAASsL,EACT5G,OAAQ6G,EAAa7G,OAAOhU,WAC5Bma,QAASU,EAAaV,QACtBhG,MAAO0G,EAAa1G,YAAS5oB,EAC7B0oB,MAAO4G,EAAa5G,MACpB8G,UAAWF,EAAaE,gBAAaxvB,GAM7C4jB,6BAA6BG,GACzB,MAAMqC,QAAezmB,KAAK2qB,sBAAsBoE,KAAKe,uBAAuB1L,GAC5E,IAAKqC,EACD,MAAM,IAAI5jB,MAAM,0CAA0CuhB,MAC9D,MAAM2L,EAAa,CACf,CAACrG,EAAQsG,iCAAiCC,2CAA4C,OACtF,CAACvG,EAAQsG,iCAAiCE,8CAA+C,UACzF,CAACxG,EAAQsG,iCAAiCG,8CAA+C,WAE7F,OAAQ1J,EAAOlkB,SAAW,IAAIY,KAAKb,KAC/B,EAAIua,EAAQ4G,QAAQnhB,EAAM8tB,WAAa9tB,EAAMwmB,QAAUxmB,EAAM8kB,KACtD,CACHgJ,UAAWL,EAAWztB,EAAM8tB,WAC5BtH,OAAQxmB,EAAMwmB,OAAOhU,WACrBsS,IAAK3F,KAAKC,OAAM,EAAI3G,EAAWsV,WAAW/tB,EAAM8kB,UAU5DnD,uBAAuBG,EAAS7kB,SAEtBS,KAAKswB,YAAYlM,GACvB,MAAM,KAAEtY,SAAe9L,KAAK2qB,sBAAsBoE,KAAKwB,iBAAiBnM,EAAS7kB,GACjF,OAAOuM,MAAAA,EAAmCA,EAAO,KASrDmY,yBAAyBG,EAASoM,GAC9B,IACI,aAAaxwB,KAAK2qB,sBAAsBoE,KAAK0B,mBAAmBrM,EAASoM,GAE7E,MAAO7wB,GACH,MAAIA,aAAiBkD,OACblD,EAAM2F,QAAQorB,WAAW,uBACnB,IAAI7tB,MAAM,iCAAiCuhB,MAO/CzkB,GAIlBskB,eAAeoI,GAEX,aADsBrsB,KAAKyqB,mBAAmBkG,YAAY,CAAEtE,MAAOA,KACpDL,IAAI7oB,KAAKqqB,IACb,CACHlC,OAAQkC,EAAGlC,OACXtjB,MAAM,EAAI+S,EAAWwD,OAAOiP,EAAGxlB,MAAM0jB,cACrCyC,KAAMX,EAAG/G,OAAO0H,KAChBC,OAAQZ,EAAG/G,OAAOkI,KAAO,GACzBnB,GAAIA,EAAGA,GACPc,QAASd,EAAG/G,OAAO6H,QACnBC,UAAWf,EAAG/G,OAAO8H,eAKrC3vB,EAAQ2qB,eAAiBA,6BClTzBpoB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQgyB,yBAA2BhyB,EAAQiyB,yBAA2BjyB,EAAQkyB,4BAA8BlyB,EAAQmyB,6BAA+BnyB,EAAQoyB,qCAAuCpyB,EAAQqyB,gCAA6B,EAIvOryB,EAAQqyB,2BAHR,SAAoCC,GAChC,MAAgC,mCAAzBA,EAAaC,SAOxBvyB,EAAQoyB,qCAJR,SAA8CE,GAC1C,MACI,6CADIA,EAAaC,SAOzBvyB,EAAQmyB,6BAHR,SAAsCG,GAClC,MAAgC,qCAAzBA,EAAaC,SAMxBvyB,EAAQkyB,4BAHR,SAAqCI,GACjC,MAAgC,oCAAzBA,EAAaC,SAMxBvyB,EAAQiyB,yBAHR,SAAkCK,GAC9B,MAAgC,yCAAzBA,EAAaC,SAMxBvyB,EAAQgyB,yBAHR,SAAkCM,GAC9B,MAAgC,yCAAzBA,EAAaC,sCCxBxBhwB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQwyB,WAAaxyB,EAAQyyB,cAAW,EACxC,MAAMtW,EAAa,EAAQ,MAU3Bnc,EAAQyyB,SAHR,SAAkB7vB,GACd,OAAO,EAAIuZ,EAAWkC,WAAU,EAAIlC,EAAWqK,QAAQ3D,KAAK4D,UAAU7jB,MAY1E5C,EAAQwyB,WAHR,SAAoBvqB,GAChB,OAAO4a,KAAKC,OAAM,EAAI3G,EAAWyI,WAAU,EAAIzI,EAAWM,YAAYxU,mCCpB1E1F,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ0yB,sBAAwB1yB,EAAQurB,mBAAqBvrB,EAAQyyB,SAAWzyB,EAAQwyB,WAAaxyB,EAAQmyB,6BAA+BnyB,EAAQqyB,2BAA6BryB,EAAQiyB,yBAA2BjyB,EAAQoyB,qCAAuCpyB,EAAQgyB,yBAA2BhyB,EAAQkyB,4BAA8BlyB,EAAQ2qB,eAAiB3qB,EAAQypB,mBAAgB,EAC7X,IAAIkJ,EAAe,EAAQ,MAC3BpwB,OAAOC,eAAexC,EAAS,gBAAiB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO4tB,EAAalJ,iBAC3G,IAAImJ,EAAmB,EAAQ,IAC/BrwB,OAAOC,eAAexC,EAAS,iBAAkB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO6tB,EAAiBjI,kBAChH,IAAIkI,EAAkB,EAAQ,MAC9BtwB,OAAOC,eAAexC,EAAS,8BAA+B,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO8tB,EAAgBX,+BAC5H3vB,OAAOC,eAAexC,EAAS,2BAA4B,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO8tB,EAAgBb,4BACzHzvB,OAAOC,eAAexC,EAAS,uCAAwC,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO8tB,EAAgBT,wCACrI7vB,OAAOC,eAAexC,EAAS,2BAA4B,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO8tB,EAAgBZ,4BACzH1vB,OAAOC,eAAexC,EAAS,6BAA8B,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO8tB,EAAgBR,8BAC3H9vB,OAAOC,eAAexC,EAAS,+BAAgC,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO8tB,EAAgBV,gCAC7H,IAAIhW,EAAa,EAAQ,MACzB5Z,OAAOC,eAAexC,EAAS,aAAc,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOoX,EAAWqW,cACtGjwB,OAAOC,eAAexC,EAAS,WAAY,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOoX,EAAWsW,YACpG,IAAI1H,EAAY,EAAQ,MACxBxoB,OAAOC,eAAexC,EAAS,qBAAsB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOgmB,EAAUQ,sBAC7G,IAAIuH,EAA0B,EAAQ,MACtCvwB,OAAOC,eAAexC,EAAS,wBAAyB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAO+tB,EAAwBJ,sDCnB9HnwB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQurB,wBAAqB,EAC7B,IAAIwH,EAAS,EAAQ,MACrBxwB,OAAOC,eAAexC,EAAS,qBAAsB,CAAEoC,YAAY,EAAM2C,IAAK,WAAc,OAAOguB,EAAOxH,yDCH1G,IAAIhC,EAAmBnoB,MAAQA,KAAKmoB,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAI9nB,WAAc8nB,EAAM,CAAE,QAAWA,IAExDjnB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQurB,wBAAqB,EAC7B,MAAMpP,EAAa,EAAQ,MACrByO,EAAa,EAAQ,MACrBoI,EAAU,EAAQ,MAClBtJ,EAASH,EAAgB,EAAQ,OAoEvCvpB,EAAQurB,mBAnER,SAA4B0H,GACxB,MAAM7gB,GAAM,EAAIwY,EAAWsI,yBAAyBD,GAG9CE,EAAe,IAAIH,EAAQI,gBAAgBhhB,GACjD,MAAO,CACH+d,KAAM,CACFC,aAAc/K,MAAOgO,IACjB,MAAM5d,EAAU,CACZ6d,YAAY,EAAI1I,EAAW2I,kBAAkBF,IAEjD,OAAOF,EAAaK,MAAM/d,IAE9Bib,QAASrL,MAAOuH,IACZ,MAAMnX,EAAU,CAAEyU,OAAQR,EAAOa,QAAQlU,WAAWuW,IACpD,OAAOuG,EAAaM,KAAKhe,IAE7Bob,sBAAuBxL,MAAOuH,EAAIyG,KAC9B,MAAM5d,EAAU,CACZyU,OAAQR,EAAOa,QAAQlU,WAAWuW,GAClC0G,YAAY,EAAI1I,EAAW2I,kBAAkBF,IAEjD,OAAOF,EAAaO,gBAAgBje,IAExCub,gBAAiB3L,MAAOG,IACpB,MAAM/P,EAAU,CAAE+P,QAASA,GAC3B,OAAO2N,EAAaQ,aAAale,IAErCyb,uBAAwB7L,MAAOG,EAAS6N,KACpC,MAAM5d,EAAU,CACZ+P,QAASA,EACT8N,YAAY,EAAI1I,EAAW2I,kBAAkBF,IAEjD,OAAOF,EAAaS,gBAAgBne,IAExCoe,oBAAqBxO,MAAOG,EAAS6N,KACjC,MAAM5d,EAAU,CACZ+P,QAASA,EACT8N,YAAY,EAAI1I,EAAW2I,kBAAkBF,IAEjD,OAAOF,EAAaW,iBAAiBre,IAEzCkc,iBAAkBtM,MAAOG,EAAS7kB,KAC9B,MAAM8U,EAAU,CAAE+P,QAASA,EAASuO,UAAWpzB,GAC/C,OAAOwyB,EAAaa,iBAAiBve,IAEzCoc,mBAAoBxM,MAAOG,EAASiI,KAChC,MAAMhY,EAAU,CAAE+P,QAASA,EAASuO,WAAW,EAAI5X,EAAWyM,SAAS/F,KAAK4D,UAAUgH,MAChF,KAAEvgB,SAAeimB,EAAac,mBAAmBxe,GAEvD,IAAIye,EACJ,IACIA,GAAe,EAAI/X,EAAWyI,UAAU1X,GAE5C,MAAOnM,GACH,MAAM,IAAIkD,MAAM,8DAA8DlD,KAElF,IACI,OAAO8hB,KAAKC,MAAMoR,GAEtB,MAAOnzB,GACH,MAAM,IAAIkD,MAAM,4DAA4DlD,6CCtEhG,IAAIwoB,EAAmBnoB,MAAQA,KAAKmoB,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAI9nB,WAAc8nB,EAAM,CAAE,QAAWA,IAExDjnB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ0yB,2BAAwB,EAEhC,MAAMyB,EAAU,EAAQ,MAClBjY,EAAW,EAAQ,MACnBC,EAAa,EAAQ,MACrBc,EAAS,EAAQ,MACjBmX,EAAkB,EAAQ,MAC1BxJ,EAAa,EAAQ,MACrBC,EAAmB,EAAQ,MAC3B5M,EAAU,EAAQ,MAClBoW,EAAO,EAAQ,MACfC,EAAO,EAAQ,KACfC,EAAY,EAAQ,MACpBC,EAAO,EAAQ,MACfC,EAAO,EAAQ,MACf/K,EAASH,EAAgB,EAAQ,OACjCmL,EAASnL,EAAgB,EAAQ,OACjCoJ,EAAe,EAAQ,MACvBC,EAAmB,EAAQ,IACjC,SAAS+B,EAAoC9M,GACzC,MAAO,8BAA8BA,EAAO4H,6BAA6B5H,EAAO6E,iBAAiB7E,EAAO0H,kBAAkB1H,EAAO2H,SAErI,SAASoF,IACL,MAAMpxB,EAAW,IAAI4wB,EAAgBS,SAASjK,EAAWkK,sBAOzD,OANAtxB,EAASuxB,SAAS,kCAAmCN,EAAKO,eAC1DxxB,EAASuxB,SAAS,uCAAwCN,EAAKQ,oBAC/DzxB,EAASuxB,SAAS,uCAAwCN,EAAKS,oBAC/D1xB,EAASuxB,SAAS,iCAAkCN,EAAKU,cACzD3xB,EAASuxB,SAAS,2CAA4CN,EAAKW,wBACnE5xB,EAASuxB,SAAS,mCAAoCN,EAAKY,gBACpD7xB,EAEX,MAAMkvB,UAA8BE,EAAiBjI,eACjD3nB,YAAYgoB,EAAUsK,EAAQntB,GAC1B,IAAIwD,EACJ4pB,MAAMvK,GAEN,MAAMzhB,EAAmC,QAAzBoC,EAAKxD,EAAQoB,cAA2B,IAAPoC,EAAgBA,EAAK,UAChE,SAAEnI,EAAWoxB,IAAuB,WAAEY,EAAa,IAAI5K,EAAW6K,WAAW,CAAElsB,OAAAA,EAAQmsB,UAAW/C,EAAalJ,iBAAsBthB,EAC3I/G,KAAKoC,SAAWA,EAChBpC,KAAKo0B,WAAaA,EAClBp0B,KAAKk0B,OAASA,EACdl0B,KAAKu0B,mBAAqBxtB,EAAQwtB,mBAClCv0B,KAAKw0B,wBAA0BztB,EAAQytB,wBACvCx0B,KAAKy0B,SAAW1tB,EAAQ0tB,SAE5BnS,+BAA+B+H,EAAU6J,EAAQntB,EAAU,IACvD,MAAM6iB,QAAiBH,EAAiBa,mBAAmBC,QAAQF,GACnE,OAAO,IAAIiH,EAAsB1H,EAAUsK,EAAQntB,GAWvDub,qBAAqB4R,EAAQntB,EAAU,IACnC,OAAO,IAAIuqB,OAAsBjxB,EAAW6zB,EAAQntB,GAExDkd,eAAeI,EAAeqQ,EAAU5N,GACpC,MAAM6N,EAAUD,EAASvxB,KAAKyxB,GAAM50B,KAAKoC,SAASyyB,YAAYD,KACxDE,SAA2B90B,KAAKk0B,OAAOa,eAAe3qB,MAAMuZ,GAAYA,EAAQS,UAAYC,IAClG,IAAKyQ,EACD,MAAM,IAAIjyB,MAAM,0CAEpB,MAAMsY,GAAS,EAAI4X,EAAQnW,uBAAuBkY,EAAkB3Z,SAC9D,SAAE6L,SAAmBhnB,KAAKg1B,YAAY3Q,IACtC,QAAE4Q,SAAkBj1B,KAAK2qB,sBAAsB6C,GAAG0H,SAASP,EAAS7N,EAAM3L,EAAQ6L,GAExF,OADA,EAAInK,EAAQsY,eAAeF,GACpBpZ,EAAOI,OAAO7G,WAAW6f,EAAQ3G,QAAQ5a,YAAYoB,WAGhEmP,aAAamR,EAAeC,EAAUzO,EAAKE,EAAO,IAC9C,MAAM5iB,EAAaovB,EAAOnK,QAAQmM,KAAKD,EAAU,CAAEE,MAAO,IACpDC,EAAe,CACjBrE,QAAS,iCACTzxB,MAAO2zB,EAAKU,aAAa0B,YAAY,CACjChN,OAAQ2M,EACR1M,aAAcxkB,KAGhBuiB,QAAezmB,KAAK01B,iBAAiBN,EAAe,CAACI,GAAe5O,EAAKE,GAC/E,IAAI,EAAI0C,EAAWmM,oBAAoBlP,GACnC,MAAM,IAAI5jB,MAAM0wB,EAAoC9M,IAExD,MAAMmP,EAAapM,EAAWqM,KAAKC,YAAYrP,EAAO2H,QAChD2H,EAAavM,EAAWqM,KAAKG,cAAcJ,EAAY,aAAc,WAC3E,MAAO,CACHK,aAAcZ,EAASv0B,OACvBo1B,kBAAkB,EAAInb,EAAWwD,QAAO,EAAIzD,EAAS3N,QAAQkoB,IAC7Dc,eAAgBjyB,EAAWpD,OAC3Bs1B,oBAAoB,EAAIrb,EAAWwD,QAAO,EAAIzD,EAAS3N,QAAQjJ,IAC/D4kB,OAAQ1R,OAAOjC,SAAS4gB,EAAWr2B,MAAO,IAC1Cm2B,KAAMD,EACNtK,OAAQ7E,EAAO6E,OACf+C,gBAAiB5H,EAAO4H,gBACxBE,UAAW9H,EAAO8H,UAClBD,QAAS7H,EAAO6H,SAGxBrK,kBAAkBmR,EAAetM,EAAQ1B,EAAK2B,EAAOnC,EAAK7f,EAAU,IAChE,MAAMsvB,EAAyB,CAC3BlF,QAAS,2CACTzxB,MAAO2zB,EAAKW,uBAAuByB,YAAY,CAC3ChN,OAAQ2M,EACRtM,OAAQR,EAAOa,QAAQ/T,WAAW,IAAIyG,EAAOI,OAAO6M,GAAQpV,YAC5DqV,MAAOA,EACP3B,KAAK,EAAIrM,EAAWqK,QAAQ3D,KAAK4D,UAAU+B,IAC3C4B,MAAO,IAAKjiB,EAAQiiB,OAAS,IAC7BC,MAAOliB,EAAQkiB,SAGjBxC,QAAezmB,KAAK01B,iBAAiBN,EAAe,CAACiB,GAAyBzP,EAAK7f,EAAQ+f,MACjG,IAAI,EAAI0C,EAAWmM,oBAAoBlP,GACnC,MAAM,IAAI5jB,MAAM0wB,EAAoC9M,IAExD,MAAMmP,EAAapM,EAAWqM,KAAKC,YAAYrP,EAAO2H,QAEtD,MAAO,CACHkI,gBAFwB9M,EAAWqM,KAAKG,cAAcJ,EAAY,cAAe,qBAE5Cl2B,MACrCm2B,KAAMD,EACNtK,OAAQ7E,EAAO6E,OACf+C,gBAAiB5H,EAAO4H,gBACxBE,UAAW9H,EAAO8H,UAClBD,QAAS7H,EAAO6H,SAGxBrK,kBAAkBmR,EAAekB,EAAiBlN,EAAUxC,EAAKE,EAAO,IACpE,MAAMyP,EAAiB,CACnBpF,QAAS,mCACTzxB,MAAO2zB,EAAKY,eAAewB,YAAY,CACnChN,OAAQ2M,EACR/L,SAAUiN,EACVlN,SAAUA,KAGZ3C,QAAezmB,KAAK01B,iBAAiBN,EAAe,CAACmB,GAAiB3P,EAAKE,GACjF,IAAI,EAAI0C,EAAWmM,oBAAoBlP,GACnC,MAAM,IAAI5jB,MAAM0wB,EAAoC9M,IAExD,MAAO,CACHoP,KAAMrM,EAAWqM,KAAKC,YAAYrP,EAAO2H,QACzC9C,OAAQ7E,EAAO6E,OACf+C,gBAAiB5H,EAAO4H,gBACxBE,UAAW9H,EAAO8H,UAClBD,QAAS7H,EAAO6H,SAGxBrK,iBAAiBmR,EAAekB,EAAiB1P,EAAKE,EAAO,IACzD,MAAM0P,EAAgB,CAClBrF,QAAS,kCACTzxB,MAAO2zB,EAAKO,cAAc6B,YAAY,CAClChN,OAAQ2M,EACR/L,SAAUiN,KAGZ7P,QAAezmB,KAAK01B,iBAAiBN,EAAe,CAACoB,GAAgB5P,EAAKE,GAChF,IAAI,EAAI0C,EAAWmM,oBAAoBlP,GACnC,MAAM,IAAI5jB,MAAM0wB,EAAoC9M,IAExD,MAAO,CACHoP,KAAMrM,EAAWqM,KAAKC,YAAYrP,EAAO2H,QACzC9C,OAAQ7E,EAAO6E,OACf+C,gBAAiB5H,EAAO4H,gBACxBE,UAAW9H,EAAO8H,UAClBD,QAAS7H,EAAO6H,SAGxBrK,cAAcmR,EAAekB,EAAiBxN,EAAQ2N,EAAY7P,EAAKE,EAAO,IAC1E,MAAM4P,EAAqB,CACvBvF,QAAS,uCACTzxB,MAAO2zB,EAAKS,mBAAmB2B,YAAY,CACvChN,OAAQ2M,EACR/L,SAAUiN,EACVxN,OAAQR,EAAOa,QAAQ/T,WAAW,IAAIyG,EAAOI,OAAO6M,GAAQpV,YAC5D0T,KAAK,EAAIrM,EAAWqK,QAAQ3D,KAAK4D,UAAUoR,OAG7ChQ,QAAezmB,KAAK01B,iBAAiBN,EAAe,CAACsB,GAAqB9P,EAAKE,GACrF,IAAI,EAAI0C,EAAWmM,oBAAoBlP,GACnC,MAAM,IAAI5jB,MAAM0wB,EAAoC9M,IAExD,MAAO,CACHoP,KAAMrM,EAAWqM,KAAKC,YAAYrP,EAAO2H,QACzC9C,OAAQ7E,EAAO6E,OACf+C,gBAAiB5H,EAAO4H,gBACxBE,UAAW9H,EAAO8H,UAClBD,QAAS7H,EAAO6H,SAGxBrK,cAAcmR,EAAekB,EAAiBlP,EAAKR,EAAKE,EAAO,GAAIkC,GAC/D,MAAM2N,EAAqB,CACvBxF,QAAS,uCACTzxB,MAAO2zB,EAAKQ,mBAAmB4B,YAAY,CACvChN,OAAQ2M,EACR/L,SAAUiN,EACVlP,KAAK,EAAIrM,EAAWqK,QAAQ3D,KAAK4D,UAAU+B,IAC3C4B,MAAO,IAAKA,GAAS,OAGvBvC,QAAezmB,KAAK01B,iBAAiBN,EAAe,CAACuB,GAAqB/P,EAAKE,GACrF,IAAI,EAAI0C,EAAWmM,oBAAoBlP,GACnC,MAAM,IAAI5jB,MAAM0wB,EAAoC9M,IAExD,MAAO,CACHoP,KAAMrM,EAAWqM,KAAKC,YAAYrP,EAAO2H,QACzC9C,OAAQ7E,EAAO6E,OACf+C,gBAAiB5H,EAAO4H,gBACxBE,UAAW9H,EAAO8H,UAClBD,QAAS7H,EAAO6H,SAGxBrK,iBAAiBmR,EAAewB,EAAkB9a,EAAQ8K,EAAKE,EAAO,IAClE,MAAM+P,EAAU,CACZ1F,QAAS,+BACTzxB,MAAO,CACHo3B,YAAa1B,EACb2B,UAAWH,EACX9a,OAAQ,IAAIA,KAGpB,OAAO9b,KAAK01B,iBAAiBN,EAAe,CAACyB,GAAUjQ,EAAKE,GAEhE7C,qBAAqB+S,EAAkBC,EAAkBnb,EAAQ8K,EAAKE,EAAO,IACzE,MAAMoQ,EAAc,CAChB/F,QAAS,sCACTzxB,MAAOwzB,EAAKiE,YAAY1B,YAAY,CAAEuB,iBAAkBA,EAAkBC,iBAAAA,EAAkBnb,OAAAA,KAEhG,OAAO9b,KAAK01B,iBAAiBsB,EAAkB,CAACE,GAActQ,EAAKE,GAEvE7C,uBAAuB+S,EAAkBC,EAAkBnb,EAAQ8K,EAAKE,EAAO,IAC3E,MAAMsQ,EAAgB,CAClBjG,QAAS,wCACTzxB,MAAOwzB,EAAKmE,cAAc5B,YAAY,CAAEuB,iBAAkBA,EAAkBC,iBAAAA,EAAkBnb,OAAAA,KAElG,OAAO9b,KAAK01B,iBAAiBsB,EAAkB,CAACI,GAAgBxQ,EAAKE,GAEzE7C,sBAAsB+S,EAAkBC,EAAkBrQ,EAAKE,EAAO,IAClE,MAAMwQ,EAA6B,CAC/BnG,QAAS,0DACTzxB,MAAOuzB,EAAKsE,2BAA2B9B,YAAY,CAAEuB,iBAAkBA,EAAkBC,iBAAAA,KAE7F,OAAOj3B,KAAK01B,iBAAiBsB,EAAkB,CAACM,GAA6B1Q,EAAKE,GAUtF7C,uBAAuBI,EAAeqQ,EAAU9N,EAAKE,EAAO,IACxD,IAAI0Q,EACJ,GAAW,QAAP5Q,GAAgC,iBAARA,EAAkB,EAC1C,EAAI/J,EAAQsY,eAAen1B,KAAKy0B,SAAU,sEAC1C,MAAMgD,QAAsBz3B,KAAKk1B,SAAS7Q,EAAeqQ,EAAU5N,GAC7D4Q,EAA2B,iBAAR9Q,EAAmBA,EAAM,IAClD4Q,GAAU,EAAIhO,EAAWmO,cAAc9pB,KAAK+pB,MAAMH,EAAgBC,GAAY13B,KAAKy0B,eAGnF+C,EAAU5Q,EAEd,MAAMiR,QAAc73B,KAAKkV,KAAKmP,EAAeqQ,EAAU8C,EAAS1Q,GAC1DgR,EAAU1E,EAAK2E,MAAMv0B,OAAOq0B,GAAOp0B,SACzC,OAAOzD,KAAKg4B,YAAYF,EAAS93B,KAAKu0B,mBAAoBv0B,KAAKw0B,yBAEnEvQ,WAAWI,EAAeqQ,EAAU9N,EAAKE,EAAMmR,GAC3C,IAAIC,EACJ,GAAID,EACAC,EAAaD,MAEZ,CACD,MAAM,cAAElR,EAAa,SAAEC,SAAmBhnB,KAAKg1B,YAAY3Q,GAE3D6T,EAAa,CACTnR,cAAeA,EACfC,SAAUA,EACVH,cAJkB7mB,KAAKm4B,cAO/B,OAAO,EAAInF,EAAgBoF,uBAAuBp4B,KAAKk0B,QACjDl0B,KAAKq4B,WAAWhU,EAAeqQ,EAAU9N,EAAKE,EAAMoR,GACpDl4B,KAAKs4B,UAAUjU,EAAeqQ,EAAU9N,EAAKE,EAAMoR,GAE7DjU,gBAAgBI,EAAeqQ,EAAU9N,EAAKE,GAAM,cAAEC,EAAa,SAAEC,EAAQ,QAAEH,KAC3E,EAAIhK,EAAQ4G,UAAS,EAAIuP,EAAgBoF,uBAAuBp4B,KAAKk0B,SACrE,MAAMY,SAA2B90B,KAAKk0B,OAAOa,eAAe3qB,MAAMuZ,GAAYA,EAAQS,UAAYC,IAClG,IAAKyQ,EACD,MAAM,IAAIjyB,MAAM,0CAEpB,MAAMsY,GAAS,EAAI6X,EAAgBuF,eAAc,EAAIxF,EAAQnW,uBAAuBkY,EAAkB3Z,SAChGqd,EAAWrF,EAAUsF,SAASC,4BAC9B/R,EAAO+N,EAASvxB,KAAKikB,GAAQpnB,KAAKo0B,WAAW5L,QAAQpB,KACrD9C,GAAU,EAAIyO,EAAQ9T,aAAa0H,EAAMC,EAAKC,EAASC,EAAMC,EAAeC,IAC5E,UAAExC,EAAS,OAAEM,SAAiB9kB,KAAKk0B,OAAOoE,UAAUjU,EAAeC,GACnEqU,EAAe,CACjBxH,QAAS,4BACTzxB,MAAO,CACHg1B,SAAU5P,EAAO6B,KAAKxjB,KAAKikB,GAAQpnB,KAAKo0B,WAAWxL,UAAUxB,KAC7DN,KAAMhC,EAAOgC,OAGf8R,EAAoB54B,KAAKoC,SAASoB,OAAOm1B,GACzCE,EAAiBhd,EAAOid,MAAM1jB,WAAW0P,EAAO8B,IAAImS,KAAKjkB,WACzDkkB,EAAiBnd,EAAOid,MAAM1jB,WAAW0P,EAAOkC,UAAUlS,WAC1DmkB,GAAsB,EAAIjG,EAAgBkG,mBAAmB,CAAC,CAAE/d,OAAAA,EAAQ6L,SAAUgS,IAAmBlU,EAAO8B,IAAI9K,OAAQ+c,EAAgBL,GAC9I,OAAOpF,EAAK2E,MAAMtC,YAAY,CAC1B0D,UAAWP,EACXQ,cAAeH,EACf5R,WAAY,EAAC,EAAItM,EAAWM,YAAYmJ,EAAUA,cAG1DP,iBAAiBI,EAAeqQ,EAAU9N,EAAKE,GAAM,cAAEC,EAAa,SAAEC,EAAQ,QAAEH,KAC5E,EAAIhK,EAAQ4G,SAAQ,EAAIuP,EAAgBoF,uBAAuBp4B,KAAKk0B,SACpE,MAAMY,SAA2B90B,KAAKk0B,OAAOa,eAAe3qB,MAAMuZ,GAAYA,EAAQS,UAAYC,IAClG,IAAKyQ,EACD,MAAM,IAAIjyB,MAAM,0CAEpB,MAAMsY,GAAS,EAAI6X,EAAgBuF,eAAc,EAAIxF,EAAQnW,uBAAuBkY,EAAkB3Z,SAChGke,EAAS,CACXlI,QAAS,4BACTzxB,MAAO,CACHg1B,SAAUA,EACV5N,KAAMA,IAGRwS,EAAct5B,KAAKoC,SAASoB,OAAO61B,GACnCE,EAAW1d,EAAOid,MAAM1jB,WAAWwR,EAAImS,KAAKjkB,WAC5CskB,GAAgB,EAAIpG,EAAgBkG,mBAAmB,CAAC,CAAE/d,OAAAA,EAAQ6L,SAAAA,IAAaJ,EAAI9K,OAAQyd,GAC3FjV,GAAU,EAAI0O,EAAgB/T,aAAaqa,EAAaF,EAAevS,EAASE,IAChF,UAAEvC,EAAS,OAAEM,SAAiB9kB,KAAKk0B,OAAOmE,WAAWhU,EAAeC,GAC1E,OAAO8O,EAAK2E,MAAMtC,YAAY,CAC1B0D,UAAWrU,EAAOqU,UAClBC,cAAetU,EAAOsU,cACtB/R,WAAY,EAAC,EAAItM,EAAWM,YAAYmJ,EAAUA,eAI9D5lB,EAAQ0yB,sBAAwBA,+BC1VhCnwB,OAAOC,eAAexC,EAAS,aAAc,CAAEc,OAAO,IACtDd,EAAQ6jB,MAAQ7jB,EAAQ4jB,gBAAkB5jB,EAAQ46B,kBAAoB56B,EAAQ66B,uBAAoB,EAClG,MAAM1e,EAAa,EAAQ,MACrB2e,EAAW,EAAQ,MACnBC,EAAQ,EAAQ,MAChBC,EAAW,CACb,UACA,UACA,OACA,QACA,QACA,SACA,SACA,WACA,SACA,QACA,SACA,WACA,UACA,SACA,UACA,OACA,WACA,UACA,SACA,MACA,SACA,QACA,UACA,SACA,QACA,MACA,SACA,UACA,SACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,SACA,QACA,MACA,QACA,QACA,QACA,MACA,MACA,UACA,QACA,QACA,QACA,UACA,QACA,QACA,MACA,QACA,QACA,SACA,QACA,QACA,UACA,OACA,QACA,SACA,UACA,UACA,QACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,QACA,SACA,QACA,WACA,SACA,UACA,SACA,UACA,UACA,UACA,MACA,QACA,UACA,SACA,QACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,MACA,QACA,QACA,OACA,SACA,UACA,SACA,SACA,QACA,MACA,WACA,SACA,UACA,MACA,SACA,UACA,QACA,SACA,SACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,QACA,SACA,OACA,SACA,OACA,SACA,UACA,UACA,QACA,QACA,QACA,OACA,UACA,QACA,UACA,OACA,OACA,WACA,QACA,QACA,MACA,UACA,UACA,OACA,SACA,SACA,SACA,MACA,SACA,UACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,SACA,UACA,SACA,OACA,SACA,QACA,SACA,SACA,UACA,QACA,OACA,QACA,UACA,OACA,SACA,SACA,UACA,SACA,UACA,MACA,OACA,OACA,UACA,OACA,QACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,SACA,MACA,MACA,UACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,WACA,SACA,SACA,QACA,UACA,QACA,QACA,SACA,QACA,SACA,UACA,QACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,MACA,WACA,OACA,SACA,QACA,OACA,UACA,QACA,QACA,SACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,UACA,UACA,UACA,MACA,SACA,OACA,QACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,SACA,MACA,UACA,QACA,WACA,SACA,SACA,QACA,UACA,OACA,UACA,SACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,WACA,SACA,QACA,UACA,SACA,QACA,OACA,QACA,QACA,SACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,SACA,SACA,UACA,UACA,QACA,QACA,QACA,WACA,SACA,UACA,OACA,QACA,QACA,OACA,UACA,OACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,UACA,SACA,QACA,QACA,UACA,OACA,SACA,OACA,OACA,UACA,QACA,SACA,UACA,OACA,UACA,QACA,SACA,UACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,OACA,SACA,QACA,UACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,UACA,QACA,QACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,SACA,UACA,SACA,QACA,MACA,UACA,OACA,UACA,MACA,WACA,UACA,UACA,UACA,QACA,UACA,SACA,OACA,QACA,MACA,SACA,OACA,QACA,SACA,SACA,OACA,WACA,OACA,MACA,OACA,SACA,SACA,SACA,WACA,SACA,UACA,WACA,WACA,OACA,UACA,SACA,OACA,SACA,QACA,UACA,SACA,SACA,SACA,UACA,OACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,SACA,SACA,OACA,UACA,UACA,SACA,SACA,UACA,SACA,SACA,UACA,OACA,UACA,QACA,OACA,SACA,OACA,SACA,UACA,UACA,UACA,SACA,WACA,SACA,OACA,WACA,WACA,UACA,OACA,UACA,WACA,UACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,MACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,OACA,SACA,OACA,QACA,SACA,QACA,UACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,SACA,OACA,QACA,OACA,QACA,UACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,OACA,OACA,UACA,UACA,OACA,OACA,UACA,SACA,MACA,QACA,SACA,QACA,QACA,WACA,UACA,UACA,WACA,WACA,QACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,QACA,SACA,QACA,MACA,UACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,WACA,UACA,QACA,QACA,MACA,QACA,QACA,UACA,QACA,QACA,SACA,QACA,UACA,SACA,UACA,SACA,WACA,OACA,QACA,SACA,QACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,QACA,QACA,OACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,QACA,MACA,UACA,SACA,OACA,UACA,OACA,QACA,QACA,OACA,QACA,OACA,SACA,SACA,MACA,QACA,UACA,OACA,UACA,MACA,QACA,SACA,UACA,QACA,WACA,UACA,WACA,UACA,MACA,OACA,OACA,SACA,QACA,WACA,QACA,QACA,MACA,QACA,UACA,QACA,SACA,OACA,OACA,SACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,QACA,SACA,OACA,MACA,UACA,MACA,OACA,QACA,QACA,OACA,SACA,OACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,MACA,OACA,QACA,MACA,OACA,OACA,SACA,OACA,OACA,QACA,SACA,SACA,OACA,UACA,QACA,UACA,SACA,SACA,QACA,MACA,UACA,QACA,WACA,QACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,OACA,MACA,QACA,UACA,OACA,SACA,SACA,OACA,SACA,UACA,OACA,MACA,SACA,UACA,SACA,SACA,UACA,MACA,OACA,OACA,SACA,QACA,OACA,UACA,SACA,QACA,SACA,UACA,UACA,QACA,QACA,OACA,SACA,SACA,UACA,OACA,OACA,OACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,UACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,MACA,MACA,QACA,OACA,OACA,SACA,UACA,OACA,QACA,SACA,OACA,QACA,UACA,MACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,WACA,SACA,QACA,SACA,OACA,MACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,UACA,QACA,SACA,OACA,OACA,UACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,QACA,WACA,OACA,QACA,OACA,QACA,MACA,OACA,QACA,SACA,QACA,UACA,SACA,OACA,SACA,QACA,OACA,UACA,SACA,MACA,OACA,OACA,WACA,OACA,SACA,MACA,UACA,UACA,QACA,UACA,UACA,SACA,SACA,SACA,UACA,UACA,OACA,UACA,SACA,WACA,QACA,WACA,SACA,WACA,SACA,UACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,QACA,WACA,QACA,UACA,SACA,SACA,SACA,UACA,UACA,SACA,WACA,OACA,SACA,SACA,UACA,OACA,SACA,UACA,QACA,OACA,QACA,SACA,SACA,MACA,OACA,UACA,QACA,QACA,QACA,MACA,OACA,OACA,UACA,MACA,QACA,QACA,OACA,SACA,SACA,OACA,OACA,WACA,OACA,OACA,UACA,MACA,OACA,MACA,SACA,OACA,UACA,OACA,MACA,UACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,MACA,QACA,QACA,SACA,OACA,OACA,OACA,WACA,SACA,QACA,QACA,QACA,QACA,UACA,OACA,MACA,OACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,UACA,OACA,MACA,QACA,SACA,UACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,UACA,UACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,OACA,UACA,QACA,OACA,QACA,SACA,OACA,OACA,UACA,OACA,SACA,OACA,QACA,QACA,UACA,SACA,QACA,QACA,SACA,SACA,UACA,MACA,QACA,SACA,OACA,OACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,QACA,UACA,SACA,QACA,SACA,QACA,SACA,SACA,SACA,WACA,OACA,OACA,SACA,QACA,WACA,OACA,SACA,SACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,QACA,QACA,SACA,OACA,SACA,SACA,UACA,OACA,QACA,QACA,QACA,QACA,OACA,UACA,QACA,SACA,SACA,WACA,OACA,UACA,QACA,OACA,UACA,QACA,SACA,UACA,SACA,SACA,OACA,UACA,MACA,QACA,UACA,SACA,QACA,SACA,MACA,SACA,UACA,SACA,UACA,QACA,OACA,QACA,OACA,UACA,WACA,SACA,SACA,QACA,WACA,QACA,OACA,QACA,OACA,SACA,OACA,WACA,SACA,SACA,WACA,QACA,OACA,SACA,SACA,UACA,OACA,QACA,OACA,SACA,SACA,QACA,SACA,SACA,OACA,OACA,OACA,WACA,UACA,UACA,SACA,QACA,OACA,MACA,UACA,UACA,QACA,OACA,OACA,OACA,QACA,QACA,QACA,UACA,SACA,SACA,QACA,OACA,UACA,OACA,UACA,SACA,QACA,MACA,UACA,SACA,QACA,MACA,MACA,OACA,SACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,OACA,MACA,QACA,SACA,QACA,MACA,OACA,MACA,QACA,UACA,OACA,OACA,MACA,QACA,SACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,QACA,SACA,WACA,SACA,UACA,QACA,UACA,QACA,SACA,UACA,OACA,OACA,OACA,MACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,SACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,SACA,OACA,SACA,QACA,OACA,QACA,OACA,UACA,SACA,UACA,QACA,OACA,UACA,QACA,SACA,OACA,UACA,UACA,MACA,UACA,SACA,SACA,SACA,UACA,SACA,SACA,MACA,QACA,QACA,SACA,WACA,QACA,SACA,UACA,QACA,MACA,SACA,OACA,QACA,OACA,UACA,OACA,SACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,OACA,OACA,UACA,UACA,WACA,WACA,OACA,SACA,UACA,UACA,SACA,QACA,WACA,SACA,UACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,UACA,UACA,UACA,SACA,UACA,UACA,UACA,QACA,WACA,UACA,UACA,QACA,UACA,SACA,UACA,OACA,OACA,QACA,UACA,QACA,QACA,QACA,WACA,SACA,UACA,QACA,OACA,MACA,SACA,UACA,UACA,UACA,UACA,WACA,QACA,OACA,OACA,QACA,SACA,UACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,SACA,QACA,MACA,QACA,QACA,OACA,SACA,QACA,UACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,OACA,SACA,WACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,WACA,SACA,WACA,WACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,MACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,SACA,UACA,OACA,SACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,MACA,SACA,UACA,OACA,OACA,QACA,SACA,QACA,OACA,SACA,OACA,SACA,OACA,UACA,UACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,UACA,QACA,SACA,SACA,UACA,WACA,WACA,QACA,QACA,SACA,SACA,QACA,MACA,SACA,SACA,OACA,SACA,SACA,UACA,WACA,OACA,OACA,UACA,SACA,OACA,UACA,SACA,QACA,WACA,SACA,UACA,UACA,SACA,QACA,QACA,SACA,QACA,UACA,QACA,OACA,QACA,UACA,SACA,QACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,QACA,WACA,QACA,SACA,QACA,UACA,MACA,UACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,QACA,SACA,UACA,SACA,QACA,OACA,QACA,SACA,UACA,MACA,OACA,QACA,SACA,MACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,UACA,QACA,QACA,SACA,OACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,OACA,QACA,UACA,QACA,WACA,QACA,UACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,UACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,SACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,SACA,SACA,MACA,SACA,UACA,WACA,SACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,WACA,SACA,SACA,SACA,WACA,UACA,QACA,UACA,QACA,UACA,SACA,SACA,UACA,OACA,SACA,SACA,QACA,UACA,OACA,SACA,MACA,QACA,SACA,QACA,SACA,UACA,OACA,UACA,QACA,WACA,WACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,SACA,UACA,QACA,SACA,QACA,SACA,MACA,OACA,SACA,OACA,OACA,OACA,SACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,MACA,SACA,SACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,UACA,QACA,SACA,QACA,QACA,UACA,SACA,OACA,QACA,OACA,SACA,OACA,OACA,MACA,QACA,SACA,QACA,QACA,UACA,QACA,UACA,MACA,WACA,SACA,QACA,SACA,WACA,OACA,SACA,UACA,OACA,QACA,MACA,QACA,SACA,QACA,UACA,WACA,OACA,QACA,UACA,SACA,QACA,OACA,MACA,QACA,QACA,UACA,SACA,QACA,WACA,OACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,UACA,OACA,OACA,SACA,UACA,QACA,OACA,QACA,UACA,QACA,QACA,MACA,OACA,UACA,SACA,OACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,OACA,QACA,MACA,OACA,UACA,OACA,WACA,SACA,UACA,QACA,UACA,QACA,OACA,SACA,SACA,UACA,UACA,SACA,OACA,WACA,UACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,MACA,OACA,SACA,UACA,QACA,UACA,SACA,SACA,QACA,QACA,SACA,QACA,MACA,SACA,QACA,UACA,OACA,QACA,UACA,SACA,SACA,UACA,QACA,OACA,SACA,UACA,OACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,UACA,UACA,SACA,UACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,UACA,SACA,OACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,OACA,UACA,OACA,UACA,OACA,OACA,QACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,UACA,MACA,UACA,UACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,QACA,OACA,QACA,OAC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EF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINN,IAAK,CACHp5C,IAAK,EACL05C,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,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mGCrwBR,IAAIn8D,EAAQ1gF,EACRivF,EAAK,EAAQ,MACbi8D,EAAY,EAAQ,MACpBC,EAAW,EAAQ,MAEvBzqE,EAAM77D,OAASqmI,EACfxqE,EAAMr+C,QAAU8oH,EAAS9oH,QACzBq+C,EAAM0qE,MAAQD,EAASC,MACvB1qE,EAAM/gE,MAAQwrI,EAASxrI,MACvB+gE,EAAM97E,OAASumJ,EAASvmJ,OA6BxB87E,EAAMy6D,OA1BN,SAAgBnzE,EAAKmoB,EAAGn9E,GACtB,IAAIupI,EAAM,IAAI10I,MAAMoH,KAAK6gF,IAAI9nB,EAAIsqB,YAAat/E,GAAQ,GACtDupI,EAAIn5F,KAAK,GAKT,IAHA,IAAIg4C,EAAK,GAAMjL,EAAI,EACftwD,EAAImoC,EAAIgV,QAEH/6E,EAAI,EAAGA,EAAIs6I,EAAIr6I,OAAQD,IAAK,CACnC,IAAIuxE,EACAhqD,EAAMqW,EAAEw+D,MAAMjD,EAAK,GACnBv7D,EAAEg/D,SAEFrrB,EADEhqD,GAAO4xE,GAAM,GAAK,GACfA,GAAM,GAAK5xE,EAEZA,EACNqW,EAAEw9D,MAAM7pB,IAERA,EAAI,EAGN+oE,EAAIt6I,GAAKuxE,EACT3zC,EAAE68D,OAAO,GAGX,OAAO6/C,GA2DT77D,EAAM06D,OAtDN,SAAgB0E,EAAIhgH,GAClB,IAAI49G,EAAM,CACR,GACA,IAGFoC,EAAKA,EAAG9iE,QACRl9C,EAAKA,EAAGk9C,QAIR,IAHA,IAEIquE,EAFAC,EAAK,EACLC,EAAK,EAEFzL,EAAG1gD,MAAMksD,GAAM,GAAKxrH,EAAGs/D,MAAMmsD,GAAM,GAAG,CAE3C,IAMI7H,EAYAC,EAlBA6H,EAAO1L,EAAGzhD,MAAM,GAAKitD,EAAM,EAC3BG,EAAO3rH,EAAGu+D,MAAM,GAAKktD,EAAM,EACnB,IAARC,IACFA,GAAO,GACG,IAARC,IACFA,GAAO,GAGP/H,EADgB,IAAP,EAAN8H,GACE,EAGO,IADZH,EAAMvL,EAAGzhD,MAAM,GAAKitD,EAAM,IACF,IAAPD,GAAqB,IAARI,EAGvBD,GAFCA,EAIV9N,EAAI,GAAG35I,KAAK2/I,GAIVC,EADgB,IAAP,EAAN8H,GACE,EAGO,IADZJ,EAAMvrH,EAAGu+D,MAAM,GAAKktD,EAAM,IACF,IAAPF,GAAqB,IAARG,EAGvBC,GAFCA,EAIV/N,EAAI,GAAG35I,KAAK4/I,GAGR,EAAI2H,IAAO5H,EAAK,IAClB4H,EAAK,EAAIA,GACP,EAAIC,IAAO5H,EAAK,IAClB4H,EAAK,EAAIA,GACXzL,EAAGpjD,OAAO,GACV58D,EAAG48D,OAAO,GAGZ,OAAOghD,GAWTh9D,EAAM6pE,eAPN,SAAwB3nJ,EAAK6U,EAAMi0I,GACjC,IAAI/qJ,EAAM,IAAM8W,EAChB7U,EAAID,UAAU8U,GAAQ,WACpB,YAAqBhW,IAAdL,KAAKT,GAAqBS,KAAKT,GACpCS,KAAKT,GAAO+qJ,EAASljJ,KAAKpH,QAShCs/E,EAAMwoE,WAJN,SAAoBpiJ,GAClB,MAAwB,iBAAVA,EAAqB45E,EAAMr+C,QAAQv7B,EAAO,OACtDA,GAOJ45E,EAAMspE,UAHN,SAAmBljJ,GACjB,OAAO,IAAImoF,EAAGnoF,EAAO,MAAO,8BCnH9B,SAAW7G,EAAQD,GACjB,aAGA,SAAS6kB,EAAQ7T,EAAKwX,GACpB,IAAKxX,EAAK,MAAM,IAAI/M,MAAMukB,GAAO,oBAKnC,SAASomE,EAAUC,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIE,EAAW,aACfA,EAASrsF,UAAYmsF,EAAUnsF,UAC/BksF,EAAKlsF,UAAY,IAAIqsF,EACrBH,EAAKlsF,UAAUK,YAAc6rF,EAK/B,SAASI,EAAIlI,EAAQ9zD,EAAMi8D,GACzB,GAAID,EAAGE,KAAKpI,GACV,OAAOA,EAGT3lF,KAAKguF,SAAW,EAChBhuF,KAAK06B,MAAQ,KACb16B,KAAKc,OAAS,EAGdd,KAAKiuF,IAAM,KAEI,OAAXtI,IACW,OAAT9zD,GAA0B,OAATA,IACnBi8D,EAASj8D,EACTA,EAAO,IAGT7xB,KAAKkuF,MAAMvI,GAAU,EAAG9zD,GAAQ,GAAIi8D,GAAU,OAYlD,IAAIr8E,EATkB,iBAAX5S,EACTA,EAAOD,QAAUivF,EAEjBjvF,EAAQivF,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGM,SAAW,GAGd,IAEI18E,EADoB,oBAAXwF,aAAmD,IAAlBA,OAAOxF,OACxCwF,OAAOxF,OAEP,eAEX,MAAOkG,IAgIT,SAASy2E,EAAex7E,EAAQ4nB,GAC9B,IAAIqF,EAAIjtB,EAAO6C,WAAW+kB,GAE1B,OAAIqF,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASwuD,EAAcz7E,EAAQ07E,EAAY9zD,GACzC,IAAI5V,EAAIwpE,EAAcx7E,EAAQ4nB,GAI9B,OAHIA,EAAQ,GAAK8zD,IACf1pE,GAAKwpE,EAAcx7E,EAAQ4nB,EAAQ,IAAM,GAEpC5V,EA8CT,SAAS2pE,EAAWh2E,EAAK5F,EAAO1M,EAAKu9B,GAGnC,IAFA,IAAI5e,EAAI,EACJ1e,EAAM2H,KAAKwC,IAAIkI,EAAIzX,OAAQmF,GACtBpF,EAAI8R,EAAO9R,EAAIqF,EAAKrF,IAAK,CAChC,IAAIg/B,EAAItnB,EAAI9C,WAAW5U,GAAK,GAE5B+jB,GAAK4e,EAIH5e,GADEib,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAOjb,EAnNTipE,EAAGE,KAAO,SAAennB,GACvB,OAAIA,aAAeinB,GAIJ,OAARjnB,GAA+B,iBAARA,GAC5BA,EAAIhlE,YAAYusF,WAAaN,EAAGM,UAAY1nF,MAAMC,QAAQkgE,EAAIlsC,QAGlEmzD,EAAGa,IAAM,SAAc3rF,EAAMC,GAC3B,OAAID,EAAKmrC,IAAIlrC,GAAS,EAAUD,EACzBC,GAGT6qF,EAAGx9E,IAAM,SAActN,EAAMC,GAC3B,OAAID,EAAKmrC,IAAIlrC,GAAS,EAAUD,EACzBC,GAGT6qF,EAAGtsF,UAAU2sF,MAAQ,SAAevI,EAAQ9zD,EAAMi8D,GAChD,GAAsB,iBAAXnI,EACT,OAAO3lF,KAAK2uF,YAAYhJ,EAAQ9zD,EAAMi8D,GAGxC,GAAsB,iBAAXnI,EACT,OAAO3lF,KAAK4uF,WAAWjJ,EAAQ9zD,EAAMi8D,GAG1B,QAATj8D,IACFA,EAAO,IAETpO,EAAOoO,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIlf,EAAQ,EACM,OAFlBgzE,EAASA,EAAOjyE,WAAWyI,QAAQ,OAAQ,KAEhC,KACTxJ,IACA3S,KAAKguF,SAAW,GAGdr7E,EAAQgzE,EAAO7kF,SACJ,KAAT+wB,EACF7xB,KAAK6uF,UAAUlJ,EAAQhzE,EAAOm7E,IAE9B9tF,KAAK8uF,WAAWnJ,EAAQ9zD,EAAMlf,GACf,OAAXm7E,GACF9tF,KAAK4uF,WAAW5uF,KAAKihC,UAAWpP,EAAMi8D,MAM9CD,EAAGtsF,UAAUotF,YAAc,SAAsBhJ,EAAQ9zD,EAAMi8D,GACzDnI,EAAS,IACX3lF,KAAKguF,SAAW,EAChBrI,GAAUA,GAERA,EAAS,UACX3lF,KAAK06B,MAAQ,CAAW,SAATirD,GACf3lF,KAAKc,OAAS,GACL6kF,EAAS,kBAClB3lF,KAAK06B,MAAQ,CACF,SAATirD,EACCA,EAAS,SAAa,UAEzB3lF,KAAKc,OAAS,IAEd2iB,EAAOkiE,EAAS,kBAChB3lF,KAAK06B,MAAQ,CACF,SAATirD,EACCA,EAAS,SAAa,SACvB,GAEF3lF,KAAKc,OAAS,GAGD,OAAXgtF,GAGJ9tF,KAAK4uF,WAAW5uF,KAAKihC,UAAWpP,EAAMi8D,IAGxCD,EAAGtsF,UAAUqtF,WAAa,SAAqBjJ,EAAQ9zD,EAAMi8D,GAG3D,GADArqE,EAAgC,iBAAlBkiE,EAAO7kF,QACjB6kF,EAAO7kF,QAAU,EAGnB,OAFAd,KAAK06B,MAAQ,CAAE,GACf16B,KAAKc,OAAS,EACPd,KAGTA,KAAKc,OAAS+M,KAAK2xC,KAAKmmC,EAAO7kF,OAAS,GACxCd,KAAK06B,MAAQ,IAAIj0B,MAAMzG,KAAKc,QAC5B,IAAK,IAAID,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAC/Bb,KAAK06B,MAAM75B,GAAK,EAGlB,IAAIwG,EAAG0nF,EACHn6E,EAAM,EACV,GAAe,OAAXk5E,EACF,IAAKjtF,EAAI8kF,EAAO7kF,OAAS,EAAGuG,EAAI,EAAGxG,GAAK,EAAGA,GAAK,EAC9CkuF,EAAIpJ,EAAO9kF,GAAM8kF,EAAO9kF,EAAI,IAAM,EAAM8kF,EAAO9kF,EAAI,IAAM,GACzDb,KAAK06B,MAAMrzB,IAAO0nF,GAAKn6E,EAAO,SAC9B5U,KAAK06B,MAAMrzB,EAAI,GAAM0nF,IAAO,GAAKn6E,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPvN,UAGC,GAAe,OAAXymF,EACT,IAAKjtF,EAAI,EAAGwG,EAAI,EAAGxG,EAAI8kF,EAAO7kF,OAAQD,GAAK,EACzCkuF,EAAIpJ,EAAO9kF,GAAM8kF,EAAO9kF,EAAI,IAAM,EAAM8kF,EAAO9kF,EAAI,IAAM,GACzDb,KAAK06B,MAAMrzB,IAAO0nF,GAAKn6E,EAAO,SAC9B5U,KAAK06B,MAAMrzB,EAAI,GAAM0nF,IAAO,GAAKn6E,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPvN,KAIN,OAAOrH,KAAKuhG,SAyBd1T,EAAGtsF,UAAUstF,UAAY,SAAoBlJ,EAAQhzE,EAAOm7E,GAE1D9tF,KAAKc,OAAS+M,KAAK2xC,MAAMmmC,EAAO7kF,OAAS6R,GAAS,GAClD3S,KAAK06B,MAAQ,IAAIj0B,MAAMzG,KAAKc,QAC5B,IAAK,IAAID,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAC/Bb,KAAK06B,MAAM75B,GAAK,EAIlB,IAGIkuF,EAHAn6E,EAAM,EACNvN,EAAI,EAGR,GAAe,OAAXymF,EACF,IAAKjtF,EAAI8kF,EAAO7kF,OAAS,EAAGD,GAAK8R,EAAO9R,GAAK,EAC3CkuF,EAAIV,EAAa1I,EAAQhzE,EAAO9R,IAAM+T,EACtC5U,KAAK06B,MAAMrzB,IAAU,SAAJ0nF,EACbn6E,GAAO,IACTA,GAAO,GACPvN,GAAK,EACLrH,KAAK06B,MAAMrzB,IAAM0nF,IAAM,IAEvBn6E,GAAO,OAKX,IAAK/T,GADa8kF,EAAO7kF,OAAS6R,GACX,GAAM,EAAIA,EAAQ,EAAIA,EAAO9R,EAAI8kF,EAAO7kF,OAAQD,GAAK,EAC1EkuF,EAAIV,EAAa1I,EAAQhzE,EAAO9R,IAAM+T,EACtC5U,KAAK06B,MAAMrzB,IAAU,SAAJ0nF,EACbn6E,GAAO,IACTA,GAAO,GACPvN,GAAK,EACLrH,KAAK06B,MAAMrzB,IAAM0nF,IAAM,IAEvBn6E,GAAO,EAKb5U,KAAKuhG,SA2BP1T,EAAGtsF,UAAUutF,WAAa,SAAqBnJ,EAAQ9zD,EAAMlf,GAE3D3S,KAAK06B,MAAQ,CAAE,GACf16B,KAAKc,OAAS,EAGd,IAAK,IAAImuF,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWr9D,EAClEo9D,IAEFA,IACAC,EAAWA,EAAUr9D,EAAQ,EAO7B,IALA,IAAI0tC,EAAQomB,EAAO7kF,OAAS6R,EACxByV,EAAMm3C,EAAQ0vB,EACdhpF,EAAM4H,KAAKwC,IAAIkvD,EAAOA,EAAQn3C,GAAOzV,EAErCgoB,EAAO,EACF95B,EAAI8R,EAAO9R,EAAIoF,EAAKpF,GAAKouF,EAChCt0D,EAAO4zD,EAAU5I,EAAQ9kF,EAAGA,EAAIouF,EAASp9D,GAEzC7xB,KAAKmvF,MAAMD,GACPlvF,KAAK06B,MAAM,GAAKC,EAAO,SACzB36B,KAAK06B,MAAM,IAAMC,EAEjB36B,KAAKovF,OAAOz0D,GAIhB,GAAY,IAARvS,EAAW,CACb,IAAIgmB,EAAM,EAGV,IAFAzT,EAAO4zD,EAAU5I,EAAQ9kF,EAAG8kF,EAAO7kF,OAAQ+wB,GAEtChxB,EAAI,EAAGA,EAAIunB,EAAKvnB,IACnButC,GAAOvc,EAGT7xB,KAAKmvF,MAAM/gD,GACPpuC,KAAK06B,MAAM,GAAKC,EAAO,SACzB36B,KAAK06B,MAAM,IAAMC,EAEjB36B,KAAKovF,OAAOz0D,GAIhB36B,KAAKuhG,SAGP1T,EAAGtsF,UAAUiZ,KAAO,SAAei0E,GACjCA,EAAK/zD,MAAQ,IAAIj0B,MAAMzG,KAAKc,QAC5B,IAAK,IAAID,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAC/B4tF,EAAK/zD,MAAM75B,GAAKb,KAAK06B,MAAM75B,GAE7B4tF,EAAK3tF,OAASd,KAAKc,OACnB2tF,EAAKT,SAAWhuF,KAAKguF,SACrBS,EAAKR,IAAMjuF,KAAKiuF,KAGlBJ,EAAGtsF,UAAUq6E,MAAQ,WACnB,IAAIh3D,EAAI,IAAIipE,EAAG,MAEf,OADA7tF,KAAKwa,KAAKoK,GACHA,GAGTipE,EAAGtsF,UAAU+tF,QAAU,SAAkBp2E,GACvC,KAAOlZ,KAAKc,OAASoY,GACnBlZ,KAAK06B,MAAM16B,KAAKc,UAAY,EAE9B,OAAOd,MAIT6tF,EAAGtsF,UAAUggG,MAAQ,WACnB,KAAOvhG,KAAKc,OAAS,GAAqC,IAAhCd,KAAK06B,MAAM16B,KAAKc,OAAS,IACjDd,KAAKc,SAEP,OAAOd,KAAKuvF,aAGd1B,EAAGtsF,UAAUguF,UAAY,WAKvB,OAHoB,IAAhBvvF,KAAKc,QAAkC,IAAlBd,KAAK06B,MAAM,KAClC16B,KAAKguF,SAAW,GAEXhuF,MAGT6tF,EAAGtsF,UAAUkuF,QAAU,WACrB,OAAQzvF,KAAKiuF,IAAM,UAAY,SAAWjuF,KAAK0T,SAAS,IAAM,KAiChE,IAAIg8E,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAY7wF,EAAM4nE,EAAKloD,GAC9BA,EAAIsvE,SAAWpnB,EAAIonB,SAAWhvF,EAAKgvF,SACnC,IAAI9nF,EAAOlH,EAAK8B,OAAS8lE,EAAI9lE,OAAU,EACvC4d,EAAI5d,OAASoF,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIgK,EAAoB,EAAhBlR,EAAK07B,MAAM,GACfnuB,EAAmB,EAAfq6D,EAAIlsC,MAAM,GACd9V,EAAI1U,EAAI3D,EAERsF,EAAS,SAAJ+S,EACLkrE,EAASlrE,EAAI,SAAa,EAC9BlG,EAAIgc,MAAM,GAAK7oB,EAEf,IAAK,IAAI4sB,EAAI,EAAGA,EAAIv4B,EAAKu4B,IAAK,CAM5B,IAHA,IAAIsxD,EAASD,IAAU,GACnBE,EAAgB,SAARF,EACRG,EAAOpiF,KAAKwC,IAAIouB,EAAGmoC,EAAI9lE,OAAS,GAC3BuG,EAAIwG,KAAK6gF,IAAI,EAAGjwD,EAAIz/B,EAAK8B,OAAS,GAAIuG,GAAK4oF,EAAM5oF,IAAK,CAC7D,IAAIxG,EAAK49B,EAAIp3B,EAAK,EAIlB0oF,IADAnrE,GAFA1U,EAAoB,EAAhBlR,EAAK07B,MAAM75B,KACf0L,EAAmB,EAAfq6D,EAAIlsC,MAAMrzB,IACF2oF,GACG,SAAa,EAC5BA,EAAY,SAAJprE,EAEVlG,EAAIgc,MAAM+D,GAAa,EAARuxD,EACfF,EAAiB,EAATC,EAQV,OANc,IAAVD,EACFpxE,EAAIgc,MAAM+D,GAAa,EAARqxD,EAEfpxE,EAAI5d,SAGC4d,EAAI6iF,QAzlBb1T,EAAGtsF,UAAUmS,SAAW,SAAmBme,EAAMoQ,GAI/C,IAAIvjB,EACJ,GAHAujB,EAAoB,EAAVA,GAAe,EAGZ,MAJbpQ,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCnT,EAAM,GAGN,IAFA,IAAI9J,EAAM,EACNk7E,EAAQ,EACHjvF,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAAK,CACpC,IAAIkuF,EAAI/uF,KAAK06B,MAAM75B,GACf85B,GAA+B,UAArBo0D,GAAKn6E,EAAOk7E,IAAmBp8E,SAAS,IAGpDgL,EADY,IADdoxE,EAASf,IAAO,GAAKn6E,EAAQ,WACV/T,IAAMb,KAAKc,OAAS,EAC/B4uF,EAAM,EAAI/0D,EAAK75B,QAAU65B,EAAOjc,EAEhCic,EAAOjc,GAEf9J,GAAO,IACI,KACTA,GAAO,GACP/T,KAMJ,IAHc,IAAVivF,IACFpxE,EAAMoxE,EAAMp8E,SAAS,IAAMgL,GAEtBA,EAAI5d,OAASmhC,GAAY,GAC9BvjB,EAAM,IAAMA,EAKd,OAHsB,IAAlB1e,KAAKguF,WACPtvE,EAAM,IAAMA,GAEPA,EAGT,GAAImT,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIq+D,EAAYP,EAAW99D,GAEvBs+D,EAAYP,EAAW/9D,GAC3BnT,EAAM,GACN,IAAImhB,EAAI7/B,KAAK47E,QAEb,IADA/7C,EAAEmuD,SAAW,GACLnuD,EAAEmD,UAAU,CAClB,IAAIpe,EAAIib,EAAEs9D,KAAKhN,GAAWz8E,SAASme,GAMjCnT,GALFmhB,EAAIA,EAAEwwD,MAAMF,IAELntD,SAGCpe,EAAIlG,EAFJgxE,EAAMQ,EAAYtrE,EAAE9jB,QAAU8jB,EAAIlG,EAQ5C,IAHI1e,KAAKgjC,WACPtkB,EAAM,IAAMA,GAEPA,EAAI5d,OAASmhC,GAAY,GAC9BvjB,EAAM,IAAMA,EAKd,OAHsB,IAAlB1e,KAAKguF,WACPtvE,EAAM,IAAMA,GAEPA,EAGT+E,GAAO,EAAO,oCAGhBoqE,EAAGtsF,UAAUuT,SAAW,WACtB,IAAIw7E,EAAMtwF,KAAK06B,MAAM,GASrB,OARoB,IAAhB16B,KAAKc,OACPwvF,GAAuB,SAAhBtwF,KAAK06B,MAAM,GACO,IAAhB16B,KAAKc,QAAkC,IAAlBd,KAAK06B,MAAM,GAEzC41D,GAAO,iBAAoC,SAAhBtwF,KAAK06B,MAAM,GAC7B16B,KAAKc,OAAS,GACvB2iB,GAAO,EAAO,8CAEU,IAAlBzjB,KAAKguF,UAAmBsC,EAAMA,GAGxCzC,EAAGtsF,UAAU+F,OAAS,WACpB,OAAOtH,KAAK0T,SAAS,KAGvBm6E,EAAGtsF,UAAUgvF,SAAW,SAAmBzC,EAAQhtF,GAEjD,OADA2iB,OAAyB,IAAXhS,GACPzR,KAAKwwF,YAAY/+E,EAAQq8E,EAAQhtF,IAG1C+sF,EAAGtsF,UAAU0/B,QAAU,SAAkB6sD,EAAQhtF,GAC/C,OAAOd,KAAKwwF,YAAY/pF,MAAOqnF,EAAQhtF,IAGzC+sF,EAAGtsF,UAAUivF,YAAc,SAAsBC,EAAW3C,EAAQhtF,GAClE,IAAI2Z,EAAaza,KAAKya,aAClBi2E,EAAY5vF,GAAU+M,KAAK6gF,IAAI,EAAGj0E,GACtCgJ,EAAOhJ,GAAci2E,EAAW,yCAChCjtE,EAAOitE,EAAY,EAAG,+BAEtB1wF,KAAKuhG,QACL,IAGIh1F,EAAG1L,EAHHgnG,EAA0B,OAAX/Z,EACfx/E,EAAM,IAAImiF,EAAUC,GAGpBuK,EAAIj7F,KAAK47E,QACb,GAAKisB,EAYE,CACL,IAAKhnG,EAAI,GAAIo6F,EAAEj4D,SAAUniC,IACvB0L,EAAI0uF,EAAEgC,MAAM,KACZhC,EAAEK,OAAO,GAEThtF,EAAIzN,GAAK0L,EAGX,KAAO1L,EAAI6vF,EAAW7vF,IACpByN,EAAIzN,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAI6vF,EAAYj2E,EAAY5Z,IACtCyN,EAAIzN,GAAK,EAGX,IAAKA,EAAI,GAAIo6F,EAAEj4D,SAAUniC,IACvB0L,EAAI0uF,EAAEgC,MAAM,KACZhC,EAAEK,OAAO,GAEThtF,EAAIoiF,EAAY7vF,EAAI,GAAK0L,EAe7B,OAAO+B,GAGLT,KAAKkjF,MACPlD,EAAGtsF,UAAUyvF,WAAa,SAAqBjC,GAC7C,OAAO,GAAKlhF,KAAKkjF,MAAMhC,IAGzBlB,EAAGtsF,UAAUyvF,WAAa,SAAqBjC,GAC7C,IAAI3hE,EAAI2hE,EACJnqE,EAAI,EAiBR,OAhBIwI,GAAK,OACPxI,GAAK,GACLwI,KAAO,IAELA,GAAK,KACPxI,GAAK,EACLwI,KAAO,GAELA,GAAK,IACPxI,GAAK,EACLwI,KAAO,GAELA,GAAK,IACPxI,GAAK,EACLwI,KAAO,GAEFxI,EAAIwI,GAIfygE,EAAGtsF,UAAU0vF,UAAY,SAAoBlC,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAI3hE,EAAI2hE,EACJnqE,EAAI,EAoBR,OAnBqB,IAAZ,KAAJwI,KACHxI,GAAK,GACLwI,KAAO,IAEU,IAAV,IAAJA,KACHxI,GAAK,EACLwI,KAAO,GAES,IAAT,GAAJA,KACHxI,GAAK,EACLwI,KAAO,GAES,IAAT,EAAJA,KACHxI,GAAK,EACLwI,KAAO,GAES,IAAT,EAAJA,IACHxI,IAEKA,GAITipE,EAAGtsF,UAAU2vF,UAAY,WACvB,IAAInC,EAAI/uF,KAAK06B,MAAM16B,KAAKc,OAAS,GAC7BgR,EAAK9R,KAAKgxF,WAAWjC,GACzB,OAA2B,IAAnB/uF,KAAKc,OAAS,GAAUgR,GAiBlC+7E,EAAGtsF,UAAU4vF,SAAW,WACtB,GAAInxF,KAAKgjC,SAAU,OAAO,EAG1B,IADA,IAAIpe,EAAI,EACC/jB,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAAK,CACpC,IAAI0L,EAAIvM,KAAKixF,UAAUjxF,KAAK06B,MAAM75B,IAElC,GADA+jB,GAAKrY,EACK,KAANA,EAAU,MAEhB,OAAOqY,GAGTipE,EAAGtsF,UAAUkZ,WAAa,WACxB,OAAO5M,KAAK2xC,KAAKx/C,KAAKkxF,YAAc,IAGtCrD,EAAGtsF,UAAU6vF,OAAS,SAAiBC,GACrC,OAAsB,IAAlBrxF,KAAKguF,SACAhuF,KAAK8N,MAAMwjF,MAAMD,GAAOE,MAAM,GAEhCvxF,KAAK47E,SAGdiS,EAAGtsF,UAAUiwF,SAAW,SAAmBH,GACzC,OAAIrxF,KAAKyxF,MAAMJ,EAAQ,GACdrxF,KAAK0xF,KAAKL,GAAOE,MAAM,GAAGI,OAE5B3xF,KAAK47E,SAGdiS,EAAGtsF,UAAUyuC,MAAQ,WACnB,OAAyB,IAAlBhwC,KAAKguF,UAIdH,EAAGtsF,UAAUqwF,IAAM,WACjB,OAAO5xF,KAAK47E,QAAQ+V,QAGtB9D,EAAGtsF,UAAUowF,KAAO,WAKlB,OAJK3xF,KAAKgjC,WACRhjC,KAAKguF,UAAY,GAGZhuF,MAIT6tF,EAAGtsF,UAAUswF,KAAO,SAAejrB,GACjC,KAAO5mE,KAAKc,OAAS8lE,EAAI9lE,QACvBd,KAAK06B,MAAM16B,KAAKc,UAAY,EAG9B,IAAK,IAAID,EAAI,EAAGA,EAAI+lE,EAAI9lE,OAAQD,IAC9Bb,KAAK06B,MAAM75B,GAAKb,KAAK06B,MAAM75B,GAAK+lE,EAAIlsC,MAAM75B,GAG5C,OAAOb,KAAKuhG,SAGd1T,EAAGtsF,UAAUuwF,IAAM,SAAclrB,GAE/B,OADAnjD,EAA0C,IAAlCzjB,KAAKguF,SAAWpnB,EAAIonB,WACrBhuF,KAAK6xF,KAAKjrB,IAInBinB,EAAGtsF,UAAUwwF,GAAK,SAAanrB,GAC7B,OAAI5mE,KAAKc,OAAS8lE,EAAI9lE,OAAed,KAAK47E,QAAQkW,IAAIlrB,GAC/CA,EAAIgV,QAAQkW,IAAI9xF,OAGzB6tF,EAAGtsF,UAAUywF,IAAM,SAAcprB,GAC/B,OAAI5mE,KAAKc,OAAS8lE,EAAI9lE,OAAed,KAAK47E,QAAQiW,KAAKjrB,GAChDA,EAAIgV,QAAQiW,KAAK7xF,OAI1B6tF,EAAGtsF,UAAU0wF,MAAQ,SAAgBrrB,GAEnC,IAAIr6D,EAEFA,EADEvM,KAAKc,OAAS8lE,EAAI9lE,OAChB8lE,EAEA5mE,KAGN,IAAK,IAAIa,EAAI,EAAGA,EAAI0L,EAAEzL,OAAQD,IAC5Bb,KAAK06B,MAAM75B,GAAKb,KAAK06B,MAAM75B,GAAK+lE,EAAIlsC,MAAM75B,GAK5C,OAFAb,KAAKc,OAASyL,EAAEzL,OAETd,KAAKuhG,SAGd1T,EAAGtsF,UAAU2wF,KAAO,SAAetrB,GAEjC,OADAnjD,EAA0C,IAAlCzjB,KAAKguF,SAAWpnB,EAAIonB,WACrBhuF,KAAKiyF,MAAMrrB,IAIpBinB,EAAGtsF,UAAU4wF,IAAM,SAAcvrB,GAC/B,OAAI5mE,KAAKc,OAAS8lE,EAAI9lE,OAAed,KAAK47E,QAAQsW,KAAKtrB,GAChDA,EAAIgV,QAAQsW,KAAKlyF,OAG1B6tF,EAAGtsF,UAAU6wF,KAAO,SAAexrB,GACjC,OAAI5mE,KAAKc,OAAS8lE,EAAI9lE,OAAed,KAAK47E,QAAQqW,MAAMrrB,GACjDA,EAAIgV,QAAQqW,MAAMjyF,OAI3B6tF,EAAGtsF,UAAU8wF,MAAQ,SAAgBzrB,GAEnC,IAAI12D,EACA3D,EACAvM,KAAKc,OAAS8lE,EAAI9lE,QACpBoP,EAAIlQ,KACJuM,EAAIq6D,IAEJ12D,EAAI02D,EACJr6D,EAAIvM,MAGN,IAAK,IAAIa,EAAI,EAAGA,EAAI0L,EAAEzL,OAAQD,IAC5Bb,KAAK06B,MAAM75B,GAAKqP,EAAEwqB,MAAM75B,GAAK0L,EAAEmuB,MAAM75B,GAGvC,GAAIb,OAASkQ,EACX,KAAOrP,EAAIqP,EAAEpP,OAAQD,IACnBb,KAAK06B,MAAM75B,GAAKqP,EAAEwqB,MAAM75B,GAM5B,OAFAb,KAAKc,OAASoP,EAAEpP,OAETd,KAAKuhG,SAGd1T,EAAGtsF,UAAU+wF,KAAO,SAAe1rB,GAEjC,OADAnjD,EAA0C,IAAlCzjB,KAAKguF,SAAWpnB,EAAIonB,WACrBhuF,KAAKqyF,MAAMzrB,IAIpBinB,EAAGtsF,UAAUgxF,IAAM,SAAc3rB,GAC/B,OAAI5mE,KAAKc,OAAS8lE,EAAI9lE,OAAed,KAAK47E,QAAQ0W,KAAK1rB,GAChDA,EAAIgV,QAAQ0W,KAAKtyF,OAG1B6tF,EAAGtsF,UAAUixF,KAAO,SAAe5rB,GACjC,OAAI5mE,KAAKc,OAAS8lE,EAAI9lE,OAAed,KAAK47E,QAAQyW,MAAMzrB,GACjDA,EAAIgV,QAAQyW,MAAMryF,OAI3B6tF,EAAGtsF,UAAU+vF,MAAQ,SAAgBD,GACnC5tE,EAAwB,iBAAV4tE,GAAsBA,GAAS,GAE7C,IAAIoB,EAAsC,EAAxB5kF,KAAK2xC,KAAK6xC,EAAQ,IAChCqB,EAAWrB,EAAQ,GAGvBrxF,KAAKsvF,QAAQmD,GAETC,EAAW,GACbD,IAIF,IAAK,IAAI5xF,EAAI,EAAGA,EAAI4xF,EAAa5xF,IAC/Bb,KAAK06B,MAAM75B,GAAsB,UAAhBb,KAAK06B,MAAM75B,GAS9B,OALI6xF,EAAW,IACb1yF,KAAK06B,MAAM75B,IAAMb,KAAK06B,MAAM75B,GAAM,UAAc,GAAK6xF,GAIhD1yF,KAAKuhG,SAGd1T,EAAGtsF,UAAUmwF,KAAO,SAAeL,GACjC,OAAOrxF,KAAK47E,QAAQ0V,MAAMD,IAI5BxD,EAAGtsF,UAAUoxF,KAAO,SAAeC,EAAKhjF,GACtC6T,EAAsB,iBAARmvE,GAAoBA,GAAO,GAEzC,IAAIh+E,EAAOg+E,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARA5yF,KAAKsvF,QAAQ16E,EAAM,GAGjB5U,KAAK06B,MAAM9lB,GADThF,EACgB5P,KAAK06B,MAAM9lB,GAAQ,GAAKi+E,EAExB7yF,KAAK06B,MAAM9lB,KAAS,GAAKi+E,GAGtC7yF,KAAKuhG,SAId1T,EAAGtsF,UAAUuxF,KAAO,SAAelsB,GACjC,IAAIhiD,EAkBA1U,EAAG3D,EAfP,GAAsB,IAAlBvM,KAAKguF,UAAmC,IAAjBpnB,EAAIonB,SAI7B,OAHAhuF,KAAKguF,SAAW,EAChBppE,EAAI5kB,KAAK+yF,KAAKnsB,GACd5mE,KAAKguF,UAAY,EACVhuF,KAAKuvF,YAGP,GAAsB,IAAlBvvF,KAAKguF,UAAmC,IAAjBpnB,EAAIonB,SAIpC,OAHApnB,EAAIonB,SAAW,EACfppE,EAAI5kB,KAAK+yF,KAAKnsB,GACdA,EAAIonB,SAAW,EACRppE,EAAE2qE,YAKPvvF,KAAKc,OAAS8lE,EAAI9lE,QACpBoP,EAAIlQ,KACJuM,EAAIq6D,IAEJ12D,EAAI02D,EACJr6D,EAAIvM,MAIN,IADA,IAAI8vF,EAAQ,EACHjvF,EAAI,EAAGA,EAAI0L,EAAEzL,OAAQD,IAC5B+jB,GAAkB,EAAb1U,EAAEwqB,MAAM75B,KAAwB,EAAb0L,EAAEmuB,MAAM75B,IAAUivF,EAC1C9vF,KAAK06B,MAAM75B,GAAS,SAAJ+jB,EAChBkrE,EAAQlrE,IAAM,GAEhB,KAAiB,IAAVkrE,GAAejvF,EAAIqP,EAAEpP,OAAQD,IAClC+jB,GAAkB,EAAb1U,EAAEwqB,MAAM75B,IAAUivF,EACvB9vF,KAAK06B,MAAM75B,GAAS,SAAJ+jB,EAChBkrE,EAAQlrE,IAAM,GAIhB,GADA5kB,KAAKc,OAASoP,EAAEpP,OACF,IAAVgvF,EACF9vF,KAAK06B,MAAM16B,KAAKc,QAAUgvF,EAC1B9vF,KAAKc,cAEA,GAAIoP,IAAMlQ,KACf,KAAOa,EAAIqP,EAAEpP,OAAQD,IACnBb,KAAK06B,MAAM75B,GAAKqP,EAAEwqB,MAAM75B,GAI5B,OAAOb,MAIT6tF,EAAGtsF,UAAUqiC,IAAM,SAAcgjC,GAC/B,IAAIt4D,EACJ,OAAqB,IAAjBs4D,EAAIonB,UAAoC,IAAlBhuF,KAAKguF,UAC7BpnB,EAAIonB,SAAW,EACf1/E,EAAMtO,KAAK6uC,IAAI+3B,GACfA,EAAIonB,UAAY,EACT1/E,GACmB,IAAjBs4D,EAAIonB,UAAoC,IAAlBhuF,KAAKguF,UACpChuF,KAAKguF,SAAW,EAChB1/E,EAAMs4D,EAAI/3B,IAAI7uC,MACdA,KAAKguF,SAAW,EACT1/E,GAGLtO,KAAKc,OAAS8lE,EAAI9lE,OAAed,KAAK47E,QAAQkX,KAAKlsB,GAEhDA,EAAIgV,QAAQkX,KAAK9yF,OAI1B6tF,EAAGtsF,UAAUwxF,KAAO,SAAensB,GAEjC,GAAqB,IAAjBA,EAAIonB,SAAgB,CACtBpnB,EAAIonB,SAAW,EACf,IAAIppE,EAAI5kB,KAAK8yF,KAAKlsB,GAElB,OADAA,EAAIonB,SAAW,EACRppE,EAAE2qE,YAGJ,GAAsB,IAAlBvvF,KAAKguF,SAId,OAHAhuF,KAAKguF,SAAW,EAChBhuF,KAAK8yF,KAAKlsB,GACV5mE,KAAKguF,SAAW,EACThuF,KAAKuvF,YAId,IAWIr/E,EAAG3D,EAXH2hC,EAAMluC,KAAKkuC,IAAI04B,GAGnB,GAAY,IAAR14B,EAIF,OAHAluC,KAAKguF,SAAW,EAChBhuF,KAAKc,OAAS,EACdd,KAAK06B,MAAM,GAAK,EACT16B,KAKLkuC,EAAM,GACRh+B,EAAIlQ,KACJuM,EAAIq6D,IAEJ12D,EAAI02D,EACJr6D,EAAIvM,MAIN,IADA,IAAI8vF,EAAQ,EACHjvF,EAAI,EAAGA,EAAI0L,EAAEzL,OAAQD,IAE5BivF,GADAlrE,GAAkB,EAAb1U,EAAEwqB,MAAM75B,KAAwB,EAAb0L,EAAEmuB,MAAM75B,IAAUivF,IAC7B,GACb9vF,KAAK06B,MAAM75B,GAAS,SAAJ+jB,EAElB,KAAiB,IAAVkrE,GAAejvF,EAAIqP,EAAEpP,OAAQD,IAElCivF,GADAlrE,GAAkB,EAAb1U,EAAEwqB,MAAM75B,IAAUivF,IACV,GACb9vF,KAAK06B,MAAM75B,GAAS,SAAJ+jB,EAIlB,GAAc,IAAVkrE,GAAejvF,EAAIqP,EAAEpP,QAAUoP,IAAMlQ,KACvC,KAAOa,EAAIqP,EAAEpP,OAAQD,IACnBb,KAAK06B,MAAM75B,GAAKqP,EAAEwqB,MAAM75B,GAU5B,OANAb,KAAKc,OAAS+M,KAAK6gF,IAAI1uF,KAAKc,OAAQD,GAEhCqP,IAAMlQ,OACRA,KAAKguF,SAAW,GAGXhuF,KAAKuhG,SAId1T,EAAGtsF,UAAUstC,IAAM,SAAc+3B,GAC/B,OAAO5mE,KAAK47E,QAAQmX,KAAKnsB,IA+C3B,IAAIosB,EAAc,SAAsBh0F,EAAM4nE,EAAKloD,GACjD,IAII7M,EACAohF,EACAnhF,EANA5B,EAAIlR,EAAK07B,MACTnuB,EAAIq6D,EAAIlsC,MACR8D,EAAI9f,EAAIgc,MACRmF,EAAI,EAIJqzD,EAAY,EAAPhjF,EAAE,GACPijF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnjF,EAAE,GACPojF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtjF,EAAE,GACPujF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPzjF,EAAE,GACP0jF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5jF,EAAE,GACP6jF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP/jF,EAAE,GACPgkF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPlkF,EAAE,GACPmkF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPrkF,EAAE,GACPskF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPxkF,EAAE,GACPykF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3kF,EAAE,GACP4kF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPzoF,EAAE,GACP0oF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5oF,EAAE,GACP6oF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP/oF,EAAE,GACPgpF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPlpF,EAAE,GACPmpF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPrpF,EAAE,GACPspF,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPxpF,EAAE,GACPypF,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP3pF,EAAE,GACP4pF,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP9pF,EAAE,GACP+pF,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPjqF,EAAE,GACPkqF,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPpqF,EAAE,GACPqqF,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjBj4E,EAAIsvE,SAAWhvF,EAAKgvF,SAAWpnB,EAAIonB,SACnCtvE,EAAI5d,OAAS,GAMb,IAAIg2F,IAAQj3D,GAJZhuB,EAAKhE,KAAKkpF,KAAK5D,EAAK8B,IAIE,KAAa,MAFnChC,GADAA,EAAMplF,KAAKkpF,KAAK5D,EAAK+B,IACRrnF,KAAKkpF,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrDp1D,IAFA/tB,EAAKjE,KAAKkpF,KAAK3D,EAAK8B,KAEPjC,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAENjlF,EAAKhE,KAAKkpF,KAAKzD,EAAK2B,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAKzD,EAAK4B,IACRrnF,KAAKkpF,KAAKxD,EAAK0B,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQn3D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAKkC,GAAQ,GACvBxnF,KAAKkpF,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrDv1D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAKiC,GAAQ,IAErBpC,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENnlF,EAAKhE,KAAKkpF,KAAKtD,EAAKwB,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAKtD,EAAKyB,IACRrnF,KAAKkpF,KAAKrD,EAAKuB,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAKrD,EAAKwB,GACpBrjF,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAK8B,GAAQ,EAElCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAK+B,GAAQ,GACvBxnF,KAAKkpF,KAAKxD,EAAK6B,GAAQ,EACpCtjF,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQp3D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAKqC,GAAQ,GACvB3nF,KAAKkpF,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrD11D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAKoC,GAAQ,IAErBvC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENplF,EAAKhE,KAAKkpF,KAAKnD,EAAKqB,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAKnD,EAAKsB,IACRrnF,KAAKkpF,KAAKlD,EAAKoB,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAKlD,EAAKqB,GACpBrjF,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAK2B,GAAQ,EAElCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAK4B,GAAQ,GACvBxnF,KAAKkpF,KAAKrD,EAAK0B,GAAQ,EACpCtjF,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAK2B,GAAQ,EAClCxjF,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAKiC,GAAQ,EAElCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAKkC,GAAQ,GACvB3nF,KAAKkpF,KAAKxD,EAAKgC,GAAQ,EACpCzjF,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQr3D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAKwC,GAAQ,GACvB9nF,KAAKkpF,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrD71D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAKuC,GAAQ,IAErB1C,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENrlF,EAAKhE,KAAKkpF,KAAKhD,EAAKkB,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAKhD,EAAKmB,IACRrnF,KAAKkpF,KAAK/C,EAAKiB,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAK/C,EAAKkB,GACpBrjF,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAKwB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAKyB,GAAQ,GACvBxnF,KAAKkpF,KAAKlD,EAAKuB,GAAQ,EACpCtjF,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAKwB,GAAQ,EAClCxjF,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAK8B,GAAQ,EAElCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAK+B,GAAQ,GACvB3nF,KAAKkpF,KAAKrD,EAAK6B,GAAQ,EACpCzjF,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAK8B,GAAQ,EAClC3jF,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAKoC,GAAQ,EAElCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAKqC,GAAQ,GACvB9nF,KAAKkpF,KAAKxD,EAAKmC,GAAQ,EACpC5jF,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQt3D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAK2C,IAAQ,GACvBjoF,KAAKkpF,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDh2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAK0C,IAAQ,IAErB7C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENtlF,EAAKhE,KAAKkpF,KAAK7C,EAAKe,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAK7C,EAAKgB,IACRrnF,KAAKkpF,KAAK5C,EAAKc,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAK5C,EAAKe,GACpBrjF,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAKqB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAKsB,GAAQ,GACvBxnF,KAAKkpF,KAAK/C,EAAKoB,GAAQ,EACpCtjF,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAKqB,GAAQ,EAClCxjF,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAK2B,GAAQ,EAElCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAK4B,GAAQ,GACvB3nF,KAAKkpF,KAAKlD,EAAK0B,GAAQ,EACpCzjF,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAK2B,GAAQ,EAClC3jF,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAKiC,GAAQ,EAElCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAKkC,GAAQ,GACvB9nF,KAAKkpF,KAAKrD,EAAKgC,GAAQ,EACpC5jF,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAKiC,GAAQ,EAClC9jF,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAKuC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAKwC,IAAQ,GACvBjoF,KAAKkpF,KAAKxD,EAAKsC,GAAQ,EACpC/jF,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQv3D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAK8C,IAAQ,GACvBpoF,KAAKkpF,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrDn2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAK6C,IAAQ,IAErBhD,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENvlF,EAAKhE,KAAKkpF,KAAK1C,EAAKY,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAK1C,EAAKa,IACRrnF,KAAKkpF,KAAKzC,EAAKW,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAKzC,EAAKY,GACpBrjF,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAKkB,GAAQ,EAElCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAKmB,GAAQ,GACvBxnF,KAAKkpF,KAAK5C,EAAKiB,GAAQ,EACpCtjF,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAKkB,GAAQ,EAClCxjF,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAKwB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAKyB,GAAQ,GACvB3nF,KAAKkpF,KAAK/C,EAAKuB,GAAQ,EACpCzjF,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAKwB,GAAQ,EAClC3jF,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAK8B,GAAQ,EAElCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAK+B,GAAQ,GACvB9nF,KAAKkpF,KAAKlD,EAAK6B,GAAQ,EACpC5jF,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAK8B,GAAQ,EAClC9jF,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAKoC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAKqC,IAAQ,GACvBjoF,KAAKkpF,KAAKrD,EAAKmC,GAAQ,EACpC/jF,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAKoC,IAAQ,EAClCjkF,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAK0C,IAAQ,EAElC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAK2C,IAAQ,GACvBpoF,KAAKkpF,KAAKxD,EAAKyC,IAAQ,EACpClkF,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQx3D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAKiD,IAAQ,GACvBvoF,KAAKkpF,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrDt2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAKgD,IAAQ,IAErBnD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENxlF,EAAKhE,KAAKkpF,KAAKvC,EAAKS,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAKvC,EAAKU,IACRrnF,KAAKkpF,KAAKtC,EAAKQ,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAKtC,EAAKS,GACpBrjF,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAKe,GAAQ,EAElCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAKgB,GAAQ,GACvBxnF,KAAKkpF,KAAKzC,EAAKc,GAAQ,EACpCtjF,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAKe,GAAQ,EAClCxjF,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAKqB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAKsB,GAAQ,GACvB3nF,KAAKkpF,KAAK5C,EAAKoB,GAAQ,EACpCzjF,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAKqB,GAAQ,EAClC3jF,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAK2B,GAAQ,EAElCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAK4B,GAAQ,GACvB9nF,KAAKkpF,KAAK/C,EAAK0B,GAAQ,EACpC5jF,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAK2B,GAAQ,EAClC9jF,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAKiC,GAAQ,EAElC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAKkC,IAAQ,GACvBjoF,KAAKkpF,KAAKlD,EAAKgC,GAAQ,EACpC/jF,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAKiC,IAAQ,EAClCjkF,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAKuC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAKwC,IAAQ,GACvBpoF,KAAKkpF,KAAKrD,EAAKsC,IAAQ,EACpClkF,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAKuC,IAAQ,EAClCpkF,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAK6C,IAAQ,EAElClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAK8C,IAAQ,GACvBvoF,KAAKkpF,KAAKxD,EAAK4C,IAAQ,EACpCrkF,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQz3D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAKoD,IAAQ,GACvB1oF,KAAKkpF,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrDz2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAKmD,IAAQ,IAErBtD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAENzlF,EAAKhE,KAAKkpF,KAAKpC,EAAKM,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAKpC,EAAKO,IACRrnF,KAAKkpF,KAAKnC,EAAKK,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAKnC,EAAKM,GACpBrjF,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAKY,GAAQ,EAElCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAKa,GAAQ,GACvBxnF,KAAKkpF,KAAKtC,EAAKW,GAAQ,EACpCtjF,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAKY,GAAQ,EAClCxjF,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAKkB,GAAQ,EAElCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAKmB,GAAQ,GACvB3nF,KAAKkpF,KAAKzC,EAAKiB,GAAQ,EACpCzjF,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAKkB,GAAQ,EAClC3jF,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAKwB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAKyB,GAAQ,GACvB9nF,KAAKkpF,KAAK5C,EAAKuB,GAAQ,EACpC5jF,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAKwB,GAAQ,EAClC9jF,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAK8B,GAAQ,EAElC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAK+B,IAAQ,GACvBjoF,KAAKkpF,KAAK/C,EAAK6B,GAAQ,EACpC/jF,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAK8B,IAAQ,EAClCjkF,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAKoC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAKqC,IAAQ,GACvBpoF,KAAKkpF,KAAKlD,EAAKmC,IAAQ,EACpClkF,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAKoC,IAAQ,EAClCpkF,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAK0C,IAAQ,EAElClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAK2C,IAAQ,GACvBvoF,KAAKkpF,KAAKrD,EAAKyC,IAAQ,EACpCrkF,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAK0C,IAAQ,EAClCvkF,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAKgD,IAAQ,EAElCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAKiD,IAAQ,GACvB1oF,KAAKkpF,KAAKxD,EAAK+C,IAAQ,EACpCxkF,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQ13D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAKuD,IAAQ,GACvB7oF,KAAKkpF,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrD52D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAKsD,IAAQ,IAErBzD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAEN1lF,EAAKhE,KAAKkpF,KAAKjC,EAAKG,GAEpBhC,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAKI,IACRrnF,KAAKkpF,KAAKhC,EAAKE,GAAQ,EACpCnjF,EAAKjE,KAAKkpF,KAAKhC,EAAKG,GACpBrjF,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAKS,GAAQ,EAElCnC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAKU,GAAQ,GACvBxnF,KAAKkpF,KAAKnC,EAAKQ,GAAQ,EACpCtjF,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAKS,GAAQ,EAClCxjF,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAKe,GAAQ,EAElCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAKgB,GAAQ,GACvB3nF,KAAKkpF,KAAKtC,EAAKc,GAAQ,EACpCzjF,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAKe,GAAQ,EAClC3jF,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAKqB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAKsB,GAAQ,GACvB9nF,KAAKkpF,KAAKzC,EAAKoB,GAAQ,EACpC5jF,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAKqB,GAAQ,EAClC9jF,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAK2B,GAAQ,EAElC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAK4B,IAAQ,GACvBjoF,KAAKkpF,KAAK5C,EAAK0B,GAAQ,EACpC/jF,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAK2B,IAAQ,EAClCjkF,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAKiC,IAAQ,EAElC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAKkC,IAAQ,GACvBpoF,KAAKkpF,KAAK/C,EAAKgC,IAAQ,EACpClkF,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAKiC,IAAQ,EAClCpkF,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAKuC,IAAQ,EAElClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAKwC,IAAQ,GACvBvoF,KAAKkpF,KAAKlD,EAAKsC,IAAQ,EACpCrkF,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAKuC,IAAQ,EAClCvkF,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAK6C,IAAQ,EAElCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAK8C,IAAQ,GACvB1oF,KAAKkpF,KAAKrD,EAAK4C,IAAQ,EACpCxkF,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAK6C,IAAQ,EAClC1kF,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAKmD,IAAQ,EAElCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAKoD,IAAQ,GACvB7oF,KAAKkpF,KAAKxD,EAAKkD,IAAQ,EACpC3kF,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQ33D,GAJZhuB,EAAMA,EAAKhE,KAAKkpF,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK5D,EAAK0D,IAAQ,GACvBhpF,KAAKkpF,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK3D,EAAKyD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN3lF,EAAKhE,KAAKkpF,KAAKjC,EAAKM,GAEpBnC,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAKO,IACRxnF,KAAKkpF,KAAKhC,EAAKK,GAAQ,EACpCtjF,EAAKjE,KAAKkpF,KAAKhC,EAAKM,GACpBxjF,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAKY,GAAQ,EAElCtC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAKa,GAAQ,GACvB3nF,KAAKkpF,KAAKnC,EAAKW,GAAQ,EACpCzjF,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAKY,GAAQ,EAClC3jF,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAKkB,GAAQ,EAElCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAKmB,GAAQ,GACvB9nF,KAAKkpF,KAAKtC,EAAKiB,GAAQ,EACpC5jF,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAKkB,GAAQ,EAClC9jF,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAKwB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAKyB,IAAQ,GACvBjoF,KAAKkpF,KAAKzC,EAAKuB,GAAQ,EACpC/jF,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAKwB,IAAQ,EAClCjkF,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAK8B,IAAQ,EAElC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAK+B,IAAQ,GACvBpoF,KAAKkpF,KAAK5C,EAAK6B,IAAQ,EACpClkF,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAK8B,IAAQ,EAClCpkF,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAKoC,IAAQ,EAElClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAKqC,IAAQ,GACvBvoF,KAAKkpF,KAAK/C,EAAKmC,IAAQ,EACpCrkF,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAKoC,IAAQ,EAClCvkF,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAK0C,IAAQ,EAElCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAK2C,IAAQ,GACvB1oF,KAAKkpF,KAAKlD,EAAKyC,IAAQ,EACpCxkF,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAK0C,IAAQ,EAClC1kF,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAKgD,IAAQ,EAElCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAKiD,IAAQ,GACvB7oF,KAAKkpF,KAAKrD,EAAK+C,IAAQ,EACpC3kF,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAAS53D,GAJbhuB,EAAMA,EAAKhE,KAAKkpF,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKzD,EAAKuD,IAAQ,GACvBhpF,KAAKkpF,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAKxD,EAAKsD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP5lF,EAAKhE,KAAKkpF,KAAKjC,EAAKS,GAEpBtC,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAKU,IACR3nF,KAAKkpF,KAAKhC,EAAKQ,GAAQ,EACpCzjF,EAAKjE,KAAKkpF,KAAKhC,EAAKS,GACpB3jF,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAKe,GAAQ,EAElCzC,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAKgB,GAAQ,GACvB9nF,KAAKkpF,KAAKnC,EAAKc,GAAQ,EACpC5jF,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAKe,GAAQ,EAClC9jF,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAKqB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAKsB,IAAQ,GACvBjoF,KAAKkpF,KAAKtC,EAAKoB,GAAQ,EACpC/jF,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAKqB,IAAQ,EAClCjkF,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAK2B,IAAQ,EAElC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAK4B,IAAQ,GACvBpoF,KAAKkpF,KAAKzC,EAAK0B,IAAQ,EACpClkF,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAK2B,IAAQ,EAClCpkF,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAKiC,IAAQ,EAElClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAKkC,IAAQ,GACvBvoF,KAAKkpF,KAAK5C,EAAKgC,IAAQ,EACpCrkF,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAKiC,IAAQ,EAClCvkF,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAKuC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAKwC,IAAQ,GACvB1oF,KAAKkpF,KAAK/C,EAAKsC,IAAQ,EACpCxkF,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAKuC,IAAQ,EAClC1kF,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAK6C,IAAQ,EAElCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAK8C,IAAQ,GACvB7oF,KAAKkpF,KAAKlD,EAAK4C,IAAQ,EACpC3kF,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAAS73D,GAJbhuB,EAAMA,EAAKhE,KAAKkpF,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKtD,EAAKoD,IAAQ,GACvBhpF,KAAKkpF,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAKrD,EAAKmD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP7lF,EAAKhE,KAAKkpF,KAAKjC,EAAKY,GAEpBzC,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAKa,IACR9nF,KAAKkpF,KAAKhC,EAAKW,GAAQ,EACpC5jF,EAAKjE,KAAKkpF,KAAKhC,EAAKY,GACpB9jF,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAKkB,GAAQ,EAElC5C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAKmB,IAAQ,GACvBjoF,KAAKkpF,KAAKnC,EAAKiB,GAAQ,EACpC/jF,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAKkB,IAAQ,EAClCjkF,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAKwB,IAAQ,EAElC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAKyB,IAAQ,GACvBpoF,KAAKkpF,KAAKtC,EAAKuB,IAAQ,EACpClkF,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAKwB,IAAQ,EAClCpkF,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAK8B,IAAQ,EAElClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAK+B,IAAQ,GACvBvoF,KAAKkpF,KAAKzC,EAAK6B,IAAQ,EACpCrkF,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAK8B,IAAQ,EAClCvkF,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAKoC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAKqC,IAAQ,GACvB1oF,KAAKkpF,KAAK5C,EAAKmC,IAAQ,EACpCxkF,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAKoC,IAAQ,EAClC1kF,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAK0C,IAAQ,EAElCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAK2C,IAAQ,GACvB7oF,KAAKkpF,KAAK/C,EAAKyC,IAAQ,EACpC3kF,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAAS93D,GAJbhuB,EAAMA,EAAKhE,KAAKkpF,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKnD,EAAKiD,IAAQ,GACvBhpF,KAAKkpF,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAKlD,EAAKgD,IAAQ,IAErB5D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP9lF,EAAKhE,KAAKkpF,KAAKjC,EAAKe,GAEpB5C,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAKgB,KACRjoF,KAAKkpF,KAAKhC,EAAKc,GAAQ,EACpC/jF,EAAKjE,KAAKkpF,KAAKhC,EAAKe,IACpBjkF,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAKqB,IAAQ,EAElC/C,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAKsB,IAAQ,GACvBpoF,KAAKkpF,KAAKnC,EAAKoB,IAAQ,EACpClkF,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAKqB,IAAQ,EAClCpkF,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAK2B,IAAQ,EAElClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAK4B,IAAQ,GACvBvoF,KAAKkpF,KAAKtC,EAAK0B,IAAQ,EACpCrkF,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAK2B,IAAQ,EAClCvkF,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAKiC,IAAQ,EAElCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAKkC,IAAQ,GACvB1oF,KAAKkpF,KAAKzC,EAAKgC,IAAQ,EACpCxkF,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAKiC,IAAQ,EAClC1kF,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAKuC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAKwC,IAAQ,GACvB7oF,KAAKkpF,KAAK5C,EAAKsC,IAAQ,EACpC3kF,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAAS/3D,GAJbhuB,EAAMA,EAAKhE,KAAKkpF,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKhD,EAAK8C,IAAQ,GACvBhpF,KAAKkpF,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK/C,EAAK6C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP/lF,EAAKhE,KAAKkpF,KAAKjC,EAAKkB,IAEpB/C,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAKmB,KACRpoF,KAAKkpF,KAAKhC,EAAKiB,IAAQ,EACpClkF,EAAKjE,KAAKkpF,KAAKhC,EAAKkB,IACpBpkF,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAKwB,IAAQ,EAElClD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAKyB,IAAQ,GACvBvoF,KAAKkpF,KAAKnC,EAAKuB,IAAQ,EACpCrkF,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAKwB,IAAQ,EAClCvkF,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAK8B,IAAQ,EAElCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAK+B,IAAQ,GACvB1oF,KAAKkpF,KAAKtC,EAAK6B,IAAQ,EACpCxkF,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAK8B,IAAQ,EAClC1kF,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAKoC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAKqC,IAAQ,GACvB7oF,KAAKkpF,KAAKzC,EAAKmC,IAAQ,EACpC3kF,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASh4D,GAJbhuB,EAAMA,EAAKhE,KAAKkpF,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK7C,EAAK2C,IAAQ,GACvBhpF,KAAKkpF,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAK5C,EAAK0C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEPhmF,EAAKhE,KAAKkpF,KAAKjC,EAAKqB,IAEpBlD,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAKsB,KACRvoF,KAAKkpF,KAAKhC,EAAKoB,IAAQ,EACpCrkF,EAAKjE,KAAKkpF,KAAKhC,EAAKqB,IACpBvkF,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAK2B,IAAQ,EAElCrD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAK4B,IAAQ,GACvB1oF,KAAKkpF,KAAKnC,EAAK0B,IAAQ,EACpCxkF,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAK2B,IAAQ,EAClC1kF,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAKiC,IAAQ,EAElCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAKkC,IAAQ,GACvB7oF,KAAKkpF,KAAKtC,EAAKgC,IAAQ,EACpC3kF,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASj4D,GAJbhuB,EAAMA,EAAKhE,KAAKkpF,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAK1C,EAAKwC,IAAQ,GACvBhpF,KAAKkpF,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAKzC,EAAKuC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPjmF,EAAKhE,KAAKkpF,KAAKjC,EAAKwB,IAEpBrD,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAKyB,KACR1oF,KAAKkpF,KAAKhC,EAAKuB,IAAQ,EACpCxkF,EAAKjE,KAAKkpF,KAAKhC,EAAKwB,IACpB1kF,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAK8B,IAAQ,EAElCxD,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAK+B,IAAQ,GACvB7oF,KAAKkpF,KAAKnC,EAAK6B,IAAQ,EACpC3kF,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASl4D,GAJbhuB,EAAMA,EAAKhE,KAAKkpF,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKvC,EAAKqC,IAAQ,GACvBhpF,KAAKkpF,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAKtC,EAAKoC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPlmF,EAAKhE,KAAKkpF,KAAKjC,EAAK2B,IAEpBxD,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAK4B,KACR7oF,KAAKkpF,KAAKhC,EAAK0B,IAAQ,EACpC3kF,EAAKjE,KAAKkpF,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAASn4D,GAJbhuB,EAAMA,EAAKhE,KAAKkpF,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAMplF,KAAKkpF,KAAKpC,EAAKkC,IAAQ,GACvBhpF,KAAKkpF,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtD/2D,IAFA/tB,EAAMA,EAAKjE,KAAKkpF,KAAKnC,EAAKiC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAASp4D,GAJbhuB,EAAKhE,KAAKkpF,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC3D,GADAA,EAAMplF,KAAKkpF,KAAKjC,EAAK+B,KACRhpF,KAAKkpF,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBA/2D,IAFA/tB,EAAKjE,KAAKkpF,KAAKhC,EAAK8B,MAEP5D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SACPz5D,EAAE,GAAKs4D,GACPt4D,EAAE,GAAKw4D,GACPx4D,EAAE,GAAKy4D,GACPz4D,EAAE,GAAK04D,GACP14D,EAAE,GAAK24D,GACP34D,EAAE,GAAK44D,GACP54D,EAAE,GAAK64D,GACP74D,EAAE,GAAK84D,GACP94D,EAAE,GAAK+4D,GACP/4D,EAAE,GAAKg5D,GACPh5D,EAAE,IAAMi5D,GACRj5D,EAAE,IAAMk5D,GACRl5D,EAAE,IAAMm5D,GACRn5D,EAAE,IAAMo5D,GACRp5D,EAAE,IAAMq5D,GACRr5D,EAAE,IAAMs5D,GACRt5D,EAAE,IAAMu5D,GACRv5D,EAAE,IAAMw5D,GACRx5D,EAAE,IAAMy5D,GACE,IAANp4D,IACFrB,EAAE,IAAMqB,EACRnhB,EAAI5d,UAEC4d,GAiDT,SAAS05E,EAAYp5F,EAAM4nE,EAAKloD,GAE9B,OADW,IAAI25E,GACH+B,KAAKp7F,EAAM4nE,EAAKloD,GAsB9B,SAAS25E,EAAMluF,EAAGgoE,GAChBnyE,KAAKmK,EAAIA,EACTnK,KAAKmyE,EAAIA,EAvENtkE,KAAKkpF,OACR/D,EAAcnD,GAiDhBhC,EAAGtsF,UAAU+2F,MAAQ,SAAgB1xB,EAAKloD,GACxC,IAAIpQ,EACApI,EAAMlG,KAAKc,OAAS8lE,EAAI9lE,OAW5B,OATEwN,EADkB,KAAhBtO,KAAKc,QAAgC,KAAf8lE,EAAI9lE,OACtBkyF,EAAYhzF,KAAM4mE,EAAKloD,GACpBxY,EAAM,GACT2pF,EAAW7vF,KAAM4mE,EAAKloD,GACnBxY,EAAM,KArDnB,SAAmBlH,EAAM4nE,EAAKloD,GAC5BA,EAAIsvE,SAAWpnB,EAAIonB,SAAWhvF,EAAKgvF,SACnCtvE,EAAI5d,OAAS9B,EAAK8B,OAAS8lE,EAAI9lE,OAI/B,IAFA,IAAIgvF,EAAQ,EACRqI,EAAU,EACL15D,EAAI,EAAGA,EAAI/f,EAAI5d,OAAS,EAAG29B,IAAK,CAGvC,IAAIsxD,EAASoI,EACbA,EAAU,EAGV,IAFA,IAAInI,EAAgB,SAARF,EACRG,EAAOpiF,KAAKwC,IAAIouB,EAAGmoC,EAAI9lE,OAAS,GAC3BuG,EAAIwG,KAAK6gF,IAAI,EAAGjwD,EAAIz/B,EAAK8B,OAAS,GAAIuG,GAAK4oF,EAAM5oF,IAAK,CAC7D,IAAIxG,EAAI49B,EAAIp3B,EAGRud,GAFoB,EAAhB5lB,EAAK07B,MAAM75B,KACI,EAAf+lE,EAAIlsC,MAAMrzB,IAGdwK,EAAS,SAAJ+S,EAGTorE,EAAa,UADbn+E,EAAMA,EAAKm+E,EAAS,GAIpBmI,IAFApI,GAHAA,EAAUA,GAAWnrE,EAAI,SAAa,GAAM,IAGxB/S,IAAO,IAAO,KAEZ,GACtBk+E,GAAU,SAEZrxE,EAAIgc,MAAM+D,GAAKuxD,EACfF,EAAQC,EACRA,EAASoI,EAQX,OANc,IAAVrI,EACFpxE,EAAIgc,MAAM+D,GAAKqxD,EAEfpxE,EAAI5d,SAGC4d,EAAI6iF,QAgBHrJ,CAASl4F,KAAM4mE,EAAKloD,GAEpB05E,EAAWp4F,KAAM4mE,EAAKloD,GAGvBpQ,GAWT+pF,EAAK92F,UAAUg3F,QAAU,SAAkBC,GAGzC,IAFA,IAAIprE,EAAI,IAAI3mB,MAAM+xF,GACdnsF,EAAIwhF,EAAGtsF,UAAUyvF,WAAWwH,GAAK,EAC5B33F,EAAI,EAAGA,EAAI23F,EAAG33F,IACrBusB,EAAEvsB,GAAKb,KAAKy4F,OAAO53F,EAAGwL,EAAGmsF,GAG3B,OAAOprE,GAITirE,EAAK92F,UAAUk3F,OAAS,SAAiBtuF,EAAGkC,EAAGmsF,GAC7C,GAAU,IAANruF,GAAWA,IAAMquF,EAAI,EAAG,OAAOruF,EAGnC,IADA,IAAIuuF,EAAK,EACA73F,EAAI,EAAGA,EAAIwL,EAAGxL,IACrB63F,IAAW,EAAJvuF,IAAWkC,EAAIxL,EAAI,EAC1BsJ,IAAM,EAGR,OAAOuuF,GAKTL,EAAK92F,UAAUo3F,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI33F,EAAI,EAAGA,EAAI23F,EAAG33F,IACrBk4F,EAAKl4F,GAAKg4F,EAAID,EAAI/3F,IAClBm4F,EAAKn4F,GAAKi4F,EAAIF,EAAI/3F,KAItBw3F,EAAK92F,UAAUolE,UAAY,SAAoBkyB,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtE54F,KAAK24F,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAI3zE,EAAI,EAAGA,EAAI2zE,EAAG3zE,IAAM,EAM3B,IALA,IAAIxY,EAAIwY,GAAK,EAETo0E,EAAQprF,KAAKqrF,IAAI,EAAIrrF,KAAKypE,GAAKjrE,GAC/B8sF,EAAQtrF,KAAKurF,IAAI,EAAIvrF,KAAKypE,GAAKjrE,GAE1BpC,EAAI,EAAGA,EAAIuuF,EAAGvuF,GAAKoC,EAI1B,IAHA,IAAIgtF,EAASJ,EACTK,EAASH,EAEJ9xF,EAAI,EAAGA,EAAIwd,EAAGxd,IAAK,CAC1B,IAAIkyF,EAAKR,EAAK9uF,EAAI5C,GACdmyF,EAAKR,EAAK/uF,EAAI5C,GAEdoyF,EAAKV,EAAK9uF,EAAI5C,EAAIwd,GAClB60E,EAAKV,EAAK/uF,EAAI5C,EAAIwd,GAElB80E,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELZ,EAAK9uF,EAAI5C,GAAKkyF,EAAKE,EACnBT,EAAK/uF,EAAI5C,GAAKmyF,EAAKE,EAEnBX,EAAK9uF,EAAI5C,EAAIwd,GAAK00E,EAAKE,EACvBT,EAAK/uF,EAAI5C,EAAIwd,GAAK20E,EAAKE,EAGnBryF,IAAMgF,IACRstF,EAAKV,EAAQI,EAASF,EAAQG,EAE9BA,EAASL,EAAQK,EAASH,EAAQE,EAClCA,EAASM,KAOnBtB,EAAK92F,UAAUq4F,YAAc,SAAsBjsF,EAAGinB,GACpD,IAAI4jE,EAAqB,EAAjB3qF,KAAK6gF,IAAI95D,EAAGjnB,GAChBksF,EAAU,EAAJrB,EACN33F,EAAI,EACR,IAAK23F,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B33F,IAGF,OAAO,GAAKA,EAAI,EAAIg5F,GAGtBxB,EAAK92F,UAAUu4F,UAAY,SAAoBjB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI33F,EAAI,EAAGA,EAAI23F,EAAI,EAAG33F,IAAK,CAC9B,IAAIusB,EAAIyrE,EAAIh4F,GAEZg4F,EAAIh4F,GAAKg4F,EAAIL,EAAI33F,EAAI,GACrBg4F,EAAIL,EAAI33F,EAAI,GAAKusB,EAEjBA,EAAI0rE,EAAIj4F,GAERi4F,EAAIj4F,IAAMi4F,EAAIN,EAAI33F,EAAI,GACtBi4F,EAAIN,EAAI33F,EAAI,IAAMusB,IAItBirE,EAAK92F,UAAUw4F,aAAe,SAAuBC,EAAIxB,GAEvD,IADA,IAAI1I,EAAQ,EACHjvF,EAAI,EAAGA,EAAI23F,EAAI,EAAG33F,IAAK,CAC9B,IAAIkuF,EAAoC,KAAhClhF,KAAK+pB,MAAMoiE,EAAG,EAAIn5F,EAAI,GAAK23F,GACjC3qF,KAAK+pB,MAAMoiE,EAAG,EAAIn5F,GAAK23F,GACvB1I,EAEFkK,EAAGn5F,GAAS,SAAJkuF,EAGNe,EADEf,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOiL,GAGT3B,EAAK92F,UAAU04F,WAAa,SAAqBD,EAAI9zF,EAAK2yF,EAAKL,GAE7D,IADA,IAAI1I,EAAQ,EACHjvF,EAAI,EAAGA,EAAIqF,EAAKrF,IACvBivF,GAAyB,EAARkK,EAAGn5F,GAEpBg4F,EAAI,EAAIh4F,GAAa,KAARivF,EAAgBA,KAAkB,GAC/C+I,EAAI,EAAIh4F,EAAI,GAAa,KAARivF,EAAgBA,KAAkB,GAIrD,IAAKjvF,EAAI,EAAIqF,EAAKrF,EAAI23F,IAAK33F,EACzBg4F,EAAIh4F,GAAK,EAGX4iB,EAAiB,IAAVqsE,GACPrsE,EAA6B,KAAb,KAARqsE,KAGVuI,EAAK92F,UAAU24F,KAAO,SAAe1B,GAEnC,IADA,IAAI2B,EAAK,IAAI1zF,MAAM+xF,GACV33F,EAAI,EAAGA,EAAI23F,EAAG33F,IACrBs5F,EAAGt5F,GAAK,EAGV,OAAOs5F,GAGT9B,EAAK92F,UAAU64F,KAAO,SAAejwF,EAAGgoE,EAAGzzD,GACzC,IAAI85E,EAAI,EAAIx4F,KAAK45F,YAAYzvF,EAAErJ,OAAQqxE,EAAErxE,QAErC83F,EAAM54F,KAAKu4F,QAAQC,GAEnBzuD,EAAI/pC,KAAKk6F,KAAK1B,GAEdK,EAAM,IAAIpyF,MAAM+xF,GAChB6B,EAAO,IAAI5zF,MAAM+xF,GACjB8B,EAAO,IAAI7zF,MAAM+xF,GAEjB+B,EAAO,IAAI9zF,MAAM+xF,GACjBgC,EAAQ,IAAI/zF,MAAM+xF,GAClBiC,EAAQ,IAAIh0F,MAAM+xF,GAElBkC,EAAOh8E,EAAIgc,MACfggE,EAAK55F,OAAS03F,EAEdx4F,KAAKi6F,WAAW9vF,EAAEuwB,MAAOvwB,EAAErJ,OAAQ+3F,EAAKL,GACxCx4F,KAAKi6F,WAAW9nB,EAAEz3C,MAAOy3C,EAAErxE,OAAQy5F,EAAM/B,GAEzCx4F,KAAK2mE,UAAUkyB,EAAK9uD,EAAGswD,EAAMC,EAAM9B,EAAGI,GACtC54F,KAAK2mE,UAAU4zB,EAAMxwD,EAAGywD,EAAOC,EAAOjC,EAAGI,GAEzC,IAAK,IAAI/3F,EAAI,EAAGA,EAAI23F,EAAG33F,IAAK,CAC1B,IAAI84F,EAAKU,EAAKx5F,GAAK25F,EAAM35F,GAAKy5F,EAAKz5F,GAAK45F,EAAM55F,GAC9Cy5F,EAAKz5F,GAAKw5F,EAAKx5F,GAAK45F,EAAM55F,GAAKy5F,EAAKz5F,GAAK25F,EAAM35F,GAC/Cw5F,EAAKx5F,GAAK84F,EAUZ,OAPA35F,KAAK85F,UAAUO,EAAMC,EAAM9B,GAC3Bx4F,KAAK2mE,UAAU0zB,EAAMC,EAAMI,EAAM3wD,EAAGyuD,EAAGI,GACvC54F,KAAK85F,UAAUY,EAAM3wD,EAAGyuD,GACxBx4F,KAAK+5F,aAAaW,EAAMlC,GAExB95E,EAAIsvE,SAAW7jF,EAAE6jF,SAAW7b,EAAE6b,SAC9BtvE,EAAI5d,OAASqJ,EAAErJ,OAASqxE,EAAErxE,OACnB4d,EAAI6iF,SAIb1T,EAAGtsF,UAAUiiC,IAAM,SAAcojC,GAC/B,IAAIloD,EAAM,IAAImvE,EAAG,MAEjB,OADAnvE,EAAIgc,MAAQ,IAAIj0B,MAAMzG,KAAKc,OAAS8lE,EAAI9lE,QACjCd,KAAKs4F,MAAM1xB,EAAKloD,IAIzBmvE,EAAGtsF,UAAUo5F,KAAO,SAAe/zB,GACjC,IAAIloD,EAAM,IAAImvE,EAAG,MAEjB,OADAnvE,EAAIgc,MAAQ,IAAIj0B,MAAMzG,KAAKc,OAAS8lE,EAAI9lE,QACjCs3F,EAAWp4F,KAAM4mE,EAAKloD,IAI/BmvE,EAAGtsF,UAAUw1F,KAAO,SAAenwB,GACjC,OAAO5mE,KAAK47E,QAAQ0c,MAAM1xB,EAAK5mE,OAGjC6tF,EAAGtsF,UAAU4tF,MAAQ,SAAgBvoB,GACnCnjD,EAAsB,iBAARmjD,GACdnjD,EAAOmjD,EAAM,UAIb,IADA,IAAIkpB,EAAQ,EACHjvF,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAAK,CACpC,IAAIkuF,GAAqB,EAAhB/uF,KAAK06B,MAAM75B,IAAU+lE,EAC1B/0D,GAAU,SAAJk9E,IAA0B,SAARe,GAC5BA,IAAU,GACVA,GAAUf,EAAI,SAAa,EAE3Be,GAASj+E,IAAO,GAChB7R,KAAK06B,MAAM75B,GAAU,SAALgR,EAQlB,OALc,IAAVi+E,IACF9vF,KAAK06B,MAAM75B,GAAKivF,EAChB9vF,KAAKc,UAGAd,MAGT6tF,EAAGtsF,UAAUs5F,KAAO,SAAej0B,GACjC,OAAO5mE,KAAK47E,QAAQuT,MAAMvoB,IAI5BinB,EAAGtsF,UAAUu5F,IAAM,WACjB,OAAO96F,KAAKwjC,IAAIxjC,OAIlB6tF,EAAGtsF,UAAUw5F,KAAO,WAClB,OAAO/6F,KAAK+2F,KAAK/2F,KAAK47E,UAIxBiS,EAAGtsF,UAAU6sC,IAAM,SAAcw4B,GAC/B,IAAImoB,EAxxCN,SAAqBnoB,GAGnB,IAFA,IAAImoB,EAAI,IAAItoF,MAAMmgE,EAAIsqB,aAEb0B,EAAM,EAAGA,EAAM7D,EAAEjuF,OAAQ8xF,IAAO,CACvC,IAAIh+E,EAAOg+E,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjB7D,EAAE6D,IAAQhsB,EAAIlsC,MAAM9lB,GAAQ,GAAKi+E,KAAWA,EAG9C,OAAO9D,EA8wCCiM,CAAWp0B,GACnB,GAAiB,IAAbmoB,EAAEjuF,OAAc,OAAO,IAAI+sF,EAAG,GAIlC,IADA,IAAIv/E,EAAMtO,KACDa,EAAI,EAAGA,EAAIkuF,EAAEjuF,QACP,IAATiuF,EAAEluF,GADsBA,IAAKyN,EAAMA,EAAIwsF,OAI7C,KAAMj6F,EAAIkuF,EAAEjuF,OACV,IAAK,IAAIm6F,EAAI3sF,EAAIwsF,MAAOj6F,EAAIkuF,EAAEjuF,OAAQD,IAAKo6F,EAAIA,EAAEH,MAClC,IAAT/L,EAAEluF,KAENyN,EAAMA,EAAIk1B,IAAIy3D,IAIlB,OAAO3sF,GAITu/E,EAAGtsF,UAAU25F,OAAS,SAAiBtpF,GACrC6R,EAAuB,iBAAT7R,GAAqBA,GAAQ,GAC3C,IAGI/Q,EAHA+jB,EAAIhT,EAAO,GACXiT,GAAKjT,EAAOgT,GAAK,GACjBu2E,EAAa,WAAe,GAAKv2E,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIkrE,EAAQ,EAEZ,IAAKjvF,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAAK,CAChC,IAAIu6F,EAAWp7F,KAAK06B,MAAM75B,GAAKs6F,EAC3Bt7D,GAAsB,EAAhB7/B,KAAK06B,MAAM75B,IAAUu6F,GAAax2E,EAC5C5kB,KAAK06B,MAAM75B,GAAKg/B,EAAIiwD,EACpBA,EAAQsL,IAAc,GAAKx2E,EAGzBkrE,IACF9vF,KAAK06B,MAAM75B,GAAKivF,EAChB9vF,KAAKc,UAIT,GAAU,IAAN+jB,EAAS,CACX,IAAKhkB,EAAIb,KAAKc,OAAS,EAAGD,GAAK,EAAGA,IAChCb,KAAK06B,MAAM75B,EAAIgkB,GAAK7kB,KAAK06B,MAAM75B,GAGjC,IAAKA,EAAI,EAAGA,EAAIgkB,EAAGhkB,IACjBb,KAAK06B,MAAM75B,GAAK,EAGlBb,KAAKc,QAAU+jB,EAGjB,OAAO7kB,KAAKuhG,SAGd1T,EAAGtsF,UAAU85F,MAAQ,SAAgBzpF,GAGnC,OADA6R,EAAyB,IAAlBzjB,KAAKguF,UACLhuF,KAAKk7F,OAAOtpF,IAMrBi8E,EAAGtsF,UAAU+5F,OAAS,SAAiB1pF,EAAM2pF,EAAMC,GAEjD,IAAIrvF,EADJsX,EAAuB,iBAAT7R,GAAqBA,GAAQ,GAGzCzF,EADEovF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI32E,EAAIhT,EAAO,GACXiT,EAAIhX,KAAKwC,KAAKuB,EAAOgT,GAAK,GAAI5kB,KAAKc,QACnC+U,EAAO,SAAc,WAAc+O,GAAMA,EACzC62E,EAAcD,EAMlB,GAJArvF,GAAK0Y,EACL1Y,EAAI0B,KAAK6gF,IAAI,EAAGviF,GAGZsvF,EAAa,CACf,IAAK,IAAI56F,EAAI,EAAGA,EAAIgkB,EAAGhkB,IACrB46F,EAAY/gE,MAAM75B,GAAKb,KAAK06B,MAAM75B,GAEpC46F,EAAY36F,OAAS+jB,EAGvB,GAAU,IAANA,QAEG,GAAI7kB,KAAKc,OAAS+jB,EAEvB,IADA7kB,KAAKc,QAAU+jB,EACVhkB,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAC3Bb,KAAK06B,MAAM75B,GAAKb,KAAK06B,MAAM75B,EAAIgkB,QAGjC7kB,KAAK06B,MAAM,GAAK,EAChB16B,KAAKc,OAAS,EAGhB,IAAIgvF,EAAQ,EACZ,IAAKjvF,EAAIb,KAAKc,OAAS,EAAGD,GAAK,IAAgB,IAAVivF,GAAejvF,GAAKsL,GAAItL,IAAK,CAChE,IAAI85B,EAAuB,EAAhB36B,KAAK06B,MAAM75B,GACtBb,KAAK06B,MAAM75B,GAAMivF,GAAU,GAAKlrE,EAAO+V,IAAS/V,EAChDkrE,EAAQn1D,EAAO9kB,EAajB,OATI4lF,GAAyB,IAAV3L,IACjB2L,EAAY/gE,MAAM+gE,EAAY36F,UAAYgvF,GAGxB,IAAhB9vF,KAAKc,SACPd,KAAK06B,MAAM,GAAK,EAChB16B,KAAKc,OAAS,GAGTd,KAAKuhG,SAGd1T,EAAGtsF,UAAUm6F,MAAQ,SAAgB9pF,EAAM2pF,EAAMC,GAG/C,OADA/3E,EAAyB,IAAlBzjB,KAAKguF,UACLhuF,KAAKs7F,OAAO1pF,EAAM2pF,EAAMC,IAIjC3N,EAAGtsF,UAAUo6F,KAAO,SAAe/pF,GACjC,OAAO5R,KAAK47E,QAAQyf,MAAMzpF,IAG5Bi8E,EAAGtsF,UAAUq6F,MAAQ,SAAgBhqF,GACnC,OAAO5R,KAAK47E,QAAQsf,OAAOtpF,IAI7Bi8E,EAAGtsF,UAAUs6F,KAAO,SAAejqF,GACjC,OAAO5R,KAAK47E,QAAQ8f,MAAM9pF,IAG5Bi8E,EAAGtsF,UAAUu6F,MAAQ,SAAgBlqF,GACnC,OAAO5R,KAAK47E,QAAQ0f,OAAO1pF,IAI7Bi8E,EAAGtsF,UAAUkwF,MAAQ,SAAgBmB,GACnCnvE,EAAsB,iBAARmvE,GAAoBA,GAAO,GACzC,IAAIhuE,EAAIguE,EAAM,GACV/tE,GAAK+tE,EAAMhuE,GAAK,GAChBq2E,EAAI,GAAKr2E,EAGb,QAAI5kB,KAAKc,QAAU+jB,KAGX7kB,KAAK06B,MAAM7V,GAELo2E,KAIhBpN,EAAGtsF,UAAUw6F,OAAS,SAAiBnqF,GACrC6R,EAAuB,iBAAT7R,GAAqBA,GAAQ,GAC3C,IAAIgT,EAAIhT,EAAO,GACXiT,GAAKjT,EAAOgT,GAAK,GAIrB,GAFAnB,EAAyB,IAAlBzjB,KAAKguF,SAAgB,2CAExBhuF,KAAKc,QAAU+jB,EACjB,OAAO7kB,KAQT,GALU,IAAN4kB,GACFC,IAEF7kB,KAAKc,OAAS+M,KAAKwC,IAAIwU,EAAG7kB,KAAKc,QAErB,IAAN8jB,EAAS,CACX,IAAI/O,EAAO,SAAc,WAAc+O,GAAMA,EAC7C5kB,KAAK06B,MAAM16B,KAAKc,OAAS,IAAM+U,EAGjC,OAAO7V,KAAKuhG,SAId1T,EAAGtsF,UAAUy6F,MAAQ,SAAgBpqF,GACnC,OAAO5R,KAAK47E,QAAQmgB,OAAOnqF,IAI7Bi8E,EAAGtsF,UAAUgwF,MAAQ,SAAgB3qB,GAGnC,OAFAnjD,EAAsB,iBAARmjD,GACdnjD,EAAOmjD,EAAM,UACTA,EAAM,EAAU5mE,KAAKi8F,OAAOr1B,GAGV,IAAlB5mE,KAAKguF,SACa,IAAhBhuF,KAAKc,SAAiC,EAAhBd,KAAK06B,MAAM,IAAUksC,GAC7C5mE,KAAK06B,MAAM,GAAKksC,GAAuB,EAAhB5mE,KAAK06B,MAAM,IAClC16B,KAAKguF,SAAW,EACThuF,OAGTA,KAAKguF,SAAW,EAChBhuF,KAAKi8F,MAAMr1B,GACX5mE,KAAKguF,SAAW,EACThuF,MAIFA,KAAKovF,OAAOxoB,IAGrBinB,EAAGtsF,UAAU6tF,OAAS,SAAiBxoB,GACrC5mE,KAAK06B,MAAM,IAAMksC,EAGjB,IAAK,IAAI/lE,EAAI,EAAGA,EAAIb,KAAKc,QAAUd,KAAK06B,MAAM75B,IAAM,SAAWA,IAC7Db,KAAK06B,MAAM75B,IAAM,SACbA,IAAMb,KAAKc,OAAS,EACtBd,KAAK06B,MAAM75B,EAAI,GAAK,EAEpBb,KAAK06B,MAAM75B,EAAI,KAKnB,OAFAb,KAAKc,OAAS+M,KAAK6gF,IAAI1uF,KAAKc,OAAQD,EAAI,GAEjCb,MAIT6tF,EAAGtsF,UAAU06F,MAAQ,SAAgBr1B,GAGnC,GAFAnjD,EAAsB,iBAARmjD,GACdnjD,EAAOmjD,EAAM,UACTA,EAAM,EAAG,OAAO5mE,KAAKuxF,OAAO3qB,GAEhC,GAAsB,IAAlB5mE,KAAKguF,SAIP,OAHAhuF,KAAKguF,SAAW,EAChBhuF,KAAKuxF,MAAM3qB,GACX5mE,KAAKguF,SAAW,EACThuF,KAKT,GAFAA,KAAK06B,MAAM,IAAMksC,EAEG,IAAhB5mE,KAAKc,QAAgBd,KAAK06B,MAAM,GAAK,EACvC16B,KAAK06B,MAAM,IAAM16B,KAAK06B,MAAM,GAC5B16B,KAAKguF,SAAW,OAGhB,IAAK,IAAIntF,EAAI,EAAGA,EAAIb,KAAKc,QAAUd,KAAK06B,MAAM75B,GAAK,EAAGA,IACpDb,KAAK06B,MAAM75B,IAAM,SACjBb,KAAK06B,MAAM75B,EAAI,IAAM,EAIzB,OAAOb,KAAKuhG,SAGd1T,EAAGtsF,UAAU26F,KAAO,SAAet1B,GACjC,OAAO5mE,KAAK47E,QAAQ2V,MAAM3qB,IAG5BinB,EAAGtsF,UAAU46F,KAAO,SAAev1B,GACjC,OAAO5mE,KAAK47E,QAAQqgB,MAAMr1B,IAG5BinB,EAAGtsF,UAAU66F,KAAO,WAGlB,OAFAp8F,KAAKguF,SAAW,EAEThuF,MAGT6tF,EAAGtsF,UAAUuM,IAAM,WACjB,OAAO9N,KAAK47E,QAAQwgB,QAGtBvO,EAAGtsF,UAAU86F,aAAe,SAAuBz1B,EAAKpjC,EAAK3lB,GAC3D,IACIhd,EAIAkuF,EALA7oF,EAAM0gE,EAAI9lE,OAAS+c,EAGvB7d,KAAKsvF,QAAQppF,GAGb,IAAI4pF,EAAQ,EACZ,IAAKjvF,EAAI,EAAGA,EAAI+lE,EAAI9lE,OAAQD,IAAK,CAC/BkuF,GAA6B,EAAxB/uF,KAAK06B,MAAM75B,EAAIgd,IAAciyE,EAClC,IAAI9sF,GAAwB,EAAf4jE,EAAIlsC,MAAM75B,IAAU2iC,EAEjCssD,IADAf,GAAa,SAAR/rF,IACS,KAAQA,EAAQ,SAAa,GAC3ChD,KAAK06B,MAAM75B,EAAIgd,GAAa,SAAJkxE,EAE1B,KAAOluF,EAAIb,KAAKc,OAAS+c,EAAOhd,IAE9BivF,GADAf,GAA6B,EAAxB/uF,KAAK06B,MAAM75B,EAAIgd,IAAciyE,IACrB,GACb9vF,KAAK06B,MAAM75B,EAAIgd,GAAa,SAAJkxE,EAG1B,GAAc,IAAVe,EAAa,OAAO9vF,KAAKuhG,QAK7B,IAFA99E,GAAkB,IAAXqsE,GACPA,EAAQ,EACHjvF,EAAI,EAAGA,EAAIb,KAAKc,OAAQD,IAE3BivF,GADAf,IAAsB,EAAhB/uF,KAAK06B,MAAM75B,IAAUivF,IACd,GACb9vF,KAAK06B,MAAM75B,GAAS,SAAJkuF,EAIlB,OAFA/uF,KAAKguF,SAAW,EAEThuF,KAAKuhG,SAGd1T,EAAGtsF,UAAU+6F,SAAW,SAAmB11B,EAAKtzB,GAC9C,IAAIz1B,GAAQ7d,KAAKc,OAAS8lE,EAAI9lE,QAE1BoP,EAAIlQ,KAAK47E,QACTrvE,EAAIq6D,EAGJ21B,EAA8B,EAAxBhwF,EAAEmuB,MAAMnuB,EAAEzL,OAAS,GAGf,IADd+c,EAAQ,GADM7d,KAAKgxF,WAAWuL,MAG5BhwF,EAAIA,EAAEqvF,MAAM/9E,GACZ3N,EAAEgrF,OAAOr9E,GACT0+E,EAA8B,EAAxBhwF,EAAEmuB,MAAMnuB,EAAEzL,OAAS,IAI3B,IACIm6F,EADArmE,EAAI1kB,EAAEpP,OAASyL,EAAEzL,OAGrB,GAAa,QAATwyC,EAAgB,EAClB2nD,EAAI,IAAIpN,EAAG,OACT/sF,OAAS8zB,EAAI,EACfqmE,EAAEvgE,MAAQ,IAAIj0B,MAAMw0F,EAAEn6F,QACtB,IAAK,IAAID,EAAI,EAAGA,EAAIo6F,EAAEn6F,OAAQD,IAC5Bo6F,EAAEvgE,MAAM75B,GAAK,EAIjB,IAAI66E,EAAOxrE,EAAE0rE,QAAQygB,aAAa9vF,EAAG,EAAGqoB,GAClB,IAAlB8mD,EAAKsS,WACP99E,EAAIwrE,EACAuf,IACFA,EAAEvgE,MAAM9F,GAAK,IAIjB,IAAK,IAAIvtB,EAAIutB,EAAI,EAAGvtB,GAAK,EAAGA,IAAK,CAC/B,IAAIm1F,EAAmC,UAAL,EAAxBtsF,EAAEwqB,MAAMnuB,EAAEzL,OAASuG,KACE,EAA5B6I,EAAEwqB,MAAMnuB,EAAEzL,OAASuG,EAAI,IAO1B,IAHAm1F,EAAK3uF,KAAKwC,IAAKmsF,EAAKD,EAAO,EAAG,UAE9BrsF,EAAEmsF,aAAa9vF,EAAGiwF,EAAIn1F,GACA,IAAf6I,EAAE89E,UACPwO,IACAtsF,EAAE89E,SAAW,EACb99E,EAAEmsF,aAAa9vF,EAAG,EAAGlF,GAChB6I,EAAE8yB,WACL9yB,EAAE89E,UAAY,GAGdiN,IACFA,EAAEvgE,MAAMrzB,GAAKm1F,GAajB,OAVIvB,GACFA,EAAEsG,QAEJrxF,EAAEqxF,QAGW,QAATjuD,GAA4B,IAAVz1B,GACpB3N,EAAEorF,OAAOz9E,GAGJ,CACLwwB,IAAK4sD,GAAK,KACV7yE,IAAKlY,IAQT29E,EAAGtsF,UAAUk7F,OAAS,SAAiB71B,EAAKtzB,EAAMopD,GAGhD,OAFAj5E,GAAQmjD,EAAI5jC,UAERhjC,KAAKgjC,SACA,CACLqL,IAAK,IAAIw/C,EAAG,GACZzlE,IAAK,IAAIylE,EAAG,IAKM,IAAlB7tF,KAAKguF,UAAmC,IAAjBpnB,EAAIonB,UAC7B1/E,EAAMtO,KAAK4xF,MAAM6K,OAAO71B,EAAKtzB,GAEhB,QAATA,IACFjF,EAAM//B,EAAI+/B,IAAIujD,OAGH,QAATt+C,IACFlrB,EAAM9Z,EAAI8Z,IAAIwpE,MACV8K,GAA6B,IAAjBt0E,EAAI4lE,UAClB5lE,EAAI0qE,KAAKlsB,IAIN,CACLv4B,IAAKA,EACLjmB,IAAKA,IAIa,IAAlBpoB,KAAKguF,UAAmC,IAAjBpnB,EAAIonB,UAC7B1/E,EAAMtO,KAAKy8F,OAAO71B,EAAIgrB,MAAOt+C,GAEhB,QAATA,IACFjF,EAAM//B,EAAI+/B,IAAIujD,OAGT,CACLvjD,IAAKA,EACLjmB,IAAK9Z,EAAI8Z,MAI0B,IAAlCpoB,KAAKguF,SAAWpnB,EAAIonB,WACvB1/E,EAAMtO,KAAK4xF,MAAM6K,OAAO71B,EAAIgrB,MAAOt+C,GAEtB,QAATA,IACFlrB,EAAM9Z,EAAI8Z,IAAIwpE,MACV8K,GAA6B,IAAjBt0E,EAAI4lE,UAClB5lE,EAAI2qE,KAAKnsB,IAIN,CACLv4B,IAAK//B,EAAI+/B,IACTjmB,IAAKA,IAOLw+C,EAAI9lE,OAASd,KAAKc,QAAUd,KAAKkuC,IAAI04B,GAAO,EACvC,CACLv4B,IAAK,IAAIw/C,EAAG,GACZzlE,IAAKpoB,MAKU,IAAf4mE,EAAI9lE,OACO,QAATwyC,EACK,CACLjF,IAAKruC,KAAK28F,KAAK/1B,EAAIlsC,MAAM,IACzBtS,IAAK,MAII,QAATkrB,EACK,CACLjF,IAAK,KACLjmB,IAAK,IAAIylE,EAAG7tF,KAAKm9F,KAAKv2B,EAAIlsC,MAAM,MAI7B,CACL2T,IAAKruC,KAAK28F,KAAK/1B,EAAIlsC,MAAM,IACzBtS,IAAK,IAAIylE,EAAG7tF,KAAKm9F,KAAKv2B,EAAIlsC,MAAM,MAI7B16B,KAAKs8F,SAAS11B,EAAKtzB,GAlF1B,IAAIjF,EAAKjmB,EAAK9Z,GAsFhBu/E,EAAGtsF,UAAU8sC,IAAM,SAAcu4B,GAC/B,OAAO5mE,KAAKy8F,OAAO71B,EAAK,OAAO,GAAOv4B,KAIxCw/C,EAAGtsF,UAAU6mB,IAAM,SAAcw+C,GAC/B,OAAO5mE,KAAKy8F,OAAO71B,EAAK,OAAO,GAAOx+C,KAGxCylE,EAAGtsF,UAAUq7F,KAAO,SAAeh2B,GACjC,OAAO5mE,KAAKy8F,OAAO71B,EAAK,OAAO,GAAMx+C,KAIvCylE,EAAGtsF,UAAUs7F,SAAW,SAAmBj2B,GACzC,IAAIk2B,EAAK98F,KAAKy8F,OAAO71B,GAGrB,GAAIk2B,EAAG10E,IAAI4a,SAAU,OAAO85D,EAAGzuD,IAE/B,IAAIjmB,EAA0B,IAApB00E,EAAGzuD,IAAI2/C,SAAiB8O,EAAG10E,IAAI2qE,KAAKnsB,GAAOk2B,EAAG10E,IAEpD20E,EAAOn2B,EAAIk1B,MAAM,GACjBkB,EAAKp2B,EAAIq2B,MAAM,GACf/uD,EAAM9lB,EAAI8lB,IAAI6uD,GAGlB,OAAI7uD,EAAM,GAAY,IAAP8uD,GAAoB,IAAR9uD,EAAkB4uD,EAAGzuD,IAGrB,IAApByuD,EAAGzuD,IAAI2/C,SAAiB8O,EAAGzuD,IAAI4tD,MAAM,GAAKa,EAAGzuD,IAAIkjD,MAAM,IAGhE1D,EAAGtsF,UAAU47F,KAAO,SAAev2B,GACjCnjD,EAAOmjD,GAAO,UAId,IAHA,IAAI38D,GAAK,GAAK,IAAM28D,EAEhBs2B,EAAM,EACDr8F,EAAIb,KAAKc,OAAS,EAAGD,GAAK,EAAGA,IACpCq8F,GAAOjzF,EAAIizF,GAAuB,EAAhBl9F,KAAK06B,MAAM75B,KAAW+lE,EAG1C,OAAOs2B,GAITrP,EAAGtsF,UAAU8uF,MAAQ,SAAgBzpB,GACnCnjD,EAAOmjD,GAAO,UAGd,IADA,IAAIkpB,EAAQ,EACHjvF,EAAIb,KAAKc,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACzC,IAAIkuF,GAAqB,EAAhB/uF,KAAK06B,MAAM75B,IAAkB,SAARivF,EAC9B9vF,KAAK06B,MAAM75B,GAAMkuF,EAAInoB,EAAO,EAC5BkpB,EAAQf,EAAInoB,EAGd,OAAO5mE,KAAKuhG,SAGd1T,EAAGtsF,UAAUo7F,KAAO,SAAe/1B,GACjC,OAAO5mE,KAAK47E,QAAQyU,MAAMzpB,IAG5BinB,EAAGtsF,UAAU67F,KAAO,SAAenzF,GACjCwZ,EAAsB,IAAfxZ,EAAE+jF,UACTvqE,GAAQxZ,EAAE+4B,UAEV,IAAI74B,EAAInK,KACJmyE,EAAIloE,EAAE2xE,QAGRzxE,EADiB,IAAfA,EAAE6jF,SACA7jF,EAAEyyF,KAAK3yF,GAEPE,EAAEyxE,QAaR,IATA,IAAIxH,EAAI,IAAIyZ,EAAG,GACXxZ,EAAI,IAAIwZ,EAAG,GAGXvZ,EAAI,IAAIuZ,EAAG,GACXtZ,EAAI,IAAIsZ,EAAG,GAEXj3E,EAAI,EAEDzM,EAAEkzF,UAAYlrB,EAAEkrB,UACrBlzF,EAAEmxF,OAAO,GACTnpB,EAAEmpB,OAAO,KACP1kF,EAMJ,IAHA,IAAI0mF,EAAKnrB,EAAEyJ,QACP2hB,EAAKpzF,EAAEyxE,SAEHzxE,EAAE64B,UAAU,CAClB,IAAK,IAAIniC,EAAI,EAAG28F,EAAK,EAAyB,IAArBrzF,EAAEuwB,MAAM,GAAK8iE,IAAa38F,EAAI,KAAMA,EAAG28F,IAAO,GACvE,GAAI38F,EAAI,EAEN,IADAsJ,EAAEmxF,OAAOz6F,GACFA,KAAM,IACPuzE,EAAEqpB,SAAWppB,EAAEopB,WACjBrpB,EAAE0e,KAAKwK,GACPjpB,EAAE0e,KAAKwK,IAGTnpB,EAAEknB,OAAO,GACTjnB,EAAEinB,OAAO,GAIb,IAAK,IAAIj0F,EAAI,EAAGq2F,EAAK,EAAyB,IAArBvrB,EAAEz3C,MAAM,GAAKgjE,IAAar2F,EAAI,KAAMA,EAAGq2F,IAAO,GACvE,GAAIr2F,EAAI,EAEN,IADA8qE,EAAEmpB,OAAOj0F,GACFA,KAAM,IACPitE,EAAEmpB,SAAWlpB,EAAEkpB,WACjBnpB,EAAEwe,KAAKwK,GACP/oB,EAAEwe,KAAKwK,IAGTjpB,EAAEgnB,OAAO,GACT/mB,EAAE+mB,OAAO,GAITnxF,EAAE+jC,IAAIikC,IAAM,GACdhoE,EAAE4oF,KAAK5gB,GACPiC,EAAE2e,KAAKze,GACPD,EAAE0e,KAAKxe,KAEPpC,EAAE4gB,KAAK5oF,GACPmqE,EAAEye,KAAK3e,GACPG,EAAEwe,KAAK1e,IAIX,MAAO,CACLnkE,EAAGokE,EACH/nE,EAAGgoE,EACHopB,IAAKxrB,EAAE+oB,OAAOtkF,KAOlBi3E,EAAGtsF,UAAUq8F,OAAS,SAAiB3zF,GACrCwZ,EAAsB,IAAfxZ,EAAE+jF,UACTvqE,GAAQxZ,EAAE+4B,UAEV,IAAI9yB,EAAIlQ,KACJuM,EAAItC,EAAE2xE,QAGR1rE,EADiB,IAAfA,EAAE89E,SACA99E,EAAE0sF,KAAK3yF,GAEPiG,EAAE0rE,QAQR,IALA,IAuCIttE,EAvCAuvF,EAAK,IAAIhQ,EAAG,GACZiQ,EAAK,IAAIjQ,EAAG,GAEZkQ,EAAQxxF,EAAEqvE,QAEP1rE,EAAE8tF,KAAK,GAAK,GAAKzxF,EAAEyxF,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIn9F,EAAI,EAAG28F,EAAK,EAAyB,IAArBttF,EAAEwqB,MAAM,GAAK8iE,IAAa38F,EAAI,KAAMA,EAAG28F,IAAO,GACvE,GAAI38F,EAAI,EAEN,IADAqP,EAAEorF,OAAOz6F,GACFA,KAAM,GACPg9F,EAAGJ,SACLI,EAAG/K,KAAKiL,GAGVF,EAAGvC,OAAO,GAId,IAAK,IAAIj0F,EAAI,EAAGq2F,EAAK,EAAyB,IAArBnxF,EAAEmuB,MAAM,GAAKgjE,IAAar2F,EAAI,KAAMA,EAAGq2F,IAAO,GACvE,GAAIr2F,EAAI,EAEN,IADAkF,EAAE+uF,OAAOj0F,GACFA,KAAM,GACPy2F,EAAGL,SACLK,EAAGhL,KAAKiL,GAGVD,EAAGxC,OAAO,GAIVprF,EAAEg+B,IAAI3hC,IAAM,GACd2D,EAAE6iF,KAAKxmF,GACPsxF,EAAG9K,KAAK+K,KAERvxF,EAAEwmF,KAAK7iF,GACP4tF,EAAG/K,KAAK8K,IAeZ,OATEvvF,EADgB,IAAd4B,EAAE8tF,KAAK,GACHH,EAEAC,GAGAE,KAAK,GAAK,GAChB1vF,EAAIwkF,KAAK7oF,GAGJqE,GAGTu/E,EAAGtsF,UAAUo8F,IAAM,SAAc/2B,GAC/B,GAAI5mE,KAAKgjC,SAAU,OAAO4jC,EAAI94D,MAC9B,GAAI84D,EAAI5jC,SAAU,OAAOhjC,KAAK8N,MAE9B,IAAIoC,EAAIlQ,KAAK47E,QACTrvE,EAAIq6D,EAAIgV,QACZ1rE,EAAE89E,SAAW,EACbzhF,EAAEyhF,SAAW,EAGb,IAAK,IAAInwE,EAAQ,EAAG3N,EAAEmtF,UAAY9wF,EAAE8wF,SAAUx/E,IAC5C3N,EAAEorF,OAAO,GACT/uF,EAAE+uF,OAAO,GAGX,OAAG,CACD,KAAOprF,EAAEmtF,UACPntF,EAAEorF,OAAO,GAEX,KAAO/uF,EAAE8wF,UACP9wF,EAAE+uF,OAAO,GAGX,IAAI12E,EAAI1U,EAAEg+B,IAAI3hC,GACd,GAAIqY,EAAI,EAAG,CAET,IAAIwI,EAAIld,EACRA,EAAI3D,EACJA,EAAI6gB,OACC,GAAU,IAANxI,GAAyB,IAAdrY,EAAEyxF,KAAK,GAC3B,MAGF9tF,EAAE6iF,KAAKxmF,GAGT,OAAOA,EAAE2uF,OAAOr9E,IAIlBgwE,EAAGtsF,UAAU08F,KAAO,SAAer3B,GACjC,OAAO5mE,KAAKo9F,KAAKx2B,GAAK12D,EAAE0sF,KAAKh2B,IAG/BinB,EAAGtsF,UAAU87F,OAAS,WACpB,OAA+B,IAAP,EAAhBr9F,KAAK06B,MAAM,KAGrBmzD,EAAGtsF,UAAUk8F,MAAQ,WACnB,OAA+B,IAAP,EAAhBz9F,KAAK06B,MAAM,KAIrBmzD,EAAGtsF,UAAU07F,MAAQ,SAAgBr2B,GACnC,OAAO5mE,KAAK06B,MAAM,GAAKksC,GAIzBinB,EAAGtsF,UAAU28F,MAAQ,SAAgBtL,GACnCnvE,EAAsB,iBAARmvE,GACd,IAAIhuE,EAAIguE,EAAM,GACV/tE,GAAK+tE,EAAMhuE,GAAK,GAChBq2E,EAAI,GAAKr2E,EAGb,GAAI5kB,KAAKc,QAAU+jB,EAGjB,OAFA7kB,KAAKsvF,QAAQzqE,EAAI,GACjB7kB,KAAK06B,MAAM7V,IAAMo2E,EACVj7F,KAKT,IADA,IAAI8vF,EAAQmL,EACHp6F,EAAIgkB,EAAa,IAAVirE,GAAejvF,EAAIb,KAAKc,OAAQD,IAAK,CACnD,IAAIkuF,EAAoB,EAAhB/uF,KAAK06B,MAAM75B,GAEnBivF,GADAf,GAAKe,KACS,GACdf,GAAK,SACL/uF,KAAK06B,MAAM75B,GAAKkuF,EAMlB,OAJc,IAAVe,IACF9vF,KAAK06B,MAAM75B,GAAKivF,EAChB9vF,KAAKc,UAEAd,MAGT6tF,EAAGtsF,UAAUyhC,OAAS,WACpB,OAAuB,IAAhBhjC,KAAKc,QAAkC,IAAlBd,KAAK06B,MAAM,IAGzCmzD,EAAGtsF,UAAUy8F,KAAO,SAAep3B,GACjC,IAOIt4D,EAPA0/E,EAAWpnB,EAAM,EAErB,GAAsB,IAAlB5mE,KAAKguF,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBhuF,KAAKguF,UAAkBA,EAAU,OAAO,EAK5C,GAHAhuF,KAAKuhG,QAGDvhG,KAAKc,OAAS,EAChBwN,EAAM,MACD,CACD0/E,IACFpnB,GAAOA,GAGTnjD,EAAOmjD,GAAO,SAAW,qBAEzB,IAAImoB,EAAoB,EAAhB/uF,KAAK06B,MAAM,GACnBpsB,EAAMygF,IAAMnoB,EAAM,EAAImoB,EAAInoB,GAAO,EAAI,EAEvC,OAAsB,IAAlB5mE,KAAKguF,SAA8B,GAAN1/E,EAC1BA,GAOTu/E,EAAGtsF,UAAU2sC,IAAM,SAAc04B,GAC/B,GAAsB,IAAlB5mE,KAAKguF,UAAmC,IAAjBpnB,EAAIonB,SAAgB,OAAQ,EACvD,GAAsB,IAAlBhuF,KAAKguF,UAAmC,IAAjBpnB,EAAIonB,SAAgB,OAAO,EAEtD,IAAI1/E,EAAMtO,KAAKm+F,KAAKv3B,GACpB,OAAsB,IAAlB5mE,KAAKguF,SAA8B,GAAN1/E,EAC1BA,GAITu/E,EAAGtsF,UAAU48F,KAAO,SAAev3B,GAEjC,GAAI5mE,KAAKc,OAAS8lE,EAAI9lE,OAAQ,OAAO,EACrC,GAAId,KAAKc,OAAS8lE,EAAI9lE,OAAQ,OAAQ,EAGtC,IADA,IAAIwN,EAAM,EACDzN,EAAIb,KAAKc,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACzC,IAAIqP,EAAoB,EAAhBlQ,KAAK06B,MAAM75B,GACf0L,EAAmB,EAAfq6D,EAAIlsC,MAAM75B,GAElB,GAAIqP,IAAM3D,EAAV,CACI2D,EAAI3D,EACN+B,GAAO,EACE4B,EAAI3D,IACb+B,EAAM,GAER,OAEF,OAAOA,GAGTu/E,EAAGtsF,UAAU68F,IAAM,SAAcx3B,GAC/B,OAA0B,IAAnB5mE,KAAKg+F,KAAKp3B,IAGnBinB,EAAGtsF,UAAU0uC,GAAK,SAAa22B,GAC7B,OAAyB,IAAlB5mE,KAAKkuC,IAAI04B,IAGlBinB,EAAGtsF,UAAU88F,KAAO,SAAez3B,GACjC,OAAO5mE,KAAKg+F,KAAKp3B,IAAQ,GAG3BinB,EAAGtsF,UAAUo/B,IAAM,SAAcimC,GAC/B,OAAO5mE,KAAKkuC,IAAI04B,IAAQ,GAG1BinB,EAAGtsF,UAAUutC,IAAM,SAAc83B,GAC/B,OAA2B,IAApB5mE,KAAKg+F,KAAKp3B,IAGnBinB,EAAGtsF,UAAU+8F,GAAK,SAAa13B,GAC7B,OAA0B,IAAnB5mE,KAAKkuC,IAAI04B,IAGlBinB,EAAGtsF,UAAUg9F,KAAO,SAAe33B,GACjC,OAAO5mE,KAAKg+F,KAAKp3B,IAAQ,GAG3BinB,EAAGtsF,UAAUi9F,IAAM,SAAc53B,GAC/B,OAAO5mE,KAAKkuC,IAAI04B,IAAQ,GAG1BinB,EAAGtsF,UAAUk9F,IAAM,SAAc73B,GAC/B,OAA0B,IAAnB5mE,KAAKg+F,KAAKp3B,IAGnBinB,EAAGtsF,UAAUm9F,GAAK,SAAa93B,GAC7B,OAAyB,IAAlB5mE,KAAKkuC,IAAI04B,IAOlBinB,EAAGI,IAAM,SAAcrnB,GACrB,OAAO,IAAI+3B,EAAI/3B,IAGjBinB,EAAGtsF,UAAUq9F,MAAQ,SAAgBxiB,GAGnC,OAFA34D,GAAQzjB,KAAKiuF,IAAK,yCAClBxqE,EAAyB,IAAlBzjB,KAAKguF,SAAgB,iCACrB5R,EAAIyiB,UAAU7+F,MAAM8+F,UAAU1iB,IAGvCyR,EAAGtsF,UAAUw9F,QAAU,WAErB,OADAt7E,EAAOzjB,KAAKiuF,IAAK,wDACVjuF,KAAKiuF,IAAI+Q,YAAYh/F,OAG9B6tF,EAAGtsF,UAAUu9F,UAAY,SAAoB1iB,GAE3C,OADAp8E,KAAKiuF,IAAM7R,EACJp8E,MAGT6tF,EAAGtsF,UAAU09F,SAAW,SAAmB7iB,GAEzC,OADA34D,GAAQzjB,KAAKiuF,IAAK,yCACXjuF,KAAK8+F,UAAU1iB,IAGxByR,EAAGtsF,UAAU29F,OAAS,SAAiBt4B,GAErC,OADAnjD,EAAOzjB,KAAKiuF,IAAK,sCACVjuF,KAAKiuF,IAAIrqD,IAAI5jC,KAAM4mE,IAG5BinB,EAAGtsF,UAAU49F,QAAU,SAAkBv4B,GAEvC,OADAnjD,EAAOzjB,KAAKiuF,IAAK,uCACVjuF,KAAKiuF,IAAI6E,KAAK9yF,KAAM4mE,IAG7BinB,EAAGtsF,UAAU69F,OAAS,SAAiBx4B,GAErC,OADAnjD,EAAOzjB,KAAKiuF,IAAK,sCACVjuF,KAAKiuF,IAAIp/C,IAAI7uC,KAAM4mE,IAG5BinB,EAAGtsF,UAAU89F,QAAU,SAAkBz4B,GAEvC,OADAnjD,EAAOzjB,KAAKiuF,IAAK,uCACVjuF,KAAKiuF,IAAI8E,KAAK/yF,KAAM4mE,IAG7BinB,EAAGtsF,UAAU+9F,OAAS,SAAiB14B,GAErC,OADAnjD,EAAOzjB,KAAKiuF,IAAK,sCACVjuF,KAAKiuF,IAAIsR,IAAIv/F,KAAM4mE,IAG5BinB,EAAGtsF,UAAUi+F,OAAS,SAAiB54B,GAGrC,OAFAnjD,EAAOzjB,KAAKiuF,IAAK,sCACjBjuF,KAAKiuF,IAAIwR,SAASz/F,KAAM4mE,GACjB5mE,KAAKiuF,IAAIzqD,IAAIxjC,KAAM4mE,IAG5BinB,EAAGtsF,UAAUm+F,QAAU,SAAkB94B,GAGvC,OAFAnjD,EAAOzjB,KAAKiuF,IAAK,sCACjBjuF,KAAKiuF,IAAIwR,SAASz/F,KAAM4mE,GACjB5mE,KAAKiuF,IAAI8I,KAAK/2F,KAAM4mE,IAG7BinB,EAAGtsF,UAAUo+F,OAAS,WAGpB,OAFAl8E,EAAOzjB,KAAKiuF,IAAK,sCACjBjuF,KAAKiuF,IAAI2R,SAAS5/F,MACXA,KAAKiuF,IAAI6M,IAAI96F,OAGtB6tF,EAAGtsF,UAAUs+F,QAAU,WAGrB,OAFAp8E,EAAOzjB,KAAKiuF,IAAK,uCACjBjuF,KAAKiuF,IAAI2R,SAAS5/F,MACXA,KAAKiuF,IAAI8M,KAAK/6F,OAIvB6tF,EAAGtsF,UAAUu+F,QAAU,WAGrB,OAFAr8E,EAAOzjB,KAAKiuF,IAAK,uCACjBjuF,KAAKiuF,IAAI2R,SAAS5/F,MACXA,KAAKiuF,IAAI8R,KAAK//F,OAGvB6tF,EAAGtsF,UAAUy+F,QAAU,WAGrB,OAFAv8E,EAAOzjB,KAAKiuF,IAAK,uCACjBjuF,KAAKiuF,IAAI2R,SAAS5/F,MACXA,KAAKiuF,IAAIgQ,KAAKj+F,OAIvB6tF,EAAGtsF,UAAU0+F,OAAS,WAGpB,OAFAx8E,EAAOzjB,KAAKiuF,IAAK,sCACjBjuF,KAAKiuF,IAAI2R,SAAS5/F,MACXA,KAAKiuF,IAAI2D,IAAI5xF,OAGtB6tF,EAAGtsF,UAAU2+F,OAAS,SAAiBt5B,GAGrC,OAFAnjD,EAAOzjB,KAAKiuF,MAAQrnB,EAAIqnB,IAAK,qBAC7BjuF,KAAKiuF,IAAI2R,SAAS5/F,MACXA,KAAKiuF,IAAI7/C,IAAIpuC,KAAM4mE,IAI5B,IAAIu5B,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQnqF,EAAMpM,GAErBjK,KAAKqW,KAAOA,EACZrW,KAAKiK,EAAI,IAAI4jF,EAAG5jF,EAAG,IACnBjK,KAAK2N,EAAI3N,KAAKiK,EAAEinF,YAChBlxF,KAAKy+B,EAAI,IAAIovD,EAAG,GAAGqN,OAAOl7F,KAAK2N,GAAGolF,KAAK/yF,KAAKiK,GAE5CjK,KAAKi8E,IAAMj8E,KAAKygG,OAiDlB,SAASC,IACPF,EAAOp5F,KACLpH,KACA,OACA,2EA+DJ,SAAS2gG,IACPH,EAAOp5F,KACLpH,KACA,OACA,kEAIJ,SAAS4gG,IACPJ,EAAOp5F,KACLpH,KACA,OACA,yDAIJ,SAAS6gG,IAEPL,EAAOp5F,KACLpH,KACA,QACA,uEA8CJ,SAAS2+F,EAAK/pE,GACZ,GAAiB,iBAANA,EAAgB,CACzB,IAAIksE,EAAQjT,EAAGkT,OAAOnsE,GACtB50B,KAAK40B,EAAIksE,EAAM72F,EACfjK,KAAK8gG,MAAQA,OAEbr9E,EAAOmR,EAAEwpE,IAAI,GAAI,kCACjBp+F,KAAK40B,EAAIA,EACT50B,KAAK8gG,MAAQ,KAkOjB,SAASE,EAAMpsE,GACb+pE,EAAIv3F,KAAKpH,KAAM40B,GAEf50B,KAAK6d,MAAQ7d,KAAK40B,EAAEs8D,YAChBlxF,KAAK6d,MAAQ,IAAO,IACtB7d,KAAK6d,OAAS,GAAM7d,KAAK6d,MAAQ,IAGnC7d,KAAK4kB,EAAI,IAAIipE,EAAG,GAAGqN,OAAOl7F,KAAK6d,OAC/B7d,KAAKg9F,GAAKh9F,KAAKihG,KAAKjhG,KAAK4kB,EAAEk2E,OAC3B96F,KAAKkhG,KAAOlhG,KAAK4kB,EAAEg5E,OAAO59F,KAAK40B,GAE/B50B,KAAKmhG,KAAOnhG,KAAKkhG,KAAK19D,IAAIxjC,KAAK4kB,GAAGq3E,MAAM,GAAG5tD,IAAIruC,KAAK40B,GACpD50B,KAAKmhG,KAAOnhG,KAAKmhG,KAAKvE,KAAK58F,KAAK4kB,GAChC5kB,KAAKmhG,KAAOnhG,KAAK4kB,EAAEiqB,IAAI7uC,KAAKmhG,MA5a9BX,EAAOj/F,UAAUk/F,KAAO,WACtB,IAAIxkB,EAAM,IAAI4R,EAAG,MAEjB,OADA5R,EAAIvhD,MAAQ,IAAIj0B,MAAMoH,KAAK2xC,KAAKx/C,KAAK2N,EAAI,KAClCsuE,GAGTukB,EAAOj/F,UAAU6/F,QAAU,SAAkBx6B,GAG3C,IACIy6B,EADAz8E,EAAIgiD,EAGR,GACE5mE,KAAKqc,MAAMuI,EAAG5kB,KAAKi8E,KAGnBolB,GADAz8E,GADAA,EAAI5kB,KAAKshG,MAAM18E,IACTkuE,KAAK9yF,KAAKi8E,MACPiV,kBACFmQ,EAAOrhG,KAAK2N,GAErB,IAAIugC,EAAMmzD,EAAOrhG,KAAK2N,GAAK,EAAIiX,EAAEu5E,KAAKn+F,KAAKiK,GAgB3C,OAfY,IAARikC,GACFtpB,EAAE8V,MAAM,GAAK,EACb9V,EAAE9jB,OAAS,GACFotC,EAAM,EACftpB,EAAEmuE,KAAK/yF,KAAKiK,QAEI5J,IAAZukB,EAAE28E,MAEJ38E,EAAE28E,QAGF38E,EAAEoqE,SAICpqE,GAGT47E,EAAOj/F,UAAU8a,MAAQ,SAAgBD,EAAOsC,GAC9CtC,EAAMk/E,OAAOt7F,KAAK2N,EAAG,EAAG+Q,IAG1B8hF,EAAOj/F,UAAU+/F,MAAQ,SAAgB16B,GACvC,OAAOA,EAAImwB,KAAK/2F,KAAKy+B,IASvB+uD,EAASkT,EAAMF,GAEfE,EAAKn/F,UAAU8a,MAAQ,SAAgBD,EAAO0+B,GAK5C,IAHA,IAAIjlC,EAAO,QAEP2rF,EAAS3zF,KAAKwC,IAAI+L,EAAMtb,OAAQ,GAC3BD,EAAI,EAAGA,EAAI2gG,EAAQ3gG,IAC1Bi6C,EAAOpgB,MAAM75B,GAAKub,EAAMse,MAAM75B,GAIhC,GAFAi6C,EAAOh6C,OAAS0gG,EAEZplF,EAAMtb,QAAU,EAGlB,OAFAsb,EAAMse,MAAM,GAAK,OACjBte,EAAMtb,OAAS,GAKjB,IAAI2gG,EAAOrlF,EAAMse,MAAM,GAGvB,IAFAogB,EAAOpgB,MAAMogB,EAAOh6C,UAAY2gG,EAAO5rF,EAElChV,EAAI,GAAIA,EAAIub,EAAMtb,OAAQD,IAAK,CAClC,IAAIuY,EAAwB,EAAjBgD,EAAMse,MAAM75B,GACvBub,EAAMse,MAAM75B,EAAI,KAAQuY,EAAOvD,IAAS,EAAM4rF,IAAS,GACvDA,EAAOroF,EAETqoF,KAAU,GACVrlF,EAAMse,MAAM75B,EAAI,IAAM4gG,EACT,IAATA,GAAcrlF,EAAMtb,OAAS,GAC/Bsb,EAAMtb,QAAU,GAEhBsb,EAAMtb,QAAU,GAIpB4/F,EAAKn/F,UAAU+/F,MAAQ,SAAgB16B,GAErCA,EAAIlsC,MAAMksC,EAAI9lE,QAAU,EACxB8lE,EAAIlsC,MAAMksC,EAAI9lE,OAAS,GAAK,EAC5B8lE,EAAI9lE,QAAU,EAId,IADA,IAAI+Q,EAAK,EACAhR,EAAI,EAAGA,EAAI+lE,EAAI9lE,OAAQD,IAAK,CACnC,IAAIkuF,EAAmB,EAAfnoB,EAAIlsC,MAAM75B,GAClBgR,GAAU,IAAJk9E,EACNnoB,EAAIlsC,MAAM75B,GAAU,SAALgR,EACfA,EAAS,GAAJk9E,GAAal9E,EAAK,SAAa,GAUtC,OANkC,IAA9B+0D,EAAIlsC,MAAMksC,EAAI9lE,OAAS,KACzB8lE,EAAI9lE,SAC8B,IAA9B8lE,EAAIlsC,MAAMksC,EAAI9lE,OAAS,IACzB8lE,EAAI9lE,UAGD8lE,GAST4mB,EAASmT,EAAMH,GAQfhT,EAASoT,EAAMJ,GASfhT,EAASqT,EAAQL,GAEjBK,EAAOt/F,UAAU+/F,MAAQ,SAAgB16B,GAGvC,IADA,IAAIkpB,EAAQ,EACHjvF,EAAI,EAAGA,EAAI+lE,EAAI9lE,OAAQD,IAAK,CACnC,IAAIiR,EAA0B,IAAL,EAAf80D,EAAIlsC,MAAM75B,IAAiBivF,EACjCj+E,EAAU,SAALC,EACTA,KAAQ,GAER80D,EAAIlsC,MAAM75B,GAAKgR,EACfi+E,EAAQh+E,EAKV,OAHc,IAAVg+E,IACFlpB,EAAIlsC,MAAMksC,EAAI9lE,UAAYgvF,GAErBlpB,GAITinB,EAAGkT,OAAS,SAAgB1qF,GAE1B,GAAI8pF,EAAO9pF,GAAO,OAAO8pF,EAAO9pF,GAEhC,IAAIyqF,EACJ,GAAa,SAATzqF,EACFyqF,EAAQ,IAAIJ,OACP,GAAa,SAATrqF,EACTyqF,EAAQ,IAAIH,OACP,GAAa,SAATtqF,EACTyqF,EAAQ,IAAIF,MACP,IAAa,WAATvqF,EAGT,MAAM,IAAIxT,MAAM,iBAAmBwT,GAFnCyqF,EAAQ,IAAID,EAMd,OAFAV,EAAO9pF,GAAQyqF,EAERA,GAkBTnC,EAAIp9F,UAAUq+F,SAAW,SAAmB1vF,GAC1CuT,EAAsB,IAAfvT,EAAE89E,SAAgB,iCACzBvqE,EAAOvT,EAAE+9E,IAAK,oCAGhB0Q,EAAIp9F,UAAUk+F,SAAW,SAAmBvvF,EAAG3D,GAC7CkX,EAAqC,IAA7BvT,EAAE89E,SAAWzhF,EAAEyhF,UAAiB,iCACxCvqE,EAAOvT,EAAE+9E,KAAO/9E,EAAE+9E,MAAQ1hF,EAAE0hF,IAC1B,oCAGJ0Q,EAAIp9F,UAAU0/F,KAAO,SAAe/wF,GAClC,OAAIlQ,KAAK8gG,MAAc9gG,KAAK8gG,MAAMM,QAAQlxF,GAAG4uF,UAAU9+F,MAChDkQ,EAAE0sF,KAAK58F,KAAK40B,GAAGkqE,UAAU9+F,OAGlC2+F,EAAIp9F,UAAUqwF,IAAM,SAAc1hF,GAChC,OAAIA,EAAE8yB,SACG9yB,EAAE0rE,QAGJ57E,KAAK40B,EAAEia,IAAI3+B,GAAG4uF,UAAU9+F,OAGjC2+F,EAAIp9F,UAAUqiC,IAAM,SAAc1zB,EAAG3D,GACnCvM,KAAKy/F,SAASvvF,EAAG3D,GAEjB,IAAI+B,EAAM4B,EAAE0zB,IAAIr3B,GAIhB,OAHI+B,EAAI4/B,IAAIluC,KAAK40B,IAAM,GACrBtmB,EAAIykF,KAAK/yF,KAAK40B,GAETtmB,EAAIwwF,UAAU9+F,OAGvB2+F,EAAIp9F,UAAUuxF,KAAO,SAAe5iF,EAAG3D,GACrCvM,KAAKy/F,SAASvvF,EAAG3D,GAEjB,IAAI+B,EAAM4B,EAAE4iF,KAAKvmF,GAIjB,OAHI+B,EAAI4/B,IAAIluC,KAAK40B,IAAM,GACrBtmB,EAAIykF,KAAK/yF,KAAK40B,GAETtmB,GAGTqwF,EAAIp9F,UAAUstC,IAAM,SAAc3+B,EAAG3D,GACnCvM,KAAKy/F,SAASvvF,EAAG3D,GAEjB,IAAI+B,EAAM4B,EAAE2+B,IAAItiC,GAIhB,OAHI+B,EAAI0vF,KAAK,GAAK,GAChB1vF,EAAIwkF,KAAK9yF,KAAK40B,GAETtmB,EAAIwwF,UAAU9+F,OAGvB2+F,EAAIp9F,UAAUwxF,KAAO,SAAe7iF,EAAG3D,GACrCvM,KAAKy/F,SAASvvF,EAAG3D,GAEjB,IAAI+B,EAAM4B,EAAE6iF,KAAKxmF,GAIjB,OAHI+B,EAAI0vF,KAAK,GAAK,GAChB1vF,EAAIwkF,KAAK9yF,KAAK40B,GAETtmB,GAGTqwF,EAAIp9F,UAAUg+F,IAAM,SAAcrvF,EAAG02D,GAEnC,OADA5mE,KAAK4/F,SAAS1vF,GACPlQ,KAAKihG,KAAK/wF,EAAE0rF,MAAMh1B,KAG3B+3B,EAAIp9F,UAAUw1F,KAAO,SAAe7mF,EAAG3D,GAErC,OADAvM,KAAKy/F,SAASvvF,EAAG3D,GACVvM,KAAKihG,KAAK/wF,EAAE6mF,KAAKxqF,KAG1BoyF,EAAIp9F,UAAUiiC,IAAM,SAActzB,EAAG3D,GAEnC,OADAvM,KAAKy/F,SAASvvF,EAAG3D,GACVvM,KAAKihG,KAAK/wF,EAAEszB,IAAIj3B,KAGzBoyF,EAAIp9F,UAAUw5F,KAAO,SAAe7qF,GAClC,OAAOlQ,KAAK+2F,KAAK7mF,EAAGA,EAAE0rE,UAGxB+iB,EAAIp9F,UAAUu5F,IAAM,SAAc5qF,GAChC,OAAOlQ,KAAKwjC,IAAItzB,EAAGA,IAGrByuF,EAAIp9F,UAAUw+F,KAAO,SAAe7vF,GAClC,GAAIA,EAAE8yB,SAAU,OAAO9yB,EAAE0rE,QAEzB,IAAI8lB,EAAO1hG,KAAK40B,EAAEqoE,MAAM,GAIxB,GAHAx5E,EAAOi+E,EAAO,GAAM,GAGP,IAATA,EAAY,CACd,IAAItzD,EAAMpuC,KAAK40B,EAAEgP,IAAI,IAAIiqD,EAAG,IAAIyN,OAAO,GACvC,OAAOt7F,KAAKouC,IAAIl+B,EAAGk+B,GAQrB,IAFA,IAAI6sD,EAAIj7F,KAAK40B,EAAEunE,KAAK,GAChBt3E,EAAI,GACAo2E,EAAEj4D,UAA2B,IAAfi4D,EAAEgC,MAAM,IAC5Bp4E,IACAo2E,EAAEK,OAAO,GAEX73E,GAAQw3E,EAAEj4D,UAEV,IAAI2+D,EAAM,IAAI9T,EAAG,GAAG+Q,MAAM5+F,MACtB4hG,EAAOD,EAAI1B,SAIX4B,EAAO7hG,KAAK40B,EAAEunE,KAAK,GAAGb,OAAO,GAC7BlpB,EAAIpyE,KAAK40B,EAAEs8D,YAGf,IAFA9e,EAAI,IAAIyb,EAAG,EAAIzb,EAAIA,GAAGwsB,MAAM5+F,MAEW,IAAhCA,KAAKouC,IAAIgkC,EAAGyvB,GAAM3zD,IAAI0zD,IAC3BxvB,EAAE+sB,QAAQyC,GAOZ,IAJA,IAAI/hE,EAAI7/B,KAAKouC,IAAIgkC,EAAG6oB,GAChBr2E,EAAI5kB,KAAKouC,IAAIl+B,EAAG+qF,EAAEiB,KAAK,GAAGZ,OAAO,IACjCluE,EAAIptB,KAAKouC,IAAIl+B,EAAG+qF,GAChBrmE,EAAI/P,EACc,IAAfuI,EAAE8gB,IAAIyzD,IAAY,CAEvB,IADA,IAAI1lB,EAAM7uD,EACDvsB,EAAI,EAAoB,IAAjBo7E,EAAI/tC,IAAIyzD,GAAY9gG,IAClCo7E,EAAMA,EAAI0jB,SAEZl8E,EAAO5iB,EAAI+zB,GACX,IAAIroB,EAAIvM,KAAKouC,IAAIvO,EAAG,IAAIguD,EAAG,GAAGqN,OAAOtmE,EAAI/zB,EAAI,IAE7C+jB,EAAIA,EAAE46E,OAAOjzF,GACbszB,EAAItzB,EAAEozF,SACNvyE,EAAIA,EAAEoyE,OAAO3/D,GACbjL,EAAI/zB,EAGN,OAAO+jB,GAGT+5E,EAAIp9F,UAAU08F,KAAO,SAAe/tF,GAClC,IAAI4xF,EAAM5xF,EAAE0tF,OAAO59F,KAAK40B,GACxB,OAAqB,IAAjBktE,EAAI9T,UACN8T,EAAI9T,SAAW,EACRhuF,KAAKihG,KAAKa,GAAK7B,UAEfjgG,KAAKihG,KAAKa,IAIrBnD,EAAIp9F,UAAU6sC,IAAM,SAAcl+B,EAAG02D,GACnC,GAAIA,EAAI5jC,SAAU,OAAO,IAAI6qD,EAAG,GAAG+Q,MAAM5+F,MACzC,GAAoB,IAAhB4mE,EAAIo3B,KAAK,GAAU,OAAO9tF,EAAE0rE,QAEhC,IACImmB,EAAM,IAAIt7F,MAAM,IACpBs7F,EAAI,GAAK,IAAIlU,EAAG,GAAG+Q,MAAM5+F,MACzB+hG,EAAI,GAAK7xF,EACT,IAAK,IAAIrP,EAAI,EAAGA,EAAIkhG,EAAIjhG,OAAQD,IAC9BkhG,EAAIlhG,GAAKb,KAAKwjC,IAAIu+D,EAAIlhG,EAAI,GAAIqP,GAGhC,IAAI5B,EAAMyzF,EAAI,GACV/9D,EAAU,EACVg+D,EAAa,EACbrvF,EAAQi0D,EAAIsqB,YAAc,GAK9B,IAJc,IAAVv+E,IACFA,EAAQ,IAGL9R,EAAI+lE,EAAI9lE,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAI85B,EAAOisC,EAAIlsC,MAAM75B,GACZwG,EAAIsL,EAAQ,EAAGtL,GAAK,EAAGA,IAAK,CACnC,IAAIurF,EAAOj4D,GAAQtzB,EAAK,EACpBiH,IAAQyzF,EAAI,KACdzzF,EAAMtO,KAAK86F,IAAIxsF,IAGL,IAARskF,GAAyB,IAAZ5uD,GAKjBA,IAAY,EACZA,GAAW4uD,GA9BE,KA+BboP,GACwC,IAANnhG,GAAiB,IAANwG,KAE7CiH,EAAMtO,KAAKwjC,IAAIl1B,EAAKyzF,EAAI/9D,IACxBg+D,EAAa,EACbh+D,EAAU,IAXRg+D,EAAa,EAajBrvF,EAAQ,GAGV,OAAOrE,GAGTqwF,EAAIp9F,UAAUs9F,UAAY,SAAoBj4B,GAC5C,IAAIhiD,EAAIgiD,EAAIg2B,KAAK58F,KAAK40B,GAEtB,OAAOhQ,IAAMgiD,EAAMhiD,EAAEg3D,QAAUh3D,GAGjC+5E,EAAIp9F,UAAUy9F,YAAc,SAAsBp4B,GAChD,IAAIt4D,EAAMs4D,EAAIgV,QAEd,OADAttE,EAAI2/E,IAAM,KACH3/E,GAOTu/E,EAAGoU,KAAO,SAAer7B,GACvB,OAAO,IAAIo6B,EAAKp6B,IAmBlB4mB,EAASwT,EAAMrC,GAEfqC,EAAKz/F,UAAUs9F,UAAY,SAAoBj4B,GAC7C,OAAO5mE,KAAKihG,KAAKr6B,EAAIg1B,MAAM57F,KAAK6d,SAGlCmjF,EAAKz/F,UAAUy9F,YAAc,SAAsBp4B,GACjD,IAAIhiD,EAAI5kB,KAAKihG,KAAKr6B,EAAIpjC,IAAIxjC,KAAKkhG,OAE/B,OADAt8E,EAAEqpE,IAAM,KACDrpE,GAGTo8E,EAAKz/F,UAAUw1F,KAAO,SAAe7mF,EAAG3D,GACtC,GAAI2D,EAAE8yB,UAAYz2B,EAAEy2B,SAGlB,OAFA9yB,EAAEwqB,MAAM,GAAK,EACbxqB,EAAEpP,OAAS,EACJoP,EAGT,IAAIkd,EAAIld,EAAE6mF,KAAKxqF,GACXszB,EAAIzS,EAAE4uE,MAAMh8F,KAAK6d,OAAO2lB,IAAIxjC,KAAKmhG,MAAMpF,OAAO/7F,KAAK6d,OAAO2lB,IAAIxjC,KAAK40B,GACnEk8C,EAAI1jD,EAAE2lE,KAAKlzD,GAAGy7D,OAAOt7F,KAAK6d,OAC1BvP,EAAMwiE,EAQV,OANIA,EAAE5iC,IAAIluC,KAAK40B,IAAM,EACnBtmB,EAAMwiE,EAAEiiB,KAAK/yF,KAAK40B,GACTk8C,EAAEktB,KAAK,GAAK,IACrB1vF,EAAMwiE,EAAEgiB,KAAK9yF,KAAK40B,IAGbtmB,EAAIwwF,UAAU9+F,OAGvBghG,EAAKz/F,UAAUiiC,IAAM,SAActzB,EAAG3D,GACpC,GAAI2D,EAAE8yB,UAAYz2B,EAAEy2B,SAAU,OAAO,IAAI6qD,EAAG,GAAGiR,UAAU9+F,MAEzD,IAAIotB,EAAIld,EAAEszB,IAAIj3B,GACVszB,EAAIzS,EAAE4uE,MAAMh8F,KAAK6d,OAAO2lB,IAAIxjC,KAAKmhG,MAAMpF,OAAO/7F,KAAK6d,OAAO2lB,IAAIxjC,KAAK40B,GACnEk8C,EAAI1jD,EAAE2lE,KAAKlzD,GAAGy7D,OAAOt7F,KAAK6d,OAC1BvP,EAAMwiE,EAOV,OANIA,EAAE5iC,IAAIluC,KAAK40B,IAAM,EACnBtmB,EAAMwiE,EAAEiiB,KAAK/yF,KAAK40B,GACTk8C,EAAEktB,KAAK,GAAK,IACrB1vF,EAAMwiE,EAAEgiB,KAAK9yF,KAAK40B,IAGbtmB,EAAIwwF,UAAU9+F,OAGvBghG,EAAKz/F,UAAU08F,KAAO,SAAe/tF,GAGnC,OADUlQ,KAAKihG,KAAK/wF,EAAE0tF,OAAO59F,KAAK40B,GAAG4O,IAAIxjC,KAAKg9F,KACnC8B,UAAU9+F,OAn3GzB,YAq3G4CA,6BC91G5C,IAOIuqJ,EAPA/zE,EAAuB,iBAAZg0E,QAAuBA,QAAU,KAC5CC,EAAej0E,GAAwB,mBAAZA,EAAEr2E,MAC7Bq2E,EAAEr2E,MACF,SAAsBQ,EAAQg9C,EAAU19C,GACxC,OAAOyqJ,SAASnpJ,UAAUpB,MAAMiH,KAAKzG,EAAQg9C,EAAU19C,IAKzDsqJ,EADE/zE,GAA0B,mBAAdA,EAAEm0E,QACCn0E,EAAEm0E,QACVxpJ,OAAOw4I,sBACC,SAAwBh5I,GACvC,OAAOQ,OAAOypJ,oBAAoBjqJ,GAC/Bq0D,OAAO7zD,OAAOw4I,sBAAsBh5I,KAGxB,SAAwBA,GACvC,OAAOQ,OAAOypJ,oBAAoBjqJ,IAQtC,IAAIkqJ,EAAczzI,OAAOo3B,OAAS,SAAqB9uC,GACrD,OAAOA,GAAUA,GAGnB,SAASqU,IACPA,EAAa+2I,KAAK1jJ,KAAKpH,MAEzBnB,EAAOD,QAAUmV,EACjBlV,EAAOD,QAAQmsJ,KAwYf,SAAcC,EAAS30I,GACrB,OAAO,IAAIxW,SAAQ,SAAUV,EAASC,GACpC,SAAS6rJ,EAAc7qJ,GACrB4qJ,EAAQE,eAAe70I,EAAM80I,GAC7B/rJ,EAAOgB,GAGT,SAAS+qJ,IAC+B,mBAA3BH,EAAQE,gBACjBF,EAAQE,eAAe,QAASD,GAElC9rJ,EAAQ,GAAGgI,MAAMC,KAAKlH,YAGxBkrJ,EAA+BJ,EAAS30I,EAAM80I,EAAU,CAAEJ,MAAM,IACnD,UAAT10I,GAMR,SAAuC20I,EAASK,EAASC,GAC7B,mBAAfN,EAAQruE,IACjByuE,EAA+BJ,EAAS,QAASK,EAPO,CAAEN,MAAM,IAA9DQ,CAA8BP,EAASC,OArZ7Cl3I,EAAaA,aAAeA,EAE5BA,EAAaxS,UAAUiqJ,aAAUnrJ,EACjC0T,EAAaxS,UAAUkqJ,aAAe,EACtC13I,EAAaxS,UAAUmqJ,mBAAgBrrJ,EAIvC,IAAIsrJ,EAAsB,GAE1B,SAASC,EAAcj3G,GACrB,GAAwB,mBAAbA,EACT,MAAM,IAAIl0C,UAAU,0EAA4Ek0C,GAsCpG,SAASk3G,EAAiBC,GACxB,YAA2BzrJ,IAAvByrJ,EAAKJ,cACA33I,EAAa43I,oBACfG,EAAKJ,cAmDd,SAASK,EAAaprJ,EAAQmc,EAAM63B,EAAUq3G,GAC5C,IAAIp3H,EACAkgB,EACAm3G,EA1HsBC,EAgJ1B,GApBAN,EAAcj3G,QAGCt0C,KADfy0C,EAASn0C,EAAO6qJ,UAEd12G,EAASn0C,EAAO6qJ,QAAUrqJ,OAAO4D,OAAO,MACxCpE,EAAO8qJ,aAAe,SAIKprJ,IAAvBy0C,EAAOq3G,cACTxrJ,EAAO8T,KAAK,cAAeqI,EACf63B,EAASA,SAAWA,EAASA,SAAWA,GAIpDG,EAASn0C,EAAO6qJ,SAElBS,EAAWn3G,EAAOh4B,SAGHzc,IAAb4rJ,EAEFA,EAAWn3G,EAAOh4B,GAAQ63B,IACxBh0C,EAAO8qJ,kBAeT,GAbwB,mBAAbQ,EAETA,EAAWn3G,EAAOh4B,GAChBkvI,EAAU,CAACr3G,EAAUs3G,GAAY,CAACA,EAAUt3G,GAErCq3G,EACTC,EAASh2G,QAAQtB,GAEjBs3G,EAAStpJ,KAAKgyC,IAIhB/f,EAAIi3H,EAAiBlrJ,IACb,GAAKsrJ,EAASnrJ,OAAS8zB,IAAMq3H,EAASG,OAAQ,CACpDH,EAASG,QAAS,EAGlB,IAAIr9D,EAAI,IAAIlsF,MAAM,+CACEopJ,EAASnrJ,OAAS,IAAMoG,OAAO4V,GADjC,qEAIlBiyE,EAAE14E,KAAO,8BACT04E,EAAEi8D,QAAUrqJ,EACZouF,EAAEjyE,KAAOA,EACTiyE,EAAEhvD,MAAQksH,EAASnrJ,OA7KGorJ,EA8KHn9D,EA7KnBnE,SAAWA,QAAQC,MAAMD,QAAQC,KAAKqhE,GAiL1C,OAAOvrJ,EAcT,SAAS0rJ,IACP,IAAKrsJ,KAAKssJ,MAGR,OAFAtsJ,KAAKW,OAAOuqJ,eAAelrJ,KAAK8c,KAAM9c,KAAKusJ,QAC3CvsJ,KAAKssJ,OAAQ,EACY,IAArBpsJ,UAAUY,OACLd,KAAK20C,SAASvtC,KAAKpH,KAAKW,QAC1BX,KAAK20C,SAASx0C,MAAMH,KAAKW,OAAQT,WAI5C,SAASssJ,EAAU7rJ,EAAQmc,EAAM63B,GAC/B,IAAIuU,EAAQ,CAAEojG,OAAO,EAAOC,YAAQlsJ,EAAWM,OAAQA,EAAQmc,KAAMA,EAAM63B,SAAUA,GACjF83G,EAAUJ,EAAYjxE,KAAKlyB,GAG/B,OAFAujG,EAAQ93G,SAAWA,EACnBuU,EAAMqjG,OAASE,EACRA,EA0HT,SAAS/vE,EAAW/7E,EAAQmc,EAAM4vI,GAChC,IAAI53G,EAASn0C,EAAO6qJ,QAEpB,QAAenrJ,IAAXy0C,EACF,MAAO,GAET,IAAI63G,EAAa73G,EAAOh4B,GACxB,YAAmBzc,IAAfssJ,EACK,GAEiB,mBAAfA,EACFD,EAAS,CAACC,EAAWh4G,UAAYg4G,GAAc,CAACA,GAElDD,EAsDT,SAAyB37E,GAEvB,IADA,IAAIuf,EAAM,IAAI7pF,MAAMsqE,EAAIjwE,QACfD,EAAI,EAAGA,EAAIyvF,EAAIxvF,SAAUD,EAChCyvF,EAAIzvF,GAAKkwE,EAAIlwE,GAAG8zC,UAAYo8B,EAAIlwE,GAElC,OAAOyvF,EA1DLs8D,CAAgBD,GAAcE,EAAWF,EAAYA,EAAW7rJ,QAoBpE,SAASgsJ,EAAchwI,GACrB,IAAIg4B,EAAS90C,KAAKwrJ,QAElB,QAAenrJ,IAAXy0C,EAAsB,CACxB,IAAI63G,EAAa73G,EAAOh4B,GAExB,GAA0B,mBAAf6vI,EACT,OAAO,EACF,QAAmBtsJ,IAAfssJ,EACT,OAAOA,EAAW7rJ,OAItB,OAAO,EAOT,SAAS+rJ,EAAW97E,EAAKpjE,GAEvB,IADA,IAAI6M,EAAO,IAAI/T,MAAMkH,GACZ9M,EAAI,EAAGA,EAAI8M,IAAK9M,EACvB2Z,EAAK3Z,GAAKkwE,EAAIlwE,GAChB,OAAO2Z,EA4CT,SAAS4wI,EAA+BJ,EAAS30I,EAAMs+B,EAAU22G,GAC/D,GAA0B,mBAAfN,EAAQruE,GACb2uE,EAAMP,KACRC,EAAQD,KAAK10I,EAAMs+B,GAEnBq2G,EAAQruE,GAAGtmE,EAAMs+B,OAEd,IAAwC,mBAA7Bq2G,EAAQhpE,iBAYxB,MAAM,IAAIvhF,UAAU,6EAA+EuqJ,GATnGA,EAAQhpE,iBAAiB3rE,GAAM,SAAS02I,EAAavtJ,GAG/C8rJ,EAAMP,MACRC,EAAQgC,oBAAoB32I,EAAM02I,GAEpCp4G,EAASn1C,OAhaf2B,OAAOC,eAAe2S,EAAc,sBAAuB,CACzD/S,YAAY,EACZ2C,IAAK,WACH,OAAOgoJ,GAET/nJ,IAAK,SAASpE,GACZ,GAAmB,iBAARA,GAAoBA,EAAM,GAAKqrJ,EAAYrrJ,GACpD,MAAM,IAAI6R,WAAW,kGAAoG7R,EAAM,KAEjImsJ,EAAsBnsJ,KAI1BuU,EAAa+2I,KAAO,gBAEGzqJ,IAAjBL,KAAKwrJ,SACLxrJ,KAAKwrJ,UAAYrqJ,OAAO6uE,eAAehwE,MAAMwrJ,UAC/CxrJ,KAAKwrJ,QAAUrqJ,OAAO4D,OAAO,MAC7B/E,KAAKyrJ,aAAe,GAGtBzrJ,KAAK0rJ,cAAgB1rJ,KAAK0rJ,oBAAiBrrJ,GAK7C0T,EAAaxS,UAAU0rJ,gBAAkB,SAAyBt/I,GAChE,GAAiB,iBAANA,GAAkBA,EAAI,GAAKk9I,EAAYl9I,GAChD,MAAM,IAAI0D,WAAW,gFAAkF1D,EAAI,KAG7G,OADA3N,KAAK0rJ,cAAgB/9I,EACd3N,MAST+T,EAAaxS,UAAU2rJ,gBAAkB,WACvC,OAAOrB,EAAiB7rJ,OAG1B+T,EAAaxS,UAAUkT,KAAO,SAAcqI,GAE1C,IADA,IAAI7c,EAAO,GACFY,EAAI,EAAGA,EAAIX,UAAUY,OAAQD,IAAKZ,EAAK0C,KAAKzC,UAAUW,IAC/D,IAAIssJ,EAAoB,UAATrwI,EAEXg4B,EAAS90C,KAAKwrJ,QAClB,QAAenrJ,IAAXy0C,EACFq4G,EAAWA,QAA4B9sJ,IAAjBy0C,EAAOn1C,WAC1B,IAAKwtJ,EACR,OAAO,EAGT,GAAIA,EAAS,CACX,IAAI95E,EAGJ,GAFIpzE,EAAKa,OAAS,IAChBuyE,EAAKpzE,EAAK,IACRozE,aAAcxwE,MAGhB,MAAMwwE,EAGR,IAAIjzE,EAAM,IAAIyC,MAAM,oBAAsBwwE,EAAK,KAAOA,EAAG/tE,QAAU,IAAM,KAEzE,MADAlF,EAAIsiF,QAAUrP,EACRjzE,EAGR,IAAIirJ,EAAUv2G,EAAOh4B,GAErB,QAAgBzc,IAAZgrJ,EACF,OAAO,EAET,GAAuB,mBAAZA,EACTZ,EAAaY,EAASrrJ,KAAMC,OAE5B,KAAIiG,EAAMmlJ,EAAQvqJ,OACd87E,EAAYiwE,EAAWxB,EAASnlJ,GACpC,IAASrF,EAAI,EAAGA,EAAIqF,IAAOrF,EACzB4pJ,EAAa7tE,EAAU/7E,GAAIb,KAAMC,GAGrC,OAAO,GAiET8T,EAAaxS,UAAU6rJ,YAAc,SAAqBtwI,EAAM63B,GAC9D,OAAOo3G,EAAa/rJ,KAAM8c,EAAM63B,GAAU,IAG5C5gC,EAAaxS,UAAUo7E,GAAK5oE,EAAaxS,UAAU6rJ,YAEnDr5I,EAAaxS,UAAU8rJ,gBACnB,SAAyBvwI,EAAM63B,GAC7B,OAAOo3G,EAAa/rJ,KAAM8c,EAAM63B,GAAU,IAqBhD5gC,EAAaxS,UAAUwpJ,KAAO,SAAcjuI,EAAM63B,GAGhD,OAFAi3G,EAAcj3G,GACd30C,KAAK28E,GAAG7/D,EAAM0vI,EAAUxsJ,KAAM8c,EAAM63B,IAC7B30C,MAGT+T,EAAaxS,UAAU+rJ,oBACnB,SAA6BxwI,EAAM63B,GAGjC,OAFAi3G,EAAcj3G,GACd30C,KAAKqtJ,gBAAgBvwI,EAAM0vI,EAAUxsJ,KAAM8c,EAAM63B,IAC1C30C,MAIb+T,EAAaxS,UAAU2pJ,eACnB,SAAwBpuI,EAAM63B,GAC5B,IAAIojB,EAAMjjB,EAAQ+7C,EAAUhwF,EAAG0sJ,EAK/B,GAHA3B,EAAcj3G,QAGCt0C,KADfy0C,EAAS90C,KAAKwrJ,SAEZ,OAAOxrJ,KAGT,QAAaK,KADb03D,EAAOjjB,EAAOh4B,IAEZ,OAAO9c,KAET,GAAI+3D,IAASpjB,GAAYojB,EAAKpjB,WAAaA,EACb,KAAtB30C,KAAKyrJ,aACTzrJ,KAAKwrJ,QAAUrqJ,OAAO4D,OAAO,cAEtB+vC,EAAOh4B,GACVg4B,EAAOo2G,gBACTlrJ,KAAKyU,KAAK,iBAAkBqI,EAAMi7C,EAAKpjB,UAAYA,SAElD,GAAoB,mBAATojB,EAAqB,CAGrC,IAFA84B,GAAY,EAEPhwF,EAAIk3D,EAAKj3D,OAAS,EAAGD,GAAK,EAAGA,IAChC,GAAIk3D,EAAKl3D,KAAO8zC,GAAYojB,EAAKl3D,GAAG8zC,WAAaA,EAAU,CACzD44G,EAAmBx1F,EAAKl3D,GAAG8zC,SAC3Bk8C,EAAWhwF,EACX,MAIJ,GAAIgwF,EAAW,EACb,OAAO7wF,KAEQ,IAAb6wF,EACF94B,EAAKl6C,QAiIf,SAAmBk6C,EAAMv9B,GACvB,KAAOA,EAAQ,EAAIu9B,EAAKj3D,OAAQ05B,IAC9Bu9B,EAAKv9B,GAASu9B,EAAKv9B,EAAQ,GAC7Bu9B,EAAK5oD,MAlIGq+I,CAAUz1F,EAAM84B,GAGE,IAAhB94B,EAAKj3D,SACPg0C,EAAOh4B,GAAQi7C,EAAK,SAEQ13D,IAA1By0C,EAAOo2G,gBACTlrJ,KAAKyU,KAAK,iBAAkBqI,EAAMywI,GAAoB54G,GAG1D,OAAO30C,MAGb+T,EAAaxS,UAAUqT,IAAMb,EAAaxS,UAAU2pJ,eAEpDn3I,EAAaxS,UAAUksJ,mBACnB,SAA4B3wI,GAC1B,IAAI8/D,EAAW9nC,EAAQj0C,EAGvB,QAAeR,KADfy0C,EAAS90C,KAAKwrJ,SAEZ,OAAOxrJ,KAGT,QAA8BK,IAA1By0C,EAAOo2G,eAUT,OATyB,IAArBhrJ,UAAUY,QACZd,KAAKwrJ,QAAUrqJ,OAAO4D,OAAO,MAC7B/E,KAAKyrJ,aAAe,QACMprJ,IAAjBy0C,EAAOh4B,KACY,KAAtB9c,KAAKyrJ,aACTzrJ,KAAKwrJ,QAAUrqJ,OAAO4D,OAAO,aAEtB+vC,EAAOh4B,IAEX9c,KAIT,GAAyB,IAArBE,UAAUY,OAAc,CAC1B,IACIvB,EADA4F,EAAOhE,OAAOgE,KAAK2vC,GAEvB,IAAKj0C,EAAI,EAAGA,EAAIsE,EAAKrE,SAAUD,EAEjB,oBADZtB,EAAM4F,EAAKtE,KAEXb,KAAKytJ,mBAAmBluJ,GAK1B,OAHAS,KAAKytJ,mBAAmB,kBACxBztJ,KAAKwrJ,QAAUrqJ,OAAO4D,OAAO,MAC7B/E,KAAKyrJ,aAAe,EACbzrJ,KAKT,GAAyB,mBAFzB48E,EAAY9nC,EAAOh4B,IAGjB9c,KAAKkrJ,eAAepuI,EAAM8/D,QACrB,QAAkBv8E,IAAdu8E,EAET,IAAK/7E,EAAI+7E,EAAU97E,OAAS,EAAGD,GAAK,EAAGA,IACrCb,KAAKkrJ,eAAepuI,EAAM8/D,EAAU/7E,IAIxC,OAAOb,MAoBb+T,EAAaxS,UAAUq7E,UAAY,SAAmB9/D,GACpD,OAAO4/D,EAAW18E,KAAM8c,GAAM,IAGhC/I,EAAaxS,UAAUmsJ,aAAe,SAAsB5wI,GAC1D,OAAO4/D,EAAW18E,KAAM8c,GAAM,IAGhC/I,EAAa+4I,cAAgB,SAAS9B,EAASluI,GAC7C,MAAqC,mBAA1BkuI,EAAQ8B,cACV9B,EAAQ8B,cAAchwI,GAEtBgwI,EAAc1lJ,KAAK4jJ,EAASluI,IAIvC/I,EAAaxS,UAAUurJ,cAAgBA,EAiBvC/4I,EAAaxS,UAAUosJ,WAAa,WAClC,OAAO3tJ,KAAKyrJ,aAAe,EAAIlB,EAAevqJ,KAAKwrJ,SAAW,2BCpa5C,oBAATxsJ,KACVH,EAAOD,QAAUI,KACW,oBAAXiY,OACjBpY,EAAOD,QAAUqY,OAEjBpY,EAAOD,QAAU8rJ,SAAS,cAATA,gCCPlB,IAAIjR,EAAmB,EAAQ,MAE3BmU,EAAiB,EAAQ,MACzBC,EAAc,EAAQ,MACtBC,EAAO,EAAQ,MAEfC,EAAWF,IAEXG,EAAY,WAAc,OAAOD,GAErCtU,EAAiBuU,EAAW,CAC3BH,YAAaA,EACbD,eAAgBA,EAChBE,KAAMA,IAGPjvJ,EAAOD,QAAUovJ,+BChBjB,IAAIJ,EAAiB,EAAQ,MAE7B/uJ,EAAOD,QAAU,WAChB,MAAsB,iBAAX,EAAAgY,GAAwB,EAAAA,GAAU,EAAAA,EAAO/I,OAASA,MAAQ,EAAA+I,EAAOnQ,QAAUA,MAG/E,EAAAmQ,EAFCg3I,gCCJT,IAAI9uJ,EAAS,EAAQ,MACjB+uJ,EAAc,EAAQ,MAE1BhvJ,EAAOD,QAAU,WAChB,IAAImvJ,EAAWF,IACf,GAAI/uJ,EAAOw6I,oBAAqB,CAC/B,IAAIv4I,EAAaI,OAAO8sJ,yBAAyBF,EAAU,gBACtDhtJ,GAAeA,EAAWE,eAAiBF,EAAWC,YAAcD,EAAWG,UAAYk+B,aAAe2uH,KAC9G5sJ,OAAOC,eAAe2sJ,EAAU,aAAc,CAC7C9sJ,cAAc,EACdD,YAAY,EACZtB,MAAOquJ,EACP7sJ,UAAU,QAGoB,iBAAfk+B,YAA2BA,aAAe2uH,IAC3DA,EAAS3uH,WAAa2uH,GAEvB,OAAOA,gCCnBR,IAAIt8I,EAAS,eACTy8I,EAAY,kBAShB,SAASC,EAAU1yH,GACjByyH,EAAU9mJ,KAAKpH,MAEfA,KAAKouJ,OAAS38I,EAAOwH,YAAYwiB,GACjCz7B,KAAKquJ,WAAa5yH,EAClBz7B,KAAKsuJ,aAAe,EACpBtuJ,KAAKuuJ,QAAU,CAAC,EAAG,EAAG,EAAG,GAEzBvuJ,KAAKwuJ,YAAa,EAhBL,EAAQ,KAmBvBhhE,CAAS2gE,EAAUD,GAEnBC,EAAS5sJ,UAAUktJ,WAAa,SAAUjyE,EAAOxjE,EAAU1E,GACzD,IAAI3U,EAAQ,KACZ,IACEK,KAAK07B,OAAO8gD,EAAOxjE,GACnB,MAAO5Y,GACPT,EAAQS,EAGVkU,EAAS3U,IAGXwuJ,EAAS5sJ,UAAUmtJ,OAAS,SAAUp6I,GACpC,IAAI3U,EAAQ,KACZ,IACEK,KAAK2C,KAAK3C,KAAKomB,UACf,MAAOhmB,GACPT,EAAQS,EAGVkU,EAAS3U,IAGXwuJ,EAAS5sJ,UAAUm6B,OAAS,SAAU5vB,EAAMkN,GAE1C,GA3CF,SAAmCpJ,EAAKzH,GACtC,IAAKsJ,EAAOC,SAAS9B,IAAuB,iBAARA,EAClC,MAAM,IAAInP,UAAU0H,qCAwCtBwmJ,CAAyB7iJ,GACrB9L,KAAKwuJ,WAAY,MAAM,IAAI3rJ,MAAM,yBAChC4O,EAAOC,SAAS5F,KAAOA,EAAO2F,EAAO3B,KAAKhE,EAAMkN,IAKrD,IAFA,IAAIuS,EAAQvrB,KAAKouJ,OACb78F,EAAS,EACNvxD,KAAKsuJ,aAAexiJ,EAAKhL,OAASywD,GAAUvxD,KAAKquJ,YAAY,CAClE,IAAK,IAAIxtJ,EAAIb,KAAKsuJ,aAAcztJ,EAAIb,KAAKquJ,YAAa9iI,EAAM1qB,KAAOiL,EAAKylD,KACxEvxD,KAAK4uJ,UACL5uJ,KAAKsuJ,aAAe,EAEtB,KAAO/8F,EAASzlD,EAAKhL,QAAQyqB,EAAMvrB,KAAKsuJ,gBAAkBxiJ,EAAKylD,KAG/D,IAAK,IAAIlqD,EAAI,EAAGyoF,EAAsB,EAAdhkF,EAAKhL,OAAYgvF,EAAQ,IAAKzoF,EACpDrH,KAAKuuJ,QAAQlnJ,IAAMyoF,GACnBA,EAAS9vF,KAAKuuJ,QAAQlnJ,GAAK,WAAgB,GAC/B,IAAGrH,KAAKuuJ,QAAQlnJ,IAAM,WAAeyoF,GAGnD,OAAO9vF,MAGTmuJ,EAAS5sJ,UAAUqtJ,QAAU,WAC3B,MAAM,IAAI/rJ,MAAM,+BAGlBsrJ,EAAS5sJ,UAAU6kB,OAAS,SAAUpN,GACpC,GAAIhZ,KAAKwuJ,WAAY,MAAM,IAAI3rJ,MAAM,yBACrC7C,KAAKwuJ,YAAa,EAElB,IAAIpoI,EAASpmB,KAAK6uJ,eACDxuJ,IAAb2Y,IAAwBoN,EAASA,EAAO1S,SAASsF,IAGrDhZ,KAAKouJ,OAAOpsG,KAAK,GACjBhiD,KAAKsuJ,aAAe,EACpB,IAAK,IAAIztJ,EAAI,EAAGA,EAAI,IAAKA,EAAGb,KAAKuuJ,QAAQ1tJ,GAAK,EAE9C,OAAOulB,GAGT+nI,EAAS5sJ,UAAUstJ,QAAU,WAC3B,MAAM,IAAIhsJ,MAAM,+BAGlBhE,EAAOD,QAAUuvJ,kBC9FjB,IAAInmJ,EAAOpJ,EAEXoJ,EAAKs3E,MAAQ,EAAQ,MACrBt3E,EAAKw9E,OAAS,EAAQ,MACtBx9E,EAAK8mJ,IAAM,EAAQ,MACnB9mJ,EAAK+mJ,OAAS,EAAQ,MACtB/mJ,EAAKynE,KAAO,EAAQ,MAGpBznE,EAAKgnJ,KAAOhnJ,EAAK8mJ,IAAIE,KACrBhnJ,EAAKmF,OAASnF,EAAK8mJ,IAAI3hJ,OACvBnF,EAAKinJ,OAASjnJ,EAAK8mJ,IAAIG,OACvBjnJ,EAAKiwE,OAASjwE,EAAK8mJ,IAAI72E,OACvBjwE,EAAKqF,OAASrF,EAAK8mJ,IAAIzhJ,OACvBrF,EAAKuF,UAAYvF,EAAK+mJ,OAAOxhJ,uCCZ7B,IAAI+xE,EAAQ,EAAQ,MAChB77D,EAAS,EAAQ,MAErB,SAASyrI,IACPlvJ,KAAKq8E,QAAU,KACfr8E,KAAKmvJ,aAAe,EACpBnvJ,KAAKy7B,UAAYz7B,KAAK4B,YAAY65B,UAClCz7B,KAAKovJ,QAAUpvJ,KAAK4B,YAAYwtJ,QAChCpvJ,KAAK4lJ,aAAe5lJ,KAAK4B,YAAYgkJ,aACrC5lJ,KAAKqvJ,UAAYrvJ,KAAK4B,YAAYytJ,UAAY,EAC9CrvJ,KAAK8tF,OAAS,MAEd9tF,KAAKsvJ,QAAUtvJ,KAAKy7B,UAAY,EAChCz7B,KAAKuvJ,SAAWvvJ,KAAKy7B,UAAY,GAEnC78B,EAAQswJ,UAAYA,EAEpBA,EAAU3tJ,UAAUm6B,OAAS,SAAgBtU,EAAKxZ,GAUhD,GARAwZ,EAAMk4D,EAAMr+C,QAAQ7Z,EAAKxZ,GACpB5N,KAAKq8E,QAGRr8E,KAAKq8E,QAAUr8E,KAAKq8E,QAAQrnB,OAAO5tC,GAFnCpnB,KAAKq8E,QAAUj1D,EAGjBpnB,KAAKmvJ,cAAgB/nI,EAAItmB,OAGrBd,KAAKq8E,QAAQv7E,QAAUd,KAAKsvJ,QAAS,CAIvC,IAAI1qI,GAHJwC,EAAMpnB,KAAKq8E,SAGCv7E,OAASd,KAAKsvJ,QAC1BtvJ,KAAKq8E,QAAUj1D,EAAIjgB,MAAMigB,EAAItmB,OAAS8jB,EAAGwC,EAAItmB,QACjB,IAAxBd,KAAKq8E,QAAQv7E,SACfd,KAAKq8E,QAAU,MAEjBj1D,EAAMk4D,EAAMkwE,OAAOpoI,EAAK,EAAGA,EAAItmB,OAAS8jB,EAAG5kB,KAAK8tF,QAChD,IAAK,IAAIjtF,EAAI,EAAGA,EAAIumB,EAAItmB,OAAQD,GAAKb,KAAKuvJ,SACxCvvJ,KAAK4uJ,QAAQxnI,EAAKvmB,EAAGA,EAAIb,KAAKuvJ,UAGlC,OAAOvvJ,MAGTkvJ,EAAU3tJ,UAAU6kB,OAAS,SAAgBxY,GAI3C,OAHA5N,KAAK07B,OAAO17B,KAAKyvJ,QACjBhsI,EAAwB,OAAjBzjB,KAAKq8E,SAELr8E,KAAK6uJ,QAAQjhJ,IAGtBshJ,EAAU3tJ,UAAUkuJ,KAAO,WACzB,IAAIvpJ,EAAMlG,KAAKmvJ,aACXzpJ,EAAQ1F,KAAKsvJ,QACb7wH,EAAI/4B,GAAUQ,EAAMlG,KAAKqvJ,WAAa3pJ,EACtC4I,EAAM,IAAI7H,MAAMg4B,EAAIz+B,KAAKqvJ,WAC7B/gJ,EAAI,GAAK,IACT,IAAK,IAAIzN,EAAI,EAAGA,EAAI49B,EAAG59B,IACrByN,EAAIzN,GAAK,EAIX,GADAqF,IAAQ,EACY,QAAhBlG,KAAK8tF,OAAkB,CACzB,IAAK,IAAI1gE,EAAI,EAAGA,EAAIptB,KAAKqvJ,UAAWjiI,IAClC9e,EAAIzN,KAAO,EAEbyN,EAAIzN,KAAO,EACXyN,EAAIzN,KAAO,EACXyN,EAAIzN,KAAO,EACXyN,EAAIzN,KAAO,EACXyN,EAAIzN,KAAQqF,IAAQ,GAAM,IAC1BoI,EAAIzN,KAAQqF,IAAQ,GAAM,IAC1BoI,EAAIzN,KAAQqF,IAAQ,EAAK,IACzBoI,EAAIzN,KAAa,IAANqF,OAWX,IATAoI,EAAIzN,KAAa,IAANqF,EACXoI,EAAIzN,KAAQqF,IAAQ,EAAK,IACzBoI,EAAIzN,KAAQqF,IAAQ,GAAM,IAC1BoI,EAAIzN,KAAQqF,IAAQ,GAAM,IAC1BoI,EAAIzN,KAAO,EACXyN,EAAIzN,KAAO,EACXyN,EAAIzN,KAAO,EACXyN,EAAIzN,KAAO,EAENusB,EAAI,EAAGA,EAAIptB,KAAKqvJ,UAAWjiI,IAC9B9e,EAAIzN,KAAO,EAGf,OAAOyN,gCCxFT,IAAIgxE,EAAQ,EAAQ,MAChB77D,EAAS,EAAQ,MAErB,SAAS6X,EAAKtzB,EAAMzI,EAAKqO,GACvB,KAAM5N,gBAAgBs7B,GACpB,OAAO,IAAIA,EAAKtzB,EAAMzI,EAAKqO,GAC7B5N,KAAK6rE,KAAO7jE,EACZhI,KAAKy7B,UAAYzzB,EAAKyzB,UAAY,EAClCz7B,KAAKovJ,QAAUpnJ,EAAKonJ,QAAU,EAC9BpvJ,KAAKoD,MAAQ,KACbpD,KAAK0vJ,MAAQ,KAEb1vJ,KAAKkuF,MAAM5O,EAAMr+C,QAAQ1hC,EAAKqO,IAEhC/O,EAAOD,QAAU08B,EAEjBA,EAAK/5B,UAAU2sF,MAAQ,SAAc3uF,GAE/BA,EAAIuB,OAASd,KAAKy7B,YACpBl8B,GAAM,IAAIS,KAAK6rE,MAAOnwC,OAAOn8B,GAAK6mB,UACpC3C,EAAOlkB,EAAIuB,QAAUd,KAAKy7B,WAG1B,IAAK,IAAI56B,EAAItB,EAAIuB,OAAQD,EAAIb,KAAKy7B,UAAW56B,IAC3CtB,EAAIoD,KAAK,GAEX,IAAK9B,EAAI,EAAGA,EAAItB,EAAIuB,OAAQD,IAC1BtB,EAAIsB,IAAM,GAIZ,IAHAb,KAAKoD,OAAQ,IAAIpD,KAAK6rE,MAAOnwC,OAAOn8B,GAG/BsB,EAAI,EAAGA,EAAItB,EAAIuB,OAAQD,IAC1BtB,EAAIsB,IAAM,IACZb,KAAK0vJ,OAAQ,IAAI1vJ,KAAK6rE,MAAOnwC,OAAOn8B,IAGtC+7B,EAAK/5B,UAAUm6B,OAAS,SAAgBtU,EAAKxZ,GAE3C,OADA5N,KAAKoD,MAAMs4B,OAAOtU,EAAKxZ,GAChB5N,MAGTs7B,EAAK/5B,UAAU6kB,OAAS,SAAgBxY,GAEtC,OADA5N,KAAK0vJ,MAAMh0H,OAAO17B,KAAKoD,MAAMgjB,UACtBpmB,KAAK0vJ,MAAMtpI,OAAOxY,iCC3C3B,IAAI0xE,EAAQ,EAAQ,MAChBkG,EAAS,EAAQ,MAEjBmqE,EAASrwE,EAAMqwE,OACfC,EAAQtwE,EAAMswE,MACdC,EAAUvwE,EAAMuwE,QAChBC,EAAUxwE,EAAMwwE,QAChBZ,EAAY1pE,EAAO0pE,UAEvB,SAAS5hJ,IACP,KAAMtN,gBAAgBsN,GACpB,OAAO,IAAIA,EAEb4hJ,EAAU9nJ,KAAKpH,MAEfA,KAAKmM,EAAI,CAAE,WAAY,WAAY,WAAY,UAAY,YAC3DnM,KAAK8tF,OAAS,SA0DhB,SAAS7b,EAAE5qE,EAAG8C,EAAGgoE,EAAGC,GAClB,OAAI/qE,GAAK,GACA8C,EAAIgoE,EAAIC,EACR/qE,GAAK,GACJ8C,EAAIgoE,GAAQhoE,EAAKioE,EAClB/qE,GAAK,IACJ8C,GAAMgoE,GAAMC,EACb/qE,GAAK,GACJ8C,EAAIioE,EAAMD,GAAMC,EAEjBjoE,GAAKgoE,GAAMC,GAGtB,SAAS29E,EAAE1oJ,GACT,OAAIA,GAAK,GACA,EACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,WAGX,SAAS2oJ,EAAG3oJ,GACV,OAAIA,GAAK,GACA,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WACAA,GAAK,GACL,WAEA,EA5FXi4E,EAAMkO,SAASlgF,EAAW4hJ,GAC1BtwJ,EAAQ2O,UAAYD,EAEpBA,EAAUmuB,UAAY,IACtBnuB,EAAU8hJ,QAAU,IACpB9hJ,EAAUs4I,aAAe,IACzBt4I,EAAU+hJ,UAAY,GAEtB/hJ,EAAU/L,UAAUqtJ,QAAU,SAAgBxnI,EAAKzU,GAWjD,IAVA,IAAIyhE,EAAIp0E,KAAKmM,EAAE,GACXkoE,EAAIr0E,KAAKmM,EAAE,GACXmoE,EAAIt0E,KAAKmM,EAAE,GACXooE,EAAIv0E,KAAKmM,EAAE,GACXqoE,EAAIx0E,KAAKmM,EAAE,GACX0iE,EAAKuF,EACLpF,EAAKqF,EACLlF,EAAKmF,EACLjF,EAAKkF,EACLhF,EAAKiF,EACAntE,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAI4oJ,EAAIL,EACND,EACEG,EAAQ17E,EAAGnC,EAAE5qE,EAAGgtE,EAAGC,EAAGC,GAAIntD,EAAIxC,EAAEvd,GAAKsL,GAAQo9I,EAAE1oJ,IAC/Cwd,EAAExd,IACJmtE,GACFJ,EAAII,EACJA,EAAID,EACJA,EAAIo7E,EAAOr7E,EAAG,IACdA,EAAID,EACJA,EAAI47E,EACJA,EAAIL,EACFD,EACEG,EAAQjhF,EAAIoD,EAAE,GAAK5qE,EAAG2nE,EAAIG,EAAIE,GAAKjoD,EAAI8oI,EAAG7oJ,GAAKsL,GAAQq9I,EAAG3oJ,IAC1D8oJ,EAAG9oJ,IACLkoE,GACFV,EAAKU,EACLA,EAAKF,EACLA,EAAKsgF,EAAOxgF,EAAI,IAChBA,EAAKH,EACLA,EAAKihF,EAEPA,EAAIJ,EAAQ7vJ,KAAKmM,EAAE,GAAImoE,EAAGjF,GAC1BrvE,KAAKmM,EAAE,GAAK0jJ,EAAQ7vJ,KAAKmM,EAAE,GAAIooE,EAAGhF,GAClCvvE,KAAKmM,EAAE,GAAK0jJ,EAAQ7vJ,KAAKmM,EAAE,GAAIqoE,EAAG3F,GAClC7uE,KAAKmM,EAAE,GAAK0jJ,EAAQ7vJ,KAAKmM,EAAE,GAAIioE,EAAGpF,GAClChvE,KAAKmM,EAAE,GAAK0jJ,EAAQ7vJ,KAAKmM,EAAE,GAAIkoE,EAAGlF,GAClCnvE,KAAKmM,EAAE,GAAK8jJ,GAGd3iJ,EAAU/L,UAAUstJ,QAAU,SAAgBjhJ,GAC5C,MAAY,QAARA,EACK0xE,EAAM8wE,QAAQpwJ,KAAKmM,EAAG,UAEtBmzE,EAAM+wE,QAAQrwJ,KAAKmM,EAAG,WA0CjC,IAAIyY,EAAI,CACN,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAGhDsrI,EAAK,CACP,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAClD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAClD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IAGhDrrI,EAAI,CACN,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACrD,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACpD,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAGnDsrI,EAAK,CACP,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EACrD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GACpD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EACrD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EACrD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,iCC9ItDvxJ,EAAQowJ,KAAO,EAAf,MACApwJ,EAAQqwJ,OAAS,EAAjB,KACArwJ,EAAQuO,OAAS,EAAjB,MACAvO,EAAQq5E,OAAS,EAAjB,KACAr5E,EAAQyO,OAAS,EAAjB,mCCJA,IAAIiyE,EAAQ,EAAQ,MAChBkG,EAAS,EAAQ,MACjB8qE,EAAY,EAAQ,MAEpBX,EAASrwE,EAAMqwE,OACfC,EAAQtwE,EAAMswE,MACdW,EAAUjxE,EAAMixE,QAChBC,EAAOF,EAAUE,KACjBtB,EAAY1pE,EAAO0pE,UAEnBuB,EAAS,CACX,WAAY,WACZ,WAAY,YAGd,SAASC,IACP,KAAM1wJ,gBAAgB0wJ,GACpB,OAAO,IAAIA,EAEbxB,EAAU9nJ,KAAKpH,MACfA,KAAKmM,EAAI,CACP,WAAY,WAAY,WACxB,UAAY,YACdnM,KAAK2wJ,EAAI,IAAIlqJ,MAAM,IAGrB64E,EAAMkO,SAASkjE,EAAMxB,GACrBrwJ,EAAOD,QAAU8xJ,EAEjBA,EAAKj1H,UAAY,IACjBi1H,EAAKtB,QAAU,IACfsB,EAAK9K,aAAe,GACpB8K,EAAKrB,UAAY,GAEjBqB,EAAKnvJ,UAAUqtJ,QAAU,SAAiBxnI,EAAKzU,GAG7C,IAFA,IAAIg+I,EAAI3wJ,KAAK2wJ,EAEJ9vJ,EAAI,EAAGA,EAAI,GAAIA,IACtB8vJ,EAAE9vJ,GAAKumB,EAAIzU,EAAQ9R,GAErB,KAAMA,EAAI8vJ,EAAE7vJ,OAAQD,IAClB8vJ,EAAE9vJ,GAAK8uJ,EAAOgB,EAAE9vJ,EAAI,GAAK8vJ,EAAE9vJ,EAAI,GAAK8vJ,EAAE9vJ,EAAI,IAAM8vJ,EAAE9vJ,EAAI,IAAK,GAE7D,IAAIqP,EAAIlQ,KAAKmM,EAAE,GACXI,EAAIvM,KAAKmM,EAAE,GACX0zB,EAAI7/B,KAAKmM,EAAE,GACXoxI,EAAIv9I,KAAKmM,EAAE,GACXwL,EAAI3X,KAAKmM,EAAE,GAEf,IAAKtL,EAAI,EAAGA,EAAI8vJ,EAAE7vJ,OAAQD,IAAK,CAC7B,IAAIgkB,KAAOhkB,EAAI,IACXusB,EAAImjI,EAAQZ,EAAOz/I,EAAG,GAAIsgJ,EAAK3rI,EAAGtY,EAAGszB,EAAG09G,GAAI5lI,EAAGg5I,EAAE9vJ,GAAI4vJ,EAAO5rI,IAChElN,EAAI4lI,EACJA,EAAI19G,EACJA,EAAI8vH,EAAOpjJ,EAAG,IACdA,EAAI2D,EACJA,EAAIkd,EAGNptB,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAI+D,GAC7BlQ,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAII,GAC7BvM,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAI0zB,GAC7B7/B,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAIoxI,GAC7Bv9I,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAIwL,IAG/B+4I,EAAKnvJ,UAAUstJ,QAAU,SAAgBjhJ,GACvC,MAAY,QAARA,EACK0xE,EAAM8wE,QAAQpwJ,KAAKmM,EAAG,OAEtBmzE,EAAM+wE,QAAQrwJ,KAAKmM,EAAG,oCCtEjC,IAAImzE,EAAQ,EAAQ,MAChBpyE,EAAS,EAAQ,MAErB,SAAS0jJ,IACP,KAAM5wJ,gBAAgB4wJ,GACpB,OAAO,IAAIA,EAEb1jJ,EAAO9F,KAAKpH,MACZA,KAAKmM,EAAI,CACP,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,YAExCmzE,EAAMkO,SAASojE,EAAQ1jJ,GACvBrO,EAAOD,QAAUgyJ,EAEjBA,EAAOn1H,UAAY,IACnBm1H,EAAOxB,QAAU,IACjBwB,EAAOhL,aAAe,IACtBgL,EAAOvB,UAAY,GAEnBuB,EAAOrvJ,UAAUstJ,QAAU,SAAgBjhJ,GAEzC,MAAY,QAARA,EACK0xE,EAAM8wE,QAAQpwJ,KAAKmM,EAAEhF,MAAM,EAAG,GAAI,OAElCm4E,EAAM+wE,QAAQrwJ,KAAKmM,EAAEhF,MAAM,EAAG,GAAI,qCCzB7C,IAAIm4E,EAAQ,EAAQ,MAChBkG,EAAS,EAAQ,MACjB8qE,EAAY,EAAQ,MACpB7sI,EAAS,EAAQ,MAEjBmsI,EAAQtwE,EAAMswE,MACdE,EAAUxwE,EAAMwwE,QAChBS,EAAUjxE,EAAMixE,QAChBM,EAAOP,EAAUO,KACjBC,EAAQR,EAAUQ,MAClBC,EAAST,EAAUS,OACnBC,EAASV,EAAUU,OACnBC,EAASX,EAAUW,OACnBC,EAASZ,EAAUY,OAEnBhC,EAAY1pE,EAAO0pE,UAEnBiC,EAAW,CACb,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,YAGtC,SAASjkJ,IACP,KAAMlN,gBAAgBkN,GACpB,OAAO,IAAIA,EAEbgiJ,EAAU9nJ,KAAKpH,MACfA,KAAKmM,EAAI,CACP,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,YAEtCnM,KAAKy+B,EAAI0yH,EACTnxJ,KAAK2wJ,EAAI,IAAIlqJ,MAAM,IAErB64E,EAAMkO,SAAStgF,EAAQgiJ,GACvBrwJ,EAAOD,QAAUsO,EAEjBA,EAAOuuB,UAAY,IACnBvuB,EAAOkiJ,QAAU,IACjBliJ,EAAO04I,aAAe,IACtB14I,EAAOmiJ,UAAY,GAEnBniJ,EAAO3L,UAAUqtJ,QAAU,SAAiBxnI,EAAKzU,GAG/C,IAFA,IAAIg+I,EAAI3wJ,KAAK2wJ,EAEJ9vJ,EAAI,EAAGA,EAAI,GAAIA,IACtB8vJ,EAAE9vJ,GAAKumB,EAAIzU,EAAQ9R,GACrB,KAAOA,EAAI8vJ,EAAE7vJ,OAAQD,IACnB8vJ,EAAE9vJ,GAAKivJ,EAAQoB,EAAOP,EAAE9vJ,EAAI,IAAK8vJ,EAAE9vJ,EAAI,GAAIowJ,EAAON,EAAE9vJ,EAAI,KAAM8vJ,EAAE9vJ,EAAI,KAEtE,IAAIqP,EAAIlQ,KAAKmM,EAAE,GACXI,EAAIvM,KAAKmM,EAAE,GACX0zB,EAAI7/B,KAAKmM,EAAE,GACXoxI,EAAIv9I,KAAKmM,EAAE,GACXwL,EAAI3X,KAAKmM,EAAE,GACX8lE,EAAIjyE,KAAKmM,EAAE,GACXyK,EAAI5W,KAAKmM,EAAE,GACXA,EAAInM,KAAKmM,EAAE,GAGf,IADAsX,EAAOzjB,KAAKy+B,EAAE39B,SAAW6vJ,EAAE7vJ,QACtBD,EAAI,EAAGA,EAAI8vJ,EAAE7vJ,OAAQD,IAAK,CAC7B,IAAIo0E,EAAKs7E,EAAQpkJ,EAAG6kJ,EAAOr5I,GAAIk5I,EAAKl5I,EAAGs6D,EAAGr7D,GAAI5W,KAAKy+B,EAAE59B,GAAI8vJ,EAAE9vJ,IACvDq0E,EAAK06E,EAAMmB,EAAO7gJ,GAAI4gJ,EAAM5gJ,EAAG3D,EAAGszB,IACtC1zB,EAAIyK,EACJA,EAAIq7D,EACJA,EAAIt6D,EACJA,EAAIi4I,EAAMrS,EAAGtoE,GACbsoE,EAAI19G,EACJA,EAAItzB,EACJA,EAAI2D,EACJA,EAAI0/I,EAAM36E,EAAIC,GAGhBl1E,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAI+D,GAC7BlQ,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAII,GAC7BvM,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAI0zB,GAC7B7/B,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAIoxI,GAC7Bv9I,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAIwL,GAC7B3X,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAI8lE,GAC7BjyE,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAIyK,GAC7B5W,KAAKmM,EAAE,GAAKyjJ,EAAM5vJ,KAAKmM,EAAE,GAAIA,IAG/Be,EAAO3L,UAAUstJ,QAAU,SAAgBjhJ,GACzC,MAAY,QAARA,EACK0xE,EAAM8wE,QAAQpwJ,KAAKmM,EAAG,OAEtBmzE,EAAM+wE,QAAQrwJ,KAAKmM,EAAG,oCCrGjC,IAAImzE,EAAQ,EAAQ,MAEhBlyE,EAAS,EAAQ,MAErB,SAAS8sE,IACP,KAAMl6E,gBAAgBk6E,GACpB,OAAO,IAAIA,EAEb9sE,EAAOhG,KAAKpH,MACZA,KAAKmM,EAAI,CACP,WAAY,WACZ,WAAY,UACZ,WAAY,UACZ,UAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,YAEhBmzE,EAAMkO,SAAStT,EAAQ9sE,GACvBvO,EAAOD,QAAUs7E,EAEjBA,EAAOz+C,UAAY,KACnBy+C,EAAOk1E,QAAU,IACjBl1E,EAAO0rE,aAAe,IACtB1rE,EAAOm1E,UAAY,IAEnBn1E,EAAO34E,UAAUstJ,QAAU,SAAgBjhJ,GACzC,MAAY,QAARA,EACK0xE,EAAM8wE,QAAQpwJ,KAAKmM,EAAEhF,MAAM,EAAG,IAAK,OAEnCm4E,EAAM+wE,QAAQrwJ,KAAKmM,EAAEhF,MAAM,EAAG,IAAK,qCC/B9C,IAAIm4E,EAAQ,EAAQ,MAChBkG,EAAS,EAAQ,MACjB/hE,EAAS,EAAQ,MAEjB2tI,EAAY9xE,EAAM8xE,UAClBC,EAAY/xE,EAAM+xE,UAClBC,EAAWhyE,EAAMgyE,SACjBC,EAAWjyE,EAAMiyE,SACjBC,EAAQlyE,EAAMkyE,MACdC,EAAWnyE,EAAMmyE,SACjBC,EAAWpyE,EAAMoyE,SACjBC,EAAaryE,EAAMqyE,WACnBC,EAAatyE,EAAMsyE,WACnBC,EAAavyE,EAAMuyE,WACnBC,EAAaxyE,EAAMwyE,WAEnB5C,EAAY1pE,EAAO0pE,UAEnB6C,EAAW,CACb,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,YAGtC,SAAS3kJ,IACP,KAAMpN,gBAAgBoN,GACpB,OAAO,IAAIA,EAEb8hJ,EAAU9nJ,KAAKpH,MACfA,KAAKmM,EAAI,CACP,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,WACZ,WAAY,UACZ,UAAY,WACZ,WAAY,WACdnM,KAAKy+B,EAAIszH,EACT/xJ,KAAK2wJ,EAAI,IAAIlqJ,MAAM,KAyIrB,SAASurJ,EAAQC,EAAIC,EAAIC,EAAIC,EAAIC,GAC/B,IAAIztI,EAAKqtI,EAAKE,GAASF,EAAMI,EAG7B,OAFIztI,EAAI,IACNA,GAAK,YACAA,EAGT,SAAS0tI,EAAQL,EAAIC,EAAIC,EAAIC,EAAIC,EAAIE,GACnC,IAAI3tI,EAAKstI,EAAKE,GAASF,EAAMK,EAG7B,OAFI3tI,EAAI,IACNA,GAAK,YACAA,EAGT,SAAS4tI,EAASP,EAAIC,EAAIC,EAAIC,EAAIC,GAChC,IAAIztI,EAAKqtI,EAAKE,EAAOF,EAAKI,EAAOF,EAAKE,EAGtC,OAFIztI,EAAI,IACNA,GAAK,YACAA,EAGT,SAAS6tI,EAASR,EAAIC,EAAIC,EAAIC,EAAIC,EAAIE,GACpC,IAAI3tI,EAAKstI,EAAKE,EAAOF,EAAKK,EAAOH,EAAKG,EAGtC,OAFI3tI,EAAI,IACNA,GAAK,YACAA,EAGT,SAAS8tI,EAAUT,EAAIC,GACrB,IAIIttI,EAJQwsI,EAAUa,EAAIC,EAAI,IAClBd,EAAUc,EAAID,EAAI,GAClBb,EAAUc,EAAID,EAAI,GAK9B,OAFIrtI,EAAI,IACNA,GAAK,YACAA,EAGT,SAAS+tI,EAAUV,EAAIC,GACrB,IAIIttI,EAJQysI,EAAUY,EAAIC,EAAI,IAClBb,EAAUa,EAAID,EAAI,GAClBZ,EAAUa,EAAID,EAAI,GAK9B,OAFIrtI,EAAI,IACNA,GAAK,YACAA,EAcT,SAASguI,EAAUX,EAAIC,GACrB,IAIIttI,EAJQysI,EAAUY,EAAIC,EAAI,IAClBb,EAAUY,EAAIC,EAAI,IAClBb,EAAUa,EAAID,EAAI,GAK9B,OAFIrtI,EAAI,IACNA,GAAK,YACAA,EAGT,SAASiuI,EAAUZ,EAAIC,GACrB,IAIIttI,EAJQwsI,EAAUa,EAAIC,EAAI,GAClBd,EAAUa,EAAIC,EAAI,GAClBZ,EAASW,EAAIC,EAAI,GAK7B,OAFIttI,EAAI,IACNA,GAAK,YACAA,EAGT,SAASkuI,EAAUb,EAAIC,GACrB,IAIIttI,EAJQysI,EAAUY,EAAIC,EAAI,GAClBb,EAAUY,EAAIC,EAAI,GAClBX,EAASU,EAAIC,EAAI,GAK7B,OAFIttI,EAAI,IACNA,GAAK,YACAA,EAcT,SAASmuI,EAAUd,EAAIC,GACrB,IAIIttI,EAJQysI,EAAUY,EAAIC,EAAI,IAClBb,EAAUa,EAAID,EAAI,IAClBV,EAASU,EAAIC,EAAI,GAK7B,OAFIttI,EAAI,IACNA,GAAK,YACAA,EAxPT06D,EAAMkO,SAASpgF,EAAQ8hJ,GACvBrwJ,EAAOD,QAAUwO,EAEjBA,EAAOquB,UAAY,KACnBruB,EAAOgiJ,QAAU,IACjBhiJ,EAAOw4I,aAAe,IACtBx4I,EAAOiiJ,UAAY,IAEnBjiJ,EAAO7L,UAAUyxJ,cAAgB,SAAuB5rI,EAAKzU,GAI3D,IAHA,IAAIg+I,EAAI3wJ,KAAK2wJ,EAGJ9vJ,EAAI,EAAGA,EAAI,GAAIA,IACtB8vJ,EAAE9vJ,GAAKumB,EAAIzU,EAAQ9R,GACrB,KAAOA,EAAI8vJ,EAAE7vJ,OAAQD,GAAK,EAAG,CAC3B,IAAIoyJ,GAsNWhB,EAtNOtB,EAAE9vJ,EAAI,GAsNTqxJ,EAtNavB,EAAE9vJ,EAAI,GA2NpC+jB,OAAAA,GAAAA,EAJQwsI,EAAUa,EAAIC,EAAI,IAClBd,EAAUc,EAAID,EAAI,IAClBX,EAASW,EAAIC,EAAI,IAGrB,IACNttI,GAAK,YACAA,GA7NDsuI,EAAQH,EAAUpC,EAAE9vJ,EAAI,GAAI8vJ,EAAE9vJ,EAAI,IAClCsyJ,EAAQxC,EAAE9vJ,EAAI,IACduyJ,EAAQzC,EAAE9vJ,EAAI,IACdwyJ,EAAQR,EAAUlC,EAAE9vJ,EAAI,IAAK8vJ,EAAE9vJ,EAAI,KACnCyyJ,EAAQR,EAAUnC,EAAE9vJ,EAAI,IAAK8vJ,EAAE9vJ,EAAI,KACnC0yJ,EAAQ5C,EAAE9vJ,EAAI,IACd2yJ,EAAQ7C,EAAE9vJ,EAAI,IAElB8vJ,EAAE9vJ,GAAK8wJ,EACLsB,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,GACT7C,EAAE9vJ,EAAI,GAAK+wJ,EACTqB,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,GAoMb,IAAmBvB,EAAIC,EAKjBttI,GArMNxX,EAAO7L,UAAUqtJ,QAAU,SAAiBxnI,EAAKzU,GAC/C3S,KAAKgzJ,cAAc5rI,EAAKzU,GAExB,IAiJiBs/I,EAAIC,EAKjBttI,EAtJA+rI,EAAI3wJ,KAAK2wJ,EAET8C,EAAKzzJ,KAAKmM,EAAE,GACZymE,EAAK5yE,KAAKmM,EAAE,GACZunJ,EAAK1zJ,KAAKmM,EAAE,GACZ2mE,EAAK9yE,KAAKmM,EAAE,GACZwnJ,EAAK3zJ,KAAKmM,EAAE,GACZ6mE,EAAKhzE,KAAKmM,EAAE,GACZynJ,EAAK5zJ,KAAKmM,EAAE,GACZ+mE,EAAKlzE,KAAKmM,EAAE,GACZ0nJ,EAAK7zJ,KAAKmM,EAAE,GACZinE,EAAKpzE,KAAKmM,EAAE,GACZ2nJ,EAAK9zJ,KAAKmM,EAAE,IACZ4nJ,EAAK/zJ,KAAKmM,EAAE,IACZ6nJ,EAAKh0J,KAAKmM,EAAE,IACZ8nJ,EAAKj0J,KAAKmM,EAAE,IACZ+nJ,EAAKl0J,KAAKmM,EAAE,IACZgoJ,EAAKn0J,KAAKmM,EAAE,IAEhBsX,EAAOzjB,KAAKy+B,EAAE39B,SAAW6vJ,EAAE7vJ,QAC3B,IAAK,IAAID,EAAI,EAAGA,EAAI8vJ,EAAE7vJ,OAAQD,GAAK,EAAG,CACpC,IAAIoyJ,EAAQiB,EACRhB,EAAQiB,EACRhB,GA+HFvuI,OAAAA,GAAAA,EAJQwsI,EADKa,EA1HO4B,EA0HH3B,EA1HO9+E,EA2HE,IAClBg+E,EAAUa,EAAIC,EAAI,IAClBd,EAAUc,EAAID,EAAI,IAGtB,IACNrtI,GAAK,YACAA,GAjIDwuI,EAAQR,EAAUiB,EAAIzgF,GACtBigF,EAAQrB,EAAQ6B,EAAIzgF,EAAI0gF,EAAIC,EAAIC,GAChCV,EAAQhB,EAAQuB,EAAIzgF,EAAI0gF,EAAIC,EAAIC,EAAIC,GACpCV,EAAQvzJ,KAAKy+B,EAAE59B,GACf2yJ,EAAQxzJ,KAAKy+B,EAAE59B,EAAI,GACnBuzJ,EAAQzD,EAAE9vJ,GACVwzJ,EAAQ1D,EAAE9vJ,EAAI,GAEdyzJ,EAAQzC,EACVoB,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPY,EAAOC,GACLE,EAAQzC,EACVmB,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPC,EAAOC,EACPY,EAAOC,GAETpB,EAAQP,EAAUe,EAAI7gF,GACtBsgF,EAAQP,EAAUc,EAAI7gF,GACtBugF,EAAQX,EAASiB,EAAI7gF,EAAI8gF,EAAI5gF,EAAI6gF,GACjCP,EAAQX,EAASgB,EAAI7gF,EAAI8gF,EAAI5gF,EAAI6gF,EAAI3gF,GAErC,IAAIwhF,EAAQ/C,EAASwB,EAAOC,EAAOC,EAAOC,GACtCqB,EAAQ/C,EAASuB,EAAOC,EAAOC,EAAOC,GAE1Cc,EAAKF,EACLG,EAAKF,EAELD,EAAKF,EACLG,EAAKF,EAELD,EAAKD,EACLE,EAAK3gF,EAELygF,EAAKpC,EAASmC,EAAI1gF,EAAIohF,EAAOC,GAC7BnhF,EAAKs+E,EAASx+E,EAAIA,EAAIohF,EAAOC,GAE7BX,EAAKD,EACLzgF,EAAKF,EAEL2gF,EAAKD,EACL1gF,EAAKF,EAEL4gF,EAAKD,EACL3gF,EAAKF,EAEL6gF,EAAKhC,EAAS6C,EAAOC,EAAOC,EAAOC,GACnC7hF,EAAK8+E,EAAS4C,EAAOC,EAAOC,EAAOC,GAGrCjD,EAAMxxJ,KAAKmM,EAAG,EAAGsnJ,EAAI7gF,GACrB4+E,EAAMxxJ,KAAKmM,EAAG,EAAGunJ,EAAI5gF,GACrB0+E,EAAMxxJ,KAAKmM,EAAG,EAAGwnJ,EAAI3gF,GACrBw+E,EAAMxxJ,KAAKmM,EAAG,EAAGynJ,EAAI1gF,GACrBs+E,EAAMxxJ,KAAKmM,EAAG,EAAG0nJ,EAAIzgF,GACrBo+E,EAAMxxJ,KAAKmM,EAAG,GAAI2nJ,EAAIC,GACtBvC,EAAMxxJ,KAAKmM,EAAG,GAAI6nJ,EAAIC,GACtBzC,EAAMxxJ,KAAKmM,EAAG,GAAI+nJ,EAAIC,IAGxB/mJ,EAAO7L,UAAUstJ,QAAU,SAAgBjhJ,GACzC,MAAY,QAARA,EACK0xE,EAAM8wE,QAAQpwJ,KAAKmM,EAAG,OAEtBmzE,EAAM+wE,QAAQrwJ,KAAKmM,EAAG,qCClNjC,IACIuoJ,EADQ,EAAQ,MACDA,OAYnB,SAAS7D,EAAK1mJ,EAAGgoE,EAAGC,GAClB,OAAQjoE,EAAIgoE,GAAQhoE,EAAKioE,EAI3B,SAAS0+E,EAAM3mJ,EAAGgoE,EAAGC,GACnB,OAAQjoE,EAAIgoE,EAAMhoE,EAAIioE,EAAMD,EAAIC,EAIlC,SAASuiF,EAAIxqJ,EAAGgoE,EAAGC,GACjB,OAAOjoE,EAAIgoE,EAAIC,EAbjBxzE,EAAQ4xJ,KARR,SAAc3rI,EAAG1a,EAAGgoE,EAAGC,GACrB,OAAU,IAANvtD,EACKgsI,EAAK1mJ,EAAGgoE,EAAGC,GACV,IAANvtD,GAAiB,IAANA,EACN8vI,EAAIxqJ,EAAGgoE,EAAGC,GACT,IAANvtD,EACKisI,EAAM3mJ,EAAGgoE,EAAGC,QADrB,GAQFxzE,EAAQiyJ,KAAOA,EAKfjyJ,EAAQkyJ,MAAQA,EAKhBlyJ,EAAQ+1J,IAAMA,EAKd/1J,EAAQmyJ,OAHR,SAAgB5mJ,GACd,OAAOuqJ,EAAOvqJ,EAAG,GAAKuqJ,EAAOvqJ,EAAG,IAAMuqJ,EAAOvqJ,EAAG,KAOlDvL,EAAQoyJ,OAHR,SAAgB7mJ,GACd,OAAOuqJ,EAAOvqJ,EAAG,GAAKuqJ,EAAOvqJ,EAAG,IAAMuqJ,EAAOvqJ,EAAG,KAOlDvL,EAAQqyJ,OAHR,SAAgB9mJ,GACd,OAAOuqJ,EAAOvqJ,EAAG,GAAKuqJ,EAAOvqJ,EAAG,IAAOA,IAAM,GAO/CvL,EAAQsyJ,OAHR,SAAgB/mJ,GACd,OAAOuqJ,EAAOvqJ,EAAG,IAAMuqJ,EAAOvqJ,EAAG,IAAOA,IAAM,iCC5ChD,IAAIsZ,EAAS,EAAQ,MACjB+pE,EAAW,EAAQ,MAIvB,SAASonE,EAAgBxtI,EAAKvmB,GAC5B,OAAqC,QAAZ,MAApBumB,EAAI3R,WAAW5U,OAGhBA,EAAI,GAAKA,EAAI,GAAKumB,EAAItmB,SAGkB,QAAZ,MAAxBsmB,EAAI3R,WAAW5U,EAAI,IA0D7B,SAASg0J,EAAM9lE,GAKb,OAJWA,IAAM,GACLA,IAAM,EAAK,MACXA,GAAK,EAAK,UACN,IAAJA,IAAa,MACV,EAgBjB,SAASi7D,EAAMrvH,GACb,OAAoB,IAAhBA,EAAK75B,OACA,IAAM65B,EAENA,EAIX,SAASm6H,EAAMn6H,GACb,OAAoB,IAAhBA,EAAK75B,OACA,IAAM65B,EACU,IAAhBA,EAAK75B,OACL,KAAO65B,EACS,IAAhBA,EAAK75B,OACL,MAAQ65B,EACQ,IAAhBA,EAAK75B,OACL,OAAS65B,EACO,IAAhBA,EAAK75B,OACL,QAAU65B,EACM,IAAhBA,EAAK75B,OACL,SAAW65B,EACK,IAAhBA,EAAK75B,OACL,UAAY65B,EAEZA,EAhHX/7B,EAAQ4uF,SAAWA,EAyDnB5uF,EAAQqiC,QA7CR,SAAiB7Z,EAAKxZ,GACpB,GAAInH,MAAMC,QAAQ0gB,GAChB,OAAOA,EAAIjgB,QACb,IAAKigB,EACH,MAAO,GACT,IAAI9Y,EAAM,GACV,GAAmB,iBAAR8Y,EACT,GAAKxZ,GAyBE,GAAY,QAARA,EAIT,KAHAwZ,EAAMA,EAAIjL,QAAQ,eAAgB,KAC1Brb,OAAS,GAAM,IACrBsmB,EAAM,IAAMA,GACTvmB,EAAI,EAAGA,EAAIumB,EAAItmB,OAAQD,GAAK,EAC/ByN,EAAI3L,KAAKwS,SAASiS,EAAIvmB,GAAKumB,EAAIvmB,EAAI,GAAI,UAxBzC,IADA,IAAIoJ,EAAI,EACCpJ,EAAI,EAAGA,EAAIumB,EAAItmB,OAAQD,IAAK,CACnC,IAAIg/B,EAAIzY,EAAI3R,WAAW5U,GACnBg/B,EAAI,IACNvxB,EAAIrE,KAAO41B,EACFA,EAAI,MACbvxB,EAAIrE,KAAQ41B,GAAK,EAAK,IACtBvxB,EAAIrE,KAAY,GAAJ41B,EAAU,KACb+0H,EAAgBxtI,EAAKvmB,IAC9Bg/B,EAAI,QAAgB,KAAJA,IAAe,KAA6B,KAAtBzY,EAAI3R,aAAa5U,IACvDyN,EAAIrE,KAAQ41B,GAAK,GAAM,IACvBvxB,EAAIrE,KAAS41B,GAAK,GAAM,GAAM,IAC9BvxB,EAAIrE,KAAS41B,GAAK,EAAK,GAAM,IAC7BvxB,EAAIrE,KAAY,GAAJ41B,EAAU,MAEtBvxB,EAAIrE,KAAQ41B,GAAK,GAAM,IACvBvxB,EAAIrE,KAAS41B,GAAK,EAAK,GAAM,IAC7BvxB,EAAIrE,KAAY,GAAJ41B,EAAU,UAW5B,IAAKh/B,EAAI,EAAGA,EAAIumB,EAAItmB,OAAQD,IAC1ByN,EAAIzN,GAAc,EAATumB,EAAIvmB,GAEjB,OAAOyN,GAUT1P,EAAQ2f,MANR,SAAe6I,GAEb,IADA,IAAI9Y,EAAM,GACDzN,EAAI,EAAGA,EAAIumB,EAAItmB,OAAQD,IAC9ByN,GAAO07I,EAAM5iI,EAAIvmB,GAAG6S,SAAS,KAC/B,OAAOpF,GAWT1P,EAAQi2J,MAAQA,EAYhBj2J,EAAQwxJ,QAVR,SAAiBhpI,EAAK0mE,GAEpB,IADA,IAAIx/E,EAAM,GACDzN,EAAI,EAAGA,EAAIumB,EAAItmB,OAAQD,IAAK,CACnC,IAAIkuF,EAAI3nE,EAAIvmB,GACG,WAAXitF,IACFiB,EAAI8lE,EAAM9lE,IACZzgF,GAAOwmJ,EAAM/lE,EAAEr7E,SAAS,KAE1B,OAAOpF,GAUT1P,EAAQorJ,MAAQA,EAoBhBprJ,EAAQk2J,MAAQA,EAgBhBl2J,EAAQ4wJ,OAdR,SAAgBpoI,EAAKzU,EAAO1M,EAAK6nF,GAC/B,IAAI5nF,EAAMD,EAAM0M,EAChB8Q,EAAOvd,EAAM,GAAM,GAEnB,IADA,IAAIoI,EAAM,IAAI7H,MAAMP,EAAM,GACjBrF,EAAI,EAAG49B,EAAI9rB,EAAO9R,EAAIyN,EAAIxN,OAAQD,IAAK49B,GAAK,EAAG,CACtD,IAAIswD,EAEFA,EADa,QAAXjB,EACG1mE,EAAIqX,IAAM,GAAOrX,EAAIqX,EAAI,IAAM,GAAOrX,EAAIqX,EAAI,IAAM,EAAKrX,EAAIqX,EAAI,GAEjErX,EAAIqX,EAAI,IAAM,GAAOrX,EAAIqX,EAAI,IAAM,GAAOrX,EAAIqX,EAAI,IAAM,EAAKrX,EAAIqX,GACxEnwB,EAAIzN,GAAKkuF,IAAM,EAEjB,OAAOzgF,GAsBT1P,EAAQyxJ,QAlBR,SAAiBjpI,EAAK0mE,GAEpB,IADA,IAAIx/E,EAAM,IAAI7H,MAAmB,EAAb2gB,EAAItmB,QACfD,EAAI,EAAG49B,EAAI,EAAG59B,EAAIumB,EAAItmB,OAAQD,IAAK49B,GAAK,EAAG,CAClD,IAAI7J,EAAIxN,EAAIvmB,GACG,QAAXitF,GACFx/E,EAAImwB,GAAK7J,IAAM,GACftmB,EAAImwB,EAAI,GAAM7J,IAAM,GAAM,IAC1BtmB,EAAImwB,EAAI,GAAM7J,IAAM,EAAK,IACzBtmB,EAAImwB,EAAI,GAAS,IAAJ7J,IAEbtmB,EAAImwB,EAAI,GAAK7J,IAAM,GACnBtmB,EAAImwB,EAAI,GAAM7J,IAAM,GAAM,IAC1BtmB,EAAImwB,EAAI,GAAM7J,IAAM,EAAK,IACzBtmB,EAAImwB,GAAS,IAAJ7J,GAGb,OAAOtmB,GAOT1P,EAAQ81J,OAHR,SAAgB3lE,EAAGxiF,GACjB,OAAQwiF,IAAMxiF,EAAMwiF,GAAM,GAAKxiF,GAOjC3N,EAAQ+wJ,OAHR,SAAgB5gE,EAAGxiF,GACjB,OAAQwiF,GAAKxiF,EAAMwiF,IAAO,GAAKxiF,GAOjC3N,EAAQgxJ,MAHR,SAAe1/I,EAAG3D,GAChB,OAAQ2D,EAAI3D,IAAO,GAOrB3N,EAAQixJ,QAHR,SAAiB3/I,EAAG3D,EAAGszB,GACrB,OAAQ3vB,EAAI3D,EAAIszB,IAAO,GAOzBjhC,EAAQkxJ,QAHR,SAAiB5/I,EAAG3D,EAAGszB,EAAG09G,GACxB,OAAQrtI,EAAI3D,EAAIszB,EAAI09G,IAAO,GAO7B3+I,EAAQ2xJ,QAHR,SAAiBrgJ,EAAG3D,EAAGszB,EAAG09G,EAAG5lI,GAC3B,OAAQzH,EAAI3D,EAAIszB,EAAI09G,EAAI5lI,IAAO,GAajC/Y,EAAQ4yJ,MATR,SAAejgJ,EAAKpL,EAAKstJ,EAAI7gF,GAC3B,IAAI8gF,EAAKniJ,EAAIpL,GAGT0L,EAAM+gE,EAFDrhE,EAAIpL,EAAM,KAEI,EACnB2L,GAAMD,EAAK+gE,EAAK,EAAI,GAAK6gF,EAAKC,EAClCniJ,EAAIpL,GAAO2L,IAAO,EAClBP,EAAIpL,EAAM,GAAK0L,GASjBjT,EAAQ6yJ,SALR,SAAkBgC,EAAI7gF,EAAI8gF,EAAI5gF,GAG5B,OAFUF,EAAKE,IAAQ,EACRF,EAAK,EAAI,GAAK6gF,EAAKC,IACpB,GAQhB90J,EAAQ8yJ,SAJR,SAAkB+B,EAAI7gF,EAAI8gF,EAAI5gF,GAE5B,OADSF,EAAKE,IACA,GAiBhBl0E,EAAQ+yJ,WAbR,SAAoB8B,EAAI7gF,EAAI8gF,EAAI5gF,EAAI6gF,EAAI3gF,EAAI4gF,EAAI1gF,GAC9C,IAAI4c,EAAQ,EACRj+E,EAAK+gE,EAST,OAPAkd,IADAj+E,EAAMA,EAAKihE,IAAQ,GACLF,EAAK,EAAI,EAEvBkd,IADAj+E,EAAMA,EAAKmhE,IAAQ,GACLA,EAAK,EAAI,EAIdygF,EAAKC,EAAKC,EAAKC,GAFxB9jE,IADAj+E,EAAMA,EAAKqhE,IAAQ,GACLA,EAAK,EAAI,KAGT,GAQhBt0E,EAAQgzJ,WAJR,SAAoB6B,EAAI7gF,EAAI8gF,EAAI5gF,EAAI6gF,EAAI3gF,EAAI4gF,EAAI1gF,GAE9C,OADSN,EAAKE,EAAKE,EAAKE,IACV,GAmBhBt0E,EAAQizJ,WAfR,SAAoB4B,EAAI7gF,EAAI8gF,EAAI5gF,EAAI6gF,EAAI3gF,EAAI4gF,EAAI1gF,EAAI2gF,EAAIzgF,GACtD,IAAI0c,EAAQ,EACRj+E,EAAK+gE,EAWT,OATAkd,IADAj+E,EAAMA,EAAKihE,IAAQ,GACLF,EAAK,EAAI,EAEvBkd,IADAj+E,EAAMA,EAAKmhE,IAAQ,GACLA,EAAK,EAAI,EAEvB8c,IADAj+E,EAAMA,EAAKqhE,IAAQ,GACLA,EAAK,EAAI,EAIdugF,EAAKC,EAAKC,EAAKC,EAAKC,GAF7B/jE,IADAj+E,EAAMA,EAAKuhE,IAAQ,GACLA,EAAK,EAAI,KAGT,GAShBx0E,EAAQkzJ,WALR,SAAoB2B,EAAI7gF,EAAI8gF,EAAI5gF,EAAI6gF,EAAI3gF,EAAI4gF,EAAI1gF,EAAI2gF,EAAIzgF,GAGtD,OAFSR,EAAKE,EAAKE,EAAKE,EAAKE,IAEf,GAQhBx0E,EAAQwyJ,UAJR,SAAmBqC,EAAI7gF,EAAIhM,GAEzB,OADSgM,GAAO,GAAKhM,EAAS6sF,IAAO7sF,KACxB,GAQfhoE,EAAQyyJ,UAJR,SAAmBoC,EAAI7gF,EAAIhM,GAEzB,OADS6sF,GAAO,GAAK7sF,EAASgM,IAAOhM,KACxB,GAOfhoE,EAAQ0yJ,SAHR,SAAkBmC,EAAI7gF,EAAIhM,GACxB,OAAO6sF,IAAO7sF,GAQhBhoE,EAAQ2yJ,SAJR,SAAkBkC,EAAI7gF,EAAIhM,GAExB,OADS6sF,GAAO,GAAK7sF,EAASgM,IAAOhM,KACxB,gCCjRf,IAAI5+D,EAAO,EAAQ,MACfs3E,EAAQ,EAAQ,MAChB77D,EAAS,EAAQ,MAErB,SAASshI,EAASh+I,GAChB,KAAM/G,gBAAgB+kJ,GACpB,OAAO,IAAIA,EAASh+I,GACtB/G,KAAKgI,KAAOjB,EAAQiB,KACpBhI,KAAK+0J,aAAehuJ,EAAQguJ,WAE5B/0J,KAAKwhG,OAASxhG,KAAKgI,KAAKonJ,QACxBpvJ,KAAKg1J,WAAajuJ,EAAQiuJ,YAAch1J,KAAKgI,KAAK49I,aAElD5lJ,KAAKi1J,QAAU,KACfj1J,KAAKk1J,eAAiB,KACtBl1J,KAAK+vJ,EAAI,KACT/vJ,KAAKm1J,EAAI,KAET,IAAIvyI,EAAU08D,EAAMr+C,QAAQl6B,EAAQ6b,QAAS7b,EAAQ8+I,YAAc,OAC/D99H,EAAQu3D,EAAMr+C,QAAQl6B,EAAQghB,MAAOhhB,EAAQquJ,UAAY,OACzD1P,EAAOpmE,EAAMr+C,QAAQl6B,EAAQ2+I,KAAM3+I,EAAQ4+I,SAAW,OAC1DliI,EAAOb,EAAQ9hB,QAAWd,KAAKg1J,WAAa,EACrC,mCAAqCh1J,KAAKg1J,WAAa,SAC9Dh1J,KAAKkuF,MAAMtrE,EAASmF,EAAO29H,GAE7B7mJ,EAAOD,QAAUmmJ,EAEjBA,EAASxjJ,UAAU2sF,MAAQ,SAActrE,EAASmF,EAAO29H,GACvD,IAAIvjI,EAAOS,EAAQoyC,OAAOjtC,GAAOitC,OAAO0wF,GAExC1lJ,KAAK+vJ,EAAI,IAAItpJ,MAAMzG,KAAKwhG,OAAS,GACjCxhG,KAAKm1J,EAAI,IAAI1uJ,MAAMzG,KAAKwhG,OAAS,GACjC,IAAK,IAAI3gG,EAAI,EAAGA,EAAIb,KAAKm1J,EAAEr0J,OAAQD,IACjCb,KAAK+vJ,EAAElvJ,GAAK,EACZb,KAAKm1J,EAAEt0J,GAAK,EAGdb,KAAK4uJ,QAAQzsI,GACbniB,KAAKi1J,QAAU,EACfj1J,KAAKk1J,eAAiB,iBAGxBnQ,EAASxjJ,UAAU8zJ,MAAQ,WACzB,OAAO,IAAIrtJ,EAAKynE,KAAKzvE,KAAKgI,KAAMhI,KAAK+vJ,IAGvChL,EAASxjJ,UAAUqtJ,QAAU,SAAgBzsI,GAC3C,IAAImzI,EAAOt1J,KAAKq1J,QACA35H,OAAO17B,KAAKm1J,GACZz5H,OAAO,CAAE,IACrBvZ,IACFmzI,EAAOA,EAAK55H,OAAOvZ,IACrBniB,KAAK+vJ,EAAIuF,EAAKlvI,SACdpmB,KAAKm1J,EAAIn1J,KAAKq1J,QAAQ35H,OAAO17B,KAAKm1J,GAAG/uI,SAChCjE,IAGLniB,KAAK+vJ,EAAI/vJ,KAAKq1J,QACA35H,OAAO17B,KAAKm1J,GACZz5H,OAAO,CAAE,IACTA,OAAOvZ,GACPiE,SACdpmB,KAAKm1J,EAAIn1J,KAAKq1J,QAAQ35H,OAAO17B,KAAKm1J,GAAG/uI,WAGvC2+H,EAASxjJ,UAAUg0J,OAAS,SAAgB3yI,EAASijI,EAAYjiH,EAAK4xH,GAE1C,iBAAf3P,IACT2P,EAAS5xH,EACTA,EAAMiiH,EACNA,EAAa,MAGfjjI,EAAU08D,EAAMr+C,QAAQre,EAASijI,GACjCjiH,EAAM07C,EAAMr+C,QAAQ2C,EAAK4xH,GAEzB/xI,EAAOb,EAAQ9hB,QAAWd,KAAKg1J,WAAa,EACrC,mCAAqCh1J,KAAKg1J,WAAa,SAE9Dh1J,KAAK4uJ,QAAQhsI,EAAQoyC,OAAOpxB,GAAO,KACnC5jC,KAAKi1J,QAAU,GAGjBlQ,EAASxjJ,UAAU6gG,SAAW,SAAkBl8F,EAAK0H,EAAKg2B,EAAK4xH,GAC7D,GAAIx1J,KAAKi1J,QAAUj1J,KAAKk1J,eACtB,MAAM,IAAIryJ,MAAM,sBAGC,iBAAR+K,IACT4nJ,EAAS5xH,EACTA,EAAMh2B,EACNA,EAAM,MAIJg2B,IACFA,EAAM07C,EAAMr+C,QAAQ2C,EAAK4xH,GAAU,OACnCx1J,KAAK4uJ,QAAQhrH,IAIf,IADA,IAAI6xH,EAAO,GACJA,EAAK30J,OAASoF,GACnBlG,KAAKm1J,EAAIn1J,KAAKq1J,QAAQ35H,OAAO17B,KAAKm1J,GAAG/uI,SACrCqvI,EAAOA,EAAKzgG,OAAOh1D,KAAKm1J,GAG1B,IAAI7mJ,EAAMmnJ,EAAKtuJ,MAAM,EAAGjB,GAGxB,OAFAlG,KAAK4uJ,QAAQhrH,GACb5jC,KAAKi1J,UACE31E,EAAM97E,OAAO8K,EAAKV,iBC9G3BhP,EAAQiU,KAAO,SAAUvB,EAAQigD,EAAQ0a,EAAMypF,EAAMC,GACnD,IAAIh+I,EAAGid,EACHghI,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACTl1J,EAAIorE,EAAQ0pF,EAAS,EAAK,EAC1BpY,EAAItxE,GAAQ,EAAI,EAChBpnD,EAAIvT,EAAOigD,EAAS1wD,GAOxB,IALAA,GAAK08I,EAEL5lI,EAAIkN,GAAM,IAAOkxI,GAAU,EAC3BlxI,KAAQkxI,EACRA,GAASH,EACFG,EAAQ,EAAGp+I,EAAS,IAAJA,EAAWrG,EAAOigD,EAAS1wD,GAAIA,GAAK08I,EAAGwY,GAAS,GAKvE,IAHAnhI,EAAIjd,GAAM,IAAOo+I,GAAU,EAC3Bp+I,KAAQo+I,EACRA,GAASL,EACFK,EAAQ,EAAGnhI,EAAS,IAAJA,EAAWtjB,EAAOigD,EAAS1wD,GAAIA,GAAK08I,EAAGwY,GAAS,GAEvE,GAAU,IAANp+I,EACFA,EAAI,EAAIm+I,MACH,IAAIn+I,IAAMk+I,EACf,OAAOjhI,EAAIkpD,IAAsB/4C,EAAAA,GAAdlgB,GAAK,EAAI,GAE5B+P,GAAQ/mB,KAAKugC,IAAI,EAAGsnH,GACpB/9I,GAAQm+I,EAEV,OAAQjxI,GAAK,EAAI,GAAK+P,EAAI/mB,KAAKugC,IAAI,EAAGz2B,EAAI+9I,IAG5C92J,EAAQub,MAAQ,SAAU7I,EAAQ5R,EAAO6xD,EAAQ0a,EAAMypF,EAAMC,GAC3D,IAAIh+I,EAAGid,EAAGiL,EACN+1H,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBG,EAAe,KAATN,EAAc7nJ,KAAKugC,IAAI,GAAI,IAAMvgC,KAAKugC,IAAI,GAAI,IAAM,EAC1DvtC,EAAIorE,EAAO,EAAK0pF,EAAS,EACzBpY,EAAItxE,EAAO,GAAK,EAChBpnD,EAAInlB,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQmO,KAAKC,IAAIpO,GAEb8uC,MAAM9uC,IAAUA,IAAUqlC,EAAAA,GAC5BnQ,EAAI4Z,MAAM9uC,GAAS,EAAI,EACvBiY,EAAIk+I,IAEJl+I,EAAI9J,KAAKE,MAAMF,KAAK8gB,IAAIjvB,GAASmO,KAAK4vE,KAClC/9E,GAASmgC,EAAIhyB,KAAKugC,IAAI,GAAIz2B,IAAM,IAClCA,IACAkoB,GAAK,IAGLngC,GADEiY,EAAIm+I,GAAS,EACNE,EAAKn2H,EAELm2H,EAAKnoJ,KAAKugC,IAAI,EAAG,EAAI0nH,IAEpBj2H,GAAK,IACfloB,IACAkoB,GAAK,GAGHloB,EAAIm+I,GAASD,GACfjhI,EAAI,EACJjd,EAAIk+I,GACKl+I,EAAIm+I,GAAS,GACtBlhI,GAAMl1B,EAAQmgC,EAAK,GAAKhyB,KAAKugC,IAAI,EAAGsnH,GACpC/9I,GAAQm+I,IAERlhI,EAAIl1B,EAAQmO,KAAKugC,IAAI,EAAG0nH,EAAQ,GAAKjoJ,KAAKugC,IAAI,EAAGsnH,GACjD/9I,EAAI,IAID+9I,GAAQ,EAAGpkJ,EAAOigD,EAAS1wD,GAAS,IAAJ+zB,EAAU/zB,GAAK08I,EAAG3oH,GAAK,IAAK8gI,GAAQ,GAI3E,IAFA/9I,EAAKA,GAAK+9I,EAAQ9gI,EAClBghI,GAAQF,EACDE,EAAO,EAAGtkJ,EAAOigD,EAAS1wD,GAAS,IAAJ8W,EAAU9W,GAAK08I,EAAG5lI,GAAK,IAAKi+I,GAAQ,GAE1EtkJ,EAAOigD,EAAS1wD,EAAI08I,IAAU,IAAJ14H,aCnFC,mBAAlB1jB,OAAO4D,OAEhBlG,EAAOD,QAAU,SAAkB6uF,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAKlsF,UAAYJ,OAAO4D,OAAO2oF,EAAUnsF,UAAW,CAClDK,YAAa,CACXlC,MAAO+tF,EACPzsF,YAAY,EACZE,UAAU,EACVD,cAAc,OAOtBpC,EAAOD,QAAU,SAAkB6uF,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIE,EAAW,aACfA,EAASrsF,UAAYmsF,EAAUnsF,UAC/BksF,EAAKlsF,UAAY,IAAIqsF,EACrBH,EAAKlsF,UAAUK,YAAc6rF,oBCrBnC,IAAIuM,EAAK,KAEgB,oBAAdi8D,UACTj8D,EAAKi8D,UAC4B,oBAAjBC,aAChBl8D,EAAKk8D,kBACsB,IAAX,EAAAt/I,EAChBojF,EAAK,EAAApjF,EAAOq/I,WAAa,EAAAr/I,EAAOs/I,aACL,oBAAXj/I,OAChB+iF,EAAK/iF,OAAOg/I,WAAah/I,OAAOi/I,aACP,oBAATl3J,OAChBg7F,EAAKh7F,KAAKi3J,WAAaj3J,KAAKk3J,cAG9Br3J,EAAOD,QAAUo7F,+BCdjB,IAAIm8D,EAAyB,EAAQ,MAErCh1J,OAAOC,eAAexC,EAAS,aAAc,CAC3Cc,OAAO,IAETd,EAAQw3J,kBAAoBA,EAC5Bx3J,EAAQy3J,qBAAuBA,EAC/Bz3J,EAAQ0sC,WAmGR,SAAoBgrH,GAClB,OAAOC,EAAYp2J,MAAMH,KAAME,YAnGjCtB,EAAQ43J,WAAa53J,EAAQ63J,UAAY73J,EAAQ83J,aAAe93J,EAAQ+3J,IAAM/3J,EAAQg4J,QAAUh4J,EAAQi4J,WAAaj4J,EAAQk4J,SAAM,EAEnI,IAAIC,EAAeZ,EAAuB,EAAQ,OAE9Ca,EAAqBb,EAAuB,EAAQ,OAEpDc,EAAWd,EAAuB,EAAQ,IAG9Cv3J,EAAQk4J,IADE,GAGVl4J,EAAQi4J,WADS,IAGjBj4J,EAAQg4J,QADM,MAEd,IAAID,EAAM,CACRO,YAAa,EACbC,yBAA0B,EAE1BC,eAAgB,EAChBC,mBAAoB,GAEtBz4J,EAAQ+3J,IAAMA,EAMd/3J,EAAQ83J,aALW,CACjBY,KAAM,EACNC,IAAK,EACLC,KAAM,GAOR54J,EAAQ63J,UAJQ,CACdgB,cAAe,EACfC,uBAAwB,GAM1B94J,EAAQ43J,WAHS,CACfmB,QAAS,OAGX,IAAIC,EAAoB,CACtB,EAAG,eACH,EAAG,mBACH,EAAG,iCACH,EAAG,yBACH,EAAG,eACH,GAAI,UACJ,MAAQ,YACR,MAAQ,iBACR,MAAQ,sBACR,MAAQ,kBACR,MAAQ,eACR,MAAQ,eACR,MAAQ,0BACR,MAAQ,kBACR,MAAQ,2BACR,MAAQ,uBACR,MAAQ,iBACR,MAAQ,gBACR,MAAQ,4BACR,MAAQ,+BACR,MAAQ,gBACR,MAAQ,qBAGV,SAASxB,EAAkByB,GACzB,OAAIA,KAAcD,EAA0BA,EAAkBC,GACvD,wBAAwB7iG,OAAO6iG,GAOxC,SAASxB,EAAqB7hJ,GAC5B,GAAIA,EAAU,CACZ,GANYoqB,EAMDpqB,IALuB,YAA7B,EAAIyiJ,EAAS9tI,SAASyV,IAAyB,OAANA,GAAgBA,aAAan4B,OAAYm4B,aAAakI,MAK9E,CACpB,GAAI3lC,OAAOI,UAAUiE,eAAe4B,KAAKoN,EAAU,cACjD,MAAO,CACLsjJ,YAAatjJ,EAASqjJ,WACtBjrH,cAAewpH,EAAkB5hJ,EAASqjJ,aAI9C,GAAI12J,OAAOI,UAAUiE,eAAe4B,KAAKoN,EAAU,gBAAkBrT,OAAOI,UAAUiE,eAAe4B,KAAKoN,EAAU,iBAClH,OAAOA,EAIX,MAAO,CACLsjJ,YAAa,MACblrH,cAAep4B,EAASd,YArB9B,IAAgBkrB,EAyBd,MAAO,CACLk5H,YAAa,MACblrH,cAAep4B,EAASd,YAQ5B,SAAS6iJ,IAqCP,OApCAA,GAAc,EAAIS,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASC,EAAQntH,GACrG,OAAOksH,EAAa5tI,QAAQ8uI,MAAK,SAAkBC,GACjD,OACE,OAAQA,EAASz2D,KAAOy2D,EAAS9+I,MAC/B,KAAK,EACH,OAAO8+I,EAASC,OAAO,SAAUttH,EAAUmL,KApG7C,GAoGuD2gH,EAAIO,YAAa,EAAG,GAAGp3J,MAAK,SAAU0U,GACzF,IAAI4jJ,EAAgB5jJ,EAASrN,OAAO,GAChCkxJ,EAAgC,IAAnBD,EAAc,GAAWA,EAAc,GACpDE,EAAW,EAQf,OANI9jJ,EAAS1T,QAAU,IAErBw3J,GAAY9jJ,EAAS,IAAM,KAAOA,EAAS,IAAM,KAAOA,EAAS,IAAM,IAAMA,EAAS,IAAM,IAIvF,CACLsjJ,YAAaO,EACbzrH,cAAewpH,EAAkBiC,GAEjC1sH,UAA2B,IAAhBn3B,EAAS,GACpBg3B,MAAOh3B,EAAS,GAChBi3B,MAAOj3B,EAAS,GAChBk3B,MAAOl3B,EAAS,GAChBs4B,cAA+B,IAAhBt4B,EAAS,GACxB+jJ,UAAWD,EAAS5kJ,SAAS,OAE9B2iJ,IAEL,KAAK,EACL,IAAK,MACH,OAAO6B,EAASrjH,UAGrBmjH,QAEc73J,MAAMH,KAAME,8DCnJ7Bi2J,EAAyB,EAAQ,MAErCh1J,OAAOC,eAAexC,EAAS,aAAc,CAC3Cc,OAAO,IAETd,EAAQ45J,gBAUR,SAAyBt1J,GACvB,GAAY,MAARA,GAAgBA,EAAKpC,OAAS,EAChC,MAAM,IAAI+B,MAAM,iBAGlB,GAAIK,EAAKpC,OAAS,GAChB,MAAM,IAAI+B,MAAM,wCAGlB,IAAI0O,EAAME,EAAOqI,MAAM,EAAI,EAAI5W,EAAKpC,QACpCyQ,EAAIs4F,WAAW3mG,EAAKpC,OAAQ,GAE5B,IAAK,IAAID,EAAI,EAAGA,EAAIqC,EAAKpC,OAAQD,GAAK,EAAG,CACvC,IAAI+9B,EAAI17B,EAAKrC,GAETA,EAAI,IAEN+9B,GAAK,YAGPrtB,EAAIs5F,aAAajsE,EAAG,EAAQ,EAAJ/9B,GAG1B,OAAO0Q,GAhCT3S,EAAQ65J,gBAmCR,SAAyBnC,EAAIoC,EAAKC,EAAKC,GACrC,OAAOC,EAAgB14J,MAAMH,KAAME,YAnCrCtB,EAAQk6J,YAuFR,SAAqBC,EAAKC,GACxB,OAAOC,EAAY94J,MAAMH,KAAME,YAtFjC,IAAI62J,EAAeZ,EAAuB,EAAQ,OAE9Ca,EAAqBb,EAAuB,EAAQ,OAEpD+C,EAAU,EAAQ,MAgCtB,SAASL,IAmCP,OAlCAA,GAAkB,EAAI7B,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASC,EAAQnsI,EAAKstI,EAAUC,EAAU58E,GAClI,OAAOu6E,EAAa5tI,QAAQ8uI,MAAK,SAAkBC,GACjD,OACE,OAAQA,EAASz2D,KAAOy2D,EAAS9+I,MAC/B,KAAK,EACH,OAAO8+I,EAASC,OAAO,SAAUtsI,EAAIgf,UAAUmL,KAAKkjH,EAAQpC,IAAKoC,EAAQvC,IAAIS,eAAgB+B,EAAUC,EAAU58E,EAAO,CAAC08E,EAAQ1C,WAAWmB,QAAS,MAAQ,QAAS73J,MAAK,SAAU0U,GACnL,IAAI4jJ,EAAgB5jJ,EAASrN,OAAO,GAChCkxJ,EAAgC,IAAnBD,EAAc,GAAWA,EAAc,GACpDvrH,GAAe,EAAIqsH,EAAQ9C,mBAAmBiC,GAE/B,QAAfA,GAAwC,QAAfA,IAC3BxrH,EAAe,GAAGmoB,OAAOnoB,EAAc,OAAOmoB,OAAOxgD,EAASrN,MAAM,EAAGqN,EAAS1T,OAAS,GAAG4S,SAAS,WAGvG,IAAI8Q,EAAY,KAMhB,OAJIhQ,EAAS1T,OAAS,IACpB0jB,EAAYhQ,EAASrN,MAAM,EAAGqN,EAAS1T,OAAS,IAG3C,CACL0jB,UAAWA,EACXszI,YAAaO,EACbzrH,cAAeC,KAEhBqsH,EAAQ7C,uBAEb,KAAK,EACL,IAAK,MACH,OAAO6B,EAASrjH,UAGrBmjH,QAEkB73J,MAAMH,KAAME,WAGrC,SAASm5J,EAAkBrtH,GACzB,GAAyB,KAArBA,EAAUlrC,OACZ,MAAM,IAAI+B,MAAM,qDAGlB,IAAIsvE,EAAInmC,EAAU7kC,MAAM,GAAI,IAExBirE,EAAI3gE,EAAO3B,KAAK,CAAC,GAAuB,EAAlBqiE,EAAEA,EAAErxE,OAAS,MACvC,OAAO2Q,EAAOujD,OAAO,CAACod,EAAGpmC,EAAU7kC,MAAM,EAAG,MAO9C,SAAS8xJ,IAyBP,OAxBAA,GAAc,EAAIjC,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASuB,EAASztI,EAAK/f,GAC3G,OAAOirJ,EAAa5tI,QAAQ8uI,MAAK,SAAmBsB,GAClD,OACE,OAAQA,EAAU93D,KAAO83D,EAAUngJ,MACjC,KAAK,EACH,OAAOmgJ,EAAUpB,OAAO,SAAUtsI,EAAIgf,UAAUmL,KAAKkjH,EAAQpC,IAAKoC,EAAQvC,IAAIQ,yBAA0B,EAAG,EAAGrrJ,EAAM,CAACotJ,EAAQ1C,WAAWmB,UAAU73J,MAAK,SAAU0U,GAC/J,IAAI4jJ,EAAgB5jJ,EAASrN,OAAO,GAChCkxJ,EAAgC,IAAnBD,EAAc,GAAWA,EAAc,GACpDoB,EAAK/nJ,EAAO3B,KAAK0E,EAASrN,MAAM,EAAG,KACvC,MAAO,CACLqyJ,GAAIA,EACJvtH,cAAeotH,EAAkBG,GACjC1B,YAAaO,EACbzrH,eAAe,EAAIssH,EAAQ9C,mBAAmBiC,MAE/Ca,EAAQ7C,uBAEb,KAAK,EACL,IAAK,MACH,OAAOkD,EAAU1kH,UAGtBykH,QAEcn5J,MAAMH,KAAME,8DC3H7Bi2J,EAAyB,EAAQ,MAErCh1J,OAAOC,eAAexC,EAAS,aAAc,CAC3Cc,OAAO,IAETd,EAAQ66J,gBAYR,SAAyBv2J,GACvB,IAAKA,GAAwB,IAAhBA,EAAKpC,OAChB,MAAM,IAAI+B,MAAM,iBAGlB,IAAI0O,EAAME,EAAOqI,MAAM,IAMvB,OALAvI,EAAI44F,cAAc,WAAajnG,EAAK,GAAI,GACxCqO,EAAI44F,cAAc,WAAajnG,EAAK,GAAI,GACxCqO,EAAI44F,cAAc,WAAajnG,EAAK,GAAI,GACxCqO,EAAI44F,cAAcjnG,EAAK,GAAI,IAC3BqO,EAAI44F,cAAcjnG,EAAK,GAAI,IACpBqO,GAtBT3S,EAAQ86J,gBAyBR,SAAyBpD,EAAIoC,EAAKC,EAAKC,GACrC,OAAOC,EAAgB14J,MAAMH,KAAME,YAzBrCtB,EAAQ+6J,YAyDR,SAAqBZ,EAAKC,GACxB,OAAOC,EAAY94J,MAAMH,KAAME,YAxDjC,IAAI62J,EAAeZ,EAAuB,EAAQ,OAE9Ca,EAAqBb,EAAuB,EAAQ,OAEpDyD,EAAW,EAAQ,MAEnBV,EAAU,EAAQ,MAoBtB,SAASL,IA0BP,OAzBAA,GAAkB,EAAI7B,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASC,EAAQnsI,EAAKstI,EAAUC,EAAU58E,GAClI,IAAIq9E,EACJ,OAAO9C,EAAa5tI,QAAQ8uI,MAAK,SAAkBC,GACjD,OACE,OAAQA,EAASz2D,KAAOy2D,EAAS9+I,MAC/B,KAAK,EAWH,OAVAygJ,EAAcX,EAAQxC,aAAaa,IAElB,IAAb4B,IACFU,EAAcX,EAAQxC,aAAaY,MAGjC6B,IAAaC,IACfS,EAAcX,EAAQxC,aAAac,MAG9BU,EAASC,OAAO,UAAU,EAAIyB,EAASnB,iBAAiB5sI,EAAKguI,EAAa,EAAGr9E,IAEtF,KAAK,EACL,IAAK,MACH,OAAO07E,EAASrjH,UAGrBmjH,QAEkB73J,MAAMH,KAAME,WAOrC,SAAS+4J,IAyBP,OAxBAA,GAAc,EAAIjC,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASuB,EAASztI,EAAK/f,GAC3G,OAAOirJ,EAAa5tI,QAAQ8uI,MAAK,SAAmBsB,GAClD,OACE,OAAQA,EAAU93D,KAAO83D,EAAUngJ,MACjC,KAAK,EACH,OAAOmgJ,EAAUpB,OAAO,SAAUtsI,EAAIgf,UAAUmL,KAAKkjH,EAAQpC,IAAKoC,EAAQvC,IAAIU,mBAAoB,EAAG,EAAGvrJ,EAAM,CAACotJ,EAAQ1C,WAAWmB,UAAU73J,MAAK,SAAU0U,GACzJ,IAAI4jJ,EAAgB5jJ,EAASrN,OAAO,GAChCkxJ,EAAgC,IAAnBD,EAAc,GAAWA,EAAc,GAExD,MAAO,CACLoB,GAAI,oBACJvtH,cAHiBx6B,EAAO3B,KAAK0E,EAASrN,MAAM,EAAG,KAI/C2wJ,YAAaO,EACbzrH,eAAe,EAAIssH,EAAQ9C,mBAAmBiC,MAE/Ca,EAAQ7C,uBAEb,KAAK,EACL,IAAK,MACH,OAAOkD,EAAU1kH,UAGtBykH,QAEcn5J,MAAMH,KAAME,8DC7F7Bi2J,EAAyB,EAAQ,MAErCh1J,OAAOC,eAAexC,EAAS,aAAc,CAC3Cc,OAAO,IAETd,EAAA,aAAkB,EAElB,IAAIm4J,EAAeZ,EAAuB,EAAQ,OAE9Ca,EAAqBb,EAAuB,EAAQ,OAEpD2D,EAAmB3D,EAAuB,EAAQ,OAElD4D,EAAgB5D,EAAuB,EAAQ,OAE/C6D,EAAU7D,EAAuB,EAAQ,OAEzC8D,EAAU9D,EAAuB,EAAQ,OAEzC+D,EAAQ/D,EAAuB,EAAQ,OAEvCyD,EAAW,EAAQ,MAEnBO,EAAY,EAAQ,MAEpBjB,EAAU,EAAQ,MAkBlBkB,EAAyB,WAC3B,SAASA,EAAUvvH,GACjB,IAAIwvH,EAAcn6J,UAAUY,OAAS,QAAsBT,IAAjBH,UAAU,GAAmBA,UAAU,GAAKg5J,EAAQtC,QAG9F,IAFA,EAAIkD,EAAiB3wI,SAASnpB,KAAMo6J,IAE/BvvH,EACH,MAAM,IAAIhoC,MAAM,kCAGlB7C,KAAK6qC,UAAYA,EACjBA,EAAUyvH,sBAAsBt6J,KAAM,CAAC,aAAc,OAAQ,sBAAuB,UAAW,aAAc,mBAAoBq6J,GAyc1H,IACDE,EAtCAC,EAhDAC,EAhDAC,EAvDAC,EAhEAC,EApEAC,EAnCAC,EA5CAC,EApDAC,EA+iBR,OAljBA,EAAIjB,EAAc5wI,SAASixI,EAAW,CAAC,CACrC76J,IAAK,gBACLG,OACMs7J,GAAiB,EAAIhE,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASC,EAAQ90J,GAC5G,OAAO6zJ,EAAa5tI,QAAQ8uI,MAAK,SAAkBC,GACjD,OACE,OAAQA,EAASz2D,KAAOy2D,EAAS9+I,MAC/B,KAAK,EAEH,OADA8+I,EAAS9+I,KAAO,GACT,EAAI8/I,EAAQ5tH,YAAYtrC,KAAK6qC,WAEtC,KAAK,EAGH,GAFA7qC,KAAKi7J,gBAAkB/C,EAASlrI,KAE1BhtB,KAAKi7J,gBAAgBnD,cAAgBoB,EAAQ1C,WAAWmB,QAAU,CACtEO,EAAS9+I,KAAO,EAChB,MAGF,MAAMpZ,KAAKi7J,gBAEb,KAAK,EACH/C,EAASgD,GAAKl7J,KAAKi7J,gBAAgBzvH,MACnC0sH,EAAS9+I,KAAuB,IAAhB8+I,EAASgD,GAAW,EAAoB,IAAhBhD,EAASgD,GAAW,EAAI,GAChE,MAEF,KAAK,EACH,OAAOhD,EAASC,OAAO,UAAU,EAAIyB,EAASpB,iBAAiBt1J,IAEjE,KAAK,EACH,OAAOg1J,EAASC,OAAO,UAAU,EAAIgC,EAAUV,iBAAiBv2J,IAElE,KAAK,GACH,OAAOg1J,EAASC,OAAO,SAAU,CAC/BL,YAAa,MACblrH,cAAe,iCAGnB,KAAK,GACL,IAAK,MACH,OAAOsrH,EAASrjH,UAGrBmjH,EAASh4J,UAGd,SAAuBs2J,GACrB,OAAO0E,EAAe76J,MAAMH,KAAME,cAKrC,CACDX,IAAK,gBACLG,OACMq7J,GAAiB,EAAI/D,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASuB,EAASp2J,EAAMoC,GACnH,IAAI61J,EAAgB9mB,EAAQ/iI,EAAQzQ,EAAGoF,EACvC,OAAO8wJ,EAAa5tI,QAAQ8uI,MAAK,SAAmBsB,GAClD,OACE,OAAQA,EAAU93D,KAAO83D,EAAUngJ,MACjC,KAAK,EAEH,OADAmgJ,EAAUngJ,KAAO,EACVpZ,KAAKo7J,cAAcl4J,GAE5B,KAAK,EAMH,IALAi4J,EAAiB5B,EAAUvsI,MAC3BqnH,EAAS,IACF1xI,KAAKw4J,GACZ7pJ,EAASG,EAAO3B,KAAKxK,GAEhBzE,EAAI,EAAGA,EAAIyQ,EAAOxQ,OAAQD,GAAKq4J,EAAQrC,WAC1C5wJ,EAAMpF,EAAIq4J,EAAQrC,WAEdh2J,EAAIyQ,EAAOxQ,SACbmF,EAAMqL,EAAOxQ,QAGfuzI,EAAO1xI,KAAK2O,EAAOnK,MAAMtG,EAAGoF,IAG9B,OAAOszJ,EAAUpB,OAAO,SAAU9jB,GAEpC,KAAK,EACL,IAAK,MACH,OAAOklB,EAAU1kH,UAGtBykH,EAAUt5J,UAGf,SAAuB04J,EAAKC,GAC1B,OAAOoC,EAAe56J,MAAMH,KAAME,cAKrC,CACDX,IAAK,aACLG,OACMo7J,GAAe,EAAI9D,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASsD,IAClG,OAAOtE,EAAa5tI,QAAQ8uI,MAAK,SAAmBqD,GAClD,OACE,OAAQA,EAAU75D,KAAO65D,EAAUliJ,MACjC,KAAK,EAGH,OAFAkiJ,EAAU75D,KAAO,EACjB65D,EAAUliJ,KAAO,GACV,EAAI8/I,EAAQ5tH,YAAYtrC,KAAK6qC,WAEtC,KAAK,EAEH,OADA7qC,KAAKi7J,gBAAkBK,EAAUtuI,KAC1BsuI,EAAUnD,OAAO,SAAUn4J,KAAKi7J,iBAEzC,KAAK,EAGH,OAFAK,EAAU75D,KAAO,EACjB65D,EAAUJ,GAAKI,EAAiB,MAAE,GAC3BA,EAAUnD,OAAO,UAAU,EAAIe,EAAQ7C,sBAAsBiF,EAAUJ,KAEhF,KAAK,GACL,IAAK,MACH,OAAOI,EAAUzmH,UAGtBwmH,EAAUr7J,KAAM,CAAC,CAAC,EAAG,SAG1B,WACE,OAAO86J,EAAa36J,MAAMH,KAAME,cAKnC,CACDX,IAAK,UACLG,OACMm7J,GAAW,EAAI7D,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASwD,IAC9F,OAAOxE,EAAa5tI,QAAQ8uI,MAAK,SAAmBuD,GAClD,OACE,OAAQA,EAAU/5D,KAAO+5D,EAAUpiJ,MACjC,KAAK,EACH,OAAOoiJ,EAAUrD,OAAO,SAAUn4J,KAAK6qC,UAAUmL,KAAK,IAAM,EAAM,EAAG,GAAGl2C,MAAK,SAAU0U,GACrF,IAAI4jJ,EAAgB5jJ,EAASrN,OAAO,GAChCkxJ,EAAgC,IAAnBD,EAAc,GAAWA,EAAc,GACpD3xI,EAAS,GACT8lB,EAAU,MACV2lG,EAAa,MACbupB,EAAU,EACVC,EAAa,EAEjB,GAAoB,IAAhBlnJ,EAAS,GAEXiS,EAAOmmB,cAAgB,oCACvBnmB,EAAOqxI,YAAc,UAChB,CACL,IAAI6D,EAAannJ,EAAS,GAC1B+3B,EAAU/3B,EAASrN,MAAM,EAAG,EAAIw0J,GAAYjoJ,SAAS,SACrD,IAAIhQ,EAAM,EAAIi4J,EACVC,EAAgBpnJ,EAAS9Q,GAC7BA,GAAO,EACPwuI,EAAa19H,EAASrN,MAAMzD,EAAKA,EAAMk4J,GAAeloJ,SAAS,SAI/D+nJ,EAFkBjnJ,EADlB9Q,GAAOk4J,GAIPF,EAAalnJ,EAFb9Q,GAAO,GAKT,MAAO,CACLo0J,YAAaO,EACbzrH,eAAe,EAAIssH,EAAQ9C,mBAAmBiC,GAE9C9rH,QAASA,EACT2lG,WAAYA,EACZupB,QAASA,EACTC,WAAYA,EAEZG,cAAoC,IAAP,EAAbH,GAEhBI,qBAA2C,IAAP,EAAbJ,GAEvBK,eAAqC,IAAP,EAAbL,GAEjBM,mBAA2C,IAAT,IAAbN,MAEtBxC,EAAQ7C,uBAEb,KAAK,EACL,IAAK,MACH,OAAOmF,EAAU3mH,UAGtB0mH,EAAUv7J,UAGf,WACE,OAAO66J,EAAS16J,MAAMH,KAAME,cAK/B,CACDX,IAAK,aACLG,OACMk7J,GAAc,EAAI5D,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASkE,IACjG,OAAOlF,EAAa5tI,QAAQ8uI,MAAK,SAAmBiE,GAClD,OACE,OAAQA,EAAUz6D,KAAOy6D,EAAU9iJ,MACjC,KAAK,EACH,OAAO8iJ,EAAU/D,OAAO,SAAUn4J,KAAK6qC,UAAUmL,KAAK,IAAM,EAAM,EAAG,EAAGvkC,EAAO3B,KAAK,IAAK,CAACopJ,EAAQ1C,WAAWmB,QAAS,QAAS73J,MAAK,SAAU0U,GAC5I,IAAI4jJ,EAAgB5jJ,EAASrN,OAAO,GAChCkxJ,EAAgC,IAAnBD,EAAc,GAAWA,EAAc,GAExD,GAAmB,QAAfC,EACF,MAAO,CACLP,YAAaO,EACbzrH,cAAe,mDAInB,IAAI0rH,EAAW9jJ,EAASrN,MAAM,EAAG,GAAGuM,SAAS,OACzCvN,EAAM,EACNg2J,EAA0B3nJ,EAASrO,GACvCA,GAAO,EACP,IAAIi2J,EAAY5nJ,EAASrN,MAAMhB,EAAKA,EAAMg2J,GAAyBzoJ,WAE/D2oJ,EAAW7nJ,EADfrO,GAAOg2J,GAEPh2J,GAAO,EACP,IAAIm2J,EAAO9nJ,EAASrN,MAAMhB,EAAKA,EAAMk2J,GAAU3oJ,SAAS,OAEpD6oJ,EAAgB/nJ,EADpBrO,GAAOk2J,GAEPl2J,GAAO,EAEP,IAAI81E,EAAMznE,EAASrN,MAAMhB,EAAKA,EAAMo2J,GAEL,IAA3BtgF,EAAIsgF,EAAgB,KACtBtgF,EAAMznE,EAASrN,MAAMhB,EAAKA,EAAMo2J,EAAgB,IAGlD,IAAIC,EAAavgF,EAAIvoE,WACrB,MAAO,CACLokJ,YAAaO,EACbzrH,eAAe,EAAIssH,EAAQ9C,mBAAmBiC,GAE9CC,SAAUA,EACV8D,UAAWA,EACXE,KAAMA,EACNE,WAAYA,KAEbtD,EAAQ7C,uBAEb,KAAK,EACL,IAAK,MACH,OAAO6F,EAAUrnH,UAGtBonH,EAAUj8J,UAGf,WACE,OAAO46J,EAAYz6J,MAAMH,KAAME,cAKlC,CACDX,IAAK,YACLG,OACMi7J,GAAa,EAAI3D,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAAS0E,EAASv5J,GACzG,IAAIi4J,EAAgBrvJ,EACpB,OAAOirJ,EAAa5tI,QAAQ8uI,MAAK,SAAmByE,GAClD,OACE,OAAQA,EAAUj7D,KAAOi7D,EAAUtjJ,MACjC,KAAK,EAGH,OAFAsjJ,EAAUj7D,KAAO,EACjBi7D,EAAUtjJ,KAAO,EACVpZ,KAAKo7J,cAAcl4J,GAE5B,KAAK,EACHi4J,EAAiBuB,EAAU1vI,KAC3B0vI,EAAUxB,GAAKl7J,KAAKi7J,gBAAgBzvH,MACpCkxH,EAAUtjJ,KAAwB,IAAjBsjJ,EAAUxB,GAAW,EAAqB,IAAjBwB,EAAUxB,GAAW,EAAI,GACnE,MAEF,KAAK,EACH,OAAOwB,EAAUvE,OAAO,UAAU,EAAIyB,EAASd,aAAa94J,KAAMm7J,IAEpE,KAAK,EAEH,OADArvJ,EAAO2F,EAAOujD,OAAO,CAAColG,EAAUuC,aAAa,UAAWxB,IACjDuB,EAAUvE,OAAO,UAAU,EAAIgC,EAAUR,aAAa35J,KAAM8L,IAErE,KAAK,GACH,OAAO4wJ,EAAUvE,OAAO,SAAU,CAChCL,YAAa,MACblrH,cAAe,iCAGnB,KAAK,GACH8vH,EAAUtjJ,KAAO,GACjB,MAEF,KAAK,GAGH,OAFAsjJ,EAAUj7D,KAAO,GACjBi7D,EAAUzZ,GAAKyZ,EAAiB,MAAE,GAC3BA,EAAUvE,OAAO,UAAU,EAAIe,EAAQ7C,sBAAsBqG,EAAUzZ,KAEhF,KAAK,GACL,IAAK,MACH,OAAOyZ,EAAU7nH,UAGtB4nH,EAAUz8J,KAAM,CAAC,CAAC,EAAG,UAG1B,SAAmB44J,GACjB,OAAO+B,EAAWx6J,MAAMH,KAAME,cAKjC,CACDX,IAAK,sBACLG,OACMg7J,GAAuB,EAAI1D,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAAS6E,EAAS15J,EAAM25J,GACzH,IAAIC,EAAQ98J,KAEZ,OAAO+2J,EAAa5tI,QAAQ8uI,MAAK,SAAmB8E,GAClD,OACE,OAAQA,EAAUt7D,KAAOs7D,EAAU3jJ,MACjC,KAAK,EAEH,OADA2jJ,EAAUt7D,KAAO,EACVs7D,EAAU5E,OAAO,SAAUn4J,KAAKo7J,cAAcl4J,GAAMpD,MAAK,SAAUq7J,GACxE,IAAIrvJ,EAAO2F,EAAOujD,OAAO,CAAColG,EAAUuC,aAAaE,GAAM1B,IACvD,OAAO2B,EAAMjyH,UAAUmL,KAAKkjH,EAAQpC,IAAKoC,EAAQvC,IAAIU,mBAAoB6B,EAAQzC,UAAUgB,cAAe,EAAG3rJ,EAAM,CAACotJ,EAAQ1C,WAAWmB,UAAU73J,MAAK,SAAU0U,GAC9J,IAAI4jJ,EAAgB5jJ,EAASrN,OAAO,GAChCkxJ,EAAgC,IAAnBD,EAAc,GAAWA,EAAc,GACpD4E,EAAevrJ,EAAO3B,KAAK0E,EAASrN,MAAM,EAAG,KAEjD,MAAO,CACL81J,eAFkBxrJ,EAAO3B,KAAK0E,EAASrN,MAAM,IAAK,IAAIuM,WAGtDu4B,cAAe+wH,EACflF,YAAaO,EACbzrH,eAAe,EAAIssH,EAAQ9C,mBAAmBiC,MAE/Ca,EAAQ7C,yBACVl/F,OAAM,SAAU/2D,GACjB,OAAO,EAAI84J,EAAQ7C,sBAAsBj2J,OAG7C,KAAK,EAGH,OAFA28J,EAAUt7D,KAAO,EACjBs7D,EAAU7B,GAAK6B,EAAiB,MAAE,GAC3BA,EAAU5E,OAAO,UAAU,EAAIe,EAAQ7C,sBAAsB0G,EAAU7B,KAEhF,KAAK,EACL,IAAK,MACH,OAAO6B,EAAUloH,UAGtB+nH,EAAU58J,KAAM,CAAC,CAAC,EAAG,SAG1B,SAA6B+4J,EAAKC,GAChC,OAAO0B,EAAqBv6J,MAAMH,KAAME,cAK3C,CACDX,IAAK,uBACLG,OACM+6J,GAAwB,EAAIzD,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASmF,EAASh6J,EAAM25J,GAC1H,IAAIM,EAASn9J,KAEb,OAAO+2J,EAAa5tI,QAAQ8uI,MAAK,SAAmBmF,GAClD,OACE,OAAQA,EAAU37D,KAAO27D,EAAUhkJ,MACjC,KAAK,EAEH,OADAgkJ,EAAU37D,KAAO,EACV27D,EAAUjF,OAAO,SAAUn4J,KAAKo7J,cAAcl4J,GAAMpD,MAAK,SAAUq7J,GACxE,IAAIrvJ,EAAO2F,EAAOujD,OAAO,CAAColG,EAAUuC,aAAaE,GAAM1B,IACvD,OAAOgC,EAAOtyH,UAAUmL,KAAKkjH,EAAQpC,IAAKoC,EAAQvC,IAAIU,mBAAoB6B,EAAQzC,UAAUiB,uBAAwB,EAAG5rJ,EAAM,CAACotJ,EAAQ1C,WAAWmB,UAAU73J,MAAK,SAAU0U,GACxK,IAAI4jJ,EAAgB5jJ,EAASrN,OAAO,GAChCkxJ,EAAgC,IAAnBD,EAAc,GAAWA,EAAc,GACpD4E,EAAevrJ,EAAO3B,KAAK0E,EAASrN,MAAM,EAAG,KAEjD,MAAO,CACL81J,eAFkBxrJ,EAAO3B,KAAK0E,EAASrN,MAAM,IAAK,IAAIuM,WAGtDu4B,cAAe+wH,EACflF,YAAaO,EACbzrH,eAAe,EAAIssH,EAAQ9C,mBAAmBiC,MAE/Ca,EAAQ7C,yBACVl/F,OAAM,SAAU/2D,GACjB,OAAO,EAAI84J,EAAQ7C,sBAAsBj2J,OAG7C,KAAK,EAGH,OAFAg9J,EAAU37D,KAAO,EACjB27D,EAAUlC,GAAKkC,EAAiB,MAAE,GAC3BA,EAAUjF,OAAO,UAAU,EAAIe,EAAQ7C,sBAAsB+G,EAAUlC,KAEhF,KAAK,EACL,IAAK,MACH,OAAOkC,EAAUvoH,UAGtBqoH,EAAUl9J,KAAM,CAAC,CAAC,EAAG,SAG1B,SAA8Bq9J,EAAKC,GACjC,OAAO7C,EAAsBt6J,MAAMH,KAAME,cAK5C,CACDX,IAAK,gBACLG,OACM86J,GAAiB,EAAIxD,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASwF,EAASpE,EAAUC,EAAU58E,GACjI,OAAOu6E,EAAa5tI,QAAQ8uI,MAAK,SAAmBuF,GAClD,OACE,OAAQA,EAAU/7D,KAAO+7D,EAAUpkJ,MACjC,KAAK,EACHokJ,EAAUtC,GAAKl7J,KAAKi7J,gBAAgBzvH,MACpCgyH,EAAUpkJ,KAAwB,IAAjBokJ,EAAUtC,GAAW,EAAqB,IAAjBsC,EAAUtC,GAAW,EAAI,EACnE,MAEF,KAAK,EACH,OAAOsC,EAAUrF,OAAO,UAAU,EAAIyB,EAASnB,iBAAiBz4J,KAAMm5J,EAAUC,EAAU58E,IAE5F,KAAK,EACH,OAAOghF,EAAUrF,OAAO,UAAU,EAAIgC,EAAUT,iBAAiB15J,KAAMm5J,EAAUC,EAAU58E,IAE7F,KAAK,EACH,OAAOghF,EAAUrF,OAAO,SAAU,CAChCL,YAAa,MACblrH,cAAe,iCAGnB,KAAK,EACL,IAAK,MACH,OAAO4wH,EAAU3oH,UAGtB0oH,EAAUv9J,UAGf,SAAuBy9J,EAAKC,EAAMC,GAChC,OAAOnD,EAAer6J,MAAMH,KAAME,cAKrC,CACDX,IAAK,OACLG,OACM66J,GAAQ,EAAIvD,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAAS6F,EAAU16J,EAAMoC,GAC3G,IAAIu4J,EAAS79J,KAEb,OAAO+2J,EAAa5tI,QAAQ8uI,MAAK,SAAoB6F,GACnD,OACE,OAAQA,EAAWr8D,KAAOq8D,EAAW1kJ,MACnC,KAAK,EACH,OAAO0kJ,EAAW3F,OAAO,SAAUn4J,KAAK+9J,cAAc76J,EAAMoC,GAASxF,MAAK,SAAUu0I,GAClF,OAAOwpB,EAAOG,cAAc,EAAG3pB,EAAOvzI,OAAQuzI,EAAO,GAAI,CAAC6kB,EAAQ1C,WAAWmB,UAAU73J,KAAmB,WACxG,IAAIm+J,GAAO,EAAIjH,EAAmB7tI,SAAuB4tI,EAAa5tI,QAAQ4uI,MAAK,SAASmG,EAAU1pJ,GACpG,IAAIiS,EAAQ5lB,EACZ,OAAOk2J,EAAa5tI,QAAQ8uI,MAAK,SAAoBkG,GACnD,OACE,OAAQA,EAAW18D,KAAO08D,EAAW/kJ,MACnC,KAAK,EACHqN,EAAS,CACPqxI,YAAatjJ,EAASsjJ,YACtBlrH,cAAep4B,EAASo4B,cACxBpoB,UAAW,MAEb3jB,EAAI,EAEN,KAAK,EACH,KAAMA,EAAIwzI,EAAOvzI,QAAS,CACxBq9J,EAAW/kJ,KAAO,GAClB,MAIF,OADA+kJ,EAAW/kJ,KAAO,EACXykJ,EAAOG,cAAc,EAAIn9J,EAAGwzI,EAAOvzI,OAAQuzI,EAAOxzI,IAE3D,KAAK,EAGH,IAFA4lB,EAAS03I,EAAWnxI,MAEP8qI,cAAgBoB,EAAQ1C,WAAWmB,QAAU,CACxDwG,EAAW/kJ,KAAO,EAClB,MAGF,OAAO+kJ,EAAWhG,OAAO,QAAS,IAEpC,KAAK,EACHt3J,GAAK,EACLs9J,EAAW/kJ,KAAO,EAClB,MAEF,KAAK,GACH,OAAO+kJ,EAAWhG,OAAO,SAAU,CACjCL,YAAarxI,EAAOqxI,YACpBlrH,cAAenmB,EAAOmmB,cAEtBpoB,UAAWiC,EAAOjC,YAGtB,KAAK,GACL,IAAK,MACH,OAAO25I,EAAWtpH,UAGvBqpH,OAGL,OAAO,SAAUE,GACf,OAAOH,EAAK99J,MAAMH,KAAME,YAvD8E,GAyDrGg5J,EAAQ7C,wBACZ6C,EAAQ7C,uBAEb,KAAK,EACL,IAAK,MACH,OAAOyH,EAAWjpH,UAGvB+oH,EAAW59J,UAGhB,SAAcq+J,EAAMC,GAClB,OAAO/D,EAAMp6J,MAAMH,KAAME,eAK3B,CAAC,CACHX,IAAK,eACLG,MAAO,SAAsBm9J,GAC3B,GAAW,MAAPA,GAAeA,EAAI/7J,OAAS,GAAK+7J,EAAI/7J,OAAS,GAChD,MAAM,IAAI+B,MAAM,eAGlB,IAAI0O,EAAME,EAAOqI,MAAM,EAAI+iJ,EAAI/7J,QAG/B,OAFAyQ,EAAIs4F,WAAWgzD,EAAI/7J,OAAQ,GAC3ByQ,EAAI4I,MAAM0iJ,EAAK,GACRtrJ,IAER,CACDhS,IAAK,kBACLG,MAAO,SAAyBm9J,EAAKrD,GACnC,GAAkB,KAAdA,EAAG14J,OACL,MAAM,IAAI+B,MAAM,6CAGlB,IAAI07J,EAAavE,EAAQ7wI,QAAQq1I,WAAW,UAAU9iI,OAAO89H,GAAIpzI,SAE7Dq4I,GAAU,IAAIxE,EAAQ9wI,SAAUuS,OAAO6iI,GAAYn4I,SACvD,OAAO8zI,EAAM/wI,QAAQ3lB,OAAOq5J,EAAK3C,EAAM/wI,QAAQ2b,QAAQ25H,QAGpDrE,EA/jBoB,GAkkB7Bx7J,EAAA,QAAkBw7J,wBC/mBlB,YAA829EhtI,EAAAA,EAAE,iBAAh39E,EAAss+EptB,MAAnU0+J,QAAQ,mBAAmB/mJ,EAAE+mJ,OAAOC,OAAOhnJ,EAAE+mJ,OAAOC,OAAO,KAA2C,EAAO,CAAC,EAAU,SAAY,EAA1/9E,SAAWhnJ,EAAEiN,GAAG,aAAa,IAAIwI,EAAEld,EAAE0U,EAAE6Y,MAAM39B,MAAK,WAAY,SAASoQ,IAAI,GAAG,IAAIkd,EAAEwxI,eAAe,MAAM,IAAI/7J,MAAM,4CAA4C,IAAI,IAAI+hB,EAAE,CAAC,uCAAuC,gDAAgD,uCAAuC,gDAAgD,4CAA4C,qDAAqD,4CAA4C,qDAAqD,2CAA2C,sCAAsC,6CAA6C,sDAAsD,6CAA6C,sDAAsD,4CAA4C,cAAc,yBAAyB,gCAAgC,gCAAgC,yBAAyB,gCAAgC,gCAAgC,qBAAqB,qBAAqB,sBAAsB,iDAAiD,8CAA8C,mDAAmD,sBAAsB,kBAAkB,0BAA0B,qBAAqB,2BAA2B,uBAAuB,+BAA+B,kBAAkB,uBAAuB,0BAA0B,0BAA0B,gCAAgC,mCAAmC,qCAAqC,6BAA6B,iCAAiC,wCAAwC,oCAAoC,iCAAiC,oCAAoC,oCAAoC,oCAAoC,iCAAiC,0BAA0B,+BAA+B,qCAAqC,0CAA0C,kCAAkC,sCAAsC,6CAA6C,yCAAyC,sCAAsC,yCAAyC,yCAAyC,yCAAyC,sCAAsC,+BAA+B,qBAAqB,2CAA2C,2BAA2B,0BAA0B,4BAA4B,4BAA4B,cAAc,qBAAqB,2BAA2B,0BAA0B,4BAA4B,qBAAqB,2BAA2B,0BAA0B,4BAA4B,6BAA6B,oBAAoB,gCAAgC,oBAAoB,yBAAyB,gCAAgC,qBAAqB,2BAA2B,0BAA0B,4BAA4B,4BAA4B,4BAA4B,gBAAgB,qCAAqC,wCAAwC,yCAAyC,gDAAgD,oBAAoB,iCAAiC,2BAA2B,oBAAoB,yBAAyB,4BAA4B,iCAAiC,yCAAyC,oCAAoC,iCAAiC,sCAAsC,4BAA4B,wBAAwB,0BAA0B,iCAAiC,6BAA6B,kDAAkD,kDAAkD,+CAA+C,6CAA6C,6CAA6C,8CAA8C,mBAAmB,0BAA0B,8BAA8B,cAAc,uBAAuB,uCAAuC,uCAAuC,+BAA+B,iCAAiC,2BAA2B,2BAA2B,mBAAmB,sBAAsB,mBAAmB,2BAA2B,qBAAqB,8BAA8B,yBAAyB,kCAAkC,qCAAqC,gCAAgC,6BAA6B,gCAAgC,uBAAuB,iCAAiC,8BAA8B,iCAAiC,kBAAkB,gCAAgC,oBAAoB,qBAAqB,iCAAiC,mBAAmB,sBAAsB,yBAAyB1U,EAAE,CAACskE,EAAErqE,EAAEs0B,EAAEgqH,EAAEwH,EAAElhE,EAAE8vE,EAAExqF,EAAED,EAAE27E,EAAE+O,EAAE1jB,EAAE5iD,EAAEumE,EAAEC,EAAEC,EAAE3qF,EAAEkC,EAAE0oF,EAAExqF,EAAEyqF,EAAE5qF,EAAEE,EAAE0gF,EAAExgF,EAAEsmB,EAAE5zF,EAAE+qE,EAAEu+E,EAAEyO,EAAEzY,EAAE0Y,EAAEC,EAAE/a,GAAGhrD,GAAGgmE,GAAGC,GAAGx0H,GAAGy0H,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGvmE,GAAG7qB,GAAGqxF,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGlvF,GAAGK,GAAGI,GAAGjB,GAAG2vF,GAAG5uF,GAAG6uF,GAAGxvF,GAAG8e,GAAG2wE,GAAGC,GAAGC,GAAG7/H,GAAG8/H,GAAGC,GAAG3vF,GAAG4vF,GAAGC,GAAGjwF,GAAGkwF,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG5xF,GAAG6xF,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGnP,GAAGoP,GAAGC,GAAGC,GAAGC,GAAGnnB,GAAGonB,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAI97H,EAAE,EAAEA,EAAE75B,EAAEpP,OAAOipC,IAAI,mBAAmB3c,EAAE,IAAIxI,EAAEmlB,MAAMpyB,EAAEiN,EAAEmlB,IAAI75B,EAAE65B,IAAI,IAAIllB,EAAE,CAAC,+BAA+B,+BAA+B,sCAAsC,2CAA2C,6CAA6C,qDAAqD,8CAA8C,8CAA8C,wCAAwC,gDAAgD,yCAAyC,yCAAyC,2CAA2C,6CAA6C,qDAAqD,8CAA8C,8CAA8C,4CAA4C,8CAA8C,sDAAsD,+CAA+C,+CAA+C,4CAA4C,8CAA8C,sDAAsD,+CAA+C,+CAA+C,oBAAoB,uBAAuB,+BAA+B,kCAAkC,kCAAkC,qCAAqC,+BAA+B,kCAAkC,2BAA2B,sBAAsB,8BAA8B,wBAAwB,4BAA4B,uBAAuB,4BAA4B,uBAAuB,uDAAuD,kDAAkD,0DAA0D,oDAAoD,wDAAwD,mDAAmD,wDAAwD,mDAAmD,sDAAsD,iDAAiD,yDAAyD,mDAAmD,uDAAuD,uDAAuD,kDAAkD,4BAA4B,gCAAgC,4CAA4C,kCAAkC,mCAAmC,mCAAmC,mCAAmC,iCAAiC,oCAAoC,kCAAkC,kCAAkC,gCAAgC,mCAAmC,iCAAiC,qCAAqC,iDAAiD,uCAAuC,mCAAmC,mCAAmC,iCAAiC,oCAAoC,iCAAiC,iCAAiC,+BAA+B,kCAAkC,2BAA2B,+BAA+B,+BAA+B,8BAA8B,kCAAkC,kCAAkC,mCAAmC,uCAAuC,uCAAuC,sCAAsC,0CAA0C,0CAA0C,2CAA2C,uCAAuC,oBAAoB,2BAA2B,2BAA2B,uBAAuB,uBAAuB,0BAA0B,sBAAsB,+BAA+B,+BAA+B,kCAAkC,8BAA8B,2BAA2B,2BAA2B,sBAAsB,4BAA4B,2BAA2B,8BAA8B,oCAAoC,uCAAuC,8BAA8B,+BAA+B,4BAA4B,0BAA0B,0BAA0B,qCAAqC,6BAA6B,6BAA6B,kCAAkC,mCAAmC,qCAAqC,6BAA6B,6BAA6B,kCAAkC,mCAAmC,2BAA2B,2BAA2B,0BAA0B,yBAAyB,kCAAkC,kCAAkC,kCAAkC,iCAAiC,mCAAmC,mCAAmC,mCAAmC,kCAAkC,+CAA+C,+CAA+C,0DAA0D,kDAAkD,kDAAkD,wDAAwD,0DAA0D,kDAAkD,kDAAkD,wDAAwD,+CAA+C,8CAA8C,0BAA0B,gCAAgC,qCAAqC,2CAA2C,kCAAkC,wCAAwC,uCAAuC,6CAA6C,4BAA4B,4BAA4B,oCAAoC,8BAA8B,8CAA8C,8CAA8C,sDAAsD,gDAAgD,6CAA6C,6CAA6C,qDAAqD,+CAA+C,+CAA+C,oDAAoD,iDAAiD,yDAAyD,kDAAkD,oDAAoD,iDAAiD,kDAAkD,yBAAyB,4BAA4B,mCAAmC,sCAAsC,oCAAoC,uCAAuC,oBAAoB,+BAA+B,6BAA6B,6BAA6B,wBAAwB,4BAA4B,uCAAuC,qCAAqC,qCAAqC,gCAAgC,yBAAyB,iCAAiC,2BAA2B,uCAAuC,+CAA+C,yCAAyC,kCAAkC,0CAA0C,oCAAoC,uCAAuC,+CAA+C,yCAAyC,mCAAmC,2CAA2C,qCAAqC,kCAAkC,0CAA0C,oCAAoC,iCAAiC,yCAAyC,mCAAmC,mCAAmC,2CAA2C,qCAAqC,kCAAkC,0CAA0C,oCAAoC,yBAAyB,yBAAyB,0BAA0B,IAAIklB,EAAE,EAAEA,EAAEllB,EAAE/jB,OAAOipC,IAAI,mBAAmBlK,EAAEzS,EAAE,IAAIvI,EAAEklB,GAAGtxB,kBAAkBd,EAAEkN,EAAEklB,IAAIlK,KAAK,IAAIlyB,EAAE,CAAC,wBAAwB,0BAA0B,gDAAgD,IAAIo8B,EAAE,EAAEA,EAAEp8B,EAAE7M,OAAOipC,IAAI,CAAC,IAAIlK,EAAE,mBAAmBA,EAAEzS,EAAE,IAAIzf,EAAEo8B,GAAGtxB,kBAAkBd,EAAEhK,EAAEo8B,IAAI3c,EAAE04I,aAAajmI,OAAOzS,EAAExI,EAAE,IAAI1U,IAAI,IAAI65B,EAAE,IAAIh+B,WAAW,CAAC,GAAG,GAAG,IAAI,IAAI,MAAM8Y,EAAElN,EAAEouJ,gBAAgBpuJ,EAAEquJ,6BAA6Br4J,EAAEgK,EAAEouJ,gBAAgBpuJ,EAAEsuJ,2BAA2BpmI,EAAEloB,EAAEuuJ,sBAAsBn8H,EAAEllB,EAAElX,GAAG6wB,EAAE7mB,EAAEwuJ,2BAA2BtmI,EAAEhb,EAAElX,GAAG,GAAGgK,EAAEyuJ,OAAOr8H,EAAEvL,GAAG,OAAO,MAAM7mB,GAAG,GAAG,MAAMyV,EAAEi5I,gBAAgB,MAAM,IAAIxjK,MAAM,mCAAmC8U,GAAGyV,EAAEi5I,kBAAkBn2J,OAAO,SAAS65B,EAAEpyB,GAAG,GAAG,mBAAmB6vB,YAAY,OAAM,IAAKA,aAAahkC,OAAOmU,GAAGA,EAAE0oE,SAASC,mBAAmB3oE,IAAI,IAAI,IAAIiN,EAAE,IAAI7Y,WAAW4L,EAAE7W,QAAQssB,EAAE,EAAEld,EAAEyH,EAAE7W,OAAOssB,EAAEld,EAAEkd,IAAIxI,EAAEwI,GAAGzV,EAAElC,WAAW2X,GAAG,OAAOxI,EAAE,SAASC,EAAElN,GAAG,GAAG,mBAAmB8vB,YAAY,OAAO,IAAIA,YAAY,QAAQ,CAACC,OAAM,IAAK3hC,OAAO4R,GAAG,IAAIiN,EAAE,KAAKwI,EAAEvf,KAAK2xC,KAAK7nC,EAAE7W,OAAO8jB,GAAG,GAAGwI,GAAG,EAAE,IAAI,OAAOs7D,mBAAmB49E,OAAOp/J,OAAO0O,aAAazV,MAAM,KAAKwX,KAAK,MAAMA,GAAG,MAAM,IAAIlX,UAAU,mCAAmC,IAAI,IAAIyP,EAAE,GAAG65B,EAAE,EAAEp8B,EAAE,EAAEA,EAAEyf,EAAEzf,IAAI,CAAC,IAAIkyB,EAAEp5B,MAAMlF,UAAU4F,MAAMC,KAAKuQ,EAAEhK,EAAEiX,EAAEmlB,GAAGp8B,EAAE,GAAGiX,EAAEmlB,GAAG,GAAG,GAAGlK,EAAE/+B,OAAO,CAAC,IAAI09B,EAAEryB,EAAE0zB,EAAE/+B,OAAOmJ,EAAE,EAAE,EAAE,CAAC,IAAIkoE,EAAEtyC,IAAI1zB,GAAGgmE,GAAG,KAAKloE,EAAE,EAAEu0B,GAAE,GAAI2zC,GAAG,KAAKloE,EAAE,EAAEu0B,GAAE,GAAI2zC,GAAG,KAAKloE,EAAE,EAAEu0B,GAAE,GAAI2zC,EAAE,MAAMloE,EAAE,EAAEu0B,GAAE,UAAWA,GAAG,IAAI,IAAI39B,EAAEoJ,GAAG41B,EAAE/+B,OAAOqL,GAAGE,EAAE,EAAEA,EAAExL,EAAEwL,IAAI09B,IAAIlK,EAAE1wB,MAAMe,GAAG2U,EAAEgb,IAAI,OAAO3vB,EAAE,SAASvC,EAAEgK,GAAGA,EAAEid,EAAE,KAAKjd,EAAE,SAAS,IAAI,IAAIiN,EAAEwI,EAAEld,EAAE65B,EAAE,GAAGllB,EAAE,EAAEA,EAAElN,EAAE7W,OAAO+jB,IAAI3U,EAAE,IAAIkd,EAAE,GAAGzV,EAAEkN,KAAKuI,EAAE,IAAI,GAAG,KAAK,EAAE,IAAIxI,EAAEjN,EAAEkN,KAAK,IAAID,EAAE,IAAI,GAAG,IAAImlB,GAAG7iC,OAAO0O,aAAa,IAAI1F,GAAGhJ,OAAO0O,aAAa1F,IAAI,GAAG,OAAO65B,EAAE,IAAIlK,EAAE,CAAC0mI,SAAS,EAAEC,oBAAoB,EAAEC,QAAQ,EAAEC,mBAAmB,GAAG,SAASloI,EAAE7mB,GAAG,GAAG,MAAMA,EAAE,OAAOkoB,EAAE6mI,mBAAmB,GAAG/uJ,IAAIkoB,EAAE0mI,UAAU5uJ,IAAIkoB,EAAE2mI,qBAAqB7uJ,IAAIkoB,EAAE4mI,SAAS9uJ,GAAGkoB,EAAE6mI,mBAAmB,MAAM,IAAI7jK,MAAM,8BAA8B,OAAO8U,EAAE,SAASxL,EAAEwL,EAAEiN,GAAGA,EAAE4Z,EAAE5Z,GAAGjN,EAAEid,EAAEmV,EAAEpyB,EAAE,SAAS,IAAIzH,EAAE65B,EAAE,GAAGp8B,EAAE,EAAEE,KAAKE,MAAM4J,EAAE7W,OAAO,GAAG++B,EAAEloB,EAAE7W,OAAO,EAAE6M,EAAExB,EAAE,EAAEwB,GAAG,IAAIkyB,EAAE,IAAI,EAAEjb,GAAG,EAAE,GAAGib,IAAI,GAAG,GAAG51B,EAAE,IAAIoC,EAAEF,EAAE,GAAGgmE,EAAErB,EAAEn5D,GAAG,OAAOoyB,EAAEpnC,KAAKwvE,GAAGpoC,EAAEpnC,KAAKsH,EAAEma,SAAS,IAAIgJ,EAAEu5I,mBAAmB18J,EAAEma,QAAQna,EAAEnJ,OAAOqxE,EAAEx6D,EAAE7W,OAAO8jB,IAAIhO,EAAEmzB,EAAE,qBAAqB9/B,EAAEnJ,OAAOqL,EAAE+D,EAAE2U,EAAE5a,EAAE28J,iBAAiBhoI,EAAEmL,GAAG75B,EAAE,SAASjG,EAAE0N,EAAEiN,GAAG,IAAIwI,EAAExI,GAAG,aAAa,IAAIutD,EAAE/kD,GAAG,MAAM,IAAIvqB,MAAMuqB,EAAE,mCAAmC,GAAGzV,aAAatL,EAAE,CAAC,GAAG,eAAe+gB,EAAE,OAAOzV,EAAEivJ,gBAAgB,GAAG,SAASx5I,EAAE,OAAOvI,EAAElN,EAAEivJ,iBAAiB,GAAG,QAAQx5I,EAAE,OAAOzf,EAAEgK,EAAEivJ,iBAAiB,GAAG,WAAWx5I,EAAE,OAAOjhB,EAAEwL,EAAEivJ,gBAAgB/mI,EAAE6mI,oBAAoB,MAAM,IAAI7jK,MAAM,0BAA0BuqB,EAAE,MAAM,GAAG,iBAAiBzV,EAAE,CAAC,IAAI,IAAIzH,EAAE/O,OAAOgE,KAAKwS,GAAGoyB,EAAE,GAAGvL,EAAE,EAAEA,EAAEtuB,EAAEpP,OAAO09B,IAAIuL,EAAE75B,EAAEsuB,IAAIv0B,EAAE0N,EAAEzH,EAAEsuB,IAAIpR,GAAG,OAAO2c,EAAE,GAAG,iBAAiBpyB,EAAE,OAAOA,EAAE,MAAM,IAAIlX,UAAU,wBAAwB,SAAS0xE,EAAEx6D,GAAG,IAAI,IAAIiN,EAAE,CAAC,aAAa,OAAO,MAAM,UAAUwI,EAAE,EAAEA,EAAExI,EAAE9jB,OAAOssB,IAAI,GAAGxI,EAAEwI,KAAKzV,EAAE,OAAM,EAAG,OAAM,EAAG,SAAS9W,EAAE8W,GAAG,GAAGA,EAAE,CAAC,GAAG,iBAAiBA,EAAE,MAAM,IAAIlX,UAAU,oDAAoD,IAAI0xE,EAAEx6D,GAAG,MAAM,IAAI9U,MAAM8U,EAAE,sCAAsC,SAAStL,EAAEsL,GAAG3X,KAAKc,OAAO6W,EAAE3X,KAAKokB,QAAQm5H,EAAE5lI,GAAG,SAASm5D,EAAEn5D,GAAG,IAAIiN,EAAE24H,EAAE5lI,EAAE7W,QAAQ,OAAOssB,EAAEy5I,OAAOjjK,IAAI+T,EAAEiN,GAAGA,EAAE,SAAS24H,EAAE5lI,GAAG,IAAIiN,EAAEwI,EAAE05I,QAAQnvJ,GAAG,GAAG,IAAIiN,EAAE,KAAK,CAACtf,QAAQ,mBAAmBxE,OAAO6W,GAAG,OAAOiN,EAAE,SAASga,EAAEjnB,GAAG,GAAGA,EAAE,IAAI,IAAIiN,EAAE,EAAEA,EAAEjN,EAAE7W,OAAO8jB,IAAI1U,EAAEyH,EAAEiN,GAAGwI,EAAE25I,MAAM72J,GAAG,IAAIA,EAAE,SAAS0G,EAAEe,EAAEiN,GAAG,MAAMga,EAAEjnB,GAAG,IAAI9U,MAAM+hB,GAAG,SAASrY,EAAEoL,EAAEiN,GAAG,MAAMga,EAAEjnB,GAAG,IAAIlX,UAAUmkB,GAAG,SAASqtD,EAAEt6D,EAAEiN,EAAEwI,GAAG,MAAMxI,GAAGrY,EAAEoL,EAAEyV,EAAE,gCAAgC,SAASwH,EAAEjd,EAAEiN,EAAEwI,GAAG,OAAO6kD,EAAEt6D,EAAEiN,EAAEwI,GAAGxI,aAAa7Y,WAAW6Y,EAAE,iBAAiBA,EAAEmlB,EAAEnlB,QAAQrY,EAAEoL,EAAE,8BAA8ByV,GAAG,SAASonD,EAAE78D,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAE,KAAK,MAAM7mB,IAAI6mB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,iBAAiBA,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,IAAI5Z,EAAEgQ,EAAEiL,EAAEjb,EAAE,cAAc,IAAIzY,EAAEgmE,EAAE/kD,EAAE45I,uCAAuCzpB,EAAE34H,EAAE9jB,OAAOy8I,EAAEprE,GAAG5lE,EAAEszB,EAAE,2BAA2B1zB,EAAE2kE,EAAElsD,GAAGib,EAAEl9B,KAAKwJ,GAAG,IAAI8lE,EAAE,KAAKuC,EAAE,EAAE,MAAMtkE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,oBAAoBskE,EAAEtkE,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAI5/B,EAAEs0B,EAAE,EAAErR,EAAE65I,0CAA0Cl9H,EAAEjpC,SAAS29B,GAAGlyB,EAAEszB,EAAE,+BAA+B11B,EAAE2mE,EAAE/mC,GAAGlK,EAAEl9B,KAAKwH,GAAG0a,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4jI,EAAEwH,EAAE,EAAE7iI,EAAE85I,yCAAyCriJ,EAAE/jB,SAASmvJ,GAAG1jJ,EAAEszB,EAAE,sBAAsB4oH,EAAE33E,EAAEjsD,GAAGgb,EAAEl9B,KAAK8lJ,GAAG,IAAI15D,EAAE,IAAI1iF,EAAEkxI,EAAEnwH,EAAE45I,uCAAuC,GAAGnI,EAAE9vE,EAAE3qE,QAAQ,GAAGyb,EAAEl9B,KAAKk8J,GAAG,IAAIzxI,EAAE+5I,sCAAsCtI,EAAE,KAAKrgI,EAAEryB,EAAEoxI,EAAE,EAAEtrE,EAAEuC,EAAE,EAAErqE,EAAEs+I,GAAG,CAAC,IAAIp0E,EAAEpqE,EAAE8kF,EAAEphF,GAAG,OAAOixB,EAAEiB,GAAGw0C,EAAEz9D,EAAEipB,EAAE,iDAAiD,SAAS11B,EAAEwN,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,EAAEkyB,GAAG,IAAIrB,EAAE,GAAG39B,EAAEg/B,GAAG,IAAI1zB,EAAE,KAAK,MAAMwL,IAAIxL,EAAE2kE,EAAEn5D,EAAEid,EAAE4J,EAAE7mB,EAAE,iBAAiBA,EAAE7W,OAAO09B,EAAE77B,KAAKwJ,IAAI,IAAIgmE,EAAErB,EAAElsD,EAAEgQ,EAAE4J,EAAE5Z,EAAE,eAAe24H,EAAE34H,EAAE9jB,OAAO09B,EAAE77B,KAAKwvE,GAAGjiE,EAAE0kB,EAAE4J,EAAEtuB,EAAE,OAAO,IAAI+hE,EAAEuC,EAAE,EAAEpnD,EAAEg6I,uBAAuBl3J,EAAEpP,SAAS0zE,GAAGjoE,EAAEiyB,EAAE,sBAAsByzC,EAAEnB,EAAE5gE,GAAGsuB,EAAE77B,KAAKsvE,GAAG,IAAI9nE,EAAE,KAAKs0B,EAAE,EAAE,MAAMsL,IAAI5/B,EAAE2mE,EAAE/mC,EAAEnV,EAAE4J,EAAEuL,EAAE,oBAAoBtL,EAAEsL,EAAEjpC,OAAO09B,EAAE77B,KAAKwH,IAAI0a,EAAE+P,EAAE4J,EAAE3Z,EAAE,gBAAgB,IAAI4jI,EAAEwH,EAAE,EAAE7iI,EAAE65I,0CAA0CpiJ,EAAE/jB,SAASmvJ,GAAG1jJ,EAAEiyB,EAAE,+BAA+BiqH,EAAE33E,EAAEjsD,GAAG2Z,EAAE77B,KAAK8lJ,GAAG96I,EAAEinB,EAAE4J,EAAE7wB,EAAE,OAAO,IAAIohF,EAAE8vE,EAAE,EAAEzxI,EAAE85I,yCAAyCv5J,EAAE7M,SAAS+9J,GAAGtyJ,EAAEiyB,EAAE,sBAAsBuwD,EAAEje,EAAEnjE,GAAG6wB,EAAE77B,KAAKosF,GAAG,IAAI1a,EAAE,IAAIhoE,EAAE,EAAEkxI,GAAGnpE,EAAEC,EAAEjwD,QAAQ,GAAGoa,EAAE77B,KAAKyxE,GAAG,IAAIhnD,EAAEi6I,+CAA+CjzF,EAAEjoE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAE9nE,EAAEs0B,EAAE,EAAEgqH,EAAE15D,GAAG,CAAC,IAAIghE,EAAE9lJ,EAAEoqE,EAAEx0C,GAAG,OAAOjB,EAAEJ,GAAGuxH,EAAEn5I,EAAE4nB,EAAE,iDAAiD,SAASC,EAAE9mB,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,YAAYxL,EAAEwL,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,GAAG,IAAI2zC,EAAE,KAAKorE,EAAE,EAAE,MAAM34H,IAAIutD,EAAErB,EAAElsD,EAAEgQ,EAAEiL,EAAEjb,EAAE,oBAAoB24H,EAAE34H,EAAE9jB,OAAO++B,EAAEl9B,KAAKwvE,IAAI,IAAIF,EAAE,KAAK,MAAM/hE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,iBAAiBA,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAE65I,0CAA0Cl9H,EAAEjpC,SAASqJ,GAAGoC,EAAEszB,EAAE,+BAA+B20C,EAAE1D,EAAE/mC,GAAGlK,EAAEl9B,KAAK6xE,GAAG3vD,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4Z,EAAEgqH,EAAE,EAAEr7H,EAAE85I,yCAAyCriJ,EAAE/jB,SAAS2nJ,GAAGl8I,EAAEszB,EAAE,sBAAsBpB,EAAEqyC,EAAEjsD,GAAGgb,EAAEl9B,KAAK87B,GAAG,IAAIwxH,EAAE,IAAI5jJ,EAAEF,EAAEihB,EAAE45I,uCAAuC,GAAGj4E,EAAEkhE,EAAE7rI,QAAQ,GAAGyb,EAAEl9B,KAAKosF,GAAG,IAAI3hE,EAAEk6I,sCAAsCv4E,EAAE,KAAKvwD,EAAEryB,EAAE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAEuC,EAAE/1C,GAAG,CAAC,IAAIogI,EAAE50J,EAAEgmJ,EAAEtiJ,GAAG,OAAOixB,EAAEiB,GAAGg/H,EAAEjoJ,EAAEipB,EAAE,iBAAiB,SAAS4oH,EAAE9wI,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,YAAYxL,EAAEwL,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,GAAG,IAAI2zC,EAAE,KAAKorE,EAAE,EAAE,MAAM34H,IAAIutD,EAAErB,EAAElsD,EAAEgQ,EAAEiL,EAAEjb,EAAE,oBAAoB24H,EAAE34H,EAAE9jB,OAAO++B,EAAEl9B,KAAKwvE,IAAI,IAAIF,EAAE,KAAK,MAAM/hE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,iBAAiBA,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAE65I,0CAA0Cl9H,EAAEjpC,SAASqJ,GAAGoC,EAAEszB,EAAE,+BAA+B20C,EAAE1D,EAAE/mC,GAAGlK,EAAEl9B,KAAK6xE,GAAG3vD,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4Z,EAAEgqH,EAAE,EAAEr7H,EAAE85I,yCAAyCriJ,EAAE/jB,SAAS2nJ,GAAGl8I,EAAEszB,EAAE,sBAAsBpB,EAAEqyC,EAAEjsD,GAAGgb,EAAEl9B,KAAK87B,GAAG,IAAIwxH,EAAE,IAAI5jJ,EAAE,EAAEF,GAAG4iF,EAAEkhE,EAAE7rI,QAAQyb,EAAEl9B,KAAKosF,GAAG,IAAI8vE,EAAE,IAAIxyJ,EAAE,EAAE+gB,EAAE45I,wCAAwC3yF,EAAEwqF,EAAEz6I,QAAQ,GAAGyb,EAAEl9B,KAAK0xE,GAAG,IAAIjnD,EAAEm6I,+CAA+Cx4E,EAAE1a,EAAE,KAAK71C,EAAEryB,EAAE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAEuC,EAAE/1C,GAAG,CAAC,IAAI21C,EAAEnqE,EAAE,CAACie,WAAW+nI,EAAEuX,IAAI3I,GAAGlxJ,GAAG,OAAOixB,EAAEiB,GAAGu0C,EAAEx9D,EAAEipB,EAAE,iBAAiB,SAASowH,EAAEt4I,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAE,KAAK,MAAM7mB,IAAI6mB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,iBAAiBA,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,IAAI5Z,EAAEgQ,EAAEiL,EAAEjb,EAAE,cAAc,IAAIzY,EAAEgmE,EAAE/kD,EAAEq6I,4CAA4ClqB,EAAE34H,EAAE9jB,OAAOy8I,EAAEprE,GAAG5lE,EAAEszB,EAAE,2BAA2B1zB,EAAE2kE,EAAElsD,GAAGib,EAAEl9B,KAAKwJ,GAAG,IAAI8lE,EAAE,KAAKuC,EAAE,EAAE,MAAMtkE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,oBAAoBskE,EAAEtkE,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAI5/B,EAAEs0B,EAAE,EAAErR,EAAEs6I,+CAA+C39H,EAAEjpC,SAAS29B,GAAGlyB,EAAEszB,EAAE,+BAA+B11B,EAAE2mE,EAAE/mC,GAAGlK,EAAEl9B,KAAKwH,GAAG0a,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4jI,EAAEwH,EAAE,EAAE7iI,EAAEu6I,8CAA8C9iJ,EAAE/jB,SAASmvJ,GAAG1jJ,EAAEszB,EAAE,sBAAsB4oH,EAAE33E,EAAEjsD,GAAGgb,EAAEl9B,KAAK8lJ,GAAG,IAAI15D,EAAE,IAAI1iF,EAAEkxI,EAAEnwH,EAAEq6I,4CAA4C,GAAG5I,EAAE9vE,EAAE3qE,QAAQ,GAAGyb,EAAEl9B,KAAKk8J,GAAG,IAAIzxI,EAAEw6I,2CAA2C/I,EAAE,KAAKrgI,EAAEryB,EAAEoxI,EAAE,EAAEtrE,EAAEuC,EAAE,EAAErqE,EAAEs+I,GAAG,CAAC,IAAIp0E,EAAEpqE,EAAE8kF,EAAEphF,GAAG,OAAOixB,EAAEiB,GAAGw0C,EAAEz9D,EAAEipB,EAAE,iDAAiD,SAASkvD,EAAEp3E,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,EAAEkyB,GAAG,IAAIrB,EAAE,GAAG39B,EAAEg/B,GAAG,IAAI1zB,EAAE,KAAK,MAAMwL,IAAIxL,EAAE2kE,EAAEn5D,EAAEid,EAAE4J,EAAE7mB,EAAE,iBAAiBA,EAAE7W,OAAO09B,EAAE77B,KAAKwJ,IAAI,IAAIgmE,EAAErB,EAAElsD,EAAEgQ,EAAE4J,EAAE5Z,EAAE,eAAe24H,EAAE34H,EAAE9jB,OAAO09B,EAAE77B,KAAKwvE,GAAGjiE,EAAE0kB,EAAE4J,EAAEtuB,EAAE,OAAO,IAAI+hE,EAAEuC,EAAE,EAAEpnD,EAAEg6I,uBAAuBl3J,EAAEpP,SAAS0zE,GAAGjoE,EAAEiyB,EAAE,sBAAsByzC,EAAEnB,EAAE5gE,GAAGsuB,EAAE77B,KAAKsvE,GAAG,IAAI9nE,EAAE,KAAKs0B,EAAE,EAAE,MAAMsL,IAAI5/B,EAAE2mE,EAAE/mC,EAAEnV,EAAE4J,EAAEuL,EAAE,oBAAoBtL,EAAEsL,EAAEjpC,OAAO09B,EAAE77B,KAAKwH,IAAI0a,EAAE+P,EAAE4J,EAAE3Z,EAAE,gBAAgB,IAAI4jI,EAAEwH,EAAE,EAAE7iI,EAAEs6I,+CAA+C7iJ,EAAE/jB,SAASmvJ,GAAG1jJ,EAAEiyB,EAAE,+BAA+BiqH,EAAE33E,EAAEjsD,GAAG2Z,EAAE77B,KAAK8lJ,GAAG96I,EAAEinB,EAAE4J,EAAE7wB,EAAE,OAAO,IAAIohF,EAAE8vE,EAAE,EAAEzxI,EAAEu6I,8CAA8Ch6J,EAAE7M,SAAS+9J,GAAGtyJ,EAAEiyB,EAAE,sBAAsBuwD,EAAEje,EAAEnjE,GAAG6wB,EAAE77B,KAAKosF,GAAG,IAAI1a,EAAE,IAAIhoE,EAAE,EAAEkxI,GAAGnpE,EAAEC,EAAEjwD,QAAQ,GAAGoa,EAAE77B,KAAKyxE,GAAG,IAAIhnD,EAAEy6I,oDAAoDzzF,EAAEjoE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAE9nE,EAAEs0B,EAAE,EAAEgqH,EAAE15D,GAAG,CAAC,IAAIghE,EAAE9lJ,EAAEoqE,EAAEx0C,GAAG,OAAOjB,EAAEJ,GAAGuxH,EAAEn5I,EAAE4nB,EAAE,iDAAiD,SAASqgI,EAAElnJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,YAAYxL,EAAEwL,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,GAAG,IAAI2zC,EAAE,KAAKorE,EAAE,EAAE,MAAM34H,IAAIutD,EAAErB,EAAElsD,EAAEgQ,EAAEiL,EAAEjb,EAAE,oBAAoB24H,EAAE34H,EAAE9jB,OAAO++B,EAAEl9B,KAAKwvE,IAAI,IAAIF,EAAE,KAAK,MAAM/hE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,iBAAiBA,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAEs6I,+CAA+C39H,EAAEjpC,SAASqJ,GAAGoC,EAAEszB,EAAE,+BAA+B20C,EAAE1D,EAAE/mC,GAAGlK,EAAEl9B,KAAK6xE,GAAG3vD,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4Z,EAAEgqH,EAAE,EAAEr7H,EAAEu6I,8CAA8C9iJ,EAAE/jB,SAAS2nJ,GAAGl8I,EAAEszB,EAAE,sBAAsBpB,EAAEqyC,EAAEjsD,GAAGgb,EAAEl9B,KAAK87B,GAAG,IAAIwxH,EAAE,IAAI5jJ,EAAEF,EAAEihB,EAAEq6I,4CAA4C,GAAG14E,EAAEkhE,EAAE7rI,QAAQ,GAAGyb,EAAEl9B,KAAKosF,GAAG,IAAI3hE,EAAE06I,2CAA2C/4E,EAAE,KAAKvwD,EAAEryB,EAAE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAEuC,EAAE/1C,GAAG,CAAC,IAAIogI,EAAE50J,EAAEgmJ,EAAEtiJ,GAAG,OAAOixB,EAAEiB,GAAGg/H,EAAEjoJ,EAAEipB,EAAE,iBAAiB,SAASw0C,EAAE18D,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,YAAYxL,EAAEwL,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,GAAG,IAAI2zC,EAAE,KAAKorE,EAAE,EAAE,MAAM34H,IAAIutD,EAAErB,EAAElsD,EAAEgQ,EAAEiL,EAAEjb,EAAE,oBAAoB24H,EAAE34H,EAAE9jB,OAAO++B,EAAEl9B,KAAKwvE,IAAI,IAAIF,EAAE,KAAK,MAAM/hE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,iBAAiBA,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAEs6I,+CAA+C39H,EAAEjpC,SAASqJ,GAAGoC,EAAEszB,EAAE,+BAA+B20C,EAAE1D,EAAE/mC,GAAGlK,EAAEl9B,KAAK6xE,GAAG3vD,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4Z,EAAEgqH,EAAE,EAAEr7H,EAAEu6I,8CAA8C9iJ,EAAE/jB,SAAS2nJ,GAAGl8I,EAAEszB,EAAE,sBAAsBpB,EAAEqyC,EAAEjsD,GAAGgb,EAAEl9B,KAAK87B,GAAG,IAAIwxH,EAAE,IAAI5jJ,EAAE,EAAEF,GAAG4iF,EAAEkhE,EAAE7rI,QAAQyb,EAAEl9B,KAAKosF,GAAG,IAAI8vE,EAAE,IAAIxyJ,EAAE,EAAE+gB,EAAEq6I,6CAA6CpzF,EAAEwqF,EAAEz6I,QAAQ,GAAGyb,EAAEl9B,KAAK0xE,GAAG,IAAIjnD,EAAE26I,oDAAoDh5E,EAAE1a,EAAE,KAAK71C,EAAEryB,EAAE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAEuC,EAAE/1C,GAAG,CAAC,IAAI21C,EAAEnqE,EAAE,CAACie,WAAW+nI,EAAEuX,IAAI3I,GAAGlxJ,GAAG,OAAOixB,EAAEiB,GAAGu0C,EAAEx9D,EAAEipB,EAAE,iBAAiB,SAASu0C,EAAEz8D,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEu6I,+CAA+C59H,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAE46I,0CAA0Cj+H,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASkrI,EAAEp4I,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAE85I,0CAA0Cn9H,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAE66I,qCAAqCl+H,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASi6I,EAAEnnJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAE,KAAK,MAAM7mB,IAAI6mB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,iBAAiBA,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,IAAI5Z,EAAEgQ,EAAEiL,EAAEjb,EAAE,cAAc,IAAIzY,EAAEgmE,EAAE/kD,EAAE86I,6CAA6C3qB,EAAE34H,EAAE9jB,OAAOy8I,EAAEprE,GAAG5lE,EAAEszB,EAAE,2BAA2B1zB,EAAE2kE,EAAElsD,GAAGib,EAAEl9B,KAAKwJ,GAAG,IAAI8lE,EAAE,KAAKuC,EAAE,EAAE,MAAMtkE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,oBAAoBskE,EAAEtkE,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAI5/B,EAAEs0B,EAAE,EAAErR,EAAE+6I,gDAAgDp+H,EAAEjpC,SAAS29B,GAAGlyB,EAAEszB,EAAE,+BAA+B11B,EAAE2mE,EAAE/mC,GAAGlK,EAAEl9B,KAAKwH,GAAG0a,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4jI,EAAEwH,EAAE,EAAE7iI,EAAEg7I,+CAA+CvjJ,EAAE/jB,SAASmvJ,GAAG1jJ,EAAEszB,EAAE,sBAAsB4oH,EAAE33E,EAAEjsD,GAAGgb,EAAEl9B,KAAK8lJ,GAAG,IAAI15D,EAAE,IAAI1iF,EAAEkxI,EAAEnwH,EAAE86I,6CAA6C,GAAGrJ,EAAE9vE,EAAE3qE,QAAQ,GAAGyb,EAAEl9B,KAAKk8J,GAAG,IAAIzxI,EAAEi7I,4CAA4CxJ,EAAE,KAAKrgI,EAAEryB,EAAEoxI,EAAE,EAAEtrE,EAAEuC,EAAE,EAAErqE,EAAEs+I,GAAG,CAAC,IAAIp0E,EAAEpqE,EAAE8kF,EAAEphF,GAAG,OAAOixB,EAAEiB,GAAGw0C,EAAEz9D,EAAEipB,EAAE,iDAAiD,SAASu7G,EAAEzjI,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,EAAEkyB,GAAG,IAAIrB,EAAE,GAAG39B,EAAEg/B,GAAG,IAAI1zB,EAAE,KAAK,MAAMwL,IAAIxL,EAAE2kE,EAAEn5D,EAAEid,EAAE4J,EAAE7mB,EAAE,iBAAiBA,EAAE7W,OAAO09B,EAAE77B,KAAKwJ,IAAI,IAAIgmE,EAAErB,EAAElsD,EAAEgQ,EAAE4J,EAAE5Z,EAAE,eAAe24H,EAAE34H,EAAE9jB,OAAO09B,EAAE77B,KAAKwvE,GAAGjiE,EAAE0kB,EAAE4J,EAAEtuB,EAAE,OAAO,IAAI+hE,EAAEuC,EAAE,EAAEpnD,EAAEg6I,uBAAuBl3J,EAAEpP,SAAS0zE,GAAGjoE,EAAEiyB,EAAE,sBAAsByzC,EAAEnB,EAAE5gE,GAAGsuB,EAAE77B,KAAKsvE,GAAG,IAAI9nE,EAAE,KAAKs0B,EAAE,EAAE,MAAMsL,IAAI5/B,EAAE2mE,EAAE/mC,EAAEnV,EAAE4J,EAAEuL,EAAE,oBAAoBtL,EAAEsL,EAAEjpC,OAAO09B,EAAE77B,KAAKwH,IAAI0a,EAAE+P,EAAE4J,EAAE3Z,EAAE,gBAAgB,IAAI4jI,EAAEwH,EAAE,EAAE7iI,EAAE+6I,gDAAgDtjJ,EAAE/jB,SAASmvJ,GAAG1jJ,EAAEiyB,EAAE,+BAA+BiqH,EAAE33E,EAAEjsD,GAAG2Z,EAAE77B,KAAK8lJ,GAAG96I,EAAEinB,EAAE4J,EAAE7wB,EAAE,OAAO,IAAIohF,EAAE8vE,EAAE,EAAEzxI,EAAEg7I,+CAA+Cz6J,EAAE7M,SAAS+9J,GAAGtyJ,EAAEiyB,EAAE,sBAAsBuwD,EAAEje,EAAEnjE,GAAG6wB,EAAE77B,KAAKosF,GAAG,IAAI1a,EAAE,IAAIhoE,EAAE,EAAEkxI,GAAGnpE,EAAEC,EAAEjwD,QAAQ,GAAGoa,EAAE77B,KAAKyxE,GAAG,IAAIhnD,EAAEk7I,qDAAqDl0F,EAAEjoE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAE9nE,EAAEs0B,EAAE,EAAEgqH,EAAE15D,GAAG,CAAC,IAAIghE,EAAE9lJ,EAAEoqE,EAAEx0C,GAAG,OAAOjB,EAAEJ,GAAGuxH,EAAEn5I,EAAE4nB,EAAE,iDAAiD,SAASg6D,EAAE7gF,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,YAAYxL,EAAEwL,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,GAAG,IAAI2zC,EAAE,KAAKorE,EAAE,EAAE,MAAM34H,IAAIutD,EAAErB,EAAElsD,EAAEgQ,EAAEiL,EAAEjb,EAAE,oBAAoB24H,EAAE34H,EAAE9jB,OAAO++B,EAAEl9B,KAAKwvE,IAAI,IAAIF,EAAE,KAAK,MAAM/hE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,iBAAiBA,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAE+6I,gDAAgDp+H,EAAEjpC,SAASqJ,GAAGoC,EAAEszB,EAAE,+BAA+B20C,EAAE1D,EAAE/mC,GAAGlK,EAAEl9B,KAAK6xE,GAAG3vD,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4Z,EAAEgqH,EAAE,EAAEr7H,EAAEg7I,+CAA+CvjJ,EAAE/jB,SAAS2nJ,GAAGl8I,EAAEszB,EAAE,sBAAsBpB,EAAEqyC,EAAEjsD,GAAGgb,EAAEl9B,KAAK87B,GAAG,IAAIwxH,EAAE,IAAI5jJ,EAAEF,EAAEihB,EAAE86I,6CAA6C,GAAGn5E,EAAEkhE,EAAE7rI,QAAQ,GAAGyb,EAAEl9B,KAAKosF,GAAG,IAAI3hE,EAAEm7I,4CAA4Cx5E,EAAE,KAAKvwD,EAAEryB,EAAE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAEuC,EAAE/1C,GAAG,CAAC,IAAIogI,EAAE50J,EAAEgmJ,EAAEtiJ,GAAG,OAAOixB,EAAEiB,GAAGg/H,EAAEjoJ,EAAEipB,EAAE,iBAAiB,SAASk/H,EAAEpnJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,YAAYxL,EAAEwL,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,GAAG,IAAI2zC,EAAE,KAAKorE,EAAE,EAAE,MAAM34H,IAAIutD,EAAErB,EAAElsD,EAAEgQ,EAAEiL,EAAEjb,EAAE,oBAAoB24H,EAAE34H,EAAE9jB,OAAO++B,EAAEl9B,KAAKwvE,IAAI,IAAIF,EAAE,KAAK,MAAM/hE,IAAI+hE,EAAEnB,EAAE5gE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,iBAAiBA,EAAEpP,OAAO++B,EAAEl9B,KAAKsvE,IAAIloC,EAAEnV,EAAEiL,EAAEkK,EAAE,gBAAgB,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAE+6I,gDAAgDp+H,EAAEjpC,SAASqJ,GAAGoC,EAAEszB,EAAE,+BAA+B20C,EAAE1D,EAAE/mC,GAAGlK,EAAEl9B,KAAK6xE,GAAG3vD,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAI4Z,EAAEgqH,EAAE,EAAEr7H,EAAEg7I,+CAA+CvjJ,EAAE/jB,SAAS2nJ,GAAGl8I,EAAEszB,EAAE,sBAAsBpB,EAAEqyC,EAAEjsD,GAAGgb,EAAEl9B,KAAK87B,GAAG,IAAIwxH,EAAE,IAAI5jJ,EAAE,EAAEF,GAAG4iF,EAAEkhE,EAAE7rI,QAAQyb,EAAEl9B,KAAKosF,GAAG,IAAI8vE,EAAE,IAAIxyJ,EAAE,EAAE+gB,EAAE86I,8CAA8C7zF,EAAEwqF,EAAEz6I,QAAQ,GAAGyb,EAAEl9B,KAAK0xE,GAAG,IAAIjnD,EAAEo7I,qDAAqDz5E,EAAE1a,EAAE,KAAK71C,EAAEryB,EAAE,EAAEgmE,EAAEorE,EAAE,EAAEtrE,EAAEuC,EAAE/1C,GAAG,CAAC,IAAI21C,EAAEnqE,EAAE,CAACie,WAAW+nI,EAAEuX,IAAI3I,GAAGlxJ,GAAG,OAAOixB,EAAEiB,GAAGu0C,EAAEx9D,EAAEipB,EAAE,iBAAiB,SAASm/H,EAAErnJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEg7I,gDAAgDr+H,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEq7I,2CAA2C1+H,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASo6I,EAAEtnJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,OAAO,IAAIib,EAAErB,EAAE,EAAEpR,EAAEs7I,wBAAwB9jJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,sBAAsBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEu7I,sBAAsBx2F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAEw7I,aAAaz2F,EAAEttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASuqC,EAAE38D,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,OAAO,IAAIib,EAAErB,EAAE,EAAEpR,EAAEy7I,mCAAmCjkJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,sBAAsBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAE07I,iCAAiC32F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE27I,wBAAwB52F,EAAEttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASysC,EAAE7+D,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEy7I,oCAAoC9+H,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAE47I,+BAA+Bj/H,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASq6I,EAAEvnJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGpyB,EAAEid,EAAEmV,EAAEpyB,EAAE,OAAO,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE07I,gCAAgCnxJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,sBAAsBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAG,IAAIgb,EAAEixC,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,YAAY4Z,EAAE5Z,EAAE9jB,OAAOipC,EAAEpnC,KAAKk9B,GAAG3vB,EAAE0kB,EAAEmV,EAAE75B,EAAE,OAAO,IAAI/D,EAAElC,EAAE,EAAEmjB,EAAEy7I,mCAAmC34J,EAAEpP,SAASmJ,GAAGsC,EAAEw9B,EAAE,sBAAsB59B,EAAE2kE,EAAE5gE,GAAG65B,EAAEpnC,KAAKwJ,GAAG,IAAIgmE,EAAE,IAAI,EAAE/kD,EAAE67I,+BAA+BpkJ,EAAEgb,EAAErB,EAAE,EAAEryB,IAAI,OAAOyyB,EAAEmL,GAAGooC,EAAE,SAASuC,EAAE/8D,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,OAAO,IAAIib,EAAErB,EAAE,EAAEpR,EAAE87I,mCAAmCtkJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,sBAAsBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAE+7I,iCAAiCh3F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAEg8I,wBAAwBj3F,EAAEttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASo1H,EAAExnJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAE87I,oCAAoCn/H,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEi8I,+BAA+Bt/H,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAAS0vD,EAAE58D,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGpyB,EAAEid,EAAEmV,EAAEpyB,EAAE,OAAO,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE+7I,gCAAgCxxJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,sBAAsBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAG,IAAIgb,EAAEixC,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,YAAY4Z,EAAE5Z,EAAE9jB,OAAOipC,EAAEpnC,KAAKk9B,GAAG3vB,EAAE0kB,EAAEmV,EAAE75B,EAAE,OAAO,IAAI/D,EAAElC,EAAE,EAAEmjB,EAAE87I,mCAAmCh5J,EAAEpP,SAASmJ,GAAGsC,EAAEw9B,EAAE,sBAAsB59B,EAAE2kE,EAAE5gE,GAAG65B,EAAEpnC,KAAKwJ,GAAG,IAAIgmE,EAAE,IAAI,EAAE/kD,EAAEk8I,+BAA+BzkJ,EAAEgb,EAAErB,EAAE,EAAEryB,IAAI,OAAOyyB,EAAEmL,GAAGooC,EAAE,SAASsC,EAAE98D,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEs7I,yBAAyB3+H,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEm8I,oBAAoBx/H,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASswI,EAAEx9I,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGpyB,EAAEid,EAAEmV,EAAEpyB,EAAE,OAAO,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEu7I,qBAAqBhxJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,sBAAsBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAG,IAAIgb,EAAEixC,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,YAAY4Z,EAAE5Z,EAAE9jB,OAAOipC,EAAEpnC,KAAKk9B,GAAG3vB,EAAE0kB,EAAEmV,EAAE75B,EAAE,OAAO,IAAI/D,EAAElC,EAAE,EAAEmjB,EAAEs7I,wBAAwBx4J,EAAEpP,SAASmJ,GAAGsC,EAAEw9B,EAAE,sBAAsB59B,EAAE2kE,EAAE5gE,GAAG65B,EAAEpnC,KAAKwJ,GAAG,IAAIgmE,EAAE,IAAI,EAAE/kD,EAAEo8I,oBAAoB3kJ,EAAEgb,EAAErB,EAAE,EAAEryB,IAAI,OAAOyyB,EAAEmL,GAAGooC,EAAE,SAASwC,EAAEh9D,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,aAAa,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEq8I,6BAA6B9xJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,4BAA4BllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,cAAc,IAAIib,EAAErB,EAAE,EAAEpR,EAAEs8I,6BAA6B9kJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,6BAA6BlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEu8I,6BAA6Bx3F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAEw8I,qBAAqBz3F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASkxD,EAAEtjF,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEy8I,0DAA0D9/H,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG,IAAIllB,EAAE,IAAIxY,EAAE,EAAE+gB,EAAE08I,0DAA0Dn8J,EAAEkX,EAAET,QAAQQ,EAAEjiB,KAAKgL,GAAGyf,EAAE28I,gDAAgDhgI,EAAEp8B,GAAG,IAAIkyB,EAAE51B,EAAE,CAAC+hC,UAAU97B,EAAE+tB,WAAWpZ,EAAEmlJ,QAAQ,cAAcryJ,GAAG,OAAOinB,EAAEha,GAAGib,EAAE,SAASx4B,EAAEsQ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,aAAa,IAAIib,EAAErB,EAAE,EAAEpR,EAAEy8I,yDAAyDjlJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,4BAA4BlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAEsB,EAAEyf,EAAE68I,oDAAoD,GAAG93F,EAAEhmE,EAAEiY,QAAQ2lB,EAAEpnC,KAAKwvE,GAAG/kD,EAAE88I,6CAA6C/3F,EAAEttD,EAAElX,EAAE,EAAEkyB,GAAG,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE,SAASnrE,EAAEz6D,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGpyB,EAAEid,EAAE/P,EAAElN,EAAE,cAAc,IAAIhK,EAAEkyB,EAAEzS,EAAE68I,oDAAoDzrI,EAAE7mB,EAAE7W,OAAO09B,EAAEqB,GAAGtzB,EAAEsY,EAAE,2BAA2BlX,EAAEmjE,EAAEn5D,GAAGkN,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,aAAa,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAEy8I,yDAAyDjlJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEsY,EAAE,4BAA4B1Y,EAAE2kE,EAAElsD,GAAGC,EAAEliB,KAAKwJ,GAAG+D,EAAE0kB,EAAE/P,EAAE3U,EAAE,aAAa,IAAIqtI,EAAE3mI,EAAE,EAAEwW,EAAE08I,yDAAyD55J,EAAEpP,SAAS8V,GAAGrK,EAAEsY,EAAE,4BAA4B04H,EAAEzsE,EAAE5gE,GAAG2U,EAAEliB,KAAK46I,GAAG,IAAItrE,EAAE,IAAI5lE,EAAEmyB,EAAEpR,EAAE68I,oDAAoD,GAAGz1F,EAAEvC,EAAE7tD,QAAQS,EAAEliB,KAAK6xE,GAAGpnD,EAAE+8I,kDAAkD31F,EAAE7mE,EAAE6wB,EAAE,EAAEryB,EAAEoxI,GAAG,IAAIpzI,EAAEF,EAAEgoE,EAAEloC,GAAG,OAAOnL,EAAE/Z,GAAG1a,EAAE,SAASwmJ,EAAEh5I,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAG,IAAIgb,EAAEixC,EAAEn5D,EAAEid,EAAEjnB,EAAEgK,EAAE,YAAY6mB,EAAE7mB,EAAE7W,OAAO6M,EAAEhL,KAAKk9B,GAAGjb,EAAEgQ,EAAEjnB,EAAEiX,EAAE,SAAS,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAEg9I,yBAAyBxlJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEoB,EAAE,wBAAwBxB,EAAE2kE,EAAElsD,GAAGjX,EAAEhL,KAAKwJ,GAAG+D,EAAE0kB,EAAEjnB,EAAEuC,EAAE,aAAa,IAAIqtI,EAAEtrE,EAAE,EAAE7kD,EAAEq8I,6BAA6Bv5J,EAAEpP,SAASmxE,GAAG1lE,EAAEoB,EAAE,4BAA4B4vI,EAAEzsE,EAAE5gE,GAAGvC,EAAEhL,KAAK46I,GAAGxzG,EAAEnV,EAAEjnB,EAAEo8B,EAAE,cAAc,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAEs8I,6BAA6B3/H,EAAEjpC,SAASqJ,GAAGoC,EAAEoB,EAAE,6BAA6B6mE,EAAE1D,EAAE/mC,GAAGp8B,EAAEhL,KAAK6xE,GAAG,IAAI/1C,EAAE,IAAIpyB,EAAE,EAAEmyB,GAAGiqH,EAAEhqH,EAAEra,QAAQzW,EAAEhL,KAAK8lJ,GAAG,IAAIwH,EAAE,IAAI5jJ,EAAE,EAAE+gB,EAAEg6I,wBAAwBr4E,EAAEkhE,EAAE7rI,QAAQ,GAAGzW,EAAEhL,KAAKosF,GAAG,IAAI,EAAE3hE,EAAEi9I,qBAAqB5hB,EAAE15D,EAAElvD,EAAErB,EAAE,EAAEryB,EAAEoxI,EAAE/oE,IAAI,CAAC,IAAIqqF,EAAE50J,EAAE,CAACie,WAAWuW,EAAE+oI,IAAIvX,GAAGprI,GAAG,OAAO+Z,EAAEjxB,GAAGkxJ,EAAEjoJ,EAAEjJ,EAAE,iBAAiB,SAASyxJ,EAAEznJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAG,IAAIgb,EAAEixC,EAAEn5D,EAAEid,EAAEjnB,EAAEgK,EAAE,YAAY6mB,EAAE7mB,EAAE7W,OAAO6M,EAAEhL,KAAKk9B,GAAGjb,EAAEgQ,EAAEjnB,EAAEiX,EAAE,SAAS,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAEg9I,yBAAyBxlJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEoB,EAAE,wBAAwBxB,EAAE2kE,EAAElsD,GAAGjX,EAAEhL,KAAKwJ,GAAG+D,EAAE0kB,EAAEjnB,EAAEuC,EAAE,aAAa,IAAIqtI,EAAEtrE,EAAE,EAAE7kD,EAAEq8I,6BAA6Bv5J,EAAEpP,SAASmxE,GAAG1lE,EAAEoB,EAAE,4BAA4B4vI,EAAEzsE,EAAE5gE,GAAGvC,EAAEhL,KAAK46I,GAAGxzG,EAAEnV,EAAEjnB,EAAEo8B,EAAE,cAAc,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAEs8I,6BAA6B3/H,EAAEjpC,SAASqJ,GAAGoC,EAAEoB,EAAE,6BAA6B6mE,EAAE1D,EAAE/mC,GAAGp8B,EAAEhL,KAAK6xE,GAAG,IAAI/1C,EAAE,IAAIpyB,EAAEmyB,EAAEpR,EAAEg6I,uBAAuB,GAAG3e,EAAEhqH,EAAEra,QAAQ,GAAGzW,EAAEhL,KAAK8lJ,GAAG,IAAI,EAAEr7H,EAAEk9I,iBAAiB7hB,EAAE5oH,EAAErB,EAAE,EAAEryB,EAAEoxI,EAAE/oE,IAAI,CAAC,IAAIy7E,EAAEhmJ,EAAEw0B,EAAE5Z,GAAG,OAAO+Z,EAAEjxB,GAAGsiJ,EAAEr5I,EAAEjJ,EAAE,iBAAiB,SAASg5I,EAAEhvI,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,YAAYkoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,SAAS,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAEg9I,yBAAyBxlJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,wBAAwB2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,aAAa,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAEu8I,4BAA4Bz5J,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,4BAA4BstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAEwzB,EAAEzS,EAAEg6I,uBAAuB,GAAG5yF,EAAEvC,EAAE7tD,QAAQ,GAAGS,EAAEliB,KAAK6xE,GAAG,IAAI,EAAEpnD,EAAEm9I,yBAAyB/1F,EAAE7mE,EAAEkyB,EAAE,EAAErB,EAAE2zC,IAAI,CAAC,IAAIhoE,EAAEF,EAAEgoE,EAAEloC,GAAG,OAAOnL,EAAE/Z,GAAG1a,EAAEyM,EAAEiO,EAAE,iBAAiB,SAASw6I,EAAE1nJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEq8I,8BAA8B1/H,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG,IAAIllB,EAAE,IAAIxY,EAAE,EAAE+gB,EAAEs8I,8BAA8B/7J,EAAEkX,EAAET,QAAQ,GAAGQ,EAAEjiB,KAAKgL,GAAG,IAAI,EAAEyf,EAAEo9I,oBAAoBzgI,EAAEp8B,IAAI,CAAC,IAAIkyB,EAAE,CAACmM,UAAU/hC,EAAEiG,EAAEyH,GAAGsmB,WAAWh0B,EAAE4a,EAAElN,GAAGqyJ,QAAQ,UAAU,OAAOprI,EAAEha,GAAGib,EAAEjpB,EAAEgO,EAAE,kBAAkB,SAAS06I,EAAE3nJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAG,IAAI6wB,EAAEsyC,EAAEn5D,EAAEid,EAAEiL,EAAEloB,EAAE,eAAexL,EAAEwL,EAAE7W,OAAO++B,EAAEl9B,KAAK67B,GAAG5Z,EAAEgQ,EAAEiL,EAAEjb,EAAE,OAAO,IAAIutD,EAAEorE,EAAE,EAAEnwH,EAAEg6I,uBAAuBxiJ,EAAE9jB,SAASy8I,GAAGhxI,EAAEszB,EAAE,sBAAsBsyC,EAAErB,EAAElsD,GAAGib,EAAEl9B,KAAKwvE,GAAGjiE,EAAE0kB,EAAEiL,EAAE3vB,EAAE,SAAS,IAAI+hE,EAAEuC,EAAE,EAAEpnD,EAAEg9I,yBAAyBl6J,EAAEpP,SAAS0zE,GAAGjoE,EAAEszB,EAAE,wBAAwBoyC,EAAEnB,EAAE5gE,GAAG2vB,EAAEl9B,KAAKsvE,GAAGloC,EAAEnV,EAAEiL,EAAEkK,EAAE,aAAa,IAAI5/B,EAAEs0B,EAAE,EAAErR,EAAEq8I,6BAA6B1/H,EAAEjpC,SAAS29B,GAAGlyB,EAAEszB,EAAE,4BAA4B11B,EAAE2mE,EAAE/mC,GAAGlK,EAAEl9B,KAAKwH,GAAG0a,EAAE+P,EAAEiL,EAAEhb,EAAE,cAAc,IAAI4jI,EAAEwH,EAAE,EAAE7iI,EAAEs8I,6BAA6B7kJ,EAAE/jB,SAASmvJ,GAAG1jJ,EAAEszB,EAAE,6BAA6B4oH,EAAE33E,EAAEjsD,GAAGgb,EAAEl9B,KAAK8lJ,GAAG,IAAI15D,EAAE,IAAI1iF,EAAE,EAAEF,GAAG0yJ,EAAE9vE,EAAE3qE,QAAQ,GAAGyb,EAAEl9B,KAAKk8J,GAAG,IAAI,EAAEzxI,EAAEq9I,0BAA0B5L,EAAErgI,EAAE2zC,EAAEhmE,EAAE,EAAE8lE,EAAE9nE,EAAEs+I,IAAI,CAAC,IAAIp0E,EAAEpqE,EAAE8kF,EAAEphF,GAAG,OAAOixB,EAAEiB,GAAGw0C,EAAEz9D,EAAEipB,EAAE,+CAA+C,SAAS0kH,GAAG5sI,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAGlN,EAAEid,EAAEjnB,EAAEgK,EAAE,cAAc,IAAIkoB,EAAErB,EAAEpR,EAAEg6I,uBAAuBj7J,EAAEwL,EAAE7W,OAAOqL,EAAEqyB,GAAGjyB,EAAEoB,EAAE,2BAA2BkyB,EAAEixC,EAAEn5D,GAAGhK,EAAEhL,KAAKk9B,GAAGjb,EAAEgQ,EAAEjnB,EAAEiX,EAAE,SAAS,IAAIutD,EAAEorE,EAAE,EAAEnwH,EAAEg9I,yBAAyBxlJ,EAAE9jB,SAASy8I,GAAGhxI,EAAEoB,EAAE,wBAAwBwkE,EAAErB,EAAElsD,GAAGjX,EAAEhL,KAAKwvE,GAAGjiE,EAAE0kB,EAAEjnB,EAAEuC,EAAE,aAAa,IAAI+hE,EAAEuC,EAAE,EAAEpnD,EAAEq8I,6BAA6Bv5J,EAAEpP,SAAS0zE,GAAGjoE,EAAEoB,EAAE,4BAA4BskE,EAAEnB,EAAE5gE,GAAGvC,EAAEhL,KAAKsvE,GAAGloC,EAAEnV,EAAEjnB,EAAEo8B,EAAE,cAAc,IAAI5/B,EAAEs0B,EAAE,EAAErR,EAAEs8I,6BAA6B3/H,EAAEjpC,SAAS29B,GAAGlyB,EAAEoB,EAAE,6BAA6BxD,EAAE2mE,EAAE/mC,GAAGp8B,EAAEhL,KAAKwH,GAAG,IAAIs+I,EAAE,IAAIp8I,EAAEF,EAAEihB,EAAEg6I,uBAAuB,GAAGnX,EAAExH,EAAErkI,QAAQ,GAAGzW,EAAEhL,KAAKstJ,GAAG,IAAI,EAAE7iI,EAAEs9I,sBAAsBza,EAAEpwH,EAAE1zB,EAAE,EAAEgmE,EAAEF,EAAE9nE,IAAI,CAAC,IAAI4kF,EAAE9kF,EAAEw+I,EAAE5jI,GAAG,OAAO+Z,EAAEjxB,GAAGohF,EAAEn4E,EAAEjJ,EAAE,+CAA+C,SAAS4rF,GAAG5hF,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,eAAekoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,SAAS,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAEg9I,yBAAyBxlJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,wBAAwB2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,aAAa,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAEu8I,4BAA4Bz5J,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,4BAA4BstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAEwzB,EAAEzS,EAAEg6I,uBAAuB,GAAG5yF,EAAEvC,EAAE7tD,QAAQ,GAAGS,EAAEliB,KAAK6xE,GAAG,IAAI,EAAEpnD,EAAEu9I,8BAA8Bn2F,EAAE7mE,EAAEkyB,EAAE,EAAErB,EAAE2zC,IAAI,CAAC,IAAIhoE,EAAEF,EAAEgoE,EAAEloC,GAAG,OAAOnL,EAAE/Z,GAAG1a,EAAEyM,EAAEiO,EAAE,iDAAiD,SAAS06I,GAAG5nJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,aAAa,IAAIib,EAAErB,EAAE,EAAEpR,EAAEq8I,6BAA6B7kJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,4BAA4BlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAEsB,EAAEyf,EAAEw9I,wBAAwB,GAAGz4F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAEy9I,iBAAiB14F,EAAEttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASy1H,GAAG7nJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGpyB,EAAEid,EAAE/P,EAAElN,EAAE,cAAc,IAAIhK,EAAEkyB,EAAEzS,EAAEw9I,wBAAwBpsI,EAAE7mB,EAAE7W,OAAO09B,EAAEqB,GAAGtzB,EAAEsY,EAAE,2BAA2BlX,EAAEmjE,EAAEn5D,GAAGkN,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,aAAa,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAEq8I,6BAA6B7kJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEsY,EAAE,4BAA4B1Y,EAAE2kE,EAAElsD,GAAGC,EAAEliB,KAAKwJ,GAAG+D,EAAE0kB,EAAE/P,EAAE3U,EAAE,cAAc,IAAIqtI,EAAEtrE,EAAE,EAAE7kD,EAAEs8I,6BAA6Bx5J,EAAEpP,SAASmxE,GAAG1lE,EAAEsY,EAAE,6BAA6B04H,EAAEzsE,EAAE5gE,GAAG2U,EAAEliB,KAAK46I,GAAG,IAAI/oE,EAAE,IAAInoE,EAAEmyB,EAAEpR,EAAEw9I,wBAAwB,GAAGzgK,EAAEqqE,EAAEpwD,QAAQ,GAAGS,EAAEliB,KAAKwH,GAAG,IAAI,EAAEijB,EAAE09I,sBAAsB3gK,EAAEwD,EAAE6wB,EAAE,EAAEryB,EAAEoxI,IAAI,CAAC,IAAI9+G,EAAEx0B,EAAEuqE,EAAEzqC,GAAG,OAAOnL,EAAE/Z,GAAG4Z,EAAE7nB,EAAEiO,EAAE,+CAA+C,SAASmmB,GAAGrzB,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,QAAQ,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE29I,wBAAwBpzJ,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,uBAAuB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEq8I,8BAA8B5pI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAG,IAAIrB,EAAE,IAAInyB,EAAE,EAAE+gB,EAAEs8I,8BAA8Bv9J,EAAEqyB,EAAEpa,QAAQ,GAAGlU,EAAEvN,KAAKwJ,GAAG,IAAI,EAAEihB,EAAE49I,yBAAyBnrI,EAAE1zB,EAAE49B,IAAI,CAAC,IAAIooC,EAAE,CAACnmC,UAAU/hC,EAAE0D,EAAEiX,GAAGqZ,WAAWh0B,EAAEu0B,EAAE5Z,GAAGolJ,QAAQ,UAAU,OAAOprI,EAAE1uB,GAAGiiE,EAAEv7D,EAAE1G,EAAE,iBAAiB,SAASuvJ,GAAG9nJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE69I,6BAA6BtzJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAE69I,6BAA6BrmJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAE69I,8BAA8B94F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE89I,yBAAyB/4F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,+BAA+B,SAAS21H,GAAG/nJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAG,IAAImlB,EAAE+mC,EAAEn5D,EAAEid,EAAE1kB,EAAEyH,EAAE,MAAMA,EAAE7W,OAAOoP,EAAEvN,KAAKonC,GAAG,IAAIllB,EAAE,IAAIxY,EAAE,EAAE+gB,EAAE69I,8BAA8Bt9J,EAAEkX,EAAET,QAAQ,GAAGlU,EAAEvN,KAAKgL,GAAG,IAAI,EAAEyf,EAAE+9I,+BAA+Bx9J,EAAEo8B,IAAI,CAAC,IAAIlK,EAAE51B,EAAE4a,EAAED,GAAG,OAAOga,EAAE1uB,GAAG2vB,EAAEjpB,EAAE1G,EAAE,iBAAiB,SAASyvJ,GAAGhoJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAG,IAAImlB,EAAE+mC,EAAEn5D,EAAEid,EAAE1kB,EAAEyH,EAAE,MAAMA,EAAE7W,OAAOoP,EAAEvN,KAAKonC,GAAG,IAAIllB,EAAE,IAAIxY,EAAE,EAAE+gB,EAAE69I,8BAA8Bt9J,EAAEkX,EAAET,QAAQ,GAAGlU,EAAEvN,KAAKgL,GAAG,IAAI,EAAEyf,EAAEg+I,kCAAkCz9J,EAAEo8B,IAAI,CAAC,IAAIlK,EAAE51B,EAAE4a,EAAED,GAAG,OAAOga,EAAE1uB,GAAG2vB,EAAEjpB,EAAE1G,EAAE,iBAAiB,SAAS0vJ,GAAGjoJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,QAAQ,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE69I,6BAA6BtzJ,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,uBAAuB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAI,EAAEyf,EAAEi+I,oCAAoCthI,IAAI,OAAOnL,EAAE1uB,GAAGvC,EAAE,SAASkyJ,GAAGloJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAE69I,8BAA8BlhI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEk+I,4BAA4BvhI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASi7I,GAAGnoJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEm+I,mCAAmC5zJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAEm+I,mCAAmC3mJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEm+I,oCAAoCp5F,EAAEhmE,EAAEiY,QAAQ2lB,EAAEpnC,KAAKwvE,GAAG/kD,EAAEo+I,gCAAgCr5F,EAAEttD,EAAEgb,GAAG,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE,SAASwiB,GAAGpoJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,KAAK,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEm+I,mCAAmC5zJ,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,oBAAoB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEm+I,oCAAoC1rI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAGzS,EAAEq+I,uCAAuC5rI,EAAEkK,GAAG,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE,SAASg7D,GAAG7hF,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,KAAK,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEm+I,mCAAmC5zJ,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,oBAAoB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEm+I,oCAAoC1rI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEs+I,mCAAmC7rI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,uBAAuB,SAASy+D,GAAGh3D,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEm+I,mCAAmC5zJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAEm+I,mCAAmC3mJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEm+I,oCAAoCp5F,EAAEhmE,EAAEiY,QAAQ2lB,EAAEpnC,KAAKwvE,GAAG/kD,EAAEu+I,gCAAgCx5F,EAAEttD,EAAEgb,GAAG,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE,SAASyiB,GAAGroJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,KAAK,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEm+I,mCAAmC5zJ,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,oBAAoB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEm+I,oCAAoC1rI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAGzS,EAAEw+I,mCAAmC/rI,EAAEkK,GAAG,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE,SAASyhI,GAAGtoJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEm+I,oCAAoCxhI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEy+I,mCAAmC9hI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASq7I,GAAGvoJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,UAAU,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE0+I,6CAA6Cn0J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,yBAAyB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEm+I,oCAAoC1rI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAGzS,EAAE2+I,mCAAmClsI,EAAEkK,GAAG,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE,SAAS2hI,GAAGxoJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEm+I,mCAAmC5zJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAEm+I,mCAAmC3mJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEm+I,oCAAoCp5F,EAAEhmE,EAAEiY,QAAQ2lB,EAAEpnC,KAAKwvE,GAAG/kD,EAAE4+I,gCAAgC75F,EAAEttD,EAAEgb,GAAG,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE,SAAS6iB,GAAGzoJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE69I,6BAA6BtzJ,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAE69I,6BAA6BrmJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAE69I,8BAA8B94F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE6+I,yBAAyB95F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,+BAA+B,SAASs2H,GAAG1oJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE8+I,kCAAkCv0J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAE8+I,kCAAkCtnJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAE8+I,mCAAmC/5F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE++I,8BAA8Bh6F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,+BAA+B,SAASu2H,GAAG3oJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAG,IAAImlB,EAAE+mC,EAAEn5D,EAAEid,EAAE1kB,EAAEyH,EAAE,MAAMA,EAAE7W,OAAOoP,EAAEvN,KAAKonC,GAAG,IAAIllB,EAAE,IAAIxY,EAAE,EAAE+gB,EAAE8+I,mCAAmCv+J,EAAEkX,EAAET,QAAQ,GAAGlU,EAAEvN,KAAKgL,GAAG,IAAI,EAAEyf,EAAEg/I,oCAAoCz+J,EAAEo8B,IAAI,CAAC,IAAIlK,EAAE51B,EAAE4a,EAAED,GAAG,OAAOga,EAAE1uB,GAAG2vB,EAAEjpB,EAAE1G,EAAE,iBAAiB,SAASqwJ,GAAG5oJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,QAAQ,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE8+I,kCAAkCv0J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,uBAAuB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAI,EAAEyf,EAAEi/I,yCAAyCtiI,IAAI,OAAOnL,EAAE1uB,GAAGvC,EAAE,SAAS6yJ,GAAG7oJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAE8+I,mCAAmCniI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEk/I,iCAAiCviI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAAS47I,GAAG9oJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEm/I,wCAAwC50J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAEm/I,wCAAwC3nJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEm/I,yCAAyCp6F,EAAEhmE,EAAEiY,QAAQ2lB,EAAEpnC,KAAKwvE,GAAG/kD,EAAEo/I,qCAAqCr6F,EAAEttD,EAAEgb,GAAG,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE,SAASmjB,GAAG/oJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,KAAK,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEm/I,wCAAwC50J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,oBAAoB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEm/I,yCAAyC1sI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAGzS,EAAEq/I,4CAA4C5sI,EAAEkK,GAAG,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE,SAASmiI,GAAGhpJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,KAAK,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEm/I,wCAAwC50J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,oBAAoB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEm/I,yCAAyC1sI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEs/I,wCAAwC7sI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,uBAAuB,SAAS0wJ,GAAGjpJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEm/I,wCAAwC50J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAEm/I,wCAAwC3nJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEm/I,yCAAyCp6F,EAAEhmE,EAAEiY,QAAQ2lB,EAAEpnC,KAAKwvE,GAAG/kD,EAAEu/I,qCAAqCx6F,EAAEttD,EAAEgb,GAAG,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE,SAASsjB,GAAGlpJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,KAAK,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEm/I,wCAAwC50J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,oBAAoB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEm/I,yCAAyC1sI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAGzS,EAAEw/I,wCAAwC/sI,EAAEkK,GAAG,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE,SAASsiI,GAAGnpJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEm/I,yCAAyCxiI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEy/I,wCAAwC9iI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASk8I,GAAGppJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,UAAU,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE0/I,kDAAkDn1J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,yBAAyB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEm/I,yCAAyC1sI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAGzS,EAAE2/I,wCAAwCltI,EAAEkK,GAAG,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE,SAASwiI,GAAGrpJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEm/I,wCAAwC50J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAEm/I,wCAAwC3nJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEm/I,yCAAyCp6F,EAAEhmE,EAAEiY,QAAQ2lB,EAAEpnC,KAAKwvE,GAAG/kD,EAAE4/I,qCAAqC76F,EAAEttD,EAAEgb,GAAG,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE,SAAS0jB,GAAGtpJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE8+I,kCAAkCv0J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAE8+I,kCAAkCtnJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAE8+I,mCAAmC/5F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE6/I,8BAA8B96F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,+BAA+B,SAASm3H,GAAGvpJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGkoC,EAAEptD,EAAElN,EAAE,gBAAgB,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAEsY,EAAE,2CAA2C,IAAIlX,EAAEmjE,EAAElsD,EAAEgQ,EAAE/P,EAAED,EAAE,YAAYib,EAAEjb,EAAE9jB,OAAO+jB,EAAEliB,KAAKgL,GAAG,IAAI6wB,EAAE,KAAKryB,EAAE,EAAE,MAAM+D,IAAIsuB,EAAEsyC,EAAE5gE,EAAE0kB,EAAE/P,EAAE3U,EAAE,QAAQ/D,EAAE+D,EAAEpP,OAAO+jB,EAAEliB,KAAK67B,IAAI,IAAI2zC,EAAE,IAAI9lE,EAAEsL,GAAG,GAAG4lI,EAAEprE,EAAE/tD,QAAQ,GAAGS,EAAEliB,KAAK46I,GAAG,IAAI,EAAEnwH,EAAE8/I,oBAAoB3vB,EAAE5lI,EAAEhK,EAAEkyB,EAAE,EAAErB,EAAEryB,IAAI,CAAC,IAAIqoE,EAAEvqE,EAAEkoE,EAAEpoC,GAAG,OAAOnL,EAAE/Z,GAAG2vD,EAAE59D,EAAEiO,EAAE,iBAAiB,SAASs8I,GAAGxpJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAGotD,EAAEtkE,EAAEgK,EAAE,eAAe,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAEoB,EAAE,0CAA0C,IAAIkyB,EAAE,KAAKrB,EAAE,EAAE,MAAM5Z,IAAIib,EAAEixC,EAAElsD,EAAEgQ,EAAEjnB,EAAEiX,EAAE,QAAQ4Z,EAAE5Z,EAAE9jB,OAAO6M,EAAEhL,KAAKk9B,IAAI3vB,EAAE0kB,EAAEjnB,EAAEuC,EAAE,MAAM,IAAI/D,EAAEgmE,EAAE,EAAE/kD,EAAE+/I,wCAAwCj9J,EAAEpP,SAASqxE,GAAG5lE,EAAEoB,EAAE,qBAAqBxB,EAAE2kE,EAAE5gE,GAAGvC,EAAEhL,KAAKwJ,GAAG49B,EAAEnV,EAAEjnB,EAAEo8B,EAAE,OAAO,IAAIwzG,EAAE/oE,EAAE,EAAEpnD,EAAEggJ,4CAA4CrjI,EAAEjpC,SAAS0zE,GAAGjoE,EAAEoB,EAAE,sBAAsB4vI,EAAEzsE,EAAE/mC,GAAGp8B,EAAEhL,KAAK46I,GAAG,IAAIpzI,EAAE,IAAIkC,EAAE,EAAEsL,GAAG8mB,EAAEt0B,EAAEia,QAAQ,GAAGzW,EAAEhL,KAAK87B,GAAG,IAAI,EAAErR,EAAEigJ,0CAA0C5uI,EAAE9mB,EAAE,KAAK,EAAE,EAAEkoB,EAAErB,EAAEryB,EAAEoxI,IAAI,CAAC,IAAIkL,EAAEx+I,EAAEE,EAAE0a,GAAG,OAAO+Z,EAAEjxB,GAAG86I,EAAE7xI,EAAEjJ,EAAE,iBAAiB,SAASyzJ,GAAGzpJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG+hE,EAAEloC,EAAEpyB,EAAE,iBAAiBs6D,EAAEloC,EAAEnlB,EAAE,gBAAgB,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIrY,EAAEw9B,EAAE,2CAA2C,IAAIllB,EAAE,IAAIxY,EAAEuY,GAAG,GAAGjX,EAAEkX,EAAET,QAAQ,GAAG2lB,EAAEpnC,KAAKgL,GAAG,IAAI,EAAEyf,EAAEkgJ,0BAA0B31J,EAAEhK,EAAEiX,IAAI,CAAC,IAAIib,GAAGzS,EAAE25I,MAAMpvJ,GAAG1N,EAAE4a,EAAE3U,IAAI,OAAO0uB,EAAEmL,GAAGlK,EAAEjpB,EAAEmzB,EAAE,iBAAiB,SAASs3H,GAAG1pJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAE,KAAKlX,EAAE,EAAE,MAAMgK,IAAIkN,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,QAAQhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,IAAIotD,EAAEloC,EAAEnlB,EAAE,gBAAgB,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIrY,EAAEw9B,EAAE,2CAA2C,IAAIlK,EAAE,IAAIxzB,EAAE,KAAK+X,QAAQ,GAAG,IAAI,EAAEgJ,EAAEmgJ,yBAAyB1tI,EAAEhb,EAAElX,EAAEiX,IAAI,CAAC,IAAI4Z,EAAEqB,EAAE,OAAOjB,EAAEmL,GAAGvL,EAAE5nB,EAAEmzB,EAAE,iBAAiB,SAASu3H,GAAG3pJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEogJ,gCAAgCzjI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEqgJ,2BAA2B1jI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAAS08I,GAAG5pJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG+hE,EAAEloC,EAAEpyB,EAAE,iBAAiB,IAAIkN,EAAEisD,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,kBAAkBjX,EAAEiX,EAAE9jB,OAAOipC,EAAEpnC,KAAKkiB,GAAG,IAAI,EAAEuI,EAAEsgJ,2BAA2B/1J,EAAEkN,EAAElX,KAAKiJ,EAAEmzB,EAAE,iBAAiBnL,EAAEmL,GAAG,SAASy3H,GAAG7pJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAG,IAAImlB,EAAE+mC,EAAEn5D,EAAEid,EAAE1kB,EAAEyH,EAAE,YAAYkN,EAAElN,EAAE7W,OAAOoP,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEugJ,sBAAsB9tI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEwgJ,aAAa/tI,EAAEkK,EAAEllB,EAAE,IAAI,CAAC,IAAI2Z,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,iBAAiB,SAASuxJ,GAAG9pJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAG,IAAImlB,EAAE+mC,EAAEn5D,EAAEid,EAAE1kB,EAAEyH,EAAE,YAAYkN,EAAElN,EAAE7W,OAAOoP,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEygJ,6BAA6BhuI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAE0gJ,oBAAoBjuI,EAAEkK,EAAEllB,EAAE,IAAI,CAAC,IAAI2Z,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,iBAAiB,SAASwxJ,GAAG/pJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGqtD,EAAE/hE,EAAEyH,EAAE,iBAAiB,IAAIoyB,EAAE,IAAI19B,EAAE,EAAE+gB,EAAEygJ,6BAA6BhpJ,EAAEklB,EAAE3lB,QAAQ,GAAGlU,EAAEvN,KAAKkiB,GAAG,IAAI,EAAEuI,EAAE2gJ,0BAA0Bp2J,EAAEkN,IAAI,CAAC,IAAIlX,GAAGyf,EAAE25I,MAAMpvJ,GAAG1N,EAAE8/B,EAAEnlB,IAAI,OAAOga,EAAE1uB,GAAGvC,EAAEiJ,EAAE1G,EAAE,iBAAiB,SAASyxJ,GAAGhqJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,KAAK+X,QAAQ,GAAG,IAAI,EAAEgJ,EAAE4gJ,yBAAyB99J,IAAI,CAAC,IAAI65B,EAAE75B,EAAE,OAAO0uB,EAAEha,GAAGmlB,EAAEnzB,EAAEgO,EAAE,iBAAiB,SAASg9I,GAAGjqJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG+hE,EAAEloC,EAAEpyB,EAAE,iBAAiB,IAAIkN,EAAEisD,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,kBAAkBjX,EAAEiX,EAAE9jB,OAAOipC,EAAEpnC,KAAKkiB,GAAG,IAAI,EAAEuI,EAAE6gJ,2BAA2Bt2J,EAAEkN,EAAElX,KAAKiJ,EAAEmzB,EAAE,iBAAiBnL,EAAEmL,GAAG,SAAS83H,GAAGlqJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAG,IAAImlB,EAAE+mC,EAAEn5D,EAAEid,EAAE1kB,EAAEyH,EAAE,YAAYkN,EAAElN,EAAE7W,OAAOoP,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAE8gJ,6BAA6BruI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAE+gJ,oBAAoBtuI,EAAEkK,EAAEllB,EAAE,IAAI,CAAC,IAAI2Z,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,iBAAiB,SAAS4xJ,GAAGnqJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGqtD,EAAE/hE,EAAEyH,EAAE,iBAAiB,IAAIoyB,EAAE,IAAI19B,EAAE,EAAE+gB,EAAE8gJ,6BAA6BrpJ,EAAEklB,EAAE3lB,QAAQ,GAAGlU,EAAEvN,KAAKkiB,GAAG,IAAI,EAAEuI,EAAEghJ,0BAA0Bz2J,EAAEkN,IAAI,CAAC,IAAIlX,GAAGyf,EAAE25I,MAAMpvJ,GAAG1N,EAAE8/B,EAAEnlB,IAAI,OAAOga,EAAE1uB,GAAGvC,EAAEiJ,EAAE1G,EAAE,iBAAiB,SAAS6xJ,GAAGpqJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,KAAK+X,QAAQ,GAAG,IAAI,EAAEgJ,EAAEihJ,yBAAyBn+J,IAAI,CAAC,IAAI65B,EAAE75B,EAAE,OAAO0uB,EAAEha,GAAGmlB,EAAEnzB,EAAEgO,EAAE,iBAAiB,SAASo9I,GAAGrqJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG+hE,EAAEloC,EAAEpyB,EAAE,iBAAiB,IAAIkN,EAAEisD,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,kBAAkBjX,EAAEiX,EAAE9jB,OAAOipC,EAAEpnC,KAAKkiB,GAAG,IAAI,EAAEuI,EAAEkhJ,2BAA2B32J,EAAEkN,EAAElX,KAAKiJ,EAAEmzB,EAAE,iBAAiBnL,EAAEmL,GAAG,SAASk4H,GAAGtqJ,EAAEiN,EAAE1U,EAAE2U,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAGskE,EAAEpyC,EAAEloB,EAAE,eAAe,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAEszB,EAAE,0CAA0CoyC,EAAEpyC,EAAEjb,EAAE,cAAc,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIrY,EAAEszB,EAAE,yCAAyC,iBAAiB3vB,GAAG3D,EAAEszB,EAAE,wBAAwB3vB,EAAE65B,EAAE75B,EAAE,MAAM,MAAM/D,GAAG+D,EAAEpP,OAAO,IAAIqL,GAAGI,EAAEszB,EAAE,sBAAsB,IAAIrB,EAAEsyC,EAAE5gE,GAAG/D,EAAE+D,EAAEpP,OAAO,EAAE++B,EAAEl9B,KAAK67B,GAAG3Z,EAAE+P,EAAEiL,EAAEhb,EAAE,OAAO,IAAIstD,EAAEorE,EAAE,EAAEnwH,EAAEmhJ,uBAAuB1pJ,EAAE/jB,SAASy8I,GAAGhxI,EAAEszB,EAAE,sBAAsBsyC,EAAErB,EAAEjsD,GAAGgb,EAAEl9B,KAAKwvE,GAAG,IAAIv7D,EAAE,IAAIvK,EAAE,EAAEsL,GAAG68D,EAAE59D,EAAEwN,QAAQyb,EAAEl9B,KAAK6xE,GAAGpnD,EAAEohJ,4BAA4Bh6F,EAAE78D,EAAEiN,EAAEA,IAAI,KAAK,EAAE4Z,EAAE2zC,GAAG,IAAIhoE,EAAEF,EAAE2M,EAAEjJ,GAAG,OAAOixB,EAAEiB,GAAG11B,EAAE,SAAS+3J,GAAGvqJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEmhJ,wBAAwBxkI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEqhJ,mBAAmB1kI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASs9I,GAAGxqJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGpyB,EAAEid,EAAE/P,EAAElN,EAAE,mBAAmB,IAAIhK,EAAEkyB,EAAE,EAAEzS,EAAEshJ,4BAA4B/2J,EAAE7W,SAAS++B,GAAGtzB,EAAEsY,EAAE,kCAAkClX,EAAEmjE,EAAEn5D,GAAGkN,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,mBAAmB,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAEuhJ,4BAA4B/pJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,kCAAkC2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,mBAAmB,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAEshJ,4BAA4Bx+J,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,kCAAkCstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAE,EAAE+gB,EAAEwhJ,8BAA8Bp6F,EAAEvC,EAAE7tD,QAAQS,EAAEliB,KAAK6xE,GAAG,IAAIrqE,EAAE,IAAIkC,EAAE,EAAE+gB,EAAEwhJ,8BAA8BnwI,EAAEt0B,EAAEia,QAAQ,GAAGS,EAAEliB,KAAK87B,GAAG,IAAI,EAAErR,EAAEyhJ,+BAA+Br6F,EAAE/1C,EAAE9wB,EAAE6wB,EAAE2zC,IAAI,CAAC,IAAIs2E,EAAEx+I,EAAE,CAAC6kK,SAAS78F,EAAE88F,SAAS5kK,GAAG4/B,GAAG,OAAOnL,EAAE/Z,GAAG4jI,EAAE7xI,EAAEiO,EAAE,iBAAiB,SAASu9I,GAAGzqJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEshJ,6BAA6B3kI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG,IAAIllB,EAAE,IAAIxY,EAAE,EAAE+gB,EAAEuhJ,6BAA6BhhK,EAAEkX,EAAET,QAAQ,GAAGQ,EAAEjiB,KAAKgL,GAAG,IAAI,EAAEyf,EAAE4hJ,mBAAmBjlI,EAAEp8B,IAAI,CAAC,IAAIkyB,EAAE,CAACmM,UAAU/hC,EAAEiG,EAAEyH,GAAGsmB,WAAWh0B,EAAE4a,EAAElN,GAAGqyJ,QAAQ,UAAU,OAAOprI,EAAEha,GAAGib,EAAEjpB,EAAEgO,EAAE,kBAAkB,SAASy9I,GAAG1qJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,QAAQ,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE6hJ,uBAAuBt3J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,uBAAuB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEshJ,6BAA6B7uI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAG,IAAIrB,EAAE,IAAInyB,EAAE,EAAE+gB,EAAEuhJ,6BAA6BxiK,EAAEqyB,EAAEpa,QAAQ,GAAGlU,EAAEvN,KAAKwJ,GAAG,IAAI,EAAEihB,EAAE8hJ,wBAAwBrvI,EAAE1zB,EAAE49B,IAAI,CAAC,IAAIooC,EAAE,CAACnmC,UAAU/hC,EAAE0D,EAAEiX,GAAGqZ,WAAWh0B,EAAEu0B,EAAE5Z,GAAGolJ,QAAQ,UAAU,OAAOprI,EAAE1uB,GAAGiiE,EAAEv7D,EAAE1G,EAAE,kBAAkB,SAASoyJ,GAAG3qJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGpyB,EAAEid,EAAE/P,EAAElN,EAAE,mBAAmB,IAAIhK,EAAEkyB,EAAE,EAAEzS,EAAEshJ,4BAA4B/2J,EAAE7W,SAAS++B,GAAGtzB,EAAEsY,EAAE,kCAAkClX,EAAEmjE,EAAEn5D,GAAGkN,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,mBAAmB,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAEuhJ,4BAA4B/pJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,kCAAkC2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,mBAAmB,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAEshJ,4BAA4Bx+J,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,kCAAkCstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAE,EAAE+gB,EAAEwhJ,8BAA8Bp6F,EAAEvC,EAAE7tD,QAAQS,EAAEliB,KAAK6xE,GAAG,IAAIrqE,EAAE,IAAIkC,EAAE,EAAE+gB,EAAEwhJ,8BAA8BnwI,EAAEt0B,EAAEia,QAAQ,GAAGS,EAAEliB,KAAK87B,GAAG,IAAI,EAAErR,EAAE+hJ,+BAA+B36F,EAAE/1C,EAAE9wB,EAAE6wB,EAAE2zC,IAAI,CAAC,IAAIs2E,EAAEx+I,EAAE,CAAC6kK,SAAS78F,EAAE88F,SAAS5kK,GAAG4/B,GAAG,OAAOnL,EAAE/Z,GAAG4jI,EAAE7xI,EAAEiO,EAAE,iBAAiB,SAAS09I,GAAG5qJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,OAAO,IAAIib,EAAErB,EAAE,EAAEpR,EAAEgiJ,+BAA+BxqJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,sBAAsBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEiiJ,6BAA6Bl9F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAEkiJ,oBAAoBn9F,EAAEttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASspC,GAAG17D,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGqtD,EAAE/hE,EAAEyH,EAAE,iBAAiB,IAAIoyB,EAAE,IAAI19B,EAAE,EAAE+gB,EAAEiiJ,6BAA6BxqJ,EAAEklB,EAAE3lB,QAAQ,GAAGlU,EAAEvN,KAAKkiB,GAAG,IAAI,EAAEuI,EAAEmiJ,0BAA0B53J,EAAEkN,IAAI,CAAC,IAAIlX,GAAGyf,EAAE25I,MAAMpvJ,GAAG1N,EAAE8/B,EAAEnlB,IAAI,OAAOga,EAAE1uB,GAAGvC,EAAEiJ,EAAE1G,EAAE,iBAAiB,SAASwjE,GAAG/7D,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAG,IAAImlB,EAAE,KAAK,MAAMpyB,IAAIoyB,EAAE+mC,EAAEn5D,EAAEid,EAAE1kB,EAAEyH,EAAE,QAAQA,EAAE7W,OAAOoP,EAAEvN,KAAKonC,IAAI,IAAIllB,EAAE,IAAIxY,EAAE,KAAK+X,QAAQ,GAAG,IAAI,EAAEgJ,EAAEoiJ,yBAAyB3qJ,EAAEklB,IAAI,CAAC,IAAIp8B,EAAEkX,EAAE,OAAO+Z,EAAE1uB,GAAGvC,EAAEiJ,EAAE1G,EAAE,iBAAiB,SAAS4jE,GAAGn8D,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEgiJ,gCAAgCrlI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEqiJ,2BAA2B1lI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASguD,GAAGl7D,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG+hE,EAAEloC,EAAEpyB,EAAE,iBAAiB,IAAIkN,EAAEisD,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,kBAAkBjX,EAAEiX,EAAE9jB,OAAOipC,EAAEpnC,KAAKkiB,GAAG,IAAI,EAAEuI,EAAEsiJ,2BAA2B/3J,EAAEkN,EAAElX,KAAKiJ,EAAEmzB,EAAE,iBAAiBnL,EAAEmL,GAAG,SAASy4H,GAAG7qJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGpyB,EAAEid,EAAEmV,EAAEpyB,EAAE,QAAQ,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEiiJ,4BAA4B13J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,uBAAuBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAG,IAAIgb,EAAEixC,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,YAAY4Z,EAAE5Z,EAAE9jB,OAAOipC,EAAEpnC,KAAKk9B,GAAG3vB,EAAE0kB,EAAEmV,EAAE75B,EAAE,OAAO,IAAI/D,EAAElC,EAAE,EAAEmjB,EAAEgiJ,+BAA+Bl/J,EAAEpP,SAASmJ,GAAGsC,EAAEw9B,EAAE,sBAAsB59B,EAAE2kE,EAAE5gE,GAAG65B,EAAEpnC,KAAKwJ,GAAG,IAAIgmE,EAAE,IAAI,EAAE/kD,EAAEuiJ,2BAA2B9qJ,EAAEgb,EAAErB,EAAE,EAAEryB,IAAI,OAAOyyB,EAAEmL,GAAGooC,EAAE,SAASyB,GAAGj8D,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,EAAEkyB,GAAG,IAAIrB,EAAE,GAAG39B,EAAEg/B,GAAGoyC,EAAEzzC,EAAE7mB,EAAE,cAAc,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAEiyB,EAAE,yCAAyC,IAAIryB,EAAE2kE,EAAElsD,EAAEgQ,EAAE4J,EAAE5Z,EAAE,aAAautD,EAAEvtD,EAAE9jB,OAAO09B,EAAE77B,KAAKwJ,GAAG+D,EAAE0kB,EAAE4J,EAAEtuB,EAAE,QAAQ,IAAIqtI,EAAE/oE,EAAE,EAAEpnD,EAAEwiJ,2BAA2B1/J,EAAEpP,SAAS0zE,GAAGjoE,EAAEiyB,EAAE,uBAAuB++G,EAAEzsE,EAAE5gE,GAAGsuB,EAAE77B,KAAK46I,GAAGtrE,EAAEzzC,EAAEuL,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIx9B,EAAEiyB,EAAE,wCAAwCyzC,EAAEzzC,EAAE3Z,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAItY,EAAEiyB,EAAE,wCAAwCyzC,EAAEzzC,EAAE7wB,EAAE,cAAc,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpB,EAAEiyB,EAAE,yCAAyC,IAAIr0B,EAAE,IAAIkC,EAAE,EAAEsL,GAAG8mB,EAAEt0B,EAAEia,QAAQ,GAAGoa,EAAE77B,KAAK87B,GAAG,IAAI,EAAErR,EAAEyiJ,eAAepxI,EAAE9mB,EAAE,EAAExL,EAAEgmE,EAAE,EAAEorE,EAAExzG,EAAE,EAAEllB,EAAElX,IAAI,CAAC,IAAI86I,EAAEx+I,EAAEE,EAAE01B,GAAG,OAAOjB,EAAEJ,GAAGiqH,EAAE7xI,EAAE4nB,EAAE,iBAAiB,SAASikI,GAAG9qJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,GAAG,IAAIkyB,EAAE,GAAGh/B,EAAE8M,GAAGskE,EAAEpyC,EAAEloB,EAAE,cAAc,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAEszB,EAAE,yCAAyC,IAAIrB,EAAEsyC,EAAElsD,EAAEgQ,EAAEiL,EAAEjb,EAAE,aAAazY,EAAEyY,EAAE9jB,OAAO++B,EAAEl9B,KAAK67B,GAAGtuB,EAAE0kB,EAAEiL,EAAE3vB,EAAE,QAAQ,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAE0iJ,gDAAgD5/J,EAAEpP,SAASy8I,GAAGhxI,EAAEszB,EAAE,uBAAuBsyC,EAAErB,EAAE5gE,GAAG2vB,EAAEl9B,KAAKwvE,GAAGF,EAAEpyC,EAAEkK,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIx9B,EAAEszB,EAAE,wCAAwCoyC,EAAEpyC,EAAEhb,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAItY,EAAEszB,EAAE,wCAAwC,IAAI20C,EAAE,IAAInoE,EAAE,EAAEsL,GAAGxN,EAAEqqE,EAAEpwD,QAAQ,GAAGyb,EAAEl9B,KAAKwH,GAAG,IAAI,EAAEijB,EAAE2iJ,oCAAoC5lK,EAAEwN,EAAE,EAAE6mB,EAAEryB,EAAE,EAAEgmE,EAAEpoC,EAAE,EAAEllB,IAAI,CAAC,IAAI4Z,EAAEx0B,EAAEuqE,EAAE7mE,GAAG,OAAOixB,EAAEiB,GAAGpB,EAAE7nB,EAAEipB,EAAE,iBAAiB,SAASozC,GAAGt7D,EAAEiN,EAAE1U,EAAE65B,EAAEllB,EAAElX,EAAEkyB,GAAG,IAAIrB,EAAE,GAAG39B,EAAEg/B,GAAG,IAAI1zB,EAAE2kE,EAAEn5D,EAAEid,EAAE4J,EAAE7mB,EAAE,aAAaw6D,EAAEx6D,EAAE7W,OAAO09B,EAAE77B,KAAKwJ,GAAG,IAAIoxI,EAAEzsE,EAAElsD,EAAEgQ,EAAE4J,EAAE5Z,EAAE,SAAS4vD,EAAE5vD,EAAE9jB,OAAO09B,EAAE77B,KAAK46I,GAAGtrE,EAAEzzC,EAAEtuB,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAI3D,EAAEiyB,EAAE,wCAAwCyzC,EAAEzzC,EAAEuL,EAAE,MAAM,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIx9B,EAAEiyB,EAAE,iCAAiCyzC,EAAEzzC,EAAE3Z,EAAE,MAAM,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAItY,EAAEiyB,EAAE,iCAAiCyzC,EAAEzzC,EAAE7wB,EAAE,cAAc,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpB,EAAEiyB,EAAE,yCAAyC,IAAIr0B,EAAE,IAAIkC,EAAE,EAAEsB,GAAG8wB,EAAEt0B,EAAEia,QAAQ,GAAGoa,EAAE77B,KAAK87B,GAAG,IAAI,EAAErR,EAAE4iJ,uCAAuC7jK,EAAEgmE,EAAEorE,EAAE/oE,EAAEtkE,EAAE,EAAE65B,EAAEllB,EAAE4Z,EAAE9wB,IAAI,CAAC,IAAI86I,EAAEx+I,EAAEE,EAAE01B,GAAG,OAAOjB,EAAEJ,GAAGiqH,EAAE7xI,EAAE4nB,EAAE,iBAAiB,SAASuzD,GAAGp6E,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,aAAakoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGskE,EAAEptD,EAAED,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIrY,EAAEsY,EAAE,wCAAwCotD,EAAEptD,EAAE3U,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAI3D,EAAEsY,EAAE,wCAAwC,IAAI2Z,EAAE,IAAInyB,EAAE,EAAE+gB,EAAE6iJ,gDAAgD7rJ,QAAQ,GAAGS,EAAEliB,KAAK67B,GAAG,IAAI,EAAEpR,EAAE8iJ,wCAAwC1xI,EAAE7wB,EAAEkyB,EAAE,EAAEjb,EAAE,EAAE1U,IAAI,CAAC,IAAI/D,EAAEihB,EAAE04I,aAAatnI,GAAG,OAAOI,EAAE/Z,GAAG1Y,EAAEyK,EAAEiO,EAAE,iBAAiB,SAAS69I,GAAG/qJ,EAAEiN,EAAE1U,GAAG,IAAI2U,EAAE,GAAGhkB,EAAEqP,GAAG,iBAAiByH,GAAGpL,EAAEsY,EAAE,oCAAoClN,EAAEoyB,EAAEpyB,EAAE,MAAM,MAAMkoB,GAAGloB,EAAE7W,OAAO,IAAI++B,GAAGtzB,EAAEsY,EAAE,kCAAkC,IAAIlX,EAAEmjE,EAAEn5D,GAAGkoB,EAAEloB,EAAE7W,OAAO,EAAE+jB,EAAEliB,KAAKgL,GAAG,IAAI6wB,EAAEsyC,EAAElsD,EAAEgQ,EAAE/P,EAAED,EAAE,aAAazY,EAAEyY,EAAE9jB,OAAO+jB,EAAEliB,KAAK67B,GAAG,IAAIv0B,EAAE,IAAI,EAAEmjB,EAAE+iJ,+CAA+CxiK,EAAE6wB,EAAEryB,EAAE,IAAI,OAAOyyB,EAAE/Z,GAAG5a,EAAE,SAAS04J,GAAGhrJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,aAAakoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGskE,EAAEptD,EAAED,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIrY,EAAEsY,EAAE,wCAAwCotD,EAAEptD,EAAE3U,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAI3D,EAAEsY,EAAE,wCAAwC,IAAI2Z,EAAE,IAAInyB,EAAE,EAAE+gB,EAAEgjJ,2BAA2BhsJ,QAAQ,GAAGS,EAAEliB,KAAK67B,GAAG,IAAI,EAAEpR,EAAEijJ,mBAAmB7xI,EAAE7wB,EAAEkyB,EAAE,EAAEjb,EAAE,EAAE1U,IAAI,CAAC,IAAI/D,EAAEihB,EAAE04I,aAAatnI,GAAG,OAAOI,EAAE/Z,GAAG1Y,EAAEyK,EAAEiO,EAAE,iBAAiB,SAAS+9I,GAAGjrJ,EAAEiN,EAAE1U,EAAE2U,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAG,iBAAiBlN,GAAGpL,EAAEoB,EAAE,oCAAoCgK,EAAEoyB,EAAEpyB,EAAE,MAAM,MAAM6mB,GAAG7mB,EAAE7W,OAAO,IAAI09B,GAAGjyB,EAAEoB,EAAE,kCAAkC,IAAIkyB,EAAEixC,EAAEn5D,GAAG6mB,EAAE7mB,EAAE7W,OAAO,EAAE6M,EAAEhL,KAAKk9B,GAAGoyC,EAAEtkE,EAAEiX,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIrY,EAAEoB,EAAE,wCAAwCskE,EAAEtkE,EAAEuC,EAAE,aAAa,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAI3D,EAAEoB,EAAE,wCAAwC,IAAIxB,EAAE,IAAI,EAAEihB,EAAEkjJ,gCAAgCzwI,EAAEjb,EAAE,EAAE1U,IAAI,OAAO0uB,EAAEjxB,GAAGxB,EAAE,SAAS42B,GAAGprB,EAAEiN,EAAE1U,GAAG,IAAI2U,EAAE,GAAGhkB,EAAEqP,GAAG,iBAAiByH,GAAGpL,EAAEsY,EAAE,oCAAoClN,EAAEoyB,EAAEpyB,EAAE,MAAM,MAAMkoB,GAAGloB,EAAE7W,OAAO,IAAI++B,GAAGtzB,EAAEsY,EAAE,kCAAkC,IAAIlX,EAAEmjE,EAAEn5D,GAAGkoB,EAAEloB,EAAE7W,OAAO,EAAE+jB,EAAEliB,KAAKgL,GAAG,IAAI6wB,EAAEsyC,EAAElsD,EAAEgQ,EAAE/P,EAAED,EAAE,aAAazY,EAAEyY,EAAE9jB,OAAO+jB,EAAEliB,KAAK67B,GAAG,IAAIv0B,EAAE,IAAI,EAAEmjB,EAAEmjJ,0BAA0B5iK,EAAE6wB,EAAEryB,EAAE,IAAI,OAAOyyB,EAAE/Z,GAAG5a,EAAE,SAAS44J,GAAGlrJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,cAAc,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEojJ,iCAAiC74J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,6BAA6BllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,aAAa,IAAIib,EAAErB,EAAE,EAAEpR,EAAEqjJ,2BAA2B7rJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,4BAA4BlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEqjJ,4BAA4Bt+F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAEsjJ,mBAAmBv+F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,mBAAmB,SAAS+4H,GAAGnrJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,cAAc,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEojJ,iCAAiC74J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,6BAA6B65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEqjJ,4BAA4B5wI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEujJ,wBAAwB9wI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,iBAAiB,SAASijE,GAAGx7D,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEwjJ,yCAAyCj5J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAEyjJ,mCAAmCjsJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEyjJ,oCAAoC1+F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE0jJ,2BAA2B3+F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,gCAAgC,SAASg5H,GAAGprJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,UAAU,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEwjJ,yCAAyCj5J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,yBAAyB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEyjJ,oCAAoChxI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAE2jJ,gCAAgClxI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,eAAe,SAAS8yJ,GAAGrrJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,UAAU,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEwjJ,yCAAyCj5J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,yBAAyB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEyjJ,oCAAoChxI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAE4jJ,wCAAwCnxI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,eAAe,SAAS6iE,GAAGp7D,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,KAAK,IAAIkN,EAAElX,EAAE,EAAEyf,EAAEwjJ,yCAAyCj5J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,oBAAoBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,KAAK,IAAIib,EAAErB,EAAE,EAAEpR,EAAEyjJ,mCAAmCjsJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,oBAAoBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEyjJ,oCAAoC1+F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE6jJ,mCAAmC9+F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,gCAAgC,SAASk5H,GAAGtrJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,UAAU,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE8jJ,8CAA8Cv5J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,yBAAyBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,WAAW,IAAIib,EAAErB,EAAE,EAAEpR,EAAE+jJ,wCAAwCvsJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,0BAA0BlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAE+jJ,yCAAyCh/F,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAEgkJ,gCAAgCj/F,EAAEttD,EAAEgb,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,8BAA8B,SAASm5H,GAAGvrJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,UAAU,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEm/I,wCAAwC50J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,yBAAyB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAE8+I,mCAAmCrsI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEikJ,qCAAqCxxI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,eAAe,SAASizJ,GAAGxrJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,YAAYkoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,SAAS,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAEkkJ,+BAA+B1sJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,wBAAwB2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,OAAO,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAEmkJ,6BAA6BrhK,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,sBAAsBstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAE,EAAEwzB,GAAG20C,EAAEvC,EAAE7tD,QAAQS,EAAEliB,KAAK6xE,GAAG,IAAIrqE,EAAE,IAAIkC,EAAE,EAAE+gB,EAAEokJ,8BAA8B/yI,EAAEt0B,EAAEia,QAAQ,GAAGS,EAAEliB,KAAK87B,GAAG,IAAI,EAAErR,EAAEqkJ,2BAA2Bj9F,EAAE/1C,EAAE9wB,EAAEkyB,EAAE,EAAErB,EAAE2zC,IAAI,CAAC,IAAIs2E,EAAEx+I,EAAE,CAACu9J,IAAIr9J,EAAEunK,OAAOz/F,GAAGloC,GAAG,OAAOnL,EAAE/Z,GAAG4jI,EAAE7xI,EAAEiO,EAAE,iBAAiB,SAASu+I,GAAGzrJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,YAAYkoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,SAAS,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAEkkJ,+BAA+B1sJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,wBAAwB2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,OAAO,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAEmkJ,6BAA6BrhK,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,sBAAsBstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAEwzB,EAAEzS,EAAEokJ,6BAA6B,GAAGh9F,EAAEvC,EAAE7tD,QAAQ,GAAGS,EAAEliB,KAAK6xE,GAAG,IAAI,EAAEpnD,EAAEukJ,uBAAuBn9F,EAAE7mE,EAAEkyB,EAAE,EAAErB,EAAE2zC,IAAI,CAAC,IAAIhoE,EAAEF,EAAEgoE,EAAEloC,GAAG,OAAOnL,EAAE/Z,GAAG1a,EAAEyM,EAAEiO,EAAE,iBAAiB,SAASw+I,GAAG1rJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEmkJ,8BAA8BxnI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEwkJ,yBAAyB7nI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASy+I,GAAG3rJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAG,IAAIgb,EAAEixC,EAAEn5D,EAAEid,EAAEjnB,EAAEgK,EAAE,eAAe6mB,EAAE7mB,EAAE7W,OAAO6M,EAAEhL,KAAKk9B,GAAGjb,EAAEgQ,EAAEjnB,EAAEiX,EAAE,OAAO,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAEokJ,6BAA6B5sJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEoB,EAAE,sBAAsBxB,EAAE2kE,EAAElsD,GAAGjX,EAAEhL,KAAKwJ,GAAG+D,EAAE0kB,EAAEjnB,EAAEuC,EAAE,SAAS,IAAIqtI,EAAEtrE,EAAE,EAAE7kD,EAAEkkJ,+BAA+BphK,EAAEpP,SAASmxE,GAAG1lE,EAAEoB,EAAE,wBAAwB4vI,EAAEzsE,EAAE5gE,GAAGvC,EAAEhL,KAAK46I,GAAGxzG,EAAEnV,EAAEjnB,EAAEo8B,EAAE,OAAO,IAAIyqC,EAAErqE,EAAE,EAAEijB,EAAEmkJ,6BAA6BxnI,EAAEjpC,SAASqJ,GAAGoC,EAAEoB,EAAE,sBAAsB6mE,EAAE1D,EAAE/mC,GAAGp8B,EAAEhL,KAAK6xE,GAAG,IAAI/1C,EAAE,IAAIpyB,EAAE,EAAEmyB,GAAGiqH,EAAEhqH,EAAEra,QAAQ,GAAGzW,EAAEhL,KAAK8lJ,GAAG,IAAI,EAAEr7H,EAAEykJ,gCAAgCppB,EAAE5oH,EAAE1zB,EAAEqyB,EAAE,EAAE++G,EAAE/oE,IAAI,CAAC,IAAIy7E,EAAEhmJ,EAAEw0B,EAAE5Z,GAAG,OAAO+Z,EAAEjxB,GAAGsiJ,EAAEr5I,EAAEjJ,EAAE,6CAA6C,SAAS41J,GAAG5rJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGpyB,EAAEid,EAAE/P,EAAElN,EAAE,cAAc,IAAIhK,EAAEkyB,EAAEzS,EAAEokJ,6BAA6BhzI,EAAE7mB,EAAE7W,OAAO09B,EAAEqB,GAAGtzB,EAAEsY,EAAE,2BAA2BlX,EAAEmjE,EAAEn5D,GAAGkN,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,SAAS,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAEkkJ,+BAA+B1sJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEsY,EAAE,wBAAwB1Y,EAAE2kE,EAAElsD,GAAGC,EAAEliB,KAAKwJ,GAAG+D,EAAE0kB,EAAE/P,EAAE3U,EAAE,OAAO,IAAIqtI,EAAEtrE,EAAE,EAAE7kD,EAAEmkJ,6BAA6BrhK,EAAEpP,SAASmxE,GAAG1lE,EAAEsY,EAAE,sBAAsB04H,EAAEzsE,EAAE5gE,GAAG2U,EAAEliB,KAAK46I,GAAG,IAAI/oE,EAAE,IAAInoE,EAAEmyB,EAAEpR,EAAEokJ,6BAA6B,GAAGrnK,EAAEqqE,EAAEpwD,QAAQ,GAAGS,EAAEliB,KAAKwH,GAAG,IAAI,EAAEijB,EAAE0kJ,4BAA4B3nK,EAAEwD,EAAE6wB,EAAE,EAAEryB,EAAEoxI,IAAI,CAAC,IAAI9+G,EAAEx0B,EAAEuqE,EAAEzqC,GAAG,OAAOnL,EAAE/Z,GAAG4Z,EAAE7nB,EAAEiO,EAAE,6CAA6C,SAAS2+I,GAAG7rJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,UAAU,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE2kJ,qDAAqDp6J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,yBAAyBllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,OAAO,IAAIib,EAAErB,EAAE,EAAEpR,EAAE4kJ,kDAAkDptJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,sBAAsBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,IAAI+X,QAAQ,GAAG,IAAI,EAAEgJ,EAAE6kJ,iDAAiD9lK,EAAE0Y,EAAEgb,IAAI,CAAC,IAAI51B,EAAEkC,EAAE,OAAOyyB,EAAEmL,GAAG9/B,EAAE2M,EAAEmzB,EAAE,iBAAiB,SAAS05H,GAAG9rJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,OAAO,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE4kJ,kDAAkDr6J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,sBAAsB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,IAAI+X,QAAQyb,EAAE,IAAIxzB,EAAE,EAAE+gB,EAAE2kJ,sDAAsDvzI,EAAEqB,EAAEzb,QAAQ,GAAGlU,EAAEvN,KAAK67B,GAAG,IAAI,EAAEpR,EAAE8kJ,iDAAiDvkK,EAAE6wB,EAAEuL,IAAI,CAAC,IAAI59B,EAAE,CAAC+8C,MAAMv7C,EAAEge,OAAO1hB,EAAE41B,EAAEjb,IAAI,OAAOga,EAAE1uB,GAAG/D,EAAEyK,EAAE1G,EAAE,iBAAiB,SAASwzJ,GAAG/rJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAE4kJ,mDAAmDjoI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAE+kJ,8CAA8CpoI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAAS8+I,GAAGhsJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGkoC,EAAEptD,EAAElN,EAAE,iBAAiBiN,EAAEgQ,EAAE/P,EAAED,EAAE,UAAU,IAAIjX,EAAEkyB,EAAEzS,EAAEglJ,gDAAgD5zI,EAAE5Z,EAAE9jB,OAAO09B,EAAEqB,GAAGtzB,EAAEsY,EAAE,uBAAuBlX,EAAEmjE,EAAElsD,GAAGC,EAAEliB,KAAKgL,GAAG,IAAIxB,EAAE,KAAKgmE,EAAE,EAAE,MAAMjiE,IAAI/D,EAAE2kE,EAAE5gE,EAAE0kB,EAAE/P,EAAE3U,EAAE,OAAOiiE,EAAEjiE,EAAEpP,OAAO+jB,EAAEliB,KAAKwJ,IAAI,IAAIyK,EAAE,IAAIvK,EAAEmyB,EAAEpR,EAAEglJ,gDAAgD,GAAG59F,EAAE59D,EAAEwN,QAAQS,EAAEliB,KAAK6xE,GAAG,IAAIrqE,EAAEs0B,GAAGt0B,EAAEozI,EAAE,GAAG14H,EAAEliB,KAAKwH,IAAIs0B,EAAE,IAAIrR,EAAEilJ,4CAA4C16J,EAAE68D,EAAE,EAAErqE,EAAEwD,EAAE6wB,EAAE,EAAEryB,EAAEgmE,IAAI,CAAC/rE,IAAIgnB,EAAEy5I,OAAO18J,GAAG7E,QAAQsR,KAAK,CAACtR,QAAQ2E,EAAEw0B,EAAEn5B,QAAQykC,GAAG3jC,IAAIq4B,EAAEr4B,MAAM,OAAOw4B,EAAE/Z,GAAG4Z,EAAE,SAASszC,GAAGp6D,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAGotD,EAAEtkE,EAAEgK,EAAE,iBAAiB,IAAIkoB,EAAEixC,EAAElsD,EAAEgQ,EAAEjnB,EAAEiX,EAAE,kBAAkB4Z,EAAE5Z,EAAE9jB,OAAO6M,EAAEhL,KAAKk9B,GAAG,IAAI1zB,EAAE,KAAKgmE,EAAE,EAAE,MAAMjiE,IAAI/D,EAAE2kE,EAAE5gE,EAAE0kB,EAAEjnB,EAAEuC,EAAE,OAAOiiE,EAAEjiE,EAAEpP,OAAO6M,EAAEhL,KAAKwJ,IAAI8lE,EAAEtkE,EAAEo8B,EAAE,QAAQ,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIx9B,EAAEoB,EAAE,mCAAmC,IAAI4vI,EAAE,IAAIlxI,EAAEmyB,EAAEpR,EAAEglJ,gDAAgD,GAAG59F,EAAE+oE,EAAEn5H,QAAQ,GAAGzW,EAAEhL,KAAK6xE,GAAG,IAAI,EAAEpnD,EAAEklJ,4CAA4C36J,EAAE68D,EAAE,EAAE30C,EAAErB,EAAE,EAAEryB,EAAEgmE,EAAE,EAAEpoC,IAAI,CAAC,IAAI5/B,EAAEF,EAAEszI,EAAE14H,GAAG,OAAO+Z,EAAEjxB,GAAGxD,EAAEyM,EAAEjJ,EAAE,iBAAiB,SAASi2J,GAAGjsJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAG,OAAOrP,EAAE+jB,GAAGqtD,EAAE/hE,EAAEyH,EAAE,iBAAiByV,EAAEmlJ,6CAA6C56J,GAAGinB,EAAE1uB,IAAG,EAAG,SAAS2zJ,GAAGlsJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,OAAO,IAAIib,EAAErB,EAAE,EAAEpR,EAAEolJ,6BAA6B5tJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,sBAAsBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEqlJ,2BAA2BtgG,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAEslJ,kBAAkBvgG,EAAEttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAAS+5H,GAAGnsJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEolJ,8BAA8BzoI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEulJ,yBAAyB5oI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASk/I,GAAGpsJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,OAAO,IAAIib,EAAErB,EAAE,EAAEpR,EAAEwlJ,wCAAwChuJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,sBAAsBlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAEylJ,sCAAsC1gG,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE0lJ,6BAA6B3gG,EAAEttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASi6H,GAAGrsJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,cAAc,IAAIib,EAAErB,EAAE,EAAEpR,EAAE2lJ,8BAA8BnuJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,6BAA6BlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAEsL,EAAE7W,OAAOssB,EAAE4lJ,qBAAqB,GAAG7gG,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE6lJ,aAAa9gG,EAAE,KAAKttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASk6H,GAAGtsJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG,IAAI2U,EAAEisD,EAAEn5D,EAAEid,EAAEmV,EAAEpyB,EAAE,YAAYhK,EAAEgK,EAAE7W,OAAOipC,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,cAAc,IAAIib,EAAErB,EAAE,EAAEpR,EAAE2lJ,8BAA8BnuJ,EAAE9jB,SAAS09B,GAAGjyB,EAAEw9B,EAAE,6BAA6BlK,EAAEixC,EAAElsD,GAAGmlB,EAAEpnC,KAAKk9B,GAAG,IAAI1zB,EAAE,IAAIE,EAAE,EAAE+gB,EAAE4lJ,sBAAsB7gG,EAAEhmE,EAAEiY,QAAQ,GAAG2lB,EAAEpnC,KAAKwvE,GAAG,IAAI,EAAE/kD,EAAE8lJ,sBAAsB/gG,EAAE,KAAKttD,EAAElX,EAAE,EAAEkyB,IAAI,CAAC,IAAI09G,EAAEtzI,EAAEkC,EAAE+D,GAAG,OAAO0uB,EAAEmL,GAAGwzG,EAAE3mI,EAAEmzB,EAAE,iBAAiB,SAASm6H,GAAGvsJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,QAAQ,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE+lJ,8BAA8Bx7J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,uBAAuB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEojJ,kCAAkC3wI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEgmJ,sCAAsCvzI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,eAAe,SAASi0J,GAAGxsJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,QAAQ,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE2lJ,8BAA8Bp7J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,uBAAuB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEojJ,kCAAkC3wI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEimJ,sCAAsCxzI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,eAAe,SAASk0J,GAAGzsJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,cAAc,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE2lJ,8BAA8Bp7J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,6BAA6B65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAE+lJ,+BAA+BtzI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEkmJ,8BAA8BzzI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,eAAe,SAASm0J,GAAG1sJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,cAAc,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAE2lJ,8BAA8Bp7J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,6BAA6B65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAEmmJ,0BAA0B1zI,EAAElyB,EAAEyW,QAAQ,GAAGlU,EAAEvN,KAAKk9B,GAAG,IAAI,EAAEzS,EAAEomJ,gCAAgC3zI,EAAEkK,IAAI,CAAC,IAAIvL,EAAEv0B,EAAE0D,EAAEiX,GAAG,OAAOga,EAAE1uB,GAAGsuB,EAAE5nB,EAAE1G,EAAE,eAAe,SAASo0J,GAAG3sJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG+hE,EAAEloC,EAAEpyB,EAAE,iBAAiBiN,EAAEgQ,EAAEmV,EAAEnlB,EAAE,cAAc,IAAIC,EAAElX,EAAE,EAAEyf,EAAE2lJ,8BAA8BnuJ,EAAE9jB,SAAS6M,GAAGpB,EAAEw9B,EAAE,6BAA6BllB,EAAEisD,EAAElsD,GAAGmlB,EAAEpnC,KAAKkiB,GAAG,IAAIgb,EAAE,IAAIxzB,EAAE,EAAE+gB,EAAE4lJ,sBAAsBx0I,EAAEqB,EAAEzb,QAAQ,GAAG2lB,EAAEpnC,KAAK67B,GAAG,IAAI,EAAEpR,EAAEqmJ,0BAA0B97J,EAAE6mB,EAAE,KAAK3Z,IAAI,CAAC,IAAI1Y,GAAGihB,EAAE25I,MAAMpvJ,GAAG1N,EAAE41B,EAAE3vB,IAAI,OAAO0uB,EAAEmL,GAAG59B,EAAEyK,EAAEmzB,EAAE,iBAAiB,SAASw6H,GAAG5sJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGkoC,EAAEptD,EAAElN,EAAE,iBAAiBiN,EAAEgQ,EAAE/P,EAAED,EAAE,aAAa,IAAIjX,EAAEkyB,EAAE,EAAEzS,EAAE4lJ,qBAAqBpuJ,EAAE9jB,SAAS++B,GAAGtzB,EAAEsY,EAAE,4BAA4BlX,EAAEmjE,EAAElsD,GAAGC,EAAEliB,KAAKgL,GAAGuC,EAAE0kB,EAAE/P,EAAE3U,EAAE,aAAa,IAAIsuB,EAAEryB,EAAE,EAAEihB,EAAE+lJ,8BAA8BjjK,EAAEpP,SAASqL,GAAGI,EAAEsY,EAAE,4BAA4B2Z,EAAEsyC,EAAE5gE,GAAG2U,EAAEliB,KAAK67B,GAAG,IAAIv0B,EAAE,IAAI,EAAEmjB,EAAEsmJ,0BAA0B/7J,EAAEhK,EAAE6wB,IAAI,OAAOI,EAAE/Z,GAAG5a,EAAE,SAASu6J,GAAG7sJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,KAAK+X,QAAQ,GAAG,IAAI,EAAEgJ,EAAEumJ,kBAAkBzjK,IAAI,CAAC,IAAI65B,EAAE75B,EAAE,OAAO0uB,EAAEha,GAAGmlB,EAAEnzB,EAAEgO,EAAE,kBAAkB,SAAS6/I,GAAG9sJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAE+lJ,+BAA+BppI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG,IAAIllB,EAAE,IAAIxY,EAAE,EAAE+gB,EAAE2lJ,+BAA+BplK,EAAEkX,EAAET,QAAQ,GAAGQ,EAAEjiB,KAAKgL,GAAG,IAAI,EAAEyf,EAAEwmJ,qBAAqB7pI,EAAEp8B,IAAI,CAAC,IAAIkyB,EAAE,CAACmM,UAAU/hC,EAAEiG,EAAEyH,GAAGsmB,WAAWh0B,EAAE4a,EAAElN,GAAGqyJ,QAAQ,WAAW,OAAOprI,EAAEha,GAAGib,EAAEjpB,EAAEgO,EAAE,kBAAkB,SAAS8/I,GAAG/sJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAGyH,EAAEid,EAAEmV,EAAEpyB,EAAE,iBAAiB,IAAIkN,EAAElX,EAAEyf,EAAE4lJ,qBAAqBnzI,EAAEloB,EAAE7W,OAAO++B,EAAElyB,GAAGpB,EAAEw9B,EAAE,8BAA8BllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAGD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,aAAa,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAE+lJ,8BAA8BvuJ,EAAE9jB,SAASqL,GAAGI,EAAEw9B,EAAE,4BAA4BvL,EAAEsyC,EAAElsD,GAAGmlB,EAAEpnC,KAAK67B,GAAG,IAAI2zC,EAAE,IAAI9lE,EAAEwzB,EAAEzS,EAAE4lJ,qBAAqB,GAAGz1B,EAAEprE,EAAE/tD,QAAQ,GAAG2lB,EAAEpnC,KAAK46I,GAAG,IAAI,EAAEnwH,EAAEymJ,kBAAkBt2B,EAAE,KAAK14H,EAAEgb,EAAE,EAAErB,IAAI,CAAC,IAAIyzC,EAAEhoE,EAAEkoE,EAAEjiE,GAAG,OAAO0uB,EAAEmL,GAAGkoC,EAAEr7D,EAAEmzB,EAAE,gDAAgD,SAAS46H,GAAGhtJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGjN,EAAEid,EAAE1kB,EAAEyH,EAAE,QAAQ,IAAIoyB,EAAEllB,EAAE,EAAEuI,EAAEmmJ,yBAAyB57J,EAAE7W,SAAS+jB,GAAGtY,EAAE2D,EAAE,uBAAuB65B,EAAE+mC,EAAEn5D,GAAGzH,EAAEvN,KAAKonC,GAAG,IAAIp8B,EAAE,IAAItB,EAAE,EAAE+gB,EAAE+lJ,+BAA+BtzI,EAAElyB,EAAEyW,QAAQlU,EAAEvN,KAAKk9B,GAAG,IAAIrB,EAAE,IAAInyB,EAAE,EAAE+gB,EAAE2lJ,+BAA+B5mK,EAAEqyB,EAAEpa,QAAQ,GAAGlU,EAAEvN,KAAKwJ,GAAG,IAAI,EAAEihB,EAAE0mJ,0BAA0Bj0I,EAAE1zB,EAAE49B,IAAI,CAAC,IAAIooC,EAAE,CAACnmC,UAAU/hC,EAAE0D,EAAEiX,GAAGqZ,WAAWh0B,EAAEu0B,EAAE5Z,GAAGolJ,QAAQ,WAAW,OAAOprI,EAAE1uB,GAAGiiE,EAAEv7D,EAAE1G,EAAE,iBAAiB,SAAS00J,GAAGjtJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG+hE,EAAEloC,EAAEpyB,EAAE,iBAAiB,IAAIkN,EAAEisD,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,kBAAkBjX,EAAEiX,EAAE9jB,OAAOipC,EAAEpnC,KAAKkiB,GAAG,IAAI,EAAEuI,EAAE2mJ,oBAAoBp8J,EAAEkN,EAAElX,KAAKiJ,EAAEmzB,EAAE,iBAAiBnL,EAAEmL,GAAG,SAAS86H,GAAGltJ,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGpyB,EAAEid,EAAEmV,EAAEpyB,EAAE,aAAa,IAAIkN,EAAElX,EAAE,EAAEyf,EAAE4lJ,qBAAqBr7J,EAAE7W,SAAS6M,GAAGpB,EAAEw9B,EAAE,4BAA4BllB,EAAEisD,EAAEn5D,GAAGoyB,EAAEpnC,KAAKkiB,GAAG,IAAIgb,EAAEixC,EAAElsD,EAAEgQ,EAAEmV,EAAEnlB,EAAE,YAAY4Z,EAAE5Z,EAAE9jB,OAAOipC,EAAEpnC,KAAKk9B,GAAG3vB,EAAE0kB,EAAEmV,EAAE75B,EAAE,aAAa,IAAI/D,EAAElC,EAAE,EAAEmjB,EAAE+lJ,8BAA8BjjK,EAAEpP,SAASmJ,GAAGsC,EAAEw9B,EAAE,4BAA4B59B,EAAE2kE,EAAE5gE,GAAG65B,EAAEpnC,KAAKwJ,GAAG,IAAIgmE,EAAE,IAAI,EAAE/kD,EAAE4mJ,6BAA6BnvJ,EAAEgb,EAAErB,EAAE,EAAEryB,IAAI,OAAOyyB,EAAEmL,GAAGooC,EAAE,SAAS2yF,GAAGntJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAGkoC,EAAEptD,EAAElN,EAAE,cAAc,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAEsY,EAAE,yCAAyCD,EAAEgQ,EAAE/P,EAAED,EAAE,OAAO,IAAIjX,EAAEkyB,EAAE,EAAEzS,EAAE6mJ,mCAAmCrvJ,EAAE9jB,SAAS++B,GAAGtzB,EAAEsY,EAAE,sBAAsBlX,EAAEmjE,EAAElsD,GAAGC,EAAEliB,KAAKgL,GAAGuC,EAAE0kB,EAAE/P,EAAE3U,EAAE,SAAS,IAAIsuB,EAAEryB,EAAE,EAAEihB,EAAE8mJ,qCAAqChkK,EAAEpP,SAASqL,GAAGI,EAAEsY,EAAE,wBAAwB2Z,EAAEsyC,EAAE5gE,GAAG2U,EAAEliB,KAAK67B,GAAG,IAAI2zC,EAAE,IAAI9lE,EAAE,EAAEsL,GAAG4lI,EAAEprE,EAAE/tD,QAAQS,EAAEliB,KAAK46I,GAAGnwH,EAAE+mJ,wBAAwB52B,EAAE5lI,EAAE,EAAE6mB,EAAE7wB,GAAG,IAAIiJ,EAAE3M,EAAEkoE,EAAEpoC,GAAG,OAAOnL,EAAE/Z,GAAGjO,EAAE,SAASmuJ,GAAGptJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,kBAAkBkoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,SAAS,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAEgnJ,0CAA0CxvJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,wBAAwB2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,OAAO,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAEinJ,wCAAwCnkK,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,sBAAsBstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAE,EAAEwzB,GAAG20C,EAAEvC,EAAE7tD,QAAQ,GAAGS,EAAEliB,KAAK6xE,GAAG,IAAIpnD,EAAEknJ,iCAAiC9/F,EAAE7mE,EAAEkyB,EAAE,EAAErB,EAAE2zC,GAAG,CAAC,IAAIhoE,EAAEF,EAAEgoE,EAAEloC,GAAG,OAAOnL,EAAE/Z,GAAG1a,EAAEyM,EAAEiO,EAAE,iBAAiB,SAASmgJ,GAAGrtJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAG,IAAIgb,EAAEixC,EAAEn5D,EAAEid,EAAEjnB,EAAEgK,EAAE,kBAAkB6mB,EAAE7mB,EAAE7W,OAAO6M,EAAEhL,KAAKk9B,GAAGjb,EAAEgQ,EAAEjnB,EAAEiX,EAAE,SAAS,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAEgnJ,0CAA0CxvJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEoB,EAAE,wBAAwBxB,EAAE2kE,EAAElsD,GAAGjX,EAAEhL,KAAKwJ,GAAG8lE,EAAEtkE,EAAEuC,EAAE,oBAAoB,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAI3D,EAAEoB,EAAE,+CAA+Co8B,EAAEnV,EAAEjnB,EAAEo8B,EAAE,OAAO,IAAIwzG,EAAE/oE,EAAE,EAAEpnD,EAAEinJ,wCAAwCtqI,EAAEjpC,SAAS0zE,GAAGjoE,EAAEoB,EAAE,sBAAsB4vI,EAAEzsE,EAAE/mC,GAAGp8B,EAAEhL,KAAK46I,GAAG,IAAIpzI,EAAE,IAAIkC,EAAE,EAAEmyB,GAAGC,EAAEt0B,EAAEia,QAAQ,GAAGzW,EAAEhL,KAAK87B,GAAG,IAAIrR,EAAEmnJ,oCAAoC91I,EAAEoB,EAAErB,EAAE,EAAEryB,EAAE+D,EAAEqtI,GAAG,CAAC,IAAIkL,EAAEx+I,EAAEE,EAAE0a,GAAG,OAAO+Z,EAAEjxB,GAAG86I,EAAE7xI,EAAEjJ,EAAE,iBAAiB,SAASs3J,GAAGttJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAE6mJ,oCAAoClqI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEonJ,+BAA+BzqI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASqgJ,GAAGvtJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,kBAAkBkoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,SAAS,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAE8mJ,qCAAqCtvJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,wBAAwB2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,OAAO,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAE6mJ,mCAAmC/jK,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,sBAAsBstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAE,EAAEwzB,GAAG20C,EAAEvC,EAAE7tD,QAAQ,GAAGS,EAAEliB,KAAK6xE,GAAG,IAAIpnD,EAAEqnJ,4BAA4BjgG,EAAE7mE,EAAEkyB,EAAE,EAAErB,EAAE2zC,GAAG,CAAC,IAAIhoE,EAAEF,EAAEgoE,EAAEloC,GAAG,OAAOnL,EAAE/Z,GAAG1a,EAAEyM,EAAEiO,EAAE,iBAAiB,SAASsgJ,GAAGxtJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAG,IAAIgb,EAAEixC,EAAEn5D,EAAEid,EAAEjnB,EAAEgK,EAAE,kBAAkB6mB,EAAE7mB,EAAE7W,OAAO6M,EAAEhL,KAAKk9B,GAAGjb,EAAEgQ,EAAEjnB,EAAEiX,EAAE,SAAS,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAE8mJ,qCAAqCtvJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEoB,EAAE,wBAAwBxB,EAAE2kE,EAAElsD,GAAGjX,EAAEhL,KAAKwJ,GAAG8lE,EAAEtkE,EAAEuC,EAAE,oBAAoB,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAI3D,EAAEoB,EAAE,+CAA+Co8B,EAAEnV,EAAEjnB,EAAEo8B,EAAE,OAAO,IAAIwzG,EAAE/oE,EAAE,EAAEpnD,EAAE6mJ,mCAAmClqI,EAAEjpC,SAAS0zE,GAAGjoE,EAAEoB,EAAE,sBAAsB4vI,EAAEzsE,EAAE/mC,GAAGp8B,EAAEhL,KAAK46I,GAAG,IAAIpzI,EAAE,IAAIkC,EAAE,EAAEmyB,GAAGC,EAAEt0B,EAAEia,QAAQ,GAAGzW,EAAEhL,KAAK87B,GAAG,IAAIrR,EAAEsnJ,+BAA+Bj2I,EAAEoB,EAAErB,EAAE,EAAEryB,EAAE+D,EAAE,EAAEqtI,GAAG,CAAC,IAAIkL,EAAEx+I,EAAEE,EAAE0a,GAAG,OAAO+Z,EAAEjxB,GAAG86I,EAAE7xI,EAAEjJ,EAAE,iBAAiB,SAASqoJ,GAAGr+I,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEunJ,2BAA2B5qI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAEwnJ,sBAAsB7qI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASugJ,GAAGztJ,GAAG,IAAIiN,EAAE,GAAG/jB,EAAE8W,GAAG,IAAIzH,EAAE,IAAI7D,EAAE,EAAE+gB,EAAEynJ,qCAAqC9qI,EAAE75B,EAAEkU,QAAQQ,EAAEjiB,KAAKonC,GAAG3c,EAAE0nJ,gCAAgC/qI,GAAG,IAAIllB,EAAE5a,EAAEiG,EAAEyH,GAAG,OAAOinB,EAAEha,GAAGC,EAAE,SAASwgJ,GAAG1tJ,EAAEiN,EAAE1U,EAAE65B,GAAG,IAAIllB,EAAE,GAAGhkB,EAAEkpC,GAAG,IAAIp8B,EAAEmjE,EAAEn5D,EAAEid,EAAE/P,EAAElN,EAAE,kBAAkBkoB,EAAEloB,EAAE7W,OAAO+jB,EAAEliB,KAAKgL,GAAGiX,EAAEgQ,EAAE/P,EAAED,EAAE,SAAS,IAAI4Z,EAAEryB,EAAE,EAAEihB,EAAE2nJ,sCAAsCnwJ,EAAE9jB,SAASqL,GAAGI,EAAEsY,EAAE,wBAAwB2Z,EAAEsyC,EAAElsD,GAAGC,EAAEliB,KAAK67B,GAAGtuB,EAAE0kB,EAAE/P,EAAE3U,EAAE,OAAO,IAAIiiE,EAAEorE,EAAE,EAAEnwH,EAAEynJ,oCAAoC3kK,EAAEpP,SAASy8I,GAAGhxI,EAAEsY,EAAE,sBAAsBstD,EAAErB,EAAE5gE,GAAG2U,EAAEliB,KAAKwvE,GAAG,IAAIF,EAAE,IAAI5lE,EAAE,EAAEwzB,GAAG20C,EAAEvC,EAAE7tD,QAAQ,GAAGS,EAAEliB,KAAK6xE,GAAG,IAAIpnD,EAAE4nJ,6BAA6BxgG,EAAE7mE,EAAEkyB,EAAE,EAAErB,EAAE2zC,GAAG,CAAC,IAAIhoE,EAAEF,EAAEgoE,EAAEloC,GAAG,OAAOnL,EAAE/Z,GAAG1a,EAAEyM,EAAEiO,EAAE,iBAAiB,SAASygJ,GAAG3tJ,EAAEiN,EAAE1U,EAAE65B,EAAEllB,GAAG,IAAIlX,EAAE,GAAG9M,EAAEgkB,GAAG,IAAIgb,EAAEixC,EAAEn5D,EAAEid,EAAEjnB,EAAEgK,EAAE,kBAAkB6mB,EAAE7mB,EAAE7W,OAAO6M,EAAEhL,KAAKk9B,GAAGjb,EAAEgQ,EAAEjnB,EAAEiX,EAAE,SAAS,IAAIzY,EAAEgmE,EAAE,EAAE/kD,EAAE2nJ,sCAAsCnwJ,EAAE9jB,SAASqxE,GAAG5lE,EAAEoB,EAAE,wBAAwBxB,EAAE2kE,EAAElsD,GAAGjX,EAAEhL,KAAKwJ,GAAG8lE,EAAEtkE,EAAEuC,EAAE,oBAAoB,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAI3D,EAAEoB,EAAE,+CAA+Co8B,EAAEnV,EAAEjnB,EAAEo8B,EAAE,OAAO,IAAIwzG,EAAE/oE,EAAE,EAAEpnD,EAAEynJ,oCAAoC9qI,EAAEjpC,SAAS0zE,GAAGjoE,EAAEoB,EAAE,sBAAsB4vI,EAAEzsE,EAAE/mC,GAAGp8B,EAAEhL,KAAK46I,GAAG,IAAIpzI,EAAE,IAAIkC,EAAE,EAAEmyB,GAAGC,EAAEt0B,EAAEia,QAAQ,GAAGzW,EAAEhL,KAAK87B,GAAG,IAAIrR,EAAE6nJ,gCAAgCx2I,EAAEoB,EAAErB,EAAE,EAAEryB,EAAE+D,EAAE,EAAEqtI,GAAG,CAAC,IAAIkL,EAAEx+I,EAAEE,EAAE0a,GAAG,OAAO+Z,EAAEjxB,GAAG86I,EAAE7xI,EAAEjJ,EAAE,iBAAiB,SAAS43J,GAAG5tJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGqtD,EAAE/hE,EAAEyH,EAAE,WAAW,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAE2D,EAAE,sCAAsC,IAAI65B,EAAE,IAAI19B,EAAE,EAAEsL,GAAGkN,EAAEklB,EAAE3lB,QAAQlU,EAAEvN,KAAKkiB,GAAGuI,EAAE8nJ,iBAAiBrwJ,EAAElN,GAAG,IAAIhK,EAAE1D,EAAE8/B,EAAEnlB,GAAG,OAAOga,EAAE1uB,GAAGvC,EAAE,SAASywI,GAAGzmI,EAAEiN,EAAE1U,GAAG,IAAI65B,EAAE,GAAGlpC,EAAEqP,GAAG+hE,EAAEloC,EAAEpyB,EAAE,WAAW,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAEw9B,EAAE,sCAAsCnlB,EAAEgQ,EAAEmV,EAAEnlB,EAAE,QAAQ,IAAIC,EAAElX,EAAE,EAAEyf,EAAE+nJ,yBAAyBvwJ,EAAE9jB,SAAS6M,GAAGpB,EAAEw9B,EAAE,uBAAuBllB,EAAEisD,EAAElsD,GAAGmlB,EAAEpnC,KAAKkiB,GAAG,IAAIgb,EAAE,IAAIxzB,EAAE,EAAEsL,GAAG6mB,EAAEqB,EAAEzb,QAAQ2lB,EAAEpnC,KAAK67B,GAAGpR,EAAEgoJ,+BAA+B52I,EAAE7mB,EAAEkN,GAAG,IAAI1Y,EAAElC,EAAE41B,EAAE3vB,GAAG,OAAO0uB,EAAEmL,GAAG59B,EAAE,SAASq5J,GAAG7tJ,GAAG9W,EAAE8W,GAAGyV,EAAEioJ,qBAAqB,SAAS5P,GAAG9tJ,GAAG9W,EAAE8W,GAAG,IAAIiN,EAAEwI,EAAEkoJ,wBAAwB,EAAE,OAAO12I,EAAE,IAAIha,EAAE,SAAS8gJ,GAAG/tJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAG,IAAI,IAAImlB,EAAE3c,EAAE05I,QAAQ,IAAIjiJ,EAAE,EAAEA,EAAE,EAAEA,IAAIuI,EAAEmoJ,SAASxrI,EAAE,EAAEllB,EAAEuI,EAAEooJ,QAAQC,YAAY99J,EAAE,CAAC,sBAAsB,SAAS,OAAO,UAAU,MAAM,SAASkN,KAAK,OAAO,IAAI,EAAEuI,EAAEsoJ,gCAAgC3rI,KAAKnzB,EAAE1G,EAAE,8BAA8B0uB,EAAE1uB,GAAG,SAASy1J,GAAGhuJ,GAAG9W,EAAE8W,GAAGyV,EAAEuoJ,oBAAoB,SAAS/P,GAAGjuJ,EAAEiN,GAAG,IAAI1U,EAAE,GAAGrP,EAAE+jB,GAAGqtD,EAAE/hE,EAAEyH,EAAE,gBAAgB,iBAAiBA,IAAI,EAAEA,KAAKA,GAAGA,EAAE,IAAIpL,EAAE2D,EAAE,2CAA2C,IAAI65B,EAAE3c,EAAEwoJ,qBAAqBj+J,KAAK,EAAE,OAAOinB,EAAE1uB,GAAG65B,EAAE,SAAS87H,KAAK,IAAIluJ,EAAEyV,EAAEyoJ,yBAAyBjxJ,EAAEwI,EAAE04I,aAAanuJ,GAAG,OAAOinB,EAAE,IAAIha,EAAE,OAAOvY,EAAE9K,UAAUqlK,cAAc,WAAW,IAAIjvJ,EAAE,IAAI5L,WAAW/L,KAAKc,QAAQ,OAAO6W,EAAE/T,IAAIwpB,EAAEy5I,OAAO30J,SAASlS,KAAKokB,QAAQpkB,KAAKokB,QAAQpkB,KAAKc,SAAS6W,GAAGA,EAAEisB,IAAI,SAASjsB,EAAEiN,GAAG,KAAKjN,aAAa5L,YAAY6Y,aAAa7Y,YAAY,MAAM,IAAItL,UAAU,uCAAuC,IAAI2sB,EAAEzV,EAAE7W,OAAOoP,EAAE,EAAE65B,EAAE,EAAE,GAAGnlB,EAAE9jB,QAAQ6W,EAAE7W,OAAO,MAAM,IAAIL,UAAU,uCAAuC,IAAIspC,EAAE,EAAEA,EAAE3c,EAAE2c,IAAI75B,IAAI,EAAEA,GAAGyH,EAAEoyB,GAAGnlB,EAAEmlB,GAAGpyB,EAAEoyB,GAAG,IAAI75B,GAAGyH,EAAEm+J,gBAAgBj2I,EAAEloB,EAAEu3B,QAAQ,SAASv3B,EAAEiN,GAAG,KAAKjN,aAAa5L,YAAY6Y,aAAa7Y,YAAY,MAAM,IAAItL,UAAU,6CAA6C,GAAGkX,EAAE7W,SAAS8jB,EAAE9jB,OAAO,MAAM,IAAIL,UAAU,sDAAsD,IAAI,IAAI2sB,EAAE,EAAEld,EAAE,EAAE65B,EAAEpyB,EAAE7W,OAAOipC,KAAK,GAAG3c,GAAGxI,EAAEmlB,GAAGpyB,EAAEoyB,IAAI,EAAE75B,EAAEA,IAAI0U,EAAEmlB,GAAGpyB,EAAEoyB,IAAI,GAAG,EAAE,OAAO3c,EAAEA,EAAEld,EAAE,GAAGyH,EAAEo+J,YAAY,SAASp+J,EAAEiN,GAAGA,EAAE4Z,EAAE5Z,GAAG,IAAI1U,EAAE65B,EAAE,GAAGllB,EAAE,IAAIxY,EAAE,GAAGsL,EAAEid,EAAEmV,EAAEpyB,EAAE,UAAU7W,OAAO,GAAG6M,EAAEmjE,EAAEn5D,GAAGkoB,EAAE09G,EAAE,GAAGpxI,EAAEoxI,EAAE,GAAG,OAAOxzG,EAAEpnC,KAAKgL,GAAGo8B,EAAEpnC,KAAKkiB,EAAET,SAAS2lB,EAAEpnC,KAAKkiB,EAAEmxJ,kBAAkBjsI,EAAEpnC,KAAKkiB,EAAEoxJ,WAAW,IAAI7oJ,EAAE8oJ,mBAAmBrxJ,EAAET,QAAQS,EAAE/jB,OAAO6M,EAAEgK,EAAE7W,OAAO,EAAE++B,EAAE1zB,EAAEyY,IAAIhO,EAAEmzB,EAAE,iBAAiB3c,EAAE+oJ,SAAShqK,EAAE,OAAOwB,IAAIgK,EAAE7W,QAAQ8V,EAAEmzB,EAAE,oBAAoBllB,EAAE/jB,OAAOssB,EAAE+oJ,SAASt2I,EAAE,OAAO3vB,EAAE2U,EAAE+hJ,gBAAgBhoI,EAAEmL,GAAG75B,GAAGyH,EAAEy+J,SAAS,SAASz+J,GAAG,IAAIiN,EAAE1U,EAAE,GAAG65B,EAAE,IAAI19B,GAAGsL,EAAEid,EAAE1kB,EAAEyH,EAAE,UAAU7W,OAAO,GAAG+jB,EAAEisD,EAAEn5D,GAAGhK,EAAE4vI,EAAE,GAAG,OAAOrtI,EAAEvN,KAAKkiB,GAAG3U,EAAEvN,KAAKonC,EAAE3lB,SAASlU,EAAEvN,KAAKonC,EAAEssI,WAAW,IAAIjpJ,EAAEkpJ,gBAAgBvsI,EAAE3lB,QAAQ2lB,EAAEjpC,OAAO+jB,EAAElN,EAAE7W,OAAO,EAAE,EAAE6M,IAAIiJ,EAAE1G,EAAE,iBAAiBkd,EAAE+oJ,SAASxoK,EAAE,OAAOkX,IAAIlN,EAAE7W,QAAQ8V,EAAE1G,EAAE,oBAAoB0U,EAAEmlB,EAAE68H,gBAAgBhoI,EAAE1uB,GAAG0U,GAAGjN,EAAE4+J,YAAYxsI,EAAEpyB,EAAEkgD,UAAU,SAASlgD,GAAG,KAAKA,aAAa5L,YAAY,MAAM,IAAItL,UAAU,gDAAgD,IAAI,IAAImkB,EAAE,IAAIwI,EAAE,EAAEld,EAAEyH,EAAE7W,OAAOssB,EAAEld,EAAEkd,IAAIxI,IAAI,EAAEA,GAAGjN,EAAEyV,GAAGzV,EAAEyV,GAAG,IAAIxI,GAAGjN,EAAE6+J,QAAQ,SAAS7+J,GAAG,KAAKA,aAAa5L,YAAY,MAAM,IAAItL,UAAU,4CAA4C,IAAI,IAAImkB,EAAE,EAAEwI,EAAE,EAAEld,EAAEyH,EAAE7W,OAAOssB,EAAEld,EAAEkd,IAAIxI,GAAGjN,EAAEyV,GAAG,OAAO,IAAIxI,GAAGjN,EAAE8+J,UAAU7xJ,EAAEjN,EAAEyuJ,OAAO,SAASzuJ,EAAEiN,GAAG,KAAKjN,aAAa5L,YAAY6Y,aAAa7Y,YAAY,MAAM,IAAItL,UAAU,6CAA6C,GAAGkX,EAAE7W,SAAS8jB,EAAE9jB,OAAO,MAAM,IAAIL,UAAU,sDAAsD,IAAI,IAAI2sB,EAAE,EAAEld,EAAE,EAAE65B,EAAEpyB,EAAE7W,OAAOoP,EAAE65B,EAAE75B,IAAIkd,GAAGzV,EAAEzH,GAAG0U,EAAE1U,GAAG,OAAO,IAAIkd,GAAGzV,EAAE++J,QAAQ,SAAS/+J,GAAG,KAAKA,aAAa5L,YAAY,MAAM,IAAItL,UAAU,0CAA0C,IAAI,IAAImkB,EAAE,EAAEwI,EAAEzV,EAAE7W,OAAO8jB,EAAEwI,EAAExI,IAAIjN,EAAEiN,GAAG,GAAGjN,EAAEg/J,eAAe,WAAW,MAAM,CAAC,aAAa,OAAO,MAAM,WAAWh/J,EAAEm4D,IAAI,SAASn4D,EAAEiN,GAAG,KAAKjN,aAAa5L,YAAY,MAAM,IAAItL,UAAU,+BAA+B,IAAImkB,GAAG,IAAI,EAAE,MAAM,IAAI/hB,MAAM,0BAA0B,IAAIqN,EAAE65B,EAAE,GAAGllB,EAAE04H,EAAE,GAAG5vI,EAAE,EAAEkyB,EAAE,EAAErB,EAAE,EAAE7mB,EAAE7W,OAAOqL,EAAE,IAAIE,EAAEmyB,EAAE5Z,GAAGmlB,EAAEpnC,KAAKkiB,GAAGklB,EAAEpnC,KAAKwJ,EAAEiY,SAAS,IAAI,IAAIna,EAAEkC,EAAEiY,QAAQ+tD,EAAEhmE,EAAEiY,QAAQoa,EAAE5Z,EAAE3a,EAAEkoE,EAAEloE,IAAImjB,EAAEy5I,OAAO58J,GAAG0N,EAAEkoB,GAAGA,GAAGlyB,EAAE,KAAK,QAAQ6wB,GAAG7wB,KAAK,GAAG6wB,IAAI,GAAGA,IAAI,GAAGA,IAAI,GAAG,IAAI,OAAO,IAAIpR,EAAEwpJ,YAAY/xJ,EAAE1Y,EAAEiY,QAAQzM,EAAE7W,OAAO8jB,EAAEzY,EAAErL,SAAS8V,EAAEmzB,EAAE,kBAAkB59B,EAAErL,OAAOssB,EAAE+oJ,SAAStxJ,EAAE,OAAO3U,EAAE/D,EAAEy6J,gBAAgBhoI,EAAEmL,GAAG75B,GAAGyH,EAAEk/J,MAAM,SAASl/J,EAAEiN,GAAG,KAAKjN,aAAa5L,YAAY,MAAM,IAAItL,UAAU,+BAA+B,IAAImkB,GAAG,IAAI,EAAE,MAAM,IAAI/hB,MAAM,0BAA0B,IAAIqN,EAAE,GAAG65B,EAAE+mC,EAAEn5D,GAAGkN,EAAE04H,EAAE,GAAG,OAAOrtI,EAAEvN,KAAKonC,GAAG75B,EAAEvN,KAAKkiB,GAAG,IAAIuI,EAAE0pJ,cAAcjyJ,EAAEklB,EAAEpyB,EAAE7W,OAAO8jB,IAAIhO,EAAE1G,EAAE,+BAA+ByH,GAAGA,EAAE,IAAI5L,WAAW4L,IAAIzF,SAAS,EAAEkb,EAAE+oJ,SAAStxJ,EAAE,QAAQ+Z,EAAE1uB,GAAGyH,GAAGA,EAAE8lB,MAAMvtB,EAAEyH,EAAEo/J,QAAQ,WAAW,OAAO51K,OAAOgE,KAAKwS,GAAG+I,QAAQ/I,EAAEq/J,UAAU7qK,EAAEwL,EAAEs/J,OAAOtpK,EAAEgK,EAAEu/J,UAAUryJ,EAAElN,QAAiK,oCAA0IyV,GAAGzV,EAAE+mJ,OAAOjhI,MAAM39B,MAAK,WAAYstB,EAAEzV,EAAE+mJ,qCCA1r+E,+BAAk6ge,EAAr5ge,SAAWtqF,GAAG,aAAa,IAAIgnE,OAAE,KAAUA,EAAEhnE,KAAKgnE,EAAE,IAAI,IAAIxkI,EAAEwkI,EAAE,iBAAiBxkI,EAAE8nJ,SAAS,iBAAiB,EAAA9nJ,EAAOA,EAAE,EAAAA,EAAO,iBAAiBK,SAASL,EAAEK,SAAS,iBAAiBL,EAAE8nJ,QAAQ,iBAAiB9nJ,EAAE8nJ,OAAOyY,cAAc/7B,EAAEg8B,aAAaxgK,EAAE8nJ,OAAOyY,aAAa,IAAI9iG,EAAE+mE,EAAE,OAAOA,EAAE39G,MAAM,IAAI59B,SAAQ,SAAUu0E,EAAEgnE,IAAIuL,EAAEtyE,GAAGgjG,QAAQj8B,EAAEuL,EAAE2wB,MAAM,SAASljG,KAAKuyE,EAAE4wB,SAAS,SAASnjG,KAAKuyE,EAAE6wB,qBAAqB,WAAW,IAAI7wB,EAAE4qB,6BAA6Bn9F,IAAI,MAAMA,GAAGgnE,EAAEhnE,KAAKuyE,EAAE0f,gBAAgB,WAAW,OAAO,IAAIxmK,SAAQ,SAAUu0E,EAAEgnE,IAAIuL,EAAE,IAAI0wB,QAAQj8B,EAAEuL,EAAE6wB,qBAAqB,WAAWr2K,OAAOgE,KAAKkvE,GAAG3tD,SAAQ,SAAU0tD,GAAG,mBAAmBA,UAAUC,EAAED,MAAMjzE,OAAOgE,KAAKwhJ,GAAGjgI,SAAQ,SAAU0tD,GAAGC,EAAED,GAAGuyE,EAAEvyE,MAAMA,KAAK,IAAIx9D,EAAE+vI,OAAE,IAASA,EAAEA,EAAE,GAAGryE,EAAE,GAAG,IAAI19D,KAAK+vI,EAAEA,EAAEnhJ,eAAeoR,KAAK09D,EAAE19D,GAAG+vI,EAAE/vI,IAAI,IAAI49D,EAAE,GAAG3zE,GAAE,EAAG8M,GAAE,EAAGuC,GAAE,EAAG0U,GAAE,EAAG/jB,EAAE,iBAAiBoW,OAAOtJ,EAAE,mBAAmB8pK,cAAcvnK,EAAE,iBAAiB2G,GAAS,iBAAiBA,EAAQC,UAAU,iBAAiBD,EAAQC,SAASC,KAAK6N,GAAG/jB,IAAIqP,IAAIvC,EAAE,IAAI6wB,EAAE7mB,EAAEyV,EAAE6kD,EAAEpyC,EAAEsyC,EAAE,GAAG,SAASttD,EAAEuvD,GAAG,OAAOuyE,EAAE+wB,WAAW/wB,EAAE+wB,WAAWtjG,EAAEjC,GAAGA,EAAEiC,EAAElkE,GAAGiiE,EAAExkE,EAAE,gBAAwBwkE,GAAG,IAAIwlG,KAAcn5I,EAAE,SAAS41C,EAAEgnE,GAAG,IAAIxkI,EAAEghK,GAAGxjG,GAAG,OAAOx9D,EAAEwkI,EAAExkI,EAAEA,EAAElD,YAAYu+D,IAAIA,EAAE,EAAQ,OAAOpyC,IAAIA,EAAE,EAAQ,OAASu0C,EAAEv0C,EAAEpF,UAAU25C,GAAGnC,EAAE4lG,aAAazjG,EAAEgnE,EAAE,KAAK,UAAUhuH,EAAE,SAASgnD,GAAG,IAAIgnE,EAAE58G,EAAE41C,GAAE,GAAI,OAAOgnE,EAAE9pI,SAAS8pI,EAAE,IAAIrvI,WAAWqvI,IAAI1mE,EAAE0mE,EAAE9pI,QAAQ8pI,GAAGvkI,EAAQihK,KAAKh3K,OAAO,GAAG+V,EAAQihK,KAAK,GAAG37J,QAAQ,MAAM,KAAKq4D,EAAE39D,EAAQihK,KAAK3wK,MAAM,GAAgCtI,EAAOD,QAAQ+nJ,EAAGA,EAAEl3D,QAAQ,WAAW,MAAM,+BAA+B7qE,GAAG,oBAAoB/R,OAAO2rB,EAAE,SAAS41C,GAAG,IAAIgnE,EAAEw8B,GAAGxjG,GAAG,OAAOgnE,EAAE28B,GAAG38B,GAAGvoI,KAAKuhE,KAAKhnD,EAAE,SAASgnD,GAAG,IAAIgnE,EAAE,OAAOA,EAAEw8B,GAAGxjG,IAAIgnE,EAAE,mBAAmB48B,WAAW,IAAIjsK,WAAWisK,WAAW5jG,KAAKM,EAAE,iBAAiB0mE,EAAEvoI,KAAKuhE,EAAE,YAAYgnE,IAAI,oBAAoB68B,WAAWzjG,EAAEyjG,gBAAW,IAAS/3K,YAAYs0E,EAAEt0E,WAAW,oBAAoBo3K,QAAQ,oBAAoB1sF,UAAUA,QAAQ,IAAIA,QAAQj8D,IAAI2oJ,MAAM1sF,QAAQC,KAAKD,QAAQjrF,MAAM,oBAAoB43K,SAASA,SAASD,SAASz2K,GAAG8M,KAAKA,EAAEwkE,EAAEnzE,KAAK0qF,SAASP,KAAK,oBAAoBX,UAAUA,SAAS0vF,gBAAgB/lG,EAAEqW,SAAS0vF,cAAchiK,KAAKi8D,EAAE,IAAIA,EAAE73C,QAAQ,SAAS63C,EAAE6X,OAAO,EAAE7X,EAAE4a,YAAY,KAAK,GAAG,GAAGvuD,EAAE,SAAS41C,GAAG,IAAI,IAAIgnE,EAAE,IAAIj7D,eAAe,OAAOi7D,EAAEr6D,KAAK,MAAM3M,GAAE,GAAIgnE,EAAEplG,KAAK,MAAMolG,EAAEtoH,aAAa,MAAMsoH,GAAG,IAAIxkI,EAAEghK,GAAGxjG,GAAG,GAAGx9D,EAAE,OAAOmhK,GAAGnhK,GAAG,MAAMwkI,IAAIztI,IAAIyf,EAAE,SAASgnD,GAAG,IAAI,IAAIgnE,EAAE,IAAIj7D,eAAe,OAAOi7D,EAAEr6D,KAAK,MAAM3M,GAAE,GAAIgnE,EAAEn7D,aAAa,cAAcm7D,EAAEplG,KAAK,MAAM,IAAIjqC,WAAWqvI,EAAE5mI,UAAU,MAAM4mI,GAAG,IAAIxkI,EAAEghK,GAAGxjG,GAAG,GAAGx9D,EAAE,OAAOA,EAAE,MAAMwkI,KAAKzjI,EAAE,SAASy8D,EAAEgnE,EAAExkI,GAAG,IAAIy9D,EAAE,IAAI8L,eAAe9L,EAAE0M,KAAK,MAAM3M,GAAE,GAAIC,EAAE4L,aAAa,cAAc5L,EAAEsqF,OAAO,WAAW,GAAG,KAAKtqF,EAAEzpD,QAAQ,GAAGypD,EAAEzpD,QAAQypD,EAAE7/D,SAAS4mI,EAAE/mE,EAAE7/D,cAAc,CAAC,IAAImyI,EAAEixB,GAAGxjG,GAAGuyE,EAAEvL,EAAEuL,EAAEr1I,QAAQsF,MAAMy9D,EAAEp9B,QAAQrgC,EAAEy9D,EAAEr+B,KAAK,QAAQ2wG,EAAE2wB,MAAM,IAAIvoF,EAAE5iF,EAAEw6I,EAAE4wB,eAAU,EAAO,IAAI3gK,KAAK09D,EAAEA,EAAE9uE,eAAeoR,KAAK+vI,EAAE/vI,GAAG09D,EAAE19D,IAAI09D,EAAE,KAAKqyE,EAAEzmJ,YAAYs0E,EAAEmyE,EAAEzmJ,WAAWymJ,EAAEwxB,aAAaxxB,EAAEwxB,YAAYxxB,EAAEyxB,MAAMzxB,EAAEyxB,KAAKzxB,EAAE0xB,aAAatpF,EAAE43D,EAAE0xB,YAAY1xB,EAAE2xB,eAAe3xB,EAAE2xB,cAAc,IAAI/jG,EAAEzD,EAAE,CAACynG,OAAO,SAASnkG,GAAGp0E,KAAKsR,OAAO,IAAI45E,YAAY,MAAM9W,EAAEkzE,UAAUkxB,OAAO,SAASpkG,KAAKqkG,SAAS,SAASrkG,EAAEgnE,GAAGp7I,KAAKpB,QAAQ,SAASw1E,GAAG,IAAI,IAAIgnE,EAAExkI,EAAE,IAAI7K,WAAW,KAAKsoE,EAAE,GAAGA,GAAG,IAAIA,EAAEz9D,EAAE,GAAGy9D,GAAG,GAAGA,EAAEz9D,EAAE,GAAGy9D,GAAGA,EAAEz9D,EAAE,GAAGy9D,GAAG,GAAGA,EAAE,SAASsyE,EAAEvyE,EAAEgnE,EAAE/mE,GAAG,IAAI,IAAIsyE,EAAEryE,EAAEE,EAAE,EAAE3zE,EAAEu6I,EAAEztI,EAAE0mE,EAAEvzE,OAAOoP,EAAEkrI,GAAG,EAAEztI,GAAG,IAAI,KAAK0mE,EAAE1mE,EAAE,KAAK,KAAK0mE,EAAE1mE,EAAE,IAAI6mE,EAAE7mE,EAAE6mE,GAAG,EAAEmyE,EAAE/vI,EAAEy9D,EAAE5+D,WAAW++D,EAAE,IAAIF,EAAE19D,EAAEy9D,EAAE5+D,WAAW++D,EAAE,IAAIJ,EAAEvzE,KAAK+V,EAAEy9D,EAAE5+D,WAAW++D,KAAK,EAAEmyE,GAAG,EAAE9lJ,EAAEqP,IAAIkkE,EAAEvzE,KAAK8lJ,GAAG,EAAEryE,GAAG,GAAGzzE,EAAEqP,IAAIkkE,EAAEvzE,KAAKyzE,GAAG,EAAE19D,EAAEy9D,EAAE5+D,WAAW++D,EAAE,KAAK,OAAO59D,EAAE,IAAI,GAAGA,EAAE,IAAI,GAAG,SAASw9D,GAAG,IAAIx9D,EAAEw9D,EAAElkE,EAAEmkE,EAAEz9D,EAAEtF,OAAOsF,EAAE8hK,KAAK,SAAStkG,GAAGA,GAAG,EAAE,IAAIuyE,EAAE,EAAEgyB,KAAKn6I,EAAEmoH,EAAEvyE,EAAE,EAAE,GAAGuyE,EAAEnoH,GAAGA,EAAE,MAAM,CAAC,IAAI7mB,EAAE,IAAIuzE,YAAYtmE,EAAE4Z,EAAE,QAAQ,IAAIo6I,UAAUjhK,GAAG/T,IAAI0wE,GAAGA,EAAE,IAAIskG,UAAUjhK,GAAG68D,EAAE,IAAIqkG,WAAWlhK,GAAG9W,EAAE,IAAIi4K,WAAWnhK,GAAGhK,EAAE,IAAI5B,WAAW4L,GAAG,IAAIohK,YAAYphK,GAAGzH,EAAE,IAAI4+D,YAAYn3D,GAAG,IAAIklE,aAAallE,GAAG,IAAIwmE,aAAaxmE,GAAG08D,EAAE18D,EAAEf,EAAEtF,OAAO+iE,EAAE+mE,EAAEztI,EAAE,OAAOg5I,GAAG,IAAIryE,EAAE,IAAIskG,UAAUvkG,GAAGG,EAAE,IAAIqkG,WAAWxkG,GAAGxzE,EAAE,IAAIi4K,WAAWzkG,GAAG1mE,EAAE,IAAI5B,WAAWsoE,GAAGnkE,GAAG,IAAI6oK,YAAY1kG,GAAG,IAAIvF,YAAYuF,IAAIzvD,GAAG,IAAIi4D,aAAaxI,GAAG,IAAI8J,aAAa9J,GAAGxmE,KAAKkpF,MAAMv4D,GAAG3wB,KAAKmrK,OAAOnrK,KAAKC,IAAID,KAAKkjF,OAAOp5E,GAAG9J,KAAKwC,IAAIxC,KAAK6gF,IAAI7gF,KAAKE,MAAMF,KAAK2xC,KAAK3xC,KAAKorK,MAAMprK,KAAKkyF,KAAK3rB,EAAEiO,OAAOj1D,EAAEgnD,EAAE7nE,EAAE0lE,EAAEmC,EAAEv0C,EAAEA,EAAEu0C,EAAEmpE,EAAEprE,EAAEiC,EAAEz8D,EAAEkN,EAAEuvD,EAAEnC,EAAE8c,EAAE3a,EAAEx9D,EAAEzK,EAAE,QAAQooE,EAAE,EAAEzD,EAAE,EAAE7mE,EAAE,EAAE,SAASoC,EAAE+nE,EAAEgnE,GAAG,IAAIxkI,EAAEy9D,EAAEsyE,EAAEnyE,EAAEtkE,EAAE,EAAE0U,EAAE,EAAE4Z,EAAE,EAAE7mB,EAAE,EAAEyV,EAAE,EAAE6kD,EAAE,EAAEpyC,EAAE,EAAEsyC,EAAE,EAAEttD,EAAE,EAAEkqE,EAAE,EAAExa,EAAE,EAAEzD,EAAE,EAAEzkE,EAAE,EAAEooE,EAAE,EAAEC,EAAE,EAAEj2C,EAAE,EAAEsL,EAAE,EAAE4qC,EAAE,EAAEkqF,EAAE,EAAEtyJ,EAAE,EAAEqoB,EAAE,EAAEgK,EAAE,EAAEogI,EAAE,EAAEvW,EAAE,EAAEjwD,EAAE,EAAEsmE,EAAE,EAAEvhB,EAAE,EAAE2hB,EAAE,EAAE1oF,EAAE,EAAE4oF,EAAE,EAAEj1J,EAAE,EAAE40J,EAAE,EAAEhP,EAAE,EAAE90D,EAAE,EAAEk6D,EAAE,EAAExE,EAAE,EAAEV,EAAE,EAAE5oJ,EAAE,EAAEg4J,EAAE,EAAEJ,EAAE,EAAE7sF,EAAE,EAAEktF,EAAE,EAAE4Z,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE,IAAInuK,EAAEwkJ,EAAExkJ,EAAE,IAAI,EAAEgpJ,GAAGpF,EAAEsP,GAAG,IAAI1O,EAAE,IAAI,GAAG,EAAE2oB,GAAG3rK,EAAE,GAAGoiJ,EAAE3U,EAAE2U,EAAE,GAAG,GAAGpiJ,EAAEoiJ,EAAE,EAAE,IAAI,EAAEpiJ,EAAEoiJ,EAAE,EAAE,IAAI,GAAGpiJ,EAAEoiJ,EAAE,EAAE,IAAI,GAAGlvJ,EAAEs0J,GAAG,GAAGxnJ,EAAE,EAAEoiJ,GAAGpiJ,EAAEoiJ,EAAE,EAAE,IAAI,EAAEpiJ,EAAEoiJ,EAAE,EAAE,IAAI,GAAGpiJ,EAAEoiJ,EAAE,EAAE,IAAI,GAAGlvJ,EAAEs0J,EAAE,GAAG,GAAGmkB,GAAG,KAAK,GAAGja,EAAEA,EAAE,EAAE,MAAM,IAAIzoJ,EAAEuoJ,EAAExO,EAAEv8E,EAAE,IAAI27E,EAAElvJ,GAAGu6I,EAAExkI,IAAI,GAAGyoJ,EAAEx+J,EAAEu6I,EAAE,GAAG,GAAGlrI,EAAE6/I,EAAEA,GAAGupB,GAAGz4K,EAAEu6I,EAAE,IAAI,KAAKuV,EAAE9vJ,EAAEu6I,EAAE,KAAK,IAAI,EAAEA,GAAGkkB,EAAEz+J,EAAEu6I,EAAE,IAAI,IAAIv6I,EAAEu6I,EAAE,KAAK,GAAG,EAAEA,EAAE2U,IAAI,EAAEY,IAAI,EAAEvV,EAAE,EAAE,EAAEA,EAAEuV,EAAEZ,EAAE3U,EAAEA,EAAEikB,EAAE,EAAE1O,EAAEvV,GAAG2U,EAAE7/I,EAAE6/I,EAAE,KAAK,EAAEY,IAAI,EAAEvV,EAAE,EAAE,EAAEA,EAAEjxI,EAAEowK,IAAIlb,EAAEtP,IAAIpiJ,EAAE,GAAGoiJ,EAAE37E,IAAI,GAAG,IAAIzmE,EAAEoiJ,EAAE,EAAE,IAAI,EAAEpiJ,EAAEoiJ,EAAE,EAAE,IAAI,GAAGpiJ,EAAEoiJ,EAAE,EAAE,IAAI,KAAK,WAAW3U,GAAGztI,EAAEoiJ,EAAE,EAAE,GAAGpiJ,EAAEoiJ,EAAE,EAAE,IAAI,EAAEpiJ,EAAEoiJ,EAAE,EAAE,IAAI,GAAGpiJ,EAAEoiJ,EAAE,EAAE,IAAI,IAAI,WAAW,IAAIA,EAAE3U,EAAEnxI,EAAEmxI,EAAEA,EAAE,WAAW,EAAElrI,EAAEopK,IAAInkB,EAAEhrJ,EAAE,UAAU,GAAGmvK,GAAGl+B,EAAE+Z,IAAI,EAAE,WAAW/Z,EAAE,EAAE,EAAEA,EAAE7uI,EAAEguK,GAAGrqK,EAAEovJ,EAAElkB,EAAE,IAAIxmH,EAAEwmH,EAAEnxI,EAAE5C,EAAE0oJ,EAAE7/I,EAAE/F,EAAEixI,EAAEA,EAAEuV,EAAE,EAAEvV,GAAGA,GAAGjxI,EAAEoC,EAAE8yJ,EAAE,KAAK,EAAEA,IAAI,EAAEjkB,EAAE,EAAE,EAAEA,IAAIhuH,EAAEinD,EAAExzE,EAAE+V,EAAE,KAAK,IAAI,EAAE1G,EAAEqqK,GAAGrqK,GAAGsuB,EAAE6gI,GAAGtP,EAAElvJ,EAAE+V,EAAE,KAAK,IAAIzM,EAAE,IAAIuqE,EAAEvqE,IAAI,EAAEq0B,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAG/zI,EAAE,IAAI+zI,EAAEk+B,IAAI/7B,EAAEtzI,GAAG,EAAEmjB,EAAEmtJ,IAAIluK,EAAEgzJ,EAAElK,EAAEjlJ,EAAE,GAAG3D,GAAGokJ,EAAEwE,IAAI,EAAE9oJ,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,GAAGxmH,EAAE,IAAIq9C,EAAEhoE,EAAEkrJ,EAAEt0J,EAAE+V,EAAE,IAAI,GAAGyoJ,GAAG9yJ,EAAE1L,EAAE+V,EAAE,KAAK,KAAK0oJ,EAAEga,GAAGz4K,EAAE+V,EAAE,IAAI,IAAI,EAAEwkI,GAAG6U,EAAEpvJ,EAAE+V,EAAE,KAAK,KAAKvP,EAAExG,EAAE+V,EAAE,IAAI,IAAI,EAAEwkI,EAAEikB,IAAI,EAAEC,IAAI,EAAElkB,EAAE,EAAE,EAAEA,EAAEkkB,EAAED,EAAEjkB,EAAEA,EAAE+Z,EAAE,EAAE/Z,GAAGikB,EAAEA,EAAEx+J,EAAE+V,EAAE,GAAG,GAAG,KAAK,EAAE0oJ,IAAI,EAAElkB,EAAE,EAAE,EAAEA,EAAEjxI,EAAEowK,GAAGlb,GAAG1xJ,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAI,WAAWzmE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAIgnE,GAAG,WAAW,IAAI/zI,EAAEkzK,GAAG31J,GAAGuwI,EAAEhrJ,EAAE,WAAW,GAAGmvK,GAAGjyK,GAAGutB,GAAG0kJ,GAAGrvK,KAAKE,IAAI,EAAE,YAAY,WAAW,GAAG,GAAG,IAAI01B,EAAEh/B,EAAE+V,EAAE,KAAK,GAAGgO,EAAEvd,EAAE+zI,EAAEA,GAAGkkB,EAAEr1J,GAAG,EAAEmxI,GAAGA,GAAG/zI,EAAEA,EAAEg4J,EAAE,KAAK,EAAEA,IAAI,EAAEjkB,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,EAAEi6I,GAAGS,IAAIzpG,EAAEuuF,EAAEh4J,EAAExG,EAAE+V,EAAE,KAAK,GAAG,GAAGzM,GAAGs0B,EAAEp3B,IAAI,EAAEypE,IAAI,EAAEsqE,EAAE,EAAE,EAAEA,GAAGk+B,GAAG,IAAIl+B,EAAExmH,GAAG+/C,EAAE1qE,GAAG,EAAEgwK,GAAG5a,EAAElK,EAAE2kB,GAAG,EAAE3vK,EAAEowK,GAAG31J,EAAEy6I,GAAGlK,EAAEA,IAAI,EAAEkK,IAAI,EAAEjkB,EAAE,EAAE,EAAEA,GAAGkkB,EAAE,IAAI1qI,EAAE3qB,EAAEqvK,GAAGz4K,EAAE+V,EAAE,IAAI,GAAGyoJ,GAAGL,EAAEn+J,EAAE+V,EAAE,KAAK,KAAKvP,EAAExG,EAAE+V,EAAE,IAAI,IAAI,EAAEwkI,GAAGq+B,GAAG54K,EAAE+V,EAAE,KAAK,KAAKu7D,EAAEtxE,EAAE+V,EAAE,IAAI,IAAI,EAAE0oJ,EAAED,EAAEjkB,GAAGA,EAAEikB,IAAI,EAAEh4J,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,GAAGk+B,GAAG,EAAEM,GAAGva,EAAEA,EAAEx+J,EAAE+V,EAAE,IAAI,GAAG,EAAEyoJ,EAAEA,IAAI,EAAEC,IAAI,EAAElkB,EAAE,EAAE,EAAEA,EAAEv2H,EAAE01J,GAAGX,IAAIjsK,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,KAAK,SAASirF,GAAG1xJ,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAI,UAAU,IAAIklG,GAAGl+B,EAAEnxI,EAAEmxI,EAAEA,EAAE,WAAW,EAAEx2H,EAAEvd,GAAGi4J,EAAEz6I,EAAE,SAAS,GAAGxd,EAAE+zI,EAAEkkB,IAAI,EAAE,WAAWlkB,EAAE,EAAE,EAAEA,EAAEA,EAAEm/B,GAAG31J,EAAEutD,EAAEipE,EAAE,IAAIv7G,EAAEy5I,GAAG3yB,EAAE9lJ,EAAE+V,EAAE,KAAK,GAAGgO,EAAEw2H,EAAEzjI,EAAEkN,EAAEA,EAAEu2H,EAAEw+B,GAAGx+B,EAAEw+B,GAAG,EAAEx+B,GAAGjpE,EAAEloE,GAAGo1J,EAAE,EAAEjkB,GAAGA,EAAEv2H,IAAI,EAAE+0J,KAAK,EAAEx+B,EAAE,EAAE,EAAEA,IAAIgkB,EAAEzY,GAAG,EAAEuyB,GAAGqB,GAAG5iK,GAAG88D,EAAE4qF,GAAGia,GAAGz4K,EAAE+V,EAAE,KAAK,KAAKiO,EAAE+0J,IAAI,IAAIxa,EAAEv6I,IAAI,EAAE4vD,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAE/zI,GAAGy3J,EAAE70J,GAAG,EAAEkoE,EAAEooG,GAAG31J,GAAGmlB,EAAEs1H,EAAEC,EAAE4Z,GAAG,IAAI7xK,EAAE0iC,IAAI,EAAEu1H,IAAI,EAAElkB,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,IAAItyC,EAAE51B,EAAE4a,EAAEhkB,EAAE+V,EAAE,IAAI,GAAG0oJ,GAAGD,EAAEx+J,EAAE+V,EAAE,KAAK,KAAK29D,EAAEqlG,GAAG/4K,EAAE+V,EAAE,IAAI,IAAI,EAAEwkI,GAAG8+B,GAAGr5K,EAAE+V,EAAE,KAAK,KAAKm4E,EAAEluF,EAAE+V,EAAE,IAAI,IAAI,EAAEwkI,GAAGA,EAAE7mE,IAAI,EAAE+qF,IAAI,EAAElkB,EAAE,EAAE,EAAEA,GAAGv2H,EAAE,EAAEu2H,GAAG7mE,EAAE+qF,KAAK,GAAG1gI,EAAE0gI,EAAE/qF,EAAE1zE,EAAE+V,EAAE,IAAI,GAAG,KAAK,EAAEwkI,EAAE,EAAE,EAAEA,EAAEqN,EAAE8xB,GAAG37I,GAAGjxB,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAI,UAAUgnE,GAAGztI,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAI,WAAW,IAAIvvD,EAAE01J,GAAG5iK,GAAGiN,GAAGC,EAAE4jI,GAAG,WAAW,GAAGmxB,GAAG7qF,GAAG6qF,IAAIta,EAAEr1J,KAAK4a,IAAI,EAAE,YAAY,WAAW,GAAG,GAAG,IAAIkqE,EAAE6qF,GAAG/a,EAAES,EAAEsa,GAAG/4K,EAAE+V,EAAE,KAAK,GAAGe,EAAEkN,EAAEq6I,EAAEt6I,EAAEw2H,GAAG7mE,EAAEtqE,GAAGmxI,EAAE,EAAEA,GAAGA,GAAGx8G,EAAE/Z,EAAE+Z,EAAE,KAAK,EAAE/Z,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,IAAI5iD,EAAEohF,IAAI,EAAE3a,EAAEp6I,GAAGy6I,EAAEz+J,EAAE+V,EAAE,KAAK,IAAIgoB,EAAE,EAAEha,EAAE21J,GAAG11J,EAAE4jI,GAAG7jI,EAAEi6I,IAAIA,EAAEh6I,IAAI,EAAE+Z,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAGA,EAAErsD,IAAIA,EAAE9kF,GAAG,EAAE20B,EAAE/Z,EAAEq6I,EAAEt6I,EAAE,EAAE6jI,EAAEl0E,EAAEA,EAAE6mE,EAAEv2H,IAAI,EAAED,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAEzjI,EAAE4iK,GAAG5iK,EAAEkN,EAAE4jI,EAAErN,EAAE,IAAIv2H,EAAE5a,EAAEw+I,EAAE7zH,EAAEsqI,EAAE/0J,EAAE40J,EAAEh1H,EAAEqxG,EAAExmH,EAAE8/C,EAAE,EAAE9/C,EAAE4J,EAAEA,EAAEr0B,EAAE,EAAEixI,GAAGA,EAAE58G,IAAI,EAAEr0B,IAAI,EAAEixI,EAAE,EAAE,EAAEA,IAAI5iD,EAAEyC,EAAEp6F,EAAE+V,EAAE,KAAK,IAAI,EAAEmzB,EAAEwwI,IAAI/7I,EAAEr0B,GAAGgvK,GAAGt4K,EAAE+V,EAAE,KAAK,IAAI4nB,EAAE,GAAG5Z,GAAGza,EAAEyqB,IAAI,EAAE4J,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,IAAIqsD,GAAGA,EAAE/zI,IAAIA,EAAE4C,GAAG,EAAEyqE,EAAE0mE,GAAGxmH,EAAEmqI,GAAGrqF,EAAE3qC,GAAG,KAAK,EAAE2qC,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAEA,EAAEm/B,GAAGrb,EAAEtqI,EAAEwmH,EAAEqN,EAAE,IAAIuxB,GAAGn5K,EAAE+V,EAAE,KAAK,GAAGsoJ,EAAE9jB,EAAEx2H,EAAEmlB,EAAEglD,EAAEvwD,EAAEA,EAAE48G,EAAErxG,EAAEglD,EAAEqsD,EAAE,EAAEA,GAAGrsD,EAAE9kF,GAAGE,EAAE,EAAEixI,GAAGA,EAAE58G,IAAI,EAAEuL,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,IAAI5iD,EAAEwhF,IAAI,EAAET,GAAGpvK,GAAGs+I,EAAE5nJ,EAAE+V,EAAE,KAAK,KAAK4nB,EAAEuL,GAAG,EAAEgwI,GAAGQ,GAAG31J,EAAEza,GAAGq0B,EAAEA,IAAI,EAAEr0B,IAAI,EAAEixI,EAAE,EAAE,EAAEA,GAAG/zI,EAAE,IAAI+zI,EAAE1mE,GAAG3qC,EAAE9/B,GAAG,EAAEuuF,EAAE+hF,GAAGrb,GAAGt6I,EAAEvd,EAAEutB,EAAEmlJ,GAAG,IAAIrlG,EAAEqa,IAAIA,EAAEn6D,IAAI,EAAEhQ,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAG,IAAI1mE,EAAEzqE,EAAE5C,EAAEw4B,EAAEk/H,EAAE5sF,EAAEipE,EAAEv7G,EAAEpB,EAAE,EAAE28G,GAAGA,GAAGxmH,EAAEu9C,EAAErB,EAAE,KAAK,EAAEqB,IAAI,EAAEipE,EAAE,EAAE,EAAEA,IAAI8jB,EAAE2a,GAAGh5K,EAAE+V,EAAE,KAAK,IAAI,EAAEk6D,EAAEypG,IAAI/jG,EAAEtmE,IAAIA,EAAE0kB,GAAGzqB,EAAEtJ,EAAE+V,EAAE,KAAK,KAAKu7D,EAAEv9C,GAAG,IAAIu9C,EAAEA,IAAI,EAAEjiE,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGmC,EAAE,IAAInC,EAAE7mE,GAAG3/C,EAAE3qB,GAAG,EAAE5C,EAAEkzK,GAAGxb,GAAGl/H,EAAEjB,EAAEkyC,EAAE,IAAIsqE,EAAEv7G,IAAI,EAAEjB,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAG/zI,EAAE,IAAIk2I,EAAEnC,EAAE38G,EAAE7J,EAAEw9C,EAAEvxE,EAAE+V,EAAE,KAAK,GAAGmoJ,EAAE13J,EAAEmvE,EAAE32C,EAAEu7G,GAAGv7G,EAAE51B,GAAGkoE,EAAE,EAAEipE,GAAGA,GAAG7mE,EAAErkE,EAAE7I,EAAE,KAAK,EAAEA,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,IAAI8jB,EAAE9sF,GAAG,EAAE3zC,EAAE87I,IAAIhmG,EAAEltE,GAAGutB,EAAE/zB,EAAE+V,EAAE,KAAK,KAAKu7D,EAAEoC,GAAG,GAAGzD,GAAGlyC,EAAEuzC,IAAI,EAAEoC,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,GAAG38G,EAAE,IAAI28G,GAAGlrI,EAAEjG,GAAGszI,EAAE,EAAEo8B,GAAGtyK,EAAEmvE,GAAGrE,EAAE1zC,GAAG,EAAEygI,EAAEqb,GAAGxb,EAAE13J,GAAG8qE,EAAEA,IAAI,EAAE9qE,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIA,EAAE51B,EAAEszI,EAAE14H,EAAEk6I,EAAEpnJ,EAAEyjI,EAAEv2H,EAAEu6I,EAAE,EAAEhkB,GAAGA,GAAGzjI,EAAEA,EAAE88D,EAAE,KAAK,EAAEA,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,IAAItqE,EAAE0D,EAAE3zE,EAAE+V,EAAE,KAAK,IAAI,EAAEe,EAAE4iK,IAAInb,EAAEv6I,GAAGxd,EAAExG,EAAE+V,EAAE,KAAK,IAAIe,EAAE,GAAGmiK,IAAIj1J,EAAEA,IAAI,EAAElN,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAGzmE,EAAE,IAAIymE,GAAGzmE,EAAE1qE,GAAG0mJ,EAAE,EAAEtkJ,EAAEooE,EAAEpoE,EAAEsL,EAAE,EAAEg5I,EAAE4pB,GAAGxb,EAAEtqF,GAAG2mE,EAAE3mE,IAAI,EAAE98D,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAGmC,EAAE,IAAI9oE,EAAE2mE,EAAE2jB,EAAEl+J,EAAE+V,EAAE,KAAK,GAAGk6D,EAAE6/E,EAAEvV,GAAGmC,EAAEtzI,GAAG4a,EAAE,EAAEu2H,GAAGA,GAAGgkB,EAAEA,EAAEzO,EAAE,KAAK,EAAEA,IAAI,EAAEvV,EAAE,EAAE,EAAEA,GAAG2jB,EAAE,EAAE2a,GAAGa,IAAInb,EAAEzO,GAAG0oB,GAAGx4K,EAAE+V,EAAE,KAAK,KAAKiO,EAAEu6I,GAAG,GAAGznJ,GAAGg5I,EAAEh8E,IAAIA,EAAE9vD,IAAI,EAAEu6I,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAGA,EAAE3mE,IAAIA,EAAExqE,GAAG,EAAE4a,EAAE01J,GAAGzpG,GAAGn5D,EAAEg5I,GAAG9rI,EAAE60J,IAAIrtK,EAAE,IAAIA,EAAEwY,IAAI,EAAElN,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAGmC,EAAE,IAAIA,EAAEtzI,EAAE6mE,EAAEmB,EAAEmnG,GAAGhsJ,EAAEosJ,GAAGS,GAAG7+B,EAAEnpE,EAAE4sF,EAAE,EAAEzjB,GAAGA,GAAG6+B,GAAG7sJ,EAAE6xI,EAAE,KAAK,EAAE7xI,IAAI,EAAEguH,EAAE,EAAE,EAAEA,IAAI5kE,EAAEsjG,GAAGj5K,EAAE+V,EAAE,KAAK,IAAI,EAAEq7D,EAAEmpE,GAAGhuH,GAAGujI,EAAE9vJ,EAAE+V,EAAE,KAAK,KAAKq7D,EAAEgoG,IAAI,KAAK,EAAEhoG,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,EAAE89B,GAAGqB,GAAGntJ,EAAE8rJ,GAAG99B,EAAE0jB,EAAE,IAAI1jB,GAAGA,EAAE+Z,IAAIA,EAAElrJ,GAAG,EAAEg1J,EAAEH,EAAE0a,IAAI3a,EAAEqa,IAAI,EAAEpoG,EAAEypG,GAAGnB,GAAGta,GAAG1jB,EAAEyjB,IAAI,EAAEC,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAGtqE,EAAE,IAAIsoG,GAAGI,GAAGvvK,EAAE60J,EAAE1jB,EAAEyjB,EAAE1J,EAAEglB,GAAGrpG,EAAEsqE,EAAEnpE,EAAEunG,GAAG,EAAEp+B,GAAGA,GAAGtqE,EAAE1jD,EAAE0jD,EAAE,KAAK,EAAE1jD,IAAI,EAAEguH,EAAE,EAAE,EAAEA,IAAI6+B,GAAGp5K,EAAE+V,EAAE,KAAK,IAAI,EAAEk6D,EAAE1jD,GAAG+nI,EAAEt0J,EAAE+V,EAAE,KAAK,KAAKq7D,EAAEnB,GAAG,EAAE0F,EAAE+jG,GAAGntJ,EAAE8rJ,IAAI1iG,EAAEqoF,IAAIA,EAAEzxI,IAAI,EAAE6kD,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAGA,EAAE0jB,IAAIA,EAAE70J,GAAG,EAAEivK,GAAGqB,GAAGJ,IAAIX,GAAGpsJ,GAAG6kD,EAAEuE,GAAGyoF,EAAE,IAAI7xI,EAAEA,IAAI,EAAE6kD,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,GAAGg+B,GAAG,IAAIA,GAAGh+B,EAAEnxI,EAAEgoE,EAAEmpE,EAAE++B,GAAG17I,EAAE28G,EAAE58G,EAAEs7I,GAAG,EAAE1+B,GAAGA,GAAG38G,EAAEkyH,KAAK,GAAGsO,EAAExgI,EAAE86I,GAAG,KAAK,EAAEn+B,EAAE,EAAE,EAAEA,GAAGnpE,EAAE,EAAEgtF,EAAEsb,GAAGJ,IAAIloG,EAAExzC,GAAGD,EAAEygI,GAAGia,GAAG,IAAIz6I,EAAED,IAAI,EAAEyzC,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,GAAGlrI,EAAE,IAAIkrI,EAAE/uI,GAAGmyB,EAAEv0B,GAAG,EAAE0N,EAAEyjI,GAAGlrI,EAAEyH,EAAEsnJ,EAAE,KAAK,EAAEtnJ,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,EAAEm+B,GAAGL,GAAGqB,GAAGrB,GAAGhpK,EAAEkpK,GAAGh+B,EAAE,IAAIg+B,GAAGh+B,EAAEnxI,EAAEoC,EAAE+uI,EAAEg/B,GAAGlB,GAAG99B,EAAE38G,EAAEo7I,GAAG,EAAEz+B,GAAGA,GAAG89B,GAAGjnG,EAAE9nE,EAAE,KAAK,EAAE8nE,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,GAAG/uI,EAAE,EAAEktK,GAAGtnG,EAAEsnG,IAAI96I,EAAEy6I,IAAI,EAAEiB,GAAGI,GAAGtoG,EAAEgtF,GAAG5yJ,EAAEmyB,IAAIA,EAAEyzC,IAAI,EAAExzC,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEzjI,GAAGtL,EAAEpC,GAAG,EAAE0N,EAAEyjI,GAAGnpE,EAAE/hE,EAAEiqK,GAAG,KAAK,EAAEjqK,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,EAAE89B,GAAGqB,GAAGH,IAAIlqK,EAAE+hE,GAAGmpE,EAAEg+B,GAAG,IAAI36I,EAAEx0B,EAAEg1J,EAAEzmE,EAAE4iD,EAAEq+B,IAAIxnG,EAAEyC,GAAG,EAAE0mE,GAAGA,GAAG5iD,EAAEwmE,EAAExmE,EAAE,KAAK,EAAEwmE,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAGx8G,EAAE,EAAEogI,EAAE5jB,GAAG1mE,EAAEH,EAAEikB,EAAE,KAAK,EAAEjkB,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,EAAEx8G,EAAE27I,GAAG7lG,EAAEglG,GAAGt+B,EAAE3mE,EAAE,IAAI2mE,GAAGA,EAAEhuH,IAAIA,EAAEnjB,GAAG,EAAEmxI,GAAG3mE,GAAGF,EAAE31C,GAAG46I,GAAG,KAAK,EAAEjlG,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,EAAE7mE,EAAEtC,EAAEA,EAAEmpE,EAAE5iD,EAAE+hF,GAAGtb,EAAExqF,EAAEF,EAAE6mE,EAAE,IAAIq+B,GAAGr+B,EAAEnxI,EAAEsqE,EAAE6mE,EAAE6jB,EAAErgI,EAAEw8G,EAAE4jB,EAAE/jE,EAAE,EAAEmgD,GAAGA,GAAGx8G,EAAE81C,EAAEykG,GAAG,KAAK,EAAEzkG,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAG7mE,EAAE,EAAE6mE,GAAG1mE,GAAGsqF,EAAEpgI,GAAG45D,EAAE,KAAK,EAAEwmE,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAEtqF,EAAEH,EAAE6mE,EAAEs+B,GAAGa,GAAGtb,EAAEvqF,EAAE0mE,EAAEhuH,EAAE,IAAIguH,EAAEnpE,GAAGrzC,EAAE30B,GAAG,EAAEuvK,GAAGpsJ,EAAEqnD,EAAEilG,GAAG,EAAElhF,EAAE+hF,GAAGntJ,EAAEorE,GAAGvmB,EAAE7kD,IAAI,EAAEqnD,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAGq+B,GAAG,IAAIrsJ,EAAEnjB,EAAEyqE,EAAE70C,EAAEu7G,EAAEv7G,EAAEm6I,GAAG,EAAE5+B,GAAGA,GAAG3mE,EAAEg0E,EAAEyW,EAAE,KAAK,EAAEzW,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAGzmE,EAAE,EAAEmqF,EAAEyb,IAAI9xB,EAAE5oH,EAAE40C,EAAE2qF,EAAE,GAAG5oF,GAAG32C,EAAEA,IAAI,EAAEu/H,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,GAAG0jB,EAAE,IAAI1jB,EAAErsD,GAAGpa,EAAE1qE,GAAG,EAAEmxI,EAAEx2H,IAAI,GAAG6vD,EAAE7vD,EAAEk6I,EAAE,KAAK,EAAE1jB,EAAE,EAAE,EAAEA,EAAEx2H,EAAE8vD,EAAEA,EAAE0mE,EAAEx2H,EAAEmqE,EAAEwrF,GAAG9lG,EAAEyqF,EAAEt6I,EAAEw2H,EAAE,IAAI8jB,EAAE9jB,EAAEnxI,EAAEm1J,EAAEhkB,EAAE6jB,EAAEH,EAAE1jB,EAAEv7G,EAAEo6I,GAAG,EAAE7+B,GAAGA,GAAGrsD,GAAG+vE,EAAE3J,GAAG1M,EAAE,KAAK,EAAEqW,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,EAAE5oF,EAAE32C,EAAEjb,EAAEmqE,EAAE,EAAEqqF,GAAGmB,GAAGtb,EAAEp/H,GAAGi/H,EAAEnqF,IAAIA,EAAE90C,IAAI,EAAEkvD,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAE1mE,GAAG0qF,EAAEn1J,GAAG,EAAEi1J,EAAEqb,IAAI9xB,EAAE5oH,EAAE40C,EAAE2kG,GAAG,GAAGx0J,GAAGib,EAAEA,IAAI,EAAE40C,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAG8jB,EAAE,IAAIxqF,EAAEzqE,EAAE2a,EAAEC,EAAEu2H,GAAG3mE,EAAE8oE,GAAGwhB,EAAE,EAAE3jB,GAAGA,GAAG0jB,EAAEj6I,EAAEw0J,GAAG,KAAK,EAAEx0J,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAGyjB,EAAE,EAAE9vE,EAAEwrF,IAAIzb,EAAEj6I,EAAEisD,EAAEguF,EAAE,GAAGib,IAAIl1J,EAAEA,IAAI,EAAEisD,IAAI,EAAEsqE,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,GAAGA,EAAEjpE,IAAIA,EAAEloE,GAAG,EAAE8/B,EAAEwwI,GAAG31J,GAAGi6I,EAAEthB,EAAExuD,EAAE4qF,GAAG,IAAIv+B,EAAEmC,IAAI,EAAExuD,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAG3mE,EAAE,IAAI3D,EAAEysE,EAAEtzI,EAAEwqE,EAAE2mE,EAAE6jB,EAAEJ,EAAEA,EAAE9vE,EAAEA,GAAGqsD,EAAE0jB,IAAIA,EAAEO,GAAG,EAAEjkB,EAAEv2H,EAAEq1J,GAAG,EAAE9+B,GAAGA,EAAErsD,IAAI,EAAE+vE,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAGmC,EAAE,EAAEuhB,EAAEj6I,EAAEkqE,GAAGnqE,EAAEmlB,GAAG,EAAEglD,EAAEqsD,EAAEv2H,IAAI,EAAEkqE,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,EAAEyjB,EAAE0b,GAAG1b,EAAEh6I,EAAEu2H,EAAEjpE,EAAE,IAAIipE,GAAGmC,EAAEtzI,GAAGwqE,EAAE,EAAEwqF,EAAEsb,GAAGxwI,GAAGnlB,EAAEutD,EAAE8sF,GAAGp6I,EAAEg6I,GAAG,IAAIh6I,EAAED,IAAI,EAAEC,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAGtqE,EAAE,IAAIqB,EAAEloE,EAAEwqE,EAAErnD,EAAE2c,EAAE0+G,EAAE33E,EAAE+tF,EAAEzjB,EAAE58G,EAAE61C,EAAE,EAAE+mE,GAAGA,GAAGyjB,EAAE9O,KAAK,GAAGtH,EAAEoW,EAAE0a,GAAG,KAAK,EAAEn+B,EAAE,EAAE,EAAEA,GAAGhuH,EAAE,EAAEq7H,EAAE8xB,GAAGzpG,GAAG1jD,EAAEyxI,EAAEpW,EAAEjwD,EAAE,IAAIh6D,EAAE++G,IAAIA,EAAEnwH,IAAI,EAAEq7H,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAGA,EAAEv7G,IAAIA,EAAE51B,GAAG,EAAEmxI,GAAG58G,EAAEiqH,KAAK,GAAGoW,EAAE90H,EAAEvL,EAAE,KAAK,EAAE48G,EAAE,EAAE,EAAEA,EAAEtqE,EAAE/mC,EAAEwwI,IAAI/7I,EAAEqgI,GAAGrmE,EAAE4iD,EAAE3mE,EAAE,IAAI+jB,EAAE/jB,EAAExqE,EAAE40J,EAAEzjB,EAAEm+B,GAAG9wB,EAAErN,EAAEmC,EAAE/oE,EAAE,EAAE4mE,GAAGA,GAAGqN,EAAEr7H,EAAE/lB,EAAE,KAAK,EAAE+lB,IAAI,EAAEguH,EAAE,EAAE,EAAEA,GAAG3mE,EAAE,EAAEA,EAAErnD,GAAGmwH,EAAEkL,GAAG1+G,EAAE,EAAEgwI,GAAGQ,GAAGhB,GAAGnsJ,GAAGq7H,EAAEr7H,IAAI,EAAEmwH,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,GAAGA,EAAEyjB,IAAIA,EAAE50J,GAAG,EAAEu0B,EAAEpR,GAAGyS,EAAEk6I,IAAIv7I,EAAE,EAAEi7I,GAAGc,GAAGntJ,EAAE0jD,GAAG/mC,EAAE3c,IAAI,EAAEyS,IAAI,EAAEu7G,EAAE,EAAE,EAAEA,GAAG5iD,EAAE,IAAI34D,EAAE51B,EAAEuuF,EAAE5zE,EAAEw2H,EAAE7mE,GAAGnnD,EAAEsnD,GAAG,EAAE0mE,GAAGA,GAAGmC,EAAEyhB,EAAEE,EAAE,KAAK,EAAEF,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,IAAItqE,EAAE6oG,GAAG94K,EAAE+V,EAAE,KAAK,IAAI,EAAE2mI,EAAEnC,GAAG1mE,GAAG9vD,EAAE/jB,EAAE+V,EAAE,KAAK,IAAI2mI,EAAE,KAAK,EAAEA,IAAI,EAAEnC,EAAE,EAAE,EAAEA,EAAE7mE,EAAEgmG,GAAG7lG,EAAEylG,GAAG/+B,EAAE/uI,EAAE,IAAI+uI,GAAGA,EAAEv2H,IAAIA,EAAE5a,GAAG,EAAEoC,EAAE2yJ,EAAExmE,EAAEjkB,EAAE,EAAEikB,EAAE1nB,EAAEypG,GAAGvb,EAAEE,GAAG9jB,EAAE4jB,IAAI,EAAEzqF,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,GAAGhuH,EAAE,IAAI8xI,EAAE9xI,EAAEnjB,EAAE+0J,EAAE5jB,EAAEm+B,GAAGhlG,EAAE6mE,EAAEmC,EAAE0S,EAAE,EAAE1S,EAAEhpE,EAAEhoE,EAAEmoE,EAAE,EAAE0mE,GAAGA,EAAE7mE,IAAI,EAAEG,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAGhuH,EAAE,EAAEA,EAAEmtJ,GAAGhB,IAAIhlG,EAAEG,EAAEH,EAAEzD,EAAE,IAAI1jD,EAAEvI,IAAIA,EAAE0vD,IAAI,EAAEgpE,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAGA,EAAE4jB,IAAIA,EAAE/0J,GAAG,EAAEoC,EAAEqoE,EAAEtnD,EAAE/gB,EAAE,EAAE2tK,GAAGO,GAAG7lG,EAAE8jB,GAAG1nB,EAAE4D,IAAI,EAAEtnD,IAAI,EAAEguH,EAAE,EAAE,EAAEA,GAAG8jB,EAAE,IAAIxqF,EAAEzqE,EAAEszI,EAAEprE,EAAEipE,EAAEzmE,EAAEvC,EAAE,EAAEgpE,GAAGA,GAAG8jB,EAAEtqI,EAAE4hD,EAAE,KAAK,EAAE5hD,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,EAAEipE,GAAGzmE,GAAG6jB,EAAE0mE,GAAGD,EAAE,KAAK,EAAEzmE,IAAI,EAAE4iD,EAAE,EAAE,EAAEA,EAAE5iD,EAAE7jB,EAAExC,EAAEipE,EAAE8jB,EAAEqb,GAAG5lG,EAAE+kG,GAAGt+B,EAAEx8G,EAAE,IAAIw8G,EAAEzjI,GAAGg9D,EAAE1qE,GAAG,EAAEmxI,EAAElrI,IAAI,GAAG0uB,EAAE1uB,EAAEgvJ,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,EAAE6jB,EAAEtnJ,EAAE4iK,IAAIrqK,EAAE0uB,GAAGqgI,EAAE7jB,EAAEmC,EAAE,IAAIg8B,GAAGh8B,EAAEtzI,EAAE20B,EAAEw8G,EAAE5kE,EAAEtmE,EAAEkrI,EAAEjpE,EAAEynG,GAAG,EAAEx+B,GAAGlrI,EAAEovJ,KAAK,GAAG3nJ,EAAEzH,EAAEsoF,EAAE,KAAK,EAAE4iD,EAAE,EAAE,EAAEA,EAAElrI,EAAEyH,EAAEyjI,EAAEA,EAAEmC,EAAE,EAAE5lI,EAAEg9D,EAAEA,EAAEymE,EAAElrI,IAAI,GAAGiiE,EAAE8sF,EAAE/uJ,EAAE,KAAK,EAAEkrI,EAAE,EAAE,EAAEA,EAAEs+B,GAAGa,IAAIrqK,EAAEiiE,GAAG+sF,EAAEvnJ,EAAEyjI,EAAE,IAAIA,GAAGjpE,EAAEloE,GAAG20B,EAAE,EAAEqgI,EAAEsb,IAAI37I,EAAE2+G,EAAE/mE,GAAG7+D,EAAE+hK,IAAI,GAAGza,GAAG7jB,EAAEzjI,IAAI,EAAEinB,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAGm+B,GAAG,IAAIh8B,EAAEtzI,EAAEuuF,EAAE4iD,EAAE8jB,EAAE9xI,EAAEopD,EAAE0iG,GAAG99B,EAAEuL,GAAGhvI,EAAE8mB,GAAG,EAAE28G,GAAGA,GAAGhuH,EAAEksJ,MAAM,GAAGJ,GAAG9rJ,EAAE8rJ,GAAG,KAAK,EAAE99B,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,EAAEtwD,EAAErR,EAAE0xI,EAAEoa,GAAG,EAAEnqF,EAAEwrF,GAAGntJ,EAAEgsJ,IAAIrqF,EAAEqwE,IAAIA,EAAEhyI,IAAI,EAAE0xI,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAGhuH,EAAEnjB,GAAGgoE,EAAE,EAAEsnG,GAAGza,EAAE/vE,EAAEyqF,GAAG,EAAE7hK,EAAE4iK,GAAG/jG,EAAEsoF,GAAG1jB,EAAE0jB,IAAI,EAAE/vE,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIyhK,GAAGI,GAAGvvK,EAAEgoE,EAAEmpE,EAAE0jB,EAAE1xI,EAAEosJ,GAAG7hK,EAAE6+D,EAAEuY,EAAEqsD,EAAEgkB,EAAEga,GAAG,EAAEh+B,GAAGA,GAAGrsD,EAAEp3E,EAAE8mB,EAAE,KAAK,EAAEA,IAAI,EAAE28G,EAAE,EAAE,EAAEA,IAAI89B,GAAGr4K,EAAE+V,EAAE,KAAK,IAAI,EAAEwoJ,EAAE3gI,GAAGrR,EAAEvsB,EAAE+V,EAAE,KAAK,IAAIm4E,EAAE,EAAEp3E,EAAEmnJ,EAAEA,EAAE1jB,EAAE38G,IAAI,EAAEswD,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,EAAE5kE,EAAE+jG,GAAG/jG,EAAE/3C,EAAE9mB,EAAEyjI,EAAE,IAAIA,GAAGA,EAAEnpE,IAAIA,EAAEhoE,GAAG,EAAE0N,EAAEyjI,GAAGrsD,EAAEvY,KAAK,GAAG/3C,EAAEswD,EAAEwqF,GAAG,KAAK,EAAEn+B,EAAE,EAAE,EAAEA,EAAEm+B,GAAGgB,GAAGf,IAAIzqF,EAAEtwD,GAAG28G,EAAEg+B,GAAG,IAAII,GAAGp+B,EAAEnxI,EAAEw0B,EAAE28G,EAAEg+B,GAAGx6I,EAAEw8G,EAAEqN,EAAEr2E,EAAE,EAAEgpE,GAAGA,GAAGx8G,EAAE61C,EAAE7/C,EAAE,KAAK,EAAE6/C,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAG38G,EAAE,EAAEA,EAAEg2C,EAAE71C,EAAE26I,GAAG,EAAEra,EAAEqb,GAAG9lG,EAAEyqF,GAAGzW,EAAEuW,IAAIA,EAAEvqF,IAAI,EAAE71C,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAG3mE,EAAExqE,GAAGuuF,EAAE,EAAEiwD,EAAErN,GAAGx8G,EAAEw6I,IAAI3wB,EAAEyW,GAAG,KAAK,EAAEzW,IAAI,EAAErN,EAAE,EAAE,EAAEA,EAAEo+B,GAAGD,GAAGgB,GAAGhB,GAAG36I,EAAE46I,GAAGp+B,EAAE,IAAIg+B,GAAGh+B,EAAEnxI,EAAEuuF,EAAE4iD,EAAE++B,GAAGjb,EAAE9jB,EAAE4jB,EAAE/jE,EAAE,EAAEmgD,GAAGA,GAAG8jB,EAAEzgI,EAAE06I,GAAG,KAAK,EAAE16I,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAG5iD,EAAE,EAAE4iD,GAAG38G,GAAGugI,EAAEE,GAAGqa,GAAG,KAAK,EAAEva,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAEvgI,EAAE+5D,EAAE/jB,EAAEA,EAAE2mE,EAAEm+B,GAAGgB,GAAGJ,GAAG17I,EAAE+5D,EAAE4iD,EAAE,IAAIA,EAAEqN,GAAGjwD,EAAEvuF,GAAG,EAAEmxI,GAAG38G,EAAEG,EAAE26I,GAAG,KAAK,EAAE36I,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEx8G,EAAEH,EAAEgqH,EAAErN,EAAE+9B,GAAGoB,GAAG97I,EAAE+6I,GAAGp+B,EAAEg+B,GAAG,IAAI36I,EAAEx0B,EAAEi1J,EAAEr/H,EAAEu5I,GAAGK,GAAGr+B,EAAEv7G,EAAE20C,EAAE,EAAE4mE,EAAEv2H,GAAGxd,IAAI,GAAGoyK,GAAGpyK,EAAEoyK,GAAG,KAAK,EAAEr+B,EAAE,EAAE,EAAEA,GAAG,EAAEngD,EAAEp7D,EAAE00C,EAAEklG,GAAG,EAAEA,GAAGc,GAAG16I,EAAE65I,IAAI70J,EAAEstD,IAAIA,EAAEtyC,IAAI,EAAE00C,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEzjI,GAAGkoB,EAAE51B,GAAG,EAAEsqE,EAAE6mE,GAAGv2H,EAAEkqE,EAAE0qF,GAAG,KAAK,EAAE1qF,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,EAAE8jB,EAAEvnJ,EAAE4iK,GAAGnB,GAAGv0J,EAAEu2H,EAAE8jB,EAAE,IAAIwa,GAAGt+B,EAAEnxI,EAAE8kF,EAAEqsD,EAAEA,EAAEjpE,EAAEwnG,GAAG,EAAEv+B,GAAGA,GAAGzjI,EAAEiN,EAAEq2E,EAAE,KAAK,EAAEr2E,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,EAAEkM,EAAE9oB,EAAE+sF,GAAGt6I,EAAEjN,GAAG,EAAE8hK,GAAGc,GAAGpoG,EAAEsnG,IAAI1qF,EAAE5c,IAAI,EAAEvtD,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAE7mE,GAAG3vD,EAAE3a,GAAG,EAAE0vK,GAAGxnG,EAAEttD,EAAE40J,GAAG,EAAE9hK,EAAE4iK,GAAGpoG,EAAE+sF,GAAGr6I,EAAEstD,IAAI,EAAEttD,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAGs+B,GAAG,IAAIvnG,EAAEloE,EAAEmxI,EAAEuL,GAAG9mH,EAAE60C,GAAG,EAAE0mE,EAAEzmE,IAAIJ,EAAE+kG,MAAM,GAAGpa,EAAE3qF,EAAEylG,GAAG,KAAK,EAAE5+B,EAAE,EAAE,EAAEA,GAAG,EAAE7mE,EAAEtC,EAAEA,EAAEmpE,EAAElrI,IAAI,GAAGwkE,EAAExkE,EAAEgvJ,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,EAAE8jB,EAAEqb,IAAIrqK,EAAEwkE,GAAG8B,EAAEjC,EAAE6mE,EAAE,IAAIA,EAAErxG,GAAG2qC,EAAEzqE,GAAG,EAAEmxI,EAAE58G,IAAI,GAAGm2C,EAAEn2C,EAAE0gI,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,EAAE58G,EAAEqB,EAAEA,EAAEu7G,EAAE58G,EAAE+7I,GAAG5lG,EAAEqlG,GAAGx7I,EAAE48G,EAAE,IAAI4+B,GAAG5+B,EAAEnxI,EAAEsqE,EAAE6mE,EAAEg+B,GAAG56I,EAAE48G,EAAEnpE,EAAEg+E,EAAE,EAAE7U,GAAGA,GAAG58G,EAAEjyB,KAAK,GAAGw9B,EAAEvL,EAAEtuB,EAAE,KAAK,EAAEkrI,EAAE,EAAE,EAAEA,GAAG7mE,EAAE,EAAEmlG,GAAGznG,EAAEmnG,IAAI56I,EAAEuL,GAAG,EAAEysC,EAAE+jG,GAAGtoG,EAAEitF,GAAG3qF,EAAEtC,IAAI,EAAEzzC,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,IAAI0mE,EAAEv7G,GAAGrB,EAAEv0B,GAAG,EAAEi1J,EAAEjtF,EAAE0C,EAAE6B,EAAE,EAAEzsC,EAAEwwI,GAAGnB,GAAGnnG,GAAGyC,EAAEzC,IAAI,EAAE0C,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAG4+B,GAAG,IAAI/nG,EAAEhoE,EAAEmxI,EAAE6+B,IAAIp6I,EAAE09G,GAAG,EAAEnC,EAAE0jB,IAAI5uJ,GAAGykE,EAAEwgF,GAAG8J,EAAE,KAAK,EAAEtqF,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAG,EAAEzmE,EAAEymE,GAAGmC,EAAE6hB,EAAElvJ,EAAE,KAAK,EAAEkvJ,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,EAAElrI,EAAEqqK,GAAGh9B,EAAEw8B,GAAG3+B,EAAEyjB,EAAE,IAAIzjB,EAAEtqE,GAAGsuF,EAAEn1J,GAAG,EAAE40J,EAAEh/H,EAAEA,EAAEu7G,EAAE/uI,IAAI,GAAGyyJ,EAAEzyJ,EAAE6D,EAAE,KAAK,EAAEkrI,EAAE,EAAE,EAAEA,EAAE/uI,EAAEkuK,GAAGzb,EAAEG,EAAEJ,EAAEzjB,EAAE,IAAI6jB,EAAE7jB,EAAEnxI,EAAE40J,EAAEzjB,EAAEg+B,GAAGlpK,EAAEkrI,EAAEzmE,EAAEoqF,EAAE,EAAE3jB,GAAGA,GAAGlrI,EAAEqtI,EAAE87B,GAAG,KAAK,EAAE97B,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAGyjB,EAAE,EAAE3uJ,EAAEqqK,GAAGnB,IAAIva,EAAEthB,EAAErtI,GAAG4gE,EAAEzkE,GAAG,IAAIykE,EAAEsuF,IAAIA,EAAElvJ,IAAI,EAAE2uJ,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEv7G,GAAG80C,EAAE1qE,GAAG,EAAEoC,EAAEkuK,GAAGluK,GAAGykE,EAAEysE,EAAEuhB,EAAE5uJ,EAAE,IAAIqtI,EAAEzsE,IAAI,EAAEguF,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAG6jB,EAAE,IAAIp/H,EAAE51B,EAAE60J,EAAE3sF,EAAE8sF,EAAEtnJ,EAAEyhK,GAAGlpK,EAAEkrI,EAAE3mE,EAAEolG,GAAG,EAAEplG,EAAEvkE,EAAE8uJ,EAAE70J,EAAE,EAAEixI,GAAGA,EAAElrI,IAAI,EAAE8uJ,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,EAAEx6D,EAAE4iK,GAAGnB,IAAIlpK,EAAE8uJ,EAAE9uJ,EAAEyH,EAAE,IAAIw6D,EAAEsC,IAAI,EAAEvkE,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGzmE,EAAE,IAAIymE,GAAGA,EAAE1mE,IAAIA,EAAEzqE,GAAG,EAAE+0J,EAAE5jB,GAAGzmE,EAAEh9D,EAAEunJ,EAAE,KAAK,EAAEvnJ,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,EAAE8jB,EAAEJ,EAAEyb,GAAGtb,EAAEtqF,EAAEymE,EAAE0jB,EAAE,IAAIG,EAAE7jB,EAAEnxI,EAAEwqE,EAAE2mE,EAAEA,EAAEjpE,EAAE2nG,GAAG,EAAE1+B,GAAGA,GAAGlrI,GAAG4uJ,EAAEnO,GAAGzgJ,EAAE,KAAK,EAAE4uJ,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAG3mE,EAAE,EAAEulG,GAAG7nG,EAAE+sF,EAAEhvJ,EAAE,EAAE6pK,GAAGQ,GAAGpoG,EAAEx6D,GAAG88D,EAAEtC,IAAI,EAAEjiE,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,IAAI0mE,EAAE4jB,GAAGF,EAAE70J,GAAG,EAAEi1J,EAAEqb,IAAIf,GAAGrnG,EAAEwC,EAAEolG,GAAG,GAAG7a,GAAG/sF,EAAEA,IAAI,EAAEwC,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAG6jB,EAAE,IAAIvqF,EAAEzqE,EAAE0qE,EAAE1C,EAAEt6D,EAAEoyB,EAAEqxG,EAAErsD,EAAEmqF,GAAG,EAAE99B,GAAGA,GAAGrxG,EAAE3c,EAAE6tE,EAAE,KAAK,EAAE7tE,IAAI,EAAEguH,EAAE,EAAE,EAAEA,GAAGnpE,EAAE,EAAEA,EAAEmpE,GAAGrsD,EAAEhlD,KAAK,GAAGi1H,EAAErnJ,EAAEo3E,EAAE,KAAK,EAAEqsD,EAAE,EAAE,EAAEA,EAAErxG,EAAEwwI,IAAIxrF,EAAEiwE,GAAGua,GAAGn+B,EAAE5iD,EAAE,IAAI4iD,GAAGA,EAAEmC,IAAIA,EAAEtzI,GAAG,EAAEmxI,GAAGlrI,EAAE65B,KAAK,GAAGi1H,EAAE9uJ,EAAE4gE,EAAE,KAAK,EAAEsqE,EAAE,EAAE,EAAEA,EAAEtqE,EAAEn5D,EAAE4iK,GAAG5iK,GAAGzH,EAAE8uJ,GAAG5jB,EAAEzmE,EAAE,IAAIqqF,EAAE5jB,EAAE5iD,EAAEtoF,EAAEA,EAAE65B,EAAEA,GAAGqxG,EAAErsD,IAAIA,EAAEswE,GAAG,EAAEjkB,EAAEnpE,EAAEioG,GAAG,EAAE9+B,GAAGA,EAAErsD,IAAI,EAAEhlD,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,IAAIzmE,EAAE1qE,GAAG,EAAEmxI,GAAGnpE,GAAG8c,EAAEhlD,GAAGpyB,EAAE,KAAK,EAAEo3E,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,EAAErsD,EAAE9c,EAAEloC,EAAEqxG,EAAElrI,EAAEqqK,GAAGrqK,EAAE+hE,EAAEmpE,EAAEmC,EAAE,IAAInC,GAAGzjI,EAAE1N,GAAG+0J,EAAE,EAAEzhB,EAAEg9B,IAAIhB,GAAGtnG,EAAEumB,EAAEtoF,EAAE,GAAG4gE,GAAGmB,EAAEA,IAAI,EAAE/hE,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGzmE,EAAE,IAAIA,EAAE1qE,EAAE+0J,EAAEn/H,EAAE24D,EAAEnsF,EAAE+uI,EAAE7mE,EAAEqlG,GAAG,EAAEx+B,GAAGA,GAAGtqE,GAAGzkE,EAAEizJ,GAAGoa,GAAG,KAAK,EAAErtK,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,EAAExzB,EAAEkoE,EAAEikB,EAAE1nB,EAAE,EAAEjxC,EAAEu7G,EAAE7mE,IAAI,EAAEzD,IAAI,EAAEsqE,EAAE,EAAE,EAAEA,EAAEtqE,EAAEypG,GAAGhmG,EAAEklG,GAAGr+B,EAAEx2H,EAAE,IAAIw2H,EAAEqN,GAAGl0E,EAAEtqE,GAAG,EAAEw+I,EAAE7jI,EAAEga,EAAEkyC,EAAE,EAAE0nB,EAAE5zE,EAAE21J,GAAG/hF,EAAE5zE,GAAGw2H,EAAEx2H,IAAI,EAAEga,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAG4jB,EAAE,IAAI/jE,EAAE+jE,EAAE/0J,EAAE20B,EAAEw8G,EAAE6jB,EAAExW,EAAErN,EAAEv7G,EAAEw0C,EAAE,EAAE+mE,GAAGA,GAAGx2H,GAAG6jI,EAAEsH,GAAG1jJ,EAAE,KAAK,EAAEo8I,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAG4jB,EAAE,EAAE5jB,GAAGv7G,EAAE24D,EAAE5zE,EAAE,KAAK,EAAEA,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAEqN,EAAE5oH,EAAEjb,EAAE2vD,EAAEA,EAAE6mE,EAAEs+B,GAAGa,GAAG16I,EAAEixC,EAAElsD,EAAEw2H,EAAE,IAAIA,GAAGA,EAAEx8G,IAAIA,EAAE30B,GAAG,EAAEuuF,EAAE+hF,IAAI16I,EAAEo/H,GAAGD,EAAE0a,IAAI,GAAGlhF,GAAG4iD,EAAEv7G,IAAI,EAAEm/H,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAGngD,EAAE,IAAI+jE,EAAE/0J,EAAEoC,EAAEwzB,EAAEixC,EAAEsqE,EAAEA,EAAEgkB,GAAGx6I,EAAE6Z,GAAG,EAAEA,EAAEoB,EAAEg/H,EAAEsa,GAAG,EAAE/9B,GAAGA,EAAEv7G,IAAI,EAAEg/H,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,IAAIngD,EAAEp6F,EAAE+V,EAAE,KAAK,IAAI,EAAE6nB,EAAE28G,GAAGv7G,GAAGo/H,EAAEp+J,EAAE+V,EAAE,KAAK,IAAIipB,EAAE,KAAK,EAAEpB,IAAI,EAAE28G,EAAE,EAAE,EAAEA,EAAEyjB,EAAE0b,GAAG16I,EAAE22C,EAAE4kE,EAAE58G,EAAE,IAAI48G,GAAGA,EAAEv2H,IAAIA,EAAE5a,GAAG,EAAEmxI,GAAG58G,EAAEqgI,KAAK,GAAGO,EAAE5gI,EAAEm7I,GAAG,KAAK,EAAEv+B,EAAE,EAAE,EAAEA,EAAEx2H,EAAE21J,IAAI/7I,EAAE4gI,GAAG+Z,GAAG/9B,EAAEx2H,EAAE,IAAI4xD,EAAEmjG,GAAG1vK,EAAEm1J,EAAEhkB,EAAEg+B,GAAG56I,EAAEm7I,GAAG9a,EAAEzjB,EAAE38G,EAAE+3C,EAAE,EAAE4kE,GAAGA,GAAGyjB,EAAEh/H,EAAEjb,EAAE,KAAK,EAAEib,IAAI,EAAEu7G,EAAE,EAAE,EAAEA,IAAI+9B,GAAGt4K,EAAE+V,EAAE,KAAK,IAAI,EAAEioJ,EAAEh/H,GAAG45I,GAAG54K,EAAE+V,EAAE,KAAK,KAAK6nB,EAAEogI,GAAG,EAAE8a,GAAGY,GAAGZ,GAAG95I,GAAGrB,EAAEqB,IAAI,EAAEpB,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAGv2H,EAAE,IAAIu2H,GAAGA,EAAEgkB,IAAIA,EAAEn1J,GAAG,EAAE2a,EAAE21J,GAAG31J,GAAGw0J,GAAGv5I,EAAEu5I,IAAIv0J,EAAE80J,IAAI,IAAI95I,EAAEA,IAAI,EAAEhb,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAG5kE,EAAE,IAAIA,EAAE4kE,EAAEnxI,EAAE4a,EAAEu2H,EAAE++B,GAAGjqK,EAAEkrI,EAAE3mE,EAAEmlG,GAAG,EAAEx+B,GAAGA,GAAGlrI,GAAGuuB,EAAE6gI,GAAG0a,GAAG,KAAK,EAAEv7I,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAGv2H,EAAE,EAAElN,EAAE4iK,GAAGJ,IAAIt1J,EAAE4Z,EAAEvuB,EAAE0U,EAAE,IAAI6Z,EAAEvuB,IAAI,EAAE2U,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIyjI,GAAG3mE,EAAExqE,GAAG6mE,EAAE,EAAEzkE,EAAE6D,EAAE7D,EAAEsL,EAAE,EAAEm5D,EAAEypG,GAAG31J,EAAE1U,GAAGkrI,EAAElrI,IAAI,EAAEyH,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAG5kE,EAAE,IAAIA,EAAE5xD,EAAE3a,EAAEiG,EAAEkrI,EAAE4+B,GAAG3tK,EAAE8tK,GAAGxiK,EAAEyjI,EAAE38G,EAAEw8D,EAAE,EAAEmgD,GAAGA,GAAGzjI,EAAEkN,EAAEo6I,EAAE,KAAK,EAAEp6I,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,EAAEvY,EAAEwY,EAAElN,EAAEm5D,EAAE,EAAEqpG,GAAGI,GAAGJ,GAAGt1J,GAAGD,EAAE6vD,IAAIA,EAAE5vD,IAAI,EAAElN,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAGx2H,EAAE3a,GAAGiG,EAAE,EAAE8pK,GAAGO,IAAIH,GAAGv1J,EAAEm1J,IAAIv7I,EAAE07I,IAAI,GAAGrpG,GAAGjsD,EAAEA,IAAI,EAAE4Z,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAG5kE,EAAE,IAAI/3C,EAAEx0B,EAAEmxI,EAAE89B,IAAIhpK,EAAEwkE,GAAG,EAAE0mE,GAAGA,GAAGzjI,EAAEyV,EAAE8xI,EAAE,KAAK,EAAE9xI,IAAI,EAAEguH,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,EAAEpyB,EAAE4iK,IAAIxwI,EAAE3c,EAAEzV,EAAEo3E,EAAE,GAAG2qF,IAAItsJ,EAAEA,IAAI,EAAE2hE,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAGx8G,EAAE,IAAIw8G,GAAGA,EAAEv7G,IAAIA,EAAE51B,GAAG,EAAE8kF,EAAEqsD,EAAEzjI,IAAI,GAAG+8D,EAAE/8D,EAAEyhK,GAAG,KAAK,EAAEh+B,EAAE,EAAE,EAAEA,EAAEtqE,EAAE5gE,EAAEqqK,GAAG7lG,EAAEwqF,EAAE9jB,EAAElrI,EAAE,IAAIgvJ,EAAE9jB,EAAEnxI,EAAE20B,EAAEw8G,EAAElrI,GAAGkrI,EAAErxG,IAAIA,EAAEgmH,GAAG,EAAE3U,EAAEhuH,EAAEinD,EAAE,EAAE+mE,GAAGA,EAAElrI,IAAI,EAAE65B,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAGx8G,EAAE,EAAEs6I,GAAG9rJ,EAAE0jD,EAAE5gE,EAAE,EAAEwpK,GAAGa,GAAGntJ,EAAEzV,GAAGinB,EAAExR,IAAI,EAAEld,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAErsD,GAAGhlD,EAAE9/B,GAAG,EAAEusE,EAAEppD,EAAEsnD,EAAEglG,GAAG,EAAExpK,EAAEqqK,GAAGntJ,EAAE0jD,GAAGjxC,EAAEzS,IAAI,EAAEsnD,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAG8jB,EAAE,IAAI9xI,EAAEnjB,EAAE0N,EAAE4lI,EAAEnC,GAAG1mE,EAAEC,GAAGoqF,EAAE,EAAE3jB,GAAGA,GAAGrsD,EAAEwuD,EAAE87B,GAAG,KAAK,EAAE97B,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAG7mE,EAAE,EAAEI,EAAEymE,GAAGmC,EAAExuD,EAAE05D,EAAE,KAAK,EAAEA,IAAI,EAAErN,EAAE,EAAE,EAAEA,EAAE7mE,EAAEgmG,GAAGh9B,EAAEo8B,GAAGv+B,EAAEgkB,EAAE,IAAIhkB,GAAGA,EAAEjpE,IAAIA,EAAEloE,GAAG,EAAEmxI,GAAGrsD,EAAExa,KAAK,GAAG6qF,EAAErwE,EAAEyqF,GAAG,KAAK,EAAEp+B,EAAE,EAAE,EAAEA,EAAEqN,EAAE8xB,GAAG5iK,GAAGo3E,EAAEqwE,GAAGhkB,EAAE1mE,EAAE,IAAI5D,EAAE4D,EAAEzqE,EAAEm1J,EAAEhkB,EAAE8jB,EAAEnwE,EAAEgwE,EAAExqF,EAAE6mE,EAAEzmE,EAAEH,EAAE,EAAEG,EAAEJ,EAAEgpE,EAAEl2I,EAAE,EAAE+zI,GAAGA,EAAE7mE,IAAI,EAAEgpE,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,EAAEilG,GAAGY,GAAGxb,GAAGxqF,EAAEgpE,EAAEhpE,GAAG58D,EAAE8wI,GAAG,IAAI15D,EAAEpa,IAAI,EAAEJ,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,IAAIipE,GAAGA,EAAEgkB,IAAIA,EAAEn1J,GAAG,EAAE6mE,EAAEypG,GAAG9xB,GAAG9wI,EAAEw6D,EAAE+sF,GAAGxqF,EAAEilG,IAAI,IAAIjlG,EAAE/8D,IAAI,EAAE+8D,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAGtqE,EAAE,IAAIqB,EAAEloE,EAAEszI,EAAEyhB,EAAE5jB,EAAE4jB,EAAE5sF,EAAE,EAAEgpE,GAAGA,GAAGqN,EAAE7zH,EAAE4jE,EAAE,KAAK,EAAE5jE,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,GAAG58G,EAAE,EAAE48G,GAAGzmE,EAAEkqF,EAAEpW,EAAE,KAAK,EAAEoW,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,EAAEyjB,EAAElqF,EAAEA,EAAEymE,EAAEqN,EAAE8xB,GAAG1b,EAAEkb,GAAG3+B,EAAE0jB,EAAE,IAAI1jB,GAAGA,EAAEnpE,IAAIA,EAAEhoE,GAAG,EAAEu0B,EAAE++G,EAAEA,EAAEnC,GAAG4jB,GAAGF,EAAErW,GAAG8wB,GAAG,KAAK,EAAEza,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,EAAE5iD,EAAEh6D,EAAE+7I,GAAGvb,EAAExmE,EAAEh6D,EAAE48G,EAAE,IAAI8jB,EAAE9jB,EAAEnxI,EAAE60J,EAAE1jB,EAAE2jB,EAAEtW,EAAEA,GAAGrN,EAAEyjB,IAAIA,EAAElO,GAAG,EAAEvV,EAAEzmE,EAAEmlG,GAAG,EAAE1+B,GAAGA,EAAEyjB,IAAI,EAAEpW,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAG0jB,EAAE,EAAEA,EAAEnqF,GAAGkqF,EAAEpW,GAAGjqH,EAAE,EAAEA,EAAE+7I,GAAGxb,EAAEpqF,GAAGkqF,EAAElqF,IAAI,EAAEkqF,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,GAAGnpE,EAAE,IAAImpE,EAAEmC,GAAG5oE,EAAE1qE,GAAG,EAAEmxI,GAAGnpE,EAAE+sF,EAAExgI,EAAE,KAAK,EAAEwgI,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAE/sF,EAAEw2E,EAAErN,EAAE5iD,EAAE+hF,GAAGtoG,EAAEumB,EAAE4iD,EAAE8jB,EAAE,IAAIjtF,EAAEhoE,EAAEszI,EAAEnwH,EAAE8xI,EAAEhvJ,EAAE6uJ,EAAEvgI,EAAE48G,EAAE3mE,EAAEw7E,EAAE,EAAE7U,GAAGA,GAAGlrI,GAAGsuB,EAAEjyB,GAAGF,EAAE,KAAK,EAAEmyB,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGhuH,EAAE,EAAEA,EAAEguH,EAAElrI,IAAI,GAAGukE,EAAEyqF,EAAEhvJ,EAAE,KAAK,EAAEkrI,EAAE,EAAE,EAAEA,EAAE58G,EAAE+7I,GAAGxb,EAAEtqF,EAAE2mE,EAAEzmE,EAAE,IAAIymE,GAAGA,EAAE1mE,IAAIA,EAAEzqE,GAAG,EAAEmxI,GAAGlrI,EAAEsuB,KAAK,GAAGm2C,EAAEzkE,EAAEyH,EAAE,KAAK,EAAEyjI,EAAE,EAAE,EAAEA,EAAE/uI,EAAEsL,EAAE4iK,GAAGrb,GAAGhvJ,EAAEykE,GAAGymE,EAAEmC,EAAE,IAAI5oE,EAAEymE,EAAE8jB,EAAE1gI,EAAEA,GAAG48G,EAAE3mE,IAAIA,EAAE4qF,GAAG,EAAEjkB,EAAEhuH,EAAE8sJ,GAAG,EAAE9+B,GAAGA,EAAE58G,IAAI,EAAEi2C,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,IAAImC,EAAEtzI,GAAG,EAAEwqE,EAAErnD,EAAEoR,EAAE7mB,EAAE,EAAE6mB,EAAE48G,EAAEhuH,IAAI,EAAEoR,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAEhuH,GAAGsnD,EAAEqlG,GAAGQ,GAAGrb,EAAE9xI,EAAEguH,EAAE1mE,EAAE,KAAKxkE,EAAE,EAAEkrI,GAAGlrI,EAAEjG,GAAG0qE,EAAE,EAAEh9D,EAAEyV,EAAE2xI,EAAEwb,GAAG5lG,EAAEvnD,EAAE/gB,GAAGA,EAAE+gB,IAAI,EAAEsnD,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAGmC,EAAE,IAAIA,EAAEtzI,EAAEmxI,EAAEx8G,EAAE+nH,EAAE,EAAEvL,GAAGA,GAAG1mE,EAAE4kG,MAAM,GAAG3kG,EAAED,EAAEwkG,GAAG,KAAK,EAAE99B,EAAE,EAAE,EAAEA,IAAIhuH,EAAE+kD,GAAG,EAAEvzC,EAAE81C,EAAEC,EAAE7D,EAAE,EAAElsD,EAAE21J,GAAG7lG,EAAEylG,IAAIhoG,EAAEuC,IAAI,EAAEC,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAIw2H,EAAEqN,GAAG/zE,EAAEzqE,GAAG,EAAEmxI,GAAGzmE,EAAEqqF,EAAEp6I,EAAE,KAAK,EAAEo6I,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAErqF,EAAE8zE,EAAE8xB,GAAG5lG,EAAE7D,EAAEsqE,EAAEhuH,EAAE,IAAI8xI,EAAE9xI,EAAEnjB,EAAE0qE,EAAEymE,EAAE89B,GAAGla,EAAE5jB,EAAEjpE,EAAE0nG,GAAG,EAAEz+B,GAAG4jB,EAAE70J,KAAK,GAAGy0B,EAAEogI,EAAEpgI,EAAE,KAAK,EAAEw8G,EAAE,EAAE,EAAEA,EAAE4jB,EAAEpgI,EAAEw8G,EAAEA,EAAEhuH,EAAE,EAAEwR,EAAEuzC,EAAEvzC,GAAGkyC,EAAE23E,GAAG,EAAEt2E,EAAEooG,GAAGpoG,EAAEvtD,GAAG6jI,EAAEt2E,IAAI,EAAE6sF,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,IAAI0mE,GAAG4jB,EAAE/0J,GAAG0qE,EAAE,EAAE6kG,GAAGpsJ,EAAE8rJ,GAAG/mG,EAAE,EAAEknG,GAAGkB,GAAGntJ,EAAE0jD,GAAG4D,EAAEtnD,IAAI,EAAE+kD,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAG8jB,EAAE,IAAIvqF,EAAE1qE,EAAEi1J,EAAE1mE,EAAE4iD,EAAErsD,EAAEoqF,GAAG,EAAE/9B,GAAGA,GAAGx2H,EAAE2vD,EAAEklG,GAAG,KAAK,EAAEllG,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,IAAIhuH,EAAE6kD,GAAG,EAAEnB,EAAEypG,IAAItoG,EAAEsC,EAAE3vD,EAAE4zE,EAAE,GAAGkhF,IAAInlG,EAAE3vD,IAAI,EAAEqtD,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,GAAGA,EAAEv2H,IAAIA,EAAE5a,GAAG,EAAEuuF,EAAEzJ,GAAGhlD,EAAE+mC,GAAGspG,GAAG,EAAEx1J,EAAE21J,GAAGrb,EAAEnwE,GAAGqsD,EAAErsD,IAAI,EAAEhlD,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAGhuH,EAAE,IAAI2hE,EAAE3hE,EAAEnjB,EAAE8/B,EAAEqxG,EAAE8jB,EAAEt6I,EAAEw2H,EAAE7mE,EAAEnnD,EAAE,EAAEguH,GAAGA,GAAGx2H,EAAEqtD,EAAErtD,EAAE,KAAK,EAAEqtD,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,IAAI89B,GAAGr4K,EAAE+V,EAAE,KAAK,IAAI,EAAE29D,EAAEtC,GAAG7kD,EAAEvsB,EAAE+V,EAAE,KAAK,IAAIgO,EAAE,EAAEA,EAAEw2H,EAAEnpE,IAAI,EAAErtD,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAEs+B,GAAGa,GAAGtoG,EAAEnB,EAAEsqE,EAAEv2H,EAAE,IAAIu2H,GAAGA,EAAErxG,IAAIA,EAAE9/B,GAAG,EAAEsvK,GAAGgB,GAAGrb,GAAGjtF,GAAGptD,EAAE60J,IAAIlhF,EAAE,IAAI4iD,EAAEnpE,IAAI,EAAEptD,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,IAAIlqE,EAAE5a,EAAE6mE,EAAEmB,EAAEumB,EAAE4iD,EAAE8jB,EAAE/sF,EAAEipE,EAAE6+B,IAAIlrF,EAAEtwD,GAAG,EAAE28G,GAAGA,GAAGnpE,GAAGE,EAAEgjF,GAAG6kB,GAAG,KAAK,EAAE7nG,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAGyjB,EAAE,EAAEC,EAAEyb,IAAItoG,EAAEE,EAAEF,EAAE6sF,EAAE,GAAG6a,IAAIl7I,EAAEwzC,IAAI,EAAE6sF,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,IAAIhkB,GAAGjpE,EAAEloE,GAAG41B,EAAE,EAAEu7G,GAAGyjB,EAAEC,KAAK,GAAGM,EAAEP,EAAEroF,EAAE,KAAK,EAAE4kE,EAAE,EAAE,EAAEA,EAAErsD,EAAEwrF,IAAI1b,EAAEO,GAAG4a,GAAG5+B,EAAErsD,EAAE,IAAIqqF,GAAG5iG,EAAEvsE,EAAE41B,EAAEu7G,EAAEgkB,EAAEjtF,EAAEwnG,GAAG7a,EAAE1jB,EAAE38G,EAAE+3C,EAAE,EAAE4kE,GAAGA,GAAG0jB,EAAE7sF,EAAE8c,EAAE,KAAK,EAAE9c,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,IAAI4+B,GAAGn5K,EAAE+V,EAAE,KAAK,IAAI,EAAEkoJ,EAAE7sF,GAAGE,EAAEtxE,EAAE+V,EAAE,KAAK,KAAK6nB,EAAEqgI,GAAG,EAAE6a,GAAGY,GAAGZ,GAAG1nG,GAAGuE,EAAE4oF,IAAIA,EAAEntF,IAAI,EAAExzC,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAGA,EAAEv7G,IAAIA,EAAE51B,GAAG,EAAE8kF,EAAEwrF,GAAGxrF,GAAGvY,EAAEvE,GAAGxzC,EAAEk7I,IAAI9a,EAAE,IAAI5sF,EAAEA,IAAI,EAAExzC,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAGg+B,GAAG,IAAIA,GAAGh+B,EAAEnxI,EAAEw0B,EAAE28G,EAAEA,EAAE58G,EAAEy8D,EAAE,EAAEmgD,GAAGA,GAAGyjB,EAAEpqF,EAAEwqF,EAAE,KAAK,EAAExqF,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAG38G,EAAE,EAAE28G,GAAG3mE,EAAEoqF,EAAE9vE,EAAE,KAAK,EAAE8vE,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,EAAEyjB,EAAEpqF,EAAEh2C,EAAE28G,EAAE58G,EAAE+7I,GAAG9lG,EAAEyqF,EAAE9jB,EAAE4jB,EAAE,IAAI5jB,GAAG4jB,EAAE/0J,GAAGuuF,EAAE,EAAE1nB,EAAE2D,EAAE3D,EAAEtyC,EAAE,EAAEg6D,EAAE+hF,GAAGxrF,EAAEta,GAAG2mE,EAAE3mE,IAAI,EAAEj2C,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGg+B,GAAG,IAAIn+E,EAAExmB,EAAExqE,EAAE8kF,EAAEqsD,EAAE8jB,EAAE1gI,EAAE48G,EAAE38G,EAAEy6I,GAAG,EAAE99B,GAAGA,GAAG58G,EAAEpR,EAAEyxI,EAAE,KAAK,EAAEzxI,IAAI,EAAEguH,EAAE,EAAE,EAAEA,GAAG3mE,EAAE,EAAEwqF,EAAExgI,EAAED,EAAEg6D,EAAE,EAAE4gF,GAAGmB,GAAGrb,EAAEzgI,GAAGg2C,EAAEh2C,IAAI,EAAED,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAG4jB,EAAE,IAAI5jB,GAAGA,EAAErsD,IAAIA,EAAE9kF,GAAG,EAAE40J,EAAEpgI,GAAGugI,EAAEoa,IAAItoG,EAAE,EAAEmqB,EAAEs/E,GAAG97I,EAAE+5D,GAAGh6D,EAAEC,IAAI,EAAEugI,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAGngD,EAAE,IAAI+jE,EAAE/0J,EAAEmxI,EAAEuL,GAAGloH,EAAE8+G,GAAG,EAAEnC,EAAEqN,IAAI33E,EAAEwoG,MAAM,GAAG9gF,EAAE1nB,EAAEiuF,EAAE,KAAK,EAAE3jB,EAAE,EAAE,EAAEA,GAAG,EAAEx8G,EAAEw8G,GAAGmC,EAAE3+G,EAAE45D,EAAE,KAAK,EAAE55D,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEtqE,EAAEypG,GAAGh9B,EAAEm8B,GAAGt+B,EAAErxG,EAAE,IAAIqxG,GAAGA,EAAEnpE,IAAIA,EAAEhoE,GAAG,EAAEmxI,GAAGrxG,EAAE+mC,KAAK,GAAG23E,EAAE1+G,EAAEysC,EAAE,KAAK,EAAE4kE,EAAE,EAAE,EAAEA,EAAErxG,EAAEtL,EAAEA,EAAE28G,EAAE5iD,EAAE+hF,GAAG9xB,EAAEsW,EAAEh1H,EAAEqxG,EAAE,IAAI2jB,EAAE3jB,EAAEnxI,EAAE8/B,EAAEqxG,EAAE8jB,EAAEpuF,EAAEsqE,EAAEx8G,EAAEg7I,GAAG,EAAEx+B,GAAGA,GAAGtqE,EAAEysE,EAAE+hB,EAAE,KAAK,EAAE/hB,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,EAAEA,EAAEqxG,GAAGmC,GAAG3+G,EAAEkyC,GAAG0nB,EAAE,KAAK,EAAE55D,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEs+B,GAAGa,GAAGrb,GAAGtgI,EAAE2+G,GAAGnC,EAAEnpE,EAAE,IAAImpE,EAAE38G,GAAGqyC,EAAE7mE,GAAG,EAAEusE,EAAEvE,EAAEw2E,EAAEixB,GAAG,EAAElhF,EAAE+hF,GAAGtoG,EAAEumB,GAAG+kD,EAAEtrE,IAAI,EAAEw2E,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAG2jB,EAAE,IAAI9sF,EAAEhoE,EAAEw0B,EAAEk2C,EAAEymE,EAAEzmE,EAAEs7E,EAAE,EAAE7U,EAAEx2H,GAAGrY,IAAI,GAAG2yJ,EAAE3yJ,EAAE8sK,GAAG,KAAK,EAAEj+B,EAAE,EAAE,EAAEA,GAAG,EAAEx2H,EAAEib,EAAEA,EAAEu7G,EAAE7mE,IAAI,GAAGI,EAAEJ,EAAE2qF,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,EAAE8jB,EAAEqb,GAAG5lG,EAAEglG,GAAG/0J,EAAEw2H,EAAE,IAAIA,EAAE/uI,GAAGkoE,EAAEtqE,GAAG,EAAE2a,EAAE6Z,EAAEA,EAAE28G,EAAEzjI,IAAI,GAAG8wI,EAAE9wI,EAAEunJ,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,EAAE/uI,EAAEsL,EAAE4iK,GAAG9xB,EAAE4wB,GAAGz0J,EAAEw2H,EAAE,IAAIx2H,EAAEw2H,EAAEnxI,EAAEmxI,EAAEv7G,EAAEs5I,GAAG,EAAE/9B,GAAGA,GAAGzjI,EAAEg9D,EAAE8kG,GAAG,KAAK,EAAE9kG,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,EAAEu0J,GAAGt5I,EAAExzB,EAAEsL,EAAE,EAAE8hK,GAAGc,GAAG16I,EAAEq/H,GAAGvqF,EAAE90C,IAAI,EAAEloB,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAG7mE,EAAE,IAAI6mE,EAAE38G,GAAG81C,EAAEtqE,GAAG,EAAEovK,GAAGx5I,EAAE4oH,EAAEgxB,GAAG,EAAE9hK,EAAE4iK,GAAG16I,EAAExzB,GAAGoyB,EAAEoB,IAAI,EAAE4oH,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAIib,EAAE51B,EAAEw+I,EAAE5jI,EAAEu2H,EAAEv2H,EAAEg1J,GAAG,EAAEz+B,EAAEgkB,IAAIx6I,EAAEza,KAAK,GAAGkC,EAAEuY,EAAE20J,GAAG,KAAK,EAAEn+B,EAAE,EAAE,EAAEA,GAAG,EAAElrI,EAAEqqK,IAAI31J,EAAEC,EAAEi6I,EAAEzyJ,EAAE,GAAG0tK,IAAIl1J,EAAED,IAAI,EAAEk6I,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAGlrI,EAAE,IAAIkrI,GAAGA,EAAE1mE,IAAIA,EAAEzqE,GAAG,EAAEi1J,EAAEzW,EAAE8xB,IAAIluK,EAAE+yJ,EAAElvJ,EAAEspK,GAAG,GAAGD,IAAIn+B,EAAElrI,IAAI,EAAE7D,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,GAAGqN,EAAE,IAAIsW,EAAEK,EAAEn1J,EAAE60J,EAAE1jB,EAAEA,EAAEv2H,EAAEo1J,GAAG,EAAE7+B,GAAGA,GAAGx2H,GAAG6jI,EAAE0M,GAAGvwI,EAAE,KAAK,EAAE6jI,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,EAAEA,EAAEv6I,EAAEq6I,EAAEt6I,EAAE,EAAE1U,EAAEqqK,GAAG11J,EAAE3U,GAAGu4I,EAAE5jI,IAAI,EAAED,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,IAAI0mE,GAAGA,EAAE0jB,IAAIA,EAAE70J,GAAG,EAAEsvK,GAAG10J,EAAE3U,EAAE7D,EAAE,EAAE6yJ,EAAEqb,GAAG11J,EAAEq6I,GAAGxqF,EAAE7vD,IAAI,EAAE3U,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAG2jB,EAAE,IAAIl6I,EAAE5a,EAAE80J,EAAEvmE,EAAEmhF,GAAGzpK,EAAEkrI,EAAE3mE,EAAEqlG,GAAG,EAAE1+B,GAAGA,GAAGlrI,EAAEygJ,KAAK,GAAGtkJ,EAAE6D,EAAE+uJ,EAAE,KAAK,EAAE7jB,EAAE,EAAE,EAAEA,IAAIx2H,EAAEqtD,GAAG,EAAEA,EAAEmpE,GAAGlrI,EAAE7D,KAAK,GAAGooE,EAAEvkE,EAAEsoF,EAAE,KAAK,EAAE4iD,EAAE,EAAE,EAAEA,EAAE/uI,EAAEkuK,GAAGZ,IAAIzpK,EAAEukE,GAAG2mE,EAAE0jB,EAAE,IAAI1jB,GAAGA,EAAE38G,IAAIA,EAAEx0B,GAAG,EAAEuuF,EAAE/jB,GAAGqqF,EAAEzyJ,GAAGgtK,GAAG,EAAEta,EAAEn6I,EAAE21J,GAAGxb,EAAEtqF,GAAG2mE,EAAE3mE,IAAI,EAAEqqF,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAIy0J,GAAG5kG,EAAExqE,EAAE60J,EAAE1jB,EAAEA,EAAEnpE,EAAEoC,EAAE,EAAE+mE,GAAGA,GAAGlrI,GAAG0U,EAAEmrI,GAAG7/I,EAAE,KAAK,EAAE0U,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAG3mE,EAAE,EAAEslG,GAAG9nG,EAAE8sF,EAAE7uJ,EAAE,EAAEypK,GAAGY,GAAGtoG,EAAE5lE,GAAGuY,EAAE6Z,IAAIA,EAAEwzC,IAAI,EAAE/hE,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAG,IAAIA,GAAG3mE,EAAExqE,GAAG60J,EAAE,EAAEA,EAAE7sF,GAAGrtD,EAAE+0J,IAAInhF,EAAE,EAAEumE,EAAEwb,GAAGtoG,EAAE8sF,GAAGn6I,EAAEqtD,IAAI,EAAErtD,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAGi+B,GAAG,IAAIpnG,EAAEhoE,EAAEuuF,EAAE7gF,EAAEyjI,EAAErxG,EAAEqoC,EAAE,EAAEroC,EAAEpyB,EAAEid,EAAEgK,EAAE,EAAEw8G,GAAGA,EAAEzjI,IAAI,EAAEinB,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,IAAIlrI,EAAE2vB,GAAG,EAAExzB,EAAEkuK,IAAI5iK,EAAEinB,EAAE45D,EAAE7gF,EAAE,GAAGyhK,IAAIv5I,EAAEloB,IAAI,EAAEoyB,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,IAAIqsD,GAAGA,EAAE1mE,IAAIA,EAAEzqE,GAAG,EAAE20B,EAAEw8G,GAAGrsD,GAAGnwD,EAAEvyB,GAAGktK,GAAG,KAAK,EAAE36I,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAE5iD,EAAEtoF,EAAEqqK,GAAG/hF,EAAEzJ,EAAEqsD,EAAElrI,EAAE,IAAImpK,GAAGj+B,EAAEnxI,EAAE8/B,EAAEqxG,EAAEA,EAAEv7G,EAAE20C,EAAE,EAAE4mE,GAAGA,GAAGlrI,EAAE7I,KAAK,GAAGsQ,EAAEzH,EAAEyH,EAAE,KAAK,EAAEyjI,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,EAAEA,EAAElK,EAAE24D,GAAGtoF,EAAEyH,GAAG,EAAE+8D,EAAE6lG,GAAG16I,EAAExzB,GAAG6D,EAAE2vB,IAAI,EAAE3vB,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,IAAI0mE,EAAEx8G,GAAGjnB,EAAE1N,GAAG,EAAEmxI,GAAGv7G,EAAEkvD,EAAEra,EAAE,KAAK,EAAEqa,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,EAAErsD,EAAElvD,EAAEjB,EAAEw8G,EAAEi+B,GAAGkB,GAAG16I,EAAE24D,EAAE4iD,EAAEi+B,GAAG,IAAIx5I,EAAE51B,EAAEoC,EAAEwY,EAAEo6I,EAAEC,EAAE9jB,EAAEzmE,EAAEulG,GAAG,EAAE9+B,GAAGA,GAAG5iD,EAAE6mE,KAAK,GAAGH,EAAE1mE,EAAE2gF,GAAG,KAAK,EAAE/9B,EAAE,EAAE,EAAEA,GAAGv2H,EAAE,EAAEu2H,GAAGzmE,EAAEsqF,GAAGzmE,EAAE0mE,GAAG,KAAK,EAAE1mE,IAAI,EAAE4iD,EAAE,EAAE,EAAEA,EAAE5iD,EAAE7jB,EAAE9vD,EAAEu2H,EAAE8jB,EAAEqb,GAAG5lG,EAAE+kG,GAAGt+B,EAAEtqE,EAAE,IAAIsqE,EAAE58G,GAAGm2C,EAAE1qE,GAAG,EAAEu0B,EAAE48G,GAAGtqE,EAAE+tF,EAAEK,EAAE,KAAK,EAAEL,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,EAAEtqE,EAAEypG,GAAGtb,GAAGJ,EAAE/tF,GAAGsqE,EAAE/uI,EAAE,IAAI4yJ,EAAE7jB,EAAEnxI,EAAEoC,EAAE+uI,EAAEA,EAAEv2H,EAAEm1J,GAAG,EAAE5+B,GAAGA,GAAG5iD,EAAErmB,EAAEqmB,EAAE,KAAK,EAAErmB,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAG/uI,EAAE,EAAEA,EAAEwY,GAAGs0J,GAAGroG,IAAIA,EAAE0nB,GAAG,EAAE+gF,GAAGgB,GAAG11J,EAAEq6I,GAAG1mE,EAAE7jB,IAAIA,EAAE9vD,IAAI,EAAEisD,IAAI,EAAEsqE,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAE58G,GAAGsyC,EAAE7mE,GAAG,EAAEmxI,GAAGv2H,EAAEg6I,EAAE0a,GAAG,KAAK,EAAE1a,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,EAAEyjB,EAAEh6I,EAAEs0J,GAAGoB,GAAG11J,EAAEs0J,GAAG/9B,EAAE6jB,EAAE,IAAIp6I,EAAE5a,EAAEuuF,EAAE4iD,EAAEg+B,GAAGn+E,EAAEmgD,EAAEqN,GAAGjqH,EAAEwgI,GAAG,EAAE5jB,GAAGA,GAAGngD,EAAEmkE,EAAEnkE,EAAE,KAAK,EAAEmkE,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,IAAI6jB,EAAEya,GAAG74K,EAAE+V,EAAE,KAAK,IAAI,EAAEwoJ,EAAEhkB,GAAG4jB,GAAGE,EAAEr+J,EAAE+V,EAAE,KAAK,KAAKwoJ,EAAEnkE,GAAG,KAAK,EAAEmkE,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,EAAEqN,EAAE8xB,GAAGvb,EAAEya,GAAGr+B,EAAE7mE,EAAE,IAAI6mE,GAAGA,EAAEmC,IAAIA,EAAEtzI,GAAG,EAAEgxF,EAAE1mB,EAAEk0E,EAAEjyE,EAAE,EAAEyoF,EAAEzgI,EAAE+7I,GAAGnB,GAAG7kG,GAAG6mE,EAAE7mE,IAAI,EAAEk0E,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAG58G,EAAE,IAAIg4C,EAAEijG,GAAGxvK,EAAEsqE,EAAE6mE,EAAEg+B,GAAGI,GAAG34K,EAAE+V,EAAE,KAAK,GAAG4iK,GAAGv+E,EAAEA,EAAEwtD,EAAErN,EAAEgkB,EAAE5oF,EAAE,EAAE4kE,GAAGA,GAAG58G,EAAEA,EAAEwgI,EAAE,KAAK,EAAEA,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAGg+B,GAAG,EAAEh+B,GAAG4jB,GAAGvW,EAAE5nJ,EAAE+V,EAAE,KAAK,IAAI4nB,EAAE,KAAK,EAAEA,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAE58G,EAAE++G,EAAEA,EAAEnC,EAAEq+B,GAAGc,GAAGt/E,EAAE+jE,EAAExgI,EAAE48G,EAAE,IAAIA,GAAGgkB,EAAEn1J,GAAGsqE,EAAE,EAAE0qF,EAAEsb,IAAIhmG,EAAE/1C,EAAEg7I,IAAIv+E,EAAEw+E,IAAI,GAAGxa,GAAGzgI,EAAEA,IAAI,EAAEy8D,IAAI,EAAEmgD,EAAE,EAAE,EAAEA,GAAG5kE,EAAE,IAAIA,EAAE4kE,EAAEnxI,EAAEgxF,EAAEmgD,EAAEo+B,GAAG9kG,EAAE0mE,EAAE38G,EAAEwxH,EAAE,EAAE7U,GAAGA,GAAG1mE,EAAEnoE,EAAEwtK,GAAG,KAAK,EAAExtK,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,GAAGngD,EAAE,EAAEtjF,EAAE4iK,GAAGf,IAAIv+E,EAAE1uF,EAAEmoE,EAAEuqF,EAAE,IAAI1yJ,EAAEA,IAAI,EAAEmoE,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIyjI,GAAG1mE,EAAEzqE,GAAGuuF,EAAE,EAAEA,EAAE/5D,EAAEogI,EAAElnJ,EAAE,EAAEs4I,EAAEsqB,GAAGtb,EAAExgI,EAAE+3C,GAAG4kE,EAAE38G,IAAI,EAAE9mB,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAG,IAAI2+B,GAAGt7I,EAAEx0B,EAAE40J,EAAEzjB,EAAE6jB,EAAEzmE,EAAEhiB,EAAE7+D,EAAEyjI,EAAE7uI,EAAEioE,EAAE,EAAE4mE,GAAGA,GAAGzjI,EAAEtQ,KAAK,GAAGmxF,EAAE7gF,EAAEsjF,EAAE,KAAK,EAAEmgD,EAAE,EAAE,EAAEA,GAAG38G,EAAE,EAAE+3C,EAAE+jG,GAAG/jG,GAAG/3C,EAAElyB,GAAGoL,EAAE6gF,GAAGy3D,EAAE,IAAIt4I,EAAEA,IAAI,EAAE8mB,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,IAAI0mE,GAAGA,EAAEyjB,IAAIA,EAAE50J,GAAG,EAAEuuF,EAAEjsF,EAAE0yJ,GAAGvqF,EAAE8B,GAAG,EAAEyoF,EAAEsb,GAAGhuK,EAAE0jJ,GAAGh1D,EAAE1uF,IAAI,EAAEmoE,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAG2+B,GAAG,IAAIrlG,EAAEzqE,EAAEsC,EAAE0lE,EAAEunG,GAAGza,EAAE3jB,EAAEnpE,EAAEioG,GAAG,EAAE9+B,EAAElrI,GAAGmvJ,IAAI,GAAGN,EAAEM,EAAEN,EAAE,KAAK,EAAE3jB,EAAE,EAAE,EAAEA,GAAG,EAAEtqE,EAAEypG,IAAItqB,EAAEh+E,EAAEloC,EAAEg1H,EAAE,GAAGwa,IAAItnG,EAAEA,IAAI,EAAEloC,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAGtqE,EAAE,IAAIsqE,EAAE58G,GAAGuL,EAAE9/B,GAAG,EAAEmxI,GAAGlrI,EAAEqkE,EAAEzD,EAAE,KAAK,EAAEyD,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,EAAE7mE,EAAErkE,EAAEsuB,EAAEjyB,EAAEA,EAAE6uI,EAAE2jB,EAAE7uJ,EAAEqqK,GAAGf,GAAGtpK,EAAEsuB,EAAE48G,EAAE,IAAIm+B,GAAGn+B,EAAEnxI,EAAEu0B,EAAE48G,EAAEo+B,GAAGtpK,EAAE6pK,GAAGjpG,EAAEsqE,EAAEnpE,EAAE4nG,GAAG,EAAEz+B,GAAGA,GAAGlrI,EAAE/F,KAAK,GAAG2mE,EAAE5gE,EAAE+/I,EAAE,KAAK,EAAE7U,EAAE,EAAE,EAAEA,GAAG58G,EAAE,EAAEugI,EAAE9sF,EAAE8sF,GAAG7uJ,EAAE4gE,GAAG,EAAEipG,GAAGQ,GAAGR,GAAG9nG,GAAGzzC,EAAEyzC,IAAI,EAAE/hE,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,EAAE7uI,GAAGw9B,EAAE9/B,GAAG,EAAEmxI,GAAGnpE,EAAEsC,EAAEwlG,GAAG,KAAK,EAAExlG,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,EAAE7mE,EAAEtC,EAAE/hE,EAAEkrI,EAAEtqE,EAAEypG,GAAGf,GAAGvnG,EAAEmpE,EAAEm+B,GAAG,IAAItnG,EAAEhoE,EAAEsC,EAAEszB,EAAEu7G,EAAEv7G,EAAEq5I,GAAG,EAAE99B,GAAGA,GAAG6U,EAAE7iI,EAAEisJ,GAAG,KAAK,EAAEjsJ,IAAI,EAAEguH,EAAE,EAAE,EAAEA,GAAGzmE,EAAE,EAAEymE,GAAGhuH,EAAE/gB,EAAE4jJ,EAAE,KAAK,EAAE5jJ,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,EAAE/uI,EAAE+gB,EAAEA,EAAEguH,EAAE6U,EAAEsqB,GAAGluK,EAAEotK,GAAGr+B,EAAEgkB,EAAE,IAAIhkB,EAAEx2H,GAAGib,EAAE51B,GAAG,EAAE2a,EAAErY,EAAEA,EAAE6uI,GAAGzmE,EAAEmqF,EAAE7O,EAAE,KAAK,EAAE6O,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,EAAEx2H,EAAEk6I,EAAEyb,GAAG5lG,EAAE0kG,GAAGz0J,EAAEw2H,EAAE,IAAIi+B,GAAGj+B,EAAEnxI,EAAEm1J,EAAEhkB,EAAEA,EAAEhuH,EAAEglD,EAAE,EAAEgpE,GAAGA,GAAG0jB,EAAElqI,EAAEvoB,EAAE,KAAK,EAAEuoB,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,EAAE/yJ,EAAEuoB,EAAEhQ,GAAGwI,EAAE0xI,GAAG,EAAE7O,EAAEsqB,GAAG3lJ,EAAEq7H,GAAG6O,EAAEj/H,IAAIA,EAAEzS,IAAI,EAAEwH,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAE7uI,GAAG6yJ,EAAEn1J,GAAG,EAAEmoE,EAAEx9C,EAAE+/C,EAAEs7E,EAAE,EAAE6O,EAAEyb,GAAG3lJ,EAAEhQ,GAAGwI,EAAEwH,IAAI,EAAE+/C,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGi+B,GAAG,IAAI9sK,EAAEtC,EAAE2qB,EAAE/P,EAAEu2H,EAAEv2H,EAAEm1J,GAAG,EAAE5+B,GAAGA,GAAGzmE,EAAExC,EAAEgnG,GAAG,KAAK,EAAEhnG,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAGmC,EAAE,EAAEnC,GAAGjpE,EAAEwC,EAAEqqF,EAAE,KAAK,EAAEA,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAE7sF,EAAEA,EAAEipE,EAAE3mE,EAAE8lG,GAAGvb,EAAE2a,GAAGv+B,EAAE3mE,EAAE,IAAI2mE,EAAEx8G,GAAG/Z,EAAE5a,GAAG,EAAE2a,EAAEgQ,EAAEA,EAAEwmH,EAAErsD,IAAI,GAAGwuD,EAAExuD,EAAEta,EAAE,KAAK,EAAE2mE,EAAE,EAAE,EAAEA,EAAEx8G,EAAEmwD,EAAEwrF,GAAGh9B,EAAE47B,GAAGv0J,EAAEw2H,EAAE,IAAIx2H,EAAEw2H,EAAEnxI,EAAEmxI,EAAEjpE,EAAEunG,GAAG,EAAEt+B,GAAGA,GAAG4jB,EAAEA,EAAEE,EAAE,KAAK,EAAEA,IAAI,EAAE9jB,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,EAAE+vD,EAAExC,EAAE6sF,EAAEjwE,EAAE,EAAEta,EAAE8lG,GAAGpoG,EAAEsC,GAAGsa,EAAElqE,IAAIA,EAAEstD,IAAI,EAAE6sF,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAExmH,GAAGoqI,EAAE/0J,GAAG,EAAE2a,EAAE21J,IAAIxrF,EAAE5c,EAAEorE,EAAE9oE,EAAE,GAAG71C,GAAGuzC,EAAEA,IAAI,EAAEorE,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAIgQ,EAAE3qB,EAAEszI,EAAEtrE,EAAEitF,EAAEzqF,EAAE2mE,EAAEnpE,EAAEt6D,EAAE,EAAEyjI,GAAG3mE,EAAEh2C,EAAEqyC,EAAE,KAAK,EAAEryC,IAAI,EAAE28G,EAAE,EAAE,EAAEA,EAAE38G,EAAEg2C,EAAE2mE,EAAEA,GAAGx8G,EAAE/9B,EAAE+V,EAAE,KAAK,IAAI,EAAEgoB,EAAE27I,GAAGrb,GAAGzqF,EAAExC,EAAEwC,EAAE5zE,EAAE+V,EAAE,KAAK,GAAG,IAAIq7D,EAAEA,IAAI,EAAExzC,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAG4jB,EAAE,IAAI5jB,GAAGA,EAAEhuH,IAAIA,EAAEnjB,GAAG,EAAE0N,EAAE4lI,EAAEA,EAAEnC,GAAG38G,GAAGugI,EAAEpgI,GAAGwzC,EAAE,KAAK,EAAE4sF,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAEzjI,EAAE4iK,GAAG97I,EAAEqyC,EAAEn5D,EAAEyjI,EAAE,IAAI8jB,EAAE9jB,EAAEnxI,EAAE+0J,EAAE5jB,EAAEA,EAAEnpE,EAAEmnG,GAAG,EAAEh+B,GAAGA,GAAG3mE,EAAEA,EAAEg0E,EAAE,KAAK,EAAEA,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAG4jB,EAAE,EAAEqa,GAAGkB,IAAInoG,EAAEH,EAAEwC,EAAE98D,EAAE,GAAGinB,GAAGqzC,EAAEA,IAAI,EAAEwC,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAGhuH,EAAE,IAAIguH,EAAEmC,GAAGyhB,EAAE/0J,GAAG,EAAEszI,EAAEnwH,EAAEqR,EAAE46I,GAAG,EAAEvoG,EAAEypG,GAAGntJ,EAAEzV,GAAG8mB,EAAErR,IAAI,EAAEqR,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAG8jB,EAAE,IAAI9xI,EAAEnjB,EAAE0N,EAAEmnJ,EAAErW,EAAE15D,EAAEqsD,EAAE58G,EAAEo7I,GAAG,EAAEx+B,GAAGA,GAAGrsD,GAAG+vE,EAAEQ,GAAGP,EAAE,KAAK,EAAED,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,IAAI3mE,EAAEloE,GAAG,EAAEsyJ,EAAE0b,IAAI37I,EAAEkgI,EAAEnnJ,EAAEo3E,EAAE,GAAGvY,GAAGjqE,EAAEwiF,IAAI,EAAEnwD,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAGyjB,EAAE,IAAIzjB,GAAGA,EAAEjpE,IAAIA,EAAEloE,GAAG,EAAEu0B,EAAEi2C,EAAEA,EAAE2mE,GAAGrsD,EAAE8vE,KAAK,GAAGC,EAAErW,EAAE15D,EAAE,KAAK,EAAEqsD,EAAE,EAAE,EAAEA,EAAE58G,EAAEiqH,EAAE8xB,GAAG5iK,EAAEmnJ,EAAEtgI,EAAE48G,EAAE,IAAIzjI,EAAEyjI,EAAEnxI,EAAEw+I,EAAEoW,EAAEzjB,EAAE7uI,EAAEo6I,EAAE,EAAEvL,GAAGA,GAAGyjB,EAAEya,MAAM,GAAG16I,EAAEigI,EAAEjgI,EAAE,KAAK,EAAEw8G,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,EAAEinB,EAAE27I,GAAG9xB,GAAG15D,EAAExiF,EAAEqyB,EAAEJ,EAAE,IAAIqgI,EAAE9vE,IAAI,EAAEnwD,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,IAAIipE,EAAE3mE,GAAGg0E,EAAEx+I,GAAG,EAAEi1J,EAAEqb,IAAI9lG,EAAEloE,EAAEuyJ,EAAElgI,EAAE,GAAGJ,GAAGsgI,EAAErqF,IAAI,EAAEqqF,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIpL,EAAEtC,EAAE80J,EAAEn6I,EAAEw2H,EAAEv7G,EAAEo6I,GAAG,EAAE7+B,GAAG58G,EAAE22H,KAAK,GAAGvwI,EAAE4Z,EAAEnyB,EAAE,KAAK,EAAE+uI,EAAE,EAAE,EAAEA,EAAE58G,EAAE5Z,EAAEw2H,EAAEA,GAAGjpE,EAAEv9C,GAAG,EAAEjd,EAAE4iK,IAAI31J,EAAEib,EAAEk/H,EAAEn6I,EAAE,GAAGm1J,IAAInlJ,EAAEhQ,IAAI,EAAE4Z,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,EAAEngD,GAAGp7D,EAAE51B,GAAG,EAAE8/B,EAAEooC,EAAEA,EAAEipE,GAAG58G,EAAEg6D,EAAE7gF,EAAE,KAAK,EAAE6gF,IAAI,EAAE4iD,EAAE,EAAE,EAAEA,EAAE/uI,EAAEkuK,GAAGxb,EAAEvgI,EAAEuL,EAAEqxG,EAAE,IAAIngD,EAAEmgD,EAAEnxI,EAAE8/B,EAAEqxG,EAAE5iD,EAAE7gF,EAAEA,GAAGyjI,EAAEx2H,IAAIA,EAAE+rI,GAAG,EAAEvV,EAAExmH,EAAEklJ,GAAG,EAAE1+B,GAAGA,EAAEx2H,IAAI,EAAEjN,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,EAAEA,EAAEqxG,GAAGx2H,EAAEjN,KAAK,GAAGid,EAAEhQ,EAAEvY,EAAE,KAAK,EAAE+uI,EAAE,EAAE,EAAEA,EAAE2jB,EAAEwb,GAAG/hF,EAAE5jE,EAAEwmH,EAAEv7G,EAAE,IAAIu7G,EAAEjpE,GAAGvtD,EAAE3a,GAAG,EAAEuuF,EAAE+hF,IAAI16I,EAAErB,EAAEugI,EAAE,GAAG1yJ,GAAG+uI,EAAEv7G,IAAI,EAAErB,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGngD,EAAE,IAAI9oB,EAAEloE,EAAE0N,EAAEyjI,EAAEA,EAAE/mE,GAAG71C,EAAEk2C,GAAG,EAAE0mE,EAAEv2H,IAAIxY,EAAE0jJ,KAAK,GAAG90D,EAAE5uF,EAAE4yJ,EAAE,KAAK,EAAE7jB,EAAE,EAAE,EAAEA,GAAG,EAAE/uI,EAAEqoE,EAAEC,EAAEsmB,EAAE,EAAEA,EAAEs/E,GAAG7lG,EAAEu7E,GAAGprI,EAAE6vD,IAAI,EAAEC,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,IAAIhkB,EAAElrI,GAAGwkE,EAAEzqE,GAAG,EAAEm1J,EAAEhkB,EAAE7mE,IAAI,GAAGI,EAAEJ,EAAE0mB,EAAE,KAAK,EAAEmgD,EAAE,EAAE,EAAEA,EAAE6U,EAAE7U,EAAEm/B,GAAG5lG,EAAEsqF,EAAE7jB,EAAE58G,EAAE,IAAI+1C,EAAE6mE,EAAE58G,EAAE48G,EAAE/uI,EAAE,EAAE+uI,GAAGlrI,EAAEjG,GAAG4a,EAAE,EAAEu2H,GAAGA,EAAE58G,IAAI,EAAE+1C,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,IAAI+9B,GAAGt4K,EAAE+V,EAAE,KAAK,IAAI,EAAEwkI,GAAGv2H,EAAE2Z,EAAE39B,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAE4nB,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAE58G,EAAEk2C,EAAEA,EAAE0mE,EAAE+9B,GAAGoB,GAAG11J,EAAEo2E,EAAEz8D,EAAE48G,EAAE,IAAIA,EAAEgkB,GAAG7qF,EAAEtqE,GAAG,EAAEmxI,GAAG58G,EAAEm2C,EAAEwkG,GAAG,KAAK,EAAExkG,IAAI,EAAEymE,EAAE,EAAE,EAAEA,EAAEzmE,EAAEn2C,EAAE4gI,EAAEhkB,EAAElrI,EAAEqqK,GAAGtqB,EAAEzxH,EAAE48G,EAAElrI,EAAE,IAAIsuB,EAAE48G,EAAEnxI,EAAEoC,EAAEwzB,EAAEowH,EAAErxH,EAAEw8G,EAAEnpE,EAAEuC,EAAE,EAAE4mE,GAAGA,GAAGv7G,EAAEx4B,KAAK,GAAGu3B,EAAEiB,EAAEuyC,EAAE,KAAK,EAAEgpE,EAAE,EAAE,EAAEA,GAAG58G,EAAE,EAAEyxH,EAAEsqB,GAAGtqB,GAAGh1D,EAAEhpB,GAAGpyC,EAAEjB,GAAG1uB,EAAE,IAAI+hE,EAAEA,IAAI,EAAEpyC,IAAI,EAAEu7G,EAAE,EAAE,EAAEA,GAAGqN,EAAE,IAAIrN,GAAGv7G,EAAE51B,GAAG0N,EAAE,EAAE8wI,EAAErN,GAAGx8G,EAAEvyB,GAAGo8I,EAAEwH,GAAG,KAAK,EAAExH,IAAI,EAAErN,EAAE,EAAE,EAAEA,EAAElrI,EAAEqqK,GAAGrqK,EAAE0uB,EAAEJ,EAAE48G,EAAE,IAAI/uI,EAAE+uI,EAAEnxI,EAAEu0B,EAAE48G,EAAE5kE,EAAEtmE,EAAEkrI,EAAEnpE,EAAE00E,EAAE,EAAEvL,GAAGA,GAAGlrI,EAAEopK,MAAM,GAAG3hK,EAAEzH,EAAE+qF,EAAE,KAAK,EAAEmgD,EAAE,EAAE,EAAEA,GAAG58G,EAAE,EAAEyxH,EAAEsqB,IAAI/7I,EAAEyzC,EAAEuE,GAAGtmE,EAAEyH,GAAG,GAAGs4I,GAAG//I,EAAEsuB,IAAI,EAAEtuB,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAEqN,GAAG9wI,EAAE1N,GAAG,EAAEmxI,GAAGnpE,EAAErzC,EAAEqxH,EAAE,KAAK,EAAErxH,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEx8G,EAAEqzC,EAAEw2E,EAAErN,EAAEnpE,EAAEsoG,GAAG/jG,EAAEvE,EAAEmpE,EAAE/uI,EAAE,IAAIwzB,EAAE51B,EAAEoC,EAAE+gB,EAAEopD,EAAE1F,EAAEsqE,EAAEhuH,EAAEinD,EAAE,EAAE+mE,EAAEyjB,IAAI/tF,EAAEi/E,KAAK,GAAG90D,EAAEzkB,EAAE1F,EAAE,KAAK,EAAEsqE,EAAE,EAAE,EAAEA,GAAG,EAAEx2H,EAAE21J,IAAIzpG,EAAE1jD,EAAE2hE,EAAEkM,EAAE,GAAG8jE,GAAG3xI,EAAEA,IAAI,EAAE2hE,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAIw2H,EAAEgkB,GAAGrwE,EAAE9kF,GAAG,EAAEm1J,EAAEhkB,EAAEzmE,IAAI,GAAGkqF,EAAElqF,EAAE/vD,EAAE,KAAK,EAAEw2H,EAAE,EAAE,EAAEA,EAAEngD,EAAE5uF,EAAEkuK,GAAG/jG,GAAG7B,EAAEkqF,GAAGzjB,EAAE/uI,EAAE,IAAI+lE,EAAEgpE,EAAEnxI,EAAE40J,EAAEzjB,EAAE5kE,EAAEnqE,EAAE0yJ,EAAEn6I,EAAEw2H,EAAEhuH,EAAE6sJ,GAAG,EAAE7+B,GAAGA,GAAGx2H,EAAEuwI,KAAK,GAAG9oJ,EAAEuY,EAAEksD,EAAE,KAAK,EAAEsqE,EAAE,EAAE,EAAEA,GAAGyjB,EAAE,EAAE5jE,EAAE7tE,EAAE6tE,GAAGr2E,EAAEvY,GAAG,EAAE0yJ,EAAEwb,GAAGxb,EAAE3xI,GAAGyxI,EAAE9vE,IAAIA,EAAE3hE,IAAI,EAAExI,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEgkB,GAAGP,EAAE50J,GAAG,EAAEmxI,GAAGhuH,EAAEunD,EAAEoqF,EAAE,KAAK,EAAEpqF,IAAI,EAAEymE,EAAE,EAAE,EAAEA,EAAEzmE,EAAEvnD,EAAEgyI,EAAEhkB,EAAEtqE,EAAEypG,GAAG/jG,EAAEppD,EAAEguH,EAAEhpE,EAAE,IAAIhlD,EAAEnjB,EAAEusE,EAAE0oF,EAAE9jB,EAAE0+B,IAAIl1J,EAAErY,GAAG,EAAE6uI,EAAErxG,IAAI19B,EAAEskJ,KAAK,GAAGuO,EAAE7yJ,EAAE6yJ,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,GAAG,EAAE/uI,EAAEkuK,IAAIxwI,EAAEx9B,EAAEqoB,EAAEsqI,EAAE,GAAGia,IAAI5sK,EAAEqoB,IAAI,EAAEmV,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG7mE,EAAE,IAAI6mE,EAAE38G,GAAG7J,EAAE3qB,GAAG,EAAEmxI,GAAG7mE,EAAEgpE,EAAElxI,EAAE,KAAK,EAAEkxI,IAAI,EAAEnC,EAAE,EAAE,EAAEA,EAAEmC,EAAEhpE,EAAE91C,EAAE28G,EAAEA,EAAEm/B,GAAG/jG,EAAEjC,EAAE6mE,EAAEx2H,EAAE,IAAIwtD,EAAEvxE,EAAE+V,EAAE,KAAK,GAAG4/D,EAAE4kE,EAAEx2H,EAAEmlB,EAAEA,EAAEqxG,EAAEx2H,EAAEA,EAAEw2H,EAAE,EAAEA,GAAG7mE,EAAEtqE,GAAGsC,EAAE,EAAE6uI,GAAGA,EAAEx2H,IAAI,EAAEmlB,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAGhpE,EAAE,EAAExtD,EAAEw2H,GAAG7uI,EAAEqY,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEgO,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAEhpE,EAAEmoG,IAAIxwI,EAAEx9B,GAAGF,EAAE+uI,EAAExmH,EAAE,IAAIwmH,EAAE38G,GAAGpyB,EAAEpC,GAAG,EAAEi1J,EAAE3yJ,EAAEgxI,EAAEnrE,EAAE,EAAEmC,EAAEgmG,GAAG/jG,EAAEjqE,GAAGqoB,EAAEroB,IAAI,EAAEgxI,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAG7mE,EAAE,IAAIhoE,EAAEtC,EAAEszI,EAAEprE,EAAEqE,EAAEgiB,EAAE4iD,EAAEjpE,EAAEuC,EAAE,EAAE0mE,GAAGA,GAAG38G,EAAE5Z,EAAE2zE,EAAE,KAAK,EAAE3zE,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,IAAI+9B,GAAGt4K,EAAE+V,EAAE,KAAK,IAAI,EAAEooJ,EAAEub,IAAI/hF,EAAErmB,GAAGttD,EAAE4Z,GAAG59B,EAAE+V,EAAE,KAAK,GAAG,GAAGyiK,IAAIlnG,EAAEA,IAAI,EAAEttD,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAG4jB,EAAE,IAAI5jB,EAAE0jB,GAAGj6I,EAAE5a,GAAG,EAAE60J,EAAEvhB,EAAEA,EAAEnC,EAAE3mE,IAAI,GAAGC,EAAED,EAAEuqF,EAAE,KAAK,EAAE5jB,EAAE,EAAE,EAAEA,EAAE0jB,EAAErqF,EAAE8lG,GAAG/jG,EAAE9B,EAAEoqF,EAAE1jB,EAAE,IAAIi+B,GAAGj+B,EAAEnxI,EAAEw0B,EAAE28G,EAAE5kE,EAAEwoF,EAAE5jB,EAAEjpE,EAAE0nG,GAAG,EAAEz+B,GAAGA,GAAG3mE,GAAGuqF,EAAE70J,GAAGquF,EAAE,KAAK,EAAEwmE,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAG38G,EAAE,EAAE06I,GAAGhnG,EAAE2sF,EAAErqF,EAAE,EAAEA,EAAE8lG,GAAG/jG,EAAErE,GAAG1zC,EAAE5Z,IAAIA,EAAEstD,IAAI,EAAEsC,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEmC,GAAG9+G,EAAEx0B,GAAG,EAAEmxI,GAAGjpE,EAAEuC,EAAED,EAAE,KAAK,EAAEC,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAE1mE,EAAEvC,EAAEorE,EAAEnC,EAAE5iD,EAAE+hF,GAAGpoG,EAAE2sF,EAAE1jB,EAAEi+B,GAAG,IAAIlnG,EAAEloE,EAAE+0J,EAAE5xI,EAAEopD,EAAE/B,EAAE2mE,EAAEhuH,EAAEld,EAAE,EAAEkrI,GAAGA,GAAG3mE,EAAEj2C,EAAEsyC,EAAE,KAAK,EAAEtyC,IAAI,EAAE48G,EAAE,EAAE,EAAEA,IAAI0jB,EAAEj+J,EAAE+V,EAAE,KAAK,IAAI,EAAE4nB,EAAE+7I,GAAG/jG,GAAGsoF,EAAE1xI,EAAEqnD,EAAE5zE,EAAE+V,EAAE,KAAK,GAAG,IAAIwW,EAAEA,IAAI,EAAEqnD,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAG38G,EAAE,IAAI28G,GAAGA,EAAExmH,IAAIA,EAAE3qB,GAAG,EAAEiG,EAAE8uJ,EAAEA,EAAE5jB,EAAE58G,IAAI,GAAGC,EAAED,EAAE0gI,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,EAAElrI,EAAEqqK,GAAG97I,EAAEqyC,EAAE5gE,EAAEkrI,EAAE,IAAI8jB,EAAE9jB,EAAEnxI,EAAEwqE,EAAE2mE,EAAEtqE,EAAEtyC,EAAEA,GAAG48G,EAAE0jB,IAAIA,EAAEQ,GAAG,EAAElkB,EAAEhuH,EAAEwsJ,GAAG,EAAEx+B,GAAGA,EAAE58G,IAAI,EAAEsgI,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAG3mE,EAAE,EAAE4kG,GAAGjsJ,EAAEoR,EAAEtuB,EAAE,EAAEgpK,GAAGqB,GAAGzpG,EAAE1jD,GAAGqnD,EAAErnD,IAAI,EAAEoR,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGxmH,EAAE,IAAIwmH,EAAE4jB,GAAGF,EAAE70J,GAAG,EAAE+0J,EAAE5jB,GAAGxmH,EAAE6J,EAAEy6I,GAAG,KAAK,EAAEz6I,IAAI,EAAE28G,EAAE,EAAE,EAAEA,EAAEtqE,EAAEypG,IAAI97I,EAAE7J,GAAG1kB,EAAEkrI,EAAE8jB,EAAE,IAAItqI,EAAE3qB,EAAEi1J,EAAE3qF,EAAE6mE,EAAErsD,EAAEmrF,GAAG,EAAEnrF,EAAEvwD,GAAG+1C,EAAE8qF,GAAGpkE,EAAE,EAAEmgD,GAAGA,EAAE58G,IAAI,EAAE+1C,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,IAAIhuH,EAAE7gB,GAAG,EAAE2D,EAAEqqK,IAAI/7I,EAAE+1C,EAAE2qF,EAAE1gI,EAAE,GAAGyxH,GAAG1jJ,EAAEwiF,IAAI,EAAEvwD,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIyjI,EAAEmC,GAAGhpE,EAAEtqE,GAAG,EAAEmxI,GAAGrsD,EAAEra,EAAExkE,EAAE,KAAK,EAAEwkE,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAE1mE,EAAEqa,EAAEp3E,EAAEyV,EAAEA,EAAEguH,EAAEA,EAAEm/B,GAAGrb,EAAEnwE,EAAEp3E,EAAEyjI,EAAE,IAAI8jB,EAAEr+J,EAAE+V,EAAE,KAAK,GAAGe,EAAEyjI,EAAErsD,EAAEqsD,EAAE58G,EAAE48G,EAAE58G,EAAE,EAAE48G,GAAGmC,EAAEtzI,GAAGsC,EAAE,EAAE6uI,GAAGA,EAAE58G,IAAI,EAAEuwD,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAG8jB,EAAE,EAAE9jB,EAAE58G,IAAI,GAAGjyB,EAAEiyB,EAAE39B,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEwkI,EAAE,EAAE,EAAEA,EAAE58G,EAAE+1C,EAAEA,EAAE6mE,EAAEngD,EAAEs/E,IAAIxrF,EAAExiF,GAAG2D,EAAEsuB,EAAE48G,EAAE,IAAIA,EAAEhuH,GAAGoR,EAAEv0B,GAAG,EAAEiG,EAAEqtI,EAAEA,EAAEnC,GAAG7uI,EAAEmoE,EAAEumB,EAAE,KAAK,EAAEvmB,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAE8jB,EAAEqb,GAAG5iK,GAAG+8D,EAAEnoE,GAAG2D,EAAEkrI,EAAE,IAAIhuH,EAAEnjB,EAAEsC,EAAE4lE,EAAEipE,EAAEjpE,EAAEvtD,EAAE,EAAEw2H,GAAGA,GAAGlrI,EAAE65B,EAAEyuD,EAAE,KAAK,EAAEzuD,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,IAAIzjI,EAAE9W,EAAE+V,EAAE,KAAK,IAAI,EAAEwkI,GAAGjpE,EAAEjiE,EAAErP,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAE1G,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,EAAElrI,EAAE2uJ,EAAEA,EAAEzjB,EAAElrI,EAAEqqK,GAAGpoG,EAAE4sF,EAAE7uJ,EAAEkrI,EAAE,IAAIA,EAAEqN,GAAG1+G,EAAE9/B,GAAG,EAAEmxI,GAAGx2H,EAAEga,EAAE1uB,EAAE,KAAK,EAAE0uB,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEx8G,EAAEha,EAAEjN,EAAEpL,EAAEA,EAAE6uI,EAAEx2H,EAAE21J,GAAG31J,EAAE4zE,EAAE7gF,EAAEyjI,EAAE,IAAIzjI,EAAEyjI,EAAEnxI,EAAE80J,EAAEn6I,EAAEw2H,EAAEA,EAAEyjB,EAAE,EAAEzjB,GAAGA,GAAGx2H,EAAEutD,EAAEvtD,EAAE,KAAK,EAAEutD,IAAI,EAAEipE,EAAE,EAAE,EAAEA,IAAI5iD,EAAE33F,EAAE+V,EAAE,KAAK,IAAI,EAAEwkI,GAAGjpE,EAAEvtD,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEgO,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAEyjB,EAAE1sF,EAAEvtD,EAAEmlB,EAAEA,EAAEqxG,EAAE6U,EAAEsqB,GAAGpoG,EAAEjiE,EAAE0U,EAAEw2H,EAAE,IAAIA,EAAE7uI,GAAGqY,EAAE3a,GAAG,EAAEmxI,GAAGjpE,EAAEvzC,EAAEqxH,EAAE,KAAK,EAAErxH,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEx8G,EAAEuzC,EAAEs2E,EAAErN,EAAE5iD,EAAE+hF,GAAGxb,EAAE5sF,EAAEx6D,EAAEyjI,EAAE,IAAIjpE,EAAEloE,EAAEsC,EAAEszB,EAAEk/H,EAAE9sF,EAAEmpE,EAAEv7G,EAAEhb,EAAE,EAAEgb,EAAE3vB,EAAE+hE,EAAEknG,GAAG,EAAE/9B,GAAGA,EAAElrI,IAAI,EAAE+hE,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,IAAIzjI,EAAE9W,EAAE+V,EAAE,KAAK,IAAI,EAAEe,EAAE4iK,IAAIrqK,EAAE+hE,EAAE/hE,EAAErP,EAAE+V,EAAE,KAAK,GAAG,GAAGw7D,GAAGH,EAAE/hE,IAAI,EAAE2vB,IAAI,EAAEu7G,EAAE,EAAE,EAAEA,GAAG/uI,EAAE,IAAI+uI,EAAEgkB,GAAGv/H,EAAE51B,GAAG,EAAEsC,EAAEguK,GAAGxb,GAAGl6I,EAAE8vD,EAAEh9D,EAAE,IAAIyjI,EAAEv2H,IAAI,EAAE8vD,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAG7uI,EAAE,IAAIooE,EAAEymE,EAAEhpE,EAAEvxE,EAAE+V,EAAE,KAAK,GAAGvK,EAAEE,EAAEiqE,EAAE3xD,EAAEu2H,GAAGv2H,EAAE5a,GAAGgoE,EAAE,EAAEA,EAAE/hE,EAAEA,EAAE3D,EAAE,EAAE6uI,GAAGA,EAAElrI,IAAI,EAAE3D,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,IAAI2jB,EAAE3sF,GAAG,EAAE2sF,EAAEwb,GAAGhuK,GAAG2D,EAAE3D,GAAG6yJ,EAAEv+J,EAAE+V,EAAE,KAAK,IAAI1G,EAAE,GAAGyH,GAAGA,EAAEs6D,IAAI,EAAE/hE,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,GAAGA,EAAEzmE,IAAIA,EAAE1qE,GAAG,EAAEmxI,GAAGnpE,EAAE8sF,KAAK,GAAGxyJ,EAAEiqE,EAAEvE,EAAE,KAAK,EAAEmpE,EAAE,EAAE,EAAEA,EAAEnpE,EAAEptD,EAAEA,EAAEu2H,EAAEA,EAAEm/B,GAAGluK,EAAEE,EAAE0lE,EAAEmpE,EAAE,IAAI6jB,EAAEp+J,EAAE+V,EAAE,KAAK,GAAG4/D,EAAE4kE,EAAEv7G,EAAEu7G,EAAE/uI,EAAE+uI,EAAEi+B,GAAG,EAAEj+B,GAAGnpE,EAAEhoE,GAAGwqE,EAAE,EAAE2mE,GAAGA,EAAEv7G,IAAI,EAAExzB,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,GAAG6jB,EAAE,EAAEhkE,EAAEs/E,IAAIluK,EAAEwzB,GAAG40C,EAAEpoE,GAAGxL,EAAE+V,EAAE,KAAK,GAAG,GAAGqkF,GAAGp7D,EAAEA,IAAI,EAAE40C,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAG58G,EAAE,IAAI48G,EAAEqN,GAAGh0E,EAAExqE,GAAG,EAAEmxI,GAAG58G,EAAEI,EAAEq8D,EAAE,KAAK,EAAEr8D,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEx8G,EAAEJ,EAAEiqH,EAAEx2E,EAAEA,EAAEmpE,EAAEA,EAAEm/B,GAAG/jG,EAAEh4C,EAAEiqH,EAAErN,EAAE,IAAI5kE,EAAEykB,EAAEz8D,EAAE48G,EAAE/uI,EAAE+uI,EAAE/uI,EAAE,EAAE+uI,GAAGqN,EAAEx+I,GAAG41B,EAAE,EAAEu7G,EAAEhpE,GAAG5zC,IAAI,EAAEnyB,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,GAAG,EAAEngD,EAAEp7D,EAAExzB,EAAE+yJ,EAAE,EAAEhtF,EAAEmoG,GAAG/jG,EAAE32C,GAAGxzB,EAAEooE,IAAIA,EAAE50C,IAAI,EAAEu/H,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEnpE,GAAGmtF,EAAEn1J,GAAG,EAAEmxI,GAAGv7G,EAAEjB,EAAEwzC,EAAE,KAAK,EAAExzC,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEx8G,EAAEiB,EAAEoyC,EAAEw2E,EAAEA,EAAErN,EAAEnpE,EAAEsoG,GAAG/7I,EAAEqB,EAAEoyC,EAAEmpE,EAAE,IAAIv7G,EAAE51B,EAAEusE,EAAE1F,EAAEsqE,EAAEw+B,IAAIp7I,EAAE5J,GAAG,EAAEwmH,EAAE7mE,IAAIzD,GAAGzkE,EAAEizJ,GAAGxuF,EAAE,KAAK,EAAEzkE,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,GAAG,EAAEx2H,EAAE21J,IAAIluK,EAAEuoB,EAAEm6D,EAAEje,EAAE,GAAGm/E,GAAGr7H,EAAEm6D,IAAI,EAAEn6D,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAIw2H,EAAEv2H,GAAG0vD,EAAEtqE,GAAG,EAAEmxI,GAAGrsD,EAAExiF,EAAEqY,EAAE,KAAK,EAAErY,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,EAAE7uI,EAAEwiF,EAAElqE,EAAEu2H,EAAEtqE,EAAEtyC,EAAE+7I,GAAG/jG,EAAEuY,EAAEqsD,EAAE58G,EAAE,IAAIyxH,EAAE7U,EAAEnxI,EAAE8kF,EAAEqsD,EAAE5kE,EAAE5xD,EAAEw2H,EAAExmH,EAAEklJ,GAAG,EAAE1+B,GAAGA,GAAG58G,EAAEmyH,KAAK,GAAG/rI,EAAE4Z,EAAEnyB,EAAE,KAAK,EAAE+uI,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,EAAEsqF,GAAGzkJ,EAAEk8C,GAAGtyC,EAAE5Z,GAAG,EAAEu0J,GAAGoB,GAAG/jG,EAAE5hD,GAAGhQ,EAAE2vD,IAAIA,EAAE/1C,IAAI,EAAE5J,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEv2H,GAAGkqE,EAAE9kF,GAAG,EAAEoC,EAAEkuK,IAAI11J,EAAE+P,EAAEroB,EAAE4sK,GAAG,GAAGroG,GAAGtyC,EAAE3Z,IAAI,EAAEtY,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,GAAG6U,EAAE,IAAI1jJ,EAAEtC,EAAE2qB,EAAExH,EAAEguH,EAAEhuH,EAAEonD,EAAE,EAAE4mE,EAAErxG,IAAInlB,EAAEvd,KAAK,GAAGypE,EAAElsD,EAAEs6I,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,GAAG,EAAEx2H,EAAE21J,IAAIxwI,EAAE3c,EAAEyxI,EAAE/tF,EAAE,GAAGiuF,GAAG3xI,EAAEA,IAAI,EAAEyxI,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,GAAGzmE,EAAE,IAAIymE,EAAE4jB,GAAGrqF,EAAE1qE,GAAG,EAAEmxI,EAAE38G,IAAI,GAAGogI,EAAEpgI,EAAE7Z,EAAE,KAAK,EAAEw2H,EAAE,EAAE,EAAEA,EAAE38G,EAAEogI,EAAEA,EAAEjqI,EAAEA,EAAEwmH,EAAEtqE,EAAE+tF,EAAE0b,GAAG97I,EAAEygI,EAAEL,EAAEzjB,EAAE,IAAI8jB,EAAE9jB,EAAEnxI,EAAE+0J,EAAE5jB,EAAEA,EAAEhuH,EAAEinD,EAAE,EAAE+mE,GAAGA,GAAGyjB,EAAE9O,KAAK,GAAGhmH,EAAE80H,EAAE90H,EAAE,KAAK,EAAEqxG,EAAE,EAAE,EAAEA,GAAG4jB,EAAE,EAAEA,EAAE5xI,EAAE0jD,EAAE/mC,EAAE,EAAEkmH,EAAEsqB,GAAGntJ,EAAExI,GAAGi6I,EAAElqF,IAAIA,EAAEvnD,IAAI,EAAE2c,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAExmH,GAAGiqI,EAAE50J,GAAG,EAAEmxI,GAAGhuH,EAAEqR,EAAEwxH,EAAE,KAAK,EAAExxH,IAAI,EAAE28G,EAAE,EAAE,EAAEA,EAAE38G,EAAErR,EAAE2c,EAAEqxG,EAAEtqE,EAAEypG,GAAGntJ,EAAE0jD,EAAEsqE,EAAE8jB,EAAE,IAAItqI,EAAE3qB,EAAEmxI,EAAEzjI,GAAGyV,EAAE+kD,GAAG,EAAEipE,GAAGA,GAAGx2H,EAAE1U,EAAEsoF,EAAE,KAAK,EAAEtoF,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,IAAI8jB,EAAEr+J,EAAE+V,EAAE,KAAK,IAAI,EAAE1G,EAAE4uJ,EAAEA,EAAE1jB,GAAGjpE,EAAEvtD,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEgO,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAEzjI,EAAE4iK,GAAGpoG,EAAE+mG,GAAGhpK,EAAEkrI,EAAE,IAAIA,EAAEmC,GAAG34H,EAAE3a,GAAG,EAAEmxI,GAAGlrI,EAAEwkE,EAAE/8D,EAAE,KAAK,EAAE+8D,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAE1mE,EAAExkE,EAAEqtI,EAAEnwH,EAAEA,EAAEguH,EAAElrI,EAAEqqK,GAAGrqK,EAAEsoF,EAAE+kD,EAAEnC,EAAE,IAAI5iD,EAAE4iD,EAAEnxI,EAAEusE,EAAEtmE,EAAEkrI,EAAE0jB,EAAE1jB,EAAE,EAAEA,GAAGA,GAAGlrI,EAAEA,EAAEiiE,EAAE,KAAK,EAAEA,IAAI,EAAEipE,EAAE,EAAE,EAAEA,IAAI8jB,EAAEr+J,EAAE+V,EAAE,KAAK,IAAI,EAAEmoJ,EAAE5sF,EAAEjiE,EAAErP,EAAE+V,EAAE,KAAK,GAAG,EAAE1G,EAAEqqK,GAAGpoG,EAAEx6D,GAAGmnJ,EAAE3sF,IAAI,EAAEjiE,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAIw2H,EAAEhuH,GAAG+kD,EAAEloE,GAAG,EAAEmxI,GAAGx2H,EAAE8vD,EAAExkE,EAAE,KAAK,EAAEwkE,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAE1mE,EAAE9vD,EAAE24H,EAAEnC,EAAE5iD,EAAE+hF,GAAG/jG,EAAE5xD,EAAE4zE,EAAE4iD,EAAE,IAAIhuH,EAAEnjB,EAAEi1J,EAAEhvJ,EAAEkrI,EAAE3mE,EAAEkyE,EAAE,EAAEvL,GAAGA,GAAGlrI,EAAEopK,MAAM,GAAG3hK,EAAEzH,EAAE+qF,EAAE,KAAK,EAAEmgD,EAAE,EAAE,EAAEA,IAAIx2H,EAAErY,GAAG,EAAEA,EAAEkoE,GAAGvkE,EAAEyH,GAAGtL,EAAE,EAAEsL,EAAE4iK,GAAGrb,EAAEzqF,GAAG98D,EAAEw6D,IAAIA,EAAEjiE,IAAI,EAAEukE,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAErxG,GAAG0qC,EAAExqE,GAAG,EAAEmxI,GAAGlrI,EAAEuuB,EAAE9mB,EAAE,KAAK,EAAE8mB,IAAI,EAAE28G,EAAE,EAAE,EAAEA,EAAE38G,EAAEvuB,EAAE65B,EAAEqxG,EAAElrI,EAAEqqK,GAAGrqK,EAAE7D,EAAE+uI,EAAEx2H,EAAE,IAAIA,EAAEw2H,EAAEnxI,EAAEoC,EAAE6D,EAAEkrI,EAAEjpE,EAAEipE,EAAE,EAAEA,GAAGA,GAAGlrI,EAAEA,EAAE3D,EAAE,KAAK,EAAEA,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,IAAI8jB,EAAEr+J,EAAE+V,EAAE,KAAK,IAAI,EAAEqkF,EAAE1uF,EAAE2D,EAAErP,EAAE+V,EAAE,KAAK,GAAG,EAAEsiK,GAAGqB,GAAGhuK,EAAEoL,GAAGw6D,EAAEsC,IAAIA,EAAEvkE,IAAI,EAAE3D,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAErxG,GAAG75B,EAAEjG,GAAG,EAAE8/B,EAAEqxG,GAAG7uI,EAAEkyB,EAAEy6I,GAAG,KAAK,EAAEz6I,IAAI,EAAE28G,EAAE,EAAE,EAAEA,EAAE8jB,EAAEqb,GAAGluK,GAAGoyB,EAAElyB,GAAG6uI,EAAEx2H,EAAE,IAAIrY,EAAEtC,EAAEmxI,EAAE7mE,EAAE0lG,GAAG,EAAE7+B,GAAGA,GAAGx2H,EAAEuwI,KAAK,GAAGx9I,EAAEiN,EAAEy0J,GAAG,KAAK,EAAEj+B,EAAE,EAAE,EAAEA,IAAIjpE,EAAEv9C,GAAG,EAAEA,EAAEwmH,GAAGx2H,EAAEjN,KAAK,GAAG48D,EAAE3vD,EAAEksD,EAAE,KAAK,EAAEsqE,EAAE,EAAE,EAAEA,EAAEzjI,EAAE4iK,IAAI31J,EAAE2vD,GAAGnC,EAAEgpE,EAAEgkB,EAAE,IAAIhkB,EAAEmC,GAAG6hB,EAAEn1J,GAAG,EAAEmxI,EAAE1mE,IAAI,GAAGH,EAAEG,EAAE/8D,EAAE,KAAK,EAAEyjI,EAAE,EAAE,EAAEA,EAAE1mE,EAAEH,EAAEloE,EAAE8lE,EAAEA,EAAEipE,EAAEA,EAAEm/B,GAAGhmG,EAAEzD,EAAEzkE,EAAE+uI,EAAE,IAAItqE,EAAEjwE,EAAE+V,EAAE,KAAK,GAAGvK,EAAE+uI,EAAE7mE,EAAE6mE,EAAEx2H,EAAEw2H,EAAEx2H,EAAE,EAAEw2H,GAAGmC,EAAEtzI,GAAG2qB,EAAE,EAAEwmH,GAAGA,EAAEx2H,IAAI,EAAE2vD,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,GAAGtqE,EAAE,EAAEsqE,GAAGxmH,EAAEhQ,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEgO,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAEx2H,EAAEw6I,EAAEA,EAAEhkB,EAAEx2H,EAAE21J,IAAIhmG,EAAE3/C,GAAGjd,EAAEiN,EAAEw2H,EAAE,IAAIA,EAAEjpE,GAAGx6D,EAAE1N,GAAG,EAAEkoE,EAAEorE,EAAEA,EAAEnC,GAAGxmH,EAAE8/C,EAAE9vD,EAAE,KAAK,EAAE8vD,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAExmH,EAAE2lJ,GAAGluK,GAAGqoE,EAAE9/C,GAAGu9C,EAAEipE,EAAE,IAAIjpE,EAAEloE,EAAEoC,EAAE+gB,EAAEopD,EAAEgiB,EAAE4iD,EAAEhuH,EAAEunD,EAAE,EAAEymE,GAAGA,GAAGtqE,EAAEkuF,EAAExmE,EAAE,KAAK,EAAEwmE,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,IAAIhpE,EAAEvxE,EAAE+V,EAAE,KAAK,IAAI,EAAE4hF,EAAE+hF,IAAIzpG,EAAE1jD,GAAGunD,EAAE7D,GAAGjwE,EAAE+V,EAAE,KAAK,GAAG,GAAGuiK,IAAI/rJ,EAAEA,IAAI,EAAEunD,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,IAAIqsD,EAAEqN,GAAG9zE,EAAE1qE,GAAG,EAAE8kF,EAAEqsD,GAAG4jB,EAAEpgI,EAAE45D,EAAE,KAAK,EAAE55D,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,EAAEqN,EAAE8xB,GAAG/jG,EAAEwoF,EAAE5jB,EAAE/uI,EAAE,IAAI+lE,EAAEgpE,EAAEnxI,EAAE20B,EAAEw8G,EAAE5kE,EAAEiyE,EAAErN,EAAEhuH,EAAE8sJ,GAAG,EAAE9+B,GAAGA,GAAG/uI,GAAGo8I,EAAE4W,GAAGvuF,EAAE,KAAK,EAAE23E,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAGx8G,EAAE,EAAEy6I,GAAGjsJ,EAAEopD,GAAGiyE,EAAEp8I,GAAG,EAAE8sK,GAAGoB,GAAGntJ,EAAEorE,GAAGnsF,EAAEsoE,IAAIA,EAAEvnD,IAAI,EAAEq7H,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAErsD,GAAGnwD,EAAE30B,GAAG,EAAEmxI,GAAGhuH,EAAE4xI,EAAEma,GAAG,KAAK,EAAEna,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAE5xI,EAAE/gB,EAAEkuK,GAAG/jG,EAAEppD,EAAEguH,EAAEhpE,EAAE,IAAIhlD,EAAEnjB,EAAE8kF,EAAElvD,EAAE4oH,EAAErN,EAAE5kE,EAAEvE,EAAEmpE,EAAEv7G,EAAEi/H,EAAE,EAAE1jB,GAAGA,GAAGtqE,EAAEmB,EAAE8sF,EAAE,KAAK,EAAE9sF,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,IAAI5iD,EAAE33F,EAAE+V,EAAE,KAAK,IAAI,EAAEioJ,EAAE0b,IAAIzpG,EAAEmB,GAAGpyC,EAAEixC,GAAGjwE,EAAE+V,EAAE,KAAK,GAAG,GAAGq5I,GAAGh+E,EAAEA,IAAI,EAAEpyC,IAAI,EAAEu7G,EAAE,EAAE,EAAEA,GAAGyjB,EAAE,IAAIzjB,EAAE58G,GAAGqB,EAAE51B,GAAG,EAAEmxI,EAAEv2H,IAAI,GAAGi6I,EAAEj6I,EAAEg6I,EAAE,KAAK,EAAEzjB,EAAE,EAAE,EAAEA,EAAEv2H,EAAEi6I,EAAEA,EAAE1jB,EAAE5iD,EAAEh6D,EAAE+7I,GAAG/jG,EAAE3xD,EAAEu2H,EAAErsD,EAAE,IAAIkhE,EAAE7U,EAAEnxI,EAAE8kF,EAAEqsD,EAAE2jB,EAAEF,EAAEzjB,EAAEnpE,EAAE4nG,GAAG,EAAEz+B,GAAGA,GAAG58G,GAAGqgI,EAAE10J,GAAG2mE,EAAE,KAAK,EAAE+tF,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,EAAEA,EAAE9c,EAAEumB,EAAEh6D,EAAE,EAAE4zC,EAAEmoG,GAAGxb,EAAE9sF,GAAG4sF,EAAE5sF,IAAI,EAAEzzC,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAE0jB,GAAGj/H,EAAE51B,GAAG,EAAEmxI,GAAGnpE,EAAEptD,EAAEutD,EAAE,KAAK,EAAEvtD,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,EAAEv2H,EAAEotD,EAAE6sF,EAAE1jB,EAAE58G,EAAE+7I,GAAGtoG,EAAEumB,EAAE4iD,EAAE6U,EAAE,IAAIn/E,EAAEsqE,EAAEnxI,EAAEgoE,EAAEmpE,EAAE5iD,EAAEwmE,EAAE/O,EAAErrI,EAAEw2H,EAAE3mE,EAAEylG,GAAG,EAAEzlG,EAAE7vD,GAAGo6I,EAAEK,GAAGpkE,EAAE,EAAEmgD,GAAGA,EAAEx2H,IAAI,EAAEo6I,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAGnpE,EAAE,EAAEt6D,EAAE4iK,GAAGtqB,GAAGrrI,EAAEo6I,EAAEp6I,EAAE4Z,EAAE,IAAIyzC,EAAEwC,IAAI,EAAE7vD,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIyjI,GAAG4jB,EAAE/0J,GAAGw+I,EAAE,EAAEA,EAAErN,GAAG3mE,EAAE+jB,EAAE7gF,EAAE,KAAK,EAAEA,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,EAAEtqE,EAAEypG,GAAG/7I,EAAEi2C,EAAE3D,EAAEsqE,EAAE,IAAIngD,EAAEmgD,EAAEnxI,EAAEu0B,EAAE48G,EAAE5iD,EAAE7gF,EAAEA,GAAGyjI,EAAEx2H,IAAIA,EAAEuwI,GAAG,EAAE/Z,EAAEnpE,EAAEgoG,GAAG,EAAE7+B,GAAGA,EAAEx2H,IAAI,EAAEjN,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAG58G,EAAE,EAAEyxH,EAAEh+E,GAAGrtD,EAAEjN,GAAGm5D,EAAE,EAAEiuF,EAAEwb,GAAG/hF,EAAEvmB,GAAGzzC,EAAEwgI,IAAIA,EAAE/sF,IAAI,EAAErtD,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEqN,GAAGjqH,EAAEv0B,GAAG,EAAEmxI,GAAGnpE,EAAEwC,EAAEsqF,EAAE,KAAK,EAAEtqF,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,EAAE3mE,EAAExC,EAAEw2E,EAAErN,EAAE5iD,EAAE+hF,GAAGtoG,EAAEnB,EAAEsqE,EAAEngD,EAAE,IAAIhpB,EAAEhoE,EAAEmxI,EAAE0+B,IAAIl1J,EAAErY,GAAG,EAAE6uI,EAAEgkB,IAAIznJ,EAAEg5I,KAAK,GAAG7/E,EAAEn5D,EAAEunJ,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,GAAG,EAAEx8G,EAAE27I,IAAI5iK,EAAEpL,EAAEgoE,EAAEzD,EAAE,GAAGqoG,IAAI5sK,EAAEoL,IAAI,EAAE48D,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,GAAGx8G,EAAE,IAAIw8G,EAAE0jB,GAAGM,EAAEn1J,GAAG,EAAE60J,EAAE1jB,EAAEv2H,IAAI,GAAG0vD,EAAE1vD,EAAE+Z,EAAE,KAAK,EAAEw8G,EAAE,EAAE,EAAEA,EAAEA,EAAEm/B,IAAI11J,EAAE0vD,GAAG2qF,EAAE9jB,EAAEx2H,EAAE,IAAIs6I,EAAEr+J,EAAE+V,EAAE,KAAK,GAAGk6D,EAAEsqE,EAAEngD,EAAEr8D,EAAEA,EAAEw8G,EAAEx2H,EAAEw2H,EAAEzjI,EAAE,EAAEyjI,GAAG7mE,EAAEtqE,GAAGsC,EAAE,EAAE6uI,GAAGA,EAAEx2H,IAAI,EAAEga,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAG8jB,EAAE,EAAEA,EAAE3yJ,EAAEqY,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,EAAEqkF,EAAEs/E,GAAGt/E,EAAE1uF,GAAGoL,EAAEynJ,IAAIA,EAAE7yJ,IAAI,EAAEqY,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAE0jB,GAAGlgI,EAAE30B,GAAG,EAAE60J,EAAEvyJ,EAAEsY,EAAEo2E,EAAE,EAAEtjF,EAAE4iK,GAAGzpG,EAAEvkE,GAAGqY,EAAE2vD,IAAIA,EAAE1vD,IAAI,EAAEtY,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,GAAG,IAAI7uI,EAAEtC,EAAE4a,EAAEstD,EAAEqE,EAAE5hD,EAAEwmH,EAAEjpE,EAAEwC,EAAE,EAAEymE,GAAGA,GAAGx2H,EAAEgQ,EAAEykJ,GAAG,KAAK,EAAEzkJ,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,IAAItqE,EAAEjwE,EAAE+V,EAAE,KAAK,IAAI,EAAEgO,EAAE21J,IAAI5lG,EAAE//C,EAAEhQ,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,GAAGw7D,GAAGx9C,EAAEhQ,IAAI,EAAE+vD,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAErxG,GAAGooC,EAAEloE,GAAG,EAAE8/B,EAAEllB,EAAEA,EAAEu2H,GAAGv7G,EAAEpB,EAAE7Z,EAAE,KAAK,EAAE6Z,IAAI,EAAE28G,EAAE,EAAE,EAAEA,EAAEA,EAAEm/B,GAAG/jG,EAAE32C,EAAEkK,EAAEqxG,EAAE,IAAIhpE,EAAEvxE,EAAE+V,EAAE,KAAK,GAAGk6D,EAAEsqE,EAAErxG,EAAE4qC,EAAEA,EAAEymE,EAAErxG,EAAEA,EAAEqxG,EAAE,EAAEA,GAAG38G,EAAEx0B,GAAG2qB,EAAE,EAAEwmH,GAAGA,EAAEzmE,IAAI,EAAE5qC,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAGhpE,EAAE,EAAEA,EAAEx9C,GAAG+/C,EAAE5qC,GAAGlpC,EAAE+V,EAAE,KAAK,GAAG,EAAEyiK,GAAGkB,GAAG3lJ,EAAEhQ,GAAG+vD,EAAE//C,IAAI,EAAE+/C,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,IAAIipE,EAAEv2H,GAAGklB,EAAE9/B,GAAG,EAAEkoE,EAAEooG,GAAGzpG,GAAGjsD,EAAE+P,EAAEiL,EAAEw5I,GAAG,IAAIz0J,EAAE6Z,IAAIA,EAAEoB,IAAI,EAAEhb,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAG,IAAIv7G,EAAE51B,EAAE2qB,EAAExH,EAAEguH,EAAEhuH,EAAEyxI,EAAE,EAAEzjB,GAAGA,GAAGx2H,EAAEmqE,EAAE1iF,EAAE,KAAK,EAAE0iF,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,IAAItqE,EAAEjwE,EAAE+V,EAAE,KAAK,IAAI,EAAEm4E,EAAEqsD,GAAGhuH,EAAExI,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEgO,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAElrI,EAAEqqK,GAAGntJ,EAAE8rJ,GAAG99B,EAAElrI,EAAE,IAAIkrI,EAAEmC,GAAGshB,EAAE50J,GAAG,EAAEmxI,GAAGx2H,EAAE8vD,EAAExkE,EAAE,KAAK,EAAEwkE,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAE1mE,EAAE9vD,EAAEksD,EAAEl8C,EAAEA,EAAEwmH,EAAEx2H,EAAE21J,GAAG31J,EAAEvY,EAAEykE,EAAEsqE,EAAE,IAAI/uI,EAAE+uI,EAAEnxI,EAAEusE,EAAE5xD,EAAEw2H,EAAErsD,EAAEqsD,EAAE,EAAEA,GAAGA,GAAGx2H,EAAEwI,EAAExI,EAAE,KAAK,EAAEwI,IAAI,EAAEguH,EAAE,EAAE,EAAEA,IAAItqE,EAAEjwE,EAAE+V,EAAE,KAAK,IAAI,EAAEwkI,GAAGhuH,EAAExI,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEgO,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAErsD,EAAE3hE,EAAExI,EAAEi6I,EAAEA,EAAEzjB,EAAElrI,EAAEqqK,GAAGntJ,EAAEld,EAAE0U,EAAEw2H,EAAE,IAAIA,EAAExmH,GAAGxH,EAAEnjB,GAAG,EAAEmxI,GAAGx2H,EAAE8vD,EAAExkE,EAAE,KAAK,EAAEwkE,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAE1mE,EAAE9vD,EAAE24H,EAAEnC,EAAEtqE,EAAEypG,GAAG/jG,EAAE5xD,EAAEvY,EAAE+uI,EAAE,IAAIxmH,EAAE3qB,EAAEusE,EAAE7+D,EAAEtL,EAAE6D,EAAEkrI,EAAE4jB,EAAExqF,EAAE,EAAE4mE,GAAGA,GAAGlrI,EAAE7I,KAAK,GAAGsQ,EAAEzH,EAAE+/I,EAAE,KAAK,EAAE7U,EAAE,EAAE,EAAEA,IAAIx2H,EAAErY,GAAG,EAAEA,EAAEyyJ,EAAExoF,GAAGtmE,EAAEyH,GAAG,EAAEA,EAAE4iK,GAAGluK,EAAE2yJ,GAAGrnJ,EAAEyV,IAAIA,EAAEld,IAAI,EAAE8uJ,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAE38G,GAAGugI,EAAE/0J,GAAG,EAAEoC,EAAE6D,EAAE2U,EAAElN,EAAE,EAAEzH,EAAEqqK,GAAG/jG,EAAEtmE,GAAGkrI,EAAElrI,IAAI,EAAE2U,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAI6Z,EAAE28G,EAAE+9B,GAAGt4K,EAAE+V,EAAE,KAAK,GAAGq5I,EAAE//I,EAAEkrI,EAAEhuH,GAAGvI,EAAE5a,GAAG,EAAEmxI,GAAGA,GAAGlrI,EAAEA,EAAE3D,EAAE,KAAK,EAAEA,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,IAAI89B,GAAGC,IAAI,EAAEla,EAAEsb,IAAIrB,GAAG3sK,GAAGqY,EAAE/jB,EAAE+V,EAAE,KAAK,IAAI1G,EAAE,GAAGyH,GAAGpL,EAAE2D,IAAI,EAAE3D,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,GAAG4jB,EAAE,IAAI5jB,GAAGA,EAAE38G,IAAIA,EAAEx0B,GAAG,EAAEmxI,GAAGhuH,GAAG4xI,EAAEC,GAAG5yJ,EAAE,KAAK,EAAE2yJ,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAE5xI,EAAEld,EAAEkrI,EAAEhuH,EAAEmtJ,GAAGtqB,EAAE7iI,EAAEguH,EAAEv2H,EAAE,IAAIA,EAAE5a,EAAEusE,EAAErE,EAAEipE,GAAGzjI,EAAEkoB,GAAGu/H,EAAE,EAAEhkB,GAAGA,GAAG/uI,EAAE8lE,EAAE+sF,EAAE,KAAK,EAAE/sF,IAAI,EAAEipE,EAAE,EAAE,EAAEA,IAAI6U,EAAEpvJ,EAAE+V,EAAE,KAAK,IAAI,EAAE4nB,EAAE+7I,IAAIluK,EAAE8lE,GAAGtyC,EAAExzB,GAAGxL,EAAE+V,EAAE,KAAK,GAAG,GAAGmoJ,GAAG5sF,EAAEtyC,IAAI,EAAEsyC,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAG58G,EAAE,IAAI48G,EAAEmC,GAAG19G,EAAE51B,GAAG,EAAEszI,EAAEnC,EAAE1mE,IAAI,GAAG0qF,EAAE1qF,EAAEl2C,EAAE,KAAK,EAAE48G,EAAE,EAAE,EAAEA,EAAE8jB,EAAEvnJ,EAAE4iK,GAAG/jG,GAAG9B,EAAE0qF,GAAGhkB,EAAEzjI,EAAE,IAAIs4I,EAAE7U,EAAEnxI,EAAEm1J,EAAEhkB,EAAE5kE,EAAEh4C,EAAE48G,EAAEjpE,EAAEynG,GAAG,EAAEx+B,GAAGA,GAAG58G,EAAE8gI,KAAK,GAAG3nJ,EAAE6mB,EAAEnyB,EAAE,KAAK,EAAE+uI,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,EAAEL,EAAE5sF,EAAE+sF,GAAG1gI,EAAE7mB,GAAG,EAAE6mB,EAAE+7I,GAAG/jG,EAAErE,GAAGitF,EAAEjtF,IAAI,EAAE3zC,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAEmC,GAAG5lI,EAAE1N,GAAG,EAAEszI,EAAEprE,EAAEuC,EAAEl2C,EAAE,EAAE0gI,EAAEqb,GAAGpoG,EAAE+sF,GAAG7yJ,EAAE8lE,IAAI,EAAEuC,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAG6U,EAAE,IAAI99E,EAAEloE,EAAEgmJ,EAAEn/E,EAAEsqE,EAAEzmE,EAAEN,EAAE,EAAE+mE,GAAGA,GAAG1mE,EAAEq7E,KAAK,GAAGj/E,EAAE4D,EAAEtC,EAAE,KAAK,EAAEgpE,EAAE,EAAE,EAAEA,IAAIv7G,EAAEjL,GAAG,EAAEk8C,EAAEypG,IAAI3lJ,EAAE8/C,EAAEu7E,GAAGt7E,EAAE7D,GAAG,GAAGmqB,GAAGvmB,EAAEA,IAAI,EAAEC,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGx8G,EAAE,IAAIw8G,EAAEqN,GAAG9zE,EAAE1qE,GAAG,EAAEw+I,EAAE8xB,GAAGtqB,GAAGrxH,EAAE61C,EAAE3D,EAAE,IAAIsqE,EAAE3mE,IAAI,EAAE71C,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAI40C,EAAE2mE,EAAEhpE,EAAEvxE,EAAE+V,EAAE,KAAK,GAAGqkF,EAAEwtD,EAAEjyE,EAAE53C,EAAEw8G,EAAE1mE,GAAG70C,EAAE51B,GAAG,EAAEyqE,EAAE+zE,EAAE7zH,EAAE6zH,EAAE,EAAErN,GAAGA,EAAEqN,IAAI,EAAE7zH,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,IAAI6U,EAAE79E,GAAG,EAAEq2E,EAAE9zE,EAAEA,EAAEymE,GAAGxmH,GAAGgK,EAAE/9B,EAAE+V,EAAE,KAAK,IAAI89D,EAAE,KAAK,EAAEA,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,EAAEq+B,GAAGc,GAAG3lJ,EAAEk8C,EAAE23E,EAAErN,EAAE,IAAIA,GAAGA,EAAE3mE,IAAIA,EAAExqE,GAAG,EAAEw+I,EAAErN,GAAG1mE,EAAE8B,GAAGiyE,EAAEgxB,IAAI,KAAK,EAAEhxB,IAAI,EAAErN,EAAE,EAAE,EAAEA,EAAEngD,EAAEs/E,GAAGt/E,EAAEvmB,EAAE0mE,EAAEv7G,EAAE,IAAIA,EAAE51B,EAAE6mE,EAAEmB,EAAEuE,EAAEgiB,EAAE4iD,EAAEnpE,EAAE4nG,GAAG,EAAEz+B,EAAEyjB,IAAIrmE,EAAEruF,KAAK,GAAG8lJ,EAAEz5E,EAAEgiB,EAAE,KAAK,EAAE4iD,EAAE,EAAE,EAAEA,GAAG,EAAErxG,EAAEwwI,IAAI/hF,EAAEvmB,EAAE8c,EAAEkhE,EAAE,GAAGopB,IAAIpnG,EAAEA,IAAI,EAAE8c,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,EAAE7mE,GAAGwa,EAAE9kF,GAAG,EAAEsqE,EAAE6mE,GAAGyjB,EAAEC,EAAE/0H,EAAE,KAAK,EAAE+0H,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,EAAE6U,EAAEn/E,EAAEypG,GAAG/jG,GAAGsoF,EAAED,GAAGzjB,EAAEtqE,EAAE,IAAIuoG,GAAGj+B,EAAEnxI,EAAE40J,EAAEzjB,EAAE5kE,EAAEzsC,EAAEqxG,EAAEnpE,EAAE00E,EAAE,EAAEvL,GAAGA,GAAGtqE,GAAG/mC,EAAEuvI,IAAI9gF,EAAE,KAAK,EAAEzuD,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAGyjB,EAAE,EAAEA,EAAE5sF,EAAEg+E,EAAEn/E,EAAE,EAAE0nB,EAAE+hF,GAAG/jG,EAAEvE,GAAGloC,EAAEglD,IAAIA,EAAE9c,IAAI,EAAEnB,IAAI,EAAEsqE,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAE7mE,GAAGxqC,EAAE9/B,GAAG,EAAEmxI,GAAGnpE,EAAE6sF,EAAEtmE,EAAE,KAAK,EAAEsmE,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,EAAE0jB,EAAE7sF,EAAEsC,EAAE6mE,EAAEtqE,EAAEypG,GAAGtoG,EAAEg+E,EAAE7U,EAAEi+B,GAAG,IAAIppB,EAAE7U,EAAEnxI,EAAEgoE,EAAEmpE,EAAE5kE,EAAEh4C,EAAE48G,EAAE7uI,EAAEstK,GAAG,EAAEttK,EAAEiyB,EAAEr0B,EAAE+uK,GAAG,EAAE99B,GAAGA,EAAE58G,IAAI,EAAEr0B,IAAI,EAAEixI,EAAE,EAAE,EAAEA,GAAGnpE,EAAE,EAAEt6D,EAAE4iK,GAAG/jG,GAAGh4C,EAAEr0B,EAAEq0B,EAAEsyC,EAAE,IAAIvkE,EAAEA,IAAI,EAAEiyB,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIyjI,EAAEqN,GAAGx2E,EAAEhoE,GAAG,EAAE4vK,GAAG1vK,EAAEuqE,EAAE/8D,EAAE,EAAE8wI,EAAErN,EAAE1mE,IAAI,EAAEvqE,IAAI,EAAEixI,EAAE,EAAE,EAAEA,EAAE5kE,EAAErsE,EAAEowK,GAAGzpG,EAAE3mE,EAAE8lJ,EAAE7U,EAAE,IAAIA,GAAG1mE,EAAEzqE,GAAGsC,EAAE,EAAE6uI,GAAGA,GAAG58G,EAAEA,EAAEr0B,EAAE,KAAK,EAAEA,IAAI,EAAEixI,EAAE,EAAE,EAAEA,GAAG+9B,GAAG,EAAElpB,EAAEsqB,IAAIzpG,EAAE3mE,EAAEq0B,EAAE5Z,EAAE,GAAGjN,GAAG6mB,EAAE5Z,IAAI,EAAEksD,IAAI,EAAEsqE,EAAE,EAAE,EAAEA,GAAGnpE,EAAE,IAAImpE,GAAGA,EAAEqN,IAAIA,EAAEx+I,GAAG,EAAE4vK,GAAG1vK,GAAGoC,EAAE0jJ,GAAG4pB,GAAG,EAAE5nG,EAAEsoG,GAAG/jG,EAAErsE,GAAGoC,EAAEA,IAAI,EAAEpC,IAAI,EAAEixI,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,IAAIA,EAAEzqE,EAAEE,EAAE0a,EAAE2xD,EAAEppD,EAAEguH,EAAEv2H,EAAEu6I,EAAE,EAAEv6I,EAAED,EAAEwI,EAAE2xI,EAAE,EAAE3jB,GAAGA,EAAEx2H,IAAI,EAAEwI,IAAI,EAAEguH,EAAE,EAAE,EAAEA,IAAIzjI,EAAE9W,EAAE+V,EAAE,KAAK,IAAI,EAAEe,EAAE4iK,IAAI31J,EAAEwI,EAAExI,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,GAAG6iK,IAAIrsJ,EAAExI,IAAI,EAAEC,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,GAAG3mE,EAAE,IAAI2mE,EAAE7mE,GAAG1vD,EAAE5a,GAAG,EAAEsqE,EAAEpqE,EAAEA,EAAEixI,GAAG3mE,EAAEqqF,EAAEnnJ,EAAE,KAAK,EAAEmnJ,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,EAAE5kE,EAAE4kE,EAAEm/B,GAAG/jG,EAAE/B,EAAEF,EAAE6mE,EAAE,IAAI0jB,EAAE1jB,EAAE7mE,EAAE6mE,EAAEx2H,EAAE,EAAEw2H,GAAGgkB,EAAEn1J,GAAGmjB,EAAE,EAAEguH,EAAEhpE,GAAGmC,IAAI,EAAEuqF,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAG,EAAEhpE,EAAEhlD,EAAEmnD,EAAE31C,EAAE,EAAEmgI,EAAEwb,GAAGntJ,EAAEzV,GAAGiN,EAAEC,IAAIA,EAAEuI,IAAI,EAAEwR,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEjxI,GAAG20J,EAAE70J,GAAG,EAAEmxI,GAAGhuH,EAAEqnD,EAAEsqF,EAAE,KAAK,EAAEtqF,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,EAAE3mE,EAAErnD,EAAExI,EAAEw6I,EAAEA,EAAEhkB,EAAEx2H,EAAE21J,GAAG/jG,EAAEppD,EAAExI,EAAEw2H,EAAE,IAAIjxI,EAAEF,EAAEmxI,EAAEw+B,IAAIxsJ,EAAE+kD,GAAG,EAAEipE,EAAEzmE,IAAIJ,EAAE+qF,KAAK,GAAG1gI,EAAE21C,EAAE2qF,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,GAAG,EAAE7mE,EAAEpC,EAAEv9C,EAAEgK,EAAE,EAAEA,EAAE27I,GAAGpoG,EAAEqmB,GAAG5jE,EAAEu9C,IAAI,EAAEv9C,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,EAAElrI,GAAGiiE,EAAEloE,GAAG,EAAEiG,EAAEkd,EAAEA,EAAEguH,GAAGzmE,EAAEqqF,EAAEpgI,EAAE,KAAK,EAAEogI,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAElrI,EAAE65B,EAAEwwI,GAAG5lG,EAAEuqF,EAAEhvJ,EAAEkrI,EAAE,IAAIzjI,EAAEyjI,EAAEnxI,EAAE8/B,EAAEnL,EAAEA,GAAGw8G,EAAE7mE,IAAIA,EAAE8qF,GAAG,EAAEjkB,EAAExmH,EAAEslJ,GAAG,EAAE9+B,GAAGA,EAAE7mE,IAAI,EAAE31C,IAAI,EAAEw8G,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,EAAEqnJ,EAAEpqI,GAAG2/C,EAAE31C,GAAG1uB,EAAE,EAAEsoF,EAAE+hF,GAAGxwI,EAAEnV,GAAG2/C,EAAE3/C,IAAI,EAAE2/C,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,IAAIipE,EAAEhuH,GAAGwR,EAAE30B,GAAG,EAAEmjB,EAAEmtJ,IAAIrb,EAAEtqI,EAAE+/C,EAAE6jB,EAAE,GAAGtoF,GAAG0kB,EAAEA,IAAI,EAAE+/C,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIw6D,EAAEloE,EAAE0qE,EAAE90C,EAAEu7G,EAAEv7G,EAAEw0C,EAAE,EAAE+mE,EAAErsD,IAAI7+E,GAAG65B,EAAEgmH,GAAG90D,EAAE,KAAK,EAAElxD,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG,EAAEA,GAAGv7G,EAAEg/H,EAAE3uJ,EAAE,KAAK,EAAE2uJ,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,EAAEyjB,EAAEh/H,EAAEA,EAAEu7G,EAAErxG,EAAEwwI,GAAG1b,EAAEI,EAAE7jB,EAAE38G,EAAE,IAAI28G,EAAE/uI,GAAGoyB,EAAEx0B,GAAG,EAAEmxI,GAAGrsD,EAAEwuD,EAAExzG,EAAE,KAAK,EAAEwzG,IAAI,EAAEnC,EAAE,EAAE,EAAEA,EAAEmC,EAAExuD,EAAE7+E,EAAEykE,EAAEA,EAAEymE,EAAElrI,EAAEqqK,GAAGxrF,EAAEkM,EAAE/qF,EAAEkrI,EAAE,IAAI/uI,EAAE+uI,EAAEnxI,EAAE8kF,EAAEqsD,EAAEzjI,EAAEoyB,EAAEA,GAAGqxG,EAAEyjB,IAAIA,EAAEya,IAAI,EAAEl+B,EAAEv7G,EAAE8mH,EAAE,EAAEvL,GAAGA,EAAEyjB,IAAI,EAAE90H,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,EAAEkM,EAAEp7D,EAAEkK,EAAE75B,EAAE,EAAE65B,EAAEwwI,GAAG5iK,EAAEkoB,GAAGg/H,EAAEpgI,IAAIA,EAAEoB,IAAI,EAAEkK,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEzmE,GAAGoa,EAAE9kF,GAAG,EAAEmxI,GAAGv7G,EAAE09G,EAAExzG,EAAE,KAAK,EAAEwzG,IAAI,EAAEnC,EAAE,EAAE,EAAEA,EAAEmC,EAAE19G,EAAE80C,EAAEymE,EAAEzjI,EAAE4iK,GAAG16I,EAAE3vB,EAAEkrI,EAAE/uI,EAAE,IAAIwzB,EAAE51B,EAAEiG,EAAE0U,EAAEvY,EAAE09B,EAAEqxG,EAAE58G,EAAEy7I,GAAG,EAAE7+B,GAAGA,GAAGx2H,GAAGmlB,EAAEorH,GAAGrkF,EAAE,KAAK,EAAE/mC,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,IAAIyjB,EAAE10J,GAAG,EAAE4/B,EAAEvL,EAAEtuB,EAAE0U,EAAE,EAAEza,EAAEixI,EAAE58G,IAAI,EAAE5Z,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,EAAEx2H,EAAE21J,GAAGluK,EAAEmyB,EAAE48G,EAAErsD,EAAE,IAAIqsD,GAAGA,EAAExmH,IAAIA,EAAE3qB,GAAG,EAAEu0B,EAAEqgI,EAAEA,EAAEzjB,EAAEx2H,IAAI,GAAGmqE,EAAEnqE,EAAEs6I,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,EAAEA,EAAEm/B,GAAGrqK,EAAE6+E,EAAEvwD,EAAE48G,EAAE,IAAI/uI,EAAExL,EAAE+V,EAAE,KAAK,GAAG1G,EAAEkrI,EAAE8jB,EAAEt6I,EAAE4Z,EAAEuL,EAAEA,EAAEqxG,EAAEx2H,EAAE4Z,EAAE48G,EAAE,EAAEA,GAAG58G,EAAEv0B,GAAGE,EAAE,EAAEixI,GAAGA,EAAEx2H,IAAI,EAAEmlB,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG/uI,EAAE,EAAE6yJ,EAAEqb,GAAGrb,GAAGpuF,EAAE3mE,EAAEya,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,IAAImzB,EAAEnlB,IAAI,EAAEksD,IAAI,EAAEsqE,EAAE,EAAE,EAAEA,GAAGxmH,EAAE,IAAIwmH,EAAEyjB,GAAGj6I,EAAE3a,GAAG,EAAE40J,EAAEzjB,EAAErsD,IAAI,GAAG5kF,EAAE4kF,EAAEmwE,EAAE,KAAK,EAAE9jB,EAAE,EAAE,EAAEA,EAAEjxI,EAAEowK,GAAGrqK,GAAG6+E,EAAE5kF,GAAGixI,EAAE58G,EAAE,IAAI5J,EAAE3qB,EAAEusE,EAAEppD,EAAEguH,GAAG58G,EAAE2zC,GAAGttD,EAAE,EAAEstD,EAAEjiE,EAAEkd,EAAEglD,EAAE,EAAEgpE,GAAGA,EAAElrI,IAAI,EAAEkd,IAAI,EAAEguH,EAAE,EAAE,EAAEA,IAAI/uI,EAAExL,EAAE+V,EAAE,KAAK,IAAI,EAAE6xI,EAAE8xB,IAAIrqK,EAAEkd,EAAEld,EAAErP,EAAE+V,EAAE,KAAK,GAAG,GAAGq5I,GAAG7iI,EAAEld,IAAI,EAAEiiE,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAGqN,EAAE,IAAIrN,EAAEzmE,GAAGxC,EAAEloE,GAAG,EAAEszI,EAAEnC,GAAGv2H,EAAE04H,EAAEkL,EAAE,KAAK,EAAElL,IAAI,EAAEnC,EAAE,EAAE,EAAEA,EAAE/uI,EAAEmyB,EAAE+7I,GAAG/jG,EAAE3xD,EAAEu2H,EAAE58G,EAAE,IAAIyxH,EAAE7U,EAAEnxI,EAAE0qE,EAAEymE,EAAE5kE,EAAEiyE,EAAErN,EAAEhuH,EAAE0sJ,GAAG,EAAE1+B,GAAGA,GAAG58G,GAAGiqH,EAAEkI,GAAGzgJ,EAAE,KAAK,EAAEu4I,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAGzmE,EAAE,EAAEvC,EAAEhlD,EAAE/gB,EAAEmyB,EAAE,EAAE66I,GAAGkB,GAAG/jG,EAAEppD,GAAGunD,EAAEvnD,IAAI,EAAEoR,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,IAAIipE,EAAEmC,GAAGkL,EAAEx+I,GAAG,EAAEmxI,GAAGhuH,EAAEvI,EAAEw0J,GAAG,KAAK,EAAEx0J,IAAI,EAAEu2H,EAAE,EAAE,EAAEA,EAAEv2H,EAAEuI,EAAEmwH,EAAEnC,EAAEhuH,EAAEmtJ,GAAGntJ,EAAE/gB,EAAE+uI,EAAE6U,EAAE,IAAI99E,EAAEloE,EAAEusE,EAAE7+D,EAAEyjI,GAAG58G,EAAEqB,GAAG00C,EAAE,EAAE6mE,GAAGzjI,EAAEA,EAAEqnJ,EAAE,KAAK,EAAEA,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAErnJ,EAAEyjI,EAAEA,GAAG/uI,EAAE4jJ,EAAEpvJ,EAAE+V,EAAE,KAAK,IAAI,EAAEvK,EAAEkuK,IAAI5iK,EAAEkoB,GAAG3vB,EAAErP,EAAE+V,EAAE,KAAK,IAAIe,EAAE,GAAGonJ,GAAGl/H,EAAEloB,IAAI,EAAEqnJ,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAG0jB,EAAE,IAAI1jB,GAAGA,EAAE7uI,IAAIA,EAAEtC,GAAG,EAAE60J,EAAE1jB,GAAG4jB,EAAE3yJ,EAAEwtK,GAAG,KAAK,EAAExtK,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,EAAEy+B,GAAGr7I,EAAE+7I,GAAG/jG,EAAEwoF,EAAE5jB,EAAE58G,EAAE,IAAIugI,EAAE3jB,EAAEnxI,EAAEsqE,EAAE6mE,EAAE5kE,EAAEh4C,EAAE48G,EAAEv7G,EAAE20C,EAAE,EAAE4mE,GAAGA,GAAG58G,EAAEn3B,KAAK,GAAGsQ,EAAE6mB,EAAE7mB,EAAE,KAAK,EAAEyjI,EAAE,EAAE,EAAEA,GAAG7mE,EAAE,EAAEslG,GAAGh6I,EAAEg6I,IAAIr7I,EAAE7mB,GAAG,EAAEwhK,GAAGoB,GAAG16I,EAAExzB,GAAGkoE,EAAE10C,IAAI,EAAErB,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAG7uI,EAAE,IAAI6uI,EAAE0jB,GAAGj/H,EAAE51B,GAAG,EAAEmxI,GAAG7uI,EAAEyyJ,EAAEma,GAAG,KAAK,EAAEna,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,EAAE4jB,EAAEzyJ,EAAEuyJ,EAAE1jB,EAAE/uI,EAAEkuK,GAAG/jG,EAAEjqE,EAAE6uI,EAAE2jB,EAAE,IAAIxyJ,EAAEtC,EAAEusE,EAAEvE,EAAEmpE,GAAG58G,EAAEk2C,GAAGj2C,EAAE,EAAEi2C,EAAE/8D,EAAEs6D,EAAEgpB,EAAE,EAAEmgD,GAAGA,EAAEzjI,IAAI,EAAEs6D,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,IAAI2jB,EAAEl+J,EAAE+V,EAAE,KAAK,IAAI,EAAEgoB,EAAE27I,IAAI5iK,EAAEs6D,EAAEt6D,EAAE9W,EAAE+V,EAAE,KAAK,GAAG,GAAG4hF,GAAG9jB,EAAE/8D,IAAI,EAAE+8D,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAGx8G,EAAE,IAAIw8G,EAAEgkB,GAAG3gI,EAAEx0B,GAAG,EAAEuuF,EAAEvmB,EAAEwC,EAAE71C,EAAE,EAAEqzC,EAAEsoG,GAAG/jG,EAAEvE,GAAGmpE,EAAEnpE,IAAI,EAAEwC,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,GAAG58G,EAAE,IAAI4gI,EAAEhkB,EAAE2jB,EAAEl+J,EAAE+V,EAAE,KAAK,GAAGqkF,EAAEhpB,EAAEuE,EAAEgiB,EAAEA,EAAE55D,EAAEw8G,GAAG3mE,EAAExqE,GAAGyqE,EAAE,EAAE0mE,GAAGA,GAAG58G,EAAEyzC,EAAEt6D,EAAE,KAAK,EAAEs6D,IAAI,EAAEmpE,EAAE,EAAE,EAAEA,GAAG2jB,EAAE,EAAE3jB,GAAGnpE,GAAGrzC,EAAE/9B,EAAE+V,EAAE,KAAK,IAAI4nB,EAAE,KAAK,EAAEA,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAE1mE,EAAEzC,EAAEzzC,EAAEC,EAAEA,EAAE28G,EAAE5iD,EAAE+hF,GAAG/hF,EAAEvmB,EAAEzzC,EAAE48G,EAAE,IAAIA,GAAGA,EAAEgkB,IAAIA,EAAEn1J,GAAG,EAAEmxI,GAAGnpE,EAAEuE,GAAGh4C,EAAEg6D,GAAG,KAAK,EAAEh6D,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAE58G,EAAEyzC,EAAEA,EAAEwC,EAAEA,EAAE2mE,EAAEngD,EAAEmgD,EAAEm/B,GAAGt/E,EAAEz8D,EAAEyzC,EAAEmpE,EAAE,IAAIzjI,EAAEyjI,EAAEtqE,EAAEsqE,EAAEtqE,EAAE,EAAEsqE,GAAGnpE,EAAEhoE,GAAG8/B,EAAE,EAAEqxG,EAAE2jB,GAAGpnJ,IAAI,EAAEm5D,IAAI,EAAEsqE,EAAE,EAAE,EAAEA,GAAG,EAAEtqE,EAAEypG,IAAI5iK,EAAEoyB,EAAE+mC,EAAElyC,EAAE,GAAGy6I,IAAIz6I,EAAEA,IAAI,EAAEjnB,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAGqN,EAAE,IAAIrN,EAAE0jB,GAAGrW,EAAEx+I,GAAG,EAAEmxI,EAAE4jB,IAAI,GAAGj1H,EAAEi1H,EAAEluF,EAAE,KAAK,EAAEsqE,EAAE,EAAE,EAAEA,EAAE4jB,EAAEj1H,EAAEA,EAAEkoC,EAAEA,EAAEmpE,EAAEngD,EAAElxD,EAAEwwI,GAAGt/E,EAAE+jE,EAAEj1H,EAAEqxG,EAAE,IAAI2jB,EAAE3jB,EAAEnxI,EAAE60J,EAAE1jB,EAAE5kE,EAAEzsC,EAAEqxG,EAAEx8G,EAAEy1C,EAAE,EAAE+mE,GAAGA,GAAGzjI,GAAGoyB,EAAEgmH,GAAGp4I,EAAE,KAAK,EAAEoyB,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG0jB,EAAE,EAAE7jE,EAAEr8D,EAAEq8D,EAAEtjF,EAAE,EAAE0hK,GAAGkB,GAAG37I,EAAEkyC,GAAGguF,EAAElgI,IAAI,EAAEjnB,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAGqN,EAAE,IAAIrN,EAAEnpE,GAAGrzC,EAAE30B,GAAG,EAAEmxI,EAAE4jB,IAAI,GAAGvW,EAAEuW,EAAEqa,GAAG,KAAK,EAAEj+B,EAAE,EAAE,EAAEA,EAAE4jB,EAAEvW,EAAEA,EAAErN,EAAEtqE,EAAEypG,GAAG/jG,EAAEwoF,EAAE5jB,EAAE2jB,EAAE,IAAI9sF,EAAEhoE,EAAE8/B,EAAEnV,EAAE4hD,EAAErsE,EAAEixI,EAAExmH,EAAE+/C,EAAE,EAAE//C,EAAEjd,EAAExN,EAAEioE,EAAE,EAAEgpE,GAAGA,EAAEzjI,IAAI,EAAExN,IAAI,EAAEixI,EAAE,EAAE,EAAEA,IAAI2jB,EAAEl+J,EAAE+V,EAAE,KAAK,IAAI,EAAEw7D,EAAEmoG,IAAI5iK,EAAExN,EAAEwN,EAAE9W,EAAE+V,EAAE,KAAK,GAAG,GAAGuiK,IAAIhvK,EAAEyqB,IAAI,EAAEjd,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAE3mE,GAAG7/C,EAAE3qB,GAAG,EAAE0qE,EAAEymE,GAAGv7G,EAAErB,EAAE4zC,EAAE,KAAK,EAAE5zC,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAE2jB,EAAE3jB,EAAEm/B,GAAG/jG,EAAE32C,EAAEu7G,EAAErxG,EAAE,IAAIvL,EAAE48G,EAAErxG,EAAEqxG,EAAEzjI,EAAE,EAAEyjI,GAAG3mE,EAAExqE,GAAGE,EAAE,EAAEixI,EAAE6U,GAAGzxH,IAAI,EAAEuL,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG,EAAE6U,EAAE9lJ,EAAE+F,EAAE65B,EAAE,EAAEqoC,EAAEmoG,GAAGpwK,EAAEioE,GAAG5zC,EAAEtuB,IAAI,EAAE/F,IAAI,EAAEixI,EAAE,EAAE,EAAEA,GAAGxmH,EAAE,IAAIwmH,EAAEzmE,GAAG5qC,EAAE9/B,GAAG,EAAE2qB,EAAE2lJ,GAAGxb,GAAGpqF,EAAExqE,EAAE01B,EAAEuyC,EAAE,IAAIliE,EAAEukE,IAAIA,EAAE50C,IAAI,EAAE80C,IAAI,EAAEymE,EAAE,EAAE,EAAEA,GAAG,IAAIv7G,EAAE51B,EAAEE,EAAEgoE,EAAE4sF,EAAE3xI,EAAEguH,EAAEjpE,EAAEoC,EAAE,EAAEpC,EAAEjiE,EAAEkd,EAAEysJ,GAAG,EAAEz+B,GAAGA,EAAElrI,IAAI,EAAEkd,IAAI,EAAEguH,EAAE,EAAE,EAAEA,IAAIzjI,EAAE9W,EAAE+V,EAAE,KAAK,IAAI,EAAEe,EAAE4iK,IAAIrqK,EAAEkd,EAAEld,EAAErP,EAAE+V,EAAE,KAAK,GAAG,GAAG4hF,GAAGprE,EAAEld,IAAI,EAAEiiE,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,IAAIhkB,EAAEyjB,GAAG1sF,EAAEloE,GAAG,EAAE40J,EAAE10J,EAAEA,EAAEixI,EAAErsD,IAAI,GAAGqwE,EAAErwE,EAAEp3E,EAAE,KAAK,EAAEyjI,EAAE,EAAE,EAAEA,EAAErsD,EAAEwrF,GAAGxb,EAAEK,EAAEP,EAAEzjB,EAAE,IAAI5iD,EAAE4iD,EAAEnxI,EAAEsqE,EAAE6mE,EAAE5kE,EAAEuY,EAAEqsD,EAAEhuH,EAAEu5H,EAAE,EAAEvL,GAAGA,GAAGrsD,EAAEuqF,MAAM,GAAGza,EAAE9vE,EAAE7+E,EAAE,KAAK,EAAEkrI,EAAE,EAAE,EAAEA,GAAG7mE,EAAE,EAAEslG,GAAGzsJ,EAAEopD,GAAGuY,EAAE8vE,GAAG,EAAEE,EAAEwb,GAAGntJ,EAAEzV,GAAG48D,EAAEnnD,IAAI,EAAE2hE,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAGjpE,EAAE,IAAIipE,EAAEjxI,GAAG4kF,EAAE9kF,GAAG,EAAEmxI,GAAGhuH,EAAEgyI,EAAEL,EAAE,KAAK,EAAEK,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,EAAEgkB,EAAEhyI,EAAEyxI,EAAEzjB,EAAEhuH,EAAEmtJ,GAAG/jG,EAAEppD,EAAEguH,EAAE5iD,EAAE,IAAIrmB,EAAEloE,EAAEE,EAAEoC,EAAE6uI,EAAE7uI,EAAE2tK,GAAG,EAAE9+B,EAAE38G,IAAIvuB,EAAEmvJ,KAAK,GAAG1nJ,EAAEzH,EAAE7D,EAAE,KAAK,EAAE+uI,EAAE,EAAE,EAAEA,GAAG,EAAEx2H,EAAE21J,IAAIrqK,EAAE3D,EAAEmoE,EAAE/8D,EAAE,GAAGunJ,GAAG3yJ,EAAE2D,IAAI,EAAEwkE,IAAI,EAAE0mE,EAAE,EAAE,EAAEA,GAAGx2H,EAAE,IAAIw2H,EAAEmC,GAAG7oE,EAAEzqE,GAAG,EAAE0N,EAAExN,EAAEA,EAAEixI,EAAEv2H,IAAI,GAAG4Z,EAAE5Z,EAAED,EAAE,KAAK,EAAEw2H,EAAE,EAAE,EAAEA,EAAEzjI,EAAE8mB,EAAE87I,IAAI11J,EAAE4Z,GAAGpyB,EAAEsL,EAAEyjI,EAAE,IAAI/uI,EAAE+uI,EAAEnxI,EAAEuuF,EAAE5zE,EAAEw2H,EAAE7uI,EAAEqtK,GAAG,EAAEx+B,GAAGA,GAAGx2H,GAAG6Z,EAAE6gI,GAAGpvJ,EAAE,KAAK,EAAEuuB,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAG/uI,EAAE,EAAEkxI,EAAEhxI,EAAEoL,EAAEiN,EAAE,EAAEA,EAAE21J,GAAG/hF,EAAEjsF,GAAG2D,EAAEwkE,IAAIA,EAAEnoE,IAAI,EAAEqY,IAAI,EAAEw2H,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEjxI,GAAGs0B,EAAEx0B,GAAG,EAAEoC,EAAEkuK,IAAIrqK,EAAE3D,EAAEsY,EAAED,EAAE,GAAGjN,GAAGpL,EAAEsY,IAAI,EAAE3U,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAG/uI,EAAE,IAAIlC,EAAEF,EAAE4a,EAAEgb,EAAE24D,EAAE5jE,EAAEsqI,EAAEt6I,EAAEw2H,EAAEv7G,EAAEi/H,EAAE,EAAE1jB,GAAGA,GAAGx2H,EAAEgQ,EAAEqmE,EAAE,KAAK,EAAErmE,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,IAAIzjI,EAAE9W,EAAE+V,EAAE,KAAK,IAAI,EAAEgO,EAAE21J,GAAGrb,GAAGJ,EAAElqI,EAAEhQ,EAAE/jB,EAAE+V,EAAE,KAAK,GAAG,IAAIge,EAAEhQ,IAAI,EAAEgQ,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,GAAG38G,EAAE,IAAI28G,EAAEyjB,GAAGh/H,EAAE51B,GAAG,EAAE0N,EAAEkN,EAAEA,EAAEu2H,GAAG38G,EAAE2gI,EAAEx6I,EAAE,KAAK,EAAEw6I,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,EAAEA,EAAEm/B,GAAG/hF,EAAE/5D,EAAE9mB,EAAEyjI,EAAE,IAAI5iD,EAAE33F,EAAE+V,EAAE,KAAK,GAAGe,EAAEyjI,EAAEyjB,EAAEC,EAAEA,EAAE1jB,EAAEyjB,EAAEA,EAAEzjB,EAAE,EAAEA,GAAGgkB,EAAEn1J,GAAG2qB,EAAE,EAAEwmH,GAAGA,EAAEyjB,IAAI,EAAEC,IAAI,EAAE1jB,EAAE,EAAE,EAAEA,GAAG5iD,EAAE,EAAE0mE,EAAEtqI,EAAEiqI,EAAEh+J,EAAE+V,EAAE,KAAK,GAAG,EAAEqkF,EAAEs/E,GAAG3lJ,EAAEhQ,GAAGk6I,EAAElqI,IAAI,EAAEiqI,IAAI,EAAEzjB,EAAE,EAAE,EAAEA,GAAGv7G,EAAE,IAAIu7G,EAAEv2H,GAAGg6I,EAAE50J,GAAG,EAAE2qB,EAAE2lJ,GAAG5iK,GAAGkN,EAAE+P,EAAE6J,EAAEw8D,EAAE,IAAIx8D,EAAE5Z,IAAI,EAAE4Z,IAAI,EAAE28G,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,IAAIv/H,EAAE51B,EAAEm1J,EAAEjtF,EAAEqmB,EAAEprE,EAAEopD,EAAEtmE,EAAEkrI,EAAEjpE,EAAE3zC,EAAE,EAAE48G,GAAGA,GAAGlrI,EAAEkd,EAAE6iI,EAAE,KAAK,EAAE7iI,IAAI,EAAEguH,EAAE,EAAE,EAAEA,IAAIzjI,EAAEwhK,GAAGt4K,EAAE+V,EAAE,KAAK,IAAI,EAAE1G,EAAEqqK,IAAI/7I,EAAEpR,GAAGxI,EAAE/jB,EAAE+V,EAAE,KAAK,IAAI1G,EAAE,GAAGmpK,IAAIjsJ,EAAEA,IAAI,EAAEld,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGx8G,EAAE,IAAIw8G,GAAGA,EAAE7uI,IAAIA,EAAEtC,GAAG,EAAE0N,EAAEynJ,EAAEA,EAAEhkB,GAAGjpE,EAAEqE,EAAEtmE,EAAE,KAAK,EAAEA,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,EAAEA,EAAEm/B,GAAG/hF,EAAErmB,EAAEx6D,EAAEyjI,EAAE,IAAI5iD,EAAE33F,EAAE+V,EAAE,KAAK,GAAG4/D,EAAE4kE,EAAEzjI,EAAEzH,EAAEA,EAAEsuB,EAAEA,EAAE48G,EAAElrI,EAAEA,EAAEkrI,EAAE,EAAEA,GAAGx8G,EAAE30B,GAAGmjB,EAAE,EAAEguH,GAAGA,EAAElrI,IAAI,EAAEsuB,IAAI,EAAE48G,EAAE,EAAE,EAAEA,GAAG5iD,EAAE,EAAEy3D,EAAE7iI,EAAEld,EAAErP,EAAE+V,EAAE,KAAK,GAAG,EAAE1G,EAAEqqK,GAAG5iK,EAAEyV,GAAGoR,EAAEpR,IAAI,EAAEld,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAG7uI,EAAE,IAAI6uI,EAAEgkB,GAAGznJ,EAAE1N,GAAG,EAAEm1J,EAAE7yJ,EAAE4lE,EAAEjiE,EAAE,EAAE3D,EAAEguK,GAAG/jG,EAAEjqE,GAAG6gB,EAAEwR,IAAIA,EAAEuzC,IAAI,EAAE5lE,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,GAAG,IAAIhuH,EAAEnjB,EAAEusE,EAAEnqE,EAAE+uI,EAAE7mE,EAAEC,EAAE,EAAE4mE,GAAGA,GAAG/uI,EAAEhF,KAAK,GAAGmxF,EAAEnsF,EAAEwtK,GAAG,KAAK,EAAEz+B,EAAE,EAAE,EAAEA,IAAIjpE,EAAEhoE,GAAG,EAAEquF,EAAE+hF,IAAIpwK,EAAEoqE,EAAEiC,GAAGnqE,EAAEmsF,GAAG,GAAGpmB,GAAGmC,EAAEA,IAAI,EAAEloE,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,EAAEqN,GAAG1+G,EAAE9/B,GAAG,EAAEmxI,EAAE4jB,IAAI,GAAG3yJ,EAAE2yJ,EAAExmE,EAAE,KAAK,EAAE4iD,EAAE,EAAE,EAAEA,EAAE4jB,EAAE3yJ,EAAEA,EAAE8lE,EAAEA,EAAEipE,EAAE/uI,EAAEkuK,GAAG/jG,EAAEwoF,EAAE3yJ,EAAE+uI,EAAE,IAAIqN,EAAErN,EAAEnxI,EAAEusE,EAAEnqE,EAAE+uI,EAAE7mE,EAAE6mE,EAAE,EAAEA,GAAGA,GAAG/uI,EAAEA,EAAElC,EAAE,KAAK,EAAEA,IAAI,EAAEixI,EAAE,EAAE,EAAEA,IAAIhpE,EAAEvxE,EAAE+V,EAAE,KAAK,IAAI,EAAEijK,GAAG1vK,GAAGoqE,EAAEloE,GAAGxL,EAAE+V,EAAE,KAAK,GAAG,EAAEw7D,EAAEmoG,GAAGpwK,EAAEquF,GAAGjkB,EAAEA,IAAI,EAAEpqE,IAAI,EAAEixI,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,EAAEjpE,GAAGpoC,EAAE9/B,GAAG,EAAEuuF,EAAE+hF,GAAG/jG,GAAGrE,EAAEhoE,EAAE60J,EAAE5sF,EAAE,IAAI4sF,EAAEA,IAAI,EAAE7sF,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAGqN,EAAE,IAAIt+I,EAAEF,EAAEw+I,EAAEx2E,EAAEuE,EAAE1F,EAAEsqE,EAAEnpE,EAAE6nG,GAAG,EAAE1+B,EAAE1mE,IAAI5D,GAAGzkE,EAAEskJ,GAAG7/E,EAAE,KAAK,EAAEzkE,IAAI,EAAE+uI,EAAE,EAAE,EAAEA,GAAG,EAAErsD,EAAEwrF,IAAIluK,EAAE4lE,EAAEsrE,EAAEzsE,EAAE,GAAGiuF,GAAG9sF,EAAEA,IAAI,EAAEsrE,IAAI,EAAEnC,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,IAAIqsD,EAAE3mE,GAAGC,EAAEzqE,GAAG,EAAE0qE,EAAEymE,EAAEzmE,IAAI,GAAG4oE,EAAE5oE,EAAEoa,EAAE,KAAK,EAAEqsD,EAAE,EAAE,EAAEA,EAAEtqE,EAAE23E,EAAE8xB,GAAG/jG,EAAE+mE,EAAEnC,EAAEqN,EAAE,IAAIsW,EAAE3jB,EAAEnxI,EAAEwqE,EAAE2mE,EAAE5kE,EAAEuY,EAAEqsD,EAAEnpE,EAAEgoG,GAAG,EAAE7+B,GAAGA,GAAGrsD,EAAEomE,KAAK,GAAG1M,EAAE15D,EAAE1iF,EAAE,KAAK,EAAE+uI,EAAE,EAAE,EAAEA,GAAG3mE,EAAE,EAAEA,EAAExC,EAAEnB,GAAGie,EAAE05D,GAAG,EAAEp8I,EAAEkuK,GAAG/jG,EAAEvE,GAAG5lE,EAAEqoE,IAAIA,EAAEzC,IAAI,EAAE8c,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEzmE,GAAGoa,EAAE9kF,GAAG,EAAEmxI,GAAGnpE,EAAEsrE,EAAElxI,EAAE,KAAK,EAAEkxI,IAAI,EAAEnC,EAAE,EAAE,EAAEA,EAAEmC,EAAEtrE,EAAE0C,EAAEymE,EAAEqN,EAAE8xB,GAAGtoG,EAAEnB,EAAEsqE,EAAE2jB,EAAE,IAAIjuF,EAAEsqE,EAAEnxI,EAAEgoE,EAAEmpE,EAAE2jB,EAAE7uJ,EAAEkrI,EAAE0jB,EAAEgb,GAAG,EAAEhb,EAAE5uJ,EAAEgvJ,EAAEvO,EAAE,EAAEvV,GAAGA,EAAElrI,IAAI,EAAEygJ,IAAI,EAAEvV,EAAE,EAAE,EAAEA,GAAGnpE,EAAE,EAAEt6D,EAAE4iK,GAAGxb,GAAG7uJ,EAAEygJ,EAAEzgJ,EAAEu4I,EAAE,IAAIkI,EAAEmO,IAAI,EAAE5uJ,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGzjI,EAAE,IAAIyjI,EAAE4jB,GAAG/sF,EAAEhoE,GAAG,EAAE+0J,EAAE5jB,EAAEjpE,IAAI,GAAG2sF,EAAE3sF,EAAEx6D,EAAE,KAAK,EAAEyjI,EAAE,EAAE,EAAEA,EAAE8jB,EAAE9jB,EAAEm/B,GAAG9xB,GAAGt2E,EAAE2sF,GAAGhuF,EAAEsqE,EAAE,IAAIqN,EAAErN,EAAElrI,EAAEkrI,EAAElrI,EAAE,EAAEkrI,GAAG0jB,EAAE70J,GAAG0mJ,EAAE,EAAEvV,EAAE+9B,IAAIjpK,IAAI,EAAEu4I,IAAI,EAAErN,EAAE,EAAE,EAAEA,GAAG,EAAEtqE,EAAEypG,IAAIzpG,EAAEn5D,IAAIA,EAAEg5I,EAAEzgJ,EAAE0U,EAAE,IAAI6jI,EAAE7jI,IAAI,EAAEjN,IAAI,EAAEyjI,EAAE,EAAE,EAAEA,GAAGnpE,EAAE,IAAImpE,EAAE4jB,GAAGp6I,EAAE3a,GAAG,EAAEkoE,EAAEooG,GAAGrb,GAAGF,EAAErO,EAAEx+E,EAAErB,EAAE,IAAI5gE,EAAE4uJ,IAAIA,EAAE3sF,IAAI,EAAE6sF,IAAI,EAAE5jB,EAAE,EAAE,EAAEA,GAAG,IAAInpE,EAAEhoE,EAAE0mJ,EAAE9wH,EAAEk/H,EAAEnqI,EAAEwmH,EAAEv7G,EAAErB,EAAE,EAAEqB,EAAE3vB,EAAE0kB,EAAEq7H,EAAE,EAAE7U,GAAGA,EAAElrI,IAAI,EAAE0kB,IAAI,EAAEwmH,EAAE,EAAE,EAAEA,IAAI8jB,EAAEr+J,EAAE+V,EAAE,KAAK,IAAI,EAAEmzB,EAAEwwI,IAAIrqK,EAAE0kB,EAAE1kB,EAAErP,EAAE+V,EAAE,KAAK,GAAG,GAAGw7D,GAAGx9C,EAAEiL,IAAI,EAAE3vB,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAGrxG,EAAE,IAAIqxG,EAAEzmE,GAAG90C,EAAE51B,GAAG,EAAEmxI,GAAG58G,EAAE++G,EAAExzG,EAAE,KAAK,EAAEwzG,IAAI,EAAEnC,EAAE,EAAE,EAAEA,EAAEmC,EAAE/+G,EAAEm2C,EAAEg8E,EAAEA,EAAEvV,EAAEA,EAAEm/B,GAAGxb,EAAEvgI,EAAEm2C,EAAEymE,EAAE,IAAI6U,EAAEpvJ,EAAE+V,EAAE,KAAK,GAAGmoJ,EAAE3jB,EAAE8jB,EAAEn1H,EAAEvL,EAAE48G,EAAErxG,EAAEqxG,EAAElrI,EAAE,EAAEkrI,GAAGzmE,EAAE1qE,GAAG2qB,EAAE,EAAEwmH,GAAGA,EAAE58G,IAAI,EAAEuL,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG6U,EAAE,EAAEiP,EAAEqb,GAAGrb,GAAGhvJ,EAAE0kB,GAAG4J,EAAEuL,GAAGlpC,EAAE+V,EAAE,KAAK,GAAG,IAAImzB,EAAElK,IAAIA,EAAErB,IAAI,EAAEtuB,IAAI,EAAEkrI,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAEuV,GAAGV,EAAEhmJ,GAAG,EAAEmxI,GAAGxmH,EAAE2oH,EAAE2hB,EAAE,KAAK,EAAE3hB,IAAI,EAAEnC,EAAE,EAAE,EAAEA,EAAEmC,EAAE3oH,EAAE4J,EAAEm2C,EAAEA,EAAEymE,EAAE58G,EAAE+7I,GAAGxb,EAAEnqI,EAAE4J,EAAE48G,EAAE,IAAIuV,EAAE1mJ,EAAE2qB,EAAExH,EAAE2xI,EAAExyJ,EAAE6uI,EAAEhuH,EAAEmnD,EAAE,EAAE6mE,GAAGA,GAAGrxG,EAAEx9B,EAAEstK,GAAG,KAAK,EAAEttK,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,IAAI0+B,GAAGj5K,EAAE+V,EAAE,KAAK,IAAI,EAAEm4E,EAAEwrF,IAAIxwI,EAAEx9B,GAAG6gB,EAAE2c,GAAGlpC,EAAE+V,EAAE,KAAK,GAAG,GAAGvK,GAAGE,EAAE6gB,IAAI,EAAE7gB,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,GAAGrsD,EAAE,IAAIqsD,EAAE38G,GAAGrR,EAAEnjB,GAAG,EAAEmxI,EAAEv2H,IAAI,GAAG0vD,EAAE1vD,EAAEkqE,EAAE,KAAK,EAAEqsD,EAAE,EAAE,EAAEA,EAAEv2H,EAAE0vD,EAAEA,EAAE3/C,EAAEA,EAAEwmH,EAAE/uI,EAAEkoE,EAAEgmG,GAAGxb,EAAEl6I,EAAE0vD,EAAE6mE,EAAE,IAAI0+B,GAAG1+B,EAAEnxI,EAAEw0B,EAAE28G,EAAE2jB,EAAExqF,EAAE6mE,EAAE7uI,EAAE0tK,GAAG,EAAE7+B,GAAGA,GAAG7mE,EAAExqC,EAAEorH,EAAE,KAAK,EAAEA,IAAI,EAAE/Z,EAAE,EAAE,EAAEA,GAAG38G,EAAE,EAAEpyB,EAAEkuK,IAAIxwI,EAAEorH,EAAE9oJ,EAAEkoE,EAAE,GAAGwa,GAAG1iF,EAAE+gB,IAAIA,EAAEmnD,IAAI,EAAExqC,IAAI,EAAEqxG,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAExmH,GAAG6J,EAAEx0B,GAAG,EAAEsqE,EAAE6mE,EAAEv2H,IAAI,GAAGswI,EAAEtwI,EAAExY,EAAE,KAAK,EAAE+uI,EAAE,EAAE,EAAEA,EAAE+Z,EAAEolB,GAAGxb,GAAGl6I,EAAEswI,GAAG/Z,EAAE0+B,GAAG,IAAIvtK,EAAEtC,EAAEmxI,EAAE1mE,GAAG9/C,EAAEzqB,GAAG,EAAEuqE,EAAEqa,EAAEta,EAAE+jB,EAAE,EAAE4iD,GAAGA,EAAErsD,IAAI,EAAEta,IAAI,EAAE2mE,EAAE,EAAE,EAAEA,IAAI0+B,GAAGj5K,EAAE+V,EAAE,KAAK,IAAI,EAAEioJ,EAAE0b,IAAIxrF,EAAE5kF,EAAE4kF,EAAEluF,EAAE+V,EAAE,KAAK,GAAG,GAAGqkF,GAAG9wF,EAAEuqE,IAAI,EAAEqa,IAAI,EAAEqsD,EAAE,EAAE,EAAEA,GAAGyjB,EAAE,IAAIzjB,EAAEx8G,GAAG81C,EAAEzqE,GAAG,EAAE20B,EAAEhK,EAAEA,EAAEwmH,GAAG3mE,EAAE2qF,EAAEP,EAAE,KAAK,EAAEO,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,EAAEx8G,EAAE27I,GAAG9lG,EAAE+jB,EAAE55D,EAAEw8G,EAAE,IAAIngD,EAAEmgD,EAAEnxI,EAAEm1J,EAAEhkB,EAAEA,EAAEjxI,EAAE+vK,GAAG,EAAE9+B,GAAGA,GAAGrsD,EAAEA,EAAEswE,EAAE,KAAK,EAAEA,IAAI,EAAEjkB,EAAE,EAAE,EAAEA,GAAGgkB,EAAE,EAAE5mE,EAAE+hF,IAAInb,EAAEC,EAAEtwE,EAAEnwD,EAAE,GAAGigI,GAAGrmE,EAAE9jB,IAAIA,EAAEqa,IAAI,EAAEqwE,IAAI,EAAEhkB,EAAE,EAAE,EAAEA,GAAG,IAAIA,EAAExmH,GAAGslJ,GAAGjwK,GAAG,EAAE8kF,EAAEqsD,EAAE3mE,IAAI,GAAG4qF,EAAE5qF,EAAE+jB,EAAE,KAAK,EAAE4iD,EAAE,EAAE,EAAEA,EAAEjxI,EAAEowK,GAAG37I,GAAG61C,EAAE4qF,GAAGjkB,EAAEngD,EAAE,IAAIrmE,EAAE3qB,EAAEmxI,EAAEqN,EAAEp0E,EAAE,EAAE+mE,GAAGA,GAAGx8G,EAAEjnB,EAAEo4I,EAAE,KAAK,EAAEA,IAAI,EAAE3U,EAAE,EAAE,EAAEA,IAAIyjB,EAAElO,GAAG,EAAEvV,EAAEx8G,IAAI,GAAGmxH,EAAEnxH,EAAEJ,EAAE,KAAK,EAAE48G,EAAE,EAAE,EAAEA,EAAEx8G,EAAEmxH,EAAEA,EAAE3U,EAAEA,EAAE5mE,EAAE4mE,EAAE,EAAE/zI,EAAE+zI,GAAGyjB,EAAEx3J,EAAEu3B,EAAE,KAAK,EAAEv3B,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,EAAEzjI,EAAEknJ,EAAEA,EAAE0b,GAAG37I,EAAE45D,EAAEu3D,EAAEmqB,GAAG,IAAI9+B,EAAE7mE,GAAG31C,EAAE30B,GAAG,EAAEw+I,EAAE8xB,IAAIhmG,EAAEw7E,EAAElrI,EAAEg6I,EAAE,GAAGrgI,GAAGuxH,EAAElrI,IAAI,EAAE0vD,IAAI,EAAE6mE,EAAE,EAAE,EAAEA,GAAGuV,EAAE,IAAIvV,GAAG58G,EAAEv0B,GAAG5C,EAAE,EAAE+zI,GAAGv2H,EAAE4jI,KAAK,GAAGkI,EAAEh5I,EAAEkN,EAAE,KAAK,EAAEu2H,EAAE,EAAE,EAAEA,EAAEv2H,EAAE8rI,EAAE9vJ,EAAE+V,GAAG,GAAGiO,EAAEhkB,EAAE+V,EAAE,GAAG,GAAGwkI,EAAEikB,EAAEjkB,EAAEA,EAAEm/B,GAAG11J,EAAEg6I,EAAEzjB,EAAEx8G,EAAE,IAAIigI,EAAElO,EAAE1mJ,EAAEpJ,EAAE+V,EAAE,KAAK,GAAGwkI,EAAEv6I,EAAE+V,EAAE,KAAK,GAAGioJ,EAAEx3J,EAAE+zI,EAAE7mE,EAAE6mE,EAAE7mE,EAAE,EAAE6mE,EAAEyjB,EAAE9O,EAAE,EAAElvJ,EAAE+V,EAAE,IAAI,GAAG29D,EAAE6mE,EAAE7mE,IAAI,EAAEltE,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,EAAEv6I,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEi/B,GAAGzjK,EAAE0jK,GAAGC,GAAG9xB,EAAEl0E,EAAE6mE,EAAE58G,EAAE,IAAI39B,EAAEw5K,GAAG,IAAI,GAAGC,GAAGz5K,EAAE+V,EAAE,IAAI,GAAG3M,EAAE8lJ,EAAExjJ,EAAEiyB,EAAE22H,EAAE/Z,EAAEv7G,EAAEtzB,EAAE,EAAE6uI,GAAGA,GAAG/zI,EAAE6I,EAAEilJ,EAAE,KAAK,EAAEA,IAAI,EAAE/Z,EAAE,EAAE,EAAEA,IAAI7mE,EAAE1zE,EAAE+V,EAAE,KAAK,IAAI,EAAEvP,EAAE+zI,GAAG+Z,EAAE9tJ,EAAExG,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEvP,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,EAAEv7G,EAAE06I,GAAGplB,EAAErkF,EAAEsqE,EAAEx2H,EAAE,IAAIw2H,EAAErsD,GAAGxa,EAAEtqE,GAAG,EAAEiG,EAAE6/I,EAAEA,EAAE3U,EAAE3mE,IAAI,GAAGloE,EAAEkoE,EAAE50C,EAAE,KAAK,EAAEu7G,EAAE,EAAE,EAAEA,EAAErsD,EAAEwrF,GAAG/7I,GAAGi2C,EAAEloE,GAAG2D,EAAEkrI,EAAE,IAAIA,EAAE/zI,GAAGw3J,EAAE50J,GAAG,EAAEmxI,GAAG7uI,EAAEwiF,EAAEomE,EAAE,KAAK,EAAEA,IAAI,EAAE/Z,EAAE,EAAE,EAAEA,EAAE+Z,GAAG9tJ,EAAExG,EAAE+V,EAAE,KAAK,IAAIrK,EAAE,EAAE6uI,EAAEv6I,EAAE+V,EAAE,KAAK,GAAGwkI,EAAE,EAAEA,EAAE+Z,IAAI,EAAE9tJ,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,EAAEv6I,EAAE+V,EAAE,GAAG,GAAGu+I,EAAEt0J,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEA,EAAEm/B,GAAG16I,EAAEs1H,EAAE/Z,EAAE7mE,EAAE,IAAIhoE,EAAEokJ,EAAE1mJ,EAAEpJ,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEv6I,EAAE+V,EAAE,KAAK,GAAGrK,EAAE4oJ,EAAE/Z,EAAE/zI,EAAE+zI,EAAE3mE,EAAE,EAAE2mE,EAAE7uI,EAAEwjJ,EAAE,EAAEA,EAAE1oJ,EAAExG,EAAE+V,EAAE,IAAI,GAAGm5I,EAAE3U,EAAE+Z,IAAI,EAAEpF,IAAI,EAAE3U,EAAE,EAAE,EAAEA,EAAEv6I,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEi/B,GAAGzjK,EAAE0jK,GAAGC,GAAGxrF,EAAEghE,EAAE3U,EAAEyjB,EAAE,IAAIh+J,EAAEw5K,GAAG,IAAI,GAAGC,GAAGz5K,EAAE+V,EAAE,IAAI,GAAG3M,EAAEiG,EAAEovJ,EAAElkB,EAAEhuH,EAAEwH,EAAE,EAAEwmH,GAAGA,GAAG+Z,EAAEprH,EAAE5/B,EAAE,KAAK,EAAEA,IAAI,EAAEixI,EAAE,EAAE,EAAEA,IAAI/zI,EAAExG,EAAE+V,EAAE,KAAK,IAAI,EAAEwkI,GAAGuV,EAAEwE,EAAEt0J,EAAE+V,EAAE,KAAK,GAAG,KAAK,EAAEu+I,IAAI,EAAE/Z,EAAE,EAAE,EAAEA,EAAEkkB,EAAE3O,EAAEtpJ,EAAEspJ,EAAEwE,EAAEjlJ,EAAEygJ,EAAE,EAAEA,EAAEvV,EAAEA,EAAEA,EAAEw+B,GAAG,EAAEx+B,EAAE+Z,IAAI,EAAE9tJ,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,EAAE/zI,EAAE8tJ,EAAEA,EAAE/Z,EAAElrI,EAAE7I,EAAEm3B,EAAEr0B,EAAE9C,EAAEkzK,GAAGrb,EAAEI,EAAE3O,EAAEV,EAAE,IAAI7U,EAAE0jB,GAAG30J,EAAEF,GAAG,EAAE2qB,EAAE2lJ,GAAG/7I,GAAGjyB,EAAEokJ,EAAEqO,EAAE33J,EAAE,IAAIspJ,EAAEqO,IAAI,EAAEzyJ,IAAI,EAAE6uI,EAAE,EAAE,EAAEA,GAAGxmH,EAAE,IAAIwmH,GAAGv7G,EAAE51B,GAAGkrJ,EAAE,EAAEA,EAAEmK,EAAEpvJ,GAAGkd,EAAEwH,GAAG,EAAE/zB,EAAE+V,EAAE,IAAI,GAAGu+I,EAAE/Z,EAAEhuH,IAAI,EAAE+nI,IAAI,EAAE/Z,EAAE,EAAE,EAAEA,EAAEv6I,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEA,EAAEm/B,GAAGplB,EAAE9tJ,EAAE+zI,EAAEjxI,EAAE,IAAI4lJ,EAAE9lJ,EAAEpJ,EAAE+V,EAAE,KAAK,GAAGwkI,EAAEv6I,EAAE+V,EAAE,KAAK,GAAGm5I,EAAEoF,EAAE/Z,EAAEkkB,EAAElkB,EAAE7uI,EAAE,EAAE6uI,EAAEuV,EAAEZ,EAAE,EAAEY,EAAE2O,EAAEz+J,EAAE+V,EAAE,IAAI,GAAG+5I,EAAEvV,EAAE+Z,IAAI,EAAExE,IAAI,EAAEvV,EAAE,EAAE,EAAEA,EAAEv6I,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEi/B,GAAGzjK,EAAE0jK,GAAGC,GAAGntJ,EAAEujI,EAAEvV,EAAEv7G,EAAE,IAAIh/B,EAAEw5K,GAAG,IAAI,GAAGC,GAAGz5K,EAAE+V,EAAE,IAAI,GAAG3M,EAAEmxI,EAAEnpE,EAAE00E,EAAE,EAAEvL,GAAGA,GAAG+Z,EAAEhjF,EAAEmnG,GAAG,KAAK,EAAEnnG,IAAI,EAAEipE,EAAE,EAAE,EAAEA,GAAG1mE,EAAE,EAAE4kG,GAAGl+B,EAAEgkB,IAAI,GAAGjK,EAAEiK,EAAEjK,EAAE,KAAK,EAAE/Z,EAAE,EAAE,EAAEA,EAAEjxI,EAAEowK,GAAGplB,EAAE9oJ,EAAE+uI,EAAE38G,EAAE,IAAI28G,EAAEzmE,GAAGpoE,EAAEtC,GAAG,EAAE8lJ,EAAE3U,EAAEmC,IAAI,GAAG+hB,EAAE/hB,EAAEpzI,EAAE,KAAK,EAAEixI,EAAE,EAAE,EAAEA,EAAExmH,EAAE2lJ,GAAGjb,EAAEntF,EAAEF,EAAEmpE,EAAE,IAAIA,EAAEk+B,IAAIlsJ,EAAEnjB,GAAG,EAAEmxI,EAAE+Z,IAAI,GAAG9tJ,EAAEutB,EAAEugI,EAAE,KAAK,EAAE/Z,EAAE,EAAE,EAAEA,EAAE+Z,GAAGmkB,GAAGz4K,EAAE+V,EAAE,KAAK,IAAIvP,EAAE,EAAE+zI,EAAEv6I,EAAE+V,EAAE,KAAK,GAAGwkI,EAAE,EAAEA,EAAE+Z,IAAI,EAAEmkB,KAAK,EAAEl+B,EAAE,EAAE,EAAEA,EAAEv6I,EAAE+V,EAAE,IAAI,GAAGu+I,EAAEt0J,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEA,EAAEm/B,GAAGpwK,EAAEgrJ,EAAE/Z,EAAE7uI,EAAE,IAAI1L,EAAE+V,EAAE,KAAK,GAAGwkI,EAAEk+B,GAAGrvK,EAAEpJ,EAAE+V,EAAE,KAAK,GAAG0iK,GAAGnkB,EAAE/Z,EAAEkkB,EAAE,EAAElkB,EAAE2U,EAAEupB,GAAG,EAAEvpB,EAAEoF,EAAEt0J,EAAE+V,EAAE,IAAI,GAAGm5I,EAAE3U,EAAE2U,IAAI,EAAEuP,IAAI,EAAElkB,EAAE,EAAE,EAAEA,EAAEv6I,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEi/B,GAAGzjK,EAAE0jK,GAAGC,GAAG3lJ,EAAEm7H,EAAE3U,EAAEhuH,EAAE,IAAIvsB,EAAEw5K,GAAG,IAAI,GAAGC,GAAGz5K,EAAE+V,EAAE,IAAI,GAAG3M,EAAEmxI,EAAEv6I,EAAE+V,EAAE,IAAI,IAAIjJ,EAAEymE,EAAE,EAAE,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,EAAEzmE,EAAEymE,EAAE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,IAAIirF,EAAEtP,EAAElvJ,EAAE+V,EAAE,IAAI,IAAIjJ,EAAE,EAAEymE,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,EAAEzmE,EAAEymE,EAAE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,IAAIvvD,EAAEyvD,EAAE,EAAEF,GAAG27E,EAAEz7E,EAAEF,EAAE,EAAE,GAAG27E,IAAI,EAAEz7E,EAAEF,EAAE,EAAE,GAAG27E,IAAI,GAAGz7E,EAAEF,EAAE,EAAE,GAAG27E,IAAI,GAAGz7E,EAAEF,EAAE,EAAE,GAAGgnE,EAAE9mE,EAAEF,EAAE,EAAE,GAAGgnE,IAAI,EAAE9mE,EAAEF,EAAE,EAAE,GAAGgnE,IAAI,GAAG9mE,EAAEF,EAAE,EAAE,GAAGgnE,IAAI,GAAGikB,EAAE,EAAEjkB,GAAG2U,EAAEsP,GAAG,GAAGjrF,EAAE,EAAEu8E,EAAEZ,EAAEn5I,EAAEm5I,EAAE,EAAEoF,EAAEt0J,EAAEkvJ,GAAG,IAAIpiJ,EAAE,EAAEytI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,EAAEztI,EAAEytI,EAAE,EAAE,IAAI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,IAAIk+B,GAAGz4K,GAAGkvJ,EAAEA,IAAI,GAAG,IAAI,GAAGA,EAAElvJ,EAAEkvJ,EAAE,GAAG,GAAGlvJ,EAAE8vJ,EAAE,GAAG,IAAIhjJ,EAAEytI,EAAE,EAAE,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,EAAEztI,EAAEytI,EAAE,EAAE,IAAI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,IAAIuV,EAAEwE,EAAEmkB,GAAGhlG,EAAE,EAAE8mE,GAAGuV,EAAEr8E,EAAE8mE,EAAE,EAAE,GAAGuV,IAAI,EAAEr8E,EAAE8mE,EAAE,EAAE,GAAGuV,IAAI,GAAGr8E,EAAE8mE,EAAE,EAAE,GAAGuV,IAAI,GAAGr8E,EAAE8mE,EAAE,EAAE,GAAG2U,EAAEz7E,EAAE8mE,EAAE,EAAE,GAAG2U,IAAI,EAAEz7E,EAAE8mE,EAAE,EAAE,GAAG2U,IAAI,GAAGz7E,EAAE8mE,EAAE,EAAE,GAAG2U,IAAI,GAAG,IAAI,GAAGsP,EAAEA,EAAE,EAAE,MAAMlzJ,EAAEyK,EAAE,IAAI,EAAE,SAAS69D,EAAEL,EAAEgnE,EAAExkI,EAAEy9D,GAAG,IAAIsyE,EAAE,EAAEryE,EAAE,EAAEE,EAAE,EAAE7mE,EAAE,EAAEuC,EAAE,EAAE0U,EAAE,EAAE4Z,EAAE,EAAE7mB,EAAE,EAAEyV,EAAE,EAAE6kD,EAAE,EAAEpyC,EAAE,EAAEsyC,EAAE,EAAEttD,EAAE,EAAEkqE,EAAE,EAAE5iF,EAAE,EAAEooE,EAAE,EAAEzD,EAAE,EAAEzkE,EAAE,EAAEooE,EAAE,EAAEC,EAAE,EAAEj2C,EAAE,EAAEsL,EAAE,EAAE4qC,EAAE,EAAEkqF,EAAE,EAAEtyJ,EAAE,EAAEqoB,EAAE,EAAEgK,EAAE,EAAEogI,EAAE,EAAEvW,EAAE,EAAEjwD,EAAE,EAAEsmE,EAAE,EAAEvhB,EAAE,EAAE2hB,EAAE,EAAE1oF,EAAE,EAAE4oF,EAAE,EAAEj1J,EAAE,EAAE40J,EAAE,EAAE,IAAI,SAAS3qF,EAAEgnE,GAAG,IAAI,IAAIxkI,EAAE,EAAEy9D,EAAE,EAAEsyE,EAAE,EAAEryE,EAAE,EAAEE,EAAE,EAAEF,EAAEqyE,GAAGtyE,EAAEz9D,GAAG,GAAGw9D,EAAE,EAAEI,EAAEgmG,GAAGp/B,EAAE/mE,EAAE,GAAGxzE,EAAEyzE,GAAG,GAAGE,EAAE3zE,EAAE8lJ,EAAE,GAAG,GAAG18I,EAAE,KAAK,GAAG2M,EAAEA,EAAE,EAAE,OAA3G,CAAmHA,EAAEwkI,GAAGA,EAAE+jB,EAAE9qF,EAAED,EAAE,IAAI51C,EAAE39B,EAAE+V,GAAG,GAAGq7D,EAAEpxE,EAAE+V,EAAE,GAAG,GAAGy9D,EAAE,IAAI,CAAC,GAAGsyE,EAAE4zB,GAAGluK,EAAExL,GAAG2zE,EAAE4mE,GAAG,IAAI,GAAGhuH,EAAEvsB,EAAE2zE,EAAE,IAAI,GAAG,IAAI3vD,EAAE5a,EAAE08I,EAAE4zB,GAAGluK,EAAE+gB,EAAE,IAAIu5H,EAAEpyE,EAAEtqE,EAAE4a,EAAEyvD,EAAE91C,EAAEA,EAAE+7I,GAAGluK,EAAE+gB,EAAE,IAAIu5H,EAAEA,GAAG18I,EAAEsqE,GAAGtC,EAAE,EAAE00E,EAAEnoH,IAAI,GAAG3Z,EAAEyvD,EAAE91C,EAAE,KAAK,EAAEmoH,EAAE,EAAE,EAAEA,EAAEnoH,EAAE3Z,EAAEstD,EAAEtxE,EAAE2zE,EAAE,IAAI,GAAGh2C,GAAG+1C,EAAE1zE,GAAGoxE,EAAE,OAAO8sF,EAAE1qF,GAAG,GAAG,IAAI,IAAI71C,EAAE,EAAEmoH,EAAE9lJ,EAAEoxE,EAAE,GAAG,GAAG00E,EAAE,EAAEA,EAAEnoH,IAAI,EAAE+1C,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAEnoH,GAAGyzC,EAAEE,IAAI1zC,EAAE59B,EAAE2zE,EAAE,IAAI,IAAIrC,GAAG9lE,GAAGmyB,EAAE,EAAEmoH,KAAKryE,EAAEzzE,EAAE2zE,EAAE,IAAI,KAAK1D,EAAEjwE,EAAE2zE,EAAE,IAAI,KAAKpnD,EAAEknD,GAAGqyE,EAAE,EAAEA,EAAEnoH,IAAI,EAAEyzC,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE9hI,GAAG3U,EAAEsuB,IAAIA,EAAE39B,EAAE2zE,EAAE,IAAI,IAAI,EAAEmyE,EAAE9lJ,EAAE2zE,EAAE,IAAI,GAAGmyE,EAAE,EAAEA,EAAEnoH,IAAI,EAAE3Z,IAAI,EAAE8hI,EAAE,EAAE,EAAEA,EAAE10E,EAAEptD,GAAG0vD,EAAE1zE,EAAE2zE,EAAE,IAAI,IAAI,EAAEh2C,EAAEmoH,EAAEA,EAAEA,EAAE9lJ,EAAE2zE,EAAE,IAAI,GAAG,EAAEmyE,EAAE10E,IAAI,EAAEsC,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAEpyE,EAAEtC,EAAEpyC,EAAE8mH,EAAE9lJ,EAAE2zE,EAAE,IAAI,GAAGvC,EAAEpxE,EAAE2zE,EAAE,IAAI,GAAGmyE,EAAEA,EAAE4zB,GAAG9lG,EAAE5zE,EAAE2zE,GAAG,GAAGvC,EAAEpxE,EAAE2zE,EAAE,GAAG,GAAG,IAAIroE,EAAElC,EAAE08I,EAAE4zB,GAAG9lG,EAAExC,EAAE,IAAI00E,EAAEh5I,EAAE1D,EAAEkC,EAAEA,EAAE0Y,GAAG01J,GAAG9lG,EAAExC,EAAE,IAAI00E,GAAG,EAAEA,EAAEnoH,GAAGv0B,EAAE0D,GAAG,EAAEg5I,EAAE9hI,IAAI,EAAE1Y,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAE9hI,GAAG3U,EAAEukE,IAAI9mE,EAAE9M,EAAE2zE,EAAE,IAAI,KAAK5vD,EAAE/jB,EAAE2zE,EAAE,GAAG,KAAK7mE,EAAEiX,GAAGzY,EAAE,EAAEw6I,GAAG10E,IAAI9lE,EAAEtL,EAAE2zE,EAAE,IAAI,KAAKh2C,EAAE39B,EAAE2zE,EAAE,IAAI,KAAKh2C,EAAEryB,GAAGw6I,EAAE,EAAE9hI,EAAE8hI,EAAEz2I,IAAI,GAAGyH,EAAEkN,KAAK,EAAE8hI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE2zE,EAAE,IAAI,GAAG78D,EAAE9W,EAAE2zE,EAAE,IAAI,GAAGmyE,EAAEA,EAAE4zB,GAAGhmG,EAAE10C,EAAE,IAAI3vB,EAAEjG,EAAEszI,EAAEg9B,GAAGhmG,EAAE10C,EAAE,IAAI8mH,EAAEz2I,GAAGjG,EAAE8kF,EAAEphF,EAAEg5I,IAAIv5H,EAAE0jD,GAAGjxC,EAAEixC,GAAGwD,EAAE,EAAEqyE,GAAGh5I,GAAGtB,EAAEoyB,GAAG81C,EAAE91C,KAAK,GAAG0zC,EAAExkE,EAAEwkE,EAAE,KAAK,EAAEw0E,EAAE,EAAE,EAAEA,EAAEryE,EAAEimG,GAAGhmG,EAAE10C,EAAE,IAAI09G,EAAEoJ,GAAG18I,EAAEiG,GAAGy2I,EAAE,EAAEA,EAAEryE,IAAI,GAAGnC,EAAEmC,EAAEnC,EAAE,KAAK,EAAEw0E,EAAE,EAAE,EAAEA,EAAEx0E,GAAGjiE,EAAErP,GAAG8M,EAAE4vI,GAAGjpE,GAAG,EAAED,IAAI,GAAGz9D,EAAE,IAAI,IAAIu7D,EAAE,EAAEw0E,EAAE9lJ,EAAE8M,EAAE,GAAG,GAAGg5I,EAAE,EAAEA,EAAEz2I,IAAI,EAAEiiE,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAEx0E,GAAGxkE,EAAE9M,GAAGyzE,EAAEA,EAAE,MAAM,IAAI,IAAInC,EAAE,EAAEw0E,EAAE9lJ,EAAEyzE,EAAE,GAAG,GAAGqyE,EAAE,EAAEh5I,EAAEg5I,EAAEh5I,IAAI,EAAEwkE,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAEA,EAAEA,EAAEx6I,EAAE,EAAEA,EAAEgmE,EAAE4c,GAAGza,EAAEpkE,EAAEiiE,GAAG,EAAEmC,EAAEqyE,EAAEryE,IAAI,EAAEnC,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE2zE,EAAE,IAAI,GAAGrC,EAAEtxE,EAAE2zE,EAAE,IAAI,GAAGmyE,EAAEx0E,EAAEqC,EAAEmyE,EAAE4zB,GAAG5iK,EAAEkN,EAAE,IAAI2vD,EAAEvqE,EAAEyqE,EAAE6lG,GAAG5iK,EAAEkN,EAAE,IAAI8hI,EAAEhyE,EAAE1qE,EAAEuqE,EAAEA,GAAGmyE,EAAEz2I,IAAIA,GAAG0U,EAAE6vD,GAAG98D,EAAEiN,EAAE6vD,GAAG,EAAEkyE,IAAInoH,EAAEyzC,GAAGptD,EAAE2Z,EAAEyzC,GAAGtkE,EAAE,EAAEg5I,EAAEnyE,IAAI,EAAEtkE,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAEh5I,EAAE4sK,GAAG5iK,EAAEkN,EAAE,IAAI6vD,EAAEiyE,GAAG18I,EAAE0qE,GAAGgyE,EAAE,EAAEjyE,EAAEF,EAAE7mE,EAAE6mE,EAAE,EAAEA,EAAEmyE,EAAEnyE,IAAI,EAAE7mE,IAAI,EAAEg5I,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEsxE,EAAE,IAAI,GAAGuC,EAAE7zE,EAAEsxE,EAAE,IAAI,GAAGw0E,EAAEz2I,EAAEiiE,EAAEw0E,EAAE4zB,GAAGpuK,EAAEmoE,EAAE,IAAInC,EAAEloE,EAAE0D,EAAE4sK,GAAGpuK,EAAEmoE,EAAE,IAAIqyE,EAAEhyE,EAAE1qE,EAAEkoE,EAAE4c,EAAEnqE,EAAE+hI,IAAIv5H,EAAEyS,GAAGy0C,EAAElnD,GAAG0jD,EAAE,EAAE61E,GAAG/hI,GAAG2vD,EAAEloE,GAAGF,EAAEE,KAAK,GAAG8lE,EAAEvtD,EAAE6Z,EAAE,KAAK,EAAEkoH,EAAE,EAAE,EAAEA,EAAEh5I,EAAE4sK,GAAGpuK,EAAEmoE,EAAE,IAAI3mE,EAAEg5I,GAAG18I,EAAE0qE,GAAGgyE,EAAE,EAAEA,EAAEh5I,IAAI,GAAGwkE,EAAExkE,EAAEwkE,EAAE,KAAK,EAAEw0E,EAAE,EAAE,EAAEA,EAAEx0E,GAAG1zC,EAAE59B,GAAG+jB,EAAEo6I,GAAGrxJ,GAAG,EAAE0mE,IAAI,GAAGz9D,EAAE,IAAI,IAAIu7D,EAAE,EAAEw0E,EAAE9lJ,EAAE+jB,EAAE,GAAG,GAAG+hI,EAAE,EAAEA,EAAEx0E,IAAI,EAAE1zC,IAAI,EAAEkoH,EAAE,EAAE,EAAEA,EAAEx0E,GAAGvtD,EAAE/jB,GAAG8M,EAAEA,EAAE,MAAM,IAAI,IAAIwkE,EAAE,EAAEw0E,EAAE9lJ,EAAE8M,EAAE,GAAG,GAAGg5I,EAAE,EAAEA,EAAE/hI,IAAI,EAAEutD,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAEx0E,EAAE4c,GAAGphF,EAAEiX,EAAEutD,GAAG,EAAE4c,EAAEvwD,EAAEA,EAAEmoH,EAAEA,EAAE53D,EAAE43D,EAAE,EAAEh5I,EAAEg5I,EAAEh5I,IAAI,EAAEwkE,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEqP,EAAE,GAAG,GAAGiiE,EAAEtxE,EAAEqP,EAAE,IAAI,GAAGy2I,EAAEA,EAAE4zB,GAAG7lG,EAAEF,EAAE,IAAI/1C,EAAEx0B,EAAE6mE,EAAEypG,GAAG7lG,EAAEF,EAAE,IAAImyE,EAAEloH,GAAGx0B,EAAE08I,IAAI10E,EAAEptD,GAAG2vD,EAAEvC,EAAEptD,GAAG2Z,EAAE,EAAEmoH,GAAG/hI,GAAG+vD,GAAGh9D,EAAE88D,GAAGC,EAAE/8D,EAAE88D,GAAG7vD,EAAE,KAAK,EAAE+vD,IAAI,EAAEgyE,EAAE,EAAE,EAAEA,EAAEnoH,EAAE5Z,EAAEA,EAAE21J,GAAG7lG,EAAEF,EAAE,IAAI1D,EAAE61E,GAAG18I,EAAEw0B,GAAGkoH,EAAE,EAAEloH,EAAED,EAAEA,EAAE5Z,EAAE,EAAE4Z,EAAEmoH,EAAEnoH,IAAI,EAAE5Z,IAAI,EAAE+hI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEqP,EAAE,IAAI,GAAGuuB,EAAE59B,EAAEqP,EAAE,IAAI,GAAGy2I,EAAE/hI,EAAE1U,EAAEy2I,EAAE4zB,GAAGpoG,EAAExkE,EAAE,IAAIuC,EAAEjG,EAAE6mE,EAAEypG,GAAGpoG,EAAExkE,EAAE,IAAIg5I,EAAEhyE,EAAE1qE,EAAEiG,EAAE6+E,EAAEta,EAAEkyE,GAAG9mH,GAAGy0C,EAAEz0C,GAAGlyB,GAAGyf,EAAE,EAAEu5H,GAAGz2I,GAAGukE,EAAEF,GAAGpoE,EAAEooE,GAAGpC,GAAG9lE,EAAE,KAAK,EAAEooE,IAAI,EAAEkyE,EAAE,EAAE,EAAEA,EAAEv5H,EAAEld,EAAEA,EAAEqqK,GAAGpoG,EAAExkE,EAAE,IAAImjE,EAAE61E,GAAG18I,EAAE0qE,GAAGgyE,EAAE,EAAEA,EAAEz2I,IAAI,GAAGkd,EAAEA,EAAEld,EAAE,KAAK,EAAEy2I,EAAE,EAAE,EAAEA,EAAEv5H,GAAG0jD,EAAEjwE,GAAGwL,EAAEooE,GAAGvkE,GAAG,EAAEmkE,IAAI,GAAGz9D,EAAE,IAAI,IAAIwW,EAAE,EAAEu5H,EAAE9lJ,EAAEwL,EAAE,GAAG,GAAGs6I,EAAE,EAAEA,EAAEv5H,IAAI,EAAE0jD,IAAI,EAAE61E,EAAE,EAAE,EAAEA,EAAEv5H,GAAG/gB,EAAExL,GAAGqP,EAAEA,EAAE,MAAM,IAAI,IAAIkd,EAAE,EAAEu5H,EAAE9lJ,EAAEqP,EAAE,GAAG,GAAGy2I,EAAE,EAAEA,EAAEv5H,IAAI,EAAE/gB,IAAI,EAAEs6I,EAAE,EAAE,EAAEA,EAAEt6I,EAAE+gB,EAAEA,EAAE2hE,GAAG7+E,EAAEkd,GAAG,EAAE2hE,EAAE9c,EAAEA,EAAE00E,EAAEA,EAAE53D,EAAE43D,EAAE,EAAEz2I,EAAEy2I,EAAEz2I,IAAI,EAAEkd,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,GAAG,GAAGwI,EAAEvsB,EAAE+jB,EAAE,GAAG,GAAG+hI,EAAEA,EAAE4zB,GAAG97I,EAAED,EAAE,IAAIsyC,EAAE7mE,EAAE0qE,EAAE4lG,GAAG97I,EAAED,EAAE,IAAImoH,EAAE71E,GAAG7mE,EAAE08I,IAAInyE,EAAE3vD,GAAG2Z,EAAEg2C,EAAE3vD,GAAGotD,EAAE,EAAE00E,GAAGt6I,GAAGuyB,GAAGjnB,EAAE+8D,GAAGj2C,EAAE9mB,EAAE+8D,GAAGroE,EAAE,KAAK,EAAEuyB,IAAI,EAAE+nH,EAAE,EAAE,EAAEA,EAAE10E,EAAE5lE,EAAEA,EAAEkuK,GAAG97I,EAAED,EAAE,IAAIm2C,EAAEgyE,GAAG18I,EAAE6mE,GAAG61E,EAAE,EAAEA,GAAG10E,EAAEA,EAAE5lE,EAAE,KAAK,EAAEA,IAAI,EAAEs6I,EAAE,EAAE,EAAEA,EAAEt6I,EAAE4lE,EAAEA,EAAE00E,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAGvY,EAAExL,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAEA,EAAE4zB,GAAGntJ,EAAEld,EAAE,IAAI4gE,EAAE7mE,EAAE0qE,EAAE4lG,GAAGntJ,EAAEld,EAAE,IAAIy2I,EAAE71E,GAAG7mE,EAAE8kF,EAAEp3E,EAAEgvI,EAAE9mH,GAAGy0C,GAAGA,EAAE3mE,GAAGuC,GAAG,EAAEy2I,GAAGhvI,EAAE48D,GAAGpoE,GAAGgmE,EAAEhmE,GAAGihB,GAAG,KAAK,EAAEmnD,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAE9mH,EAAE06I,GAAGntJ,EAAEld,EAAE,IAAIykE,EAAEgyE,GAAG18I,EAAE6mE,GAAG61E,EAAE,EAAEA,EAAE9mH,IAAI,GAAG00C,EAAE10C,EAAEloB,EAAE,KAAK,EAAEgvI,EAAE,EAAE,EAAEA,EAAEpyE,GAAGzD,EAAEjwE,GAAG8W,EAAE8wI,GAAG5oH,GAAG,EAAEw0C,IAAI,GAAGz9D,EAAE,IAAI,IAAI29D,EAAE,EAAEoyE,EAAE9lJ,EAAE8W,EAAE,GAAG,GAAGgvI,EAAE,EAAEA,EAAEpyE,IAAI,EAAEzD,IAAI,EAAE61E,EAAE,EAAE,EAAEA,EAAEpyE,GAAG58D,EAAE9W,GAAGg/B,EAAEA,EAAE,MAAM,IAAI,IAAI00C,EAAE,EAAEoyE,EAAE9lJ,EAAEg/B,EAAE,GAAG,GAAG8mH,EAAE,EAAE9mH,EAAEhb,EAAEA,EAAE8hI,EAAEhvI,IAAI,EAAE48D,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAEA,EAAE9mH,EAAE8mH,EAAE,EAAE9mH,EAAE8mH,GAAGhvI,EAAE48D,KAAK,GAAGA,EAAEwa,EAAEp3E,EAAE,KAAK,EAAEgvI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAG2vD,EAAE1zE,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAEA,EAAE4zB,GAAGluK,EAAE4lE,EAAE,IAAInB,EAAE7mE,EAAE0qE,EAAE4lG,GAAGluK,EAAE4lE,EAAE,IAAI00E,EAAE71E,GAAG7mE,EAAE08I,IAAInyE,EAAEh2C,GAAGyzC,EAAEuC,EAAEh2C,GAAG3Z,EAAE,EAAE8hI,GAAGhvI,GAAGinB,GAAGH,EAAEi2C,GAAGroE,EAAEoyB,EAAEi2C,GAAG/8D,EAAE,KAAK,EAAEinB,IAAI,EAAE+nH,EAAE,EAAE,EAAEA,EAAE9hI,EAAElN,EAAEA,EAAE4iK,GAAGluK,EAAE4lE,EAAE,IAAI0C,EAAEgyE,GAAG18I,EAAE6mE,GAAG61E,EAAE,EAAE71E,EAAEjsD,EAAEA,EAAElN,EAAE,EAAEkN,EAAE8hI,EAAEhvI,IAAI,EAAEkN,IAAI,EAAE8hI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAGksD,EAAEjwE,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAEA,EAAE4zB,GAAGhmG,EAAE10C,EAAE,IAAIloB,EAAE1N,EAAE0qE,EAAE4lG,GAAGhmG,EAAE10C,EAAE,IAAI8mH,EAAE/nH,EAAE30B,EAAE0N,EAAEo3E,EAAEra,EAAEiyE,EAAEryE,GAAG3mE,GAAGA,EAAEuC,GAAG2vB,GAAG,EAAE8mH,GAAGhvI,EAAExL,GAAGgmE,GAAG/kD,EAAE+kD,GAAGoC,GAAG,KAAK,EAAEpoE,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAEryE,EAAEimG,GAAGhmG,EAAE10C,EAAE,IAAI80C,EAAEgyE,GAAG18I,EAAE20B,GAAG+nH,EAAE,EAAEA,EAAEryE,IAAI,GAAGnoE,EAAEmoE,EAAE38D,EAAE,KAAK,EAAEgvI,EAAE,EAAE,EAAEA,EAAEx6I,GAAGwoE,EAAE9zE,GAAG8W,EAAE+8D,GAAGJ,GAAG,EAAED,IAAI,GAAGz9D,EAAE,IAAI,IAAIzK,EAAE,EAAEw6I,EAAE9lJ,EAAE8W,EAAE,GAAG,GAAGgvI,EAAE,EAAEA,EAAEx6I,IAAI,EAAEwoE,IAAI,EAAEgyE,EAAE,EAAE,EAAEA,EAAEx6I,GAAGwL,EAAE9W,GAAGyzE,EAAEA,EAAE,MAAM,IAAI,IAAInoE,EAAE,EAAEw6I,EAAE9lJ,EAAEyzE,EAAE,GAAG,GAAGqyE,EAAE,EAAEA,EAAEhvI,IAAI,EAAExL,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAEx6I,EAAE4iF,GAAGza,EAAE38D,EAAExL,GAAG,EAAE4iF,EAAEva,EAAEA,EAAEmyE,EAAEA,EAAE53D,EAAE43D,EAAE,EAAEryE,EAAEqyE,EAAEryE,IAAI,EAAEnoE,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAGzY,EAAEtL,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAEA,EAAE4zB,GAAGzpG,EAAEjsD,EAAE,IAAI8vD,EAAE1qE,EAAE20B,EAAE27I,GAAGzpG,EAAEjsD,EAAE,IAAI8hI,EAAEhyE,GAAG1qE,EAAE08I,IAAInoH,EAAEyzC,GAAGptD,EAAE2Z,EAAEyzC,GAAGuC,EAAE,EAAEmyE,GAAGhvI,GAAGoyB,GAAG19B,EAAEoyB,GAAGqyC,EAAEzkE,EAAEoyB,GAAG9mB,EAAE,KAAK,EAAEoyB,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAEnyE,EAAE78D,EAAEA,EAAE4iK,GAAGzpG,EAAEjsD,EAAE,IAAI+Z,EAAE+nH,GAAG18I,EAAE0qE,GAAGgyE,EAAE,EAAE/nH,EAAE41C,EAAEA,EAAE78D,EAAE,EAAE68D,EAAEmyE,EAAEnyE,IAAI,EAAE78D,IAAI,EAAEgvI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAGga,EAAE/9B,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAEA,EAAE4zB,GAAGpuK,EAAEmoE,EAAE,IAAI38D,EAAE1N,EAAE0qE,EAAE4lG,GAAGpuK,EAAEmoE,EAAE,IAAIqyE,EAAE58G,EAAE9/B,EAAE0N,EAAEo3E,EAAEtwD,EAAEkoH,EAAEh5I,GAAGuC,GAAGA,EAAE2vB,GAAGy0C,GAAG,EAAEqyE,GAAGhvI,EAAEw6D,GAAG/kD,GAAGA,EAAEmnD,GAAGpoE,GAAG,KAAK,EAAEgmE,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAEh5I,EAAE4sK,GAAGpuK,EAAEmoE,EAAE,IAAIK,EAAEgyE,GAAG18I,EAAE8/B,GAAG48G,EAAE,EAAEA,EAAEh5I,IAAI,GAAGwkE,EAAExkE,EAAEgK,EAAE,KAAK,EAAEgvI,EAAE,EAAE,EAAEA,EAAEx0E,GAAG1zC,EAAE59B,GAAG8W,EAAE6+D,GAAG7oE,GAAG,EAAE0mE,IAAI,GAAGz9D,EAAE,IAAI,IAAIu7D,EAAE,EAAEw0E,EAAE9lJ,EAAE8W,EAAE,GAAG,GAAGgvI,EAAE,EAAEA,EAAEx0E,IAAI,EAAE1zC,IAAI,EAAEkoH,EAAE,EAAE,EAAEA,EAAEx0E,GAAGx6D,EAAE9W,GAAG8M,EAAEA,EAAE,MAAM,IAAI,IAAIwkE,EAAE,EAAEw0E,EAAE9lJ,EAAE8M,EAAE,GAAG,GAAGg5I,EAAE,EAAEA,EAAEhvI,IAAI,EAAEw6D,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAEx0E,EAAE4c,GAAGphF,EAAEgK,EAAEw6D,GAAG,EAAE4c,EAAEvwD,EAAEA,EAAEmoH,EAAEA,EAAE53D,EAAE43D,EAAE,EAAEh5I,EAAEg5I,EAAEh5I,IAAI,EAAEwkE,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAGutD,EAAEtxE,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAEA,EAAE4zB,GAAG37I,EAAE41C,EAAE,IAAI/1C,EAAEx0B,EAAE0qE,EAAE4lG,GAAG37I,EAAE41C,EAAE,IAAImyE,EAAEloH,GAAGx0B,EAAE08I,IAAI10E,EAAEptD,GAAG2vD,EAAEvC,EAAEptD,GAAG2Z,EAAE,EAAEmoH,GAAGhvI,GAAGoyB,GAAG+mC,EAAEzkE,GAAGuyB,EAAEkyC,EAAEzkE,GAAGsL,EAAE,KAAK,EAAEoyB,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAEnoH,EAAE7mB,EAAEA,EAAE4iK,GAAG37I,EAAE41C,EAAE,IAAIG,EAAEgyE,GAAG18I,EAAEw0B,GAAGkoH,EAAE,EAAE58G,EAAEvL,EAAEA,EAAE7mB,EAAE,EAAE6mB,EAAEmoH,EAAEnoH,IAAI,EAAE7mB,IAAI,EAAEgvI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,EAAE,GAAG,GAAGmlB,EAAElpC,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAEA,EAAE4zB,GAAGpoG,EAAExkE,EAAE,IAAIgK,EAAE1N,EAAEw0B,EAAE87I,GAAGpoG,EAAExkE,EAAE,IAAIg5I,EAAEhyE,EAAE1qE,EAAE0N,EAAEo3E,EAAE1iF,EAAEs6I,EAAEz2I,GAAG2vB,GAAGy0C,EAAEz0C,GAAGlyB,GAAG,EAAEg5I,GAAGhvI,EAAEyV,GAAGmnD,GAAGpoE,EAAEooE,GAAGpC,GAAG,KAAK,EAAE/kD,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,EAAEz2I,EAAEqqK,GAAGpoG,EAAExkE,EAAE,IAAI8wB,EAAEkoH,GAAG18I,EAAE0qE,GAAGgyE,EAAE,EAAEA,EAAEz2I,IAAI,GAAGkd,EAAEld,EAAEyH,EAAE,KAAK,EAAEgvI,EAAE,EAAE,EAAEA,EAAEv5H,GAAG/gB,EAAExL,GAAG8W,EAAE8mB,GAAGvuB,GAAG,EAAEmkE,IAAI,GAAGz9D,EAAE,IAAI,IAAIwW,EAAE,EAAEu5H,EAAE9lJ,EAAE8W,EAAE,GAAG,GAAGgvI,EAAE,EAAEA,EAAEv5H,IAAI,EAAE/gB,IAAI,EAAEs6I,EAAE,EAAE,EAAEA,EAAEv5H,GAAGzV,EAAE9W,GAAGqP,EAAEA,EAAE,MAAM,IAAI,IAAIkd,EAAE,EAAEu5H,EAAE9lJ,EAAEqP,EAAE,GAAG,GAAGy2I,EAAE,EAAEA,EAAEv5H,IAAI,EAAEzV,IAAI,EAAEgvI,EAAE,EAAE,EAAEA,EAAEv5H,EAAE2hE,GAAG7+E,EAAEyH,EAAEyV,GAAG,EAAE2hE,EAAE9c,EAAEA,EAAE00E,EAAEA,EAAE53D,EAAE43D,EAAE,EAAEz2I,EAAEy2I,EAAEz2I,IAAI,EAAEkd,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAGwI,EAAEvsB,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAEA,EAAE4zB,GAAGxwI,EAAEvL,EAAE,IAAInyB,EAAEpC,EAAE0qE,EAAE4lG,GAAGxwI,EAAEvL,EAAE,IAAImoH,EAAEt6I,GAAGpC,EAAE08I,IAAInyE,EAAE3vD,GAAG2Z,EAAEg2C,EAAE3vD,GAAGotD,EAAE,EAAE00E,GAAGhvI,GAAGo3E,GAAGje,EAAElyC,GAAGmL,EAAE+mC,EAAElyC,GAAGjnB,EAAE,KAAK,EAAEo3E,IAAI,EAAE43D,EAAE,EAAE,EAAEA,EAAE10E,EAAEt6D,EAAEA,EAAE4iK,GAAGxwI,EAAEvL,EAAE,IAAIm2C,EAAEgyE,GAAG18I,EAAEoC,GAAGs6I,EAAE,EAAE53D,EAAE9c,EAAEA,EAAEt6D,EAAE,EAAEs6D,EAAE00E,EAAEhvI,IAAI,EAAEs6D,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,GAAG,GAAGmqE,EAAEluF,EAAE+jB,EAAE,GAAG,GAAG+hI,EAAEhvI,EAAEiN,EAAE+hI,EAAE4zB,GAAGntJ,EAAEld,EAAE,IAAI0U,EAAE3a,EAAEoC,EAAEkuK,GAAGntJ,EAAEld,EAAE,IAAIy2I,EAAEhyE,EAAE1qE,EAAE2a,EAAE+hI,EAAE9mH,GAAGy0C,GAAGA,EAAE3mE,GAAGuC,GAAG,EAAEy2I,GAAG/hI,EAAE2vD,GAAGpoE,GAAGgmE,EAAEhmE,GAAGihB,GAAG,KAAK,EAAEmnD,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAE9mH,EAAE06I,GAAGntJ,EAAEld,EAAE,IAAI7D,EAAEs6I,GAAG18I,EAAE0qE,GAAGgyE,EAAE,EAAEA,EAAE9mH,IAAI,GAAG00C,EAAE10C,EAAEjb,EAAE,KAAK,EAAE+hI,EAAE,EAAE,EAAEA,EAAEpyE,GAAGloE,EAAExL,GAAG+jB,EAAE+vD,GAAG90C,GAAG,EAAEw0C,IAAI,GAAGz9D,EAAE,IAAI,IAAI29D,EAAE,EAAEoyE,EAAE9lJ,EAAE+jB,EAAE,GAAG,GAAG+hI,EAAE,EAAEA,EAAEpyE,IAAI,EAAEloE,IAAI,EAAEs6I,EAAE,EAAE,EAAEA,EAAEpyE,GAAG3vD,EAAE/jB,GAAGg/B,EAAEA,EAAE,MAAM,IAAI,IAAI00C,EAAE,EAAEoyE,EAAE9lJ,EAAEg/B,EAAE,GAAG,GAAG8mH,EAAE,EAAEA,EAAE/hI,IAAI,EAAE2vD,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAEt6I,EAAEkoE,EAAE3vD,EAAEC,EAAEA,EAAE8hI,EAAEA,EAAE/hI,EAAE+hI,EAAE,EAAE/hI,EAAE+hI,GAAG9mH,EAAE00C,KAAK,GAAGA,EAAE10C,EAAEixC,EAAE,KAAK,EAAE61E,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE8W,EAAE,IAAI,GAAG48D,EAAE1zE,EAAE8W,EAAE,IAAI,GAAGgvI,EAAE9mH,EAAEloB,EAAEgvI,EAAE4zB,GAAGxrF,EAAE9c,EAAE,IAAIt6D,EAAE1N,EAAE6mE,EAAEypG,GAAGxrF,EAAE9c,EAAE,IAAI00E,EAAEkY,EAAE50J,EAAE0N,EAAEA,GAAGgvI,EAAEt6I,IAAIA,GAAG09B,EAAEnL,GAAGmwD,EAAEhlD,EAAEnL,GAAG,EAAE+nH,IAAInyE,EAAEh2C,GAAGyzC,EAAEuC,EAAEh2C,GAAG3Z,EAAE,EAAE8hI,EAAEhvI,IAAI,EAAEtL,IAAI,EAAEs6I,EAAE,EAAE,EAAEA,EAAE9hI,EAAElN,EAAEA,EAAE4iK,GAAGxrF,EAAE9c,EAAE,IAAInB,EAAE61E,GAAG18I,EAAE40J,GAAGlY,EAAE,EAAEkY,EAAEh6I,EAAEA,EAAElN,EAAE,EAAEkN,EAAE8hI,EAAEhvI,IAAI,EAAEkN,IAAI,EAAE8hI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEg/B,EAAE,IAAI,GAAGg/H,EAAEh+J,EAAEg/B,EAAE,IAAI,GAAG8mH,EAAEA,EAAE4zB,GAAGhmG,EAAE3vD,EAAE,IAAIjN,EAAE1N,EAAEoC,EAAEkuK,GAAGhmG,EAAE3vD,EAAE,IAAI+hI,EAAE71E,EAAE7mE,EAAE0N,EAAEgvI,EAAEryE,GAAG3mE,GAAGA,EAAEuC,GAAG0U,GAAG,EAAE+hI,GAAGhvI,EAAExL,GAAGgmE,GAAG/kD,EAAE+kD,GAAGoC,GAAG,KAAK,EAAEpoE,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAEryE,EAAEimG,GAAGhmG,EAAE3vD,EAAE,IAAIvY,EAAEs6I,GAAG18I,EAAE6mE,GAAG61E,EAAE,EAAEA,EAAEryE,IAAI,GAAGnoE,EAAEmoE,EAAE38D,EAAE,KAAK,EAAEgvI,EAAE,EAAE,EAAEA,EAAEx6I,GAAG2kE,EAAEjwE,GAAG8W,EAAEtL,GAAGioE,GAAG,EAAED,IAAI,GAAGz9D,EAAE,IAAI,IAAIzK,EAAE,EAAEw6I,EAAE9lJ,EAAE8W,EAAE,GAAG,GAAGgvI,EAAE,EAAEA,EAAEx6I,IAAI,EAAE2kE,IAAI,EAAE61E,EAAE,EAAE,EAAEA,EAAEx6I,GAAGwL,EAAE9W,GAAGyzE,EAAEA,EAAE,MAAM,IAAI,IAAInoE,EAAE,EAAEw6I,EAAE9lJ,EAAEyzE,EAAE,GAAG,GAAGqyE,EAAE,EAAEA,EAAEhvI,IAAI,EAAExL,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAEhvI,EAAE68D,EAAEA,EAAEmyE,EAAEA,EAAEhvI,EAAEgvI,EAAE,EAAEhvI,EAAEgvI,GAAGryE,EAAEnoE,KAAK,GAAGA,EAAEmoE,EAAE11C,EAAE,KAAK,EAAE+nH,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEg/B,EAAE,IAAI,GAAG1zB,EAAEtL,EAAEg/B,EAAE,IAAI,GAAG8mH,EAAEA,EAAE4zB,GAAG1b,EAAEh6I,EAAE,IAAIisD,EAAE7mE,EAAE20B,EAAE27I,GAAG1b,EAAEh6I,EAAE,IAAI8hI,EAAE71E,GAAG7mE,EAAE08I,IAAInoH,EAAEyzC,GAAGptD,EAAE2Z,EAAEyzC,GAAGuC,EAAE,EAAEmyE,GAAGryE,GAAG/nE,GAAGwiF,EAAEhlD,GAAG80H,EAAE9vE,EAAEhlD,GAAGuqC,EAAE,KAAK,EAAE/nE,IAAI,EAAEo6I,EAAE,EAAE,EAAEA,EAAEnyE,EAAEF,EAAEA,EAAEimG,GAAG1b,EAAEh6I,EAAE,IAAI+Z,EAAE+nH,GAAG18I,EAAE6mE,GAAG61E,EAAE,EAAEp6I,EAAEioE,EAAEA,EAAEF,EAAE,EAAEE,EAAEmyE,EAAEnyE,IAAI,EAAEF,IAAI,EAAEqyE,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEg/B,EAAE,IAAI,GAAGtzB,EAAE1L,EAAEg/B,EAAE,IAAI,GAAG8mH,EAAEA,EAAE4zB,GAAGpuK,EAAEwL,EAAE,IAAI28D,EAAErqE,EAAE6mE,EAAEypG,GAAGpuK,EAAEwL,EAAE,IAAIgvI,EAAE/nH,EAAE30B,EAAEqqE,EAAEqyE,EAAEh5I,GAAGuC,GAAG0U,EAAE1U,GAAGyH,GAAG,EAAEgvI,GAAGryE,EAAEnC,GAAG/kD,GAAGA,EAAEmnD,GAAGpoE,GAAG,KAAK,EAAEgmE,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAEh5I,EAAE2mE,EAAEA,EAAEimG,GAAGpuK,EAAEwL,EAAE,IAAIm5D,EAAE61E,GAAG18I,EAAE20B,GAAG+nH,EAAE,EAAEA,EAAEryE,IAAI,GAAGnC,EAAExkE,EAAE2mE,EAAE,KAAK,EAAEqyE,EAAE,EAAE,EAAEA,EAAEx0E,GAAGrB,EAAEjwE,GAAG8M,EAAEixB,GAAG01C,GAAG,GAAGD,IAAI,GAAGz9D,EAAE,IAAI,IAAIu7D,EAAE,EAAEw0E,EAAE9lJ,EAAE8M,EAAE,GAAG,GAAGg5I,EAAE,EAAEA,EAAEx0E,IAAI,EAAErB,IAAI,EAAE61E,EAAE,EAAE,EAAEA,EAAEx0E,GAAGxkE,EAAE9M,GAAGyzE,EAAEA,EAAE,MAAM,IAAI,IAAInC,EAAE,EAAEw0E,EAAE9lJ,EAAEyzE,EAAE,GAAG,GAAGqyE,EAAE,EAAEA,EAAEh5I,IAAI,EAAEwkE,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAE71E,EAAEqB,EAAExkE,EAAE6wB,EAAEA,EAAEmoH,EAAEA,EAAEh5I,EAAEg5I,EAAE,EAAEh5I,EAAEg5I,GAAGryE,EAAEnC,KAAK,GAAGA,EAAEmC,EAAEvqC,EAAE,KAAK,EAAE48G,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEg/B,EAAE,GAAG,GAAGsyC,EAAEtxE,EAAEg/B,EAAE,IAAI,GAAG8mH,EAAEryE,EAAEz0C,EAAE8mH,EAAE4zB,GAAGhuK,EAAEioE,EAAE,IAAI30C,EAAE51B,EAAE8/B,EAAEwwI,GAAGhuK,EAAEioE,EAAE,IAAImyE,EAAEnuD,EAAEvuF,EAAE41B,EAAEA,GAAG8mH,EAAE71E,IAAIA,GAAGie,EAAE8vE,GAAGtyJ,EAAEwiF,EAAE8vE,GAAG,EAAElY,IAAI10E,EAAEptD,GAAG2vD,EAAEvC,EAAEptD,GAAG2Z,EAAE,EAAEmoH,EAAE9mH,IAAI,EAAEixC,IAAI,EAAE61E,EAAE,EAAE,EAAEA,EAAEnoH,EAAEqB,EAAEA,EAAE06I,GAAGhuK,EAAEioE,EAAE,IAAIzqC,EAAE48G,GAAG18I,EAAEuuF,GAAGmuD,EAAE,EAAE9mH,EAAE8mH,GAAGnoH,EAAEA,EAAEqB,EAAE,KAAK,EAAEA,IAAI,EAAE8mH,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEyzE,EAAE,IAAI,GAAG91C,EAAE39B,EAAEyzE,EAAE,IAAI,GAAGqyE,EAAEA,EAAE4zB,GAAGpoG,EAAExkE,EAAE,IAAImjE,EAAE7mE,EAAE8/B,EAAEwwI,GAAGpoG,EAAExkE,EAAE,IAAIg5I,EAAEnuD,EAAEvuF,EAAE6mE,EAAEl8C,EAAEm6D,EAAE43D,EAAEz2I,GAAG0U,GAAGA,EAAEjN,GAAGhK,GAAG,EAAEg5I,GAAG71E,EAAE1jD,GAAGmnD,GAAGpoE,EAAEooE,GAAGpC,GAAG,KAAK,EAAE/kD,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,EAAEz2I,EAAEqqK,GAAGpoG,EAAExkE,EAAE,IAAIo8B,EAAE48G,GAAG18I,EAAEuuF,GAAGmuD,EAAE,EAAEA,EAAEz2I,IAAI,GAAGkd,EAAEld,EAAE4gE,EAAE,KAAK,EAAE61E,EAAE,EAAE,EAAEA,EAAEv5H,GAAG2hE,EAAEluF,GAAGiwE,GAAG5gE,GAAG,GAAGmkE,IAAI,GAAGz9D,EAAE,IAAI,IAAIwW,EAAE,EAAEu5H,EAAE9lJ,EAAEiwE,EAAE,GAAG,GAAG61E,EAAE,EAAEA,EAAEv5H,IAAI,EAAE2hE,IAAI,EAAE43D,EAAE,EAAE,EAAEA,EAAEv5H,GAAG2c,EAAElpC,GAAGqP,EAAEA,EAAE,MAAM,IAAI,IAAIkd,EAAE,EAAEu5H,EAAE9lJ,EAAEqP,EAAE,GAAG,GAAGy2I,EAAE,EAAEA,EAAEv5H,IAAI,EAAE2c,IAAI,EAAE48G,EAAE,EAAE,EAAEA,EAAE53D,EAAE3hE,EAAE2c,EAAEkoC,EAAEA,EAAE00E,EAAEA,EAAE58G,EAAE48G,EAAE,EAAEz2I,EAAEy2I,GAAGz2I,EAAEkd,KAAK,GAAGA,EAAEwH,EAAE1kB,EAAE,KAAK,EAAEy2I,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEyzE,GAAG,GAAGlnD,EAAEvsB,EAAEyzE,EAAE,GAAG,GAAGqyE,EAAE58G,EAAEuqC,EAAEqyE,EAAE4zB,GAAG/7I,EAAEqB,EAAE,IAAIy0C,EAAErqE,EAAEuuF,EAAE+hF,GAAG/7I,EAAEqB,EAAE,IAAI8mH,EAAEmY,EAAE70J,EAAEqqE,EAAEA,GAAGqyE,EAAE53D,IAAIA,GAAG8vE,EAAEtyJ,GAAGiyB,EAAEqgI,EAAEtyJ,GAAG,EAAEo6I,IAAInyE,EAAE3vD,GAAGgb,EAAE20C,EAAE3vD,GAAGotD,EAAE,EAAE00E,EAAEryE,IAAI,EAAEya,IAAI,EAAE43D,EAAE,EAAE,EAAEA,EAAE10E,EAAEqC,EAAEA,EAAEimG,GAAG/7I,EAAEqB,EAAE,IAAI24D,EAAEmuD,GAAG18I,EAAE60J,GAAGnY,EAAE,EAAEryE,EAAEqyE,EAAEryE,IAAI,GAAGrC,EAAEA,EAAEqC,EAAE,KAAK,EAAEqyE,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEkpC,EAAE,IAAI,GAAGkoC,EAAEpxE,EAAEkpC,EAAE,IAAI,GAAG48G,EAAE53D,EAAEhlD,EAAE48G,EAAE4zB,GAAGntJ,EAAEld,EAAE,IAAI65B,EAAE9/B,EAAEuuF,EAAE+hF,GAAGntJ,EAAEld,EAAE,IAAIy2I,EAAEmY,EAAE70J,EAAE8/B,EAAEnV,EAAEiqI,EAAElY,EAAE/hI,GAAGjN,GAAGhK,EAAEgK,GAAGzH,GAAG,EAAEy2I,GAAG58G,EAAEwqC,GAAGpoE,GAAGgmE,EAAEhmE,GAAGihB,GAAG,KAAK,EAAEmnD,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAE/hI,EAAE21J,GAAGntJ,EAAEld,EAAE,IAAIsoF,EAAEmuD,GAAG18I,EAAE60J,GAAGnY,EAAE,EAAEA,EAAE/hI,IAAI,GAAG2vD,EAAE3vD,EAAEmlB,EAAE,KAAK,EAAE48G,EAAE,EAAE,EAAEA,EAAEpyE,GAAGikB,EAAE33F,GAAGg+J,EAAE90H,GAAGnlB,GAAG,GAAGyvD,IAAI,GAAGz9D,EAAE,IAAI,IAAI29D,EAAE,EAAEoyE,EAAE9lJ,EAAEg+J,EAAE,GAAG,GAAGlY,EAAE,EAAEA,EAAEpyE,IAAI,EAAEikB,IAAI,EAAEmuD,EAAE,EAAE,EAAEA,EAAEpyE,GAAGsqF,EAAEh+J,GAAG+jB,EAAEA,EAAE,MAAM,IAAI,IAAI2vD,EAAE,EAAEoyE,EAAE9lJ,EAAE+jB,EAAE,GAAG,GAAG+hI,EAAE,EAAEA,EAAEpyE,IAAI,EAAEsqF,IAAI,EAAElY,EAAE,EAAE,EAAEA,EAAEkY,EAAEtqF,EAAEA,EAAE3/C,GAAGhQ,EAAE2vD,GAAG,EAAE3/C,EAAE/P,EAAEA,EAAE8hI,EAAEA,EAAE/xH,EAAE+xH,EAAE,EAAEnuD,EAAEjkB,EAAEA,EAAEoyE,EAAE/hI,IAAI,EAAE2vD,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEkuF,EAAE,IAAI,GAAGyJ,EAAE33F,EAAEkuF,EAAE,IAAI,GAAG43D,EAAE/hI,EAAEmqE,EAAE43D,EAAE4zB,GAAGtoG,EAAEqC,EAAE,IAAIya,EAAE9kF,EAAE60J,EAAEyb,GAAGtoG,EAAEqC,EAAE,IAAIqyE,EAAE/xH,EAAE3qB,EAAE8kF,EAAEA,GAAG43D,EAAEkY,IAAIA,GAAGrgI,EAAEjyB,GAAG0lE,EAAEzzC,EAAEjyB,GAAG,EAAEo6I,IAAInyE,EAAE30C,GAAGy0C,EAAEE,EAAE30C,GAAGhb,EAAE,EAAE8hI,EAAE53D,IAAI,EAAE8vE,IAAI,EAAElY,EAAE,EAAE,EAAEA,EAAE9hI,EAAEkqE,EAAEA,EAAEwrF,GAAGtoG,EAAEqC,EAAE,IAAIwqF,EAAEnY,GAAG18I,EAAE2qB,GAAG+xH,EAAE,EAAEkY,EAAEh6I,EAAEA,EAAEkqE,EAAE,EAAElqE,EAAE8hI,EAAE9hI,IAAI,EAAEkqE,IAAI,EAAE43D,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAGi6I,EAAEh+J,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAE53D,EAAEnqE,EAAE+hI,EAAE4zB,GAAG/hF,EAAEjkB,EAAE,IAAI3vD,EAAE3a,EAAE60J,EAAEyb,GAAG/hF,EAAEjkB,EAAE,IAAIoyE,EAAE/xH,EAAE3qB,EAAE2a,EAAEs6I,EAAE3yJ,EAAEo6I,EAAEhvI,GAAGhK,GAAGA,EAAEuC,GAAGqkE,GAAG,EAAEoyE,GAAG/hI,EAAEzY,GAAGgmE,GAAG/kD,EAAE+kD,GAAGqmB,GAAG,KAAK,EAAErsF,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAEhvI,EAAEiN,EAAEA,EAAE21J,GAAG/hF,EAAEjkB,EAAE,IAAIuqF,EAAEnY,GAAG18I,EAAE2qB,GAAG+xH,EAAE,EAAEA,EAAE/hI,IAAI,GAAGzY,EAAEwL,EAAEiN,EAAE,KAAK,EAAE+hI,EAAE,EAAE,EAAEA,EAAE/hI,GAAGA,EAAEzY,IAAI2yJ,EAAEj+J,GAAGsL,GAAGwL,GAAG,GAAG08D,IAAI,GAAGz9D,EAAE,IAAI,IAAI,EAAE+vI,EAAE9lJ,EAAEsL,EAAE,GAAG,GAAGw6I,EAAE,EAAEA,EAAE/hI,IAAI,EAAEk6I,IAAI,EAAEnY,EAAE,EAAE,EAAEA,EAAE/hI,GAAGrY,EAAE1L,GAAG8W,EAAEA,EAAE,MAAM,IAAI,IAAIiN,EAAE,EAAE+hI,EAAE9lJ,EAAE8W,EAAE,GAAG,GAAGgvI,EAAE,EAAEA,EAAE/hI,IAAI,EAAErY,IAAI,EAAEo6I,EAAE,EAAE,EAAEA,EAAEp6I,EAAEqY,EAAEjN,EAAEiN,EAAEgQ,EAAE4/C,EAAEA,EAAEmyE,EAAEA,EAAE/xH,EAAE+xH,EAAE,EAAEmY,EAAEl6I,EAAEs6I,EAAEt6I,EAAE,EAAEA,EAAE+hI,EAAE/hI,IAAI,EAAEjN,IAAI,EAAEgvI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEkuF,EAAE,IAAI,GAAG+vE,EAAEj+J,EAAEkuF,EAAE,IAAI,GAAG43D,EAAEhvI,EAAEo3E,EAAE43D,EAAE4zB,GAAG1b,EAAEh6I,EAAE,IAAIkqE,EAAE9kF,EAAE2qB,EAAE2lJ,GAAG1b,EAAEh6I,EAAE,IAAI8hI,EAAEuY,EAAEj1J,EAAE8kF,EAAEA,GAAG43D,EAAEp6I,IAAIA,GAAGiyB,EAAEyzC,GAAG4sF,EAAErgI,EAAEyzC,GAAG,EAAE00E,IAAIryE,EAAEz0C,GAAGhb,EAAEyvD,EAAEz0C,GAAG20C,EAAE,EAAEmyE,EAAE53D,IAAI,EAAExiF,IAAI,EAAEo6I,EAAE,EAAE,EAAEA,EAAEnyE,EAAEua,EAAEA,EAAEwrF,GAAG1b,EAAEh6I,EAAE,IAAI+P,EAAE+xH,GAAG18I,EAAEi1J,GAAGvY,EAAE,EAAEp6I,EAAEioE,EAAEA,EAAEua,EAAE,EAAEva,EAAEmyE,EAAEnyE,IAAI,EAAEua,IAAI,EAAE43D,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE8W,EAAE,IAAI,GAAGpL,EAAE1L,EAAE8W,EAAE,IAAI,GAAGgvI,EAAEA,EAAE4zB,GAAGzb,EAAEl6I,EAAE,IAAImqE,EAAE9kF,EAAE2qB,EAAE2lJ,GAAGzb,EAAEl6I,EAAE,IAAI+hI,EAAEuY,EAAEj1J,EAAE8kF,EAAE43D,EAAEh5I,GAAGuC,GAAGA,EAAEqkE,GAAG3vD,GAAG,EAAE+hI,GAAG53D,EAAE5c,GAAG/kD,GAAGA,EAAEorE,GAAGsmE,GAAG,KAAK,EAAE3sF,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAEh5I,EAAE4sK,GAAGzb,EAAEl6I,EAAE,IAAIgQ,EAAE+xH,GAAG18I,EAAEi1J,GAAGvY,EAAE,EAAEA,EAAEh5I,IAAI,GAAGwkE,EAAExkE,EAAEohF,EAAE,KAAK,EAAE43D,EAAE,EAAE,EAAEA,EAAEh5I,GAAGA,EAAEwkE,IAAI+sF,EAAEr+J,GAAGsxE,GAAG4c,GAAG,GAAG1a,IAAI,GAAGz9D,EAAE,IAAI,IAAI,EAAE+vI,EAAE9lJ,EAAEsxE,EAAE,GAAG,GAAGw0E,EAAE,EAAEA,EAAEh5I,IAAI,EAAEuxJ,IAAI,EAAEvY,EAAE,EAAE,EAAEA,EAAEh5I,GAAGinB,EAAE/zB,GAAGkuF,EAAEA,EAAE,MAAM,IAAI,IAAIphF,EAAE,EAAEg5I,EAAE9lJ,EAAEkuF,EAAE,GAAG,GAAG43D,EAAE,EAAEuY,EAAEvxJ,EAAEohF,EAAE43D,EAAEh5I,IAAI,EAAEinB,IAAI,EAAE+xH,EAAE,EAAE,EAAEA,EAAEA,EAAE9mH,EAAE8mH,EAAE,EAAE/xH,EAAEjnB,EAAE6wB,EAAE7wB,EAAE,EAAE6wB,EAAEmoH,EAAEh5I,IAAI,EAAE6wB,IAAI,EAAEmoH,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE8W,EAAE,IAAI,GAAGhK,EAAE9M,EAAE8W,EAAE,IAAI,GAAGgvI,EAAEh5I,EAAEgK,EAAEgvI,EAAE4zB,GAAGhuK,EAAEioE,EAAE,IAAI30C,EAAE51B,EAAE0N,EAAE4iK,GAAGhuK,EAAEioE,EAAE,IAAImyE,EAAEyY,EAAEn1J,EAAE41B,EAAEA,GAAG8mH,EAAEuY,IAAIA,GAAGjtF,EAAE4sF,GAAGtyJ,EAAE0lE,EAAE4sF,GAAG,EAAElY,IAAIryE,EAAEzvD,GAAG2vD,EAAEF,EAAEzvD,GAAGkqE,EAAE,EAAE43D,EAAE9mH,IAAI,EAAEq/H,IAAI,EAAEvY,EAAE,EAAE,EAAEA,EAAEhvI,EAAE4iK,GAAGhuK,EAAEioE,EAAE,IAAI78D,EAAEgvI,GAAG18I,EAAEm1J,GAAGzY,EAAE,EAAEA,EAAEhvI,IAAI,GAAGkoB,EAAEloB,EAAEkoB,EAAE,KAAK,EAAE8mH,EAAE,EAAE,EAAEA,EAAEhvI,EAAEkoB,EAAEA,EAAE8mH,EAAE9lJ,EAAE8M,EAAE,GAAG,GAAGgK,EAAE9W,EAAE8M,EAAE,IAAI,GAAGg5I,EAAEA,EAAE4zB,GAAG3lJ,EAAE4J,EAAE,IAAI7wB,EAAE1D,EAAEi1J,EAAEqb,GAAG3lJ,EAAE4J,EAAE,IAAImoH,EAAEyY,EAAEn1J,EAAE0D,EAAEg5I,EAAEz2I,GAAGqkE,GAAG3vD,EAAE2vD,GAAG/1C,GAAG,EAAEmoH,GAAG53D,EAAE3hE,GAAGorE,GAAGA,EAAEsmE,GAAGlqI,GAAG,KAAK,EAAExH,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,EAAEpyE,EAAEgmG,GAAG3lJ,EAAE4J,EAAE,IAAI0gI,EAAEvY,GAAG18I,EAAEm1J,GAAGzY,EAAE,EAAEA,GAAGnoH,EAAE+1C,EAAEwa,EAAE,KAAK,EAAExa,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,EAAEnoH,GAAG5Z,EAAE/jB,GAAGqP,EAAEqkE,GAAGnnD,GAAG,GAAGinD,IAAI,GAAGz9D,EAAE,IAAI,IAAI4nB,EAAE,EAAEmoH,EAAE9lJ,EAAEqP,EAAE,GAAG,GAAGy2I,EAAE,EAAEA,EAAEnoH,IAAI,EAAE5Z,IAAI,EAAE+hI,EAAE,EAAE,EAAEA,EAAEnoH,GAAGtuB,EAAErP,GAAGusB,EAAEA,EAAE,MAAM,IAAI,IAAIoR,EAAE,EAAEmoH,EAAE9lJ,EAAEusB,EAAE,GAAG,GAAGu5H,EAAE,EAAEA,EAAEnoH,IAAI,EAAEtuB,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAEv5H,EAAE6kD,GAAG/hE,EAAEsuB,GAAG,EAAEA,EAAEmoH,EAAEA,EAAEryE,EAAEqyE,EAAE,EAAE9lJ,GAAG8M,EAAEytI,GAAG,IAAI,GAAGhuH,EAAEvsB,EAAE8M,EAAE,IAAI,GAAGyf,IAAI,EAAE6kD,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAG5iK,EAAEkoB,EAAE,IAAIoyC,EAAEhoE,EAAEqqE,EAAEimG,GAAG5iK,EAAEkoB,EAAE,IAAI8mH,EAAEh5I,EAAE1D,EAAEgoE,EAAE00E,IAAInyE,EAAE3vD,GAAGgb,EAAE20C,EAAE3vD,GAAG2Z,EAAE,EAAE3Z,GAAGuI,GAAGonD,EAAEtkE,IAAIA,GAAG2uJ,EAAEtyJ,GAAGoL,EAAEknJ,EAAEtyJ,GAAG,IAAIioE,EAAE+lG,GAAG5iK,EAAEkoB,EAAE,IAAIy0C,GAAG,EAAEqyE,GAAG18I,EAAE0D,IAAIuC,IAAI,EAAEkd,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,GAAG,EAAE9lJ,GAAGoxE,EAAEmpE,IAAI,GAAGv2H,EAAEhkB,EAAEoxE,EAAE,GAAG,GAAGuC,IAAI,EAAE3vD,IAAI,EAAE8hI,EAAE,EAAE,EAAEA,EAAE,KAAK,EAAEtyE,GAAG,CAAC,KAAKxvD,EAAEjO,GAAGy9D,EAAElqE,GAAG,GAAGiqE,EAAE,EAAEC,GAAGG,EAAE3zE,GAAG8lJ,EAAEvL,EAAE/mE,EAAE,IAAI,IAAIxzE,EAAEgkB,GAAG,GAAG,EAAE8hI,EAAE9lJ,EAAEgkB,EAAE,GAAG,GAAGhkB,EAAE8lJ,EAAE,GAAG,GAAG,EAAE9lJ,EAAEgkB,GAAG,GAAGwvD,EAAExzE,EAAEgkB,EAAE,GAAG,GAAGwvD,IAAI,EAAEG,IAAI,EAAEmyE,EAAE,EAAE,EAAEA,EAAE,IAAI,GAAGx8I,EAAEA,EAAE,EAAE,MAAM,MAAM01B,IAAIw0C,EAAEA,EAAE,GAAG,IAAI,GAAGz9D,EAAE,EAAEioJ,EAAEh6I,EAAEhkB,EAAEsxE,EAAE,GAAG,GAAGw0E,EAAE9hI,IAAI,EAAE,EAAEA,IAAI,GAAGA,IAAI,IAAItY,EAAE1L,EAAEsxE,GAAG,MAAM,GAAGooG,GAAGhuK,EAAEsY,EAAE,IAAI8hI,GAAG18I,EAAE4a,GAAGyvD,EAAEimG,GAAGhuK,EAAEsyJ,EAAE,IAAIh6I,IAAI2vD,EAAEua,EAAEluF,EAAEwL,GAAG,IAAI,EAAEs6I,GAAG10E,EAAEpxE,EAAEwL,EAAE,GAAG,KAAKpC,EAAE08I,GAAG,EAAEA,EAAEnyE,IAAI,EAAE3vD,IAAI,EAAE8hI,EAAE,EAAE,EAAEA,EAAE9hI,GAAG2Z,EAAE39B,GAAG2zE,EAAE59D,EAAEmoJ,EAAE,IAAI,IAAIl6I,EAAE,EAAE8hI,EAAE9lJ,EAAE2zE,EAAE,GAAG,GAAGmyE,EAAE,EAAE9hI,EAAE2Z,IAAI,GAAG81C,EAAEzvD,KAAK,EAAE8hI,EAAE,EAAE,EAAEA,EAAEnoH,EAAEg2C,EAAE3zE,EAAE08I,EAAE,GAAG,GAAGoJ,EAAEnyE,IAAI,EAAE,EAAEA,IAAI,IAAIA,IAAI,IAAIpnD,EAAEvsB,EAAE08I,GAAG,MAAM,GAAGg9B,GAAGntJ,EAAEonD,EAAE,GAAGmyE,GAAG18I,EAAEiG,EAAEokE,EAAEA,EAAEimG,GAAGntJ,EAAEoR,EAAE,GAAGg2C,EAAEmyE,GAAG18I,EAAE08I,GAAG9hI,EAAE,EAAElX,EAAE6mE,EAAEtkE,EAAEokE,EAAE,EAAEE,EAAEmyE,EAAEnyE,IAAI,EAAEF,IAAI,EAAEqyE,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEg/B,GAAG,GAAGlyB,EAAE9M,EAAEg/B,EAAE,GAAG,GAAG8mH,EAAEA,EAAE9lJ,GAAGg/B,EAAE09G,GAAG,IAAI,GAAG/+G,EAAE,EAAE81C,EAAElnD,EAAEoR,GAAGpR,EAAEvsB,EAAEg/B,EAAE,IAAI,MAAM,GAAGy0C,EAAEzvD,EAAEyvD,EAAElnD,EAAE,KAAK,EAAEu5H,EAAE,EAAE,EAAEA,EAAE9hI,EAAEuI,EAAEvsB,EAAE0zE,EAAE,GAAG,GAAGoyE,EAAEv5H,IAAI,EAAE,EAAEA,IAAI,GAAGA,IAAI,IAAIzV,EAAE9W,EAAE0zE,GAAG,MAAM,GAAGgmG,GAAG5iK,EAAEyV,EAAE,IAAIu5H,GAAG18I,EAAEiG,EAAEokE,EAAEA,EAAEimG,GAAG5iK,EAAEkN,EAAE,IAAIuI,EAAEu5H,GAAG18I,EAAE08I,GAAGnoH,EAAE,EAAEA,EAAE81C,IAAI,GAAGpkE,EAAEkd,EAAEld,EAAEokE,EAAE,KAAK,EAAEqyE,EAAE,EAAE,EAAEA,EAAEv5H,EAAEknD,EAAEzzE,EAAEg/B,EAAE,IAAI,GAAG8mH,EAAEryE,IAAI,EAAE,EAAEA,IAAI,IAAIA,IAAI,IAAI1vD,EAAE/jB,EAAEg/B,EAAE,GAAG,MAAM,GAAG06I,GAAG31J,EAAE0vD,EAAE,GAAGqyE,GAAG18I,EAAEszI,EAAErtI,EAAEA,EAAEqqK,GAAG31J,EAAEwI,EAAE,GAAGknD,EAAEqyE,GAAG18I,EAAE08I,GAAGnoH,EAAE,EAAEmoH,GAAGryE,EAAEipE,EAAErtI,EAAE,KAAK,EAAEA,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAEz2I,EAAEokE,EAAE91C,EAAEmoH,EAAE9lJ,EAAEg/B,EAAE,KAAK,GAAGy0C,EAAEzzE,EAAEg/B,EAAE,KAAK,GAAG8mH,EAAE9mH,EAAEm/H,EAAE1qF,EAAElnD,EAAEu5H,EAAE4zB,GAAG5sK,EAAE6mE,EAAE,IAAIwqF,EAAE/0J,EAAEmjB,EAAEu5H,EAAEA,EAAEnyE,IAAI,EAAE,EAAEA,GAAGA,EAAE+lG,GAAG5sK,EAAE6mE,EAAE,IAAIpnD,IAAI,GAAGonD,IAAI,GAAG7mE,IAAI,KAAKA,EAAE4vI,EAAE18I,EAAEiwE,GAAG,IAAI,EAAE61E,GAAGv5H,EAAEvsB,EAAEiwE,EAAE,GAAG,KAAK7mE,EAAE08I,EAAEqY,GAAG,EAAErY,EAAEnyE,IAAI,EAAE7mE,IAAI,EAAEg5I,EAAE,EAAE,EAAEA,EAAEh5I,EAAE6mE,EAAEmyE,EAAEA,EAAEryE,EAAE,EAAE1vD,EAAE4vD,EAAEA,EAAE5vD,EAAE,EAAE4vD,EAAEA,IAAI,EAAE7mE,IAAI,EAAEg5I,EAAE,EAAE,EAAEA,EAAEh5I,EAAE2mE,EAAEzzE,EAAE4zE,EAAE,GAAG,GAAGkyE,EAAEryE,IAAI,EAAE,EAAEA,IAAI,IAAIA,IAAI,IAAI0qF,EAAEn+J,EAAE4zE,GAAG,MAAM,GAAG8lG,GAAGvb,EAAE1qF,EAAE,GAAGqyE,GAAG18I,EAAE2qB,EAAEhQ,EAAEA,EAAE21J,GAAGvb,EAAErxJ,EAAE,GAAG2mE,EAAEqyE,GAAG18I,EAAE08I,GAAGnyE,EAAE,EAAEmyE,GAAGryE,EAAE1/C,EAAEhQ,EAAE,KAAK,EAAEA,IAAI,EAAE+hI,EAAE,EAAE,EAAEA,EAAE/hI,EAAE0vD,EAAEE,EAAEmyE,EAAE9lJ,EAAEg/B,EAAE,KAAK,GAAGy0C,EAAEzzE,EAAEg/B,EAAE,KAAK,GAAG8mH,EAAE9mH,GAAG8mH,EAAEqY,IAAIA,EAAEn+J,GAAGyzE,EAAEG,GAAG,IAAI,IAAI,EAAEkyE,EAAE9lJ,EAAEyzE,EAAE,IAAI,GAAG3mE,EAAE,EAAEA,EAAEg5I,EAAE9mH,IAAI,EAAEm/H,IAAI,EAAErY,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAGrqK,EAAEsuB,EAAE,IAAIwgI,EAAE/0J,EAAEwqE,EAAE50C,EAAEA,EAAE8mH,EAAEA,EAAEnoH,IAAI,EAAE,EAAEqB,EAAE06I,GAAGrqK,EAAEsuB,EAAE,IAAIqB,IAAI,GAAGrB,IAAI,GAAGtuB,IAAI,GAAGy2I,GAAG18I,EAAE08I,EAAEqY,GAAGrxJ,EAAE,EAAEqxJ,EAAExgI,EAAEi2C,EAAE50C,EAAE,EAAErB,EAAEA,IAAI,EAAEqB,IAAI,EAAE8mH,EAAE,EAAE,EAAEA,EAAE9mH,EAAElyB,EAAE9M,EAAEyzE,EAAE,IAAI,GAAGqyE,EAAEh5I,IAAI,EAAE,EAAEA,IAAI,IAAIA,IAAI,IAAIuC,EAAErP,EAAEyzE,EAAE,GAAG,MAAM,GAAGimG,GAAGrqK,EAAEvC,EAAE,GAAGg5I,GAAG18I,EAAEwqE,EAAE8lG,GAAGrqK,EAAE2vB,EAAE,GAAGlyB,EAAEg5I,GAAG18I,EAAE08I,GAAGnoH,EAAE,EAAEmoH,GAAGh5I,EAAE8mE,EAAEuqF,EAAE,KAAK,EAAEvqF,IAAI,EAAEkyE,EAAE,EAAE,EAAEA,EAAElyE,EAAE9mE,EAAE6wB,EAAEmoH,EAAE9lJ,EAAEyzE,EAAE,KAAK,GAAG3mE,EAAE9M,EAAEyzE,EAAE,KAAK,GAAGqyE,EAAEryE,EAAEm0E,EAAE96I,EAAEkyB,EAAE8mH,EAAE4zB,GAAG31J,EAAE4vD,EAAE,IAAIi0E,EAAEx+I,EAAE2qB,EAAE1kB,EAAEA,EAAEy2I,EAAEA,EAAEnyE,IAAI,EAAE,EAAEA,GAAGA,EAAE+lG,GAAG31J,EAAE4vD,EAAE,IAAItkE,IAAI,GAAGskE,IAAI,GAAG5vD,IAAI,KAAK1U,EAAE8uJ,EAAEn+J,EAAEsL,GAAG,IAAI,EAAEw6I,GAAG9mH,EAAEh/B,EAAEsL,EAAE,GAAG,KAAKlC,EAAE08I,EAAE8B,GAAG,EAAE9B,EAAEnyE,IAAI,EAAEtkE,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAEz2I,EAAEskE,EAAEmyE,EAAEA,EAAEh5I,EAAE,EAAE86I,EAAEj0E,EAAE5/C,EAAE4/C,EAAE,EAAEA,EAAEA,IAAI,EAAEtkE,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAEz2I,EAAEvC,EAAE9M,EAAE6zE,EAAE,GAAG,GAAGiyE,EAAEh5I,IAAI,EAAE,EAAEA,IAAI,IAAIA,IAAI,IAAIiX,EAAE/jB,EAAE6zE,GAAG,MAAM,GAAG6lG,GAAG31J,EAAEjX,EAAE,GAAGg5I,GAAG18I,EAAE2qB,EAAE6zH,EAAEA,EAAE8xB,GAAG31J,EAAE1U,EAAE,GAAGvC,EAAEg5I,GAAG18I,EAAE08I,GAAGnyE,EAAE,EAAEmyE,GAAGh5I,EAAEinB,EAAE6zH,EAAE,KAAK,EAAEA,IAAI,EAAE9B,EAAE,EAAE,EAAEA,EAAE8B,EAAE96I,EAAE6mE,EAAEmyE,EAAE9lJ,EAAEyzE,EAAE,KAAK,GAAG3mE,EAAE9M,EAAEyzE,EAAE,KAAK,GAAGqyE,EAAEryE,GAAGqyE,EAAE/hI,IAAIA,EAAE/jB,GAAG8M,EAAE+mE,GAAG,IAAI,IAAI,EAAEiyE,EAAE9lJ,EAAE8M,EAAE,IAAI,GAAGuC,EAAE,EAAEA,EAAEy2I,EAAEryE,IAAI,EAAE1vD,IAAI,EAAE+hI,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAG9lG,EAAEj2C,EAAE,IAAI5Z,EAAE3a,EAAEyqE,EAAEJ,EAAE1/C,EAAE+xH,EAAEA,GAAGryE,EAAE91C,KAAK,EAAE,EAAE81C,EAAE1/C,IAAI,GAAG0/C,IAAI,GAAGG,IAAI,GAAG8lG,GAAG9lG,EAAEH,EAAE,IAAIqyE,GAAG18I,EAAE08I,EAAE/hI,GAAG1U,EAAE,EAAEsuB,EAAE81C,IAAI,GAAG1vD,EAAE4Z,EAAEk2C,EAAEJ,EAAE,KAAK,EAAEqyE,EAAE,EAAE,EAAEA,EAAEA,GAAGryE,EAAEpkE,EAAErP,EAAE8M,EAAE,IAAI,MAAM,EAAE,EAAEuC,IAAI,IAAIokE,IAAI,IAAII,EAAE7zE,EAAE8M,EAAE,GAAG,MAAM,GAAG4sK,GAAG7lG,EAAEJ,EAAE,GAAGqyE,GAAG18I,EAAEwqE,EAAE7vD,EAAEA,EAAE21J,GAAG7lG,EAAEJ,EAAE,GAAGpkE,EAAEy2I,GAAG18I,EAAE08I,GAAGnoH,EAAE,EAAEi2C,EAAEvkE,EAAEukE,EAAE7vD,EAAE,EAAE4Z,EAAEmoH,EAAE/hI,IAAI,EAAE1U,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE8M,EAAE,KAAK,GAAGuC,EAAErP,EAAE8M,EAAE,KAAK,GAAGg5I,EAAEh5I,EAAE6oE,EAAEtmE,EAAEokE,EAAEqyE,EAAE4zB,GAAG9xB,EAAEj0E,EAAE,IAAIgC,EAAEvsE,EAAEqqE,EAAEqyE,EAAEA,EAAEnyE,IAAI,EAAE,EAAEF,EAAEimG,GAAG9xB,EAAEj0E,EAAE,IAAIF,IAAI,GAAGE,IAAI,GAAGi0E,IAAI,GAAG9B,GAAG18I,EAAE08I,EAAEnwE,GAAG3xD,EAAE,EAAE8hI,GAAGnyE,EAAEF,EAAE38D,EAAE,KAAK,EAAE28D,IAAI,EAAEqyE,EAAE,EAAE,EAAEA,EAAEryE,EAAEE,EAAEmyE,EAAEA,EAAEz2I,EAAE,EAAEwkE,EAAEF,EAAEA,EAAEE,EAAE,EAAEF,EAAEA,IAAI,EAAEF,IAAI,EAAEqyE,EAAE,EAAE,EAAEA,EAAEA,GAAGryE,EAAE1vD,EAAE/jB,EAAE49B,EAAE,GAAG,MAAM,EAAE,EAAE7Z,IAAI,IAAI0vD,IAAI,IAAIpkE,EAAErP,EAAE49B,GAAG,MAAM,GAAG87I,GAAGrqK,EAAEokE,EAAE,GAAGqyE,GAAG18I,EAAEw+I,EAAE/zE,EAAEA,EAAE6lG,GAAGrqK,EAAEokE,EAAE,GAAG1vD,EAAE+hI,GAAG18I,EAAE08I,GAAGnyE,EAAE,EAAEA,EAAEmyE,GAAG/hI,EAAE6jI,EAAE/zE,EAAE,KAAK,EAAEA,IAAI,EAAEiyE,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE8M,EAAE,KAAK,GAAGiX,EAAE/jB,EAAE8M,EAAE,KAAK,GAAGg5I,EAAEA,EAAE9lJ,GAAG8M,EAAE8wB,GAAG,IAAI,GAAG61C,EAAE,EAAEpkE,GAAGokE,EAAEpkE,GAAGwkE,EAAE7zE,EAAE8M,EAAE,IAAI,IAAIuC,EAAE,KAAK,EAAEwkE,IAAI,EAAEiyE,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAG9lG,EAAEj2C,EAAE,IAAIk2C,EAAEzqE,EAAEw+I,EAAEn0E,EAAE71C,EAAEkoH,EAAEA,GAAGryE,EAAE91C,KAAK,EAAE,EAAE81C,EAAE71C,IAAI,GAAG61C,IAAI,GAAGG,IAAI,GAAG8lG,GAAG9lG,EAAEH,EAAE,IAAIqyE,GAAG18I,EAAE08I,EAAEjyE,GAAGxkE,EAAE,EAAEukE,EAAEj2C,EAAEiqH,EAAEn0E,EAAE,EAAE91C,EAAE81C,IAAI,EAAE91C,IAAI,EAAEmoH,EAAE,EAAE,EAAEA,EAAEA,GAAGryE,EAAEpkE,EAAErP,EAAE8M,EAAE,IAAI,MAAM,EAAE,EAAEuC,IAAI,IAAIokE,IAAI,IAAII,EAAE7zE,EAAE8M,EAAE,GAAG,MAAM,GAAG4sK,GAAG7lG,EAAEJ,EAAE,GAAGqyE,GAAG18I,EAAEw+I,EAAEh0E,EAAEA,EAAE8lG,GAAG7lG,EAAEJ,EAAE,GAAGpkE,EAAEy2I,GAAG18I,EAAE08I,GAAGnoH,EAAE,EAAEmoH,GAAGz2I,EAAEu4I,EAAEh0E,EAAE,KAAK,EAAEA,IAAI,EAAEkyE,EAAE,EAAE,EAAEA,EAAElyE,EAAEvkE,EAAEsuB,EAAEmoH,EAAE9lJ,EAAE8M,EAAE,KAAK,GAAGuC,EAAErP,EAAE8M,EAAE,KAAK,GAAGg5I,EAAEz2I,EAAEokE,EAAEqyE,EAAE4zB,GAAG31J,EAAE4vD,EAAE,IAAI/1C,EAAEx0B,EAAEqqE,EAAEqyE,EAAEA,EAAEnyE,IAAI,EAAE,EAAEA,GAAGA,EAAE+lG,GAAG31J,EAAE4vD,EAAE,IAAIF,IAAI,GAAGE,IAAI,GAAG5vD,IAAI,KAAK0vD,EAAEzzE,GAAG8M,EAAEgnE,GAAG,IAAI,IAAI,EAAEgyE,EAAE9lJ,EAAE8M,EAAE,IAAI,IAAI1D,EAAE08I,EAAEloH,GAAG,EAAEkoH,EAAEnyE,IAAI,EAAEF,IAAI,EAAEqyE,EAAE,EAAE,EAAEA,EAAEryE,EAAEE,EAAEmyE,EAAEA,EAAEz2I,EAAE,EAAEokE,EAAEqyE,GAAGnyE,EAAEA,EAAEE,EAAE,KAAK,EAAEJ,IAAI,EAAEqyE,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAGxrF,EAAE9c,EAAE,GAAG/hE,EAAEjG,EAAEyqE,EAAEF,EAAE5vD,EAAE+hI,EAAEA,GAAGnyE,EAAEvC,KAAK,EAAE,EAAErtD,EAAEA,IAAI,IAAI4vD,IAAI,GAAGua,IAAI,GAAGwrF,GAAGxrF,EAAEva,EAAE,GAAGmyE,GAAG18I,EAAE08I,EAAEz2I,GAAGokE,EAAE,EAAEpkE,EAAEskE,EAAEE,EAAE9vD,EAAE,EAAE4vD,EAAEmyE,EAAEnyE,IAAI,EAAE5vD,IAAI,EAAE+hI,EAAE,EAAE,EAAEA,EAAE9lJ,EAAE8M,EAAE,KAAK,GAAGuC,EAAErP,EAAE8M,EAAE,KAAK,GAAGg5I,EAAEA,EAAE9lJ,GAAGyzE,EAAEjoE,GAAG,IAAI,GAAG4lE,EAAE,EAAEA,EAAEtkE,GAAGiX,EAAE/jB,EAAEyzE,EAAE,IAAI,IAAIya,EAAE,EAAEphF,EAAEA,IAAI,EAAEiX,IAAI,EAAE+hI,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAG9lG,EAAEj2C,EAAE,IAAI5Z,EAAE3a,EAAE8kF,EAAE9c,EAAEA,EAAE00E,EAAEA,EAAEnoH,IAAI,EAAE,EAAEyzC,EAAEsoG,GAAG9lG,EAAEj2C,EAAE,IAAIyzC,IAAI,GAAGzzC,IAAI,GAAGi2C,IAAI,GAAGkyE,GAAG18I,EAAE08I,EAAE/hI,GAAGjX,EAAE,EAAE6wB,GAAG5Z,EAAE4Z,EAAEuwD,EAAE9c,EAAE,KAAK,EAAEA,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE10E,EAAEtkE,EAAE9M,EAAEyzE,EAAE,IAAI,GAAGqyE,EAAEh5I,IAAI,EAAE,EAAEA,IAAI,IAAIA,IAAI,IAAI8mE,EAAE5zE,EAAEyzE,EAAE,GAAG,MAAM,GAAGimG,GAAG9lG,EAAE9mE,EAAE,GAAGg5I,GAAG18I,EAAE8kF,EAAEnqE,EAAEA,EAAE21J,GAAG9lG,EAAExC,EAAE,GAAGtkE,EAAEg5I,GAAG18I,EAAE08I,GAAGnoH,EAAE,EAAEmoH,GAAGh5I,EAAEohF,EAAEnqE,EAAE,KAAK,EAAEA,IAAI,EAAE+hI,EAAE,EAAE,EAAEA,EAAE/hI,EAAEjX,EAAE6wB,EAAEmoH,EAAE9lJ,EAAEyzE,EAAE,KAAK,GAAG3mE,EAAE9M,EAAEyzE,EAAE,KAAK,GAAGqyE,EAAEh5I,EAAEskE,EAAE00E,EAAE4zB,GAAGrqK,EAAEskE,EAAE,IAAIE,EAAEzqE,EAAEqqE,EAAEqyE,EAAEA,EAAEnyE,IAAI,EAAE,EAAEA,GAAGA,EAAE+lG,GAAGrqK,EAAEskE,EAAE,IAAIF,IAAI,GAAGE,IAAI,GAAGtkE,IAAI,KAAK+hE,EAAEpxE,GAAGyzE,EAAE11C,GAAG,IAAI,IAAI,EAAE+nH,EAAE9lJ,EAAEyzE,EAAE,IAAI,IAAIrqE,EAAE08I,EAAEjyE,GAAG,EAAEiyE,EAAEnyE,IAAI,EAAEvC,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE10E,EAAEuC,EAAEmyE,EAAEA,EAAEh5I,EAAE,EAAEskE,EAAE00E,GAAGnyE,EAAEA,EAAEC,EAAE,KAAK,EAAExC,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAGh9B,EAAEnwH,EAAE,GAAGzf,EAAE1D,EAAE8kF,EAAEva,EAAEtkE,EAAEy2I,EAAEA,GAAGnyE,EAAEpnD,KAAK,EAAE,EAAEld,EAAEA,IAAI,IAAIskE,IAAI,GAAG+oE,IAAI,GAAGg9B,GAAGh9B,EAAE/oE,EAAE,GAAGmyE,GAAG18I,EAAE08I,EAAEh5I,GAAGskE,EAAE,EAAEtkE,EAAE6mE,EAAEua,EAAE7+E,EAAE,EAAEskE,EAAEmyE,EAAEnyE,IAAI,EAAEtkE,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEyzE,EAAE,KAAK,GAAG3mE,EAAE9M,EAAEyzE,EAAE,KAAK,GAAGqyE,EAAE10E,GAAG/hE,EAAErP,GAAGyzE,EAAExD,GAAG,IAAI,IAAIysE,EAAE,EAAEoJ,EAAE9lJ,EAAEyzE,EAAE,IAAI,GAAGlnD,EAAE,EAAEA,EAAEu5H,EAAEz2I,IAAI,EAAE+hE,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAG31J,EAAE4Z,EAAE,IAAItuB,EAAEjG,EAAE8kF,EAAE9c,EAAEA,EAAE00E,EAAEA,EAAEnoH,IAAI,EAAE,EAAEyzC,EAAEsoG,GAAG31J,EAAE4Z,EAAE,IAAIyzC,IAAI,GAAGzzC,IAAI,GAAG5Z,IAAI,GAAG+hI,GAAG18I,EAAE08I,EAAEz2I,GAAGkd,EAAE,EAAEoR,GAAGtuB,EAAEsuB,EAAEuwD,EAAE9c,EAAE,KAAK,EAAEA,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE10E,EAAE7kD,EAAEvsB,EAAEyzE,EAAE,IAAI,GAAGqyE,EAAEv5H,IAAI,EAAE,EAAEA,IAAI,IAAIA,IAAI,IAAIxI,EAAE/jB,EAAEyzE,EAAE,GAAG,MAAM,GAAGimG,GAAG31J,EAAEwI,EAAE,GAAGu5H,GAAG18I,EAAE8kF,EAAE7+E,EAAEA,EAAEqqK,GAAG31J,EAAEqtD,EAAE,GAAG7kD,EAAEu5H,GAAG18I,EAAE08I,GAAGnoH,EAAE,EAAEmoH,EAAEz2I,IAAI,GAAGkd,EAAE2hE,EAAE7+E,EAAE,KAAK,EAAEy2I,EAAE,EAAE,EAAEA,EAAEz2I,EAAEkd,EAAEoR,EAAEmoH,EAAE9lJ,EAAEyzE,EAAE,KAAK,GAAGpkE,EAAErP,EAAEyzE,EAAE,KAAK,GAAGqyE,EAAEryE,EAAErC,EAAE00E,EAAE4zB,GAAG5sK,EAAE6mE,EAAE,IAAI+oE,EAAEtzI,EAAEgoE,EAAE00E,EAAEA,EAAEnyE,IAAI,EAAE,EAAEA,GAAGA,EAAE+lG,GAAG5sK,EAAE6mE,EAAE,IAAIvC,IAAI,GAAGuC,IAAI,GAAG7mE,IAAI,KAAKskE,EAAEpxE,GAAGusB,EAAE2c,GAAG,IAAI,IAAI,EAAE48G,EAAE9lJ,EAAEusB,EAAE,IAAI,IAAInjB,EAAE08I,EAAEpJ,GAAG,EAAEoJ,EAAEnyE,IAAI,EAAEvC,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE10E,EAAEuC,EAAEmyE,EAAEA,EAAEryE,EAAE,EAAErC,EAAE00E,GAAGnyE,EAAEA,EAAE5vD,EAAE,KAAK,EAAEqtD,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAGvb,EAAEn/H,EAAE,GAAGy0C,EAAErqE,EAAE2a,EAAE4vD,EAAE7mE,EAAEg5I,EAAEA,GAAGnyE,EAAE30C,KAAK,EAAE,EAAElyB,EAAEA,IAAI,IAAI6mE,IAAI,GAAGwqF,IAAI,GAAGub,GAAGvb,EAAExqF,EAAE,GAAGmyE,GAAG18I,EAAE08I,EAAEryE,GAAGrC,EAAE,EAAEqC,EAAEE,EAAE5vD,EAAEjX,EAAE,EAAE6mE,EAAEmyE,EAAEnyE,IAAI,EAAE7mE,IAAI,EAAEg5I,EAAE,EAAE,EAAEA,EAAE9lJ,EAAEusB,EAAE,KAAK,GAAGknD,EAAEzzE,EAAEusB,EAAE,KAAK,GAAGu5H,EAAEv5H,GAAGzf,EAAE9M,GAAGoxE,EAAE9lE,GAAG,IAAI,IAAI6yJ,EAAE,EAAErY,EAAE9lJ,EAAEoxE,EAAE,IAAI,GAAGpyC,EAAE,EAAEA,EAAE8mH,EAAEh5I,IAAI,EAAEyf,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAGrqK,EAAEsuB,EAAE,IAAI7wB,EAAE1D,EAAE2a,EAAEwI,EAAEA,EAAEu5H,EAAEA,EAAEnoH,IAAI,EAAE,EAAEpR,EAAEmtJ,GAAGrqK,EAAEsuB,EAAE,IAAIpR,IAAI,GAAGoR,IAAI,GAAGtuB,IAAI,GAAGy2I,GAAG18I,EAAE08I,EAAEh5I,GAAGkyB,EAAE,EAAErB,GAAG7wB,EAAE6wB,EAAE5Z,EAAEwI,EAAE,KAAK,EAAEA,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,EAAE9mH,EAAEzS,EAAEvsB,EAAEoxE,EAAE,IAAI,GAAG00E,EAAEv5H,IAAI,EAAE,EAAEA,IAAI,IAAIA,IAAI,IAAIjhB,EAAEtL,EAAEoxE,EAAE,GAAG,MAAM,GAAGsoG,GAAGpuK,EAAEihB,EAAE,GAAGu5H,GAAG18I,EAAEmjB,EAAEmtJ,GAAGpuK,EAAE0zB,EAAE,GAAGzS,EAAEu5H,GAAG18I,EAAE08I,GAAGnoH,EAAE,EAAEmoH,EAAEv5H,IAAI,GAAGjhB,EAAEihB,EAAEzf,EAAE,KAAK,EAAEg5I,EAAE,EAAE,EAAEA,EAAEv5H,EAAEjhB,EAAEqyB,EAAEmoH,EAAE9lJ,EAAEoxE,EAAE,KAAK,GAAG7kD,EAAEvsB,EAAEoxE,EAAE,KAAK,GAAG00E,EAAEx6I,GAAG0zB,EAAEh/B,GAAGoxE,EAAEE,GAAG,IAAI,IAAI5lE,EAAE,EAAEo6I,EAAE9lJ,EAAEoxE,EAAE,IAAI,GAAG4sF,EAAE,EAAE1sF,EAAEw0E,EAAE9mH,IAAI,EAAE1zB,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAGjmG,EAAEE,EAAE,IAAI30C,EAAE51B,EAAEiG,EAAE/D,EAAEwB,EAAEg5I,EAAEA,EAAEnyE,IAAI,EAAE,EAAEroE,EAAEouK,GAAGjmG,EAAEE,EAAE,IAAI7mE,IAAI,GAAG6mE,IAAI,GAAGF,IAAI,GAAGqyE,GAAG18I,EAAE08I,EAAE9mH,GAAGsyC,EAAE,EAAEhmE,EAAEw6I,GAAGnyE,EAAEtkE,EAAE/D,EAAE,KAAK,EAAEA,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAG5iK,EAAEkN,EAAE,GAAGstD,EAAEloE,EAAEqqE,EAAEE,EAAEtkE,EAAEy2I,EAAEA,GAAGnyE,EAAE3vD,KAAK,EAAE,EAAE2vD,EAAEF,GAAGz0C,EAAE3vB,IAAI,IAAIskE,IAAI,GAAG78D,IAAI,GAAG4iK,GAAG5iK,EAAE68D,EAAE,IAAI,EAAEmyE,GAAG18I,EAAE08I,EAAEx0E,GAAGhmE,EAAE,EAAEtL,EAAEoxE,EAAE,KAAK,GAAGuC,EAAE3zE,EAAEoxE,EAAE,KAAK,GAAGuC,IAAI,EAAE30C,IAAI,EAAE8mH,EAAE,EAAE,EAAEA,EAAEA,EAAE9lJ,GAAG2zE,EAAED,GAAG,IAAI,GAAG1vD,EAAE,EAAEA,EAAEotD,GAAG9lE,EAAEtL,EAAE2zE,EAAE,IAAI,IAAI78D,EAAE,EAAEs6D,EAAEA,IAAI,EAAE9lE,IAAI,EAAEw6I,EAAE,EAAE,EAAEA,EAAEA,EAAE4zB,GAAGntJ,EAAEoR,EAAE,IAAIryB,EAAElC,EAAEqqE,EAAEqyE,EAAEA,EAAEnoH,IAAI,EAAE,EAAEA,EAAE+7I,GAAGntJ,EAAEoR,EAAE,IAAI81C,IAAI,GAAG91C,IAAI,GAAGpR,IAAI,GAAGu5H,GAAG18I,EAAE08I,EAAEx6I,GAAG8lE,EAAE,EAAEptD,EAAE2Z,IAAI,GAAG2zC,EAAEttD,EAAE2Z,EAAE3Z,EAAE,KAAK,EAAE8hI,EAAE,EAAE,EAAEA,EAAEpyE,IAAI,KAAKtC,EAAE9lE,EAAEtL,EAAE2zE,EAAE,IAAI,MAAM,IAAIh2C,EAAE39B,EAAE2zE,EAAE,GAAG,MAAM,GAAG+lG,GAAG/7I,EAAEyzC,EAAE,GAAG00E,EAAE18I,EAAEgoE,IAAI,EAAEsC,GAAGpoE,EAAEouK,GAAG/7I,EAAEyzC,EAAE,GAAGsC,GAAGpC,EAAE,EAAEw0E,GAAG18I,EAAE08I,GAAG9hI,EAAE,EAAEhkB,EAAE2zE,EAAE,KAAK,GAAGD,EAAE1zE,EAAE2zE,EAAE,KAAK,GAAGroE,IAAI,EAAEooE,IAAI,EAAEoyE,EAAE,EAAE,EAAEA,GAAG,SAASjyE,EAAEN,GAAG,IAAIgnE,EAAExkI,EAAEy9D,EAAEsyE,EAAEnyE,EAAE3zE,EAAEqP,EAAE0U,EAAE4Z,EAAE7mB,EAAEyV,EAAE6kD,EAAEpyC,EAAEsyC,EAAEttD,EAAEkqE,EAAE5iF,EAAEooE,EAAEzD,EAAE,EAAEzkE,EAAE,EAAEooE,EAAE,EAAEC,EAAE,EAAEj2C,EAAE,EAAEsL,EAAE,EAAE4qC,EAAE,EAAEkqF,EAAE,EAAEtyJ,EAAE,EAAEqoB,EAAE,EAAEgK,EAAE,EAAEogI,EAAE,EAAEvW,EAAE,EAAEjwD,EAAE,EAAEsmE,EAAE,EAAEvhB,EAAE,EAAE2hB,EAAE,EAAE1oF,EAAE,EAAE4oF,EAAE,EAAEj1J,EAAE,EAAE40J,EAAE,EAAEhP,EAAE,EAAE90D,EAAE,EAAEkkE,EAAE,EAAEhK,EAAE,EAAExE,EAAE,EAAEV,EAAE,EAAE5oJ,EAAE,EAAEg4J,EAAE,EAAEJ,EAAE,EAAE7sF,EAAE,EAAEktF,EAAE,EAAE4Z,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAErnG,EAAEsoG,GAAGrmG,GAAGvvD,EAAElX,EAAEymE,EAAE,EAAE,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,EAAEzmE,EAAEymE,EAAE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,GAAG2a,EAAE0rF,GAAGrmG,EAAE,EAAE,GAAGjoE,EAAElC,EAAEkvK,GAAGxrK,EAAEymE,EAAE,EAAE,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,EAAEzmE,EAAEymE,EAAE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGglG,GAAGzrK,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGG,EAAEkmG,GAAGrmG,EAAE,GAAG,GAAGilG,GAAGpvK,EAAE60J,EAAEnxJ,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGirF,EAAEob,GAAGrmG,EAAE,GAAG,GAAGmpE,EAAEtzI,EAAE2qB,EAAE6lJ,GAAGrmG,EAAE,GAAG,GAAGrqC,EAAEp8B,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAG31C,EAAEg8I,GAAGrmG,EAAE,GAAG,GAAG/nE,EAAEpC,EAAEivK,GAAGvrK,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAG6mB,EAAEttF,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAG67E,EAAEwqB,GAAGrmG,EAAE,GAAG,GAAGu8E,EAAE1mJ,EAAEi1J,EAAEvxJ,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAG6qF,EAAEwb,GAAGrmG,EAAE,GAAG,GAAGgrF,EAAEn1J,EAAE40J,EAAE4b,GAAGrmG,EAAE,GAAG,GAAGM,EAAE/mE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGK,EAAEgmG,GAAGrmG,EAAE,GAAG,GAAGtD,EAAE,UAAU,EAAEzkE,IAAI,GAAGoyB,IAAI,GAAGA,EAAEi8I,GAAGt/B,EAAE,UAAU,GAAGzmE,EAAE1qE,KAAK,GAAGwqE,IAAI,GAAG,EAAE,OAAO,GAAG3D,EAAE,EAAEzkE,EAAEpC,EAAEoC,EAAEykE,IAAI,EAAEryC,IAAI,EAAEpyB,EAAE,EAAE,EAAEA,EAAEooE,EAAEimG,GAAG9jK,GAAGjJ,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAGtD,EAAE7mE,EAAEoC,EAAE,EAAEykE,EAAE2D,IAAI,GAAGh2C,EAAEg2C,EAAEh2C,EAAE,KAAK,EAAEqyC,EAAE,EAAE,EAAEA,EAAEzkE,EAAEquK,GAAGrmG,GAAG1mE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAGK,EAAExqE,EAAE6mE,EAAE,EAAE2D,EAAEpoE,IAAI,GAAGoyB,EAAEpyB,EAAEoyB,EAAE,KAAK,EAAEg2C,EAAE,EAAE,EAAEA,EAAE3D,EAAEryC,EAAEpyB,EAAEouK,GAAGrmG,EAAE,GAAG,GAAG31C,EAAEqyC,GAAGzkE,EAAEquK,GAAG/zB,EAAE,UAAU,GAAGloH,EAAEx0B,KAAK,GAAGoC,IAAI,GAAG,EAAE,OAAO,IAAI,EAAEykE,EAAE7mE,EAAEwqE,EAAE,EAAE3D,EAAEzkE,IAAI,EAAEoyB,IAAI,EAAEqyC,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAGlmG,GAAG7mE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG/nE,EAAEpC,EAAE6mE,EAAE,EAAEkuF,EAAE3yJ,EAAEooE,IAAI,GAAGh2C,EAAEg2C,EAAEh2C,EAAE,KAAK,EAAEpyB,EAAE,EAAE,EAAEA,EAAEooE,EAAEpoE,EAAEE,EAAEmoE,IAAI,EAAE,QAAQroE,EAAE,QAAQwyJ,EAAEnqF,EAAEgmG,GAAG75K,GAAG8M,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,MAAM,EAAE,EAAE,GAAG,QAAQ,GAAG/nE,EAAE,EAAEykE,EAAE7mE,EAAE40J,EAAEnqF,EAAE+zE,EAAE33E,EAAEzkE,IAAI,EAAEqoE,IAAI,EAAE5D,EAAE,EAAE,EAAEA,EAAE0nB,GAAG1nB,EAAE4D,KAAK,QAAQ,EAAEqqF,EAAErqF,EAAE+zE,IAAI33E,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEA,EAAE4D,GAAG,GAAG9vD,EAAErY,GAAGmoE,GAAG,QAAQA,IAAI,GAAG8jB,IAAI,IAAIjsF,EAAE,EAAE4oJ,EAAE9oJ,EAAEqoE,IAAI,EAAEnoE,IAAI,EAAEukE,EAAE,EAAE,EAAEA,EAAEA,EAAE4pG,GAAGnuK,EAAEF,GAAG,QAAQ,GAAGA,EAAEpC,EAAEwqE,EAAE,EAAEptE,EAAEstE,EAAE7D,EAAEryC,EAAE,EAAEG,EAAEkyC,IAAI,EAAE6D,IAAI,EAAEtoE,EAAE,EAAE,EAAEA,EAAEooE,EAAE1qC,IAAI,EAAE,QAAQ4qC,EAAE+lG,GAAGt/B,EAAE,GAAG,QAAQ,GAAG3mE,EAAE,EAAE3D,EAAE7mE,EAAE6mE,EAAE2D,IAAI,EAAEE,IAAI,EAAE7D,EAAE,EAAE,EAAEA,EAAEzkE,EAAEquK,GAAG9jK,EAAE,EAAE,OAAO,GAAG69D,EAAExqE,EAAE6mE,EAAE,EAAE2D,EAAEpoE,IAAI,GAAGsoE,EAAEtoE,EAAEsoE,EAAE,KAAK,EAAEF,EAAE,EAAE,EAAEA,EAAE3D,EAAE4pG,GAAGrmG,EAAE,EAAE,OAAO,GAAGhoE,EAAEpC,EAAEwqE,EAAE,EAAEpoE,EAAEykE,IAAI,GAAG6D,EAAE7D,EAAE6D,EAAE,KAAK,EAAEtoE,EAAE,EAAE,EAAEA,EAAEooE,EAAEimG,GAAG/zB,EAAE,EAAE,OAAO,GAAG71E,EAAE7mE,EAAEoC,EAAE,EAAEooE,EAAEA,IAAI,GAAG1qC,EAAE4qC,EAAEF,EAAEE,EAAE,KAAK,EAAE7D,EAAE,EAAE,EAAEA,EAAEA,EAAE,QAAQl8C,EAAE+/C,EAAE+lG,GAAGt/B,EAAE,EAAE,OAAO,GAAGtqE,EAAE,EAAEzkE,EAAEpC,EAAEoC,EAAEykE,IAAI,EAAE6D,IAAI,EAAEtoE,EAAE,EAAE,EAAEA,EAAEqoE,GAAG5D,EAAE6D,IAAIA,EAAE+lG,GAAG9jK,EAAE,EAAE,OAAO,IAAI,EAAEk6D,EAAE7mE,EAAEoC,EAAE,EAAEykE,EAAE4D,IAAI,EAAEC,IAAI,EAAE7D,EAAE,EAAE,EAAEA,EAAE6D,EAAE+lG,GAAGrmG,EAAE,EAAE,OAAO,GAAGhoE,EAAEpC,EAAE6mE,EAAE,EAAEvkE,EAAEmoE,EAAEC,EAAED,EAAE,EAAEA,EAAEroE,EAAEqoE,IAAI,EAAEC,IAAI,EAAEtoE,EAAE,EAAE,EAAEA,EAAE+lE,GAAGtB,EAAEvkE,KAAK,QAAQ,EAAEiqE,EAAE7B,EAAEtoE,IAAIykE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE2D,GAAG3D,EAAE6D,IAAI,GAAG,GAAGF,EAAE,EAAE7/C,EAAE6/C,GAAGpoE,GAAG,QAAQsoE,IAAI,GAAGvC,IAAI,MAAM,GAAGroC,EAAE4qC,EAAEtoE,EAAE09B,EAAE,KAAK,EAAE0qC,EAAE,EAAE,EAAEA,EAAEs7E,GAAGj/E,EAAE/mC,KAAK,QAAQ,EAAEkoC,EAAExzC,IAAI,QAAQ,EAAEugI,EAAEA,IAAIvgI,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEpyB,GAAGykE,GAAG2D,EAAEtqE,EAAEsqE,IAAI3D,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,IAAIlyC,EAAE,EAAEogI,GAAG3yJ,GAAGoyB,GAAG,QAAQg2C,IAAI,GAAGs7E,IAAI,MAAM,GAAG5lJ,EAAEs0B,EAAEp3B,EAAE,KAAK,EAAEgF,EAAE,EAAE,EAAEA,MAAMykE,GAAG,QAAQmB,KAAK,GAAGxzC,EAAEt0B,KAAK,IAAIwqE,EAAEqqF,GAAG,GAAG,EAAEsa,IAAIxoG,EAAEryC,EAAEqyC,EAAE,IAAIzkE,GAAG,SAASwzB,EAAEixC,IAAI,QAAQ,IAAI,EAAEyoG,GAAGva,IAAIluF,IAAI,EAAEzkE,IAAI,IAAIoyB,EAAEugI,IAAIluF,IAAI,EAAE,YAAY,EAAE,GAAG,GAAG,GAAG,EAAEzkE,EAAEquK,GAAG91J,EAAEuwI,EAAE,OAAO,GAAGprH,EAAE,EAAE+mC,EAAEl8C,EAAE3qB,EAAE,EAAE6mE,EAAEzkE,IAAI,EAAE09B,IAAI,EAAE+mC,EAAE,EAAE,EAAEA,EAAEwuF,GAAGv1H,EAAE19B,IAAIA,GAAG,QAAQ0jJ,GAAG,EAAE1oJ,EAAEypE,IAAIzkE,IAAI,EAAE09B,IAAI,GAAG0qC,EAAE,GAAG,EAAEuqF,EAAEH,GAAG/tF,GAAG,QAAQ0nB,GAAG,EAAE55D,EAAE6pH,IAAI33E,IAAI,EAAE+tF,IAAI,GAAGE,EAAE,GAAG,EAAEjuF,EAAE,UAAU,EAAEsuF,IAAI,GAAGH,IAAI,GAAGxqF,EAAEimG,GAAG75K,EAAE,EAAE,OAAO,GAAGiwE,EAAE,EAAEzkE,EAAEpC,EAAEoC,EAAEykE,IAAI,EAAE2D,IAAI,EAAEpoE,EAAE,EAAE,EAAEA,EAAE09B,GAAG+mC,EAAE2D,IAAIA,EAAEimG,GAAGlmG,EAAE,GAAG,QAAQ,IAAI,EAAE1D,EAAE7mE,EAAEoC,EAAE,EAAEwyJ,EAAE90H,EAAEA,EAAE0qC,IAAI,EAAE1qC,IAAI,EAAE+mC,EAAE,EAAE,EAAEA,EAAEA,EAAE4pG,GAAG/zB,EAAE,GAAG,QAAQ,GAAGt6I,EAAEpC,EAAEwqE,EAAE3D,EAAEzkE,GAAGykE,EAAEouF,IAAI,EAAE,WAAW,GAAGzqF,EAAEA,EAAE3D,EAAE,KAAK,EAAEzkE,EAAE,EAAE,EAAEA,EAAEuoB,GAAGk8C,EAAE4pG,GAAG75K,EAAE,GAAG,QAAQ,IAAI4zE,EAAE,EAAEA,EAAExqE,EAAEoC,EAAE,EAAEooE,EAAE3D,IAAI,EAAEl8C,IAAI,EAAE6/C,EAAE,EAAE,EAAEA,EAAEpoE,EAAEquK,GAAGlmG,EAAE,EAAE,OAAO,GAAG1D,EAAE7mE,EAAEwqE,EAAE,EAAEs7E,EAAE1jJ,GAAGmsF,EAAE1nB,EAAEzkE,IAAI,GAAGuoB,EAAEvoB,EAAEuoB,EAAE,KAAK,EAAEk8C,EAAE,EAAE,EAAEA,MAAMA,EAAEl8C,KAAK,EAAE,YAAY,EAAE,GAAG,EAAEk8C,GAAG,QAAQzkE,IAAI,IAAI4yJ,EAAEnuF,IAAI,QAAQ,KAAK,GAAGzkE,GAAGA,GAAG,IAAI09B,EAAE,EAAE0+G,EAAEp8I,EAAEykE,IAAI,GAAG+tF,EAAE/tF,EAAE+tF,EAAE,KAAK,EAAExyJ,EAAE,EAAE,EAAEA,EAAElC,GAAG2mE,EAAE+tF,KAAK,QAAQ,EAAEE,EAAE1yJ,EAAEA,IAAIykE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEA,GAAG2D,EAAEpoE,GAAG,IAAIuyB,EAAE,EAAEJ,EAAEuL,GAAG19B,GAAG,QAAQA,IAAI,GAAGlC,IAAI,IAAI60J,EAAE,EAAEG,EAAEruF,EAAEzkE,IAAI,EAAE09B,IAAI,EAAE+mC,EAAE,EAAE,EAAEA,EAAEzkE,EAAEquK,GAAG3wI,EAAE+mC,GAAG,QAAQ,GAAGA,EAAE7mE,EAAE5C,EAAE,EAAEmyK,GAAG/kG,EAAEpoE,EAAEizJ,EAAE,EAAEJ,EAAE7yJ,IAAI,EAAEooE,IAAI,EAAE3D,EAAE,EAAE,EAAEA,EAAElyC,EAAEryB,EAAEukE,EAAE,UAAU,EAAEysE,IAAI,GAAG8hB,IAAI,GAAG5qF,EAAEimG,GAAGt/B,EAAE,EAAE,OAAO,GAAGtqE,EAAE,EAAEzkE,EAAEpC,EAAEoC,EAAEykE,IAAI,EAAE2D,IAAI,EAAEpoE,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAG9jK,EAAE,EAAE,OAAO,GAAGvK,EAAEpC,EAAEoC,EAAE,EAAE2yJ,EAAEvqF,EAAE3D,EAAE2D,EAAE,EAAEA,EAAE3D,IAAI,EAAE2D,IAAI,EAAEpoE,EAAE,EAAE,EAAEA,EAAE09B,EAAE+0H,IAAI,EAAE,QAAQvyJ,EAAEmuK,GAAGt/B,EAAE,EAAE,OAAO,GAAGrxG,EAAE,EAAE+mC,EAAE7mE,EAAEszI,EAAExzG,GAAG+0H,EAAEhuF,EAAE/mC,IAAI,EAAEx9B,IAAI,EAAEukE,EAAE,EAAE,EAAEA,MAAMA,EAAEvkE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAEF,GAAGA,EAAE09B,IAAI,GAAG,GAAG0qC,EAAE,EAAE2qF,EAAE/yJ,GAAGykE,GAAG,QAAQ/mC,IAAI,IAAIu1H,EAAExuF,IAAI,QAAQ,KAAK,MAAM,GAAG/mC,EAAE+mC,EAAEkuF,EAAE,KAAK,EAAE3yJ,EAAE,EAAE,EAAEA,EAAEgzJ,EAAEhzJ,KAAKykE,EAAE/mC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE1iC,EAAEypE,IAAI,QAAQ,EAAE5gE,EAAE2uJ,GAAG/tF,GAAG,QAAQ3mE,GAAG,EAAEwN,EAAE88D,EAAEg0E,IAAI33E,IAAI,EAAE+tF,IAAI,GAAGE,EAAE,GAAG,EAAEjuF,IAAIkuF,EAAEK,KAAK,GAAG,GAAG3qF,EAAE,EAAE5D,GAAG+tF,GAAG,QAAQG,IAAI,GAAG33J,IAAI,MAAM,GAAGu3B,EAAEigI,EAAEjgI,EAAE,KAAK,EAAEkyC,EAAE,EAAE,EAAEA,EAAElyC,GAAG81C,EAAEgmG,GAAG91J,EAAEuwI,GAAG,QAAQ,MAAM0J,EAAEjgI,IAAIvyB,GAAG,QAAQ+lE,GAAG,GAAG,EAAE/lE,EAAEpC,GAAG6mE,IAAI,KAAK0F,IAAInqE,IAAI,EAAEwyJ,IAAI,GAAG,GAAG,GAAG,EAAExyJ,EAAEqoE,IAAI,EAAE91C,IAAI,EAAEvyB,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAGl8I,EAAE2gI,EAAE,OAAO,GAAG9yJ,EAAEpC,EAAEoC,EAAE,EAAEA,EAAEykE,IAAI,GAAG4D,EAAE5D,EAAElyC,EAAE,KAAK,EAAEvyB,EAAE,EAAE,EAAEA,EAAEooE,EAAEimG,GAAGxqK,EAAEukE,GAAG,QAAQ,GAAG3D,EAAE7mE,EAAEoC,EAAE,EAAEo8I,EAAE33E,EAAE2D,IAAI,GAAGC,EAAED,EAAEC,EAAE,KAAK,EAAE5D,EAAE,EAAE,EAAEA,EAAE3mE,GAAG2mE,EAAE4D,KAAK,QAAQ,EAAEqqF,EAAEtqF,EAAEg0E,IAAI33E,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEzkE,GAAGykE,EAAE2D,GAAG,IAAIyqF,EAAE,EAAEtgI,EAAEvyB,GAAGooE,GAAG,QAAQA,IAAI,GAAGtqE,IAAI,MAAM,GAAG00J,EAAEpqF,EAAE+kG,GAAG,KAAK,EAAEntK,EAAE,EAAE,EAAEA,EAAEmqE,GAAG1F,EAAE2D,EAAEoqF,KAAK,QAAQ,EAAE/tF,GAAGA,GAAG+tF,EAAEK,EAAE7yJ,IAAIykE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,IAAIyoG,GAAG,EAAED,GAAGpa,GAAG7yJ,GAAG,QAAQwyJ,IAAI,GAAGroF,IAAI,IAAI8iG,GAAG,EAAEpa,EAAE7yJ,IAAI,EAAE6yJ,IAAI,EAAEpuF,EAAE,EAAE,EAAEA,EAAEyoG,GAAG9kG,GAAG3D,GAAG,QAAQ0F,GAAG,EAAEgjG,GAAG56I,IAAIkyC,IAAI,EAAE2D,IAAI,GAAGoqF,EAAE,GAAG,EAAEQ,EAAE3qF,GAAG5D,GAAG,QAAQ3mE,GAAG,EAAEioE,EAAEq2E,IAAI33E,IAAI,EAAE4D,IAAI,GAAGqqF,EAAE,GAAG,EAAEjuF,EAAE4pG,GAAG91J,EAAEuwI,EAAE,OAAO,GAAG1gF,EAAExqE,GAAGm1J,IAAI,KAAKJ,KAAK3yJ,GAAG,QAAQhF,KAAK,EAAE0iC,IAAI,GAAG,GAAG,GAAG,EAAE0qC,EAAE3D,IAAI,GAAG4D,EAAE5D,GAAG/mC,EAAE19B,EAAE,GAAG,KAAK,EAAEooE,EAAE,EAAE,EAAEA,EAAEpoE,EAAEquK,GAAGl8I,EAAE2gI,GAAG,QAAQ,GAAGruF,EAAE7mE,EAAEwqE,EAAE,EAAE3D,EAAEzkE,IAAI,GAAGqoE,EAAEroE,EAAEqoE,EAAE,KAAK,EAAE5D,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAGxqK,EAAEyH,EAAE,OAAO,GAAGtL,EAAEpC,EAAE6mE,EAAE,EAAE3mE,EAAEuqE,EAAED,EAAEC,EAAE,EAAEmqF,EAAEpqF,IAAI,EAAEC,IAAI,EAAEroE,EAAE,EAAE,EAAEA,EAAEmqE,EAAE5hD,GAAGk8C,GAAG,QAAQmuF,GAAG,EAAEG,EAAE5mE,IAAI1nB,IAAI,EAAEl8C,IAAI,GAAGm7H,EAAE,GAAG,EAAE1jJ,EAAE,UAAU,EAAEskJ,IAAI,GAAGV,IAAI,GAAGv7E,EAAEgmG,GAAGrmG,EAAE,GAAG,QAAQ,GAAGhoE,EAAE,EAAEykE,EAAE7mE,EAAE6mE,EAAEzkE,IAAI,EAAEqoE,IAAI,EAAE5D,EAAE,EAAE,EAAEA,EAAEzkE,EAAEquK,GAAG/zB,EAAE,EAAE,OAAO,GAAG71E,EAAE7mE,EAAE6mE,EAAE,EAAEA,EAAEzkE,IAAI,GAAGooE,EAAEpoE,EAAEqoE,EAAE,KAAK,EAAE5D,EAAE,EAAE,EAAEA,EAAE4D,GAAGroE,EAAEooE,IAAIA,EAAEimG,GAAG75K,EAAE,EAAE,OAAO,IAAI,EAAEwL,EAAEpC,EAAE6mE,EAAE,EAAEzkE,EAAEooE,IAAI,EAAEC,IAAI,EAAEroE,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAGlmG,EAAE,GAAG,QAAQ,GAAGnoE,EAAEpC,EAAEoC,EAAE,EAAEuoB,EAAE6/C,EAAE3D,EAAE4D,EAAE,EAAEA,EAAE5D,IAAI,EAAE2D,IAAI,EAAEpoE,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAG9jK,EAAE,GAAG,QAAQ,GAAG69D,EAAExqE,EAAEoC,EAAEykE,EAAE2D,GAAG3D,EAAEmqB,IAAI,EAAE,WAAW,GAAG5uF,EAAEA,EAAEykE,EAAE,KAAK,EAAE2D,EAAE,EAAE,EAAEA,EAAE1qC,GAAG+mC,EAAEzkE,IAAIA,EAAEquK,GAAGrmG,EAAE,EAAE,OAAO,IAAI,EAAEvD,EAAE7mE,EAAEwqE,EAAE,EAAE3D,EAAEzkE,IAAI,EAAE09B,IAAI,EAAE+mC,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAG/zB,EAAE,GAAG,QAAQ,GAAGt6I,EAAEpC,EAAE6mE,EAAE,EAAEzkE,EAAEooE,IAAI,GAAG1qC,EAAE0qC,EAAE1qC,EAAE,KAAK,EAAE19B,EAAE,EAAE,EAAEA,EAAEooE,EAAEimG,GAAG75K,EAAE,EAAE,OAAO,GAAGiwE,EAAE7mE,EAAEoC,EAAE,EAAEykE,EAAE2D,IAAI,GAAG1qC,EAAE0qC,EAAE1qC,EAAE,KAAK,EAAE+mC,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAGlmG,EAAE,EAAE,OAAO,GAAGnoE,EAAEpC,EAAE6mE,EAAE,EAAE23E,EAAEp8I,EAAEooE,IAAI,GAAG1qC,EAAE0qC,EAAE1qC,EAAE,KAAK,EAAE19B,EAAE,EAAE,EAAEA,EAAE0jJ,GAAGj/E,EAAE/mC,KAAK,QAAQ,EAAEg1H,EAAEtqF,EAAEpoE,IAAIykE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEA,GAAGA,EAAE2D,GAAG,IAAIC,EAAE,EAAEA,EAAED,GAAGpoE,GAAG,QAAQooE,IAAI,GAAGs7E,IAAI,IAAIn7H,EAAE,EAAEgK,EAAEkyC,EAAEzkE,IAAI,EAAEooE,IAAI,EAAE3D,EAAE,EAAE,EAAEA,EAAEkuF,GAAGluF,EAAE2D,KAAK,QAAQ,EAAE7/C,EAAE6/C,EAAE71C,IAAIkyC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEzkE,GAAGykE,EAAE2D,GAAG,IAAI2qF,EAAE,EAAEhyI,EAAEorE,GAAG/jB,GAAG,QAAQA,IAAI,GAAGuqF,IAAI,IAAIxoF,EAAE,EAAEykB,EAAE5uF,EAAEooE,IAAI,EAAE+jB,IAAI,EAAEnsF,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAGliF,EAAEnsF,GAAG,QAAQ,GAAGooE,EAAExqE,EAAE40J,EAAE,EAAEO,EAAE/yJ,EAAEykE,EAAE3mE,EAAE,EAAE00J,EAAE/tF,IAAI,EAAEzkE,IAAI,EAAEooE,EAAE,EAAE,EAAEA,EAAEw7E,EAAEv7E,GAAG5D,GAAG,QAAQkuF,GAAG,EAAErO,EAAE/7H,EAAEgK,IAAIkyC,IAAI,EAAE4D,IAAI,GAAG9/C,EAAE,GAAG,EAAE6/C,GAAG3D,EAAE4pG,GAAG91J,EAAEuwI,EAAE,OAAO,KAAK5oJ,GAAGF,GAAG,QAAQizJ,GAAG,GAAG,EAAEjzJ,EAAEpC,GAAG60J,IAAI,KAAKvhB,IAAIlxI,IAAI,EAAEE,IAAI,GAAG,GAAG,GAAG,EAAEF,EAAEykE,IAAI,EAAE2D,IAAI,EAAEpoE,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAGl8I,EAAE2gI,EAAE,OAAO,GAAG9yJ,EAAEpC,EAAEoC,EAAE,EAAEA,EAAEykE,IAAI,GAAG2D,EAAE3D,EAAE2D,EAAE,KAAK,EAAEpoE,EAAE,EAAE,EAAEA,EAAEqoE,GAAG5D,EAAE4pG,GAAGxqK,EAAEyH,GAAG,QAAQ,IAAI88D,EAAE,EAAEA,EAAExqE,EAAEoC,EAAE,EAAEooE,EAAE3D,IAAI,EAAE4D,IAAI,EAAED,EAAE,EAAE,EAAEA,EAAEpoE,EAAEquK,GAAGliF,EAAEyC,EAAE,OAAO,GAAGnqB,EAAE7mE,EAAEwqE,EAAE,EAAE3D,EAAEzkE,IAAI,GAAGqoE,EAAEroE,EAAEqoE,EAAE,KAAK,EAAE5D,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAGzqB,EAAEr7H,GAAG,QAAQ,GAAGvoB,EAAEpC,EAAE6mE,EAAE,EAAElyC,EAAEvyB,EAAEooE,IAAI,GAAGC,EAAED,EAAEC,EAAE,KAAK,EAAEroE,EAAE,EAAE,EAAEA,EAAEkxI,GAAGzsE,EAAE4D,KAAK,QAAQ,EAAE9/C,EAAE6/C,EAAEpoE,IAAIykE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEA,GAAGA,EAAE2D,GAAG,IAAIoqF,EAAE,EAAEA,EAAE/tF,GAAGzkE,GAAG,QAAQooE,IAAI,GAAG8oE,IAAI,MAAM,GAAG9oE,EAAEpoE,EAAE+yJ,EAAE,KAAK,EAAEtuF,EAAE,EAAE,EAAEA,EAAEkuF,GAAGluF,EAAE2D,KAAK,QAAQ,EAAEpoE,GAAGykE,GAAGvkE,EAAE6yJ,EAAEP,IAAI/tF,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,IAAIsB,EAAE,EAAEitF,EAAEP,GAAGM,GAAG,QAAQ7yJ,IAAI,GAAGyyJ,IAAI,IAAIK,EAAE,EAAED,EAAEN,IAAI,EAAEM,IAAI,EAAE/yJ,EAAE,EAAE,EAAEA,EAAE+lE,EAAEqC,GAAG3D,GAAG,QAAQkuF,GAAG,EAAEC,EAAEJ,IAAI/tF,IAAI,EAAE2D,IAAI,GAAGloE,EAAE,GAAG,EAAEpC,EAAEuqE,GAAG5D,GAAG,QAAQysE,GAAG,EAAE/kD,EAAE55D,IAAIkyC,IAAI,EAAE4D,IAAI,GAAG9/C,EAAE,GAAG,EAAEvoB,EAAE,UAAU,EAAEgtK,KAAK,GAAG9kG,IAAI,GAAGG,EAAEgmG,GAAG91J,EAAEuwI,EAAE,OAAO,GAAG9oJ,EAAE,EAAEykE,EAAE7mE,EAAE6mE,EAAEzkE,IAAI,EAAEqoE,IAAI,EAAE5D,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAGl8I,EAAE2gI,EAAE,OAAO,GAAG9yJ,EAAEpC,EAAE6mE,EAAE,EAAEzkE,EAAEooE,IAAI,GAAGC,EAAED,EAAEC,EAAE,KAAK,EAAEroE,EAAE,EAAE,EAAEA,EAAEooE,EAAEimG,GAAGxqK,EAAEyH,EAAE,OAAO,GAAGm5D,EAAE7mE,EAAEoC,EAAE,EAAEykE,EAAE2D,IAAI,GAAGC,EAAED,EAAEC,EAAE,KAAK,EAAE5D,EAAE,EAAE,EAAEA,EAAEzkE,EAAEquK,GAAGttJ,EAAE6tE,GAAG,QAAQ,GAAGxmB,EAAExqE,EAAE6mE,EAAE,EAAE2D,EAAEpoE,IAAI,GAAGqoE,EAAEroE,EAAEqoE,EAAE,KAAK,EAAED,EAAE,EAAE,EAAEA,EAAE3D,EAAE4pG,GAAGzqB,EAAEU,EAAE,OAAO,GAAGtkJ,EAAEpC,EAAEwqE,EAAE,EAAE7/C,EAAE8/C,EAAE5D,EAAE4D,EAAE,EAAEnoE,EAAEukE,IAAI,EAAE4D,IAAI,EAAEroE,EAAE,EAAE,EAAEA,EAAEwyJ,EAAE90H,GAAG+mC,GAAG,QAAQi/E,GAAG,EAAEhmH,EAAE0+G,IAAI33E,IAAI,EAAE/mC,IAAI,GAAGg1H,EAAE,GAAG,EAAEjuF,EAAE4pG,GAAGt/B,EAAE,GAAG,QAAQ,GAAG/uI,EAAEpC,EAAEwqE,EAAE3D,EAAEzkE,GAAGykE,EAAEooG,KAAK,EAAE,WAAW,GAAGzkG,EAAEA,EAAE3D,EAAE,KAAK,EAAEzkE,EAAE,EAAE,EAAEA,EAAEqoE,GAAG5D,EAAE4pG,GAAG9jK,EAAE,EAAE,OAAO,IAAI69D,EAAE,EAAEA,EAAExqE,EAAEoC,EAAE,EAAEooE,EAAE3D,IAAI,EAAE4D,IAAI,EAAED,EAAE,EAAE,EAAEA,EAAEpoE,EAAEquK,GAAGrmG,EAAE,GAAG,QAAQ,GAAGvD,EAAE7mE,EAAEwqE,EAAE,EAAE3D,EAAEzkE,IAAI,GAAGqoE,EAAEroE,EAAEqoE,EAAE,KAAK,EAAE5D,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAG/zB,EAAE,EAAE,OAAO,GAAGt6I,EAAEpC,EAAE6mE,EAAE,EAAEzkE,EAAEooE,IAAI,GAAGC,EAAED,EAAEC,EAAE,KAAK,EAAEroE,EAAE,EAAE,EAAEA,EAAEooE,EAAEimG,GAAG75K,EAAE,EAAE,OAAO,GAAGiwE,EAAE7mE,EAAEoC,EAAE,EAAEykE,EAAE2D,IAAI,GAAGC,EAAED,EAAEC,EAAE,KAAK,EAAE5D,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAGlmG,EAAE,EAAE,OAAO,GAAGnoE,EAAEpC,EAAE6mE,EAAE,EAAEA,EAAEzkE,EAAEooE,IAAI,GAAGC,EAAED,EAAEC,EAAE,KAAK,EAAEroE,EAAE,EAAE,EAAEA,EAAEA,EAAEsoE,GAAG,GAAGD,GAAGC,GAAG,QAAQA,IAAI,GAAG1C,IAAI,KAAKwC,EAAEC,GAAG,EAAED,EAAE3D,EAAEzkE,EAAE,EAAE0yJ,EAAEtqF,EAAEC,IAAI,EAAEC,IAAI,EAAEF,EAAE,EAAE,EAAEA,EAAEg0E,GAAG33E,EAAE4D,KAAK,QAAQ,EAAE91C,EAAE61C,EAAEA,IAAI3D,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEA,GAAGzkE,EAAEooE,GAAG,IAAI1qC,EAAE,EAAEorH,EAAExgF,GAAGF,GAAG,QAAQA,IAAI,GAAGg0E,IAAI,IAAIoW,EAAE,EAAEroF,EAAE1F,EAAE2D,IAAI,EAAEE,IAAI,EAAE7D,EAAE,EAAE,EAAEA,EAAEA,EAAE4pG,GAAG/lG,EAAE7D,GAAG,QAAQ,GAAGzkE,EAAEpC,EAAEsC,EAAE,EAAEA,EAAEkoE,EAAE3D,EAAEl8C,EAAE,EAAE+/C,EAAE7D,IAAI,EAAE2D,IAAI,EAAEpoE,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAGl8I,EAAE2gI,EAAE,OAAO,GAAG1qF,EAAExqE,EAAEoC,EAAEykE,EAAE2D,GAAG3D,EAAEsoG,KAAK,EAAE,WAAW,GAAG/sK,EAAEA,EAAEykE,EAAE,KAAK,EAAE2D,EAAE,EAAE,EAAEA,EAAE1qC,GAAG+mC,EAAEzkE,IAAIA,EAAEquK,GAAGxqK,EAAEyH,EAAE,OAAO,IAAI,EAAEm5D,EAAE7mE,EAAEwqE,EAAE,EAAE3D,EAAEzkE,IAAI,EAAE09B,IAAI,EAAE+mC,EAAE,EAAE,EAAEA,EAAE2D,EAAEimG,GAAGttJ,EAAE6tE,EAAE,OAAO,GAAG5uF,EAAEpC,EAAE6mE,EAAE,EAAEzkE,EAAEooE,IAAI,GAAG1qC,EAAE0qC,EAAE1qC,EAAE,KAAK,EAAE19B,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAGzqB,EAAEU,GAAG,QAAQ,GAAGtkJ,EAAEpC,EAAEoC,EAAE,EAAEA,EAAEykE,IAAI,GAAG2D,EAAE3D,EAAE/mC,EAAE,KAAK,EAAE19B,EAAE,EAAE,EAAEA,EAAE09B,GAAG+mC,EAAE2D,IAAIA,EAAEimG,GAAGvlB,EAAE3+E,EAAE,OAAO,IAAI,EAAE1F,EAAE7mE,EAAEoC,EAAE,EAAEuoB,EAAEk8C,EAAE2D,IAAI,EAAE1qC,IAAI,EAAE+mC,EAAE,EAAE,EAAEA,EAAEguF,GAAGhuF,EAAE/mC,KAAK,QAAQ,EAAE80H,EAAEpqF,EAAE7/C,IAAIk8C,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEA,GAAGzkE,EAAEooE,GAAG,IAAIE,EAAE,EAAEF,EAAE3D,GAAG2D,GAAG,QAAQA,IAAI,GAAGqqF,IAAI,MAAM,GAAGnqF,EAAEpoE,EAAEkoE,EAAEloE,EAAE,KAAK,EAAEukE,EAAE,EAAE,EAAEA,EAAEysE,GAAGzsE,EAAE6D,KAAK,QAAQ,EAAE7D,GAAGzkE,GAAGE,EAAEyyJ,EAAEvqF,IAAI3D,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,IAAI0nB,EAAE,EAAE8mE,EAAEvP,GAAGiP,GAAG,QAAQzyJ,IAAI,GAAGgxI,IAAI,IAAIpzI,EAAE,EAAE60J,EAAEA,IAAI,EAAEjP,IAAI,EAAEj/E,EAAE,EAAE,EAAEA,EAAEA,EAAE4D,GAAGroE,GAAG,QAAQo8I,GAAG,EAAE/zE,EAAEqqF,IAAI1yJ,IAAI,EAAEqoE,IAAI,GAAG91C,EAAE,GAAG,EAAEA,EAAEkyC,EAAEA,GAAGA,EAAEryC,GAAG,IAAIi2C,EAAE,EAAE+zE,EAAE33E,GAAGzkE,GAAG,QAAQoyB,IAAI,GAAGoB,IAAI,MAAM,GAAG60C,EAAEj2C,EAAEG,EAAEvyB,EAAE,KAAK,EAAEykE,EAAE,EAAE,EAAEA,EAAEi/E,GAAGj/E,EAAE4D,KAAK,QAAQ,EAAEqqF,EAAEtgI,EAAEgqH,IAAI33E,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE0nB,EAAE1nB,EAAEryC,GAAG,GAAGqyC,EAAE4pG,GAAGvb,GAAG,QAAQ1gI,IAAI,GAAGsxH,IAAI,GAAGj/E,GAAG,QAAQ,GAAGzkE,EAAEpC,EAAEwqE,EAAE,EAAEpoE,EAAEykE,IAAI,GAAGryC,EAAEqyC,EAAE6D,EAAE,KAAK,EAAEtoE,EAAE,EAAE,EAAEA,EAAEhF,GAAGotE,EAAEh2C,IAAIqyC,GAAG,QAAQysE,GAAG,EAAEpzI,EAAEkC,IAAIykE,IAAI,EAAE2D,IAAI,GAAGloE,EAAE,GAAG,EAAEF,EAAEquK,GAAGvb,EAAE3mE,EAAE,OAAO,GAAGzuD,EAAE,EAAE+mC,EAAEl8C,EAAE3qB,EAAE,EAAE6mE,EAAEzkE,IAAI,EAAE09B,IAAI,EAAE+mC,EAAE,EAAE,EAAEA,EAAEooG,IAAIzkG,EAAEpoE,IAAIA,GAAG,QAAQyyJ,GAAG,EAAEA,EAAEhuF,IAAIzkE,IAAI,EAAEooE,IAAI,GAAGoqF,EAAE,GAAG,EAAE/tF,EAAE4pG,GAAGxqK,EAAEyH,EAAE,OAAO,GAAGtL,EAAEpC,EAAEwqE,EAAE3D,EAAEzkE,GAAGykE,EAAEqoG,KAAK,EAAE,WAAW,GAAG1kG,EAAEA,EAAE3D,EAAE,KAAK,EAAEzkE,EAAE,EAAE,EAAEA,EAAEoyB,GAAGqyC,EAAE4pG,GAAGttJ,EAAE6tE,EAAE,OAAO,IAAIxmB,EAAE,EAAEA,EAAExqE,EAAEoC,EAAE,EAAEooE,EAAE3D,IAAI,EAAEryC,IAAI,EAAEg2C,EAAE,EAAE,EAAEA,EAAEpoE,EAAEquK,GAAGzqB,EAAEU,EAAE,OAAO,GAAG7/E,EAAE7mE,EAAEwqE,EAAE,EAAE3D,EAAEzkE,IAAI,GAAGoyB,EAAEpyB,EAAEoyB,EAAE,KAAK,EAAEqyC,EAAE,EAAE,EAAEA,EAAEzkE,EAAEquK,GAAGvlB,EAAE3+E,GAAG,QAAQ,GAAG1F,EAAE7mE,EAAE6mE,EAAE,EAAE+tF,EAAEpqF,EAAEpoE,EAAEoyB,EAAE,EAAEg2C,EAAEpoE,IAAI,EAAEooE,IAAI,EAAE3D,EAAE,EAAE,EAAEA,EAAEA,EAAE,UAAU,EAAE3kE,IAAI,GAAG4iF,IAAI,GAAGtwD,EAAEi8I,GAAGttJ,EAAE6tE,EAAE,OAAO,GAAGnqB,EAAE,EAAEzkE,EAAEpC,EAAEoC,EAAEykE,IAAI,EAAEryC,IAAI,EAAEpyB,EAAE,EAAE,EAAEA,EAAEykE,EAAE4pG,GAAGzqB,EAAEU,EAAE,OAAO,GAAGtkJ,EAAEpC,EAAEoC,EAAE,EAAEA,EAAEykE,IAAI,GAAGryC,EAAEqyC,EAAEryC,EAAE,KAAK,EAAEpyB,EAAE,EAAE,EAAEA,EAAEsoE,GAAG7D,EAAEryC,IAAIA,EAAEi8I,GAAGvlB,EAAE3+E,EAAE,OAAO,IAAI,EAAE1F,EAAE7mE,EAAEoC,EAAE,EAAEE,EAAEukE,EAAEryC,IAAI,EAAEk2C,IAAI,EAAE7D,EAAE,EAAE,EAAEA,EAAEysE,GAAGzsE,EAAEryC,EAAEk2C,KAAK,QAAQ,EAAE7D,GAAGzkE,GAAG09B,EAAE4qC,EAAEpoE,IAAIukE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,IAAI2D,EAAE,EAAE7/C,EAAEiqI,GAAGlqF,GAAG,QAAQ5qC,IAAI,GAAGwzG,IAAI,IAAIshB,EAAE,EAAEpqF,EAAE3D,EAAE6D,IAAI,EAAEkqF,IAAI,EAAE/tF,EAAE,EAAE,EAAEA,EAAE+tF,GAAG/tF,EAAE+tF,KAAK,QAAQ,EAAE/tF,GAAGzkE,GAAGsoE,EAAE/1C,EAAE61C,IAAI3D,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,IAAIguF,EAAE,EAAEqa,GAAGl+E,GAAGr8D,GAAG,QAAQ+1C,IAAI,GAAGkqF,IAAI,IAAIqa,GAAG,EAAEt6I,EAAEA,IAAI,EAAEq8D,IAAI,EAAEnqB,EAAE,EAAE,EAAEA,EAAEA,EAAE4pG,GAAGvb,EAAE3mE,GAAG,QAAQ,GAAG/jB,EAAExqE,EAAEwqE,EAAE,EAAEA,EAAE3D,IAAI,GAAGzkE,EAAEykE,EAAEl8C,EAAE,KAAK,EAAE6/C,EAAE,EAAE,EAAEA,EAAE2kG,GAAG/sK,GAAGykE,GAAG,QAAQ+tF,GAAG,EAAEwa,GAAG5kG,IAAI3D,IAAI,EAAEzkE,IAAI,GAAGsoE,EAAE,GAAG,EAAE7D,EAAE4pG,GAAGvb,EAAE3mE,EAAE,OAAO,GAAG/5D,EAAE,EAAEpyB,EAAEE,EAAEtC,EAAE,EAAEoC,EAAEykE,IAAI,EAAEryC,IAAI,EAAEpyB,EAAE,EAAE,EAAEA,EAAE6sK,IAAIzkG,EAAE3D,IAAIA,GAAG,QAAQysE,GAAG,EAAEtiD,EAAE5uF,IAAIykE,IAAI,EAAE2D,IAAI,GAAG1qC,EAAE,GAAG,EAAE+mC,EAAE4pG,GAAGzqB,EAAEU,EAAE,OAAO,GAAGl8E,EAAExqE,EAAEoC,EAAEykE,EAAE2D,GAAG3D,EAAEjsD,IAAI,EAAE,WAAW,GAAGxY,EAAEA,EAAEykE,EAAE,KAAK,EAAE2D,EAAE,EAAE,EAAEA,EAAEh2C,GAAGqyC,EAAEzkE,IAAIA,EAAEquK,GAAGvlB,EAAE3+E,EAAE,OAAO,IAAI,EAAE1F,EAAE7mE,EAAEwqE,EAAE,EAAE1qC,EAAEtL,EAAEg2C,EAAEpoE,IAAI,EAAEoyB,IAAI,EAAEqyC,EAAE,EAAE,EAAEA,EAAEzkE,EAAE,QAAQ8lE,EAAE1zC,EAAEi8I,GAAGvlB,EAAE3+E,EAAE,OAAO,GAAGnqE,EAAE,EAAEykE,EAAE7mE,EAAE0qE,EAAEl2C,EAAEogI,EAAEpgI,GAAG7J,EAAEk8C,EAAEzkE,IAAI,EAAEoyB,IAAI,EAAEqyC,EAAE,EAAE,EAAEA,MAAMA,EAAEryC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAEg2C,GAAGpoE,EAAEoyB,GAAG,IAAIg2C,EAAE,EAAEloE,EAAEkoE,GAAG3D,GAAG,QAAQryC,IAAI,IAAIqgI,EAAEhuF,IAAI,QAAQ,KAAK,MAAM,GAAGryC,EAAEqyC,EAAE/mC,EAAE,KAAK,EAAE0qC,EAAE,EAAE,EAAEA,EAAE8oE,GAAGzsE,EAAEryC,KAAK,QAAQ,EAAEsL,EAAE0qC,EAAEA,IAAI3D,IAAI,EAAE,YAAY,EAAE,GAAG,EAAEA,GAAGzkE,EAAEooE,GAAG,IAAIwmB,EAAE,EAAExmB,EAAE3D,GAAG2D,GAAG,QAAQA,IAAI,GAAG8oE,IAAI,MAAM,GAAG/mE,EAAE/B,EAAEykG,GAAG,KAAK,EAAEpoG,EAAE,EAAE,EAAEA,EAAEA,EAAE4pG,GAAGvb,EAAE3mE,EAAE,OAAO,GAAG/5D,EAAE,EAAEpyB,EAAEE,EAAEtC,EAAE,EAAE8/B,GAAG19B,EAAEykE,IAAI,EAAEryC,IAAI,EAAEpyB,EAAE,EAAE,EAAEA,MAAMoyB,GAAG,QAAQ8+G,KAAK,GAAGhxI,EAAEukE,KAAK,GAAG/mC,EAAE,GAAG,EAAEx9B,EAAEukE,EAAEA,EAAEryC,EAAE,EAAEA,GAAGpyB,EAAEquK,GAAGvb,EAAE3mE,EAAE,OAAO,KAAK7jB,GAAG7D,GAAG,QAAQguF,GAAG,GAAG,EAAEhuF,EAAE7mE,GAAG2qB,IAAIk8C,IAAI,EAAE6D,IAAI,GAAGkqF,EAAE,GAAG,GAAG,EAAElqF,EAAEl2C,EAAEpyB,GAAGA,GAAGykE,EAAEzkE,IAAI,EAAEoyB,IAAI,EAAEqyC,EAAE,EAAE,EAAEA,IAAI,IAAI/mC,EAAE,EAAE4mH,EAAElyH,EAAElyB,GAAGukE,GAAG,QAAQA,IAAI,GAAGryC,IAAI,IAAI,EAAEg2C,GAAG3D,GAAGzkE,EAAEykE,IAAI,EAAEryC,IAAI,EAAEpyB,EAAE,EAAE,EAAEA,IAAI,IAAIooE,EAAE,EAAE1qC,EAAEtL,GAAGpyB,GAAG,QAAQA,IAAI,GAAGoyB,IAAI,IAAI+3C,EAAE,EAAEnqE,GAAGooE,EAAEpoE,IAAI,GAAGykE,EAAEryC,KAAK,EAAEg2C,EAAE,EAAE,EAAEA,IAAI,GAAGA,GAAG,QAAQA,IAAI,GAAG3D,IAAI,GAAGA,EAAEzkE,EAAEgtK,GAAG,EAAExa,EAAEpgI,EAAEg2C,EAAE2kG,GAAG,EAAE3kG,GAAG3D,EAAE2D,IAAI,GAAGpoE,EAAEoyB,KAAK,EAAEqyC,EAAE,EAAE,EAAEA,IAAI,GAAGA,GAAG,QAAQA,IAAI,GAAGzkE,IAAI,GAAGA,EAAEooE,EAAE71C,EAAE,EAAEA,EAAEH,EAAEqyC,EAAEqoG,GAAG,EAAEroG,GAAGA,GAAGzkE,EAAEykE,IAAI,GAAG2D,EAAEh2C,KAAK,EAAEpyB,EAAE,EAAE,EAAEA,IAAI,IAAIlC,EAAE,EAAEqsE,EAAE/B,GAAGpoE,GAAG,QAAQA,IAAI,GAAGooE,IAAI,IAAIptE,EAAE,EAAEgF,GAAGA,GAAGykE,EAAEzkE,IAAI,EAAEooE,IAAI,EAAE3D,EAAE,EAAE,EAAEA,IAAI,IAAIkuF,EAAE,EAAExmE,EAAE/jB,GAAG3D,GAAG,QAAQA,IAAI,GAAG2D,IAAI,IAAI6qF,EAAE,EAAExuF,GAAGzkE,EAAEykE,IAAI,EAAE2D,IAAI,EAAEpoE,EAAE,EAAE,EAAEA,IAAI,GAAGA,GAAG,QAAQA,IAAI,GAAGooE,IAAI,GAAGA,EAAE3D,EAAEmuF,EAAE,EAAEH,EAAErgI,EAAEpyB,EAAE+lE,EAAE,EAAE/lE,GAAGooE,EAAEpoE,IAAI,GAAGykE,EAAEryC,KAAK,EAAEg2C,EAAE,EAAE,EAAEA,IAAI,GAAGA,GAAG,QAAQA,IAAI,GAAG3D,IAAI,GAAGA,EAAEzkE,EAAE+yJ,EAAE,EAAE7hB,EAAE9+G,EAAEg2C,EAAE4qF,EAAE,EAAE5qF,GAAG3D,EAAE2D,IAAI,GAAGpoE,EAAEoyB,KAAK,EAAEqyC,EAAE,EAAE,EAAEA,IAAI,GAAGA,GAAG,QAAQA,IAAI,GAAGzkE,IAAI,GAAGA,EAAEooE,EAAE+kG,GAAG,EAAEpa,EAAE3gI,EAAEqyC,EAAEyoG,GAAG,EAAEzoG,GAAGA,GAAGzkE,EAAEykE,IAAI,GAAG2D,EAAEh2C,KAAK,EAAEpyB,EAAE,EAAE,EAAEA,IAAI,IAAI6yJ,EAAE,EAAEF,EAAEvqF,GAAGpoE,GAAG,QAAQA,IAAI,GAAGooE,IAAI,IAAI6kG,GAAG,EAAEjtK,GAAGykE,EAAEzkE,IAAI,EAAEooE,IAAI,EAAE3D,EAAE,EAAE,EAAEA,IAAI,GAAGryC,GAAG,QAAQqyC,IAAI,GAAG2D,IAAI,GAAG3D,EAAE4D,GAAGD,GAAG,QAAQs7E,GAAG,EAAEt7E,GAAGg0E,IAAIh0E,IAAI,EAAEC,IAAI,GAAGqqF,EAAE,GAAG,GAAG1yJ,EAAE,EAAE0yJ,EAAEtgI,EAAEA,EAAEqyC,EAAE,EAAEouF,GAAG,SAASzqF,EAAE3D,IAAI,GAAGzkE,EAAEoyB,KAAK,EAAEg2C,EAAE,EAAE,EAAEA,KAAK,GAAGpoE,IAAI,GAAGuoB,EAAEk8C,EAAE2D,GAAG,GAAGpoE,EAAE,QAAQsoE,EAAEF,EAAEimG,GAAGxb,EAAEpuF,EAAE,OAAO,GAAGzkE,EAAE,EAAEykE,EAAE7mE,EAAEsC,EAAEkoE,EAAEh2C,EAAEqyC,EAAEzkE,IAAI,EAAEooE,IAAI,EAAE3D,EAAE,EAAE,EAAEA,EAAEwD,EAAE,EAAEF,GAAGK,EAAEH,EAAEF,EAAE,EAAE,IAAI,IAAItD,IAAI,GAAG2D,IAAI,EAAE3D,EAAE,QAAQ6/E,EAAEl8E,EAAEimG,GAAGxb,EAAEtqI,EAAE,OAAO,GAAGk8C,EAAE,EAAEzkE,EAAEpC,EAAEoC,EAAEykE,IAAI,EAAE2D,IAAI,EAAEpoE,EAAE,EAAE,EAAEA,EAAEsoE,EAAEF,EAAEC,GAAG,SAASD,EAAEh2C,KAAK,GAAGlyB,IAAI,GAAGkoE,GAAG3D,EAAE2D,GAAG,IAAIpoE,EAAE,EAAEooE,EAAEC,IAAI,GAAG+zE,EAAE9zE,EAAED,EAAE,KAAK,EAAED,EAAE,EAAE,EAAEA,EAAEC,EAAE+zE,EAAEn0E,EAAEF,EAAE,EAAE,IAAI,KAAKK,IAAI,GAAGC,IAAI,GAAG5D,EAAEzkE,EAAEooE,EAAEA,EAAEC,EAAEJ,EAAEF,EAAE,EAAE,IAAI,EAAEtD,IAAI,GAAG2D,IAAI,EAAEA,EAAE,QAAQ1qC,EAAEA,EAAE2wI,GAAGxb,EAAEtqI,EAAE,OAAO,GAAG6/C,EAAE,EAAE3D,EAAE7mE,EAAE6mE,EAAE2D,IAAI,EAAE1qC,IAAI,EAAE+mC,EAAE,EAAE,EAAEA,EAAE2D,EAAE1qC,EAAEA,GAAG,QAAQ19B,IAAI,GAAGqoE,IAAI,GAAGroE,GAAGA,GAAG,IAAIykE,EAAE,EAAEzkE,EAAE09B,IAAI,GAAG0+G,EAAEh0E,EAAE1qC,EAAE,KAAK,EAAE19B,EAAE,EAAE,EAAEA,EAAE09B,EAAE0+G,EAAE33E,EAAEzkE,EAAEioE,EAAEF,EAAE,EAAE,IAAI,GAAGtD,IAAI,GAAG/mC,IAAI,EAAE4qC,EAAE,EAAEF,EAAE,KAAK,MAAMh2C,IAAI,GAAGlyB,IAAI,IAAIF,EAAEE,EAAE,QAAQmoE,EAAEJ,EAAEF,EAAE,EAAE,GAAGK,EAAEpoE,GAAG,EAAEooE,EAAE,QAAQoqF,EAAEnqF,EAAEgmG,GAAGxb,EAAEtqI,GAAG,QAAQ,GAAG6/C,EAAE,EAAEpoE,EAAEpC,EAAEwqE,EAAEpoE,EAAEooE,IAAI,EAAEC,IAAI,EAAEroE,EAAE,EAAE,EAAEA,EAAEooE,GAAGpoE,EAAEykE,GAAG,IAAI2D,EAAE,EAAEoqF,EAAEnqF,GAAG5D,GAAG,QAAQA,IAAI,GAAG/mC,IAAI,IAAI2qC,EAAE,EAAED,EAAE3D,IAAI,EAAE4D,IAAI,EAAED,EAAE,EAAE,EAAEA,EAAEH,EAAEF,EAAE,EAAE,IAAI,IAAIK,IAAI,GAAGC,IAAI,EAAE5D,EAAEzkE,EAAEooE,EAAEA,EAAEC,EAAEJ,EAAEF,EAAE,EAAE,IAAI,EAAEtD,IAAI,GAAG2D,IAAI,EAAEC,EAAE,EAAED,EAAE1qC,GAAG,QAAQuqC,EAAEF,EAAE,EAAE,IAAI,OAAOO,IAAI,GAAGpoE,IAAI,GAAGkoE,GAAG,EAAEA,EAAE,QAAQ71C,EAAE+1C,EAAE+lG,GAAGxb,EAAEtqI,EAAE,OAAO,GAAG6/C,EAAE,EAAE3D,EAAE7mE,EAAE6mE,GAAGA,EAAE2D,IAAI,EAAEE,IAAI,EAAE7D,EAAE,EAAE,EAAEA,IAAI2D,EAAEpoE,GAAG,IAAI,EAAEE,EAAEooE,GAAGtoE,GAAG,QAAQA,IAAI,GAAGwyJ,IAAI,IAAIlqF,EAAE,EAAE7D,EAAEzkE,IAAI,EAAEsoE,IAAI,EAAE7D,EAAE,EAAE,EAAEA,EAAEzkE,EAAEsoE,EAAEL,EAAEF,EAAE,GAAG,IAAI,KAAKtD,IAAI,GAAGzkE,IAAI,GAAGooE,EAAE3D,EAAEwD,EAAEF,EAAE,GAAG,IAAI,GAAGtD,IAAI,GAAGzkE,IAAI,EAAEsoE,EAAE,EAAEtoE,EAAEuyB,EAAE,QAAQigI,EAAEvqF,EAAEF,EAAE,EAAE,IAAI,MAAMM,IAAI,GAAG3qC,IAAI,GAAG19B,GAAG,EAAEykE,EAAE,QAAQ0F,EAAE9B,EAAEgmG,GAAGxb,EAAEtqI,GAAG,QAAQ,GAAGk8C,EAAE,EAAEzkE,EAAEpC,EAAEoC,EAAEykE,IAAI,EAAE4D,IAAI,EAAEroE,EAAE,EAAE,EAAEA,EAAEA,GAAGykE,EAAE2D,GAAG,IAAIpoE,EAAE,EAAE09B,EAAE2qC,GAAGD,GAAG,QAAQA,IAAI,GAAGloE,IAAI,IAAImoE,EAAE,EAAE5D,EAAEzkE,EAAEooE,IAAI,EAAEC,IAAI,EAAEroE,EAAE,EAAE,EAAEA,EAAEioE,EAAEF,EAAE,GAAG,IAAI,IAAItD,IAAI,GAAG4D,IAAI,EAAEA,EAAE,EAAED,EAAEoqF,EAAE,QAAQtyJ,EAAE+nE,EAAEF,EAAE,GAAG,IAAI,OAAOO,IAAI,GAAG/1C,IAAI,GAAG61C,GAAG,EAAEpoE,EAAEykE,GAAG,GAAG2D,GAAG3D,GAAG,QAAQA,IAAI,GAAG/mC,IAAI,MAAM,GAAGx9B,EAAEukE,GAAG,QAAQ0nB,GAAG,KAAK,EAAEnsF,EAAE,EAAE,EAAEA,EAAEioE,EAAEF,EAAE,GAAG,IAAI,KAAKK,IAAI,GAAGloE,IAAI,GAAGukE,EAAE2D,EAAEA,EAAEloE,EAAE+nE,EAAEF,EAAE,GAAG,IAAI,EAAEtD,IAAI,GAAG2D,IAAI,EAAEA,EAAE7/C,EAAE,QAAQmV,EAAEuqC,EAAEF,EAAE,GAAG,IAAI,QAAQM,IAAI,GAAGmqF,IAAI,GAAGpqF,GAAG,EAAEA,GAAG,QAAQ3D,IAAI,GAAGvkE,IAAI,GAAGukE,IAAI,GAAGA,EAAE2D,IAAI,GAAG1qC,EAAE0qC,GAAG,QAAQqqF,GAAG,KAAK,EAAEhuF,EAAE,EAAE,EAAEA,EAAEzkE,EAAE09B,EAAEuqC,EAAEF,EAAE,GAAG,IAAI,KAAKtD,IAAI,GAAGzkE,IAAI,GAAGioE,EAAEF,EAAE,GAAG,IAAI,GAAGtD,IAAI,GAAGzkE,IAAI,EAAEA,EAAEwyJ,EAAE,QAAQtyJ,EAAE+nE,EAAEF,EAAE,GAAG,IAAI,MAAMO,IAAI,GAAG//C,IAAI,GAAGvoB,GAAG,EAAEoyB,GAAG,QAAQqyC,IAAI,GAAG/mC,IAAI,GAAG+mC,EAAEzkE,EAAEykE,GAAG,GAAGryC,EAAEqyC,EAAEryC,IAAI,GAAG7J,EAAE6J,GAAG,QAAQ8+G,GAAG,KAAK,EAAEzsE,EAAE,EAAE,EAAEA,EAAEwD,EAAEF,EAAE,GAAG,GAAGx/C,EAAEk8C,EAAE/mC,EAAEuqC,EAAEF,EAAE,GAAG,IAAI,OAAOM,IAAI,GAAGmqF,IAAI,GAAG/tF,GAAG,EAAEA,EAAEryC,EAAE61C,EAAEF,EAAE,GAAG,IAAI,IAAItD,IAAI,GAAGl8C,IAAI,EAAE6/C,EAAE3D,EAAEA,IAAI,GAAG2D,GAAG1qC,GAAG4qC,GAAG,QAAQF,IAAI,GAAG7/C,IAAI,KAAK,QAAQwqI,GAAG,KAAK,EAAEzqF,IAAI,EAAE7D,EAAE,EAAE,EAAEA,EAAEwD,GAAGjoE,EAAE+nE,GAAG,GAAG,IAAI,KAAKK,IAAI,GAAG1qC,IAAI,GAAG+mC,EAAE2D,EAAEA,EAAE1qC,EAAEuqC,EAAEjoE,EAAE,GAAG,IAAI,EAAEykE,IAAI,GAAG2D,IAAI,EAAEA,EAAEpoE,EAAEsoE,GAAG,QAAQ7D,IAAI,GAAG/mC,IAAI,GAAG+mC,IAAI,GAAGzkE,EAAEykE,EAAE6D,IAAI,GAAGD,EAAEnoE,EAAEooE,GAAG,QAAQqqF,GAAG,KAAK,EAAEluF,EAAE,EAAE,EAAEA,EAAEwD,EAAEG,EAAE,GAAG,IAAI,GAAG3D,IAAI,GAAG4D,IAAI,EAAEC,EAAE,EAAE7D,EAAEvkE,EAAE,QAAQw9B,EAAEuqC,EAAEG,EAAE,GAAG,GAAG,KAAK,MAAMh2C,IAAI,GAAG7J,IAAI,IAAIk8C,GAAG,EAAEzkE,GAAGykE,EAAEzkE,IAAI,GAAGA,GAAGykE,GAAG,QAAQA,IAAI,GAAG4D,IAAI,MAAM,GAAGj2C,EAAEqyC,GAAG,QAAQiuF,GAAG,KAAK,EAAE1yJ,EAAE,EAAE,EAAEA,EAAEooE,EAAEh2C,EAAE61C,EAAEF,EAAE,GAAG,IAAI,OAAO/nE,IAAI,GAAGooE,IAAI,GAAG3D,EAAEzkE,EAAEioE,EAAEF,EAAE,GAAG,IAAI,IAAItD,IAAI,GAAG2D,IAAI,EAAEH,EAAEF,EAAE,GAAG,IAAI,EAAEtD,IAAI,GAAG2D,IAAI,EAAEpoE,EAAE,EAAEqoE,GAAG,QAAQJ,EAAEF,EAAE,GAAG,IAAI,OAAOO,IAAI,GAAGpoE,IAAI,GAAGmoE,GAAG,EAAEJ,EAAEF,EAAE,GAAG,IAAI,MAAM/nE,IAAI,GAAGqoE,IAAI,GAAGD,GAAG,EAAE,SAASh2C,EAAE21C,GAAG,IAAIgnE,EAAExkI,EAAE,EAAEy9D,EAAE,EAAEsyE,EAAE,EAAEryE,EAAE,EAAEE,EAAE,EAAE5vD,EAAE,EAAE4Z,EAAE,EAAEpR,EAAE,EAAE6kD,EAAE,EAAEpyC,EAAE,EAAEsyC,EAAE,EAAEttD,EAAE,EAAEkqE,EAAE,EAAE5iF,EAAEivI,EAAEjvI,EAAE,GAAG,EAAEioE,EAAE,CAACgnE,EAAE,CAACxkI,EAAE,CAACy9D,EAAE,CAACsyE,EAAE,CAACryE,EAAE,CAACE,EAAE,CAAC3zE,EAAE,CAAC8M,EAAE,CAACuC,EAAE,CAAC0U,EAAE,CAAC4Z,EAAE,CAAC,IAAI41C,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,GAAGx9D,GAAG49D,EAAE3zE,EAAE,UAAUwzE,GAAGjnD,EAAEgnD,IAAI,EAAE,GAAG,GAAGA,EAAE,IAAI,KAAK,EAAE,GAAG,GAAG,CAACA,GAAGE,EAAEzzE,EAAE,OAAO+V,GAAG+vI,EAAEtyE,GAAG,IAAI,EAAEz9D,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAGy9D,EAAExzE,EAAEyzE,EAAE,GAAG,OAAO,GAAG19D,EAAEA,EAAE,MAAM,KAAK/V,EAAEwzE,EAAE,IAAI,GAAGz9D,EAAE/V,EAAE+V,EAAE,GAAG,GAAGy9D,IAAIxvD,EAAE,MAAMkqE,EAAE4rF,IAAI,EAAEh0B,GAAGnyE,EAAE3zE,EAAEgkB,GAAG,GAAGkqE,GAAGn4E,EAAE+vI,GAAG,EAAE9lJ,EAAEyzE,EAAE,GAAG,GAAG,EAAE19D,EAAE/V,EAAE,GAAG+V,EAAEA,EAAE09D,EAAE,IAAI,GAAG,EAAEzzE,EAAE+V,EAAE,GAAG,GAAG,MAAMw9D,EAAE,IAAIv0C,EAAEh/B,EAAE,SAAS,GAAGusB,IAAI,EAAE,MAAMoR,EAAE,GAAG5nB,EAAE,CAACy9D,EAAED,GAAGx9D,GAAG,GAAGw9D,GAAG,GAAGA,EAAE,GAAGC,GAAGD,GAAGx9D,GAAGy9D,GAAGD,GAAG,EAAE,KAAK,GAAG,GAAGC,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,EAAEC,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,EAAExvD,EAAE/jB,EAAE,OAAOuzE,GAAGC,IAAIA,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,IAAIA,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,KAAKx9D,IAAIw9D,EAAE,GAAG,IAAI,IAAI,IAAI,GAAGx9D,EAAE/V,EAAE+jB,EAAE,GAAG,OAAO,GAAGwvD,EAAEA,EAAE,MAAM,KAAKvzE,EAAE+V,EAAE,IAAI,GAAGw9D,EAAEvzE,EAAEuzE,EAAE,GAAG,GAAGx9D,IAAI49D,EAAEmmG,IAAI,EAAEtmG,GAAGG,EAAE3zE,EAAE,MAAM2zE,GAAGJ,EAAExvD,EAAE,EAAE,EAAE/jB,EAAE+jB,EAAE,GAAG,GAAG,EAAEwI,EAAEknD,GAAG19D,EAAEy9D,GAAG,GAAGjnD,EAAE,EAAEvsB,EAAE,GAAG8lJ,EAAE/hI,EAAEwI,EAAE,IAAI,GAAG,EAAEknD,EAAEzzE,EAAE+V,EAAEgO,GAAG,GAAG0vD,EAAEz0C,IAAIw0C,EAAE,QAAQz9D,EAAEipB,IAAI,EAAE,IAAI,GAAG,EAAEjb,EAAE/jB,EAAE,OAAO+V,EAAE,GAAGA,GAAG49D,EAAE59D,EAAE/V,EAAEwzE,EAAE,GAAG,IAAIxzE,EAAE,MAAM+V,EAAE49D,EAAE59D,EAAEy9D,GAAGxzE,EAAEwzE,EAAE,GAAG,GAAGzvD,EAAE/jB,EAAE+V,EAAE,IAAI,GAAGgO,EAAE/jB,EAAE+jB,EAAE,IAAI,GAAGyvD,EAAExzE,EAAE+jB,EAAE,GAAG,GAAGhO,GAAG/V,EAAE,MAAM8lJ,EAAE9lJ,EAAE,MAAMyzE,EAAE,MAAMF,EAAE,KAAK51C,EAAE39B,EAAE,OAAO,MAAM29B,EAAE,IAAI61C,EAAED,GAAGx9D,GAAG4nB,EAAE,EAAEA,GAAG,EAAE,KAAK,GAAG,GAAG61C,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,EAAEC,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,EAAEx9D,EAAE/V,EAAE,SAASwzE,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,IAAIA,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,KAAKx9D,IAAIw9D,EAAE,IAAI,IAAI,GAAGE,IAAI,EAAEzzE,EAAE+V,EAAE,GAAG,IAAIwW,EAAE,EAAEinD,EAAEz9D,GAAGw9D,EAAEvzE,EAAEwzE,EAAE,IAAI,MAAMD,EAAEvzE,EAAEwzE,EAAE,IAAI,KAAKC,GAAGqyE,GAAGtyE,IAAI,EAAExzE,EAAEuzE,EAAE,GAAG,IAAIhnD,EAAE,KAAK,EAAEknD,IAAI,GAAGD,EAAEC,EAAE19D,EAAE+vI,EAAEvyE,EAAEx9D,EAAEy9D,EAAED,EAAE,IAAInC,EAAEr7D,EAAEwW,EAAE,KAAK,GAAGxW,IAAI,EAAE,MAAMgO,EAAE,GAAGutD,EAAEtxE,EAAE+V,EAAE,IAAI,IAAI,GAAG+vI,EAAE9lJ,EAAE+V,EAAE,IAAI,OAAO,EAAEA,GAAG,CAACw9D,EAAEvzE,EAAE+V,EAAE,GAAG,GAAG/V,EAAEuzE,EAAE,IAAI,GAAGuyE,EAAE9lJ,EAAE8lJ,EAAE,GAAG,GAAGvyE,EAAE,MAAMgnE,EAAE,KAAKhnE,EAAEvzE,GAAGwzE,EAAEz9D,EAAE,GAAG,IAAI,IAAI,CAAC,KAAKw9D,EAAEvzE,EAAE+V,EAAE,IAAI,IAAI,MAAM1G,EAAEmkE,EAAEz9D,EAAE,GAAG,EAAE,KAAKgO,EAAEyvD,EAAEsyE,EAAEvyE,GAAGA,EAAEvzE,GAAGwzE,EAAED,EAAE,GAAG,IAAI,MAAMC,EAAEsyE,EAAE,GAAG,EAAEvyE,EAAEvzE,EAAE8lJ,EAAE,IAAI,MAAM9lJ,EAAE+jB,GAAG,GAAG,EAAE,MAAMw2H,EAAE,GAAGhuH,GAAG,IAAIgnD,IAAI,EAAE,cAAchnD,GAAG,GAAGgnD,EAAEA,EAAE,GAAG,GAAGnC,EAAEpxE,EAAE,OAAO,CAAC2zE,EAAE,GAAGF,EAAE,EAAElnD,EAAE,EAAEA,IAAI,GAAG,WAAWgnD,EAAEA,IAAI,EAAE,EAAEA,IAAIxvD,EAAEwvD,EAAE,UAAU,GAAG,EAAEI,EAAE,KAAKJ,IAAIA,IAAIC,EAAED,EAAE,SAAS,GAAG,KAAKx9D,EAAEw9D,EAAE,SAAS,GAAG,KAAK,GAAG,IAAIx9D,EAAEy9D,EAAEzvD,GAAG,IAAI,EAAEwI,IAAIgnD,EAAE,GAAG,GAAG,GAAGz8D,EAAE,CAACyV,EAAE,CAAC,GAAGinD,EAAExzE,EAAE,OAAO2zE,GAAG,IAAI,GAAG,IAAIJ,EAAE,EAAEx9D,EAAEwW,IAAI,KAAK,EAAEonD,GAAG,EAAE,IAAIA,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM5vD,IAAI,EAAE/jB,EAAEwzE,EAAE,GAAG,IAAIjnD,EAAE,KAAK,GAAGknD,IAAI,IAAIqyE,EAAEtyE,EAAEC,EAAE1vD,IAAI,CAAC0vD,EAAE,EAAEF,EAAEC,EAAE,MAAMjnD,EAAE,GAAGxI,EAAE/jB,EAAEwzE,EAAE,IAAI,GAAGA,EAAExzE,EAAE,KAAK+V,IAAI,GAAG,GAAGy9D,EAAE,IAAI,GAAGD,EAAExvD,GAAG,EAAEA,KAAK,EAAEyvD,GAAGD,EAAExvD,EAAEwvD,EAAEx9D,IAAI,GAAGy9D,EAAE,WAAWD,EAAE,EAAE,KAAKA,EAAEuyE,GAAG,CAAC,KAAKvyE,GAAG,GAAGA,EAAE,GAAGI,GAAGJ,GAAGnC,GAAG,MAAMzzC,EAAE61C,EAAED,GAAGx9D,GAAGw9D,EAAE,EAAEA,GAAG,EAAE,KAAK,GAAG,GAAGC,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,EAAEC,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,EAAEA,EAAEvzE,EAAE,SAASwzE,GAAGD,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,IAAIA,GAAGx9D,EAAEA,IAAIw9D,EAAE,KAAK,EAAE,KAAKx9D,IAAIw9D,EAAE,IAAI,IAAI,GAAG,IAAIA,EAAE,MAAMz8D,EAAE,KAAK28D,GAAGD,GAAGz9D,IAAI,EAAE/V,EAAEuzE,EAAE,GAAG,IAAIhnD,EAAE,KAAK,EAAEknD,IAAI,GAAG19D,EAAE09D,EAAEqyE,EAAEtyE,EAAED,EAAEuyE,EAAEvyE,GAAGx9D,EAAE/V,EAAEuzE,EAAE,IAAI,KAAKvzE,EAAEuzE,EAAE,IAAI,MAAM,MAAMuyE,EAAE9lJ,EAAE,MAAMusB,IAAI,GAAGknD,IAAI,GAAG,CAAC,IAAI91C,EAAEmoH,EAAEv5H,EAAE,KAAK,GAAGu5H,IAAI,EAAE,MAAM/hI,EAAE,GAAG4vD,EAAE3zE,EAAE8lJ,EAAE,IAAI,IAAI,EAAEA,KAAK,GAAG/vI,EAAE/V,EAAE8lJ,EAAE,IAAI,KAAK,CAACvyE,EAAEvzE,EAAE8lJ,EAAE,GAAG,GAAG9lJ,EAAEuzE,EAAE,IAAI,GAAGx9D,EAAE/V,EAAE+V,EAAE,GAAG,GAAGw9D,EAAE,MAAMx9D,EAAE,KAAKw9D,EAAEvzE,GAAGwzE,EAAEsyE,EAAE,GAAG,IAAI,IAAI,CAAC,KAAKvyE,EAAEvzE,EAAE8lJ,EAAE,IAAI,IAAI,MAAMh5I,EAAE0mE,EAAEsyE,EAAE,GAAG,EAAE,KAAK/hI,EAAEyvD,EAAEz9D,EAAEw9D,GAAGA,EAAEvzE,GAAGwzE,EAAED,EAAE,GAAG,IAAI,MAAMC,EAAEz9D,EAAE,GAAG,EAAEw9D,EAAEvzE,EAAE+V,EAAE,IAAI,MAAM/V,EAAE+jB,GAAG,GAAG,EAAE,MAAMhO,IAAI,IAAIy9D,EAAExzE,EAAE,SAAS,GAAGusB,IAAI,EAAE,CAACu5H,EAAE9lJ,EAAE,OAAO+V,EAAEy9D,EAAEjnD,EAAE,KAAK,GAAG,IAAIvsB,EAAE,MAAM+V,EAAEw9D,EAAEuyE,EAAEv5H,EAAE,EAAEvsB,EAAE,MAAMuzE,EAAEvzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEx9D,EAAE/V,EAAEwzE,EAAEsyE,GAAG,GAAG/vI,EAAE/V,EAAE8lJ,EAAE,GAAG,GAAG,EAAEv5H,IAAIvsB,EAAE,MAAM,EAAEA,EAAE,MAAM,EAAEA,EAAE8lJ,EAAE,GAAG,GAAG,EAAEtyE,EAAExzE,EAAE,GAAGuzE,EAAEC,EAAEsyE,EAAE,IAAI,GAAG,EAAE9lJ,EAAEuzE,EAAE,GAAG,IAAIA,EAAEuyE,EAAE,EAAE,EAAE,MAAMvyE,EAAE,IAAI51C,EAAE39B,EAAE,SAAS,EAAEusB,IAAI,EAAE,CAACxW,EAAE4nB,EAAEpR,EAAE,EAAEvsB,EAAE,MAAM+V,EAAEw9D,GAAGC,EAAExzE,EAAE,OAAOusB,EAAE,EAAEvsB,EAAE,MAAMuzE,EAAEvzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEx9D,EAAE/V,EAAEwzE,EAAE,GAAG,GAAG,EAAEjnD,EAAEgnD,EAAEC,EAAE,EAAE,EAAE,MAAMD,EAAE,GAAGA,EAAE,EAAEx9D,EAAEq7D,EAAE7kD,EAAE,GAAG,EAAEvsB,EAAE,MAAMwzE,EAAExzE,EAAE,OAAOA,EAAE,OAAO,EAAEA,EAAE,OAAO,EAAEA,EAAE,MAAM,KAAKA,EAAE,MAAM,KAAKA,EAAE,MAAMu6I,EAAE,IAAI,GAAG,WAAWv6I,EAAE,MAAM,EAAEA,EAAE,MAAM,EAAEwzE,EAAE,OAAOA,GAAGzvD,EAAEhO,EAAEy9D,EAAE,IAAIC,EAAE,EAAED,EAAE,MAAM,GAAGjnD,IAAI,EAAE,MAAMgnD,EAAE,IAAIuyE,EAAE9lJ,EAAE,QAAQ8lJ,IAAI,GAAGnyE,GAAG59D,EAAE/V,EAAE,OAAOwzE,EAAE,KAAK,EAAEz9D,IAAI,GAAG49D,IAAI,EAAE,MAAMJ,EAAE,GAAG,EAAEzmE,EAAE,OAAO,MAAM2mE,EAAE91C,EAAE,CAAC7mB,EAAE,CAAC,GAAGgvI,EAAE9lJ,EAAE,MAAM,IAAIuzE,EAAE,QAAQ,CAAC,GAAGuyE,IAAI,GAAG/vI,EAAE/V,EAAEuzE,GAAG,IAAIvzE,EAAEuzE,EAAE,GAAG,KAAK,GAAGx9D,IAAI,GAAG+vI,IAAI,EAAE,MAAMhvI,EAAE,KAAKy8D,EAAEvzE,EAAEuzE,EAAE,GAAG,IAAI,MAAM,IAAI,IAAI,GAAGx9D,EAAEgkK,GAAG,KAAK,MAAMpmG,EAAE,GAAGA,EAAEH,GAAGD,GAAGuyE,EAAE9lJ,EAAE,OAAO,EAAE,GAAG+V,IAAI49D,GAAGH,EAAEz9D,EAAE,IAAIw9D,EAAEx9D,EAAE,EAAE+vI,GAAG,GAAGnyE,IAAI,GAAGpnD,IAAI,EAAEonD,IAAI,EAAE,WAAW,MAAMA,EAAE,IAAImyE,EAAE9lJ,EAAE,QAAQ8lJ,IAAI,GAAGryE,GAAGF,EAAEvzE,EAAE,OAAO2zE,EAAE,KAAK,EAAEJ,IAAI,GAAGE,IAAI,EAAE,MAAME,EAAE,IAAI,EAAE59D,KAAK,GAAGw9D,EAAEwmG,GAAGpmG,KAAK,MAAMh2C,EAAE,MAAMmoH,EAAE,IAAInyE,EAAEF,EAAE1vD,EAAE4Z,KAAK,EAAE,WAAW,MAAMg2C,EAAE,IAAI,GAAG59D,EAAEgkK,GAAGpmG,OAAO3zE,EAAEuzE,GAAG,GAAGvzE,EAAEuzE,EAAE,GAAG,GAAG,GAAG,MAAMvzE,EAAEuzE,EAAEx9D,EAAE,MAAM,IAAI,EAAEw9D,GAAGhnD,EAAE,KAAK,GAAGonD,IAAI,GAAG,CAAC,IAAI59D,GAAGA,EAAE/V,EAAE,QAAQoxE,EAAEuC,EAAE,GAAG,EAAE59D,KAAK,EAAE,WAAW,CAACA,EAAEw9D,EAAE,MAAMuyE,EAAE,IAAI,IAAI,EAAEi0B,GAAGhkK,IAAI,CAAC49D,EAAE59D,EAAE49D,EAAE,EAAE59D,EAAEw9D,EAAE,MAAMuyE,EAAEi0B,GAAG,EAAEpmG,EAAE,GAAG,MAAMA,EAAE,GAAG59D,EAAEw9D,GAAG,IAAI,EAAEA,GAAG,MAAMuyE,EAAE,MAAMnyE,EAAE78D,IAAIgvI,EAAE,EAAE,MAAMvL,EAAExkI,EAAE,EAAE,MAAMA,EAAE,IAAI,IAAI,EAAEA,GAAG,MAAM+vI,EAAE9lJ,EAAE,MAAM,EAAEA,EAAE,MAAM,GAAGwzE,IAAI,EAAE,WAAW,MAAMA,EAAE,IAAIz9D,EAAEgkK,GAAGvmG,MAAM,IAAID,EAAEwmG,GAAG,MAAM,GAAG,IAAI,EAAEhkK,IAAI,IAAI,EAAEw9D,GAAG,MAAMC,EAAE,IAAIG,EAAEJ,EAAEx9D,EAAE,KAAK,GAAGwW,EAAE,KAAK,EAAE,MAAMinD,EAAED,EAAEvzE,EAAE,MAAM2zE,EAAE,EAAE3zE,EAAE,MAAMuzE,EAAEA,IAAI,EAAElkE,EAAE,QAAQrP,EAAE,MAAMuzE,GAAGuyE,EAAE,CAACryE,EAAE,CAACE,EAAE,CAAC,GAAG5vD,EAAE/jB,EAAE,MAAM,CAAC,IAAIuzE,EAAE,QAAQ,CAAC,KAAKuyE,EAAE9lJ,EAAEuzE,GAAG,KAAKC,EAAExzE,EAAEuzE,EAAE,GAAG,IAAI,KAAK,EAAEx9D,GAAG,MAAM49D,EAAE,KAAKJ,EAAEvzE,EAAEuzE,EAAE,GAAG,IAAI,MAAM,MAAME,EAAE,KAAKF,EAAEvzE,EAAE,SAAS,GAAG+V,IAAI,GAAGw9D,IAAIvzE,EAAE,MAAM+V,GAAGw9D,EAAE,EAAEvzE,EAAE,MAAM2zE,EAAE3zE,EAAE,MAAM+V,EAAE/V,EAAE,OAAO,EAAEA,EAAE,MAAMA,EAAE,MAAMA,EAAE,MAAM,EAAEwzE,EAAE,OAAOsyE,EAAEvyE,GAAG,GAAG,EAAEvzE,EAAE8lJ,EAAE,OAAO,GAAGtyE,EAAExzE,EAAE8lJ,EAAE,OAAO,GAAGtyE,EAAE,KAAK,GAAGD,EAAEA,EAAE,EAAE,MAAMC,GAAGsyE,EAAEnyE,EAAE,GAAG,IAAIJ,EAAEx9D,EAAE,EAAE,GAAG,EAAEA,EAAE,EAAE,GAAG,EAAE/V,EAAE,MAAMwzE,EAAED,EAAEA,EAAEx9D,EAAE,EAAE/V,EAAE,MAAMuzE,EAAEvzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEC,EAAExzE,EAAE,GAAG+V,EAAE+vI,EAAE,IAAI,GAAG,GAAG9lJ,EAAE,MAAMA,EAAE,MAAM,MAAM8lJ,EAAE,KAAK,EAAEh5I,EAAEymE,EAAE,GAAG,GAAGx9D,IAAI,GAAGgO,IAAI,EAAE+hI,IAAI,EAAE/hI,IAAI,GAAG,CAAC/jB,EAAEuzE,EAAE,GAAG,GAAGC,EAAEG,EAAEH,GAAGD,EAAExvD,EAAE,EAAE,GAAG,EAAEA,EAAE,EAAE,GAAGA,EAAE,EAAE/jB,EAAE,MAAMwzE,EAAED,GAAGx9D,EAAE/V,EAAE,MAAM2zE,EAAE,GAAGJ,EAAE,EAAEvzE,EAAE,MAAMuzE,EAAEvzE,EAAEwzE,EAAE,GAAG,GAAG,EAAED,EAAEvzE,EAAE,GAAG+V,EAAEgO,EAAE,IAAI,GAAG,GAAG/jB,EAAE,MAAMA,EAAE,MAAM,MAAM8lJ,IAAIA,EAAE9lJ,EAAE,SAAS,EAAE+V,IAAI,IAAI/V,EAAE,MAAM+V,EAAE+vI,EAAE,GAAGtyE,EAAEz9D,EAAE49D,EAAE,EAAEJ,EAAE,MAAME,EAAE,CAACE,EAAE,CAAC3zE,EAAE,CAAC8M,EAAE,CAACuC,EAAE,CAAC0U,EAAE,CAAC,OAAO,CAAC,IAAI,EAAEyvD,IAAIxzE,EAAEuzE,GAAG,GAAG,CAAC,GAAGA,EAAEvzE,EAAEuzE,EAAE,GAAG,GAAG,SAAS,MAAMxvD,EAAE,MAAM,KAAK,EAAEjX,EAAEymE,EAAE,GAAG,IAAI,MAAMlkE,EAAE,IAAIkkE,EAAE,QAAQ,CAAC,IAAIC,EAAExzE,EAAEuzE,GAAG,MAAM,GAAGxvD,IAAI,IAAI0vD,EAAED,EAAExzE,EAAEuzE,EAAE,GAAG,GAAG,KAAK,EAAExvD,IAAI,EAAE,MAAMjX,EAAEymE,EAAEvzE,EAAEuzE,EAAE,GAAG,IAAI,GAAGvzE,EAAEuzE,GAAG,GAAGx9D,EAAE/V,EAAEuzE,EAAE,GAAG,GAAGvzE,EAAEuzE,EAAE,GAAG,GAAGI,EAAE3zE,EAAE,GAAGoxE,GAAGr7D,EAAE,EAAE,GAAG,EAAEA,EAAE,EAAE,GAAGA,EAAE,IAAI,GAAG,EAAEwW,EAAEinD,IAAIG,EAAEH,GAAGA,EAAE,EAAE,GAAG,EAAEA,EAAE,EAAE,GAAG,GAAGpC,EAAE,GAAG7kD,EAAE,EAAEoR,EAAEpR,EAAE6kD,EAAE,GAAG,EAAEuC,KAAK,EAAE5vD,GAAG,CAAC/jB,EAAE,MAAM29B,EAAE41C,EAAEvzE,EAAE,MAAMwzE,EAAE,EAAExzE,EAAE,MAAMuzE,EAAEvzE,EAAE29B,EAAE,GAAG,GAAG,EAAE41C,EAAE,MAAMI,EAAE,GAAG3zE,EAAE,QAAQ,EAAE2zE,GAAG,CAAC3zE,EAAE,MAAM29B,EAAE41C,EAAEvzE,EAAE,MAAMwzE,EAAE,EAAExzE,EAAE,MAAMuzE,EAAEvzE,EAAE29B,EAAE,GAAG,GAAG,EAAE41C,EAAEvzE,EAAEuzE,EAAE51C,GAAG,GAAG41C,EAAE,MAAMI,EAAE,GAAG,IAAI,GAAGJ,EAAEvzE,EAAE2zE,EAAE,GAAG,KAAK,CAAC5vD,GAAG,EAAEwvD,EAAElkE,EAAE,GAAGkkE,IAAI,GAAG,IAAI,CAAC,GAAGuyE,EAAE9lJ,EAAE2zE,EAAE,GAAG,GAAGJ,EAAEA,IAAI,EAAE,GAAG,GAAGx9D,EAAE/V,EAAE2zE,EAAE,IAAI,OAAO,EAAEmyE,GAAG,CAAC9hI,EAAE,MAAMkqE,EAAEluF,EAAE,MAAM85K,IAAI,EAAEvmG,GAAGvzE,EAAEgkB,GAAG,GAAGkqE,EAAE,MAAM7+E,EAAErP,EAAE8lJ,EAAE,IAAI,GAAG/vI,EAAE/V,EAAE+V,EAAE,GAAG,GAAG+vI,MAAM,CAAC,GAAGv5H,EAAEvsB,EAAE2zE,EAAE,IAAI,IAAI,EAAEA,KAAK,GAAG59D,EAAE/V,EAAE2zE,EAAE,IAAI,KAAK,IAAIF,EAAEzzE,GAAGuzE,EAAEI,EAAE,GAAG,IAAI,MAAMF,EAAEzzE,GAAGuzE,EAAEI,EAAE,GAAG,IAAI,IAAI,CAAC,KAAKmyE,EAAEvyE,GAAGE,EAAEzzE,GAAGuzE,GAAGx9D,EAAE09D,GAAG,GAAG,IAAI,MAAMF,EAAEx9D,EAAE,GAAG,EAAE09D,EAAEzzE,EAAE+V,EAAE,IAAI,MAAM/V,EAAE8lJ,GAAG,GAAG,OAAO/vI,EAAE,OAAOw9D,EAAEvzE,EAAE2zE,EAAE,GAAG,GAAG3zE,EAAEuzE,EAAE,IAAI,GAAGx9D,EAAE/V,EAAE+V,EAAE,GAAG,GAAGw9D,EAAE,GAAGhnD,EAAE,CAACu5H,EAAE9lJ,EAAE2zE,EAAE,IAAI,GAAG5vD,EAAE,CAAC,GAAG/jB,GAAGuzE,EAAE,OAAOuyE,GAAG,GAAG,IAAI,KAAK,EAAEnyE,GAAG,CAAC,GAAG3zE,EAAEuzE,GAAG,GAAGx9D,EAAEA,EAAE,MAAMgO,EAAEC,EAAE,MAAMkqE,EAAEluF,EAAE,MAAM85K,IAAI,EAAEh0B,GAAG9lJ,EAAEgkB,GAAG,GAAGkqE,EAAE,MAAM7+E,EAAE,GAAGrP,EAAEusB,GAAGvsB,EAAEusB,EAAE,IAAI,KAAK,EAAEonD,GAAG,GAAG,KAAK,GAAG59D,GAAGA,EAAE,MAAM1G,EAAErP,EAAE+V,EAAE,IAAI,GAAGwW,GAAGgnD,EAAEvzE,EAAE2zE,EAAE,IAAI,MAAM3zE,EAAE+V,EAAE,IAAI,GAAGw9D,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGx9D,IAAIw9D,EAAEvzE,EAAE2zE,EAAE,IAAI,MAAM3zE,EAAE+V,EAAE,IAAI,GAAGw9D,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGx9D,IAAI49D,EAAEA,EAAE5vD,EAAE,EAAEyvD,EAAEA,EAAEzvD,EAAE,EAAE,GAAG/jB,EAAE2zE,EAAE,GAAG,IAAI,EAAE3zE,EAAE2zE,EAAE,GAAG,GAAG3zE,EAAE29B,EAAE,GAAG,GAAG,EAAE61C,EAAExzE,EAAEwzE,EAAE71C,GAAG,GAAG61C,EAAEA,IAAI,GAAG,IAAI,CAACz9D,EAAE,QAAQw9D,EAAEC,IAAI,EAAE,IAAI,GAAG,GAAGA,EAAExzE,EAAE,QAAQuzE,EAAE,GAAGA,GAAGA,EAAEvzE,EAAE+V,EAAE,GAAG,IAAI/V,EAAE,MAAMuzE,EAAEC,EAAED,EAAEx9D,GAAG/V,EAAE+V,EAAE,GAAG,GAAG4nB,EAAE39B,EAAEuzE,EAAE,IAAI,GAAG51C,EAAE39B,EAAE29B,EAAE,IAAI,GAAG5nB,EAAE/V,EAAE29B,EAAE,GAAG,GAAG41C,EAAE,MAAMI,EAAE,GAAGJ,EAAE,GAAGC,IAAI,GAAG,WAAWD,EAAEC,IAAI,EAAE,EAAED,IAAIE,EAAEF,EAAE,UAAU,GAAG,EAAEA,EAAE,KAAKA,IAAIA,IAAIuyE,EAAEvyE,EAAE,SAAS,GAAG,KAAKx9D,EAAEw9D,EAAE,SAAS,GAAG,KAAK,GAAG,IAAIx9D,EAAE+vI,EAAEryE,GAAG,IAAI,EAAED,IAAID,EAAE,GAAG,GAAG,GAAGvzE,EAAE29B,EAAE,IAAI,GAAG41C,EAAEvzE,EAAE29B,EAAE,IAAI,GAAG,EAAE39B,EAAE29B,EAAE,IAAI,GAAG,EAAE81C,EAAE,OAAOF,GAAG,GAAG,GAAGuyE,EAAE9lJ,EAAE,QAAQ+V,EAAE,GAAGw9D,GAAG,CAAC,IAAIA,EAAEC,IAAI,KAAK,EAAED,GAAG,EAAE,IAAIA,IAAI,EAAE,GAAG,GAAGx9D,EAAE/V,EAAEyzE,GAAG,KAAK,CAAC,GAAGqyE,EAAE/vI,IAAI,EAAE/V,EAAE+V,EAAE,GAAG,MAAM,EAAEy9D,GAAG,MAAMxzE,EAAE,GAAG+V,EAAEw9D,IAAI,GAAG,EAAEA,IAAI,IAAIx9D,EAAE/V,EAAE,IAAIyzE,EAAEqyE,GAAG,EAAE/vI,GAAG,IAAI,IAAI,MAAM/V,EAAEyzE,EAAE,IAAI,GAAG91C,EAAE39B,EAAE29B,EAAE,IAAI,GAAGmoH,OAAO9lJ,EAAE,MAAM+V,EAAE+vI,EAAE9lJ,EAAEyzE,GAAG,GAAG91C,EAAE39B,EAAE29B,EAAE,IAAI,GAAG81C,EAAEzzE,EAAE29B,EAAE,IAAI,GAAGA,EAAE39B,EAAE29B,EAAE,GAAG,GAAGA,EAAE,MAAMg2C,EAAE,IAAIH,GAAGsyE,EAAEnyE,EAAE,GAAG,IAAIJ,EAAEx9D,EAAE,EAAE,GAAG,EAAEA,EAAE,EAAE,GAAG,EAAE/V,EAAE,MAAMwzE,EAAED,EAAEA,EAAEx9D,EAAE,EAAE/V,EAAE,MAAMuzE,EAAEvzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEC,EAAExzE,EAAE,GAAG+V,EAAE+vI,EAAE,IAAI,GAAG,GAAG9lJ,EAAE,MAAMA,EAAE,MAAMA,GAAGwzE,GAAGD,GAAGE,GAAGA,EAAE,GAAG,EAAE,GAAGA,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE1vD,EAAE,KAAK,EAAEA,EAAEwvD,GAAG,GAAG,GAAG,GAAGA,EAAEvzE,EAAE,MAAMA,EAAEwzE,EAAE,IAAI,GAAGxzE,EAAE,MAAMA,EAAEwzE,EAAE,IAAI,GAAGD,EAAEA,EAAEvzE,EAAE,MAAMA,EAAEwzE,EAAE,GAAG,GAAGxzE,EAAE,MAAMA,EAAEwzE,EAAE,IAAI,GAAGD,EAAEvzE,EAAE,MAAMwzE,EAAE,EAAExzE,EAAE,MAAM2zE,EAAE3zE,EAAE,MAAM+V,EAAE/V,EAAE,MAAM,EAAEuzE,EAAEC,EAAE,GAAG,EAAExzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEx9D,EAAEw9D,EAAE,EAAE,EAAEA,EAAEA,EAAE,EAAE,EAAEx9D,IAAI,EAAE09D,IAAI,IAAI,IAAI,EAAED,KAAK,EAAEzvD,GAAG,MAAM+hI,EAAE,GAAG9lJ,EAAEwzE,EAAE,GAAG,IAAI,EAAExzE,EAAEwzE,EAAE,GAAG,GAAGC,EAAED,EAAEzvD,EAAE,EAAE/jB,EAAE+jB,EAAE,GAAG,GAAG,EAAE0vD,EAAEzzE,EAAEwzE,GAAG,GAAGC,EAAEA,IAAI,GAAG,IAAI,CAAC19D,EAAE,QAAQw9D,EAAEE,IAAI,EAAE,IAAI,GAAG,GAAGD,EAAExzE,EAAE,QAAQuzE,EAAE,GAAGA,GAAGA,EAAEvzE,EAAE+V,EAAE,GAAG,IAAI/V,EAAE,MAAMuzE,EAAEC,EAAED,EAAEx9D,GAAG/V,EAAE+V,EAAE,GAAG,GAAGgO,EAAE/jB,EAAEuzE,EAAE,IAAI,GAAGxvD,EAAE/jB,EAAE+jB,EAAE,IAAI,GAAGhO,EAAE/V,EAAE+jB,EAAE,GAAG,GAAGwvD,EAAE,MAAMuyE,EAAE,GAAGvyE,EAAE,GAAGvzE,EAAE+jB,EAAE,IAAI,GAAG,EAAE/jB,EAAE+jB,EAAE,IAAI,GAAG,EAAE0vD,IAAI,GAAG,WAAWF,EAAEE,IAAI,EAAE,EAAEF,IAAIuyE,EAAEvyE,EAAE,UAAU,GAAG,EAAEA,EAAE,KAAKA,IAAIA,IAAIC,EAAED,EAAE,SAAS,GAAG,KAAKx9D,EAAEw9D,EAAE,SAAS,GAAG,KAAK,GAAG,IAAIx9D,EAAEy9D,EAAEsyE,GAAG,IAAI,EAAEryE,IAAIF,EAAE,GAAG,GAAG,GAAGvzE,EAAE+jB,EAAE,IAAI,GAAGwvD,EAAEuyE,EAAE,OAAOvyE,GAAG,GAAG,GAAGC,EAAExzE,EAAE,QAAQ+V,EAAE,GAAGw9D,GAAG,CAAC,IAAIA,EAAEE,IAAI,KAAK,EAAEF,GAAG,EAAE,IAAIA,IAAI,EAAE,GAAG,GAAGx9D,EAAE/V,EAAE8lJ,GAAG,KAAK,CAAC,GAAGtyE,EAAEz9D,GAAG,EAAE09D,MAAM,EAAEzzE,EAAE+V,EAAE,GAAG,IAAI,MAAM09D,EAAE,GAAG19D,EAAEw9D,IAAI,GAAG,EAAEA,IAAI,IAAIx9D,EAAE/V,EAAE,IAAI8lJ,EAAEtyE,GAAG,EAAEz9D,GAAG,IAAI,IAAI,MAAM/V,EAAE8lJ,EAAE,IAAI,GAAG/hI,EAAE/jB,EAAE+jB,EAAE,IAAI,GAAGyvD,OAAOxzE,EAAE,MAAM+V,EAAEy9D,EAAExzE,EAAE8lJ,GAAG,GAAG/hI,EAAE/jB,EAAE+jB,EAAE,IAAI,GAAG+hI,EAAE9lJ,EAAE+jB,EAAE,IAAI,GAAGA,EAAE/jB,EAAE+jB,EAAE,GAAG,GAAGA,EAAE,MAAM+hI,EAAEvyE,EAAEvzE,EAAE8lJ,EAAE,GAAG,GAAG9lJ,EAAEuzE,EAAE,IAAI,GAAG51C,EAAE39B,EAAE8lJ,EAAE,GAAG,GAAGnoH,EAAE39B,EAAE29B,EAAE,IAAI,GAAG,EAAE39B,EAAE29B,EAAE,IAAI,GAAGmoH,EAAE9lJ,EAAE29B,EAAE,GAAG,GAAG41C,EAAEA,EAAEnC,EAAE,EAAE,EAAE,MAAMmC,EAAEA,EAAEvzE,EAAEwzE,EAAE,GAAG,GAAGxzE,EAAEuzE,EAAE,IAAI,GAAGxvD,EAAE/jB,EAAEwzE,EAAE,GAAG,GAAGzvD,EAAE/jB,EAAE+jB,EAAE,IAAI,GAAG,EAAE/jB,EAAE+jB,EAAE,IAAI,GAAGyvD,EAAExzE,EAAE+jB,EAAE,GAAG,GAAGwvD,EAAE,MAAMA,EAAEvzE,EAAE,SAAS,GAAGusB,IAAI,GAAG,CAACxW,EAAEw9D,EAAEhnD,EAAE,EAAEvsB,EAAE,MAAM+V,EAAEw9D,GAAGC,EAAExzE,EAAE,OAAOusB,EAAE,EAAEvsB,EAAE,MAAMuzE,EAAEvzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEx9D,EAAE/V,EAAEwzE,EAAE,GAAG,GAAG,EAAEjnD,EAAEgnD,EAAEC,EAAE,EAAE,EAAE,MAAMD,GAAGvzE,EAAE,MAAM,GAAGuzE,EAAE,EAAE,MAAMA,EAAEx9D,EAAE,GAAG49D,EAAE,CAACH,EAAExzE,EAAE8lJ,EAAE,IAAI,GAAGtyE,EAAE,CAAC,GAAGxzE,GAAGuzE,EAAE,OAAOC,GAAG,GAAG,IAAI,KAAK,EAAEsyE,GAAG,CAAC,GAAG9lJ,EAAEuzE,GAAG,GAAGx9D,EAAEA,EAAE,MAAMy9D,EAAEpC,EAAE0oG,IAAI,EAAEtmG,GAAGpC,EAAEpxE,EAAE,MAAMoxE,EAAE,MAAMr7D,EAAE,GAAG/V,EAAE2zE,GAAG3zE,EAAE2zE,EAAE,IAAI,KAAK,EAAEmyE,GAAG,GAAG,KAAK,GAAG/vI,GAAGA,EAAE,MAAMA,EAAE/V,EAAE+V,EAAE,IAAI,GAAG49D,GAAGJ,EAAEvzE,EAAE8lJ,EAAE,IAAI,MAAM9lJ,EAAE+V,EAAE,IAAI,GAAGw9D,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGx9D,IAAIw9D,EAAEvzE,EAAE8lJ,EAAE,IAAI,MAAM9lJ,EAAE+V,EAAE,IAAI,GAAGw9D,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGx9D,GAAGA,EAAE,GAAG09D,IAAI,GAAG,GAAGF,EAAEE,EAAElnD,EAAE,EAAEvsB,EAAE8lJ,EAAE,GAAG,GAAG,EAAEvyE,EAAEvzE,EAAE,GAAGuzE,EAAEA,EAAEuyE,EAAE,IAAI,GAAG,EAAE9lJ,EAAEuzE,EAAE,GAAG,QAAQ,GAAGvzE,EAAE8lJ,EAAE,GAAG,GAAG,EAAEv5H,EAAEvsB,EAAE29B,EAAE,GAAG,GAAG,EAAE81C,EAAEzzE,EAAEyzE,EAAE91C,GAAG,GAAG81C,EAAEA,IAAI,GAAG,IAAI19D,EAAE,QAAQw9D,EAAEE,IAAI,EAAE,IAAI,GAAG,GAAGD,EAAExzE,EAAE,QAAQuzE,EAAE,GAAGA,GAAGA,EAAEvzE,EAAE+V,EAAE,GAAG,IAAI/V,EAAE,MAAMuzE,EAAEC,EAAED,EAAEx9D,GAAG/V,EAAE+V,EAAE,GAAG,GAAG4nB,EAAE39B,EAAEuzE,EAAE,IAAI,GAAG51C,EAAE39B,EAAE29B,EAAE,IAAI,GAAG5nB,EAAE/V,EAAE29B,EAAE,GAAG,GAAG41C,MAAM,CAACA,EAAE,GAAGE,IAAI,GAAG,WAAWF,EAAEE,IAAI,EAAE,EAAEF,IAAIxvD,EAAEwvD,EAAE,UAAU,GAAG,EAAEA,EAAE,KAAKA,IAAIA,IAAIC,EAAED,EAAE,SAAS,GAAG,KAAKx9D,EAAEw9D,EAAE,SAAS,GAAG,KAAK,GAAG,IAAIx9D,EAAEy9D,EAAEzvD,GAAG,IAAI,EAAE0vD,IAAIF,EAAE,GAAG,GAAG,GAAGvzE,EAAE29B,EAAE,IAAI,GAAG41C,EAAEvzE,EAAE29B,EAAE,IAAI,GAAG,EAAE39B,EAAE29B,EAAE,IAAI,GAAG,EAAE61C,EAAE,OAAOD,GAAG,GAAG,EAAEC,EAAE,CAAC,IAAIz9D,EAAE,GAAGw9D,GAAGnC,EAAE,CAAC,IAAImC,EAAEE,IAAI,KAAK,EAAEF,GAAG,EAAE,IAAIA,IAAI,EAAE,GAAG,GAAGhnD,EAAEvsB,EAAEwzE,GAAG,KAAK,CAAC,KAAK,EAAExzE,GAAG+V,EAAEwW,GAAG,GAAG,MAAM,EAAEknD,GAAG,MAAMD,EAAE,GAAGA,EAAED,IAAI,GAAG,EAAEA,IAAI,IAAIhnD,EAAEvsB,EAAE,IAAIwzE,EAAEz9D,GAAG,EAAEy9D,GAAG,IAAI,IAAI,MAAMxzE,EAAEwzE,EAAE,IAAI,GAAG71C,EAAE39B,EAAE29B,EAAE,IAAI,GAAG5nB,OAAO/V,EAAE,MAAM+V,EAAEq7D,EAAEpxE,EAAEwzE,GAAG,GAAG71C,EAAE39B,EAAE29B,EAAE,IAAI,GAAG61C,EAAExzE,EAAE29B,EAAE,IAAI,GAAGA,EAAE39B,EAAE29B,EAAE,GAAG,GAAGA,EAAE,MAAM5nB,EAAEw9D,EAAEvzE,EAAE+V,EAAE,GAAG,GAAG/V,EAAEuzE,EAAE,IAAI,GAAG51C,EAAE39B,EAAE+V,EAAE,GAAG,GAAG4nB,EAAE39B,EAAE29B,EAAE,IAAI,GAAG,EAAE39B,EAAE29B,EAAE,IAAI,GAAG5nB,EAAE/V,EAAE29B,EAAE,GAAG,GAAG41C,EAAEA,EAAEuyE,EAAE,EAAE,EAAE,MAAMvyE,EAAEgnE,EAAE,GAAGjpE,EAAE,CAACkC,EAAExzE,EAAE+V,EAAE,IAAI,GAAGA,EAAE,CAAC,GAAG/V,GAAGuzE,EAAE,OAAOC,GAAG,GAAG,IAAI,KAAK,EAAEz9D,GAAG,CAAC,GAAG/V,EAAEuzE,GAAG,GAAGuyE,EAAEA,EAAE,MAAM/vI,EAAEiO,EAAE,MAAMkqE,EAAE4rF,IAAI,EAAEtmG,GAAG71C,EAAE39B,EAAEgkB,GAAG,GAAGkqE,EAAE,MAAMqsD,EAAE,GAAGv6I,GAAGA,EAAEsxE,EAAE,IAAI,KAAK,EAAEv7D,GAAG,GAAG,IAAIu7D,GAAG,GAAGw0E,GAAGA,EAAE,MAAMvL,EAAEv6I,EAAE8lJ,EAAE,IAAI,GAAGx0E,GAAGiC,EAAEvzE,EAAE+V,EAAE,IAAI,MAAM/V,EAAE8lJ,EAAE,IAAI,GAAGvyE,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGuyE,IAAIvyE,EAAEvzE,EAAE+V,EAAE,IAAI,MAAM/V,EAAE8lJ,EAAE,IAAI,GAAGvyE,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGuyE,GAAGryE,IAAI,GAAG,IAAIF,EAAEE,EAAElnD,EAAE,EAAEvsB,EAAE+V,EAAE,GAAG,GAAG,EAAEw9D,EAAEvzE,EAAE,GAAGuzE,EAAEA,EAAEx9D,EAAE,IAAI,GAAG,EAAE/V,EAAEuzE,EAAE,GAAG,KAAKvzE,EAAE+V,EAAE,GAAG,GAAG,EAAEwW,EAAEvsB,EAAEoxE,EAAE,GAAG,GAAG,EAAEqC,EAAEzzE,EAAEyzE,EAAErC,GAAG,GAAGqC,EAAEz0C,IAAIw0C,EAAE,QAAQD,EAAEv0C,IAAI,EAAE,IAAI,GAAG,EAAE8mH,EAAE9lJ,EAAE,OAAOuzE,EAAE,GAAGA,GAAGI,EAAEJ,EAAEvzE,EAAEwzE,EAAE,GAAG,IAAIxzE,EAAE,MAAMuzE,EAAEI,EAAEJ,EAAEC,GAAGxzE,EAAEwzE,EAAE,GAAG,GAAGsyE,EAAE9lJ,EAAEuzE,EAAE,IAAI,GAAGuyE,EAAE9lJ,EAAE8lJ,EAAE,IAAI,GAAGtyE,EAAExzE,EAAE8lJ,EAAE,GAAG,GAAGvyE,GAAGvzE,EAAE,MAAMoxE,EAAEpxE,EAAE,MAAMyzE,GAAGF,EAAEx9D,EAAE,EAAE,EAAE,OAAOzK,EAAEivI,EAAE,GAAG,EAAE,EAAEhnE,EAAE,SAASrqC,EAAEqqC,EAAEgnE,EAAExkI,GAAG,IAAIy9D,EAAEsyE,EAAEryE,EAAEE,EAAE7mE,EAAEuC,EAAEsuB,EAAE7mB,EAAEyV,EAAE6kD,EAAEpyC,EAAEsyC,EAAEttD,EAAEkqE,EAAE5iF,EAAEooE,EAAEzD,EAAEzkE,EAAEooE,EAAEC,EAAEj2C,EAAEsL,EAAE4qC,EAAEkqF,EAAEtyJ,EAAEqoB,EAAEgK,EAAEogI,EAAEvW,EAAEjwD,EAAEsmE,EAAEvhB,EAAE2hB,EAAE1oF,EAAE4oF,EAAEj1J,EAAE40J,EAAEhP,EAAE90D,EAAEkkE,EAAEhK,EAAExE,EAAEV,EAAE5oJ,EAAEg4J,EAAEJ,EAAE7sF,EAAEktF,EAAE4Z,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEO,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEnD,GAAG,EAAEoD,GAAG,EAAEC,GAAG,EAAExD,GAAG,EAAEkC,GAAG1lG,EAAEC,EAAEmlG,GAAG2B,GAAGt6K,EAAE+V,EAAE,GAAG,GAAGwW,EAAEosJ,IAAI,GAAGrvK,EAAEqvK,IAAIc,GAAGz5K,EAAEu6I,EAAE,IAAI,KAAK,EAAEo+B,GAAGkB,GAAGrmG,EAAEjnD,EAAEosJ,GAAG7kG,EAAE6kG,IAAI,IAAIE,GAAGzvK,EAAEwvK,GAAGD,GAAG7yB,EAAE6yB,GAAG34K,EAAE+V,GAAG,GAAG09D,EAAEklG,IAAI,GAAGvnG,EAAEunG,GAAG34K,EAAEu6I,EAAE,IAAI,GAAGw+B,GAAGc,GAAG/zB,EAAEryE,EAAEklG,GAAGhlG,EAAEglG,IAAI,IAAIA,GAAGvvK,EAAEyvK,GAAG,EAAEF,IAAIC,GAAGA,GAAGG,GAAG,KAAK,EAAEA,KAAK,EAAEJ,GAAG,EAAE,EAAEA,GAAGE,GAAGD,GAAG1a,EAAE0a,GAAGI,GAAGh5K,EAAE+V,EAAE,GAAG,GAAGk6D,EAAE2oG,IAAI,GAAG55I,EAAE45I,GAAG54K,EAAEu6I,EAAE,IAAI,GAAGq+B,GAAGC,IAAIE,GAAGc,GAAGb,GAAG/oG,EAAE2oG,GAAG9rK,EAAE8rK,IAAI,KAAK,EAAEC,GAAGzvK,EAAEuvK,GAAG,EAAEE,GAAGD,KAAK,EAAEG,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAG3pB,EAAEypB,GAAGsB,GAAGj6K,EAAE+V,EAAE,IAAI,GAAGvK,EAAEmtK,IAAI,GAAGv+E,EAAEu+E,IAAIW,GAAGt5K,EAAEu6I,EAAE,IAAI,KAAK,EAAEo+B,IAAII,GAAGc,GAAGI,GAAGzuK,EAAEmtK,GAAG3a,EAAE2a,IAAI,KAAKC,GAAG,EAAEA,GAAGxvK,EAAEyvK,GAAG,EAAED,GAAGD,KAAK,EAAEI,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGC,GAAGF,GAAGva,EAAEua,GAAGqB,GAAGh6K,EAAE+V,EAAE,IAAI,GAAG6nB,EAAE+6I,IAAI,GAAGrnG,EAAEqnG,GAAG34K,EAAEu6I,EAAE,GAAG,GAAGw+B,GAAGc,GAAGG,GAAGp8I,EAAE+6I,GAAGtpK,EAAEspK,IAAI,IAAIA,GAAGvvK,EAAEwvK,GAAG,EAAED,IAAIE,GAAGA,GAAGE,GAAG,KAAK,EAAEA,KAAK,EAAEJ,GAAG,EAAE,EAAEA,GAAGG,GAAGD,GAAGtnG,EAAEqnG,GAAGQ,GAAGp5K,EAAE+V,EAAE,IAAI,GAAGrK,EAAEktK,IAAI,GAAGta,EAAEsa,IAAIO,GAAGn5K,EAAEu6I,EAAE,GAAG,KAAK,EAAEs+B,GAAGgB,GAAGT,GAAG1tK,EAAEktK,GAAG7kJ,EAAE6kJ,IAAI,IAAID,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGE,GAAGD,GAAG,KAAK,EAAEA,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGD,GAAGna,EAAEma,GAAGS,GAAGr5K,EAAE+V,EAAE,IAAI,GAAGu+I,EAAEskB,IAAI,GAAG50J,EAAE40J,GAAG54K,EAAEu6I,GAAG,GAAGw+B,GAAGc,GAAGR,GAAG/kB,EAAEskB,GAAGj7I,EAAEi7I,IAAI,IAAIA,GAAGxvK,EAAEuvK,GAAG,EAAEC,IAAIC,GAAGA,GAAGE,GAAG,KAAK,EAAEA,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGsB,GAAGl6K,EAAE+V,EAAE,IAAI,GAAG69D,EAAE+kG,GAAG50J,EAAEm2J,GAAG,IAAIrmG,EAAE8kG,IAAI,GAAG7oB,EAAE6oB,IAAIY,GAAGv5K,EAAEu6I,EAAE,IAAI,KAAK,EAAEo+B,IAAII,GAAGc,GAAGjmG,EAAEC,EAAE8kG,GAAG56I,EAAE46I,IAAI,KAAKE,GAAG,EAAEA,GAAGzvK,EAAEwvK,GAAG,EAAEC,GAAGF,KAAK,EAAEI,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGD,GAAGD,GAAGa,GAAGx5K,EAAE+V,EAAE,IAAI,GAAGokK,GAAGxB,GAAG50J,EAAEy1J,GAAG,IAAIY,GAAGzB,IAAI,GAAGzqF,EAAEyqF,GAAG34K,EAAEu6I,EAAE,IAAI,GAAGw+B,GAAGc,GAAGM,GAAGC,GAAGzB,GAAG7hK,EAAE6hK,IAAI,IAAIA,GAAGvvK,EAAEyvK,GAAG,EAAEF,IAAIC,GAAGA,GAAGG,GAAG,KAAK,EAAEA,KAAK,EAAEJ,GAAG,EAAE,EAAEA,GAAGE,GAAGD,GAAGP,GAAGr4K,EAAE+V,EAAE,IAAI,GAAGzK,EAAEyK,EAAEgO,EAAEs0J,GAAG,IAAI3kG,EAAE39D,GAAG,GAAGq5I,EAAEr5I,GAAGwkI,EAAEv6I,EAAEu6I,EAAE,IAAI,KAAK,EAAEq+B,GAAGiB,GAAGvuK,EAAEooE,EAAE39D,EAAEooJ,EAAEpoJ,GAAG,IAAI4iK,GAAGvvK,EAAEuvK,GAAG,EAAEO,GAAGnjK,EAAE8iK,GAAGD,GAAG,EAAE7iK,EAAEA,IAAI,EAAE6iK,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGA,GAAGkB,GAAG76I,EAAElyB,EAAE0mE,EAAEjnD,GAAGqsJ,GAAGxvK,EAAEqwK,GAAGI,GAAG/zB,EAAEryE,EAAEslG,GAAGU,GAAG7xB,EAAEmxB,IAAI,IAAIF,GAAGzvK,EAAEwvK,GAAG,EAAEC,IAAIF,GAAGc,GAAGd,GAAG,KAAK,EAAEc,KAAK,EAAEZ,GAAG,EAAE,EAAEA,GAAGY,GAAGH,GAAGA,GAAGO,GAAGb,GAAG/oG,EAAEqpG,GAAG3hF,EAAE2hF,IAAI,IAAIV,GAAGxvK,EAAEyvK,GAAG,EAAED,IAAID,GAAGW,GAAGX,GAAG,KAAK,EAAEW,KAAK,EAAEV,GAAG,EAAE,EAAEA,GAAGC,IAAIS,GAAGO,GAAGvoG,EAAEjiE,EAAE4qK,GAAGzuK,IAAImtK,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAED,GAAGE,KAAK,EAAES,KAAK,EAAEX,GAAG,EAAE,EAAEA,GAAGC,GAAGC,GAAGS,GAAGH,GAAGN,GAAGgB,GAAGG,GAAGp8I,EAAEu7I,GAAGlb,EAAEkb,IAAI,IAAIR,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGA,GAAGC,GAAG,KAAK,EAAEA,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAG71J,EAAE2Z,EAAEy7I,GAAG1tK,GAAGitK,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGD,GAAGl8B,EAAEk8B,GAAG70J,EAAEs1J,GAAG,IAAIT,GAAGC,IAAIU,GAAGM,GAAGjB,GAAG1vI,EAAE0vI,IAAI,GAAGO,GAAGI,GAAGlb,EAAE8a,IAAI,KAAK,EAAEN,GAAGzvK,EAAEuvK,GAAG,EAAEE,GAAGD,KAAK,EAAEW,KAAK,EAAEV,GAAG,EAAE,EAAEA,GAAGF,IAAIY,GAAGM,GAAG3rF,EAAEp3E,EAAE88D,EAAEC,IAAI+kG,GAAG,EAAEA,GAAGxvK,EAAEyvK,GAAG,EAAED,GAAGD,KAAK,EAAEY,KAAK,EAAEX,GAAG,EAAE,EAAEA,GAAGW,GAAGh/B,EAAEA,GAAGs+B,GAAGgB,GAAGM,GAAGC,GAAG7/B,EAAE5kE,EAAE4kE,GAAG,KAAKo+B,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAED,GAAGp+B,IAAI,EAAEs+B,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGC,GAAGiB,GAAGvuK,EAAEooE,EAAEtC,EAAEuC,GAAGglG,GAAGvvK,EAAEuvK,GAAG,EAAEzB,GAAG38B,EAAEq+B,GAAGr+B,EAAE,EAAEA,EAAEA,IAAI,EAAEq+B,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGA,GAAGkB,GAAGrmG,EAAEjnD,EAAE6tE,EAAE4jE,GAAG6a,GAAGzvK,EAAEwvK,IAAIS,GAAGQ,GAAG/zB,EAAEryE,EAAEz0C,EAAElyB,IAAI6rK,GAAG,EAAEA,GAAGvvK,EAAEyvK,GAAG,EAAEF,GAAGC,KAAK,EAAES,KAAK,EAAEV,GAAG,EAAE,EAAEA,GAAGU,GAAGQ,GAAGvoG,EAAEjiE,EAAE2pK,GAAG/oG,GAAG4oG,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAID,GAAGS,GAAGT,GAAG,KAAK,EAAES,KAAK,EAAER,GAAG,EAAE,EAAEA,GAAGF,IAAIU,GAAGQ,GAAGI,GAAGzuK,EAAE8yJ,EAAEvqI,IAAI6kJ,GAAG,EAAEA,GAAGxvK,EAAEyvK,GAAG,EAAED,GAAGD,KAAK,EAAEU,KAAK,EAAET,GAAG,EAAE,EAAEA,GAAGC,IAAIQ,GAAGQ,GAAG71J,EAAE2Z,EAAEq8I,GAAGp8I,IAAI+6I,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAED,GAAGE,KAAK,EAAEQ,KAAK,EAAEV,GAAG,EAAE,EAAEA,GAAGG,GAAGD,GAAGryK,EAAEoyK,GAAG70J,EAAEq1J,GAAG,IAAIP,GAAGgB,GAAGjB,GAAGra,EAAEqa,IAAI,GAAG9oB,EAAE/xH,GAAG46I,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGE,GAAGD,GAAG,KAAK,EAAEA,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAG3rF,EAAEp3E,EAAE4lI,EAAExzG,GAAGyvI,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGS,GAAGS,GAAGjmG,EAAEC,EAAEu7E,EAAE+O,GAAG0a,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAID,GAAGQ,GAAGR,GAAG,KAAK,EAAEQ,KAAK,EAAEP,GAAG,EAAE,EAAEA,GAAGF,IAAIS,GAAGS,GAAGM,GAAGC,GAAGhpG,EAAEuC,IAAIilG,GAAG,EAAEA,GAAGxvK,EAAEyvK,GAAG,EAAED,GAAGD,KAAK,EAAES,KAAK,EAAER,GAAG,EAAE,EAAEA,GAAGC,IAAIO,GAAGS,GAAGvuK,EAAEooE,EAAEpqE,EAAEwqE,IAAI6kG,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAED,GAAGE,KAAK,EAAEO,KAAK,EAAET,GAAG,EAAE,EAAEA,GAAGS,GAAGP,GAAGN,GAAGI,GAAGU,GAAGT,GAAGC,GAAG,SAAS,EAAEL,GAAGG,GAAGC,KAAK,EAAE,SAASD,GAAG,EAAE,EAAEA,GAAGE,GAAG3B,GAAGA,IAAI,SAASyB,KAAK,EAAEC,KAAK,GAAGD,IAAIA,IAAI,IAAIp+B,EAAE,EAAEo+B,IAAIE,GAAGA,GAAG3B,GAAG,KAAK,EAAEA,KAAK,EAAEyB,GAAG,EAAE,EAAEA,GAAGF,GAAGl+B,GAAG28B,GAAG2B,IAAI,SAAS,EAAEF,GAAG5iK,GAAG6iK,IAAIC,GAAGt+B,IAAI,EAAE,SAASo+B,GAAG,EAAE,EAAEA,KAAK,IAAI,EAAEA,IAAIp+B,GAAGs+B,IAAI,SAASA,KAAK,EAAEt+B,IAAI,IAAI2+B,GAAG,KAAK,EAAEL,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAG4B,GAAGhgC,GAAGxkI,EAAEwkI,GAAG,SAAS,EAAEA,EAAEo+B,GAAGp+B,IAAI,EAAE,SAASo+B,GAAG,EAAE,EAAEA,GAAGA,IAAI,SAAS4B,GAAGv6K,EAAEi5K,GAAG,IAAI,GAAGljK,EAAE4iK,GAAGO,GAAGD,GAAGljK,EAAE8jK,GAAGrmG,EAAEjnD,EAAE+xI,EAAEvqI,GAAG4kJ,GAAGvvK,EAAEwvK,GAAGiB,GAAG/zB,EAAEryE,EAAEnC,EAAEjiE,GAAGwpK,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAI9iK,EAAE6iK,GAAG7iK,EAAE,KAAK,EAAE6iK,KAAK,EAAEC,GAAG,EAAE,EAAEA,GAAGD,GAAGiB,GAAG71J,EAAE2Z,EAAEq7I,GAAG/oG,GAAG0oG,GAAGvvK,EAAEyvK,GAAG,EAAEF,IAAI5iK,EAAE6iK,GAAG7iK,EAAE,KAAK,EAAE6iK,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGE,GAAG9iK,EAAEkjK,GAAGljK,EAAEgO,EAAEk2J,GAAG,IAAIrB,GAAGiB,GAAG9jK,EAAEkkK,GAAGlkK,GAAG,GAAG+5I,EAAE/xH,GAAG46I,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAI5iK,EAAE8iK,GAAGD,GAAG,KAAK,EAAEA,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGC,GAAG7iK,EAAEuiK,GAAGviK,EAAEgO,EAAEi2J,GAAG,IAAIjkK,EAAE6iK,IAAIC,GAAGgB,GAAG3rF,EAAEp3E,EAAEf,EAAEyoJ,EAAEzoJ,GAAG,KAAK,EAAE6iK,GAAGxvK,EAAEuvK,GAAG,EAAEC,GAAG7iK,IAAI,EAAE8iK,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGC,GAAGgB,GAAGzqB,EAAE+O,EAAE33J,EAAE+3J,GAAGoa,GAAGvvK,EAAEwvK,GAAG,EAAED,IAAI5iK,EAAE8iK,GAAG9iK,EAAE,KAAK,EAAE8iK,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGC,GAAGiB,GAAGzoG,EAAEuC,EAAE+oE,EAAExzG,GAAG2vI,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAI9iK,EAAE6iK,GAAG7iK,EAAE,KAAK,EAAE6iK,KAAK,EAAEC,GAAG,EAAE,EAAEA,GAAGD,GAAGiB,GAAGjmG,EAAEC,EAAEvqE,EAAEwqE,GAAG6kG,GAAGvvK,EAAEyvK,GAAG,EAAEF,IAAI5iK,EAAE6iK,GAAG7iK,EAAE,KAAK,EAAE6iK,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGC,GAAGiB,GAAGM,GAAGC,GAAGp7I,EAAElyB,GAAG6rK,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAI5iK,EAAE6iK,GAAG7iK,EAAE,KAAK,EAAE6iK,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAGvuK,EAAEooE,EAAE0mB,EAAE4jE,GAAG4a,GAAGxvK,EAAEuvK,GAAG,EAAEG,GAAG/iK,EAAE8iK,GAAG9iK,EAAE,EAAEA,EAAEA,IAAI,EAAE8iK,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGD,GAAGkB,GAAG71J,EAAE2Z,EAAE61C,EAAEjnD,GAAGssJ,GAAGzvK,EAAEwvK,IAAIoB,GAAGH,GAAG/zB,EAAEryE,EAAE6lG,GAAGrb,IAAI0a,GAAG,EAAEA,GAAGvvK,EAAEyvK,GAAG,EAAEF,GAAGC,KAAK,EAAEoB,KAAK,EAAErB,GAAG,EAAE,EAAEA,GAAGE,GAAGD,GAAGoB,GAAGpB,GAAG70J,EAAEi1J,GAAG,IAAIJ,GAAGC,IAAIG,GAAGa,GAAGjB,GAAGyB,GAAGzB,IAAI,GAAGO,GAAG9a,IAAI,EAAEwa,GAAGzvK,EAAEuvK,GAAG,EAAEE,GAAGD,KAAK,EAAEI,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGG,GAAGa,GAAG3rF,EAAEp3E,EAAEmiK,GAAGgB,IAAItB,GAAGvvK,EAAEyvK,GAAG,EAAEF,IAAIC,GAAGI,GAAGJ,GAAG,KAAK,EAAEI,KAAK,EAAEL,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAGvB,GAAG9Z,EAAE+a,GAAG5jG,GAAGgjG,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,IAAIG,GAAGa,GAAGzoG,EAAEuC,EAAEntE,EAAE+3J,IAAIqa,GAAG,EAAEA,GAAGxvK,EAAEuvK,GAAG,EAAEC,GAAGC,KAAK,EAAEG,KAAK,EAAEJ,GAAG,EAAE,EAAEA,GAAGI,GAAGa,GAAGn9B,EAAExzG,EAAE6vI,GAAGnxB,GAAG+wB,GAAGvvK,EAAEwvK,GAAG,EAAED,IAAIE,GAAGG,GAAGH,GAAG,KAAK,EAAEG,KAAK,EAAEL,GAAG,EAAE,EAAEA,GAAGC,IAAII,GAAGa,GAAG76I,EAAElyB,EAAE8mE,EAAEC,IAAIglG,GAAG,EAAEA,GAAGzvK,EAAEuvK,GAAG,EAAEE,GAAGD,KAAK,EAAEI,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGG,GAAGa,GAAGM,GAAGC,GAAGX,GAAG9hF,GAAGghF,GAAGvvK,EAAEyvK,GAAG,EAAEF,IAAIC,GAAGI,GAAGJ,GAAG,KAAK,EAAEI,KAAK,EAAEL,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAGvuK,EAAEooE,EAAEpC,EAAEjiE,GAAGspK,GAAGvvK,EAAEuvK,GAAG,EAAE5B,GAAG6B,GAAGC,GAAGD,GAAG,EAAEI,GAAGJ,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGA,GAAGkB,GAAGlB,GAAG50J,EAAEyvD,EAAE,IAAImlG,IAAI,GAAG7oB,EAAE/xH,GAAG66I,GAAGxvK,EAAEyvK,GAAGgB,GAAG/zB,EAAEryE,EAAEzvD,EAAE2Z,GAAGi7I,GAAGxvK,EAAEwvK,GAAG,EAAEA,IAAID,GAAGE,GAAGF,GAAG,KAAK,EAAEE,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGC,IAAIyB,GAAGT,GAAG3rF,EAAEp3E,EAAEkjK,GAAGK,KAAK1B,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAEA,IAAIK,GAAGY,GAAGZ,GAAGgB,GAAG7qB,EAAE+O,IAAI0a,GAAG,EAAEA,GAAGzvK,GAAGyvK,KAAK,EAAEyB,KAAK,EAAE3B,GAAG,EAAE,EAAEA,IAAI,EAAEE,GAAGD,KAAK,EAAEK,KAAK,EAAEJ,GAAG,EAAE,EAAEA,GAAGI,GAAGY,GAAGzoG,EAAEuC,EAAE2kG,GAAG9Z,GAAGma,GAAGvvK,EAAEyvK,GAAG,EAAEF,IAAIC,GAAGK,GAAGL,GAAG,KAAK,EAAEK,KAAK,EAAEN,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAGvwK,EAAEwqE,EAAEttE,EAAE+3J,GAAGoa,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,IAAII,GAAGY,GAAG76I,EAAElyB,EAAE4vI,EAAExzG,IAAI0vI,GAAG,EAAEA,GAAGxvK,EAAEuvK,GAAG,EAAEC,GAAGC,KAAK,EAAEI,KAAK,EAAEL,GAAG,EAAE,EAAEA,GAAGK,GAAGY,GAAGjmG,EAAEC,EAAEumB,EAAE4jE,GAAG2a,GAAGvvK,EAAEwvK,GAAG,EAAED,IAAIE,GAAGI,GAAGJ,GAAG,KAAK,EAAEI,KAAK,EAAEN,GAAG,EAAE,EAAEA,GAAGC,IAAIK,GAAGY,GAAGM,GAAGC,GAAG9oG,EAAEjiE,IAAIwpK,GAAG,EAAEA,GAAGzvK,EAAEuvK,GAAG,EAAEE,GAAGD,KAAK,EAAEK,KAAK,EAAEJ,GAAG,EAAE,EAAEA,GAAGI,GAAGY,GAAGvuK,EAAEooE,EAAE4qF,EAAEvqI,GAAG4kJ,GAAGvvK,EAAEyvK,GAAG,EAAEF,IAAIC,GAAGK,GAAGL,GAAG,KAAK,EAAEK,KAAK,EAAEN,GAAG,EAAE,EAAEA,GAAGM,GAAGL,GAAG0B,GAAG3B,GAAGsB,GAAGrB,GAAGA,GAAG,SAAS,EAAEoB,GAAGrB,GAAGC,KAAK,EAAE,SAASD,GAAG,EAAE,EAAEA,GAAG0B,IAAI,SAAS1B,KAAK,EAAEC,KAAK,GAAGA,IAAIC,GAAGF,IAAI,IAAIK,GAAG,EAAEA,GAAGL,GAAG0B,GAAGtD,GAAG,EAAE8B,GAAGC,GAAGH,GAAGA,KAAK,EAAE0B,KAAK,EAAEzB,GAAG,EAAE,EAAEA,GAAGF,GAAGE,GAAGI,GAAG,SAAS,EAAEF,IAAI,UAAUH,GAAGC,KAAK,EAAE,SAASD,GAAG,EAAE,EAAEA,MAAM,EAAEC,KAAK,GAAGD,IAAIA,IAAI,IAAI5iK,EAAE,EAAE4iK,IAAIC,GAAGC,GAAGC,GAAG,KAAK,EAAEA,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAG0B,GAAGtkK,EAAE6iK,GAAG,SAAS,EAAE7iK,EAAE4iK,GAAG5iK,IAAI,EAAE,SAAS4iK,GAAG,EAAE,EAAEA,GAAGA,IAAI,SAAS0B,GAAGr6K,EAAEk5K,GAAG,GAAG,GAAGN,GAAGD,GAAGG,GAAGI,GAAGP,GAAGkB,GAAGzoG,EAAEuC,EAAEH,EAAEjnD,GAAGssJ,GAAGzvK,EAAEwvK,IAAIM,GAAGW,GAAG/zB,EAAEryE,EAAE8lG,GAAG5jG,IAAIgjG,GAAG,EAAEA,GAAGvvK,EAAEyvK,GAAG,EAAEF,GAAGC,KAAK,EAAEM,KAAK,EAAEP,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAG3b,EAAEjuF,EAAE8oG,GAAGnxB,GAAG+wB,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAG76I,EAAElyB,EAAEoiJ,EAAE1jJ,GAAGmtK,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGO,GAAGW,GAAGzb,EAAExgI,EAAE67I,GAAG9hF,GAAGkhF,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAID,GAAGM,GAAGN,GAAG,KAAK,EAAEM,KAAK,EAAEL,GAAG,EAAE,EAAEA,GAAGF,IAAIO,GAAGW,GAAGvoG,EAAEjiE,EAAEkiE,EAAE7lE,IAAIktK,GAAG,EAAEA,GAAGxvK,EAAEyvK,GAAG,EAAED,GAAGD,KAAK,EAAEO,KAAK,EAAEN,GAAG,EAAE,EAAEA,GAAGC,IAAIK,GAAGW,GAAGP,GAAGrb,EAAEQ,EAAEnK,IAAIqkB,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAED,GAAGE,KAAK,EAAEK,KAAK,EAAEP,GAAG,EAAE,EAAEA,GAAGC,GAAGC,GAAGA,GAAGgB,GAAG71J,EAAE2Z,EAAEu7I,GAAGgB,GAAGnD,GAAGmC,IAAI,IAAIP,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGA,GAAGC,GAAG,KAAK,EAAEA,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAGM,GAAGC,GAAGjB,GAAG9a,GAAGsa,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGuB,GAAGL,GAAGvuK,EAAEooE,EAAEwa,EAAEp3E,GAAG+hK,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAID,GAAGsB,GAAGtB,GAAG,KAAK,EAAEsB,KAAK,EAAErB,GAAG,EAAE,EAAEA,GAAGF,GAAGp+B,GAAG,GAAGA,GAAG2/B,IAAI,SAAS3/B,IAAI,EAAEggC,KAAK,IAAI3B,GAAG,EAAEA,GAAGD,GAAGE,GAAG,EAAEF,GAAGC,GAAGr+B,IAAI,EAAE2/B,KAAK,EAAEtB,GAAG,EAAE,EAAEA,GAAG2B,GAAGhgC,GAAGs+B,GAAGt+B,GAAG,SAAS,EAAEA,EAAEo+B,GAAGp+B,IAAI,EAAE,SAASo+B,GAAG,EAAE,EAAEA,GAAGA,IAAI,SAAS4B,GAAGv6K,EAAE84K,GAAG,IAAI,GAAGD,GAAGF,GAAGuB,GAAGpB,GAAGH,GAAGkB,GAAGvoG,EAAEjiE,EAAEmkE,EAAEjnD,GAAGqsJ,GAAGxvK,EAAE0vK,GAAGe,GAAG/zB,EAAEryE,EAAEgmG,GAAG9hF,GAAGkhF,GAAGzvK,EAAEwvK,GAAG,EAAEC,IAAIF,GAAGG,GAAGH,GAAG,KAAK,EAAEG,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGC,GAAGe,GAAG3b,EAAEjuF,EAAEqpG,GAAGrb,GAAG2a,GAAGxvK,EAAEyvK,GAAG,EAAED,IAAID,GAAGG,GAAGH,GAAG,KAAK,EAAEG,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGC,IAAIC,GAAGe,GAAG71J,EAAE2Z,EAAEuxH,EAAE1jJ,IAAImtK,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAED,GAAGE,KAAK,EAAEC,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGC,GAAGC,GAAGA,GAAGgB,GAAGvB,GAAG9Z,EAAE2a,GAAG9a,GAAGsa,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGA,GAAGC,GAAG,KAAK,EAAEA,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAG3rF,EAAEp3E,EAAEtQ,EAAE+3J,GAAGoa,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGG,GAAGe,GAAGn9B,EAAExzG,EAAEqwI,GAAG5jG,GAAGkjG,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAID,GAAGE,GAAGF,GAAG,KAAK,EAAEE,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGF,IAAIG,GAAGe,GAAGzoG,EAAEuC,EAAEC,EAAEC,IAAI+kG,GAAG,EAAEA,GAAGxvK,EAAEyvK,GAAG,EAAED,GAAGD,KAAK,EAAEG,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGC,IAAIC,GAAGe,GAAGM,GAAGC,GAAGrB,GAAGnxB,IAAI+wB,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAED,GAAGE,KAAK,EAAEC,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGC,GAAGC,GAAGA,GAAGgB,GAAGvuK,EAAEooE,EAAE10C,EAAElyB,GAAG6rK,GAAGvvK,EAAEuvK,GAAG,EAAEG,GAAGF,GAAGA,GAAGC,GAAG,EAAEF,IAAIA,GAAGC,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,KAAKC,GAAG7iK,GAAG,IAAI,EAAE4iK,IAAI5iK,EAAE+iK,IAAID,IAAI,SAAS9iK,IAAI,EAAEskK,KAAK,IAAI,KAAK,EAAExB,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGwB,GAAGpkK,GAAG6iK,GAAG7iK,GAAG,SAAS,EAAEA,EAAE8iK,GAAG9iK,IAAI,EAAE,SAAS4iK,GAAG,EAAE,EAAEA,GAAGA,IAAI,SAASwB,GAAGn6K,EAAEk6K,GAAG,IAAI,GAAGtB,GAAGD,GAAGA,GAAGkB,GAAGrmG,EAAEjnD,EAAE6iI,EAAE+O,GAAG0a,GAAGzvK,EAAEwvK,IAAIE,GAAGe,GAAG/zB,EAAEryE,EAAEya,EAAEp3E,IAAI6hK,GAAG,EAAEA,GAAGvvK,EAAEyvK,GAAG,EAAEF,GAAGC,KAAK,EAAEE,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAGzoG,EAAEuC,EAAEuqF,EAAEjuF,GAAG0oG,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGG,GAAGe,GAAG3qB,EAAE1jJ,EAAElC,EAAEwqE,GAAG+kG,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAID,GAAGE,GAAGF,GAAG,KAAK,EAAEE,KAAK,EAAED,GAAG,EAAE,EAAEA,GAAGF,IAAIG,GAAGe,GAAG76I,EAAElyB,EAAEsxJ,EAAExgI,IAAIg7I,GAAG,EAAEA,GAAGxvK,EAAEyvK,GAAG,EAAED,GAAGD,KAAK,EAAEG,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGC,IAAIC,GAAGe,GAAGz/E,EAAE4jE,EAAEzsF,EAAE7lE,IAAIitK,GAAG,EAAEA,GAAGvvK,EAAEwvK,GAAG,EAAED,GAAGE,KAAK,EAAEC,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGC,GAAGC,GAAGA,GAAGgB,GAAGvoG,EAAEjiE,EAAEovJ,EAAEnK,GAAGqkB,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGA,GAAGC,GAAG,KAAK,EAAEA,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAGX,GAAGnC,GAAGzY,EAAEvqI,GAAG4kJ,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGa,GAAGK,GAAG71J,EAAE2Z,EAAEm7I,GAAGU,GAAGY,GAAGtB,IAAI,IAAID,GAAGzvK,EAAEuvK,GAAG,EAAEE,IAAID,GAAGY,GAAGZ,GAAG,KAAK,EAAEY,KAAK,EAAEX,GAAG,EAAE,EAAEA,GAAGF,IAAIa,GAAGK,GAAGvuK,EAAEooE,EAAEo8E,EAAE/xH,IAAI66I,GAAG,EAAEA,GAAGxvK,EAAEyvK,GAAG,EAAED,GAAGD,KAAK,EAAEa,KAAK,EAAEZ,GAAG,EAAE,EAAEA,GAAGY,GAAGb,GAAGA,IAAIA,GAAGp+B,GAAG,IAAIq+B,GAAG,EAAED,IAAIp+B,EAAEi/B,IAAIX,IAAI,SAASt+B,IAAI,EAAEggC,KAAK,IAAI,KAAK,EAAE1B,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGa,GAAGj/B,GAAGq+B,GAAGr+B,GAAG,SAAS,EAAEA,EAAEo+B,GAAGp+B,IAAI,EAAE,SAASo+B,GAAG,EAAE,EAAEA,GAAGA,IAAI,SAASa,GAAGx5K,EAAEk6K,GAAG,IAAI,GAAGtB,GAAGD,GAAGE,GAAGD,GAAGQ,IAAIT,IAAI,SAASU,IAAI,EAAEV,IAAIA,GAAGJ,KAAKI,KAAK,EAAES,KAAK,GAAGZ,GAAG,GAAG,IAAII,GAAG7iK,GAAG,IAAI,EAAE4iK,IAAI5iK,EAAE8iK,IAAIO,IAAI,SAASrjK,IAAI,EAAEokK,KAAK,IAAI,KAAK,EAAEf,KAAK,EAAET,GAAG,EAAE,EAAEA,IAAIC,GAAG7iK,EAAE,SAAS,KAAK,EAAE,WAAW4iK,GAAGA,GAAG,EAAE,GAAGA,IAAIzB,KAAK,SAASuB,IAAI,KAAK,SAASE,KAAK,EAAEC,KAAK,IAAI,EAAE54K,EAAEuzE,EAAE,IAAI,GAAGolG,GAAGA,IAAI,SAASC,GAAG54K,EAAEuzE,EAAE,IAAI,GAAGx9D,EAAE4iK,GAAGA,GAAGkB,GAAG3rF,EAAEp3E,EAAE08D,EAAEjnD,GAAGssJ,GAAGzvK,EAAEwvK,IAAIO,GAAGU,GAAG/zB,EAAEryE,EAAE0lG,GAAG9a,IAAIsa,GAAG,EAAEA,GAAGvvK,EAAEyvK,GAAG,EAAEF,GAAGC,KAAK,EAAEO,KAAK,EAAER,GAAG,EAAE,EAAEA,GAAGE,IAAIM,GAAGU,GAAG3b,EAAEjuF,EAAEspG,GAAG5jG,IAAIijG,GAAG,EAAEA,GAAGxvK,EAAEuvK,GAAG,EAAEC,GAAGC,KAAK,EAAEM,KAAK,EAAEP,GAAG,EAAE,EAAEA,GAAGD,IAAIQ,GAAGU,GAAGzoG,EAAEuC,EAAEu7E,EAAE1jJ,IAAIqtK,GAAG,EAAEA,GAAGzvK,EAAEwvK,GAAG,EAAEA,IAAIG,GAAGc,GAAGzb,EAAExgI,EAAEm7I,GAAGnxB,IAAI+wB,GAAG,EAAEA,GAAGvvK,GAAGuvK,KAAK,EAAEQ,KAAK,EAAEN,GAAG,EAAE,EAAEA,IAAI,EAAEF,GAAGC,KAAK,EAAEG,KAAK,EAAEJ,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAG76I,EAAElyB,EAAEykE,EAAE7lE,GAAGitK,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,GAAGgB,GAAGJ,GAAG9hF,EAAE8mE,EAAEnK,GAAGqkB,GAAGvvK,EAAEuvK,GAAG,EAAEA,IAAIC,GAAGC,GAAGD,GAAG,KAAK,EAAEC,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGE,IAAIE,GAAGc,GAAGvoG,EAAEjiE,EAAE6pK,GAAGnC,KAAK6B,GAAG,EAAEA,GAAGxvK,EAAEuvK,GAAG,EAAEC,GAAGC,KAAK,EAAEE,KAAK,EAAEH,GAAG,EAAE,EAAEA,GAAGD,IAAII,GAAGc,GAAGf,GAAGsB,GAAGd,GAAGrb,IAAI4a,GAAG,EAAEA,GAAGzvK,EAAEwvK,GAAG,EAAEC,GAAGF,KAAK,EAAEI,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGD,IAAIG,GAAGc,GAAG71J,EAAE2Z,EAAE06I,GAAGA,IAAI,KAAKM,GAAG,EAAEA,GAAGvvK,EAAEyvK,GAAG,EAAE9iK,EAAE6iK,GAAGD,IAAIA,GAAGC,KAAK,EAAEG,KAAK,EAAEJ,GAAG,EAAE,EAAEA,KAAKC,GAAGr+B,GAAG,IAAI,EAAEo+B,IAAIp+B,EAAExkI,GAAG8iK,IAAI,SAASt+B,IAAI,EAAEi/B,KAAK,IAAI,KAAK,EAAEX,KAAK,EAAEF,GAAG,EAAE,EAAEA,GAAGA,IAAIp+B,GAAGxkI,EAAEwkI,GAAG,SAAS,KAAK,EAAE,SAASo+B,GAAG,EAAE,EAAEA,GAAGp+B,GAAG,UAAUq+B,GAAGr+B,GAAGv6I,EAAEuzE,EAAE,IAAI,GAAGx9D,EAAEwkI,EAAEs+B,GAAGG,KAAK,SAASN,IAAI,EAAEK,GAAGE,IAAI1+B,GAAG,SAAS0/B,IAAI,EAAER,GAAGa,KAAK//B,IAAI,EAAE0+B,KAAK,GAAGe,GAAG,GAAG,EAAErB,GAAGkB,IAAI,UAAUt/B,EAAEo+B,MAAM,EAAEC,KAAK,GAAGD,KAAK,GAAG,GAAG,GAAGC,GAAGxvK,EAAEqwK,GAAG,EAAEd,GAAGC,IAAIr+B,EAAEo+B,GAAGI,GAAG,KAAK,EAAEJ,KAAK,EAAEC,GAAG,EAAE,EAAEA,GAAG7iK,IAAI,UAAU4iK,IAAI5iK,EAAEwkI,EAAE,SAAS,KAAK,EAAE,SAASo+B,GAAG,EAAE,EAAEA,MAAM,GAAGC,GAAG7iK,KAAK,IAAI8iK,GAAG,EAAE74K,EAAEuzE,EAAE,GAAG,GAAGx9D,EAAEA,EAAEw9D,EAAEA,GAAG,SAASqlG,GAAG54K,EAAE+V,GAAG,GAAGwkI,EAAEhnE,EAAE,SAASO,EAAEP,EAAEgnE,GAAG,IAAIxkI,EAAEy9D,EAAEsyE,EAAEryE,EAAEE,EAAE7mE,EAAEuC,EAAEsuB,EAAE7mB,EAAEyV,EAAE6kD,EAAEpyC,EAAEsyC,EAAEttD,EAAEkqE,EAAE5iF,EAAEooE,EAAEzD,EAAEzkE,EAAEooE,EAAEC,EAAEj2C,EAAEsL,EAAE4qC,EAAEkqF,EAAEtyJ,EAAEqoB,EAAEgK,EAAEogI,EAAEvW,EAAEjwD,EAAEsmE,EAAEvhB,EAAE2hB,EAAE1oF,EAAE4oF,EAAEj1J,EAAE40J,EAAE,EAAEhP,EAAE,EAAE90D,EAAE,EAAEkkE,EAAE,EAAEhK,EAAE,EAAExE,EAAE,EAAEV,EAAE,EAAE5oJ,EAAE,EAAEg4J,EAAE,EAAEJ,EAAE,EAAE7sF,EAAE,EAAEktF,EAAE,EAAE4Z,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE3oB,EAAEv8E,EAAEhnD,EAAE2iI,GAAGgP,EAAEl+J,EAAEu6I,EAAE,IAAI,KAAK,EAAE/zI,EAAE03J,EAAEA,EAAE2b,GAAG3qB,EAAEv7E,EAAEu7E,GAAG,GAAGgP,EAAEpqF,EAAEoqF,GAAG,IAAII,EAAEl1J,EAAE8lJ,EAAEgP,EAAEnoJ,EAAEmoJ,EAAEl+J,EAAEu6I,EAAE,IAAI,GAAGztI,EAAEoxJ,GAAG,GAAGxqF,EAAEwqF,GAAGE,EAAEp+J,EAAEu6I,EAAE,GAAG,KAAK,EAAE+Z,EAAEulB,GAAG9jK,EAAEjJ,EAAEoxJ,EAAE5sF,EAAE4sF,GAAG,IAAIA,EAAE90J,EAAEk1J,EAAE,EAAEJ,GAAGhP,EAAEA,EAAEoF,EAAE,KAAK,EAAEA,IAAI,EAAE4J,EAAE,EAAE,EAAEA,EAAEI,EAAEpP,EAAElrI,EAAEkrI,GAAGoF,EAAEt0J,EAAEu6I,EAAE,IAAI,KAAK,EAAErsD,EAAEghE,GAAG,GAAG7/I,EAAE6/I,GAAG39E,EAAEvxE,EAAEu6I,EAAE,GAAG,KAAK,EAAEngD,EAAEy/E,GAAG71J,EAAEkqE,EAAEghE,EAAE17E,EAAE07E,GAAG,IAAIA,EAAE9lJ,EAAE80J,EAAE,EAAEhP,GAAGoP,EAAEA,EAAElkE,EAAE,KAAK,EAAEA,IAAI,EAAE80D,EAAE,EAAE,EAAEA,EAAEt7E,EAAEsqF,EAAE9O,EAAEpvJ,EAAEu6I,EAAE,IAAI,GAAGnpE,EAAE8sF,GAAG,GAAGvgI,EAAEugI,GAAGsa,GAAGx4K,EAAEu6I,GAAG,KAAK,EAAEngD,EAAEy/E,GAAGzqB,EAAEh+E,EAAE8sF,EAAEpY,EAAEoY,GAAG,IAAIA,EAAE90J,EAAE8lJ,EAAE,EAAEgP,GAAGI,EAAElkE,EAAEkkE,EAAE,KAAK,EAAElkE,IAAI,EAAE8jE,EAAE,EAAE,EAAEA,EAAEM,EAAEF,EAAEpP,EAAElvJ,EAAEu6I,EAAE,IAAI,GAAGjvI,EAAEgzJ,EAAEv6I,EAAEmrI,EAAE,IAAI8O,EAAE9O,EAAEoP,EAAEub,GAAGvb,EAAEt/H,EAAEs/H,GAAG,GAAGpP,EAAEr7E,EAAEq7E,GAAG,IAAIgP,EAAE90J,EAAE80J,EAAE,EAAEA,GAAGhP,EAAEsP,EAAEF,EAAE,KAAK,EAAEA,IAAI,EAAEJ,EAAE,EAAE,EAAEA,EAAEM,EAAEtP,EAAEmpB,GAAGr4K,EAAEu6I,EAAE,IAAI,GAAGzjI,EAAEo4I,EAAEnrI,EAAEs0J,GAAG,IAAI5kG,EAAEy7E,GAAG,GAAGtH,EAAErN,GAAG+jB,EAAEt+J,EAAEu6I,EAAE,IAAI,KAAK,EAAEngD,EAAEy/E,GAAG3qB,EAAEz7E,EAAE8mE,EAAE7uI,EAAE6uI,GAAG,IAAIA,EAAEnxI,EAAE80J,EAAE,EAAEoa,GAAGppB,EAAEsP,EAAEpkE,EAAE,EAAEqkE,EAAEvP,IAAI,EAAE90D,IAAI,EAAEmgD,EAAE,EAAE,EAAEA,EAAEA,EAAEs/B,GAAGxqK,EAAEmkE,EAAEz9D,EAAEjJ,GAAGoxJ,EAAE90J,EAAE8lJ,EAAE2qB,GAAGnmG,EAAEpC,EAAE9qE,EAAEstE,GAAGoqF,EAAE90J,EAAE80J,EAAE,EAAEA,GAAG3jB,EAAE2U,EAAE3U,EAAE,KAAK,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAEvmE,EAAE28D,EAAEl6D,EAAEy/E,GAAGvlB,EAAE12H,EAAE02H,GAAG,GAAG32H,EAAEmoH,GAAGoJ,EAAE9lJ,EAAE80J,EAAE,EAAEhP,GAAG3U,EAAEngD,EAAEmgD,EAAE,KAAK,EAAEngD,IAAI,EAAE80D,EAAE,EAAE,EAAEA,EAAE90D,EAAEy/E,GAAGvuK,EAAE0zB,EAAE4oH,EAAEl8I,GAAGwyJ,EAAE90J,EAAE8lJ,EAAE,EAAEgP,GAAG3jB,EAAEngD,EAAEmgD,EAAE,KAAK,EAAEngD,IAAI,EAAE8jE,EAAE,EAAE,EAAEA,EAAEhP,EAAE2qB,GAAG/iK,EAAE28D,EAAE27E,EAAEh+E,GAAG8sF,EAAE90J,EAAE80J,EAAE,EAAEM,EAAEjkB,EAAE2U,EAAE3U,EAAE,EAAEk+B,GAAGl+B,IAAI,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAE3jB,EAAEs/B,GAAGxqK,EAAEmkE,EAAEjnD,EAAEonD,GAAGu7E,EAAE9lJ,EAAE80J,GAAGE,EAAEyb,GAAGz/E,EAAEgkE,EAAEnuF,EAAEmqB,GAAG,GAAGA,EAAEnqB,IAAIsqE,EAAE,EAAEA,EAAEnxI,EAAE8lJ,EAAE,EAAE3U,EAAE2jB,IAAI,EAAEE,IAAI,EAAE7jB,EAAE,EAAE,EAAEA,EAAE2U,GAAGkP,EAAEyb,GAAGl8I,EAAEmoH,EAAE/vI,EAAEjJ,IAAIoxJ,EAAE,EAAEA,EAAE90J,EAAEmxI,EAAE,EAAE2jB,EAAEhP,IAAI,EAAEkP,IAAI,EAAEF,EAAE,EAAE,EAAEA,EAAEh1H,EAAEqxG,EAAEx2H,EAAEu6I,EAAE,IAAIF,EAAEE,EAAE/jB,GAAG+jB,EAAEub,GAAGt/B,EAAE/uI,EAAE+uI,GAAG,GAAG+jB,EAAEvqI,EAAEuqI,GAAG,KAAKpP,EAAE,EAAEA,EAAE9lJ,EAAE80J,EAAE,EAAEhP,EAAE3U,IAAI,EAAE+jB,IAAI,EAAEpP,EAAE,EAAE,EAAEA,EAAE3U,GAAG2jB,EAAE3jB,IAAI+jB,EAAEub,GAAGvuK,EAAE0zB,EAAEu7G,EAAE6U,GAAG,EAAE7U,GAAG,KAAK,EAAE2jB,EAAE90J,EAAE8lJ,EAAE,EAAEgP,EAAE3jB,IAAI,EAAE+jB,IAAI,EAAEJ,EAAE,EAAE,EAAEA,EAAEhP,EAAE2qB,GAAG/iK,EAAE28D,EAAEzvD,EAAEkqE,GAAGgwE,EAAE90J,EAAE80J,EAAE,EAAEngI,EAAEw8G,EAAE2U,EAAE3U,EAAE,EAAE8jB,EAAEH,EAAE3jB,IAAI,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAE3jB,EAAE2jB,EAAED,EAAEC,EAAEngI,EAAE,SAAS,EAAE43C,EAAE4kE,EAAE2jB,IAAI,EAAE,SAAS3jB,EAAE,EAAE,EAAEA,EAAE2jB,GAAGA,EAAE3jB,GAAG,IAAIk+B,GAAG,EAAEA,GAAGl+B,GAAG2U,GAAG,SAAS3U,IAAI,EAAE0jB,IAAI,IAAIO,EAAE,EAAEtP,EAAE3U,IAAI,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAEK,EAAEhkB,EAAEA,EAAE,SAAS,EAAE2jB,GAAGA,GAAGhP,EAAE3U,IAAI,EAAE,SAAS2U,EAAE,EAAE,EAAEA,IAAI,IAAIuP,EAAE,EAAEP,GAAG3jB,GAAG2U,GAAG,SAASA,IAAI,EAAE3U,IAAI,IAAI+9B,GAAG,KAAK,EAAEppB,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAEhP,EAAE3U,EAAEA,EAAE2jB,EAAEM,EAAEN,EAAEhP,EAAE,SAAS,EAAEoP,EAAE/jB,EAAE2jB,IAAI,EAAE,SAAS3jB,EAAE,EAAE,EAAEA,EAAEA,GAAG,SAAS2jB,EAAEl+J,EAAE8vJ,EAAE,IAAI,GAAGZ,EAAE3U,EAAEA,EAAEs/B,GAAGl8I,EAAEmoH,EAAE1rD,EAAEnqB,GAAGiuF,EAAE90J,EAAEmoE,EAAEsoG,GAAGxqK,EAAEmkE,EAAEs8E,EAAEv+E,EAAEgnG,GAAGzoB,GAAG,IAAIZ,EAAE9lJ,EAAE80J,EAAE,EAAEhP,GAAG3U,EAAEhpE,EAAEgpE,EAAE,KAAK,EAAEhpE,IAAI,EAAE29E,EAAE,EAAE,EAAEA,EAAEgP,EAAE3jB,EAAEhpE,EAAEgpE,EAAEx2H,EAAEqrI,EAAE,IAAI7U,EAAE2jB,GAAG9O,EAAEyqB,GAAGt/B,EAAE+9B,GAAG/9B,GAAG,GAAG6U,EAAEh+E,IAAI,EAAE8sF,EAAE90J,EAAE8lJ,EAAE,EAAEgP,EAAE3jB,IAAI,EAAE6U,IAAI,EAAE8O,EAAE,EAAE,EAAEA,EAAEhP,GAAGE,EAAEyqB,GAAG71J,EAAEkqE,EAAEhlD,EAAE19B,IAAI+uI,EAAE,EAAEA,EAAEnxI,EAAE80J,EAAE,EAAE3jB,EAAE2U,IAAI,EAAEE,IAAI,EAAE7U,EAAE,EAAE,EAAEA,EAAEmC,EAAEwhB,EAAEnoJ,GAAG,EAAEq5I,EAAEyqB,GAAGvuK,EAAE0zB,EAAEk/H,EAAEC,EAAED,GAAG,IAAIA,EAAE90J,EAAEmxI,EAAE,EAAE2jB,GAAGhP,EAAEE,EAAEF,EAAE,KAAK,EAAEE,IAAI,EAAE8O,EAAE,EAAE,EAAEA,EAAE3jB,EAAE2U,EAAEA,EAAE2qB,GAAG/iK,EAAE28D,EAAElnD,EAAEonD,GAAGuqF,EAAE90J,EAAE80J,EAAE,EAAEO,EAAElkB,EAAEA,EAAE2U,EAAE,EAAEE,EAAE7U,IAAI,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAE3jB,EAAEs/B,GAAG71J,EAAEkqE,EAAE3c,EAAE+mG,IAAIpa,EAAE90J,EAAE0mJ,EAAE+pB,GAAGl8I,EAAEmoH,EAAEgK,EAAEyoB,IAAIrpB,EAAE9lJ,EAAE80J,EAAE,EAAEhP,GAAG3U,EAAEuV,EAAEvV,EAAE,KAAK,EAAEuV,IAAI,EAAEZ,EAAE,EAAE,EAAEA,EAAEY,EAAE+pB,GAAG9jK,EAAEjJ,EAAEo8B,EAAE19B,GAAG0yJ,EAAE90J,EAAE8lJ,EAAE,EAAEgP,GAAG3jB,EAAEuV,EAAEvV,EAAE,KAAK,EAAEuV,IAAI,EAAEoO,EAAE,EAAE,EAAEA,EAAEhP,GAAGY,EAAE+pB,GAAGvuK,EAAE0zB,EAAEzS,EAAEonD,IAAI4mE,EAAE,EAAEA,EAAEnxI,EAAE80J,EAAE,EAAE3jB,EAAE2U,IAAI,EAAEY,IAAI,EAAEvV,EAAE,EAAE,EAAEA,EAAEuV,EAAE+pB,GAAG/iK,EAAE28D,EAAE2mB,EAAEnqB,GAAGiuF,EAAE90J,EAAEmxI,EAAE,EAAEg+B,GAAGrpB,EAAEY,EAAEZ,EAAE,EAAEY,EAAEZ,IAAI,EAAEY,IAAI,EAAEoO,EAAE,EAAE,EAAEA,EAAE3jB,EAAEs/B,GAAGt/B,EAAEx2H,EAAEuwI,EAAE,IAAI/Z,GAAG,GAAG+Z,EAAE12H,GAAGsgI,EAAE90J,EAAEkrJ,EAAE/Z,EAAE2U,EAAE2qB,GAAGt/B,EAAEi+B,GAAGtpB,EAAE3U,GAAG,GAAGA,EAAE2U,GAAGgP,EAAE90J,EAAE80J,EAAE,EAAEA,GAAG3jB,EAAE+Z,EAAEpF,EAAE,KAAK,EAAEA,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAE5J,EAAEulB,GAAGtoG,EAAE+mG,GAAG57B,EAAEyhB,GAAGjP,EAAE9lJ,EAAE80J,EAAE,EAAEhP,GAAG3U,EAAE+Z,EAAE/Z,EAAE,KAAK,EAAE+Z,IAAI,EAAEpF,EAAE,EAAE,EAAEA,EAAEoF,EAAEulB,GAAGttJ,EAAEonD,EAAEzqC,EAAE19B,GAAG0yJ,EAAE90J,EAAE8lJ,EAAE,EAAEgP,GAAG3jB,EAAE+Z,EAAE/Z,EAAE,KAAK,EAAE+Z,IAAI,EAAE4J,EAAE,EAAE,EAAEA,EAAEhP,GAAGoF,EAAEulB,GAAGvuK,EAAE0zB,EAAE00C,EAAEpC,IAAIipE,EAAE,EAAEA,EAAEnxI,EAAE80J,EAAE,EAAE3jB,EAAE2U,IAAI,EAAEoF,IAAI,EAAE/Z,EAAE,EAAE,EAAEA,EAAE+Z,EAAEulB,GAAGxqK,EAAEmkE,EAAE18D,EAAE28D,GAAGyqF,EAAE90J,EAAEmxI,EAAE,EAAEhpE,EAAE29E,EAAEoF,EAAEpF,EAAE,EAAEopB,GAAGpa,EAAEhP,IAAI,EAAEoF,IAAI,EAAE4J,EAAE,EAAE,EAAEA,EAAEsa,GAAGj+B,EAAE2U,EAAE,SAAS,EAAE5lJ,EAAE40J,EAAE3jB,IAAI,EAAE,SAAS2jB,EAAE,EAAE,EAAEA,EAAEhP,GAAG3U,EAAE2jB,GAAG,IAAIpO,EAAE,EAAEA,EAAEoO,GAAG5J,GAAG,SAAS4J,IAAI,EAAEsa,KAAK,IAAID,GAAG,EAAEra,EAAEA,IAAI,EAAE5J,IAAI,EAAEpF,EAAE,EAAE,EAAEA,EAAEqpB,GAAGh+B,EAAEuV,EAAE,SAAS,EAAEwE,GAAG,UAAU4J,EAAE3jB,IAAI,EAAE,SAAS2jB,EAAE,EAAE,EAAEA,KAAK,EAAE3jB,IAAI,GAAG2jB,GAAGA,GAAG,IAAI9O,EAAE,EAAE8O,GAAGhP,EAAEoF,EAAEmK,EAAE,KAAK,EAAEnK,IAAI,EAAE4J,EAAE,EAAE,EAAEA,EAAE9O,EAAEF,GAAG3U,EAAE2U,GAAG,SAAS,EAAEoF,EAAE4J,EAAEhP,IAAI,EAAE,SAASgP,EAAE,EAAE,EAAEA,EAAEA,GAAG,SAAShP,EAAElvJ,EAAEuzE,EAAE,GAAG,GAAGgnE,EAAE2jB,EAAE3jB,EAAEs/B,GAAGnmG,EAAEpC,EAAEqmB,EAAE/5D,GAAGsgI,EAAE90J,EAAE8lJ,EAAE2qB,GAAG9jK,EAAEjJ,EAAEyf,EAAEonD,GAAGuqF,EAAE90J,EAAE80J,EAAE,EAAEA,GAAG3jB,EAAE2U,EAAE3U,EAAE,KAAK,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAEhP,EAAE2qB,GAAGxqK,EAAEmkE,EAAEI,EAAExC,GAAG8sF,EAAE90J,EAAE80J,EAAE,EAAEA,GAAG3jB,EAAE2U,EAAE3U,EAAE,KAAK,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAEhP,EAAE2qB,GAAGl8I,EAAEmoH,EAAEsY,EAAErqI,GAAGmqI,EAAE90J,EAAE80J,EAAE,EAAEA,GAAG3jB,EAAE2U,EAAE3U,EAAE,KAAK,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAEhP,GAAGuP,EAAEob,GAAG/iK,EAAE28D,EAAEuqF,EAAEnqF,IAAI0mE,EAAE,EAAEA,EAAEnxI,EAAE80J,EAAE,EAAEA,EAAEI,GAAG,GAAGA,GAAGE,GAAG,SAASF,IAAI,EAAEE,IAAI,IAAItP,EAAE,EAAEA,GAAG3U,EAAE2U,IAAI,EAAEuP,IAAI,EAAElkB,EAAE,EAAE,EAAEA,GAAG2jB,EAAE,EAAEA,EAAEhP,EAAEoP,IAAI,EAAEE,IAAI,EAAEtP,EAAE,EAAE,EAAEA,EAAEsP,EAAEtP,GAAG3U,EAAE+jB,GAAG,SAAS,EAAEA,EAAEJ,EAAEhP,IAAI,EAAE,SAASgP,EAAE,EAAE,EAAEA,EAAEA,GAAG,SAAShP,EAAElvJ,EAAEuzE,EAAE,IAAI,GAAGgnE,EAAE2jB,EAAE3jB,EAAEs/B,GAAGl8I,EAAEmoH,EAAEt/I,EAAEstE,GAAGo7E,EAAE9lJ,EAAE80J,GAAG9jE,EAAEy/E,GAAGxqK,EAAEmkE,EAAE4mB,EAAEnqB,IAAIsqE,EAAE,EAAEA,EAAEnxI,EAAE8lJ,EAAE,EAAE3U,EAAE2jB,IAAI,EAAE9jE,IAAI,EAAEmgD,EAAE,EAAE,EAAEA,EAAEngD,EAAEy/E,GAAGjmG,EAAExC,EAAEloC,EAAE19B,GAAG0jJ,EAAE9lJ,EAAEmxI,EAAE,EAAE2U,GAAGgP,EAAE9jE,EAAE8jE,EAAE,KAAK,EAAE9jE,IAAI,EAAE80D,EAAE,EAAE,EAAEA,EAAE3U,GAAGngD,EAAEy/E,GAAGvuK,EAAE0zB,EAAEhb,EAAEkqE,IAAIgwE,EAAE,EAAEA,EAAE90J,EAAE8lJ,EAAE,EAAEgP,EAAE3jB,IAAI,EAAEngD,IAAI,EAAE8jE,EAAE,EAAE,EAAEA,EAAEhP,EAAE2qB,GAAG/iK,EAAE28D,EAAE19D,EAAEjJ,GAAGoxJ,EAAE90J,EAAE80J,EAAE,EAAEA,GAAGA,GAAG3jB,EAAE2U,EAAE3U,EAAE,KAAK,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,IAAIhP,EAAEoF,GAAG,IAAI,EAAEpF,EAAE3U,GAAG+Z,GAAG,SAASA,IAAI,EAAElF,IAAI,IAAI7U,EAAE,EAAEA,EAAE2jB,EAAE3jB,IAAI,EAAE+Z,IAAI,EAAE4J,EAAE,EAAE,EAAEA,EAAE9O,EAAE8O,EAAEhP,EAAE,SAAS,EAAEoF,EAAE/Z,EAAE2jB,IAAI,EAAE,SAAS3jB,EAAE,EAAE,EAAEA,EAAEA,GAAG,SAAS2jB,EAAEl+J,EAAEuzE,EAAE,IAAI,GAAG27E,EAAE3U,EAAEngD,EAAE7mB,EAAEgnE,EAAEs/B,GAAGjmG,EAAExC,EAAEsC,EAAEpC,GAAG4sF,EAAE90J,EAAE8lJ,EAAE2qB,GAAG9jK,EAAEjJ,EAAEiJ,EAAEjJ,GAAGoxJ,EAAE90J,EAAE80J,EAAE,EAAEA,GAAG3jB,EAAE2U,EAAE3U,EAAE,KAAK,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAEhP,EAAE2qB,GAAGttJ,EAAEonD,EAAE3vD,EAAEkqE,GAAGgwE,EAAE90J,EAAE80J,EAAE,EAAEA,GAAG3jB,EAAE2U,EAAE3U,EAAE,KAAK,EAAE2U,IAAI,EAAEgP,EAAE,EAAE,EAAEA,EAAEhP,GAAG1oJ,EAAEqzK,GAAGxqK,EAAEmkE,EAAEo0E,EAAEl8I,IAAI6uI,EAAE,EAAEA,EAAEnxI,EAAE80J,EAAE,EAAE3jB,EAAE2U,IAAI,EAAE1oJ,IAAI,EAAE+zI,EAAE,EAAE,EAAEA,EAAE2jB,GAAG13J,EAAEqzK,GAAGl8I,EAAEmoH,EAAEkY,EAAEnqF,IAAIq7E,EAAE,EAAEA,EAAE9lJ,EAAEmxI,EAAE,EAAE2U,EAAEgP,IAAI,EAAE13J,IAAI,EAAE0oJ,EAAE,EAAE,EAAEA,EAAE3U,GAAG89B,GAAGwB,GAAG/iK,EAAE28D,EAAEjtE,EAAE6xK,GAAG5Z,EAAEj4J,GAAG,KAAK03J,EAAE,EAAEA,EAAE90J,EAAE8lJ,EAAE,EAAEgP,EAAE3jB,IAAI,EAAE89B,KAAK,EAAEna,EAAE,EAAE,EAAEA,EAAE3qF,EAAEgnE,EAAE2jB,GAAG3jB,EAAE+jB,GAAG,IAAIJ,EAAE,EAAEA,GAAGhP,EAAE37E,GAAG+qF,GAAG,SAASA,IAAI,EAAEE,IAAI,IAAI,KAAK,EAAEF,IAAI,EAAEJ,EAAE,EAAE,EAAEA,EAAEma,GAAGnpB,GAAG3U,EAAE2U,GAAG,SAAS,EAAEoP,EAAEJ,EAAEhP,IAAI,EAAE,SAASgP,EAAE,EAAE,EAAEA,EAAEA,GAAG,SAAShP,EAAElvJ,EAAEo6F,EAAE,IAAI,GAAGmgD,EAAE2jB,EAAEA,EAAE5J,GAAG,GAAGpF,GAAGoF,GAAG,SAASA,IAAI,EAAElF,IAAI,KAAKrxH,GAAGw8G,GAAG,SAAS0jB,GAAG,GAAG,EAAE1jB,EAAE2jB,GAAGG,IAAI9jB,IAAI,EAAEx8G,IAAI,GAAG43C,EAAE,GAAG,GAAG,EAAEuoF,EAAE3jB,EAAE2U,IAAI,EAAEoF,IAAI,EAAE/Z,EAAE,EAAE,EAAEA,EAAE+Z,EAAE/Z,EAAE2U,EAAE,SAAS,EAAE3U,IAAI,UAAU2jB,EAAE3jB,IAAI,EAAE,SAAS2jB,EAAE,EAAE,EAAEA,KAAK,EAAE3jB,IAAI,KAAKk+B,GAAGA,KAAK,SAASla,GAAG,GAAG,EAAEv+J,EAAEo6F,EAAE,IAAI,GAAGmgD,EAAEA,GAAG,SAAS+Z,EAAEt0J,EAAEo6F,EAAE,IAAI,GAAG80D,EAAE3U,EAAE+Z,EAAEl6D,EAAEmgD,EAAEs/B,GAAGttJ,EAAEonD,EAAEC,EAAExC,GAAG89E,EAAE9lJ,EAAE80J,GAAG9jE,EAAEy/E,GAAGliF,EAAE/5D,EAAE8+G,EAAEyhB,IAAI5jB,EAAE,EAAEA,EAAEnxI,EAAE8lJ,EAAE,EAAE3U,EAAE2jB,IAAI,EAAE9jE,IAAI,EAAEmgD,EAAE,EAAE,EAAEA,EAAE2U,GAAG90D,EAAEy/E,GAAGnmG,EAAEpC,EAAE8sF,EAAErqI,IAAImqI,EAAE,EAAEA,EAAE90J,EAAEmxI,EAAE,EAAE2jB,EAAEhP,IAAI,EAAE90D,IAAI,EAAE8jE,EAAE,EAAE,EAAEA,EAAE3jB,GAAGngD,EAAEy/E,GAAGxqK,EAAEmkE,EAAEwqF,EAAEnqF,IAAIq7E,EAAE,EAAEA,EAAE9lJ,EAAE80J,EAAE,EAAEhP,EAAE3U,IAAI,EAAEngD,IAAI,EAAE80D,EAAE,EAAE,EAAEA,EAAE90D,EAAEy/E,GAAGl8I,EAAEmoH,EAAEt/I,EAAEi4J,GAAGP,EAAE90J,EAAE8lJ,EAAE,EAAEA,EAAE3U,EAAEngD,EAAEmgD,EAAE,EAAE2jB,GAAG3jB,EAAEA,IAAI,EAAEngD,IAAI,EAAE8jE,EAAE,EAAE,EAAEA,IAAIA,EAAEI,GAAG,IAAI,EAAEJ,GAAGhP,GAAGoP,GAAG,SAASA,IAAI,EAAE+Z,KAAK,IAAInpB,EAAE,KAAK,EAAEoP,IAAI,EAAEJ,EAAE,EAAE,EAAEA,EAAEI,EAAEpP,EAAE3U,EAAE2jB,EAAE3jB,GAAG2jB,EAAEhP,EAAE,SAAS,KAAK,EAAE,SAAS3U,EAAE,EAAE,EAAEA,EAAE2U,GAAG,SAASgP,EAAEl+J,EAAEs0J,EAAE,IAAI,GAAGgK,EAAEpP,EAAE90D,EAAEy/E,IAAI,SAASt/B,IAAI,EAAE2jB,IAAI,GAAG3jB,GAAG,GAAG,GAAG,GAAG2jB,EAAE90J,GAAGkvK,MAAMppB,GAAG,SAASspB,MAAM,EAAEjnG,IAAI,GAAGjoE,EAAE,GAAG,GAAG,EAAE4lJ,EAAE3U,EAAEngD,GAAG7oB,EAAE29E,EAAE,GAAG,EAAE3U,EAAEA,IAAI,EAAEngD,IAAI,EAAE8jE,EAAE,EAAE,EAAEA,EAAE3jB,GAAGuV,IAAI,SAASyoB,IAAI,KAAK,UAAUh+B,GAAG2jB,EAAEhP,EAAE,SAAS,KAAK,EAAE,SAAS3U,EAAE,EAAE,EAAEA,KAAK,EAAE2jB,IAAI,IAAI,EAAEl+J,EAAEs0J,EAAE,GAAG,GAAG/Z,EAAEhnE,GAAG,SAAS2qF,EAAEl+J,EAAEs0J,GAAG,GAAGpF,EAAE37E,EAAE,SAASyqF,EAAEzqF,EAAEgnE,EAAExkI,GAAG,IAAIy9D,EAAEsyE,EAAE,EAAEryE,EAAE,EAAEE,EAAE,EAAE7mE,EAAE,EAAEuC,EAAE,EAAE0U,EAAE,EAAE4Z,EAAE,EAAE7mB,EAAE,EAAEyV,EAAE,EAAE6kD,EAAE,EAAEpyC,EAAE,EAAEsyC,EAAE,EAAEttD,EAAE,EAAEkqE,EAAE,EAAExa,EAAE,EAAEzD,EAAE,EAAEzkE,EAAE,EAAEooE,EAAE,EAAEC,EAAE,EAAEj2C,EAAE,EAAEsL,EAAE,EAAE4qC,EAAE,EAAEkqF,EAAE,EAAEtyJ,EAAE,EAAEqoB,EAAE,EAAEgK,EAAE,EAAEogI,EAAE,EAAEvW,EAAE,EAAEjwD,EAAE,EAAEsmE,EAAE,EAAEvhB,EAAE,EAAE2hB,EAAE,EAAE1oF,EAAE,EAAE4oF,EAAE,EAAEj1J,EAAE,EAAE40J,EAAE,EAAEhP,EAAE,EAAE90D,EAAE,EAAEkkE,EAAE,EAAEhK,EAAE,EAAExE,EAAE,EAAEV,EAAE,EAAE5oJ,EAAE,EAAEg4J,EAAE,EAAEJ,EAAE,EAAE7sF,EAAE,EAAEktF,EAAE,EAAE4Z,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE,IAAIptK,EAAEkoE,EAAEloE,EAAE,KAAK,EAAEkvK,GAAGhnG,EAAE,KAAK,EAAE+mE,GAAGkgC,GAAGjnG,EAAE,KAAK,EAAED,GAAGinG,GAAGhnG,EAAEA,EAAE,KAAK,GAAGinG,GAAGjnG,EAAEz9D,GAAGwkI,EAAE,EAAEztI,EAAE9M,GAAG8lJ,EAAE10E,GAAGoC,EAAE,KAAK,IAAI,IAAID,EAAEK,GAAG,IAAI,IAAI,GAAG98D,EAAE9W,GAAG2zE,EAAEpnD,GAAGinD,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGI,EAAE3zE,EAAE2zE,EAAE,GAAG,GAAGtkE,EAAEvC,EAAEohF,EAAEluF,EAAE8lJ,EAAE,GAAG,GAAGnoH,EAAE7mB,EAAEgvI,EAAEvyE,GAAGC,EAAE,KAAK,GAAG,EAAEzvD,EAAE/jB,GAAG8M,GAAG0mE,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGz8D,EAAE9W,EAAE8M,EAAE,GAAG,GAAG6wB,EAAE+7I,GAAG/7I,GAAGnyB,EAAEkvK,GAAG16K,EAAE8lJ,GAAG,GAAG9lJ,EAAE8lJ,EAAE,GAAG,GAAG/hI,EAAEjN,KAAK28D,EAAEE,IAAIA,EAAEvqE,GAAG,IAAI0N,EAAE4iK,GAAGrqK,GAAG2U,EAAE02J,GAAGrrK,EAAE6+E,EAAEvwD,EAAE81C,EAAErqE,IAAI2a,EAAEjN,GAAGiN,EAAE3a,GAAG,IAAIi1J,EAAEqb,IAAI3lJ,EAAE2mJ,GAAGlvK,EAAE6D,EAAEskE,EAAE78D,EAAE68D,EAAEvqE,IAAIu0B,GAAG2zC,EAAEloE,GAAGqqE,EAAE,IAAIE,EAAE+lG,GAAG5iK,GAAG6+D,EAAE+kG,GAAG12J,EAAED,EAAEs6I,EAAEzW,EAAEx+I,KAAKuuF,EAAEvuF,GAAGuqE,EAAE,IAAI78D,EAAE1N,EAAEu0B,EAAE39B,GAAG+jB,GAAGyvD,EAAE,KAAK,IAAI,IAAID,GAAG,IAAI,GAAGvvD,EAAEhkB,EAAE+jB,EAAE,GAAG,GAAG+vD,EAAE9zE,GAAGyzE,EAAEjoE,GAAGgoE,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGv0C,EAAEh/B,EAAEyzE,EAAE,GAAG,GAAGI,EAAE6lG,IAAI7lG,EAAEl2C,IAAIC,EAAE88I,GAAGzqG,EAAEjwE,GAAGyzE,EAAE91C,GAAG61C,EAAE,KAAK,IAAI,EAAED,GAAG,IAAI,GAAG2a,EAAEluF,EAAEyzE,EAAE,GAAG,GAAG0qF,EAAEn+J,GAAGyzE,GAAGD,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGlkE,EAAErP,EAAEyzE,EAAE,GAAG,MAAMya,EAAElqE,IAAIA,EAAE5a,GAAG,IAAIiG,EAAEqqK,GAAG16I,GAAGixC,EAAEyqG,GAAG5mG,EAAE90C,EAAE60C,EAAEqa,EAAE9kF,IAAI+0J,EAAE9uJ,GAAG8uJ,EAAE/0J,GAAG,IAAIkrJ,EAAEolB,IAAIzb,EAAEyc,GAAG98I,EAAEoB,EAAEhb,EAAE3U,EAAE2U,EAAE5a,IAAIyqE,GAAG0qF,EAAEn1J,GAAG8kF,EAAE,IAAIlqE,EAAE01J,GAAGrqK,GAAG+uJ,EAAEsc,GAAGzqG,EAAEkuF,EAAE7J,EAAE9tJ,EAAE4C,KAAKmoE,EAAEnoE,GAAG4a,EAAE,IAAI3U,EAAEjG,EAAEyqE,EAAE7zE,GAAG49B,EAAEugI,GAAG3qF,EAAE,KAAK,IAAI,IAAID,GAAG,IAAI,GAAGtD,EAAEjwE,EAAE49B,EAAE,GAAG,GAAGG,EAAE/9B,GAAG49B,GAAG41C,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGG,EAAE1zE,EAAE49B,EAAE,GAAG,GAAGk2C,EAAED,EAAEA,GAAGL,EAAE,KAAK,IAAI,GAAGD,GAAG,EAAEyqF,EAAEh+J,GAAG0L,EAAEwiF,GAAG1a,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAG7nE,EAAE1L,EAAE0L,EAAE,GAAG,GAAGooE,EAAE4lG,GAAG5lG,GAAG4oE,EAAEg+B,GAAG16K,EAAE6zE,GAAG,GAAG7zE,EAAE6zE,EAAE,GAAG,GAAGmqF,EAAEtyJ,KAAKszB,EAAEixC,IAAIA,EAAE7mE,GAAG,IAAIsC,EAAEguK,GAAGhmG,GAAG10C,EAAE07I,GAAG38I,EAAE21C,EAAEI,EAAE5qC,EAAE9/B,IAAI40J,EAAEtyJ,GAAGsyJ,EAAE50J,GAAG,IAAIkvK,GAAGoB,IAAIjb,EAAEic,GAAGh+B,EAAEhpE,EAAEzD,EAAEvkE,EAAEukE,EAAE7mE,IAAI0qE,GAAGukG,GAAGjvK,GAAG8/B,EAAE,IAAI+mC,EAAEypG,GAAGhuK,GAAGokJ,EAAE4qB,GAAG17I,EAAEg/H,EAAEsa,GAAGC,GAAGnvK,KAAKgxF,EAAEhxF,GAAG6mE,EAAE,IAAIvkE,EAAEtC,EAAE0qE,EAAE9zE,GAAGg+J,GAAGxqF,EAAE,KAAK,IAAI,IAAID,GAAG,IAAI,GAAGrqC,EAAElpC,EAAEg+J,EAAE,GAAG,GAAGwa,GAAGx4K,GAAGg/B,EAAE09G,GAAGlpE,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAG+qF,EAAEt+J,EAAEg/B,EAAE,GAAG,GAAGk/H,EAAEwb,IAAI37I,EAAE+1C,IAAIs7E,EAAEsrB,GAAGlc,EAAEx+J,GAAGg/B,EAAE80C,GAAGN,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGG,EAAE1zE,EAAEg/B,EAAE,GAAG,GAAG11B,EAAEtJ,GAAGuzE,GAAGC,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGv0C,EAAEh/B,EAAEuzE,EAAE,GAAG,MAAMG,EAAExqC,IAAIA,EAAE9/B,GAAG,IAAI41B,EAAE06I,GAAGhmG,GAAG4qF,EAAEoc,GAAGlC,GAAGla,EAAEJ,EAAEhP,EAAE9lJ,IAAIE,EAAE01B,GAAG11B,EAAEF,GAAG,IAAI20B,EAAEz0B,EAAE40J,EAAEwb,IAAIpwK,EAAEoxK,GAAGtrB,EAAE17E,EAAExqC,EAAElK,EAAEkK,EAAE9/B,IAAI80J,GAAG9O,EAAEhmJ,GAAG8lJ,EAAE,IAAIhmH,EAAEwwI,GAAG16I,GAAGs/H,EAAEoc,GAAGpc,EAAEvgI,EAAEmgI,EAAEhP,EAAE9lJ,KAAKo1J,EAAEp1J,GAAG8/B,EAAE,IAAIlK,EAAE51B,EAAE20B,EAAE+xH,EAAEp8E,EAAE0mB,EAAE01D,EAAE4pB,GAAGxb,GAAGnqI,EAAE2mJ,GAAG3mJ,EAAEu9C,EAAEttD,EAAE3U,IAAI6/I,GAAG59E,EAAEloE,GAAG,IAAI4a,EAAE01J,IAAIxb,EAAEwc,GAAG38I,EAAE21C,EAAEo8E,EAAE11D,EAAEhxF,IAAI4a,GAAGkrI,EAAE9lJ,GAAGiG,EAAE,IAAIA,EAAEqrK,GAAGrrK,EAAE0kB,EAAEu9C,EAAEttD,EAAE+P,EAAE3qB,GAAGkoE,EAAEloE,EAAEpJ,EAAE8lJ,GAAG,GAAGz2I,EAAErP,EAAE8lJ,EAAE,GAAG,GAAGx0E,EAAEw0E,EAAE4zB,GAAGrqK,EAAEygJ,EAAE11D,EAAE9oB,EAAE,IAAIjiE,EAAEjG,EAAEpJ,EAAEg+J,GAAG,GAAGlY,EAAE9lJ,EAAEg+J,EAAE,GAAG,GAAG3uJ,EAAEy2I,EAAE40B,GAAGxc,EAAEhP,EAAEpJ,EAAEz2I,GAAGA,EAAEjG,EAAEpJ,EAAE49B,GAAG,GAAGkoH,EAAE9lJ,EAAE49B,EAAE,GAAG,GAAGvuB,EAAEopK,GAAGhlG,EAAEilG,GAAGgB,GAAG5zB,EAAE9hI,EAAE3U,EAAE0kB,EAAE,IAAI/zB,EAAEy4K,IAAI,GAAGC,GAAG14K,EAAEyzE,EAAE,GAAG,GAAGrqE,EAAEkoE,EAAErB,EAAE5gE,EAAEqqK,GAAGrb,GAAG5qF,EAAEinG,GAAGzc,EAAEM,EAAEtuF,EAAEvkE,IAAIk8I,GAAG5jI,EAAE5a,GAAG,IAAI08I,EAAE4zB,GAAGpoG,GAAGrB,EAAEyqG,GAAGpc,EAAEE,EAAEnvJ,EAAEuuB,EAAEx0B,KAAK08I,EAAEp6I,IAAIA,EAAEtC,GAAG,IAAIqqE,EAAEinG,GAAGjnG,EAAEnC,EAAEttD,EAAE8hI,EAAE9hI,EAAE5a,GAAG40J,EAAE50J,EAAEpJ,EAAE29B,GAAG,GAAG81C,EAAEzzE,EAAE29B,EAAE,GAAG,GAAGqgI,EAAErgI,EAAE+7I,GAAGjmG,EAAEpkE,EAAEuuB,EAAEogI,EAAE,IAAIvqF,EAAErqE,EAAEpJ,EAAEusB,GAAG,GAAGoR,EAAE39B,EAAEusB,EAAE,GAAG,GAAGknD,EAAElnD,EAAEmuJ,GAAGzqG,EAAEvkE,EAAEiyB,EAAE81C,GAAGzzE,EAAE08I,GAAG,GAAGnwH,EAAEoR,EAAEv0B,EAAEpJ,EAAE08I,EAAE,GAAG,GAAG/+G,EAAE86I,GAAGvqF,EAAEwqF,GAAGgB,GAAG5zB,EAAEv5H,EAAEoR,EAAE3Z,EAAE,IAAIhkB,EAAEy4K,IAAI,GAAGC,GAAG14K,EAAEkuF,EAAE,GAAG,GAAG9kF,EAAE08I,EAAE40B,GAAGjc,EAAE4Z,GAAGnvI,EAAElK,GAAG3vB,EAAEqrK,GAAG/kG,EAAEgiB,EAAElkB,EAAEimG,GAAGplB,EAAExO,EAAEt/I,GAAGm3B,EAAEv0B,GAAG,IAAI4a,EAAE5a,GAAG08I,EAAE40B,GAAG50B,EAAE53D,EAAEvwD,EAAEpR,EAAEmtJ,GAAGrqK,EAAE65B,GAAGtL,EAAEx0B,GAAG41B,EAAE,IAAIrB,EAAEv0B,GAAG6mE,EAAEie,EAAE9kF,EAAEpJ,EAAE6zE,GAAG,GAAGiyE,EAAE9lJ,EAAE6zE,EAAE,GAAG,GAAG5D,EAAE61E,EAAE4zB,GAAG5zB,EAAEryE,EAAEzvD,EAAEisD,EAAE,IAAIwD,EAAErqE,EAAEpJ,EAAE+jB,GAAG,GAAG+hI,EAAE9lJ,EAAE+jB,EAAE,GAAG,GAAG0vD,EAAEqyE,EAAE40B,GAAGrrK,EAAEuuB,EAAEkoH,EAAEryE,GAAGzzE,EAAEoxE,GAAG,GAAG00E,EAAEryE,EAAErC,EAAEA,EAAEhoE,EAAEpJ,EAAEyzE,EAAE,GAAG,GAAGrC,EAAEqnG,GAAGllG,EAAEmlG,GAAGgB,GAAG5zB,EAAEv5H,EAAE6kD,EAAEzzC,EAAE,IAAI39B,EAAEy4K,IAAI,GAAGC,GAAG14K,EAAEuzE,EAAE,GAAG,GAAGnqE,EAAEqqE,EAAEE,EAAEmyE,EAAE4zB,GAAGpB,IAAIlnG,EAAEspG,GAAGpxK,EAAE8lJ,EAAEz7E,EAAE78D,IAAIyhK,IAAIhsJ,EAAEnjB,GAAG,IAAImqE,EAAEmmG,GAAGjmG,GAAG1vD,EAAE22J,GAAGtc,EAAE7sF,EAAEu0E,EAAEnyE,EAAEvqE,KAAKmqE,EAAEz8D,IAAIA,EAAE1N,GAAG,IAAIgoE,EAAEspG,GAAGtpG,EAAEqC,EAAElnD,EAAEgnD,EAAEhnD,EAAEnjB,GAAGqqE,EAAE91C,EAAEv0B,EAAEpJ,EAAE8zE,GAAG,GAAG1C,EAAEpxE,EAAE8zE,EAAE,GAAG,GAAGL,EAAErC,EAAEsoG,GAAG5zB,EAAE10E,EAAEuC,EAAEF,EAAE,IAAIqyE,EAAE18I,EAAEpJ,EAAEm+J,GAAG,GAAG/sF,EAAEpxE,EAAEm+J,EAAE,GAAG,GAAGrY,EAAE10E,EAAEspG,GAAG32J,EAAEjN,EAAEs6D,EAAE00E,GAAG9lJ,EAAEwL,GAAG,GAAG4lE,EAAE00E,EAAE18I,EAAEpJ,EAAEwL,EAAE,GAAG,GAAGs6I,EAAE2yB,GAAG3rK,EAAE4rK,GAAGgB,GAAGnmG,EAAEnC,EAAE00E,EAAEv5H,EAAE,IAAIvsB,EAAEy4K,IAAI,GAAGC,GAAG14K,EAAE8M,EAAE,GAAG,GAAG1D,EAAE,IAAI,GAAGwqE,EAAEA,EAAE,EAAE,MAAM,KAAKA,EAAE5zE,EAAE,KAAKuzE,GAAGhnD,EAAEguH,GAAG,IAAI/mE,EAAE,KAAK,GAAG,IAAI,GAAGpC,EAAEpxE,EAAEuzE,EAAE,KAAK,GAAGlkE,EAAErP,GAAG8lJ,EAAEvyE,EAAE,IAAI,IAAI,GAAG51C,EAAE39B,EAAE8lJ,EAAE,GAAG,GAAGryE,EAAEG,EAAEA,EAAE5zE,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE9lJ,EAAEuzE,EAAE,KAAK,GAAGI,EAAE+lG,GAAGjmG,GAAG3mE,EAAE4tK,GAAG16K,EAAEuzE,GAAG,GAAGvzE,EAAEuzE,EAAE,GAAG,GAAGK,EAAEkyE,KAAKnyE,EAAEvC,IAAIA,EAAEhoE,GAAG,IAAI08I,EAAE4zB,GAAGjmG,GAAG1vD,EAAE22J,GAAGrrK,EAAEsuB,EAAEg2C,EAAE78D,EAAE1N,IAAIwqE,EAAEkyE,GAAGlyE,EAAExqE,GAAG,IAAI8kF,EAAEta,EAAE5vD,EAAE01J,IAAI/7I,EAAE+8I,GAAG5tK,EAAEskE,EAAE00E,EAAElyE,EAAExqE,IAAIuqE,GAAGF,EAAErqE,GAAG0N,EAAE,IAAI88D,EAAE8lG,GAAG5zB,GAAGqY,EAAEuc,GAAG32J,EAAEmqE,EAAElqE,EAAE3U,EAAEjG,KAAKw0B,EAAEx0B,GAAGwqE,EAAE,IAAIxC,EAAEhoE,EAAE08I,EAAE9lJ,EAAEuzE,EAAE,KAAK,GAAGtD,EAAEjwE,EAAEuzE,EAAE,KAAK,GAAGjC,EAAEtxE,EAAEuzE,EAAE,KAAK,GAAGxvD,EAAE21J,IAAI7lG,EAAE7zE,EAAEuzE,EAAE,KAAK,KAAKz8D,EAAE4jK,GAAGxsF,EAAEluF,GAAG8M,EAAEyf,GAAGinD,EAAE,KAAK,IAAI,EAAEjnD,GAAG,IAAI,GAAGzV,EAAE9W,EAAE8M,EAAE,GAAG,GAAGA,EAAE9M,EAAEuzE,EAAE,KAAK,GAAGI,EAAE3zE,EAAEuzE,EAAE,KAAK,MAAM2a,EAAE43D,IAAIA,EAAE18I,GAAG,IAAIuqE,EAAE+lG,GAAGxrF,GAAGra,EAAE6mG,GAAGzqG,EAAEqB,EAAEvtD,EAAEvY,EAAEpC,IAAI0D,EAAE6mE,GAAG7mE,EAAE1D,GAAG,IAAIkoE,EAAEuC,EAAE5D,EAAEypG,IAAI7lG,EAAE6mG,GAAG5jK,EAAEo3E,EAAE43D,EAAEnyE,EAAEmyE,EAAE18I,IAAI2a,GAAGmqE,EAAE9kF,GAAGoC,EAAE,IAAIs6I,EAAE4zB,GAAG/lG,GAAGqqF,EAAE0c,GAAGppG,EAAExkE,EAAEmjE,EAAEvkE,EAAEtC,KAAKszI,EAAEtzI,GAAG08I,EAAE,IAAIh5I,EAAE1D,EAAEuqE,EAAE3zE,EAAEuzE,EAAE,KAAK,GAAGG,EAAE1zE,EAAEuzE,EAAE,KAAK,GAAGx/C,EAAE/zB,EAAEuzE,EAAE,KAAK,GAAGv0C,EAAEh/B,EAAEuzE,EAAE,KAAK,GAAGz8D,EAAE9W,EAAEuzE,EAAE,KAAK,GAAGxvD,EAAE/jB,EAAEuzE,EAAE,KAAK,GAAGO,EAAE4lG,GAAG16I,GAAGxzB,EAAEkvK,GAAG16K,EAAEuzE,EAAE,KAAK,GAAGvzE,EAAEuzE,EAAE,KAAK,GAAGz8D,EAAEiN,KAAKutD,EAAEqC,IAAIA,EAAEvqE,GAAG,IAAI2a,EAAE21J,GAAGpoG,GAAGtyC,EAAE07I,GAAGhnG,EAAE3/C,EAAE+/C,EAAE5qC,EAAE9/B,IAAI0N,EAAEiN,GAAGjN,EAAE1N,GAAG,IAAIsqE,EAAE10C,EAAEA,EAAE06I,IAAI16I,EAAE80C,IAAIA,EAAE4mG,GAAGlvK,EAAE8lE,EAAEqC,EAAE5vD,EAAE4vD,EAAEvqE,KAAKkoE,EAAEpoC,IAAIA,EAAE9/B,GAAG,IAAIuqE,EAAE+lG,GAAG31J,GAAGutD,EAAEopG,GAAGhnG,EAAE58D,EAAEkoB,EAAEjL,EAAE3qB,KAAKi1J,EAAEj1J,GAAGuqE,EAAE,IAAI78D,EAAE1N,EAAE2a,EAAE/jB,EAAEuzE,EAAE,KAAK,GAAG6mB,EAAEp6F,EAAEuzE,EAAE,KAAK,GAAG/sE,EAAExG,EAAEuzE,EAAE,KAAK,GAAGx1C,EAAE/9B,EAAEuzE,EAAE,KAAK,GAAG/nE,EAAExL,EAAEuzE,EAAE,KAAK,GAAGq0E,EAAE5nJ,EAAEuzE,EAAE,KAAK,GAAGokB,EAAE+hF,GAAG37I,GAAG43C,EAAE+kG,GAAG16K,EAAEuzE,EAAE,KAAK,GAAGvzE,EAAEuzE,EAAE,KAAK,GAAG/nE,EAAEo8I,KAAKl0E,EAAE3vD,IAAIA,EAAE3a,GAAG,IAAI20B,EAAE6pH,EAAE8xB,GAAGhmG,GAAG6qF,EAAEmc,GAAGtgF,EAAE5zF,EAAEmxF,EAAEsmE,EAAE70J,IAAIoC,EAAEo8I,GAAGp8I,EAAEpC,GAAG,IAAIuuF,EAAE+hF,IAAI9xB,EAAE8yB,GAAG/kG,EAAEjC,EAAE3vD,EAAE6jI,EAAE7jI,EAAE3a,IAAIuuF,GAAGhiB,EAAEvsE,GAAG60J,EAAE,IAAIl6I,EAAE21J,GAAG37I,GAAGwgI,EAAEmc,GAAGnc,EAAE/yJ,EAAEmsF,EAAEsmE,EAAE70J,KAAKkrJ,EAAElrJ,GAAG2a,EAAE,IAAIvY,EAAEpC,EAAE20B,EAAEuzC,EAAEoC,EAAE2qF,EAAE/sF,EAAEooG,GAAG/hF,GAAGh6D,EAAE+8I,GAAG/8I,EAAE81C,EAAEqyE,EAAEh5I,IAAImxJ,GAAGxqF,EAAErqE,GAAG,IAAI08I,EAAE4zB,IAAI/hF,EAAE+iF,GAAG38I,EAAE21C,EAAEpC,EAAE+sF,EAAEj1J,IAAI08I,GAAGmY,EAAE70J,GAAG0D,EAAE,IAAIA,EAAE4tK,GAAG5tK,EAAE6wB,EAAE81C,EAAEqyE,EAAEnoH,EAAEv0B,GAAGqqE,EAAErqE,EAAEpJ,EAAEuzE,GAAG,GAAGzmE,EAAE9M,EAAEuzE,EAAE,GAAG,GAAGE,EAAE3mE,EAAE4sK,GAAG5sK,EAAEwkE,EAAE+sF,EAAE5qF,EAAE,IAAIA,EAAErqE,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGzmE,EAAE9M,EAAEuzE,EAAE,KAAK,GAAGE,EAAE3mE,EAAE4tK,GAAG/iF,EAAEsmE,EAAEnxJ,EAAE2mE,GAAGA,EAAErqE,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGzmE,EAAE9M,EAAEuzE,EAAE,KAAK,GAAGE,EAAEglG,GAAGllG,EAAEmlG,GAAGgB,GAAG5zB,EAAEh5I,EAAE6wB,EAAE81C,EAAE,IAAIzzE,EAAEy4K,GAAG,KAAK,GAAGC,GAAG14K,EAAEuzE,EAAE,KAAK,GAAGnqE,EAAEkoE,EAAEqC,EAAE7mE,EAAE4tK,GAAG7mG,EAAEqa,EAAEva,EAAE78D,GAAGkN,EAAE02J,GAAGnc,EAAEjK,EAAE32H,EAAE+7I,GAAG11J,EAAElX,EAAEuC,GAAGskE,EAAEvqE,GAAG,IAAIqqE,EAAErqE,GAAG0D,EAAE4tK,GAAG5tK,EAAEuC,EAAEskE,EAAEmyE,EAAE4zB,GAAGpoG,EAAEttD,GAAG8hI,EAAEhvI,IAAIA,EAAE1N,GAAG,IAAIuqE,EAAEvqE,GAAGiG,EAAEjG,EAAEpJ,EAAEusB,GAAG,GAAGzf,EAAE9M,EAAEusB,EAAE,GAAG,GAAGld,EAAEkd,EAAEmtJ,GAAG5sK,EAAE6wB,EAAE81C,EAAEpkE,EAAE,IAAIvC,EAAE1D,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGhnD,EAAEvsB,EAAEuzE,EAAE,KAAK,GAAGzmE,EAAEyf,EAAEmuJ,GAAG12J,EAAElN,EAAEyV,EAAEzf,GAAG9M,EAAEuzE,EAAE,KAAK,GAAGhnD,EAAEzf,EAAE1D,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGzmE,EAAE2rK,GAAGllG,EAAEmlG,GAAGgB,GAAG5zB,EAAEv5H,EAAEzf,EAAE6mE,EAAE,IAAI3zE,EAAEy4K,GAAG,KAAK,GAAGC,GAAG14K,EAAEuzE,EAAE,KAAK,GAAGnqE,EAAEu0B,EAAE5Z,EAAE4vD,EAAE+lG,GAAGzpG,GAAG61E,EAAE40B,GAAG5mG,EAAE5qC,EAAEnlB,EAAEvY,IAAIE,GAAGoB,EAAE1D,GAAG,IAAImjB,EAAEmtJ,GAAG/7I,GAAG5Z,EAAE22J,GAAGvc,EAAEvgI,EAAE+1C,EAAE78D,EAAE1N,KAAKqqE,EAAEjoE,IAAIA,EAAEpC,GAAG,IAAI08I,EAAE40B,GAAG50B,EAAEryE,EAAE3mE,EAAEyf,EAAEzf,EAAE1D,GAAGqqE,EAAE91C,EAAEv0B,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE9lJ,EAAEuzE,EAAE,KAAK,GAAGE,EAAEqyE,EAAE4zB,GAAG5zB,EAAEnyE,EAAEF,EAAE38D,EAAE,IAAI68D,EAAEvqE,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE9lJ,EAAEuzE,EAAE,KAAK,GAAGI,EAAEmyE,EAAE40B,GAAG32J,EAAEvY,EAAEs6I,EAAEnyE,GAAG3zE,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAEnyE,EAAEvqE,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGI,EAAE8kG,GAAGllG,EAAEmlG,GAAGgB,GAAG5zB,EAAEv5H,EAAEzf,EAAE6mE,EAAE,IAAI3zE,EAAEy4K,GAAG,KAAK,GAAGC,GAAG14K,EAAEuzE,EAAE,KAAK,GAAGnqE,EAAEmjB,EAAEmuJ,GAAG9yB,EAAEjyE,EAAE/B,EAAExC,GAAGt6D,EAAE4jK,GAAG1c,EAAEthB,EAAE5vI,EAAE4sK,GAAG16I,EAAEzS,EAAEwH,GAAG+xH,EAAE18I,GAAG,IAAIuqE,EAAEvqE,GAAGgoE,EAAEspG,GAAGjnG,EAAElnD,EAAEu5H,EAAElyE,EAAE8lG,GAAG5iK,EAAE88D,GAAG7vD,EAAE3a,GAAGgoE,EAAE,IAAI7kD,EAAEnjB,GAAG08I,EAAE18I,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGnC,EAAEpxE,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE10E,EAAEsoG,GAAG5sK,EAAEskE,EAAEuC,EAAEmyE,EAAE,IAAIA,EAAE18I,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGnC,EAAEpxE,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE10E,EAAEspG,GAAG5jK,EAAEiN,EAAEqtD,EAAE00E,GAAG9lJ,EAAEuzE,EAAE,KAAK,GAAGnC,EAAE00E,EAAE18I,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE2yB,GAAGllG,EAAEmlG,GAAGgB,GAAGtoG,EAAEwC,EAAEkyE,EAAEv5H,EAAE,IAAIvsB,EAAEy4K,GAAG,KAAK,GAAGC,GAAG14K,EAAEuzE,EAAE,KAAK,GAAGnqE,EAAE,IAAI,GAAGmxI,EAAEA,EAAE,EAAE,MAAMigC,GAAGzkK,EAAEy9D,GAAGinG,GAAG1kK,EAAEy9D,EAAE,KAAK,GAAGloE,EAAEkoE,EAAE,KAAK,EAAE,SAAS9nE,EAAE6nE,EAAEgnE,EAAExkI,GAAG,IAAIy9D,EAAEsyE,EAAE,EAAEryE,EAAE,EAAEE,EAAE,EAAE7mE,EAAE,EAAEuC,EAAE,EAAE0U,EAAE,EAAE4Z,EAAE,EAAE7mB,EAAE,EAAEyV,EAAE,EAAE6kD,EAAE,EAAEpyC,EAAE,EAAEsyC,EAAE,EAAEttD,EAAE,EAAEkqE,EAAE,EAAExa,EAAE,EAAEzD,EAAE,EAAEzkE,EAAE,EAAEooE,EAAE,EAAEC,EAAE,EAAEj2C,EAAE,EAAEsL,EAAE,EAAE4qC,EAAE,EAAEkqF,EAAE,EAAEtyJ,EAAE,EAAEqoB,EAAE,EAAEgK,EAAE,EAAEogI,EAAE,EAAEvW,EAAE,EAAEjwD,EAAE,EAAEsmE,EAAE,EAAEvhB,EAAE,EAAE2hB,EAAE,EAAE1oF,EAAE,EAAE4oF,EAAE,EAAEj1J,EAAE,EAAE40J,EAAE,EAAEhP,EAAE,EAAE90D,EAAE,EAAEkkE,EAAE,EAAEhK,EAAE,EAAExE,EAAE,EAAEV,EAAE,EAAE5oJ,EAAE,EAAEg4J,EAAE,EAAEJ,EAAE,EAAE7sF,EAAE,EAAEktF,EAAE,EAAE4Z,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE,IAAIptK,EAAEkoE,EAAEloE,EAAE,KAAK,EAAEkvK,GAAGhnG,EAAE,KAAK,EAAE+mE,GAAGkgC,GAAGjnG,EAAE,KAAK,EAAED,GAAGinG,GAAGhnG,EAAEA,EAAE,KAAK,GAAG+mE,EAAE,EAAEztI,EAAE9M,GAAG8lJ,EAAE10E,GAAGoC,EAAE,KAAK,IAAI,IAAID,EAAEK,GAAG,IAAI,IAAI,GAAG98D,EAAE9W,GAAG2zE,EAAEpnD,GAAGinD,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGI,EAAE3zE,EAAE2zE,EAAE,GAAG,GAAGtkE,EAAEvC,EAAEohF,EAAEluF,EAAE8lJ,EAAE,GAAG,GAAGnoH,EAAE7mB,EAAEgvI,EAAEvyE,GAAGC,EAAE,KAAK,GAAG,EAAEzvD,EAAE/jB,GAAG8M,GAAG0mE,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGz8D,EAAE9W,EAAE8M,EAAE,GAAG,GAAG6wB,EAAE+7I,GAAG/7I,GAAGnyB,EAAEkvK,GAAG16K,EAAE8lJ,GAAG,GAAG9lJ,EAAE8lJ,EAAE,GAAG,GAAG/hI,EAAEjN,KAAK28D,EAAEE,IAAIA,EAAEvqE,GAAG,IAAI0N,EAAE4iK,GAAGrqK,GAAG2U,EAAE02J,GAAGrrK,EAAE6+E,EAAEvwD,EAAE81C,EAAErqE,IAAI2a,EAAEjN,GAAGiN,EAAE3a,GAAG,IAAIi1J,EAAEqb,IAAI3lJ,EAAE2mJ,GAAGlvK,EAAE6D,EAAEskE,EAAE78D,EAAE68D,EAAEvqE,IAAIu0B,GAAG2zC,EAAEloE,GAAGqqE,EAAE,IAAIE,EAAE+lG,GAAG5iK,GAAG6+D,EAAE+kG,GAAG12J,EAAED,EAAEs6I,EAAEzW,EAAEx+I,KAAKuuF,EAAEvuF,GAAGuqE,EAAE,IAAI78D,EAAE1N,EAAEu0B,EAAE39B,GAAG+jB,GAAGyvD,EAAE,KAAK,IAAI,IAAID,GAAG,IAAI,GAAGvvD,EAAEhkB,EAAE+jB,EAAE,GAAG,GAAG+vD,EAAE9zE,GAAGyzE,EAAEjoE,GAAGgoE,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGv0C,EAAEh/B,EAAEyzE,EAAE,GAAG,GAAGI,EAAE6lG,IAAI7lG,EAAEl2C,IAAIC,EAAE88I,GAAGzqG,EAAEjwE,GAAGyzE,EAAE91C,GAAG61C,EAAE,KAAK,IAAI,EAAED,GAAG,IAAI,GAAG2a,EAAEluF,EAAEyzE,EAAE,GAAG,GAAG0qF,EAAEn+J,GAAGyzE,GAAGD,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGlkE,EAAErP,EAAEyzE,EAAE,GAAG,MAAMya,EAAElqE,IAAIA,EAAE5a,GAAG,IAAIiG,EAAEqqK,GAAG16I,GAAGixC,EAAEyqG,GAAG5mG,EAAE90C,EAAE60C,EAAEqa,EAAE9kF,IAAI+0J,EAAE9uJ,GAAG8uJ,EAAE/0J,GAAG,IAAIkrJ,EAAEolB,IAAIzb,EAAEyc,GAAG98I,EAAEoB,EAAEhb,EAAE3U,EAAE2U,EAAE5a,IAAIyqE,GAAG0qF,EAAEn1J,GAAG8kF,EAAE,IAAIlqE,EAAE01J,GAAGrqK,GAAG+uJ,EAAEsc,GAAGzqG,EAAEkuF,EAAE7J,EAAE9tJ,EAAE4C,KAAKmoE,EAAEnoE,GAAG4a,EAAE,IAAI3U,EAAEjG,EAAEyqE,EAAE7zE,GAAG49B,EAAEugI,GAAG3qF,EAAE,KAAK,IAAI,IAAID,GAAG,IAAI,GAAGtD,EAAEjwE,EAAE49B,EAAE,GAAG,GAAGG,EAAE/9B,GAAG49B,GAAG41C,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGG,EAAE1zE,EAAE49B,EAAE,GAAG,GAAGk2C,EAAED,EAAEA,GAAGL,EAAE,KAAK,IAAI,GAAGD,GAAG,EAAEyqF,EAAEh+J,GAAG0L,EAAEwiF,GAAG1a,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAG7nE,EAAE1L,EAAE0L,EAAE,GAAG,GAAGooE,EAAE4lG,GAAG5lG,GAAG4oE,EAAEg+B,GAAG16K,EAAE6zE,GAAG,GAAG7zE,EAAE6zE,EAAE,GAAG,GAAGmqF,EAAEtyJ,KAAKszB,EAAEixC,IAAIA,EAAE7mE,GAAG,IAAIsC,EAAEguK,GAAGhmG,GAAG10C,EAAE07I,GAAG38I,EAAE21C,EAAEI,EAAE5qC,EAAE9/B,IAAI40J,EAAEtyJ,GAAGsyJ,EAAE50J,GAAG,IAAIkvK,GAAGoB,IAAIjb,EAAEic,GAAGh+B,EAAEhpE,EAAEzD,EAAEvkE,EAAEukE,EAAE7mE,IAAI0qE,GAAGukG,GAAGjvK,GAAG8/B,EAAE,IAAI+mC,EAAEypG,GAAGhuK,GAAGokJ,EAAE4qB,GAAG17I,EAAEg/H,EAAEsa,GAAGC,GAAGnvK,KAAKgxF,EAAEhxF,GAAG6mE,EAAE,IAAIvkE,EAAEtC,EAAE0qE,EAAE9zE,GAAGg+J,GAAGxqF,EAAE,KAAK,IAAI,IAAID,GAAG,IAAI,GAAGrqC,EAAElpC,EAAEg+J,EAAE,GAAG,GAAGwa,GAAGx4K,GAAGg/B,EAAE09G,GAAGlpE,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAG+qF,EAAEt+J,EAAEg/B,EAAE,GAAG,GAAGk/H,EAAEwb,IAAI37I,EAAE+1C,IAAIs7E,EAAEsrB,GAAGlc,EAAEx+J,GAAGg/B,EAAE80C,GAAGN,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGG,EAAE1zE,EAAEg/B,EAAE,GAAG,GAAG11B,EAAEtJ,GAAGuzE,GAAGC,EAAE,KAAK,IAAI,GAAGD,GAAG,IAAI,GAAGv0C,EAAEh/B,EAAEuzE,EAAE,GAAG,MAAMG,EAAExqC,IAAIA,EAAE9/B,GAAG,IAAI41B,EAAE06I,GAAGhmG,GAAG4qF,EAAEoc,GAAGlC,GAAGla,EAAEJ,EAAEhP,EAAE9lJ,IAAIE,EAAE01B,GAAG11B,EAAEF,GAAG,IAAI20B,EAAEz0B,EAAE40J,EAAEwb,IAAIpwK,EAAEoxK,GAAGtrB,EAAE17E,EAAExqC,EAAElK,EAAEkK,EAAE9/B,IAAI80J,GAAG9O,EAAEhmJ,GAAG8lJ,EAAE,IAAIhmH,EAAEwwI,GAAG16I,GAAGs/H,EAAEoc,GAAGpc,EAAEvgI,EAAEmgI,EAAEhP,EAAE9lJ,KAAKo1J,EAAEp1J,GAAG8/B,EAAE,IAAIlK,EAAE51B,EAAE20B,EAAE+xH,EAAEp8E,EAAE0mB,EAAE01D,EAAE4pB,GAAGxb,GAAGnqI,EAAE2mJ,GAAG3mJ,EAAEu9C,EAAEttD,EAAE3U,IAAI6/I,GAAG59E,EAAEloE,GAAG,IAAI4a,EAAE01J,IAAIxb,EAAEwc,GAAG38I,EAAE21C,EAAEo8E,EAAE11D,EAAEhxF,IAAI4a,GAAGkrI,EAAE9lJ,GAAGiG,EAAE,IAAIA,EAAEqrK,GAAGrrK,EAAE0kB,EAAEu9C,EAAEttD,EAAE+P,EAAE3qB,GAAGkoE,EAAEloE,EAAEpJ,EAAE8lJ,GAAG,GAAGz2I,EAAErP,EAAE8lJ,EAAE,GAAG,GAAGx0E,EAAEw0E,EAAE4zB,GAAGrqK,EAAEygJ,EAAE11D,EAAE9oB,EAAE,IAAIjiE,EAAEjG,EAAEpJ,EAAEg+J,GAAG,GAAGlY,EAAE9lJ,EAAEg+J,EAAE,GAAG,GAAG3uJ,EAAEy2I,EAAE40B,GAAGxc,EAAEhP,EAAEpJ,EAAEz2I,GAAGA,EAAEjG,EAAEpJ,EAAE49B,GAAG,GAAGkoH,EAAE9lJ,EAAE49B,EAAE,GAAG,GAAGvuB,EAAEopK,GAAGhlG,EAAEilG,GAAGgB,GAAG5zB,EAAE9hI,EAAE3U,EAAE0kB,EAAE,IAAI/zB,EAAEy4K,IAAI,GAAGC,GAAG14K,EAAEyzE,EAAE,GAAG,GAAGrqE,EAAEkoE,EAAErB,EAAE5gE,EAAEqqK,GAAGrb,GAAG5qF,EAAEinG,GAAGzc,EAAEM,EAAEtuF,EAAEvkE,IAAIk8I,GAAG5jI,EAAE5a,GAAG,IAAI08I,EAAE4zB,GAAGpoG,GAAGrB,EAAEyqG,GAAGpc,EAAEE,EAAEnvJ,EAAEuuB,EAAEx0B,KAAK08I,EAAEp6I,IAAIA,EAAEtC,GAAG,IAAIqqE,EAAEinG,GAAGjnG,EAAEnC,EAAEttD,EAAE8hI,EAAE9hI,EAAE5a,GAAG40J,EAAE50J,EAAEpJ,EAAE29B,GAAG,GAAG81C,EAAEzzE,EAAE29B,EAAE,GAAG,GAAGqgI,EAAErgI,EAAE+7I,GAAGjmG,EAAEpkE,EAAEuuB,EAAEogI,EAAE,IAAIvqF,EAAErqE,EAAEpJ,EAAEusB,GAAG,GAAGoR,EAAE39B,EAAEusB,EAAE,GAAG,GAAGknD,EAAElnD,EAAEmuJ,GAAGzqG,EAAEvkE,EAAEiyB,EAAE81C,GAAGzzE,EAAE08I,GAAG,GAAGnwH,EAAEoR,EAAEv0B,EAAEpJ,EAAE08I,EAAE,GAAG,GAAG/+G,EAAE86I,GAAGvqF,EAAEwqF,GAAGgB,GAAG5zB,EAAEv5H,EAAEoR,EAAE3Z,EAAE,IAAIhkB,EAAEy4K,IAAI,GAAGC,GAAG14K,EAAEkuF,EAAE,GAAG,GAAG9kF,EAAE08I,EAAE40B,GAAGjc,EAAE4Z,GAAGnvI,EAAElK,GAAG3vB,EAAEqrK,GAAG/kG,EAAEgiB,EAAElkB,EAAEimG,GAAGplB,EAAExO,EAAEt/I,GAAGm3B,EAAEv0B,GAAG,IAAI4a,EAAE5a,GAAG08I,EAAE40B,GAAG50B,EAAE53D,EAAEvwD,EAAEpR,EAAEmtJ,GAAGrqK,EAAE65B,GAAGtL,EAAEx0B,GAAG41B,EAAE,IAAIrB,EAAEv0B,GAAG6mE,EAAEie,EAAE9kF,EAAEpJ,EAAE6zE,GAAG,GAAGiyE,EAAE9lJ,EAAE6zE,EAAE,GAAG,GAAG5D,EAAE61E,EAAE4zB,GAAG5zB,EAAEryE,EAAEzvD,EAAEisD,EAAE,IAAIwD,EAAErqE,EAAEpJ,EAAE+jB,GAAG,GAAG+hI,EAAE9lJ,EAAE+jB,EAAE,GAAG,GAAG0vD,EAAEqyE,EAAE40B,GAAGrrK,EAAEuuB,EAAEkoH,EAAEryE,GAAGzzE,EAAEoxE,GAAG,GAAG00E,EAAEryE,EAAErC,EAAEA,EAAEhoE,EAAEpJ,EAAEyzE,EAAE,GAAG,GAAGrC,EAAEqnG,GAAGllG,EAAEmlG,GAAGgB,GAAG5zB,EAAEv5H,EAAE6kD,EAAEzzC,EAAE,IAAI39B,EAAEy4K,IAAI,GAAGC,GAAG14K,EAAEuzE,EAAE,GAAG,GAAGnqE,EAAEqqE,EAAEE,EAAEmyE,EAAE4zB,GAAGpB,IAAIlnG,EAAEspG,GAAGpxK,EAAE8lJ,EAAEz7E,EAAE78D,IAAIyhK,IAAIhsJ,EAAEnjB,GAAG,IAAImqE,EAAEmmG,GAAGjmG,GAAG1vD,EAAE22J,GAAGtc,EAAE7sF,EAAEu0E,EAAEnyE,EAAEvqE,KAAKmqE,EAAEz8D,IAAIA,EAAE1N,GAAG,IAAIgoE,EAAEspG,GAAGtpG,EAAEqC,EAAElnD,EAAEgnD,EAAEhnD,EAAEnjB,GAAGqqE,EAAE91C,EAAEv0B,EAAEpJ,EAAE8zE,GAAG,GAAG1C,EAAEpxE,EAAE8zE,EAAE,GAAG,GAAGL,EAAErC,EAAEsoG,GAAG5zB,EAAE10E,EAAEuC,EAAEF,EAAE,IAAIqyE,EAAE18I,EAAEpJ,EAAEm+J,GAAG,GAAG/sF,EAAEpxE,EAAEm+J,EAAE,GAAG,GAAGrY,EAAE10E,EAAEspG,GAAG32J,EAAEjN,EAAEs6D,EAAE00E,GAAG9lJ,EAAEwL,GAAG,GAAG4lE,EAAE00E,EAAE18I,EAAEpJ,EAAEwL,EAAE,GAAG,GAAGs6I,EAAE2yB,GAAG3rK,EAAE4rK,GAAGgB,GAAGnmG,EAAEnC,EAAE00E,EAAEv5H,EAAE,IAAIvsB,EAAEy4K,IAAI,GAAGC,GAAG14K,EAAE8M,EAAE,GAAG,GAAG1D,EAAE,IAAI,GAAGwqE,EAAEA,EAAE,EAAE,MAAM,KAAKA,EAAE5zE,EAAE,KAAKuzE,GAAGhnD,EAAEguH,GAAG,IAAI/mE,EAAE,KAAK,GAAG,IAAI,GAAGpC,EAAEpxE,EAAEuzE,EAAE,KAAK,GAAGlkE,EAAErP,GAAG8lJ,EAAEvyE,EAAE,IAAI,IAAI,GAAG51C,EAAE39B,EAAE8lJ,EAAE,GAAG,GAAGryE,EAAEG,EAAEA,EAAE5zE,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE9lJ,EAAEuzE,EAAE,KAAK,GAAGI,EAAE+lG,GAAGjmG,GAAG3mE,EAAE4tK,GAAG16K,EAAEuzE,GAAG,GAAGvzE,EAAEuzE,EAAE,GAAG,GAAGK,EAAEkyE,KAAKnyE,EAAEvC,IAAIA,EAAEhoE,GAAG,IAAI08I,EAAE4zB,GAAGjmG,GAAG1vD,EAAE22J,GAAGrrK,EAAEsuB,EAAEg2C,EAAE78D,EAAE1N,IAAIwqE,EAAEkyE,GAAGlyE,EAAExqE,GAAG,IAAI8kF,EAAEta,EAAE5vD,EAAE01J,IAAI/7I,EAAE+8I,GAAG5tK,EAAEskE,EAAE00E,EAAElyE,EAAExqE,IAAIuqE,GAAGF,EAAErqE,GAAG0N,EAAE,IAAI88D,EAAE8lG,GAAG5zB,GAAGqY,EAAEuc,GAAG32J,EAAEmqE,EAAElqE,EAAE3U,EAAEjG,KAAKw0B,EAAEx0B,GAAGwqE,EAAE,IAAIxC,EAAEhoE,EAAE08I,EAAE9lJ,EAAEuzE,EAAE,KAAK,GAAGtD,EAAEjwE,EAAEuzE,EAAE,KAAK,GAAGjC,EAAEtxE,EAAEuzE,EAAE,KAAK,GAAGxvD,EAAE21J,IAAI7lG,EAAE7zE,EAAEuzE,EAAE,KAAK,KAAKz8D,EAAE4jK,GAAGxsF,EAAEluF,GAAG8M,EAAEyf,GAAGinD,EAAE,KAAK,IAAI,EAAEjnD,GAAG,IAAI,GAAGzV,EAAE9W,EAAE8M,EAAE,GAAG,GAAGA,EAAE9M,EAAEuzE,EAAE,KAAK,GAAGI,EAAE3zE,EAAEuzE,EAAE,KAAK,MAAM2a,EAAE43D,IAAIA,EAAE18I,GAAG,IAAIuqE,EAAE+lG,GAAGxrF,GAAGra,EAAE6mG,GAAGzqG,EAAEqB,EAAEvtD,EAAEvY,EAAEpC,IAAI0D,EAAE6mE,GAAG7mE,EAAE1D,GAAG,IAAIkoE,EAAEuC,EAAE5D,EAAEypG,IAAI7lG,EAAE6mG,GAAG5jK,EAAEo3E,EAAE43D,EAAEnyE,EAAEmyE,EAAE18I,IAAI2a,GAAGmqE,EAAE9kF,GAAGoC,EAAE,IAAIs6I,EAAE4zB,GAAG/lG,GAAGqqF,EAAE0c,GAAGppG,EAAExkE,EAAEmjE,EAAEvkE,EAAEtC,KAAKszI,EAAEtzI,GAAG08I,EAAE,IAAIh5I,EAAE1D,EAAEuqE,EAAE3zE,EAAEuzE,EAAE,KAAK,GAAGG,EAAE1zE,EAAEuzE,EAAE,KAAK,GAAGx/C,EAAE/zB,EAAEuzE,EAAE,KAAK,GAAGv0C,EAAEh/B,EAAEuzE,EAAE,KAAK,GAAGz8D,EAAE9W,EAAEuzE,EAAE,KAAK,GAAGxvD,EAAE/jB,EAAEuzE,EAAE,KAAK,GAAGO,EAAE4lG,GAAG16I,GAAGxzB,EAAEkvK,GAAG16K,EAAEuzE,EAAE,KAAK,GAAGvzE,EAAEuzE,EAAE,KAAK,GAAGz8D,EAAEiN,KAAKutD,EAAEqC,IAAIA,EAAEvqE,GAAG,IAAI2a,EAAE21J,GAAGpoG,GAAGtyC,EAAE07I,GAAGhnG,EAAE3/C,EAAE+/C,EAAE5qC,EAAE9/B,IAAI0N,EAAEiN,GAAGjN,EAAE1N,GAAG,IAAIsqE,EAAE10C,EAAEA,EAAE06I,IAAI16I,EAAE80C,IAAIA,EAAE4mG,GAAGlvK,EAAE8lE,EAAEqC,EAAE5vD,EAAE4vD,EAAEvqE,KAAKkoE,EAAEpoC,IAAIA,EAAE9/B,GAAG,IAAIuqE,EAAE+lG,GAAG31J,GAAGutD,EAAEopG,GAAGhnG,EAAE58D,EAAEkoB,EAAEjL,EAAE3qB,KAAKi1J,EAAEj1J,GAAGuqE,EAAE,IAAI78D,EAAE1N,EAAE2a,EAAE/jB,EAAEuzE,EAAE,KAAK,GAAG6mB,EAAEp6F,EAAEuzE,EAAE,KAAK,GAAG/sE,EAAExG,EAAEuzE,EAAE,KAAK,GAAGx1C,EAAE/9B,EAAEuzE,EAAE,KAAK,GAAG/nE,EAAExL,EAAEuzE,EAAE,KAAK,GAAGq0E,EAAE5nJ,EAAEuzE,EAAE,KAAK,GAAGokB,EAAE+hF,GAAG37I,GAAG43C,EAAE+kG,GAAG16K,EAAEuzE,EAAE,KAAK,GAAGvzE,EAAEuzE,EAAE,KAAK,GAAG/nE,EAAEo8I,KAAKl0E,EAAE3vD,IAAIA,EAAE3a,GAAG,IAAI20B,EAAE6pH,EAAE8xB,GAAGhmG,GAAG6qF,EAAEmc,GAAGtgF,EAAE5zF,EAAEmxF,EAAEsmE,EAAE70J,IAAIoC,EAAEo8I,GAAGp8I,EAAEpC,GAAG,IAAIuuF,EAAE+hF,IAAI9xB,EAAE8yB,GAAG/kG,EAAEjC,EAAE3vD,EAAE6jI,EAAE7jI,EAAE3a,IAAIuuF,GAAGhiB,EAAEvsE,GAAG60J,EAAE,IAAIl6I,EAAE21J,GAAG37I,GAAGwgI,EAAEmc,GAAGnc,EAAE/yJ,EAAEmsF,EAAEsmE,EAAE70J,KAAKkrJ,EAAElrJ,GAAG2a,EAAE,IAAIvY,EAAEpC,EAAE20B,EAAEuzC,EAAEoC,EAAE2qF,EAAE/sF,EAAEooG,GAAG/hF,GAAGh6D,EAAE+8I,GAAG/8I,EAAE81C,EAAEqyE,EAAEh5I,IAAImxJ,GAAGxqF,EAAErqE,GAAG,IAAI08I,EAAE4zB,IAAI/hF,EAAE+iF,GAAG38I,EAAE21C,EAAEpC,EAAE+sF,EAAEj1J,IAAI08I,GAAGmY,EAAE70J,GAAG0D,EAAE,IAAIA,EAAE4tK,GAAG5tK,EAAE6wB,EAAE81C,EAAEqyE,EAAEnoH,EAAEv0B,GAAGqqE,EAAErqE,EAAEpJ,EAAEuzE,GAAG,GAAGzmE,EAAE9M,EAAEuzE,EAAE,GAAG,GAAGE,EAAE3mE,EAAE4sK,GAAG5sK,EAAEwkE,EAAE+sF,EAAE5qF,EAAE,IAAIA,EAAErqE,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGzmE,EAAE9M,EAAEuzE,EAAE,KAAK,GAAGE,EAAE3mE,EAAE4tK,GAAG/iF,EAAEsmE,EAAEnxJ,EAAE2mE,GAAGA,EAAErqE,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGzmE,EAAE9M,EAAEuzE,EAAE,KAAK,GAAGE,EAAEglG,GAAGllG,EAAEmlG,GAAGgB,GAAG5zB,EAAEh5I,EAAE6wB,EAAE81C,EAAE,IAAIzzE,EAAEy4K,GAAG,KAAK,GAAGC,GAAG14K,EAAEuzE,EAAE,KAAK,GAAGnqE,EAAEkoE,EAAEqC,EAAE7mE,EAAE4tK,GAAG7mG,EAAEqa,EAAEva,EAAE78D,GAAGkN,EAAE02J,GAAGnc,EAAEjK,EAAE32H,EAAE+7I,GAAG11J,EAAElX,EAAEuC,GAAGskE,EAAEvqE,GAAG,IAAIqqE,EAAErqE,GAAG0D,EAAE4tK,GAAG5tK,EAAEuC,EAAEskE,EAAEmyE,EAAE4zB,GAAGpoG,EAAEttD,GAAG8hI,EAAEhvI,IAAIA,EAAE1N,GAAG,IAAIuqE,EAAEvqE,GAAGiG,EAAEjG,EAAEpJ,EAAEusB,GAAG,GAAGzf,EAAE9M,EAAEusB,EAAE,GAAG,GAAGld,EAAEkd,EAAEmtJ,GAAG5sK,EAAE6wB,EAAE81C,EAAEpkE,EAAE,IAAIvC,EAAE1D,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGhnD,EAAEvsB,EAAEuzE,EAAE,KAAK,GAAGzmE,EAAEyf,EAAEmuJ,GAAG12J,EAAElN,EAAEyV,EAAEzf,GAAG9M,EAAEuzE,EAAE,KAAK,GAAGhnD,EAAEzf,EAAE1D,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGzmE,EAAE2rK,GAAGllG,EAAEmlG,GAAGgB,GAAG5zB,EAAEv5H,EAAEzf,EAAE6mE,EAAE,IAAI3zE,EAAEy4K,GAAG,KAAK,GAAGC,GAAG14K,EAAEuzE,EAAE,KAAK,GAAGnqE,EAAEu0B,EAAE5Z,EAAE4vD,EAAE+lG,GAAGzpG,GAAG61E,EAAE40B,GAAG5mG,EAAE5qC,EAAEnlB,EAAEvY,IAAIE,GAAGoB,EAAE1D,GAAG,IAAImjB,EAAEmtJ,GAAG/7I,GAAG5Z,EAAE22J,GAAGvc,EAAEvgI,EAAE+1C,EAAE78D,EAAE1N,KAAKqqE,EAAEjoE,IAAIA,EAAEpC,GAAG,IAAI08I,EAAE40B,GAAG50B,EAAEryE,EAAE3mE,EAAEyf,EAAEzf,EAAE1D,GAAGqqE,EAAE91C,EAAEv0B,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE9lJ,EAAEuzE,EAAE,KAAK,GAAGE,EAAEqyE,EAAE4zB,GAAG5zB,EAAEnyE,EAAEF,EAAE38D,EAAE,IAAI68D,EAAEvqE,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE9lJ,EAAEuzE,EAAE,KAAK,GAAGI,EAAEmyE,EAAE40B,GAAG32J,EAAEvY,EAAEs6I,EAAEnyE,GAAG3zE,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAEnyE,EAAEvqE,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGI,EAAE8kG,GAAGllG,EAAEmlG,GAAGgB,GAAG5zB,EAAEv5H,EAAEzf,EAAE6mE,EAAE,IAAI3zE,EAAEy4K,GAAG,KAAK,GAAGC,GAAG14K,EAAEuzE,EAAE,KAAK,GAAGnqE,EAAEmjB,EAAEmuJ,GAAG9yB,EAAEjyE,EAAE/B,EAAExC,GAAGt6D,EAAE4jK,GAAG1c,EAAEthB,EAAE5vI,EAAE4sK,GAAG16I,EAAEzS,EAAEwH,GAAG+xH,EAAE18I,GAAG,IAAIuqE,EAAEvqE,GAAGgoE,EAAEspG,GAAGjnG,EAAElnD,EAAEu5H,EAAElyE,EAAE8lG,GAAG5iK,EAAE88D,GAAG7vD,EAAE3a,GAAGgoE,EAAE,IAAI7kD,EAAEnjB,GAAG08I,EAAE18I,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGnC,EAAEpxE,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE10E,EAAEsoG,GAAG5sK,EAAEskE,EAAEuC,EAAEmyE,EAAE,IAAIA,EAAE18I,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGnC,EAAEpxE,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE10E,EAAEspG,GAAG5jK,EAAEiN,EAAEqtD,EAAE00E,GAAG9lJ,EAAEuzE,EAAE,KAAK,GAAGnC,EAAE00E,EAAE18I,EAAEpJ,EAAEuzE,EAAE,KAAK,GAAGuyE,EAAE2yB,GAAGllG,EAAEmlG,GAAGgB,GAAGtoG,EAAEwC,EAAEkyE,EAAEv5H,EAAE,IAAIvsB,EAAEy4K,GAAG,KAAK,GAAGC,GAAG14K,EAAEuzE,EAAE,KAAK,GAAGnqE,EAAE,IAAI,GAAGmxI,EAAEA,EAAE,EAAE,MAAMigC,GAAGzkK,EAAEy9D,GAAGinG,GAAG1kK,EAAEy9D,EAAE,KAAK,GAAGloE,EAAEkoE,EAAE,KAAK,EAAE,SAASz/C,EAAEw/C,GAAG,IAAIgnE,EAAE,EAAExkI,EAAE,EAAEy9D,EAAE,EAAEsyE,EAAE,EAAEryE,EAAE,EAAEE,EAAE,EAAE7mE,EAAE,EAAEiX,EAAE,EAAE4Z,EAAE,EAAE41C,EAAE,GAAGA,GAAG,EAAE,CAACE,GAAGD,EAAED,EAAE,EAAE,IAAIA,GAAG,GAAGgnE,EAAEv6I,EAAEuzE,EAAE,GAAG,KAAK,EAAEgnE,EAAE,KAAK,EAAEA,GAAG,CAAC,KAAK,EAAEA,GAAG,MAAMhnE,EAAE,IAAIC,EAAEA,GAAG+mE,EAAEv6I,EAAEwzE,GAAG,IAAI,KAAK,EAAEnkE,EAAE,MAAM,MAAMkkE,EAAE,GAAGA,EAAEA,EAAEgnE,EAAE,EAAEv6I,EAAE,QAAQ,EAAEwzE,IAAI,GAAG,IAAI,GAAG+mE,EAAEv6I,EAAEyzE,EAAE,GAAG,KAAK,OAAOzzE,EAAE,MAAMuzE,EAAEvzE,EAAEyzE,EAAE,GAAG,IAAI,EAAE8mE,EAAEv6I,EAAEwzE,EAAE,GAAG,GAAG,EAAED,OAAOvzE,EAAEuzE,EAAEC,GAAG,GAAGD,OAAO,CAAC,GAAGgnE,IAAI,GAAG,IAAI,CAAC,GAAGuL,EAAE9lJ,EAAEwzE,EAAE,GAAG,GAAG+mE,EAAEA,IAAI,EAAE,GAAG,GAAGxkI,EAAE/V,EAAEwzE,EAAE,IAAI,OAAO,EAAEsyE,GAAG,CAAC/hI,EAAE,MAAM4Z,EAAE39B,EAAE,MAAM85K,IAAI,EAAEv/B,GAAGv6I,EAAE+jB,GAAG,GAAG4Z,EAAE,MAAM48G,EAAEv6I,EAAE8lJ,EAAE,IAAI,GAAG/vI,EAAE/V,EAAE+V,EAAE,GAAG,GAAG+vI,EAAE,MAAMvL,EAAE,GAAGztI,EAAE9M,EAAEwzE,EAAE,IAAI,IAAI,EAAEA,KAAK,GAAG+mE,EAAEv6I,EAAEwzE,EAAE,IAAI,KAAK,IAAIz9D,EAAE/V,GAAG8lJ,EAAEtyE,EAAE,GAAG,IAAI,MAAMz9D,EAAE/V,GAAG8lJ,EAAEtyE,EAAE,GAAG,IAAI,IAAI,CAAC,KAAKG,EAAEmyE,GAAG/vI,EAAE/V,GAAG8lJ,GAAGvL,EAAExkI,GAAG,GAAG,IAAI,MAAM+vI,EAAEvL,EAAE,GAAG,EAAExkI,EAAE/V,EAAEu6I,EAAE,IAAI,MAAMv6I,EAAE2zE,GAAG,GAAG,OAAO4mE,EAAE,OAAOxkI,EAAE/V,EAAEwzE,EAAE,GAAG,GAAGxzE,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEv6I,EAAEu6I,EAAE,GAAG,GAAGxkI,EAAE,IAAIjJ,EAAE,MAAMytI,EAAEuL,EAAE9lJ,EAAEwzE,EAAE,IAAI,GAAGz9D,EAAE,CAAC,GAAG/V,GAAG+V,EAAE,OAAO+vI,GAAG,GAAG,IAAI,KAAK,EAAEtyE,GAAG,CAAC,GAAGxzE,EAAE+V,GAAG,GAAGwkI,EAAEA,EAAE,MAAMxkI,EAAEgO,EAAE,MAAM4Z,EAAE39B,EAAE,MAAM85K,IAAI,EAAEh0B,GAAG9lJ,EAAE+jB,GAAG,GAAG4Z,EAAE,MAAM48G,EAAE,GAAGv6I,EAAE8M,GAAG9M,EAAE8M,EAAE,IAAI,KAAK,EAAE0mE,GAAG,GAAG,KAAK,GAAG+mE,GAAGA,EAAE,MAAMA,EAAE,GAAGv6I,EAAEu6I,EAAE,IAAI,GAAGztI,GAAGiJ,EAAE/V,EAAEwzE,EAAE,IAAI,MAAMxzE,EAAEu6I,EAAE,IAAI,GAAGxkI,EAAE/V,EAAE+V,EAAE,IAAI,GAAGwkI,KAAKxkI,EAAE/V,EAAEwzE,EAAE,IAAI,IAAI,MAAM+mE,EAAEv6I,EAAEu6I,EAAE,IAAI,GAAGxkI,EAAE/V,EAAE+V,EAAE,IAAI,GAAGwkI,GAAG,KAAK/mE,IAAI,GAAGC,IAAI,IAAI,GAAG8mE,EAAEv6I,EAAEyzE,EAAE,GAAG,IAAI,CAAC8mE,EAAE,CAAC,KAAK,EAAEA,GAAG,CAAC,GAAGv6I,EAAE,QAAQ,EAAEyzE,GAAG,CAAC,GAAGzzE,EAAE,MAAMwzE,EAAED,EAAEvzE,EAAE,MAAMuzE,EAAE,EAAEvzE,EAAE,MAAMuzE,EAAEvzE,EAAEwzE,EAAE,GAAG,GAAG,EAAED,EAAEvzE,EAAE,QAAQ,EAAEwzE,GAAG,MAAMD,EAAE,OAAOvzE,EAAE,MAAM,OAAOA,EAAE,MAAM,GAAG,GAAGA,EAAE,QAAQ,EAAEyzE,GAAG,OAAOzzE,EAAE,MAAMwzE,EAAED,EAAEvzE,EAAE,MAAMuzE,EAAE,EAAEvzE,EAAE,MAAMuzE,EAAEvzE,EAAEwzE,EAAE,GAAG,GAAG,EAAED,OAAOvzE,EAAEuzE,EAAEC,GAAG,GAAGD,GAAGA,IAAI,EAAEgnE,GAAGhnE,EAAE,EAAEx9D,EAAE,GAAGwkI,IAAI,GAAG,IAAI,CAAC,GAAGA,EAAEA,IAAI,EAAE,GAAG,GAAGxkI,EAAE/V,EAAEyzE,EAAE,GAAG,OAAO,GAAGqyE,EAAE9lJ,EAAEyzE,EAAE,IAAI,KAAK,CAAC1vD,EAAE,MAAM4Z,EAAE39B,EAAE,MAAM85K,IAAI,EAAEv/B,GAAGv6I,EAAE+jB,GAAG,GAAG4Z,EAAE,MAAM5nB,EAAE/V,EAAE+V,EAAE,IAAI,GAAG+vI,EAAE9lJ,EAAE8lJ,EAAE,GAAG,GAAG/vI,MAAM,CAAC,GAAGjJ,EAAE9M,EAAEyzE,EAAE,IAAI,IAAI,EAAEA,KAAK,GAAG8mE,EAAEv6I,EAAEyzE,EAAE,IAAI,KAAK,IAAI19D,EAAE/V,GAAG8lJ,EAAEryE,EAAE,GAAG,IAAI,MAAM19D,EAAE/V,GAAG8lJ,EAAEryE,EAAE,GAAG,IAAI,IAAI,CAAC,KAAKE,EAAEmyE,GAAG/vI,EAAE/V,GAAG8lJ,GAAGvL,EAAExkI,GAAG,GAAG,IAAI,MAAM+vI,EAAEvL,EAAE,GAAG,EAAExkI,EAAE/V,EAAEu6I,EAAE,IAAI,MAAMv6I,EAAE2zE,GAAG,GAAG,OAAO4mE,EAAE,OAAOxkI,EAAE/V,EAAEyzE,EAAE,GAAG,GAAGzzE,EAAE+V,EAAE,IAAI,GAAGwkI,EAAEv6I,EAAEu6I,EAAE,GAAG,GAAGxkI,EAAE,GAAGjJ,EAAE,CAACg5I,EAAE9lJ,EAAEyzE,EAAE,IAAI,GAAGD,EAAE,CAAC,GAAGxzE,GAAG+V,EAAE,OAAO+vI,GAAG,GAAG,IAAI,KAAK,EAAEryE,GAAG,CAAC,GAAGzzE,EAAE+V,GAAG,GAAGwkI,EAAEA,EAAE,MAAM/mE,EAAEzvD,EAAE,MAAM4Z,EAAE39B,EAAE,MAAM85K,IAAI,EAAEh0B,GAAG9lJ,EAAE+jB,GAAG,GAAG4Z,EAAE,MAAM5nB,EAAE,GAAG/V,EAAE8M,GAAG9M,EAAE8M,EAAE,IAAI,KAAK,EAAE2mE,GAAG,GAAG,KAAK,GAAG8mE,GAAGA,EAAE,MAAMxkI,EAAE/V,EAAEu6I,EAAE,IAAI,GAAGztI,GAAGiJ,EAAE/V,EAAEyzE,EAAE,IAAI,MAAMzzE,EAAEu6I,EAAE,IAAI,GAAGxkI,EAAE/V,EAAE+V,EAAE,IAAI,GAAGwkI,IAAIxkI,EAAE/V,EAAEyzE,EAAE,IAAI,MAAMzzE,EAAEu6I,EAAE,IAAI,GAAGxkI,EAAE/V,EAAE+V,EAAE,IAAI,GAAGwkI,IAAI,GAAGv6I,EAAEwzE,EAAE,GAAG,GAAG,EAAED,EAAEvzE,EAAEuzE,EAAEC,GAAG,GAAGD,EAAEvzE,EAAE,QAAQ,EAAEwzE,GAAG,MAAM+mE,EAAE,YAAYv6I,EAAE,MAAMuzE,GAAGvzE,EAAEyzE,EAAE,GAAG,IAAI,EAAE8mE,EAAEv6I,EAAEwzE,EAAE,GAAG,GAAG,EAAED,EAAEvzE,EAAEuzE,EAAEC,GAAG,GAAGD,EAAE,GAAGA,IAAI,GAAG,IAAI,OAAOgnE,EAAE,QAAQhnE,EAAEA,IAAI,EAAE,IAAI,GAAG,GAAGx9D,EAAE/V,EAAE,QAAQuzE,EAAE,GAAGA,GAAGA,EAAEvzE,EAAEu6I,EAAE,GAAG,IAAIv6I,EAAE,MAAMuzE,EAAEx9D,EAAEw9D,EAAEgnE,GAAGv6I,EAAEu6I,EAAE,GAAG,GAAG/mE,EAAExzE,EAAEuzE,EAAE,IAAI,GAAGC,EAAExzE,EAAEwzE,EAAE,IAAI,GAAG+mE,OAAOv6I,EAAEwzE,EAAE,GAAG,GAAGD,GAAGuyE,EAAE,GAAG9lJ,EAAEwzE,EAAE,IAAI,GAAG,EAAExzE,EAAEwzE,EAAE,IAAI,GAAG,EAAED,IAAI,GAAG,WAAWgnE,EAAEhnE,IAAI,EAAE,EAAEgnE,IAAI5mE,EAAE4mE,EAAE,UAAU,GAAG,EAAEuL,EAAE,KAAKvL,IAAIA,IAAIuL,EAAEvL,EAAE,SAAS,GAAG,KAAKxkI,EAAEwkI,EAAE,SAAS,GAAG,KAAK,GAAG,IAAIxkI,EAAE+vI,EAAEnyE,GAAG,IAAI,EAAEJ,IAAIgnE,EAAE,GAAG,GAAG,GAAGv6I,EAAEwzE,EAAE,IAAI,GAAGsyE,EAAEnyE,EAAE,OAAOmyE,GAAG,GAAG,EAAEvL,EAAE,CAACxkI,EAAE,CAAC,IAAIA,EAAE/V,EAAE,QAAQu6I,EAAE,GAAGuL,GAAG,CAAC,IAAIA,EAAEvyE,IAAI,KAAK,EAAEuyE,GAAG,EAAE,IAAIA,IAAI,EAAE,GAAG,GAAGvL,EAAEv6I,EAAE2zE,GAAG,KAAK,CAAC,GAAG59D,EAAEwkI,IAAI,EAAEv6I,EAAEu6I,EAAE,GAAG,MAAM,EAAEhnE,GAAG,MAAMx9D,EAAE,GAAGwkI,EAAEuL,IAAI,GAAG,EAAEA,IAAI,IAAIvL,EAAEv6I,EAAE,IAAI2zE,EAAE59D,GAAG,EAAEwkI,GAAG,IAAI,IAAI,MAAMv6I,EAAE2zE,EAAE,IAAI,GAAGH,EAAExzE,EAAEwzE,EAAE,IAAI,GAAGz9D,OAAO/V,EAAE,MAAMu6I,EAAExkI,EAAE/V,EAAE2zE,GAAG,GAAGH,EAAExzE,EAAEwzE,EAAE,IAAI,GAAGG,EAAE3zE,EAAEwzE,EAAE,IAAI,GAAGA,EAAExzE,EAAEwzE,EAAE,GAAG,GAAGA,EAAE,MAAM+mE,EAAEhnE,EAAEvzE,EAAE+V,EAAE,GAAG,GAAG/V,EAAEuzE,EAAE,IAAI,GAAGC,EAAExzE,EAAE+V,EAAE,GAAG,GAAGy9D,EAAExzE,EAAEwzE,EAAE,IAAI,GAAG,EAAExzE,EAAEwzE,EAAE,IAAI,GAAGz9D,EAAE/V,EAAEwzE,EAAE,GAAG,GAAGD,EAAEA,EAAEvzE,EAAE,MAAM,EAAE,EAAEA,EAAE,MAAMuzE,IAAI,IAAI,SAASx1C,EAAEw1C,EAAEgnE,GAAG,IAAIxkI,EAAEy9D,EAAE,EAAEsyE,EAAE,EAAEryE,EAAE,EAAEE,EAAE,EAAE7mE,EAAE,EAAEuC,EAAE,EAAE0U,EAAE,EAAEhO,EAAEw9D,EAAEgnE,EAAE,EAAEhnE,EAAE,CAACgnE,EAAE,KAAK,GAAG/mE,EAAExzE,EAAEuzE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAEC,GAAG,MAAMD,EAAE,GAAGgnE,GAAG/mE,EAAExzE,EAAEuzE,GAAG,IAAIgnE,EAAE,GAAG,GAAGhnE,EAAEA,EAAEC,EAAE,KAAKxzE,EAAE,OAAO,GAAG,IAAI,GAAGwzE,EAAExzE,EAAE+V,EAAE,GAAG,KAAK,OAAO/V,EAAE,MAAMu6I,EAAEv6I,EAAE+V,EAAE,GAAG,IAAI,EAAEy9D,EAAExzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEgnE,OAAOv6I,EAAE+V,GAAG,GAAGwkI,OAAO,CAAC,GAAG/mE,IAAI,GAAG,IAAI,CAAC,GAAGC,EAAEzzE,EAAEuzE,EAAE,GAAG,GAAGC,EAAEA,IAAI,EAAE,GAAG,GAAGsyE,EAAE9lJ,EAAEuzE,EAAE,IAAI,OAAO,EAAEE,GAAG,CAACpkE,EAAE,MAAM0U,EAAE/jB,EAAE,MAAM85K,IAAI,EAAEtmG,GAAGxzE,EAAEqP,GAAG,GAAG0U,EAAE,MAAMw2H,EAAEv6I,EAAEyzE,EAAE,IAAI,GAAGqyE,EAAE9lJ,EAAE8lJ,EAAE,GAAG,GAAGryE,EAAE,MAAM8mE,EAAE,GAAGztI,EAAE9M,EAAEuzE,EAAE,IAAI,IAAI,GAAGC,EAAExzE,EAAEuzE,EAAE,IAAI,OAAO,EAAEA,GAAG,IAAIuyE,EAAE9lJ,GAAGyzE,EAAEF,EAAE,GAAG,IAAI,MAAMuyE,EAAE9lJ,GAAGyzE,EAAEF,EAAE,GAAG,IAAI,IAAI,CAAC,KAAKI,EAAEF,GAAGqyE,EAAE9lJ,GAAGyzE,GAAGD,EAAEsyE,GAAG,GAAG,IAAI,MAAMryE,EAAED,EAAE,GAAG,EAAEsyE,EAAE9lJ,EAAEwzE,EAAE,IAAI,MAAMxzE,EAAE2zE,GAAG,GAAG,OAAOH,EAAE,OAAOsyE,EAAE9lJ,EAAEuzE,EAAE,GAAG,GAAGvzE,EAAE8lJ,EAAE,IAAI,GAAGtyE,EAAExzE,EAAEwzE,EAAE,GAAG,GAAGsyE,EAAE,IAAIh5I,EAAE,MAAMytI,EAAE9mE,EAAEzzE,EAAEuzE,EAAE,IAAI,GAAGx9D,EAAE,CAAC,GAAG/V,GAAG8lJ,EAAE,OAAOryE,GAAG,GAAG,IAAI,KAAK,EAAEF,GAAG,CAAC,GAAGvzE,EAAE8lJ,GAAG,GAAGtyE,EAAEA,EAAE,MAAMz9D,EAAE1G,EAAE,MAAM0U,EAAE/jB,EAAE,MAAM85K,IAAI,EAAErmG,GAAGzzE,EAAEqP,GAAG,GAAG0U,EAAE,MAAMw2H,EAAE,GAAGv6I,EAAE8M,GAAG9M,EAAE8M,EAAE,IAAI,KAAK,EAAEymE,GAAG,GAAG,KAAK,GAAGC,GAAGA,EAAE,MAAM+mE,EAAE,GAAGv6I,EAAEwzE,EAAE,IAAI,GAAG1mE,GAAGg5I,EAAE9lJ,EAAEuzE,EAAE,IAAI,MAAMvzE,EAAEwzE,EAAE,IAAI,GAAGsyE,EAAE9lJ,EAAE8lJ,EAAE,IAAI,GAAGtyE,KAAKsyE,EAAE9lJ,EAAEuzE,EAAE,IAAI,IAAI,MAAMgnE,EAAEv6I,EAAEwzE,EAAE,IAAI,GAAGsyE,EAAE9lJ,EAAE8lJ,EAAE,IAAI,GAAGtyE,GAAG+mE,EAAE,CAAC,KAAK,GAAG/mE,EAAExzE,EAAE+V,EAAE,GAAG,KAAK,CAAC,GAAG/V,EAAE,QAAQ,EAAE+V,GAAG,CAAC,GAAG/V,EAAE,MAAMuzE,EAAEgnE,EAAEv6I,EAAE,MAAMu6I,EAAE,EAAEv6I,EAAE,MAAMu6I,EAAEv6I,EAAEuzE,EAAE,GAAG,GAAG,EAAEgnE,EAAEv6I,EAAE,QAAQ,EAAEuzE,GAAG,MAAMA,EAAE,OAAOvzE,EAAE,MAAM,OAAOA,EAAE,MAAM,GAAG,GAAGA,EAAE,QAAQ,EAAE+V,GAAG,OAAO/V,EAAE,MAAMuzE,EAAEgnE,EAAEv6I,EAAE,MAAMu6I,EAAE,EAAEv6I,EAAE,MAAMu6I,EAAEv6I,EAAEuzE,EAAE,GAAG,GAAG,EAAEgnE,OAAOv6I,EAAEuzE,EAAEgnE,GAAG,GAAGA,GAAGA,IAAI,EAAE/mE,GAAG+mE,EAAE,EAAExkI,EAAE,GAAGy9D,IAAI,GAAG,IAAI,CAAC,GAAGC,EAAEzzE,EAAE+V,EAAE,GAAG,GAAGy9D,EAAEA,IAAI,EAAE,GAAG,GAAGsyE,EAAE9lJ,EAAE+V,EAAE,IAAI,OAAO,EAAE09D,GAAG,CAACpkE,EAAE,MAAM0U,EAAE/jB,EAAE,MAAM85K,IAAI,EAAEtmG,GAAGxzE,EAAEqP,GAAG,GAAG0U,EAAE,MAAMhO,EAAE/V,EAAEyzE,EAAE,IAAI,GAAGqyE,EAAE9lJ,EAAE8lJ,EAAE,GAAG,GAAGryE,MAAM,CAAC,GAAG3mE,EAAE9M,EAAE+V,EAAE,IAAI,IAAI,EAAEA,KAAK,GAAGy9D,EAAExzE,EAAE+V,EAAE,IAAI,KAAK,IAAI09D,EAAEzzE,GAAG8lJ,EAAE/vI,EAAE,GAAG,IAAI,MAAM09D,EAAEzzE,GAAG8lJ,EAAE/vI,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK49D,EAAEmyE,GAAGryE,EAAEzzE,GAAG8lJ,GAAGtyE,EAAEC,GAAG,GAAG,IAAI,MAAMqyE,EAAEtyE,EAAE,GAAG,EAAEC,EAAEzzE,EAAEwzE,EAAE,IAAI,MAAMxzE,EAAE2zE,GAAG,GAAG,OAAOH,EAAE,OAAOsyE,EAAE9lJ,EAAE+V,EAAE,GAAG,GAAG/V,EAAE8lJ,EAAE,IAAI,GAAGtyE,EAAExzE,EAAEwzE,EAAE,GAAG,GAAGsyE,EAAE,GAAGh5I,EAAE,CAAC2mE,EAAEzzE,EAAE+V,EAAE,IAAI,GAAGy9D,EAAE,CAAC,GAAGxzE,GAAG8lJ,EAAE,OAAOryE,GAAG,GAAG,IAAI,KAAK,EAAE19D,GAAG,CAAC,GAAG/V,EAAE8lJ,GAAG,GAAGtyE,EAAEA,EAAE,MAAMA,EAAEnkE,EAAE,MAAM0U,EAAE/jB,EAAE,MAAM85K,IAAI,EAAErmG,GAAGzzE,EAAEqP,GAAG,GAAG0U,EAAE,MAAMhO,EAAE,GAAG/V,EAAE8M,GAAG9M,EAAE8M,EAAE,IAAI,KAAK,EAAEiJ,GAAG,GAAG,KAAK,GAAGy9D,GAAGA,EAAE,MAAMz9D,EAAE/V,EAAEwzE,EAAE,IAAI,GAAG1mE,GAAGg5I,EAAE9lJ,EAAE+V,EAAE,IAAI,MAAM/V,EAAEwzE,EAAE,IAAI,GAAGsyE,EAAE9lJ,EAAE8lJ,EAAE,IAAI,GAAGtyE,IAAIsyE,EAAE9lJ,EAAE+V,EAAE,IAAI,MAAM/V,EAAEwzE,EAAE,IAAI,GAAGsyE,EAAE9lJ,EAAE8lJ,EAAE,IAAI,GAAGtyE,IAAI,GAAGxzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEgnE,EAAEv6I,EAAEuzE,EAAEgnE,GAAG,GAAGA,EAAEv6I,EAAE,QAAQ,EAAEuzE,GAAG,MAAMgnE,EAAE,YAAYv6I,EAAE,MAAMu6I,GAAGv6I,EAAE+V,EAAE,GAAG,IAAI,EAAEy9D,EAAExzE,EAAEuzE,EAAE,GAAG,GAAG,EAAEgnE,EAAEv6I,EAAEuzE,EAAEgnE,GAAG,GAAGA,EAAE,GAAGA,IAAI,GAAG,IAAI,OAAO/mE,EAAE,QAAQ+mE,EAAEA,IAAI,EAAE,IAAI,GAAG,GAAGuL,EAAE9lJ,EAAE,QAAQu6I,EAAE,GAAGA,GAAGA,EAAEv6I,EAAEwzE,EAAE,GAAG,IAAIxzE,EAAE,MAAMu6I,EAAEuL,EAAEvL,EAAE/mE,GAAGxzE,EAAEwzE,EAAE,GAAG,GAAGD,EAAEvzE,EAAEu6I,EAAE,IAAI,GAAGhnE,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGC,OAAOxzE,EAAEuzE,EAAE,GAAG,GAAGgnE,GAAG9mE,EAAE,GAAGzzE,EAAEuzE,EAAE,IAAI,GAAG,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAG,EAAEgnE,IAAI,GAAG,WAAW/mE,EAAE+mE,IAAI,EAAE,EAAE/mE,IAAIG,EAAEH,EAAE,UAAU,GAAG,EAAEC,EAAE,KAAKD,IAAIA,IAAIC,EAAED,EAAE,SAAS,GAAG,KAAKsyE,EAAEtyE,EAAE,SAAS,GAAG,KAAK,GAAG,IAAIsyE,EAAEryE,EAAEE,GAAG,IAAI,EAAE4mE,IAAI/mE,EAAE,GAAG,GAAG,GAAGxzE,EAAEuzE,EAAE,IAAI,GAAGE,EAAEE,EAAE,OAAOF,GAAG,GAAG,EAAE8mE,EAAE,CAAC,IAAIuL,EAAE9lJ,EAAE,QAAQwzE,EAAE,GAAGC,GAAG,CAAC,IAAIA,EAAE8mE,IAAI,KAAK,EAAE9mE,GAAG,EAAE,IAAIA,IAAI,EAAE,GAAG,GAAGD,EAAExzE,EAAE2zE,GAAG,KAAK,CAAC,GAAGmyE,EAAEtyE,IAAI,EAAExzE,EAAEwzE,EAAE,GAAG,MAAM,EAAE+mE,GAAG,MAAMA,EAAE,GAAG/mE,EAAEC,IAAI,GAAG,EAAEA,IAAI,IAAID,EAAExzE,EAAE,IAAI2zE,EAAEmyE,GAAG,EAAEtyE,GAAG,IAAI,IAAI,MAAMxzE,EAAE2zE,EAAE,IAAI,GAAGJ,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGuyE,OAAO9lJ,EAAE,MAAMwzE,EAAEsyE,EAAE9lJ,EAAE2zE,GAAG,GAAGJ,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGI,EAAE,OAAO3zE,EAAEuzE,EAAE,IAAI,GAAGA,OAAOvzE,EAAEuzE,EAAE,GAAG,GAAGA,GAAGgnE,EAAEv6I,EAAE8lJ,EAAE,GAAG,GAAG9lJ,EAAEu6I,EAAE,IAAI,GAAGhnE,EAAEvzE,EAAE8lJ,EAAE,GAAG,GAAGvyE,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAG,EAAEvzE,EAAEuzE,EAAE,IAAI,GAAGuyE,EAAE9lJ,EAAEuzE,EAAE,GAAG,GAAGgnE,GAAG,SAAS4jB,EAAE5qF,EAAEgnE,EAAExkI,EAAEy9D,EAAEsyE,GAAG,IAAInyE,EAAEtkE,EAAE0U,EAAE4Z,EAAE7mB,EAAEyV,EAAE6kD,EAAEpyC,EAAEsyC,EAAEttD,EAAEkqE,EAAExa,EAAEzD,EAAE7mE,EAAEoC,EAAEooE,EAAE,EAAEC,EAAE,EAAEj2C,EAAE,EAAEsL,EAAE,EAAE4qC,EAAE,EAAEkqF,EAAE,EAAEtyJ,EAAE,EAAEqoB,EAAE,EAAEgK,EAAE,EAAEogI,EAAE,EAAEvW,EAAE,EAAEjwD,EAAE,EAAEsmE,EAAE,EAAEvhB,EAAE,EAAE2hB,EAAE,EAAE1oF,EAAE,EAAE4oF,EAAE,EAAEj1J,EAAE,EAAE40J,EAAE,EAAEhP,EAAE,EAAE90D,EAAE,EAAEkkE,EAAE,EAAEhK,EAAE,EAAExE,EAAE,EAAEV,EAAE,EAAE5oJ,EAAE,EAAEg4J,EAAE,EAAEJ,EAAE,EAAE7sF,EAAE,EAAEktF,EAAE,EAAE4Z,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE,IAAIltK,EAAEqoE,EAAEroE,GAAG,GAAG,EAAE+D,EAAErP,EAAEuzE,EAAE,IAAI,GAAGxvD,EAAE/jB,EAAEuzE,EAAE,IAAI,GAAG27E,EAAElvJ,EAAEuzE,EAAE,IAAI,GAAGjqE,EAAEtJ,EAAEuzE,EAAE,IAAI,GAAG51C,EAAE39B,EAAEuzE,EAAE,IAAI,GAAGz8D,EAAE9W,EAAEuzE,EAAE,IAAI,GAAGhnD,EAAEvsB,EAAEuzE,EAAE,IAAI,GAAGnC,EAAEpxE,EAAEuzE,EAAE,IAAI,GAAGv0C,EAAEh/B,EAAEuzE,EAAE,IAAI,GAAGjC,EAAEtxE,EAAEuzE,EAAE,IAAI,GAAGvvD,EAAEhkB,EAAEuzE,EAAE,IAAI,GAAG2a,EAAEluF,EAAEuzE,EAAE,IAAI,GAAGG,EAAE1zE,EAAEuzE,EAAE,IAAI,GAAGtD,EAAEjwE,EAAEuzE,EAAE,GAAG,GAAGnqE,EAAEpJ,EAAEuzE,EAAE,GAAG,GAAG/nE,EAAExL,EAAEuzE,GAAG,KAAK,CAAC,IAAIuyE,EAAEtyE,IAAI,EAAE,GAAGsyE,EAAEloH,EAAE7nB,MAAM,CAAC,GAAGmzB,EAAE,EAAEtL,EAAEg2C,EAAE+kG,GAAGhlG,EAAE,EAAE,IAAIH,EAAEsyE,EAAE,KAAKryE,EAAEG,EAAE1qC,EAAE,GAAGp8B,EAAEytI,EAAErxG,EAAE,IAAI48G,GAAG58G,EAAEA,EAAE,EAAE,KAAK,EAAEsqC,IAAI,EAAEsyE,IAAIvL,EAAE38G,EAAE02H,EAAEv+I,EAAE,IAAIqkF,EAAE,GAAGrmE,EAAEvoB,EAAEuyB,EAAE30B,EAAE+0J,EAAEluF,EAAE23E,EAAEl0E,EAAExqC,EAAEglD,EAAEta,EAAE5vD,EAAEjO,EAAEu7D,EAAEqmB,EAAE34D,EAAE80C,EAAE1C,EAAE4sF,EAAEzxI,EAAE0xI,EAAEnnJ,EAAE4lI,EAAErtI,EAAEgvJ,EAAEt6I,EAAE8vD,EAAEq7E,EAAEv5E,EAAErsE,EAAE40J,EAAEvgI,EAAEjyB,EAAEw9B,EAAEnV,EAAE4mJ,IAAIzxI,EAAEA,EAAEnV,EAAE,GAAG4hD,EAAE,IAAIA,EAAEglG,GAAGjvK,GAAGooE,EAAE//C,EAAE+/C,EAAE,GAAG,IAAIpoE,EAAEooE,EAAEA,EAAE6mG,IAAI7mG,EAAE//C,IAAIA,EAAEmV,EAAEysC,EAAE,GAAG,GAAGzsC,EAAEyxI,GAAGhlG,GAAG4oF,EAAE7yJ,EAAEooE,EAAE,GAAG,GAAGpoE,EAAEkoE,EAAE71C,EAAE48I,IAAI/mG,EAAEA,EAAE71C,EAAE,GAAG81C,EAAE,IAAIA,EAAE8mG,GAAGjvK,GAAGsyJ,EAAEjgI,EAAEigI,EAAE,GAAG,IAAItyJ,EAAEsyJ,EAAEA,EAAE2c,IAAI3c,EAAEjgI,IAAIA,EAAE61C,EAAEC,EAAE,GAAG,GAAGD,EAAE+mG,GAAG9mG,GAAGyqF,EAAE5yJ,EAAEsyJ,EAAE,GAAG,GAAGnqF,EAAE99D,EAAEooJ,EAAEwc,IAAI5kK,EAAEA,EAAEooJ,EAAE,GAAGE,EAAE,IAAI3yJ,EAAE2yJ,EAAEsc,GAAG9mG,GAAGoqF,EAAEE,EAAEF,EAAE,GAAG,IAAII,EAAEsc,IAAI9mG,EAAEsqF,IAAIA,EAAEpoJ,EAAEsoJ,EAAE,GAAG,GAAGtoJ,EAAE4kK,GAAGjvK,GAAGuyJ,EAAEI,EAAEJ,EAAE,GAAG,GAAGpqF,EAAE8jB,EAAEiwD,EAAE+yB,IAAIhjF,EAAEA,EAAEiwD,EAAE,GAAGlL,EAAE,IAAIwhB,EAAErqF,EAAE8mG,GAAG9mG,GAAG6oE,EAAEkL,EAAEsW,EAAE,GAAG,IAAIxyJ,EAAEgxI,EAAEA,EAAEi+B,IAAIj+B,EAAEkL,IAAIA,EAAEjwD,EAAE9jB,EAAE,GAAG,GAAG8jB,EAAEgjF,GAAGzc,GAAGrqF,EAAEnoE,EAAEgxI,EAAE,GAAG,GAAGhxI,EAAEuyJ,EAAEA,EAAE0c,IAAI5mJ,EAAE6/C,EAAE7/C,EAAE,GAAG2oH,EAAE,IAAI9oE,EAAE+mG,IAAIhlG,EAAEjqE,EAAEuyJ,EAAE,GAAGrqF,EAAE,IAAI8oE,EAAEi+B,GAAG1c,GAAGlqI,EAAE6/C,EAAE7/C,EAAE,GAAG,GAAG6/C,EAAE+mG,GAAG/mG,GAAGqqF,EAAEtoF,EAAE+mE,EAAE,GAAG,GAAG5oE,EAAE6mG,IAAI58I,EAAEhoB,EAAEgoB,EAAE,GAAG+1C,EAAE,IAAI/9D,EAAE4kK,IAAI9mG,EAAEC,EAAED,EAAE,GAAG99D,EAAE,IAAI4/D,EAAEglG,GAAG7mG,GAAG/1C,EAAEhoB,EAAEgoB,EAAE,GAAG,GAAGhoB,EAAE4kK,GAAG5kK,GAAGmoJ,EAAErqF,EAAE8B,EAAE,GAAG,GAAG7B,EAAE6mG,IAAIxc,EAAExmE,EAAEwmE,EAAE,GAAGH,EAAE,IAAIrmE,EAAEgjF,IAAI3c,EAAElqF,EAAEyqF,EAAE,GAAG5mE,EAAE,IAAI9jB,EAAE8mG,GAAG7mG,GAAGqqF,EAAExmE,EAAEwmE,EAAE,GAAG,GAAGxmE,EAAEgjF,GAAGhjF,GAAG7jB,EAAEkqF,EAAEnqF,EAAE,GAAG,GAAGmqF,EAAE2c,IAAI/yB,EAAE1+G,EAAE0+G,EAAE,GAAGyW,EAAE,IAAIn1H,EAAEyxI,IAAIpc,EAAEP,EAAEM,EAAE,GAAGp1H,EAAE,IAAIm1H,EAAEsc,GAAG3c,GAAGpW,EAAE1+G,EAAE0+G,EAAE,GAAG,GAAG1+G,EAAEyxI,GAAGzxI,GAAG80H,EAAEO,EAAEF,EAAE,GAAG,GAAGjkE,EAAEA,EAAE,EAAE,IAAI,GAAGA,EAAEttF,EAAEytI,EAAE,EAAE,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,EAAEztI,EAAEytI,EAAE,EAAE,IAAI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,GAAGgkB,EAAEzxJ,EAAEytI,EAAE,EAAE,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAG+jB,EAAExxJ,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAGuV,EAAEhjJ,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAG6U,EAAEtiJ,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAG/zI,EAAEsG,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAGikB,EAAE1xJ,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAG6jB,EAAEtxJ,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAGhpE,EAAEzkE,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAGkkB,EAAE3xJ,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAG89B,GAAGvrK,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAG+9B,GAAGxrK,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAGg+B,GAAGzrK,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAGi+B,GAAG1rK,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAG7uI,EAAEoB,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,GAAGqgC,GAAGh9I,EAAE7J,EAAEvoB,GAAGsB,EAAE,EAAEytI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,EAAEztI,EAAEytI,EAAE,EAAE,IAAI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,KAAKqgC,GAAGh9I,EAAE,EAAE,EAAEG,EAAE30B,EAAEgxF,GAAGwgF,GAAGh9I,EAAE,EAAE,EAAEugI,EAAEluF,EAAEsuF,GAAGqc,GAAGh9I,EAAE,GAAG,EAAEgqH,EAAEl0E,EAAE4qF,GAAGsc,GAAGh9I,EAAE,GAAG,EAAEsL,EAAEglD,EAAE4hE,GAAG8qB,GAAGh9I,EAAE,GAAG,EAAEg2C,EAAE5vD,EAAEorI,GAAGwrB,GAAGh9I,EAAE,GAAG,EAAE7nB,EAAEu7D,EAAE9qE,GAAGo0K,GAAGh9I,EAAE,GAAG,EAAE+5D,EAAE34D,EAAEw/H,GAAGoc,GAAGh9I,EAAE,GAAG,EAAEk2C,EAAE1C,EAAEgtF,GAAGwc,GAAGh9I,EAAE,GAAG,EAAEogI,EAAEzxI,EAAEglD,GAAGqpG,GAAGh9I,EAAE,GAAG,EAAE6gI,EAAER,EAAEnnJ,GAAG8jK,GAAGh9I,EAAE,GAAG,EAAEy6I,GAAGna,EAAEvgI,GAAGi9I,GAAGh9I,EAAE,GAAG,EAAE06I,GAAG3iG,EAAErsE,GAAGsxK,GAAGh9I,EAAE,GAAG,EAAE26I,GAAG1kG,EAAEq7E,GAAG0rB,GAAGh9I,EAAE,GAAG,EAAE46I,GAAGna,EAAEt6I,GAAG62J,GAAGh9I,EAAE,GAAG,EAAElyB,EAAEgxI,EAAErtI,GAAG6/I,IAAI5lJ,GAAGyM,EAAEzM,GAAG,EAAE,KAAK,EAAEyM,IAAI,GAAGm5I,EAAE,GAAGpJ,EAAEtyE,IAAI,GAAG,GAAG,CAAC,MAAMA,GAAGsyE,EAAEtyE,IAAI,EAAE,GAAG,IAAI,EAAEsyE,IAAI,IAAIlyE,EAAE,EAAEH,EAAEG,EAAE0gF,EAAE,GAAGxnJ,EAAE8wB,EAAEg2C,EAAE,IAAI,EAAEJ,KAAK,GAAGI,EAAEA,EAAE,EAAE,MAAM5zE,EAAEuzE,EAAE,IAAI,GAAG27E,EAAElvJ,EAAEuzE,EAAE,IAAI,GAAGjqE,EAAEgC,EAAEqoE,IAAI,GAAG,EAAE,MAAM4mE,EAAEA,IAAI,GAAG,EAAExkI,EAAE6nB,IAAI,GAAG,EAAEkoH,EAAEA,EAAE,EAAE,EAAEA,GAAGtyE,EAAEA,GAAG,GAAG,KAAK,EAAE,WAAWsyE,EAAE,EAAE,EAAEA,GAAG,SAAS8B,EAAEr0E,EAAEgnE,EAAExkI,EAAEy9D,GAAG,IAAIsyE,EAAE,EAAEryE,EAAE,EAAEE,EAAE,EAAEtkE,EAAE,EAAEsuB,EAAE,EAAE7mB,EAAE,EAAEyV,EAAE,EAAE6kD,EAAE,EAAEpyC,EAAE,EAAEsyC,EAAE,EAAEttD,EAAE,EAAEkqE,EAAE,EAAE5iF,EAAE,EAAEooE,EAAE,EAAEzD,EAAE,EAAEzkE,EAAE,EAAEooE,EAAE,EAAEC,EAAE,EAAEj2C,EAAE,EAAEsL,EAAE,EAAE4qC,EAAE,EAAEkqF,EAAE,EAAEtyJ,EAAE,EAAEqoB,EAAE,EAAEgK,EAAE,EAAE,GAAGiB,EAAEh/B,EAAEuzE,EAAE,IAAI,GAAGlkE,EAAErP,EAAEuzE,EAAE,IAAI,GAAGI,EAAE3zE,EAAEuzE,EAAE,IAAI,GAAGE,EAAEzzE,EAAEuzE,EAAE,IAAI,GAAG51C,EAAE39B,EAAEuzE,EAAE,IAAI,IAAIC,EAAEz9D,IAAI,GAAG,GAAGy9D,EAAE,IAAIM,GAAGhnE,EAAEymE,EAAE,GAAG,IAAI,GAAGvvD,EAAEhkB,EAAEuzE,EAAE,GAAG,GAAGyqF,EAAEj6I,EAAEC,EAAE,GAAG0vD,EAAE1zE,EAAEuzE,EAAE,GAAG,GAAGrqC,EAAEnlB,EAAE2vD,EAAE,GAAGG,EAAE7zE,EAAEuzE,EAAE,IAAI,GAAG31C,EAAE7Z,EAAE8vD,EAAE,GAAGiyE,EAAE9lJ,EAAEuzE,EAAE,IAAI,GAAGtD,EAAElsD,EAAE+hI,EAAE,GAAGp6I,EAAEo6I,EAAE53D,EAAEluF,EAAEuzE,GAAG,GAAGuyE,EAAE+zB,GAAG/iK,IAAIhK,EAAEytI,EAAE,EAAE,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,EAAEztI,EAAEytI,EAAE,EAAE,IAAI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,MAAM,EAAE,UAAU9mE,EAAE,EAAE,EAAEI,EAAE,GAAGtnD,EAAEnjB,EAAEqqE,GAAGnC,EAAEuoG,GAAGl8I,GAAG,UAAU7wB,EAAE,EAAEytI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,EAAEztI,EAAEytI,EAAE,EAAE,IAAI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,KAAK58G,EAAE,EAAE,EAAEjyB,EAAE,IAAIo6I,EAAE,EAAEA,EAAE18I,EAAEmjB,EAAE,EAAEu5H,EAAEryE,IAAI,EAAEnC,IAAI,EAAEw0E,EAAE,EAAE,EAAEA,EAAE10E,EAAEqC,EAAEA,EAAEomG,GAAGttJ,IAAIzf,EAAEytI,EAAE,EAAE,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,EAAEztI,EAAEytI,EAAE,EAAE,IAAI,GAAGztI,EAAEytI,EAAE,EAAE,IAAI,MAAM,EAAE,UAAU5mE,EAAE,EAAE,EAAED,EAAE,GAAGoyE,EAAE18I,EAAE08I,EAAE,EAAEA,EAAEryE,IAAI,GAAGE,EAAEvC,EAAEqC,EAAE,KAAK,EAAEqyE,EAAE,EAAE,EAAEA,EAAEryE,EAAEE,EAAEA,EAAEkmG,GAAGvoG,IAAIxkE,EAAEytI,EAAE,EAAE,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,MAAM,EAAE,GAAGlrI,EAAE,EAAE,EAAE2U,EAAE,GAAG8hI,EAAE18I,EAAE08I,EAAE,EAAEA,EAAEnyE,IAAI,GAAGtkE,EAAEokE,EAAEE,EAAE,KAAK,EAAEmyE,EAAE,EAAE,EAAEA,EAAEryE,EAAEpkE,EAAEA,EAAEwqK,GAAGvuK,EAAE0zB,EAAE80C,IAAIhnE,EAAEytI,EAAE,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,EAAEztI,EAAEytI,EAAE,GAAG,IAAI,GAAGztI,EAAEytI,EAAE,GAAG,IAAI,MAAM,GAAG,EAAE,EAAErsD,EAAE,GAAG43D,EAAE18I,EAAE08I,EAAE,EAAE/xH,EAAEiL,EAAEy0C,EAAEpkE,EAAE,EAAE2vB,EAAE3vB,IAAI,EAAE2vB,IAAI,EAAE8mH,EAAE,EAAE,EAAEA,EAAEA,EAAE+zB,GAAG/iK,EAAE,EAAE48D,EAAE,GAAGC,EAAEvqE,EAAEiG,GAAGokE,EAAEomG,GAAGl8I,EAAE,EAAEk2C,EAAE,IAAIiyE,EAAE,EAAEA,EAAE18I,EAAEuqE,EAAE,EAAEmyE,EAAEryE,IAAI,EAAEpkE,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAEnyE,EAAEkmG,GAAGttJ,EAAE,EAAEvI,EAAE,GAAG8hI,EAAE18I,EAAE08I,EAAE,EAAEA,EAAEnyE,IAAI,GAAGtkE,EAAEskE,EAAEtkE,EAAE,KAAK,EAAEy2I,EAAE,EAAE,EAAEA,EAAEnyE,EAAEkmG,GAAGvoG,EAAE,EAAE4c,EAAE,GAAG43D,EAAE18I,EAAE08I,EAAE,EAAEA,EAAEnyE,IAAI,GAAGtkE,EAAEskE,EAAEtkE,EAAE,KAAK,EAAEy2I,EAAE,EAAE,EAAEA,EAAEnyE,EAAEkmG,GAAGvuK,EAAE,EAAE2kE,EAAE,GAAG61E,EAAE18I,EAAE08I,EAAE,EAAE/nH,EAAE1uB,EAAEskE,EAAEtkE,EAAE,EAAEA,EAAEskE,IAAI,EAAEtkE,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,EAAEA,EAAE+zB,GAAG/iK,EAAE,EAAEkN,EAAE,GAAGyvD,EAAErqE,EAAEuqE,GAAGnoE,EAAEquK,GAAGl8I,EAAE,EAAE+1C,EAAE,IAAIoyE,EAAE,EAAEA,EAAE18I,EAAEqqE,EAAE,EAAEqyE,EAAEnyE,IAAI,EAAEnoE,IAAI,EAAEs6I,EAAE,EAAE,EAAEA,EAAEryE,EAAEomG,GAAGttJ,EAAE,EAAE2hE,EAAE,GAAG43D,EAAE18I,EAAE08I,EAAE,EAAEA,EAAEryE,IAAI,GAAGE,EAAEF,EAAEE,EAAE,KAAK,EAAEmyE,EAAE,EAAE,EAAEA,EAAEryE,EAAEomG,GAAGvoG,EAAE,EAAErB,EAAE,GAAG61E,EAAE18I,EAAE08I,EAAE,EAAEA,EAAEryE,IAAI,GAAGE,EAAEF,EAAEE,EAAE,KAAK,EAAEmyE,EAAE,EAAE,EAAEA,EAAEryE,EAAEomG,GAAGvuK,EAAE,EAAEsyB,EAAE,GAAGkoH,EAAE18I,EAAE08I,EAAE,EAAEt6I,EAAEmoE,EAAEF,EAAEE,EAAE,EAAEA,EAAEF,IAAI,EAAEE,IAAI,EAAEmyE,EAAE,EAAE,EAAEA,EAAEA,EAAE+zB,GAAG/iK,EAAE,EAAEo3E,EAAE,GAAG9c,EAAEhoE,EAAEqqE,GAAGG,EAAEimG,GAAGl8I,EAAE,EAAE3Z,EAAE,IAAI8hI,EAAE,EAAEA,EAAE18I,EAAEgoE,EAAE,EAAE00E,EAAEryE,IAAI,EAAEG,IAAI,EAAEkyE,EAAE,EAAE,EAAEA,EAAE10E,EAAEyoG,GAAGttJ,EAAE,EAAE0jD,EAAE,GAAG61E,EAAE18I,EAAE08I,EAAE,EAAEA,GAAGryE,EAAErC,EAAEqC,EAAE,KAAK,EAAErC,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE10E,EAAEyoG,GAAGvoG,EAAE,EAAE1zC,EAAE,GAAGkoH,EAAE18I,EAAE08I,EAAE,EAAEA,GAAGryE,EAAErC,EAAEqC,EAAE,KAAK,EAAErC,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE10E,EAAEyoG,GAAGvuK,EAAE,EAAE49B,EAAE,GAAG48G,EAAE18I,EAAE08I,EAAE,EAAEA,GAAGryE,EAAErC,EAAEqC,EAAE,KAAK,EAAErC,IAAI,EAAE00E,EAAE,EAAE,EAAEA,EAAE10E,EAAEqC,EAAEA,EAAEqyE,EAAEA,EAAE+zB,GAAG/iK,EAAE,EAAEm5D,EAAE,GAAG2D,EAAExqE,EAAE0N,GAAG6mB,EAAEk8I,GAAGl8I,EAAE,EAAEuwD,EAAE,IAAI43D,EAAE,EAAEA,EAAE18I,EAAEwqE,EAAE,EAAEkyE,EAAEhvI,IAAI,EAAE6mB,IAAI,EAAEmoH,EAAE,EAAE,EAAEA,EAAEnoH,EAAEk8I,GAAGttJ,EAAE,EAAEqR,EAAE,GAAGkoH,EAAE18I,EAAE08I,EAAE,EAAEA,GAAGhvI,EAAE6mB,EAAE7mB,EAAE,KAAK,EAAE6mB,IAAI,EAAEmoH,EAAE,EAAE,EAAEA,EAAEnoH,EAAEk8I,GAAGvoG,EAAE,EAAEpoC,EAAE,GAAG48G,EAAE18I,EAAE08I,EAAE,EAAEA,GAAGhvI,EAAE6mB,EAAE7mB,EAAE,KAAK,EAAE6mB,IAAI,EAAEmoH,EAAE,EAAE,EAAEA,EAAEnoH,EAAEk8I,GAAGvuK,EAAE,EAAE0yJ,EAAE,GAAGlY,EAAE18I,EAAE08I,EAAE,EAAEA,GAAGhvI,EAAE6mB,EAAE7mB,EAAE,KAAK,EAAE6mB,IAAI,EAAEmoH,EAAE,EAAE,EAAEA,EAAEnoH,EAAE7mB,EAAEyV,GAAG,SAASu5H,IAAI,EAAEhvI,IAAI,GAAGgvI,EAAEryE,EAAElnD,GAAG,UAAUu5H,GAAGhvI,EAAEyV,EAAE6kD,EAAE,KAAK,EAAE7kD,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,KAAK,GAAGryE,EAAE38D,KAAK,GAAGgvI,EAAEnyE,EAAEmyE,GAAGryE,EAAElnD,EAAE/gB,EAAE,KAAK,EAAE+gB,IAAI,EAAEu5H,EAAE,EAAE,EAAEA,EAAEv5H,EAAEknD,EAAEA,GAAG,SAASqyE,IAAI,EAAEryE,IAAI,GAAGqyE,EAAEz2I,EAAEiiE,EAAEqC,EAAEF,EAAE11C,EAAE,EAAE41C,GAAG,UAAUmyE,EAAEryE,IAAI,EAAEE,IAAI,EAAEmyE,EAAE,EAAE,EAAEA,KAAK,EAAEnyE,IAAI,GAAGmyE,EAAE9mH,EAAEA,EAAE3vB,EAAEskE,EAAE5/C,EAAE,EAAE0/C,GAAG,SAAS38D,KAAKgvI,EAAE/hI,GAAG,UAAU+hI,EAAEnyE,IAAI,EAAEtkE,IAAI,EAAEy2I,EAAE,EAAE,EAAEA,KAAK,EAAEz2I,IAAI,GAAG,IAAI,SAASsuB,GAAG,KAAK,GAAG,GAAG,EAAEg2C,EAAE,SAASpnD,EAAEld,EAAE,SAASiiE,EAAEtyC,GAAG,SAASrB,EAAE,SAASmoH,EAAEvL,EAAEA,EAAE,GAAG,IAAI/mE,EAAEA,GAAGz9D,IAAI,EAAE,IAAI,IAAIA,EAAEA,EAAE,GAAG,KAAK,EAAE,GAAGy9D,IAAIxzE,EAAEuzE,EAAE,IAAI,GAAG51C,EAAE39B,EAAEuzE,EAAE,IAAI,GAAGv0C,EAAEh/B,EAAEuzE,EAAE,IAAI,GAAGlkE,EAAErP,EAAEuzE,EAAE,IAAI,GAAGI,EAAE3zE,EAAEuzE,EAAE,IAAI,GAAGE,EAAE,SAASkkB,EAAEpkB,EAAEgnE,EAAExkI,GAAG,IAAIy9D,EAAEsyE,EAAEnyE,EAAE3zE,EAAEqP,EAAE,EAAE0U,EAAE,EAAE4Z,EAAE,EAAE7mB,EAAE,EAAEyV,EAAE,EAAE,OAAOjhB,EAAEqoE,EAAEroE,EAAE,IAAI,EAAEuvK,GAAGtgC,EAAExkI,EAAE,GAAG,GAAG09D,EAAE,EAAE8mE,GAAG,IAAIztI,EAAE,EAAEytI,GAAG9mE,EAAE8mE,EAAE,GAAG,GAAG,GAAGztI,EAAEytI,EAAE,GAAG,GAAG,GAAGm+B,GAAG/kG,EAAE4mE,GAAGugC,GAAGvnG,EAAEI,GAAG5vD,EAAEjX,GAAGg5I,EAAE/vI,GAAG,EAAE,GAAGjJ,EAAEg5I,EAAE,EAAE,IAAI,EAAEh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGz2I,EAAEvC,EAAEg5I,EAAE,GAAG,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,EAAEh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGnoH,EAAE7wB,EAAEg5I,EAAE,GAAG,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,EAAEh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGhvI,EAAEhK,EAAEg5I,EAAE,GAAG,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,EAAEh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGv5H,EAAEzf,EAAE,EAAEg5I,GAAGh5I,EAAEg5I,EAAE,EAAE,IAAI,EAAEh5I,EAAEg5I,EAAE,EAAE,IAAI,GAAGh5I,EAAEg5I,EAAE,EAAE,IAAI,GAAG/vI,EAAEjJ,EAAEg5I,EAAE,EAAE,GAAGh5I,EAAEg5I,EAAE,EAAE,IAAI,EAAEh5I,EAAEg5I,EAAE,EAAE,IAAI,GAAGh5I,EAAEg5I,EAAE,EAAE,IAAI,GAAGtyE,EAAE+mE,EAAEv6I,EAAE8M,EAAEg5I,EAAE,GAAG,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,EAAEh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGvL,EAAEztI,EAAEg5I,EAAE,GAAG,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,EAAEh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGh5I,EAAEg5I,EAAE,GAAG,IAAI,GAAGryE,EAAED,EAAE,GAAG,GAAG+mE,EAAE9mE,EAAED,EAAE,GAAG,GAAG+mE,IAAI,EAAE9mE,EAAED,EAAE,GAAG,GAAG+mE,IAAI,GAAG9mE,EAAED,EAAE,GAAG,GAAG+mE,IAAI,GAAG9mE,EAAED,EAAE,GAAG,GAAGxzE,EAAEyzE,EAAED,EAAE,GAAG,GAAGxzE,IAAI,EAAEyzE,EAAED,EAAE,GAAG,GAAGxzE,IAAI,GAAGyzE,EAAED,EAAE,GAAG,GAAGxzE,IAAI,GAAGyzE,EAAED,EAAE,GAAG,GAAG71C,EAAE81C,EAAED,EAAE,GAAG,GAAG71C,IAAI,EAAE81C,EAAED,EAAE,GAAG,GAAG71C,IAAI,GAAG81C,EAAED,EAAE,GAAG,GAAG71C,IAAI,GAAG81C,EAAED,EAAE,GAAG,GAAG18D,EAAE28D,EAAED,EAAE,GAAG,GAAG18D,IAAI,EAAE28D,EAAED,EAAE,GAAG,GAAG18D,IAAI,GAAG28D,EAAED,EAAE,GAAG,GAAG18D,IAAI,GAAG28D,EAAED,EAAE,EAAE,GAAGzvD,EAAE0vD,EAAED,EAAE,EAAE,GAAGzvD,IAAI,EAAE0vD,EAAED,EAAE,GAAG,GAAGzvD,IAAI,GAAG0vD,EAAED,EAAE,GAAG,GAAGzvD,IAAI,GAAG0vD,EAAED,EAAE,GAAG,GAAGnkE,EAAEokE,EAAED,EAAE,GAAG,GAAGnkE,IAAI,EAAEokE,EAAED,EAAE,GAAG,GAAGnkE,IAAI,GAAGokE,EAAED,EAAE,GAAG,GAAGnkE,IAAI,GAAGokE,EAAE,EAAED,GAAGjnD,EAAEknD,EAAED,EAAE,EAAE,GAAGjnD,IAAI,EAAEknD,EAAED,EAAE,EAAE,GAAGjnD,IAAI,GAAGknD,EAAED,EAAE,EAAE,GAAGjnD,IAAI,GAAGknD,EAAED,EAAE,EAAE,GAAGz9D,EAAE09D,EAAED,EAAE,EAAE,GAAGz9D,IAAI,EAAE09D,EAAED,EAAE,EAAE,GAAGz9D,IAAI,GAAG09D,EAAED,EAAE,EAAE,GAAGz9D,IAAI,GAAG4nB,EAAE7wB,GAAGuC,EAAEkkE,GAAG,EAAE,GAAGzmE,EAAEuC,EAAE,EAAE,IAAI,EAAEvC,EAAEuC,EAAE,GAAG,IAAI,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,GAAGyH,EAAEhK,EAAEuC,EAAE,GAAG,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,EAAEvC,EAAEuC,EAAE,GAAG,IAAI,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,GAAGkd,EAAEzf,EAAEuC,EAAE,GAAG,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,EAAEvC,EAAEuC,EAAE,GAAG,IAAI,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,GAAG0G,EAAEjJ,EAAEuC,EAAE,GAAG,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,EAAEvC,EAAEuC,EAAE,GAAG,IAAI,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,GAAGkrI,EAAEztI,EAAE,EAAEuC,GAAGvC,EAAEuC,EAAE,EAAE,IAAI,EAAEvC,EAAEuC,EAAE,EAAE,IAAI,GAAGvC,EAAEuC,EAAE,EAAE,IAAI,GAAGkkE,EAAEzmE,EAAEuC,EAAE,EAAE,GAAGvC,EAAEuC,EAAE,EAAE,IAAI,EAAEvC,EAAEuC,EAAE,EAAE,IAAI,GAAGvC,EAAEuC,EAAE,EAAE,IAAI,GAAG0U,EAAEjX,EAAEuC,EAAE,GAAG,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,EAAEvC,EAAEuC,EAAE,GAAG,IAAI,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,GAAGA,EAAEvC,EAAEuC,EAAE,GAAG,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,EAAEvC,EAAEuC,EAAE,GAAG,IAAI,GAAGvC,EAAEuC,EAAE,GAAG,IAAI,GAAGokE,EAAED,EAAE,GAAG,GAAGnkE,EAAEokE,EAAED,EAAE,GAAG,GAAGnkE,IAAI,EAAEokE,EAAED,EAAE,GAAG,GAAGnkE,IAAI,GAAGokE,EAAED,EAAE,GAAG,GAAGnkE,IAAI,GAAGokE,EAAED,EAAE,GAAG,GAAGzvD,EAAE0vD,EAAED,EAAE,GAAG,GAAGzvD,IAAI,EAAE0vD,EAAED,EAAE,GAAG,GAAGzvD,IAAI,GAAG0vD,EAAED,EAAE,GAAG,GAAGzvD,IAAI,GAAG0vD,EAAED,EAAE,GAAG,GAAGjnD,EAAEknD,EAAED,EAAE,GAAG,GAAGjnD,IAAI,EAAEknD,EAAED,EAAE,GAAG,GAAGjnD,IAAI,GAAGknD,EAAED,EAAE,GAAG,GAAGjnD,IAAI,GAAGknD,EAAED,EAAE,GAAG,GAAGz9D,EAAE09D,EAAED,EAAE,GAAG,GAAGz9D,IAAI,EAAE09D,EAAED,EAAE,GAAG,GAAGz9D,IAAI,GAAG09D,EAAED,EAAE,GAAG,GAAGz9D,IAAI,GAAG09D,EAAED,EAAE,GAAG,GAAG71C,EAAE81C,EAAED,EAAE,GAAG,GAAG71C,IAAI,EAAE81C,EAAED,EAAE,GAAG,GAAG71C,IAAI,GAAG81C,EAAED,EAAE,GAAG,GAAG71C,IAAI,GAAG81C,EAAED,EAAE,GAAG,GAAG18D,EAAE28D,EAAED,EAAE,GAAG,GAAG18D,IAAI,EAAE28D,EAAED,EAAE,GAAG,GAAG18D,IAAI,GAAG28D,EAAED,EAAE,GAAG,GAAG18D,IAAI,GAAG28D,EAAED,EAAE,GAAG,GAAG+mE,EAAE9mE,EAAED,EAAE,GAAG,GAAG+mE,IAAI,EAAE9mE,EAAED,EAAE,GAAG,GAAG+mE,IAAI,GAAG9mE,EAAED,EAAE,GAAG,GAAG+mE,IAAI,GAAG9mE,EAAED,EAAE,GAAG,GAAGD,EAAEE,EAAED,EAAE,GAAG,GAAGD,IAAI,EAAEE,EAAED,EAAE,GAAG,GAAGD,IAAI,GAAGE,EAAED,EAAE,GAAG,GAAGD,IAAI,GAAGjoE,EAAEqoE,EAAE,IAAI,EAAE,EAAE,SAASsqF,EAAE1qF,EAAEgnE,EAAExkI,GAAG,IAAIy9D,EAAEsyE,EAAE,EAAEnyE,EAAE,EAAE3zE,EAAE,EAAEsL,EAAEkoE,EAAEloE,GAAG,GAAG,EAAEioE,EAAE,CAAC,MAAMx9D,EAAEA,IAAI,GAAG,IAAI,CAAC,GAAG+vI,GAAG,IAAIh5I,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAGI,EAAEJ,GAAGuyE,EAAEh5I,EAAEymE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,IAAI,IAAI,EAAEzmE,EAAEymE,EAAE,IAAI,IAAI,GAAGzmE,EAAEymE,EAAE,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,GAAGqlG,GAAGrlG,EAAE,KAAK/nE,EAAE+nE,EAAEvzE,EAAEuzE,EAAE,GAAG,GAAGuyE,GAAGh5I,EAAEymE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,IAAI,IAAI,EAAEzmE,EAAEymE,EAAE,IAAI,IAAI,GAAGzmE,EAAEymE,EAAE,IAAI,IAAI,IAAI,IAAI,EAAEE,EAAEF,EAAE,IAAI,GAAGuyE,EAAEryE,EAAEF,EAAE,IAAI,GAAGuyE,IAAI,EAAEryE,EAAEF,EAAE,IAAI,GAAGuyE,IAAI,GAAGryE,EAAEF,EAAE,IAAI,GAAGuyE,IAAI,GAAGA,IAAI,GAAG,IAAI,MAAMvyE,EAAE+qF,EAAEt+J,EAAEuzE,EAAE,IAAI,EAAEuyE,GAAGA,EAAEh5I,EAAEymE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,IAAI,IAAI,EAAEzmE,EAAEymE,EAAE,IAAI,IAAI,GAAGzmE,EAAEymE,EAAE,IAAI,IAAI,GAAGqlG,GAAGjlG,EAAEmyE,GAAGh5I,EAAEymE,EAAE,IAAI,KAAKE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,KAAKE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIE,EAAEF,EAAE,GAAG,GAAG,IAAIolG,IAAI7yB,EAAEvyE,EAAE,GAAG,IAAII,EAAE7mE,EAAEymE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,IAAI,IAAI,EAAEzmE,EAAEymE,EAAE,IAAI,IAAI,GAAGzmE,EAAEymE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,IAAII,EAAE,GAAGnoE,EAAE+nE,EAAEuyE,GAAGi1B,GAAGvnG,EAAE1mE,EAAE,EAAEymE,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,EAAEzmE,EAAEymE,EAAE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,EAAE,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,EAAEzmE,EAAEymE,EAAE,EAAE,IAAI,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,IAAIwnG,GAAG,EAAEvnG,EAAE1mE,EAAEymE,EAAE,EAAE,GAAGzmE,EAAEymE,EAAE,EAAE,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAIwnG,GAAGvnG,EAAE,GAAG,EAAE1mE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAIwnG,GAAGvnG,EAAE,GAAG,EAAE1mE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAIwnG,GAAGvnG,EAAE,GAAG,EAAE1mE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAIwnG,GAAGvnG,EAAE,GAAG,EAAE1mE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAIwnG,GAAGvnG,EAAE,GAAG,EAAE1mE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,EAAEzmE,EAAEymE,EAAE,GAAG,IAAI,GAAGzmE,EAAEymE,EAAE,GAAG,IAAI,IAAIwnG,GAAGvn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","sources":["webpack://CosmWasmJS/webpack/universalModuleDefinition","webpack://CosmWasmJS/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://CosmWasmJS/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://CosmWasmJS/./node_modules/@babel/runtime/helpers/createClass.js","webpack://CosmWasmJS/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://CosmWasmJS/./node_modules/@babel/runtime/helpers/typeof.js","webpack://CosmWasmJS/./node_modules/@babel/runtime/regenerator/index.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/build/compress.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/build/generated/codecimpl.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/build/ics23.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/build/index.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/build/ops.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/build/proofs.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/build/specs.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/minimal.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/index-minimal.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/reader.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/reader_buffer.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/roots.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/rpc.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/rpc/service.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/util/longbits.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/util/minimal.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/writer.js","webpack://CosmWasmJS/./node_modules/@confio/ics23/node_modules/protobufjs/src/writer_buffer.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/addresses.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/coins.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/encoding.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/multisig.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/paths.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/pubkeys.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/secp256k1hdwallet.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/secp256k1wallet.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/signature.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/signdoc.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/stdtx.js","webpack://CosmWasmJS/./node_modules/@cosmjs/amino/build/wallet.js","webpack://CosmWasmJS/./node_modules/@cosmjs/cosmwasm-stargate/build/aminotypes.js","webpack://CosmWasmJS/./node_modules/@cosmjs/cosmwasm-stargate/build/cosmwasmclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/cosmwasm-stargate/build/encodeobjects.js","webpack://CosmWasmJS/./node_modules/@cosmjs/cosmwasm-stargate/build/encoding.js","webpack://CosmWasmJS/./node_modules/@cosmjs/cosmwasm-stargate/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/cosmwasm-stargate/build/queries/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/cosmwasm-stargate/build/queries/wasm.js","webpack://CosmWasmJS/./node_modules/@cosmjs/cosmwasm-stargate/build/signingcosmwasmclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/bip39.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/hmac.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/keccak.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/libsodium.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/pbkdf2.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/random.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/ripemd.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/secp256k1.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/secp256k1signature.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/sha.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/slip10.js","webpack://CosmWasmJS/./node_modules/@cosmjs/crypto/build/utils.js","webpack://CosmWasmJS/./node_modules/@cosmjs/encoding/build/ascii.js","webpack://CosmWasmJS/./node_modules/@cosmjs/encoding/build/base64.js","webpack://CosmWasmJS/./node_modules/@cosmjs/encoding/build/bech32.js","webpack://CosmWasmJS/./node_modules/@cosmjs/encoding/build/hex.js","webpack://CosmWasmJS/./node_modules/@cosmjs/encoding/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://CosmWasmJS/./node_modules/@cosmjs/encoding/build/utf8.js","webpack://CosmWasmJS/./node_modules/@cosmjs/faucet-client/build/faucetclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/faucet-client/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/json-rpc/build/compatibility.js","webpack://CosmWasmJS/./node_modules/@cosmjs/json-rpc/build/id.js","webpack://CosmWasmJS/./node_modules/@cosmjs/json-rpc/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/json-rpc/build/parse.js","webpack://CosmWasmJS/./node_modules/@cosmjs/json-rpc/build/types.js","webpack://CosmWasmJS/./node_modules/@cosmjs/ledger-amino/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/ledger-amino/build/ledgerconnector.js","webpack://CosmWasmJS/./node_modules/@cosmjs/ledger-amino/build/ledgersigner.js","webpack://CosmWasmJS/./node_modules/@cosmjs/math/build/decimal.js","webpack://CosmWasmJS/./node_modules/@cosmjs/math/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/math/build/integers.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/coins.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/decode.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/paths.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/pubkey.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/registry.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/signer.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/signing.js","webpack://CosmWasmJS/./node_modules/@cosmjs/proto-signing/build/wallet.js","webpack://CosmWasmJS/./node_modules/@cosmjs/socket/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js","webpack://CosmWasmJS/./node_modules/@cosmjs/socket/build/reconnectingsocket.js","webpack://CosmWasmJS/./node_modules/@cosmjs/socket/build/socketwrapper.js","webpack://CosmWasmJS/./node_modules/@cosmjs/socket/build/streamingsocket.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/accounts.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/aminomsgs.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/aminotypes.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/encodeobjects.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/fee.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/logs.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/multisignature.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/auth.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/bank.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/distribution.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/gov.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/ibc.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/mint.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/queryclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/slashing.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/staking.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/tx.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/queries/utils.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/search.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/signingstargateclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stargate/build/stargateclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stream/build/concat.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stream/build/defaultvalueproducer.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stream/build/dropduplicates.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stream/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stream/build/promise.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stream/build/reducer.js","webpack://CosmWasmJS/./node_modules/@cosmjs/stream/build/valueandupdates.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/addresses.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/dates.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js","webpack://CosmWasmJS/./node_modules/@cosmjs/tendermint-rpc/build/types.js","webpack://CosmWasmJS/./node_modules/@cosmjs/utils/build/arrays.js","webpack://CosmWasmJS/./node_modules/@cosmjs/utils/build/assert.js","webpack://CosmWasmJS/./node_modules/@cosmjs/utils/build/index.js","webpack://CosmWasmJS/./node_modules/@cosmjs/utils/build/sleep.js","webpack://CosmWasmJS/./node_modules/@cosmjs/utils/build/typechecks.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/_sha2.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/_u64.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/cryptoBrowser.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/hmac.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/pbkdf2.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/ripemd160.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/sha256.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/sha3.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/sha512.js","webpack://CosmWasmJS/./node_modules/@noble/hashes/utils.js","webpack://CosmWasmJS/./node_modules/@protobufjs/aspromise/index.js","webpack://CosmWasmJS/./node_modules/@protobufjs/base64/index.js","webpack://CosmWasmJS/./node_modules/@protobufjs/eventemitter/index.js","webpack://CosmWasmJS/./node_modules/@protobufjs/float/index.js","webpack://CosmWasmJS/./node_modules/@protobufjs/inquire/index.js","webpack://CosmWasmJS/./node_modules/@protobufjs/pool/index.js","webpack://CosmWasmJS/./node_modules/@protobufjs/utf8/index.js","webpack://CosmWasmJS/./node_modules/axios/index.js","webpack://CosmWasmJS/./node_modules/axios/lib/adapters/xhr.js","webpack://CosmWasmJS/./node_modules/axios/lib/axios.js","webpack://CosmWasmJS/./node_modules/axios/lib/cancel/Cancel.js","webpack://CosmWasmJS/./node_modules/axios/lib/cancel/CancelToken.js","webpack://CosmWasmJS/./node_modules/axios/lib/cancel/isCancel.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/Axios.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/InterceptorManager.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/buildFullPath.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/createError.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/dispatchRequest.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/enhanceError.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/mergeConfig.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/settle.js","webpack://CosmWasmJS/./node_modules/axios/lib/core/transformData.js","webpack://CosmWasmJS/./node_modules/axios/lib/defaults.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/bind.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/buildURL.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/combineURLs.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/cookies.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/spread.js","webpack://CosmWasmJS/./node_modules/axios/lib/helpers/validator.js","webpack://CosmWasmJS/./node_modules/axios/lib/utils.js","webpack://CosmWasmJS/./node_modules/base64-js/index.js","webpack://CosmWasmJS/./node_modules/bech32/index.js","webpack://CosmWasmJS/./node_modules/bn.js/lib/bn.js","webpack://CosmWasmJS/./node_modules/brorand/index.js","webpack://CosmWasmJS/./node_modules/buffer/index.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/confio/proofs.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/mint/v1beta1/mint.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/mint/v1beta1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/slashing/v1beta1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/slashing/v1beta1/slashing.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/staking/v1beta1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/staking/v1beta1/staking.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/staking/v1beta1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/tx/v1beta1/service.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmos/vesting/v1beta1/vesting.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmwasm/wasm/v1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmwasm/wasm/v1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/cosmwasm/wasm/v1/types.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/google/protobuf/any.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/google/protobuf/duration.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/google/protobuf/timestamp.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/applications/transfer/v1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/applications/transfer/v1/transfer.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/channel/v1/channel.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/channel/v1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/channel/v1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/client/v1/client.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/client/v1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/client/v1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/commitment/v1/commitment.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/connection/v1/connection.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/connection/v1/query.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/minimal.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/index-minimal.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/reader.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/reader_buffer.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/roots.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/rpc.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/rpc/service.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/util/longbits.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/util/minimal.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/writer.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/node_modules/protobufjs/src/writer_buffer.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/tendermint/abci/types.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/tendermint/crypto/keys.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/tendermint/crypto/proof.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/tendermint/types/params.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/tendermint/types/types.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/tendermint/types/validator.js","webpack://CosmWasmJS/./node_modules/cosmjs-types/tendermint/version/types.js","webpack://CosmWasmJS/./node_modules/define-properties/index.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/curve/base.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/curve/index.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/curve/short.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/curves.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/ec/index.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/ec/key.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack://CosmWasmJS/./node_modules/elliptic/lib/elliptic/utils.js","webpack://CosmWasmJS/./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack://CosmWasmJS/./node_modules/events/events.js","webpack://CosmWasmJS/./node_modules/globalthis/implementation.browser.js","webpack://CosmWasmJS/./node_modules/globalthis/index.js","webpack://CosmWasmJS/./node_modules/globalthis/polyfill.js","webpack://CosmWasmJS/./node_modules/globalthis/shim.js","webpack://CosmWasmJS/./node_modules/hash-base/index.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/common.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/hmac.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/ripemd.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/sha.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/sha/1.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/sha/224.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/sha/256.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/sha/384.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/sha/512.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/sha/common.js","webpack://CosmWasmJS/./node_modules/hash.js/lib/hash/utils.js","webpack://CosmWasmJS/./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack://CosmWasmJS/./node_modules/ieee754/index.js","webpack://CosmWasmJS/./node_modules/inherits/inherits_browser.js","webpack://CosmWasmJS/./node_modules/isomorphic-ws/browser.js","webpack://CosmWasmJS/./node_modules/ledger-cosmos-js/dist/common.js","webpack://CosmWasmJS/./node_modules/ledger-cosmos-js/dist/helperV1.js","webpack://CosmWasmJS/./node_modules/ledger-cosmos-js/dist/helperV2.js","webpack://CosmWasmJS/./node_modules/ledger-cosmos-js/dist/index.js","webpack://CosmWasmJS/./node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js","webpack://CosmWasmJS/./node_modules/libsodium/dist/modules/libsodium.js","webpack://CosmWasmJS/./node_modules/long/src/long.js","webpack://CosmWasmJS/./node_modules/lru-cache/index.js","webpack://CosmWasmJS/./node_modules/minimalistic-assert/index.js","webpack://CosmWasmJS/./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack://CosmWasmJS/./node_modules/object-keys/implementation.js","webpack://CosmWasmJS/./node_modules/object-keys/index.js","webpack://CosmWasmJS/./node_modules/object-keys/isArguments.js","webpack://CosmWasmJS/./node_modules/pako/index.js","webpack://CosmWasmJS/./node_modules/pako/lib/deflate.js","webpack://CosmWasmJS/./node_modules/pako/lib/inflate.js","webpack://CosmWasmJS/./node_modules/pako/lib/utils/common.js","webpack://CosmWasmJS/./node_modules/pako/lib/utils/strings.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/adler32.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/constants.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/crc32.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/deflate.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/gzheader.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/inffast.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/inflate.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/inftrees.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/messages.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/trees.js","webpack://CosmWasmJS/./node_modules/pako/lib/zlib/zstream.js","webpack://CosmWasmJS/./node_modules/path-browserify/index.js","webpack://CosmWasmJS/./node_modules/process/browser.js","webpack://CosmWasmJS/./node_modules/readable-stream/errors-browser.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/_stream_readable.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/_stream_transform.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/_stream_writable.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://CosmWasmJS/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://CosmWasmJS/./node_modules/readable-stream/readable-browser.js","webpack://CosmWasmJS/./node_modules/regenerator-runtime/runtime.js","webpack://CosmWasmJS/./node_modules/ripemd160/index.js","webpack://CosmWasmJS/./node_modules/safe-buffer/index.js","webpack://CosmWasmJS/./node_modules/semver/classes/comparator.js","webpack://CosmWasmJS/./node_modules/semver/classes/range.js","webpack://CosmWasmJS/./node_modules/semver/classes/semver.js","webpack://CosmWasmJS/./node_modules/semver/functions/clean.js","webpack://CosmWasmJS/./node_modules/semver/functions/cmp.js","webpack://CosmWasmJS/./node_modules/semver/functions/coerce.js","webpack://CosmWasmJS/./node_modules/semver/functions/compare-build.js","webpack://CosmWasmJS/./node_modules/semver/functions/compare-loose.js","webpack://CosmWasmJS/./node_modules/semver/functions/compare.js","webpack://CosmWasmJS/./node_modules/semver/functions/diff.js","webpack://CosmWasmJS/./node_modules/semver/functions/eq.js","webpack://CosmWasmJS/./node_modules/semver/functions/gt.js","webpack://CosmWasmJS/./node_modules/semver/functions/gte.js","webpack://CosmWasmJS/./node_modules/semver/functions/inc.js","webpack://CosmWasmJS/./node_modules/semver/functions/lt.js","webpack://CosmWasmJS/./node_modules/semver/functions/lte.js","webpack://CosmWasmJS/./node_modules/semver/functions/major.js","webpack://CosmWasmJS/./node_modules/semver/functions/minor.js","webpack://CosmWasmJS/./node_modules/semver/functions/neq.js","webpack://CosmWasmJS/./node_modules/semver/functions/parse.js","webpack://CosmWasmJS/./node_modules/semver/functions/patch.js","webpack://CosmWasmJS/./node_modules/semver/functions/prerelease.js","webpack://CosmWasmJS/./node_modules/semver/functions/rcompare.js","webpack://CosmWasmJS/./node_modules/semver/functions/rsort.js","webpack://CosmWasmJS/./node_modules/semver/functions/satisfies.js","webpack://CosmWasmJS/./node_modules/semver/functions/sort.js","webpack://CosmWasmJS/./node_modules/semver/functions/valid.js","webpack://CosmWasmJS/./node_modules/semver/index.js","webpack://CosmWasmJS/./node_modules/semver/internal/constants.js","webpack://CosmWasmJS/./node_modules/semver/internal/debug.js","webpack://CosmWasmJS/./node_modules/semver/internal/identifiers.js","webpack://CosmWasmJS/./node_modules/semver/internal/parse-options.js","webpack://CosmWasmJS/./node_modules/semver/internal/re.js","webpack://CosmWasmJS/./node_modules/semver/ranges/gtr.js","webpack://CosmWasmJS/./node_modules/semver/ranges/intersects.js","webpack://CosmWasmJS/./node_modules/semver/ranges/ltr.js","webpack://CosmWasmJS/./node_modules/semver/ranges/max-satisfying.js","webpack://CosmWasmJS/./node_modules/semver/ranges/min-satisfying.js","webpack://CosmWasmJS/./node_modules/semver/ranges/min-version.js","webpack://CosmWasmJS/./node_modules/semver/ranges/outside.js","webpack://CosmWasmJS/./node_modules/semver/ranges/simplify.js","webpack://CosmWasmJS/./node_modules/semver/ranges/subset.js","webpack://CosmWasmJS/./node_modules/semver/ranges/to-comparators.js","webpack://CosmWasmJS/./node_modules/semver/ranges/valid.js","webpack://CosmWasmJS/./node_modules/string_decoder/lib/string_decoder.js","webpack://CosmWasmJS/./node_modules/symbol-observable/lib/ponyfill.js","webpack://CosmWasmJS/./node_modules/symbol-observable/ponyfill.js","webpack://CosmWasmJS/./src/amino.ts","webpack://CosmWasmJS/./src/cosmwasm-stargate.ts","webpack://CosmWasmJS/./src/crypto.ts","webpack://CosmWasmJS/./src/encoding.ts","webpack://CosmWasmJS/./src/faucet-client.ts","webpack://CosmWasmJS/./src/helpers/setup.ts","webpack://CosmWasmJS/./src/index.ts","webpack://CosmWasmJS/./src/ledger-amino.ts","webpack://CosmWasmJS/./src/math.ts","webpack://CosmWasmJS/./src/proto-signing.ts","webpack://CosmWasmJS/./src/stargate.ts","webpack://CosmWasmJS/./src/utils.ts","webpack://CosmWasmJS/./node_modules/util-deprecate/browser.js","webpack://CosmWasmJS/./node_modules/xstream/index.js","webpack://CosmWasmJS/./node_modules/yallist/iterator.js","webpack://CosmWasmJS/./node_modules/yallist/yallist.js","webpack://CosmWasmJS/webpack/bootstrap","webpack://CosmWasmJS/webpack/runtime/global","webpack://CosmWasmJS/webpack/runtime/node module decorator","webpack://CosmWasmJS/webpack/startup"],"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[\"CosmWasmJS\"] = factory();\n\telse\n\t\troot[\"CosmWasmJS\"] = factory();\n})(self, function() {\nreturn ","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require(\"regenerator-runtime\");\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decompress = exports.compress = void 0;\nconst codecimpl_1 = require(\"./generated/codecimpl\");\nfunction compress(proof) {\n if (!proof.batch) {\n return proof;\n }\n return { compressed: compressBatch(proof.batch) };\n}\nexports.compress = compress;\nfunction decompress(proof) {\n if (!proof.compressed) {\n return proof;\n }\n return { batch: decompressBatch(proof.compressed) };\n}\nexports.decompress = decompress;\nfunction compressBatch(proof) {\n const centries = [];\n const lookup = [];\n const registry = new Map();\n for (const entry of proof.entries) {\n if (entry.exist) {\n const centry = { exist: compressExist(entry.exist, lookup, registry) };\n centries.push(centry);\n }\n else if (entry.nonexist) {\n const non = entry.nonexist;\n const centry = {\n nonexist: {\n key: non.key,\n left: compressExist(non.left, lookup, registry),\n right: compressExist(non.right, lookup, registry),\n },\n };\n centries.push(centry);\n }\n else {\n throw new Error(\"Unexpected batch entry during compress\");\n }\n }\n return {\n entries: centries,\n lookupInners: lookup,\n };\n}\nfunction compressExist(exist, lookup, registry) {\n if (!exist) {\n return undefined;\n }\n const path = exist.path.map((inner) => {\n const sig = codecimpl_1.ics23.InnerOp.encode(inner).finish();\n let idx = registry.get(sig);\n if (idx === undefined) {\n idx = lookup.length;\n lookup.push(inner);\n registry.set(sig, idx);\n }\n return idx;\n });\n return {\n key: exist.key,\n value: exist.value,\n leaf: exist.leaf,\n path,\n };\n}\nfunction decompressBatch(proof) {\n const lookup = proof.lookupInners;\n const entries = proof.entries.map((comp) => {\n if (comp.exist) {\n return { exist: decompressExist(comp.exist, lookup) };\n }\n else if (comp.nonexist) {\n const non = comp.nonexist;\n return {\n nonexist: {\n key: non.key,\n left: decompressExist(non.left, lookup),\n right: decompressExist(non.right, lookup),\n },\n };\n }\n else {\n throw new Error(\"Unexpected batch entry during compress\");\n }\n });\n return {\n entries,\n };\n}\nfunction decompressExist(exist, lookup) {\n if (!exist) {\n return undefined;\n }\n const { key, value, leaf, path } = exist;\n const newPath = (path || []).map((idx) => lookup[idx]);\n return { key, value, leaf, path: newPath };\n}\n//# sourceMappingURL=compress.js.map","/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.ics23 = (function() {\n\n /**\n * Namespace ics23.\n * @exports ics23\n * @namespace\n */\n var ics23 = {};\n\n /**\n * HashOp enum.\n * @name ics23.HashOp\n * @enum {string}\n * @property {number} NO_HASH=0 NO_HASH value\n * @property {number} SHA256=1 SHA256 value\n * @property {number} SHA512=2 SHA512 value\n * @property {number} KECCAK=3 KECCAK value\n * @property {number} RIPEMD160=4 RIPEMD160 value\n * @property {number} BITCOIN=5 BITCOIN value\n * @property {number} SHA512_256=6 SHA512_256 value\n */\n ics23.HashOp = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"NO_HASH\"] = 0;\n values[valuesById[1] = \"SHA256\"] = 1;\n values[valuesById[2] = \"SHA512\"] = 2;\n values[valuesById[3] = \"KECCAK\"] = 3;\n values[valuesById[4] = \"RIPEMD160\"] = 4;\n values[valuesById[5] = \"BITCOIN\"] = 5;\n values[valuesById[6] = \"SHA512_256\"] = 6;\n return values;\n })();\n\n /**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n * @name ics23.LengthOp\n * @enum {string}\n * @property {number} NO_PREFIX=0 NO_PREFIX value\n * @property {number} VAR_PROTO=1 VAR_PROTO value\n * @property {number} VAR_RLP=2 VAR_RLP value\n * @property {number} FIXED32_BIG=3 FIXED32_BIG value\n * @property {number} FIXED32_LITTLE=4 FIXED32_LITTLE value\n * @property {number} FIXED64_BIG=5 FIXED64_BIG value\n * @property {number} FIXED64_LITTLE=6 FIXED64_LITTLE value\n * @property {number} REQUIRE_32_BYTES=7 REQUIRE_32_BYTES value\n * @property {number} REQUIRE_64_BYTES=8 REQUIRE_64_BYTES value\n */\n ics23.LengthOp = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"NO_PREFIX\"] = 0;\n values[valuesById[1] = \"VAR_PROTO\"] = 1;\n values[valuesById[2] = \"VAR_RLP\"] = 2;\n values[valuesById[3] = \"FIXED32_BIG\"] = 3;\n values[valuesById[4] = \"FIXED32_LITTLE\"] = 4;\n values[valuesById[5] = \"FIXED64_BIG\"] = 5;\n values[valuesById[6] = \"FIXED64_LITTLE\"] = 6;\n values[valuesById[7] = \"REQUIRE_32_BYTES\"] = 7;\n values[valuesById[8] = \"REQUIRE_64_BYTES\"] = 8;\n return values;\n })();\n\n ics23.ExistenceProof = (function() {\n\n /**\n * Properties of an ExistenceProof.\n * @memberof ics23\n * @interface IExistenceProof\n * @property {Uint8Array|null} [key] ExistenceProof key\n * @property {Uint8Array|null} [value] ExistenceProof value\n * @property {ics23.ILeafOp|null} [leaf] ExistenceProof leaf\n * @property {Array.|null} [path] ExistenceProof path\n */\n\n /**\n * Constructs a new ExistenceProof.\n * @memberof ics23\n * @classdesc ExistenceProof takes a key and a value and a set of steps to perform on it.\n * The result of peforming all these steps will provide a \"root hash\", which can\n * be compared to the value in a header.\n * \n * Since it is computationally infeasible to produce a hash collission for any of the used\n * cryptographic hash functions, if someone can provide a series of operations to transform\n * a given key and value into a root hash that matches some trusted root, these key and values\n * must be in the referenced merkle tree.\n * \n * The only possible issue is maliablity in LeafOp, such as providing extra prefix data,\n * which should be controlled by a spec. Eg. with lengthOp as NONE,\n * prefix = FOO, key = BAR, value = CHOICE\n * and\n * prefix = F, key = OOBAR, value = CHOICE\n * would produce the same value.\n * \n * With LengthOp this is tricker but not impossible. Which is why the \"leafPrefixEqual\" field\n * in the ProofSpec is valuable to prevent this mutability. And why all trees should\n * length-prefix the data before hashing it.\n * @implements IExistenceProof\n * @constructor\n * @param {ics23.IExistenceProof=} [properties] Properties to set\n */\n function ExistenceProof(properties) {\n this.path = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * ExistenceProof value.\n * @member {Uint8Array} value\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.value = $util.newBuffer([]);\n\n /**\n * ExistenceProof leaf.\n * @member {ics23.ILeafOp|null|undefined} leaf\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.leaf = null;\n\n /**\n * ExistenceProof path.\n * @member {Array.} path\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.path = $util.emptyArray;\n\n /**\n * Creates a new ExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof=} [properties] Properties to set\n * @returns {ics23.ExistenceProof} ExistenceProof instance\n */\n ExistenceProof.create = function create(properties) {\n return new ExistenceProof(properties);\n };\n\n /**\n * Encodes the specified ExistenceProof message. Does not implicitly {@link ics23.ExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof} message ExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.value != null && message.hasOwnProperty(\"value\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value);\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n $root.ics23.LeafOp.encode(message.leaf, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.path != null && message.path.length)\n for (var i = 0; i < message.path.length; ++i)\n $root.ics23.InnerOp.encode(message.path[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ExistenceProof message, length delimited. Does not implicitly {@link ics23.ExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof} message ExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an ExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.ExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.ExistenceProof} ExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.ExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if (!(message.path && message.path.length))\n message.path = [];\n message.path.push($root.ics23.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an ExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.ExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.ExistenceProof} ExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an ExistenceProof message.\n * @function verify\n * @memberof ics23.ExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.value != null && message.hasOwnProperty(\"value\"))\n if (!(message.value && typeof message.value.length === \"number\" || $util.isString(message.value)))\n return \"value: buffer expected\";\n if (message.leaf != null && message.hasOwnProperty(\"leaf\")) {\n var error = $root.ics23.LeafOp.verify(message.leaf);\n if (error)\n return \"leaf.\" + error;\n }\n if (message.path != null && message.hasOwnProperty(\"path\")) {\n if (!Array.isArray(message.path))\n return \"path: array expected\";\n for (var i = 0; i < message.path.length; ++i) {\n var error = $root.ics23.InnerOp.verify(message.path[i]);\n if (error)\n return \"path.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an ExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.ExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.ExistenceProof} ExistenceProof\n */\n ExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.ExistenceProof)\n return object;\n var message = new $root.ics23.ExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.value != null)\n if (typeof object.value === \"string\")\n $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0);\n else if (object.value.length)\n message.value = object.value;\n if (object.leaf != null) {\n if (typeof object.leaf !== \"object\")\n throw TypeError(\".ics23.ExistenceProof.leaf: object expected\");\n message.leaf = $root.ics23.LeafOp.fromObject(object.leaf);\n }\n if (object.path) {\n if (!Array.isArray(object.path))\n throw TypeError(\".ics23.ExistenceProof.path: array expected\");\n message.path = [];\n for (var i = 0; i < object.path.length; ++i) {\n if (typeof object.path[i] !== \"object\")\n throw TypeError(\".ics23.ExistenceProof.path: object expected\");\n message.path[i] = $root.ics23.InnerOp.fromObject(object.path[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an ExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.ExistenceProof} message ExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n ExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.path = [];\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n if (options.bytes === String)\n object.value = \"\";\n else {\n object.value = [];\n if (options.bytes !== Array)\n object.value = $util.newBuffer(object.value);\n }\n object.leaf = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.value != null && message.hasOwnProperty(\"value\"))\n object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value;\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n object.leaf = $root.ics23.LeafOp.toObject(message.leaf, options);\n if (message.path && message.path.length) {\n object.path = [];\n for (var j = 0; j < message.path.length; ++j)\n object.path[j] = $root.ics23.InnerOp.toObject(message.path[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.ExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n ExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ExistenceProof;\n })();\n\n ics23.NonExistenceProof = (function() {\n\n /**\n * Properties of a NonExistenceProof.\n * @memberof ics23\n * @interface INonExistenceProof\n * @property {Uint8Array|null} [key] NonExistenceProof key\n * @property {ics23.IExistenceProof|null} [left] NonExistenceProof left\n * @property {ics23.IExistenceProof|null} [right] NonExistenceProof right\n */\n\n /**\n * Constructs a new NonExistenceProof.\n * @memberof ics23\n * @classdesc Represents a NonExistenceProof.\n * @implements INonExistenceProof\n * @constructor\n * @param {ics23.INonExistenceProof=} [properties] Properties to set\n */\n function NonExistenceProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * NonExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * NonExistenceProof left.\n * @member {ics23.IExistenceProof|null|undefined} left\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.left = null;\n\n /**\n * NonExistenceProof right.\n * @member {ics23.IExistenceProof|null|undefined} right\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.right = null;\n\n /**\n * Creates a new NonExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof=} [properties] Properties to set\n * @returns {ics23.NonExistenceProof} NonExistenceProof instance\n */\n NonExistenceProof.create = function create(properties) {\n return new NonExistenceProof(properties);\n };\n\n /**\n * Encodes the specified NonExistenceProof message. Does not implicitly {@link ics23.NonExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof} message NonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NonExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.left != null && message.hasOwnProperty(\"left\"))\n $root.ics23.ExistenceProof.encode(message.left, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.right != null && message.hasOwnProperty(\"right\"))\n $root.ics23.ExistenceProof.encode(message.right, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified NonExistenceProof message, length delimited. Does not implicitly {@link ics23.NonExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof} message NonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NonExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a NonExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NonExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.NonExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a NonExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NonExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a NonExistenceProof message.\n * @function verify\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n NonExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.left != null && message.hasOwnProperty(\"left\")) {\n var error = $root.ics23.ExistenceProof.verify(message.left);\n if (error)\n return \"left.\" + error;\n }\n if (message.right != null && message.hasOwnProperty(\"right\")) {\n var error = $root.ics23.ExistenceProof.verify(message.right);\n if (error)\n return \"right.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a NonExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n */\n NonExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.NonExistenceProof)\n return object;\n var message = new $root.ics23.NonExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.left != null) {\n if (typeof object.left !== \"object\")\n throw TypeError(\".ics23.NonExistenceProof.left: object expected\");\n message.left = $root.ics23.ExistenceProof.fromObject(object.left);\n }\n if (object.right != null) {\n if (typeof object.right !== \"object\")\n throw TypeError(\".ics23.NonExistenceProof.right: object expected\");\n message.right = $root.ics23.ExistenceProof.fromObject(object.right);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a NonExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.NonExistenceProof} message NonExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n NonExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n object.left = null;\n object.right = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.left != null && message.hasOwnProperty(\"left\"))\n object.left = $root.ics23.ExistenceProof.toObject(message.left, options);\n if (message.right != null && message.hasOwnProperty(\"right\"))\n object.right = $root.ics23.ExistenceProof.toObject(message.right, options);\n return object;\n };\n\n /**\n * Converts this NonExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.NonExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n NonExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return NonExistenceProof;\n })();\n\n ics23.CommitmentProof = (function() {\n\n /**\n * Properties of a CommitmentProof.\n * @memberof ics23\n * @interface ICommitmentProof\n * @property {ics23.IExistenceProof|null} [exist] CommitmentProof exist\n * @property {ics23.INonExistenceProof|null} [nonexist] CommitmentProof nonexist\n * @property {ics23.IBatchProof|null} [batch] CommitmentProof batch\n * @property {ics23.ICompressedBatchProof|null} [compressed] CommitmentProof compressed\n */\n\n /**\n * Constructs a new CommitmentProof.\n * @memberof ics23\n * @classdesc Represents a CommitmentProof.\n * @implements ICommitmentProof\n * @constructor\n * @param {ics23.ICommitmentProof=} [properties] Properties to set\n */\n function CommitmentProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CommitmentProof exist.\n * @member {ics23.IExistenceProof|null|undefined} exist\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.exist = null;\n\n /**\n * CommitmentProof nonexist.\n * @member {ics23.INonExistenceProof|null|undefined} nonexist\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.nonexist = null;\n\n /**\n * CommitmentProof batch.\n * @member {ics23.IBatchProof|null|undefined} batch\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.batch = null;\n\n /**\n * CommitmentProof compressed.\n * @member {ics23.ICompressedBatchProof|null|undefined} compressed\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.compressed = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * CommitmentProof proof.\n * @member {\"exist\"|\"nonexist\"|\"batch\"|\"compressed\"|undefined} proof\n * @memberof ics23.CommitmentProof\n * @instance\n */\n Object.defineProperty(CommitmentProof.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\", \"batch\", \"compressed\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new CommitmentProof instance using the specified properties.\n * @function create\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof=} [properties] Properties to set\n * @returns {ics23.CommitmentProof} CommitmentProof instance\n */\n CommitmentProof.create = function create(properties) {\n return new CommitmentProof(properties);\n };\n\n /**\n * Encodes the specified CommitmentProof message. Does not implicitly {@link ics23.CommitmentProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof} message CommitmentProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CommitmentProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.ExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.NonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.batch != null && message.hasOwnProperty(\"batch\"))\n $root.ics23.BatchProof.encode(message.batch, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.compressed != null && message.hasOwnProperty(\"compressed\"))\n $root.ics23.CompressedBatchProof.encode(message.compressed, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CommitmentProof message, length delimited. Does not implicitly {@link ics23.CommitmentProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof} message CommitmentProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CommitmentProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CommitmentProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CommitmentProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CommitmentProof} CommitmentProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CommitmentProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CommitmentProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = $root.ics23.BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = $root.ics23.CompressedBatchProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CommitmentProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CommitmentProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CommitmentProof} CommitmentProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CommitmentProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CommitmentProof message.\n * @function verify\n * @memberof ics23.CommitmentProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CommitmentProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.ExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.NonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n if (message.batch != null && message.hasOwnProperty(\"batch\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.BatchProof.verify(message.batch);\n if (error)\n return \"batch.\" + error;\n }\n }\n if (message.compressed != null && message.hasOwnProperty(\"compressed\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedBatchProof.verify(message.compressed);\n if (error)\n return \"compressed.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CommitmentProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CommitmentProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CommitmentProof} CommitmentProof\n */\n CommitmentProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CommitmentProof)\n return object;\n var message = new $root.ics23.CommitmentProof();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.exist: object expected\");\n message.exist = $root.ics23.ExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.nonexist: object expected\");\n message.nonexist = $root.ics23.NonExistenceProof.fromObject(object.nonexist);\n }\n if (object.batch != null) {\n if (typeof object.batch !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.batch: object expected\");\n message.batch = $root.ics23.BatchProof.fromObject(object.batch);\n }\n if (object.compressed != null) {\n if (typeof object.compressed !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.compressed: object expected\");\n message.compressed = $root.ics23.CompressedBatchProof.fromObject(object.compressed);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CommitmentProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.CommitmentProof} message CommitmentProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CommitmentProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.ExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.NonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n if (message.batch != null && message.hasOwnProperty(\"batch\")) {\n object.batch = $root.ics23.BatchProof.toObject(message.batch, options);\n if (options.oneofs)\n object.proof = \"batch\";\n }\n if (message.compressed != null && message.hasOwnProperty(\"compressed\")) {\n object.compressed = $root.ics23.CompressedBatchProof.toObject(message.compressed, options);\n if (options.oneofs)\n object.proof = \"compressed\";\n }\n return object;\n };\n\n /**\n * Converts this CommitmentProof to JSON.\n * @function toJSON\n * @memberof ics23.CommitmentProof\n * @instance\n * @returns {Object.} JSON object\n */\n CommitmentProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CommitmentProof;\n })();\n\n ics23.LeafOp = (function() {\n\n /**\n * Properties of a LeafOp.\n * @memberof ics23\n * @interface ILeafOp\n * @property {ics23.HashOp|null} [hash] LeafOp hash\n * @property {ics23.HashOp|null} [prehashKey] LeafOp prehashKey\n * @property {ics23.HashOp|null} [prehashValue] LeafOp prehashValue\n * @property {ics23.LengthOp|null} [length] LeafOp length\n * @property {Uint8Array|null} [prefix] LeafOp prefix\n */\n\n /**\n * Constructs a new LeafOp.\n * @memberof ics23\n * @classdesc LeafOp represents the raw key-value data we wish to prove, and\n * must be flexible to represent the internal transformation from\n * the original key-value pairs into the basis hash, for many existing\n * merkle trees.\n * \n * key and value are passed in. So that the signature of this operation is:\n * leafOp(key, value) -> output\n * \n * To process this, first prehash the keys and values if needed (ANY means no hash in this case):\n * hkey = prehashKey(key)\n * hvalue = prehashValue(value)\n * \n * Then combine the bytes, and hash it\n * output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)\n * @implements ILeafOp\n * @constructor\n * @param {ics23.ILeafOp=} [properties] Properties to set\n */\n function LeafOp(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * LeafOp hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.hash = 0;\n\n /**\n * LeafOp prehashKey.\n * @member {ics23.HashOp} prehashKey\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prehashKey = 0;\n\n /**\n * LeafOp prehashValue.\n * @member {ics23.HashOp} prehashValue\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prehashValue = 0;\n\n /**\n * LeafOp length.\n * @member {ics23.LengthOp} length\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.length = 0;\n\n /**\n * LeafOp prefix.\n * @member {Uint8Array} prefix\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prefix = $util.newBuffer([]);\n\n /**\n * Creates a new LeafOp instance using the specified properties.\n * @function create\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp=} [properties] Properties to set\n * @returns {ics23.LeafOp} LeafOp instance\n */\n LeafOp.create = function create(properties) {\n return new LeafOp(properties);\n };\n\n /**\n * Encodes the specified LeafOp message. Does not implicitly {@link ics23.LeafOp.verify|verify} messages.\n * @function encode\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp} message LeafOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n LeafOp.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.hash);\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.prehashKey);\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.prehashValue);\n if (message.length != null && message.hasOwnProperty(\"length\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.length);\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.prefix);\n return writer;\n };\n\n /**\n * Encodes the specified LeafOp message, length delimited. Does not implicitly {@link ics23.LeafOp.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp} message LeafOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n LeafOp.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a LeafOp message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.LeafOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.LeafOp} LeafOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n LeafOp.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.LeafOp();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prehashKey = reader.int32();\n break;\n case 3:\n message.prehashValue = reader.int32();\n break;\n case 4:\n message.length = reader.int32();\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a LeafOp message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.LeafOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.LeafOp} LeafOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n LeafOp.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a LeafOp message.\n * @function verify\n * @memberof ics23.LeafOp\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n LeafOp.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n switch (message.prehashKey) {\n default:\n return \"prehashKey: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n switch (message.prehashValue) {\n default:\n return \"prehashValue: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.length != null && message.hasOwnProperty(\"length\"))\n switch (message.length) {\n default:\n return \"length: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n break;\n }\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n if (!(message.prefix && typeof message.prefix.length === \"number\" || $util.isString(message.prefix)))\n return \"prefix: buffer expected\";\n return null;\n };\n\n /**\n * Creates a LeafOp message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.LeafOp\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.LeafOp} LeafOp\n */\n LeafOp.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.LeafOp)\n return object;\n var message = new $root.ics23.LeafOp();\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n switch (object.prehashKey) {\n case \"NO_HASH\":\n case 0:\n message.prehashKey = 0;\n break;\n case \"SHA256\":\n case 1:\n message.prehashKey = 1;\n break;\n case \"SHA512\":\n case 2:\n message.prehashKey = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.prehashKey = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.prehashKey = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.prehashKey = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.prehashKey = 6;\n break;\n }\n switch (object.prehashValue) {\n case \"NO_HASH\":\n case 0:\n message.prehashValue = 0;\n break;\n case \"SHA256\":\n case 1:\n message.prehashValue = 1;\n break;\n case \"SHA512\":\n case 2:\n message.prehashValue = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.prehashValue = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.prehashValue = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.prehashValue = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.prehashValue = 6;\n break;\n }\n switch (object.length) {\n case \"NO_PREFIX\":\n case 0:\n message.length = 0;\n break;\n case \"VAR_PROTO\":\n case 1:\n message.length = 1;\n break;\n case \"VAR_RLP\":\n case 2:\n message.length = 2;\n break;\n case \"FIXED32_BIG\":\n case 3:\n message.length = 3;\n break;\n case \"FIXED32_LITTLE\":\n case 4:\n message.length = 4;\n break;\n case \"FIXED64_BIG\":\n case 5:\n message.length = 5;\n break;\n case \"FIXED64_LITTLE\":\n case 6:\n message.length = 6;\n break;\n case \"REQUIRE_32_BYTES\":\n case 7:\n message.length = 7;\n break;\n case \"REQUIRE_64_BYTES\":\n case 8:\n message.length = 8;\n break;\n }\n if (object.prefix != null)\n if (typeof object.prefix === \"string\")\n $util.base64.decode(object.prefix, message.prefix = $util.newBuffer($util.base64.length(object.prefix)), 0);\n else if (object.prefix.length)\n message.prefix = object.prefix;\n return message;\n };\n\n /**\n * Creates a plain object from a LeafOp message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.LeafOp} message LeafOp\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n LeafOp.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n object.prehashKey = options.enums === String ? \"NO_HASH\" : 0;\n object.prehashValue = options.enums === String ? \"NO_HASH\" : 0;\n object.length = options.enums === String ? \"NO_PREFIX\" : 0;\n if (options.bytes === String)\n object.prefix = \"\";\n else {\n object.prefix = [];\n if (options.bytes !== Array)\n object.prefix = $util.newBuffer(object.prefix);\n }\n }\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n object.prehashKey = options.enums === String ? $root.ics23.HashOp[message.prehashKey] : message.prehashKey;\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n object.prehashValue = options.enums === String ? $root.ics23.HashOp[message.prehashValue] : message.prehashValue;\n if (message.length != null && message.hasOwnProperty(\"length\"))\n object.length = options.enums === String ? $root.ics23.LengthOp[message.length] : message.length;\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n object.prefix = options.bytes === String ? $util.base64.encode(message.prefix, 0, message.prefix.length) : options.bytes === Array ? Array.prototype.slice.call(message.prefix) : message.prefix;\n return object;\n };\n\n /**\n * Converts this LeafOp to JSON.\n * @function toJSON\n * @memberof ics23.LeafOp\n * @instance\n * @returns {Object.} JSON object\n */\n LeafOp.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return LeafOp;\n })();\n\n ics23.InnerOp = (function() {\n\n /**\n * Properties of an InnerOp.\n * @memberof ics23\n * @interface IInnerOp\n * @property {ics23.HashOp|null} [hash] InnerOp hash\n * @property {Uint8Array|null} [prefix] InnerOp prefix\n * @property {Uint8Array|null} [suffix] InnerOp suffix\n */\n\n /**\n * Constructs a new InnerOp.\n * @memberof ics23\n * @classdesc InnerOp represents a merkle-proof step that is not a leaf.\n * It represents concatenating two children and hashing them to provide the next result.\n * \n * The result of the previous step is passed in, so the signature of this op is:\n * innerOp(child) -> output\n * \n * The result of applying InnerOp should be:\n * output = op.hash(op.prefix || child || op.suffix)\n * \n * where the || operator is concatenation of binary data,\n * and child is the result of hashing all the tree below this step.\n * \n * Any special data, like prepending child with the length, or prepending the entire operation with\n * some value to differentiate from leaf nodes, should be included in prefix and suffix.\n * If either of prefix or suffix is empty, we just treat it as an empty string\n * @implements IInnerOp\n * @constructor\n * @param {ics23.IInnerOp=} [properties] Properties to set\n */\n function InnerOp(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InnerOp hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.hash = 0;\n\n /**\n * InnerOp prefix.\n * @member {Uint8Array} prefix\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.prefix = $util.newBuffer([]);\n\n /**\n * InnerOp suffix.\n * @member {Uint8Array} suffix\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.suffix = $util.newBuffer([]);\n\n /**\n * Creates a new InnerOp instance using the specified properties.\n * @function create\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp=} [properties] Properties to set\n * @returns {ics23.InnerOp} InnerOp instance\n */\n InnerOp.create = function create(properties) {\n return new InnerOp(properties);\n };\n\n /**\n * Encodes the specified InnerOp message. Does not implicitly {@link ics23.InnerOp.verify|verify} messages.\n * @function encode\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp} message InnerOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerOp.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.hash);\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.prefix);\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.suffix);\n return writer;\n };\n\n /**\n * Encodes the specified InnerOp message, length delimited. Does not implicitly {@link ics23.InnerOp.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp} message InnerOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerOp.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InnerOp message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.InnerOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.InnerOp} InnerOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerOp.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.InnerOp();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InnerOp message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.InnerOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.InnerOp} InnerOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerOp.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InnerOp message.\n * @function verify\n * @memberof ics23.InnerOp\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InnerOp.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n if (!(message.prefix && typeof message.prefix.length === \"number\" || $util.isString(message.prefix)))\n return \"prefix: buffer expected\";\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n if (!(message.suffix && typeof message.suffix.length === \"number\" || $util.isString(message.suffix)))\n return \"suffix: buffer expected\";\n return null;\n };\n\n /**\n * Creates an InnerOp message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.InnerOp\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.InnerOp} InnerOp\n */\n InnerOp.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.InnerOp)\n return object;\n var message = new $root.ics23.InnerOp();\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n if (object.prefix != null)\n if (typeof object.prefix === \"string\")\n $util.base64.decode(object.prefix, message.prefix = $util.newBuffer($util.base64.length(object.prefix)), 0);\n else if (object.prefix.length)\n message.prefix = object.prefix;\n if (object.suffix != null)\n if (typeof object.suffix === \"string\")\n $util.base64.decode(object.suffix, message.suffix = $util.newBuffer($util.base64.length(object.suffix)), 0);\n else if (object.suffix.length)\n message.suffix = object.suffix;\n return message;\n };\n\n /**\n * Creates a plain object from an InnerOp message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.InnerOp} message InnerOp\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n InnerOp.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n if (options.bytes === String)\n object.prefix = \"\";\n else {\n object.prefix = [];\n if (options.bytes !== Array)\n object.prefix = $util.newBuffer(object.prefix);\n }\n if (options.bytes === String)\n object.suffix = \"\";\n else {\n object.suffix = [];\n if (options.bytes !== Array)\n object.suffix = $util.newBuffer(object.suffix);\n }\n }\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n object.prefix = options.bytes === String ? $util.base64.encode(message.prefix, 0, message.prefix.length) : options.bytes === Array ? Array.prototype.slice.call(message.prefix) : message.prefix;\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n object.suffix = options.bytes === String ? $util.base64.encode(message.suffix, 0, message.suffix.length) : options.bytes === Array ? Array.prototype.slice.call(message.suffix) : message.suffix;\n return object;\n };\n\n /**\n * Converts this InnerOp to JSON.\n * @function toJSON\n * @memberof ics23.InnerOp\n * @instance\n * @returns {Object.} JSON object\n */\n InnerOp.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InnerOp;\n })();\n\n ics23.ProofSpec = (function() {\n\n /**\n * Properties of a ProofSpec.\n * @memberof ics23\n * @interface IProofSpec\n * @property {ics23.ILeafOp|null} [leafSpec] ProofSpec leafSpec\n * @property {ics23.IInnerSpec|null} [innerSpec] ProofSpec innerSpec\n * @property {number|null} [maxDepth] ProofSpec maxDepth\n * @property {number|null} [minDepth] ProofSpec minDepth\n */\n\n /**\n * Constructs a new ProofSpec.\n * @memberof ics23\n * @classdesc ProofSpec defines what the expected parameters are for a given proof type.\n * This can be stored in the client and used to validate any incoming proofs.\n * \n * verify(ProofSpec, Proof) -> Proof | Error\n * \n * As demonstrated in tests, if we don't fix the algorithm used to calculate the\n * LeafHash for a given tree, there are many possible key-value pairs that can\n * generate a given hash (by interpretting the preimage differently).\n * We need this for proper security, requires client knows a priori what\n * tree format server uses. But not in code, rather a configuration object.\n * @implements IProofSpec\n * @constructor\n * @param {ics23.IProofSpec=} [properties] Properties to set\n */\n function ProofSpec(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProofSpec leafSpec.\n * @member {ics23.ILeafOp|null|undefined} leafSpec\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.leafSpec = null;\n\n /**\n * ProofSpec innerSpec.\n * @member {ics23.IInnerSpec|null|undefined} innerSpec\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.innerSpec = null;\n\n /**\n * ProofSpec maxDepth.\n * @member {number} maxDepth\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.maxDepth = 0;\n\n /**\n * ProofSpec minDepth.\n * @member {number} minDepth\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.minDepth = 0;\n\n /**\n * Creates a new ProofSpec instance using the specified properties.\n * @function create\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec=} [properties] Properties to set\n * @returns {ics23.ProofSpec} ProofSpec instance\n */\n ProofSpec.create = function create(properties) {\n return new ProofSpec(properties);\n };\n\n /**\n * Encodes the specified ProofSpec message. Does not implicitly {@link ics23.ProofSpec.verify|verify} messages.\n * @function encode\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec} message ProofSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProofSpec.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\"))\n $root.ics23.LeafOp.encode(message.leafSpec, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\"))\n $root.ics23.InnerSpec.encode(message.innerSpec, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.maxDepth);\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.minDepth);\n return writer;\n };\n\n /**\n * Encodes the specified ProofSpec message, length delimited. Does not implicitly {@link ics23.ProofSpec.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec} message ProofSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProofSpec.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProofSpec message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.ProofSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.ProofSpec} ProofSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProofSpec.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.ProofSpec();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leafSpec = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.innerSpec = $root.ics23.InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxDepth = reader.int32();\n break;\n case 4:\n message.minDepth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProofSpec message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.ProofSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.ProofSpec} ProofSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProofSpec.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProofSpec message.\n * @function verify\n * @memberof ics23.ProofSpec\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProofSpec.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\")) {\n var error = $root.ics23.LeafOp.verify(message.leafSpec);\n if (error)\n return \"leafSpec.\" + error;\n }\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\")) {\n var error = $root.ics23.InnerSpec.verify(message.innerSpec);\n if (error)\n return \"innerSpec.\" + error;\n }\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n if (!$util.isInteger(message.maxDepth))\n return \"maxDepth: integer expected\";\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n if (!$util.isInteger(message.minDepth))\n return \"minDepth: integer expected\";\n return null;\n };\n\n /**\n * Creates a ProofSpec message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.ProofSpec\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.ProofSpec} ProofSpec\n */\n ProofSpec.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.ProofSpec)\n return object;\n var message = new $root.ics23.ProofSpec();\n if (object.leafSpec != null) {\n if (typeof object.leafSpec !== \"object\")\n throw TypeError(\".ics23.ProofSpec.leafSpec: object expected\");\n message.leafSpec = $root.ics23.LeafOp.fromObject(object.leafSpec);\n }\n if (object.innerSpec != null) {\n if (typeof object.innerSpec !== \"object\")\n throw TypeError(\".ics23.ProofSpec.innerSpec: object expected\");\n message.innerSpec = $root.ics23.InnerSpec.fromObject(object.innerSpec);\n }\n if (object.maxDepth != null)\n message.maxDepth = object.maxDepth | 0;\n if (object.minDepth != null)\n message.minDepth = object.minDepth | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a ProofSpec message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.ProofSpec} message ProofSpec\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n ProofSpec.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.leafSpec = null;\n object.innerSpec = null;\n object.maxDepth = 0;\n object.minDepth = 0;\n }\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\"))\n object.leafSpec = $root.ics23.LeafOp.toObject(message.leafSpec, options);\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\"))\n object.innerSpec = $root.ics23.InnerSpec.toObject(message.innerSpec, options);\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n object.maxDepth = message.maxDepth;\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n object.minDepth = message.minDepth;\n return object;\n };\n\n /**\n * Converts this ProofSpec to JSON.\n * @function toJSON\n * @memberof ics23.ProofSpec\n * @instance\n * @returns {Object.} JSON object\n */\n ProofSpec.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProofSpec;\n })();\n\n ics23.InnerSpec = (function() {\n\n /**\n * Properties of an InnerSpec.\n * @memberof ics23\n * @interface IInnerSpec\n * @property {Array.|null} [childOrder] InnerSpec childOrder\n * @property {number|null} [childSize] InnerSpec childSize\n * @property {number|null} [minPrefixLength] InnerSpec minPrefixLength\n * @property {number|null} [maxPrefixLength] InnerSpec maxPrefixLength\n * @property {Uint8Array|null} [emptyChild] InnerSpec emptyChild\n * @property {ics23.HashOp|null} [hash] InnerSpec hash\n */\n\n /**\n * Constructs a new InnerSpec.\n * @memberof ics23\n * @classdesc Represents an InnerSpec.\n * @implements IInnerSpec\n * @constructor\n * @param {ics23.IInnerSpec=} [properties] Properties to set\n */\n function InnerSpec(properties) {\n this.childOrder = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InnerSpec childOrder.\n * @member {Array.} childOrder\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.childOrder = $util.emptyArray;\n\n /**\n * InnerSpec childSize.\n * @member {number} childSize\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.childSize = 0;\n\n /**\n * InnerSpec minPrefixLength.\n * @member {number} minPrefixLength\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.minPrefixLength = 0;\n\n /**\n * InnerSpec maxPrefixLength.\n * @member {number} maxPrefixLength\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.maxPrefixLength = 0;\n\n /**\n * InnerSpec emptyChild.\n * @member {Uint8Array} emptyChild\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.emptyChild = $util.newBuffer([]);\n\n /**\n * InnerSpec hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.hash = 0;\n\n /**\n * Creates a new InnerSpec instance using the specified properties.\n * @function create\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec=} [properties] Properties to set\n * @returns {ics23.InnerSpec} InnerSpec instance\n */\n InnerSpec.create = function create(properties) {\n return new InnerSpec(properties);\n };\n\n /**\n * Encodes the specified InnerSpec message. Does not implicitly {@link ics23.InnerSpec.verify|verify} messages.\n * @function encode\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec} message InnerSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerSpec.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.childOrder != null && message.childOrder.length) {\n writer.uint32(/* id 1, wireType 2 =*/10).fork();\n for (var i = 0; i < message.childOrder.length; ++i)\n writer.int32(message.childOrder[i]);\n writer.ldelim();\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.childSize);\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.minPrefixLength);\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.maxPrefixLength);\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.emptyChild);\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 6, wireType 0 =*/48).int32(message.hash);\n return writer;\n };\n\n /**\n * Encodes the specified InnerSpec message, length delimited. Does not implicitly {@link ics23.InnerSpec.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec} message InnerSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerSpec.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InnerSpec message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.InnerSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.InnerSpec} InnerSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerSpec.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.InnerSpec();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.childOrder && message.childOrder.length))\n message.childOrder = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.childOrder.push(reader.int32());\n } else\n message.childOrder.push(reader.int32());\n break;\n case 2:\n message.childSize = reader.int32();\n break;\n case 3:\n message.minPrefixLength = reader.int32();\n break;\n case 4:\n message.maxPrefixLength = reader.int32();\n break;\n case 5:\n message.emptyChild = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InnerSpec message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.InnerSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.InnerSpec} InnerSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerSpec.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InnerSpec message.\n * @function verify\n * @memberof ics23.InnerSpec\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InnerSpec.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.childOrder != null && message.hasOwnProperty(\"childOrder\")) {\n if (!Array.isArray(message.childOrder))\n return \"childOrder: array expected\";\n for (var i = 0; i < message.childOrder.length; ++i)\n if (!$util.isInteger(message.childOrder[i]))\n return \"childOrder: integer[] expected\";\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n if (!$util.isInteger(message.childSize))\n return \"childSize: integer expected\";\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n if (!$util.isInteger(message.minPrefixLength))\n return \"minPrefixLength: integer expected\";\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n if (!$util.isInteger(message.maxPrefixLength))\n return \"maxPrefixLength: integer expected\";\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n if (!(message.emptyChild && typeof message.emptyChild.length === \"number\" || $util.isString(message.emptyChild)))\n return \"emptyChild: buffer expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n return null;\n };\n\n /**\n * Creates an InnerSpec message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.InnerSpec\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.InnerSpec} InnerSpec\n */\n InnerSpec.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.InnerSpec)\n return object;\n var message = new $root.ics23.InnerSpec();\n if (object.childOrder) {\n if (!Array.isArray(object.childOrder))\n throw TypeError(\".ics23.InnerSpec.childOrder: array expected\");\n message.childOrder = [];\n for (var i = 0; i < object.childOrder.length; ++i)\n message.childOrder[i] = object.childOrder[i] | 0;\n }\n if (object.childSize != null)\n message.childSize = object.childSize | 0;\n if (object.minPrefixLength != null)\n message.minPrefixLength = object.minPrefixLength | 0;\n if (object.maxPrefixLength != null)\n message.maxPrefixLength = object.maxPrefixLength | 0;\n if (object.emptyChild != null)\n if (typeof object.emptyChild === \"string\")\n $util.base64.decode(object.emptyChild, message.emptyChild = $util.newBuffer($util.base64.length(object.emptyChild)), 0);\n else if (object.emptyChild.length)\n message.emptyChild = object.emptyChild;\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n return message;\n };\n\n /**\n * Creates a plain object from an InnerSpec message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.InnerSpec} message InnerSpec\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n InnerSpec.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.childOrder = [];\n if (options.defaults) {\n object.childSize = 0;\n object.minPrefixLength = 0;\n object.maxPrefixLength = 0;\n if (options.bytes === String)\n object.emptyChild = \"\";\n else {\n object.emptyChild = [];\n if (options.bytes !== Array)\n object.emptyChild = $util.newBuffer(object.emptyChild);\n }\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n }\n if (message.childOrder && message.childOrder.length) {\n object.childOrder = [];\n for (var j = 0; j < message.childOrder.length; ++j)\n object.childOrder[j] = message.childOrder[j];\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n object.childSize = message.childSize;\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n object.minPrefixLength = message.minPrefixLength;\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n object.maxPrefixLength = message.maxPrefixLength;\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n object.emptyChild = options.bytes === String ? $util.base64.encode(message.emptyChild, 0, message.emptyChild.length) : options.bytes === Array ? Array.prototype.slice.call(message.emptyChild) : message.emptyChild;\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n return object;\n };\n\n /**\n * Converts this InnerSpec to JSON.\n * @function toJSON\n * @memberof ics23.InnerSpec\n * @instance\n * @returns {Object.} JSON object\n */\n InnerSpec.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InnerSpec;\n })();\n\n ics23.BatchProof = (function() {\n\n /**\n * Properties of a BatchProof.\n * @memberof ics23\n * @interface IBatchProof\n * @property {Array.|null} [entries] BatchProof entries\n */\n\n /**\n * Constructs a new BatchProof.\n * @memberof ics23\n * @classdesc Represents a BatchProof.\n * @implements IBatchProof\n * @constructor\n * @param {ics23.IBatchProof=} [properties] Properties to set\n */\n function BatchProof(properties) {\n this.entries = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BatchProof entries.\n * @member {Array.} entries\n * @memberof ics23.BatchProof\n * @instance\n */\n BatchProof.prototype.entries = $util.emptyArray;\n\n /**\n * Creates a new BatchProof instance using the specified properties.\n * @function create\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof=} [properties] Properties to set\n * @returns {ics23.BatchProof} BatchProof instance\n */\n BatchProof.create = function create(properties) {\n return new BatchProof(properties);\n };\n\n /**\n * Encodes the specified BatchProof message. Does not implicitly {@link ics23.BatchProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof} message BatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.entries != null && message.entries.length)\n for (var i = 0; i < message.entries.length; ++i)\n $root.ics23.BatchEntry.encode(message.entries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified BatchProof message, length delimited. Does not implicitly {@link ics23.BatchProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof} message BatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BatchProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.BatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.BatchProof} BatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.BatchProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.entries && message.entries.length))\n message.entries = [];\n message.entries.push($root.ics23.BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BatchProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.BatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.BatchProof} BatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BatchProof message.\n * @function verify\n * @memberof ics23.BatchProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BatchProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.entries != null && message.hasOwnProperty(\"entries\")) {\n if (!Array.isArray(message.entries))\n return \"entries: array expected\";\n for (var i = 0; i < message.entries.length; ++i) {\n var error = $root.ics23.BatchEntry.verify(message.entries[i]);\n if (error)\n return \"entries.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a BatchProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.BatchProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.BatchProof} BatchProof\n */\n BatchProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.BatchProof)\n return object;\n var message = new $root.ics23.BatchProof();\n if (object.entries) {\n if (!Array.isArray(object.entries))\n throw TypeError(\".ics23.BatchProof.entries: array expected\");\n message.entries = [];\n for (var i = 0; i < object.entries.length; ++i) {\n if (typeof object.entries[i] !== \"object\")\n throw TypeError(\".ics23.BatchProof.entries: object expected\");\n message.entries[i] = $root.ics23.BatchEntry.fromObject(object.entries[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a BatchProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.BatchProof} message BatchProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n BatchProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.entries = [];\n if (message.entries && message.entries.length) {\n object.entries = [];\n for (var j = 0; j < message.entries.length; ++j)\n object.entries[j] = $root.ics23.BatchEntry.toObject(message.entries[j], options);\n }\n return object;\n };\n\n /**\n * Converts this BatchProof to JSON.\n * @function toJSON\n * @memberof ics23.BatchProof\n * @instance\n * @returns {Object.} JSON object\n */\n BatchProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BatchProof;\n })();\n\n ics23.BatchEntry = (function() {\n\n /**\n * Properties of a BatchEntry.\n * @memberof ics23\n * @interface IBatchEntry\n * @property {ics23.IExistenceProof|null} [exist] BatchEntry exist\n * @property {ics23.INonExistenceProof|null} [nonexist] BatchEntry nonexist\n */\n\n /**\n * Constructs a new BatchEntry.\n * @memberof ics23\n * @classdesc Represents a BatchEntry.\n * @implements IBatchEntry\n * @constructor\n * @param {ics23.IBatchEntry=} [properties] Properties to set\n */\n function BatchEntry(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BatchEntry exist.\n * @member {ics23.IExistenceProof|null|undefined} exist\n * @memberof ics23.BatchEntry\n * @instance\n */\n BatchEntry.prototype.exist = null;\n\n /**\n * BatchEntry nonexist.\n * @member {ics23.INonExistenceProof|null|undefined} nonexist\n * @memberof ics23.BatchEntry\n * @instance\n */\n BatchEntry.prototype.nonexist = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * BatchEntry proof.\n * @member {\"exist\"|\"nonexist\"|undefined} proof\n * @memberof ics23.BatchEntry\n * @instance\n */\n Object.defineProperty(BatchEntry.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new BatchEntry instance using the specified properties.\n * @function create\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry=} [properties] Properties to set\n * @returns {ics23.BatchEntry} BatchEntry instance\n */\n BatchEntry.create = function create(properties) {\n return new BatchEntry(properties);\n };\n\n /**\n * Encodes the specified BatchEntry message. Does not implicitly {@link ics23.BatchEntry.verify|verify} messages.\n * @function encode\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry} message BatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchEntry.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.ExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.NonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified BatchEntry message, length delimited. Does not implicitly {@link ics23.BatchEntry.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry} message BatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchEntry.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BatchEntry message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.BatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.BatchEntry} BatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchEntry.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.BatchEntry();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BatchEntry message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.BatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.BatchEntry} BatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchEntry.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BatchEntry message.\n * @function verify\n * @memberof ics23.BatchEntry\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BatchEntry.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.ExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.NonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a BatchEntry message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.BatchEntry\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.BatchEntry} BatchEntry\n */\n BatchEntry.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.BatchEntry)\n return object;\n var message = new $root.ics23.BatchEntry();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.BatchEntry.exist: object expected\");\n message.exist = $root.ics23.ExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.BatchEntry.nonexist: object expected\");\n message.nonexist = $root.ics23.NonExistenceProof.fromObject(object.nonexist);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a BatchEntry message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.BatchEntry} message BatchEntry\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n BatchEntry.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.ExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.NonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n return object;\n };\n\n /**\n * Converts this BatchEntry to JSON.\n * @function toJSON\n * @memberof ics23.BatchEntry\n * @instance\n * @returns {Object.} JSON object\n */\n BatchEntry.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BatchEntry;\n })();\n\n ics23.CompressedBatchProof = (function() {\n\n /**\n * Properties of a CompressedBatchProof.\n * @memberof ics23\n * @interface ICompressedBatchProof\n * @property {Array.|null} [entries] CompressedBatchProof entries\n * @property {Array.|null} [lookupInners] CompressedBatchProof lookupInners\n */\n\n /**\n * Constructs a new CompressedBatchProof.\n * @memberof ics23\n * @classdesc Represents a CompressedBatchProof.\n * @implements ICompressedBatchProof\n * @constructor\n * @param {ics23.ICompressedBatchProof=} [properties] Properties to set\n */\n function CompressedBatchProof(properties) {\n this.entries = [];\n this.lookupInners = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedBatchProof entries.\n * @member {Array.} entries\n * @memberof ics23.CompressedBatchProof\n * @instance\n */\n CompressedBatchProof.prototype.entries = $util.emptyArray;\n\n /**\n * CompressedBatchProof lookupInners.\n * @member {Array.} lookupInners\n * @memberof ics23.CompressedBatchProof\n * @instance\n */\n CompressedBatchProof.prototype.lookupInners = $util.emptyArray;\n\n /**\n * Creates a new CompressedBatchProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof=} [properties] Properties to set\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof instance\n */\n CompressedBatchProof.create = function create(properties) {\n return new CompressedBatchProof(properties);\n };\n\n /**\n * Encodes the specified CompressedBatchProof message. Does not implicitly {@link ics23.CompressedBatchProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof} message CompressedBatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.entries != null && message.entries.length)\n for (var i = 0; i < message.entries.length; ++i)\n $root.ics23.CompressedBatchEntry.encode(message.entries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.lookupInners != null && message.lookupInners.length)\n for (var i = 0; i < message.lookupInners.length; ++i)\n $root.ics23.InnerOp.encode(message.lookupInners[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedBatchProof message, length delimited. Does not implicitly {@link ics23.CompressedBatchProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof} message CompressedBatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedBatchProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedBatchProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.entries && message.entries.length))\n message.entries = [];\n message.entries.push($root.ics23.CompressedBatchEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.lookupInners && message.lookupInners.length))\n message.lookupInners = [];\n message.lookupInners.push($root.ics23.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedBatchProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedBatchProof message.\n * @function verify\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedBatchProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.entries != null && message.hasOwnProperty(\"entries\")) {\n if (!Array.isArray(message.entries))\n return \"entries: array expected\";\n for (var i = 0; i < message.entries.length; ++i) {\n var error = $root.ics23.CompressedBatchEntry.verify(message.entries[i]);\n if (error)\n return \"entries.\" + error;\n }\n }\n if (message.lookupInners != null && message.hasOwnProperty(\"lookupInners\")) {\n if (!Array.isArray(message.lookupInners))\n return \"lookupInners: array expected\";\n for (var i = 0; i < message.lookupInners.length; ++i) {\n var error = $root.ics23.InnerOp.verify(message.lookupInners[i]);\n if (error)\n return \"lookupInners.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CompressedBatchProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n */\n CompressedBatchProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedBatchProof)\n return object;\n var message = new $root.ics23.CompressedBatchProof();\n if (object.entries) {\n if (!Array.isArray(object.entries))\n throw TypeError(\".ics23.CompressedBatchProof.entries: array expected\");\n message.entries = [];\n for (var i = 0; i < object.entries.length; ++i) {\n if (typeof object.entries[i] !== \"object\")\n throw TypeError(\".ics23.CompressedBatchProof.entries: object expected\");\n message.entries[i] = $root.ics23.CompressedBatchEntry.fromObject(object.entries[i]);\n }\n }\n if (object.lookupInners) {\n if (!Array.isArray(object.lookupInners))\n throw TypeError(\".ics23.CompressedBatchProof.lookupInners: array expected\");\n message.lookupInners = [];\n for (var i = 0; i < object.lookupInners.length; ++i) {\n if (typeof object.lookupInners[i] !== \"object\")\n throw TypeError(\".ics23.CompressedBatchProof.lookupInners: object expected\");\n message.lookupInners[i] = $root.ics23.InnerOp.fromObject(object.lookupInners[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedBatchProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.CompressedBatchProof} message CompressedBatchProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedBatchProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.entries = [];\n object.lookupInners = [];\n }\n if (message.entries && message.entries.length) {\n object.entries = [];\n for (var j = 0; j < message.entries.length; ++j)\n object.entries[j] = $root.ics23.CompressedBatchEntry.toObject(message.entries[j], options);\n }\n if (message.lookupInners && message.lookupInners.length) {\n object.lookupInners = [];\n for (var j = 0; j < message.lookupInners.length; ++j)\n object.lookupInners[j] = $root.ics23.InnerOp.toObject(message.lookupInners[j], options);\n }\n return object;\n };\n\n /**\n * Converts this CompressedBatchProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedBatchProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedBatchProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedBatchProof;\n })();\n\n ics23.CompressedBatchEntry = (function() {\n\n /**\n * Properties of a CompressedBatchEntry.\n * @memberof ics23\n * @interface ICompressedBatchEntry\n * @property {ics23.ICompressedExistenceProof|null} [exist] CompressedBatchEntry exist\n * @property {ics23.ICompressedNonExistenceProof|null} [nonexist] CompressedBatchEntry nonexist\n */\n\n /**\n * Constructs a new CompressedBatchEntry.\n * @memberof ics23\n * @classdesc Represents a CompressedBatchEntry.\n * @implements ICompressedBatchEntry\n * @constructor\n * @param {ics23.ICompressedBatchEntry=} [properties] Properties to set\n */\n function CompressedBatchEntry(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedBatchEntry exist.\n * @member {ics23.ICompressedExistenceProof|null|undefined} exist\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n CompressedBatchEntry.prototype.exist = null;\n\n /**\n * CompressedBatchEntry nonexist.\n * @member {ics23.ICompressedNonExistenceProof|null|undefined} nonexist\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n CompressedBatchEntry.prototype.nonexist = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * CompressedBatchEntry proof.\n * @member {\"exist\"|\"nonexist\"|undefined} proof\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n Object.defineProperty(CompressedBatchEntry.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new CompressedBatchEntry instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry=} [properties] Properties to set\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry instance\n */\n CompressedBatchEntry.create = function create(properties) {\n return new CompressedBatchEntry(properties);\n };\n\n /**\n * Encodes the specified CompressedBatchEntry message. Does not implicitly {@link ics23.CompressedBatchEntry.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry} message CompressedBatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchEntry.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.CompressedExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedBatchEntry message, length delimited. Does not implicitly {@link ics23.CompressedBatchEntry.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry} message CompressedBatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchEntry.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedBatchEntry message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchEntry.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedBatchEntry();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.CompressedNonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedBatchEntry message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchEntry.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedBatchEntry message.\n * @function verify\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedBatchEntry.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedNonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CompressedBatchEntry message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n */\n CompressedBatchEntry.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedBatchEntry)\n return object;\n var message = new $root.ics23.CompressedBatchEntry();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.CompressedBatchEntry.exist: object expected\");\n message.exist = $root.ics23.CompressedExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.CompressedBatchEntry.nonexist: object expected\");\n message.nonexist = $root.ics23.CompressedNonExistenceProof.fromObject(object.nonexist);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedBatchEntry message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.CompressedBatchEntry} message CompressedBatchEntry\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedBatchEntry.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.CompressedExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.CompressedNonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n return object;\n };\n\n /**\n * Converts this CompressedBatchEntry to JSON.\n * @function toJSON\n * @memberof ics23.CompressedBatchEntry\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedBatchEntry.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedBatchEntry;\n })();\n\n ics23.CompressedExistenceProof = (function() {\n\n /**\n * Properties of a CompressedExistenceProof.\n * @memberof ics23\n * @interface ICompressedExistenceProof\n * @property {Uint8Array|null} [key] CompressedExistenceProof key\n * @property {Uint8Array|null} [value] CompressedExistenceProof value\n * @property {ics23.ILeafOp|null} [leaf] CompressedExistenceProof leaf\n * @property {Array.|null} [path] CompressedExistenceProof path\n */\n\n /**\n * Constructs a new CompressedExistenceProof.\n * @memberof ics23\n * @classdesc Represents a CompressedExistenceProof.\n * @implements ICompressedExistenceProof\n * @constructor\n * @param {ics23.ICompressedExistenceProof=} [properties] Properties to set\n */\n function CompressedExistenceProof(properties) {\n this.path = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * CompressedExistenceProof value.\n * @member {Uint8Array} value\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.value = $util.newBuffer([]);\n\n /**\n * CompressedExistenceProof leaf.\n * @member {ics23.ILeafOp|null|undefined} leaf\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.leaf = null;\n\n /**\n * CompressedExistenceProof path.\n * @member {Array.} path\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.path = $util.emptyArray;\n\n /**\n * Creates a new CompressedExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof=} [properties] Properties to set\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof instance\n */\n CompressedExistenceProof.create = function create(properties) {\n return new CompressedExistenceProof(properties);\n };\n\n /**\n * Encodes the specified CompressedExistenceProof message. Does not implicitly {@link ics23.CompressedExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof} message CompressedExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.value != null && message.hasOwnProperty(\"value\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value);\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n $root.ics23.LeafOp.encode(message.leaf, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.path != null && message.path.length) {\n writer.uint32(/* id 4, wireType 2 =*/34).fork();\n for (var i = 0; i < message.path.length; ++i)\n writer.int32(message.path[i]);\n writer.ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified CompressedExistenceProof message, length delimited. Does not implicitly {@link ics23.CompressedExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof} message CompressedExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if (!(message.path && message.path.length))\n message.path = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.path.push(reader.int32());\n } else\n message.path.push(reader.int32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedExistenceProof message.\n * @function verify\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.value != null && message.hasOwnProperty(\"value\"))\n if (!(message.value && typeof message.value.length === \"number\" || $util.isString(message.value)))\n return \"value: buffer expected\";\n if (message.leaf != null && message.hasOwnProperty(\"leaf\")) {\n var error = $root.ics23.LeafOp.verify(message.leaf);\n if (error)\n return \"leaf.\" + error;\n }\n if (message.path != null && message.hasOwnProperty(\"path\")) {\n if (!Array.isArray(message.path))\n return \"path: array expected\";\n for (var i = 0; i < message.path.length; ++i)\n if (!$util.isInteger(message.path[i]))\n return \"path: integer[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a CompressedExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n */\n CompressedExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedExistenceProof)\n return object;\n var message = new $root.ics23.CompressedExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.value != null)\n if (typeof object.value === \"string\")\n $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0);\n else if (object.value.length)\n message.value = object.value;\n if (object.leaf != null) {\n if (typeof object.leaf !== \"object\")\n throw TypeError(\".ics23.CompressedExistenceProof.leaf: object expected\");\n message.leaf = $root.ics23.LeafOp.fromObject(object.leaf);\n }\n if (object.path) {\n if (!Array.isArray(object.path))\n throw TypeError(\".ics23.CompressedExistenceProof.path: array expected\");\n message.path = [];\n for (var i = 0; i < object.path.length; ++i)\n message.path[i] = object.path[i] | 0;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.CompressedExistenceProof} message CompressedExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.path = [];\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n if (options.bytes === String)\n object.value = \"\";\n else {\n object.value = [];\n if (options.bytes !== Array)\n object.value = $util.newBuffer(object.value);\n }\n object.leaf = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.value != null && message.hasOwnProperty(\"value\"))\n object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value;\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n object.leaf = $root.ics23.LeafOp.toObject(message.leaf, options);\n if (message.path && message.path.length) {\n object.path = [];\n for (var j = 0; j < message.path.length; ++j)\n object.path[j] = message.path[j];\n }\n return object;\n };\n\n /**\n * Converts this CompressedExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedExistenceProof;\n })();\n\n ics23.CompressedNonExistenceProof = (function() {\n\n /**\n * Properties of a CompressedNonExistenceProof.\n * @memberof ics23\n * @interface ICompressedNonExistenceProof\n * @property {Uint8Array|null} [key] CompressedNonExistenceProof key\n * @property {ics23.ICompressedExistenceProof|null} [left] CompressedNonExistenceProof left\n * @property {ics23.ICompressedExistenceProof|null} [right] CompressedNonExistenceProof right\n */\n\n /**\n * Constructs a new CompressedNonExistenceProof.\n * @memberof ics23\n * @classdesc Represents a CompressedNonExistenceProof.\n * @implements ICompressedNonExistenceProof\n * @constructor\n * @param {ics23.ICompressedNonExistenceProof=} [properties] Properties to set\n */\n function CompressedNonExistenceProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedNonExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * CompressedNonExistenceProof left.\n * @member {ics23.ICompressedExistenceProof|null|undefined} left\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.left = null;\n\n /**\n * CompressedNonExistenceProof right.\n * @member {ics23.ICompressedExistenceProof|null|undefined} right\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.right = null;\n\n /**\n * Creates a new CompressedNonExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof=} [properties] Properties to set\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof instance\n */\n CompressedNonExistenceProof.create = function create(properties) {\n return new CompressedNonExistenceProof(properties);\n };\n\n /**\n * Encodes the specified CompressedNonExistenceProof message. Does not implicitly {@link ics23.CompressedNonExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof} message CompressedNonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedNonExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.left != null && message.hasOwnProperty(\"left\"))\n $root.ics23.CompressedExistenceProof.encode(message.left, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.right != null && message.hasOwnProperty(\"right\"))\n $root.ics23.CompressedExistenceProof.encode(message.right, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedNonExistenceProof message, length delimited. Does not implicitly {@link ics23.CompressedNonExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof} message CompressedNonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedNonExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedNonExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedNonExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedNonExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedNonExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedNonExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedNonExistenceProof message.\n * @function verify\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedNonExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.left != null && message.hasOwnProperty(\"left\")) {\n var error = $root.ics23.CompressedExistenceProof.verify(message.left);\n if (error)\n return \"left.\" + error;\n }\n if (message.right != null && message.hasOwnProperty(\"right\")) {\n var error = $root.ics23.CompressedExistenceProof.verify(message.right);\n if (error)\n return \"right.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a CompressedNonExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n */\n CompressedNonExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedNonExistenceProof)\n return object;\n var message = new $root.ics23.CompressedNonExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.left != null) {\n if (typeof object.left !== \"object\")\n throw TypeError(\".ics23.CompressedNonExistenceProof.left: object expected\");\n message.left = $root.ics23.CompressedExistenceProof.fromObject(object.left);\n }\n if (object.right != null) {\n if (typeof object.right !== \"object\")\n throw TypeError(\".ics23.CompressedNonExistenceProof.right: object expected\");\n message.right = $root.ics23.CompressedExistenceProof.fromObject(object.right);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedNonExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.CompressedNonExistenceProof} message CompressedNonExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedNonExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n object.left = null;\n object.right = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.left != null && message.hasOwnProperty(\"left\"))\n object.left = $root.ics23.CompressedExistenceProof.toObject(message.left, options);\n if (message.right != null && message.hasOwnProperty(\"right\"))\n object.right = $root.ics23.CompressedExistenceProof.toObject(message.right, options);\n return object;\n };\n\n /**\n * Converts this CompressedNonExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedNonExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedNonExistenceProof;\n })();\n\n return ics23;\n})();\n\nmodule.exports = $root;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.batchVerifyNonMembership = exports.batchVerifyMembership = exports.verifyNonMembership = exports.verifyMembership = void 0;\nconst compress_1 = require(\"./compress\");\nconst proofs_1 = require(\"./proofs\");\nconst specs_1 = require(\"./specs\");\n/*\nThis implements the client side functions as specified in\nhttps://github.com/cosmos/ics/tree/master/spec/ics-023-vector-commitments\n\nIn particular:\n\n // Assumes ExistenceProof\n type verifyMembership = (root: CommitmentRoot, proof: CommitmentProof, key: Key, value: Value) => boolean\n\n // Assumes NonExistenceProof\n type verifyNonMembership = (root: CommitmentRoot, proof: CommitmentProof, key: Key) => boolean\n\n // Assumes BatchProof - required ExistenceProofs may be a subset of all items proven\n type batchVerifyMembership = (root: CommitmentRoot, proof: CommitmentProof, items: Map) => boolean\n\n // Assumes BatchProof - required NonExistenceProofs may be a subset of all items proven\n type batchVerifyNonMembership = (root: CommitmentRoot, proof: CommitmentProof, keys: Set) => boolean\n\nWe make an adjustment to accept a Spec to ensure the provided proof is in the format of the expected merkle store.\nThis can avoid an range of attacks on fake preimages, as we need to be careful on how to map key, value -> leaf\nand determine neighbors\n*/\n/**\n * verifyMembership ensures proof is (contains) a valid existence proof for the given\n */\nfunction verifyMembership(proof, spec, root, key, value) {\n const norm = (0, compress_1.decompress)(proof);\n const exist = getExistForKey(norm, key);\n if (!exist) {\n return false;\n }\n try {\n (0, proofs_1.verifyExistence)(exist, spec, root, key, value);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nexports.verifyMembership = verifyMembership;\n/**\n * verifyNonMembership ensures proof is (contains) a valid non-existence proof for the given key\n */\nfunction verifyNonMembership(proof, spec, root, key) {\n const norm = (0, compress_1.decompress)(proof);\n const nonexist = getNonExistForKey(norm, key);\n if (!nonexist) {\n return false;\n }\n try {\n (0, proofs_1.verifyNonExistence)(nonexist, spec, root, key);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nexports.verifyNonMembership = verifyNonMembership;\n/**\n * batchVerifyMembership ensures proof is (contains) a valid existence proof for the given\n */\nfunction batchVerifyMembership(proof, spec, root, items) {\n const norm = (0, compress_1.decompress)(proof);\n for (const [key, value] of items.entries()) {\n if (!verifyMembership(norm, spec, root, key, value)) {\n return false;\n }\n }\n return true;\n}\nexports.batchVerifyMembership = batchVerifyMembership;\n/**\n * batchVerifyNonMembership ensures proof is (contains) a valid existence proof for the given\n */\nfunction batchVerifyNonMembership(proof, spec, root, keys) {\n const norm = (0, compress_1.decompress)(proof);\n for (const key of keys) {\n if (!verifyNonMembership(norm, spec, root, key)) {\n return false;\n }\n }\n return true;\n}\nexports.batchVerifyNonMembership = batchVerifyNonMembership;\nfunction getExistForKey(proof, key) {\n const match = (p) => !!p && (0, specs_1.bytesEqual)(key, p.key);\n if (match(proof.exist)) {\n return proof.exist;\n }\n else if (proof.batch) {\n return proof.batch.entries.map((x) => x.exist || null).find(match);\n }\n return undefined;\n}\nfunction getNonExistForKey(proof, key) {\n const match = (p) => {\n return (!!p &&\n (!p.left || (0, specs_1.bytesBefore)(p.left.key, key)) &&\n (!p.right || (0, specs_1.bytesBefore)(key, p.right.key)));\n };\n if (match(proof.nonexist)) {\n return proof.nonexist;\n }\n else if (proof.batch) {\n return proof.batch.entries.map((x) => x.nonexist || null).find(match);\n }\n return undefined;\n}\n//# sourceMappingURL=ics23.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.verifyNonExistence = exports.verifyExistence = exports.tendermintSpec = exports.iavlSpec = exports.calculateExistenceRoot = exports.verifyNonMembership = exports.verifyMembership = exports.ics23 = void 0;\nvar codecimpl_1 = require(\"./generated/codecimpl\");\nObject.defineProperty(exports, \"ics23\", { enumerable: true, get: function () { return codecimpl_1.ics23; } });\nvar ics23_1 = require(\"./ics23\");\nObject.defineProperty(exports, \"verifyMembership\", { enumerable: true, get: function () { return ics23_1.verifyMembership; } });\nObject.defineProperty(exports, \"verifyNonMembership\", { enumerable: true, get: function () { return ics23_1.verifyNonMembership; } });\nvar proofs_1 = require(\"./proofs\");\nObject.defineProperty(exports, \"calculateExistenceRoot\", { enumerable: true, get: function () { return proofs_1.calculateExistenceRoot; } });\nObject.defineProperty(exports, \"iavlSpec\", { enumerable: true, get: function () { return proofs_1.iavlSpec; } });\nObject.defineProperty(exports, \"tendermintSpec\", { enumerable: true, get: function () { return proofs_1.tendermintSpec; } });\nObject.defineProperty(exports, \"verifyExistence\", { enumerable: true, get: function () { return proofs_1.verifyExistence; } });\nObject.defineProperty(exports, \"verifyNonExistence\", { enumerable: true, get: function () { return proofs_1.verifyNonExistence; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.doHash = exports.applyInner = exports.applyLeaf = void 0;\nconst ripemd160_1 = require(\"@noble/hashes/ripemd160\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst codecimpl_1 = require(\"./generated/codecimpl\");\nfunction applyLeaf(leaf, key, value) {\n if (key.length === 0) {\n throw new Error(\"Missing key\");\n }\n if (value.length === 0) {\n throw new Error(\"Missing value\");\n }\n const pkey = prepareLeafData(ensureHash(leaf.prehashKey), ensureLength(leaf.length), key);\n const pvalue = prepareLeafData(ensureHash(leaf.prehashValue), ensureLength(leaf.length), value);\n const data = new Uint8Array([\n ...ensureBytes(leaf.prefix),\n ...pkey,\n ...pvalue,\n ]);\n return doHash(ensureHash(leaf.hash), data);\n}\nexports.applyLeaf = applyLeaf;\nfunction applyInner(inner, child) {\n if (child.length === 0) {\n throw new Error(\"Inner op needs child value\");\n }\n const preimage = new Uint8Array([\n ...ensureBytes(inner.prefix),\n ...child,\n ...ensureBytes(inner.suffix),\n ]);\n return doHash(ensureHash(inner.hash), preimage);\n}\nexports.applyInner = applyInner;\nfunction ensure(maybe, value) {\n return maybe === undefined || maybe === null ? value : maybe;\n}\nconst ensureHash = (h) => ensure(h, codecimpl_1.ics23.HashOp.NO_HASH);\nconst ensureLength = (l) => ensure(l, codecimpl_1.ics23.LengthOp.NO_PREFIX);\nconst ensureBytes = (b) => ensure(b, new Uint8Array([]));\nfunction prepareLeafData(hashOp, lengthOp, data) {\n const h = doHashOrNoop(hashOp, data);\n return doLengthOp(lengthOp, h);\n}\n// doHashOrNoop will return the preimage untouched if hashOp == NONE,\n// otherwise, perform doHash\nfunction doHashOrNoop(hashOp, preimage) {\n if (hashOp === codecimpl_1.ics23.HashOp.NO_HASH) {\n return preimage;\n }\n return doHash(hashOp, preimage);\n}\n// doHash will preform the specified hash on the preimage.\n// if hashOp == NONE, it will return an error (use doHashOrNoop if you want different behavior)\nfunction doHash(hashOp, preimage) {\n switch (hashOp) {\n case codecimpl_1.ics23.HashOp.SHA256:\n return (0, sha256_1.sha256)(preimage);\n case codecimpl_1.ics23.HashOp.SHA512:\n return (0, sha512_1.sha512)(preimage);\n case codecimpl_1.ics23.HashOp.RIPEMD160:\n return (0, ripemd160_1.ripemd160)(preimage);\n case codecimpl_1.ics23.HashOp.BITCOIN:\n return (0, ripemd160_1.ripemd160)((0, sha256_1.sha256)(preimage));\n case codecimpl_1.ics23.HashOp.SHA512_256:\n return (0, sha512_1.sha512_256)(preimage);\n }\n throw new Error(`Unsupported hashop: ${hashOp}`);\n}\nexports.doHash = doHash;\n// doLengthOp will calculate the proper prefix and return it prepended\n// doLengthOp(op, data) -> length(data) || data\nfunction doLengthOp(lengthOp, data) {\n switch (lengthOp) {\n case codecimpl_1.ics23.LengthOp.NO_PREFIX:\n return data;\n case codecimpl_1.ics23.LengthOp.VAR_PROTO:\n return new Uint8Array([...encodeVarintProto(data.length), ...data]);\n case codecimpl_1.ics23.LengthOp.REQUIRE_32_BYTES:\n if (data.length !== 32) {\n throw new Error(`Length is ${data.length}, not 32 bytes`);\n }\n return data;\n case codecimpl_1.ics23.LengthOp.REQUIRE_64_BYTES:\n if (data.length !== 64) {\n throw new Error(`Length is ${data.length}, not 64 bytes`);\n }\n return data;\n case codecimpl_1.ics23.LengthOp.FIXED32_LITTLE:\n return new Uint8Array([...encodeFixed32Le(data.length), ...data]);\n // TODO\n // case LengthOp_VAR_RLP:\n // case LengthOp_FIXED32_BIG:\n // case LengthOp_FIXED64_BIG:\n // case LengthOp_FIXED64_LITTLE:\n }\n throw new Error(`Unsupported lengthop: ${lengthOp}`);\n}\nfunction encodeVarintProto(n) {\n let enc = [];\n let l = n;\n while (l >= 128) {\n const b = (l % 128) + 128;\n enc = [...enc, b];\n l = l / 128;\n }\n enc = [...enc, l];\n return new Uint8Array(enc);\n}\nfunction encodeFixed32Le(n) {\n const enc = new Uint8Array(4);\n let l = n;\n for (let i = enc.length; i > 0; i--) {\n enc[Math.abs(i - enc.length)] = l % 256;\n l = Math.floor(l / 256);\n }\n return enc;\n}\n//# sourceMappingURL=ops.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ensureLeftNeighbor = exports.ensureSpec = exports.calculateExistenceRoot = exports.verifyNonExistence = exports.verifyExistence = exports.smtSpec = exports.tendermintSpec = exports.iavlSpec = void 0;\nconst codecimpl_1 = require(\"./generated/codecimpl\");\nconst ops_1 = require(\"./ops\");\nconst specs_1 = require(\"./specs\");\nexports.iavlSpec = {\n leafSpec: {\n prefix: Uint8Array.from([0]),\n hash: codecimpl_1.ics23.HashOp.SHA256,\n prehashValue: codecimpl_1.ics23.HashOp.SHA256,\n prehashKey: codecimpl_1.ics23.HashOp.NO_HASH,\n length: codecimpl_1.ics23.LengthOp.VAR_PROTO,\n },\n innerSpec: {\n childOrder: [0, 1],\n minPrefixLength: 4,\n maxPrefixLength: 12,\n childSize: 33,\n hash: codecimpl_1.ics23.HashOp.SHA256,\n },\n};\nexports.tendermintSpec = {\n leafSpec: {\n prefix: Uint8Array.from([0]),\n hash: codecimpl_1.ics23.HashOp.SHA256,\n prehashValue: codecimpl_1.ics23.HashOp.SHA256,\n prehashKey: codecimpl_1.ics23.HashOp.NO_HASH,\n length: codecimpl_1.ics23.LengthOp.VAR_PROTO,\n },\n innerSpec: {\n childOrder: [0, 1],\n minPrefixLength: 1,\n maxPrefixLength: 1,\n childSize: 32,\n hash: codecimpl_1.ics23.HashOp.SHA256,\n },\n};\nexports.smtSpec = {\n leafSpec: {\n hash: codecimpl_1.ics23.HashOp.SHA256,\n prehashKey: codecimpl_1.ics23.HashOp.NO_HASH,\n prehashValue: codecimpl_1.ics23.HashOp.SHA256,\n length: codecimpl_1.ics23.LengthOp.NO_PREFIX,\n prefix: Uint8Array.from([0]),\n },\n innerSpec: {\n childOrder: [0, 1],\n childSize: 32,\n minPrefixLength: 1,\n maxPrefixLength: 1,\n emptyChild: new Uint8Array(32),\n hash: codecimpl_1.ics23.HashOp.SHA256,\n },\n maxDepth: 256,\n};\n// verifyExistence will throw an error if the proof doesn't link key, value -> root\n// or if it doesn't fulfill the spec\nfunction verifyExistence(proof, spec, root, key, value) {\n ensureSpec(proof, spec);\n const calc = calculateExistenceRoot(proof);\n (0, specs_1.ensureBytesEqual)(calc, root);\n (0, specs_1.ensureBytesEqual)(key, proof.key);\n (0, specs_1.ensureBytesEqual)(value, proof.value);\n}\nexports.verifyExistence = verifyExistence;\n// Verify does all checks to ensure the proof has valid non-existence proofs,\n// and they ensure the given key is not in the CommitmentState,\n// throwing an error if there is an issue\nfunction verifyNonExistence(proof, spec, root, key) {\n let leftKey;\n let rightKey;\n if (proof.left) {\n verifyExistence(proof.left, spec, root, proof.left.key, proof.left.value);\n leftKey = proof.left.key;\n }\n if (proof.right) {\n verifyExistence(proof.right, spec, root, proof.right.key, proof.right.value);\n rightKey = proof.right.key;\n }\n if (!leftKey && !rightKey) {\n throw new Error(\"neither left nor right proof defined\");\n }\n if (leftKey) {\n (0, specs_1.ensureBytesBefore)(leftKey, key);\n }\n if (rightKey) {\n (0, specs_1.ensureBytesBefore)(key, rightKey);\n }\n if (!spec.innerSpec) {\n throw new Error(\"no inner spec\");\n }\n if (!leftKey) {\n ensureLeftMost(spec.innerSpec, proof.right.path);\n }\n else if (!rightKey) {\n ensureRightMost(spec.innerSpec, proof.left.path);\n }\n else {\n ensureLeftNeighbor(spec.innerSpec, proof.left.path, proof.right.path);\n }\n return;\n}\nexports.verifyNonExistence = verifyNonExistence;\n// Calculate determines the root hash that matches the given proof.\n// You must validate the result is what you have in a header.\n// Returns error if the calculations cannot be performed.\nfunction calculateExistenceRoot(proof) {\n if (!proof.key || !proof.value) {\n throw new Error(\"Existence proof needs key and value set\");\n }\n if (!proof.leaf) {\n throw new Error(\"Existence proof must start with a leaf operation\");\n }\n const path = proof.path || [];\n let res = (0, ops_1.applyLeaf)(proof.leaf, proof.key, proof.value);\n for (const inner of path) {\n res = (0, ops_1.applyInner)(inner, res);\n }\n return res;\n}\nexports.calculateExistenceRoot = calculateExistenceRoot;\n// ensureSpec throws an Error if proof doesn't fulfill spec\nfunction ensureSpec(proof, spec) {\n if (!proof.leaf) {\n throw new Error(\"Existence proof must start with a leaf operation\");\n }\n if (!spec.leafSpec) {\n throw new Error(\"Spec must include leafSpec\");\n }\n if (!spec.innerSpec) {\n throw new Error(\"Spec must include innerSpec\");\n }\n (0, specs_1.ensureLeaf)(proof.leaf, spec.leafSpec);\n const path = proof.path || [];\n if (spec.minDepth && path.length < spec.minDepth) {\n throw new Error(`Too few inner nodes ${path.length}`);\n }\n if (spec.maxDepth && path.length > spec.maxDepth) {\n throw new Error(`Too many inner nodes ${path.length}`);\n }\n for (const inner of path) {\n (0, specs_1.ensureInner)(inner, spec.leafSpec.prefix, spec.innerSpec);\n }\n}\nexports.ensureSpec = ensureSpec;\nfunction ensureLeftMost(spec, path) {\n const { minPrefix, maxPrefix, suffix } = getPadding(spec, 0);\n // ensure every step has a prefix and suffix defined to be leftmost\n for (const step of path) {\n if (!hasPadding(step, minPrefix, maxPrefix, suffix)) {\n throw new Error(\"Step not leftmost\");\n }\n }\n}\nfunction ensureRightMost(spec, path) {\n const len = spec.childOrder.length - 1;\n const { minPrefix, maxPrefix, suffix } = getPadding(spec, len);\n // ensure every step has a prefix and suffix defined to be leftmost\n for (const step of path) {\n if (!hasPadding(step, minPrefix, maxPrefix, suffix)) {\n throw new Error(\"Step not leftmost\");\n }\n }\n}\nfunction ensureLeftNeighbor(spec, left, right) {\n const mutleft = [...left];\n const mutright = [...right];\n let topleft = mutleft.pop();\n let topright = mutright.pop();\n while ((0, specs_1.bytesEqual)(topleft.prefix, topright.prefix) &&\n (0, specs_1.bytesEqual)(topleft.suffix, topright.suffix)) {\n topleft = mutleft.pop();\n topright = mutright.pop();\n }\n // now topleft and topright are the first divergent nodes\n // make sure they are left and right of each other\n if (!isLeftStep(spec, topleft, topright)) {\n throw new Error(`Not left neightbor at first divergent step`);\n }\n // make sure the paths are left and right most possibilities respectively\n ensureRightMost(spec, mutleft);\n ensureLeftMost(spec, mutright);\n}\nexports.ensureLeftNeighbor = ensureLeftNeighbor;\n// isLeftStep assumes left and right have common parents\n// checks if left is exactly one slot to the left of right\nfunction isLeftStep(spec, left, right) {\n const leftidx = orderFromPadding(spec, left);\n const rightidx = orderFromPadding(spec, right);\n return rightidx === leftidx + 1;\n}\nfunction orderFromPadding(spec, inner) {\n for (let branch = 0; branch < spec.childOrder.length; branch++) {\n const { minPrefix, maxPrefix, suffix } = getPadding(spec, branch);\n if (hasPadding(inner, minPrefix, maxPrefix, suffix)) {\n return branch;\n }\n }\n throw new Error(`Cannot find any valid spacing for this node`);\n}\nfunction hasPadding(op, minPrefix, maxPrefix, suffix) {\n if ((op.prefix || []).length < minPrefix) {\n return false;\n }\n if ((op.prefix || []).length > maxPrefix) {\n return false;\n }\n return (op.suffix || []).length === suffix;\n}\nfunction getPadding(spec, branch) {\n const idx = getPosition(spec.childOrder, branch);\n // count how many children are in the prefix\n const prefix = idx * spec.childSize;\n const minPrefix = prefix + spec.minPrefixLength;\n const maxPrefix = prefix + spec.maxPrefixLength;\n // count how many children are in the suffix\n const suffix = (spec.childOrder.length - 1 - idx) * spec.childSize;\n return { minPrefix, maxPrefix, suffix };\n}\nfunction getPosition(order, branch) {\n if (branch < 0 || branch >= order.length) {\n throw new Error(`Invalid branch: ${branch}`);\n }\n return order.findIndex((val) => val === branch);\n}\n//# sourceMappingURL=proofs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytesBefore = exports.ensureBytesBefore = exports.bytesEqual = exports.ensureBytesEqual = exports.ensureInner = exports.ensureLeaf = void 0;\nfunction ensureLeaf(leaf, spec) {\n if (leaf.hash !== spec.hash) {\n throw new Error(`Unexpected hashOp: ${leaf.hash}`);\n }\n if (leaf.prehashKey !== spec.prehashKey) {\n throw new Error(`Unexpected prehashKey: ${leaf.prehashKey}`);\n }\n if (leaf.prehashValue !== spec.prehashValue) {\n throw new Error(`Unexpected prehashValue: ${leaf.prehashValue}`);\n }\n if (leaf.length !== spec.length) {\n throw new Error(`Unexpected length op: ${leaf.length}`);\n }\n ensurePrefix(leaf.prefix, spec.prefix);\n}\nexports.ensureLeaf = ensureLeaf;\nfunction ensureInner(inner, prefix, spec) {\n if (inner.hash !== spec.hash) {\n throw new Error(`Unexpected hashOp: ${inner.hash}`);\n }\n if (!inner.prefix) {\n throw new Error(\"No prefix set for inner node\");\n }\n if (hasPrefix(inner.prefix, prefix)) {\n throw new Error(`Inner node has leaf prefix`);\n }\n if (inner.prefix.length < (spec.minPrefixLength || 0)) {\n throw new Error(`Prefix too short: ${inner.prefix.length} bytes`);\n }\n const maxLeftChildBytes = (spec.childOrder.length - 1) * spec.childSize;\n if (inner.prefix.length > (spec.maxPrefixLength || 0) + maxLeftChildBytes) {\n throw new Error(`Prefix too long: ${inner.prefix.length} bytes`);\n }\n}\nexports.ensureInner = ensureInner;\nfunction ensurePrefix(check, prefix) {\n // no prefix supplied, means everything passes\n if (!prefix || prefix.length === 0) {\n return;\n }\n if (!check) {\n throw new Error(`Target bytes missing`);\n }\n ensureBytesEqual(prefix, check.slice(0, prefix.length));\n}\n// ensureBytesEqual throws an error if the arrays are different\nfunction ensureBytesEqual(a, b) {\n if (a.length !== b.length) {\n throw new Error(`Different lengths ${a.length} vs ${b.length}`);\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n throw new Error(`Arrays differ at index ${i}: ${a[i]} vs ${b[i]}`);\n }\n }\n}\nexports.ensureBytesEqual = ensureBytesEqual;\nfunction bytesEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\nexports.bytesEqual = bytesEqual;\nfunction hasPrefix(check, prefix) {\n // no prefix supplied, means everything passes\n if (!prefix || prefix.length === 0) {\n return false;\n }\n if (!check) {\n return false;\n }\n if (check.length <= prefix.length) {\n return false;\n }\n for (let i = 0; i < prefix.length; i++) {\n if (check[i] !== prefix[i]) {\n return false;\n }\n }\n throw true;\n}\n// ensureBytesBefore throws an error if first >= last\n// we compare byte by byte\nfunction ensureBytesBefore(first, last) {\n if (!bytesBefore(first, last)) {\n throw new Error(\"first is after last\");\n }\n}\nexports.ensureBytesBefore = ensureBytesBefore;\nfunction bytesBefore(first, last) {\n const min = first.length < last.length ? first.length : last.length;\n for (let i = 0; i < min; i++) {\n if (first[i] < last[i]) {\n return true;\n }\n if (first[i] > last[i]) {\n return false;\n }\n // if they are equal, continue to next step\n }\n // if they match, ensure that last is longer than first..\n return first.length < last.length;\n}\nexports.bytesBefore = bytesBefore;\n//# sourceMappingURL=specs.js.map","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\n// See https://github.com/tendermint/tendermint/blob/f2ada0a604b4c0763bda2f64fac53d506d3beca7/docs/spec/blockchain/encoding.md#public-key-cryptography\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pubkeyToAddress = exports.pubkeyToRawAddress = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\n// For secp256k1 this assumes we already have a compressed pubkey.\nfunction pubkeyToRawAddress(pubkey) {\n if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawSecp256k1PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawEd25519PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n // https://github.com/tendermint/tendermint/blob/38b401657e4ad7a7eeb3c30a3cbf512037df3740/crypto/multisig/threshold_pubkey.go#L71-L74\n const pubkeyData = (0, encoding_2.encodeAminoPubkey)(pubkey);\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n }\n else {\n throw new Error(\"Unsupported public key type\");\n }\n}\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nfunction pubkeyToAddress(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, pubkeyToRawAddress(pubkey));\n}\nexports.pubkeyToAddress = pubkeyToAddress;\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseCoins = exports.coins = exports.coin = void 0;\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * Creates a coin.\n *\n * If your values do not exceed the safe integer range of JS numbers (53 bit),\n * you can use the number type here. This is the case for all typical Cosmos SDK\n * chains that use the default 6 decimals.\n *\n * In case you need to supportr larger values, use unsigned integer strings instead.\n */\nfunction coin(amount, denom) {\n let outAmount;\n if (typeof amount === \"number\") {\n try {\n outAmount = new math_1.Uint53(amount).toString();\n }\n catch (_err) {\n throw new Error(\"Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.\");\n }\n }\n else {\n if (!amount.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid unsigned integer string format\");\n }\n outAmount = amount.replace(/^0*/, \"\") || \"0\";\n }\n return {\n amount: outAmount,\n denom: denom,\n };\n}\nexports.coin = coin;\n/**\n * Creates a list of coins with one element.\n */\nfunction coins(amount, denom) {\n return [coin(amount, denom)];\n}\nexports.coins = coins;\n/**\n * Takes a coins list like \"819966000ucosm,700000000ustake\" and parses it.\n *\n * A Stargate-ready variant of this function is available via:\n *\n * ```\n * import { parseCoins } from \"@cosmjs/proto-signing\";\n * // or\n * import { parseCoins } from \"@cosmjs/stargate\";\n * ```\n */\nfunction parseCoins(input) {\n return input\n .replace(/\\s/g, \"\")\n .split(\",\")\n .filter(Boolean)\n .map((part) => {\n const match = part.match(/^([0-9]+)([a-zA-Z]+)/);\n if (!match)\n throw new Error(\"Got an invalid coin string\");\n return {\n amount: math_1.Uint64.fromString(match[1]).toString(),\n denom: match[2],\n };\n });\n}\nexports.parseCoins = parseCoins;\n//# sourceMappingURL=coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.encodeSecp256k1Pubkey = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pubkeys_1 = require(\"./pubkeys\");\nfunction encodeSecp256k1Pubkey(pubkey) {\n if (pubkey.length !== 33 || (pubkey[0] !== 0x02 && pubkey[0] !== 0x03)) {\n throw new Error(\"Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\nexports.encodeSecp256k1Pubkey = encodeSecp256k1Pubkey;\n// As discussed in https://github.com/binance-chain/javascript-sdk/issues/163\n// Prefixes listed here: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/docs/spec/blockchain/encoding.md#public-key-cryptography\n// Last bytes is varint-encoded length prefix\nconst pubkeyAminoPrefixSecp256k1 = (0, encoding_1.fromHex)(\"eb5ae987\" + \"21\" /* fixed length */);\nconst pubkeyAminoPrefixEd25519 = (0, encoding_1.fromHex)(\"1624de64\" + \"20\" /* fixed length */);\nconst pubkeyAminoPrefixSr25519 = (0, encoding_1.fromHex)(\"0dfb1005\" + \"20\" /* fixed length */);\n/** See https://github.com/tendermint/tendermint/commit/38b401657e4ad7a7eeb3c30a3cbf512037df3740 */\nconst pubkeyAminoPrefixMultisigThreshold = (0, encoding_1.fromHex)(\"22c1f7e2\" /* variable length not included */);\n/**\n * Decodes a pubkey in the Amino binary format to a type/value object.\n */\nfunction decodeAminoPubkey(data) {\n if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSecp256k1)) {\n const rest = data.slice(pubkeyAminoPrefixSecp256k1.length);\n if (rest.length !== 33) {\n throw new Error(\"Invalid rest data length. Expected 33 bytes (compressed secp256k1 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixEd25519)) {\n const rest = data.slice(pubkeyAminoPrefixEd25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Ed25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSr25519)) {\n const rest = data.slice(pubkeyAminoPrefixSr25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Sr25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.sr25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixMultisigThreshold)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return decodeMultisigPubkey(data);\n }\n else {\n throw new Error(\"Unsupported public key type. Amino data starts with: \" + (0, encoding_1.toHex)(data.slice(0, 5)));\n }\n}\nexports.decodeAminoPubkey = decodeAminoPubkey;\n/**\n * Decodes a bech32 pubkey to Amino binary, which is then decoded to a type/value object.\n * The bech32 prefix is ignored and discareded.\n *\n * @param bechEncoded the bech32 encoded pubkey\n */\nfunction decodeBech32Pubkey(bechEncoded) {\n const { data } = (0, encoding_1.fromBech32)(bechEncoded);\n return decodeAminoPubkey(data);\n}\nexports.decodeBech32Pubkey = decodeBech32Pubkey;\n/**\n * Uvarint decoder for Amino.\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/decoder.go#L64-76\n * @returns varint as number, and bytes count occupied by varaint\n */\nfunction decodeUvarint(reader) {\n if (reader.length < 1) {\n throw new Error(\"Can't decode varint. EOF\");\n }\n if (reader[0] > 127) {\n throw new Error(\"Decoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.Varint implementation from the Go standard library and write some tests.\");\n }\n return [reader[0], 1];\n}\n/**\n * Decodes a multisig pubkey to type object.\n * Pubkey structure [ prefix + const + threshold + loop:(const + pubkeyLength + pubkey ) ]\n * [ 4b + 1b + varint + loop:(1b + varint + pubkeyLength bytes) ]\n * @param data encoded pubkey\n */\nfunction decodeMultisigPubkey(data) {\n const reader = Array.from(data);\n // remove multisig amino prefix;\n const prefixFromReader = reader.splice(0, pubkeyAminoPrefixMultisigThreshold.length);\n if (!(0, utils_1.arrayContentStartsWith)(prefixFromReader, pubkeyAminoPrefixMultisigThreshold)) {\n throw new Error(\"Invalid multisig prefix.\");\n }\n // remove 0x08 threshold prefix;\n if (reader.shift() != 0x08) {\n throw new Error(\"Invalid multisig data. Expecting 0x08 prefix before threshold.\");\n }\n // read threshold\n const [threshold, thresholdBytesLength] = decodeUvarint(reader);\n reader.splice(0, thresholdBytesLength);\n // read participants pubkeys\n const pubkeys = [];\n while (reader.length > 0) {\n // remove 0x12 threshold prefix;\n if (reader.shift() != 0x12) {\n throw new Error(\"Invalid multisig data. Expecting 0x12 prefix before participant pubkey length.\");\n }\n // read pubkey length\n const [pubkeyLength, pubkeyLengthBytesSize] = decodeUvarint(reader);\n reader.splice(0, pubkeyLengthBytesSize);\n // verify that we can read pubkey\n if (reader.length < pubkeyLength) {\n throw new Error(\"Invalid multisig data length.\");\n }\n // read and decode participant pubkey\n const encodedPubkey = reader.splice(0, pubkeyLength);\n const pubkey = decodeAminoPubkey(Uint8Array.from(encodedPubkey));\n pubkeys.push(pubkey);\n }\n return {\n type: pubkeys_1.pubkeyType.multisigThreshold,\n value: {\n threshold: threshold.toString(),\n pubkeys: pubkeys,\n },\n };\n}\n/**\n * Uvarint encoder for Amino. This is the same encoding as `binary.PutUvarint` from the Go\n * standard library.\n *\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/encoder.go#L77-L85\n */\nfunction encodeUvarint(value) {\n const checked = math_1.Uint53.fromString(value.toString()).toNumber();\n if (checked > 127) {\n throw new Error(\"Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.\");\n }\n return [checked];\n}\n/**\n * Encodes a public key to binary Amino.\n */\nfunction encodeAminoPubkey(pubkey) {\n if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n const out = Array.from(pubkeyAminoPrefixMultisigThreshold);\n out.push(0x08); // TODO: What is this?\n out.push(...encodeUvarint(pubkey.value.threshold));\n for (const pubkeyData of pubkey.value.pubkeys.map((p) => encodeAminoPubkey(p))) {\n out.push(0x12); // TODO: What is this?\n out.push(...encodeUvarint(pubkeyData.length));\n out.push(...pubkeyData);\n }\n return new Uint8Array(out);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixEd25519, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixSecp256k1, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else {\n throw new Error(\"Unsupported pubkey type\");\n }\n}\nexports.encodeAminoPubkey = encodeAminoPubkey;\n/**\n * Encodes a public key to binary Amino and then to bech32.\n *\n * @param pubkey the public key to encode\n * @param prefix the bech32 prefix (human readable part)\n */\nfunction encodeBech32Pubkey(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, encodeAminoPubkey(pubkey));\n}\nexports.encodeBech32Pubkey = encodeBech32Pubkey;\n//# sourceMappingURL=encoding.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.executeKdf = exports.makeStdTx = exports.isStdTx = exports.serializeSignDoc = exports.makeSignDoc = exports.encodeSecp256k1Signature = exports.decodeSignature = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.extractKdfConfiguration = exports.pubkeyType = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.isMultisigThresholdPubkey = exports.isEd25519Pubkey = exports.makeCosmoshubPath = exports.createMultisigThresholdPubkey = exports.encodeSecp256k1Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.parseCoins = exports.coins = exports.coin = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar coins_1 = require(\"./coins\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return coins_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return coins_1.coins; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return coins_1.parseCoins; } });\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"decodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.decodeAminoPubkey; } });\nObject.defineProperty(exports, \"decodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.decodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.encodeAminoPubkey; } });\nObject.defineProperty(exports, \"encodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeSecp256k1Pubkey; } });\nvar multisig_1 = require(\"./multisig\");\nObject.defineProperty(exports, \"createMultisigThresholdPubkey\", { enumerable: true, get: function () { return multisig_1.createMultisigThresholdPubkey; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkeys_1 = require(\"./pubkeys\");\nObject.defineProperty(exports, \"isEd25519Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isEd25519Pubkey; } });\nObject.defineProperty(exports, \"isMultisigThresholdPubkey\", { enumerable: true, get: function () { return pubkeys_1.isMultisigThresholdPubkey; } });\nObject.defineProperty(exports, \"isSecp256k1Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"isSinglePubkey\", { enumerable: true, get: function () { return pubkeys_1.isSinglePubkey; } });\nObject.defineProperty(exports, \"pubkeyType\", { enumerable: true, get: function () { return pubkeys_1.pubkeyType; } });\nvar secp256k1hdwallet_1 = require(\"./secp256k1hdwallet\");\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return secp256k1hdwallet_1.extractKdfConfiguration; } });\nObject.defineProperty(exports, \"Secp256k1HdWallet\", { enumerable: true, get: function () { return secp256k1hdwallet_1.Secp256k1HdWallet; } });\nvar secp256k1wallet_1 = require(\"./secp256k1wallet\");\nObject.defineProperty(exports, \"Secp256k1Wallet\", { enumerable: true, get: function () { return secp256k1wallet_1.Secp256k1Wallet; } });\nvar signature_1 = require(\"./signature\");\nObject.defineProperty(exports, \"decodeSignature\", { enumerable: true, get: function () { return signature_1.decodeSignature; } });\nObject.defineProperty(exports, \"encodeSecp256k1Signature\", { enumerable: true, get: function () { return signature_1.encodeSecp256k1Signature; } });\nvar signdoc_1 = require(\"./signdoc\");\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signdoc_1.makeSignDoc; } });\nObject.defineProperty(exports, \"serializeSignDoc\", { enumerable: true, get: function () { return signdoc_1.serializeSignDoc; } });\nvar stdtx_1 = require(\"./stdtx\");\nObject.defineProperty(exports, \"isStdTx\", { enumerable: true, get: function () { return stdtx_1.isStdTx; } });\nObject.defineProperty(exports, \"makeStdTx\", { enumerable: true, get: function () { return stdtx_1.makeStdTx; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMultisigThresholdPubkey = exports.compareArrays = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst addresses_1 = require(\"./addresses\");\n/**\n * Compare arrays lexicographically.\n *\n * Returns value < 0 if `a < b`.\n * Returns value > 0 if `a > b`.\n * Returns 0 if `a === b`.\n */\nfunction compareArrays(a, b) {\n const aHex = (0, encoding_1.toHex)(a);\n const bHex = (0, encoding_1.toHex)(b);\n return aHex === bHex ? 0 : aHex < bHex ? -1 : 1;\n}\nexports.compareArrays = compareArrays;\nfunction createMultisigThresholdPubkey(pubkeys, threshold, nosort = false) {\n const uintThreshold = new math_1.Uint53(threshold);\n if (uintThreshold.toNumber() > pubkeys.length) {\n throw new Error(`Threshold k = ${uintThreshold.toNumber()} exceeds number of keys n = ${pubkeys.length}`);\n }\n const outPubkeys = nosort\n ? pubkeys\n : Array.from(pubkeys).sort((lhs, rhs) => {\n // https://github.com/cosmos/cosmos-sdk/blob/v0.42.2/client/keys/add.go#L172-L174\n const addressLhs = (0, addresses_1.pubkeyToRawAddress)(lhs);\n const addressRhs = (0, addresses_1.pubkeyToRawAddress)(rhs);\n return compareArrays(addressLhs, addressRhs);\n });\n return {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: uintThreshold.toString(),\n pubkeys: outPubkeys,\n },\n };\n}\nexports.createMultisigThresholdPubkey = createMultisigThresholdPubkey;\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\nexports.makeCosmoshubPath = makeCosmoshubPath;\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMultisigThresholdPubkey = exports.isSinglePubkey = exports.pubkeyType = exports.isSecp256k1Pubkey = exports.isEd25519Pubkey = void 0;\nfunction isEd25519Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyEd25519\";\n}\nexports.isEd25519Pubkey = isEd25519Pubkey;\nfunction isSecp256k1Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeySecp256k1\";\n}\nexports.isSecp256k1Pubkey = isSecp256k1Pubkey;\nexports.pubkeyType = {\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/ed25519/ed25519.go#L22 */\n secp256k1: \"tendermint/PubKeySecp256k1\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/secp256k1/secp256k1.go#L23 */\n ed25519: \"tendermint/PubKeyEd25519\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/sr25519/codec.go#L12 */\n sr25519: \"tendermint/PubKeySr25519\",\n multisigThreshold: \"tendermint/PubKeyMultisigThreshold\",\n};\nfunction isSinglePubkey(pubkey) {\n const singPubkeyTypes = [exports.pubkeyType.ed25519, exports.pubkeyType.secp256k1, exports.pubkeyType.sr25519];\n return singPubkeyTypes.includes(pubkey.type);\n}\nexports.isSinglePubkey = isSinglePubkey;\nfunction isMultisigThresholdPubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyMultisigThreshold\";\n}\nexports.isMultisigThresholdPubkey = isMultisigThresholdPubkey;\n//# sourceMappingURL=pubkeys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1HdWallet = exports.extractKdfConfiguration = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst addresses_1 = require(\"./addresses\");\nconst paths_1 = require(\"./paths\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"secp256k1wallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, paths_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\nclass Secp256k1HdWallet {\n constructor(mnemonic, options) {\n var _a, _b;\n const hdPaths = (_a = options.hdPaths) !== null && _a !== void 0 ? _a : defaultOptions.hdPaths;\n const prefix = (_b = options.prefix) !== null && _b !== void 0 ? _b : defaultOptions.prefix;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix,\n }));\n }\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new Secp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return Secp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return Secp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return Secp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return Secp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signAmino(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const message = (0, crypto_1.sha256)((0, signdoc_1.serializeSignDoc)(signDoc));\n const signature = await crypto_1.Secp256k1.createSignature(message, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(pubkey, signatureBytes),\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.Secp256k1HdWallet = Secp256k1HdWallet;\n//# sourceMappingURL=secp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1Wallet = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst addresses_1 = require(\"./addresses\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use Secp256k1HdWallet.\n */\nclass Secp256k1Wallet {\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n /**\n * Creates a Secp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new Secp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signAmino(signerAddress, signDoc) {\n if (signerAddress !== this.address) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const message = new crypto_1.Sha256((0, signdoc_1.serializeSignDoc)(signDoc)).digest();\n const signature = await crypto_1.Secp256k1.createSignature(message, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes),\n };\n }\n}\nexports.Secp256k1Wallet = Secp256k1Wallet;\n//# sourceMappingURL=secp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeSignature = exports.encodeSecp256k1Signature = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a binary pubkey and signature to create a signature object\n *\n * @param pubkey a compressed secp256k1 public key\n * @param signature a 64 byte fixed length representation of secp256k1 signature components r and s\n */\nfunction encodeSecp256k1Signature(pubkey, signature) {\n if (signature.length !== 64) {\n throw new Error(\"Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.\");\n }\n return {\n pub_key: (0, encoding_2.encodeSecp256k1Pubkey)(pubkey),\n signature: (0, encoding_1.toBase64)(signature),\n };\n}\nexports.encodeSecp256k1Signature = encodeSecp256k1Signature;\nfunction decodeSignature(signature) {\n switch (signature.pub_key.type) {\n // Note: please don't add cases here without writing additional unit tests\n case pubkeys_1.pubkeyType.secp256k1:\n return {\n pubkey: (0, encoding_1.fromBase64)(signature.pub_key.value),\n signature: (0, encoding_1.fromBase64)(signature.signature),\n };\n default:\n throw new Error(\"Unsupported pubkey type\");\n }\n}\nexports.decodeSignature = decodeSignature;\n//# sourceMappingURL=signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeSignDoc = exports.makeSignDoc = exports.sortedJsonStringify = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction sortedObject(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(sortedObject);\n }\n const sortedKeys = Object.keys(obj).sort();\n const result = {};\n // NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code\n sortedKeys.forEach((key) => {\n result[key] = sortedObject(obj[key]);\n });\n return result;\n}\n/** Returns a JSON string with objects sorted by key */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction sortedJsonStringify(obj) {\n return JSON.stringify(sortedObject(obj));\n}\nexports.sortedJsonStringify = sortedJsonStringify;\nfunction makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence) {\n return {\n chain_id: chainId,\n account_number: math_1.Uint53.fromString(accountNumber.toString()).toString(),\n sequence: math_1.Uint53.fromString(sequence.toString()).toString(),\n fee: fee,\n msgs: msgs,\n memo: memo || \"\",\n };\n}\nexports.makeSignDoc = makeSignDoc;\nfunction serializeSignDoc(signDoc) {\n return (0, encoding_1.toUtf8)(sortedJsonStringify(signDoc));\n}\nexports.serializeSignDoc = serializeSignDoc;\n//# sourceMappingURL=signdoc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeStdTx = exports.isStdTx = void 0;\nfunction isStdTx(txValue) {\n const { memo, msg, fee, signatures } = txValue;\n return (typeof memo === \"string\" && Array.isArray(msg) && typeof fee === \"object\" && Array.isArray(signatures));\n}\nexports.isStdTx = isStdTx;\nfunction makeStdTx(content, signatures) {\n return {\n msg: content.msgs,\n fee: content.fee,\n memo: content.memo,\n signatures: Array.isArray(signatures) ? signatures : [signatures],\n };\n}\nexports.makeStdTx = makeStdTx;\n//# sourceMappingURL=stdtx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = exports.supportedAlgorithms = exports.executeKdf = exports.cosmjsSalt = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.executeKdf = executeKdf;\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\nexports.encrypt = encrypt;\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\nexports.decrypt = decrypt;\n//# sourceMappingURL=wallet.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cosmWasmTypes = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst long_1 = __importDefault(require(\"long\"));\nexports.cosmWasmTypes = {\n \"/cosmwasm.wasm.v1.MsgStoreCode\": {\n aminoType: \"wasm/MsgStoreCode\",\n toAmino: ({ sender, wasmByteCode }) => ({\n sender: sender,\n wasm_byte_code: (0, encoding_1.toBase64)(wasmByteCode),\n }),\n fromAmino: ({ sender, wasm_byte_code }) => ({\n sender: sender,\n wasmByteCode: (0, encoding_1.fromBase64)(wasm_byte_code),\n instantiatePermission: undefined,\n }),\n },\n \"/cosmwasm.wasm.v1.MsgInstantiateContract\": {\n aminoType: \"wasm/MsgInstantiateContract\",\n toAmino: ({ sender, codeId, label, msg, funds, admin, }) => ({\n sender: sender,\n code_id: codeId.toString(),\n label: label,\n msg: JSON.parse((0, encoding_1.fromUtf8)(msg)),\n funds: funds,\n admin: admin || undefined,\n }),\n fromAmino: ({ sender, code_id, label, msg, funds, admin, }) => ({\n sender: sender,\n codeId: long_1.default.fromString(code_id),\n label: label,\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n funds: [...funds],\n admin: admin !== null && admin !== void 0 ? admin : \"\",\n }),\n },\n \"/cosmwasm.wasm.v1.MsgUpdateAdmin\": {\n aminoType: \"wasm/MsgUpdateAdmin\",\n toAmino: ({ sender, newAdmin, contract }) => ({\n sender: sender,\n new_admin: newAdmin,\n contract: contract,\n }),\n fromAmino: ({ sender, new_admin, contract }) => ({\n sender: sender,\n newAdmin: new_admin,\n contract: contract,\n }),\n },\n \"/cosmwasm.wasm.v1.MsgClearAdmin\": {\n aminoType: \"wasm/MsgClearAdmin\",\n toAmino: ({ sender, contract }) => ({\n sender: sender,\n contract: contract,\n }),\n fromAmino: ({ sender, contract }) => ({\n sender: sender,\n contract: contract,\n }),\n },\n \"/cosmwasm.wasm.v1.MsgExecuteContract\": {\n aminoType: \"wasm/MsgExecuteContract\",\n toAmino: ({ sender, contract, msg, funds }) => ({\n sender: sender,\n contract: contract,\n msg: JSON.parse((0, encoding_1.fromUtf8)(msg)),\n funds: funds,\n }),\n fromAmino: ({ sender, contract, msg, funds }) => ({\n sender: sender,\n contract: contract,\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n funds: [...funds],\n }),\n },\n \"/cosmwasm.wasm.v1.MsgMigrateContract\": {\n aminoType: \"wasm/MsgMigrateContract\",\n toAmino: ({ sender, contract, codeId, msg }) => ({\n sender: sender,\n contract: contract,\n code_id: codeId.toString(),\n msg: JSON.parse((0, encoding_1.fromUtf8)(msg)),\n }),\n fromAmino: ({ sender, contract, code_id, msg, }) => ({\n sender: sender,\n contract: contract,\n codeId: long_1.default.fromString(code_id),\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n }),\n },\n};\n//# sourceMappingURL=aminotypes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CosmWasmClient = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst stargate_1 = require(\"@cosmjs/stargate\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst types_1 = require(\"cosmjs-types/cosmwasm/wasm/v1/types\");\nconst queries_1 = require(\"./queries\");\nclass CosmWasmClient {\n constructor(tmClient) {\n this.codesCache = new Map();\n if (tmClient) {\n this.tmClient = tmClient;\n this.queryClient = stargate_1.QueryClient.withExtensions(tmClient, stargate_1.setupAuthExtension, stargate_1.setupBankExtension, queries_1.setupWasmExtension, stargate_1.setupTxExtension);\n }\n }\n static async connect(endpoint) {\n const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint);\n return new CosmWasmClient(tmClient);\n }\n getTmClient() {\n return this.tmClient;\n }\n forceGetTmClient() {\n if (!this.tmClient) {\n throw new Error(\"Tendermint client not available. You cannot use online functionality in offline mode.\");\n }\n return this.tmClient;\n }\n getQueryClient() {\n return this.queryClient;\n }\n forceGetQueryClient() {\n if (!this.queryClient) {\n throw new Error(\"Query client not available. You cannot use online functionality in offline mode.\");\n }\n return this.queryClient;\n }\n async getChainId() {\n if (!this.chainId) {\n const response = await this.forceGetTmClient().status();\n const chainId = response.nodeInfo.network;\n if (!chainId)\n throw new Error(\"Chain ID must not be empty\");\n this.chainId = chainId;\n }\n return this.chainId;\n }\n async getHeight() {\n const status = await this.forceGetTmClient().status();\n return status.syncInfo.latestBlockHeight;\n }\n async getAccount(searchAddress) {\n try {\n const account = await this.forceGetQueryClient().auth.account(searchAddress);\n return account ? (0, stargate_1.accountFromAny)(account) : null;\n }\n catch (error) {\n if (/rpc error: code = NotFound/i.test(error.toString())) {\n return null;\n }\n throw error;\n }\n }\n async getSequence(address) {\n const account = await this.getAccount(address);\n if (!account) {\n throw new Error(\"Account does not exist on chain. Send some tokens there before trying to query sequence.\");\n }\n return {\n accountNumber: account.accountNumber,\n sequence: account.sequence,\n };\n }\n async getBlock(height) {\n const response = await this.forceGetTmClient().block(height);\n return {\n id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(),\n header: {\n version: {\n block: new math_1.Uint53(response.block.header.version.block).toString(),\n app: new math_1.Uint53(response.block.header.version.app).toString(),\n },\n height: response.block.header.height,\n chainId: response.block.header.chainId,\n time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time),\n },\n txs: response.block.txs,\n };\n }\n async getBalance(address, searchDenom) {\n return this.forceGetQueryClient().bank.balance(address, searchDenom);\n }\n async getTx(id) {\n var _a;\n const results = await this.txsQuery(`tx.hash='${id}'`);\n return (_a = results[0]) !== null && _a !== void 0 ? _a : null;\n }\n async searchTx(query, filter = {}) {\n const minHeight = filter.minHeight || 0;\n const maxHeight = filter.maxHeight || Number.MAX_SAFE_INTEGER;\n if (maxHeight < minHeight)\n return []; // optional optimization\n function withFilters(originalQuery) {\n return `${originalQuery} AND tx.height>=${minHeight} AND tx.height<=${maxHeight}`;\n }\n let txs;\n if ((0, stargate_1.isSearchByHeightQuery)(query)) {\n txs =\n query.height >= minHeight && query.height <= maxHeight\n ? await this.txsQuery(`tx.height=${query.height}`)\n : [];\n }\n else if ((0, stargate_1.isSearchBySentFromOrToQuery)(query)) {\n const sentQuery = withFilters(`message.module='bank' AND transfer.sender='${query.sentFromOrTo}'`);\n const receivedQuery = withFilters(`message.module='bank' AND transfer.recipient='${query.sentFromOrTo}'`);\n const [sent, received] = await Promise.all([sentQuery, receivedQuery].map((rawQuery) => this.txsQuery(rawQuery)));\n const sentHashes = sent.map((t) => t.hash);\n txs = [...sent, ...received.filter((t) => !sentHashes.includes(t.hash))];\n }\n else if ((0, stargate_1.isSearchByTagsQuery)(query)) {\n const rawQuery = withFilters(query.tags.map((t) => `${t.key}='${t.value}'`).join(\" AND \"));\n txs = await this.txsQuery(rawQuery);\n }\n else {\n throw new Error(\"Unknown query type\");\n }\n const filtered = txs.filter((tx) => tx.height >= minHeight && tx.height <= maxHeight);\n return filtered;\n }\n disconnect() {\n if (this.tmClient)\n this.tmClient.disconnect();\n }\n /**\n * Broadcasts a signed transaction to the network and monitors its inclusion in a block.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`.\n *\n * If the transaction is included in a block, a `DeliverTxResponse` is returned. The caller then\n * usually needs to check for execution success or failure.\n */\n // NOTE: This method is tested against slow chains and timeouts in the @cosmjs/stargate package.\n // Make sure it is kept in sync!\n async broadcastTx(tx, timeoutMs = 60000, pollIntervalMs = 3000) {\n let timedOut = false;\n const txPollTimeout = setTimeout(() => {\n timedOut = true;\n }, timeoutMs);\n const pollForTx = async (txId) => {\n if (timedOut) {\n throw new stargate_1.TimeoutError(`Transaction with ID ${txId} was submitted but was not yet found on the chain. You might want to check later.`, txId);\n }\n await (0, utils_1.sleep)(pollIntervalMs);\n const result = await this.getTx(txId);\n return result\n ? {\n code: result.code,\n height: result.height,\n rawLog: result.rawLog,\n transactionHash: txId,\n gasUsed: result.gasUsed,\n gasWanted: result.gasWanted,\n }\n : pollForTx(txId);\n };\n const broadcasted = await this.forceGetTmClient().broadcastTxSync({ tx });\n if (broadcasted.code) {\n throw new Error(`Broadcasting transaction failed with code ${broadcasted.code} (codespace: ${broadcasted.codeSpace}). Log: ${broadcasted.log}`);\n }\n const transactionId = (0, encoding_1.toHex)(broadcasted.hash).toUpperCase();\n return new Promise((resolve, reject) => pollForTx(transactionId).then((value) => {\n clearTimeout(txPollTimeout);\n resolve(value);\n }, (error) => {\n clearTimeout(txPollTimeout);\n reject(error);\n }));\n }\n async getCodes() {\n const { codeInfos } = await this.forceGetQueryClient().wasm.listCodeInfo();\n return (codeInfos || []).map((entry) => {\n (0, utils_1.assert)(entry.creator && entry.codeId && entry.dataHash, \"entry incomplete\");\n return {\n id: entry.codeId.toNumber(),\n creator: entry.creator,\n checksum: (0, encoding_1.toHex)(entry.dataHash),\n };\n });\n }\n async getCodeDetails(codeId) {\n const cached = this.codesCache.get(codeId);\n if (cached)\n return cached;\n const { codeInfo, data } = await this.forceGetQueryClient().wasm.getCode(codeId);\n (0, utils_1.assert)(codeInfo && codeInfo.codeId && codeInfo.creator && codeInfo.dataHash && data, \"codeInfo missing or incomplete\");\n const codeDetails = {\n id: codeInfo.codeId.toNumber(),\n creator: codeInfo.creator,\n checksum: (0, encoding_1.toHex)(codeInfo.dataHash),\n data: data,\n };\n this.codesCache.set(codeId, codeDetails);\n return codeDetails;\n }\n async getContracts(codeId) {\n // TODO: handle pagination - accept as arg or auto-loop\n const { contracts } = await this.forceGetQueryClient().wasm.listContractsByCodeId(codeId);\n return contracts;\n }\n /**\n * Throws an error if no contract was found at the address\n */\n async getContract(address) {\n const { address: retrievedAddress, contractInfo } = await this.forceGetQueryClient().wasm.getContractInfo(address);\n if (!contractInfo)\n throw new Error(`No contract found at address \"${address}\"`);\n (0, utils_1.assert)(retrievedAddress, \"address missing\");\n (0, utils_1.assert)(contractInfo.codeId && contractInfo.creator && contractInfo.label, \"contractInfo incomplete\");\n return {\n address: retrievedAddress,\n codeId: contractInfo.codeId.toNumber(),\n creator: contractInfo.creator,\n admin: contractInfo.admin || undefined,\n label: contractInfo.label,\n ibcPortId: contractInfo.ibcPortId || undefined,\n };\n }\n /**\n * Throws an error if no contract was found at the address\n */\n async getContractCodeHistory(address) {\n const result = await this.forceGetQueryClient().wasm.getContractCodeHistory(address);\n if (!result)\n throw new Error(`No contract history found for address \"${address}\"`);\n const operations = {\n [types_1.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT]: \"Init\",\n [types_1.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS]: \"Genesis\",\n [types_1.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE]: \"Migrate\",\n };\n return (result.entries || []).map((entry) => {\n (0, utils_1.assert)(entry.operation && entry.codeId && entry.msg);\n return {\n operation: operations[entry.operation],\n codeId: entry.codeId.toNumber(),\n msg: JSON.parse((0, encoding_1.fromAscii)(entry.msg)),\n };\n });\n }\n /**\n * Returns the data at the key if present (raw contract dependent storage data)\n * or null if no data at this key.\n *\n * Promise is rejected when contract does not exist.\n */\n async queryContractRaw(address, key) {\n // just test contract existence\n await this.getContract(address);\n const { data } = await this.forceGetQueryClient().wasm.queryContractRaw(address, key);\n return data !== null && data !== void 0 ? data : null;\n }\n /**\n * Makes a smart query on the contract, returns the parsed JSON document.\n *\n * Promise is rejected when contract does not exist.\n * Promise is rejected for invalid query format.\n * Promise is rejected for invalid response format.\n */\n async queryContractSmart(address, queryMsg) {\n try {\n return await this.forceGetQueryClient().wasm.queryContractSmart(address, queryMsg);\n }\n catch (error) {\n if (error instanceof Error) {\n if (error.message.startsWith(\"not found: contract\")) {\n throw new Error(`No contract found at address \"${address}\"`);\n }\n else {\n throw error;\n }\n }\n else {\n throw error;\n }\n }\n }\n async txsQuery(query) {\n const results = await this.forceGetTmClient().txSearchAll({ query: query });\n return results.txs.map((tx) => {\n return {\n height: tx.height,\n hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(),\n code: tx.result.code,\n rawLog: tx.result.log || \"\",\n tx: tx.tx,\n gasUsed: tx.result.gasUsed,\n gasWanted: tx.result.gasWanted,\n };\n });\n }\n}\nexports.CosmWasmClient = CosmWasmClient;\n//# sourceMappingURL=cosmwasmclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsgExecuteEncodeObject = exports.isMsgMigrateEncodeObject = exports.isMsgClearAdminEncodeObject = exports.isMsgUpdateAdminEncodeObject = exports.isMsgInstantiateContractEncodeObject = exports.isMsgStoreCodeEncodeObject = void 0;\nfunction isMsgStoreCodeEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgStoreCode\";\n}\nexports.isMsgStoreCodeEncodeObject = isMsgStoreCodeEncodeObject;\nfunction isMsgInstantiateContractEncodeObject(encodeObject) {\n return (encodeObject.typeUrl ===\n \"/cosmwasm.wasm.v1.MsgInstantiateContract\");\n}\nexports.isMsgInstantiateContractEncodeObject = isMsgInstantiateContractEncodeObject;\nfunction isMsgUpdateAdminEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgUpdateAdmin\";\n}\nexports.isMsgUpdateAdminEncodeObject = isMsgUpdateAdminEncodeObject;\nfunction isMsgClearAdminEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgClearAdmin\";\n}\nexports.isMsgClearAdminEncodeObject = isMsgClearAdminEncodeObject;\nfunction isMsgMigrateEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgMigrateContract\";\n}\nexports.isMsgMigrateEncodeObject = isMsgMigrateEncodeObject;\nfunction isMsgExecuteEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgExecuteContract\";\n}\nexports.isMsgExecuteEncodeObject = isMsgExecuteEncodeObject;\n//# sourceMappingURL=encodeobjects.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBinary = exports.toBinary = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * Takes a value, serializes it to JSON and encodes it as base64.\n *\n * This can be used for creating values of fields that have the CosmWasm Binary type.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction toBinary(obj) {\n return (0, encoding_1.toBase64)((0, encoding_1.toUtf8)(JSON.stringify(obj)));\n}\nexports.toBinary = toBinary;\n/**\n * Takes a base64 string, decodes it and parses the content from JSON to an object.\n *\n * This can be used for parsing the values of a CosmWasm Binary field.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction fromBinary(base64) {\n return JSON.parse((0, encoding_1.fromUtf8)((0, encoding_1.fromBase64)(base64)));\n}\nexports.fromBinary = fromBinary;\n//# sourceMappingURL=encoding.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningCosmWasmClient = exports.setupWasmExtension = exports.toBinary = exports.fromBinary = exports.isMsgUpdateAdminEncodeObject = exports.isMsgStoreCodeEncodeObject = exports.isMsgMigrateEncodeObject = exports.isMsgInstantiateContractEncodeObject = exports.isMsgExecuteEncodeObject = exports.isMsgClearAdminEncodeObject = exports.CosmWasmClient = exports.cosmWasmTypes = void 0;\nvar aminotypes_1 = require(\"./aminotypes\");\nObject.defineProperty(exports, \"cosmWasmTypes\", { enumerable: true, get: function () { return aminotypes_1.cosmWasmTypes; } });\nvar cosmwasmclient_1 = require(\"./cosmwasmclient\");\nObject.defineProperty(exports, \"CosmWasmClient\", { enumerable: true, get: function () { return cosmwasmclient_1.CosmWasmClient; } });\nvar encodeobjects_1 = require(\"./encodeobjects\");\nObject.defineProperty(exports, \"isMsgClearAdminEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgClearAdminEncodeObject; } });\nObject.defineProperty(exports, \"isMsgExecuteEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgExecuteEncodeObject; } });\nObject.defineProperty(exports, \"isMsgInstantiateContractEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgInstantiateContractEncodeObject; } });\nObject.defineProperty(exports, \"isMsgMigrateEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgMigrateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgStoreCodeEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgStoreCodeEncodeObject; } });\nObject.defineProperty(exports, \"isMsgUpdateAdminEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgUpdateAdminEncodeObject; } });\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"fromBinary\", { enumerable: true, get: function () { return encoding_1.fromBinary; } });\nObject.defineProperty(exports, \"toBinary\", { enumerable: true, get: function () { return encoding_1.toBinary; } });\nvar queries_1 = require(\"./queries\");\nObject.defineProperty(exports, \"setupWasmExtension\", { enumerable: true, get: function () { return queries_1.setupWasmExtension; } });\nvar signingcosmwasmclient_1 = require(\"./signingcosmwasmclient\");\nObject.defineProperty(exports, \"SigningCosmWasmClient\", { enumerable: true, get: function () { return signingcosmwasmclient_1.SigningCosmWasmClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupWasmExtension = void 0;\nvar wasm_1 = require(\"./wasm\");\nObject.defineProperty(exports, \"setupWasmExtension\", { enumerable: true, get: function () { return wasm_1.setupWasmExtension; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupWasmExtension = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst stargate_1 = require(\"@cosmjs/stargate\");\nconst query_1 = require(\"cosmjs-types/cosmwasm/wasm/v1/query\");\nconst long_1 = __importDefault(require(\"long\"));\nfunction setupWasmExtension(base) {\n const rpc = (0, stargate_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n wasm: {\n listCodeInfo: async (paginationKey) => {\n const request = {\n pagination: (0, stargate_1.createPagination)(paginationKey),\n };\n return queryService.Codes(request);\n },\n getCode: async (id) => {\n const request = { codeId: long_1.default.fromNumber(id) };\n return queryService.Code(request);\n },\n listContractsByCodeId: async (id, paginationKey) => {\n const request = {\n codeId: long_1.default.fromNumber(id),\n pagination: (0, stargate_1.createPagination)(paginationKey),\n };\n return queryService.ContractsByCode(request);\n },\n getContractInfo: async (address) => {\n const request = { address: address };\n return queryService.ContractInfo(request);\n },\n getContractCodeHistory: async (address, paginationKey) => {\n const request = {\n address: address,\n pagination: (0, stargate_1.createPagination)(paginationKey),\n };\n return queryService.ContractHistory(request);\n },\n getAllContractState: async (address, paginationKey) => {\n const request = {\n address: address,\n pagination: (0, stargate_1.createPagination)(paginationKey),\n };\n return queryService.AllContractState(request);\n },\n queryContractRaw: async (address, key) => {\n const request = { address: address, queryData: key };\n return queryService.RawContractState(request);\n },\n queryContractSmart: async (address, query) => {\n const request = { address: address, queryData: (0, encoding_1.toAscii)(JSON.stringify(query)) };\n const { data } = await queryService.SmartContractState(request);\n // By convention, smart queries must return a valid JSON document (see https://github.com/CosmWasm/cosmwasm/issues/144)\n let responseText;\n try {\n responseText = (0, encoding_1.fromUtf8)(data);\n }\n catch (error) {\n throw new Error(`Could not UTF-8 decode smart query response from contract: ${error}`);\n }\n try {\n return JSON.parse(responseText);\n }\n catch (error) {\n throw new Error(`Could not JSON parse smart query response from contract: ${error}`);\n }\n },\n },\n };\n}\nexports.setupWasmExtension = setupWasmExtension;\n//# sourceMappingURL=wasm.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningCosmWasmClient = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst stargate_1 = require(\"@cosmjs/stargate\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst tx_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/staking/v1beta1/tx\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_3 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_4 = require(\"cosmjs-types/cosmwasm/wasm/v1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\nconst pako_1 = __importDefault(require(\"pako\"));\nconst aminotypes_1 = require(\"./aminotypes\");\nconst cosmwasmclient_1 = require(\"./cosmwasmclient\");\nfunction createDeliverTxResponseErrorMessage(result) {\n return `Error when broadcasting tx ${result.transactionHash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`;\n}\nfunction createDefaultRegistry() {\n const registry = new proto_signing_1.Registry(stargate_1.defaultRegistryTypes);\n registry.register(\"/cosmwasm.wasm.v1.MsgClearAdmin\", tx_4.MsgClearAdmin);\n registry.register(\"/cosmwasm.wasm.v1.MsgExecuteContract\", tx_4.MsgExecuteContract);\n registry.register(\"/cosmwasm.wasm.v1.MsgMigrateContract\", tx_4.MsgMigrateContract);\n registry.register(\"/cosmwasm.wasm.v1.MsgStoreCode\", tx_4.MsgStoreCode);\n registry.register(\"/cosmwasm.wasm.v1.MsgInstantiateContract\", tx_4.MsgInstantiateContract);\n registry.register(\"/cosmwasm.wasm.v1.MsgUpdateAdmin\", tx_4.MsgUpdateAdmin);\n return registry;\n}\nclass SigningCosmWasmClient extends cosmwasmclient_1.CosmWasmClient {\n constructor(tmClient, signer, options) {\n var _a;\n super(tmClient);\n // TODO: do we really want to set a default here? Ideally we could get it from the signer such that users only have to set it once.\n const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : \"cosmos\";\n const { registry = createDefaultRegistry(), aminoTypes = new stargate_1.AminoTypes({ prefix, additions: aminotypes_1.cosmWasmTypes }), } = options;\n this.registry = registry;\n this.aminoTypes = aminoTypes;\n this.signer = signer;\n this.broadcastTimeoutMs = options.broadcastTimeoutMs;\n this.broadcastPollIntervalMs = options.broadcastPollIntervalMs;\n this.gasPrice = options.gasPrice;\n }\n static async connectWithSigner(endpoint, signer, options = {}) {\n const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint);\n return new SigningCosmWasmClient(tmClient, signer, options);\n }\n /**\n * Creates a client in offline mode.\n *\n * This should only be used in niche cases where you know exactly what you're doing,\n * e.g. when building an offline signing application.\n *\n * When you try to use online functionality with such a signer, an\n * exception will be raised.\n */\n static async offline(signer, options = {}) {\n return new SigningCosmWasmClient(undefined, signer, options);\n }\n async simulate(signerAddress, messages, memo) {\n const anyMsgs = messages.map((m) => this.registry.encodeAsAny(m));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey);\n const { sequence } = await this.getSequence(signerAddress);\n const { gasInfo } = await this.forceGetQueryClient().tx.simulate(anyMsgs, memo, pubkey, sequence);\n (0, utils_1.assertDefined)(gasInfo);\n return math_1.Uint53.fromString(gasInfo.gasUsed.toString()).toNumber();\n }\n /** Uploads code and returns a receipt, including the code ID */\n async upload(senderAddress, wasmCode, fee, memo = \"\") {\n const compressed = pako_1.default.gzip(wasmCode, { level: 9 });\n const storeCodeMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgStoreCode\",\n value: tx_4.MsgStoreCode.fromPartial({\n sender: senderAddress,\n wasmByteCode: compressed,\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [storeCodeMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n const parsedLogs = stargate_1.logs.parseRawLog(result.rawLog);\n const codeIdAttr = stargate_1.logs.findAttribute(parsedLogs, \"store_code\", \"code_id\");\n return {\n originalSize: wasmCode.length,\n originalChecksum: (0, encoding_1.toHex)((0, crypto_1.sha256)(wasmCode)),\n compressedSize: compressed.length,\n compressedChecksum: (0, encoding_1.toHex)((0, crypto_1.sha256)(compressed)),\n codeId: Number.parseInt(codeIdAttr.value, 10),\n logs: parsedLogs,\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async instantiate(senderAddress, codeId, msg, label, fee, options = {}) {\n const instantiateContractMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgInstantiateContract\",\n value: tx_4.MsgInstantiateContract.fromPartial({\n sender: senderAddress,\n codeId: long_1.default.fromString(new math_1.Uint53(codeId).toString()),\n label: label,\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n funds: [...(options.funds || [])],\n admin: options.admin,\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [instantiateContractMsg], fee, options.memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n const parsedLogs = stargate_1.logs.parseRawLog(result.rawLog);\n const contractAddressAttr = stargate_1.logs.findAttribute(parsedLogs, \"instantiate\", \"_contract_address\");\n return {\n contractAddress: contractAddressAttr.value,\n logs: parsedLogs,\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async updateAdmin(senderAddress, contractAddress, newAdmin, fee, memo = \"\") {\n const updateAdminMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgUpdateAdmin\",\n value: tx_4.MsgUpdateAdmin.fromPartial({\n sender: senderAddress,\n contract: contractAddress,\n newAdmin: newAdmin,\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [updateAdminMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n return {\n logs: stargate_1.logs.parseRawLog(result.rawLog),\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async clearAdmin(senderAddress, contractAddress, fee, memo = \"\") {\n const clearAdminMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgClearAdmin\",\n value: tx_4.MsgClearAdmin.fromPartial({\n sender: senderAddress,\n contract: contractAddress,\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [clearAdminMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n return {\n logs: stargate_1.logs.parseRawLog(result.rawLog),\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async migrate(senderAddress, contractAddress, codeId, migrateMsg, fee, memo = \"\") {\n const migrateContractMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgMigrateContract\",\n value: tx_4.MsgMigrateContract.fromPartial({\n sender: senderAddress,\n contract: contractAddress,\n codeId: long_1.default.fromString(new math_1.Uint53(codeId).toString()),\n msg: (0, encoding_1.toUtf8)(JSON.stringify(migrateMsg)),\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [migrateContractMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n return {\n logs: stargate_1.logs.parseRawLog(result.rawLog),\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async execute(senderAddress, contractAddress, msg, fee, memo = \"\", funds) {\n const executeContractMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: tx_4.MsgExecuteContract.fromPartial({\n sender: senderAddress,\n contract: contractAddress,\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n funds: [...(funds || [])],\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [executeContractMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n return {\n logs: stargate_1.logs.parseRawLog(result.rawLog),\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async sendTokens(senderAddress, recipientAddress, amount, fee, memo = \"\") {\n const sendMsg = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSend\",\n value: {\n fromAddress: senderAddress,\n toAddress: recipientAddress,\n amount: [...amount],\n },\n };\n return this.signAndBroadcast(senderAddress, [sendMsg], fee, memo);\n }\n async delegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const delegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegate\",\n value: tx_2.MsgDelegate.fromPartial({ delegatorAddress: delegatorAddress, validatorAddress, amount }),\n };\n return this.signAndBroadcast(delegatorAddress, [delegateMsg], fee, memo);\n }\n async undelegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const undelegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegate\",\n value: tx_2.MsgUndelegate.fromPartial({ delegatorAddress: delegatorAddress, validatorAddress, amount }),\n };\n return this.signAndBroadcast(delegatorAddress, [undelegateMsg], fee, memo);\n }\n async withdrawRewards(delegatorAddress, validatorAddress, fee, memo = \"\") {\n const withdrawDelegatorRewardMsg = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n value: tx_1.MsgWithdrawDelegatorReward.fromPartial({ delegatorAddress: delegatorAddress, validatorAddress }),\n };\n return this.signAndBroadcast(delegatorAddress, [withdrawDelegatorRewardMsg], fee, memo);\n }\n /**\n * Creates a transaction with the given messages, fee and memo. Then signs and broadcasts the transaction.\n *\n * @param signerAddress The address that will sign transactions using this instance. The signer must be able to sign with this address.\n * @param messages\n * @param fee\n * @param memo\n */\n async signAndBroadcast(signerAddress, messages, fee, memo = \"\") {\n let usedFee;\n if (fee == \"auto\" || typeof fee === \"number\") {\n (0, utils_1.assertDefined)(this.gasPrice, \"Gas price must be set in the client options when auto gas is used.\");\n const gasEstimation = await this.simulate(signerAddress, messages, memo);\n const muliplier = typeof fee === \"number\" ? fee : 1.3;\n usedFee = (0, stargate_1.calculateFee)(Math.round(gasEstimation * muliplier), this.gasPrice);\n }\n else {\n usedFee = fee;\n }\n const txRaw = await this.sign(signerAddress, messages, usedFee, memo);\n const txBytes = tx_3.TxRaw.encode(txRaw).finish();\n return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs);\n }\n async sign(signerAddress, messages, fee, memo, explicitSignerData) {\n let signerData;\n if (explicitSignerData) {\n signerData = explicitSignerData;\n }\n else {\n const { accountNumber, sequence } = await this.getSequence(signerAddress);\n const chainId = await this.getChainId();\n signerData = {\n accountNumber: accountNumber,\n sequence: sequence,\n chainId: chainId,\n };\n }\n return (0, proto_signing_1.isOfflineDirectSigner)(this.signer)\n ? this.signDirect(signerAddress, messages, fee, memo, signerData)\n : this.signAmino(signerAddress, messages, fee, memo, signerData);\n }\n async signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {\n (0, utils_1.assert)(!(0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg));\n const signDoc = (0, amino_1.makeSignDoc)(msgs, fee, chainId, memo, accountNumber, sequence);\n const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc);\n const signedTxBody = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)),\n memo: signed.memo,\n },\n };\n const signedTxBodyBytes = this.registry.encode(signedTxBody);\n const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber();\n const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber();\n const signedAuthInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signMode);\n return tx_3.TxRaw.fromPartial({\n bodyBytes: signedTxBodyBytes,\n authInfoBytes: signedAuthInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n async signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {\n (0, utils_1.assert)((0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const txBody = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: messages,\n memo: memo,\n },\n };\n const txBodyBytes = this.registry.encode(txBody);\n const gasLimit = math_1.Int53.fromString(fee.gas).toNumber();\n const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence }], fee.amount, gasLimit);\n const signDoc = (0, proto_signing_1.makeSignDoc)(txBodyBytes, authInfoBytes, chainId, accountNumber);\n const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc);\n return tx_3.TxRaw.fromPartial({\n bodyBytes: signed.bodyBytes,\n authInfoBytes: signed.authInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n}\nexports.SigningCosmWasmClient = SigningCosmWasmClient;\n//# sourceMappingURL=signingcosmwasmclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bip39 = exports.EnglishMnemonic = exports.mnemonicToEntropy = exports.entropyToMnemonic = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst pbkdf2_1 = require(\"./pbkdf2\");\nconst sha_1 = require(\"./sha\");\nconst wordlist = [\n \"abandon\",\n \"ability\",\n \"able\",\n \"about\",\n \"above\",\n \"absent\",\n \"absorb\",\n \"abstract\",\n \"absurd\",\n \"abuse\",\n \"access\",\n \"accident\",\n \"account\",\n \"accuse\",\n \"achieve\",\n \"acid\",\n \"acoustic\",\n \"acquire\",\n \"across\",\n \"act\",\n \"action\",\n \"actor\",\n \"actress\",\n \"actual\",\n \"adapt\",\n \"add\",\n \"addict\",\n \"address\",\n \"adjust\",\n \"admit\",\n \"adult\",\n \"advance\",\n \"advice\",\n \"aerobic\",\n \"affair\",\n \"afford\",\n \"afraid\",\n \"again\",\n \"age\",\n \"agent\",\n \"agree\",\n \"ahead\",\n \"aim\",\n \"air\",\n \"airport\",\n \"aisle\",\n \"alarm\",\n \"album\",\n \"alcohol\",\n \"alert\",\n \"alien\",\n \"all\",\n \"alley\",\n \"allow\",\n \"almost\",\n \"alone\",\n \"alpha\",\n \"already\",\n \"also\",\n \"alter\",\n \"always\",\n \"amateur\",\n \"amazing\",\n \"among\",\n \"amount\",\n \"amused\",\n \"analyst\",\n \"anchor\",\n \"ancient\",\n \"anger\",\n \"angle\",\n \"angry\",\n \"animal\",\n \"ankle\",\n \"announce\",\n \"annual\",\n \"another\",\n \"answer\",\n \"antenna\",\n \"antique\",\n \"anxiety\",\n \"any\",\n \"apart\",\n \"apology\",\n \"appear\",\n \"apple\",\n \"approve\",\n \"april\",\n \"arch\",\n \"arctic\",\n \"area\",\n \"arena\",\n \"argue\",\n \"arm\",\n \"armed\",\n \"armor\",\n \"army\",\n \"around\",\n \"arrange\",\n \"arrest\",\n \"arrive\",\n \"arrow\",\n \"art\",\n \"artefact\",\n \"artist\",\n \"artwork\",\n \"ask\",\n \"aspect\",\n \"assault\",\n \"asset\",\n \"assist\",\n \"assume\",\n \"asthma\",\n \"athlete\",\n \"atom\",\n \"attack\",\n \"attend\",\n \"attitude\",\n \"attract\",\n \"auction\",\n \"audit\",\n \"august\",\n \"aunt\",\n \"author\",\n \"auto\",\n \"autumn\",\n \"average\",\n \"avocado\",\n \"avoid\",\n \"awake\",\n \"aware\",\n \"away\",\n \"awesome\",\n \"awful\",\n \"awkward\",\n \"axis\",\n \"baby\",\n \"bachelor\",\n \"bacon\",\n \"badge\",\n \"bag\",\n \"balance\",\n \"balcony\",\n \"ball\",\n \"bamboo\",\n \"banana\",\n \"banner\",\n \"bar\",\n \"barely\",\n \"bargain\",\n \"barrel\",\n \"base\",\n \"basic\",\n \"basket\",\n \"battle\",\n \"beach\",\n \"bean\",\n \"beauty\",\n \"because\",\n \"become\",\n \"beef\",\n \"before\",\n \"begin\",\n \"behave\",\n \"behind\",\n \"believe\",\n \"below\",\n \"belt\",\n \"bench\",\n \"benefit\",\n \"best\",\n \"betray\",\n \"better\",\n \"between\",\n \"beyond\",\n \"bicycle\",\n \"bid\",\n \"bike\",\n \"bind\",\n \"biology\",\n \"bird\",\n \"birth\",\n \"bitter\",\n \"black\",\n \"blade\",\n \"blame\",\n \"blanket\",\n \"blast\",\n \"bleak\",\n \"bless\",\n \"blind\",\n \"blood\",\n \"blossom\",\n \"blouse\",\n \"blue\",\n \"blur\",\n \"blush\",\n \"board\",\n \"boat\",\n \"body\",\n \"boil\",\n \"bomb\",\n \"bone\",\n \"bonus\",\n \"book\",\n \"boost\",\n \"border\",\n \"boring\",\n \"borrow\",\n \"boss\",\n \"bottom\",\n \"bounce\",\n \"box\",\n \"boy\",\n \"bracket\",\n \"brain\",\n \"brand\",\n \"brass\",\n \"brave\",\n \"bread\",\n \"breeze\",\n \"brick\",\n \"bridge\",\n \"brief\",\n \"bright\",\n \"bring\",\n \"brisk\",\n \"broccoli\",\n \"broken\",\n \"bronze\",\n \"broom\",\n \"brother\",\n \"brown\",\n \"brush\",\n \"bubble\",\n \"buddy\",\n \"budget\",\n \"buffalo\",\n \"build\",\n \"bulb\",\n \"bulk\",\n \"bullet\",\n \"bundle\",\n \"bunker\",\n \"burden\",\n \"burger\",\n \"burst\",\n \"bus\",\n \"business\",\n \"busy\",\n \"butter\",\n \"buyer\",\n \"buzz\",\n \"cabbage\",\n \"cabin\",\n \"cable\",\n \"cactus\",\n \"cage\",\n \"cake\",\n \"call\",\n \"calm\",\n \"camera\",\n \"camp\",\n \"can\",\n \"canal\",\n \"cancel\",\n \"candy\",\n \"cannon\",\n \"canoe\",\n \"canvas\",\n \"canyon\",\n \"capable\",\n \"capital\",\n \"captain\",\n \"car\",\n \"carbon\",\n \"card\",\n \"cargo\",\n \"carpet\",\n \"carry\",\n \"cart\",\n \"case\",\n \"cash\",\n \"casino\",\n \"castle\",\n \"casual\",\n \"cat\",\n \"catalog\",\n \"catch\",\n \"category\",\n \"cattle\",\n \"caught\",\n \"cause\",\n \"caution\",\n \"cave\",\n \"ceiling\",\n \"celery\",\n \"cement\",\n \"census\",\n \"century\",\n \"cereal\",\n \"certain\",\n \"chair\",\n \"chalk\",\n \"champion\",\n \"change\",\n \"chaos\",\n \"chapter\",\n \"charge\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"check\",\n \"cheese\",\n \"chef\",\n \"cherry\",\n \"chest\",\n \"chicken\",\n \"chief\",\n \"child\",\n \"chimney\",\n \"choice\",\n \"choose\",\n \"chronic\",\n \"chuckle\",\n \"chunk\",\n \"churn\",\n \"cigar\",\n \"cinnamon\",\n \"circle\",\n \"citizen\",\n \"city\",\n \"civil\",\n \"claim\",\n \"clap\",\n \"clarify\",\n \"claw\",\n \"clay\",\n \"clean\",\n \"clerk\",\n \"clever\",\n \"click\",\n \"client\",\n \"cliff\",\n \"climb\",\n \"clinic\",\n \"clip\",\n \"clock\",\n \"clog\",\n \"close\",\n \"cloth\",\n \"cloud\",\n \"clown\",\n \"club\",\n \"clump\",\n \"cluster\",\n \"clutch\",\n \"coach\",\n \"coast\",\n \"coconut\",\n \"code\",\n \"coffee\",\n \"coil\",\n \"coin\",\n \"collect\",\n \"color\",\n \"column\",\n \"combine\",\n \"come\",\n \"comfort\",\n \"comic\",\n \"common\",\n \"company\",\n \"concert\",\n \"conduct\",\n \"confirm\",\n \"congress\",\n \"connect\",\n \"consider\",\n \"control\",\n \"convince\",\n \"cook\",\n \"cool\",\n \"copper\",\n \"copy\",\n \"coral\",\n \"core\",\n \"corn\",\n \"correct\",\n \"cost\",\n \"cotton\",\n \"couch\",\n \"country\",\n \"couple\",\n \"course\",\n \"cousin\",\n \"cover\",\n \"coyote\",\n \"crack\",\n \"cradle\",\n \"craft\",\n \"cram\",\n \"crane\",\n \"crash\",\n \"crater\",\n \"crawl\",\n \"crazy\",\n \"cream\",\n \"credit\",\n \"creek\",\n \"crew\",\n \"cricket\",\n \"crime\",\n \"crisp\",\n \"critic\",\n \"crop\",\n \"cross\",\n \"crouch\",\n \"crowd\",\n \"crucial\",\n \"cruel\",\n \"cruise\",\n \"crumble\",\n \"crunch\",\n \"crush\",\n \"cry\",\n \"crystal\",\n \"cube\",\n \"culture\",\n \"cup\",\n \"cupboard\",\n \"curious\",\n \"current\",\n \"curtain\",\n \"curve\",\n \"cushion\",\n \"custom\",\n \"cute\",\n \"cycle\",\n \"dad\",\n \"damage\",\n \"damp\",\n \"dance\",\n \"danger\",\n \"daring\",\n \"dash\",\n \"daughter\",\n \"dawn\",\n \"day\",\n \"deal\",\n \"debate\",\n \"debris\",\n \"decade\",\n \"december\",\n \"decide\",\n \"decline\",\n \"decorate\",\n \"decrease\",\n \"deer\",\n \"defense\",\n \"define\",\n \"defy\",\n \"degree\",\n \"delay\",\n \"deliver\",\n \"demand\",\n \"demise\",\n \"denial\",\n \"dentist\",\n \"deny\",\n \"depart\",\n \"depend\",\n \"deposit\",\n \"depth\",\n \"deputy\",\n \"derive\",\n \"describe\",\n \"desert\",\n \"design\",\n \"desk\",\n \"despair\",\n \"destroy\",\n \"detail\",\n \"detect\",\n \"develop\",\n \"device\",\n \"devote\",\n \"diagram\",\n \"dial\",\n \"diamond\",\n \"diary\",\n \"dice\",\n \"diesel\",\n \"diet\",\n \"differ\",\n \"digital\",\n \"dignity\",\n \"dilemma\",\n \"dinner\",\n \"dinosaur\",\n \"direct\",\n \"dirt\",\n \"disagree\",\n \"discover\",\n \"disease\",\n \"dish\",\n \"dismiss\",\n \"disorder\",\n \"display\",\n \"distance\",\n \"divert\",\n \"divide\",\n \"divorce\",\n \"dizzy\",\n \"doctor\",\n \"document\",\n \"dog\",\n \"doll\",\n \"dolphin\",\n \"domain\",\n \"donate\",\n \"donkey\",\n \"donor\",\n \"door\",\n \"dose\",\n \"double\",\n \"dove\",\n \"draft\",\n \"dragon\",\n \"drama\",\n \"drastic\",\n \"draw\",\n \"dream\",\n \"dress\",\n \"drift\",\n \"drill\",\n \"drink\",\n \"drip\",\n \"drive\",\n \"drop\",\n \"drum\",\n \"dry\",\n \"duck\",\n \"dumb\",\n \"dune\",\n \"during\",\n \"dust\",\n \"dutch\",\n \"duty\",\n \"dwarf\",\n \"dynamic\",\n \"eager\",\n \"eagle\",\n \"early\",\n \"earn\",\n \"earth\",\n \"easily\",\n \"east\",\n \"easy\",\n \"echo\",\n \"ecology\",\n \"economy\",\n \"edge\",\n \"edit\",\n \"educate\",\n \"effort\",\n \"egg\",\n \"eight\",\n \"either\",\n \"elbow\",\n \"elder\",\n \"electric\",\n \"elegant\",\n \"element\",\n \"elephant\",\n \"elevator\",\n \"elite\",\n \"else\",\n \"embark\",\n \"embody\",\n \"embrace\",\n \"emerge\",\n \"emotion\",\n \"employ\",\n \"empower\",\n \"empty\",\n \"enable\",\n \"enact\",\n \"end\",\n \"endless\",\n \"endorse\",\n \"enemy\",\n \"energy\",\n \"enforce\",\n \"engage\",\n \"engine\",\n \"enhance\",\n \"enjoy\",\n \"enlist\",\n \"enough\",\n \"enrich\",\n \"enroll\",\n \"ensure\",\n \"enter\",\n \"entire\",\n \"entry\",\n \"envelope\",\n \"episode\",\n \"equal\",\n \"equip\",\n \"era\",\n \"erase\",\n \"erode\",\n \"erosion\",\n \"error\",\n \"erupt\",\n \"escape\",\n \"essay\",\n \"essence\",\n \"estate\",\n \"eternal\",\n \"ethics\",\n \"evidence\",\n \"evil\",\n \"evoke\",\n \"evolve\",\n \"exact\",\n \"example\",\n \"excess\",\n \"exchange\",\n \"excite\",\n \"exclude\",\n \"excuse\",\n \"execute\",\n \"exercise\",\n \"exhaust\",\n \"exhibit\",\n \"exile\",\n \"exist\",\n \"exit\",\n \"exotic\",\n \"expand\",\n \"expect\",\n \"expire\",\n \"explain\",\n \"expose\",\n \"express\",\n \"extend\",\n \"extra\",\n \"eye\",\n \"eyebrow\",\n \"fabric\",\n \"face\",\n \"faculty\",\n \"fade\",\n \"faint\",\n \"faith\",\n \"fall\",\n \"false\",\n \"fame\",\n \"family\",\n \"famous\",\n \"fan\",\n \"fancy\",\n \"fantasy\",\n \"farm\",\n \"fashion\",\n \"fat\",\n \"fatal\",\n \"father\",\n \"fatigue\",\n \"fault\",\n \"favorite\",\n \"feature\",\n \"february\",\n \"federal\",\n \"fee\",\n \"feed\",\n \"feel\",\n \"female\",\n \"fence\",\n \"festival\",\n \"fetch\",\n \"fever\",\n \"few\",\n \"fiber\",\n \"fiction\",\n \"field\",\n \"figure\",\n \"file\",\n \"film\",\n \"filter\",\n \"final\",\n \"find\",\n \"fine\",\n \"finger\",\n \"finish\",\n \"fire\",\n \"firm\",\n \"first\",\n \"fiscal\",\n \"fish\",\n \"fit\",\n \"fitness\",\n \"fix\",\n \"flag\",\n \"flame\",\n \"flash\",\n \"flat\",\n \"flavor\",\n \"flee\",\n \"flight\",\n \"flip\",\n \"float\",\n \"flock\",\n \"floor\",\n \"flower\",\n \"fluid\",\n \"flush\",\n \"fly\",\n \"foam\",\n \"focus\",\n \"fog\",\n \"foil\",\n \"fold\",\n \"follow\",\n \"food\",\n \"foot\",\n \"force\",\n \"forest\",\n \"forget\",\n \"fork\",\n \"fortune\",\n \"forum\",\n \"forward\",\n \"fossil\",\n \"foster\",\n \"found\",\n \"fox\",\n \"fragile\",\n \"frame\",\n \"frequent\",\n \"fresh\",\n \"friend\",\n \"fringe\",\n \"frog\",\n \"front\",\n \"frost\",\n \"frown\",\n \"frozen\",\n \"fruit\",\n \"fuel\",\n \"fun\",\n \"funny\",\n \"furnace\",\n \"fury\",\n \"future\",\n \"gadget\",\n \"gain\",\n \"galaxy\",\n \"gallery\",\n \"game\",\n \"gap\",\n \"garage\",\n \"garbage\",\n \"garden\",\n \"garlic\",\n \"garment\",\n \"gas\",\n \"gasp\",\n \"gate\",\n \"gather\",\n \"gauge\",\n \"gaze\",\n \"general\",\n \"genius\",\n \"genre\",\n \"gentle\",\n \"genuine\",\n \"gesture\",\n \"ghost\",\n \"giant\",\n \"gift\",\n \"giggle\",\n \"ginger\",\n \"giraffe\",\n \"girl\",\n \"give\",\n \"glad\",\n \"glance\",\n \"glare\",\n \"glass\",\n \"glide\",\n \"glimpse\",\n \"globe\",\n \"gloom\",\n \"glory\",\n \"glove\",\n \"glow\",\n \"glue\",\n \"goat\",\n \"goddess\",\n \"gold\",\n \"good\",\n \"goose\",\n \"gorilla\",\n \"gospel\",\n \"gossip\",\n \"govern\",\n \"gown\",\n \"grab\",\n \"grace\",\n \"grain\",\n \"grant\",\n \"grape\",\n \"grass\",\n \"gravity\",\n \"great\",\n \"green\",\n \"grid\",\n \"grief\",\n \"grit\",\n \"grocery\",\n \"group\",\n \"grow\",\n \"grunt\",\n \"guard\",\n \"guess\",\n \"guide\",\n \"guilt\",\n \"guitar\",\n \"gun\",\n \"gym\",\n \"habit\",\n \"hair\",\n \"half\",\n \"hammer\",\n \"hamster\",\n \"hand\",\n \"happy\",\n \"harbor\",\n \"hard\",\n \"harsh\",\n \"harvest\",\n \"hat\",\n \"have\",\n \"hawk\",\n \"hazard\",\n \"head\",\n \"health\",\n \"heart\",\n \"heavy\",\n \"hedgehog\",\n \"height\",\n \"hello\",\n \"helmet\",\n \"help\",\n \"hen\",\n \"hero\",\n \"hidden\",\n \"high\",\n \"hill\",\n \"hint\",\n \"hip\",\n \"hire\",\n \"history\",\n \"hobby\",\n \"hockey\",\n \"hold\",\n \"hole\",\n \"holiday\",\n \"hollow\",\n \"home\",\n \"honey\",\n \"hood\",\n \"hope\",\n \"horn\",\n \"horror\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hotel\",\n \"hour\",\n \"hover\",\n \"hub\",\n \"huge\",\n \"human\",\n \"humble\",\n \"humor\",\n \"hundred\",\n \"hungry\",\n \"hunt\",\n \"hurdle\",\n \"hurry\",\n \"hurt\",\n \"husband\",\n \"hybrid\",\n \"ice\",\n \"icon\",\n \"idea\",\n \"identify\",\n \"idle\",\n \"ignore\",\n \"ill\",\n \"illegal\",\n \"illness\",\n \"image\",\n \"imitate\",\n \"immense\",\n \"immune\",\n \"impact\",\n \"impose\",\n \"improve\",\n \"impulse\",\n \"inch\",\n \"include\",\n \"income\",\n \"increase\",\n \"index\",\n \"indicate\",\n \"indoor\",\n \"industry\",\n \"infant\",\n \"inflict\",\n \"inform\",\n \"inhale\",\n \"inherit\",\n \"initial\",\n \"inject\",\n \"injury\",\n \"inmate\",\n \"inner\",\n \"innocent\",\n \"input\",\n \"inquiry\",\n \"insane\",\n \"insect\",\n \"inside\",\n \"inspire\",\n \"install\",\n \"intact\",\n \"interest\",\n \"into\",\n \"invest\",\n \"invite\",\n \"involve\",\n \"iron\",\n \"island\",\n \"isolate\",\n \"issue\",\n \"item\",\n \"ivory\",\n \"jacket\",\n \"jaguar\",\n \"jar\",\n \"jazz\",\n \"jealous\",\n \"jeans\",\n \"jelly\",\n \"jewel\",\n \"job\",\n \"join\",\n \"joke\",\n \"journey\",\n \"joy\",\n \"judge\",\n \"juice\",\n \"jump\",\n \"jungle\",\n \"junior\",\n \"junk\",\n \"just\",\n \"kangaroo\",\n \"keen\",\n \"keep\",\n \"ketchup\",\n \"key\",\n \"kick\",\n \"kid\",\n \"kidney\",\n \"kind\",\n \"kingdom\",\n \"kiss\",\n \"kit\",\n \"kitchen\",\n \"kite\",\n \"kitten\",\n \"kiwi\",\n \"knee\",\n \"knife\",\n \"knock\",\n \"know\",\n \"lab\",\n \"label\",\n \"labor\",\n \"ladder\",\n \"lady\",\n \"lake\",\n \"lamp\",\n \"language\",\n \"laptop\",\n \"large\",\n \"later\",\n \"latin\",\n \"laugh\",\n \"laundry\",\n \"lava\",\n \"law\",\n \"lawn\",\n \"lawsuit\",\n \"layer\",\n \"lazy\",\n \"leader\",\n \"leaf\",\n \"learn\",\n \"leave\",\n \"lecture\",\n \"left\",\n \"leg\",\n \"legal\",\n \"legend\",\n \"leisure\",\n \"lemon\",\n \"lend\",\n \"length\",\n \"lens\",\n \"leopard\",\n \"lesson\",\n \"letter\",\n \"level\",\n \"liar\",\n \"liberty\",\n \"library\",\n \"license\",\n \"life\",\n \"lift\",\n \"light\",\n \"like\",\n \"limb\",\n \"limit\",\n \"link\",\n \"lion\",\n \"liquid\",\n \"list\",\n \"little\",\n \"live\",\n \"lizard\",\n \"load\",\n \"loan\",\n \"lobster\",\n \"local\",\n \"lock\",\n \"logic\",\n \"lonely\",\n \"long\",\n \"loop\",\n \"lottery\",\n \"loud\",\n \"lounge\",\n \"love\",\n \"loyal\",\n \"lucky\",\n \"luggage\",\n \"lumber\",\n \"lunar\",\n \"lunch\",\n \"luxury\",\n \"lyrics\",\n \"machine\",\n \"mad\",\n \"magic\",\n \"magnet\",\n \"maid\",\n \"mail\",\n \"main\",\n \"major\",\n \"make\",\n \"mammal\",\n \"man\",\n \"manage\",\n \"mandate\",\n \"mango\",\n \"mansion\",\n \"manual\",\n \"maple\",\n \"marble\",\n \"march\",\n \"margin\",\n \"marine\",\n \"market\",\n \"marriage\",\n \"mask\",\n \"mass\",\n \"master\",\n \"match\",\n \"material\",\n \"math\",\n \"matrix\",\n \"matter\",\n \"maximum\",\n \"maze\",\n \"meadow\",\n \"mean\",\n \"measure\",\n \"meat\",\n \"mechanic\",\n \"medal\",\n \"media\",\n \"melody\",\n \"melt\",\n \"member\",\n \"memory\",\n \"mention\",\n \"menu\",\n \"mercy\",\n \"merge\",\n \"merit\",\n \"merry\",\n \"mesh\",\n \"message\",\n \"metal\",\n \"method\",\n \"middle\",\n \"midnight\",\n \"milk\",\n \"million\",\n \"mimic\",\n \"mind\",\n \"minimum\",\n \"minor\",\n \"minute\",\n \"miracle\",\n \"mirror\",\n \"misery\",\n \"miss\",\n \"mistake\",\n \"mix\",\n \"mixed\",\n \"mixture\",\n \"mobile\",\n \"model\",\n \"modify\",\n \"mom\",\n \"moment\",\n \"monitor\",\n \"monkey\",\n \"monster\",\n \"month\",\n \"moon\",\n \"moral\",\n \"more\",\n \"morning\",\n \"mosquito\",\n \"mother\",\n \"motion\",\n \"motor\",\n \"mountain\",\n \"mouse\",\n \"move\",\n \"movie\",\n \"much\",\n \"muffin\",\n \"mule\",\n \"multiply\",\n \"muscle\",\n \"museum\",\n \"mushroom\",\n \"music\",\n \"must\",\n \"mutual\",\n \"myself\",\n \"mystery\",\n \"myth\",\n \"naive\",\n \"name\",\n \"napkin\",\n \"narrow\",\n \"nasty\",\n \"nation\",\n \"nature\",\n \"near\",\n \"neck\",\n \"need\",\n \"negative\",\n \"neglect\",\n \"neither\",\n \"nephew\",\n \"nerve\",\n \"nest\",\n \"net\",\n \"network\",\n \"neutral\",\n \"never\",\n \"news\",\n \"next\",\n \"nice\",\n \"night\",\n \"noble\",\n \"noise\",\n \"nominee\",\n \"noodle\",\n \"normal\",\n \"north\",\n \"nose\",\n \"notable\",\n \"note\",\n \"nothing\",\n \"notice\",\n \"novel\",\n \"now\",\n \"nuclear\",\n \"number\",\n \"nurse\",\n \"nut\",\n \"oak\",\n \"obey\",\n \"object\",\n \"oblige\",\n \"obscure\",\n \"observe\",\n \"obtain\",\n \"obvious\",\n \"occur\",\n \"ocean\",\n \"october\",\n \"odor\",\n \"off\",\n \"offer\",\n \"office\",\n \"often\",\n \"oil\",\n \"okay\",\n \"old\",\n \"olive\",\n \"olympic\",\n \"omit\",\n \"once\",\n \"one\",\n \"onion\",\n \"online\",\n \"only\",\n \"open\",\n \"opera\",\n \"opinion\",\n \"oppose\",\n \"option\",\n \"orange\",\n \"orbit\",\n \"orchard\",\n \"order\",\n \"ordinary\",\n \"organ\",\n \"orient\",\n \"original\",\n \"orphan\",\n \"ostrich\",\n \"other\",\n \"outdoor\",\n \"outer\",\n \"output\",\n \"outside\",\n \"oval\",\n \"oven\",\n \"over\",\n \"own\",\n \"owner\",\n \"oxygen\",\n \"oyster\",\n \"ozone\",\n \"pact\",\n \"paddle\",\n \"page\",\n \"pair\",\n \"palace\",\n \"palm\",\n \"panda\",\n \"panel\",\n \"panic\",\n \"panther\",\n \"paper\",\n \"parade\",\n \"parent\",\n \"park\",\n \"parrot\",\n \"party\",\n \"pass\",\n \"patch\",\n \"path\",\n \"patient\",\n \"patrol\",\n \"pattern\",\n \"pause\",\n \"pave\",\n \"payment\",\n \"peace\",\n \"peanut\",\n \"pear\",\n \"peasant\",\n \"pelican\",\n \"pen\",\n \"penalty\",\n \"pencil\",\n \"people\",\n \"pepper\",\n \"perfect\",\n \"permit\",\n \"person\",\n \"pet\",\n \"phone\",\n \"photo\",\n \"phrase\",\n \"physical\",\n \"piano\",\n \"picnic\",\n \"picture\",\n \"piece\",\n \"pig\",\n \"pigeon\",\n \"pill\",\n \"pilot\",\n \"pink\",\n \"pioneer\",\n \"pipe\",\n \"pistol\",\n \"pitch\",\n \"pizza\",\n \"place\",\n \"planet\",\n \"plastic\",\n \"plate\",\n \"play\",\n \"please\",\n \"pledge\",\n \"pluck\",\n \"plug\",\n \"plunge\",\n \"poem\",\n \"poet\",\n \"point\",\n \"polar\",\n \"pole\",\n \"police\",\n \"pond\",\n \"pony\",\n \"pool\",\n \"popular\",\n \"portion\",\n \"position\",\n \"possible\",\n \"post\",\n \"potato\",\n \"pottery\",\n \"poverty\",\n \"powder\",\n \"power\",\n \"practice\",\n \"praise\",\n \"predict\",\n \"prefer\",\n \"prepare\",\n \"present\",\n \"pretty\",\n \"prevent\",\n \"price\",\n \"pride\",\n \"primary\",\n \"print\",\n \"priority\",\n \"prison\",\n \"private\",\n \"prize\",\n \"problem\",\n \"process\",\n \"produce\",\n \"profit\",\n \"program\",\n \"project\",\n \"promote\",\n \"proof\",\n \"property\",\n \"prosper\",\n \"protect\",\n \"proud\",\n \"provide\",\n \"public\",\n \"pudding\",\n \"pull\",\n \"pulp\",\n \"pulse\",\n \"pumpkin\",\n \"punch\",\n \"pupil\",\n \"puppy\",\n \"purchase\",\n \"purity\",\n \"purpose\",\n \"purse\",\n \"push\",\n \"put\",\n \"puzzle\",\n \"pyramid\",\n \"quality\",\n \"quantum\",\n \"quarter\",\n \"question\",\n \"quick\",\n \"quit\",\n \"quiz\",\n \"quote\",\n \"rabbit\",\n \"raccoon\",\n \"race\",\n \"rack\",\n \"radar\",\n \"radio\",\n \"rail\",\n \"rain\",\n \"raise\",\n \"rally\",\n \"ramp\",\n \"ranch\",\n \"random\",\n \"range\",\n \"rapid\",\n \"rare\",\n \"rate\",\n \"rather\",\n \"raven\",\n \"raw\",\n \"razor\",\n \"ready\",\n \"real\",\n \"reason\",\n \"rebel\",\n \"rebuild\",\n \"recall\",\n \"receive\",\n \"recipe\",\n \"record\",\n \"recycle\",\n \"reduce\",\n \"reflect\",\n \"reform\",\n \"refuse\",\n \"region\",\n \"regret\",\n \"regular\",\n \"reject\",\n \"relax\",\n \"release\",\n \"relief\",\n \"rely\",\n \"remain\",\n \"remember\",\n \"remind\",\n \"remove\",\n \"render\",\n \"renew\",\n \"rent\",\n \"reopen\",\n \"repair\",\n \"repeat\",\n \"replace\",\n \"report\",\n \"require\",\n \"rescue\",\n \"resemble\",\n \"resist\",\n \"resource\",\n \"response\",\n \"result\",\n \"retire\",\n \"retreat\",\n \"return\",\n \"reunion\",\n \"reveal\",\n \"review\",\n \"reward\",\n \"rhythm\",\n \"rib\",\n \"ribbon\",\n \"rice\",\n \"rich\",\n \"ride\",\n \"ridge\",\n \"rifle\",\n \"right\",\n \"rigid\",\n \"ring\",\n \"riot\",\n \"ripple\",\n \"risk\",\n \"ritual\",\n \"rival\",\n \"river\",\n \"road\",\n \"roast\",\n \"robot\",\n \"robust\",\n \"rocket\",\n \"romance\",\n \"roof\",\n \"rookie\",\n \"room\",\n \"rose\",\n \"rotate\",\n \"rough\",\n \"round\",\n \"route\",\n \"royal\",\n \"rubber\",\n \"rude\",\n \"rug\",\n \"rule\",\n \"run\",\n \"runway\",\n \"rural\",\n \"sad\",\n \"saddle\",\n \"sadness\",\n \"safe\",\n \"sail\",\n \"salad\",\n \"salmon\",\n \"salon\",\n \"salt\",\n \"salute\",\n \"same\",\n \"sample\",\n \"sand\",\n \"satisfy\",\n \"satoshi\",\n \"sauce\",\n \"sausage\",\n \"save\",\n \"say\",\n \"scale\",\n \"scan\",\n \"scare\",\n \"scatter\",\n \"scene\",\n \"scheme\",\n \"school\",\n \"science\",\n \"scissors\",\n \"scorpion\",\n \"scout\",\n \"scrap\",\n \"screen\",\n \"script\",\n \"scrub\",\n \"sea\",\n \"search\",\n \"season\",\n \"seat\",\n \"second\",\n \"secret\",\n \"section\",\n \"security\",\n \"seed\",\n \"seek\",\n \"segment\",\n \"select\",\n \"sell\",\n \"seminar\",\n \"senior\",\n \"sense\",\n \"sentence\",\n \"series\",\n \"service\",\n \"session\",\n \"settle\",\n \"setup\",\n \"seven\",\n \"shadow\",\n \"shaft\",\n \"shallow\",\n \"share\",\n \"shed\",\n \"shell\",\n \"sheriff\",\n \"shield\",\n \"shift\",\n \"shine\",\n \"ship\",\n \"shiver\",\n \"shock\",\n \"shoe\",\n \"shoot\",\n \"shop\",\n \"short\",\n \"shoulder\",\n \"shove\",\n \"shrimp\",\n \"shrug\",\n \"shuffle\",\n \"shy\",\n \"sibling\",\n \"sick\",\n \"side\",\n \"siege\",\n \"sight\",\n \"sign\",\n \"silent\",\n \"silk\",\n \"silly\",\n \"silver\",\n \"similar\",\n \"simple\",\n \"since\",\n \"sing\",\n \"siren\",\n \"sister\",\n \"situate\",\n \"six\",\n \"size\",\n \"skate\",\n \"sketch\",\n \"ski\",\n \"skill\",\n \"skin\",\n \"skirt\",\n \"skull\",\n \"slab\",\n \"slam\",\n \"sleep\",\n \"slender\",\n \"slice\",\n \"slide\",\n \"slight\",\n \"slim\",\n \"slogan\",\n \"slot\",\n \"slow\",\n \"slush\",\n \"small\",\n \"smart\",\n \"smile\",\n \"smoke\",\n \"smooth\",\n \"snack\",\n \"snake\",\n \"snap\",\n \"sniff\",\n \"snow\",\n \"soap\",\n \"soccer\",\n \"social\",\n \"sock\",\n \"soda\",\n \"soft\",\n \"solar\",\n \"soldier\",\n \"solid\",\n \"solution\",\n \"solve\",\n \"someone\",\n \"song\",\n \"soon\",\n \"sorry\",\n \"sort\",\n \"soul\",\n \"sound\",\n \"soup\",\n \"source\",\n \"south\",\n \"space\",\n \"spare\",\n \"spatial\",\n \"spawn\",\n \"speak\",\n \"special\",\n \"speed\",\n \"spell\",\n \"spend\",\n \"sphere\",\n \"spice\",\n \"spider\",\n \"spike\",\n \"spin\",\n \"spirit\",\n \"split\",\n \"spoil\",\n \"sponsor\",\n \"spoon\",\n \"sport\",\n \"spot\",\n \"spray\",\n \"spread\",\n \"spring\",\n \"spy\",\n \"square\",\n \"squeeze\",\n \"squirrel\",\n \"stable\",\n \"stadium\",\n \"staff\",\n \"stage\",\n \"stairs\",\n \"stamp\",\n \"stand\",\n \"start\",\n \"state\",\n \"stay\",\n \"steak\",\n \"steel\",\n \"stem\",\n \"step\",\n \"stereo\",\n \"stick\",\n \"still\",\n \"sting\",\n \"stock\",\n \"stomach\",\n \"stone\",\n \"stool\",\n \"story\",\n \"stove\",\n \"strategy\",\n \"street\",\n \"strike\",\n \"strong\",\n \"struggle\",\n \"student\",\n \"stuff\",\n \"stumble\",\n \"style\",\n \"subject\",\n \"submit\",\n \"subway\",\n \"success\",\n \"such\",\n \"sudden\",\n \"suffer\",\n \"sugar\",\n \"suggest\",\n \"suit\",\n \"summer\",\n \"sun\",\n \"sunny\",\n \"sunset\",\n \"super\",\n \"supply\",\n \"supreme\",\n \"sure\",\n \"surface\",\n \"surge\",\n \"surprise\",\n \"surround\",\n \"survey\",\n \"suspect\",\n \"sustain\",\n \"swallow\",\n \"swamp\",\n \"swap\",\n \"swarm\",\n \"swear\",\n \"sweet\",\n \"swift\",\n \"swim\",\n \"swing\",\n \"switch\",\n \"sword\",\n \"symbol\",\n \"symptom\",\n \"syrup\",\n \"system\",\n \"table\",\n \"tackle\",\n \"tag\",\n \"tail\",\n \"talent\",\n \"talk\",\n \"tank\",\n \"tape\",\n \"target\",\n \"task\",\n \"taste\",\n \"tattoo\",\n \"taxi\",\n \"teach\",\n \"team\",\n \"tell\",\n \"ten\",\n \"tenant\",\n \"tennis\",\n \"tent\",\n \"term\",\n \"test\",\n \"text\",\n \"thank\",\n \"that\",\n \"theme\",\n \"then\",\n \"theory\",\n \"there\",\n \"they\",\n \"thing\",\n \"this\",\n \"thought\",\n \"three\",\n \"thrive\",\n \"throw\",\n \"thumb\",\n \"thunder\",\n \"ticket\",\n \"tide\",\n \"tiger\",\n \"tilt\",\n \"timber\",\n \"time\",\n \"tiny\",\n \"tip\",\n \"tired\",\n \"tissue\",\n \"title\",\n \"toast\",\n \"tobacco\",\n \"today\",\n \"toddler\",\n \"toe\",\n \"together\",\n \"toilet\",\n \"token\",\n \"tomato\",\n \"tomorrow\",\n \"tone\",\n \"tongue\",\n \"tonight\",\n \"tool\",\n \"tooth\",\n \"top\",\n \"topic\",\n \"topple\",\n \"torch\",\n \"tornado\",\n \"tortoise\",\n \"toss\",\n \"total\",\n \"tourist\",\n \"toward\",\n \"tower\",\n \"town\",\n \"toy\",\n \"track\",\n \"trade\",\n \"traffic\",\n \"tragic\",\n \"train\",\n \"transfer\",\n \"trap\",\n \"trash\",\n \"travel\",\n \"tray\",\n \"treat\",\n \"tree\",\n \"trend\",\n \"trial\",\n \"tribe\",\n \"trick\",\n \"trigger\",\n \"trim\",\n \"trip\",\n \"trophy\",\n \"trouble\",\n \"truck\",\n \"true\",\n \"truly\",\n \"trumpet\",\n \"trust\",\n \"truth\",\n \"try\",\n \"tube\",\n \"tuition\",\n \"tumble\",\n \"tuna\",\n \"tunnel\",\n \"turkey\",\n \"turn\",\n \"turtle\",\n \"twelve\",\n \"twenty\",\n \"twice\",\n \"twin\",\n \"twist\",\n \"two\",\n \"type\",\n \"typical\",\n \"ugly\",\n \"umbrella\",\n \"unable\",\n \"unaware\",\n \"uncle\",\n \"uncover\",\n \"under\",\n \"undo\",\n \"unfair\",\n \"unfold\",\n \"unhappy\",\n \"uniform\",\n \"unique\",\n \"unit\",\n \"universe\",\n \"unknown\",\n \"unlock\",\n \"until\",\n \"unusual\",\n \"unveil\",\n \"update\",\n \"upgrade\",\n \"uphold\",\n \"upon\",\n \"upper\",\n \"upset\",\n \"urban\",\n \"urge\",\n \"usage\",\n \"use\",\n \"used\",\n \"useful\",\n \"useless\",\n \"usual\",\n \"utility\",\n \"vacant\",\n \"vacuum\",\n \"vague\",\n \"valid\",\n \"valley\",\n \"valve\",\n \"van\",\n \"vanish\",\n \"vapor\",\n \"various\",\n \"vast\",\n \"vault\",\n \"vehicle\",\n \"velvet\",\n \"vendor\",\n \"venture\",\n \"venue\",\n \"verb\",\n \"verify\",\n \"version\",\n \"very\",\n \"vessel\",\n \"veteran\",\n \"viable\",\n \"vibrant\",\n \"vicious\",\n \"victory\",\n \"video\",\n \"view\",\n \"village\",\n \"vintage\",\n \"violin\",\n \"virtual\",\n \"virus\",\n \"visa\",\n \"visit\",\n \"visual\",\n \"vital\",\n \"vivid\",\n \"vocal\",\n \"voice\",\n \"void\",\n \"volcano\",\n \"volume\",\n \"vote\",\n \"voyage\",\n \"wage\",\n \"wagon\",\n \"wait\",\n \"walk\",\n \"wall\",\n \"walnut\",\n \"want\",\n \"warfare\",\n \"warm\",\n \"warrior\",\n \"wash\",\n \"wasp\",\n \"waste\",\n \"water\",\n \"wave\",\n \"way\",\n \"wealth\",\n \"weapon\",\n \"wear\",\n \"weasel\",\n \"weather\",\n \"web\",\n \"wedding\",\n \"weekend\",\n \"weird\",\n \"welcome\",\n \"west\",\n \"wet\",\n \"whale\",\n \"what\",\n \"wheat\",\n \"wheel\",\n \"when\",\n \"where\",\n \"whip\",\n \"whisper\",\n \"wide\",\n \"width\",\n \"wife\",\n \"wild\",\n \"will\",\n \"win\",\n \"window\",\n \"wine\",\n \"wing\",\n \"wink\",\n \"winner\",\n \"winter\",\n \"wire\",\n \"wisdom\",\n \"wise\",\n \"wish\",\n \"witness\",\n \"wolf\",\n \"woman\",\n \"wonder\",\n \"wood\",\n \"wool\",\n \"word\",\n \"work\",\n \"world\",\n \"worry\",\n \"worth\",\n \"wrap\",\n \"wreck\",\n \"wrestle\",\n \"wrist\",\n \"write\",\n \"wrong\",\n \"yard\",\n \"year\",\n \"yellow\",\n \"you\",\n \"young\",\n \"youth\",\n \"zebra\",\n \"zero\",\n \"zone\",\n \"zoo\",\n];\nfunction bytesToBitstring(bytes) {\n return Array.from(bytes)\n .map((byte) => byte.toString(2).padStart(8, \"0\"))\n .join(\"\");\n}\nfunction deriveChecksumBits(entropy) {\n const entropyLengthBits = entropy.length * 8; // \"ENT\" (in bits)\n const checksumLengthBits = entropyLengthBits / 32; // \"CS\" (in bits)\n const hash = (0, sha_1.sha256)(entropy);\n return bytesToBitstring(hash).slice(0, checksumLengthBits);\n}\nfunction bitstringToByte(bin) {\n return parseInt(bin, 2);\n}\nconst allowedEntropyLengths = [16, 20, 24, 28, 32];\nconst allowedWordLengths = [12, 15, 18, 21, 24];\nfunction entropyToMnemonic(entropy) {\n if (allowedEntropyLengths.indexOf(entropy.length) === -1) {\n throw new Error(\"invalid input length\");\n }\n const entropyBits = bytesToBitstring(entropy);\n const checksumBits = deriveChecksumBits(entropy);\n const bits = entropyBits + checksumBits;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const chunks = bits.match(/(.{11})/g);\n const words = chunks.map((binary) => {\n const index = bitstringToByte(binary);\n return wordlist[index];\n });\n return words.join(\" \");\n}\nexports.entropyToMnemonic = entropyToMnemonic;\nconst invalidNumberOfWorks = \"Invalid number of words\";\nconst wordNotInWordlist = \"Found word that is not in the wordlist\";\nconst invalidEntropy = \"Invalid entropy\";\nconst invalidChecksum = \"Invalid mnemonic checksum\";\nfunction normalize(str) {\n return str.normalize(\"NFKD\");\n}\nfunction mnemonicToEntropy(mnemonic) {\n const words = normalize(mnemonic).split(\" \");\n if (!allowedWordLengths.includes(words.length)) {\n throw new Error(invalidNumberOfWorks);\n }\n // convert word indices to 11 bit binary strings\n const bits = words\n .map((word) => {\n const index = wordlist.indexOf(word);\n if (index === -1) {\n throw new Error(wordNotInWordlist);\n }\n return index.toString(2).padStart(11, \"0\");\n })\n .join(\"\");\n // split the binary string into ENT/CS\n const dividerIndex = Math.floor(bits.length / 33) * 32;\n const entropyBits = bits.slice(0, dividerIndex);\n const checksumBits = bits.slice(dividerIndex);\n // calculate the checksum and compare\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const entropyBytes = entropyBits.match(/(.{1,8})/g).map(bitstringToByte);\n if (entropyBytes.length < 16 || entropyBytes.length > 32 || entropyBytes.length % 4 !== 0) {\n throw new Error(invalidEntropy);\n }\n const entropy = Uint8Array.from(entropyBytes);\n const newChecksum = deriveChecksumBits(entropy);\n if (newChecksum !== checksumBits) {\n throw new Error(invalidChecksum);\n }\n return entropy;\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\nclass EnglishMnemonic {\n constructor(mnemonic) {\n if (!EnglishMnemonic.mnemonicMatcher.test(mnemonic)) {\n throw new Error(\"Invalid mnemonic format\");\n }\n const words = mnemonic.split(\" \");\n const allowedWordsLengths = [12, 15, 18, 21, 24];\n if (allowedWordsLengths.indexOf(words.length) === -1) {\n throw new Error(`Invalid word count in mnemonic (allowed: ${allowedWordsLengths} got: ${words.length})`);\n }\n for (const word of words) {\n if (EnglishMnemonic.wordlist.indexOf(word) === -1) {\n throw new Error(\"Mnemonic contains invalid word\");\n }\n }\n // Throws with informative error message if mnemonic is not valid\n mnemonicToEntropy(mnemonic);\n this.data = mnemonic;\n }\n toString() {\n return this.data;\n }\n}\nexports.EnglishMnemonic = EnglishMnemonic;\nEnglishMnemonic.wordlist = wordlist;\n// list of space separated lower case words (1 or more)\nEnglishMnemonic.mnemonicMatcher = /^[a-z]+( [a-z]+)*$/;\nclass Bip39 {\n /**\n * Encodes raw entropy of length 16, 20, 24, 28 or 32 bytes as an English mnemonic between 12 and 24 words.\n *\n * | Entropy | Words |\n * |--------------------|-------|\n * | 128 bit (16 bytes) | 12 |\n * | 160 bit (20 bytes) | 15 |\n * | 192 bit (24 bytes) | 18 |\n * | 224 bit (28 bytes) | 21 |\n * | 256 bit (32 bytes) | 24 |\n *\n *\n * @see https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#generating-the-mnemonic\n * @param entropy The entropy to be encoded. This must be cryptographically secure.\n */\n static encode(entropy) {\n return new EnglishMnemonic(entropyToMnemonic(entropy));\n }\n static decode(mnemonic) {\n return mnemonicToEntropy(mnemonic.toString());\n }\n static async mnemonicToSeed(mnemonic, password) {\n const mnemonicBytes = (0, encoding_1.toUtf8)(normalize(mnemonic.toString()));\n const salt = \"mnemonic\" + (password ? normalize(password) : \"\");\n const saltBytes = (0, encoding_1.toUtf8)(salt);\n return (0, pbkdf2_1.pbkdf2Sha512)(mnemonicBytes, saltBytes, 2048, 64);\n }\n}\nexports.Bip39 = Bip39;\n//# sourceMappingURL=bip39.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hmac = void 0;\nclass Hmac {\n constructor(hashFunctionConstructor, originalKey) {\n // This implementation is based on https://en.wikipedia.org/wiki/HMAC#Implementation\n // with the addition of incremental hashing support. Thus part of the algorithm\n // is in the constructor and the rest in digest().\n const blockSize = new hashFunctionConstructor().blockSize;\n this.hash = (data) => new hashFunctionConstructor().update(data).digest();\n let key = originalKey;\n if (key.length > blockSize) {\n key = this.hash(key);\n }\n if (key.length < blockSize) {\n const zeroPadding = new Uint8Array(blockSize - key.length);\n key = new Uint8Array([...key, ...zeroPadding]);\n }\n // eslint-disable-next-line no-bitwise\n this.oKeyPad = key.map((keyByte) => keyByte ^ 0x5c);\n // eslint-disable-next-line no-bitwise\n this.iKeyPad = key.map((keyByte) => keyByte ^ 0x36);\n this.messageHasher = new hashFunctionConstructor();\n this.blockSize = blockSize;\n this.update(this.iKeyPad);\n }\n update(data) {\n this.messageHasher.update(data);\n return this;\n }\n digest() {\n const innerHash = this.messageHasher.digest();\n return this.hash(new Uint8Array([...this.oKeyPad, ...innerHash]));\n }\n}\nexports.Hmac = Hmac;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringToPath = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = exports.Slip10 = exports.pathToString = exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = exports.Secp256k1Signature = exports.ExtendedSecp256k1Signature = exports.Secp256k1 = exports.ripemd160 = exports.Ripemd160 = exports.Random = exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.isArgon2idOptions = exports.Ed25519Keypair = exports.Ed25519 = exports.Argon2id = exports.keccak256 = exports.Keccak256 = exports.Hmac = exports.EnglishMnemonic = exports.Bip39 = void 0;\nvar bip39_1 = require(\"./bip39\");\nObject.defineProperty(exports, \"Bip39\", { enumerable: true, get: function () { return bip39_1.Bip39; } });\nObject.defineProperty(exports, \"EnglishMnemonic\", { enumerable: true, get: function () { return bip39_1.EnglishMnemonic; } });\nvar hmac_1 = require(\"./hmac\");\nObject.defineProperty(exports, \"Hmac\", { enumerable: true, get: function () { return hmac_1.Hmac; } });\nvar keccak_1 = require(\"./keccak\");\nObject.defineProperty(exports, \"Keccak256\", { enumerable: true, get: function () { return keccak_1.Keccak256; } });\nObject.defineProperty(exports, \"keccak256\", { enumerable: true, get: function () { return keccak_1.keccak256; } });\nvar libsodium_1 = require(\"./libsodium\");\nObject.defineProperty(exports, \"Argon2id\", { enumerable: true, get: function () { return libsodium_1.Argon2id; } });\nObject.defineProperty(exports, \"Ed25519\", { enumerable: true, get: function () { return libsodium_1.Ed25519; } });\nObject.defineProperty(exports, \"Ed25519Keypair\", { enumerable: true, get: function () { return libsodium_1.Ed25519Keypair; } });\nObject.defineProperty(exports, \"isArgon2idOptions\", { enumerable: true, get: function () { return libsodium_1.isArgon2idOptions; } });\nObject.defineProperty(exports, \"xchacha20NonceLength\", { enumerable: true, get: function () { return libsodium_1.xchacha20NonceLength; } });\nObject.defineProperty(exports, \"Xchacha20poly1305Ietf\", { enumerable: true, get: function () { return libsodium_1.Xchacha20poly1305Ietf; } });\nvar random_1 = require(\"./random\");\nObject.defineProperty(exports, \"Random\", { enumerable: true, get: function () { return random_1.Random; } });\nvar ripemd_1 = require(\"./ripemd\");\nObject.defineProperty(exports, \"Ripemd160\", { enumerable: true, get: function () { return ripemd_1.Ripemd160; } });\nObject.defineProperty(exports, \"ripemd160\", { enumerable: true, get: function () { return ripemd_1.ripemd160; } });\nvar secp256k1_1 = require(\"./secp256k1\");\nObject.defineProperty(exports, \"Secp256k1\", { enumerable: true, get: function () { return secp256k1_1.Secp256k1; } });\nvar secp256k1signature_1 = require(\"./secp256k1signature\");\nObject.defineProperty(exports, \"ExtendedSecp256k1Signature\", { enumerable: true, get: function () { return secp256k1signature_1.ExtendedSecp256k1Signature; } });\nObject.defineProperty(exports, \"Secp256k1Signature\", { enumerable: true, get: function () { return secp256k1signature_1.Secp256k1Signature; } });\nvar sha_1 = require(\"./sha\");\nObject.defineProperty(exports, \"Sha256\", { enumerable: true, get: function () { return sha_1.Sha256; } });\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha_1.sha256; } });\nObject.defineProperty(exports, \"Sha512\", { enumerable: true, get: function () { return sha_1.Sha512; } });\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha_1.sha512; } });\nvar slip10_1 = require(\"./slip10\");\nObject.defineProperty(exports, \"pathToString\", { enumerable: true, get: function () { return slip10_1.pathToString; } });\nObject.defineProperty(exports, \"Slip10\", { enumerable: true, get: function () { return slip10_1.Slip10; } });\nObject.defineProperty(exports, \"Slip10Curve\", { enumerable: true, get: function () { return slip10_1.Slip10Curve; } });\nObject.defineProperty(exports, \"slip10CurveFromString\", { enumerable: true, get: function () { return slip10_1.slip10CurveFromString; } });\nObject.defineProperty(exports, \"Slip10RawIndex\", { enumerable: true, get: function () { return slip10_1.Slip10RawIndex; } });\nObject.defineProperty(exports, \"stringToPath\", { enumerable: true, get: function () { return slip10_1.stringToPath; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keccak256 = exports.Keccak256 = void 0;\nconst sha3_1 = require(\"@noble/hashes/sha3\");\nconst utils_1 = require(\"./utils\");\nclass Keccak256 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = sha3_1.keccak_256.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Keccak256 = Keccak256;\n/** Convenience function equivalent to `new Keccak256(data).digest()` */\nfunction keccak256(data) {\n return new Keccak256(data).digest();\n}\nexports.keccak256 = keccak256;\n//# sourceMappingURL=keccak.js.map","\"use strict\";\n// Keep all classes requiring libsodium-js in one file as having multiple\n// requiring of the libsodium-wrappers module currently crashes browsers\n//\n// libsodium.js API: https://gist.github.com/webmaster128/b2dbe6d54d36dd168c9fabf441b9b09c\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.Ed25519 = exports.Ed25519Keypair = exports.Argon2id = exports.isArgon2idOptions = void 0;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst libsodium_wrappers_1 = __importDefault(require(\"libsodium-wrappers\"));\nfunction isArgon2idOptions(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.outputLength !== \"number\")\n return false;\n if (typeof thing.opsLimit !== \"number\")\n return false;\n if (typeof thing.memLimitKib !== \"number\")\n return false;\n return true;\n}\nexports.isArgon2idOptions = isArgon2idOptions;\nclass Argon2id {\n static async execute(password, salt, options) {\n await libsodium_wrappers_1.default.ready;\n return libsodium_wrappers_1.default.crypto_pwhash(options.outputLength, password, salt, // libsodium only supports 16 byte salts and will throw when you don't respect that\n options.opsLimit, options.memLimitKib * 1024, libsodium_wrappers_1.default.crypto_pwhash_ALG_ARGON2ID13);\n }\n}\nexports.Argon2id = Argon2id;\nclass Ed25519Keypair {\n constructor(privkey, pubkey) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n }\n // a libsodium privkey has the format ` + `\n static fromLibsodiumPrivkey(libsodiumPrivkey) {\n if (libsodiumPrivkey.length !== 64) {\n throw new Error(`Unexpected key length ${libsodiumPrivkey.length}. Must be 64.`);\n }\n return new Ed25519Keypair(libsodiumPrivkey.slice(0, 32), libsodiumPrivkey.slice(32, 64));\n }\n toLibsodiumPrivkey() {\n return new Uint8Array([...this.privkey, ...this.pubkey]);\n }\n}\nexports.Ed25519Keypair = Ed25519Keypair;\nclass Ed25519 {\n /**\n * Generates a keypair deterministically from a given 32 bytes seed.\n *\n * This seed equals the Ed25519 private key.\n * For implementation details see crypto_sign_seed_keypair in\n * https://download.libsodium.org/doc/public-key_cryptography/public-key_signatures.html\n * and diagram on https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n static async makeKeypair(seed) {\n await libsodium_wrappers_1.default.ready;\n const keypair = libsodium_wrappers_1.default.crypto_sign_seed_keypair(seed);\n return Ed25519Keypair.fromLibsodiumPrivkey(keypair.privateKey);\n }\n static async createSignature(message, keyPair) {\n await libsodium_wrappers_1.default.ready;\n return libsodium_wrappers_1.default.crypto_sign_detached(message, keyPair.toLibsodiumPrivkey());\n }\n static async verifySignature(signature, message, pubkey) {\n await libsodium_wrappers_1.default.ready;\n return libsodium_wrappers_1.default.crypto_sign_verify_detached(signature, message, pubkey);\n }\n}\nexports.Ed25519 = Ed25519;\n/**\n * Nonce length in bytes for all flavours of XChaCha20.\n *\n * @see https://libsodium.gitbook.io/doc/advanced/stream_ciphers/xchacha20#notes\n */\nexports.xchacha20NonceLength = 24;\nclass Xchacha20poly1305Ietf {\n static async encrypt(message, key, nonce) {\n await libsodium_wrappers_1.default.ready;\n const additionalData = null;\n return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_encrypt(message, additionalData, null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction)\n nonce, key);\n }\n static async decrypt(ciphertext, key, nonce) {\n await libsodium_wrappers_1.default.ready;\n const additionalData = null;\n return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction)\n ciphertext, additionalData, nonce, key);\n }\n}\nexports.Xchacha20poly1305Ietf = Xchacha20poly1305Ietf;\n//# sourceMappingURL=libsodium.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2Sha512 = exports.pbkdf2Sha512Noble = exports.pbkdf2Sha512Crypto = exports.pbkdf2Sha512Subtle = exports.getSubtle = exports.getCryptoModule = void 0;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pbkdf2_1 = require(\"@noble/hashes/pbkdf2\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\n/**\n * Returns the Node.js crypto module when available and `undefined`\n * otherwise.\n *\n * Detects an unimplemented fallback module from Webpack 5 and returns\n * `undefined` in that case.\n */\nasync function getCryptoModule() {\n try {\n const crypto = await Promise.resolve().then(() => __importStar(require(\"crypto\")));\n // We get `Object{default: Object{}}` as a fallback when using\n // `crypto: false` in Webpack 5, which we interprete as unavailable.\n if (typeof crypto === \"object\" && Object.keys(crypto).length <= 1) {\n return undefined;\n }\n return crypto;\n }\n catch (_a) {\n return undefined;\n }\n}\nexports.getCryptoModule = getCryptoModule;\nasync function getSubtle() {\n const g = globalThis;\n let subtle = g.crypto && g.crypto.subtle;\n if (!subtle) {\n const crypto = await getCryptoModule();\n if (crypto && crypto.webcrypto && crypto.webcrypto.subtle) {\n subtle = crypto.webcrypto.subtle;\n }\n }\n return subtle;\n}\nexports.getSubtle = getSubtle;\nasync function pbkdf2Sha512Subtle(\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nsubtle, secret, salt, iterations, keylen) {\n (0, utils_1.assert)(subtle, \"Argument subtle is falsy\");\n (0, utils_1.assert)(typeof subtle === \"object\", \"Argument subtle is not of type object\");\n (0, utils_1.assert)(typeof subtle.importKey === \"function\", \"subtle.importKey is not a function\");\n (0, utils_1.assert)(typeof subtle.deriveBits === \"function\", \"subtle.deriveBits is not a function\");\n return subtle.importKey(\"raw\", secret, { name: \"PBKDF2\" }, false, [\"deriveBits\"]).then((key) => subtle\n .deriveBits({\n name: \"PBKDF2\",\n salt: salt,\n iterations: iterations,\n hash: { name: \"SHA-512\" },\n }, key, keylen * 8)\n .then((buffer) => new Uint8Array(buffer)));\n}\nexports.pbkdf2Sha512Subtle = pbkdf2Sha512Subtle;\nasync function pbkdf2Sha512Crypto(\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\ncrypto, secret, salt, iterations, keylen) {\n (0, utils_1.assert)(crypto, \"Argument crypto is falsy\");\n (0, utils_1.assert)(typeof crypto === \"object\", \"Argument crypto is not of type object\");\n (0, utils_1.assert)(typeof crypto.pbkdf2 === \"function\", \"crypto.pbkdf2 is not a function\");\n return new Promise((resolve, reject) => {\n crypto.pbkdf2(secret, salt, iterations, keylen, \"sha512\", (error, result) => {\n if (error) {\n reject(error);\n }\n else {\n resolve(Uint8Array.from(result));\n }\n });\n });\n}\nexports.pbkdf2Sha512Crypto = pbkdf2Sha512Crypto;\nasync function pbkdf2Sha512Noble(secret, salt, iterations, keylen) {\n return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, secret, salt, { c: iterations, dkLen: keylen });\n}\nexports.pbkdf2Sha512Noble = pbkdf2Sha512Noble;\n/**\n * A pbkdf2 implementation for BIP39. This is not exported at package level and thus a private API.\n */\nasync function pbkdf2Sha512(secret, salt, iterations, keylen) {\n const subtle = await getSubtle();\n if (subtle) {\n return pbkdf2Sha512Subtle(subtle, secret, salt, iterations, keylen);\n }\n else {\n const crypto = await getCryptoModule();\n if (crypto) {\n return pbkdf2Sha512Crypto(crypto, secret, salt, iterations, keylen);\n }\n else {\n return pbkdf2Sha512Noble(secret, salt, iterations, keylen);\n }\n }\n}\nexports.pbkdf2Sha512 = pbkdf2Sha512;\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = void 0;\nclass Random {\n /**\n * Returns `count` cryptographically secure random bytes\n */\n static getBytes(count) {\n try {\n const globalObject = typeof window === \"object\" ? window : self;\n const cryptoApi = typeof globalObject.crypto !== \"undefined\" ? globalObject.crypto : globalObject.msCrypto;\n const out = new Uint8Array(count);\n cryptoApi.getRandomValues(out);\n return out;\n }\n catch (_a) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const crypto = require(\"crypto\");\n return new Uint8Array([...crypto.randomBytes(count)]);\n }\n catch (_b) {\n throw new Error(\"No secure random number generator found\");\n }\n }\n }\n}\nexports.Random = Random;\n//# sourceMappingURL=random.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.Ripemd160 = void 0;\nconst ripemd160_1 = require(\"@noble/hashes/ripemd160\");\nconst utils_1 = require(\"./utils\");\nclass Ripemd160 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = ripemd160_1.ripemd160.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Ripemd160 = Ripemd160;\n/** Convenience function equivalent to `new Ripemd160(data).digest()` */\nfunction ripemd160(data) {\n return new Ripemd160(data).digest();\n}\nexports.ripemd160 = ripemd160;\n//# sourceMappingURL=ripemd.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1 = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst elliptic_1 = __importDefault(require(\"elliptic\"));\nconst secp256k1signature_1 = require(\"./secp256k1signature\");\nconst secp256k1 = new elliptic_1.default.ec(\"secp256k1\");\nconst secp256k1N = new bn_js_1.default(\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", \"hex\");\nclass Secp256k1 {\n /**\n * Takes a 32 byte private key and returns a privkey/pubkey pair.\n *\n * The resulting pubkey is uncompressed. For the use in Cosmos it should\n * be compressed first using `Secp256k1.compressPubkey`.\n */\n static async makeKeypair(privkey) {\n if (privkey.length !== 32) {\n // is this check missing in secp256k1.validatePrivateKey?\n // https://github.com/bitjson/bitcoin-ts/issues/4\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n const keypair = secp256k1.keyFromPrivate(privkey);\n if (keypair.validate().result !== true) {\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n // range test that is not part of the elliptic implementation\n const privkeyAsBigInteger = new bn_js_1.default(privkey);\n if (privkeyAsBigInteger.gte(secp256k1N)) {\n // not strictly smaller than N\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n const out = {\n privkey: (0, encoding_1.fromHex)(keypair.getPrivate(\"hex\")),\n // encodes uncompressed as\n // - 1-byte prefix \"04\"\n // - 32-byte x coordinate\n // - 32-byte y coordinate\n pubkey: Uint8Array.from(keypair.getPublic(\"array\")),\n };\n return out;\n }\n /**\n * Creates a signature that is\n * - deterministic (RFC 6979)\n * - lowS signature\n * - DER encoded\n */\n static async createSignature(messageHash, privkey) {\n if (messageHash.length === 0) {\n throw new Error(\"Message hash must not be empty\");\n }\n if (messageHash.length > 32) {\n throw new Error(\"Message hash length must not exceed 32 bytes\");\n }\n const keypair = secp256k1.keyFromPrivate(privkey);\n // the `canonical` option ensures creation of lowS signature representations\n const { r, s, recoveryParam } = keypair.sign(messageHash, { canonical: true });\n if (typeof recoveryParam !== \"number\")\n throw new Error(\"Recovery param missing\");\n return new secp256k1signature_1.ExtendedSecp256k1Signature(Uint8Array.from(r.toArray()), Uint8Array.from(s.toArray()), recoveryParam);\n }\n static async verifySignature(signature, messageHash, pubkey) {\n if (messageHash.length === 0) {\n throw new Error(\"Message hash must not be empty\");\n }\n if (messageHash.length > 32) {\n throw new Error(\"Message hash length must not exceed 32 bytes\");\n }\n const keypair = secp256k1.keyFromPublic(pubkey);\n // From https://github.com/indutny/elliptic:\n //\n // Sign the message's hash (input must be an array, or a hex-string)\n //\n // Signature MUST be either:\n // 1) DER-encoded signature as hex-string; or\n // 2) DER-encoded signature as buffer; or\n // 3) object with two hex-string properties (r and s); or\n // 4) object with two buffer properties (r and s)\n //\n // Uint8Array is not a Buffer, but elliptic seems to be happy with the interface\n // common to both types. Uint8Array is not an array of ints but the interface is\n // similar\n try {\n return keypair.verify(messageHash, signature.toDer());\n }\n catch (error) {\n return false;\n }\n }\n static recoverPubkey(signature, messageHash) {\n const signatureForElliptic = { r: (0, encoding_1.toHex)(signature.r()), s: (0, encoding_1.toHex)(signature.s()) };\n const point = secp256k1.recoverPubKey(messageHash, signatureForElliptic, signature.recovery);\n const keypair = secp256k1.keyFromPublic(point);\n return (0, encoding_1.fromHex)(keypair.getPublic(false, \"hex\"));\n }\n /**\n * Takes a compressed or uncompressed pubkey and return a compressed one.\n *\n * This function is idempotent.\n */\n static compressPubkey(pubkey) {\n switch (pubkey.length) {\n case 33:\n return pubkey;\n case 65:\n return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(true, \"array\"));\n default:\n throw new Error(\"Invalid pubkey length\");\n }\n }\n /**\n * Takes a compressed or uncompressed pubkey and returns an uncompressed one.\n *\n * This function is idempotent.\n */\n static uncompressPubkey(pubkey) {\n switch (pubkey.length) {\n case 33:\n return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(false, \"array\"));\n case 65:\n return pubkey;\n default:\n throw new Error(\"Invalid pubkey length\");\n }\n }\n static trimRecoveryByte(signature) {\n switch (signature.length) {\n case 64:\n return signature;\n case 65:\n return signature.slice(0, 64);\n default:\n throw new Error(\"Invalid signature length\");\n }\n }\n}\nexports.Secp256k1 = Secp256k1;\n//# sourceMappingURL=secp256k1.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExtendedSecp256k1Signature = exports.Secp256k1Signature = void 0;\nfunction trimLeadingNullBytes(inData) {\n let numberOfLeadingNullBytes = 0;\n for (const byte of inData) {\n if (byte === 0x00) {\n numberOfLeadingNullBytes++;\n }\n else {\n break;\n }\n }\n return inData.slice(numberOfLeadingNullBytes);\n}\nconst derTagInteger = 0x02;\nclass Secp256k1Signature {\n constructor(r, s) {\n if (r.length > 32 || r.length === 0 || r[0] === 0x00) {\n throw new Error(\"Unsigned integer r must be encoded as unpadded big endian.\");\n }\n if (s.length > 32 || s.length === 0 || s[0] === 0x00) {\n throw new Error(\"Unsigned integer s must be encoded as unpadded big endian.\");\n }\n this.data = {\n r: r,\n s: s,\n };\n }\n /**\n * Takes the pair of integers (r, s) as 2x32 byte of binary data.\n *\n * Note: This is the format Cosmos SDK uses natively.\n *\n * @param data a 64 byte value containing integers r and s.\n */\n static fromFixedLength(data) {\n if (data.length !== 64) {\n throw new Error(`Got invalid data length: ${data.length}. Expected 2x 32 bytes for the pair (r, s)`);\n }\n return new Secp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)));\n }\n static fromDer(data) {\n let pos = 0;\n if (data[pos++] !== 0x30) {\n throw new Error(\"Prefix 0x30 expected\");\n }\n const bodyLength = data[pos++];\n if (data.length - pos !== bodyLength) {\n throw new Error(\"Data length mismatch detected\");\n }\n // r\n const rTag = data[pos++];\n if (rTag !== derTagInteger) {\n throw new Error(\"INTEGER tag expected\");\n }\n const rLength = data[pos++];\n if (rLength >= 0x80) {\n throw new Error(\"Decoding length values above 127 not supported\");\n }\n const rData = data.slice(pos, pos + rLength);\n pos += rLength;\n // s\n const sTag = data[pos++];\n if (sTag !== derTagInteger) {\n throw new Error(\"INTEGER tag expected\");\n }\n const sLength = data[pos++];\n if (sLength >= 0x80) {\n throw new Error(\"Decoding length values above 127 not supported\");\n }\n const sData = data.slice(pos, pos + sLength);\n pos += sLength;\n return new Secp256k1Signature(\n // r/s data can contain leading 0 bytes to express integers being non-negative in DER\n trimLeadingNullBytes(rData), trimLeadingNullBytes(sData));\n }\n r(length) {\n if (length === undefined) {\n return this.data.r;\n }\n else {\n const paddingLength = length - this.data.r.length;\n if (paddingLength < 0) {\n throw new Error(\"Length too small to hold parameter r\");\n }\n const padding = new Uint8Array(paddingLength);\n return new Uint8Array([...padding, ...this.data.r]);\n }\n }\n s(length) {\n if (length === undefined) {\n return this.data.s;\n }\n else {\n const paddingLength = length - this.data.s.length;\n if (paddingLength < 0) {\n throw new Error(\"Length too small to hold parameter s\");\n }\n const padding = new Uint8Array(paddingLength);\n return new Uint8Array([...padding, ...this.data.s]);\n }\n }\n toFixedLength() {\n return new Uint8Array([...this.r(32), ...this.s(32)]);\n }\n toDer() {\n // DER supports negative integers but our data is unsigned. Thus we need to prepend\n // a leading 0 byte when the higest bit is set to differentiate nagative values\n const rEncoded = this.data.r[0] >= 0x80 ? new Uint8Array([0, ...this.data.r]) : this.data.r;\n const sEncoded = this.data.s[0] >= 0x80 ? new Uint8Array([0, ...this.data.s]) : this.data.s;\n const rLength = rEncoded.length;\n const sLength = sEncoded.length;\n const data = new Uint8Array([derTagInteger, rLength, ...rEncoded, derTagInteger, sLength, ...sEncoded]);\n return new Uint8Array([0x30, data.length, ...data]);\n }\n}\nexports.Secp256k1Signature = Secp256k1Signature;\n/**\n * A Secp256k1Signature plus the recovery parameter\n */\nclass ExtendedSecp256k1Signature extends Secp256k1Signature {\n constructor(r, s, recovery) {\n super(r, s);\n if (!Number.isInteger(recovery)) {\n throw new Error(\"The recovery parameter must be an integer.\");\n }\n if (recovery < 0 || recovery > 4) {\n throw new Error(\"The recovery parameter must be one of 0, 1, 2, 3.\");\n }\n this.recovery = recovery;\n }\n /**\n * Decode extended signature from the simple fixed length encoding\n * described in toFixedLength().\n */\n static fromFixedLength(data) {\n if (data.length !== 65) {\n throw new Error(`Got invalid data length ${data.length}. Expected 32 + 32 + 1`);\n }\n return new ExtendedSecp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)), data[64]);\n }\n /**\n * A simple custom encoding that encodes the extended signature as\n * r (32 bytes) | s (32 bytes) | recovery param (1 byte)\n * where | denotes concatenation of bonary data.\n */\n toFixedLength() {\n return new Uint8Array([...this.r(32), ...this.s(32), this.recovery]);\n }\n}\nexports.ExtendedSecp256k1Signature = ExtendedSecp256k1Signature;\n//# sourceMappingURL=secp256k1signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = void 0;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst utils_1 = require(\"./utils\");\nclass Sha256 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = sha256_1.sha256.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Sha256 = Sha256;\n/** Convenience function equivalent to `new Sha256(data).digest()` */\nfunction sha256(data) {\n return new Sha256(data).digest();\n}\nexports.sha256 = sha256;\nclass Sha512 {\n constructor(firstData) {\n this.blockSize = 1024 / 8;\n this.impl = sha512_1.sha512.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Sha512 = Sha512;\n/** Convenience function equivalent to `new Sha512(data).digest()` */\nfunction sha512(data) {\n return new Sha512(data).digest();\n}\nexports.sha512 = sha512;\n//# sourceMappingURL=sha.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringToPath = exports.pathToString = exports.Slip10 = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst elliptic_1 = __importDefault(require(\"elliptic\"));\nconst hmac_1 = require(\"./hmac\");\nconst sha_1 = require(\"./sha\");\n/**\n * Raw values must match the curve string in SLIP-0010 master key generation\n *\n * @see https://github.com/satoshilabs/slips/blob/master/slip-0010.md#master-key-generation\n */\nvar Slip10Curve;\n(function (Slip10Curve) {\n Slip10Curve[\"Secp256k1\"] = \"Bitcoin seed\";\n Slip10Curve[\"Ed25519\"] = \"ed25519 seed\";\n})(Slip10Curve = exports.Slip10Curve || (exports.Slip10Curve = {}));\n/**\n * Reverse mapping of Slip10Curve\n */\nfunction slip10CurveFromString(curveString) {\n switch (curveString) {\n case Slip10Curve.Ed25519:\n return Slip10Curve.Ed25519;\n case Slip10Curve.Secp256k1:\n return Slip10Curve.Secp256k1;\n default:\n throw new Error(`Unknown curve string: '${curveString}'`);\n }\n}\nexports.slip10CurveFromString = slip10CurveFromString;\nclass Slip10RawIndex extends math_1.Uint32 {\n static hardened(hardenedIndex) {\n return new Slip10RawIndex(hardenedIndex + 2 ** 31);\n }\n static normal(normalIndex) {\n return new Slip10RawIndex(normalIndex);\n }\n isHardened() {\n return this.data >= 2 ** 31;\n }\n}\nexports.Slip10RawIndex = Slip10RawIndex;\nconst secp256k1 = new elliptic_1.default.ec(\"secp256k1\");\n// Universal private key derivation accoring to\n// https://github.com/satoshilabs/slips/blob/master/slip-0010.md\nclass Slip10 {\n static derivePath(curve, seed, path) {\n let result = this.master(curve, seed);\n for (const rawIndex of path) {\n result = this.child(curve, result.privkey, result.chainCode, rawIndex);\n }\n return result;\n }\n static master(curve, seed) {\n const i = new hmac_1.Hmac(sha_1.Sha512, (0, encoding_1.toAscii)(curve)).update(seed).digest();\n const il = i.slice(0, 32);\n const ir = i.slice(32, 64);\n if (curve !== Slip10Curve.Ed25519 && (this.isZero(il) || this.isGteN(curve, il))) {\n return this.master(curve, i);\n }\n return {\n chainCode: ir,\n privkey: il,\n };\n }\n static child(curve, parentPrivkey, parentChainCode, rawIndex) {\n let i;\n if (rawIndex.isHardened()) {\n const payload = new Uint8Array([0x00, ...parentPrivkey, ...rawIndex.toBytesBigEndian()]);\n i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(payload).digest();\n }\n else {\n if (curve === Slip10Curve.Ed25519) {\n throw new Error(\"Normal keys are not allowed with ed25519\");\n }\n else {\n // Step 1 of https://github.com/satoshilabs/slips/blob/master/slip-0010.md#private-parent-key--private-child-key\n // Calculate I = HMAC-SHA512(Key = c_par, Data = ser_P(point(k_par)) || ser_32(i)).\n // where the functions point() and ser_p() are defined in BIP-0032\n const data = new Uint8Array([\n ...Slip10.serializedPoint(curve, new bn_js_1.default(parentPrivkey)),\n ...rawIndex.toBytesBigEndian(),\n ]);\n i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(data).digest();\n }\n }\n return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i);\n }\n /**\n * Implementation of ser_P(point(k_par)) from BIP-0032\n *\n * @see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n */\n static serializedPoint(curve, p) {\n switch (curve) {\n case Slip10Curve.Secp256k1:\n return (0, encoding_1.fromHex)(secp256k1.g.mul(p).encodeCompressed(\"hex\"));\n default:\n throw new Error(\"curve not supported\");\n }\n }\n static childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i) {\n // step 2 (of the Private parent key → private child key algorithm)\n const il = i.slice(0, 32);\n const ir = i.slice(32, 64);\n // step 3\n const returnChainCode = ir;\n // step 4\n if (curve === Slip10Curve.Ed25519) {\n return {\n chainCode: returnChainCode,\n privkey: il,\n };\n }\n // step 5\n const n = this.n(curve);\n const returnChildKeyAsNumber = new bn_js_1.default(il).add(new bn_js_1.default(parentPrivkey)).mod(n);\n const returnChildKey = Uint8Array.from(returnChildKeyAsNumber.toArray(\"be\", 32));\n // step 6\n if (this.isGteN(curve, il) || this.isZero(returnChildKey)) {\n const newI = new hmac_1.Hmac(sha_1.Sha512, parentChainCode)\n .update(new Uint8Array([0x01, ...ir, ...rawIndex.toBytesBigEndian()]))\n .digest();\n return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, newI);\n }\n // step 7\n return {\n chainCode: returnChainCode,\n privkey: returnChildKey,\n };\n }\n static isZero(privkey) {\n return privkey.every((byte) => byte === 0);\n }\n static isGteN(curve, privkey) {\n const keyAsNumber = new bn_js_1.default(privkey);\n return keyAsNumber.gte(this.n(curve));\n }\n static n(curve) {\n switch (curve) {\n case Slip10Curve.Secp256k1:\n return new bn_js_1.default(\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", 16);\n default:\n throw new Error(\"curve not supported\");\n }\n }\n}\nexports.Slip10 = Slip10;\nfunction pathToString(path) {\n return path.reduce((current, component) => {\n const componentString = component.isHardened()\n ? `${component.toNumber() - 2 ** 31}'`\n : component.toString();\n return current + \"/\" + componentString;\n }, \"m\");\n}\nexports.pathToString = pathToString;\nfunction stringToPath(input) {\n if (!input.startsWith(\"m\"))\n throw new Error(\"Path string must start with 'm'\");\n let rest = input.slice(1);\n const out = new Array();\n while (rest) {\n const match = rest.match(/^\\/([0-9]+)('?)/);\n if (!match)\n throw new Error(\"Syntax error while reading path component\");\n const [fullMatch, numberString, apostrophe] = match;\n const value = math_1.Uint53.fromString(numberString).toNumber();\n if (value >= 2 ** 31)\n throw new Error(\"Component value too high. Must not exceed 2**31-1.\");\n if (apostrophe)\n out.push(Slip10RawIndex.hardened(value));\n else\n out.push(Slip10RawIndex.normal(value));\n rest = rest.slice(fullMatch.length);\n }\n return out;\n}\nexports.stringToPath = stringToPath;\n//# sourceMappingURL=slip10.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toRealUint8Array = void 0;\n// See https://github.com/paulmillr/noble-hashes/issues/25 for why this is needed\nfunction toRealUint8Array(data) {\n if (data instanceof Uint8Array)\n return data;\n else\n return Uint8Array.from(data);\n}\nexports.toRealUint8Array = toRealUint8Array;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromAscii = exports.toAscii = void 0;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nexports.toAscii = toAscii;\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\nexports.fromAscii = fromAscii;\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBase64 = exports.toBase64 = void 0;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nexports.toBase64 = toBase64;\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\nexports.fromBase64 = fromBase64;\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bech32 = exports.fromBech32 = exports.toBech32 = void 0;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nexports.toBech32 = toBech32;\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\nexports.fromBech32 = fromBech32;\n/**\n * @deprecated This class is deprecated and will be removed soon. Please use fromBech32() and toBech32() instead. For more details please refer to https://github.com/cosmos/cosmjs/issues/1053.\n */\nclass Bech32 {\n /**\n * @deprecated This class is deprecated and will be removed soon. Please use fromBech32() and toBech32() instead. For more details please refer to https://github.com/cosmos/cosmjs/issues/1053.\n */\n static encode(prefix, data, limit) {\n return toBech32(prefix, data, limit);\n }\n /**\n * @deprecated This class is deprecated and will be removed soon. Please use fromBech32() and toBech32() instead. For more details please refer to https://github.com/cosmos/cosmjs/issues/1053.\n */\n static decode(address, limit = Infinity) {\n return fromBech32(address, limit);\n }\n}\nexports.Bech32 = Bech32;\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHex = exports.toHex = void 0;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nexports.toHex = toHex;\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\nexports.fromHex = fromHex;\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.fromBech32 = exports.Bech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"Bech32\", { enumerable: true, get: function () { return bech32_1.Bech32; } });\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toRfc3339 = exports.fromRfc3339 = void 0;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n const filled = \"00000\" + integer.toString();\n return filled.substring(filled.length - length);\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const timestamp = Date.UTC(year, month - 1, day, hour, minute, second, milliSeconds) - tzOffset * 1000;\n return new Date(timestamp);\n}\nexports.fromRfc3339 = fromRfc3339;\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\nexports.toRfc3339 = toRfc3339;\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromUtf8 = exports.toUtf8 = void 0;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\nexports.toUtf8 = toUtf8;\nfunction fromUtf8(data) {\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(data);\n}\nexports.fromUtf8 = fromUtf8;\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FaucetClient = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nclass FaucetClient {\n constructor(baseUrl) {\n if (!baseUrl.match(/^https?:\\/\\//)) {\n throw new Error(\"Expected base url to start with http:// or https://\");\n }\n // Strip trailing /\n const strippedBaseUrl = baseUrl.replace(/(\\/+)$/, \"\");\n this.baseUrl = strippedBaseUrl;\n }\n async credit(address, denom) {\n const body = {\n address: address,\n denom: denom,\n };\n try {\n await axios_1.default.post(this.baseUrl + \"/credit\", body);\n }\n catch (error) {\n if (error.response) {\n // append response body to error message\n throw new Error(`${error}; response body: ${JSON.stringify(error.response.data)}`);\n }\n else {\n throw error;\n }\n }\n }\n}\nexports.FaucetClient = FaucetClient;\n//# sourceMappingURL=faucetclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FaucetClient = void 0;\nvar faucetclient_1 = require(\"./faucetclient\");\nObject.defineProperty(exports, \"FaucetClient\", { enumerable: true, get: function () { return faucetclient_1.FaucetClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJsonCompatibleDictionary = exports.isJsonCompatibleArray = exports.isJsonCompatibleValue = void 0;\nfunction isJsonCompatibleValue(value) {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n value === null ||\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n isJsonCompatibleArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n isJsonCompatibleDictionary(value)) {\n return true;\n }\n else {\n return false;\n }\n}\nexports.isJsonCompatibleValue = isJsonCompatibleValue;\nfunction isJsonCompatibleArray(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const item of value) {\n if (!isJsonCompatibleValue(item)) {\n return false;\n }\n }\n // all items okay\n return true;\n}\nexports.isJsonCompatibleArray = isJsonCompatibleArray;\nfunction isJsonCompatibleDictionary(data) {\n if (typeof data !== \"object\" || data === null) {\n // data must be a non-null object\n return false;\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(data) !== \"[object Object]\") {\n return false;\n }\n return Object.values(data).every(isJsonCompatibleValue);\n}\nexports.isJsonCompatibleDictionary = isJsonCompatibleDictionary;\n//# sourceMappingURL=compatibility.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeJsonRpcId = void 0;\n// Start with 10001 to avoid possible collisions with all hand-selected values like e.g. 1,2,3,42,100\nlet counter = 10000;\n/**\n * Creates a new ID to be used for creating a JSON-RPC request.\n *\n * Multiple calls of this produce unique values.\n *\n * The output may be any value compatible to JSON-RPC request IDs with an undefined output format and generation logic.\n */\nfunction makeJsonRpcId() {\n return (counter += 1);\n}\nexports.makeJsonRpcId = makeJsonRpcId;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = exports.parseJsonRpcErrorResponse = exports.JsonRpcClient = exports.makeJsonRpcId = void 0;\nvar id_1 = require(\"./id\");\nObject.defineProperty(exports, \"makeJsonRpcId\", { enumerable: true, get: function () { return id_1.makeJsonRpcId; } });\nvar jsonrpcclient_1 = require(\"./jsonrpcclient\");\nObject.defineProperty(exports, \"JsonRpcClient\", { enumerable: true, get: function () { return jsonrpcclient_1.JsonRpcClient; } });\nvar parse_1 = require(\"./parse\");\nObject.defineProperty(exports, \"parseJsonRpcErrorResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcErrorResponse; } });\nObject.defineProperty(exports, \"parseJsonRpcId\", { enumerable: true, get: function () { return parse_1.parseJsonRpcId; } });\nObject.defineProperty(exports, \"parseJsonRpcRequest\", { enumerable: true, get: function () { return parse_1.parseJsonRpcRequest; } });\nObject.defineProperty(exports, \"parseJsonRpcResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcResponse; } });\nObject.defineProperty(exports, \"parseJsonRpcSuccessResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcSuccessResponse; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"isJsonRpcErrorResponse\", { enumerable: true, get: function () { return types_1.isJsonRpcErrorResponse; } });\nObject.defineProperty(exports, \"isJsonRpcSuccessResponse\", { enumerable: true, get: function () { return types_1.isJsonRpcSuccessResponse; } });\nObject.defineProperty(exports, \"jsonRpcCode\", { enumerable: true, get: function () { return types_1.jsonRpcCode; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcClient = void 0;\nconst stream_1 = require(\"@cosmjs/stream\");\nconst types_1 = require(\"./types\");\n/**\n * A thin wrapper that is used to bring together requests and responses by ID.\n *\n * Using this class is only advised for continous communication channels like\n * WebSockets or WebWorker messaging.\n */\nclass JsonRpcClient {\n constructor(connection) {\n this.connection = connection;\n }\n async run(request) {\n const filteredStream = this.connection.responseStream.filter((r) => r.id === request.id);\n const pendingResponses = (0, stream_1.firstEvent)(filteredStream);\n this.connection.sendRequest(request);\n const response = await pendingResponses;\n if ((0, types_1.isJsonRpcErrorResponse)(response)) {\n const error = response.error;\n throw new Error(`JSON RPC error: code=${error.code}; message='${error.message}'`);\n }\n return response;\n }\n}\nexports.JsonRpcClient = JsonRpcClient;\n//# sourceMappingURL=jsonrpcclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseJsonRpcResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcErrorResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = void 0;\nconst compatibility_1 = require(\"./compatibility\");\n/**\n * Extracts ID field from request or response object.\n *\n * Returns `null` when no valid ID was found.\n */\nfunction parseJsonRpcId(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\") {\n return null;\n }\n return id;\n}\nexports.parseJsonRpcId = parseJsonRpcId;\nfunction parseJsonRpcRequest(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${data.jsonrpc}`);\n }\n const id = parseJsonRpcId(data);\n if (id === null) {\n throw new Error(\"Invalid id field\");\n }\n const method = data.method;\n if (typeof method !== \"string\") {\n throw new Error(\"Invalid method field\");\n }\n if (!(0, compatibility_1.isJsonCompatibleArray)(data.params) && !(0, compatibility_1.isJsonCompatibleDictionary)(data.params)) {\n throw new Error(\"Invalid params field\");\n }\n return {\n jsonrpc: \"2.0\",\n id: id,\n method: method,\n params: data.params,\n };\n}\nexports.parseJsonRpcRequest = parseJsonRpcRequest;\nfunction parseError(error) {\n if (typeof error.code !== \"number\") {\n throw new Error(\"Error property 'code' is not a number\");\n }\n if (typeof error.message !== \"string\") {\n throw new Error(\"Error property 'message' is not a string\");\n }\n let maybeUndefinedData;\n if (error.data === undefined) {\n maybeUndefinedData = undefined;\n }\n else if ((0, compatibility_1.isJsonCompatibleValue)(error.data)) {\n maybeUndefinedData = error.data;\n }\n else {\n throw new Error(\"Error property 'data' is defined but not a JSON compatible value.\");\n }\n return {\n code: error.code,\n message: error.message,\n ...(maybeUndefinedData !== undefined ? { data: maybeUndefinedData } : {}),\n };\n}\n/** Throws if data is not a JsonRpcErrorResponse */\nfunction parseJsonRpcErrorResponse(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`);\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\" && id !== null) {\n throw new Error(\"Invalid id field\");\n }\n if (typeof data.error === \"undefined\" || !(0, compatibility_1.isJsonCompatibleDictionary)(data.error)) {\n throw new Error(\"Invalid error field\");\n }\n return {\n jsonrpc: \"2.0\",\n id: id,\n error: parseError(data.error),\n };\n}\nexports.parseJsonRpcErrorResponse = parseJsonRpcErrorResponse;\n/** Throws if data is not a JsonRpcSuccessResponse */\nfunction parseJsonRpcSuccessResponse(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`);\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\") {\n throw new Error(\"Invalid id field\");\n }\n if (typeof data.result === \"undefined\") {\n throw new Error(\"Invalid result field\");\n }\n const result = data.result;\n return {\n jsonrpc: \"2.0\",\n id: id,\n result: result,\n };\n}\nexports.parseJsonRpcSuccessResponse = parseJsonRpcSuccessResponse;\n/**\n * Returns a JsonRpcErrorResponse if input can be parsed as a JSON-RPC error. Otherwise parses\n * input as JsonRpcSuccessResponse. Throws if input is neither a valid error nor success response.\n */\nfunction parseJsonRpcResponse(data) {\n let response;\n try {\n response = parseJsonRpcErrorResponse(data);\n }\n catch (_) {\n response = parseJsonRpcSuccessResponse(data);\n }\n return response;\n}\nexports.parseJsonRpcResponse = parseJsonRpcResponse;\n//# sourceMappingURL=parse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = void 0;\nfunction isJsonRpcErrorResponse(response) {\n return typeof response.error === \"object\";\n}\nexports.isJsonRpcErrorResponse = isJsonRpcErrorResponse;\nfunction isJsonRpcSuccessResponse(response) {\n return !isJsonRpcErrorResponse(response);\n}\nexports.isJsonRpcSuccessResponse = isJsonRpcSuccessResponse;\n/**\n * Error codes as specified in JSON-RPC 2.0\n *\n * @see https://www.jsonrpc.org/specification#error_object\n */\nexports.jsonRpcCode = {\n parseError: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internalError: -32603,\n // server error (Reserved for implementation-defined server-errors.):\n // -32000 to -32099\n serverError: {\n default: -32000,\n },\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LedgerSigner = exports.LedgerConnector = void 0;\nvar ledgerconnector_1 = require(\"./ledgerconnector\");\nObject.defineProperty(exports, \"LedgerConnector\", { enumerable: true, get: function () { return ledgerconnector_1.LedgerConnector; } });\nvar ledgersigner_1 = require(\"./ledgersigner\");\nObject.defineProperty(exports, \"LedgerSigner\", { enumerable: true, get: function () { return ledgersigner_1.LedgerSigner; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LedgerConnector = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst ledger_cosmos_js_1 = __importDefault(require(\"ledger-cosmos-js\"));\nconst semver_1 = __importDefault(require(\"semver\"));\n/* eslint-enable */\nfunction unharden(hdPath) {\n return hdPath.map((n) => (n.isHardened() ? n.toNumber() - 2 ** 31 : n.toNumber()));\n}\nconst cosmosHdPath = (0, amino_1.makeCosmoshubPath)(0);\nconst cosmosBech32Prefix = \"cosmos\";\nconst cosmosLedgerAppName = \"Cosmos\";\nconst requiredCosmosAppVersion = \"1.5.3\";\nclass LedgerConnector {\n constructor(transport, options = {}) {\n var _a, _b, _c, _d, _e;\n const defaultOptions = {\n hdPaths: [cosmosHdPath],\n prefix: cosmosBech32Prefix,\n testModeAllowed: false,\n ledgerAppName: cosmosLedgerAppName,\n requiredLedgerAppVersion: requiredCosmosAppVersion,\n };\n this.testModeAllowed = (_a = options.testModeAllowed) !== null && _a !== void 0 ? _a : defaultOptions.testModeAllowed;\n this.hdPaths = (_b = options.hdPaths) !== null && _b !== void 0 ? _b : defaultOptions.hdPaths;\n this.prefix = (_c = options.prefix) !== null && _c !== void 0 ? _c : defaultOptions.prefix;\n this.ledgerAppName = (_d = options.ledgerAppName) !== null && _d !== void 0 ? _d : defaultOptions.ledgerAppName;\n this.minLedgerAppVersion = (_e = options.minLedgerAppVersion) !== null && _e !== void 0 ? _e : defaultOptions.requiredLedgerAppVersion;\n this.app = new ledger_cosmos_js_1.default(transport);\n }\n async getCosmosAppVersion() {\n await this.verifyCosmosAppIsOpen();\n (0, utils_1.assert)(this.app, `${this.ledgerAppName} Ledger App is not connected`);\n const response = await this.app.getVersion();\n this.handleLedgerErrors(response);\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { major, minor, patch, test_mode: testMode } = response;\n this.verifyAppMode(testMode);\n return `${major}.${minor}.${patch}`;\n }\n async getPubkey(hdPath) {\n await this.verifyDeviceIsReady();\n (0, utils_1.assert)(this.app, `${this.ledgerAppName} Ledger App is not connected`);\n const hdPathToUse = hdPath || this.hdPaths[0];\n // ledger-cosmos-js hardens the first three indices\n const response = await this.app.publicKey(unharden(hdPathToUse));\n this.handleLedgerErrors(response);\n return Uint8Array.from(response.compressed_pk);\n }\n async getPubkeys() {\n return this.hdPaths.reduce((promise, hdPath) => promise.then(async (pubkeys) => [...pubkeys, await this.getPubkey(hdPath)]), Promise.resolve([]));\n }\n async getCosmosAddress(pubkey) {\n const pubkeyToUse = pubkey || (await this.getPubkey());\n return (0, amino_1.pubkeyToAddress)((0, amino_1.encodeSecp256k1Pubkey)(pubkeyToUse), this.prefix);\n }\n async sign(message, hdPath) {\n await this.verifyDeviceIsReady();\n (0, utils_1.assert)(this.app, `${this.ledgerAppName} Ledger App is not connected`);\n const hdPathToUse = hdPath || this.hdPaths[0];\n // ledger-cosmos-js hardens the first three indices\n const response = await this.app.sign(unharden(hdPathToUse), (0, encoding_1.fromUtf8)(message));\n this.handleLedgerErrors(response, \"Transaction signing request was rejected by the user\");\n return crypto_1.Secp256k1Signature.fromDer(response.signature).toFixedLength();\n }\n verifyAppMode(testMode) {\n if (testMode && !this.testModeAllowed) {\n throw new Error(`DANGER: The ${this.ledgerAppName} Ledger app is in test mode and should not be used on mainnet!`);\n }\n }\n async getOpenAppName() {\n (0, utils_1.assert)(this.app, `${this.ledgerAppName} Ledger App is not connected`);\n const response = await this.app.appInfo();\n this.handleLedgerErrors(response);\n return response.appName;\n }\n async verifyAppVersion() {\n const version = await this.getCosmosAppVersion();\n if (!semver_1.default.gte(version, this.minLedgerAppVersion)) {\n throw new Error(`Outdated version: Please update ${this.ledgerAppName} Ledger App to the latest version.`);\n }\n }\n async verifyCosmosAppIsOpen() {\n const appName = await this.getOpenAppName();\n if (appName.toLowerCase() === `dashboard`) {\n throw new Error(`Please open the ${this.ledgerAppName} Ledger app on your Ledger device.`);\n }\n if (appName.toLowerCase() !== this.ledgerAppName.toLowerCase()) {\n throw new Error(`Please close ${appName} and open the ${this.ledgerAppName} Ledger app on your Ledger device.`);\n }\n }\n async verifyDeviceIsReady() {\n await this.verifyAppVersion();\n await this.verifyCosmosAppIsOpen();\n }\n /**\n * Shows the user's address in the device and returns an address/pubkey pair.\n *\n * The address will be shown with the native prefix of the app (e.g. cosmos, persistence, desmos)\n * and does not support the usage of other address prefixes.\n *\n * @param path The HD path to show the address for. If unset, this is the first account.\n */\n async showAddress(hdPath) {\n await this.verifyDeviceIsReady();\n const hdPathToUse = hdPath || this.hdPaths[0];\n // ledger-cosmos-js hardens the first three indices\n const response = await this.app.showAddressAndPubKey(unharden(hdPathToUse), this.prefix);\n this.handleLedgerErrors(response);\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { address, compressed_pk } = response;\n return {\n address: address,\n pubkey: (0, amino_1.encodeSecp256k1Pubkey)(compressed_pk),\n };\n }\n handleLedgerErrors(\n /* eslint-disable @typescript-eslint/naming-convention */\n { error_message: errorMessage = \"No errors\", device_locked: deviceLocked = false, }, \n /* eslint-enable */\n rejectionMessage = \"Request was rejected by the user\") {\n if (deviceLocked) {\n throw new Error(\"Ledger’s screensaver mode is on\");\n }\n switch (errorMessage) {\n case \"U2F: Timeout\":\n throw new Error(\"Connection timed out. Please try again.\");\n case \"Cosmos app does not seem to be open\":\n throw new Error(`${this.ledgerAppName} app is not open`);\n case \"Command not allowed\":\n throw new Error(\"Transaction rejected\");\n case \"Transaction rejected\":\n throw new Error(rejectionMessage);\n case \"Unknown Status Code: 26628\":\n throw new Error(\"Ledger’s screensaver mode is on\");\n case \"Instruction not supported\":\n throw new Error(`Your ${this.ledgerAppName} Ledger App is not up to date. Please update to version ${this.minLedgerAppVersion} or newer.`);\n case \"No errors\":\n break;\n default:\n throw new Error(`Ledger Native Error: ${errorMessage}`);\n }\n }\n}\nexports.LedgerConnector = LedgerConnector;\n//# sourceMappingURL=ledgerconnector.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LedgerSigner = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst ledgerconnector_1 = require(\"./ledgerconnector\");\nclass LedgerSigner {\n constructor(transport, options = {}) {\n this.hdPaths = options.hdPaths || [(0, amino_1.makeCosmoshubPath)(0)];\n this.connector = new ledgerconnector_1.LedgerConnector(transport, options);\n }\n async getAccounts() {\n if (!this.accounts) {\n const pubkeys = await this.connector.getPubkeys();\n this.accounts = await Promise.all(pubkeys.map(async (pubkey) => ({\n algo: \"secp256k1\",\n address: await this.connector.getCosmosAddress(pubkey),\n pubkey: pubkey,\n })));\n }\n return this.accounts;\n }\n /**\n * Shows the user's address in the device and returns an address/pubkey pair.\n *\n * The address will be shown with the native prefix of the app (e.g. cosmos, persistence, desmos)\n * and does not support the usage of other address prefixes.\n *\n * @param path The HD path to show the address for. If unset, this is the first account.\n */\n async showAddress(path) {\n return this.connector.showAddress(path);\n }\n async signAmino(signerAddress, signDoc) {\n const accounts = this.accounts || (await this.getAccounts());\n const accountIndex = accounts.findIndex((account) => account.address === signerAddress);\n if (accountIndex === -1) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const message = (0, amino_1.serializeSignDoc)(signDoc);\n const accountForAddress = accounts[accountIndex];\n const hdPath = this.hdPaths[accountIndex];\n const signature = await this.connector.sign(message, hdPath);\n return {\n signed: signDoc,\n signature: (0, amino_1.encodeSecp256k1Signature)(accountForAddress.pubkey, signature),\n };\n }\n}\nexports.LedgerSigner = LedgerSigner;\n//# sourceMappingURL=ledgersigner.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n constructor(atomics, fractionalDigits) {\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n/* eslint-disable no-bitwise */\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use mulitiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n toNumber() {\n return this.data;\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n toNumber() {\n return this.data.toNumber();\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch (_a) {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseCoins = void 0;\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * Takes a coins list like \"819966000ucosm,700000000ustake\" and parses it.\n *\n * This is a Stargate ready version of parseCoins from @cosmjs/amino.\n * It supports more denoms.\n */\nfunction parseCoins(input) {\n return input\n .replace(/\\s/g, \"\")\n .split(\",\")\n .filter(Boolean)\n .map((part) => {\n // Denom regex from Stargate (https://github.com/cosmos/cosmos-sdk/blob/v0.42.7/types/coin.go#L599-L601)\n const match = part.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/);\n if (!match)\n throw new Error(\"Got an invalid coin string\");\n return {\n amount: math_1.Uint64.fromString(match[1]).toString(),\n denom: match[2],\n };\n });\n}\nexports.parseCoins = parseCoins;\n//# sourceMappingURL=coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeTxRaw = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\n/**\n * Takes a serialized TxRaw (the bytes stored in Tendermint) and decodes it into something usable.\n */\nfunction decodeTxRaw(tx) {\n const txRaw = tx_1.TxRaw.decode(tx);\n return {\n authInfo: tx_1.AuthInfo.decode(txRaw.authInfoBytes),\n body: tx_1.TxBody.decode(txRaw.bodyBytes),\n signatures: txRaw.signatures,\n };\n}\nexports.decodeTxRaw = decodeTxRaw;\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSecp256k1HdWallet = exports.extractKdfConfiguration = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst signing_1 = require(\"./signing\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"directsecp256k1hdwallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, amino_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\n/** A wallet for protobuf based signing using SIGN_MODE_DIRECT */\nclass DirectSecp256k1HdWallet {\n constructor(mnemonic, options) {\n var _a, _b;\n const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : defaultOptions.prefix;\n const hdPaths = (_b = options.hdPaths) !== null && _b !== void 0 ? _b : defaultOptions.hdPaths;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix: prefix,\n }));\n }\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new DirectSecp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return DirectSecp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return DirectSecp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return DirectSecp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signDirect(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const signBytes = (0, signing_1.makeSignBytes)(signDoc);\n const hashedMessage = (0, crypto_1.sha256)(signBytes);\n const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n const stdSignature = (0, amino_1.encodeSecp256k1Signature)(pubkey, signatureBytes);\n return {\n signed: signDoc,\n signature: stdSignature,\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.DirectSecp256k1HdWallet = DirectSecp256k1HdWallet;\n//# sourceMappingURL=directsecp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSecp256k1Wallet = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst signing_1 = require(\"./signing\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use DirectSecp256k1HdWallet.\n */\nclass DirectSecp256k1Wallet {\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n /**\n * Creates a DirectSecp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new DirectSecp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signDirect(address, signDoc) {\n const signBytes = (0, signing_1.makeSignBytes)(signDoc);\n if (address !== this.address) {\n throw new Error(`Address ${address} not found in wallet`);\n }\n const hashedMessage = (0, crypto_1.sha256)(signBytes);\n const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n const stdSignature = (0, amino_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes);\n return {\n signed: signDoc,\n signature: stdSignature,\n };\n }\n}\nexports.DirectSecp256k1Wallet = DirectSecp256k1Wallet;\n//# sourceMappingURL=directsecp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coins = exports.coin = exports.executeKdf = exports.makeSignDoc = exports.makeSignBytes = exports.makeAuthInfoBytes = exports.isOfflineDirectSigner = exports.Registry = exports.isTxBodyEncodeObject = exports.isTsProtoGeneratedType = exports.isPbjsGeneratedType = exports.encodePubkey = exports.decodePubkey = exports.makeCosmoshubPath = exports.DirectSecp256k1Wallet = exports.extractKdfConfiguration = exports.DirectSecp256k1HdWallet = exports.decodeTxRaw = exports.parseCoins = void 0;\n// This type happens to be shared between Amino and Direct sign modes\nvar coins_1 = require(\"./coins\");\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return coins_1.parseCoins; } });\nvar decode_1 = require(\"./decode\");\nObject.defineProperty(exports, \"decodeTxRaw\", { enumerable: true, get: function () { return decode_1.decodeTxRaw; } });\nvar directsecp256k1hdwallet_1 = require(\"./directsecp256k1hdwallet\");\nObject.defineProperty(exports, \"DirectSecp256k1HdWallet\", { enumerable: true, get: function () { return directsecp256k1hdwallet_1.DirectSecp256k1HdWallet; } });\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return directsecp256k1hdwallet_1.extractKdfConfiguration; } });\nvar directsecp256k1wallet_1 = require(\"./directsecp256k1wallet\");\nObject.defineProperty(exports, \"DirectSecp256k1Wallet\", { enumerable: true, get: function () { return directsecp256k1wallet_1.DirectSecp256k1Wallet; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkey_1 = require(\"./pubkey\");\nObject.defineProperty(exports, \"decodePubkey\", { enumerable: true, get: function () { return pubkey_1.decodePubkey; } });\nObject.defineProperty(exports, \"encodePubkey\", { enumerable: true, get: function () { return pubkey_1.encodePubkey; } });\nvar registry_1 = require(\"./registry\");\nObject.defineProperty(exports, \"isPbjsGeneratedType\", { enumerable: true, get: function () { return registry_1.isPbjsGeneratedType; } });\nObject.defineProperty(exports, \"isTsProtoGeneratedType\", { enumerable: true, get: function () { return registry_1.isTsProtoGeneratedType; } });\nObject.defineProperty(exports, \"isTxBodyEncodeObject\", { enumerable: true, get: function () { return registry_1.isTxBodyEncodeObject; } });\nObject.defineProperty(exports, \"Registry\", { enumerable: true, get: function () { return registry_1.Registry; } });\nvar signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"isOfflineDirectSigner\", { enumerable: true, get: function () { return signer_1.isOfflineDirectSigner; } });\nvar signing_1 = require(\"./signing\");\nObject.defineProperty(exports, \"makeAuthInfoBytes\", { enumerable: true, get: function () { return signing_1.makeAuthInfoBytes; } });\nObject.defineProperty(exports, \"makeSignBytes\", { enumerable: true, get: function () { return signing_1.makeSignBytes; } });\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signing_1.makeSignDoc; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\nvar amino_1 = require(\"@cosmjs/amino\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return amino_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return amino_1.coins; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\nexports.makeCosmoshubPath = makeCosmoshubPath;\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodePubkey = exports.encodePubkey = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst keys_1 = require(\"cosmjs-types/cosmos/crypto/multisig/keys\");\nconst keys_2 = require(\"cosmjs-types/cosmos/crypto/secp256k1/keys\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nfunction encodePubkey(pubkey) {\n if ((0, amino_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyProto = keys_2.PubKey.fromPartial({\n key: (0, encoding_1.fromBase64)(pubkey.value),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.secp256k1.PubKey\",\n value: Uint8Array.from(keys_2.PubKey.encode(pubkeyProto).finish()),\n });\n }\n else if ((0, amino_1.isMultisigThresholdPubkey)(pubkey)) {\n const pubkeyProto = keys_1.LegacyAminoPubKey.fromPartial({\n threshold: math_1.Uint53.fromString(pubkey.value.threshold).toNumber(),\n publicKeys: pubkey.value.pubkeys.map(encodePubkey),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.multisig.LegacyAminoPubKey\",\n value: Uint8Array.from(keys_1.LegacyAminoPubKey.encode(pubkeyProto).finish()),\n });\n }\n else {\n throw new Error(`Pubkey type ${pubkey.type} not recognized`);\n }\n}\nexports.encodePubkey = encodePubkey;\nfunction decodeSinglePubkey(pubkey) {\n switch (pubkey.typeUrl) {\n case \"/cosmos.crypto.secp256k1.PubKey\": {\n const { key } = keys_2.PubKey.decode(pubkey.value);\n return (0, amino_1.encodeSecp256k1Pubkey)(key);\n }\n default:\n throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized as single public key type`);\n }\n}\nfunction decodePubkey(pubkey) {\n if (!pubkey || !pubkey.value) {\n return null;\n }\n switch (pubkey.typeUrl) {\n case \"/cosmos.crypto.secp256k1.PubKey\": {\n return decodeSinglePubkey(pubkey);\n }\n case \"/cosmos.crypto.multisig.LegacyAminoPubKey\": {\n const { threshold, publicKeys } = keys_1.LegacyAminoPubKey.decode(pubkey.value);\n const out = {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: threshold.toString(),\n pubkeys: publicKeys.map(decodeSinglePubkey),\n },\n };\n return out;\n }\n default:\n throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized`);\n }\n}\nexports.decodePubkey = decodePubkey;\n//# sourceMappingURL=pubkey.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Registry = exports.isTxBodyEncodeObject = exports.isPbjsGeneratedType = exports.isTsProtoGeneratedType = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst tx_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/tx\");\nconst coin_1 = require(\"cosmjs-types/cosmos/base/v1beta1/coin\");\nconst tx_2 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nfunction isTsProtoGeneratedType(type) {\n return typeof type.fromPartial === \"function\";\n}\nexports.isTsProtoGeneratedType = isTsProtoGeneratedType;\nfunction isPbjsGeneratedType(type) {\n return !isTsProtoGeneratedType(type);\n}\nexports.isPbjsGeneratedType = isPbjsGeneratedType;\nconst defaultTypeUrls = {\n cosmosCoin: \"/cosmos.base.v1beta1.Coin\",\n cosmosMsgSend: \"/cosmos.bank.v1beta1.MsgSend\",\n cosmosTxBody: \"/cosmos.tx.v1beta1.TxBody\",\n googleAny: \"/google.protobuf.Any\",\n};\nfunction isTxBodyEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.tx.v1beta1.TxBody\";\n}\nexports.isTxBodyEncodeObject = isTxBodyEncodeObject;\nclass Registry {\n /**\n * Creates a new Registry for mapping protobuf type identifiers/type URLs to\n * actual implementations. Those implementations are typically generated with ts-proto\n * but we also support protobuf.js as a type generator.\n *\n * If there is no parameter given, a `new Registry()` adds the types `Coin` and `MsgSend`\n * for historic reasons. Those can be overriden by customTypes.\n *\n * There are currently two methods for adding new types:\n * 1. Passing types to the constructor.\n * 2. Using the `register()` method\n */\n constructor(customTypes) {\n const { cosmosCoin, cosmosMsgSend } = defaultTypeUrls;\n this.types = customTypes\n ? new Map([...customTypes])\n : new Map([\n [cosmosCoin, coin_1.Coin],\n [cosmosMsgSend, tx_1.MsgSend],\n ]);\n }\n register(typeUrl, type) {\n this.types.set(typeUrl, type);\n }\n /**\n * Looks up a type that was previously added to the registry.\n *\n * The generator information (ts-proto or pbjs) gets lost along the way.\n * If you need to work with the result type in TypeScript, you can use:\n *\n * ```\n * import { assert } from \"@cosmjs/utils\";\n *\n * const Coin = registry.lookupType(\"/cosmos.base.v1beta1.Coin\");\n * assert(Coin); // Ensures not unset\n * assert(isTsProtoGeneratedType(Coin)); // Ensures this is the type we expect\n *\n * // Coin is typed TsProtoGeneratedType now.\n * ```\n */\n lookupType(typeUrl) {\n return this.types.get(typeUrl);\n }\n lookupTypeWithError(typeUrl) {\n const type = this.lookupType(typeUrl);\n if (!type) {\n throw new Error(`Unregistered type url: ${typeUrl}`);\n }\n return type;\n }\n /**\n * Takes a typeUrl/value pair and encodes the value to protobuf if\n * the given type was previously registered.\n *\n * If the value has to be wrapped in an Any, this needs to be done\n * manually after this call. Or use `encodeAsAny` instead.\n */\n encode(encodeObject) {\n const { value, typeUrl } = encodeObject;\n if (isTxBodyEncodeObject(encodeObject)) {\n return this.encodeTxBody(value);\n }\n const type = this.lookupTypeWithError(typeUrl);\n const instance = isTsProtoGeneratedType(type) ? type.fromPartial(value) : type.create(value);\n return type.encode(instance).finish();\n }\n /**\n * Takes a typeUrl/value pair and encodes the value to an Any if\n * the given type was previously registered.\n */\n encodeAsAny(encodeObject) {\n const binaryValue = this.encode(encodeObject);\n return any_1.Any.fromPartial({\n typeUrl: encodeObject.typeUrl,\n value: binaryValue,\n });\n }\n encodeTxBody(txBodyFields) {\n const wrappedMessages = txBodyFields.messages.map((message) => this.encodeAsAny(message));\n const txBody = tx_2.TxBody.fromPartial({\n ...txBodyFields,\n messages: wrappedMessages,\n });\n return tx_2.TxBody.encode(txBody).finish();\n }\n decode({ typeUrl, value }) {\n if (typeUrl === defaultTypeUrls.cosmosTxBody) {\n return this.decodeTxBody(value);\n }\n const type = this.lookupTypeWithError(typeUrl);\n const decoded = type.decode(value);\n Object.entries(decoded).forEach(([key, val]) => {\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\" && Buffer.isBuffer(val)) {\n decoded[key] = Uint8Array.from(val);\n }\n });\n return decoded;\n }\n decodeTxBody(txBody) {\n const decodedTxBody = tx_2.TxBody.decode(txBody);\n return {\n ...decodedTxBody,\n messages: decodedTxBody.messages.map(({ typeUrl: typeUrl, value }) => {\n if (!typeUrl) {\n throw new Error(\"Missing type_url in Any\");\n }\n if (!value) {\n throw new Error(\"Missing value in Any\");\n }\n return this.decode({ typeUrl, value });\n }),\n };\n }\n}\nexports.Registry = Registry;\n//# sourceMappingURL=registry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isOfflineDirectSigner = void 0;\nfunction isOfflineDirectSigner(signer) {\n return signer.signDirect !== undefined;\n}\nexports.isOfflineDirectSigner = isOfflineDirectSigner;\n//# sourceMappingURL=signer.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeSignBytes = exports.makeSignDoc = exports.makeAuthInfoBytes = void 0;\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\n/**\n * Create signer infos from the provided signers.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeSignerInfos(signers, signMode) {\n return signers.map(({ pubkey, sequence }) => ({\n publicKey: pubkey,\n modeInfo: {\n single: { mode: signMode },\n },\n sequence: long_1.default.fromNumber(sequence),\n }));\n}\n/**\n * Creates and serializes an AuthInfo document.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeAuthInfoBytes(signers, feeAmount, gasLimit, signMode = signing_1.SignMode.SIGN_MODE_DIRECT) {\n const authInfo = {\n signerInfos: makeSignerInfos(signers, signMode),\n fee: {\n amount: [...feeAmount],\n gasLimit: long_1.default.fromNumber(gasLimit),\n },\n };\n return tx_1.AuthInfo.encode(tx_1.AuthInfo.fromPartial(authInfo)).finish();\n}\nexports.makeAuthInfoBytes = makeAuthInfoBytes;\nfunction makeSignDoc(bodyBytes, authInfoBytes, chainId, accountNumber) {\n return {\n bodyBytes: bodyBytes,\n authInfoBytes: authInfoBytes,\n chainId: chainId,\n accountNumber: long_1.default.fromNumber(accountNumber),\n };\n}\nexports.makeSignDoc = makeSignDoc;\nfunction makeSignBytes({ accountNumber, authInfoBytes, bodyBytes, chainId }) {\n const signDoc = tx_1.SignDoc.fromPartial({\n accountNumber: accountNumber,\n authInfoBytes: authInfoBytes,\n bodyBytes: bodyBytes,\n chainId: chainId,\n });\n return tx_1.SignDoc.encode(signDoc).finish();\n}\nexports.makeSignBytes = makeSignBytes;\n//# sourceMappingURL=signing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = exports.supportedAlgorithms = exports.executeKdf = exports.cosmjsSalt = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.executeKdf = executeKdf;\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\nexports.encrypt = encrypt;\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\nexports.decrypt = decrypt;\n//# sourceMappingURL=wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingSocket = exports.SocketWrapper = exports.ReconnectingSocket = exports.QueueingStreamingSocket = exports.ConnectionStatus = void 0;\nvar queueingstreamingsocket_1 = require(\"./queueingstreamingsocket\");\nObject.defineProperty(exports, \"ConnectionStatus\", { enumerable: true, get: function () { return queueingstreamingsocket_1.ConnectionStatus; } });\nObject.defineProperty(exports, \"QueueingStreamingSocket\", { enumerable: true, get: function () { return queueingstreamingsocket_1.QueueingStreamingSocket; } });\nvar reconnectingsocket_1 = require(\"./reconnectingsocket\");\nObject.defineProperty(exports, \"ReconnectingSocket\", { enumerable: true, get: function () { return reconnectingsocket_1.ReconnectingSocket; } });\nvar socketwrapper_1 = require(\"./socketwrapper\");\nObject.defineProperty(exports, \"SocketWrapper\", { enumerable: true, get: function () { return socketwrapper_1.SocketWrapper; } });\nvar streamingsocket_1 = require(\"./streamingsocket\");\nObject.defineProperty(exports, \"StreamingSocket\", { enumerable: true, get: function () { return streamingsocket_1.StreamingSocket; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueueingStreamingSocket = exports.ConnectionStatus = void 0;\nconst stream_1 = require(\"@cosmjs/stream\");\nconst xstream_1 = require(\"xstream\");\nconst streamingsocket_1 = require(\"./streamingsocket\");\nvar ConnectionStatus;\n(function (ConnectionStatus) {\n ConnectionStatus[ConnectionStatus[\"Unconnected\"] = 0] = \"Unconnected\";\n ConnectionStatus[ConnectionStatus[\"Connecting\"] = 1] = \"Connecting\";\n ConnectionStatus[ConnectionStatus[\"Connected\"] = 2] = \"Connected\";\n ConnectionStatus[ConnectionStatus[\"Disconnected\"] = 3] = \"Disconnected\";\n})(ConnectionStatus = exports.ConnectionStatus || (exports.ConnectionStatus = {}));\n/**\n * A wrapper around StreamingSocket that can queue requests.\n */\nclass QueueingStreamingSocket {\n constructor(url, timeout = 10000, reconnectedHandler) {\n this.queue = [];\n this.isProcessingQueue = false;\n this.url = url;\n this.timeout = timeout;\n this.reconnectedHandler = reconnectedHandler;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n this.connectionStatusProducer = new stream_1.DefaultValueProducer(ConnectionStatus.Unconnected);\n this.connectionStatus = new stream_1.ValueAndUpdates(this.connectionStatusProducer);\n this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout);\n this.socket.events.subscribe({\n next: (event) => {\n if (!this.eventProducerListener)\n throw new Error(\"No event producer listener set\");\n this.eventProducerListener.next(event);\n },\n error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected),\n });\n }\n connect() {\n this.connectionStatusProducer.update(ConnectionStatus.Connecting);\n this.socket.connected.then(async () => {\n this.connectionStatusProducer.update(ConnectionStatus.Connected);\n return this.processQueue();\n }, () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected));\n this.socket.connect();\n }\n disconnect() {\n this.connectionStatusProducer.update(ConnectionStatus.Disconnected);\n this.socket.disconnect();\n }\n reconnect() {\n this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout);\n this.socket.events.subscribe({\n next: (event) => {\n if (!this.eventProducerListener)\n throw new Error(\"No event producer listener set\");\n this.eventProducerListener.next(event);\n },\n error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected),\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.socket.connected.then(() => {\n if (this.reconnectedHandler) {\n this.reconnectedHandler();\n }\n });\n this.connect();\n }\n getQueueLength() {\n return this.queue.length;\n }\n queueRequest(request) {\n this.queue.push(request);\n // We don’t need to wait for the queue to be processed.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.processQueue();\n }\n async processQueue() {\n if (this.isProcessingQueue || this.connectionStatus.value !== ConnectionStatus.Connected) {\n return;\n }\n this.isProcessingQueue = true;\n let request;\n while ((request = this.queue.shift())) {\n try {\n await this.socket.send(request);\n this.isProcessingQueue = false;\n }\n catch (error) {\n // Probably the connection is down; will try again automatically when reconnected.\n this.queue.unshift(request);\n this.isProcessingQueue = false;\n return;\n }\n }\n }\n}\nexports.QueueingStreamingSocket = QueueingStreamingSocket;\n//# sourceMappingURL=queueingstreamingsocket.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReconnectingSocket = void 0;\nconst xstream_1 = require(\"xstream\");\nconst queueingstreamingsocket_1 = require(\"./queueingstreamingsocket\");\n/**\n * A wrapper around QueueingStreamingSocket that reconnects automatically.\n */\nclass ReconnectingSocket {\n constructor(url, timeout = 10000, reconnectedHandler) {\n this.unconnected = true;\n this.disconnected = false;\n this.timeoutIndex = 0;\n this.reconnectTimeout = null;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n this.socket = new queueingstreamingsocket_1.QueueingStreamingSocket(url, timeout, reconnectedHandler);\n this.socket.events.subscribe({\n next: (event) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.next(event);\n }\n },\n error: (error) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.error(error);\n }\n },\n });\n this.connectionStatus = this.socket.connectionStatus;\n this.connectionStatus.updates.subscribe({\n next: (status) => {\n if (status === queueingstreamingsocket_1.ConnectionStatus.Connected) {\n this.timeoutIndex = 0;\n }\n if (status === queueingstreamingsocket_1.ConnectionStatus.Disconnected) {\n if (this.reconnectTimeout) {\n clearTimeout(this.reconnectTimeout);\n this.reconnectTimeout = null;\n }\n this.reconnectTimeout = setTimeout(() => this.socket.reconnect(), ReconnectingSocket.calculateTimeout(this.timeoutIndex++));\n }\n },\n });\n }\n /** Starts with a 0.1 second timeout, then doubles every attempt with a maximum timeout of 5 seconds. */\n static calculateTimeout(index) {\n return Math.min(2 ** index * 100, 5000);\n }\n connect() {\n if (!this.unconnected) {\n throw new Error(\"Cannot connect: socket has already connected\");\n }\n this.socket.connect();\n this.unconnected = false;\n }\n disconnect() {\n if (this.unconnected) {\n throw new Error(\"Cannot disconnect: socket has not yet connected\");\n }\n this.socket.disconnect();\n if (this.eventProducerListener) {\n this.eventProducerListener.complete();\n }\n this.disconnected = true;\n }\n queueRequest(request) {\n if (this.disconnected) {\n throw new Error(\"Cannot queue request: socket has disconnected\");\n }\n this.socket.queueRequest(request);\n }\n}\nexports.ReconnectingSocket = ReconnectingSocket;\n//# sourceMappingURL=reconnectingsocket.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SocketWrapper = void 0;\nconst isomorphic_ws_1 = __importDefault(require(\"isomorphic-ws\"));\nfunction environmentIsNodeJs() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\n/**\n * A thin wrapper around isomorphic-ws' WebSocket class that adds\n * - constant message/error/open/close handlers\n * - explict connection via a connect() method\n * - type support for events\n * - handling of corner cases in the open and close behaviour\n */\nclass SocketWrapper {\n constructor(url, messageHandler, errorHandler, openHandler, closeHandler, timeout = 10000) {\n this.closed = false;\n this.connected = new Promise((resolve, reject) => {\n this.connectedResolver = resolve;\n this.connectedRejecter = reject;\n });\n this.url = url;\n this.messageHandler = messageHandler;\n this.errorHandler = errorHandler;\n this.openHandler = openHandler;\n this.closeHandler = closeHandler;\n this.timeout = timeout;\n }\n /**\n * returns a promise that resolves when connection is open\n */\n connect() {\n const socket = new isomorphic_ws_1.default(this.url);\n socket.onerror = (error) => {\n this.clearTimeout();\n if (this.errorHandler) {\n this.errorHandler(error);\n }\n };\n socket.onmessage = (messageEvent) => {\n this.messageHandler({\n type: messageEvent.type,\n data: messageEvent.data,\n });\n };\n socket.onopen = (_) => {\n this.clearTimeout();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.connectedResolver();\n if (this.openHandler) {\n this.openHandler();\n }\n };\n socket.onclose = (closeEvent) => {\n this.closed = true;\n if (this.closeHandler) {\n this.closeHandler(closeEvent);\n }\n };\n const started = Date.now();\n this.timeoutId = setTimeout(() => {\n socket.onmessage = () => 0;\n socket.onerror = () => 0;\n socket.onopen = () => 0;\n socket.onclose = () => 0;\n socket.close();\n this.socket = undefined;\n const elapsed = Math.floor(Date.now() - started);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.connectedRejecter(`Connection attempt timed out after ${elapsed} ms`);\n }, this.timeout);\n this.socket = socket;\n }\n /**\n * Closes an established connection and aborts other connection states\n */\n disconnect() {\n if (!this.socket) {\n throw new Error(\"Socket undefined. This must be called after connecting.\");\n }\n this.clearTimeout();\n switch (this.socket.readyState) {\n case isomorphic_ws_1.default.OPEN:\n this.socket.close(1000 /* Normal Closure */);\n break;\n case isomorphic_ws_1.default.CLOSED:\n // nothing to be done\n break;\n case isomorphic_ws_1.default.CONNECTING:\n // imitate missing abort API\n this.socket.onopen = () => 0;\n this.socket.onclose = () => 0;\n this.socket.onerror = () => 0;\n this.socket.onmessage = () => 0;\n this.socket = undefined;\n if (this.closeHandler) {\n this.closeHandler({ wasClean: false, code: 4001 });\n }\n break;\n case isomorphic_ws_1.default.CLOSING:\n // already closing. Let it proceed\n break;\n default:\n throw new Error(`Unknown readyState: ${this.socket.readyState}`);\n }\n }\n async send(data) {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n throw new Error(\"Socket undefined. This must be called after connecting.\");\n }\n if (this.closed) {\n throw new Error(\"Socket was closed, so no data can be sent anymore.\");\n }\n // this exception should be thrown by send() automatically according to\n // https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers\n if (this.socket.readyState !== isomorphic_ws_1.default.OPEN) {\n throw new Error(\"Websocket is not open\");\n }\n if (environmentIsNodeJs()) {\n this.socket.send(data, (err) => (err ? reject(err) : resolve()));\n }\n else {\n // Browser websocket send method does not accept a callback\n this.socket.send(data);\n resolve();\n }\n });\n }\n /**\n * Clears the timeout function, such that no timeout error will be raised anymore. This should be\n * called when the connection is established, a connection error occurred or the socket is disconnected.\n *\n * This method must not be called before `connect()`.\n * This method is idempotent.\n */\n clearTimeout() {\n if (!this.timeoutId) {\n throw new Error(\"Timeout ID not set. This should not happen and usually means connect() was not called.\");\n }\n // Note: do not unset this.timeoutId to allow multiple calls to this function\n clearTimeout(this.timeoutId);\n }\n}\nexports.SocketWrapper = SocketWrapper;\n//# sourceMappingURL=socketwrapper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingSocket = void 0;\nconst xstream_1 = require(\"xstream\");\nconst socketwrapper_1 = require(\"./socketwrapper\");\n/**\n * A WebSocket wrapper that exposes all events as a stream.\n *\n * This underlying socket will not be closed when the stream has no listeners\n */\nclass StreamingSocket {\n constructor(url, timeout = 10000) {\n this.socket = new socketwrapper_1.SocketWrapper(url, (event) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.next(event);\n }\n }, (errorEvent) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.error(errorEvent);\n }\n }, () => {\n // socket opened\n }, (closeEvent) => {\n if (this.eventProducerListener) {\n if (closeEvent.wasClean) {\n this.eventProducerListener.complete();\n }\n else {\n this.eventProducerListener.error(\"Socket was closed unclean\");\n }\n }\n }, timeout);\n this.connected = this.socket.connected;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n }\n connect() {\n this.socket.connect();\n }\n disconnect() {\n this.socket.disconnect();\n }\n async send(data) {\n return this.socket.send(data);\n }\n}\nexports.StreamingSocket = StreamingSocket;\n//# sourceMappingURL=streamingsocket.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.accountFromAny = void 0;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst auth_1 = require(\"cosmjs-types/cosmos/auth/v1beta1/auth\");\nconst vesting_1 = require(\"cosmjs-types/cosmos/vesting/v1beta1/vesting\");\nfunction uint64FromProto(input) {\n return math_1.Uint64.fromString(input.toString());\n}\nfunction accountFromBaseAccount(input) {\n const { address, pubKey, accountNumber, sequence } = input;\n const pubkey = (0, proto_signing_1.decodePubkey)(pubKey);\n return {\n address: address,\n pubkey: pubkey,\n accountNumber: uint64FromProto(accountNumber).toNumber(),\n sequence: uint64FromProto(sequence).toNumber(),\n };\n}\n/**\n * Takes an `Any` encoded account from the chain and extracts some common\n * `Account` information from it. This is supposed to support the most relevant\n * common Cosmos SDK account types. If you need support for exotic account types,\n * you'll need to write your own account decoder.\n */\nfunction accountFromAny(input) {\n var _a, _b, _c, _d, _e, _f, _g;\n const { typeUrl, value } = input;\n switch (typeUrl) {\n // auth\n case \"/cosmos.auth.v1beta1.BaseAccount\":\n return accountFromBaseAccount(auth_1.BaseAccount.decode(value));\n case \"/cosmos.auth.v1beta1.ModuleAccount\": {\n const baseAccount = auth_1.ModuleAccount.decode(value).baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n // vesting\n case \"/cosmos.vesting.v1beta1.BaseVestingAccount\": {\n const baseAccount = (_a = vesting_1.BaseVestingAccount.decode(value)) === null || _a === void 0 ? void 0 : _a.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.ContinuousVestingAccount\": {\n const baseAccount = (_c = (_b = vesting_1.ContinuousVestingAccount.decode(value)) === null || _b === void 0 ? void 0 : _b.baseVestingAccount) === null || _c === void 0 ? void 0 : _c.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.DelayedVestingAccount\": {\n const baseAccount = (_e = (_d = vesting_1.DelayedVestingAccount.decode(value)) === null || _d === void 0 ? void 0 : _d.baseVestingAccount) === null || _e === void 0 ? void 0 : _e.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.PeriodicVestingAccount\": {\n const baseAccount = (_g = (_f = vesting_1.PeriodicVestingAccount.decode(value)) === null || _f === void 0 ? void 0 : _f.baseVestingAccount) === null || _g === void 0 ? void 0 : _g.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n default:\n throw new Error(`Unsupported type: '${typeUrl}'`);\n }\n}\nexports.accountFromAny = accountFromAny;\n//# sourceMappingURL=accounts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgTransfer = exports.isAminoMsgUndelegate = exports.isAminoMsgBeginRedelegate = exports.isAminoMsgDelegate = exports.isAminoMsgEditValidator = exports.isAminoMsgCreateValidator = exports.isAminoMsgUnjail = exports.isAminoMsgDeposit = exports.isAminoMsgVote = exports.isAminoMsgSubmitProposal = exports.isAminoMsgSubmitEvidence = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgVerifyInvariant = exports.isAminoMsgMultiSend = exports.isAminoMsgSend = void 0;\nfunction isAminoMsgSend(msg) {\n return msg.type === \"cosmos-sdk/MsgSend\";\n}\nexports.isAminoMsgSend = isAminoMsgSend;\nfunction isAminoMsgMultiSend(msg) {\n return msg.type === \"cosmos-sdk/MsgMultiSend\";\n}\nexports.isAminoMsgMultiSend = isAminoMsgMultiSend;\nfunction isAminoMsgVerifyInvariant(msg) {\n return msg.type === \"cosmos-sdk/MsgVerifyInvariant\";\n}\nexports.isAminoMsgVerifyInvariant = isAminoMsgVerifyInvariant;\nfunction isAminoMsgSetWithdrawAddress(msg) {\n // NOTE: Type string and names diverge here!\n return msg.type === \"cosmos-sdk/MsgModifyWithdrawAddress\";\n}\nexports.isAminoMsgSetWithdrawAddress = isAminoMsgSetWithdrawAddress;\nfunction isAminoMsgWithdrawDelegatorReward(msg) {\n // NOTE: Type string and names diverge here!\n return msg.type === \"cosmos-sdk/MsgWithdrawDelegationReward\";\n}\nexports.isAminoMsgWithdrawDelegatorReward = isAminoMsgWithdrawDelegatorReward;\nfunction isAminoMsgWithdrawValidatorCommission(msg) {\n return msg.type === \"cosmos-sdk/MsgWithdrawValidatorCommission\";\n}\nexports.isAminoMsgWithdrawValidatorCommission = isAminoMsgWithdrawValidatorCommission;\nfunction isAminoMsgFundCommunityPool(msg) {\n return msg.type === \"cosmos-sdk/MsgFundCommunityPool\";\n}\nexports.isAminoMsgFundCommunityPool = isAminoMsgFundCommunityPool;\nfunction isAminoMsgSubmitEvidence(msg) {\n return msg.type === \"cosmos-sdk/MsgSubmitEvidence\";\n}\nexports.isAminoMsgSubmitEvidence = isAminoMsgSubmitEvidence;\nfunction isAminoMsgSubmitProposal(msg) {\n return msg.type === \"cosmos-sdk/MsgSubmitProposal\";\n}\nexports.isAminoMsgSubmitProposal = isAminoMsgSubmitProposal;\nfunction isAminoMsgVote(msg) {\n return msg.type === \"cosmos-sdk/MsgVote\";\n}\nexports.isAminoMsgVote = isAminoMsgVote;\nfunction isAminoMsgDeposit(msg) {\n return msg.type === \"cosmos-sdk/MsgDeposit\";\n}\nexports.isAminoMsgDeposit = isAminoMsgDeposit;\nfunction isAminoMsgUnjail(msg) {\n return msg.type === \"cosmos-sdk/MsgUnjail\";\n}\nexports.isAminoMsgUnjail = isAminoMsgUnjail;\nfunction isAminoMsgCreateValidator(msg) {\n return msg.type === \"cosmos-sdk/MsgCreateValidator\";\n}\nexports.isAminoMsgCreateValidator = isAminoMsgCreateValidator;\nfunction isAminoMsgEditValidator(msg) {\n return msg.type === \"cosmos-sdk/MsgEditValidator\";\n}\nexports.isAminoMsgEditValidator = isAminoMsgEditValidator;\nfunction isAminoMsgDelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgDelegate\";\n}\nexports.isAminoMsgDelegate = isAminoMsgDelegate;\nfunction isAminoMsgBeginRedelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgBeginRedelegate\";\n}\nexports.isAminoMsgBeginRedelegate = isAminoMsgBeginRedelegate;\nfunction isAminoMsgUndelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgUndelegate\";\n}\nexports.isAminoMsgUndelegate = isAminoMsgUndelegate;\nfunction isAminoMsgTransfer(msg) {\n return msg.type === \"cosmos-sdk/MsgTransfer\";\n}\nexports.isAminoMsgTransfer = isAminoMsgTransfer;\n//# sourceMappingURL=aminomsgs.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AminoTypes = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst gov_1 = require(\"cosmjs-types/cosmos/gov/v1beta1/gov\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nconst long_1 = __importDefault(require(\"long\"));\nfunction omitDefault(input) {\n if (typeof input === \"string\") {\n return input === \"\" ? undefined : input;\n }\n if (typeof input === \"number\") {\n return input === 0 ? undefined : input;\n }\n if (long_1.default.isLong(input)) {\n return input.isZero() ? undefined : input;\n }\n throw new Error(`Got unsupported type '${typeof input}'`);\n}\nfunction createDefaultTypes(prefix) {\n return {\n // authz\n \"/cosmos.authz.v1beta1.MsgGrant\": \"not_supported_by_chain\",\n \"/cosmos.authz.v1beta1.MsgExec\": \"not_supported_by_chain\",\n \"/cosmos.authz.v1beta1.MsgRevoke\": \"not_supported_by_chain\",\n // bank\n \"/cosmos.bank.v1beta1.MsgSend\": {\n aminoType: \"cosmos-sdk/MsgSend\",\n toAmino: ({ fromAddress, toAddress, amount }) => ({\n from_address: fromAddress,\n to_address: toAddress,\n amount: [...amount],\n }),\n fromAmino: ({ from_address, to_address, amount }) => ({\n fromAddress: from_address,\n toAddress: to_address,\n amount: [...amount],\n }),\n },\n \"/cosmos.bank.v1beta1.MsgMultiSend\": {\n aminoType: \"cosmos-sdk/MsgMultiSend\",\n toAmino: ({ inputs, outputs }) => ({\n inputs: inputs.map((input) => ({\n address: input.address,\n coins: [...input.coins],\n })),\n outputs: outputs.map((output) => ({\n address: output.address,\n coins: [...output.coins],\n })),\n }),\n fromAmino: ({ inputs, outputs }) => ({\n inputs: inputs.map((input) => ({\n address: input.address,\n coins: [...input.coins],\n })),\n outputs: outputs.map((output) => ({\n address: output.address,\n coins: [...output.coins],\n })),\n }),\n },\n // distribution\n \"/cosmos.distribution.v1beta1.MsgFundCommunityPool\": {\n aminoType: \"cosmos-sdk/MsgFundCommunityPool\",\n toAmino: ({ amount, depositor }) => ({\n amount: [...amount],\n depositor: depositor,\n }),\n fromAmino: ({ amount, depositor }) => ({\n amount: [...amount],\n depositor: depositor,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\": {\n aminoType: \"cosmos-sdk/MsgModifyWithdrawAddress\",\n toAmino: ({ delegatorAddress, withdrawAddress, }) => ({\n delegator_address: delegatorAddress,\n withdraw_address: withdrawAddress,\n }),\n fromAmino: ({ delegator_address, withdraw_address, }) => ({\n delegatorAddress: delegator_address,\n withdrawAddress: withdraw_address,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\": {\n aminoType: \"cosmos-sdk/MsgWithdrawDelegationReward\",\n toAmino: ({ delegatorAddress, validatorAddress, }) => ({\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n }),\n fromAmino: ({ delegator_address, validator_address, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\": {\n aminoType: \"cosmos-sdk/MsgWithdrawValidatorCommission\",\n toAmino: ({ validatorAddress, }) => ({\n validator_address: validatorAddress,\n }),\n fromAmino: ({ validator_address, }) => ({\n validatorAddress: validator_address,\n }),\n },\n // gov\n \"/cosmos.gov.v1beta1.MsgDeposit\": {\n aminoType: \"cosmos-sdk/MsgDeposit\",\n toAmino: ({ amount, depositor, proposalId }) => {\n return {\n amount,\n depositor,\n proposal_id: proposalId.toString(),\n };\n },\n fromAmino: ({ amount, depositor, proposal_id }) => {\n return {\n amount: Array.from(amount),\n depositor,\n proposalId: long_1.default.fromString(proposal_id),\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgVote\": {\n aminoType: \"cosmos-sdk/MsgVote\",\n toAmino: ({ option, proposalId, voter }) => {\n return {\n option: option,\n proposal_id: proposalId.toString(),\n voter: voter,\n };\n },\n fromAmino: ({ option, proposal_id, voter }) => {\n return {\n option: (0, gov_1.voteOptionFromJSON)(option),\n proposalId: long_1.default.fromString(proposal_id),\n voter: voter,\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgSubmitProposal\": {\n aminoType: \"cosmos-sdk/MsgSubmitProposal\",\n toAmino: ({ initialDeposit, proposer, content, }) => {\n (0, utils_1.assertDefinedAndNotNull)(content);\n let proposal;\n switch (content.typeUrl) {\n case \"/cosmos.gov.v1beta1.TextProposal\": {\n const textProposal = gov_1.TextProposal.decode(content.value);\n proposal = {\n type: \"cosmos-sdk/TextProposal\",\n value: {\n description: textProposal.description,\n title: textProposal.title,\n },\n };\n break;\n }\n default:\n throw new Error(`Unsupported proposal type: '${content.typeUrl}'`);\n }\n return {\n initial_deposit: initialDeposit,\n proposer: proposer,\n content: proposal,\n };\n },\n fromAmino: ({ initial_deposit, proposer, content, }) => {\n let any_content;\n switch (content.type) {\n case \"cosmos-sdk/TextProposal\": {\n const { value } = content;\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(value));\n const { title, description } = value;\n (0, utils_1.assert)(typeof title === \"string\");\n (0, utils_1.assert)(typeof description === \"string\");\n any_content = any_1.Any.fromPartial({\n typeUrl: \"/cosmos.gov.v1beta1.TextProposal\",\n value: gov_1.TextProposal.encode(gov_1.TextProposal.fromPartial({\n title: title,\n description: description,\n })).finish(),\n });\n break;\n }\n default:\n throw new Error(`Unsupported proposal type: '${content.type}'`);\n }\n return {\n initialDeposit: Array.from(initial_deposit),\n proposer: proposer,\n content: any_content,\n };\n },\n },\n // staking\n \"/cosmos.staking.v1beta1.MsgBeginRedelegate\": {\n aminoType: \"cosmos-sdk/MsgBeginRedelegate\",\n toAmino: ({ delegatorAddress, validatorSrcAddress, validatorDstAddress, amount, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_src_address: validatorSrcAddress,\n validator_dst_address: validatorDstAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_src_address, validator_dst_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorSrcAddress: validator_src_address,\n validatorDstAddress: validator_dst_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgCreateValidator\": {\n aminoType: \"cosmos-sdk/MsgCreateValidator\",\n toAmino: ({ description, commission, minSelfDelegation, delegatorAddress, validatorAddress, pubkey, value, }) => {\n (0, utils_1.assertDefinedAndNotNull)(description, \"missing description\");\n (0, utils_1.assertDefinedAndNotNull)(commission, \"missing commission\");\n (0, utils_1.assertDefinedAndNotNull)(pubkey, \"missing pubkey\");\n (0, utils_1.assertDefinedAndNotNull)(value, \"missing value\");\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n security_contact: description.securityContact,\n details: description.details,\n },\n commission: {\n rate: commission.rate,\n max_rate: commission.maxRate,\n max_change_rate: commission.maxChangeRate,\n },\n min_self_delegation: minSelfDelegation,\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n pubkey: (0, amino_1.encodeBech32Pubkey)({\n type: \"tendermint/PubKeySecp256k1\",\n value: (0, encoding_1.toBase64)(pubkey.value),\n }, prefix),\n value: value,\n };\n },\n fromAmino: ({ description, commission, min_self_delegation, delegator_address, validator_address, pubkey, value, }) => {\n const decodedPubkey = (0, amino_1.decodeBech32Pubkey)(pubkey);\n if (decodedPubkey.type !== \"tendermint/PubKeySecp256k1\") {\n throw new Error(\"Only Secp256k1 public keys are supported\");\n }\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n securityContact: description.security_contact,\n details: description.details,\n },\n commission: {\n rate: commission.rate,\n maxRate: commission.max_rate,\n maxChangeRate: commission.max_change_rate,\n },\n minSelfDelegation: min_self_delegation,\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n pubkey: {\n typeUrl: \"/cosmos.crypto.secp256k1.PubKey\",\n value: (0, encoding_1.fromBase64)(decodedPubkey.value),\n },\n value: value,\n };\n },\n },\n \"/cosmos.staking.v1beta1.MsgDelegate\": {\n aminoType: \"cosmos-sdk/MsgDelegate\",\n toAmino: ({ delegatorAddress, validatorAddress, amount }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgEditValidator\": {\n aminoType: \"cosmos-sdk/MsgEditValidator\",\n toAmino: ({ description, commissionRate, minSelfDelegation, validatorAddress, }) => {\n (0, utils_1.assertDefinedAndNotNull)(description, \"missing description\");\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n security_contact: description.securityContact,\n details: description.details,\n },\n commission_rate: commissionRate,\n min_self_delegation: minSelfDelegation,\n validator_address: validatorAddress,\n };\n },\n fromAmino: ({ description, commission_rate, min_self_delegation, validator_address, }) => ({\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n securityContact: description.security_contact,\n details: description.details,\n },\n commissionRate: commission_rate,\n minSelfDelegation: min_self_delegation,\n validatorAddress: validator_address,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgUndelegate\": {\n aminoType: \"cosmos-sdk/MsgUndelegate\",\n toAmino: ({ delegatorAddress, validatorAddress, amount, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n }),\n },\n // ibc\n \"/ibc.applications.transfer.v1.MsgTransfer\": {\n aminoType: \"cosmos-sdk/MsgTransfer\",\n toAmino: ({ sourcePort, sourceChannel, token, sender, receiver, timeoutHeight, timeoutTimestamp, }) => {\n var _a, _b, _c;\n return ({\n source_port: sourcePort,\n source_channel: sourceChannel,\n token: token,\n sender: sender,\n receiver: receiver,\n timeout_height: timeoutHeight\n ? {\n revision_height: (_a = omitDefault(timeoutHeight.revisionHeight)) === null || _a === void 0 ? void 0 : _a.toString(),\n revision_number: (_b = omitDefault(timeoutHeight.revisionNumber)) === null || _b === void 0 ? void 0 : _b.toString(),\n }\n : {},\n timeout_timestamp: (_c = omitDefault(timeoutTimestamp)) === null || _c === void 0 ? void 0 : _c.toString(),\n });\n },\n fromAmino: ({ source_port, source_channel, token, sender, receiver, timeout_height, timeout_timestamp, }) => ({\n sourcePort: source_port,\n sourceChannel: source_channel,\n token: token,\n sender: sender,\n receiver: receiver,\n timeoutHeight: timeout_height\n ? {\n revisionHeight: long_1.default.fromString(timeout_height.revision_height || \"0\", true),\n revisionNumber: long_1.default.fromString(timeout_height.revision_number || \"0\", true),\n }\n : undefined,\n timeoutTimestamp: long_1.default.fromString(timeout_timestamp || \"0\", true),\n }),\n },\n \"/cosmos.feegrant.v1beta1.MsgGrantAllowance\": \"not_supported_by_chain\",\n \"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\": \"not_supported_by_chain\",\n };\n}\nfunction isAminoConverter(converter) {\n return typeof converter[1] !== \"string\";\n}\n/**\n * A map from Stargate message types as used in the messages's `Any` type\n * to Amino types.\n */\nclass AminoTypes {\n constructor({ prefix, additions = {} }) {\n const defaultTypes = createDefaultTypes(prefix);\n this.register = { ...defaultTypes, ...additions };\n }\n toAmino({ typeUrl, value }) {\n const converter = this.register[typeUrl];\n if (converter === \"not_supported_by_chain\") {\n throw new Error(`The message type '${typeUrl}' cannot be signed using the Amino JSON sign mode because this is not supported by chain.`);\n }\n if (!converter) {\n throw new Error(`Type URL '${typeUrl}' does not exist in the Amino message type register. ` +\n \"If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. \" +\n \"If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.\");\n }\n return {\n type: converter.aminoType,\n value: converter.toAmino(value),\n };\n }\n fromAmino({ type, value }) {\n const matches = Object.entries(this.register)\n .filter(isAminoConverter)\n .filter(([_typeUrl, { aminoType }]) => aminoType === type);\n switch (matches.length) {\n case 0: {\n throw new Error(`Amino type identifier '${type}' does not exist in the Amino message type register. ` +\n \"If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. \" +\n \"If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.\");\n }\n case 1: {\n const [typeUrl, converter] = matches[0];\n return {\n typeUrl: typeUrl,\n value: converter.fromAmino(value),\n };\n }\n default:\n throw new Error(`Multiple types are registered with Amino type identifier '${type}': '` +\n matches\n .map(([key, _value]) => key)\n .sort()\n .join(\"', '\") +\n \"'. Thus fromAmino cannot be performed.\");\n }\n }\n}\nexports.AminoTypes = AminoTypes;\n//# sourceMappingURL=aminotypes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsgVoteEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgDepositEncodeObject = exports.isMsgTransferEncodeObject = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.isMsgUndelegateEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgSendEncodeObject = void 0;\nfunction isMsgSendEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.bank.v1beta1.MsgSend\";\n}\nexports.isMsgSendEncodeObject = isMsgSendEncodeObject;\nfunction isMsgDelegateEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.staking.v1beta1.MsgDelegate\";\n}\nexports.isMsgDelegateEncodeObject = isMsgDelegateEncodeObject;\nfunction isMsgUndelegateEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.staking.v1beta1.MsgUndelegate\";\n}\nexports.isMsgUndelegateEncodeObject = isMsgUndelegateEncodeObject;\nfunction isMsgWithdrawDelegatorRewardEncodeObject(encodeObject) {\n return (encodeObject.typeUrl ===\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\");\n}\nexports.isMsgWithdrawDelegatorRewardEncodeObject = isMsgWithdrawDelegatorRewardEncodeObject;\nfunction isMsgTransferEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/ibc.applications.transfer.v1.MsgTransfer\";\n}\nexports.isMsgTransferEncodeObject = isMsgTransferEncodeObject;\nfunction isMsgDepositEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.gov.v1beta1.MsgDeposit\";\n}\nexports.isMsgDepositEncodeObject = isMsgDepositEncodeObject;\nfunction isMsgSubmitProposalEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.gov.v1beta1.MsgSubmitProposal\";\n}\nexports.isMsgSubmitProposalEncodeObject = isMsgSubmitProposalEncodeObject;\nfunction isMsgVoteEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.gov.v1beta1.MsgVote\";\n}\nexports.isMsgVoteEncodeObject = isMsgVoteEncodeObject;\n//# sourceMappingURL=encodeobjects.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateFee = exports.GasPrice = void 0;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\n/**\n * Denom checker for the Cosmos SDK 0.42 denom pattern\n * (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601).\n *\n * This is like a regexp but with helpful error messages.\n */\nfunction checkDenom(denom) {\n if (denom.length < 3 || denom.length > 128) {\n throw new Error(\"Denom must be between 3 and 128 characters\");\n }\n}\n/**\n * A gas price, i.e. the price of a single unit of gas. This is typically a fraction of\n * the smallest fee token unit, such as 0.012utoken.\n */\nclass GasPrice {\n constructor(amount, denom) {\n this.amount = amount;\n this.denom = denom;\n }\n /**\n * Parses a gas price formatted as ``, e.g. `GasPrice.fromString(\"0.012utoken\")`.\n *\n * The denom must match the Cosmos SDK 0.42 pattern (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601).\n * See `GasPrice` in @cosmjs/stargate for a more generic matcher.\n *\n * Separators are not yet supported.\n */\n static fromString(gasPrice) {\n // Use Decimal.fromUserInput and checkDenom for detailed checks and helpful error messages\n const matchResult = gasPrice.match(/^([0-9.]+)([a-z][a-z0-9]*)$/i);\n if (!matchResult) {\n throw new Error(\"Invalid gas price string\");\n }\n const [_, amount, denom] = matchResult;\n checkDenom(denom);\n const fractionalDigits = 18;\n const decimalAmount = math_1.Decimal.fromUserInput(amount, fractionalDigits);\n return new GasPrice(decimalAmount, denom);\n }\n /**\n * Returns a string representation of this gas price, e.g. \"0.025uatom\".\n * This can be used as an input to `GasPrice.fromString`.\n */\n toString() {\n return this.amount.toString() + this.denom;\n }\n}\nexports.GasPrice = GasPrice;\nfunction calculateFee(gasLimit, gasPrice) {\n const processedGasPrice = typeof gasPrice === \"string\" ? GasPrice.fromString(gasPrice) : gasPrice;\n const { denom, amount: gasPriceAmount } = processedGasPrice;\n const amount = Math.ceil(gasPriceAmount.multiply(new math_1.Uint53(gasLimit)).toFloatApproximation());\n return {\n amount: (0, proto_signing_1.coins)(amount, denom),\n gas: gasLimit.toString(),\n };\n}\nexports.calculateFee = calculateFee;\n//# sourceMappingURL=fee.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertIsDeliverTxSuccess = exports.assertIsDeliverTxFailure = exports.SigningStargateClient = exports.defaultRegistryTypes = exports.isSearchByTagsQuery = exports.isSearchBySentFromOrToQuery = exports.isSearchByHeightQuery = exports.setupTxExtension = exports.setupStakingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthExtension = exports.QueryClient = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.makeMultisignedTx = exports.logs = exports.GasPrice = exports.calculateFee = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgUndelegateEncodeObject = exports.isMsgTransferEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgSendEncodeObject = exports.isMsgDepositEncodeObject = exports.isMsgDelegateEncodeObject = exports.AminoTypes = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgVote = exports.isAminoMsgVerifyInvariant = exports.isAminoMsgUnjail = exports.isAminoMsgUndelegate = exports.isAminoMsgSubmitProposal = exports.isAminoMsgSubmitEvidence = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgEditValidator = exports.isAminoMsgDeposit = exports.isAminoMsgDelegate = exports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.accountFromAny = void 0;\nexports.parseCoins = exports.makeCosmoshubPath = exports.coins = exports.coin = exports.TimeoutError = exports.StargateClient = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = void 0;\nvar accounts_1 = require(\"./accounts\");\nObject.defineProperty(exports, \"accountFromAny\", { enumerable: true, get: function () { return accounts_1.accountFromAny; } });\nvar aminomsgs_1 = require(\"./aminomsgs\");\nObject.defineProperty(exports, \"isAminoMsgBeginRedelegate\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgBeginRedelegate; } });\nObject.defineProperty(exports, \"isAminoMsgCreateValidator\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgCreateValidator; } });\nObject.defineProperty(exports, \"isAminoMsgDelegate\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgDelegate; } });\nObject.defineProperty(exports, \"isAminoMsgDeposit\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgDeposit; } });\nObject.defineProperty(exports, \"isAminoMsgEditValidator\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgEditValidator; } });\nObject.defineProperty(exports, \"isAminoMsgFundCommunityPool\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgFundCommunityPool; } });\nObject.defineProperty(exports, \"isAminoMsgMultiSend\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgMultiSend; } });\nObject.defineProperty(exports, \"isAminoMsgSend\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgSend; } });\nObject.defineProperty(exports, \"isAminoMsgSetWithdrawAddress\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgSetWithdrawAddress; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitEvidence\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgSubmitEvidence; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitProposal\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgSubmitProposal; } });\nObject.defineProperty(exports, \"isAminoMsgUndelegate\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgUndelegate; } });\nObject.defineProperty(exports, \"isAminoMsgUnjail\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgUnjail; } });\nObject.defineProperty(exports, \"isAminoMsgVerifyInvariant\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgVerifyInvariant; } });\nObject.defineProperty(exports, \"isAminoMsgVote\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgVote; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawDelegatorReward\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgWithdrawDelegatorReward; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawValidatorCommission\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgWithdrawValidatorCommission; } });\nvar aminotypes_1 = require(\"./aminotypes\");\nObject.defineProperty(exports, \"AminoTypes\", { enumerable: true, get: function () { return aminotypes_1.AminoTypes; } });\nvar encodeobjects_1 = require(\"./encodeobjects\");\nObject.defineProperty(exports, \"isMsgDelegateEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgDelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgDepositEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgDepositEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSendEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgSendEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSubmitProposalEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgSubmitProposalEncodeObject; } });\nObject.defineProperty(exports, \"isMsgTransferEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgTransferEncodeObject; } });\nObject.defineProperty(exports, \"isMsgUndelegateEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgUndelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgVoteEncodeObject; } });\nObject.defineProperty(exports, \"isMsgWithdrawDelegatorRewardEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgWithdrawDelegatorRewardEncodeObject; } });\nvar fee_1 = require(\"./fee\");\nObject.defineProperty(exports, \"calculateFee\", { enumerable: true, get: function () { return fee_1.calculateFee; } });\nObject.defineProperty(exports, \"GasPrice\", { enumerable: true, get: function () { return fee_1.GasPrice; } });\nexports.logs = __importStar(require(\"./logs\"));\nvar multisignature_1 = require(\"./multisignature\");\nObject.defineProperty(exports, \"makeMultisignedTx\", { enumerable: true, get: function () { return multisignature_1.makeMultisignedTx; } });\nvar queries_1 = require(\"./queries\");\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return queries_1.createPagination; } });\nObject.defineProperty(exports, \"createProtobufRpcClient\", { enumerable: true, get: function () { return queries_1.createProtobufRpcClient; } });\nObject.defineProperty(exports, \"decodeCosmosSdkDecFromProto\", { enumerable: true, get: function () { return queries_1.decodeCosmosSdkDecFromProto; } });\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return queries_1.QueryClient; } });\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return queries_1.setupAuthExtension; } });\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return queries_1.setupBankExtension; } });\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return queries_1.setupDistributionExtension; } });\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return queries_1.setupGovExtension; } });\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return queries_1.setupIbcExtension; } });\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return queries_1.setupMintExtension; } });\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return queries_1.setupStakingExtension; } });\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return queries_1.setupTxExtension; } });\nvar search_1 = require(\"./search\");\nObject.defineProperty(exports, \"isSearchByHeightQuery\", { enumerable: true, get: function () { return search_1.isSearchByHeightQuery; } });\nObject.defineProperty(exports, \"isSearchBySentFromOrToQuery\", { enumerable: true, get: function () { return search_1.isSearchBySentFromOrToQuery; } });\nObject.defineProperty(exports, \"isSearchByTagsQuery\", { enumerable: true, get: function () { return search_1.isSearchByTagsQuery; } });\nvar signingstargateclient_1 = require(\"./signingstargateclient\");\nObject.defineProperty(exports, \"defaultRegistryTypes\", { enumerable: true, get: function () { return signingstargateclient_1.defaultRegistryTypes; } });\nObject.defineProperty(exports, \"SigningStargateClient\", { enumerable: true, get: function () { return signingstargateclient_1.SigningStargateClient; } });\nvar stargateclient_1 = require(\"./stargateclient\");\nObject.defineProperty(exports, \"assertIsDeliverTxFailure\", { enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxFailure; } });\nObject.defineProperty(exports, \"assertIsDeliverTxSuccess\", { enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxSuccess; } });\nObject.defineProperty(exports, \"isDeliverTxFailure\", { enumerable: true, get: function () { return stargateclient_1.isDeliverTxFailure; } });\nObject.defineProperty(exports, \"isDeliverTxSuccess\", { enumerable: true, get: function () { return stargateclient_1.isDeliverTxSuccess; } });\nObject.defineProperty(exports, \"StargateClient\", { enumerable: true, get: function () { return stargateclient_1.StargateClient; } });\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return stargateclient_1.TimeoutError; } });\nvar proto_signing_1 = require(\"@cosmjs/proto-signing\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return proto_signing_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return proto_signing_1.coins; } });\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return proto_signing_1.makeCosmoshubPath; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return proto_signing_1.parseCoins; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAttribute = exports.parseRawLog = exports.parseLogs = exports.parseLog = exports.parseEvent = exports.parseAttribute = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nfunction parseAttribute(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Attribute must be a non-null object\");\n const { key, value } = input;\n if (typeof key !== \"string\" || !key)\n throw new Error(\"Attribute's key must be a non-empty string\");\n if (typeof value !== \"string\" && typeof value !== \"undefined\") {\n throw new Error(\"Attribute's value must be a string or unset\");\n }\n return {\n key: key,\n value: value || \"\",\n };\n}\nexports.parseAttribute = parseAttribute;\nfunction parseEvent(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Event must be a non-null object\");\n const { type, attributes } = input;\n if (typeof type !== \"string\" || type === \"\") {\n throw new Error(`Event type must be a non-empty string`);\n }\n if (!Array.isArray(attributes))\n throw new Error(\"Event's attributes must be an array\");\n return {\n type: type,\n attributes: attributes.map(parseAttribute),\n };\n}\nexports.parseEvent = parseEvent;\nfunction parseLog(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Log must be a non-null object\");\n const { msg_index, log, events } = input;\n if (typeof msg_index !== \"number\")\n throw new Error(\"Log's msg_index must be a number\");\n if (typeof log !== \"string\")\n throw new Error(\"Log's log must be a string\");\n if (!Array.isArray(events))\n throw new Error(\"Log's events must be an array\");\n return {\n msg_index: msg_index,\n log: log,\n events: events.map(parseEvent),\n };\n}\nexports.parseLog = parseLog;\nfunction parseLogs(input) {\n if (!Array.isArray(input))\n throw new Error(\"Logs must be an array\");\n return input.map(parseLog);\n}\nexports.parseLogs = parseLogs;\nfunction parseRawLog(input = \"[]\") {\n const logsToParse = JSON.parse(input).map(({ events }, i) => ({\n msg_index: i,\n events,\n log: \"\",\n }));\n return parseLogs(logsToParse);\n}\nexports.parseRawLog = parseRawLog;\n/**\n * Searches in logs for the first event of the given event type and in that event\n * for the first first attribute with the given attribute key.\n *\n * Throws if the attribute was not found.\n */\nfunction findAttribute(logs, eventType, attrKey) {\n var _a;\n const firstLogs = logs.find(() => true);\n const out = (_a = firstLogs === null || firstLogs === void 0 ? void 0 : firstLogs.events.find((event) => event.type === eventType)) === null || _a === void 0 ? void 0 : _a.attributes.find((attr) => attr.key === attrKey);\n if (!out) {\n throw new Error(`Could not find attribute '${attrKey}' in first event of type '${eventType}' in first log.`);\n }\n return out;\n}\nexports.findAttribute = findAttribute;\n//# sourceMappingURL=logs.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeMultisignedTx = exports.makeCompactBitArray = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst multisig_1 = require(\"cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\nfunction makeCompactBitArray(bits) {\n const byteCount = Math.ceil(bits.length / 8);\n const extraBits = bits.length - Math.floor(bits.length / 8) * 8;\n const bytes = new Uint8Array(byteCount); // zero-filled\n bits.forEach((value, index) => {\n const bytePos = Math.floor(index / 8);\n const bitPos = index % 8;\n // eslint-disable-next-line no-bitwise\n if (value)\n bytes[bytePos] |= 0b1 << (8 - 1 - bitPos);\n });\n return multisig_1.CompactBitArray.fromPartial({ elems: bytes, extraBitsStored: extraBits });\n}\nexports.makeCompactBitArray = makeCompactBitArray;\nfunction makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures) {\n const addresses = Array.from(signatures.keys());\n const prefix = (0, encoding_1.fromBech32)(addresses[0]).prefix;\n const signers = Array(multisigPubkey.value.pubkeys.length).fill(false);\n const signaturesList = new Array();\n for (let i = 0; i < multisigPubkey.value.pubkeys.length; i++) {\n const signerAddress = (0, amino_1.pubkeyToAddress)(multisigPubkey.value.pubkeys[i], prefix);\n const signature = signatures.get(signerAddress);\n if (signature) {\n signers[i] = true;\n signaturesList.push(signature);\n }\n }\n const signerInfo = {\n publicKey: (0, proto_signing_1.encodePubkey)(multisigPubkey),\n modeInfo: {\n multi: {\n bitarray: makeCompactBitArray(signers),\n modeInfos: signaturesList.map((_) => ({ single: { mode: signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON } })),\n },\n },\n sequence: long_1.default.fromNumber(sequence),\n };\n const authInfo = tx_1.AuthInfo.fromPartial({\n signerInfos: [signerInfo],\n fee: {\n amount: [...fee.amount],\n gasLimit: long_1.default.fromString(fee.gas),\n },\n });\n const authInfoBytes = tx_1.AuthInfo.encode(authInfo).finish();\n const signedTx = tx_2.TxRaw.fromPartial({\n bodyBytes: bodyBytes,\n authInfoBytes: authInfoBytes,\n signatures: [multisig_1.MultiSignature.encode(multisig_1.MultiSignature.fromPartial({ signatures: signaturesList })).finish()],\n });\n return signedTx;\n}\nexports.makeMultisignedTx = makeMultisignedTx;\n//# sourceMappingURL=multisignature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupAuthExtension = void 0;\nconst query_1 = require(\"cosmjs-types/cosmos/auth/v1beta1/query\");\nconst utils_1 = require(\"./utils\");\nfunction setupAuthExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n auth: {\n account: async (address) => {\n const { account } = await queryService.Account({ address: address });\n return account !== null && account !== void 0 ? account : null;\n },\n },\n };\n}\nexports.setupAuthExtension = setupAuthExtension;\n//# sourceMappingURL=auth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupBankExtension = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nconst query_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/query\");\nconst utils_2 = require(\"./utils\");\nfunction setupBankExtension(base) {\n const rpc = (0, utils_2.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n bank: {\n balance: async (address, denom) => {\n const { balance } = await queryService.Balance({ address: address, denom: denom });\n (0, utils_1.assert)(balance);\n return balance;\n },\n allBalances: async (address) => {\n const { balances } = await queryService.AllBalances({ address: address });\n return balances;\n },\n totalSupply: async () => {\n const { supply } = await queryService.TotalSupply({});\n return supply;\n },\n supplyOf: async (denom) => {\n const { amount } = await queryService.SupplyOf({ denom: denom });\n (0, utils_1.assert)(amount);\n return amount;\n },\n denomMetadata: async (denom) => {\n const { metadata } = await queryService.DenomMetadata({ denom });\n (0, utils_1.assert)(metadata);\n return metadata;\n },\n denomsMetadata: async () => {\n const { metadatas } = await queryService.DenomsMetadata({\n pagination: undefined, // Not implemented\n });\n return metadatas;\n },\n },\n };\n}\nexports.setupBankExtension = setupBankExtension;\n//# sourceMappingURL=bank.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupDistributionExtension = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst query_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/query\");\nconst long_1 = __importDefault(require(\"long\"));\nconst utils_1 = require(\"./utils\");\nfunction setupDistributionExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n distribution: {\n communityPool: async () => {\n const response = await queryService.CommunityPool({});\n return response;\n },\n delegationRewards: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.DelegationRewards({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n });\n return response;\n },\n delegationTotalRewards: async (delegatorAddress) => {\n const response = await queryService.DelegationTotalRewards({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n delegatorValidators: async (delegatorAddress) => {\n const response = await queryService.DelegatorValidators({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n delegatorWithdrawAddress: async (delegatorAddress) => {\n const response = await queryService.DelegatorWithdrawAddress({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n validatorCommission: async (validatorAddress) => {\n const response = await queryService.ValidatorCommission({\n validatorAddress: validatorAddress,\n });\n return response;\n },\n validatorOutstandingRewards: async (validatorAddress) => {\n const response = await queryService.ValidatorOutstandingRewards({\n validatorAddress: validatorAddress,\n });\n return response;\n },\n validatorSlashes: async (validatorAddress, startingHeight, endingHeight, paginationKey) => {\n const response = await queryService.ValidatorSlashes({\n validatorAddress: validatorAddress,\n startingHeight: long_1.default.fromNumber(startingHeight, true),\n endingHeight: long_1.default.fromNumber(endingHeight, true),\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\nexports.setupDistributionExtension = setupDistributionExtension;\n//# sourceMappingURL=distribution.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupGovExtension = void 0;\nconst query_1 = require(\"cosmjs-types/cosmos/gov/v1beta1/query\");\nconst utils_1 = require(\"./utils\");\nfunction setupGovExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n gov: {\n params: async (parametersType) => {\n const response = await queryService.Params({ paramsType: parametersType });\n return response;\n },\n proposals: async (proposalStatus, depositorAddress, voterAddress, paginationKey) => {\n const response = await queryService.Proposals({\n proposalStatus,\n depositor: depositorAddress,\n voter: voterAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n proposal: async (proposalId) => {\n const response = await queryService.Proposal({ proposalId: (0, utils_1.longify)(proposalId) });\n return response;\n },\n deposits: async (proposalId, paginationKey) => {\n const response = await queryService.Deposits({\n proposalId: (0, utils_1.longify)(proposalId),\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n deposit: async (proposalId, depositorAddress) => {\n const response = await queryService.Deposit({\n proposalId: (0, utils_1.longify)(proposalId),\n depositor: depositorAddress,\n });\n return response;\n },\n tally: async (proposalId) => {\n const response = await queryService.TallyResult({\n proposalId: (0, utils_1.longify)(proposalId),\n });\n return response;\n },\n votes: async (proposalId, paginationKey) => {\n const response = await queryService.Votes({\n proposalId: (0, utils_1.longify)(proposalId),\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n vote: async (proposalId, voterAddress) => {\n const response = await queryService.Vote({\n proposalId: (0, utils_1.longify)(proposalId),\n voter: voterAddress,\n });\n return response;\n },\n },\n };\n}\nexports.setupGovExtension = setupGovExtension;\n//# sourceMappingURL=gov.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupIbcExtension = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst query_1 = require(\"cosmjs-types/ibc/applications/transfer/v1/query\");\nconst channel_1 = require(\"cosmjs-types/ibc/core/channel/v1/channel\");\nconst query_2 = require(\"cosmjs-types/ibc/core/channel/v1/query\");\nconst query_3 = require(\"cosmjs-types/ibc/core/client/v1/query\");\nconst query_4 = require(\"cosmjs-types/ibc/core/connection/v1/query\");\nconst tendermint_1 = require(\"cosmjs-types/ibc/lightclients/tendermint/v1/tendermint\");\nconst long_1 = __importDefault(require(\"long\"));\nconst utils_1 = require(\"./utils\");\nfunction decodeTendermintClientStateAny(clientState) {\n if ((clientState === null || clientState === void 0 ? void 0 : clientState.typeUrl) !== \"/ibc.lightclients.tendermint.v1.ClientState\") {\n throw new Error(`Unexpected client state type: ${clientState === null || clientState === void 0 ? void 0 : clientState.typeUrl}`);\n }\n return tendermint_1.ClientState.decode(clientState.value);\n}\nfunction decodeTendermintConsensusStateAny(clientState) {\n if ((clientState === null || clientState === void 0 ? void 0 : clientState.typeUrl) !== \"/ibc.lightclients.tendermint.v1.ConsensusState\") {\n throw new Error(`Unexpected client state type: ${clientState === null || clientState === void 0 ? void 0 : clientState.typeUrl}`);\n }\n return tendermint_1.ConsensusState.decode(clientState.value);\n}\nfunction setupIbcExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n // Use these services to get easy typed access to query methods\n // These cannot be used for proof verification\n const channelQueryService = new query_2.QueryClientImpl(rpc);\n const clientQueryService = new query_3.QueryClientImpl(rpc);\n const connectionQueryService = new query_4.QueryClientImpl(rpc);\n const transferQueryService = new query_1.QueryClientImpl(rpc);\n return {\n ibc: {\n channel: {\n channel: async (portId, channelId) => channelQueryService.Channel({\n portId: portId,\n channelId: channelId,\n }),\n channels: async (paginationKey) => channelQueryService.Channels({\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allChannels: async () => {\n var _a;\n const channels = [];\n let response;\n let key;\n do {\n response = await channelQueryService.Channels({\n pagination: (0, utils_1.createPagination)(key),\n });\n channels.push(...response.channels);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n channels: channels,\n height: response.height,\n };\n },\n connectionChannels: async (connection, paginationKey) => channelQueryService.ConnectionChannels({\n connection: connection,\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allConnectionChannels: async (connection) => {\n var _a;\n const channels = [];\n let response;\n let key;\n do {\n response = await channelQueryService.ConnectionChannels({\n connection: connection,\n pagination: (0, utils_1.createPagination)(key),\n });\n channels.push(...response.channels);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n channels: channels,\n height: response.height,\n };\n },\n clientState: async (portId, channelId) => channelQueryService.ChannelClientState({\n portId: portId,\n channelId: channelId,\n }),\n consensusState: async (portId, channelId, revisionNumber, revisionHeight) => channelQueryService.ChannelConsensusState({\n portId: portId,\n channelId: channelId,\n revisionNumber: long_1.default.fromNumber(revisionNumber, true),\n revisionHeight: long_1.default.fromNumber(revisionHeight, true),\n }),\n packetCommitment: async (portId, channelId, sequence) => channelQueryService.PacketCommitment({\n portId: portId,\n channelId: channelId,\n sequence: sequence,\n }),\n packetCommitments: async (portId, channelId, paginationKey) => channelQueryService.PacketCommitments({\n channelId: channelId,\n portId: portId,\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allPacketCommitments: async (portId, channelId) => {\n var _a;\n const commitments = [];\n let response;\n let key;\n do {\n response = await channelQueryService.PacketCommitments({\n channelId: channelId,\n portId: portId,\n pagination: (0, utils_1.createPagination)(key),\n });\n commitments.push(...response.commitments);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n commitments: commitments,\n height: response.height,\n };\n },\n packetReceipt: async (portId, channelId, sequence) => channelQueryService.PacketReceipt({\n portId: portId,\n channelId: channelId,\n sequence: long_1.default.fromNumber(sequence, true),\n }),\n packetAcknowledgement: async (portId, channelId, sequence) => channelQueryService.PacketAcknowledgement({\n portId: portId,\n channelId: channelId,\n sequence: long_1.default.fromNumber(sequence, true),\n }),\n packetAcknowledgements: async (portId, channelId, paginationKey) => channelQueryService.PacketAcknowledgements({\n portId: portId,\n channelId: channelId,\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allPacketAcknowledgements: async (portId, channelId) => {\n var _a;\n const acknowledgements = [];\n let response;\n let key;\n do {\n response = await channelQueryService.PacketAcknowledgements({\n channelId: channelId,\n portId: portId,\n pagination: (0, utils_1.createPagination)(key),\n });\n acknowledgements.push(...response.acknowledgements);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n acknowledgements: acknowledgements,\n height: response.height,\n };\n },\n unreceivedPackets: async (portId, channelId, packetCommitmentSequences) => channelQueryService.UnreceivedPackets({\n portId: portId,\n channelId: channelId,\n packetCommitmentSequences: packetCommitmentSequences.map((s) => long_1.default.fromNumber(s, true)),\n }),\n unreceivedAcks: async (portId, channelId, packetAckSequences) => channelQueryService.UnreceivedAcks({\n portId: portId,\n channelId: channelId,\n packetAckSequences: packetAckSequences.map((s) => long_1.default.fromNumber(s, true)),\n }),\n nextSequenceReceive: async (portId, channelId) => channelQueryService.NextSequenceReceive({\n portId: portId,\n channelId: channelId,\n }),\n },\n client: {\n state: async (clientId) => clientQueryService.ClientState({ clientId }),\n states: async (paginationKey) => clientQueryService.ClientStates({\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allStates: async () => {\n var _a;\n const clientStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ClientStates({\n pagination: (0, utils_1.createPagination)(key),\n });\n clientStates.push(...response.clientStates);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n clientStates: clientStates,\n };\n },\n consensusState: async (clientId, consensusHeight) => clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({\n clientId: clientId,\n revisionHeight: consensusHeight !== undefined ? long_1.default.fromNumber(consensusHeight, true) : undefined,\n latestHeight: consensusHeight === undefined,\n })),\n consensusStates: async (clientId, paginationKey) => clientQueryService.ConsensusStates({\n clientId: clientId,\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allConsensusStates: async (clientId) => {\n var _a;\n const consensusStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ConsensusStates({\n clientId: clientId,\n pagination: (0, utils_1.createPagination)(key),\n });\n consensusStates.push(...response.consensusStates);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n consensusStates: consensusStates,\n };\n },\n params: async () => clientQueryService.ClientParams({}),\n stateTm: async (clientId) => {\n const response = await clientQueryService.ClientState({ clientId });\n return decodeTendermintClientStateAny(response.clientState);\n },\n statesTm: async (paginationKey) => {\n const { clientStates } = await clientQueryService.ClientStates({\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState));\n },\n allStatesTm: async () => {\n var _a;\n const clientStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ClientStates({\n pagination: (0, utils_1.createPagination)(key),\n });\n clientStates.push(...response.clientStates);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState));\n },\n consensusStateTm: async (clientId, consensusHeight) => {\n const response = await clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({\n clientId: clientId,\n revisionHeight: consensusHeight === null || consensusHeight === void 0 ? void 0 : consensusHeight.revisionHeight,\n revisionNumber: consensusHeight === null || consensusHeight === void 0 ? void 0 : consensusHeight.revisionNumber,\n latestHeight: consensusHeight === undefined,\n }));\n return decodeTendermintConsensusStateAny(response.consensusState);\n },\n },\n connection: {\n connection: async (connectionId) => connectionQueryService.Connection({\n connectionId: connectionId,\n }),\n connections: async (paginationKey) => connectionQueryService.Connections({\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allConnections: async () => {\n var _a;\n const connections = [];\n let response;\n let key;\n do {\n response = await connectionQueryService.Connections({\n pagination: (0, utils_1.createPagination)(key),\n });\n connections.push(...response.connections);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n connections: connections,\n height: response.height,\n };\n },\n clientConnections: async (clientId) => connectionQueryService.ClientConnections({\n clientId: clientId,\n }),\n clientState: async (connectionId) => connectionQueryService.ConnectionClientState({\n connectionId: connectionId,\n }),\n consensusState: async (connectionId, revisionHeight) => connectionQueryService.ConnectionConsensusState(query_4.QueryConnectionConsensusStateRequest.fromPartial({\n connectionId: connectionId,\n revisionHeight: long_1.default.fromNumber(revisionHeight, true),\n })),\n },\n transfer: {\n denomTrace: async (hash) => transferQueryService.DenomTrace({ hash: hash }),\n denomTraces: async (paginationKey) => transferQueryService.DenomTraces({\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allDenomTraces: async () => {\n var _a;\n const denomTraces = [];\n let response;\n let key;\n do {\n response = await transferQueryService.DenomTraces({\n pagination: (0, utils_1.createPagination)(key),\n });\n denomTraces.push(...response.denomTraces);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n denomTraces: denomTraces,\n };\n },\n params: async () => transferQueryService.Params({}),\n },\n verified: {\n channel: {\n channel: async (portId, channelId) => {\n // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L55-L65\n // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L117-L120\n const key = (0, encoding_1.toAscii)(`channelEnds/ports/${portId}/channels/${channelId}`);\n const responseData = await base.queryVerified(\"ibc\", key);\n return responseData.length ? channel_1.Channel.decode(responseData) : null;\n },\n packetCommitment: async (portId, channelId, sequence) => {\n // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L128-L133\n // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L183-L185\n const key = (0, encoding_1.toAscii)(`commitments/ports/${portId}/channels/${channelId}/packets/${sequence}`);\n const responseData = await base.queryVerified(\"ibc\", key);\n // keeper code doesn't parse, but returns raw\n return responseData;\n },\n packetAcknowledgement: async (portId, channelId, sequence) => {\n // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L159-L166\n // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L153-L156\n const key = (0, encoding_1.toAscii)(`acks/ports/${portId}/channels/${channelId}/acknowledgements/${sequence}`);\n const responseData = await base.queryVerified(\"ibc\", key);\n // keeper code doesn't parse, but returns raw\n return responseData;\n },\n nextSequenceReceive: async (portId, channelId) => {\n // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L92-L101\n // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L133-L136\n const key = (0, encoding_1.toAscii)(`seqAcks/ports/${portId}/channels/${channelId}/nextSequenceAck`);\n const responseData = await base.queryVerified(\"ibc\", key);\n return responseData.length ? math_1.Uint64.fromBytes(responseData).toNumber() : null;\n },\n },\n },\n },\n };\n}\nexports.setupIbcExtension = setupIbcExtension;\n//# sourceMappingURL=ibc.js.map","\"use strict\";\n// Base symbols\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.setupTxExtension = exports.setupStakingExtension = exports.setupSlashingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthExtension = exports.QueryClient = void 0;\nvar queryclient_1 = require(\"./queryclient\");\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return queryclient_1.QueryClient; } });\n// Extensions\nvar auth_1 = require(\"./auth\");\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return auth_1.setupAuthExtension; } });\nvar bank_1 = require(\"./bank\");\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return bank_1.setupBankExtension; } });\nvar distribution_1 = require(\"./distribution\");\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return distribution_1.setupDistributionExtension; } });\nvar gov_1 = require(\"./gov\");\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return gov_1.setupGovExtension; } });\nvar ibc_1 = require(\"./ibc\");\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return ibc_1.setupIbcExtension; } });\nvar mint_1 = require(\"./mint\");\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return mint_1.setupMintExtension; } });\nvar slashing_1 = require(\"./slashing\");\nObject.defineProperty(exports, \"setupSlashingExtension\", { enumerable: true, get: function () { return slashing_1.setupSlashingExtension; } });\nvar staking_1 = require(\"./staking\");\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return staking_1.setupStakingExtension; } });\nvar tx_1 = require(\"./tx\");\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return tx_1.setupTxExtension; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return utils_1.createPagination; } });\nObject.defineProperty(exports, \"createProtobufRpcClient\", { enumerable: true, get: function () { return utils_1.createProtobufRpcClient; } });\nObject.defineProperty(exports, \"decodeCosmosSdkDecFromProto\", { enumerable: true, get: function () { return utils_1.decodeCosmosSdkDecFromProto; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupMintExtension = void 0;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst query_1 = require(\"cosmjs-types/cosmos/mint/v1beta1/query\");\nconst __1 = require(\"../\");\nconst utils_2 = require(\"./utils\");\nfunction setupMintExtension(base) {\n const rpc = (0, __1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n mint: {\n params: async () => {\n const { params } = await queryService.Params({});\n (0, utils_1.assert)(params);\n return {\n blocksPerYear: params.blocksPerYear,\n goalBonded: (0, utils_2.decodeCosmosSdkDecFromProto)(params.goalBonded),\n inflationMin: (0, utils_2.decodeCosmosSdkDecFromProto)(params.inflationMin),\n inflationMax: (0, utils_2.decodeCosmosSdkDecFromProto)(params.inflationMax),\n inflationRateChange: (0, utils_2.decodeCosmosSdkDecFromProto)(params.inflationRateChange),\n mintDenom: params.mintDenom,\n };\n },\n inflation: async () => {\n const { inflation } = await queryService.Inflation({});\n return (0, utils_2.decodeCosmosSdkDecFromProto)(inflation);\n },\n annualProvisions: async () => {\n const { annualProvisions } = await queryService.AnnualProvisions({});\n return (0, utils_2.decodeCosmosSdkDecFromProto)(annualProvisions);\n },\n },\n };\n}\nexports.setupMintExtension = setupMintExtension;\n//# sourceMappingURL=mint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClient = void 0;\n/* eslint-disable no-dupe-class-members, @typescript-eslint/ban-types, @typescript-eslint/naming-convention */\nconst ics23_1 = require(\"@confio/ics23\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst stream_1 = require(\"@cosmjs/stream\");\nconst utils_1 = require(\"@cosmjs/utils\");\nfunction checkAndParseOp(op, kind, key) {\n if (op.type !== kind) {\n throw new Error(`Op expected to be ${kind}, got \"${op.type}`);\n }\n if (!(0, utils_1.arrayContentEquals)(key, op.key)) {\n throw new Error(`Proven key different than queried key.\\nQuery: ${(0, encoding_1.toHex)(key)}\\nProven: ${(0, encoding_1.toHex)(op.key)}`);\n }\n return ics23_1.ics23.CommitmentProof.decode(op.data);\n}\nclass QueryClient {\n constructor(tmClient) {\n this.tmClient = tmClient;\n }\n static withExtensions(tmClient, ...extensionSetups) {\n const client = new QueryClient(tmClient);\n const extensions = extensionSetups.map((setupExtension) => setupExtension(client));\n for (const extension of extensions) {\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(extension), `Extension must be a non-null object`);\n for (const [moduleKey, moduleValue] of Object.entries(extension)) {\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(moduleValue), `Module must be a non-null object. Found type ${typeof moduleValue} for module \"${moduleKey}\".`);\n const current = client[moduleKey] || {};\n client[moduleKey] = {\n ...current,\n ...moduleValue,\n };\n }\n }\n return client;\n }\n async queryVerified(store, key, desiredHeight) {\n const { height, proof, value } = await this.queryRawProof(store, key, desiredHeight);\n const subProof = checkAndParseOp(proof.ops[0], \"ics23:iavl\", key);\n const storeProof = checkAndParseOp(proof.ops[1], \"ics23:simple\", (0, encoding_1.toAscii)(store));\n // this must always be existence, if the store is not a typo\n (0, utils_1.assert)(storeProof.exist);\n (0, utils_1.assert)(storeProof.exist.value);\n // this may be exist or non-exist, depends on response\n if (!value || value.length === 0) {\n // non-existence check\n (0, utils_1.assert)(subProof.nonexist);\n // the subproof must map the desired key to the \"value\" of the storeProof\n (0, ics23_1.verifyNonExistence)(subProof.nonexist, ics23_1.iavlSpec, storeProof.exist.value, key);\n }\n else {\n // existence check\n (0, utils_1.assert)(subProof.exist);\n (0, utils_1.assert)(subProof.exist.value);\n // the subproof must map the desired key to the \"value\" of the storeProof\n (0, ics23_1.verifyExistence)(subProof.exist, ics23_1.iavlSpec, storeProof.exist.value, key, value);\n }\n // the store proof must map its declared value (root of subProof) to the appHash of the next block\n const header = await this.getNextHeader(height);\n (0, ics23_1.verifyExistence)(storeProof.exist, ics23_1.tendermintSpec, header.appHash, (0, encoding_1.toAscii)(store), storeProof.exist.value);\n return value;\n }\n async queryRawProof(store, queryKey, desiredHeight) {\n var _a;\n const { key, value, height, proof, code, log } = await this.tmClient.abciQuery({\n // we need the StoreKey for the module, not the module name\n // https://github.com/cosmos/cosmos-sdk/blob/8cab43c8120fec5200c3459cbf4a92017bb6f287/x/auth/types/keys.go#L12\n path: `/store/${store}/key`,\n data: queryKey,\n prove: true,\n height: desiredHeight,\n });\n if (code) {\n throw new Error(`Query failed with (${code}): ${log}`);\n }\n if (!(0, utils_1.arrayContentEquals)(queryKey, key)) {\n throw new Error(`Response key ${(0, encoding_1.toHex)(key)} doesn't match query key ${(0, encoding_1.toHex)(queryKey)}`);\n }\n if (!height) {\n throw new Error(\"No query height returned\");\n }\n if (!proof || proof.ops.length !== 2) {\n throw new Error(`Expected 2 proof ops, got ${(_a = proof === null || proof === void 0 ? void 0 : proof.ops.length) !== null && _a !== void 0 ? _a : 0}. Are you using stargate?`);\n }\n // we don't need the results, but we can ensure the data is the proper format\n checkAndParseOp(proof.ops[0], \"ics23:iavl\", key);\n checkAndParseOp(proof.ops[1], \"ics23:simple\", (0, encoding_1.toAscii)(store));\n return {\n key: key,\n value: value,\n height: height,\n // need to clone this: readonly input / writeable output\n proof: {\n ops: [...proof.ops],\n },\n };\n }\n async queryUnverified(path, request) {\n const response = await this.tmClient.abciQuery({\n path: path,\n data: request,\n prove: false,\n });\n if (response.code) {\n throw new Error(`Query failed with (${response.code}): ${response.log}`);\n }\n return response.value;\n }\n // this must return the header for height+1\n // throws an error if height is 0 or undefined\n async getNextHeader(height) {\n (0, utils_1.assertDefined)(height);\n if (height === 0) {\n throw new Error(\"Query returned height 0, cannot prove it\");\n }\n const searchHeight = height + 1;\n let nextHeader;\n let headersSubscription;\n try {\n headersSubscription = this.tmClient.subscribeNewBlockHeader();\n }\n catch (_a) {\n // Ignore exception caused by non-WebSocket Tendermint clients\n }\n if (headersSubscription) {\n const firstHeader = await (0, stream_1.firstEvent)(headersSubscription);\n // The first header we get might not be n+1 but n+2 or even higher. In such cases we fall back on a query.\n if (firstHeader.height === searchHeight) {\n nextHeader = firstHeader;\n }\n }\n while (!nextHeader) {\n // start from current height to avoid backend error for minHeight in the future\n const correctHeader = (await this.tmClient.blockchain(height, searchHeight)).blockMetas\n .map((meta) => meta.header)\n .find((h) => h.height === searchHeight);\n if (correctHeader) {\n nextHeader = correctHeader;\n }\n else {\n await (0, utils_1.sleep)(1000);\n }\n }\n (0, utils_1.assert)(nextHeader.height === searchHeight, \"Got wrong header. This is a bug in the logic above.\");\n return nextHeader;\n }\n}\nexports.QueryClient = QueryClient;\n//# sourceMappingURL=queryclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupSlashingExtension = void 0;\nconst query_1 = require(\"cosmjs-types/cosmos/slashing/v1beta1/query\");\nconst utils_1 = require(\"./utils\");\nfunction setupSlashingExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n slashing: {\n signingInfo: async (consAddress) => {\n const response = await queryService.SigningInfo({\n consAddress: consAddress,\n });\n return response;\n },\n signingInfos: async (paginationKey) => {\n const response = await queryService.SigningInfos({\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n },\n };\n}\nexports.setupSlashingExtension = setupSlashingExtension;\n//# sourceMappingURL=slashing.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupStakingExtension = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst query_1 = require(\"cosmjs-types/cosmos/staking/v1beta1/query\");\nconst long_1 = __importDefault(require(\"long\"));\nconst utils_1 = require(\"./utils\");\nfunction setupStakingExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n staking: {\n delegation: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.Delegation({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n delegatorDelegations: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorDelegations({\n delegatorAddr: delegatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n delegatorUnbondingDelegations: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorUnbondingDelegations({\n delegatorAddr: delegatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n delegatorValidator: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.DelegatorValidator({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n delegatorValidators: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorValidators({\n delegatorAddr: delegatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n historicalInfo: async (height) => {\n const response = await queryService.HistoricalInfo({\n height: long_1.default.fromNumber(height, true),\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n pool: async () => {\n const response = await queryService.Pool({});\n return response;\n },\n redelegations: async (delegatorAddress, sourceValidatorAddress, destinationValidatorAddress, paginationKey) => {\n const response = await queryService.Redelegations({\n delegatorAddr: delegatorAddress,\n srcValidatorAddr: sourceValidatorAddress,\n dstValidatorAddr: destinationValidatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n unbondingDelegation: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.UnbondingDelegation({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n validator: async (validatorAddress) => {\n const response = await queryService.Validator({ validatorAddr: validatorAddress });\n return response;\n },\n validatorDelegations: async (validatorAddress, paginationKey) => {\n const response = await queryService.ValidatorDelegations({\n validatorAddr: validatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n validators: async (status, paginationKey) => {\n const response = await queryService.Validators({\n status: status,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n validatorUnbondingDelegations: async (validatorAddress, paginationKey) => {\n const response = await queryService.ValidatorUnbondingDelegations({\n validatorAddr: validatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\nexports.setupStakingExtension = setupStakingExtension;\n//# sourceMappingURL=staking.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupTxExtension = void 0;\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst service_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/service\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\nconst utils_1 = require(\"./utils\");\nfunction setupTxExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n const queryService = new service_1.ServiceClientImpl(rpc);\n return {\n tx: {\n getTx: async (txId) => {\n const request = {\n hash: txId,\n };\n const response = await queryService.GetTx(request);\n return response;\n },\n simulate: async (messages, memo, signer, sequence) => {\n const request = service_1.SimulateRequest.fromPartial({\n tx: tx_1.Tx.fromPartial({\n authInfo: tx_1.AuthInfo.fromPartial({\n fee: tx_1.Fee.fromPartial({}),\n signerInfos: [\n {\n publicKey: (0, proto_signing_1.encodePubkey)(signer),\n sequence: long_1.default.fromNumber(sequence, true),\n modeInfo: { single: { mode: signing_1.SignMode.SIGN_MODE_UNSPECIFIED } },\n },\n ],\n }),\n body: tx_1.TxBody.fromPartial({\n messages: Array.from(messages),\n memo: memo,\n }),\n signatures: [new Uint8Array()],\n }),\n // Sending serialized `txBytes` is the future. But\n // this is not available in Comsos SDK 0.42.\n txBytes: undefined,\n });\n const response = await queryService.Simulate(request);\n return response;\n },\n },\n };\n}\nexports.setupTxExtension = setupTxExtension;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeCosmosSdkDecFromProto = exports.longify = exports.createProtobufRpcClient = exports.createPagination = exports.toAccAddress = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst pagination_1 = require(\"cosmjs-types/cosmos/base/query/v1beta1/pagination\");\nconst long_1 = __importDefault(require(\"long\"));\n/**\n * Takes a bech32 encoded address and returns the data part. The prefix is ignored and discarded.\n * This is called AccAddress in Cosmos SDK, which is basically an alias for raw binary data.\n * The result is typically 20 bytes long but not restricted to that.\n */\nfunction toAccAddress(address) {\n return (0, encoding_1.fromBech32)(address).data;\n}\nexports.toAccAddress = toAccAddress;\n/**\n * If paginationKey is set, return a `PageRequest` with the given key.\n * If paginationKey is unset, return `undefined`.\n *\n * Use this with a query response's pagination next key to\n * request the next page.\n */\nfunction createPagination(paginationKey) {\n return paginationKey\n ? pagination_1.PageRequest.fromPartial({\n key: paginationKey,\n offset: long_1.default.fromNumber(0, true),\n limit: long_1.default.fromNumber(0, true),\n countTotal: false,\n })\n : undefined;\n}\nexports.createPagination = createPagination;\nfunction createProtobufRpcClient(base) {\n return {\n request: (service, method, data) => {\n const path = `/${service}/${method}`;\n return base.queryUnverified(path, data);\n },\n };\n}\nexports.createProtobufRpcClient = createProtobufRpcClient;\n/**\n * Takes a uint64 value as string, number, Long or Uint64 and returns an unsigned Long instance\n * of it.\n */\nfunction longify(value) {\n const checkedValue = math_1.Uint64.fromString(value.toString());\n return long_1.default.fromBytesBE([...checkedValue.toBytesBigEndian()], true);\n}\nexports.longify = longify;\n/**\n * Takes a string or binary encoded `github.com/cosmos/cosmos-sdk/types.Dec` from the\n * protobuf API and converts it into a `Decimal` with 18 fractional digits.\n *\n * See https://github.com/cosmos/cosmos-sdk/issues/10863 for more context why this is needed.\n */\nfunction decodeCosmosSdkDecFromProto(input) {\n const asString = typeof input === \"string\" ? input : (0, encoding_1.fromAscii)(input);\n return math_1.Decimal.fromAtomics(asString, 18);\n}\nexports.decodeCosmosSdkDecFromProto = decodeCosmosSdkDecFromProto;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSearchByTagsQuery = exports.isSearchBySentFromOrToQuery = exports.isSearchByHeightQuery = void 0;\nfunction isSearchByHeightQuery(query) {\n return query.height !== undefined;\n}\nexports.isSearchByHeightQuery = isSearchByHeightQuery;\nfunction isSearchBySentFromOrToQuery(query) {\n return query.sentFromOrTo !== undefined;\n}\nexports.isSearchBySentFromOrToQuery = isSearchBySentFromOrToQuery;\nfunction isSearchByTagsQuery(query) {\n return query.tags !== undefined;\n}\nexports.isSearchByTagsQuery = isSearchByTagsQuery;\n//# sourceMappingURL=search.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningStargateClient = exports.defaultRegistryTypes = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst tx_1 = require(\"cosmjs-types/cosmos/authz/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/bank/v1beta1/tx\");\nconst coin_1 = require(\"cosmjs-types/cosmos/base/v1beta1/coin\");\nconst tx_3 = require(\"cosmjs-types/cosmos/distribution/v1beta1/tx\");\nconst tx_4 = require(\"cosmjs-types/cosmos/feegrant/v1beta1/tx\");\nconst tx_5 = require(\"cosmjs-types/cosmos/gov/v1beta1/tx\");\nconst tx_6 = require(\"cosmjs-types/cosmos/staking/v1beta1/tx\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_7 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_8 = require(\"cosmjs-types/ibc/applications/transfer/v1/tx\");\nconst tx_9 = require(\"cosmjs-types/ibc/core/channel/v1/tx\");\nconst tx_10 = require(\"cosmjs-types/ibc/core/client/v1/tx\");\nconst tx_11 = require(\"cosmjs-types/ibc/core/connection/v1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\nconst aminotypes_1 = require(\"./aminotypes\");\nconst fee_1 = require(\"./fee\");\nconst stargateclient_1 = require(\"./stargateclient\");\nexports.defaultRegistryTypes = [\n [\"/cosmos.authz.v1beta1.MsgExec\", tx_1.MsgExec],\n [\"/cosmos.authz.v1beta1.MsgGrant\", tx_1.MsgGrant],\n [\"/cosmos.authz.v1beta1.MsgRevoke\", tx_1.MsgRevoke],\n [\"/cosmos.bank.v1beta1.MsgMultiSend\", tx_2.MsgMultiSend],\n [\"/cosmos.bank.v1beta1.MsgSend\", tx_2.MsgSend],\n [\"/cosmos.base.v1beta1.Coin\", coin_1.Coin],\n [\"/cosmos.distribution.v1beta1.MsgFundCommunityPool\", tx_3.MsgFundCommunityPool],\n [\"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\", tx_3.MsgSetWithdrawAddress],\n [\"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\", tx_3.MsgWithdrawDelegatorReward],\n [\"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\", tx_3.MsgWithdrawValidatorCommission],\n [\"/cosmos.feegrant.v1beta1.MsgGrantAllowance\", tx_4.MsgGrantAllowance],\n [\"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\", tx_4.MsgRevokeAllowance],\n [\"/cosmos.gov.v1beta1.MsgDeposit\", tx_5.MsgDeposit],\n [\"/cosmos.gov.v1beta1.MsgSubmitProposal\", tx_5.MsgSubmitProposal],\n [\"/cosmos.gov.v1beta1.MsgVote\", tx_5.MsgVote],\n [\"/cosmos.staking.v1beta1.MsgBeginRedelegate\", tx_6.MsgBeginRedelegate],\n [\"/cosmos.staking.v1beta1.MsgCreateValidator\", tx_6.MsgCreateValidator],\n [\"/cosmos.staking.v1beta1.MsgDelegate\", tx_6.MsgDelegate],\n [\"/cosmos.staking.v1beta1.MsgEditValidator\", tx_6.MsgEditValidator],\n [\"/cosmos.staking.v1beta1.MsgUndelegate\", tx_6.MsgUndelegate],\n [\"/ibc.applications.transfer.v1.MsgTransfer\", tx_8.MsgTransfer],\n [\"/ibc.core.channel.v1.MsgAcknowledgement\", tx_9.MsgAcknowledgement],\n [\"/ibc.core.channel.v1.MsgChannelCloseConfirm\", tx_9.MsgChannelCloseConfirm],\n [\"/ibc.core.channel.v1.MsgChannelCloseInit\", tx_9.MsgChannelCloseInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenAck\", tx_9.MsgChannelOpenAck],\n [\"/ibc.core.channel.v1.MsgChannelOpenConfirm\", tx_9.MsgChannelOpenConfirm],\n [\"/ibc.core.channel.v1.MsgChannelOpenInit\", tx_9.MsgChannelOpenInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenTry\", tx_9.MsgChannelOpenTry],\n [\"/ibc.core.channel.v1.MsgRecvPacket\", tx_9.MsgRecvPacket],\n [\"/ibc.core.channel.v1.MsgTimeout\", tx_9.MsgTimeout],\n [\"/ibc.core.channel.v1.MsgTimeoutOnClose\", tx_9.MsgTimeoutOnClose],\n [\"/ibc.core.client.v1.MsgCreateClient\", tx_10.MsgCreateClient],\n [\"/ibc.core.client.v1.MsgSubmitMisbehaviour\", tx_10.MsgSubmitMisbehaviour],\n [\"/ibc.core.client.v1.MsgUpdateClient\", tx_10.MsgUpdateClient],\n [\"/ibc.core.client.v1.MsgUpgradeClient\", tx_10.MsgUpgradeClient],\n [\"/ibc.core.connection.v1.MsgConnectionOpenAck\", tx_11.MsgConnectionOpenAck],\n [\"/ibc.core.connection.v1.MsgConnectionOpenConfirm\", tx_11.MsgConnectionOpenConfirm],\n [\"/ibc.core.connection.v1.MsgConnectionOpenInit\", tx_11.MsgConnectionOpenInit],\n [\"/ibc.core.connection.v1.MsgConnectionOpenTry\", tx_11.MsgConnectionOpenTry],\n];\nfunction createDefaultRegistry() {\n return new proto_signing_1.Registry(exports.defaultRegistryTypes);\n}\nclass SigningStargateClient extends stargateclient_1.StargateClient {\n constructor(tmClient, signer, options) {\n var _a;\n super(tmClient);\n // TODO: do we really want to set a default here? Ideally we could get it from the signer such that users only have to set it once.\n const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : \"cosmos\";\n const { registry = createDefaultRegistry(), aminoTypes = new aminotypes_1.AminoTypes({ prefix }) } = options;\n this.registry = registry;\n this.aminoTypes = aminoTypes;\n this.signer = signer;\n this.broadcastTimeoutMs = options.broadcastTimeoutMs;\n this.broadcastPollIntervalMs = options.broadcastPollIntervalMs;\n this.gasPrice = options.gasPrice;\n }\n static async connectWithSigner(endpoint, signer, options = {}) {\n const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint);\n return new SigningStargateClient(tmClient, signer, options);\n }\n /**\n * Creates a client in offline mode.\n *\n * This should only be used in niche cases where you know exactly what you're doing,\n * e.g. when building an offline signing application.\n *\n * When you try to use online functionality with such a signer, an\n * exception will be raised.\n */\n static async offline(signer, options = {}) {\n return new SigningStargateClient(undefined, signer, options);\n }\n async simulate(signerAddress, messages, memo) {\n const anyMsgs = messages.map((m) => this.registry.encodeAsAny(m));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey);\n const { sequence } = await this.getSequence(signerAddress);\n const { gasInfo } = await this.forceGetQueryClient().tx.simulate(anyMsgs, memo, pubkey, sequence);\n (0, utils_1.assertDefined)(gasInfo);\n return math_1.Uint53.fromString(gasInfo.gasUsed.toString()).toNumber();\n }\n async sendTokens(senderAddress, recipientAddress, amount, fee, memo = \"\") {\n const sendMsg = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSend\",\n value: {\n fromAddress: senderAddress,\n toAddress: recipientAddress,\n amount: [...amount],\n },\n };\n return this.signAndBroadcast(senderAddress, [sendMsg], fee, memo);\n }\n async delegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const delegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegate\",\n value: tx_6.MsgDelegate.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [delegateMsg], fee, memo);\n }\n async undelegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const undelegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegate\",\n value: tx_6.MsgUndelegate.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [undelegateMsg], fee, memo);\n }\n async withdrawRewards(delegatorAddress, validatorAddress, fee, memo = \"\") {\n const withdrawMsg = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n value: tx_3.MsgWithdrawDelegatorReward.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [withdrawMsg], fee, memo);\n }\n async sendIbcTokens(senderAddress, recipientAddress, transferAmount, sourcePort, sourceChannel, timeoutHeight, \n /** timeout in seconds */\n timeoutTimestamp, fee, memo = \"\") {\n const timeoutTimestampNanoseconds = timeoutTimestamp\n ? long_1.default.fromNumber(timeoutTimestamp).multiply(1000000000)\n : undefined;\n const transferMsg = {\n typeUrl: \"/ibc.applications.transfer.v1.MsgTransfer\",\n value: tx_8.MsgTransfer.fromPartial({\n sourcePort: sourcePort,\n sourceChannel: sourceChannel,\n sender: senderAddress,\n receiver: recipientAddress,\n token: transferAmount,\n timeoutHeight: timeoutHeight,\n timeoutTimestamp: timeoutTimestampNanoseconds,\n }),\n };\n return this.signAndBroadcast(senderAddress, [transferMsg], fee, memo);\n }\n async signAndBroadcast(signerAddress, messages, fee, memo = \"\") {\n let usedFee;\n if (fee == \"auto\" || typeof fee === \"number\") {\n (0, utils_1.assertDefined)(this.gasPrice, \"Gas price must be set in the client options when auto gas is used.\");\n const gasEstimation = await this.simulate(signerAddress, messages, memo);\n const muliplier = typeof fee === \"number\" ? fee : 1.3;\n usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * muliplier), this.gasPrice);\n }\n else {\n usedFee = fee;\n }\n const txRaw = await this.sign(signerAddress, messages, usedFee, memo);\n const txBytes = tx_7.TxRaw.encode(txRaw).finish();\n return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs);\n }\n /**\n * Gets account number and sequence from the API, creates a sign doc,\n * creates a single signature and assembles the signed transaction.\n *\n * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer.\n *\n * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them\n * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing\n * (See the SigningStargateClient.offline constructor).\n */\n async sign(signerAddress, messages, fee, memo, explicitSignerData) {\n let signerData;\n if (explicitSignerData) {\n signerData = explicitSignerData;\n }\n else {\n const { accountNumber, sequence } = await this.getSequence(signerAddress);\n const chainId = await this.getChainId();\n signerData = {\n accountNumber: accountNumber,\n sequence: sequence,\n chainId: chainId,\n };\n }\n return (0, proto_signing_1.isOfflineDirectSigner)(this.signer)\n ? this.signDirect(signerAddress, messages, fee, memo, signerData)\n : this.signAmino(signerAddress, messages, fee, memo, signerData);\n }\n async signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {\n (0, utils_1.assert)(!(0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg));\n const signDoc = (0, amino_1.makeSignDoc)(msgs, fee, chainId, memo, accountNumber, sequence);\n const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc);\n const signedTxBody = {\n messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)),\n memo: signed.memo,\n };\n const signedTxBodyEncodeObject = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: signedTxBody,\n };\n const signedTxBodyBytes = this.registry.encode(signedTxBodyEncodeObject);\n const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber();\n const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber();\n const signedAuthInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signMode);\n return tx_7.TxRaw.fromPartial({\n bodyBytes: signedTxBodyBytes,\n authInfoBytes: signedAuthInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n async signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {\n (0, utils_1.assert)((0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const txBodyEncodeObject = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: messages,\n memo: memo,\n },\n };\n const txBodyBytes = this.registry.encode(txBodyEncodeObject);\n const gasLimit = math_1.Int53.fromString(fee.gas).toNumber();\n const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence }], fee.amount, gasLimit);\n const signDoc = (0, proto_signing_1.makeSignDoc)(txBodyBytes, authInfoBytes, chainId, accountNumber);\n const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc);\n return tx_7.TxRaw.fromPartial({\n bodyBytes: signed.bodyBytes,\n authInfoBytes: signed.authInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n}\nexports.SigningStargateClient = SigningStargateClient;\n//# sourceMappingURL=signingstargateclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StargateClient = exports.assertIsDeliverTxFailure = exports.assertIsDeliverTxSuccess = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = exports.TimeoutError = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst accounts_1 = require(\"./accounts\");\nconst queries_1 = require(\"./queries\");\nconst search_1 = require(\"./search\");\nclass TimeoutError extends Error {\n constructor(message, txId) {\n super(message);\n this.txId = txId;\n }\n}\nexports.TimeoutError = TimeoutError;\nfunction isDeliverTxFailure(result) {\n return !!result.code;\n}\nexports.isDeliverTxFailure = isDeliverTxFailure;\nfunction isDeliverTxSuccess(result) {\n return !isDeliverTxFailure(result);\n}\nexports.isDeliverTxSuccess = isDeliverTxSuccess;\n/**\n * Ensures the given result is a success. Throws a detailed error message otherwise.\n */\nfunction assertIsDeliverTxSuccess(result) {\n if (isDeliverTxFailure(result)) {\n throw new Error(`Error when broadcasting tx ${result.transactionHash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`);\n }\n}\nexports.assertIsDeliverTxSuccess = assertIsDeliverTxSuccess;\n/**\n * Ensures the given result is a failure. Throws a detailed error message otherwise.\n */\nfunction assertIsDeliverTxFailure(result) {\n if (isDeliverTxSuccess(result)) {\n throw new Error(`Transaction ${result.transactionHash} did not fail at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`);\n }\n}\nexports.assertIsDeliverTxFailure = assertIsDeliverTxFailure;\nclass StargateClient {\n constructor(tmClient) {\n if (tmClient) {\n this.tmClient = tmClient;\n this.queryClient = queries_1.QueryClient.withExtensions(tmClient, queries_1.setupAuthExtension, queries_1.setupBankExtension, queries_1.setupStakingExtension, queries_1.setupTxExtension);\n }\n }\n static async connect(endpoint) {\n const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint);\n return new StargateClient(tmClient);\n }\n getTmClient() {\n return this.tmClient;\n }\n forceGetTmClient() {\n if (!this.tmClient) {\n throw new Error(\"Tendermint client not available. You cannot use online functionality in offline mode.\");\n }\n return this.tmClient;\n }\n getQueryClient() {\n return this.queryClient;\n }\n forceGetQueryClient() {\n if (!this.queryClient) {\n throw new Error(\"Query client not available. You cannot use online functionality in offline mode.\");\n }\n return this.queryClient;\n }\n async getChainId() {\n if (!this.chainId) {\n const response = await this.forceGetTmClient().status();\n const chainId = response.nodeInfo.network;\n if (!chainId)\n throw new Error(\"Chain ID must not be empty\");\n this.chainId = chainId;\n }\n return this.chainId;\n }\n async getHeight() {\n const status = await this.forceGetTmClient().status();\n return status.syncInfo.latestBlockHeight;\n }\n async getAccount(searchAddress) {\n try {\n const account = await this.forceGetQueryClient().auth.account(searchAddress);\n return account ? (0, accounts_1.accountFromAny)(account) : null;\n }\n catch (error) {\n if (/rpc error: code = NotFound/i.test(error.toString())) {\n return null;\n }\n throw error;\n }\n }\n async getSequence(address) {\n const account = await this.getAccount(address);\n if (!account) {\n throw new Error(\"Account does not exist on chain. Send some tokens there before trying to query sequence.\");\n }\n return {\n accountNumber: account.accountNumber,\n sequence: account.sequence,\n };\n }\n async getBlock(height) {\n const response = await this.forceGetTmClient().block(height);\n return {\n id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(),\n header: {\n version: {\n block: new math_1.Uint53(response.block.header.version.block).toString(),\n app: new math_1.Uint53(response.block.header.version.app).toString(),\n },\n height: response.block.header.height,\n chainId: response.block.header.chainId,\n time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time),\n },\n txs: response.block.txs,\n };\n }\n async getBalance(address, searchDenom) {\n return this.forceGetQueryClient().bank.balance(address, searchDenom);\n }\n /**\n * Queries all balances for all denoms that belong to this address.\n *\n * Uses the grpc queries (which iterates over the store internally), and we cannot get\n * proofs from such a method.\n */\n async getAllBalances(address) {\n return this.forceGetQueryClient().bank.allBalances(address);\n }\n async getDelegation(delegatorAddress, validatorAddress) {\n var _a;\n let delegatedAmount;\n try {\n delegatedAmount = (_a = (await this.forceGetQueryClient().staking.delegation(delegatorAddress, validatorAddress)).delegationResponse) === null || _a === void 0 ? void 0 : _a.balance;\n }\n catch (e) {\n if (e.toString().includes(\"key not found\")) {\n // ignore, `delegatedAmount` remains undefined\n }\n else {\n throw e;\n }\n }\n return delegatedAmount || null;\n }\n async getTx(id) {\n var _a;\n const results = await this.txsQuery(`tx.hash='${id}'`);\n return (_a = results[0]) !== null && _a !== void 0 ? _a : null;\n }\n async searchTx(query, filter = {}) {\n const minHeight = filter.minHeight || 0;\n const maxHeight = filter.maxHeight || Number.MAX_SAFE_INTEGER;\n if (maxHeight < minHeight)\n return []; // optional optimization\n function withFilters(originalQuery) {\n return `${originalQuery} AND tx.height>=${minHeight} AND tx.height<=${maxHeight}`;\n }\n let txs;\n if ((0, search_1.isSearchByHeightQuery)(query)) {\n txs =\n query.height >= minHeight && query.height <= maxHeight\n ? await this.txsQuery(`tx.height=${query.height}`)\n : [];\n }\n else if ((0, search_1.isSearchBySentFromOrToQuery)(query)) {\n const sentQuery = withFilters(`message.module='bank' AND transfer.sender='${query.sentFromOrTo}'`);\n const receivedQuery = withFilters(`message.module='bank' AND transfer.recipient='${query.sentFromOrTo}'`);\n const [sent, received] = await Promise.all([sentQuery, receivedQuery].map((rawQuery) => this.txsQuery(rawQuery)));\n const sentHashes = sent.map((t) => t.hash);\n txs = [...sent, ...received.filter((t) => !sentHashes.includes(t.hash))];\n }\n else if ((0, search_1.isSearchByTagsQuery)(query)) {\n const rawQuery = withFilters(query.tags.map((t) => `${t.key}='${t.value}'`).join(\" AND \"));\n txs = await this.txsQuery(rawQuery);\n }\n else {\n throw new Error(\"Unknown query type\");\n }\n const filtered = txs.filter((tx) => tx.height >= minHeight && tx.height <= maxHeight);\n return filtered;\n }\n disconnect() {\n if (this.tmClient)\n this.tmClient.disconnect();\n }\n /**\n * Broadcasts a signed transaction to the network and monitors its inclusion in a block.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`.\n *\n * If the transaction is included in a block, a `DeliverTxResponse` is returned. The caller then\n * usually needs to check for execution success or failure.\n */\n async broadcastTx(tx, timeoutMs = 60000, pollIntervalMs = 3000) {\n let timedOut = false;\n const txPollTimeout = setTimeout(() => {\n timedOut = true;\n }, timeoutMs);\n const pollForTx = async (txId) => {\n if (timedOut) {\n throw new TimeoutError(`Transaction with ID ${txId} was submitted but was not yet found on the chain. You might want to check later.`, txId);\n }\n await (0, utils_1.sleep)(pollIntervalMs);\n const result = await this.getTx(txId);\n return result\n ? {\n code: result.code,\n height: result.height,\n rawLog: result.rawLog,\n transactionHash: txId,\n gasUsed: result.gasUsed,\n gasWanted: result.gasWanted,\n }\n : pollForTx(txId);\n };\n const broadcasted = await this.forceGetTmClient().broadcastTxSync({ tx });\n if (broadcasted.code) {\n throw new Error(`Broadcasting transaction failed with code ${broadcasted.code} (codespace: ${broadcasted.codeSpace}). Log: ${broadcasted.log}`);\n }\n const transactionId = (0, encoding_1.toHex)(broadcasted.hash).toUpperCase();\n return new Promise((resolve, reject) => pollForTx(transactionId).then((value) => {\n clearTimeout(txPollTimeout);\n resolve(value);\n }, (error) => {\n clearTimeout(txPollTimeout);\n reject(error);\n }));\n }\n async txsQuery(query) {\n const results = await this.forceGetTmClient().txSearchAll({ query: query });\n return results.txs.map((tx) => {\n return {\n height: tx.height,\n hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(),\n code: tx.result.code,\n rawLog: tx.result.log || \"\",\n tx: tx.tx,\n gasUsed: tx.result.gasUsed,\n gasWanted: tx.result.gasWanted,\n };\n });\n }\n}\nexports.StargateClient = StargateClient;\n//# sourceMappingURL=stargateclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concat = void 0;\nconst xstream_1 = require(\"xstream\");\n/**\n * An implementation of concat that buffers all source stream events\n *\n * Marble diagram:\n *\n * ```text\n * --1--2---3---4-|\n * -a--b-c--d-|\n * --------X---------Y---------Z-\n * concat\n * --1--2---3---4-abcdXY-------Z-\n * ```\n *\n * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves\n * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170.\n *\n */\nfunction concat(...streams) {\n const subscriptions = new Array();\n const queues = new Array(); // one queue per stream\n const completedStreams = new Set();\n let activeStreamIndex = 0;\n function reset() {\n while (subscriptions.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const subscription = subscriptions.shift();\n subscription.unsubscribe();\n }\n queues.length = 0;\n completedStreams.clear();\n activeStreamIndex = 0;\n }\n const producer = {\n start: (listener) => {\n streams.forEach((_) => queues.push([]));\n function emitAllQueuesEvents(streamIndex) {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const element = queues[streamIndex].shift();\n if (element === undefined) {\n return;\n }\n listener.next(element);\n }\n }\n function isDone() {\n return activeStreamIndex >= streams.length;\n }\n if (isDone()) {\n listener.complete();\n return;\n }\n streams.forEach((stream, index) => {\n subscriptions.push(stream.subscribe({\n next: (value) => {\n if (index === activeStreamIndex) {\n listener.next(value);\n }\n else {\n queues[index].push(value);\n }\n },\n complete: () => {\n completedStreams.add(index);\n while (completedStreams.has(activeStreamIndex)) {\n // this stream completed: emit all and move on\n emitAllQueuesEvents(activeStreamIndex);\n activeStreamIndex++;\n }\n if (isDone()) {\n listener.complete();\n }\n else {\n // now active stream can have some events queued but did not yet complete\n emitAllQueuesEvents(activeStreamIndex);\n }\n },\n error: (error) => {\n listener.error(error);\n reset();\n },\n }));\n });\n },\n stop: () => {\n reset();\n },\n };\n return xstream_1.Stream.create(producer);\n}\nexports.concat = concat;\n//# sourceMappingURL=concat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultValueProducer = void 0;\n// allows pre-producing values before anyone is listening\nclass DefaultValueProducer {\n constructor(value, callbacks) {\n this.callbacks = callbacks;\n this.internalValue = value;\n }\n get value() {\n return this.internalValue;\n }\n /**\n * Update the current value.\n *\n * If producer is active (i.e. someone is listening), this emits an event.\n * If not, just the current value is updated.\n */\n update(value) {\n this.internalValue = value;\n if (this.listener) {\n this.listener.next(value);\n }\n }\n /**\n * Produce an error\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n error(error) {\n if (this.listener) {\n this.listener.error(error);\n }\n }\n /**\n * Called by the stream. Do not call this directly.\n */\n start(listener) {\n this.listener = listener;\n listener.next(this.internalValue);\n if (this.callbacks) {\n this.callbacks.onStarted();\n }\n }\n /**\n * Called by the stream. Do not call this directly.\n */\n stop() {\n if (this.callbacks) {\n this.callbacks.onStop();\n }\n this.listener = undefined;\n }\n}\nexports.DefaultValueProducer = DefaultValueProducer;\n//# sourceMappingURL=defaultvalueproducer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dropDuplicates = void 0;\n/**\n * Drops duplicate values in a stream.\n *\n * Marble diagram:\n *\n * ```text\n * -1-1-1-2-4-3-3-4--\n * dropDuplicates\n * -1-----2-4-3------\n * ```\n *\n * Each value must be uniquely identified by a string given by\n * valueToKey(value).\n *\n * Internally this maintains a set of keys that have been processed already,\n * i.e. memory consumption and Set lookup times should be considered when\n * using this function.\n */\nfunction dropDuplicates(valueToKey) {\n const operand = (instream) => {\n const emittedKeys = new Set();\n const deduplicatedStream = instream\n .filter((value) => !emittedKeys.has(valueToKey(value)))\n .debug((value) => emittedKeys.add(valueToKey(value)));\n return deduplicatedStream;\n };\n return operand;\n}\nexports.dropDuplicates = dropDuplicates;\n//# sourceMappingURL=dropduplicates.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0;\nvar concat_1 = require(\"./concat\");\nObject.defineProperty(exports, \"concat\", { enumerable: true, get: function () { return concat_1.concat; } });\nvar defaultvalueproducer_1 = require(\"./defaultvalueproducer\");\nObject.defineProperty(exports, \"DefaultValueProducer\", { enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } });\nvar dropduplicates_1 = require(\"./dropduplicates\");\nObject.defineProperty(exports, \"dropDuplicates\", { enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } });\nvar promise_1 = require(\"./promise\");\nObject.defineProperty(exports, \"firstEvent\", { enumerable: true, get: function () { return promise_1.firstEvent; } });\nObject.defineProperty(exports, \"fromListPromise\", { enumerable: true, get: function () { return promise_1.fromListPromise; } });\nObject.defineProperty(exports, \"toListPromise\", { enumerable: true, get: function () { return promise_1.toListPromise; } });\n__exportStar(require(\"./reducer\"), exports);\nvar valueandupdates_1 = require(\"./valueandupdates\");\nObject.defineProperty(exports, \"ValueAndUpdates\", { enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.firstEvent = exports.toListPromise = exports.fromListPromise = void 0;\nconst xstream_1 = require(\"xstream\");\n/**\n * Emits one event for each list element as soon as the promise resolves\n */\nfunction fromListPromise(promise) {\n const producer = {\n start: (listener) => {\n // the code in `start` runs as soon as anyone listens to the stream\n promise\n .then((iterable) => {\n for (const element of iterable) {\n listener.next(element);\n }\n listener.complete();\n })\n .catch((error) => listener.error(error));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n stop: () => { },\n };\n return xstream_1.Stream.create(producer);\n}\nexports.fromListPromise = fromListPromise;\n/**\n * Listens to stream and collects events. When `count` events are collected,\n * the promise resolves with an array of events.\n *\n * Rejects if stream completes before `count` events are collected.\n */\nasync function toListPromise(stream, count) {\n return new Promise((resolve, reject) => {\n if (count === 0) {\n resolve([]);\n return;\n }\n const events = new Array();\n // take() unsubscribes from source stream automatically\n stream.take(count).subscribe({\n next: (event) => {\n events.push(event);\n if (events.length === count) {\n resolve(events);\n }\n },\n complete: () => {\n reject(`Stream completed before all events could be collected. ` +\n `Collected ${events.length}, expected ${count}`);\n },\n error: (error) => reject(error),\n });\n });\n}\nexports.toListPromise = toListPromise;\n/**\n * Listens to stream, collects one event and revolves.\n *\n * Rejects if stream completes before one event was fired.\n */\nasync function firstEvent(stream) {\n return (await toListPromise(stream, 1))[0];\n}\nexports.firstEvent = firstEvent;\n//# sourceMappingURL=promise.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lastValue = exports.asArray = exports.countStream = exports.Reducer = void 0;\n// Reducer takes a stream of events T and a ReducerFunc, that\n// materializes a state of type U.\nclass Reducer {\n constructor(stream, reducer, initState) {\n this.stream = stream;\n this.reducer = reducer;\n this.state = initState;\n this.completed = new Promise((resolve, reject) => {\n const subscription = this.stream.subscribe({\n next: (evt) => {\n this.state = this.reducer(this.state, evt);\n },\n complete: () => {\n resolve();\n // this must happen after resolve, to ensure stream.subscribe() has finished\n subscription.unsubscribe();\n },\n error: (err) => {\n reject(err);\n // the stream already closed on error, but unsubscribe to be safe\n subscription.unsubscribe();\n },\n });\n });\n }\n // value returns current materialized state\n value() {\n return this.state;\n }\n // finished resolves on completed stream, rejects on stream error\n async finished() {\n return this.completed;\n }\n}\nexports.Reducer = Reducer;\nfunction increment(sum, _) {\n return sum + 1;\n}\n// countStream returns a reducer that contains current count\n// of events on the stream\nfunction countStream(stream) {\n return new Reducer(stream, increment, 0);\n}\nexports.countStream = countStream;\nfunction append(list, evt) {\n return [...list, evt];\n}\n// asArray maintains an array containing all events that have\n// occurred on the stream\nfunction asArray(stream) {\n return new Reducer(stream, append, []);\n}\nexports.asArray = asArray;\nfunction last(_, event) {\n return event;\n}\n// lastValue returns the last value read from the stream, or undefined if no values sent\nfunction lastValue(stream) {\n return new Reducer(stream, last, undefined);\n}\nexports.lastValue = lastValue;\n//# sourceMappingURL=reducer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueAndUpdates = void 0;\nconst xstream_1 = require(\"xstream\");\n/**\n * A read only wrapper around DefaultValueProducer that allows\n * to synchronously get the current value using the .value property\n * and listen to to updates by suscribing to the .updates stream\n */\nclass ValueAndUpdates {\n constructor(producer) {\n this.producer = producer;\n this.updates = xstream_1.MemoryStream.createWithMemory(this.producer);\n }\n get value() {\n return this.producer.value;\n }\n /**\n * Resolves as soon as search value is found.\n *\n * @param search either a value or a function that must return true when found\n * @returns the value of the update that caused the search match\n */\n async waitFor(search) {\n const searchImplementation = typeof search === \"function\" ? search : (value) => value === search;\n return new Promise((resolve, reject) => {\n const subscription = this.updates.subscribe({\n next: (newValue) => {\n if (searchImplementation(newValue)) {\n resolve(newValue);\n // MemoryStream.subscribe() calls next with the last value.\n // Make async to ensure the subscription exists\n setTimeout(() => subscription.unsubscribe(), 0);\n }\n },\n complete: () => {\n subscription.unsubscribe();\n reject(\"Update stream completed without expected value\");\n },\n error: (error) => {\n reject(error);\n },\n });\n });\n }\n}\nexports.ValueAndUpdates = ValueAndUpdates;\n//# sourceMappingURL=valueandupdates.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pubkeyToAddress = exports.pubkeyToRawAddress = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\n// For secp256k1 this assumes we already have a compressed pubkey.\nfunction pubkeyToRawAddress(type, data) {\n switch (type) {\n case \"ed25519\":\n return rawEd25519PubkeyToRawAddress(data);\n case \"secp256k1\":\n return rawSecp256k1PubkeyToRawAddress(data);\n default:\n // Keep this case here to guard against new types being added but not handled\n throw new Error(`Pubkey type ${type} not supported`);\n }\n}\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nfunction pubkeyToAddress(type, data) {\n return (0, encoding_1.toHex)(pubkeyToRawAddress(type, data)).toUpperCase();\n}\nexports.pubkeyToAddress = pubkeyToAddress;\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateTime = exports.toSeconds = exports.fromSeconds = exports.toRfc3339WithNanoseconds = exports.fromRfc3339WithNanoseconds = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction fromRfc3339WithNanoseconds(dateTimeString) {\n const out = (0, encoding_1.fromRfc3339)(dateTimeString);\n const nanosecondsMatch = dateTimeString.match(/\\.(\\d+)Z$/);\n const nanoseconds = nanosecondsMatch ? nanosecondsMatch[1].slice(3) : \"\";\n out.nanoseconds = parseInt(nanoseconds.padEnd(6, \"0\"), 10);\n return out;\n}\nexports.fromRfc3339WithNanoseconds = fromRfc3339WithNanoseconds;\nfunction toRfc3339WithNanoseconds(dateTime) {\n var _a, _b;\n const millisecondIso = dateTime.toISOString();\n const nanoseconds = (_b = (_a = dateTime.nanoseconds) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"\";\n return `${millisecondIso.slice(0, -1)}${nanoseconds.padStart(6, \"0\")}Z`;\n}\nexports.toRfc3339WithNanoseconds = toRfc3339WithNanoseconds;\nfunction fromSeconds(seconds, nanos = 0) {\n const checkedNanos = new math_1.Uint32(nanos).toNumber();\n if (checkedNanos > 999999999) {\n throw new Error(\"Nano seconds must not exceed 999999999\");\n }\n const out = new Date(seconds * 1000 + Math.floor(checkedNanos / 1000000));\n out.nanoseconds = checkedNanos % 1000000;\n return out;\n}\nexports.fromSeconds = fromSeconds;\n/**\n * Calculates the UNIX timestamp in seconds as well as the nanoseconds after the given second.\n *\n * This is useful when dealing with external systems like the protobuf type\n * [.google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp)\n * or any other system that does not use millisecond precision.\n */\nfunction toSeconds(date) {\n var _a;\n return {\n seconds: Math.floor(date.getTime() / 1000),\n nanos: (date.getTime() % 1000) * 1000000 + ((_a = date.nanoseconds) !== null && _a !== void 0 ? _a : 0),\n };\n}\nexports.toSeconds = toSeconds;\n/** @deprecated Use fromRfc3339WithNanoseconds/toRfc3339WithNanoseconds instead */\nclass DateTime {\n /** @deprecated Use fromRfc3339WithNanoseconds instead */\n static decode(dateTimeString) {\n return fromRfc3339WithNanoseconds(dateTimeString);\n }\n /** @deprecated Use toRfc3339WithNanoseconds instead */\n static encode(dateTime) {\n return toRfc3339WithNanoseconds(dateTime);\n }\n}\nexports.DateTime = DateTime;\n//# sourceMappingURL=dates.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockIdFlag = exports.Tendermint34Client = exports.tendermint34 = exports.VoteType = exports.SubscriptionEventType = exports.Method = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.WebsocketClient = exports.HttpClient = exports.toSeconds = exports.toRfc3339WithNanoseconds = exports.fromSeconds = exports.fromRfc3339WithNanoseconds = exports.DateTime = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar dates_1 = require(\"./dates\");\nObject.defineProperty(exports, \"DateTime\", { enumerable: true, get: function () { return dates_1.DateTime; } });\nObject.defineProperty(exports, \"fromRfc3339WithNanoseconds\", { enumerable: true, get: function () { return dates_1.fromRfc3339WithNanoseconds; } });\nObject.defineProperty(exports, \"fromSeconds\", { enumerable: true, get: function () { return dates_1.fromSeconds; } });\nObject.defineProperty(exports, \"toRfc3339WithNanoseconds\", { enumerable: true, get: function () { return dates_1.toRfc3339WithNanoseconds; } });\nObject.defineProperty(exports, \"toSeconds\", { enumerable: true, get: function () { return dates_1.toSeconds; } });\nvar rpcclients_1 = require(\"./rpcclients\"); // TODO: Why do we export those outside of this package?\nObject.defineProperty(exports, \"HttpClient\", { enumerable: true, get: function () { return rpcclients_1.HttpClient; } });\nObject.defineProperty(exports, \"WebsocketClient\", { enumerable: true, get: function () { return rpcclients_1.WebsocketClient; } });\nvar tendermint34_1 = require(\"./tendermint34\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return tendermint34_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return tendermint34_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return tendermint34_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return tendermint34_1.SubscriptionEventType; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return tendermint34_1.VoteType; } });\nexports.tendermint34 = __importStar(require(\"./tendermint34\"));\nvar tendermint34_2 = require(\"./tendermint34\");\nObject.defineProperty(exports, \"Tendermint34Client\", { enumerable: true, get: function () { return tendermint34_2.Tendermint34Client; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"BlockIdFlag\", { enumerable: true, get: function () { return types_1.BlockIdFlag; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createJsonRpcRequest = void 0;\nconst numbersWithoutZero = \"123456789\";\n/** generates a random numeric character */\nfunction randomNumericChar() {\n return numbersWithoutZero[Math.floor(Math.random() * numbersWithoutZero.length)];\n}\n/**\n * An (absolutely not cryptographically secure) random integer > 0.\n */\nfunction randomId() {\n return parseInt(Array.from({ length: 12 })\n .map(() => randomNumericChar())\n .join(\"\"), 10);\n}\n/** Creates a JSON-RPC request with random ID */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction createJsonRpcRequest(method, params) {\n const paramsCopy = params ? { ...params } : {};\n return {\n jsonrpc: \"2.0\",\n id: randomId(),\n method: method,\n params: paramsCopy,\n };\n}\nexports.createJsonRpcRequest = createJsonRpcRequest;\n//# sourceMappingURL=jsonrpc.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.http = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst axios_1 = __importDefault(require(\"axios\"));\nconst rpcclient_1 = require(\"./rpcclient\");\nfunction filterBadStatus(res) {\n if (res.status >= 400) {\n throw new Error(`Bad status on response: ${res.status}`);\n }\n return res;\n}\n/**\n * Helper to work around missing CORS support in Tendermint (https://github.com/tendermint/tendermint/pull/2800)\n *\n * For some reason, fetch does not complain about missing server-side CORS support.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nasync function http(method, url, request) {\n if (typeof fetch !== \"undefined\") {\n const body = request ? JSON.stringify(request) : undefined;\n return fetch(url, { method: method, body: body })\n .then(filterBadStatus)\n .then((res) => res.json());\n }\n else {\n return axios_1.default.request({ url: url, method: method, data: request }).then((res) => res.data);\n }\n}\nexports.http = http;\nclass HttpClient {\n constructor(url) {\n // accept host.name:port and assume http protocol\n this.url = (0, rpcclient_1.hasProtocol)(url) ? url : \"http://\" + url;\n }\n disconnect() {\n // nothing to be done\n }\n async execute(request) {\n const response = (0, json_rpc_1.parseJsonRpcResponse)(await http(\"POST\", this.url, request));\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n throw new Error(JSON.stringify(response.error));\n }\n return response;\n }\n}\nexports.HttpClient = HttpClient;\n//# sourceMappingURL=httpclient.js.map","\"use strict\";\n// This folder contains Tendermint-specific RPC clients\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClient = exports.instanceOfRpcStreamingClient = exports.HttpClient = void 0;\nvar httpclient_1 = require(\"./httpclient\");\nObject.defineProperty(exports, \"HttpClient\", { enumerable: true, get: function () { return httpclient_1.HttpClient; } });\nvar rpcclient_1 = require(\"./rpcclient\");\nObject.defineProperty(exports, \"instanceOfRpcStreamingClient\", { enumerable: true, get: function () { return rpcclient_1.instanceOfRpcStreamingClient; } });\nvar websocketclient_1 = require(\"./websocketclient\");\nObject.defineProperty(exports, \"WebsocketClient\", { enumerable: true, get: function () { return websocketclient_1.WebsocketClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasProtocol = exports.instanceOfRpcStreamingClient = void 0;\nfunction instanceOfRpcStreamingClient(client) {\n return typeof client.listen === \"function\";\n}\nexports.instanceOfRpcStreamingClient = instanceOfRpcStreamingClient;\n// Helpers for all RPC clients\nfunction hasProtocol(url) {\n return url.search(\"://\") !== -1;\n}\nexports.hasProtocol = hasProtocol;\n//# sourceMappingURL=rpcclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClient = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst socket_1 = require(\"@cosmjs/socket\");\nconst stream_1 = require(\"@cosmjs/stream\");\nconst xstream_1 = require(\"xstream\");\nconst rpcclient_1 = require(\"./rpcclient\");\nfunction defaultErrorHandler(error) {\n throw error;\n}\nfunction toJsonRpcResponse(message) {\n // this should never happen, but I want an alert if it does\n if (message.type !== \"message\") {\n throw new Error(`Unexcepted message type on websocket: ${message.type}`);\n }\n const jsonRpcEvent = (0, json_rpc_1.parseJsonRpcResponse)(JSON.parse(message.data));\n return jsonRpcEvent;\n}\nclass RpcEventProducer {\n constructor(request, socket) {\n this.running = false;\n this.subscriptions = [];\n this.request = request;\n this.socket = socket;\n }\n /**\n * Implementation of Producer.start\n */\n start(listener) {\n if (this.running) {\n throw Error(\"Already started. Please stop first before restarting.\");\n }\n this.running = true;\n this.connectToClient(listener);\n this.socket.queueRequest(JSON.stringify(this.request));\n }\n /**\n * Implementation of Producer.stop\n *\n * Called by the stream when the stream's last listener stopped listening\n * or when the producer completed.\n */\n stop() {\n this.running = false;\n // Tell the server we are done in order to save resources. We cannot wait for the result.\n // This may fail when socket connection is not open, thus ignore errors in queueRequest\n const endRequest = { ...this.request, method: \"unsubscribe\" };\n try {\n this.socket.queueRequest(JSON.stringify(endRequest));\n }\n catch (error) {\n if (error instanceof Error && error.message.match(/socket has disconnected/i)) {\n // ignore\n }\n else {\n throw error;\n }\n }\n }\n connectToClient(listener) {\n const responseStream = this.socket.events.map(toJsonRpcResponse);\n // this should unsubscribe itself, so doesn't need to be removed explicitly\n const idSubscription = responseStream\n .filter((response) => response.id === this.request.id)\n .subscribe({\n next: (response) => {\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n this.closeSubscriptions();\n listener.error(JSON.stringify(response.error));\n }\n idSubscription.unsubscribe();\n },\n });\n // this will fire on a response (success or error)\n // Tendermint adds an \"#event\" suffix for events that follow a previous subscription\n // https://github.com/tendermint/tendermint/blob/v0.23.0/rpc/core/events.go#L107\n const idEventSubscription = responseStream\n .filter((response) => response.id === this.request.id)\n .subscribe({\n next: (response) => {\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n this.closeSubscriptions();\n listener.error(JSON.stringify(response.error));\n }\n else {\n listener.next(response.result);\n }\n },\n });\n // this will fire in case the websocket disconnects cleanly\n const nonResponseSubscription = responseStream.subscribe({\n error: (error) => {\n this.closeSubscriptions();\n listener.error(error);\n },\n complete: () => {\n this.closeSubscriptions();\n listener.complete();\n },\n });\n this.subscriptions.push(idSubscription, idEventSubscription, nonResponseSubscription);\n }\n closeSubscriptions() {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n // clear unused subscriptions\n this.subscriptions = [];\n }\n}\nclass WebsocketClient {\n constructor(baseUrl, onError = defaultErrorHandler) {\n // Lazily create streams and use the same stream when listening to the same query twice.\n //\n // Creating streams is cheap since producer is not started as long as nobody listens to events. Thus this\n // map is never cleared and there is no need to do so. But unsubscribe all the subscriptions!\n this.subscriptionStreams = new Map();\n // accept host.name:port and assume ws protocol\n // make sure we don't end up with ...//websocket\n const path = baseUrl.endsWith(\"/\") ? \"websocket\" : \"/websocket\";\n const cleanBaseUrl = (0, rpcclient_1.hasProtocol)(baseUrl) ? baseUrl : \"ws://\" + baseUrl;\n this.url = cleanBaseUrl + path;\n this.socket = new socket_1.ReconnectingSocket(this.url);\n const errorSubscription = this.socket.events.subscribe({\n error: (error) => {\n onError(error);\n errorSubscription.unsubscribe();\n },\n });\n this.jsonRpcResponseStream = this.socket.events.map(toJsonRpcResponse);\n this.socket.connect();\n }\n async execute(request) {\n const pendingResponse = this.responseForRequestId(request.id);\n this.socket.queueRequest(JSON.stringify(request));\n const response = await pendingResponse;\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n throw new Error(JSON.stringify(response.error));\n }\n return response;\n }\n listen(request) {\n if (request.method !== \"subscribe\") {\n throw new Error(`Request method must be \"subscribe\" to start event listening`);\n }\n const query = request.params.query;\n if (typeof query !== \"string\") {\n throw new Error(\"request.params.query must be a string\");\n }\n if (!this.subscriptionStreams.has(query)) {\n const producer = new RpcEventProducer(request, this.socket);\n const stream = xstream_1.Stream.create(producer);\n this.subscriptionStreams.set(query, stream);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.subscriptionStreams.get(query).filter((response) => response.query !== undefined);\n }\n /**\n * Resolves as soon as websocket is connected. execute() queues requests automatically,\n * so this should be required for testing purposes only.\n */\n async connected() {\n await this.socket.connectionStatus.waitFor(socket_1.ConnectionStatus.Connected);\n }\n disconnect() {\n this.socket.disconnect();\n }\n async responseForRequestId(id) {\n return (0, stream_1.firstEvent)(this.jsonRpcResponseStream.filter((r) => r.id === id));\n }\n}\nexports.WebsocketClient = WebsocketClient;\n//# sourceMappingURL=websocketclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.adaptor34 = void 0;\nconst hasher_1 = require(\"../hasher\");\nconst requests_1 = require(\"./requests\");\nconst responses_1 = require(\"./responses\");\nexports.adaptor34 = {\n params: requests_1.Params,\n responses: responses_1.Responses,\n hashTx: hasher_1.hashTx,\n hashBlock: hasher_1.hashBlock,\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst jsonrpc_1 = require(\"../../jsonrpc\");\nconst encodings_1 = require(\"../encodings\");\nconst requests = __importStar(require(\"../requests\"));\nfunction encodeHeightParam(param) {\n return {\n height: (0, encodings_1.may)(encodings_1.Integer.encode, param.height),\n };\n}\nfunction encodeBlockchainRequestParams(param) {\n return {\n minHeight: (0, encodings_1.may)(encodings_1.Integer.encode, param.minHeight),\n maxHeight: (0, encodings_1.may)(encodings_1.Integer.encode, param.maxHeight),\n };\n}\nfunction encodeBlockSearchParams(params) {\n return {\n query: params.query,\n page: (0, encodings_1.may)(encodings_1.Integer.encode, params.page),\n per_page: (0, encodings_1.may)(encodings_1.Integer.encode, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeAbciQueryParams(params) {\n return {\n path: (0, encodings_1.assertNotEmpty)(params.path),\n data: (0, encoding_1.toHex)(params.data),\n height: (0, encodings_1.may)(encodings_1.Integer.encode, params.height),\n prove: params.prove,\n };\n}\nfunction encodeBroadcastTxParams(params) {\n return {\n tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)),\n };\n}\nfunction encodeTxParams(params) {\n return {\n hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)),\n prove: params.prove,\n };\n}\nfunction encodeTxSearchParams(params) {\n return {\n query: params.query,\n prove: params.prove,\n page: (0, encodings_1.may)(encodings_1.Integer.encode, params.page),\n per_page: (0, encodings_1.may)(encodings_1.Integer.encode, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeValidatorsParams(params) {\n return {\n height: (0, encodings_1.may)(encodings_1.Integer.encode, params.height),\n page: (0, encodings_1.may)(encodings_1.Integer.encode, params.page),\n per_page: (0, encodings_1.may)(encodings_1.Integer.encode, params.per_page),\n };\n}\nclass Params {\n static encodeAbciInfo(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeAbciQuery(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params));\n }\n static encodeBlock(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockchain(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params));\n }\n static encodeBlockResults(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params));\n }\n static encodeBroadcastTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params));\n }\n static encodeCommit(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeGenesis(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeHealth(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeStatus(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeSubscribe(req) {\n const eventTag = { key: \"tm.event\", value: req.query.type };\n const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw });\n return (0, jsonrpc_1.createJsonRpcRequest)(\"subscribe\", { query: query });\n }\n static encodeTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params));\n }\n // TODO: encode params for query string???\n static encodeTxSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params));\n }\n static encodeValidators(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params));\n }\n}\nexports.Params = Params;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst dates_1 = require(\"../../dates\");\nconst types_1 = require(\"../../types\");\nconst encodings_1 = require(\"../encodings\");\nconst hasher_1 = require(\"../hasher\");\nfunction decodeAbciInfo(data) {\n return {\n data: data.data,\n lastBlockHeight: (0, encodings_1.may)(encodings_1.Integer.parse, data.last_block_height),\n lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash),\n };\n}\nfunction decodeQueryProof(data) {\n return {\n ops: data.ops.map((op) => ({\n type: op.type,\n key: (0, encoding_1.fromBase64)(op.key),\n data: (0, encoding_1.fromBase64)(op.data),\n })),\n };\n}\nfunction decodeAbciQuery(data) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.optional)(data.key, \"\")),\n value: (0, encoding_1.fromBase64)((0, encodings_1.optional)(data.value, \"\")),\n proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps),\n height: (0, encodings_1.may)(encodings_1.Integer.parse, data.height),\n code: (0, encodings_1.may)(encodings_1.Integer.parse, data.code),\n index: (0, encodings_1.may)(encodings_1.Integer.parse, data.index),\n log: data.log,\n };\n}\nfunction decodeAttribute(attribute) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(attribute.key)),\n value: (0, encoding_1.fromBase64)((0, encodings_1.optional)(attribute.value, \"\")),\n };\n}\nfunction decodeAttributes(attributes) {\n return (0, encodings_1.assertArray)(attributes).map(decodeAttribute);\n}\nfunction decodeEvent(event) {\n return {\n type: event.type,\n attributes: decodeAttributes(event.attributes),\n };\n}\nfunction decodeEvents(events) {\n return (0, encodings_1.assertArray)(events).map(decodeEvent);\n}\nfunction decodeTxData(data) {\n return {\n code: encodings_1.Integer.parse((0, encodings_1.assertNumber)((0, encodings_1.optional)(data.code, 0))),\n codeSpace: data.codespace,\n log: data.log,\n data: (0, encodings_1.may)(encoding_1.fromBase64, data.data),\n events: data.events ? decodeEvents(data.events) : [],\n gasWanted: encodings_1.Integer.parse((0, encodings_1.optional)(data.gas_wanted, \"0\")),\n gasUsed: encodings_1.Integer.parse((0, encodings_1.optional)(data.gas_used, \"0\")),\n };\n}\nfunction decodePubkey(data) {\n switch (data.type) {\n // go-amino special code\n case \"tendermint/PubKeyEd25519\":\n return {\n algorithm: \"ed25519\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n case \"tendermint/PubKeySecp256k1\":\n return {\n algorithm: \"secp256k1\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n default:\n throw new Error(`unknown pubkey type: ${data.type}`);\n }\n}\nfunction decodeValidatorUpdate(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n proposerPriority: encodings_1.Integer.parse(data.proposer_priority),\n };\n}\n/**\n * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry\n *\n * > Add time_iota_ms to block's consensus parameters (not exposed to the application)\n * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310\n */\nfunction decodeBlockParams(data) {\n return {\n maxBytes: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.max_bytes)),\n maxGas: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.max_gas)),\n };\n}\nfunction decodeEvidenceParams(data) {\n return {\n maxAgeNumBlocks: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)),\n maxAgeDuration: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.max_age_duration)),\n };\n}\nfunction decodeConsensusParams(data) {\n return {\n block: decodeBlockParams((0, encodings_1.assertObject)(data.block)),\n evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)),\n };\n}\nfunction decodeBlockResults(data) {\n return {\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n results: (data.txs_results || []).map(decodeTxData),\n validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate),\n consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates),\n beginBlockEvents: decodeEvents(data.begin_block_events || []),\n endBlockEvents: decodeEvents(data.end_block_events || []),\n };\n}\nfunction decodeBlockId(data) {\n return {\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n parts: {\n total: (0, encodings_1.assertNotEmpty)(data.parts.total),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)),\n },\n };\n}\nfunction decodeBlockVersion(data) {\n var _a;\n return {\n block: encodings_1.Integer.parse(data.block),\n app: encodings_1.Integer.parse((_a = data.app) !== null && _a !== void 0 ? _a : 0),\n };\n}\nfunction decodeHeader(data) {\n return {\n version: decodeBlockVersion(data.version),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)),\n // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this:\n // { hash: '', parts: { total: 0, hash: '' } }\n lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null,\n lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)),\n dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)),\n validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)),\n nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)),\n consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)),\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)),\n evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)),\n proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)),\n };\n}\nfunction decodeBlockMeta(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n blockSize: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.block_size)),\n header: decodeHeader(data.header),\n numTxs: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.num_txs)),\n };\n}\nfunction decodeBlockchain(data) {\n return {\n lastHeight: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.last_height)),\n blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta),\n };\n}\nfunction decodeBroadcastTxSync(data) {\n return {\n ...decodeTxData(data),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n };\n}\nfunction decodeBroadcastTxCommit(data) {\n return {\n height: encodings_1.Integer.parse(data.height),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)),\n deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx),\n };\n}\nfunction decodeBlockIdFlag(blockIdFlag) {\n (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag);\n return blockIdFlag;\n}\n/**\n * In some cases a timestamp is optional and set to the value 0 in Go.\n * This can lead to strings like \"0001-01-01T00:00:00Z\" (see https://github.com/cosmos/cosmjs/issues/704#issuecomment-797122415).\n * This decoder tries to clean up such encoding from the API and turn them\n * into undefined values.\n */\nfunction decodeOptionalTime(timestamp) {\n const nonZeroTime = timestamp && !timestamp.startsWith(\"0001-01-01\");\n return nonZeroTime ? (0, dates_1.fromRfc3339WithNanoseconds)(timestamp) : undefined;\n}\nfunction decodeCommitSignature(data) {\n return {\n blockIdFlag: decodeBlockIdFlag(data.block_id_flag),\n validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined,\n timestamp: decodeOptionalTime(data.timestamp),\n signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined,\n };\n}\nfunction decodeCommit(data) {\n return {\n blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)),\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n round: encodings_1.Integer.parse(data.round),\n signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature),\n };\n}\nfunction decodeCommitResponse(data) {\n return {\n canonical: (0, encodings_1.assertBoolean)(data.canonical),\n header: decodeHeader(data.signed_header.header),\n commit: decodeCommit(data.signed_header.commit),\n };\n}\nfunction decodeValidatorGenesis(data) {\n return {\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.power)),\n };\n}\nfunction decodeGenesis(data) {\n return {\n genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n consensusParams: decodeConsensusParams(data.consensus_params),\n validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [],\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n appState: data.app_state,\n };\n}\nfunction decodeValidatorInfo(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n };\n}\nfunction decodeNodeInfo(data) {\n return {\n id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)),\n listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr),\n network: (0, encodings_1.assertNotEmpty)(data.network),\n version: (0, encodings_1.assertString)(data.version),\n channels: (0, encodings_1.assertNotEmpty)(data.channels),\n moniker: (0, encodings_1.assertNotEmpty)(data.moniker),\n other: (0, encodings_1.dictionaryToStringMap)(data.other),\n protocolVersion: {\n app: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.protocol_version.app)),\n block: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.protocol_version.block)),\n p2p: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)),\n },\n };\n}\nfunction decodeSyncInfo(data) {\n return {\n latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)),\n latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)),\n latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)),\n latestBlockHeight: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.latest_block_height)),\n catchingUp: (0, encodings_1.assertBoolean)(data.catching_up),\n };\n}\nfunction decodeStatus(data) {\n return {\n nodeInfo: decodeNodeInfo(data.node_info),\n syncInfo: decodeSyncInfo(data.sync_info),\n validatorInfo: decodeValidatorInfo(data.validator_info),\n };\n}\nfunction decodeTxProof(data) {\n return {\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)),\n rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)),\n proof: {\n total: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.proof.total)),\n index: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.proof.index)),\n leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)),\n aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64),\n },\n };\n}\nfunction decodeTxResponse(data) {\n return {\n tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)),\n result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)),\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n index: encodings_1.Integer.parse((0, encodings_1.assertNumber)(data.index)),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n proof: (0, encodings_1.may)(decodeTxProof, data.proof),\n };\n}\nfunction decodeTxSearch(data) {\n return {\n totalCount: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.total_count)),\n txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse),\n };\n}\nfunction decodeTxEvent(data) {\n const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx));\n return {\n tx: tx,\n hash: (0, hasher_1.hashTx)(tx),\n result: decodeTxData(data.result),\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n index: (0, encodings_1.may)(encodings_1.Integer.parse, data.index),\n };\n}\nfunction decodeValidators(data) {\n return {\n blockHeight: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.block_height)),\n validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorUpdate),\n count: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.count)),\n total: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.total)),\n };\n}\nfunction decodeBlock(data) {\n var _a, _b;\n return {\n header: decodeHeader((0, encodings_1.assertObject)(data.header)),\n // For the block at height 1, last commit is not set. This is represented in an empty object like this:\n // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] }\n lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null,\n txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [],\n // Lift up .evidence.evidence to just .evidence\n // See https://github.com/tendermint/tendermint/issues/7697\n evidence: (_b = (_a = data.evidence) === null || _a === void 0 ? void 0 : _a.evidence) !== null && _b !== void 0 ? _b : [],\n };\n}\nfunction decodeBlockResponse(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n block: decodeBlock(data.block),\n };\n}\nfunction decodeBlockSearch(data) {\n return {\n totalCount: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.total_count)),\n blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse),\n };\n}\nclass Responses {\n static decodeAbciInfo(response) {\n return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeAbciQuery(response) {\n return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeBlock(response) {\n return decodeBlockResponse(response.result);\n }\n static decodeBlockResults(response) {\n return decodeBlockResults(response.result);\n }\n static decodeBlockSearch(response) {\n return decodeBlockSearch(response.result);\n }\n static decodeBlockchain(response) {\n return decodeBlockchain(response.result);\n }\n static decodeBroadcastTxSync(response) {\n return decodeBroadcastTxSync(response.result);\n }\n static decodeBroadcastTxAsync(response) {\n return Responses.decodeBroadcastTxSync(response);\n }\n static decodeBroadcastTxCommit(response) {\n return decodeBroadcastTxCommit(response.result);\n }\n static decodeCommit(response) {\n return decodeCommitResponse(response.result);\n }\n static decodeGenesis(response) {\n return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis));\n }\n static decodeHealth() {\n return null;\n }\n static decodeStatus(response) {\n return decodeStatus(response.result);\n }\n static decodeNewBlockEvent(event) {\n return decodeBlock(event.data.value.block);\n }\n static decodeNewBlockHeaderEvent(event) {\n return decodeHeader(event.data.value.header);\n }\n static decodeTxEvent(event) {\n return decodeTxEvent(event.data.value.TxResult);\n }\n static decodeTx(response) {\n return decodeTxResponse(response.result);\n }\n static decodeTxSearch(response) {\n return decodeTxSearch(response.result);\n }\n static decodeValidators(response) {\n return decodeValidators(response.result);\n }\n}\nexports.Responses = Responses;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeBlockId = exports.encodeVersion = exports.encodeBytes = exports.encodeTime = exports.encodeInt = exports.encodeString = exports.Integer = exports.dictionaryToStringMap = exports.may = exports.optional = exports.assertNotEmpty = exports.assertObject = exports.assertArray = exports.assertNumber = exports.assertString = exports.assertBoolean = exports.assertSet = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * A runtime checker that ensures a given value is set (i.e. not undefined or null)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n */\nfunction assertSet(value) {\n if (value === undefined) {\n throw new Error(\"Value must not be undefined\");\n }\n if (value === null) {\n throw new Error(\"Value must not be null\");\n }\n return value;\n}\nexports.assertSet = assertSet;\n/**\n * A runtime checker that ensures a given value is a boolean\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertBoolean(value) {\n assertSet(value);\n if (typeof value !== \"boolean\") {\n throw new Error(\"Value must be a boolean\");\n }\n return value;\n}\nexports.assertBoolean = assertBoolean;\n/**\n * A runtime checker that ensures a given value is a string.\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertString(value) {\n assertSet(value);\n if (typeof value !== \"string\") {\n throw new Error(\"Value must be a string\");\n }\n return value;\n}\nexports.assertString = assertString;\n/**\n * A runtime checker that ensures a given value is a number\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertNumber(value) {\n assertSet(value);\n if (typeof value !== \"number\") {\n throw new Error(\"Value must be a number\");\n }\n return value;\n}\nexports.assertNumber = assertNumber;\n/**\n * A runtime checker that ensures a given value is an array\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertArray(value) {\n assertSet(value);\n if (!Array.isArray(value)) {\n throw new Error(\"Value must be a an array\");\n }\n return value;\n}\nexports.assertArray = assertArray;\n/**\n * A runtime checker that ensures a given value is an object in the sense of JSON\n * (an unordered collection of key–value pairs where the keys are strings)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertObject(value) {\n assertSet(value);\n if (typeof value !== \"object\") {\n throw new Error(\"Value must be an object\");\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n throw new Error(\"Value must be a simple object\");\n }\n return value;\n}\nexports.assertObject = assertObject;\n/**\n * Throws an error if value matches the empty value for the\n * given type (array/string of length 0, number of value 0, ...)\n *\n * Otherwise returns the value.\n *\n * This implies assertSet\n */\nfunction assertNotEmpty(value) {\n assertSet(value);\n if (typeof value === \"number\" && value === 0) {\n throw new Error(\"must provide a non-zero value\");\n }\n else if (value.length === 0) {\n throw new Error(\"must provide a non-empty value\");\n }\n return value;\n}\nexports.assertNotEmpty = assertNotEmpty;\n// optional uses the value or provides a default\nfunction optional(value, fallback) {\n return value === undefined || value === null ? fallback : value;\n}\nexports.optional = optional;\n// may will run the transform if value is defined, otherwise returns undefined\nfunction may(transform, value) {\n return value === undefined || value === null ? undefined : transform(value);\n}\nexports.may = may;\nfunction dictionaryToStringMap(obj) {\n const out = new Map();\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n if (typeof value !== \"string\") {\n throw new Error(\"Found dictionary value of type other than string\");\n }\n out.set(key, value);\n }\n return out;\n}\nexports.dictionaryToStringMap = dictionaryToStringMap;\nclass Integer {\n static parse(input) {\n const asInt = typeof input === \"number\" ? new math_1.Int53(input) : math_1.Int53.fromString(input);\n return asInt.toNumber();\n }\n static encode(num) {\n return new math_1.Int53(num).toString();\n }\n}\nexports.Integer = Integer;\n// Encodings needed for hashing block headers\n// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195\nfunction encodeString(s) {\n const utf8 = (0, encoding_1.toUtf8)(s);\n return Uint8Array.from([utf8.length, ...utf8]);\n}\nexports.encodeString = encodeString;\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87\nfunction encodeInt(n) {\n // eslint-disable-next-line no-bitwise\n return n >= 0x80 ? Uint8Array.from([(n & 0xff) | 0x80, ...encodeInt(n >> 7)]) : Uint8Array.from([n & 0xff]);\n}\nexports.encodeInt = encodeInt;\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178\nfunction encodeTime(time) {\n const milliseconds = time.getTime();\n const seconds = Math.floor(milliseconds / 1000);\n const secondsArray = seconds ? [0x08, ...encodeInt(seconds)] : new Uint8Array();\n const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6;\n const nanosecondsArray = nanoseconds ? [0x10, ...encodeInt(nanoseconds)] : new Uint8Array();\n return Uint8Array.from([...secondsArray, ...nanosecondsArray]);\n}\nexports.encodeTime = encodeTime;\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187\nfunction encodeBytes(bytes) {\n // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet\n if (bytes.length >= 0x80)\n throw new Error(\"Not implemented for byte arrays of length 128 or more\");\n return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array();\n}\nexports.encodeBytes = encodeBytes;\nfunction encodeVersion(version) {\n const blockArray = version.block ? Uint8Array.from([0x08, ...encodeInt(version.block)]) : new Uint8Array();\n const appArray = version.app ? Uint8Array.from([0x10, ...encodeInt(version.app)]) : new Uint8Array();\n return Uint8Array.from([...blockArray, ...appArray]);\n}\nexports.encodeVersion = encodeVersion;\nfunction encodeBlockId(blockId) {\n return Uint8Array.from([\n 0x0a,\n blockId.hash.length,\n ...blockId.hash,\n 0x12,\n blockId.parts.hash.length + 4,\n 0x08,\n blockId.parts.total,\n 0x12,\n blockId.parts.hash.length,\n ...blockId.parts.hash,\n ]);\n}\nexports.encodeBlockId = encodeBlockId;\n//# sourceMappingURL=encodings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashBlock = exports.hashTx = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encodings_1 = require(\"./encodings\");\n// hash is sha256\n// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260\nfunction hashTx(tx) {\n return (0, crypto_1.sha256)(tx);\n}\nexports.hashTx = hashTx;\nfunction getSplitPoint(n) {\n if (n < 1)\n throw new Error(\"Cannot split an empty tree\");\n const largestPowerOf2 = 2 ** Math.floor(Math.log2(n));\n return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2;\n}\nfunction hashLeaf(leaf) {\n const hash = new crypto_1.Sha256(Uint8Array.from([0]));\n hash.update(leaf);\n return hash.digest();\n}\nfunction hashInner(left, right) {\n const hash = new crypto_1.Sha256(Uint8Array.from([1]));\n hash.update(left);\n hash.update(right);\n return hash.digest();\n}\n// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot\n// Note: the hashes input may not actually be hashes, especially before a recursive call\nfunction hashTree(hashes) {\n switch (hashes.length) {\n case 0:\n throw new Error(\"Cannot hash empty tree\");\n case 1:\n return hashLeaf(hashes[0]);\n default: {\n const slicePoint = getSplitPoint(hashes.length);\n const left = hashTree(hashes.slice(0, slicePoint));\n const right = hashTree(hashes.slice(slicePoint));\n return hashInner(left, right);\n }\n }\n}\nfunction hashBlock(header) {\n if (!header.lastBlockId) {\n throw new Error(\"Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.\");\n }\n const encodedFields = [\n (0, encodings_1.encodeVersion)(header.version),\n (0, encodings_1.encodeString)(header.chainId),\n (0, encodings_1.encodeInt)(header.height),\n (0, encodings_1.encodeTime)(header.time),\n (0, encodings_1.encodeBlockId)(header.lastBlockId),\n (0, encodings_1.encodeBytes)(header.lastCommitHash),\n (0, encodings_1.encodeBytes)(header.dataHash),\n (0, encodings_1.encodeBytes)(header.validatorsHash),\n (0, encodings_1.encodeBytes)(header.nextValidatorsHash),\n (0, encodings_1.encodeBytes)(header.consensusHash),\n (0, encodings_1.encodeBytes)(header.appHash),\n (0, encodings_1.encodeBytes)(header.lastResultsHash),\n (0, encodings_1.encodeBytes)(header.evidenceHash),\n (0, encodings_1.encodeBytes)(header.proposerAddress),\n ];\n return hashTree(encodedFields);\n}\nexports.hashBlock = hashBlock;\n//# sourceMappingURL=hasher.js.map","\"use strict\";\n// Note: all exports in this module are publicly available via\n// `import { tendermint34 } from \"@cosmjs/tendermint-rpc\"`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint34Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return requests_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return requests_1.SubscriptionEventType; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return responses_1.VoteType; } });\nvar tendermint34client_1 = require(\"./tendermint34client\");\nObject.defineProperty(exports, \"Tendermint34Client\", { enumerable: true, get: function () { return tendermint34client_1.Tendermint34Client; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildQuery = exports.SubscriptionEventType = exports.Method = void 0;\n/**\n * RPC methods as documented in https://docs.tendermint.com/master/rpc/\n *\n * Enum raw value must match the spelling in the \"shell\" example call (snake_case)\n */\nvar Method;\n(function (Method) {\n Method[\"AbciInfo\"] = \"abci_info\";\n Method[\"AbciQuery\"] = \"abci_query\";\n Method[\"Block\"] = \"block\";\n /** Get block headers for minHeight <= height <= maxHeight. */\n Method[\"Blockchain\"] = \"blockchain\";\n Method[\"BlockResults\"] = \"block_results\";\n Method[\"BlockSearch\"] = \"block_search\";\n Method[\"BroadcastTxAsync\"] = \"broadcast_tx_async\";\n Method[\"BroadcastTxSync\"] = \"broadcast_tx_sync\";\n Method[\"BroadcastTxCommit\"] = \"broadcast_tx_commit\";\n Method[\"Commit\"] = \"commit\";\n Method[\"Genesis\"] = \"genesis\";\n Method[\"Health\"] = \"health\";\n Method[\"Status\"] = \"status\";\n Method[\"Subscribe\"] = \"subscribe\";\n Method[\"Tx\"] = \"tx\";\n Method[\"TxSearch\"] = \"tx_search\";\n Method[\"Validators\"] = \"validators\";\n Method[\"Unsubscribe\"] = \"unsubscribe\";\n})(Method = exports.Method || (exports.Method = {}));\n/**\n * Raw values must match the tendermint event name\n *\n * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants\n */\nvar SubscriptionEventType;\n(function (SubscriptionEventType) {\n SubscriptionEventType[\"NewBlock\"] = \"NewBlock\";\n SubscriptionEventType[\"NewBlockHeader\"] = \"NewBlockHeader\";\n SubscriptionEventType[\"Tx\"] = \"Tx\";\n})(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {}));\nfunction buildQuery(components) {\n const tags = components.tags ? components.tags : [];\n const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`);\n const rawComponents = components.raw ? [components.raw] : [];\n return [...tagComponents, ...rawComponents].join(\" AND \");\n}\nexports.buildQuery = buildQuery;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = exports.broadcastTxCommitSuccess = exports.broadcastTxSyncSuccess = void 0;\n/**\n * Returns true iff transaction made it successfully into the transaction pool\n */\nfunction broadcastTxSyncSuccess(res) {\n // code must be 0 on success\n return res.code === 0;\n}\nexports.broadcastTxSyncSuccess = broadcastTxSyncSuccess;\n/**\n * Returns true iff transaction made it successfully into a block\n * (i.e. success in `check_tx` and `deliver_tx` field)\n */\nfunction broadcastTxCommitSuccess(response) {\n // code must be 0 on success\n // deliverTx may be present but empty on failure\n return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0;\n}\nexports.broadcastTxCommitSuccess = broadcastTxCommitSuccess;\n/**\n * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44\n */\nvar VoteType;\n(function (VoteType) {\n VoteType[VoteType[\"PreVote\"] = 1] = \"PreVote\";\n VoteType[VoteType[\"PreCommit\"] = 2] = \"PreCommit\";\n})(VoteType = exports.VoteType || (exports.VoteType = {}));\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint34Client = void 0;\nconst jsonrpc_1 = require(\"../jsonrpc\");\nconst rpcclients_1 = require(\"../rpcclients\");\nconst adaptor_1 = require(\"./adaptor\");\nconst requests = __importStar(require(\"./requests\"));\nclass Tendermint34Client {\n /**\n * Use `Tendermint34Client.connect` or `Tendermint34Client.create` to create an instance.\n */\n constructor(client) {\n this.client = client;\n this.p = adaptor_1.adaptor34.params;\n this.r = adaptor_1.adaptor34.responses;\n }\n /**\n * Creates a new Tendermint client for the given endpoint.\n *\n * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise.\n */\n static async connect(url) {\n const useHttp = url.startsWith(\"http://\") || url.startsWith(\"https://\");\n const rpcClient = useHttp ? new rpcclients_1.HttpClient(url) : new rpcclients_1.WebsocketClient(url);\n return Tendermint34Client.create(rpcClient);\n }\n /**\n * Creates a new Tendermint client given an RPC client.\n */\n static async create(rpcClient) {\n // For some very strange reason I don't understand, tests start to fail on some systems\n // (our CI) when skipping the status call before doing other queries. Sleeping a little\n // while did not help. Thus we query the version as a way to say \"hi\" to the backend,\n // even in cases where we don't use the result.\n const _version = await this.detectVersion(rpcClient);\n return new Tendermint34Client(rpcClient);\n }\n static async detectVersion(client) {\n const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status);\n const response = await client.execute(req);\n const result = response.result;\n if (!result || !result.node_info) {\n throw new Error(\"Unrecognized format for status response\");\n }\n const version = result.node_info.version;\n if (typeof version !== \"string\") {\n throw new Error(\"Unrecognized version format: must be string\");\n }\n return version;\n }\n disconnect() {\n this.client.disconnect();\n }\n async abciInfo() {\n const query = { method: requests.Method.AbciInfo };\n return this.doCall(query, this.p.encodeAbciInfo, this.r.decodeAbciInfo);\n }\n async abciQuery(params) {\n const query = { params: params, method: requests.Method.AbciQuery };\n return this.doCall(query, this.p.encodeAbciQuery, this.r.decodeAbciQuery);\n }\n async block(height) {\n const query = { method: requests.Method.Block, params: { height: height } };\n return this.doCall(query, this.p.encodeBlock, this.r.decodeBlock);\n }\n async blockResults(height) {\n const query = {\n method: requests.Method.BlockResults,\n params: { height: height },\n };\n return this.doCall(query, this.p.encodeBlockResults, this.r.decodeBlockResults);\n }\n /**\n * Search for events that are in a block.\n *\n * NOTE\n * This method will error on any node that is running a Tendermint version lower than 0.34.9.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/block_search\n */\n async blockSearch(params) {\n const query = { params: params, method: requests.Method.BlockSearch };\n const resp = await this.doCall(query, this.p.encodeBlockSearch, this.r.decodeBlockSearch);\n return {\n ...resp,\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height),\n };\n }\n // this should paginate through all blockSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n //\n // NOTE\n // This method will error on any node that is running a Tendermint version lower than 0.34.9.\n async blockSearchAll(params) {\n let page = params.page || 1;\n const blocks = [];\n let done = false;\n while (!done) {\n const resp = await this.blockSearch({ ...params, page: page });\n blocks.push(...resp.blocks);\n if (blocks.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n // and the earlier items may be in a higher page than the later items\n blocks.sort((a, b) => a.block.header.height - b.block.header.height);\n return {\n totalCount: blocks.length,\n blocks: blocks,\n };\n }\n /**\n * Queries block headers filtered by minHeight <= height <= maxHeight.\n *\n * @param minHeight The minimum height to be included in the result. Defaults to 0.\n * @param maxHeight The maximum height to be included in the result. Defaults to infinity.\n */\n async blockchain(minHeight, maxHeight) {\n const query = {\n method: requests.Method.Blockchain,\n params: {\n minHeight: minHeight,\n maxHeight: maxHeight,\n },\n };\n return this.doCall(query, this.p.encodeBlockchain, this.r.decodeBlockchain);\n }\n /**\n * Broadcast transaction to mempool and wait for response\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n async broadcastTxSync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxSync };\n return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxSync);\n }\n /**\n * Broadcast transaction to mempool and do not wait for result\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n async broadcastTxAsync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxAsync };\n return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxAsync);\n }\n /**\n * Broadcast transaction to mempool and wait for block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n async broadcastTxCommit(params) {\n const query = { params: params, method: requests.Method.BroadcastTxCommit };\n return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxCommit);\n }\n async commit(height) {\n const query = { method: requests.Method.Commit, params: { height: height } };\n return this.doCall(query, this.p.encodeCommit, this.r.decodeCommit);\n }\n async genesis() {\n const query = { method: requests.Method.Genesis };\n return this.doCall(query, this.p.encodeGenesis, this.r.decodeGenesis);\n }\n async health() {\n const query = { method: requests.Method.Health };\n return this.doCall(query, this.p.encodeHealth, this.r.decodeHealth);\n }\n async status() {\n const query = { method: requests.Method.Status };\n return this.doCall(query, this.p.encodeStatus, this.r.decodeStatus);\n }\n subscribeNewBlock() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlock },\n };\n return this.subscribe(request, this.r.decodeNewBlockEvent);\n }\n subscribeNewBlockHeader() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlockHeader },\n };\n return this.subscribe(request, this.r.decodeNewBlockHeaderEvent);\n }\n subscribeTx(query) {\n const request = {\n method: requests.Method.Subscribe,\n query: {\n type: requests.SubscriptionEventType.Tx,\n raw: query,\n },\n };\n return this.subscribe(request, this.r.decodeTxEvent);\n }\n /**\n * Get a single transaction by hash\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx\n */\n async tx(params) {\n const query = { params: params, method: requests.Method.Tx };\n return this.doCall(query, this.p.encodeTx, this.r.decodeTx);\n }\n /**\n * Search for transactions that are in a block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search\n */\n async txSearch(params) {\n const query = { params: params, method: requests.Method.TxSearch };\n return this.doCall(query, this.p.encodeTxSearch, this.r.decodeTxSearch);\n }\n // this should paginate through all txSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n async txSearchAll(params) {\n let page = params.page || 1;\n const txs = [];\n let done = false;\n while (!done) {\n const resp = await this.txSearch({ ...params, page: page });\n txs.push(...resp.txs);\n if (txs.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n totalCount: txs.length,\n txs: txs,\n };\n }\n async validators(params) {\n const query = {\n method: requests.Method.Validators,\n params: params,\n };\n return this.doCall(query, this.p.encodeValidators, this.r.decodeValidators);\n }\n async validatorsAll(height) {\n const validators = [];\n let page = 1;\n let done = false;\n let blockHeight = height;\n while (!done) {\n const response = await this.validators({\n per_page: 50,\n height: blockHeight,\n page: page,\n });\n validators.push(...response.validators);\n blockHeight = blockHeight || response.blockHeight;\n if (validators.length < response.total) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n // NOTE: Default value is for type safety but this should always be set\n blockHeight: blockHeight !== null && blockHeight !== void 0 ? blockHeight : 0,\n count: validators.length,\n total: validators.length,\n validators: validators,\n };\n }\n // doCall is a helper to handle the encode/call/decode logic\n async doCall(request, encode, decode) {\n const req = encode(request);\n const result = await this.client.execute(req);\n return decode(result);\n }\n subscribe(request, decode) {\n if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) {\n throw new Error(\"This RPC client type cannot subscribe to events\");\n }\n const req = this.p.encodeSubscribe(request);\n const eventStream = this.client.listen(req);\n return eventStream.map((event) => {\n return decode(event);\n });\n }\n}\nexports.Tendermint34Client = Tendermint34Client;\n//# sourceMappingURL=tendermint34client.js.map","\"use strict\";\n// Types in this file are exported outside of the @cosmjs/tendermint-rpc package,\n// e.g. as part of a request or response\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockIdFlag = void 0;\nvar BlockIdFlag;\n(function (BlockIdFlag) {\n BlockIdFlag[BlockIdFlag[\"Unknown\"] = 0] = \"Unknown\";\n BlockIdFlag[BlockIdFlag[\"Absent\"] = 1] = \"Absent\";\n BlockIdFlag[BlockIdFlag[\"Commit\"] = 2] = \"Commit\";\n BlockIdFlag[BlockIdFlag[\"Nil\"] = 3] = \"Nil\";\n BlockIdFlag[BlockIdFlag[\"Unrecognized\"] = -1] = \"Unrecognized\";\n})(BlockIdFlag = exports.BlockIdFlag || (exports.BlockIdFlag = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\nexports.arrayContentEquals = arrayContentEquals;\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\nexports.arrayContentStartsWith = arrayContentStartsWith;\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = void 0;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nexports.assert = assert;\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg !== null && msg !== void 0 ? msg : \"value is undefined\");\n }\n}\nexports.assertDefined = assertDefined;\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg !== null && msg !== void 0 ? msg : \"value is undefined or null\");\n }\n}\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = void 0;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nexports.sleep = sleep;\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = void 0;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\nexports.isNonNullObject = isNonNullObject;\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\nexports.isUint8Array = isUint8Array;\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n const { view, buffer, blockLen, finished } = this;\n if (finished)\n throw new Error('digest() was already called');\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length < this.outputLen)\n throw new Error('_Sha2: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // NOTE: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64bit of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add5H = exports.add5L = exports.add4H = exports.add4L = exports.add3H = exports.add3L = exports.add = exports.rotlBL = exports.rotlBH = exports.rotlSL = exports.rotlSH = exports.rotr32L = exports.rotr32H = exports.rotrBL = exports.rotrBH = exports.rotrSL = exports.rotrSH = exports.shrSL = exports.shrSH = exports.toBig = exports.split = exports.fromBig = void 0;\nconst U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexports.fromBig = fromBig;\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexports.split = split;\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\nexports.add = add;\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = void 0;\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, utils_js_1.assertHash)(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (!(this.iHash instanceof utils_js_1.Hash))\n throw new TypeError('Expected instance of class which extends utils.Hash');\n const blockLen = (this.blockLen = this.iHash.blockLen);\n this.outputLen = this.iHash.outputLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > this.iHash.blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length !== this.outputLen)\n throw new Error('HMAC: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2Async = exports.pbkdf2 = void 0;\nconst hmac_js_1 = require(\"./hmac.js\");\n// prettier-ignore\nconst utils_js_1 = require(\"./utils.js\");\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n (0, utils_js_1.assertHash)(hash);\n const opts = (0, utils_js_1.checkOpts)({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n (0, utils_js_1.assertNumber)(c);\n (0, utils_js_1.assertNumber)(dkLen);\n (0, utils_js_1.assertNumber)(asyncTick);\n if (c < 1)\n throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = (0, utils_js_1.toBytes)(_password);\n const salt = (0, utils_js_1.toBytes)(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac_js_1.hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n u.fill(0);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nfunction pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_js_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexports.pbkdf2 = pbkdf2;\nasync function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_js_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await (0, utils_js_1.asyncLoop)(c - 1, asyncTick, (i) => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexports.pbkdf2Async = pbkdf2Async;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);\nconst Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = new Uint32Array(16);\nclass RIPEMD160 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\nexports.RIPEMD160 = RIPEMD160;\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexports.ripemd160 = (0, utils_js_1.wrapConstructor)(() => new RIPEMD160());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\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 // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = exports.keccakP = void 0;\nconst u64 = __importStar(require(\"./_u64.js\"));\nconst utils_js_1 = require(\"./utils.js\");\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n// Same as keccakf1600, but allows to skip some rounds\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexports.keccakP = keccakP;\nclass Keccak extends utils_js_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n (0, utils_js_1.assertNumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_js_1.u32)(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (this.finished)\n throw new Error('digest() was already called');\n const { blockLen, state } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array))\n throw new Error('Keccak: invalid output buffer');\n this.finish();\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= this.blockLen)\n this.keccak();\n const take = Math.min(this.blockLen - this.posOut, len - pos);\n out.set(this.state.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, utils_js_1.assertNumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n if (out.length < this.outputLen)\n throw new Error('Keccak: invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finish();\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapConstructor)(() => new Keccak(blockLen, suffix, outputLen));\nexports.sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexports.sha3_256 = gen(0x06, 136, 256 / 8);\nexports.sha3_384 = gen(0x06, 104, 384 / 8);\nexports.sha3_512 = gen(0x06, 72, 512 / 8);\nexports.keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexports.keccak_256 = gen(0x01, 136, 256 / 8);\nexports.keccak_384 = gen(0x01, 104, 384 / 8);\nexports.keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapConstructorWithOpts)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen !== undefined ? opts.dkLen : outputLen, true));\nexports.shake128 = genShake(0x1f, 168, 128 / 8);\nexports.shake256 = genShake(0x1f, 136, 256 / 8);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha384 = exports.sha512_256 = exports.sha512 = exports.SHA512 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst u64 = __importStar(require(\"./_u64.js\"));\nconst utils_js_1 = require(\"./utils.js\");\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nclass SHA512 extends _sha2_js_1.SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexports.SHA512 = SHA512;\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexports.sha512 = (0, utils_js_1.wrapConstructor)(() => new SHA512());\nexports.sha512_256 = (0, utils_js_1.wrapConstructor)(() => new SHA512_256());\nexports.sha384 = (0, utils_js_1.wrapConstructor)(() => new SHA384());\n","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.assertHash = exports.assertBytes = exports.assertBool = exports.assertNumber = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianess.\n// So, just to be sure not to corrupt anything.\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nfunction bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\n/**\n * @example hexToBytes('deadbeef')\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte))\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// Currently avoid insertion of polyfills with packers (browserify/webpack/etc)\n// But setTimeout is pretty slow, maybe worth to investigate howto do minimal polyfill here\nexports.nextTick = (() => {\n const nodeRequire = typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n try {\n if (nodeRequire) {\n const { setImmediate } = nodeRequire('timers');\n return () => new Promise((resolve) => setImmediate(resolve));\n }\n }\n catch (e) { }\n return () => new Promise((resolve) => setTimeout(resolve, 0));\n})();\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexports.concatBytes = concatBytes;\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.assertNumber = assertNumber;\nfunction assertBool(b) {\n if (typeof b !== 'boolean') {\n throw new Error(`Expected boolean, not ${b}`);\n }\n}\nexports.assertBool = assertBool;\nfunction assertBytes(bytes, ...lengths) {\n if (bytes instanceof Uint8Array && (!lengths.length || lengths.includes(bytes.length))) {\n return;\n }\n throw new TypeError(`Expected ${lengths} bytes, not ${typeof bytes} with length=${bytes.length}`);\n}\nexports.assertBytes = assertBytes;\nfunction assertHash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n assertNumber(hash.outputLen);\n assertNumber(hash.blockLen);\n}\nexports.assertHash = assertHash;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nfunction checkOpts(def, _opts) {\n if (_opts !== undefined && (typeof _opts !== 'object' || !isPlainObject(_opts)))\n throw new TypeError('Options should be object or undefined');\n const opts = Object.assign(def, _opts);\n return opts;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\n/**\n * Secure PRNG\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto.web) {\n return crypto_1.crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto_1.crypto.node) {\n return new Uint8Array(crypto_1.crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\nexports.randomBytes = randomBytes;\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\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","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\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 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 // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\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 b = 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 b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\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 function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\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 // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n 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.modrn(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, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\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 var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\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] >>> wbit) & 0x01;\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 // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(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 var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 isNegNum ? this.ineg() : 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.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(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.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 this._strip();\n return isNegNum ? this.ineg() : this;\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 a BN v4 instance\n r.strip();\n } else {\n // r is a 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\n move(a, a.umod(this.m)._forceRed(this));\n return a;\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 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","/*!\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\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * 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 * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\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 // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\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(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(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 interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(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(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\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(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(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.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 buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.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 === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let 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 (!Array.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 let 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 const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\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 (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let 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 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) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let 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 coercion 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// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let 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 const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let 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 const length = this.length\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.toLocaleString = Buffer.prototype.toString\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 let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\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 let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let 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 (numberIsNaN(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 (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 let indexSize = 1\n let arrLength = arr.length\n let 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 let i\n if (dir) {\n let 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 let found = true\n for (let 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 const 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 const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(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 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 } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const 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 let 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 case 'latin1':\n case 'binary':\n return asciiWrite(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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const 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 let res = ''\n let 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 let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; 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 const 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 const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\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 =\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 let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\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 let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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 let val = this[offset]\n let mul = 1\n let 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 let i = byteLength\n let mul = 1\n let 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 offset = offset >>> 0\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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let 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 =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let 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 =\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 this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\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 this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let 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 const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let 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 (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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 value = +value\n offset = offset >>> 0\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 value = +value\n offset = offset >>> 0\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 (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\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('Index out of range')\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 const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\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 (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 if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\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 let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().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 utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let 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 const byteArray = []\n for (let 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 let c, hi, lo\n const byteArray = []\n for (let 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 let i\n for (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\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompressedNonExistenceProof = exports.CompressedExistenceProof = exports.CompressedBatchEntry = exports.CompressedBatchProof = exports.BatchEntry = exports.BatchProof = exports.InnerSpec = exports.ProofSpec = exports.InnerOp = exports.LeafOp = exports.CommitmentProof = exports.NonExistenceProof = exports.ExistenceProof = exports.lengthOpToJSON = exports.lengthOpFromJSON = exports.LengthOp = exports.hashOpToJSON = exports.hashOpFromJSON = exports.HashOp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"ics23\";\nvar HashOp;\n(function (HashOp) {\n /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */\n HashOp[HashOp[\"NO_HASH\"] = 0] = \"NO_HASH\";\n HashOp[HashOp[\"SHA256\"] = 1] = \"SHA256\";\n HashOp[HashOp[\"SHA512\"] = 2] = \"SHA512\";\n HashOp[HashOp[\"KECCAK\"] = 3] = \"KECCAK\";\n HashOp[HashOp[\"RIPEMD160\"] = 4] = \"RIPEMD160\";\n /** BITCOIN - ripemd160(sha256(x)) */\n HashOp[HashOp[\"BITCOIN\"] = 5] = \"BITCOIN\";\n HashOp[HashOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(HashOp = exports.HashOp || (exports.HashOp = {}));\nfunction hashOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_HASH\":\n return HashOp.NO_HASH;\n case 1:\n case \"SHA256\":\n return HashOp.SHA256;\n case 2:\n case \"SHA512\":\n return HashOp.SHA512;\n case 3:\n case \"KECCAK\":\n return HashOp.KECCAK;\n case 4:\n case \"RIPEMD160\":\n return HashOp.RIPEMD160;\n case 5:\n case \"BITCOIN\":\n return HashOp.BITCOIN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return HashOp.UNRECOGNIZED;\n }\n}\nexports.hashOpFromJSON = hashOpFromJSON;\nfunction hashOpToJSON(object) {\n switch (object) {\n case HashOp.NO_HASH:\n return \"NO_HASH\";\n case HashOp.SHA256:\n return \"SHA256\";\n case HashOp.SHA512:\n return \"SHA512\";\n case HashOp.KECCAK:\n return \"KECCAK\";\n case HashOp.RIPEMD160:\n return \"RIPEMD160\";\n case HashOp.BITCOIN:\n return \"BITCOIN\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.hashOpToJSON = hashOpToJSON;\n/**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n */\nvar LengthOp;\n(function (LengthOp) {\n /** NO_PREFIX - NO_PREFIX don't include any length info */\n LengthOp[LengthOp[\"NO_PREFIX\"] = 0] = \"NO_PREFIX\";\n /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */\n LengthOp[LengthOp[\"VAR_PROTO\"] = 1] = \"VAR_PROTO\";\n /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */\n LengthOp[LengthOp[\"VAR_RLP\"] = 2] = \"VAR_RLP\";\n /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_BIG\"] = 3] = \"FIXED32_BIG\";\n /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_LITTLE\"] = 4] = \"FIXED32_LITTLE\";\n /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_BIG\"] = 5] = \"FIXED64_BIG\";\n /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_LITTLE\"] = 6] = \"FIXED64_LITTLE\";\n /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */\n LengthOp[LengthOp[\"REQUIRE_32_BYTES\"] = 7] = \"REQUIRE_32_BYTES\";\n /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */\n LengthOp[LengthOp[\"REQUIRE_64_BYTES\"] = 8] = \"REQUIRE_64_BYTES\";\n LengthOp[LengthOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(LengthOp = exports.LengthOp || (exports.LengthOp = {}));\nfunction lengthOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_PREFIX\":\n return LengthOp.NO_PREFIX;\n case 1:\n case \"VAR_PROTO\":\n return LengthOp.VAR_PROTO;\n case 2:\n case \"VAR_RLP\":\n return LengthOp.VAR_RLP;\n case 3:\n case \"FIXED32_BIG\":\n return LengthOp.FIXED32_BIG;\n case 4:\n case \"FIXED32_LITTLE\":\n return LengthOp.FIXED32_LITTLE;\n case 5:\n case \"FIXED64_BIG\":\n return LengthOp.FIXED64_BIG;\n case 6:\n case \"FIXED64_LITTLE\":\n return LengthOp.FIXED64_LITTLE;\n case 7:\n case \"REQUIRE_32_BYTES\":\n return LengthOp.REQUIRE_32_BYTES;\n case 8:\n case \"REQUIRE_64_BYTES\":\n return LengthOp.REQUIRE_64_BYTES;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LengthOp.UNRECOGNIZED;\n }\n}\nexports.lengthOpFromJSON = lengthOpFromJSON;\nfunction lengthOpToJSON(object) {\n switch (object) {\n case LengthOp.NO_PREFIX:\n return \"NO_PREFIX\";\n case LengthOp.VAR_PROTO:\n return \"VAR_PROTO\";\n case LengthOp.VAR_RLP:\n return \"VAR_RLP\";\n case LengthOp.FIXED32_BIG:\n return \"FIXED32_BIG\";\n case LengthOp.FIXED32_LITTLE:\n return \"FIXED32_LITTLE\";\n case LengthOp.FIXED64_BIG:\n return \"FIXED64_BIG\";\n case LengthOp.FIXED64_LITTLE:\n return \"FIXED64_LITTLE\";\n case LengthOp.REQUIRE_32_BYTES:\n return \"REQUIRE_32_BYTES\";\n case LengthOp.REQUIRE_64_BYTES:\n return \"REQUIRE_64_BYTES\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.lengthOpToJSON = lengthOpToJSON;\nconst baseExistenceProof = {};\nexports.ExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.path) {\n exports.InnerOp.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseExistenceProof);\n message.path = [];\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n message.path.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseExistenceProof);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromJSON(object.leaf) : undefined;\n message.path = ((_a = object.path) !== null && _a !== void 0 ? _a : []).map((e) => exports.InnerOp.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseExistenceProof);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromPartial(object.leaf) : undefined;\n message.path = ((_c = object.path) === null || _c === void 0 ? void 0 : _c.map((e) => exports.InnerOp.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseNonExistenceProof = {};\nexports.NonExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseNonExistenceProof);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseNonExistenceProof);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null ? exports.ExistenceProof.fromJSON(object.left) : undefined;\n message.right =\n object.right !== undefined && object.right !== null ? exports.ExistenceProof.fromJSON(object.right) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined && (obj.left = message.left ? exports.ExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.ExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseNonExistenceProof);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null ? exports.ExistenceProof.fromPartial(object.left) : undefined;\n message.right =\n object.right !== undefined && object.right !== null\n ? exports.ExistenceProof.fromPartial(object.right)\n : undefined;\n return message;\n },\n};\nconst baseCommitmentProof = {};\nexports.CommitmentProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n if (message.batch !== undefined) {\n exports.BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim();\n }\n if (message.compressed !== undefined) {\n exports.CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommitmentProof);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = exports.BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = exports.CompressedBatchProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommitmentProof);\n message.exist =\n object.exist !== undefined && object.exist !== null ? exports.ExistenceProof.fromJSON(object.exist) : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.NonExistenceProof.fromJSON(object.nonexist)\n : undefined;\n message.batch =\n object.batch !== undefined && object.batch !== null ? exports.BatchProof.fromJSON(object.batch) : undefined;\n message.compressed =\n object.compressed !== undefined && object.compressed !== null\n ? exports.CompressedBatchProof.fromJSON(object.compressed)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n message.batch !== undefined && (obj.batch = message.batch ? exports.BatchProof.toJSON(message.batch) : undefined);\n message.compressed !== undefined &&\n (obj.compressed = message.compressed ? exports.CompressedBatchProof.toJSON(message.compressed) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommitmentProof);\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? exports.ExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.NonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n message.batch =\n object.batch !== undefined && object.batch !== null ? exports.BatchProof.fromPartial(object.batch) : undefined;\n message.compressed =\n object.compressed !== undefined && object.compressed !== null\n ? exports.CompressedBatchProof.fromPartial(object.compressed)\n : undefined;\n return message;\n },\n};\nconst baseLeafOp = { hash: 0, prehashKey: 0, prehashValue: 0, length: 0 };\nexports.LeafOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prehashKey !== 0) {\n writer.uint32(16).int32(message.prehashKey);\n }\n if (message.prehashValue !== 0) {\n writer.uint32(24).int32(message.prehashValue);\n }\n if (message.length !== 0) {\n writer.uint32(32).int32(message.length);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(42).bytes(message.prefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLeafOp);\n message.prefix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prehashKey = reader.int32();\n break;\n case 3:\n message.prehashValue = reader.int32();\n break;\n case 4:\n message.length = reader.int32();\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLeafOp);\n message.hash = object.hash !== undefined && object.hash !== null ? hashOpFromJSON(object.hash) : 0;\n message.prehashKey =\n object.prehashKey !== undefined && object.prehashKey !== null ? hashOpFromJSON(object.prehashKey) : 0;\n message.prehashValue =\n object.prehashValue !== undefined && object.prehashValue !== null\n ? hashOpFromJSON(object.prehashValue)\n : 0;\n message.length =\n object.length !== undefined && object.length !== null ? lengthOpFromJSON(object.length) : 0;\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? bytesFromBase64(object.prefix)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey));\n message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue));\n message.length !== undefined && (obj.length = lengthOpToJSON(message.length));\n message.prefix !== undefined &&\n (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseLeafOp);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : 0;\n message.prehashKey = (_b = object.prehashKey) !== null && _b !== void 0 ? _b : 0;\n message.prehashValue = (_c = object.prehashValue) !== null && _c !== void 0 ? _c : 0;\n message.length = (_d = object.length) !== null && _d !== void 0 ? _d : 0;\n message.prefix = (_e = object.prefix) !== null && _e !== void 0 ? _e : new Uint8Array();\n return message;\n },\n};\nconst baseInnerOp = { hash: 0 };\nexports.InnerOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(18).bytes(message.prefix);\n }\n if (message.suffix.length !== 0) {\n writer.uint32(26).bytes(message.suffix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInnerOp);\n message.prefix = new Uint8Array();\n message.suffix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseInnerOp);\n message.hash = object.hash !== undefined && object.hash !== null ? hashOpFromJSON(object.hash) : 0;\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? bytesFromBase64(object.prefix)\n : new Uint8Array();\n message.suffix =\n object.suffix !== undefined && object.suffix !== null\n ? bytesFromBase64(object.suffix)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prefix !== undefined &&\n (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n message.suffix !== undefined &&\n (obj.suffix = base64FromBytes(message.suffix !== undefined ? message.suffix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseInnerOp);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : 0;\n message.prefix = (_b = object.prefix) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.suffix = (_c = object.suffix) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseProofSpec = { maxDepth: 0, minDepth: 0 };\nexports.ProofSpec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.leafSpec !== undefined) {\n exports.LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim();\n }\n if (message.innerSpec !== undefined) {\n exports.InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxDepth !== 0) {\n writer.uint32(24).int32(message.maxDepth);\n }\n if (message.minDepth !== 0) {\n writer.uint32(32).int32(message.minDepth);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofSpec);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leafSpec = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.innerSpec = exports.InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxDepth = reader.int32();\n break;\n case 4:\n message.minDepth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofSpec);\n message.leafSpec =\n object.leafSpec !== undefined && object.leafSpec !== null\n ? exports.LeafOp.fromJSON(object.leafSpec)\n : undefined;\n message.innerSpec =\n object.innerSpec !== undefined && object.innerSpec !== null\n ? exports.InnerSpec.fromJSON(object.innerSpec)\n : undefined;\n message.maxDepth =\n object.maxDepth !== undefined && object.maxDepth !== null ? Number(object.maxDepth) : 0;\n message.minDepth =\n object.minDepth !== undefined && object.minDepth !== null ? Number(object.minDepth) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.leafSpec !== undefined &&\n (obj.leafSpec = message.leafSpec ? exports.LeafOp.toJSON(message.leafSpec) : undefined);\n message.innerSpec !== undefined &&\n (obj.innerSpec = message.innerSpec ? exports.InnerSpec.toJSON(message.innerSpec) : undefined);\n message.maxDepth !== undefined && (obj.maxDepth = message.maxDepth);\n message.minDepth !== undefined && (obj.minDepth = message.minDepth);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseProofSpec);\n message.leafSpec =\n object.leafSpec !== undefined && object.leafSpec !== null\n ? exports.LeafOp.fromPartial(object.leafSpec)\n : undefined;\n message.innerSpec =\n object.innerSpec !== undefined && object.innerSpec !== null\n ? exports.InnerSpec.fromPartial(object.innerSpec)\n : undefined;\n message.maxDepth = (_a = object.maxDepth) !== null && _a !== void 0 ? _a : 0;\n message.minDepth = (_b = object.minDepth) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseInnerSpec = {\n childOrder: 0,\n childSize: 0,\n minPrefixLength: 0,\n maxPrefixLength: 0,\n hash: 0,\n};\nexports.InnerSpec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n writer.uint32(10).fork();\n for (const v of message.childOrder) {\n writer.int32(v);\n }\n writer.ldelim();\n if (message.childSize !== 0) {\n writer.uint32(16).int32(message.childSize);\n }\n if (message.minPrefixLength !== 0) {\n writer.uint32(24).int32(message.minPrefixLength);\n }\n if (message.maxPrefixLength !== 0) {\n writer.uint32(32).int32(message.maxPrefixLength);\n }\n if (message.emptyChild.length !== 0) {\n writer.uint32(42).bytes(message.emptyChild);\n }\n if (message.hash !== 0) {\n writer.uint32(48).int32(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = [];\n message.emptyChild = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.childOrder.push(reader.int32());\n }\n }\n else {\n message.childOrder.push(reader.int32());\n }\n break;\n case 2:\n message.childSize = reader.int32();\n break;\n case 3:\n message.minPrefixLength = reader.int32();\n break;\n case 4:\n message.maxPrefixLength = reader.int32();\n break;\n case 5:\n message.emptyChild = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = ((_a = object.childOrder) !== null && _a !== void 0 ? _a : []).map((e) => Number(e));\n message.childSize =\n object.childSize !== undefined && object.childSize !== null ? Number(object.childSize) : 0;\n message.minPrefixLength =\n object.minPrefixLength !== undefined && object.minPrefixLength !== null\n ? Number(object.minPrefixLength)\n : 0;\n message.maxPrefixLength =\n object.maxPrefixLength !== undefined && object.maxPrefixLength !== null\n ? Number(object.maxPrefixLength)\n : 0;\n message.emptyChild =\n object.emptyChild !== undefined && object.emptyChild !== null\n ? bytesFromBase64(object.emptyChild)\n : new Uint8Array();\n message.hash = object.hash !== undefined && object.hash !== null ? hashOpFromJSON(object.hash) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.childOrder) {\n obj.childOrder = message.childOrder.map((e) => e);\n }\n else {\n obj.childOrder = [];\n }\n message.childSize !== undefined && (obj.childSize = message.childSize);\n message.minPrefixLength !== undefined && (obj.minPrefixLength = message.minPrefixLength);\n message.maxPrefixLength !== undefined && (obj.maxPrefixLength = message.maxPrefixLength);\n message.emptyChild !== undefined &&\n (obj.emptyChild = base64FromBytes(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array()));\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = ((_a = object.childOrder) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n message.childSize = (_b = object.childSize) !== null && _b !== void 0 ? _b : 0;\n message.minPrefixLength = (_c = object.minPrefixLength) !== null && _c !== void 0 ? _c : 0;\n message.maxPrefixLength = (_d = object.maxPrefixLength) !== null && _d !== void 0 ? _d : 0;\n message.emptyChild = (_e = object.emptyChild) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.hash = (_f = object.hash) !== null && _f !== void 0 ? _f : 0;\n return message;\n },\n};\nconst baseBatchProof = {};\nexports.BatchProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.entries) {\n exports.BatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBatchProof);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseBatchProof);\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.BatchEntry.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.BatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseBatchProof);\n message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map((e) => exports.BatchEntry.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseBatchEntry = {};\nexports.BatchEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBatchEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBatchEntry);\n message.exist =\n object.exist !== undefined && object.exist !== null ? exports.ExistenceProof.fromJSON(object.exist) : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.NonExistenceProof.fromJSON(object.nonexist)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBatchEntry);\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? exports.ExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.NonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n return message;\n },\n};\nconst baseCompressedBatchProof = {};\nexports.CompressedBatchProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.entries) {\n exports.CompressedBatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.lookupInners) {\n exports.InnerOp.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = [];\n message.lookupInners = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.CompressedBatchEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n message.lookupInners.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.CompressedBatchEntry.fromJSON(e));\n message.lookupInners = ((_b = object.lookupInners) !== null && _b !== void 0 ? _b : []).map((e) => exports.InnerOp.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.CompressedBatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n if (message.lookupInners) {\n obj.lookupInners = message.lookupInners.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.lookupInners = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map((e) => exports.CompressedBatchEntry.fromPartial(e))) || [];\n message.lookupInners = ((_b = object.lookupInners) === null || _b === void 0 ? void 0 : _b.map((e) => exports.InnerOp.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCompressedBatchEntry = {};\nexports.CompressedBatchEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedBatchEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.CompressedNonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompressedBatchEntry);\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? exports.CompressedExistenceProof.fromJSON(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.CompressedNonExistenceProof.fromJSON(object.nonexist)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.CompressedExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.CompressedNonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCompressedBatchEntry);\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? exports.CompressedExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.CompressedNonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n return message;\n },\n};\nconst baseCompressedExistenceProof = { path: 0 };\nexports.CompressedExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n writer.uint32(34).fork();\n for (const v of message.path) {\n writer.int32(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.path = [];\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.path.push(reader.int32());\n }\n }\n else {\n message.path.push(reader.int32());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromJSON(object.leaf) : undefined;\n message.path = ((_a = object.path) !== null && _a !== void 0 ? _a : []).map((e) => Number(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => e);\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromPartial(object.leaf) : undefined;\n message.path = ((_c = object.path) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n return message;\n },\n};\nconst baseCompressedNonExistenceProof = {};\nexports.CompressedNonExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null\n ? exports.CompressedExistenceProof.fromJSON(object.left)\n : undefined;\n message.right =\n object.right !== undefined && object.right !== null\n ? exports.CompressedExistenceProof.fromJSON(object.right)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined &&\n (obj.left = message.left ? exports.CompressedExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.CompressedExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null\n ? exports.CompressedExistenceProof.fromPartial(object.left)\n : undefined;\n message.right =\n object.right !== undefined && object.right !== null\n ? exports.CompressedExistenceProof.fromPartial(object.right)\n : undefined;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=proofs.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ModuleAccount = exports.BaseAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nconst baseBaseAccount = { address: \"\", accountNumber: long_1.default.UZERO, sequence: long_1.default.UZERO };\nexports.BaseAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pubKey !== undefined) {\n any_1.Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (!message.accountNumber.isZero()) {\n writer.uint32(24).uint64(message.accountNumber);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(32).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBaseAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pubKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.accountNumber = reader.uint64();\n break;\n case 4:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBaseAccount);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? any_1.Any.fromJSON(object.pubKey) : undefined;\n message.accountNumber =\n object.accountNumber !== undefined && object.accountNumber !== null\n ? long_1.default.fromString(object.accountNumber)\n : long_1.default.UZERO;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pubKey !== undefined && (obj.pubKey = message.pubKey ? any_1.Any.toJSON(message.pubKey) : undefined);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseBaseAccount);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? any_1.Any.fromPartial(object.pubKey) : undefined;\n message.accountNumber =\n object.accountNumber !== undefined && object.accountNumber !== null\n ? long_1.default.fromValue(object.accountNumber)\n : long_1.default.UZERO;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseModuleAccount = { name: \"\", permissions: \"\" };\nexports.ModuleAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseAccount !== undefined) {\n exports.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.name !== \"\") {\n writer.uint32(18).string(message.name);\n }\n for (const v of message.permissions) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModuleAccount);\n message.permissions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = exports.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.name = reader.string();\n break;\n case 3:\n message.permissions.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseModuleAccount);\n message.baseAccount =\n object.baseAccount !== undefined && object.baseAccount !== null\n ? exports.BaseAccount.fromJSON(object.baseAccount)\n : undefined;\n message.name = object.name !== undefined && object.name !== null ? String(object.name) : \"\";\n message.permissions = ((_a = object.permissions) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? exports.BaseAccount.toJSON(message.baseAccount) : undefined);\n message.name !== undefined && (obj.name = message.name);\n if (message.permissions) {\n obj.permissions = message.permissions.map((e) => e);\n }\n else {\n obj.permissions = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseModuleAccount);\n message.baseAccount =\n object.baseAccount !== undefined && object.baseAccount !== null\n ? exports.BaseAccount.fromPartial(object.baseAccount)\n : undefined;\n message.name = (_a = object.name) !== null && _a !== void 0 ? _a : \"\";\n message.permissions = ((_b = object.permissions) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n return message;\n },\n};\nconst baseParams = {\n maxMemoCharacters: long_1.default.UZERO,\n txSigLimit: long_1.default.UZERO,\n txSizeCostPerByte: long_1.default.UZERO,\n sigVerifyCostEd25519: long_1.default.UZERO,\n sigVerifyCostSecp256k1: long_1.default.UZERO,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxMemoCharacters.isZero()) {\n writer.uint32(8).uint64(message.maxMemoCharacters);\n }\n if (!message.txSigLimit.isZero()) {\n writer.uint32(16).uint64(message.txSigLimit);\n }\n if (!message.txSizeCostPerByte.isZero()) {\n writer.uint32(24).uint64(message.txSizeCostPerByte);\n }\n if (!message.sigVerifyCostEd25519.isZero()) {\n writer.uint32(32).uint64(message.sigVerifyCostEd25519);\n }\n if (!message.sigVerifyCostSecp256k1.isZero()) {\n writer.uint32(40).uint64(message.sigVerifyCostSecp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxMemoCharacters = reader.uint64();\n break;\n case 2:\n message.txSigLimit = reader.uint64();\n break;\n case 3:\n message.txSizeCostPerByte = reader.uint64();\n break;\n case 4:\n message.sigVerifyCostEd25519 = reader.uint64();\n break;\n case 5:\n message.sigVerifyCostSecp256k1 = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.maxMemoCharacters =\n object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null\n ? long_1.default.fromString(object.maxMemoCharacters)\n : long_1.default.UZERO;\n message.txSigLimit =\n object.txSigLimit !== undefined && object.txSigLimit !== null\n ? long_1.default.fromString(object.txSigLimit)\n : long_1.default.UZERO;\n message.txSizeCostPerByte =\n object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null\n ? long_1.default.fromString(object.txSizeCostPerByte)\n : long_1.default.UZERO;\n message.sigVerifyCostEd25519 =\n object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null\n ? long_1.default.fromString(object.sigVerifyCostEd25519)\n : long_1.default.UZERO;\n message.sigVerifyCostSecp256k1 =\n object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null\n ? long_1.default.fromString(object.sigVerifyCostSecp256k1)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxMemoCharacters !== undefined &&\n (obj.maxMemoCharacters = (message.maxMemoCharacters || long_1.default.UZERO).toString());\n message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || long_1.default.UZERO).toString());\n message.txSizeCostPerByte !== undefined &&\n (obj.txSizeCostPerByte = (message.txSizeCostPerByte || long_1.default.UZERO).toString());\n message.sigVerifyCostEd25519 !== undefined &&\n (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || long_1.default.UZERO).toString());\n message.sigVerifyCostSecp256k1 !== undefined &&\n (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n message.maxMemoCharacters =\n object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null\n ? long_1.default.fromValue(object.maxMemoCharacters)\n : long_1.default.UZERO;\n message.txSigLimit =\n object.txSigLimit !== undefined && object.txSigLimit !== null\n ? long_1.default.fromValue(object.txSigLimit)\n : long_1.default.UZERO;\n message.txSizeCostPerByte =\n object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null\n ? long_1.default.fromValue(object.txSizeCostPerByte)\n : long_1.default.UZERO;\n message.sigVerifyCostEd25519 =\n object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null\n ? long_1.default.fromValue(object.sigVerifyCostEd25519)\n : long_1.default.UZERO;\n message.sigVerifyCostSecp256k1 =\n object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null\n ? long_1.default.fromValue(object.sigVerifyCostSecp256k1)\n : long_1.default.UZERO;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=auth.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryAccountResponse = exports.QueryAccountRequest = exports.QueryAccountsResponse = exports.QueryAccountsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst auth_1 = require(\"../../../cosmos/auth/v1beta1/auth\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nconst baseQueryAccountsRequest = {};\nexports.QueryAccountsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAccountsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAccountsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryAccountsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAccountsResponse = {};\nexports.QueryAccountsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.accounts) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAccountsResponse);\n message.accounts = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.accounts.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryAccountsResponse);\n message.accounts = ((_a = object.accounts) !== null && _a !== void 0 ? _a : []).map((e) => any_1.Any.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.accounts) {\n obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.accounts = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAccountsResponse);\n message.accounts = ((_a = object.accounts) === null || _a === void 0 ? void 0 : _a.map((e) => any_1.Any.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAccountRequest = { address: \"\" };\nexports.QueryAccountRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAccountRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAccountRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAccountRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryAccountResponse = {};\nexports.QueryAccountResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.account !== undefined) {\n any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAccountResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.account = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAccountResponse);\n message.account =\n object.account !== undefined && object.account !== null ? any_1.Any.fromJSON(object.account) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.account !== undefined &&\n (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryAccountResponse);\n message.account =\n object.account !== undefined && object.account !== null ? any_1.Any.fromPartial(object.account) : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n auth_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = auth_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? auth_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? auth_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? auth_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Accounts = this.Accounts.bind(this);\n this.Account = this.Account.bind(this);\n this.Params = this.Params.bind(this);\n }\n Accounts(request) {\n const data = exports.QueryAccountsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Accounts\", data);\n return promise.then((data) => exports.QueryAccountsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Account(request) {\n const data = exports.QueryAccountRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Account\", data);\n return promise.then((data) => exports.QueryAccountResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grant = exports.GenericAuthorization = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nconst baseGenericAuthorization = { msg: \"\" };\nexports.GenericAuthorization = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msg !== \"\") {\n writer.uint32(10).string(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGenericAuthorization);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msg = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGenericAuthorization);\n message.msg = object.msg !== undefined && object.msg !== null ? String(object.msg) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msg !== undefined && (obj.msg = message.msg);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseGenericAuthorization);\n message.msg = (_a = object.msg) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseGrant = {};\nexports.Grant = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.authorization !== undefined) {\n any_1.Any.encode(message.authorization, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGrant);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authorization = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGrant);\n message.authorization =\n object.authorization !== undefined && object.authorization !== null\n ? any_1.Any.fromJSON(object.authorization)\n : undefined;\n message.expiration =\n object.expiration !== undefined && object.expiration !== null\n ? fromJsonTimestamp(object.expiration)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.authorization !== undefined &&\n (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined);\n message.expiration !== undefined && (obj.expiration = fromTimestamp(message.expiration).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGrant);\n message.authorization =\n object.authorization !== undefined && object.authorization !== null\n ? any_1.Any.fromPartial(object.authorization)\n : undefined;\n message.expiration =\n object.expiration !== undefined && object.expiration !== null\n ? timestamp_1.Timestamp.fromPartial(object.expiration)\n : undefined;\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=authz.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgRevokeResponse = exports.MsgRevoke = exports.MsgGrantResponse = exports.MsgExec = exports.MsgExecResponse = exports.MsgGrant = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst authz_1 = require(\"../../../cosmos/authz/v1beta1/authz\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nconst baseMsgGrant = { granter: \"\", grantee: \"\" };\nexports.MsgGrant = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.grant !== undefined) {\n authz_1.Grant.encode(message.grant, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrant);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.grant = authz_1.Grant.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgGrant);\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n message.grant =\n object.grant !== undefined && object.grant !== null ? authz_1.Grant.fromJSON(object.grant) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.grant !== undefined && (obj.grant = message.grant ? authz_1.Grant.toJSON(message.grant) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgGrant);\n message.granter = (_a = object.granter) !== null && _a !== void 0 ? _a : \"\";\n message.grantee = (_b = object.grantee) !== null && _b !== void 0 ? _b : \"\";\n message.grant =\n object.grant !== undefined && object.grant !== null ? authz_1.Grant.fromPartial(object.grant) : undefined;\n return message;\n },\n};\nconst baseMsgExecResponse = {};\nexports.MsgExecResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.results) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.results.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = ((_a = object.results) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.results) {\n obj.results = message.results.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.results = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseMsgExec = { grantee: \"\" };\nexports.MsgExec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n for (const v of message.msgs) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExec);\n message.msgs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.msgs.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgExec);\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n message.msgs = ((_a = object.msgs) !== null && _a !== void 0 ? _a : []).map((e) => any_1.Any.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n if (message.msgs) {\n obj.msgs = message.msgs.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgExec);\n message.grantee = (_a = object.grantee) !== null && _a !== void 0 ? _a : \"\";\n message.msgs = ((_b = object.msgs) === null || _b === void 0 ? void 0 : _b.map((e) => any_1.Any.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgGrantResponse = {};\nexports.MsgGrantResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgGrantResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgGrantResponse);\n return message;\n },\n};\nconst baseMsgRevoke = { granter: \"\", grantee: \"\", msgTypeUrl: \"\" };\nexports.MsgRevoke = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.msgTypeUrl !== \"\") {\n writer.uint32(26).string(message.msgTypeUrl);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevoke);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.msgTypeUrl = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRevoke);\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n message.msgTypeUrl =\n object.msgTypeUrl !== undefined && object.msgTypeUrl !== null ? String(object.msgTypeUrl) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgRevoke);\n message.granter = (_a = object.granter) !== null && _a !== void 0 ? _a : \"\";\n message.grantee = (_b = object.grantee) !== null && _b !== void 0 ? _b : \"\";\n message.msgTypeUrl = (_c = object.msgTypeUrl) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgRevokeResponse = {};\nexports.MsgRevokeResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgRevokeResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRevokeResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Grant = this.Grant.bind(this);\n this.Exec = this.Exec.bind(this);\n this.Revoke = this.Revoke.bind(this);\n }\n Grant(request) {\n const data = exports.MsgGrant.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Grant\", data);\n return promise.then((data) => exports.MsgGrantResponse.decode(new minimal_1.default.Reader(data)));\n }\n Exec(request) {\n const data = exports.MsgExec.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Exec\", data);\n return promise.then((data) => exports.MsgExecResponse.decode(new minimal_1.default.Reader(data)));\n }\n Revoke(request) {\n const data = exports.MsgRevoke.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Revoke\", data);\n return promise.then((data) => exports.MsgRevokeResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Metadata = exports.DenomUnit = exports.Supply = exports.Output = exports.Input = exports.SendEnabled = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseParams = { defaultSendEnabled: false };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.sendEnabled) {\n exports.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.defaultSendEnabled === true) {\n writer.uint32(16).bool(message.defaultSendEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled.push(exports.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 2:\n message.defaultSendEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = ((_a = object.sendEnabled) !== null && _a !== void 0 ? _a : []).map((e) => exports.SendEnabled.fromJSON(e));\n message.defaultSendEnabled =\n object.defaultSendEnabled !== undefined && object.defaultSendEnabled !== null\n ? Boolean(object.defaultSendEnabled)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? exports.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n message.defaultSendEnabled !== undefined && (obj.defaultSendEnabled = message.defaultSendEnabled);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = ((_a = object.sendEnabled) === null || _a === void 0 ? void 0 : _a.map((e) => exports.SendEnabled.fromPartial(e))) || [];\n message.defaultSendEnabled = (_b = object.defaultSendEnabled) !== null && _b !== void 0 ? _b : false;\n return message;\n },\n};\nconst baseSendEnabled = { denom: \"\", enabled: false };\nexports.SendEnabled = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.enabled === true) {\n writer.uint32(16).bool(message.enabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSendEnabled);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSendEnabled);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.enabled =\n object.enabled !== undefined && object.enabled !== null ? Boolean(object.enabled) : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.enabled !== undefined && (obj.enabled = message.enabled);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseSendEnabled);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.enabled = (_b = object.enabled) !== null && _b !== void 0 ? _b : false;\n return message;\n },\n};\nconst baseInput = { address: \"\" };\nexports.Input = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInput);\n message.coins = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseInput);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.coins = ((_a = object.coins) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseInput);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.coins = ((_b = object.coins) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseOutput = { address: \"\" };\nexports.Output = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseOutput);\n message.coins = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseOutput);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.coins = ((_a = object.coins) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseOutput);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.coins = ((_b = object.coins) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseSupply = {};\nexports.Supply = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.total) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSupply);\n message.total = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseSupply);\n message.total = ((_a = object.total) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSupply);\n message.total = ((_a = object.total) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDenomUnit = { denom: \"\", exponent: 0, aliases: \"\" };\nexports.DenomUnit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.exponent !== 0) {\n writer.uint32(16).uint32(message.exponent);\n }\n for (const v of message.aliases) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDenomUnit);\n message.aliases = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.exponent = reader.uint32();\n break;\n case 3:\n message.aliases.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDenomUnit);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.exponent =\n object.exponent !== undefined && object.exponent !== null ? Number(object.exponent) : 0;\n message.aliases = ((_a = object.aliases) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.exponent !== undefined && (obj.exponent = message.exponent);\n if (message.aliases) {\n obj.aliases = message.aliases.map((e) => e);\n }\n else {\n obj.aliases = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseDenomUnit);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.exponent = (_b = object.exponent) !== null && _b !== void 0 ? _b : 0;\n message.aliases = ((_c = object.aliases) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n return message;\n },\n};\nconst baseMetadata = { description: \"\", base: \"\", display: \"\", name: \"\", symbol: \"\" };\nexports.Metadata = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== \"\") {\n writer.uint32(10).string(message.description);\n }\n for (const v of message.denomUnits) {\n exports.DenomUnit.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.base !== \"\") {\n writer.uint32(26).string(message.base);\n }\n if (message.display !== \"\") {\n writer.uint32(34).string(message.display);\n }\n if (message.name !== \"\") {\n writer.uint32(42).string(message.name);\n }\n if (message.symbol !== \"\") {\n writer.uint32(50).string(message.symbol);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMetadata);\n message.denomUnits = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = reader.string();\n break;\n case 2:\n message.denomUnits.push(exports.DenomUnit.decode(reader, reader.uint32()));\n break;\n case 3:\n message.base = reader.string();\n break;\n case 4:\n message.display = reader.string();\n break;\n case 5:\n message.name = reader.string();\n break;\n case 6:\n message.symbol = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMetadata);\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n message.denomUnits = ((_a = object.denomUnits) !== null && _a !== void 0 ? _a : []).map((e) => exports.DenomUnit.fromJSON(e));\n message.base = object.base !== undefined && object.base !== null ? String(object.base) : \"\";\n message.display = object.display !== undefined && object.display !== null ? String(object.display) : \"\";\n message.name = object.name !== undefined && object.name !== null ? String(object.name) : \"\";\n message.symbol = object.symbol !== undefined && object.symbol !== null ? String(object.symbol) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined && (obj.description = message.description);\n if (message.denomUnits) {\n obj.denomUnits = message.denomUnits.map((e) => (e ? exports.DenomUnit.toJSON(e) : undefined));\n }\n else {\n obj.denomUnits = [];\n }\n message.base !== undefined && (obj.base = message.base);\n message.display !== undefined && (obj.display = message.display);\n message.name !== undefined && (obj.name = message.name);\n message.symbol !== undefined && (obj.symbol = message.symbol);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseMetadata);\n message.description = (_a = object.description) !== null && _a !== void 0 ? _a : \"\";\n message.denomUnits = ((_b = object.denomUnits) === null || _b === void 0 ? void 0 : _b.map((e) => exports.DenomUnit.fromPartial(e))) || [];\n message.base = (_c = object.base) !== null && _c !== void 0 ? _c : \"\";\n message.display = (_d = object.display) !== null && _d !== void 0 ? _d : \"\";\n message.name = (_e = object.name) !== null && _e !== void 0 ? _e : \"\";\n message.symbol = (_f = object.symbol) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=bank.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryDenomMetadataResponse = exports.QueryDenomMetadataRequest = exports.QueryDenomsMetadataResponse = exports.QueryDenomsMetadataRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QuerySupplyOfResponse = exports.QuerySupplyOfRequest = exports.QueryTotalSupplyResponse = exports.QueryTotalSupplyRequest = exports.QueryAllBalancesResponse = exports.QueryAllBalancesRequest = exports.QueryBalanceResponse = exports.QueryBalanceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst bank_1 = require(\"../../../cosmos/bank/v1beta1/bank\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseQueryBalanceRequest = { address: \"\", denom: \"\" };\nexports.QueryBalanceRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.denom !== \"\") {\n writer.uint32(18).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryBalanceRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryBalanceRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryBalanceRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.denom = (_b = object.denom) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryBalanceResponse = {};\nexports.QueryBalanceResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryBalanceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryBalanceResponse);\n message.balance =\n object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromJSON(object.balance) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryBalanceResponse);\n message.balance =\n object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromPartial(object.balance) : undefined;\n return message;\n },\n};\nconst baseQueryAllBalancesRequest = { address: \"\" };\nexports.QueryAllBalancesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAllBalancesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAllBalancesRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllBalancesRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAllBalancesResponse = {};\nexports.QueryAllBalancesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.balances) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAllBalancesResponse);\n message.balances = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balances.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllBalancesResponse);\n message.balances = ((_a = object.balances) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.balances) {\n obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.balances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllBalancesResponse);\n message.balances = ((_a = object.balances) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryTotalSupplyRequest = {};\nexports.QueryTotalSupplyRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryTotalSupplyRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryTotalSupplyRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryTotalSupplyRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryTotalSupplyResponse = {};\nexports.QueryTotalSupplyResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.supply) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryTotalSupplyResponse);\n message.supply = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.supply.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryTotalSupplyResponse);\n message.supply = ((_a = object.supply) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.supply) {\n obj.supply = message.supply.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.supply = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryTotalSupplyResponse);\n message.supply = ((_a = object.supply) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQuerySupplyOfRequest = { denom: \"\" };\nexports.QuerySupplyOfRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySupplyOfRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySupplyOfRequest);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQuerySupplyOfRequest);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQuerySupplyOfResponse = {};\nexports.QuerySupplyOfResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySupplyOfResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySupplyOfResponse);\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromJSON(object.amount) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQuerySupplyOfResponse);\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n bank_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = bank_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? bank_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? bank_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nconst baseQueryDenomsMetadataRequest = {};\nexports.QueryDenomsMetadataRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomsMetadataRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomsMetadataRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDenomsMetadataRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDenomsMetadataResponse = {};\nexports.QueryDenomsMetadataResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.metadatas) {\n bank_1.Metadata.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomsMetadataResponse);\n message.metadatas = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadatas.push(bank_1.Metadata.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomsMetadataResponse);\n message.metadatas = ((_a = object.metadatas) !== null && _a !== void 0 ? _a : []).map((e) => bank_1.Metadata.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.metadatas) {\n obj.metadatas = message.metadatas.map((e) => (e ? bank_1.Metadata.toJSON(e) : undefined));\n }\n else {\n obj.metadatas = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomsMetadataResponse);\n message.metadatas = ((_a = object.metadatas) === null || _a === void 0 ? void 0 : _a.map((e) => bank_1.Metadata.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDenomMetadataRequest = { denom: \"\" };\nexports.QueryDenomMetadataRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomMetadataRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomMetadataRequest);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomMetadataRequest);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDenomMetadataResponse = {};\nexports.QueryDenomMetadataResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.metadata !== undefined) {\n bank_1.Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomMetadataResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadata = bank_1.Metadata.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomMetadataResponse);\n message.metadata =\n object.metadata !== undefined && object.metadata !== null\n ? bank_1.Metadata.fromJSON(object.metadata)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.metadata !== undefined &&\n (obj.metadata = message.metadata ? bank_1.Metadata.toJSON(message.metadata) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDenomMetadataResponse);\n message.metadata =\n object.metadata !== undefined && object.metadata !== null\n ? bank_1.Metadata.fromPartial(object.metadata)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Balance = this.Balance.bind(this);\n this.AllBalances = this.AllBalances.bind(this);\n this.TotalSupply = this.TotalSupply.bind(this);\n this.SupplyOf = this.SupplyOf.bind(this);\n this.Params = this.Params.bind(this);\n this.DenomMetadata = this.DenomMetadata.bind(this);\n this.DenomsMetadata = this.DenomsMetadata.bind(this);\n }\n Balance(request) {\n const data = exports.QueryBalanceRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"Balance\", data);\n return promise.then((data) => exports.QueryBalanceResponse.decode(new minimal_1.default.Reader(data)));\n }\n AllBalances(request) {\n const data = exports.QueryAllBalancesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"AllBalances\", data);\n return promise.then((data) => exports.QueryAllBalancesResponse.decode(new minimal_1.default.Reader(data)));\n }\n TotalSupply(request) {\n const data = exports.QueryTotalSupplyRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"TotalSupply\", data);\n return promise.then((data) => exports.QueryTotalSupplyResponse.decode(new minimal_1.default.Reader(data)));\n }\n SupplyOf(request) {\n const data = exports.QuerySupplyOfRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SupplyOf\", data);\n return promise.then((data) => exports.QuerySupplyOfResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DenomMetadata(request) {\n const data = exports.QueryDenomMetadataRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomMetadata\", data);\n return promise.then((data) => exports.QueryDenomMetadataResponse.decode(new minimal_1.default.Reader(data)));\n }\n DenomsMetadata(request) {\n const data = exports.QueryDenomsMetadataRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomsMetadata\", data);\n return promise.then((data) => exports.QueryDenomsMetadataResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgMultiSendResponse = exports.MsgMultiSend = exports.MsgSendResponse = exports.MsgSend = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst bank_1 = require(\"../../../cosmos/bank/v1beta1/bank\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseMsgSend = { fromAddress: \"\", toAddress: \"\" };\nexports.MsgSend = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSend);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgSend);\n message.fromAddress =\n object.fromAddress !== undefined && object.fromAddress !== null ? String(object.fromAddress) : \"\";\n message.toAddress =\n object.toAddress !== undefined && object.toAddress !== null ? String(object.toAddress) : \"\";\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgSend);\n message.fromAddress = (_a = object.fromAddress) !== null && _a !== void 0 ? _a : \"\";\n message.toAddress = (_b = object.toAddress) !== null && _b !== void 0 ? _b : \"\";\n message.amount = ((_c = object.amount) === null || _c === void 0 ? void 0 : _c.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgSendResponse = {};\nexports.MsgSendResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSendResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSendResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSendResponse);\n return message;\n },\n};\nconst baseMsgMultiSend = {};\nexports.MsgMultiSend = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.inputs) {\n bank_1.Input.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.outputs) {\n bank_1.Output.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = [];\n message.outputs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inputs.push(bank_1.Input.decode(reader, reader.uint32()));\n break;\n case 2:\n message.outputs.push(bank_1.Output.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = ((_a = object.inputs) !== null && _a !== void 0 ? _a : []).map((e) => bank_1.Input.fromJSON(e));\n message.outputs = ((_b = object.outputs) !== null && _b !== void 0 ? _b : []).map((e) => bank_1.Output.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.inputs) {\n obj.inputs = message.inputs.map((e) => (e ? bank_1.Input.toJSON(e) : undefined));\n }\n else {\n obj.inputs = [];\n }\n if (message.outputs) {\n obj.outputs = message.outputs.map((e) => (e ? bank_1.Output.toJSON(e) : undefined));\n }\n else {\n obj.outputs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = ((_a = object.inputs) === null || _a === void 0 ? void 0 : _a.map((e) => bank_1.Input.fromPartial(e))) || [];\n message.outputs = ((_b = object.outputs) === null || _b === void 0 ? void 0 : _b.map((e) => bank_1.Output.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgMultiSendResponse = {};\nexports.MsgMultiSendResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMultiSendResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgMultiSendResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgMultiSendResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Send = this.Send.bind(this);\n this.MultiSend = this.MultiSend.bind(this);\n }\n Send(request) {\n const data = exports.MsgSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"Send\", data);\n return promise.then((data) => exports.MsgSendResponse.decode(new minimal_1.default.Reader(data)));\n }\n MultiSend(request) {\n const data = exports.MsgMultiSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"MultiSend\", data);\n return promise.then((data) => exports.MsgMultiSendResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst types_1 = require(\"../../../../tendermint/abci/types\");\nexports.protobufPackage = \"cosmos.base.abci.v1beta1\";\nconst baseTxResponse = {\n height: long_1.default.ZERO,\n txhash: \"\",\n codespace: \"\",\n code: 0,\n data: \"\",\n rawLog: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n timestamp: \"\",\n};\nexports.TxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.txhash !== \"\") {\n writer.uint32(18).string(message.txhash);\n }\n if (message.codespace !== \"\") {\n writer.uint32(26).string(message.codespace);\n }\n if (message.code !== 0) {\n writer.uint32(32).uint32(message.code);\n }\n if (message.data !== \"\") {\n writer.uint32(42).string(message.data);\n }\n if (message.rawLog !== \"\") {\n writer.uint32(50).string(message.rawLog);\n }\n for (const v of message.logs) {\n exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.info !== \"\") {\n writer.uint32(66).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(72).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(80).int64(message.gasUsed);\n }\n if (message.tx !== undefined) {\n any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim();\n }\n if (message.timestamp !== \"\") {\n writer.uint32(98).string(message.timestamp);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(106).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxResponse);\n message.logs = [];\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.txhash = reader.string();\n break;\n case 3:\n message.codespace = reader.string();\n break;\n case 4:\n message.code = reader.uint32();\n break;\n case 5:\n message.data = reader.string();\n break;\n case 6:\n message.rawLog = reader.string();\n break;\n case 7:\n message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32()));\n break;\n case 8:\n message.info = reader.string();\n break;\n case 9:\n message.gasWanted = reader.int64();\n break;\n case 10:\n message.gasUsed = reader.int64();\n break;\n case 11:\n message.tx = any_1.Any.decode(reader, reader.uint32());\n break;\n case 12:\n message.timestamp = reader.string();\n break;\n case 13:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseTxResponse);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.txhash = object.txhash !== undefined && object.txhash !== null ? String(object.txhash) : \"\";\n message.codespace =\n object.codespace !== undefined && object.codespace !== null ? String(object.codespace) : \"\";\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.data = object.data !== undefined && object.data !== null ? String(object.data) : \"\";\n message.rawLog = object.rawLog !== undefined && object.rawLog !== null ? String(object.rawLog) : \"\";\n message.logs = ((_a = object.logs) !== null && _a !== void 0 ? _a : []).map((e) => exports.ABCIMessageLog.fromJSON(e));\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromString(object.gasWanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromString(object.gasUsed) : long_1.default.ZERO;\n message.tx = object.tx !== undefined && object.tx !== null ? any_1.Any.fromJSON(object.tx) : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null ? String(object.timestamp) : \"\";\n message.events = ((_b = object.events) !== null && _b !== void 0 ? _b : []).map((e) => types_1.Event.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.txhash !== undefined && (obj.txhash = message.txhash);\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined && (obj.data = message.data);\n message.rawLog !== undefined && (obj.rawLog = message.rawLog);\n if (message.logs) {\n obj.logs = message.logs.map((e) => (e ? exports.ABCIMessageLog.toJSON(e) : undefined));\n }\n else {\n obj.logs = [];\n }\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.ZERO).toString());\n message.tx !== undefined && (obj.tx = message.tx ? any_1.Any.toJSON(message.tx) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const message = Object.assign({}, baseTxResponse);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.txhash = (_a = object.txhash) !== null && _a !== void 0 ? _a : \"\";\n message.codespace = (_b = object.codespace) !== null && _b !== void 0 ? _b : \"\";\n message.code = (_c = object.code) !== null && _c !== void 0 ? _c : 0;\n message.data = (_d = object.data) !== null && _d !== void 0 ? _d : \"\";\n message.rawLog = (_e = object.rawLog) !== null && _e !== void 0 ? _e : \"\";\n message.logs = ((_f = object.logs) === null || _f === void 0 ? void 0 : _f.map((e) => exports.ABCIMessageLog.fromPartial(e))) || [];\n message.info = (_g = object.info) !== null && _g !== void 0 ? _g : \"\";\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromValue(object.gasWanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromValue(object.gasUsed) : long_1.default.ZERO;\n message.tx = object.tx !== undefined && object.tx !== null ? any_1.Any.fromPartial(object.tx) : undefined;\n message.timestamp = (_h = object.timestamp) !== null && _h !== void 0 ? _h : \"\";\n message.events = ((_j = object.events) === null || _j === void 0 ? void 0 : _j.map((e) => types_1.Event.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseABCIMessageLog = { msgIndex: 0, log: \"\" };\nexports.ABCIMessageLog = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msgIndex !== 0) {\n writer.uint32(8).uint32(message.msgIndex);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseABCIMessageLog);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgIndex = reader.uint32();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(exports.StringEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseABCIMessageLog);\n message.msgIndex =\n object.msgIndex !== undefined && object.msgIndex !== null ? Number(object.msgIndex) : 0;\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => exports.StringEvent.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msgIndex !== undefined && (obj.msgIndex = message.msgIndex);\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.StringEvent.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseABCIMessageLog);\n message.msgIndex = (_a = object.msgIndex) !== null && _a !== void 0 ? _a : 0;\n message.log = (_b = object.log) !== null && _b !== void 0 ? _b : \"\";\n message.events = ((_c = object.events) === null || _c === void 0 ? void 0 : _c.map((e) => exports.StringEvent.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseStringEvent = { type: \"\" };\nexports.StringEvent = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseStringEvent);\n message.attributes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.Attribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseStringEvent);\n message.type = object.type !== undefined && object.type !== null ? String(object.type) : \"\";\n message.attributes = ((_a = object.attributes) !== null && _a !== void 0 ? _a : []).map((e) => exports.Attribute.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.Attribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseStringEvent);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : \"\";\n message.attributes = ((_b = object.attributes) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Attribute.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseAttribute = { key: \"\", value: \"\" };\nexports.Attribute = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAttribute);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAttribute);\n message.key = object.key !== undefined && object.key !== null ? String(object.key) : \"\";\n message.value = object.value !== undefined && object.value !== null ? String(object.value) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseAttribute);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : \"\";\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseGasInfo = { gasWanted: long_1.default.UZERO, gasUsed: long_1.default.UZERO };\nexports.GasInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.gasWanted.isZero()) {\n writer.uint32(8).uint64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(16).uint64(message.gasUsed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGasInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasWanted = reader.uint64();\n break;\n case 2:\n message.gasUsed = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGasInfo);\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromString(object.gasWanted)\n : long_1.default.UZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromString(object.gasUsed) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.UZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGasInfo);\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromValue(object.gasWanted)\n : long_1.default.UZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromValue(object.gasUsed) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseResult = { log: \"\" };\nexports.Result = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResult);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResult);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => types_1.Event.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseResult);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.log = (_b = object.log) !== null && _b !== void 0 ? _b : \"\";\n message.events = ((_c = object.events) === null || _c === void 0 ? void 0 : _c.map((e) => types_1.Event.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseSimulationResponse = {};\nexports.SimulationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.gasInfo !== undefined) {\n exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = exports.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = exports.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulationResponse);\n message.gasInfo =\n object.gasInfo !== undefined && object.gasInfo !== null ? exports.GasInfo.fromJSON(object.gasInfo) : undefined;\n message.result =\n object.result !== undefined && object.result !== null ? exports.Result.fromJSON(object.result) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? exports.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? exports.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimulationResponse);\n message.gasInfo =\n object.gasInfo !== undefined && object.gasInfo !== null\n ? exports.GasInfo.fromPartial(object.gasInfo)\n : undefined;\n message.result =\n object.result !== undefined && object.result !== null ? exports.Result.fromPartial(object.result) : undefined;\n return message;\n },\n};\nconst baseMsgData = { msgType: \"\" };\nexports.MsgData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msgType !== \"\") {\n writer.uint32(10).string(message.msgType);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgData);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgType = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgData);\n message.msgType = object.msgType !== undefined && object.msgType !== null ? String(object.msgType) : \"\";\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msgType !== undefined && (obj.msgType = message.msgType);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgData);\n message.msgType = (_a = object.msgType) !== null && _a !== void 0 ? _a : \"\";\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseTxMsgData = {};\nexports.TxMsgData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.data) {\n exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxMsgData);\n message.data = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data.push(exports.MsgData.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseTxMsgData);\n message.data = ((_a = object.data) !== null && _a !== void 0 ? _a : []).map((e) => exports.MsgData.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.data) {\n obj.data = message.data.map((e) => (e ? exports.MsgData.toJSON(e) : undefined));\n }\n else {\n obj.data = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseTxMsgData);\n message.data = ((_a = object.data) === null || _a === void 0 ? void 0 : _a.map((e) => exports.MsgData.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseSearchTxsResult = {\n totalCount: long_1.default.UZERO,\n count: long_1.default.UZERO,\n pageNumber: long_1.default.UZERO,\n pageTotal: long_1.default.UZERO,\n limit: long_1.default.UZERO,\n};\nexports.SearchTxsResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.totalCount.isZero()) {\n writer.uint32(8).uint64(message.totalCount);\n }\n if (!message.count.isZero()) {\n writer.uint32(16).uint64(message.count);\n }\n if (!message.pageNumber.isZero()) {\n writer.uint32(24).uint64(message.pageNumber);\n }\n if (!message.pageTotal.isZero()) {\n writer.uint32(32).uint64(message.pageTotal);\n }\n if (!message.limit.isZero()) {\n writer.uint32(40).uint64(message.limit);\n }\n for (const v of message.txs) {\n exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSearchTxsResult);\n message.txs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalCount = reader.uint64();\n break;\n case 2:\n message.count = reader.uint64();\n break;\n case 3:\n message.pageNumber = reader.uint64();\n break;\n case 4:\n message.pageTotal = reader.uint64();\n break;\n case 5:\n message.limit = reader.uint64();\n break;\n case 6:\n message.txs.push(exports.TxResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseSearchTxsResult);\n message.totalCount =\n object.totalCount !== undefined && object.totalCount !== null\n ? long_1.default.fromString(object.totalCount)\n : long_1.default.UZERO;\n message.count =\n object.count !== undefined && object.count !== null ? long_1.default.fromString(object.count) : long_1.default.UZERO;\n message.pageNumber =\n object.pageNumber !== undefined && object.pageNumber !== null\n ? long_1.default.fromString(object.pageNumber)\n : long_1.default.UZERO;\n message.pageTotal =\n object.pageTotal !== undefined && object.pageTotal !== null\n ? long_1.default.fromString(object.pageTotal)\n : long_1.default.UZERO;\n message.limit =\n object.limit !== undefined && object.limit !== null ? long_1.default.fromString(object.limit) : long_1.default.UZERO;\n message.txs = ((_a = object.txs) !== null && _a !== void 0 ? _a : []).map((e) => exports.TxResponse.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.totalCount !== undefined && (obj.totalCount = (message.totalCount || long_1.default.UZERO).toString());\n message.count !== undefined && (obj.count = (message.count || long_1.default.UZERO).toString());\n message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || long_1.default.UZERO).toString());\n message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || long_1.default.UZERO).toString());\n message.limit !== undefined && (obj.limit = (message.limit || long_1.default.UZERO).toString());\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? exports.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSearchTxsResult);\n message.totalCount =\n object.totalCount !== undefined && object.totalCount !== null\n ? long_1.default.fromValue(object.totalCount)\n : long_1.default.UZERO;\n message.count =\n object.count !== undefined && object.count !== null ? long_1.default.fromValue(object.count) : long_1.default.UZERO;\n message.pageNumber =\n object.pageNumber !== undefined && object.pageNumber !== null\n ? long_1.default.fromValue(object.pageNumber)\n : long_1.default.UZERO;\n message.pageTotal =\n object.pageTotal !== undefined && object.pageTotal !== null\n ? long_1.default.fromValue(object.pageTotal)\n : long_1.default.UZERO;\n message.limit =\n object.limit !== undefined && object.limit !== null ? long_1.default.fromValue(object.limit) : long_1.default.UZERO;\n message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map((e) => exports.TxResponse.fromPartial(e))) || [];\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=abci.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PageResponse = exports.PageRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.base.query.v1beta1\";\nconst basePageRequest = { offset: long_1.default.UZERO, limit: long_1.default.UZERO, countTotal: false, reverse: false };\nexports.PageRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (!message.offset.isZero()) {\n writer.uint32(16).uint64(message.offset);\n }\n if (!message.limit.isZero()) {\n writer.uint32(24).uint64(message.limit);\n }\n if (message.countTotal === true) {\n writer.uint32(32).bool(message.countTotal);\n }\n if (message.reverse === true) {\n writer.uint32(40).bool(message.reverse);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePageRequest);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.offset = reader.uint64();\n break;\n case 3:\n message.limit = reader.uint64();\n break;\n case 4:\n message.countTotal = reader.bool();\n break;\n case 5:\n message.reverse = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePageRequest);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.offset =\n object.offset !== undefined && object.offset !== null ? long_1.default.fromString(object.offset) : long_1.default.UZERO;\n message.limit =\n object.limit !== undefined && object.limit !== null ? long_1.default.fromString(object.limit) : long_1.default.UZERO;\n message.countTotal =\n object.countTotal !== undefined && object.countTotal !== null ? Boolean(object.countTotal) : false;\n message.reverse =\n object.reverse !== undefined && object.reverse !== null ? Boolean(object.reverse) : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.offset !== undefined && (obj.offset = (message.offset || long_1.default.UZERO).toString());\n message.limit !== undefined && (obj.limit = (message.limit || long_1.default.UZERO).toString());\n message.countTotal !== undefined && (obj.countTotal = message.countTotal);\n message.reverse !== undefined && (obj.reverse = message.reverse);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, basePageRequest);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.offset =\n object.offset !== undefined && object.offset !== null ? long_1.default.fromValue(object.offset) : long_1.default.UZERO;\n message.limit =\n object.limit !== undefined && object.limit !== null ? long_1.default.fromValue(object.limit) : long_1.default.UZERO;\n message.countTotal = (_b = object.countTotal) !== null && _b !== void 0 ? _b : false;\n message.reverse = (_c = object.reverse) !== null && _c !== void 0 ? _c : false;\n return message;\n },\n};\nconst basePageResponse = { total: long_1.default.UZERO };\nexports.PageResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.nextKey.length !== 0) {\n writer.uint32(10).bytes(message.nextKey);\n }\n if (!message.total.isZero()) {\n writer.uint32(16).uint64(message.total);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePageResponse);\n message.nextKey = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextKey = reader.bytes();\n break;\n case 2:\n message.total = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePageResponse);\n message.nextKey =\n object.nextKey !== undefined && object.nextKey !== null\n ? bytesFromBase64(object.nextKey)\n : new Uint8Array();\n message.total =\n object.total !== undefined && object.total !== null ? long_1.default.fromString(object.total) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.nextKey !== undefined &&\n (obj.nextKey = base64FromBytes(message.nextKey !== undefined ? message.nextKey : new Uint8Array()));\n message.total !== undefined && (obj.total = (message.total || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePageResponse);\n message.nextKey = (_a = object.nextKey) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.total =\n object.total !== undefined && object.total !== null ? long_1.default.fromValue(object.total) : long_1.default.UZERO;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=pagination.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.base.v1beta1\";\nconst baseCoin = { denom: \"\", amount: \"\" };\nexports.Coin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCoin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCoin);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.amount = object.amount !== undefined && object.amount !== null ? String(object.amount) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCoin);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseDecCoin = { denom: \"\", amount: \"\" };\nexports.DecCoin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDecCoin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDecCoin);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.amount = object.amount !== undefined && object.amount !== null ? String(object.amount) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDecCoin);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseIntProto = { int: \"\" };\nexports.IntProto = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.int !== \"\") {\n writer.uint32(10).string(message.int);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIntProto);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.int = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIntProto);\n message.int = object.int !== undefined && object.int !== null ? String(object.int) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.int !== undefined && (obj.int = message.int);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseIntProto);\n message.int = (_a = object.int) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseDecProto = { dec: \"\" };\nexports.DecProto = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.dec !== \"\") {\n writer.uint32(10).string(message.dec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDecProto);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dec = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDecProto);\n message.dec = object.dec !== undefined && object.dec !== null ? String(object.dec) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.dec !== undefined && (obj.dec = message.dec);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDecProto);\n message.dec = (_a = object.dec) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=coin.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LegacyAminoPubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.crypto.multisig\";\nconst baseLegacyAminoPubKey = { threshold: 0 };\nexports.LegacyAminoPubKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.threshold !== 0) {\n writer.uint32(8).uint32(message.threshold);\n }\n for (const v of message.publicKeys) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.publicKeys = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.threshold = reader.uint32();\n break;\n case 2:\n message.publicKeys.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.threshold =\n object.threshold !== undefined && object.threshold !== null ? Number(object.threshold) : 0;\n message.publicKeys = ((_a = object.publicKeys) !== null && _a !== void 0 ? _a : []).map((e) => any_1.Any.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.threshold !== undefined && (obj.threshold = message.threshold);\n if (message.publicKeys) {\n obj.publicKeys = message.publicKeys.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.publicKeys = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.threshold = (_a = object.threshold) !== null && _a !== void 0 ? _a : 0;\n message.publicKeys = ((_b = object.publicKeys) === null || _b === void 0 ? void 0 : _b.map((e) => any_1.Any.fromPartial(e))) || [];\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.crypto.multisig.v1beta1\";\nconst baseMultiSignature = {};\nexports.MultiSignature = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signatures) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = ((_a = object.signatures) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseCompactBitArray = { extraBitsStored: 0 };\nexports.CompactBitArray = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.extraBitsStored !== 0) {\n writer.uint32(8).uint32(message.extraBitsStored);\n }\n if (message.elems.length !== 0) {\n writer.uint32(18).bytes(message.elems);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompactBitArray);\n message.elems = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.extraBitsStored = reader.uint32();\n break;\n case 2:\n message.elems = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompactBitArray);\n message.extraBitsStored =\n object.extraBitsStored !== undefined && object.extraBitsStored !== null\n ? Number(object.extraBitsStored)\n : 0;\n message.elems =\n object.elems !== undefined && object.elems !== null ? bytesFromBase64(object.elems) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.extraBitsStored !== undefined && (obj.extraBitsStored = message.extraBitsStored);\n message.elems !== undefined &&\n (obj.elems = base64FromBytes(message.elems !== undefined ? message.elems : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCompactBitArray);\n message.extraBitsStored = (_a = object.extraBitsStored) !== null && _a !== void 0 ? _a : 0;\n message.elems = (_b = object.elems) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrivKey = exports.PubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.crypto.secp256k1\";\nconst basePubKey = {};\nexports.PubKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePubKey);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePubKey);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePubKey);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst basePrivKey = {};\nexports.PrivKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePrivKey);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePrivKey);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePrivKey);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommunityPoolSpendProposalWithDeposit = exports.DelegationDelegatorReward = exports.DelegatorStartingInfo = exports.CommunityPoolSpendProposal = exports.FeePool = exports.ValidatorSlashEvents = exports.ValidatorSlashEvent = exports.ValidatorOutstandingRewards = exports.ValidatorAccumulatedCommission = exports.ValidatorCurrentRewards = exports.ValidatorHistoricalRewards = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseParams = {\n communityTax: \"\",\n baseProposerReward: \"\",\n bonusProposerReward: \"\",\n withdrawAddrEnabled: false,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.communityTax !== \"\") {\n writer.uint32(10).string(message.communityTax);\n }\n if (message.baseProposerReward !== \"\") {\n writer.uint32(18).string(message.baseProposerReward);\n }\n if (message.bonusProposerReward !== \"\") {\n writer.uint32(26).string(message.bonusProposerReward);\n }\n if (message.withdrawAddrEnabled === true) {\n writer.uint32(32).bool(message.withdrawAddrEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityTax = reader.string();\n break;\n case 2:\n message.baseProposerReward = reader.string();\n break;\n case 3:\n message.bonusProposerReward = reader.string();\n break;\n case 4:\n message.withdrawAddrEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.communityTax =\n object.communityTax !== undefined && object.communityTax !== null ? String(object.communityTax) : \"\";\n message.baseProposerReward =\n object.baseProposerReward !== undefined && object.baseProposerReward !== null\n ? String(object.baseProposerReward)\n : \"\";\n message.bonusProposerReward =\n object.bonusProposerReward !== undefined && object.bonusProposerReward !== null\n ? String(object.bonusProposerReward)\n : \"\";\n message.withdrawAddrEnabled =\n object.withdrawAddrEnabled !== undefined && object.withdrawAddrEnabled !== null\n ? Boolean(object.withdrawAddrEnabled)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.communityTax !== undefined && (obj.communityTax = message.communityTax);\n message.baseProposerReward !== undefined && (obj.baseProposerReward = message.baseProposerReward);\n message.bonusProposerReward !== undefined && (obj.bonusProposerReward = message.bonusProposerReward);\n message.withdrawAddrEnabled !== undefined && (obj.withdrawAddrEnabled = message.withdrawAddrEnabled);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseParams);\n message.communityTax = (_a = object.communityTax) !== null && _a !== void 0 ? _a : \"\";\n message.baseProposerReward = (_b = object.baseProposerReward) !== null && _b !== void 0 ? _b : \"\";\n message.bonusProposerReward = (_c = object.bonusProposerReward) !== null && _c !== void 0 ? _c : \"\";\n message.withdrawAddrEnabled = (_d = object.withdrawAddrEnabled) !== null && _d !== void 0 ? _d : false;\n return message;\n },\n};\nconst baseValidatorHistoricalRewards = { referenceCount: 0 };\nexports.ValidatorHistoricalRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.cumulativeRewardRatio) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.referenceCount !== 0) {\n writer.uint32(16).uint32(message.referenceCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.cumulativeRewardRatio.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.referenceCount = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = ((_a = object.cumulativeRewardRatio) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n message.referenceCount =\n object.referenceCount !== undefined && object.referenceCount !== null\n ? Number(object.referenceCount)\n : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.cumulativeRewardRatio) {\n obj.cumulativeRewardRatio = message.cumulativeRewardRatio.map((e) => e ? coin_1.DecCoin.toJSON(e) : undefined);\n }\n else {\n obj.cumulativeRewardRatio = [];\n }\n message.referenceCount !== undefined && (obj.referenceCount = message.referenceCount);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = ((_a = object.cumulativeRewardRatio) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n message.referenceCount = (_b = object.referenceCount) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseValidatorCurrentRewards = { period: long_1.default.UZERO };\nexports.ValidatorCurrentRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (!message.period.isZero()) {\n writer.uint32(16).uint64(message.period);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.period = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = ((_a = object.rewards) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n message.period =\n object.period !== undefined && object.period !== null ? long_1.default.fromString(object.period) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n message.period !== undefined && (obj.period = (message.period || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = ((_a = object.rewards) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n message.period =\n object.period !== undefined && object.period !== null ? long_1.default.fromValue(object.period) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseValidatorAccumulatedCommission = {};\nexports.ValidatorAccumulatedCommission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.commission) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = ((_a = object.commission) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.commission) {\n obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.commission = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = ((_a = object.commission) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseValidatorOutstandingRewards = {};\nexports.ValidatorOutstandingRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = ((_a = object.rewards) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = ((_a = object.rewards) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseValidatorSlashEvent = { validatorPeriod: long_1.default.UZERO, fraction: \"\" };\nexports.ValidatorSlashEvent = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.validatorPeriod.isZero()) {\n writer.uint32(8).uint64(message.validatorPeriod);\n }\n if (message.fraction !== \"\") {\n writer.uint32(18).string(message.fraction);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSlashEvent);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorPeriod = reader.uint64();\n break;\n case 2:\n message.fraction = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorSlashEvent);\n message.validatorPeriod =\n object.validatorPeriod !== undefined && object.validatorPeriod !== null\n ? long_1.default.fromString(object.validatorPeriod)\n : long_1.default.UZERO;\n message.fraction =\n object.fraction !== undefined && object.fraction !== null ? String(object.fraction) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorPeriod !== undefined &&\n (obj.validatorPeriod = (message.validatorPeriod || long_1.default.UZERO).toString());\n message.fraction !== undefined && (obj.fraction = message.fraction);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSlashEvent);\n message.validatorPeriod =\n object.validatorPeriod !== undefined && object.validatorPeriod !== null\n ? long_1.default.fromValue(object.validatorPeriod)\n : long_1.default.UZERO;\n message.fraction = (_a = object.fraction) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseValidatorSlashEvents = {};\nexports.ValidatorSlashEvents = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validatorSlashEvents) {\n exports.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorSlashEvents.push(exports.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents = ((_a = object.validatorSlashEvents) !== null && _a !== void 0 ? _a : []).map((e) => exports.ValidatorSlashEvent.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorSlashEvents) {\n obj.validatorSlashEvents = message.validatorSlashEvents.map((e) => e ? exports.ValidatorSlashEvent.toJSON(e) : undefined);\n }\n else {\n obj.validatorSlashEvents = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents =\n ((_a = object.validatorSlashEvents) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ValidatorSlashEvent.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseFeePool = {};\nexports.FeePool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.communityPool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFeePool);\n message.communityPool = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityPool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseFeePool);\n message.communityPool = ((_a = object.communityPool) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.communityPool) {\n obj.communityPool = message.communityPool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.communityPool = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseFeePool);\n message.communityPool = ((_a = object.communityPool) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCommunityPoolSpendProposal = { title: \"\", description: \"\", recipient: \"\" };\nexports.CommunityPoolSpendProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.title = object.title !== undefined && object.title !== null ? String(object.title) : \"\";\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n message.recipient =\n object.recipient !== undefined && object.recipient !== null ? String(object.recipient) : \"\";\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.title = (_a = object.title) !== null && _a !== void 0 ? _a : \"\";\n message.description = (_b = object.description) !== null && _b !== void 0 ? _b : \"\";\n message.recipient = (_c = object.recipient) !== null && _c !== void 0 ? _c : \"\";\n message.amount = ((_d = object.amount) === null || _d === void 0 ? void 0 : _d.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDelegatorStartingInfo = { previousPeriod: long_1.default.UZERO, stake: \"\", height: long_1.default.UZERO };\nexports.DelegatorStartingInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.previousPeriod.isZero()) {\n writer.uint32(8).uint64(message.previousPeriod);\n }\n if (message.stake !== \"\") {\n writer.uint32(18).string(message.stake);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).uint64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegatorStartingInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.previousPeriod = reader.uint64();\n break;\n case 2:\n message.stake = reader.string();\n break;\n case 3:\n message.height = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegatorStartingInfo);\n message.previousPeriod =\n object.previousPeriod !== undefined && object.previousPeriod !== null\n ? long_1.default.fromString(object.previousPeriod)\n : long_1.default.UZERO;\n message.stake = object.stake !== undefined && object.stake !== null ? String(object.stake) : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.previousPeriod !== undefined &&\n (obj.previousPeriod = (message.previousPeriod || long_1.default.UZERO).toString());\n message.stake !== undefined && (obj.stake = message.stake);\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDelegatorStartingInfo);\n message.previousPeriod =\n object.previousPeriod !== undefined && object.previousPeriod !== null\n ? long_1.default.fromValue(object.previousPeriod)\n : long_1.default.UZERO;\n message.stake = (_a = object.stake) !== null && _a !== void 0 ? _a : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseDelegationDelegatorReward = { validatorAddress: \"\" };\nexports.DelegationDelegatorReward = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n for (const v of message.reward) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.reward = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.reward.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.reward = ((_a = object.reward) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.reward) {\n obj.reward = message.reward.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.reward = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.reward = ((_b = object.reward) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCommunityPoolSpendProposalWithDeposit = {\n title: \"\",\n description: \"\",\n recipient: \"\",\n amount: \"\",\n deposit: \"\",\n};\nexports.CommunityPoolSpendProposalWithDeposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n if (message.amount !== \"\") {\n writer.uint32(34).string(message.amount);\n }\n if (message.deposit !== \"\") {\n writer.uint32(42).string(message.deposit);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount = reader.string();\n break;\n case 5:\n message.deposit = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n message.title = object.title !== undefined && object.title !== null ? String(object.title) : \"\";\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n message.recipient =\n object.recipient !== undefined && object.recipient !== null ? String(object.recipient) : \"\";\n message.amount = object.amount !== undefined && object.amount !== null ? String(object.amount) : \"\";\n message.deposit = object.deposit !== undefined && object.deposit !== null ? String(object.deposit) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n message.amount !== undefined && (obj.amount = message.amount);\n message.deposit !== undefined && (obj.deposit = message.deposit);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n message.title = (_a = object.title) !== null && _a !== void 0 ? _a : \"\";\n message.description = (_b = object.description) !== null && _b !== void 0 ? _b : \"\";\n message.recipient = (_c = object.recipient) !== null && _c !== void 0 ? _c : \"\";\n message.amount = (_d = object.amount) !== null && _d !== void 0 ? _d : \"\";\n message.deposit = (_e = object.deposit) !== null && _e !== void 0 ? _e : \"\";\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=distribution.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryCommunityPoolResponse = exports.QueryCommunityPoolRequest = exports.QueryDelegatorWithdrawAddressResponse = exports.QueryDelegatorWithdrawAddressRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryDelegationTotalRewardsResponse = exports.QueryDelegationTotalRewardsRequest = exports.QueryDelegationRewardsResponse = exports.QueryDelegationRewardsRequest = exports.QueryValidatorSlashesResponse = exports.QueryValidatorSlashesRequest = exports.QueryValidatorCommissionResponse = exports.QueryValidatorCommissionRequest = exports.QueryValidatorOutstandingRewardsResponse = exports.QueryValidatorOutstandingRewardsRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst distribution_1 = require(\"../../../cosmos/distribution/v1beta1/distribution\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n distribution_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = distribution_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? distribution_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? distribution_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nconst baseQueryValidatorOutstandingRewardsRequest = { validatorAddress: \"\" };\nexports.QueryValidatorOutstandingRewardsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsRequest);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsRequest);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryValidatorOutstandingRewardsResponse = {};\nexports.QueryValidatorOutstandingRewardsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rewards !== undefined) {\n distribution_1.ValidatorOutstandingRewards.encode(message.rewards, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards = distribution_1.ValidatorOutstandingRewards.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsResponse);\n message.rewards =\n object.rewards !== undefined && object.rewards !== null\n ? distribution_1.ValidatorOutstandingRewards.fromJSON(object.rewards)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rewards !== undefined &&\n (obj.rewards = message.rewards ? distribution_1.ValidatorOutstandingRewards.toJSON(message.rewards) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsResponse);\n message.rewards =\n object.rewards !== undefined && object.rewards !== null\n ? distribution_1.ValidatorOutstandingRewards.fromPartial(object.rewards)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorCommissionRequest = { validatorAddress: \"\" };\nexports.QueryValidatorCommissionRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorCommissionRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorCommissionRequest);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorCommissionRequest);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryValidatorCommissionResponse = {};\nexports.QueryValidatorCommissionResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.commission !== undefined) {\n distribution_1.ValidatorAccumulatedCommission.encode(message.commission, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorCommissionResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission = distribution_1.ValidatorAccumulatedCommission.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorCommissionResponse);\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? distribution_1.ValidatorAccumulatedCommission.fromJSON(object.commission)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.commission !== undefined &&\n (obj.commission = message.commission\n ? distribution_1.ValidatorAccumulatedCommission.toJSON(message.commission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryValidatorCommissionResponse);\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? distribution_1.ValidatorAccumulatedCommission.fromPartial(object.commission)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorSlashesRequest = {\n validatorAddress: \"\",\n startingHeight: long_1.default.UZERO,\n endingHeight: long_1.default.UZERO,\n};\nexports.QueryValidatorSlashesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n if (!message.startingHeight.isZero()) {\n writer.uint32(16).uint64(message.startingHeight);\n }\n if (!message.endingHeight.isZero()) {\n writer.uint32(24).uint64(message.endingHeight);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorSlashesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.startingHeight = reader.uint64();\n break;\n case 3:\n message.endingHeight = reader.uint64();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorSlashesRequest);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.startingHeight =\n object.startingHeight !== undefined && object.startingHeight !== null\n ? long_1.default.fromString(object.startingHeight)\n : long_1.default.UZERO;\n message.endingHeight =\n object.endingHeight !== undefined && object.endingHeight !== null\n ? long_1.default.fromString(object.endingHeight)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.startingHeight !== undefined &&\n (obj.startingHeight = (message.startingHeight || long_1.default.UZERO).toString());\n message.endingHeight !== undefined &&\n (obj.endingHeight = (message.endingHeight || long_1.default.UZERO).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorSlashesRequest);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.startingHeight =\n object.startingHeight !== undefined && object.startingHeight !== null\n ? long_1.default.fromValue(object.startingHeight)\n : long_1.default.UZERO;\n message.endingHeight =\n object.endingHeight !== undefined && object.endingHeight !== null\n ? long_1.default.fromValue(object.endingHeight)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorSlashesResponse = {};\nexports.QueryValidatorSlashesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.slashes) {\n distribution_1.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorSlashesResponse);\n message.slashes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.slashes.push(distribution_1.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorSlashesResponse);\n message.slashes = ((_a = object.slashes) !== null && _a !== void 0 ? _a : []).map((e) => distribution_1.ValidatorSlashEvent.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.slashes) {\n obj.slashes = message.slashes.map((e) => (e ? distribution_1.ValidatorSlashEvent.toJSON(e) : undefined));\n }\n else {\n obj.slashes = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorSlashesResponse);\n message.slashes = ((_a = object.slashes) === null || _a === void 0 ? void 0 : _a.map((e) => distribution_1.ValidatorSlashEvent.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegationRewardsRequest = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.QueryDelegationRewardsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationRewardsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegationRewardsRequest);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegationRewardsRequest);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryDelegationRewardsResponse = {};\nexports.QueryDelegationRewardsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationRewardsResponse);\n message.rewards = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegationRewardsResponse);\n message.rewards = ((_a = object.rewards) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegationRewardsResponse);\n message.rewards = ((_a = object.rewards) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseQueryDelegationTotalRewardsRequest = { delegatorAddress: \"\" };\nexports.QueryDelegationTotalRewardsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegationTotalRewardsRequest);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsRequest);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDelegationTotalRewardsResponse = {};\nexports.QueryDelegationTotalRewardsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n distribution_1.DelegationDelegatorReward.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.total) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsResponse);\n message.rewards = [];\n message.total = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(distribution_1.DelegationDelegatorReward.decode(reader, reader.uint32()));\n break;\n case 2:\n message.total.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsResponse);\n message.rewards = ((_a = object.rewards) !== null && _a !== void 0 ? _a : []).map((e) => distribution_1.DelegationDelegatorReward.fromJSON(e));\n message.total = ((_b = object.total) !== null && _b !== void 0 ? _b : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? distribution_1.DelegationDelegatorReward.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsResponse);\n message.rewards = ((_a = object.rewards) === null || _a === void 0 ? void 0 : _a.map((e) => distribution_1.DelegationDelegatorReward.fromPartial(e))) || [];\n message.total = ((_b = object.total) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseQueryDelegatorValidatorsRequest = { delegatorAddress: \"\" };\nexports.QueryDelegatorValidatorsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDelegatorValidatorsResponse = { validators: \"\" };\nexports.QueryDelegatorValidatorsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => e);\n }\n else {\n obj.validators = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseQueryDelegatorWithdrawAddressRequest = { delegatorAddress: \"\" };\nexports.QueryDelegatorWithdrawAddressRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressRequest);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressRequest);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDelegatorWithdrawAddressResponse = { withdrawAddress: \"\" };\nexports.QueryDelegatorWithdrawAddressResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.withdrawAddress !== \"\") {\n writer.uint32(10).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressResponse);\n message.withdrawAddress =\n object.withdrawAddress !== undefined && object.withdrawAddress !== null\n ? String(object.withdrawAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressResponse);\n message.withdrawAddress = (_a = object.withdrawAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryCommunityPoolRequest = {};\nexports.QueryCommunityPoolRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCommunityPoolRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryCommunityPoolRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryCommunityPoolRequest);\n return message;\n },\n};\nconst baseQueryCommunityPoolResponse = {};\nexports.QueryCommunityPoolResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCommunityPoolResponse);\n message.pool = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryCommunityPoolResponse);\n message.pool = ((_a = object.pool) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pool) {\n obj.pool = message.pool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.pool = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryCommunityPoolResponse);\n message.pool = ((_a = object.pool) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.ValidatorOutstandingRewards = this.ValidatorOutstandingRewards.bind(this);\n this.ValidatorCommission = this.ValidatorCommission.bind(this);\n this.ValidatorSlashes = this.ValidatorSlashes.bind(this);\n this.DelegationRewards = this.DelegationRewards.bind(this);\n this.DelegationTotalRewards = this.DelegationTotalRewards.bind(this);\n this.DelegatorValidators = this.DelegatorValidators.bind(this);\n this.DelegatorWithdrawAddress = this.DelegatorWithdrawAddress.bind(this);\n this.CommunityPool = this.CommunityPool.bind(this);\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorOutstandingRewards(request) {\n const data = exports.QueryValidatorOutstandingRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorOutstandingRewards\", data);\n return promise.then((data) => exports.QueryValidatorOutstandingRewardsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorCommission(request) {\n const data = exports.QueryValidatorCommissionRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorCommission\", data);\n return promise.then((data) => exports.QueryValidatorCommissionResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorSlashes(request) {\n const data = exports.QueryValidatorSlashesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorSlashes\", data);\n return promise.then((data) => exports.QueryValidatorSlashesResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegationRewards(request) {\n const data = exports.QueryDelegationRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegationRewards\", data);\n return promise.then((data) => exports.QueryDelegationRewardsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegationTotalRewards(request) {\n const data = exports.QueryDelegationTotalRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegationTotalRewards\", data);\n return promise.then((data) => exports.QueryDelegationTotalRewardsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorValidators(request) {\n const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegatorValidators\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorWithdrawAddress(request) {\n const data = exports.QueryDelegatorWithdrawAddressRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegatorWithdrawAddress\", data);\n return promise.then((data) => exports.QueryDelegatorWithdrawAddressResponse.decode(new minimal_1.default.Reader(data)));\n }\n CommunityPool(request) {\n const data = exports.QueryCommunityPoolRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"CommunityPool\", data);\n return promise.then((data) => exports.QueryCommunityPoolResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgFundCommunityPoolResponse = exports.MsgFundCommunityPool = exports.MsgWithdrawValidatorCommissionResponse = exports.MsgWithdrawValidatorCommission = exports.MsgWithdrawDelegatorRewardResponse = exports.MsgWithdrawDelegatorReward = exports.MsgSetWithdrawAddressResponse = exports.MsgSetWithdrawAddress = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseMsgSetWithdrawAddress = { delegatorAddress: \"\", withdrawAddress: \"\" };\nexports.MsgSetWithdrawAddress = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.withdrawAddress !== \"\") {\n writer.uint32(18).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.withdrawAddress =\n object.withdrawAddress !== undefined && object.withdrawAddress !== null\n ? String(object.withdrawAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.withdrawAddress = (_b = object.withdrawAddress) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgSetWithdrawAddressResponse = {};\nexports.MsgSetWithdrawAddressResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n return message;\n },\n};\nconst baseMsgWithdrawDelegatorReward = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgWithdrawDelegatorReward = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgWithdrawDelegatorRewardResponse = {};\nexports.MsgWithdrawDelegatorRewardResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n return message;\n },\n};\nconst baseMsgWithdrawValidatorCommission = { validatorAddress: \"\" };\nexports.MsgWithdrawValidatorCommission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseMsgWithdrawValidatorCommissionResponse = {};\nexports.MsgWithdrawValidatorCommissionResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n return message;\n },\n};\nconst baseMsgFundCommunityPool = { depositor: \"\" };\nexports.MsgFundCommunityPool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = ((_a = object.amount) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.depositor = (_b = object.depositor) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgFundCommunityPoolResponse = {};\nexports.MsgFundCommunityPoolResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this);\n this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this);\n this.WithdrawValidatorCommission = this.WithdrawValidatorCommission.bind(this);\n this.FundCommunityPool = this.FundCommunityPool.bind(this);\n }\n SetWithdrawAddress(request) {\n const data = exports.MsgSetWithdrawAddress.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"SetWithdrawAddress\", data);\n return promise.then((data) => exports.MsgSetWithdrawAddressResponse.decode(new minimal_1.default.Reader(data)));\n }\n WithdrawDelegatorReward(request) {\n const data = exports.MsgWithdrawDelegatorReward.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawDelegatorReward\", data);\n return promise.then((data) => exports.MsgWithdrawDelegatorRewardResponse.decode(new minimal_1.default.Reader(data)));\n }\n WithdrawValidatorCommission(request) {\n const data = exports.MsgWithdrawValidatorCommission.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawValidatorCommission\", data);\n return promise.then((data) => exports.MsgWithdrawValidatorCommissionResponse.decode(new minimal_1.default.Reader(data)));\n }\n FundCommunityPool(request) {\n const data = exports.MsgFundCommunityPool.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"FundCommunityPool\", data);\n return promise.then((data) => exports.MsgFundCommunityPoolResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgRevokeAllowanceResponse = exports.MsgRevokeAllowance = exports.MsgGrantAllowanceResponse = exports.MsgGrantAllowance = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nconst baseMsgGrantAllowance = { granter: \"\", grantee: \"\" };\nexports.MsgGrantAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantAllowance);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgGrantAllowance);\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n message.allowance =\n object.allowance !== undefined && object.allowance !== null\n ? any_1.Any.fromJSON(object.allowance)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgGrantAllowance);\n message.granter = (_a = object.granter) !== null && _a !== void 0 ? _a : \"\";\n message.grantee = (_b = object.grantee) !== null && _b !== void 0 ? _b : \"\";\n message.allowance =\n object.allowance !== undefined && object.allowance !== null\n ? any_1.Any.fromPartial(object.allowance)\n : undefined;\n return message;\n },\n};\nconst baseMsgGrantAllowanceResponse = {};\nexports.MsgGrantAllowanceResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n return message;\n },\n};\nconst baseMsgRevokeAllowance = { granter: \"\", grantee: \"\" };\nexports.MsgRevokeAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeAllowance);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRevokeAllowance);\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgRevokeAllowance);\n message.granter = (_a = object.granter) !== null && _a !== void 0 ? _a : \"\";\n message.grantee = (_b = object.grantee) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgRevokeAllowanceResponse = {};\nexports.MsgRevokeAllowanceResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.GrantAllowance = this.GrantAllowance.bind(this);\n this.RevokeAllowance = this.RevokeAllowance.bind(this);\n }\n GrantAllowance(request) {\n const data = exports.MsgGrantAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"GrantAllowance\", data);\n return promise.then((data) => exports.MsgGrantAllowanceResponse.decode(new minimal_1.default.Reader(data)));\n }\n RevokeAllowance(request) {\n const data = exports.MsgRevokeAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"RevokeAllowance\", data);\n return promise.then((data) => exports.MsgRevokeAllowanceResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.TextProposal = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption = exports.VoteOption || (exports.VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_DEPOSIT_PERIOD\"] = 1] = \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_VOTING_PERIOD\"] = 2] = \"PROPOSAL_STATUS_VOTING_PERIOD\";\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_PASSED\"] = 3] = \"PROPOSAL_STATUS_PASSED\";\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 4] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_FAILED\"] = 5] = \"PROPOSAL_STATUS_FAILED\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus = exports.ProposalStatus || (exports.ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\nconst baseWeightedVoteOption = { option: 0, weight: \"\" };\nexports.WeightedVoteOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseWeightedVoteOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32();\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseWeightedVoteOption);\n message.option =\n object.option !== undefined && object.option !== null ? voteOptionFromJSON(object.option) : 0;\n message.weight = object.weight !== undefined && object.weight !== null ? String(object.weight) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseWeightedVoteOption);\n message.option = (_a = object.option) !== null && _a !== void 0 ? _a : 0;\n message.weight = (_b = object.weight) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseTextProposal = { title: \"\", description: \"\" };\nexports.TextProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTextProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTextProposal);\n message.title = object.title !== undefined && object.title !== null ? String(object.title) : \"\";\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseTextProposal);\n message.title = (_a = object.title) !== null && _a !== void 0 ? _a : \"\";\n message.description = (_b = object.description) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseDeposit = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.Deposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDeposit);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDeposit);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDeposit);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.depositor = (_a = object.depositor) !== null && _a !== void 0 ? _a : \"\";\n message.amount = ((_b = object.amount) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseProposal = { proposalId: long_1.default.UZERO, status: 0 };\nexports.Proposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n if (message.depositEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim();\n }\n for (const v of message.totalDeposit) {\n coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.votingStartTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim();\n }\n if (message.votingEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProposal);\n message.totalDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.status = reader.int32();\n break;\n case 4:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 9:\n message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseProposal);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.content =\n object.content !== undefined && object.content !== null ? any_1.Any.fromJSON(object.content) : undefined;\n message.status =\n object.status !== undefined && object.status !== null ? proposalStatusFromJSON(object.status) : 0;\n message.finalTallyResult =\n object.finalTallyResult !== undefined && object.finalTallyResult !== null\n ? exports.TallyResult.fromJSON(object.finalTallyResult)\n : undefined;\n message.submitTime =\n object.submitTime !== undefined && object.submitTime !== null\n ? fromJsonTimestamp(object.submitTime)\n : undefined;\n message.depositEndTime =\n object.depositEndTime !== undefined && object.depositEndTime !== null\n ? fromJsonTimestamp(object.depositEndTime)\n : undefined;\n message.totalDeposit = ((_a = object.totalDeposit) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.votingStartTime =\n object.votingStartTime !== undefined && object.votingStartTime !== null\n ? fromJsonTimestamp(object.votingStartTime)\n : undefined;\n message.votingEndTime =\n object.votingEndTime !== undefined && object.votingEndTime !== null\n ? fromJsonTimestamp(object.votingEndTime)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.submitTime !== undefined && (obj.submitTime = fromTimestamp(message.submitTime).toISOString());\n message.depositEndTime !== undefined &&\n (obj.depositEndTime = fromTimestamp(message.depositEndTime).toISOString());\n if (message.totalDeposit) {\n obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.totalDeposit = [];\n }\n message.votingStartTime !== undefined &&\n (obj.votingStartTime = fromTimestamp(message.votingStartTime).toISOString());\n message.votingEndTime !== undefined &&\n (obj.votingEndTime = fromTimestamp(message.votingEndTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseProposal);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.content =\n object.content !== undefined && object.content !== null ? any_1.Any.fromPartial(object.content) : undefined;\n message.status = (_a = object.status) !== null && _a !== void 0 ? _a : 0;\n message.finalTallyResult =\n object.finalTallyResult !== undefined && object.finalTallyResult !== null\n ? exports.TallyResult.fromPartial(object.finalTallyResult)\n : undefined;\n message.submitTime =\n object.submitTime !== undefined && object.submitTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.submitTime)\n : undefined;\n message.depositEndTime =\n object.depositEndTime !== undefined && object.depositEndTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.depositEndTime)\n : undefined;\n message.totalDeposit = ((_b = object.totalDeposit) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.votingStartTime =\n object.votingStartTime !== undefined && object.votingStartTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.votingStartTime)\n : undefined;\n message.votingEndTime =\n object.votingEndTime !== undefined && object.votingEndTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.votingEndTime)\n : undefined;\n return message;\n },\n};\nconst baseTallyResult = { yes: \"\", abstain: \"\", no: \"\", noWithVeto: \"\" };\nexports.TallyResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.yes !== \"\") {\n writer.uint32(10).string(message.yes);\n }\n if (message.abstain !== \"\") {\n writer.uint32(18).string(message.abstain);\n }\n if (message.no !== \"\") {\n writer.uint32(26).string(message.no);\n }\n if (message.noWithVeto !== \"\") {\n writer.uint32(34).string(message.noWithVeto);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTallyResult);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yes = reader.string();\n break;\n case 2:\n message.abstain = reader.string();\n break;\n case 3:\n message.no = reader.string();\n break;\n case 4:\n message.noWithVeto = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTallyResult);\n message.yes = object.yes !== undefined && object.yes !== null ? String(object.yes) : \"\";\n message.abstain = object.abstain !== undefined && object.abstain !== null ? String(object.abstain) : \"\";\n message.no = object.no !== undefined && object.no !== null ? String(object.no) : \"\";\n message.noWithVeto =\n object.noWithVeto !== undefined && object.noWithVeto !== null ? String(object.noWithVeto) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.yes !== undefined && (obj.yes = message.yes);\n message.abstain !== undefined && (obj.abstain = message.abstain);\n message.no !== undefined && (obj.no = message.no);\n message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseTallyResult);\n message.yes = (_a = object.yes) !== null && _a !== void 0 ? _a : \"\";\n message.abstain = (_b = object.abstain) !== null && _b !== void 0 ? _b : \"\";\n message.no = (_c = object.no) !== null && _c !== void 0 ? _c : \"\";\n message.noWithVeto = (_d = object.noWithVeto) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseVote = { proposalId: long_1.default.UZERO, voter: \"\", option: 0 };\nexports.Vote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n for (const v of message.options) {\n exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVote);\n message.options = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseVote);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n message.option =\n object.option !== undefined && object.option !== null ? voteOptionFromJSON(object.option) : 0;\n message.options = ((_a = object.options) !== null && _a !== void 0 ? _a : []).map((e) => exports.WeightedVoteOption.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n if (message.options) {\n obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseVote);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : \"\";\n message.option = (_b = object.option) !== null && _b !== void 0 ? _b : 0;\n message.options = ((_c = object.options) === null || _c === void 0 ? void 0 : _c.map((e) => exports.WeightedVoteOption.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDepositParams = {};\nexports.DepositParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = ((_a = object.minDeposit) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.maxDepositPeriod =\n object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null\n ? duration_1.Duration.fromJSON(object.maxDepositPeriod)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = ((_a = object.minDeposit) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.maxDepositPeriod =\n object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null\n ? duration_1.Duration.fromPartial(object.maxDepositPeriod)\n : undefined;\n return message;\n },\n};\nconst baseVotingParams = {};\nexports.VotingParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVotingParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVotingParams);\n message.votingPeriod =\n object.votingPeriod !== undefined && object.votingPeriod !== null\n ? duration_1.Duration.fromJSON(object.votingPeriod)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVotingParams);\n message.votingPeriod =\n object.votingPeriod !== undefined && object.votingPeriod !== null\n ? duration_1.Duration.fromPartial(object.votingPeriod)\n : undefined;\n return message;\n },\n};\nconst baseTallyParams = {};\nexports.TallyParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.quorum.length !== 0) {\n writer.uint32(10).bytes(message.quorum);\n }\n if (message.threshold.length !== 0) {\n writer.uint32(18).bytes(message.threshold);\n }\n if (message.vetoThreshold.length !== 0) {\n writer.uint32(26).bytes(message.vetoThreshold);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTallyParams);\n message.quorum = new Uint8Array();\n message.threshold = new Uint8Array();\n message.vetoThreshold = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.bytes();\n break;\n case 2:\n message.threshold = reader.bytes();\n break;\n case 3:\n message.vetoThreshold = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTallyParams);\n message.quorum =\n object.quorum !== undefined && object.quorum !== null\n ? bytesFromBase64(object.quorum)\n : new Uint8Array();\n message.threshold =\n object.threshold !== undefined && object.threshold !== null\n ? bytesFromBase64(object.threshold)\n : new Uint8Array();\n message.vetoThreshold =\n object.vetoThreshold !== undefined && object.vetoThreshold !== null\n ? bytesFromBase64(object.vetoThreshold)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.quorum !== undefined &&\n (obj.quorum = base64FromBytes(message.quorum !== undefined ? message.quorum : new Uint8Array()));\n message.threshold !== undefined &&\n (obj.threshold = base64FromBytes(message.threshold !== undefined ? message.threshold : new Uint8Array()));\n message.vetoThreshold !== undefined &&\n (obj.vetoThreshold = base64FromBytes(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseTallyParams);\n message.quorum = (_a = object.quorum) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.threshold = (_b = object.threshold) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.vetoThreshold = (_c = object.vetoThreshold) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=gov.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryTallyResultResponse = exports.QueryTallyResultRequest = exports.QueryDepositsResponse = exports.QueryDepositsRequest = exports.QueryDepositResponse = exports.QueryDepositRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryVotesResponse = exports.QueryVotesRequest = exports.QueryVoteResponse = exports.QueryVoteRequest = exports.QueryProposalsResponse = exports.QueryProposalsRequest = exports.QueryProposalResponse = exports.QueryProposalRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst gov_1 = require(\"../../../cosmos/gov/v1beta1/gov\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nconst baseQueryProposalRequest = { proposalId: long_1.default.UZERO };\nexports.QueryProposalRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryProposalRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryProposalRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryProposalRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryProposalResponse = {};\nexports.QueryProposalResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.proposal !== undefined) {\n gov_1.Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryProposalResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal = gov_1.Proposal.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryProposalResponse);\n message.proposal =\n object.proposal !== undefined && object.proposal !== null\n ? gov_1.Proposal.fromJSON(object.proposal)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposal !== undefined &&\n (obj.proposal = message.proposal ? gov_1.Proposal.toJSON(message.proposal) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryProposalResponse);\n message.proposal =\n object.proposal !== undefined && object.proposal !== null\n ? gov_1.Proposal.fromPartial(object.proposal)\n : undefined;\n return message;\n },\n};\nconst baseQueryProposalsRequest = { proposalStatus: 0, voter: \"\", depositor: \"\" };\nexports.QueryProposalsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.proposalStatus !== 0) {\n writer.uint32(8).int32(message.proposalStatus);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.depositor !== \"\") {\n writer.uint32(26).string(message.depositor);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryProposalsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalStatus = reader.int32();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.depositor = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryProposalsRequest);\n message.proposalStatus =\n object.proposalStatus !== undefined && object.proposalStatus !== null\n ? gov_1.proposalStatusFromJSON(object.proposalStatus)\n : 0;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalStatus !== undefined &&\n (obj.proposalStatus = gov_1.proposalStatusToJSON(message.proposalStatus));\n message.voter !== undefined && (obj.voter = message.voter);\n message.depositor !== undefined && (obj.depositor = message.depositor);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseQueryProposalsRequest);\n message.proposalStatus = (_a = object.proposalStatus) !== null && _a !== void 0 ? _a : 0;\n message.voter = (_b = object.voter) !== null && _b !== void 0 ? _b : \"\";\n message.depositor = (_c = object.depositor) !== null && _c !== void 0 ? _c : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryProposalsResponse = {};\nexports.QueryProposalsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.proposals) {\n gov_1.Proposal.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryProposalsResponse);\n message.proposals = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposals.push(gov_1.Proposal.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryProposalsResponse);\n message.proposals = ((_a = object.proposals) !== null && _a !== void 0 ? _a : []).map((e) => gov_1.Proposal.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.proposals) {\n obj.proposals = message.proposals.map((e) => (e ? gov_1.Proposal.toJSON(e) : undefined));\n }\n else {\n obj.proposals = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryProposalsResponse);\n message.proposals = ((_a = object.proposals) === null || _a === void 0 ? void 0 : _a.map((e) => gov_1.Proposal.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryVoteRequest = { proposalId: long_1.default.UZERO, voter: \"\" };\nexports.QueryVoteRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryVoteRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryVoteRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryVoteRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryVoteResponse = {};\nexports.QueryVoteResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.vote !== undefined) {\n gov_1.Vote.encode(message.vote, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryVoteResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.vote = gov_1.Vote.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryVoteResponse);\n message.vote = object.vote !== undefined && object.vote !== null ? gov_1.Vote.fromJSON(object.vote) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.vote !== undefined && (obj.vote = message.vote ? gov_1.Vote.toJSON(message.vote) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryVoteResponse);\n message.vote =\n object.vote !== undefined && object.vote !== null ? gov_1.Vote.fromPartial(object.vote) : undefined;\n return message;\n },\n};\nconst baseQueryVotesRequest = { proposalId: long_1.default.UZERO };\nexports.QueryVotesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryVotesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryVotesRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryVotesRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryVotesResponse = {};\nexports.QueryVotesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.votes) {\n gov_1.Vote.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryVotesResponse);\n message.votes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votes.push(gov_1.Vote.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryVotesResponse);\n message.votes = ((_a = object.votes) !== null && _a !== void 0 ? _a : []).map((e) => gov_1.Vote.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? gov_1.Vote.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryVotesResponse);\n message.votes = ((_a = object.votes) === null || _a === void 0 ? void 0 : _a.map((e) => gov_1.Vote.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = { paramsType: \"\" };\nexports.QueryParamsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.paramsType !== \"\") {\n writer.uint32(10).string(message.paramsType);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paramsType = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsRequest);\n message.paramsType =\n object.paramsType !== undefined && object.paramsType !== null ? String(object.paramsType) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.paramsType !== undefined && (obj.paramsType = message.paramsType);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryParamsRequest);\n message.paramsType = (_a = object.paramsType) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.votingParams !== undefined) {\n gov_1.VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositParams !== undefined) {\n gov_1.DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim();\n }\n if (message.tallyParams !== undefined) {\n gov_1.TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingParams = gov_1.VotingParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.depositParams = gov_1.DepositParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.tallyParams = gov_1.TallyParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.votingParams =\n object.votingParams !== undefined && object.votingParams !== null\n ? gov_1.VotingParams.fromJSON(object.votingParams)\n : undefined;\n message.depositParams =\n object.depositParams !== undefined && object.depositParams !== null\n ? gov_1.DepositParams.fromJSON(object.depositParams)\n : undefined;\n message.tallyParams =\n object.tallyParams !== undefined && object.tallyParams !== null\n ? gov_1.TallyParams.fromJSON(object.tallyParams)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.votingParams !== undefined &&\n (obj.votingParams = message.votingParams ? gov_1.VotingParams.toJSON(message.votingParams) : undefined);\n message.depositParams !== undefined &&\n (obj.depositParams = message.depositParams ? gov_1.DepositParams.toJSON(message.depositParams) : undefined);\n message.tallyParams !== undefined &&\n (obj.tallyParams = message.tallyParams ? gov_1.TallyParams.toJSON(message.tallyParams) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.votingParams =\n object.votingParams !== undefined && object.votingParams !== null\n ? gov_1.VotingParams.fromPartial(object.votingParams)\n : undefined;\n message.depositParams =\n object.depositParams !== undefined && object.depositParams !== null\n ? gov_1.DepositParams.fromPartial(object.depositParams)\n : undefined;\n message.tallyParams =\n object.tallyParams !== undefined && object.tallyParams !== null\n ? gov_1.TallyParams.fromPartial(object.tallyParams)\n : undefined;\n return message;\n },\n};\nconst baseQueryDepositRequest = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.QueryDepositRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDepositRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDepositRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDepositRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.depositor = (_a = object.depositor) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDepositResponse = {};\nexports.QueryDepositResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.deposit !== undefined) {\n gov_1.Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDepositResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.deposit = gov_1.Deposit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDepositResponse);\n message.deposit =\n object.deposit !== undefined && object.deposit !== null ? gov_1.Deposit.fromJSON(object.deposit) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.deposit !== undefined &&\n (obj.deposit = message.deposit ? gov_1.Deposit.toJSON(message.deposit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDepositResponse);\n message.deposit =\n object.deposit !== undefined && object.deposit !== null\n ? gov_1.Deposit.fromPartial(object.deposit)\n : undefined;\n return message;\n },\n};\nconst baseQueryDepositsRequest = { proposalId: long_1.default.UZERO };\nexports.QueryDepositsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDepositsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDepositsRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDepositsRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDepositsResponse = {};\nexports.QueryDepositsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.deposits) {\n gov_1.Deposit.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDepositsResponse);\n message.deposits = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.deposits.push(gov_1.Deposit.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDepositsResponse);\n message.deposits = ((_a = object.deposits) !== null && _a !== void 0 ? _a : []).map((e) => gov_1.Deposit.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.deposits) {\n obj.deposits = message.deposits.map((e) => (e ? gov_1.Deposit.toJSON(e) : undefined));\n }\n else {\n obj.deposits = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDepositsResponse);\n message.deposits = ((_a = object.deposits) === null || _a === void 0 ? void 0 : _a.map((e) => gov_1.Deposit.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryTallyResultRequest = { proposalId: long_1.default.UZERO };\nexports.QueryTallyResultRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryTallyResultRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryTallyResultRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryTallyResultRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryTallyResultResponse = {};\nexports.QueryTallyResultResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tally !== undefined) {\n gov_1.TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryTallyResultResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tally = gov_1.TallyResult.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryTallyResultResponse);\n message.tally =\n object.tally !== undefined && object.tally !== null ? gov_1.TallyResult.fromJSON(object.tally) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tally !== undefined &&\n (obj.tally = message.tally ? gov_1.TallyResult.toJSON(message.tally) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryTallyResultResponse);\n message.tally =\n object.tally !== undefined && object.tally !== null ? gov_1.TallyResult.fromPartial(object.tally) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Proposal = this.Proposal.bind(this);\n this.Proposals = this.Proposals.bind(this);\n this.Vote = this.Vote.bind(this);\n this.Votes = this.Votes.bind(this);\n this.Params = this.Params.bind(this);\n this.Deposit = this.Deposit.bind(this);\n this.Deposits = this.Deposits.bind(this);\n this.TallyResult = this.TallyResult.bind(this);\n }\n Proposal(request) {\n const data = exports.QueryProposalRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Proposal\", data);\n return promise.then((data) => exports.QueryProposalResponse.decode(new minimal_1.default.Reader(data)));\n }\n Proposals(request) {\n const data = exports.QueryProposalsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Proposals\", data);\n return promise.then((data) => exports.QueryProposalsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Vote(request) {\n const data = exports.QueryVoteRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Vote\", data);\n return promise.then((data) => exports.QueryVoteResponse.decode(new minimal_1.default.Reader(data)));\n }\n Votes(request) {\n const data = exports.QueryVotesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Votes\", data);\n return promise.then((data) => exports.QueryVotesResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Deposit(request) {\n const data = exports.QueryDepositRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Deposit\", data);\n return promise.then((data) => exports.QueryDepositResponse.decode(new minimal_1.default.Reader(data)));\n }\n Deposits(request) {\n const data = exports.QueryDepositsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Deposits\", data);\n return promise.then((data) => exports.QueryDepositsResponse.decode(new minimal_1.default.Reader(data)));\n }\n TallyResult(request) {\n const data = exports.QueryTallyResultRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"TallyResult\", data);\n return promise.then((data) => exports.QueryTallyResultResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst gov_1 = require(\"../../../cosmos/gov/v1beta1/gov\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nconst baseMsgSubmitProposal = { proposer: \"\" };\nexports.MsgSubmitProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.initialDeposit) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.proposer !== \"\") {\n writer.uint32(26).string(message.proposer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.initialDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.proposer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.content =\n object.content !== undefined && object.content !== null ? any_1.Any.fromJSON(object.content) : undefined;\n message.initialDeposit = ((_a = object.initialDeposit) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.proposer =\n object.proposer !== undefined && object.proposer !== null ? String(object.proposer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n if (message.initialDeposit) {\n obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.initialDeposit = [];\n }\n message.proposer !== undefined && (obj.proposer = message.proposer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.content =\n object.content !== undefined && object.content !== null ? any_1.Any.fromPartial(object.content) : undefined;\n message.initialDeposit = ((_a = object.initialDeposit) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.proposer = (_b = object.proposer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgSubmitProposalResponse = { proposalId: long_1.default.UZERO };\nexports.MsgSubmitProposalResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseMsgVote = { proposalId: long_1.default.UZERO, voter: \"\", option: 0 };\nexports.MsgVote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVote);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgVote);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n message.option =\n object.option !== undefined && object.option !== null ? gov_1.voteOptionFromJSON(object.option) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = gov_1.voteOptionToJSON(message.option));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgVote);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : \"\";\n message.option = (_b = object.option) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseMsgVoteResponse = {};\nexports.MsgVoteResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgVoteResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgVoteResponse);\n return message;\n },\n};\nconst baseMsgVoteWeighted = { proposalId: long_1.default.UZERO, voter: \"\" };\nexports.MsgVoteWeighted = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.options = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n message.options = ((_a = object.options) !== null && _a !== void 0 ? _a : []).map((e) => gov_1.WeightedVoteOption.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : \"\";\n message.options = ((_b = object.options) === null || _b === void 0 ? void 0 : _b.map((e) => gov_1.WeightedVoteOption.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgVoteWeightedResponse = {};\nexports.MsgVoteWeightedResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n return message;\n },\n};\nconst baseMsgDeposit = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.MsgDeposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDeposit);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgDeposit);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgDeposit);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.depositor = (_a = object.depositor) !== null && _a !== void 0 ? _a : \"\";\n message.amount = ((_b = object.amount) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgDepositResponse = {};\nexports.MsgDepositResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDepositResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgDepositResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgDepositResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.Vote = this.Vote.bind(this);\n this.VoteWeighted = this.VoteWeighted.bind(this);\n this.Deposit = this.Deposit.bind(this);\n }\n SubmitProposal(request) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new minimal_1.default.Reader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new minimal_1.default.Reader(data)));\n }\n VoteWeighted(request) {\n const data = exports.MsgVoteWeighted.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"VoteWeighted\", data);\n return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new minimal_1.default.Reader(data)));\n }\n Deposit(request) {\n const data = exports.MsgDeposit.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Deposit\", data);\n return promise.then((data) => exports.MsgDepositResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Minter = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.mint.v1beta1\";\nconst baseMinter = { inflation: \"\", annualProvisions: \"\" };\nexports.Minter = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.inflation !== \"\") {\n writer.uint32(10).string(message.inflation);\n }\n if (message.annualProvisions !== \"\") {\n writer.uint32(18).string(message.annualProvisions);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMinter);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inflation = reader.string();\n break;\n case 2:\n message.annualProvisions = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMinter);\n message.inflation =\n object.inflation !== undefined && object.inflation !== null ? String(object.inflation) : \"\";\n message.annualProvisions =\n object.annualProvisions !== undefined && object.annualProvisions !== null\n ? String(object.annualProvisions)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.inflation !== undefined && (obj.inflation = message.inflation);\n message.annualProvisions !== undefined && (obj.annualProvisions = message.annualProvisions);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMinter);\n message.inflation = (_a = object.inflation) !== null && _a !== void 0 ? _a : \"\";\n message.annualProvisions = (_b = object.annualProvisions) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseParams = {\n mintDenom: \"\",\n inflationRateChange: \"\",\n inflationMax: \"\",\n inflationMin: \"\",\n goalBonded: \"\",\n blocksPerYear: long_1.default.UZERO,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mintDenom !== \"\") {\n writer.uint32(10).string(message.mintDenom);\n }\n if (message.inflationRateChange !== \"\") {\n writer.uint32(18).string(message.inflationRateChange);\n }\n if (message.inflationMax !== \"\") {\n writer.uint32(26).string(message.inflationMax);\n }\n if (message.inflationMin !== \"\") {\n writer.uint32(34).string(message.inflationMin);\n }\n if (message.goalBonded !== \"\") {\n writer.uint32(42).string(message.goalBonded);\n }\n if (!message.blocksPerYear.isZero()) {\n writer.uint32(48).uint64(message.blocksPerYear);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mintDenom = reader.string();\n break;\n case 2:\n message.inflationRateChange = reader.string();\n break;\n case 3:\n message.inflationMax = reader.string();\n break;\n case 4:\n message.inflationMin = reader.string();\n break;\n case 5:\n message.goalBonded = reader.string();\n break;\n case 6:\n message.blocksPerYear = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.mintDenom =\n object.mintDenom !== undefined && object.mintDenom !== null ? String(object.mintDenom) : \"\";\n message.inflationRateChange =\n object.inflationRateChange !== undefined && object.inflationRateChange !== null\n ? String(object.inflationRateChange)\n : \"\";\n message.inflationMax =\n object.inflationMax !== undefined && object.inflationMax !== null ? String(object.inflationMax) : \"\";\n message.inflationMin =\n object.inflationMin !== undefined && object.inflationMin !== null ? String(object.inflationMin) : \"\";\n message.goalBonded =\n object.goalBonded !== undefined && object.goalBonded !== null ? String(object.goalBonded) : \"\";\n message.blocksPerYear =\n object.blocksPerYear !== undefined && object.blocksPerYear !== null\n ? long_1.default.fromString(object.blocksPerYear)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom);\n message.inflationRateChange !== undefined && (obj.inflationRateChange = message.inflationRateChange);\n message.inflationMax !== undefined && (obj.inflationMax = message.inflationMax);\n message.inflationMin !== undefined && (obj.inflationMin = message.inflationMin);\n message.goalBonded !== undefined && (obj.goalBonded = message.goalBonded);\n message.blocksPerYear !== undefined &&\n (obj.blocksPerYear = (message.blocksPerYear || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseParams);\n message.mintDenom = (_a = object.mintDenom) !== null && _a !== void 0 ? _a : \"\";\n message.inflationRateChange = (_b = object.inflationRateChange) !== null && _b !== void 0 ? _b : \"\";\n message.inflationMax = (_c = object.inflationMax) !== null && _c !== void 0 ? _c : \"\";\n message.inflationMin = (_d = object.inflationMin) !== null && _d !== void 0 ? _d : \"\";\n message.goalBonded = (_e = object.goalBonded) !== null && _e !== void 0 ? _e : \"\";\n message.blocksPerYear =\n object.blocksPerYear !== undefined && object.blocksPerYear !== null\n ? long_1.default.fromValue(object.blocksPerYear)\n : long_1.default.UZERO;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=mint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryAnnualProvisionsResponse = exports.QueryAnnualProvisionsRequest = exports.QueryInflationResponse = exports.QueryInflationRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst mint_1 = require(\"../../../cosmos/mint/v1beta1/mint\");\nexports.protobufPackage = \"cosmos.mint.v1beta1\";\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n mint_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = mint_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? mint_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? mint_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? mint_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nconst baseQueryInflationRequest = {};\nexports.QueryInflationRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryInflationRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryInflationRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryInflationRequest);\n return message;\n },\n};\nconst baseQueryInflationResponse = {};\nexports.QueryInflationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.inflation.length !== 0) {\n writer.uint32(10).bytes(message.inflation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryInflationResponse);\n message.inflation = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inflation = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryInflationResponse);\n message.inflation =\n object.inflation !== undefined && object.inflation !== null\n ? bytesFromBase64(object.inflation)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.inflation !== undefined &&\n (obj.inflation = base64FromBytes(message.inflation !== undefined ? message.inflation : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryInflationResponse);\n message.inflation = (_a = object.inflation) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseQueryAnnualProvisionsRequest = {};\nexports.QueryAnnualProvisionsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAnnualProvisionsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryAnnualProvisionsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryAnnualProvisionsRequest);\n return message;\n },\n};\nconst baseQueryAnnualProvisionsResponse = {};\nexports.QueryAnnualProvisionsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.annualProvisions.length !== 0) {\n writer.uint32(10).bytes(message.annualProvisions);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAnnualProvisionsResponse);\n message.annualProvisions = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.annualProvisions = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAnnualProvisionsResponse);\n message.annualProvisions =\n object.annualProvisions !== undefined && object.annualProvisions !== null\n ? bytesFromBase64(object.annualProvisions)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.annualProvisions !== undefined &&\n (obj.annualProvisions = base64FromBytes(message.annualProvisions !== undefined ? message.annualProvisions : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAnnualProvisionsResponse);\n message.annualProvisions = (_a = object.annualProvisions) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.Inflation = this.Inflation.bind(this);\n this.AnnualProvisions = this.AnnualProvisions.bind(this);\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Inflation(request) {\n const data = exports.QueryInflationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"Inflation\", data);\n return promise.then((data) => exports.QueryInflationResponse.decode(new minimal_1.default.Reader(data)));\n }\n AnnualProvisions(request) {\n const data = exports.QueryAnnualProvisionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"AnnualProvisions\", data);\n return promise.then((data) => exports.QueryAnnualProvisionsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QuerySigningInfosResponse = exports.QuerySigningInfosRequest = exports.QuerySigningInfoResponse = exports.QuerySigningInfoRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst slashing_1 = require(\"../../../cosmos/slashing/v1beta1/slashing\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n slashing_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = slashing_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? slashing_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? slashing_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? slashing_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nconst baseQuerySigningInfoRequest = { consAddress: \"\" };\nexports.QuerySigningInfoRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consAddress !== \"\") {\n writer.uint32(10).string(message.consAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySigningInfoRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySigningInfoRequest);\n message.consAddress =\n object.consAddress !== undefined && object.consAddress !== null ? String(object.consAddress) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consAddress !== undefined && (obj.consAddress = message.consAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQuerySigningInfoRequest);\n message.consAddress = (_a = object.consAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQuerySigningInfoResponse = {};\nexports.QuerySigningInfoResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.valSigningInfo !== undefined) {\n slashing_1.ValidatorSigningInfo.encode(message.valSigningInfo, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySigningInfoResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.valSigningInfo = slashing_1.ValidatorSigningInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySigningInfoResponse);\n message.valSigningInfo =\n object.valSigningInfo !== undefined && object.valSigningInfo !== null\n ? slashing_1.ValidatorSigningInfo.fromJSON(object.valSigningInfo)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.valSigningInfo !== undefined &&\n (obj.valSigningInfo = message.valSigningInfo\n ? slashing_1.ValidatorSigningInfo.toJSON(message.valSigningInfo)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQuerySigningInfoResponse);\n message.valSigningInfo =\n object.valSigningInfo !== undefined && object.valSigningInfo !== null\n ? slashing_1.ValidatorSigningInfo.fromPartial(object.valSigningInfo)\n : undefined;\n return message;\n },\n};\nconst baseQuerySigningInfosRequest = {};\nexports.QuerySigningInfosRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySigningInfosRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySigningInfosRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQuerySigningInfosRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQuerySigningInfosResponse = {};\nexports.QuerySigningInfosResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.info) {\n slashing_1.ValidatorSigningInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySigningInfosResponse);\n message.info = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.info.push(slashing_1.ValidatorSigningInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQuerySigningInfosResponse);\n message.info = ((_a = object.info) !== null && _a !== void 0 ? _a : []).map((e) => slashing_1.ValidatorSigningInfo.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.info) {\n obj.info = message.info.map((e) => (e ? slashing_1.ValidatorSigningInfo.toJSON(e) : undefined));\n }\n else {\n obj.info = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQuerySigningInfosResponse);\n message.info = ((_a = object.info) === null || _a === void 0 ? void 0 : _a.map((e) => slashing_1.ValidatorSigningInfo.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.SigningInfo = this.SigningInfo.bind(this);\n this.SigningInfos = this.SigningInfos.bind(this);\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n SigningInfo(request) {\n const data = exports.QuerySigningInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"SigningInfo\", data);\n return promise.then((data) => exports.QuerySigningInfoResponse.decode(new minimal_1.default.Reader(data)));\n }\n SigningInfos(request) {\n const data = exports.QuerySigningInfosRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"SigningInfos\", data);\n return promise.then((data) => exports.QuerySigningInfosResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ValidatorSigningInfo = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nconst baseValidatorSigningInfo = {\n address: \"\",\n startHeight: long_1.default.ZERO,\n indexOffset: long_1.default.ZERO,\n tombstoned: false,\n missedBlocksCounter: long_1.default.ZERO,\n};\nexports.ValidatorSigningInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (!message.startHeight.isZero()) {\n writer.uint32(16).int64(message.startHeight);\n }\n if (!message.indexOffset.isZero()) {\n writer.uint32(24).int64(message.indexOffset);\n }\n if (message.jailedUntil !== undefined) {\n timestamp_1.Timestamp.encode(message.jailedUntil, writer.uint32(34).fork()).ldelim();\n }\n if (message.tombstoned === true) {\n writer.uint32(40).bool(message.tombstoned);\n }\n if (!message.missedBlocksCounter.isZero()) {\n writer.uint32(48).int64(message.missedBlocksCounter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSigningInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.startHeight = reader.int64();\n break;\n case 3:\n message.indexOffset = reader.int64();\n break;\n case 4:\n message.jailedUntil = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.tombstoned = reader.bool();\n break;\n case 6:\n message.missedBlocksCounter = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorSigningInfo);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.startHeight =\n object.startHeight !== undefined && object.startHeight !== null\n ? long_1.default.fromString(object.startHeight)\n : long_1.default.ZERO;\n message.indexOffset =\n object.indexOffset !== undefined && object.indexOffset !== null\n ? long_1.default.fromString(object.indexOffset)\n : long_1.default.ZERO;\n message.jailedUntil =\n object.jailedUntil !== undefined && object.jailedUntil !== null\n ? fromJsonTimestamp(object.jailedUntil)\n : undefined;\n message.tombstoned =\n object.tombstoned !== undefined && object.tombstoned !== null ? Boolean(object.tombstoned) : false;\n message.missedBlocksCounter =\n object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null\n ? long_1.default.fromString(object.missedBlocksCounter)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.startHeight !== undefined && (obj.startHeight = (message.startHeight || long_1.default.ZERO).toString());\n message.indexOffset !== undefined && (obj.indexOffset = (message.indexOffset || long_1.default.ZERO).toString());\n message.jailedUntil !== undefined && (obj.jailedUntil = fromTimestamp(message.jailedUntil).toISOString());\n message.tombstoned !== undefined && (obj.tombstoned = message.tombstoned);\n message.missedBlocksCounter !== undefined &&\n (obj.missedBlocksCounter = (message.missedBlocksCounter || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseValidatorSigningInfo);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.startHeight =\n object.startHeight !== undefined && object.startHeight !== null\n ? long_1.default.fromValue(object.startHeight)\n : long_1.default.ZERO;\n message.indexOffset =\n object.indexOffset !== undefined && object.indexOffset !== null\n ? long_1.default.fromValue(object.indexOffset)\n : long_1.default.ZERO;\n message.jailedUntil =\n object.jailedUntil !== undefined && object.jailedUntil !== null\n ? timestamp_1.Timestamp.fromPartial(object.jailedUntil)\n : undefined;\n message.tombstoned = (_b = object.tombstoned) !== null && _b !== void 0 ? _b : false;\n message.missedBlocksCounter =\n object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null\n ? long_1.default.fromValue(object.missedBlocksCounter)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseParams = { signedBlocksWindow: long_1.default.ZERO };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.signedBlocksWindow.isZero()) {\n writer.uint32(8).int64(message.signedBlocksWindow);\n }\n if (message.minSignedPerWindow.length !== 0) {\n writer.uint32(18).bytes(message.minSignedPerWindow);\n }\n if (message.downtimeJailDuration !== undefined) {\n duration_1.Duration.encode(message.downtimeJailDuration, writer.uint32(26).fork()).ldelim();\n }\n if (message.slashFractionDoubleSign.length !== 0) {\n writer.uint32(34).bytes(message.slashFractionDoubleSign);\n }\n if (message.slashFractionDowntime.length !== 0) {\n writer.uint32(42).bytes(message.slashFractionDowntime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.minSignedPerWindow = new Uint8Array();\n message.slashFractionDoubleSign = new Uint8Array();\n message.slashFractionDowntime = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedBlocksWindow = reader.int64();\n break;\n case 2:\n message.minSignedPerWindow = reader.bytes();\n break;\n case 3:\n message.downtimeJailDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.slashFractionDoubleSign = reader.bytes();\n break;\n case 5:\n message.slashFractionDowntime = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.signedBlocksWindow =\n object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null\n ? long_1.default.fromString(object.signedBlocksWindow)\n : long_1.default.ZERO;\n message.minSignedPerWindow =\n object.minSignedPerWindow !== undefined && object.minSignedPerWindow !== null\n ? bytesFromBase64(object.minSignedPerWindow)\n : new Uint8Array();\n message.downtimeJailDuration =\n object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null\n ? duration_1.Duration.fromJSON(object.downtimeJailDuration)\n : undefined;\n message.slashFractionDoubleSign =\n object.slashFractionDoubleSign !== undefined && object.slashFractionDoubleSign !== null\n ? bytesFromBase64(object.slashFractionDoubleSign)\n : new Uint8Array();\n message.slashFractionDowntime =\n object.slashFractionDowntime !== undefined && object.slashFractionDowntime !== null\n ? bytesFromBase64(object.slashFractionDowntime)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedBlocksWindow !== undefined &&\n (obj.signedBlocksWindow = (message.signedBlocksWindow || long_1.default.ZERO).toString());\n message.minSignedPerWindow !== undefined &&\n (obj.minSignedPerWindow = base64FromBytes(message.minSignedPerWindow !== undefined ? message.minSignedPerWindow : new Uint8Array()));\n message.downtimeJailDuration !== undefined &&\n (obj.downtimeJailDuration = message.downtimeJailDuration\n ? duration_1.Duration.toJSON(message.downtimeJailDuration)\n : undefined);\n message.slashFractionDoubleSign !== undefined &&\n (obj.slashFractionDoubleSign = base64FromBytes(message.slashFractionDoubleSign !== undefined ? message.slashFractionDoubleSign : new Uint8Array()));\n message.slashFractionDowntime !== undefined &&\n (obj.slashFractionDowntime = base64FromBytes(message.slashFractionDowntime !== undefined ? message.slashFractionDowntime : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseParams);\n message.signedBlocksWindow =\n object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null\n ? long_1.default.fromValue(object.signedBlocksWindow)\n : long_1.default.ZERO;\n message.minSignedPerWindow = (_a = object.minSignedPerWindow) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.downtimeJailDuration =\n object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null\n ? duration_1.Duration.fromPartial(object.downtimeJailDuration)\n : undefined;\n message.slashFractionDoubleSign = (_b = object.slashFractionDoubleSign) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.slashFractionDowntime = (_c = object.slashFractionDowntime) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=slashing.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryPoolResponse = exports.QueryPoolRequest = exports.QueryHistoricalInfoResponse = exports.QueryHistoricalInfoRequest = exports.QueryDelegatorValidatorResponse = exports.QueryDelegatorValidatorRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryRedelegationsResponse = exports.QueryRedelegationsRequest = exports.QueryDelegatorUnbondingDelegationsResponse = exports.QueryDelegatorUnbondingDelegationsRequest = exports.QueryDelegatorDelegationsResponse = exports.QueryDelegatorDelegationsRequest = exports.QueryUnbondingDelegationResponse = exports.QueryUnbondingDelegationRequest = exports.QueryDelegationResponse = exports.QueryDelegationRequest = exports.QueryValidatorUnbondingDelegationsResponse = exports.QueryValidatorUnbondingDelegationsRequest = exports.QueryValidatorDelegationsResponse = exports.QueryValidatorDelegationsRequest = exports.QueryValidatorResponse = exports.QueryValidatorRequest = exports.QueryValidatorsResponse = exports.QueryValidatorsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst staking_1 = require(\"../../../cosmos/staking/v1beta1/staking\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nconst baseQueryValidatorsRequest = { status: \"\" };\nexports.QueryValidatorsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.status !== \"\") {\n writer.uint32(10).string(message.status);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.status = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorsRequest);\n message.status = object.status !== undefined && object.status !== null ? String(object.status) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.status !== undefined && (obj.status = message.status);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorsRequest);\n message.status = (_a = object.status) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorsResponse = {};\nexports.QueryValidatorsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorsResponse);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(staking_1.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorsResponse);\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.Validator.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? staking_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorsResponse);\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.Validator.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorRequest = { validatorAddr: \"\" };\nexports.QueryValidatorRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorRequest);\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorRequest);\n message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryValidatorResponse = {};\nexports.QueryValidatorResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validator !== undefined) {\n staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = staking_1.Validator.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorResponse);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? staking_1.Validator.fromJSON(object.validator)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? staking_1.Validator.toJSON(message.validator) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryValidatorResponse);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? staking_1.Validator.fromPartial(object.validator)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorDelegationsRequest = { validatorAddr: \"\" };\nexports.QueryValidatorDelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorDelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorDelegationsRequest);\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorDelegationsRequest);\n message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorDelegationsResponse = {};\nexports.QueryValidatorDelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.delegationResponses) {\n staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorDelegationsResponse);\n message.delegationResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorDelegationsResponse);\n message.delegationResponses = ((_a = object.delegationResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.DelegationResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.delegationResponses) {\n obj.delegationResponses = message.delegationResponses.map((e) => e ? staking_1.DelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.delegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorDelegationsResponse);\n message.delegationResponses =\n ((_a = object.delegationResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.DelegationResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorUnbondingDelegationsRequest = { validatorAddr: \"\" };\nexports.QueryValidatorUnbondingDelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsRequest);\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsRequest);\n message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorUnbondingDelegationsResponse = {};\nexports.QueryValidatorUnbondingDelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.unbondingResponses) {\n staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsResponse);\n message.unbondingResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsResponse);\n message.unbondingResponses = ((_a = object.unbondingResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.UnbondingDelegation.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.unbondingResponses) {\n obj.unbondingResponses = message.unbondingResponses.map((e) => e ? staking_1.UnbondingDelegation.toJSON(e) : undefined);\n }\n else {\n obj.unbondingResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsResponse);\n message.unbondingResponses =\n ((_a = object.unbondingResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.UnbondingDelegation.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegationRequest = { delegatorAddr: \"\", validatorAddr: \"\" };\nexports.QueryDelegationRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegationRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegationRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryDelegationResponse = {};\nexports.QueryDelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegationResponse !== undefined) {\n staking_1.DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponse = staking_1.DelegationResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegationResponse);\n message.delegationResponse =\n object.delegationResponse !== undefined && object.delegationResponse !== null\n ? staking_1.DelegationResponse.fromJSON(object.delegationResponse)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegationResponse !== undefined &&\n (obj.delegationResponse = message.delegationResponse\n ? staking_1.DelegationResponse.toJSON(message.delegationResponse)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDelegationResponse);\n message.delegationResponse =\n object.delegationResponse !== undefined && object.delegationResponse !== null\n ? staking_1.DelegationResponse.fromPartial(object.delegationResponse)\n : undefined;\n return message;\n },\n};\nconst baseQueryUnbondingDelegationRequest = { delegatorAddr: \"\", validatorAddr: \"\" };\nexports.QueryUnbondingDelegationRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnbondingDelegationRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryUnbondingDelegationRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryUnbondingDelegationRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryUnbondingDelegationResponse = {};\nexports.QueryUnbondingDelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.unbond !== undefined) {\n staking_1.UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnbondingDelegationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbond = staking_1.UnbondingDelegation.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryUnbondingDelegationResponse);\n message.unbond =\n object.unbond !== undefined && object.unbond !== null\n ? staking_1.UnbondingDelegation.fromJSON(object.unbond)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.unbond !== undefined &&\n (obj.unbond = message.unbond ? staking_1.UnbondingDelegation.toJSON(message.unbond) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryUnbondingDelegationResponse);\n message.unbond =\n object.unbond !== undefined && object.unbond !== null\n ? staking_1.UnbondingDelegation.fromPartial(object.unbond)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorDelegationsRequest = { delegatorAddr: \"\" };\nexports.QueryDelegatorDelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorDelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorDelegationsRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorDelegationsRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorDelegationsResponse = {};\nexports.QueryDelegatorDelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.delegationResponses) {\n staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorDelegationsResponse);\n message.delegationResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorDelegationsResponse);\n message.delegationResponses = ((_a = object.delegationResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.DelegationResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.delegationResponses) {\n obj.delegationResponses = message.delegationResponses.map((e) => e ? staking_1.DelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.delegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorDelegationsResponse);\n message.delegationResponses =\n ((_a = object.delegationResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.DelegationResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorUnbondingDelegationsRequest = { delegatorAddr: \"\" };\nexports.QueryDelegatorUnbondingDelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorUnbondingDelegationsResponse = {};\nexports.QueryDelegatorUnbondingDelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.unbondingResponses) {\n staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsResponse);\n message.unbondingResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsResponse);\n message.unbondingResponses = ((_a = object.unbondingResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.UnbondingDelegation.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.unbondingResponses) {\n obj.unbondingResponses = message.unbondingResponses.map((e) => e ? staking_1.UnbondingDelegation.toJSON(e) : undefined);\n }\n else {\n obj.unbondingResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsResponse);\n message.unbondingResponses =\n ((_a = object.unbondingResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.UnbondingDelegation.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryRedelegationsRequest = {\n delegatorAddr: \"\",\n srcValidatorAddr: \"\",\n dstValidatorAddr: \"\",\n};\nexports.QueryRedelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.srcValidatorAddr !== \"\") {\n writer.uint32(18).string(message.srcValidatorAddr);\n }\n if (message.dstValidatorAddr !== \"\") {\n writer.uint32(26).string(message.dstValidatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryRedelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.srcValidatorAddr = reader.string();\n break;\n case 3:\n message.dstValidatorAddr = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryRedelegationsRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.srcValidatorAddr =\n object.srcValidatorAddr !== undefined && object.srcValidatorAddr !== null\n ? String(object.srcValidatorAddr)\n : \"\";\n message.dstValidatorAddr =\n object.dstValidatorAddr !== undefined && object.dstValidatorAddr !== null\n ? String(object.dstValidatorAddr)\n : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.srcValidatorAddr !== undefined && (obj.srcValidatorAddr = message.srcValidatorAddr);\n message.dstValidatorAddr !== undefined && (obj.dstValidatorAddr = message.dstValidatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseQueryRedelegationsRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.srcValidatorAddr = (_b = object.srcValidatorAddr) !== null && _b !== void 0 ? _b : \"\";\n message.dstValidatorAddr = (_c = object.dstValidatorAddr) !== null && _c !== void 0 ? _c : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryRedelegationsResponse = {};\nexports.QueryRedelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.redelegationResponses) {\n staking_1.RedelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryRedelegationsResponse);\n message.redelegationResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationResponses.push(staking_1.RedelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryRedelegationsResponse);\n message.redelegationResponses = ((_a = object.redelegationResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.RedelegationResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.redelegationResponses) {\n obj.redelegationResponses = message.redelegationResponses.map((e) => e ? staking_1.RedelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.redelegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryRedelegationsResponse);\n message.redelegationResponses =\n ((_a = object.redelegationResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.RedelegationResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorValidatorsRequest = { delegatorAddr: \"\" };\nexports.QueryDelegatorValidatorsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorValidatorsResponse = {};\nexports.QueryDelegatorValidatorsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(staking_1.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.Validator.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? staking_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.Validator.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorValidatorRequest = { delegatorAddr: \"\", validatorAddr: \"\" };\nexports.QueryDelegatorValidatorRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegatorValidatorRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryDelegatorValidatorResponse = {};\nexports.QueryDelegatorValidatorResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validator !== undefined) {\n staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = staking_1.Validator.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorResponse);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? staking_1.Validator.fromJSON(object.validator)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? staking_1.Validator.toJSON(message.validator) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorResponse);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? staking_1.Validator.fromPartial(object.validator)\n : undefined;\n return message;\n },\n};\nconst baseQueryHistoricalInfoRequest = { height: long_1.default.ZERO };\nexports.QueryHistoricalInfoRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryHistoricalInfoRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryHistoricalInfoRequest);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryHistoricalInfoRequest);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseQueryHistoricalInfoResponse = {};\nexports.QueryHistoricalInfoResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hist !== undefined) {\n staking_1.HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryHistoricalInfoResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hist = staking_1.HistoricalInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryHistoricalInfoResponse);\n message.hist =\n object.hist !== undefined && object.hist !== null ? staking_1.HistoricalInfo.fromJSON(object.hist) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hist !== undefined && (obj.hist = message.hist ? staking_1.HistoricalInfo.toJSON(message.hist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryHistoricalInfoResponse);\n message.hist =\n object.hist !== undefined && object.hist !== null ? staking_1.HistoricalInfo.fromPartial(object.hist) : undefined;\n return message;\n },\n};\nconst baseQueryPoolRequest = {};\nexports.QueryPoolRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPoolRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryPoolRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryPoolRequest);\n return message;\n },\n};\nconst baseQueryPoolResponse = {};\nexports.QueryPoolResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pool !== undefined) {\n staking_1.Pool.encode(message.pool, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPoolResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pool = staking_1.Pool.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPoolResponse);\n message.pool = object.pool !== undefined && object.pool !== null ? staking_1.Pool.fromJSON(object.pool) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pool !== undefined && (obj.pool = message.pool ? staking_1.Pool.toJSON(message.pool) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryPoolResponse);\n message.pool =\n object.pool !== undefined && object.pool !== null ? staking_1.Pool.fromPartial(object.pool) : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n staking_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = staking_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? staking_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? staking_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? staking_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Validators = this.Validators.bind(this);\n this.Validator = this.Validator.bind(this);\n this.ValidatorDelegations = this.ValidatorDelegations.bind(this);\n this.ValidatorUnbondingDelegations = this.ValidatorUnbondingDelegations.bind(this);\n this.Delegation = this.Delegation.bind(this);\n this.UnbondingDelegation = this.UnbondingDelegation.bind(this);\n this.DelegatorDelegations = this.DelegatorDelegations.bind(this);\n this.DelegatorUnbondingDelegations = this.DelegatorUnbondingDelegations.bind(this);\n this.Redelegations = this.Redelegations.bind(this);\n this.DelegatorValidators = this.DelegatorValidators.bind(this);\n this.DelegatorValidator = this.DelegatorValidator.bind(this);\n this.HistoricalInfo = this.HistoricalInfo.bind(this);\n this.Pool = this.Pool.bind(this);\n this.Params = this.Params.bind(this);\n }\n Validators(request) {\n const data = exports.QueryValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Validators\", data);\n return promise.then((data) => exports.QueryValidatorsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Validator(request) {\n const data = exports.QueryValidatorRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Validator\", data);\n return promise.then((data) => exports.QueryValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorDelegations(request) {\n const data = exports.QueryValidatorDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"ValidatorDelegations\", data);\n return promise.then((data) => exports.QueryValidatorDelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorUnbondingDelegations(request) {\n const data = exports.QueryValidatorUnbondingDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"ValidatorUnbondingDelegations\", data);\n return promise.then((data) => exports.QueryValidatorUnbondingDelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Delegation(request) {\n const data = exports.QueryDelegationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Delegation\", data);\n return promise.then((data) => exports.QueryDelegationResponse.decode(new minimal_1.default.Reader(data)));\n }\n UnbondingDelegation(request) {\n const data = exports.QueryUnbondingDelegationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"UnbondingDelegation\", data);\n return promise.then((data) => exports.QueryUnbondingDelegationResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorDelegations(request) {\n const data = exports.QueryDelegatorDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorDelegations\", data);\n return promise.then((data) => exports.QueryDelegatorDelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorUnbondingDelegations(request) {\n const data = exports.QueryDelegatorUnbondingDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorUnbondingDelegations\", data);\n return promise.then((data) => exports.QueryDelegatorUnbondingDelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Redelegations(request) {\n const data = exports.QueryRedelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Redelegations\", data);\n return promise.then((data) => exports.QueryRedelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorValidators(request) {\n const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorValidators\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorValidator(request) {\n const data = exports.QueryDelegatorValidatorRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorValidator\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n HistoricalInfo(request) {\n const data = exports.QueryHistoricalInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"HistoricalInfo\", data);\n return promise.then((data) => exports.QueryHistoricalInfoResponse.decode(new minimal_1.default.Reader(data)));\n }\n Pool(request) {\n const data = exports.QueryPoolRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Pool\", data);\n return promise.then((data) => exports.QueryPoolResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatus = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../tendermint/types/types\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\n/** BondStatus is the status of a validator. */\nvar BondStatus;\n(function (BondStatus) {\n /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */\n BondStatus[BondStatus[\"BOND_STATUS_UNSPECIFIED\"] = 0] = \"BOND_STATUS_UNSPECIFIED\";\n /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDED\"] = 1] = \"BOND_STATUS_UNBONDED\";\n /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDING\"] = 2] = \"BOND_STATUS_UNBONDING\";\n /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_BONDED\"] = 3] = \"BOND_STATUS_BONDED\";\n BondStatus[BondStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BondStatus = exports.BondStatus || (exports.BondStatus = {}));\nfunction bondStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"BOND_STATUS_UNSPECIFIED\":\n return BondStatus.BOND_STATUS_UNSPECIFIED;\n case 1:\n case \"BOND_STATUS_UNBONDED\":\n return BondStatus.BOND_STATUS_UNBONDED;\n case 2:\n case \"BOND_STATUS_UNBONDING\":\n return BondStatus.BOND_STATUS_UNBONDING;\n case 3:\n case \"BOND_STATUS_BONDED\":\n return BondStatus.BOND_STATUS_BONDED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BondStatus.UNRECOGNIZED;\n }\n}\nexports.bondStatusFromJSON = bondStatusFromJSON;\nfunction bondStatusToJSON(object) {\n switch (object) {\n case BondStatus.BOND_STATUS_UNSPECIFIED:\n return \"BOND_STATUS_UNSPECIFIED\";\n case BondStatus.BOND_STATUS_UNBONDED:\n return \"BOND_STATUS_UNBONDED\";\n case BondStatus.BOND_STATUS_UNBONDING:\n return \"BOND_STATUS_UNBONDING\";\n case BondStatus.BOND_STATUS_BONDED:\n return \"BOND_STATUS_BONDED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.bondStatusToJSON = bondStatusToJSON;\nconst baseHistoricalInfo = {};\nexports.HistoricalInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.valset) {\n exports.Validator.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHistoricalInfo);\n message.valset = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.valset.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseHistoricalInfo);\n message.header =\n object.header !== undefined && object.header !== null ? types_1.Header.fromJSON(object.header) : undefined;\n message.valset = ((_a = object.valset) !== null && _a !== void 0 ? _a : []).map((e) => exports.Validator.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n if (message.valset) {\n obj.valset = message.valset.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.valset = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseHistoricalInfo);\n message.header =\n object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined;\n message.valset = ((_a = object.valset) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Validator.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCommissionRates = { rate: \"\", maxRate: \"\", maxChangeRate: \"\" };\nexports.CommissionRates = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rate !== \"\") {\n writer.uint32(10).string(message.rate);\n }\n if (message.maxRate !== \"\") {\n writer.uint32(18).string(message.maxRate);\n }\n if (message.maxChangeRate !== \"\") {\n writer.uint32(26).string(message.maxChangeRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommissionRates);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rate = reader.string();\n break;\n case 2:\n message.maxRate = reader.string();\n break;\n case 3:\n message.maxChangeRate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommissionRates);\n message.rate = object.rate !== undefined && object.rate !== null ? String(object.rate) : \"\";\n message.maxRate = object.maxRate !== undefined && object.maxRate !== null ? String(object.maxRate) : \"\";\n message.maxChangeRate =\n object.maxChangeRate !== undefined && object.maxChangeRate !== null ? String(object.maxChangeRate) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rate !== undefined && (obj.rate = message.rate);\n message.maxRate !== undefined && (obj.maxRate = message.maxRate);\n message.maxChangeRate !== undefined && (obj.maxChangeRate = message.maxChangeRate);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseCommissionRates);\n message.rate = (_a = object.rate) !== null && _a !== void 0 ? _a : \"\";\n message.maxRate = (_b = object.maxRate) !== null && _b !== void 0 ? _b : \"\";\n message.maxChangeRate = (_c = object.maxChangeRate) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseCommission = {};\nexports.Commission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.commissionRates !== undefined) {\n exports.CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim();\n }\n if (message.updateTime !== undefined) {\n timestamp_1.Timestamp.encode(message.updateTime, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommission);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commissionRates = exports.CommissionRates.decode(reader, reader.uint32());\n break;\n case 2:\n message.updateTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommission);\n message.commissionRates =\n object.commissionRates !== undefined && object.commissionRates !== null\n ? exports.CommissionRates.fromJSON(object.commissionRates)\n : undefined;\n message.updateTime =\n object.updateTime !== undefined && object.updateTime !== null\n ? fromJsonTimestamp(object.updateTime)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.commissionRates !== undefined &&\n (obj.commissionRates = message.commissionRates\n ? exports.CommissionRates.toJSON(message.commissionRates)\n : undefined);\n message.updateTime !== undefined && (obj.updateTime = fromTimestamp(message.updateTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommission);\n message.commissionRates =\n object.commissionRates !== undefined && object.commissionRates !== null\n ? exports.CommissionRates.fromPartial(object.commissionRates)\n : undefined;\n message.updateTime =\n object.updateTime !== undefined && object.updateTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.updateTime)\n : undefined;\n return message;\n },\n};\nconst baseDescription = { moniker: \"\", identity: \"\", website: \"\", securityContact: \"\", details: \"\" };\nexports.Description = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.moniker !== \"\") {\n writer.uint32(10).string(message.moniker);\n }\n if (message.identity !== \"\") {\n writer.uint32(18).string(message.identity);\n }\n if (message.website !== \"\") {\n writer.uint32(26).string(message.website);\n }\n if (message.securityContact !== \"\") {\n writer.uint32(34).string(message.securityContact);\n }\n if (message.details !== \"\") {\n writer.uint32(42).string(message.details);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDescription);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.moniker = reader.string();\n break;\n case 2:\n message.identity = reader.string();\n break;\n case 3:\n message.website = reader.string();\n break;\n case 4:\n message.securityContact = reader.string();\n break;\n case 5:\n message.details = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDescription);\n message.moniker = object.moniker !== undefined && object.moniker !== null ? String(object.moniker) : \"\";\n message.identity =\n object.identity !== undefined && object.identity !== null ? String(object.identity) : \"\";\n message.website = object.website !== undefined && object.website !== null ? String(object.website) : \"\";\n message.securityContact =\n object.securityContact !== undefined && object.securityContact !== null\n ? String(object.securityContact)\n : \"\";\n message.details = object.details !== undefined && object.details !== null ? String(object.details) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.moniker !== undefined && (obj.moniker = message.moniker);\n message.identity !== undefined && (obj.identity = message.identity);\n message.website !== undefined && (obj.website = message.website);\n message.securityContact !== undefined && (obj.securityContact = message.securityContact);\n message.details !== undefined && (obj.details = message.details);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseDescription);\n message.moniker = (_a = object.moniker) !== null && _a !== void 0 ? _a : \"\";\n message.identity = (_b = object.identity) !== null && _b !== void 0 ? _b : \"\";\n message.website = (_c = object.website) !== null && _c !== void 0 ? _c : \"\";\n message.securityContact = (_d = object.securityContact) !== null && _d !== void 0 ? _d : \"\";\n message.details = (_e = object.details) !== null && _e !== void 0 ? _e : \"\";\n return message;\n },\n};\nconst baseValidator = {\n operatorAddress: \"\",\n jailed: false,\n status: 0,\n tokens: \"\",\n delegatorShares: \"\",\n unbondingHeight: long_1.default.ZERO,\n minSelfDelegation: \"\",\n};\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.operatorAddress !== \"\") {\n writer.uint32(10).string(message.operatorAddress);\n }\n if (message.consensusPubkey !== undefined) {\n any_1.Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim();\n }\n if (message.jailed === true) {\n writer.uint32(24).bool(message.jailed);\n }\n if (message.status !== 0) {\n writer.uint32(32).int32(message.status);\n }\n if (message.tokens !== \"\") {\n writer.uint32(42).string(message.tokens);\n }\n if (message.delegatorShares !== \"\") {\n writer.uint32(50).string(message.delegatorShares);\n }\n if (message.description !== undefined) {\n exports.Description.encode(message.description, writer.uint32(58).fork()).ldelim();\n }\n if (!message.unbondingHeight.isZero()) {\n writer.uint32(64).int64(message.unbondingHeight);\n }\n if (message.unbondingTime !== undefined) {\n timestamp_1.Timestamp.encode(message.unbondingTime, writer.uint32(74).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n exports.Commission.encode(message.commission, writer.uint32(82).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(90).string(message.minSelfDelegation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operatorAddress = reader.string();\n break;\n case 2:\n message.consensusPubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.jailed = reader.bool();\n break;\n case 4:\n message.status = reader.int32();\n break;\n case 5:\n message.tokens = reader.string();\n break;\n case 6:\n message.delegatorShares = reader.string();\n break;\n case 7:\n message.description = exports.Description.decode(reader, reader.uint32());\n break;\n case 8:\n message.unbondingHeight = reader.int64();\n break;\n case 9:\n message.unbondingTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 10:\n message.commission = exports.Commission.decode(reader, reader.uint32());\n break;\n case 11:\n message.minSelfDelegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.operatorAddress =\n object.operatorAddress !== undefined && object.operatorAddress !== null\n ? String(object.operatorAddress)\n : \"\";\n message.consensusPubkey =\n object.consensusPubkey !== undefined && object.consensusPubkey !== null\n ? any_1.Any.fromJSON(object.consensusPubkey)\n : undefined;\n message.jailed = object.jailed !== undefined && object.jailed !== null ? Boolean(object.jailed) : false;\n message.status =\n object.status !== undefined && object.status !== null ? bondStatusFromJSON(object.status) : 0;\n message.tokens = object.tokens !== undefined && object.tokens !== null ? String(object.tokens) : \"\";\n message.delegatorShares =\n object.delegatorShares !== undefined && object.delegatorShares !== null\n ? String(object.delegatorShares)\n : \"\";\n message.description =\n object.description !== undefined && object.description !== null\n ? exports.Description.fromJSON(object.description)\n : undefined;\n message.unbondingHeight =\n object.unbondingHeight !== undefined && object.unbondingHeight !== null\n ? long_1.default.fromString(object.unbondingHeight)\n : long_1.default.ZERO;\n message.unbondingTime =\n object.unbondingTime !== undefined && object.unbondingTime !== null\n ? fromJsonTimestamp(object.unbondingTime)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? exports.Commission.fromJSON(object.commission)\n : undefined;\n message.minSelfDelegation =\n object.minSelfDelegation !== undefined && object.minSelfDelegation !== null\n ? String(object.minSelfDelegation)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress);\n message.consensusPubkey !== undefined &&\n (obj.consensusPubkey = message.consensusPubkey ? any_1.Any.toJSON(message.consensusPubkey) : undefined);\n message.jailed !== undefined && (obj.jailed = message.jailed);\n message.status !== undefined && (obj.status = bondStatusToJSON(message.status));\n message.tokens !== undefined && (obj.tokens = message.tokens);\n message.delegatorShares !== undefined && (obj.delegatorShares = message.delegatorShares);\n message.description !== undefined &&\n (obj.description = message.description ? exports.Description.toJSON(message.description) : undefined);\n message.unbondingHeight !== undefined &&\n (obj.unbondingHeight = (message.unbondingHeight || long_1.default.ZERO).toString());\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = fromTimestamp(message.unbondingTime).toISOString());\n message.commission !== undefined &&\n (obj.commission = message.commission ? exports.Commission.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseValidator);\n message.operatorAddress = (_a = object.operatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.consensusPubkey =\n object.consensusPubkey !== undefined && object.consensusPubkey !== null\n ? any_1.Any.fromPartial(object.consensusPubkey)\n : undefined;\n message.jailed = (_b = object.jailed) !== null && _b !== void 0 ? _b : false;\n message.status = (_c = object.status) !== null && _c !== void 0 ? _c : 0;\n message.tokens = (_d = object.tokens) !== null && _d !== void 0 ? _d : \"\";\n message.delegatorShares = (_e = object.delegatorShares) !== null && _e !== void 0 ? _e : \"\";\n message.description =\n object.description !== undefined && object.description !== null\n ? exports.Description.fromPartial(object.description)\n : undefined;\n message.unbondingHeight =\n object.unbondingHeight !== undefined && object.unbondingHeight !== null\n ? long_1.default.fromValue(object.unbondingHeight)\n : long_1.default.ZERO;\n message.unbondingTime =\n object.unbondingTime !== undefined && object.unbondingTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.unbondingTime)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? exports.Commission.fromPartial(object.commission)\n : undefined;\n message.minSelfDelegation = (_f = object.minSelfDelegation) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseValAddresses = { addresses: \"\" };\nexports.ValAddresses = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.addresses) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValAddresses);\n message.addresses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addresses.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValAddresses);\n message.addresses = ((_a = object.addresses) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.addresses) {\n obj.addresses = message.addresses.map((e) => e);\n }\n else {\n obj.addresses = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValAddresses);\n message.addresses = ((_a = object.addresses) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseDVPair = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.DVPair = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVPair);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDVPair);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDVPair);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseDVPairs = {};\nexports.DVPairs = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pairs) {\n exports.DVPair.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVPairs);\n message.pairs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pairs.push(exports.DVPair.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDVPairs);\n message.pairs = ((_a = object.pairs) !== null && _a !== void 0 ? _a : []).map((e) => exports.DVPair.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pairs) {\n obj.pairs = message.pairs.map((e) => (e ? exports.DVPair.toJSON(e) : undefined));\n }\n else {\n obj.pairs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDVPairs);\n message.pairs = ((_a = object.pairs) === null || _a === void 0 ? void 0 : _a.map((e) => exports.DVPair.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDVVTriplet = { delegatorAddress: \"\", validatorSrcAddress: \"\", validatorDstAddress: \"\" };\nexports.DVVTriplet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVVTriplet);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDVVTriplet);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorSrcAddress =\n object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null\n ? String(object.validatorSrcAddress)\n : \"\";\n message.validatorDstAddress =\n object.validatorDstAddress !== undefined && object.validatorDstAddress !== null\n ? String(object.validatorDstAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseDVVTriplet);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : \"\";\n message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseDVVTriplets = {};\nexports.DVVTriplets = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.triplets) {\n exports.DVVTriplet.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.triplets.push(exports.DVVTriplet.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = ((_a = object.triplets) !== null && _a !== void 0 ? _a : []).map((e) => exports.DVVTriplet.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.triplets) {\n obj.triplets = message.triplets.map((e) => (e ? exports.DVVTriplet.toJSON(e) : undefined));\n }\n else {\n obj.triplets = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = ((_a = object.triplets) === null || _a === void 0 ? void 0 : _a.map((e) => exports.DVVTriplet.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDelegation = { delegatorAddress: \"\", validatorAddress: \"\", shares: \"\" };\nexports.Delegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.shares !== \"\") {\n writer.uint32(26).string(message.shares);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegation);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.shares = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegation);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.shares = object.shares !== undefined && object.shares !== null ? String(object.shares) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.shares !== undefined && (obj.shares = message.shares);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseDelegation);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.shares = (_c = object.shares) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseUnbondingDelegation = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.UnbondingDelegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n for (const v of message.entries) {\n exports.UnbondingDelegationEntry.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUnbondingDelegation);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.entries.push(exports.UnbondingDelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseUnbondingDelegation);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.UnbondingDelegationEntry.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.UnbondingDelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseUnbondingDelegation);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.entries = ((_c = object.entries) === null || _c === void 0 ? void 0 : _c.map((e) => exports.UnbondingDelegationEntry.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseUnbondingDelegationEntry = { creationHeight: long_1.default.ZERO, initialBalance: \"\", balance: \"\" };\nexports.UnbondingDelegationEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.creationHeight.isZero()) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n message.creationHeight =\n object.creationHeight !== undefined && object.creationHeight !== null\n ? long_1.default.fromString(object.creationHeight)\n : long_1.default.ZERO;\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? fromJsonTimestamp(object.completionTime)\n : undefined;\n message.initialBalance =\n object.initialBalance !== undefined && object.initialBalance !== null\n ? String(object.initialBalance)\n : \"\";\n message.balance = object.balance !== undefined && object.balance !== null ? String(object.balance) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || long_1.default.ZERO).toString());\n message.completionTime !== undefined &&\n (obj.completionTime = fromTimestamp(message.completionTime).toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n message.creationHeight =\n object.creationHeight !== undefined && object.creationHeight !== null\n ? long_1.default.fromValue(object.creationHeight)\n : long_1.default.ZERO;\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.completionTime)\n : undefined;\n message.initialBalance = (_a = object.initialBalance) !== null && _a !== void 0 ? _a : \"\";\n message.balance = (_b = object.balance) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseRedelegationEntry = { creationHeight: long_1.default.ZERO, initialBalance: \"\", sharesDst: \"\" };\nexports.RedelegationEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.creationHeight.isZero()) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.sharesDst !== \"\") {\n writer.uint32(34).string(message.sharesDst);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.sharesDst = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRedelegationEntry);\n message.creationHeight =\n object.creationHeight !== undefined && object.creationHeight !== null\n ? long_1.default.fromString(object.creationHeight)\n : long_1.default.ZERO;\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? fromJsonTimestamp(object.completionTime)\n : undefined;\n message.initialBalance =\n object.initialBalance !== undefined && object.initialBalance !== null\n ? String(object.initialBalance)\n : \"\";\n message.sharesDst =\n object.sharesDst !== undefined && object.sharesDst !== null ? String(object.sharesDst) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || long_1.default.ZERO).toString());\n message.completionTime !== undefined &&\n (obj.completionTime = fromTimestamp(message.completionTime).toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.sharesDst !== undefined && (obj.sharesDst = message.sharesDst);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRedelegationEntry);\n message.creationHeight =\n object.creationHeight !== undefined && object.creationHeight !== null\n ? long_1.default.fromValue(object.creationHeight)\n : long_1.default.ZERO;\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.completionTime)\n : undefined;\n message.initialBalance = (_a = object.initialBalance) !== null && _a !== void 0 ? _a : \"\";\n message.sharesDst = (_b = object.sharesDst) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseRedelegation = { delegatorAddress: \"\", validatorSrcAddress: \"\", validatorDstAddress: \"\" };\nexports.Redelegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n for (const v of message.entries) {\n exports.RedelegationEntry.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegation);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.entries.push(exports.RedelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseRedelegation);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorSrcAddress =\n object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null\n ? String(object.validatorSrcAddress)\n : \"\";\n message.validatorDstAddress =\n object.validatorDstAddress !== undefined && object.validatorDstAddress !== null\n ? String(object.validatorDstAddress)\n : \"\";\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.RedelegationEntry.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseRedelegation);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : \"\";\n message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : \"\";\n message.entries = ((_d = object.entries) === null || _d === void 0 ? void 0 : _d.map((e) => exports.RedelegationEntry.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseParams = { maxValidators: 0, maxEntries: 0, historicalEntries: 0, bondDenom: \"\" };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.unbondingTime !== undefined) {\n duration_1.Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxValidators !== 0) {\n writer.uint32(16).uint32(message.maxValidators);\n }\n if (message.maxEntries !== 0) {\n writer.uint32(24).uint32(message.maxEntries);\n }\n if (message.historicalEntries !== 0) {\n writer.uint32(32).uint32(message.historicalEntries);\n }\n if (message.bondDenom !== \"\") {\n writer.uint32(42).string(message.bondDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingTime = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 2:\n message.maxValidators = reader.uint32();\n break;\n case 3:\n message.maxEntries = reader.uint32();\n break;\n case 4:\n message.historicalEntries = reader.uint32();\n break;\n case 5:\n message.bondDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.unbondingTime =\n object.unbondingTime !== undefined && object.unbondingTime !== null\n ? duration_1.Duration.fromJSON(object.unbondingTime)\n : undefined;\n message.maxValidators =\n object.maxValidators !== undefined && object.maxValidators !== null ? Number(object.maxValidators) : 0;\n message.maxEntries =\n object.maxEntries !== undefined && object.maxEntries !== null ? Number(object.maxEntries) : 0;\n message.historicalEntries =\n object.historicalEntries !== undefined && object.historicalEntries !== null\n ? Number(object.historicalEntries)\n : 0;\n message.bondDenom =\n object.bondDenom !== undefined && object.bondDenom !== null ? String(object.bondDenom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = message.unbondingTime ? duration_1.Duration.toJSON(message.unbondingTime) : undefined);\n message.maxValidators !== undefined && (obj.maxValidators = message.maxValidators);\n message.maxEntries !== undefined && (obj.maxEntries = message.maxEntries);\n message.historicalEntries !== undefined && (obj.historicalEntries = message.historicalEntries);\n message.bondDenom !== undefined && (obj.bondDenom = message.bondDenom);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseParams);\n message.unbondingTime =\n object.unbondingTime !== undefined && object.unbondingTime !== null\n ? duration_1.Duration.fromPartial(object.unbondingTime)\n : undefined;\n message.maxValidators = (_a = object.maxValidators) !== null && _a !== void 0 ? _a : 0;\n message.maxEntries = (_b = object.maxEntries) !== null && _b !== void 0 ? _b : 0;\n message.historicalEntries = (_c = object.historicalEntries) !== null && _c !== void 0 ? _c : 0;\n message.bondDenom = (_d = object.bondDenom) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseDelegationResponse = {};\nexports.DelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegation !== undefined) {\n exports.Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegation = exports.Delegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegationResponse);\n message.delegation =\n object.delegation !== undefined && object.delegation !== null\n ? exports.Delegation.fromJSON(object.delegation)\n : undefined;\n message.balance =\n object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromJSON(object.balance) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegation !== undefined &&\n (obj.delegation = message.delegation ? exports.Delegation.toJSON(message.delegation) : undefined);\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelegationResponse);\n message.delegation =\n object.delegation !== undefined && object.delegation !== null\n ? exports.Delegation.fromPartial(object.delegation)\n : undefined;\n message.balance =\n object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromPartial(object.balance) : undefined;\n return message;\n },\n};\nconst baseRedelegationEntryResponse = { balance: \"\" };\nexports.RedelegationEntryResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.redelegationEntry !== undefined) {\n exports.RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationEntryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationEntry = exports.RedelegationEntry.decode(reader, reader.uint32());\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRedelegationEntryResponse);\n message.redelegationEntry =\n object.redelegationEntry !== undefined && object.redelegationEntry !== null\n ? exports.RedelegationEntry.fromJSON(object.redelegationEntry)\n : undefined;\n message.balance = object.balance !== undefined && object.balance !== null ? String(object.balance) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.redelegationEntry !== undefined &&\n (obj.redelegationEntry = message.redelegationEntry\n ? exports.RedelegationEntry.toJSON(message.redelegationEntry)\n : undefined);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRedelegationEntryResponse);\n message.redelegationEntry =\n object.redelegationEntry !== undefined && object.redelegationEntry !== null\n ? exports.RedelegationEntry.fromPartial(object.redelegationEntry)\n : undefined;\n message.balance = (_a = object.balance) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseRedelegationResponse = {};\nexports.RedelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.redelegation !== undefined) {\n exports.Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.entries) {\n exports.RedelegationEntryResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationResponse);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegation = exports.Redelegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.entries.push(exports.RedelegationEntryResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseRedelegationResponse);\n message.redelegation =\n object.redelegation !== undefined && object.redelegation !== null\n ? exports.Redelegation.fromJSON(object.redelegation)\n : undefined;\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.RedelegationEntryResponse.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.redelegation !== undefined &&\n (obj.redelegation = message.redelegation ? exports.Redelegation.toJSON(message.redelegation) : undefined);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntryResponse.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRedelegationResponse);\n message.redelegation =\n object.redelegation !== undefined && object.redelegation !== null\n ? exports.Redelegation.fromPartial(object.redelegation)\n : undefined;\n message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map((e) => exports.RedelegationEntryResponse.fromPartial(e))) || [];\n return message;\n },\n};\nconst basePool = { notBondedTokens: \"\", bondedTokens: \"\" };\nexports.Pool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.notBondedTokens !== \"\") {\n writer.uint32(10).string(message.notBondedTokens);\n }\n if (message.bondedTokens !== \"\") {\n writer.uint32(18).string(message.bondedTokens);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePool);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.notBondedTokens = reader.string();\n break;\n case 2:\n message.bondedTokens = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePool);\n message.notBondedTokens =\n object.notBondedTokens !== undefined && object.notBondedTokens !== null\n ? String(object.notBondedTokens)\n : \"\";\n message.bondedTokens =\n object.bondedTokens !== undefined && object.bondedTokens !== null ? String(object.bondedTokens) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.notBondedTokens !== undefined && (obj.notBondedTokens = message.notBondedTokens);\n message.bondedTokens !== undefined && (obj.bondedTokens = message.bondedTokens);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, basePool);\n message.notBondedTokens = (_a = object.notBondedTokens) !== null && _a !== void 0 ? _a : \"\";\n message.bondedTokens = (_b = object.bondedTokens) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=staking.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgUndelegateResponse = exports.MsgUndelegate = exports.MsgBeginRedelegateResponse = exports.MsgBeginRedelegate = exports.MsgDelegateResponse = exports.MsgDelegate = exports.MsgEditValidatorResponse = exports.MsgEditValidator = exports.MsgCreateValidatorResponse = exports.MsgCreateValidator = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst staking_1 = require(\"../../../cosmos/staking/v1beta1/staking\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nconst baseMsgCreateValidator = { minSelfDelegation: \"\", delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgCreateValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n staking_1.CommissionRates.encode(message.commission, writer.uint32(18).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(26).string(message.minSelfDelegation);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(34).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(42).string(message.validatorAddress);\n }\n if (message.pubkey !== undefined) {\n any_1.Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim();\n }\n if (message.value !== undefined) {\n coin_1.Coin.encode(message.value, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.commission = staking_1.CommissionRates.decode(reader, reader.uint32());\n break;\n case 3:\n message.minSelfDelegation = reader.string();\n break;\n case 4:\n message.delegatorAddress = reader.string();\n break;\n case 5:\n message.validatorAddress = reader.string();\n break;\n case 6:\n message.pubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.value = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgCreateValidator);\n message.description =\n object.description !== undefined && object.description !== null\n ? staking_1.Description.fromJSON(object.description)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? staking_1.CommissionRates.fromJSON(object.commission)\n : undefined;\n message.minSelfDelegation =\n object.minSelfDelegation !== undefined && object.minSelfDelegation !== null\n ? String(object.minSelfDelegation)\n : \"\";\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.pubkey =\n object.pubkey !== undefined && object.pubkey !== null ? any_1.Any.fromJSON(object.pubkey) : undefined;\n message.value =\n object.value !== undefined && object.value !== null ? coin_1.Coin.fromJSON(object.value) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.commission !== undefined &&\n (obj.commission = message.commission ? staking_1.CommissionRates.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.pubkey !== undefined && (obj.pubkey = message.pubkey ? any_1.Any.toJSON(message.pubkey) : undefined);\n message.value !== undefined && (obj.value = message.value ? coin_1.Coin.toJSON(message.value) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgCreateValidator);\n message.description =\n object.description !== undefined && object.description !== null\n ? staking_1.Description.fromPartial(object.description)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? staking_1.CommissionRates.fromPartial(object.commission)\n : undefined;\n message.minSelfDelegation = (_a = object.minSelfDelegation) !== null && _a !== void 0 ? _a : \"\";\n message.delegatorAddress = (_b = object.delegatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.validatorAddress = (_c = object.validatorAddress) !== null && _c !== void 0 ? _c : \"\";\n message.pubkey =\n object.pubkey !== undefined && object.pubkey !== null ? any_1.Any.fromPartial(object.pubkey) : undefined;\n message.value =\n object.value !== undefined && object.value !== null ? coin_1.Coin.fromPartial(object.value) : undefined;\n return message;\n },\n};\nconst baseMsgCreateValidatorResponse = {};\nexports.MsgCreateValidatorResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n return message;\n },\n};\nconst baseMsgEditValidator = { validatorAddress: \"\", commissionRate: \"\", minSelfDelegation: \"\" };\nexports.MsgEditValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.commissionRate !== \"\") {\n writer.uint32(26).string(message.commissionRate);\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(34).string(message.minSelfDelegation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgEditValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.commissionRate = reader.string();\n break;\n case 4:\n message.minSelfDelegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgEditValidator);\n message.description =\n object.description !== undefined && object.description !== null\n ? staking_1.Description.fromJSON(object.description)\n : undefined;\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.commissionRate =\n object.commissionRate !== undefined && object.commissionRate !== null\n ? String(object.commissionRate)\n : \"\";\n message.minSelfDelegation =\n object.minSelfDelegation !== undefined && object.minSelfDelegation !== null\n ? String(object.minSelfDelegation)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.commissionRate !== undefined && (obj.commissionRate = message.commissionRate);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgEditValidator);\n message.description =\n object.description !== undefined && object.description !== null\n ? staking_1.Description.fromPartial(object.description)\n : undefined;\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.commissionRate = (_b = object.commissionRate) !== null && _b !== void 0 ? _b : \"\";\n message.minSelfDelegation = (_c = object.minSelfDelegation) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgEditValidatorResponse = {};\nexports.MsgEditValidatorResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n return message;\n },\n};\nconst baseMsgDelegate = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgDelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgDelegate);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromJSON(object.amount) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgDelegate);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined;\n return message;\n },\n};\nconst baseMsgDelegateResponse = {};\nexports.MsgDelegateResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgDelegateResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgDelegateResponse);\n return message;\n },\n};\nconst baseMsgBeginRedelegate = {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n};\nexports.MsgBeginRedelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgBeginRedelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgBeginRedelegate);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorSrcAddress =\n object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null\n ? String(object.validatorSrcAddress)\n : \"\";\n message.validatorDstAddress =\n object.validatorDstAddress !== undefined && object.validatorDstAddress !== null\n ? String(object.validatorDstAddress)\n : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromJSON(object.amount) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgBeginRedelegate);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : \"\";\n message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined;\n return message;\n },\n};\nconst baseMsgBeginRedelegateResponse = {};\nexports.MsgBeginRedelegateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? fromJsonTimestamp(object.completionTime)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined &&\n (obj.completionTime = fromTimestamp(message.completionTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.completionTime)\n : undefined;\n return message;\n },\n};\nconst baseMsgUndelegate = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgUndelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUndelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUndelegate);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromJSON(object.amount) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgUndelegate);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined;\n return message;\n },\n};\nconst baseMsgUndelegateResponse = {};\nexports.MsgUndelegateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUndelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUndelegateResponse);\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? fromJsonTimestamp(object.completionTime)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined &&\n (obj.completionTime = fromTimestamp(message.completionTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUndelegateResponse);\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.completionTime)\n : undefined;\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateValidator = this.CreateValidator.bind(this);\n this.EditValidator = this.EditValidator.bind(this);\n this.Delegate = this.Delegate.bind(this);\n this.BeginRedelegate = this.BeginRedelegate.bind(this);\n this.Undelegate = this.Undelegate.bind(this);\n }\n CreateValidator(request) {\n const data = exports.MsgCreateValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"CreateValidator\", data);\n return promise.then((data) => exports.MsgCreateValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n EditValidator(request) {\n const data = exports.MsgEditValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"EditValidator\", data);\n return promise.then((data) => exports.MsgEditValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n Delegate(request) {\n const data = exports.MsgDelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Delegate\", data);\n return promise.then((data) => exports.MsgDelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n BeginRedelegate(request) {\n const data = exports.MsgBeginRedelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"BeginRedelegate\", data);\n return promise.then((data) => exports.MsgBeginRedelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n Undelegate(request) {\n const data = exports.MsgUndelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Undelegate\", data);\n return promise.then((data) => exports.MsgUndelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureDescriptor_Data_Multi = exports.SignatureDescriptor_Data_Single = exports.SignatureDescriptor_Data = exports.SignatureDescriptor = exports.SignatureDescriptors = exports.signModeToJSON = exports.signModeFromJSON = exports.SignMode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst multisig_1 = require(\"../../../../cosmos/crypto/multisig/v1beta1/multisig\");\nexports.protobufPackage = \"cosmos.tx.signing.v1beta1\";\n/** SignMode represents a signing mode with its own security guarantees. */\nvar SignMode;\n(function (SignMode) {\n /**\n * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be\n * rejected\n */\n SignMode[SignMode[\"SIGN_MODE_UNSPECIFIED\"] = 0] = \"SIGN_MODE_UNSPECIFIED\";\n /**\n * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is\n * verified with raw bytes from Tx\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT\"] = 1] = \"SIGN_MODE_DIRECT\";\n /**\n * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some\n * human-readable textual representation on top of the binary representation\n * from SIGN_MODE_DIRECT\n */\n SignMode[SignMode[\"SIGN_MODE_TEXTUAL\"] = 2] = \"SIGN_MODE_TEXTUAL\";\n /**\n * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses\n * Amino JSON and will be removed in the future\n */\n SignMode[SignMode[\"SIGN_MODE_LEGACY_AMINO_JSON\"] = 127] = \"SIGN_MODE_LEGACY_AMINO_JSON\";\n SignMode[SignMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignMode = exports.SignMode || (exports.SignMode = {}));\nfunction signModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGN_MODE_UNSPECIFIED\":\n return SignMode.SIGN_MODE_UNSPECIFIED;\n case 1:\n case \"SIGN_MODE_DIRECT\":\n return SignMode.SIGN_MODE_DIRECT;\n case 2:\n case \"SIGN_MODE_TEXTUAL\":\n return SignMode.SIGN_MODE_TEXTUAL;\n case 127:\n case \"SIGN_MODE_LEGACY_AMINO_JSON\":\n return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignMode.UNRECOGNIZED;\n }\n}\nexports.signModeFromJSON = signModeFromJSON;\nfunction signModeToJSON(object) {\n switch (object) {\n case SignMode.SIGN_MODE_UNSPECIFIED:\n return \"SIGN_MODE_UNSPECIFIED\";\n case SignMode.SIGN_MODE_DIRECT:\n return \"SIGN_MODE_DIRECT\";\n case SignMode.SIGN_MODE_TEXTUAL:\n return \"SIGN_MODE_TEXTUAL\";\n case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:\n return \"SIGN_MODE_LEGACY_AMINO_JSON\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.signModeToJSON = signModeToJSON;\nconst baseSignatureDescriptors = {};\nexports.SignatureDescriptors = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signatures) {\n exports.SignatureDescriptor.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(exports.SignatureDescriptor.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => exports.SignatureDescriptor.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = ((_a = object.signatures) === null || _a === void 0 ? void 0 : _a.map((e) => exports.SignatureDescriptor.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseSignatureDescriptor = { sequence: long_1.default.UZERO };\nexports.SignatureDescriptor = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n exports.SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = exports.SignatureDescriptor_Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor);\n message.publicKey =\n object.publicKey !== undefined && object.publicKey !== null\n ? any_1.Any.fromJSON(object.publicKey)\n : undefined;\n message.data =\n object.data !== undefined && object.data !== null\n ? exports.SignatureDescriptor_Data.fromJSON(object.data)\n : undefined;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.data !== undefined &&\n (obj.data = message.data ? exports.SignatureDescriptor_Data.toJSON(message.data) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor);\n message.publicKey =\n object.publicKey !== undefined && object.publicKey !== null\n ? any_1.Any.fromPartial(object.publicKey)\n : undefined;\n message.data =\n object.data !== undefined && object.data !== null\n ? exports.SignatureDescriptor_Data.fromPartial(object.data)\n : undefined;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseSignatureDescriptor_Data = {};\nexports.SignatureDescriptor_Data = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.single !== undefined) {\n exports.SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.SignatureDescriptor_Data_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.SignatureDescriptor_Data_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n message.single =\n object.single !== undefined && object.single !== null\n ? exports.SignatureDescriptor_Data_Single.fromJSON(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null\n ? exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.SignatureDescriptor_Data_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.SignatureDescriptor_Data_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n message.single =\n object.single !== undefined && object.single !== null\n ? exports.SignatureDescriptor_Data_Single.fromPartial(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null\n ? exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi)\n : undefined;\n return message;\n },\n};\nconst baseSignatureDescriptor_Data_Single = { mode: 0 };\nexports.SignatureDescriptor_Data_Single = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n if (message.signature.length !== 0) {\n writer.uint32(18).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n case 2:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.mode = object.mode !== undefined && object.mode !== null ? signModeFromJSON(object.mode) : 0;\n message.signature =\n object.signature !== undefined && object.signature !== null\n ? bytesFromBase64(object.signature)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.mode = (_a = object.mode) !== null && _a !== void 0 ? _a : 0;\n message.signature = (_b = object.signature) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseSignatureDescriptor_Data_Multi = {};\nexports.SignatureDescriptor_Data_Multi = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.SignatureDescriptor_Data.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.signatures.push(exports.SignatureDescriptor_Data.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? multisig_1.CompactBitArray.fromJSON(object.bitarray)\n : undefined;\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => exports.SignatureDescriptor_Data.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor_Data.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? multisig_1.CompactBitArray.fromPartial(object.bitarray)\n : undefined;\n message.signatures = ((_a = object.signatures) === null || _a === void 0 ? void 0 : _a.map((e) => exports.SignatureDescriptor_Data.fromPartial(e))) || [];\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=signing.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceClientImpl = exports.GetTxResponse = exports.GetTxRequest = exports.SimulateResponse = exports.SimulateRequest = exports.BroadcastTxResponse = exports.BroadcastTxRequest = exports.GetTxsEventResponse = exports.GetTxsEventRequest = exports.broadcastModeToJSON = exports.broadcastModeFromJSON = exports.BroadcastMode = exports.orderByToJSON = exports.orderByFromJSON = exports.OrderBy = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst abci_1 = require(\"../../../cosmos/base/abci/v1beta1/abci\");\nconst tx_1 = require(\"../../../cosmos/tx/v1beta1/tx\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\n/** OrderBy defines the sorting order */\nvar OrderBy;\n(function (OrderBy) {\n /** ORDER_BY_UNSPECIFIED - ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. */\n OrderBy[OrderBy[\"ORDER_BY_UNSPECIFIED\"] = 0] = \"ORDER_BY_UNSPECIFIED\";\n /** ORDER_BY_ASC - ORDER_BY_ASC defines ascending order */\n OrderBy[OrderBy[\"ORDER_BY_ASC\"] = 1] = \"ORDER_BY_ASC\";\n /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */\n OrderBy[OrderBy[\"ORDER_BY_DESC\"] = 2] = \"ORDER_BY_DESC\";\n OrderBy[OrderBy[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(OrderBy = exports.OrderBy || (exports.OrderBy = {}));\nfunction orderByFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_BY_UNSPECIFIED\":\n return OrderBy.ORDER_BY_UNSPECIFIED;\n case 1:\n case \"ORDER_BY_ASC\":\n return OrderBy.ORDER_BY_ASC;\n case 2:\n case \"ORDER_BY_DESC\":\n return OrderBy.ORDER_BY_DESC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return OrderBy.UNRECOGNIZED;\n }\n}\nexports.orderByFromJSON = orderByFromJSON;\nfunction orderByToJSON(object) {\n switch (object) {\n case OrderBy.ORDER_BY_UNSPECIFIED:\n return \"ORDER_BY_UNSPECIFIED\";\n case OrderBy.ORDER_BY_ASC:\n return \"ORDER_BY_ASC\";\n case OrderBy.ORDER_BY_DESC:\n return \"ORDER_BY_DESC\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.orderByToJSON = orderByToJSON;\n/** BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. */\nvar BroadcastMode;\n(function (BroadcastMode) {\n /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_UNSPECIFIED\"] = 0] = \"BROADCAST_MODE_UNSPECIFIED\";\n /**\n * BROADCAST_MODE_BLOCK - BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for\n * the tx to be committed in a block.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_BLOCK\"] = 1] = \"BROADCAST_MODE_BLOCK\";\n /**\n * BROADCAST_MODE_SYNC - BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for\n * a CheckTx execution response only.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_SYNC\"] = 2] = \"BROADCAST_MODE_SYNC\";\n /**\n * BROADCAST_MODE_ASYNC - BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns\n * immediately.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_ASYNC\"] = 3] = \"BROADCAST_MODE_ASYNC\";\n BroadcastMode[BroadcastMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BroadcastMode = exports.BroadcastMode || (exports.BroadcastMode = {}));\nfunction broadcastModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"BROADCAST_MODE_UNSPECIFIED\":\n return BroadcastMode.BROADCAST_MODE_UNSPECIFIED;\n case 1:\n case \"BROADCAST_MODE_BLOCK\":\n return BroadcastMode.BROADCAST_MODE_BLOCK;\n case 2:\n case \"BROADCAST_MODE_SYNC\":\n return BroadcastMode.BROADCAST_MODE_SYNC;\n case 3:\n case \"BROADCAST_MODE_ASYNC\":\n return BroadcastMode.BROADCAST_MODE_ASYNC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BroadcastMode.UNRECOGNIZED;\n }\n}\nexports.broadcastModeFromJSON = broadcastModeFromJSON;\nfunction broadcastModeToJSON(object) {\n switch (object) {\n case BroadcastMode.BROADCAST_MODE_UNSPECIFIED:\n return \"BROADCAST_MODE_UNSPECIFIED\";\n case BroadcastMode.BROADCAST_MODE_BLOCK:\n return \"BROADCAST_MODE_BLOCK\";\n case BroadcastMode.BROADCAST_MODE_SYNC:\n return \"BROADCAST_MODE_SYNC\";\n case BroadcastMode.BROADCAST_MODE_ASYNC:\n return \"BROADCAST_MODE_ASYNC\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.broadcastModeToJSON = broadcastModeToJSON;\nconst baseGetTxsEventRequest = { events: \"\", orderBy: 0 };\nexports.GetTxsEventRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.events) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.orderBy !== 0) {\n writer.uint32(24).int32(message.orderBy);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(reader.string());\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n case 3:\n message.orderBy = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n message.orderBy =\n object.orderBy !== undefined && object.orderBy !== null ? orderByFromJSON(object.orderBy) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => e);\n }\n else {\n obj.events = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n message.orderBy !== undefined && (obj.orderBy = orderByToJSON(message.orderBy));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = ((_a = object.events) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n message.orderBy = (_b = object.orderBy) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseGetTxsEventResponse = {};\nexports.GetTxsEventResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.txs) {\n tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.txResponses) {\n abci_1.TxResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = [];\n message.txResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(tx_1.Tx.decode(reader, reader.uint32()));\n break;\n case 2:\n message.txResponses.push(abci_1.TxResponse.decode(reader, reader.uint32()));\n break;\n case 3:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = ((_a = object.txs) !== null && _a !== void 0 ? _a : []).map((e) => tx_1.Tx.fromJSON(e));\n message.txResponses = ((_b = object.txResponses) !== null && _b !== void 0 ? _b : []).map((e) => abci_1.TxResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? tx_1.Tx.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n if (message.txResponses) {\n obj.txResponses = message.txResponses.map((e) => (e ? abci_1.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map((e) => tx_1.Tx.fromPartial(e))) || [];\n message.txResponses = ((_b = object.txResponses) === null || _b === void 0 ? void 0 : _b.map((e) => abci_1.TxResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseBroadcastTxRequest = { mode: 0 };\nexports.BroadcastTxRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n if (message.mode !== 0) {\n writer.uint32(16).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBroadcastTxRequest);\n message.txBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n case 2:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBroadcastTxRequest);\n message.txBytes =\n object.txBytes !== undefined && object.txBytes !== null\n ? bytesFromBase64(object.txBytes)\n : new Uint8Array();\n message.mode = object.mode !== undefined && object.mode !== null ? broadcastModeFromJSON(object.mode) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = base64FromBytes(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n message.mode !== undefined && (obj.mode = broadcastModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseBroadcastTxRequest);\n message.txBytes = (_a = object.txBytes) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.mode = (_b = object.mode) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseBroadcastTxResponse = {};\nexports.BroadcastTxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBroadcastTxResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBroadcastTxResponse);\n message.txResponse =\n object.txResponse !== undefined && object.txResponse !== null\n ? abci_1.TxResponse.fromJSON(object.txResponse)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBroadcastTxResponse);\n message.txResponse =\n object.txResponse !== undefined && object.txResponse !== null\n ? abci_1.TxResponse.fromPartial(object.txResponse)\n : undefined;\n return message;\n },\n};\nconst baseSimulateRequest = {};\nexports.SimulateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txBytes.length !== 0) {\n writer.uint32(18).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulateRequest);\n message.txBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulateRequest);\n message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromJSON(object.tx) : undefined;\n message.txBytes =\n object.txBytes !== undefined && object.txBytes !== null\n ? bytesFromBase64(object.txBytes)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txBytes !== undefined &&\n (obj.txBytes = base64FromBytes(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSimulateRequest);\n message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromPartial(object.tx) : undefined;\n message.txBytes = (_a = object.txBytes) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseSimulateResponse = {};\nexports.SimulateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.gasInfo !== undefined) {\n abci_1.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n abci_1.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = abci_1.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = abci_1.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulateResponse);\n message.gasInfo =\n object.gasInfo !== undefined && object.gasInfo !== null ? abci_1.GasInfo.fromJSON(object.gasInfo) : undefined;\n message.result =\n object.result !== undefined && object.result !== null ? abci_1.Result.fromJSON(object.result) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? abci_1.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? abci_1.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimulateResponse);\n message.gasInfo =\n object.gasInfo !== undefined && object.gasInfo !== null\n ? abci_1.GasInfo.fromPartial(object.gasInfo)\n : undefined;\n message.result =\n object.result !== undefined && object.result !== null ? abci_1.Result.fromPartial(object.result) : undefined;\n return message;\n },\n};\nconst baseGetTxRequest = { hash: \"\" };\nexports.GetTxRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGetTxRequest);\n message.hash = object.hash !== undefined && object.hash !== null ? String(object.hash) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseGetTxRequest);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseGetTxResponse = {};\nexports.GetTxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGetTxResponse);\n message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromJSON(object.tx) : undefined;\n message.txResponse =\n object.txResponse !== undefined && object.txResponse !== null\n ? abci_1.TxResponse.fromJSON(object.txResponse)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGetTxResponse);\n message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromPartial(object.tx) : undefined;\n message.txResponse =\n object.txResponse !== undefined && object.txResponse !== null\n ? abci_1.TxResponse.fromPartial(object.txResponse)\n : undefined;\n return message;\n },\n};\nclass ServiceClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Simulate = this.Simulate.bind(this);\n this.GetTx = this.GetTx.bind(this);\n this.BroadcastTx = this.BroadcastTx.bind(this);\n this.GetTxsEvent = this.GetTxsEvent.bind(this);\n }\n Simulate(request) {\n const data = exports.SimulateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"Simulate\", data);\n return promise.then((data) => exports.SimulateResponse.decode(new minimal_1.default.Reader(data)));\n }\n GetTx(request) {\n const data = exports.GetTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTx\", data);\n return promise.then((data) => exports.GetTxResponse.decode(new minimal_1.default.Reader(data)));\n }\n BroadcastTx(request) {\n const data = exports.BroadcastTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"BroadcastTx\", data);\n return promise.then((data) => exports.BroadcastTxResponse.decode(new minimal_1.default.Reader(data)));\n }\n GetTxsEvent(request) {\n const data = exports.GetTxsEventRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTxsEvent\", data);\n return promise.then((data) => exports.GetTxsEventResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.ServiceClientImpl = ServiceClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=service.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst signing_1 = require(\"../../../cosmos/tx/signing/v1beta1/signing\");\nconst multisig_1 = require(\"../../../cosmos/crypto/multisig/v1beta1/multisig\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\nconst baseTx = {};\nexports.Tx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.body !== undefined) {\n exports.TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();\n }\n if (message.authInfo !== undefined) {\n exports.AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTx);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body = exports.TxBody.decode(reader, reader.uint32());\n break;\n case 2:\n message.authInfo = exports.AuthInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseTx);\n message.body =\n object.body !== undefined && object.body !== null ? exports.TxBody.fromJSON(object.body) : undefined;\n message.authInfo =\n object.authInfo !== undefined && object.authInfo !== null\n ? exports.AuthInfo.fromJSON(object.authInfo)\n : undefined;\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.body !== undefined && (obj.body = message.body ? exports.TxBody.toJSON(message.body) : undefined);\n message.authInfo !== undefined &&\n (obj.authInfo = message.authInfo ? exports.AuthInfo.toJSON(message.authInfo) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseTx);\n message.body =\n object.body !== undefined && object.body !== null ? exports.TxBody.fromPartial(object.body) : undefined;\n message.authInfo =\n object.authInfo !== undefined && object.authInfo !== null\n ? exports.AuthInfo.fromPartial(object.authInfo)\n : undefined;\n message.signatures = ((_a = object.signatures) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseTxRaw = {};\nexports.TxRaw = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxRaw);\n message.signatures = [];\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseTxRaw);\n message.bodyBytes =\n object.bodyBytes !== undefined && object.bodyBytes !== null\n ? bytesFromBase64(object.bodyBytes)\n : new Uint8Array();\n message.authInfoBytes =\n object.authInfoBytes !== undefined && object.authInfoBytes !== null\n ? bytesFromBase64(object.authInfoBytes)\n : new Uint8Array();\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseTxRaw);\n message.bodyBytes = (_a = object.bodyBytes) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.authInfoBytes = (_b = object.authInfoBytes) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.signatures = ((_c = object.signatures) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n return message;\n },\n};\nconst baseSignDoc = { chainId: \"\", accountNumber: long_1.default.UZERO };\nexports.SignDoc = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (!message.accountNumber.isZero()) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes =\n object.bodyBytes !== undefined && object.bodyBytes !== null\n ? bytesFromBase64(object.bodyBytes)\n : new Uint8Array();\n message.authInfoBytes =\n object.authInfoBytes !== undefined && object.authInfoBytes !== null\n ? bytesFromBase64(object.authInfoBytes)\n : new Uint8Array();\n message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : \"\";\n message.accountNumber =\n object.accountNumber !== undefined && object.accountNumber !== null\n ? long_1.default.fromString(object.accountNumber)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes = (_a = object.bodyBytes) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.authInfoBytes = (_b = object.authInfoBytes) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.chainId = (_c = object.chainId) !== null && _c !== void 0 ? _c : \"\";\n message.accountNumber =\n object.accountNumber !== undefined && object.accountNumber !== null\n ? long_1.default.fromValue(object.accountNumber)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseTxBody = { memo: \"\", timeoutHeight: long_1.default.UZERO };\nexports.TxBody = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.memo !== \"\") {\n writer.uint32(18).string(message.memo);\n }\n if (!message.timeoutHeight.isZero()) {\n writer.uint32(24).uint64(message.timeoutHeight);\n }\n for (const v of message.extensionOptions) {\n any_1.Any.encode(v, writer.uint32(8186).fork()).ldelim();\n }\n for (const v of message.nonCriticalExtensionOptions) {\n any_1.Any.encode(v, writer.uint32(16378).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxBody);\n message.messages = [];\n message.extensionOptions = [];\n message.nonCriticalExtensionOptions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memo = reader.string();\n break;\n case 3:\n message.timeoutHeight = reader.uint64();\n break;\n case 1023:\n message.extensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2047:\n message.nonCriticalExtensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseTxBody);\n message.messages = ((_a = object.messages) !== null && _a !== void 0 ? _a : []).map((e) => any_1.Any.fromJSON(e));\n message.memo = object.memo !== undefined && object.memo !== null ? String(object.memo) : \"\";\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? long_1.default.fromString(object.timeoutHeight)\n : long_1.default.UZERO;\n message.extensionOptions = ((_b = object.extensionOptions) !== null && _b !== void 0 ? _b : []).map((e) => any_1.Any.fromJSON(e));\n message.nonCriticalExtensionOptions = ((_c = object.nonCriticalExtensionOptions) !== null && _c !== void 0 ? _c : []).map((e) => any_1.Any.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.memo !== undefined && (obj.memo = message.memo);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = (message.timeoutHeight || long_1.default.UZERO).toString());\n if (message.extensionOptions) {\n obj.extensionOptions = message.extensionOptions.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.extensionOptions = [];\n }\n if (message.nonCriticalExtensionOptions) {\n obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map((e) => e ? any_1.Any.toJSON(e) : undefined);\n }\n else {\n obj.nonCriticalExtensionOptions = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseTxBody);\n message.messages = ((_a = object.messages) === null || _a === void 0 ? void 0 : _a.map((e) => any_1.Any.fromPartial(e))) || [];\n message.memo = (_b = object.memo) !== null && _b !== void 0 ? _b : \"\";\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? long_1.default.fromValue(object.timeoutHeight)\n : long_1.default.UZERO;\n message.extensionOptions = ((_c = object.extensionOptions) === null || _c === void 0 ? void 0 : _c.map((e) => any_1.Any.fromPartial(e))) || [];\n message.nonCriticalExtensionOptions =\n ((_d = object.nonCriticalExtensionOptions) === null || _d === void 0 ? void 0 : _d.map((e) => any_1.Any.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseAuthInfo = {};\nexports.AuthInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signerInfos) {\n exports.SignerInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.fee !== undefined) {\n exports.Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signerInfos.push(exports.SignerInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.fee = exports.Fee.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = ((_a = object.signerInfos) !== null && _a !== void 0 ? _a : []).map((e) => exports.SignerInfo.fromJSON(e));\n message.fee = object.fee !== undefined && object.fee !== null ? exports.Fee.fromJSON(object.fee) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signerInfos) {\n obj.signerInfos = message.signerInfos.map((e) => (e ? exports.SignerInfo.toJSON(e) : undefined));\n }\n else {\n obj.signerInfos = [];\n }\n message.fee !== undefined && (obj.fee = message.fee ? exports.Fee.toJSON(message.fee) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = ((_a = object.signerInfos) === null || _a === void 0 ? void 0 : _a.map((e) => exports.SignerInfo.fromPartial(e))) || [];\n message.fee = object.fee !== undefined && object.fee !== null ? exports.Fee.fromPartial(object.fee) : undefined;\n return message;\n },\n};\nconst baseSignerInfo = { sequence: long_1.default.UZERO };\nexports.SignerInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.modeInfo !== undefined) {\n exports.ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim();\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignerInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfo = exports.ModeInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignerInfo);\n message.publicKey =\n object.publicKey !== undefined && object.publicKey !== null\n ? any_1.Any.fromJSON(object.publicKey)\n : undefined;\n message.modeInfo =\n object.modeInfo !== undefined && object.modeInfo !== null\n ? exports.ModeInfo.fromJSON(object.modeInfo)\n : undefined;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.modeInfo !== undefined &&\n (obj.modeInfo = message.modeInfo ? exports.ModeInfo.toJSON(message.modeInfo) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignerInfo);\n message.publicKey =\n object.publicKey !== undefined && object.publicKey !== null\n ? any_1.Any.fromPartial(object.publicKey)\n : undefined;\n message.modeInfo =\n object.modeInfo !== undefined && object.modeInfo !== null\n ? exports.ModeInfo.fromPartial(object.modeInfo)\n : undefined;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseModeInfo = {};\nexports.ModeInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.single !== undefined) {\n exports.ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.ModeInfo_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.ModeInfo_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo);\n message.single =\n object.single !== undefined && object.single !== null\n ? exports.ModeInfo_Single.fromJSON(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null ? exports.ModeInfo_Multi.fromJSON(object.multi) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.ModeInfo_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.ModeInfo_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModeInfo);\n message.single =\n object.single !== undefined && object.single !== null\n ? exports.ModeInfo_Single.fromPartial(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null\n ? exports.ModeInfo_Multi.fromPartial(object.multi)\n : undefined;\n return message;\n },\n};\nconst baseModeInfo_Single = { mode: 0 };\nexports.ModeInfo_Single = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo_Single);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo_Single);\n message.mode = object.mode !== undefined && object.mode !== null ? signing_1.signModeFromJSON(object.mode) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signing_1.signModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseModeInfo_Single);\n message.mode = (_a = object.mode) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nconst baseModeInfo_Multi = {};\nexports.ModeInfo_Multi = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.modeInfos) {\n exports.ModeInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo_Multi);\n message.modeInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfos.push(exports.ModeInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseModeInfo_Multi);\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? multisig_1.CompactBitArray.fromJSON(object.bitarray)\n : undefined;\n message.modeInfos = ((_a = object.modeInfos) !== null && _a !== void 0 ? _a : []).map((e) => exports.ModeInfo.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.modeInfos) {\n obj.modeInfos = message.modeInfos.map((e) => (e ? exports.ModeInfo.toJSON(e) : undefined));\n }\n else {\n obj.modeInfos = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseModeInfo_Multi);\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? multisig_1.CompactBitArray.fromPartial(object.bitarray)\n : undefined;\n message.modeInfos = ((_a = object.modeInfos) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ModeInfo.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseFee = { gasLimit: long_1.default.UZERO, payer: \"\", granter: \"\" };\nexports.Fee = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (!message.gasLimit.isZero()) {\n writer.uint32(16).uint64(message.gasLimit);\n }\n if (message.payer !== \"\") {\n writer.uint32(26).string(message.payer);\n }\n if (message.granter !== \"\") {\n writer.uint32(34).string(message.granter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFee);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.gasLimit = reader.uint64();\n break;\n case 3:\n message.payer = reader.string();\n break;\n case 4:\n message.granter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseFee);\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.gasLimit =\n object.gasLimit !== undefined && object.gasLimit !== null\n ? long_1.default.fromString(object.gasLimit)\n : long_1.default.UZERO;\n message.payer = object.payer !== undefined && object.payer !== null ? String(object.payer) : \"\";\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || long_1.default.UZERO).toString());\n message.payer !== undefined && (obj.payer = message.payer);\n message.granter !== undefined && (obj.granter = message.granter);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseFee);\n message.amount = ((_a = object.amount) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.gasLimit =\n object.gasLimit !== undefined && object.gasLimit !== null\n ? long_1.default.fromValue(object.gasLimit)\n : long_1.default.UZERO;\n message.payer = (_b = object.payer) !== null && _b !== void 0 ? _b : \"\";\n message.granter = (_c = object.granter) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PermanentLockedAccount = exports.PeriodicVestingAccount = exports.Period = exports.DelayedVestingAccount = exports.ContinuousVestingAccount = exports.BaseVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst auth_1 = require(\"../../../cosmos/auth/v1beta1/auth\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nconst baseBaseVestingAccount = { endTime: long_1.default.ZERO };\nexports.BaseVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseAccount !== undefined) {\n auth_1.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.originalVesting) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.delegatedFree) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.delegatedVesting) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (!message.endTime.isZero()) {\n writer.uint32(40).int64(message.endTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBaseVestingAccount);\n message.originalVesting = [];\n message.delegatedFree = [];\n message.delegatedVesting = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = auth_1.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.originalVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.delegatedFree.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.delegatedVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.endTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseBaseVestingAccount);\n message.baseAccount =\n object.baseAccount !== undefined && object.baseAccount !== null\n ? auth_1.BaseAccount.fromJSON(object.baseAccount)\n : undefined;\n message.originalVesting = ((_a = object.originalVesting) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.delegatedFree = ((_b = object.delegatedFree) !== null && _b !== void 0 ? _b : []).map((e) => coin_1.Coin.fromJSON(e));\n message.delegatedVesting = ((_c = object.delegatedVesting) !== null && _c !== void 0 ? _c : []).map((e) => coin_1.Coin.fromJSON(e));\n message.endTime =\n object.endTime !== undefined && object.endTime !== null ? long_1.default.fromString(object.endTime) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? auth_1.BaseAccount.toJSON(message.baseAccount) : undefined);\n if (message.originalVesting) {\n obj.originalVesting = message.originalVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.originalVesting = [];\n }\n if (message.delegatedFree) {\n obj.delegatedFree = message.delegatedFree.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedFree = [];\n }\n if (message.delegatedVesting) {\n obj.delegatedVesting = message.delegatedVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedVesting = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseBaseVestingAccount);\n message.baseAccount =\n object.baseAccount !== undefined && object.baseAccount !== null\n ? auth_1.BaseAccount.fromPartial(object.baseAccount)\n : undefined;\n message.originalVesting = ((_a = object.originalVesting) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.delegatedFree = ((_b = object.delegatedFree) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.delegatedVesting = ((_c = object.delegatedVesting) === null || _c === void 0 ? void 0 : _c.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.endTime =\n object.endTime !== undefined && object.endTime !== null ? long_1.default.fromValue(object.endTime) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseContinuousVestingAccount = { startTime: long_1.default.ZERO };\nexports.ContinuousVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (!message.startTime.isZero()) {\n writer.uint32(16).int64(message.startTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContinuousVestingAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContinuousVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount)\n : undefined;\n message.startTime =\n object.startTime !== undefined && object.startTime !== null\n ? long_1.default.fromString(object.startTime)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseContinuousVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount)\n : undefined;\n message.startTime =\n object.startTime !== undefined && object.startTime !== null\n ? long_1.default.fromValue(object.startTime)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseDelayedVestingAccount = {};\nexports.DelayedVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelayedVestingAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelayedVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelayedVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount)\n : undefined;\n return message;\n },\n};\nconst basePeriod = { length: long_1.default.ZERO };\nexports.Period = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.length.isZero()) {\n writer.uint32(8).int64(message.length);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePeriod);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.length = reader.int64();\n break;\n case 2:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, basePeriod);\n message.length =\n object.length !== undefined && object.length !== null ? long_1.default.fromString(object.length) : long_1.default.ZERO;\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.length !== undefined && (obj.length = (message.length || long_1.default.ZERO).toString());\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePeriod);\n message.length =\n object.length !== undefined && object.length !== null ? long_1.default.fromValue(object.length) : long_1.default.ZERO;\n message.amount = ((_a = object.amount) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst basePeriodicVestingAccount = { startTime: long_1.default.ZERO };\nexports.PeriodicVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (!message.startTime.isZero()) {\n writer.uint32(16).int64(message.startTime);\n }\n for (const v of message.vestingPeriods) {\n exports.Period.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.vestingPeriods = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n case 3:\n message.vestingPeriods.push(exports.Period.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount)\n : undefined;\n message.startTime =\n object.startTime !== undefined && object.startTime !== null\n ? long_1.default.fromString(object.startTime)\n : long_1.default.ZERO;\n message.vestingPeriods = ((_a = object.vestingPeriods) !== null && _a !== void 0 ? _a : []).map((e) => exports.Period.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || long_1.default.ZERO).toString());\n if (message.vestingPeriods) {\n obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? exports.Period.toJSON(e) : undefined));\n }\n else {\n obj.vestingPeriods = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount)\n : undefined;\n message.startTime =\n object.startTime !== undefined && object.startTime !== null\n ? long_1.default.fromValue(object.startTime)\n : long_1.default.ZERO;\n message.vestingPeriods = ((_a = object.vestingPeriods) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Period.fromPartial(e))) || [];\n return message;\n },\n};\nconst basePermanentLockedAccount = {};\nexports.PermanentLockedAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePermanentLockedAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePermanentLockedAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePermanentLockedAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount)\n : undefined;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=vesting.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryCodesResponse = exports.QueryCodesRequest = exports.QueryCodeResponse = exports.CodeInfoResponse = exports.QueryCodeRequest = exports.QuerySmartContractStateResponse = exports.QuerySmartContractStateRequest = exports.QueryRawContractStateResponse = exports.QueryRawContractStateRequest = exports.QueryAllContractStateResponse = exports.QueryAllContractStateRequest = exports.QueryContractsByCodeResponse = exports.QueryContractsByCodeRequest = exports.QueryContractHistoryResponse = exports.QueryContractHistoryRequest = exports.QueryContractInfoResponse = exports.QueryContractInfoRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../cosmwasm/wasm/v1/types\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\nconst baseQueryContractInfoRequest = { address: \"\" };\nexports.QueryContractInfoRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractInfoRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryContractInfoRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractInfoRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryContractInfoResponse = { address: \"\" };\nexports.QueryContractInfoResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.contractInfo !== undefined) {\n types_1.ContractInfo.encode(message.contractInfo, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractInfoResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.contractInfo = types_1.ContractInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryContractInfoResponse);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.contractInfo =\n object.contractInfo !== undefined && object.contractInfo !== null\n ? types_1.ContractInfo.fromJSON(object.contractInfo)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.contractInfo !== undefined &&\n (obj.contractInfo = message.contractInfo ? types_1.ContractInfo.toJSON(message.contractInfo) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractInfoResponse);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.contractInfo =\n object.contractInfo !== undefined && object.contractInfo !== null\n ? types_1.ContractInfo.fromPartial(object.contractInfo)\n : undefined;\n return message;\n },\n};\nconst baseQueryContractHistoryRequest = { address: \"\" };\nexports.QueryContractHistoryRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractHistoryRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryContractHistoryRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractHistoryRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryContractHistoryResponse = {};\nexports.QueryContractHistoryResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.entries) {\n types_1.ContractCodeHistoryEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractHistoryResponse);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(types_1.ContractCodeHistoryEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractHistoryResponse);\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => types_1.ContractCodeHistoryEntry.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? types_1.ContractCodeHistoryEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractHistoryResponse);\n message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map((e) => types_1.ContractCodeHistoryEntry.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryContractsByCodeRequest = { codeId: long_1.default.UZERO };\nexports.QueryContractsByCodeRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractsByCodeRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryContractsByCodeRequest);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryContractsByCodeRequest);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryContractsByCodeResponse = { contracts: \"\" };\nexports.QueryContractsByCodeResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.contracts) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractsByCodeResponse);\n message.contracts = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.contracts.push(reader.string());\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractsByCodeResponse);\n message.contracts = ((_a = object.contracts) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.contracts) {\n obj.contracts = message.contracts.map((e) => e);\n }\n else {\n obj.contracts = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractsByCodeResponse);\n message.contracts = ((_a = object.contracts) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAllContractStateRequest = { address: \"\" };\nexports.QueryAllContractStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAllContractStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAllContractStateRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllContractStateRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAllContractStateResponse = {};\nexports.QueryAllContractStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.models) {\n types_1.Model.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAllContractStateResponse);\n message.models = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.models.push(types_1.Model.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllContractStateResponse);\n message.models = ((_a = object.models) !== null && _a !== void 0 ? _a : []).map((e) => types_1.Model.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.models) {\n obj.models = message.models.map((e) => (e ? types_1.Model.toJSON(e) : undefined));\n }\n else {\n obj.models = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllContractStateResponse);\n message.models = ((_a = object.models) === null || _a === void 0 ? void 0 : _a.map((e) => types_1.Model.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryRawContractStateRequest = { address: \"\" };\nexports.QueryRawContractStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.queryData.length !== 0) {\n writer.uint32(18).bytes(message.queryData);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryRawContractStateRequest);\n message.queryData = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.queryData = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryRawContractStateRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.queryData =\n object.queryData !== undefined && object.queryData !== null\n ? bytesFromBase64(object.queryData)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.queryData !== undefined &&\n (obj.queryData = base64FromBytes(message.queryData !== undefined ? message.queryData : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryRawContractStateRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.queryData = (_b = object.queryData) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseQueryRawContractStateResponse = {};\nexports.QueryRawContractStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryRawContractStateResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryRawContractStateResponse);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryRawContractStateResponse);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseQuerySmartContractStateRequest = { address: \"\" };\nexports.QuerySmartContractStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.queryData.length !== 0) {\n writer.uint32(18).bytes(message.queryData);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySmartContractStateRequest);\n message.queryData = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.queryData = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySmartContractStateRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.queryData =\n object.queryData !== undefined && object.queryData !== null\n ? bytesFromBase64(object.queryData)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.queryData !== undefined &&\n (obj.queryData = base64FromBytes(message.queryData !== undefined ? message.queryData : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQuerySmartContractStateRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.queryData = (_b = object.queryData) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseQuerySmartContractStateResponse = {};\nexports.QuerySmartContractStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySmartContractStateResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySmartContractStateResponse);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQuerySmartContractStateResponse);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseQueryCodeRequest = { codeId: long_1.default.UZERO };\nexports.QueryCodeRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCodeRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryCodeRequest);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryCodeRequest);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseCodeInfoResponse = { codeId: long_1.default.UZERO, creator: \"\" };\nexports.CodeInfoResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.creator !== \"\") {\n writer.uint32(18).string(message.creator);\n }\n if (message.dataHash.length !== 0) {\n writer.uint32(26).bytes(message.dataHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCodeInfoResponse);\n message.dataHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.creator = reader.string();\n break;\n case 3:\n message.dataHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCodeInfoResponse);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.creator = object.creator !== undefined && object.creator !== null ? String(object.creator) : \"\";\n message.dataHash =\n object.dataHash !== undefined && object.dataHash !== null\n ? bytesFromBase64(object.dataHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.creator !== undefined && (obj.creator = message.creator);\n message.dataHash !== undefined &&\n (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCodeInfoResponse);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.creator = (_a = object.creator) !== null && _a !== void 0 ? _a : \"\";\n message.dataHash = (_b = object.dataHash) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseQueryCodeResponse = {};\nexports.QueryCodeResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.codeInfo !== undefined) {\n exports.CodeInfoResponse.encode(message.codeInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCodeResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeInfo = exports.CodeInfoResponse.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryCodeResponse);\n message.codeInfo =\n object.codeInfo !== undefined && object.codeInfo !== null\n ? exports.CodeInfoResponse.fromJSON(object.codeInfo)\n : undefined;\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeInfo !== undefined &&\n (obj.codeInfo = message.codeInfo ? exports.CodeInfoResponse.toJSON(message.codeInfo) : undefined);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryCodeResponse);\n message.codeInfo =\n object.codeInfo !== undefined && object.codeInfo !== null\n ? exports.CodeInfoResponse.fromPartial(object.codeInfo)\n : undefined;\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseQueryCodesRequest = {};\nexports.QueryCodesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCodesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryCodesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryCodesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryCodesResponse = {};\nexports.QueryCodesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.codeInfos) {\n exports.CodeInfoResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCodesResponse);\n message.codeInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeInfos.push(exports.CodeInfoResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryCodesResponse);\n message.codeInfos = ((_a = object.codeInfos) !== null && _a !== void 0 ? _a : []).map((e) => exports.CodeInfoResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.codeInfos) {\n obj.codeInfos = message.codeInfos.map((e) => (e ? exports.CodeInfoResponse.toJSON(e) : undefined));\n }\n else {\n obj.codeInfos = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryCodesResponse);\n message.codeInfos = ((_a = object.codeInfos) === null || _a === void 0 ? void 0 : _a.map((e) => exports.CodeInfoResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ContractInfo = this.ContractInfo.bind(this);\n this.ContractHistory = this.ContractHistory.bind(this);\n this.ContractsByCode = this.ContractsByCode.bind(this);\n this.AllContractState = this.AllContractState.bind(this);\n this.RawContractState = this.RawContractState.bind(this);\n this.SmartContractState = this.SmartContractState.bind(this);\n this.Code = this.Code.bind(this);\n this.Codes = this.Codes.bind(this);\n }\n ContractInfo(request) {\n const data = exports.QueryContractInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"ContractInfo\", data);\n return promise.then((data) => exports.QueryContractInfoResponse.decode(new minimal_1.default.Reader(data)));\n }\n ContractHistory(request) {\n const data = exports.QueryContractHistoryRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"ContractHistory\", data);\n return promise.then((data) => exports.QueryContractHistoryResponse.decode(new minimal_1.default.Reader(data)));\n }\n ContractsByCode(request) {\n const data = exports.QueryContractsByCodeRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"ContractsByCode\", data);\n return promise.then((data) => exports.QueryContractsByCodeResponse.decode(new minimal_1.default.Reader(data)));\n }\n AllContractState(request) {\n const data = exports.QueryAllContractStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"AllContractState\", data);\n return promise.then((data) => exports.QueryAllContractStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n RawContractState(request) {\n const data = exports.QueryRawContractStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"RawContractState\", data);\n return promise.then((data) => exports.QueryRawContractStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n SmartContractState(request) {\n const data = exports.QuerySmartContractStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"SmartContractState\", data);\n return promise.then((data) => exports.QuerySmartContractStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n Code(request) {\n const data = exports.QueryCodeRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"Code\", data);\n return promise.then((data) => exports.QueryCodeResponse.decode(new minimal_1.default.Reader(data)));\n }\n Codes(request) {\n const data = exports.QueryCodesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"Codes\", data);\n return promise.then((data) => exports.QueryCodesResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgClearAdminResponse = exports.MsgClearAdmin = exports.MsgUpdateAdminResponse = exports.MsgUpdateAdmin = exports.MsgMigrateContractResponse = exports.MsgMigrateContract = exports.MsgExecuteContractResponse = exports.MsgExecuteContract = exports.MsgInstantiateContractResponse = exports.MsgInstantiateContract = exports.MsgStoreCodeResponse = exports.MsgStoreCode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../cosmwasm/wasm/v1/types\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\nconst baseMsgStoreCode = { sender: \"\" };\nexports.MsgStoreCode = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.wasmByteCode.length !== 0) {\n writer.uint32(18).bytes(message.wasmByteCode);\n }\n if (message.instantiatePermission !== undefined) {\n types_1.AccessConfig.encode(message.instantiatePermission, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgStoreCode);\n message.wasmByteCode = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.wasmByteCode = reader.bytes();\n break;\n case 5:\n message.instantiatePermission = types_1.AccessConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgStoreCode);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.wasmByteCode =\n object.wasmByteCode !== undefined && object.wasmByteCode !== null\n ? bytesFromBase64(object.wasmByteCode)\n : new Uint8Array();\n message.instantiatePermission =\n object.instantiatePermission !== undefined && object.instantiatePermission !== null\n ? types_1.AccessConfig.fromJSON(object.instantiatePermission)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.wasmByteCode !== undefined &&\n (obj.wasmByteCode = base64FromBytes(message.wasmByteCode !== undefined ? message.wasmByteCode : new Uint8Array()));\n message.instantiatePermission !== undefined &&\n (obj.instantiatePermission = message.instantiatePermission\n ? types_1.AccessConfig.toJSON(message.instantiatePermission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgStoreCode);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.wasmByteCode = (_b = object.wasmByteCode) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.instantiatePermission =\n object.instantiatePermission !== undefined && object.instantiatePermission !== null\n ? types_1.AccessConfig.fromPartial(object.instantiatePermission)\n : undefined;\n return message;\n },\n};\nconst baseMsgStoreCodeResponse = { codeId: long_1.default.UZERO };\nexports.MsgStoreCodeResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseMsgInstantiateContract = { sender: \"\", admin: \"\", codeId: long_1.default.UZERO, label: \"\" };\nexports.MsgInstantiateContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.admin !== \"\") {\n writer.uint32(18).string(message.admin);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(24).uint64(message.codeId);\n }\n if (message.label !== \"\") {\n writer.uint32(34).string(message.label);\n }\n if (message.msg.length !== 0) {\n writer.uint32(42).bytes(message.msg);\n }\n for (const v of message.funds) {\n coin_1.Coin.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.funds = [];\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.admin = reader.string();\n break;\n case 3:\n message.codeId = reader.uint64();\n break;\n case 4:\n message.label = reader.string();\n break;\n case 5:\n message.msg = reader.bytes();\n break;\n case 6:\n message.funds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.admin = object.admin !== undefined && object.admin !== null ? String(object.admin) : \"\";\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.label = object.label !== undefined && object.label !== null ? String(object.label) : \"\";\n message.msg =\n object.msg !== undefined && object.msg !== null ? bytesFromBase64(object.msg) : new Uint8Array();\n message.funds = ((_a = object.funds) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.admin !== undefined && (obj.admin = message.admin);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.label !== undefined && (obj.label = message.label);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n if (message.funds) {\n obj.funds = message.funds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.funds = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.admin = (_b = object.admin) !== null && _b !== void 0 ? _b : \"\";\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.label = (_c = object.label) !== null && _c !== void 0 ? _c : \"\";\n message.msg = (_d = object.msg) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.funds = ((_e = object.funds) === null || _e === void 0 ? void 0 : _e.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgInstantiateContractResponse = { address: \"\" };\nexports.MsgInstantiateContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseMsgExecuteContract = { sender: \"\", contract: \"\" };\nexports.MsgExecuteContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n if (message.msg.length !== 0) {\n writer.uint32(26).bytes(message.msg);\n }\n for (const v of message.funds) {\n coin_1.Coin.encode(v, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecuteContract);\n message.funds = [];\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n case 3:\n message.msg = reader.bytes();\n break;\n case 5:\n message.funds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgExecuteContract);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.contract =\n object.contract !== undefined && object.contract !== null ? String(object.contract) : \"\";\n message.msg =\n object.msg !== undefined && object.msg !== null ? bytesFromBase64(object.msg) : new Uint8Array();\n message.funds = ((_a = object.funds) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n if (message.funds) {\n obj.funds = message.funds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.funds = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgExecuteContract);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.contract = (_b = object.contract) !== null && _b !== void 0 ? _b : \"\";\n message.msg = (_c = object.msg) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.funds = ((_d = object.funds) === null || _d === void 0 ? void 0 : _d.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgExecuteContractResponse = {};\nexports.MsgExecuteContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMsgMigrateContract = { sender: \"\", contract: \"\", codeId: long_1.default.UZERO };\nexports.MsgMigrateContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(24).uint64(message.codeId);\n }\n if (message.msg.length !== 0) {\n writer.uint32(34).bytes(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateContract);\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n case 3:\n message.codeId = reader.uint64();\n break;\n case 4:\n message.msg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateContract);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.contract =\n object.contract !== undefined && object.contract !== null ? String(object.contract) : \"\";\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.msg =\n object.msg !== undefined && object.msg !== null ? bytesFromBase64(object.msg) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgMigrateContract);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.contract = (_b = object.contract) !== null && _b !== void 0 ? _b : \"\";\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.msg = (_c = object.msg) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseMsgMigrateContractResponse = {};\nexports.MsgMigrateContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMsgUpdateAdmin = { sender: \"\", newAdmin: \"\", contract: \"\" };\nexports.MsgUpdateAdmin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(18).string(message.newAdmin);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateAdmin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.newAdmin = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpdateAdmin);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.newAdmin =\n object.newAdmin !== undefined && object.newAdmin !== null ? String(object.newAdmin) : \"\";\n message.contract =\n object.contract !== undefined && object.contract !== null ? String(object.contract) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgUpdateAdmin);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.newAdmin = (_b = object.newAdmin) !== null && _b !== void 0 ? _b : \"\";\n message.contract = (_c = object.contract) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgUpdateAdminResponse = {};\nexports.MsgUpdateAdminResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n return message;\n },\n};\nconst baseMsgClearAdmin = { sender: \"\", contract: \"\" };\nexports.MsgClearAdmin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgClearAdmin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgClearAdmin);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.contract =\n object.contract !== undefined && object.contract !== null ? String(object.contract) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgClearAdmin);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.contract = (_b = object.contract) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgClearAdminResponse = {};\nexports.MsgClearAdminResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgClearAdminResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgClearAdminResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgClearAdminResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.StoreCode = this.StoreCode.bind(this);\n this.InstantiateContract = this.InstantiateContract.bind(this);\n this.ExecuteContract = this.ExecuteContract.bind(this);\n this.MigrateContract = this.MigrateContract.bind(this);\n this.UpdateAdmin = this.UpdateAdmin.bind(this);\n this.ClearAdmin = this.ClearAdmin.bind(this);\n }\n StoreCode(request) {\n const data = exports.MsgStoreCode.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"StoreCode\", data);\n return promise.then((data) => exports.MsgStoreCodeResponse.decode(new minimal_1.default.Reader(data)));\n }\n InstantiateContract(request) {\n const data = exports.MsgInstantiateContract.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"InstantiateContract\", data);\n return promise.then((data) => exports.MsgInstantiateContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n ExecuteContract(request) {\n const data = exports.MsgExecuteContract.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"ExecuteContract\", data);\n return promise.then((data) => exports.MsgExecuteContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n MigrateContract(request) {\n const data = exports.MsgMigrateContract.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"MigrateContract\", data);\n return promise.then((data) => exports.MsgMigrateContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpdateAdmin(request) {\n const data = exports.MsgUpdateAdmin.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"UpdateAdmin\", data);\n return promise.then((data) => exports.MsgUpdateAdminResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClearAdmin(request) {\n const data = exports.MsgClearAdmin.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"ClearAdmin\", data);\n return promise.then((data) => exports.MsgClearAdminResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Model = exports.AbsoluteTxPosition = exports.ContractCodeHistoryEntry = exports.ContractInfo = exports.CodeInfo = exports.Params = exports.AccessConfig = exports.AccessTypeParam = exports.contractCodeHistoryOperationTypeToJSON = exports.contractCodeHistoryOperationTypeFromJSON = exports.ContractCodeHistoryOperationType = exports.accessTypeToJSON = exports.accessTypeFromJSON = exports.AccessType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\n/** AccessType permission types */\nvar AccessType;\n(function (AccessType) {\n /** ACCESS_TYPE_UNSPECIFIED - AccessTypeUnspecified placeholder for empty value */\n AccessType[AccessType[\"ACCESS_TYPE_UNSPECIFIED\"] = 0] = \"ACCESS_TYPE_UNSPECIFIED\";\n /** ACCESS_TYPE_NOBODY - AccessTypeNobody forbidden */\n AccessType[AccessType[\"ACCESS_TYPE_NOBODY\"] = 1] = \"ACCESS_TYPE_NOBODY\";\n /** ACCESS_TYPE_ONLY_ADDRESS - AccessTypeOnlyAddress restricted to an address */\n AccessType[AccessType[\"ACCESS_TYPE_ONLY_ADDRESS\"] = 2] = \"ACCESS_TYPE_ONLY_ADDRESS\";\n /** ACCESS_TYPE_EVERYBODY - AccessTypeEverybody unrestricted */\n AccessType[AccessType[\"ACCESS_TYPE_EVERYBODY\"] = 3] = \"ACCESS_TYPE_EVERYBODY\";\n AccessType[AccessType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(AccessType = exports.AccessType || (exports.AccessType = {}));\nfunction accessTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"ACCESS_TYPE_UNSPECIFIED\":\n return AccessType.ACCESS_TYPE_UNSPECIFIED;\n case 1:\n case \"ACCESS_TYPE_NOBODY\":\n return AccessType.ACCESS_TYPE_NOBODY;\n case 2:\n case \"ACCESS_TYPE_ONLY_ADDRESS\":\n return AccessType.ACCESS_TYPE_ONLY_ADDRESS;\n case 3:\n case \"ACCESS_TYPE_EVERYBODY\":\n return AccessType.ACCESS_TYPE_EVERYBODY;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return AccessType.UNRECOGNIZED;\n }\n}\nexports.accessTypeFromJSON = accessTypeFromJSON;\nfunction accessTypeToJSON(object) {\n switch (object) {\n case AccessType.ACCESS_TYPE_UNSPECIFIED:\n return \"ACCESS_TYPE_UNSPECIFIED\";\n case AccessType.ACCESS_TYPE_NOBODY:\n return \"ACCESS_TYPE_NOBODY\";\n case AccessType.ACCESS_TYPE_ONLY_ADDRESS:\n return \"ACCESS_TYPE_ONLY_ADDRESS\";\n case AccessType.ACCESS_TYPE_EVERYBODY:\n return \"ACCESS_TYPE_EVERYBODY\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.accessTypeToJSON = accessTypeToJSON;\n/** ContractCodeHistoryOperationType actions that caused a code change */\nvar ContractCodeHistoryOperationType;\n(function (ContractCodeHistoryOperationType) {\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED - ContractCodeHistoryOperationTypeUnspecified placeholder for empty value */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\"] = 0] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT - ContractCodeHistoryOperationTypeInit on chain contract instantiation */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\"] = 1] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE - ContractCodeHistoryOperationTypeMigrate code migration */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\"] = 2] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS - ContractCodeHistoryOperationTypeGenesis based on genesis data */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\"] = 3] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\";\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ContractCodeHistoryOperationType = exports.ContractCodeHistoryOperationType || (exports.ContractCodeHistoryOperationType = {}));\nfunction contractCodeHistoryOperationTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;\n case 1:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;\n case 2:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;\n case 3:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ContractCodeHistoryOperationType.UNRECOGNIZED;\n }\n}\nexports.contractCodeHistoryOperationTypeFromJSON = contractCodeHistoryOperationTypeFromJSON;\nfunction contractCodeHistoryOperationTypeToJSON(object) {\n switch (object) {\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.contractCodeHistoryOperationTypeToJSON = contractCodeHistoryOperationTypeToJSON;\nconst baseAccessTypeParam = { value: 0 };\nexports.AccessTypeParam = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.value !== 0) {\n writer.uint32(8).int32(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAccessTypeParam);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.value = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAccessTypeParam);\n message.value =\n object.value !== undefined && object.value !== null ? accessTypeFromJSON(object.value) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.value !== undefined && (obj.value = accessTypeToJSON(message.value));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseAccessTypeParam);\n message.value = (_a = object.value) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nconst baseAccessConfig = { permission: 0, address: \"\" };\nexports.AccessConfig = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.permission !== 0) {\n writer.uint32(8).int32(message.permission);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAccessConfig);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.permission = reader.int32();\n break;\n case 2:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAccessConfig);\n message.permission =\n object.permission !== undefined && object.permission !== null\n ? accessTypeFromJSON(object.permission)\n : 0;\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.permission !== undefined && (obj.permission = accessTypeToJSON(message.permission));\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseAccessConfig);\n message.permission = (_a = object.permission) !== null && _a !== void 0 ? _a : 0;\n message.address = (_b = object.address) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseParams = { instantiateDefaultPermission: 0, maxWasmCodeSize: long_1.default.UZERO };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.codeUploadAccess !== undefined) {\n exports.AccessConfig.encode(message.codeUploadAccess, writer.uint32(10).fork()).ldelim();\n }\n if (message.instantiateDefaultPermission !== 0) {\n writer.uint32(16).int32(message.instantiateDefaultPermission);\n }\n if (!message.maxWasmCodeSize.isZero()) {\n writer.uint32(24).uint64(message.maxWasmCodeSize);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeUploadAccess = exports.AccessConfig.decode(reader, reader.uint32());\n break;\n case 2:\n message.instantiateDefaultPermission = reader.int32();\n break;\n case 3:\n message.maxWasmCodeSize = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.codeUploadAccess =\n object.codeUploadAccess !== undefined && object.codeUploadAccess !== null\n ? exports.AccessConfig.fromJSON(object.codeUploadAccess)\n : undefined;\n message.instantiateDefaultPermission =\n object.instantiateDefaultPermission !== undefined && object.instantiateDefaultPermission !== null\n ? accessTypeFromJSON(object.instantiateDefaultPermission)\n : 0;\n message.maxWasmCodeSize =\n object.maxWasmCodeSize !== undefined && object.maxWasmCodeSize !== null\n ? long_1.default.fromString(object.maxWasmCodeSize)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeUploadAccess !== undefined &&\n (obj.codeUploadAccess = message.codeUploadAccess\n ? exports.AccessConfig.toJSON(message.codeUploadAccess)\n : undefined);\n message.instantiateDefaultPermission !== undefined &&\n (obj.instantiateDefaultPermission = accessTypeToJSON(message.instantiateDefaultPermission));\n message.maxWasmCodeSize !== undefined &&\n (obj.maxWasmCodeSize = (message.maxWasmCodeSize || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseParams);\n message.codeUploadAccess =\n object.codeUploadAccess !== undefined && object.codeUploadAccess !== null\n ? exports.AccessConfig.fromPartial(object.codeUploadAccess)\n : undefined;\n message.instantiateDefaultPermission = (_a = object.instantiateDefaultPermission) !== null && _a !== void 0 ? _a : 0;\n message.maxWasmCodeSize =\n object.maxWasmCodeSize !== undefined && object.maxWasmCodeSize !== null\n ? long_1.default.fromValue(object.maxWasmCodeSize)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseCodeInfo = { creator: \"\" };\nexports.CodeInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.codeHash.length !== 0) {\n writer.uint32(10).bytes(message.codeHash);\n }\n if (message.creator !== \"\") {\n writer.uint32(18).string(message.creator);\n }\n if (message.instantiateConfig !== undefined) {\n exports.AccessConfig.encode(message.instantiateConfig, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCodeInfo);\n message.codeHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeHash = reader.bytes();\n break;\n case 2:\n message.creator = reader.string();\n break;\n case 5:\n message.instantiateConfig = exports.AccessConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCodeInfo);\n message.codeHash =\n object.codeHash !== undefined && object.codeHash !== null\n ? bytesFromBase64(object.codeHash)\n : new Uint8Array();\n message.creator = object.creator !== undefined && object.creator !== null ? String(object.creator) : \"\";\n message.instantiateConfig =\n object.instantiateConfig !== undefined && object.instantiateConfig !== null\n ? exports.AccessConfig.fromJSON(object.instantiateConfig)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeHash !== undefined &&\n (obj.codeHash = base64FromBytes(message.codeHash !== undefined ? message.codeHash : new Uint8Array()));\n message.creator !== undefined && (obj.creator = message.creator);\n message.instantiateConfig !== undefined &&\n (obj.instantiateConfig = message.instantiateConfig\n ? exports.AccessConfig.toJSON(message.instantiateConfig)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCodeInfo);\n message.codeHash = (_a = object.codeHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.creator = (_b = object.creator) !== null && _b !== void 0 ? _b : \"\";\n message.instantiateConfig =\n object.instantiateConfig !== undefined && object.instantiateConfig !== null\n ? exports.AccessConfig.fromPartial(object.instantiateConfig)\n : undefined;\n return message;\n },\n};\nconst baseContractInfo = { codeId: long_1.default.UZERO, creator: \"\", admin: \"\", label: \"\", ibcPortId: \"\" };\nexports.ContractInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.creator !== \"\") {\n writer.uint32(18).string(message.creator);\n }\n if (message.admin !== \"\") {\n writer.uint32(26).string(message.admin);\n }\n if (message.label !== \"\") {\n writer.uint32(34).string(message.label);\n }\n if (message.created !== undefined) {\n exports.AbsoluteTxPosition.encode(message.created, writer.uint32(42).fork()).ldelim();\n }\n if (message.ibcPortId !== \"\") {\n writer.uint32(50).string(message.ibcPortId);\n }\n if (message.extension !== undefined) {\n any_1.Any.encode(message.extension, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContractInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.creator = reader.string();\n break;\n case 3:\n message.admin = reader.string();\n break;\n case 4:\n message.label = reader.string();\n break;\n case 5:\n message.created = exports.AbsoluteTxPosition.decode(reader, reader.uint32());\n break;\n case 6:\n message.ibcPortId = reader.string();\n break;\n case 7:\n message.extension = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContractInfo);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.creator = object.creator !== undefined && object.creator !== null ? String(object.creator) : \"\";\n message.admin = object.admin !== undefined && object.admin !== null ? String(object.admin) : \"\";\n message.label = object.label !== undefined && object.label !== null ? String(object.label) : \"\";\n message.created =\n object.created !== undefined && object.created !== null\n ? exports.AbsoluteTxPosition.fromJSON(object.created)\n : undefined;\n message.ibcPortId =\n object.ibcPortId !== undefined && object.ibcPortId !== null ? String(object.ibcPortId) : \"\";\n message.extension =\n object.extension !== undefined && object.extension !== null\n ? any_1.Any.fromJSON(object.extension)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.creator !== undefined && (obj.creator = message.creator);\n message.admin !== undefined && (obj.admin = message.admin);\n message.label !== undefined && (obj.label = message.label);\n message.created !== undefined &&\n (obj.created = message.created ? exports.AbsoluteTxPosition.toJSON(message.created) : undefined);\n message.ibcPortId !== undefined && (obj.ibcPortId = message.ibcPortId);\n message.extension !== undefined &&\n (obj.extension = message.extension ? any_1.Any.toJSON(message.extension) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseContractInfo);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.creator = (_a = object.creator) !== null && _a !== void 0 ? _a : \"\";\n message.admin = (_b = object.admin) !== null && _b !== void 0 ? _b : \"\";\n message.label = (_c = object.label) !== null && _c !== void 0 ? _c : \"\";\n message.created =\n object.created !== undefined && object.created !== null\n ? exports.AbsoluteTxPosition.fromPartial(object.created)\n : undefined;\n message.ibcPortId = (_d = object.ibcPortId) !== null && _d !== void 0 ? _d : \"\";\n message.extension =\n object.extension !== undefined && object.extension !== null\n ? any_1.Any.fromPartial(object.extension)\n : undefined;\n return message;\n },\n};\nconst baseContractCodeHistoryEntry = { operation: 0, codeId: long_1.default.UZERO };\nexports.ContractCodeHistoryEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.operation !== 0) {\n writer.uint32(8).int32(message.operation);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(16).uint64(message.codeId);\n }\n if (message.updated !== undefined) {\n exports.AbsoluteTxPosition.encode(message.updated, writer.uint32(26).fork()).ldelim();\n }\n if (message.msg.length !== 0) {\n writer.uint32(34).bytes(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operation = reader.int32();\n break;\n case 2:\n message.codeId = reader.uint64();\n break;\n case 3:\n message.updated = exports.AbsoluteTxPosition.decode(reader, reader.uint32());\n break;\n case 4:\n message.msg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n message.operation =\n object.operation !== undefined && object.operation !== null\n ? contractCodeHistoryOperationTypeFromJSON(object.operation)\n : 0;\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.updated =\n object.updated !== undefined && object.updated !== null\n ? exports.AbsoluteTxPosition.fromJSON(object.updated)\n : undefined;\n message.msg =\n object.msg !== undefined && object.msg !== null ? bytesFromBase64(object.msg) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.operation !== undefined &&\n (obj.operation = contractCodeHistoryOperationTypeToJSON(message.operation));\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.updated !== undefined &&\n (obj.updated = message.updated ? exports.AbsoluteTxPosition.toJSON(message.updated) : undefined);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n message.operation = (_a = object.operation) !== null && _a !== void 0 ? _a : 0;\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.updated =\n object.updated !== undefined && object.updated !== null\n ? exports.AbsoluteTxPosition.fromPartial(object.updated)\n : undefined;\n message.msg = (_b = object.msg) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseAbsoluteTxPosition = { blockHeight: long_1.default.UZERO, txIndex: long_1.default.UZERO };\nexports.AbsoluteTxPosition = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.blockHeight.isZero()) {\n writer.uint32(8).uint64(message.blockHeight);\n }\n if (!message.txIndex.isZero()) {\n writer.uint32(16).uint64(message.txIndex);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAbsoluteTxPosition);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockHeight = reader.uint64();\n break;\n case 2:\n message.txIndex = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAbsoluteTxPosition);\n message.blockHeight =\n object.blockHeight !== undefined && object.blockHeight !== null\n ? long_1.default.fromString(object.blockHeight)\n : long_1.default.UZERO;\n message.txIndex =\n object.txIndex !== undefined && object.txIndex !== null ? long_1.default.fromString(object.txIndex) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockHeight !== undefined && (obj.blockHeight = (message.blockHeight || long_1.default.UZERO).toString());\n message.txIndex !== undefined && (obj.txIndex = (message.txIndex || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAbsoluteTxPosition);\n message.blockHeight =\n object.blockHeight !== undefined && object.blockHeight !== null\n ? long_1.default.fromValue(object.blockHeight)\n : long_1.default.UZERO;\n message.txIndex =\n object.txIndex !== undefined && object.txIndex !== null ? long_1.default.fromValue(object.txIndex) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseModel = {};\nexports.Model = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModel);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModel);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseModel);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Any = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseAny = { typeUrl: \"\" };\nexports.Any = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.typeUrl !== \"\") {\n writer.uint32(10).string(message.typeUrl);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAny);\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.typeUrl = reader.string();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAny);\n message.typeUrl = object.typeUrl !== undefined && object.typeUrl !== null ? String(object.typeUrl) : \"\";\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseAny);\n message.typeUrl = (_a = object.typeUrl) !== null && _a !== void 0 ? _a : \"\";\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=any.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Duration = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseDuration = { seconds: long_1.default.ZERO, nanos: 0 };\nexports.Duration = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.seconds.isZero()) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDuration);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDuration);\n message.seconds =\n object.seconds !== undefined && object.seconds !== null ? long_1.default.fromString(object.seconds) : long_1.default.ZERO;\n message.nanos = object.nanos !== undefined && object.nanos !== null ? Number(object.nanos) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || long_1.default.ZERO).toString());\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDuration);\n message.seconds =\n object.seconds !== undefined && object.seconds !== null ? long_1.default.fromValue(object.seconds) : long_1.default.ZERO;\n message.nanos = (_a = object.nanos) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=duration.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Timestamp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseTimestamp = { seconds: long_1.default.ZERO, nanos: 0 };\nexports.Timestamp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.seconds.isZero()) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTimestamp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTimestamp);\n message.seconds =\n object.seconds !== undefined && object.seconds !== null ? long_1.default.fromString(object.seconds) : long_1.default.ZERO;\n message.nanos = object.nanos !== undefined && object.nanos !== null ? Number(object.nanos) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || long_1.default.ZERO).toString());\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseTimestamp);\n message.seconds =\n object.seconds !== undefined && object.seconds !== null ? long_1.default.fromValue(object.seconds) : long_1.default.ZERO;\n message.nanos = (_a = object.nanos) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=timestamp.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryDenomTracesResponse = exports.QueryDenomTracesRequest = exports.QueryDenomTraceResponse = exports.QueryDenomTraceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst transfer_1 = require(\"../../../../ibc/applications/transfer/v1/transfer\");\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nconst baseQueryDenomTraceRequest = { hash: \"\" };\nexports.QueryDenomTraceRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomTraceRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomTraceRequest);\n message.hash = object.hash !== undefined && object.hash !== null ? String(object.hash) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomTraceRequest);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDenomTraceResponse = {};\nexports.QueryDenomTraceResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denomTrace !== undefined) {\n transfer_1.DenomTrace.encode(message.denomTrace, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomTraceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomTrace = transfer_1.DenomTrace.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomTraceResponse);\n message.denomTrace =\n object.denomTrace !== undefined && object.denomTrace !== null\n ? transfer_1.DenomTrace.fromJSON(object.denomTrace)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denomTrace !== undefined &&\n (obj.denomTrace = message.denomTrace ? transfer_1.DenomTrace.toJSON(message.denomTrace) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDenomTraceResponse);\n message.denomTrace =\n object.denomTrace !== undefined && object.denomTrace !== null\n ? transfer_1.DenomTrace.fromPartial(object.denomTrace)\n : undefined;\n return message;\n },\n};\nconst baseQueryDenomTracesRequest = {};\nexports.QueryDenomTracesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomTracesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomTracesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDenomTracesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDenomTracesResponse = {};\nexports.QueryDenomTracesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.denomTraces) {\n transfer_1.DenomTrace.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomTracesResponse);\n message.denomTraces = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomTraces.push(transfer_1.DenomTrace.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomTracesResponse);\n message.denomTraces = ((_a = object.denomTraces) !== null && _a !== void 0 ? _a : []).map((e) => transfer_1.DenomTrace.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.denomTraces) {\n obj.denomTraces = message.denomTraces.map((e) => (e ? transfer_1.DenomTrace.toJSON(e) : undefined));\n }\n else {\n obj.denomTraces = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomTracesResponse);\n message.denomTraces = ((_a = object.denomTraces) === null || _a === void 0 ? void 0 : _a.map((e) => transfer_1.DenomTrace.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n transfer_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = transfer_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? transfer_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? transfer_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? transfer_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.DenomTrace = this.DenomTrace.bind(this);\n this.DenomTraces = this.DenomTraces.bind(this);\n this.Params = this.Params.bind(this);\n }\n DenomTrace(request) {\n const data = exports.QueryDenomTraceRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomTrace\", data);\n return promise.then((data) => exports.QueryDenomTraceResponse.decode(new minimal_1.default.Reader(data)));\n }\n DenomTraces(request) {\n const data = exports.QueryDenomTracesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomTraces\", data);\n return promise.then((data) => exports.QueryDenomTracesResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.DenomTrace = exports.FungibleTokenPacketData = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nconst baseFungibleTokenPacketData = { denom: \"\", amount: long_1.default.UZERO, sender: \"\", receiver: \"\" };\nexports.FungibleTokenPacketData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (!message.amount.isZero()) {\n writer.uint32(16).uint64(message.amount);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(34).string(message.receiver);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFungibleTokenPacketData);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.uint64();\n break;\n case 3:\n message.sender = reader.string();\n break;\n case 4:\n message.receiver = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFungibleTokenPacketData);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? long_1.default.fromString(object.amount) : long_1.default.UZERO;\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.receiver =\n object.receiver !== undefined && object.receiver !== null ? String(object.receiver) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = (message.amount || long_1.default.UZERO).toString());\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseFungibleTokenPacketData);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? long_1.default.fromValue(object.amount) : long_1.default.UZERO;\n message.sender = (_b = object.sender) !== null && _b !== void 0 ? _b : \"\";\n message.receiver = (_c = object.receiver) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseDenomTrace = { path: \"\", baseDenom: \"\" };\nexports.DenomTrace = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.baseDenom !== \"\") {\n writer.uint32(18).string(message.baseDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDenomTrace);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.path = reader.string();\n break;\n case 2:\n message.baseDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDenomTrace);\n message.path = object.path !== undefined && object.path !== null ? String(object.path) : \"\";\n message.baseDenom =\n object.baseDenom !== undefined && object.baseDenom !== null ? String(object.baseDenom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.path !== undefined && (obj.path = message.path);\n message.baseDenom !== undefined && (obj.baseDenom = message.baseDenom);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDenomTrace);\n message.path = (_a = object.path) !== null && _a !== void 0 ? _a : \"\";\n message.baseDenom = (_b = object.baseDenom) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseParams = { sendEnabled: false, receiveEnabled: false };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sendEnabled === true) {\n writer.uint32(8).bool(message.sendEnabled);\n }\n if (message.receiveEnabled === true) {\n writer.uint32(16).bool(message.receiveEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled = reader.bool();\n break;\n case 2:\n message.receiveEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.sendEnabled =\n object.sendEnabled !== undefined && object.sendEnabled !== null ? Boolean(object.sendEnabled) : false;\n message.receiveEnabled =\n object.receiveEnabled !== undefined && object.receiveEnabled !== null\n ? Boolean(object.receiveEnabled)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sendEnabled !== undefined && (obj.sendEnabled = message.sendEnabled);\n message.receiveEnabled !== undefined && (obj.receiveEnabled = message.receiveEnabled);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = (_a = object.sendEnabled) !== null && _a !== void 0 ? _a : false;\n message.receiveEnabled = (_b = object.receiveEnabled) !== null && _b !== void 0 ? _b : false;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=transfer.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgTransferResponse = exports.MsgTransfer = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../../cosmos/base/v1beta1/coin\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nconst baseMsgTransfer = {\n sourcePort: \"\",\n sourceChannel: \"\",\n sender: \"\",\n receiver: \"\",\n timeoutTimestamp: long_1.default.UZERO,\n};\nexports.MsgTransfer = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sourcePort !== \"\") {\n writer.uint32(10).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(18).string(message.sourceChannel);\n }\n if (message.token !== undefined) {\n coin_1.Coin.encode(message.token, writer.uint32(26).fork()).ldelim();\n }\n if (message.sender !== \"\") {\n writer.uint32(34).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(42).string(message.receiver);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim();\n }\n if (!message.timeoutTimestamp.isZero()) {\n writer.uint32(56).uint64(message.timeoutTimestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTransfer);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sourcePort = reader.string();\n break;\n case 2:\n message.sourceChannel = reader.string();\n break;\n case 3:\n message.token = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.sender = reader.string();\n break;\n case 5:\n message.receiver = reader.string();\n break;\n case 6:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.timeoutTimestamp = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTransfer);\n message.sourcePort =\n object.sourcePort !== undefined && object.sourcePort !== null ? String(object.sourcePort) : \"\";\n message.sourceChannel =\n object.sourceChannel !== undefined && object.sourceChannel !== null ? String(object.sourceChannel) : \"\";\n message.token =\n object.token !== undefined && object.token !== null ? coin_1.Coin.fromJSON(object.token) : undefined;\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.receiver =\n object.receiver !== undefined && object.receiver !== null ? String(object.receiver) : \"\";\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? client_1.Height.fromJSON(object.timeoutHeight)\n : undefined;\n message.timeoutTimestamp =\n object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null\n ? long_1.default.fromString(object.timeoutTimestamp)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.token !== undefined && (obj.token = message.token ? coin_1.Coin.toJSON(message.token) : undefined);\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgTransfer);\n message.sourcePort = (_a = object.sourcePort) !== null && _a !== void 0 ? _a : \"\";\n message.sourceChannel = (_b = object.sourceChannel) !== null && _b !== void 0 ? _b : \"\";\n message.token =\n object.token !== undefined && object.token !== null ? coin_1.Coin.fromPartial(object.token) : undefined;\n message.sender = (_c = object.sender) !== null && _c !== void 0 ? _c : \"\";\n message.receiver = (_d = object.receiver) !== null && _d !== void 0 ? _d : \"\";\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? client_1.Height.fromPartial(object.timeoutHeight)\n : undefined;\n message.timeoutTimestamp =\n object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null\n ? long_1.default.fromValue(object.timeoutTimestamp)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseMsgTransferResponse = {};\nexports.MsgTransferResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTransferResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgTransferResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTransferResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Transfer = this.Transfer.bind(this);\n }\n Transfer(request) {\n const data = exports.MsgTransfer.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Msg\", \"Transfer\", data);\n return promise.then((data) => exports.MsgTransferResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Acknowledgement = exports.PacketState = exports.Packet = exports.Counterparty = exports.IdentifiedChannel = exports.Channel = exports.orderToJSON = exports.orderFromJSON = exports.Order = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\n/**\n * State defines if a channel is in one of the following states:\n * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A channel has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /**\n * STATE_OPEN - A channel has completed the handshake. Open channels are\n * ready to send and receive packets.\n */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n /**\n * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive\n * packets.\n */\n State[State[\"STATE_CLOSED\"] = 4] = \"STATE_CLOSED\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State = exports.State || (exports.State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case 4:\n case \"STATE_CLOSED\":\n return State.STATE_CLOSED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n case State.STATE_CLOSED:\n return \"STATE_CLOSED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.stateToJSON = stateToJSON;\n/** Order defines if a channel is ORDERED or UNORDERED */\nvar Order;\n(function (Order) {\n /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */\n Order[Order[\"ORDER_NONE_UNSPECIFIED\"] = 0] = \"ORDER_NONE_UNSPECIFIED\";\n /**\n * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in\n * which they were sent.\n */\n Order[Order[\"ORDER_UNORDERED\"] = 1] = \"ORDER_UNORDERED\";\n /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */\n Order[Order[\"ORDER_ORDERED\"] = 2] = \"ORDER_ORDERED\";\n Order[Order[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Order = exports.Order || (exports.Order = {}));\nfunction orderFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_NONE_UNSPECIFIED\":\n return Order.ORDER_NONE_UNSPECIFIED;\n case 1:\n case \"ORDER_UNORDERED\":\n return Order.ORDER_UNORDERED;\n case 2:\n case \"ORDER_ORDERED\":\n return Order.ORDER_ORDERED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Order.UNRECOGNIZED;\n }\n}\nexports.orderFromJSON = orderFromJSON;\nfunction orderToJSON(object) {\n switch (object) {\n case Order.ORDER_NONE_UNSPECIFIED:\n return \"ORDER_NONE_UNSPECIFIED\";\n case Order.ORDER_UNORDERED:\n return \"ORDER_UNORDERED\";\n case Order.ORDER_ORDERED:\n return \"ORDER_ORDERED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.orderToJSON = orderToJSON;\nconst baseChannel = { state: 0, ordering: 0, connectionHops: \"\", version: \"\" };\nexports.Channel = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseChannel);\n message.connectionHops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseChannel);\n message.state = object.state !== undefined && object.state !== null ? stateFromJSON(object.state) : 0;\n message.ordering =\n object.ordering !== undefined && object.ordering !== null ? orderFromJSON(object.ordering) : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.connectionHops = ((_a = object.connectionHops) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.version = object.version !== undefined && object.version !== null ? String(object.version) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseChannel);\n message.state = (_a = object.state) !== null && _a !== void 0 ? _a : 0;\n message.ordering = (_b = object.ordering) !== null && _b !== void 0 ? _b : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.connectionHops = ((_c = object.connectionHops) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n message.version = (_d = object.version) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseIdentifiedChannel = {\n state: 0,\n ordering: 0,\n connectionHops: \"\",\n version: \"\",\n portId: \"\",\n channelId: \"\",\n};\nexports.IdentifiedChannel = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n if (message.portId !== \"\") {\n writer.uint32(50).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(58).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedChannel);\n message.connectionHops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n case 6:\n message.portId = reader.string();\n break;\n case 7:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseIdentifiedChannel);\n message.state = object.state !== undefined && object.state !== null ? stateFromJSON(object.state) : 0;\n message.ordering =\n object.ordering !== undefined && object.ordering !== null ? orderFromJSON(object.ordering) : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.connectionHops = ((_a = object.connectionHops) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.version = object.version !== undefined && object.version !== null ? String(object.version) : \"\";\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseIdentifiedChannel);\n message.state = (_a = object.state) !== null && _a !== void 0 ? _a : 0;\n message.ordering = (_b = object.ordering) !== null && _b !== void 0 ? _b : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.connectionHops = ((_c = object.connectionHops) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n message.version = (_d = object.version) !== null && _d !== void 0 ? _d : \"\";\n message.portId = (_e = object.portId) !== null && _e !== void 0 ? _e : \"\";\n message.channelId = (_f = object.channelId) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseCounterparty = { portId: \"\", channelId: \"\" };\nexports.Counterparty = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCounterparty);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCounterparty);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCounterparty);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst basePacket = {\n sequence: long_1.default.UZERO,\n sourcePort: \"\",\n sourceChannel: \"\",\n destinationPort: \"\",\n destinationChannel: \"\",\n timeoutTimestamp: long_1.default.UZERO,\n};\nexports.Packet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.sequence.isZero()) {\n writer.uint32(8).uint64(message.sequence);\n }\n if (message.sourcePort !== \"\") {\n writer.uint32(18).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(26).string(message.sourceChannel);\n }\n if (message.destinationPort !== \"\") {\n writer.uint32(34).string(message.destinationPort);\n }\n if (message.destinationChannel !== \"\") {\n writer.uint32(42).string(message.destinationChannel);\n }\n if (message.data.length !== 0) {\n writer.uint32(50).bytes(message.data);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(58).fork()).ldelim();\n }\n if (!message.timeoutTimestamp.isZero()) {\n writer.uint32(64).uint64(message.timeoutTimestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePacket);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = reader.uint64();\n break;\n case 2:\n message.sourcePort = reader.string();\n break;\n case 3:\n message.sourceChannel = reader.string();\n break;\n case 4:\n message.destinationPort = reader.string();\n break;\n case 5:\n message.destinationChannel = reader.string();\n break;\n case 6:\n message.data = reader.bytes();\n break;\n case 7:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.timeoutTimestamp = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePacket);\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n message.sourcePort =\n object.sourcePort !== undefined && object.sourcePort !== null ? String(object.sourcePort) : \"\";\n message.sourceChannel =\n object.sourceChannel !== undefined && object.sourceChannel !== null ? String(object.sourceChannel) : \"\";\n message.destinationPort =\n object.destinationPort !== undefined && object.destinationPort !== null\n ? String(object.destinationPort)\n : \"\";\n message.destinationChannel =\n object.destinationChannel !== undefined && object.destinationChannel !== null\n ? String(object.destinationChannel)\n : \"\";\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? client_1.Height.fromJSON(object.timeoutHeight)\n : undefined;\n message.timeoutTimestamp =\n object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null\n ? long_1.default.fromString(object.timeoutTimestamp)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.destinationPort !== undefined && (obj.destinationPort = message.destinationPort);\n message.destinationChannel !== undefined && (obj.destinationChannel = message.destinationChannel);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, basePacket);\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n message.sourcePort = (_a = object.sourcePort) !== null && _a !== void 0 ? _a : \"\";\n message.sourceChannel = (_b = object.sourceChannel) !== null && _b !== void 0 ? _b : \"\";\n message.destinationPort = (_c = object.destinationPort) !== null && _c !== void 0 ? _c : \"\";\n message.destinationChannel = (_d = object.destinationChannel) !== null && _d !== void 0 ? _d : \"\";\n message.data = (_e = object.data) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? client_1.Height.fromPartial(object.timeoutHeight)\n : undefined;\n message.timeoutTimestamp =\n object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null\n ? long_1.default.fromValue(object.timeoutTimestamp)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst basePacketState = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.PacketState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n if (message.data.length !== 0) {\n writer.uint32(34).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePacketState);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n case 4:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePacketState);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, basePacketState);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n message.data = (_c = object.data) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseAcknowledgement = {};\nexports.Acknowledgement = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== undefined) {\n writer.uint32(170).bytes(message.result);\n }\n if (message.error !== undefined) {\n writer.uint32(178).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAcknowledgement);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 21:\n message.result = reader.bytes();\n break;\n case 22:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAcknowledgement);\n message.result =\n object.result !== undefined && object.result !== null ? bytesFromBase64(object.result) : undefined;\n message.error = object.error !== undefined && object.error !== null ? String(object.error) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined &&\n (obj.result = message.result !== undefined ? base64FromBytes(message.result) : undefined);\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseAcknowledgement);\n message.result = (_a = object.result) !== null && _a !== void 0 ? _a : undefined;\n message.error = (_b = object.error) !== null && _b !== void 0 ? _b : undefined;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=channel.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryNextSequenceReceiveResponse = exports.QueryNextSequenceReceiveRequest = exports.QueryUnreceivedAcksResponse = exports.QueryUnreceivedAcksRequest = exports.QueryUnreceivedPacketsResponse = exports.QueryUnreceivedPacketsRequest = exports.QueryPacketAcknowledgementsResponse = exports.QueryPacketAcknowledgementsRequest = exports.QueryPacketAcknowledgementResponse = exports.QueryPacketAcknowledgementRequest = exports.QueryPacketReceiptResponse = exports.QueryPacketReceiptRequest = exports.QueryPacketCommitmentsResponse = exports.QueryPacketCommitmentsRequest = exports.QueryPacketCommitmentResponse = exports.QueryPacketCommitmentRequest = exports.QueryChannelConsensusStateResponse = exports.QueryChannelConsensusStateRequest = exports.QueryChannelClientStateResponse = exports.QueryChannelClientStateRequest = exports.QueryConnectionChannelsResponse = exports.QueryConnectionChannelsRequest = exports.QueryChannelsResponse = exports.QueryChannelsRequest = exports.QueryChannelResponse = exports.QueryChannelRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst channel_1 = require(\"../../../../ibc/core/channel/v1/channel\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\nconst baseQueryChannelRequest = { portId: \"\", channelId: \"\" };\nexports.QueryChannelRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryChannelRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryChannelResponse = {};\nexports.QueryChannelResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelResponse);\n message.channel =\n object.channel !== undefined && object.channel !== null ? channel_1.Channel.fromJSON(object.channel) : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryChannelResponse);\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? channel_1.Channel.fromPartial(object.channel)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryChannelsRequest = {};\nexports.QueryChannelsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryChannelsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryChannelsResponse = {};\nexports.QueryChannelsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.channels) {\n channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelsResponse);\n message.channels = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channels.push(channel_1.IdentifiedChannel.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryChannelsResponse);\n message.channels = ((_a = object.channels) !== null && _a !== void 0 ? _a : []).map((e) => channel_1.IdentifiedChannel.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.channels) {\n obj.channels = message.channels.map((e) => (e ? channel_1.IdentifiedChannel.toJSON(e) : undefined));\n }\n else {\n obj.channels = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryChannelsResponse);\n message.channels = ((_a = object.channels) === null || _a === void 0 ? void 0 : _a.map((e) => channel_1.IdentifiedChannel.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryConnectionChannelsRequest = { connection: \"\" };\nexports.QueryConnectionChannelsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connection !== \"\") {\n writer.uint32(10).string(message.connection);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionChannelsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionChannelsRequest);\n message.connection =\n object.connection !== undefined && object.connection !== null ? String(object.connection) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connection !== undefined && (obj.connection = message.connection);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionChannelsRequest);\n message.connection = (_a = object.connection) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionChannelsResponse = {};\nexports.QueryConnectionChannelsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.channels) {\n channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionChannelsResponse);\n message.channels = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channels.push(channel_1.IdentifiedChannel.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionChannelsResponse);\n message.channels = ((_a = object.channels) !== null && _a !== void 0 ? _a : []).map((e) => channel_1.IdentifiedChannel.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.channels) {\n obj.channels = message.channels.map((e) => (e ? channel_1.IdentifiedChannel.toJSON(e) : undefined));\n }\n else {\n obj.channels = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionChannelsResponse);\n message.channels = ((_a = object.channels) === null || _a === void 0 ? void 0 : _a.map((e) => channel_1.IdentifiedChannel.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryChannelClientStateRequest = { portId: \"\", channelId: \"\" };\nexports.QueryChannelClientStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelClientStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelClientStateRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryChannelClientStateRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryChannelClientStateResponse = {};\nexports.QueryChannelClientStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.identifiedClientState !== undefined) {\n client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelClientStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelClientStateResponse);\n message.identifiedClientState =\n object.identifiedClientState !== undefined && object.identifiedClientState !== null\n ? client_1.IdentifiedClientState.fromJSON(object.identifiedClientState)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.identifiedClientState !== undefined &&\n (obj.identifiedClientState = message.identifiedClientState\n ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState)\n : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryChannelClientStateResponse);\n message.identifiedClientState =\n object.identifiedClientState !== undefined && object.identifiedClientState !== null\n ? client_1.IdentifiedClientState.fromPartial(object.identifiedClientState)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryChannelConsensusStateRequest = {\n portId: \"\",\n channelId: \"\",\n revisionNumber: long_1.default.UZERO,\n revisionHeight: long_1.default.UZERO,\n};\nexports.QueryChannelConsensusStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.revisionNumber.isZero()) {\n writer.uint32(24).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(32).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelConsensusStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.revisionNumber = reader.uint64();\n break;\n case 4:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelConsensusStateRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromString(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromString(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryChannelConsensusStateRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromValue(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromValue(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryChannelConsensusStateResponse = { clientId: \"\" };\nexports.QueryChannelConsensusStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelConsensusStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryChannelConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketCommitmentRequest = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.QueryPacketCommitmentRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketCommitmentRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketCommitmentRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketCommitmentRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryPacketCommitmentResponse = {};\nexports.QueryPacketCommitmentResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.commitment.length !== 0) {\n writer.uint32(10).bytes(message.commitment);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketCommitmentResponse);\n message.commitment = new Uint8Array();\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commitment = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketCommitmentResponse);\n message.commitment =\n object.commitment !== undefined && object.commitment !== null\n ? bytesFromBase64(object.commitment)\n : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.commitment !== undefined &&\n (obj.commitment = base64FromBytes(message.commitment !== undefined ? message.commitment : new Uint8Array()));\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketCommitmentResponse);\n message.commitment = (_a = object.commitment) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketCommitmentsRequest = { portId: \"\", channelId: \"\" };\nexports.QueryPacketCommitmentsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketCommitmentsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketCommitmentsRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketCommitmentsRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketCommitmentsResponse = {};\nexports.QueryPacketCommitmentsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.commitments) {\n channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketCommitmentsResponse);\n message.commitments = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commitments.push(channel_1.PacketState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryPacketCommitmentsResponse);\n message.commitments = ((_a = object.commitments) !== null && _a !== void 0 ? _a : []).map((e) => channel_1.PacketState.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.commitments) {\n obj.commitments = message.commitments.map((e) => (e ? channel_1.PacketState.toJSON(e) : undefined));\n }\n else {\n obj.commitments = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryPacketCommitmentsResponse);\n message.commitments = ((_a = object.commitments) === null || _a === void 0 ? void 0 : _a.map((e) => channel_1.PacketState.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryPacketReceiptRequest = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.QueryPacketReceiptRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketReceiptRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketReceiptRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketReceiptRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryPacketReceiptResponse = { received: false };\nexports.QueryPacketReceiptResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.received === true) {\n writer.uint32(16).bool(message.received);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketReceiptResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.received = reader.bool();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketReceiptResponse);\n message.received =\n object.received !== undefined && object.received !== null ? Boolean(object.received) : false;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.received !== undefined && (obj.received = message.received);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketReceiptResponse);\n message.received = (_a = object.received) !== null && _a !== void 0 ? _a : false;\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketAcknowledgementRequest = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.QueryPacketAcknowledgementRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketAcknowledgementRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketAcknowledgementRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketAcknowledgementRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryPacketAcknowledgementResponse = {};\nexports.QueryPacketAcknowledgementResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.acknowledgement.length !== 0) {\n writer.uint32(10).bytes(message.acknowledgement);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketAcknowledgementResponse);\n message.acknowledgement = new Uint8Array();\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.acknowledgement = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketAcknowledgementResponse);\n message.acknowledgement =\n object.acknowledgement !== undefined && object.acknowledgement !== null\n ? bytesFromBase64(object.acknowledgement)\n : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketAcknowledgementResponse);\n message.acknowledgement = (_a = object.acknowledgement) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketAcknowledgementsRequest = { portId: \"\", channelId: \"\" };\nexports.QueryPacketAcknowledgementsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketAcknowledgementsRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketAcknowledgementsResponse = {};\nexports.QueryPacketAcknowledgementsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.acknowledgements) {\n channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsResponse);\n message.acknowledgements = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.acknowledgements.push(channel_1.PacketState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsResponse);\n message.acknowledgements = ((_a = object.acknowledgements) !== null && _a !== void 0 ? _a : []).map((e) => channel_1.PacketState.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.acknowledgements) {\n obj.acknowledgements = message.acknowledgements.map((e) => (e ? channel_1.PacketState.toJSON(e) : undefined));\n }\n else {\n obj.acknowledgements = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsResponse);\n message.acknowledgements = ((_a = object.acknowledgements) === null || _a === void 0 ? void 0 : _a.map((e) => channel_1.PacketState.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryUnreceivedPacketsRequest = {\n portId: \"\",\n channelId: \"\",\n packetCommitmentSequences: long_1.default.UZERO,\n};\nexports.QueryUnreceivedPacketsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n writer.uint32(26).fork();\n for (const v of message.packetCommitmentSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnreceivedPacketsRequest);\n message.packetCommitmentSequences = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n }\n else {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedPacketsRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.packetCommitmentSequences = ((_a = object.packetCommitmentSequences) !== null && _a !== void 0 ? _a : []).map((e) => long_1.default.fromString(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n if (message.packetCommitmentSequences) {\n obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.packetCommitmentSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseQueryUnreceivedPacketsRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.packetCommitmentSequences = ((_c = object.packetCommitmentSequences) === null || _c === void 0 ? void 0 : _c.map((e) => long_1.default.fromValue(e))) || [];\n return message;\n },\n};\nconst baseQueryUnreceivedPacketsResponse = { sequences: long_1.default.UZERO };\nexports.QueryUnreceivedPacketsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n writer.uint32(10).fork();\n for (const v of message.sequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnreceivedPacketsResponse);\n message.sequences = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.sequences.push(reader.uint64());\n }\n }\n else {\n message.sequences.push(reader.uint64());\n }\n break;\n case 2:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedPacketsResponse);\n message.sequences = ((_a = object.sequences) !== null && _a !== void 0 ? _a : []).map((e) => long_1.default.fromString(e));\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.sequences) {\n obj.sequences = message.sequences.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.sequences = [];\n }\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedPacketsResponse);\n message.sequences = ((_a = object.sequences) === null || _a === void 0 ? void 0 : _a.map((e) => long_1.default.fromValue(e))) || [];\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryUnreceivedAcksRequest = { portId: \"\", channelId: \"\", packetAckSequences: long_1.default.UZERO };\nexports.QueryUnreceivedAcksRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n writer.uint32(26).fork();\n for (const v of message.packetAckSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnreceivedAcksRequest);\n message.packetAckSequences = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetAckSequences.push(reader.uint64());\n }\n }\n else {\n message.packetAckSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedAcksRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.packetAckSequences = ((_a = object.packetAckSequences) !== null && _a !== void 0 ? _a : []).map((e) => long_1.default.fromString(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n if (message.packetAckSequences) {\n obj.packetAckSequences = message.packetAckSequences.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.packetAckSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseQueryUnreceivedAcksRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.packetAckSequences = ((_c = object.packetAckSequences) === null || _c === void 0 ? void 0 : _c.map((e) => long_1.default.fromValue(e))) || [];\n return message;\n },\n};\nconst baseQueryUnreceivedAcksResponse = { sequences: long_1.default.UZERO };\nexports.QueryUnreceivedAcksResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n writer.uint32(10).fork();\n for (const v of message.sequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnreceivedAcksResponse);\n message.sequences = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.sequences.push(reader.uint64());\n }\n }\n else {\n message.sequences.push(reader.uint64());\n }\n break;\n case 2:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedAcksResponse);\n message.sequences = ((_a = object.sequences) !== null && _a !== void 0 ? _a : []).map((e) => long_1.default.fromString(e));\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.sequences) {\n obj.sequences = message.sequences.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.sequences = [];\n }\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedAcksResponse);\n message.sequences = ((_a = object.sequences) === null || _a === void 0 ? void 0 : _a.map((e) => long_1.default.fromValue(e))) || [];\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryNextSequenceReceiveRequest = { portId: \"\", channelId: \"\" };\nexports.QueryNextSequenceReceiveRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryNextSequenceReceiveRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryNextSequenceReceiveRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryNextSequenceReceiveRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryNextSequenceReceiveResponse = { nextSequenceReceive: long_1.default.UZERO };\nexports.QueryNextSequenceReceiveResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.nextSequenceReceive.isZero()) {\n writer.uint32(8).uint64(message.nextSequenceReceive);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryNextSequenceReceiveResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextSequenceReceive = reader.uint64();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryNextSequenceReceiveResponse);\n message.nextSequenceReceive =\n object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null\n ? long_1.default.fromString(object.nextSequenceReceive)\n : long_1.default.UZERO;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.nextSequenceReceive !== undefined &&\n (obj.nextSequenceReceive = (message.nextSequenceReceive || long_1.default.UZERO).toString());\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryNextSequenceReceiveResponse);\n message.nextSequenceReceive =\n object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null\n ? long_1.default.fromValue(object.nextSequenceReceive)\n : long_1.default.UZERO;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Channel = this.Channel.bind(this);\n this.Channels = this.Channels.bind(this);\n this.ConnectionChannels = this.ConnectionChannels.bind(this);\n this.ChannelClientState = this.ChannelClientState.bind(this);\n this.ChannelConsensusState = this.ChannelConsensusState.bind(this);\n this.PacketCommitment = this.PacketCommitment.bind(this);\n this.PacketCommitments = this.PacketCommitments.bind(this);\n this.PacketReceipt = this.PacketReceipt.bind(this);\n this.PacketAcknowledgement = this.PacketAcknowledgement.bind(this);\n this.PacketAcknowledgements = this.PacketAcknowledgements.bind(this);\n this.UnreceivedPackets = this.UnreceivedPackets.bind(this);\n this.UnreceivedAcks = this.UnreceivedAcks.bind(this);\n this.NextSequenceReceive = this.NextSequenceReceive.bind(this);\n }\n Channel(request) {\n const data = exports.QueryChannelRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"Channel\", data);\n return promise.then((data) => exports.QueryChannelResponse.decode(new minimal_1.default.Reader(data)));\n }\n Channels(request) {\n const data = exports.QueryChannelsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"Channels\", data);\n return promise.then((data) => exports.QueryChannelsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionChannels(request) {\n const data = exports.QueryConnectionChannelsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ConnectionChannels\", data);\n return promise.then((data) => exports.QueryConnectionChannelsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelClientState(request) {\n const data = exports.QueryChannelClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ChannelClientState\", data);\n return promise.then((data) => exports.QueryChannelClientStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelConsensusState(request) {\n const data = exports.QueryChannelConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ChannelConsensusState\", data);\n return promise.then((data) => exports.QueryChannelConsensusStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketCommitment(request) {\n const data = exports.QueryPacketCommitmentRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketCommitment\", data);\n return promise.then((data) => exports.QueryPacketCommitmentResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketCommitments(request) {\n const data = exports.QueryPacketCommitmentsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketCommitments\", data);\n return promise.then((data) => exports.QueryPacketCommitmentsResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketReceipt(request) {\n const data = exports.QueryPacketReceiptRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketReceipt\", data);\n return promise.then((data) => exports.QueryPacketReceiptResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketAcknowledgement(request) {\n const data = exports.QueryPacketAcknowledgementRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketAcknowledgement\", data);\n return promise.then((data) => exports.QueryPacketAcknowledgementResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketAcknowledgements(request) {\n const data = exports.QueryPacketAcknowledgementsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketAcknowledgements\", data);\n return promise.then((data) => exports.QueryPacketAcknowledgementsResponse.decode(new minimal_1.default.Reader(data)));\n }\n UnreceivedPackets(request) {\n const data = exports.QueryUnreceivedPacketsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"UnreceivedPackets\", data);\n return promise.then((data) => exports.QueryUnreceivedPacketsResponse.decode(new minimal_1.default.Reader(data)));\n }\n UnreceivedAcks(request) {\n const data = exports.QueryUnreceivedAcksRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"UnreceivedAcks\", data);\n return promise.then((data) => exports.QueryUnreceivedAcksResponse.decode(new minimal_1.default.Reader(data)));\n }\n NextSequenceReceive(request) {\n const data = exports.QueryNextSequenceReceiveRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"NextSequenceReceive\", data);\n return promise.then((data) => exports.QueryNextSequenceReceiveResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgAcknowledgementResponse = exports.MsgAcknowledgement = exports.MsgTimeoutOnCloseResponse = exports.MsgTimeoutOnClose = exports.MsgTimeoutResponse = exports.MsgTimeout = exports.MsgRecvPacketResponse = exports.MsgRecvPacket = exports.MsgChannelCloseConfirmResponse = exports.MsgChannelCloseConfirm = exports.MsgChannelCloseInitResponse = exports.MsgChannelCloseInit = exports.MsgChannelOpenConfirmResponse = exports.MsgChannelOpenConfirm = exports.MsgChannelOpenAckResponse = exports.MsgChannelOpenAck = exports.MsgChannelOpenTryResponse = exports.MsgChannelOpenTry = exports.MsgChannelOpenInitResponse = exports.MsgChannelOpenInit = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst channel_1 = require(\"../../../../ibc/core/channel/v1/channel\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\nconst baseMsgChannelOpenInit = { portId: \"\", signer: \"\" };\nexports.MsgChannelOpenInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenInit);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null ? channel_1.Channel.fromJSON(object.channel) : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgChannelOpenInit);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? channel_1.Channel.fromPartial(object.channel)\n : undefined;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgChannelOpenInitResponse = {};\nexports.MsgChannelOpenInitResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n return message;\n },\n};\nconst baseMsgChannelOpenTry = {\n portId: \"\",\n previousChannelId: \"\",\n counterpartyVersion: \"\",\n signer: \"\",\n};\nexports.MsgChannelOpenTry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.previousChannelId !== \"\") {\n writer.uint32(18).string(message.previousChannelId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(42).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenTry);\n message.proofInit = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.previousChannelId = reader.string();\n break;\n case 3:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofInit = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenTry);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.previousChannelId =\n object.previousChannelId !== undefined && object.previousChannelId !== null\n ? String(object.previousChannelId)\n : \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null ? channel_1.Channel.fromJSON(object.channel) : undefined;\n message.counterpartyVersion =\n object.counterpartyVersion !== undefined && object.counterpartyVersion !== null\n ? String(object.counterpartyVersion)\n : \"\";\n message.proofInit =\n object.proofInit !== undefined && object.proofInit !== null\n ? bytesFromBase64(object.proofInit)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.previousChannelId !== undefined && (obj.previousChannelId = message.previousChannelId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseMsgChannelOpenTry);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.previousChannelId = (_b = object.previousChannelId) !== null && _b !== void 0 ? _b : \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? channel_1.Channel.fromPartial(object.channel)\n : undefined;\n message.counterpartyVersion = (_c = object.counterpartyVersion) !== null && _c !== void 0 ? _c : \"\";\n message.proofInit = (_d = object.proofInit) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_e = object.signer) !== null && _e !== void 0 ? _e : \"\";\n return message;\n },\n};\nconst baseMsgChannelOpenTryResponse = {};\nexports.MsgChannelOpenTryResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n return message;\n },\n};\nconst baseMsgChannelOpenAck = {\n portId: \"\",\n channelId: \"\",\n counterpartyChannelId: \"\",\n counterpartyVersion: \"\",\n signer: \"\",\n};\nexports.MsgChannelOpenAck = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.counterpartyChannelId !== \"\") {\n writer.uint32(26).string(message.counterpartyChannelId);\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(42).bytes(message.proofTry);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenAck);\n message.proofTry = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.counterpartyChannelId = reader.string();\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofTry = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenAck);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.counterpartyChannelId =\n object.counterpartyChannelId !== undefined && object.counterpartyChannelId !== null\n ? String(object.counterpartyChannelId)\n : \"\";\n message.counterpartyVersion =\n object.counterpartyVersion !== undefined && object.counterpartyVersion !== null\n ? String(object.counterpartyVersion)\n : \"\";\n message.proofTry =\n object.proofTry !== undefined && object.proofTry !== null\n ? bytesFromBase64(object.proofTry)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.counterpartyChannelId !== undefined &&\n (obj.counterpartyChannelId = message.counterpartyChannelId);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofTry !== undefined &&\n (obj.proofTry = base64FromBytes(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseMsgChannelOpenAck);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.counterpartyChannelId = (_c = object.counterpartyChannelId) !== null && _c !== void 0 ? _c : \"\";\n message.counterpartyVersion = (_d = object.counterpartyVersion) !== null && _d !== void 0 ? _d : \"\";\n message.proofTry = (_e = object.proofTry) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_f = object.signer) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseMsgChannelOpenAckResponse = {};\nexports.MsgChannelOpenAckResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n return message;\n },\n};\nconst baseMsgChannelOpenConfirm = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelOpenConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(26).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n message.proofAck = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofAck = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.proofAck =\n object.proofAck !== undefined && object.proofAck !== null\n ? bytesFromBase64(object.proofAck)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofAck !== undefined &&\n (obj.proofAck = base64FromBytes(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.proofAck = (_c = object.proofAck) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_d = object.signer) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseMsgChannelOpenConfirmResponse = {};\nexports.MsgChannelOpenConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n return message;\n },\n};\nconst baseMsgChannelCloseInit = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelCloseInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelCloseInit);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgChannelCloseInit);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.signer = (_c = object.signer) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgChannelCloseInitResponse = {};\nexports.MsgChannelCloseInitResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n return message;\n },\n};\nconst baseMsgChannelCloseConfirm = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelCloseConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(26).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n message.proofInit = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofInit = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.proofInit =\n object.proofInit !== undefined && object.proofInit !== null\n ? bytesFromBase64(object.proofInit)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.proofInit = (_c = object.proofInit) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_d = object.signer) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseMsgChannelCloseConfirmResponse = {};\nexports.MsgChannelCloseConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n return message;\n },\n};\nconst baseMsgRecvPacket = { signer: \"\" };\nexports.MsgRecvPacket = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofCommitment.length !== 0) {\n writer.uint32(18).bytes(message.proofCommitment);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRecvPacket);\n message.proofCommitment = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofCommitment = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRecvPacket);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromJSON(object.packet) : undefined;\n message.proofCommitment =\n object.proofCommitment !== undefined && object.proofCommitment !== null\n ? bytesFromBase64(object.proofCommitment)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofCommitment !== undefined &&\n (obj.proofCommitment = base64FromBytes(message.proofCommitment !== undefined ? message.proofCommitment : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgRecvPacket);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined;\n message.proofCommitment = (_a = object.proofCommitment) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgRecvPacketResponse = {};\nexports.MsgRecvPacketResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n return message;\n },\n};\nconst baseMsgTimeout = { nextSequenceRecv: long_1.default.UZERO, signer: \"\" };\nexports.MsgTimeout = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (!message.nextSequenceRecv.isZero()) {\n writer.uint32(32).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeout);\n message.proofUnreceived = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTimeout);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromJSON(object.packet) : undefined;\n message.proofUnreceived =\n object.proofUnreceived !== undefined && object.proofUnreceived !== null\n ? bytesFromBase64(object.proofUnreceived)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.nextSequenceRecv =\n object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null\n ? long_1.default.fromString(object.nextSequenceRecv)\n : long_1.default.UZERO;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = base64FromBytes(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgTimeout);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined;\n message.proofUnreceived = (_a = object.proofUnreceived) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.nextSequenceRecv =\n object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null\n ? long_1.default.fromValue(object.nextSequenceRecv)\n : long_1.default.UZERO;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgTimeoutResponse = {};\nexports.MsgTimeoutResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgTimeoutResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTimeoutResponse);\n return message;\n },\n};\nconst baseMsgTimeoutOnClose = { nextSequenceRecv: long_1.default.UZERO, signer: \"\" };\nexports.MsgTimeoutOnClose = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofClose.length !== 0) {\n writer.uint32(26).bytes(message.proofClose);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (!message.nextSequenceRecv.isZero()) {\n writer.uint32(40).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n message.proofUnreceived = new Uint8Array();\n message.proofClose = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofClose = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromJSON(object.packet) : undefined;\n message.proofUnreceived =\n object.proofUnreceived !== undefined && object.proofUnreceived !== null\n ? bytesFromBase64(object.proofUnreceived)\n : new Uint8Array();\n message.proofClose =\n object.proofClose !== undefined && object.proofClose !== null\n ? bytesFromBase64(object.proofClose)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.nextSequenceRecv =\n object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null\n ? long_1.default.fromString(object.nextSequenceRecv)\n : long_1.default.UZERO;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = base64FromBytes(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofClose !== undefined &&\n (obj.proofClose = base64FromBytes(message.proofClose !== undefined ? message.proofClose : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined;\n message.proofUnreceived = (_a = object.proofUnreceived) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofClose = (_b = object.proofClose) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.nextSequenceRecv =\n object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null\n ? long_1.default.fromValue(object.nextSequenceRecv)\n : long_1.default.UZERO;\n message.signer = (_c = object.signer) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgTimeoutOnCloseResponse = {};\nexports.MsgTimeoutOnCloseResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n return message;\n },\n};\nconst baseMsgAcknowledgement = { signer: \"\" };\nexports.MsgAcknowledgement = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.acknowledgement.length !== 0) {\n writer.uint32(18).bytes(message.acknowledgement);\n }\n if (message.proofAcked.length !== 0) {\n writer.uint32(26).bytes(message.proofAcked);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAcknowledgement);\n message.acknowledgement = new Uint8Array();\n message.proofAcked = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.acknowledgement = reader.bytes();\n break;\n case 3:\n message.proofAcked = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgAcknowledgement);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromJSON(object.packet) : undefined;\n message.acknowledgement =\n object.acknowledgement !== undefined && object.acknowledgement !== null\n ? bytesFromBase64(object.acknowledgement)\n : new Uint8Array();\n message.proofAcked =\n object.proofAcked !== undefined && object.proofAcked !== null\n ? bytesFromBase64(object.proofAcked)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proofAcked !== undefined &&\n (obj.proofAcked = base64FromBytes(message.proofAcked !== undefined ? message.proofAcked : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgAcknowledgement);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined;\n message.acknowledgement = (_a = object.acknowledgement) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofAcked = (_b = object.proofAcked) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_c = object.signer) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgAcknowledgementResponse = {};\nexports.MsgAcknowledgementResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ChannelOpenInit = this.ChannelOpenInit.bind(this);\n this.ChannelOpenTry = this.ChannelOpenTry.bind(this);\n this.ChannelOpenAck = this.ChannelOpenAck.bind(this);\n this.ChannelOpenConfirm = this.ChannelOpenConfirm.bind(this);\n this.ChannelCloseInit = this.ChannelCloseInit.bind(this);\n this.ChannelCloseConfirm = this.ChannelCloseConfirm.bind(this);\n this.RecvPacket = this.RecvPacket.bind(this);\n this.Timeout = this.Timeout.bind(this);\n this.TimeoutOnClose = this.TimeoutOnClose.bind(this);\n this.Acknowledgement = this.Acknowledgement.bind(this);\n }\n ChannelOpenInit(request) {\n const data = exports.MsgChannelOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenInit\", data);\n return promise.then((data) => exports.MsgChannelOpenInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenTry(request) {\n const data = exports.MsgChannelOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenTry\", data);\n return promise.then((data) => exports.MsgChannelOpenTryResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenAck(request) {\n const data = exports.MsgChannelOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenAck\", data);\n return promise.then((data) => exports.MsgChannelOpenAckResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenConfirm(request) {\n const data = exports.MsgChannelOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenConfirm\", data);\n return promise.then((data) => exports.MsgChannelOpenConfirmResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelCloseInit(request) {\n const data = exports.MsgChannelCloseInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseInit\", data);\n return promise.then((data) => exports.MsgChannelCloseInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelCloseConfirm(request) {\n const data = exports.MsgChannelCloseConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseConfirm\", data);\n return promise.then((data) => exports.MsgChannelCloseConfirmResponse.decode(new minimal_1.default.Reader(data)));\n }\n RecvPacket(request) {\n const data = exports.MsgRecvPacket.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"RecvPacket\", data);\n return promise.then((data) => exports.MsgRecvPacketResponse.decode(new minimal_1.default.Reader(data)));\n }\n Timeout(request) {\n const data = exports.MsgTimeout.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Timeout\", data);\n return promise.then((data) => exports.MsgTimeoutResponse.decode(new minimal_1.default.Reader(data)));\n }\n TimeoutOnClose(request) {\n const data = exports.MsgTimeoutOnClose.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"TimeoutOnClose\", data);\n return promise.then((data) => exports.MsgTimeoutOnCloseResponse.decode(new minimal_1.default.Reader(data)));\n }\n Acknowledgement(request) {\n const data = exports.MsgAcknowledgement.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Acknowledgement\", data);\n return promise.then((data) => exports.MsgAcknowledgementResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Height = exports.ClientUpdateProposal = exports.ClientConsensusStates = exports.ConsensusStateWithHeight = exports.IdentifiedClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nconst baseIdentifiedClientState = { clientId: \"\" };\nexports.IdentifiedClientState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedClientState);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIdentifiedClientState);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseIdentifiedClientState);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n return message;\n },\n};\nconst baseConsensusStateWithHeight = {};\nexports.ConsensusStateWithHeight = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.height !== undefined) {\n exports.Height.encode(message.height, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusStateWithHeight);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = exports.Height.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusStateWithHeight);\n message.height =\n object.height !== undefined && object.height !== null ? exports.Height.fromJSON(object.height) : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = message.height ? exports.Height.toJSON(message.height) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusStateWithHeight);\n message.height =\n object.height !== undefined && object.height !== null ? exports.Height.fromPartial(object.height) : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n return message;\n },\n};\nconst baseClientConsensusStates = { clientId: \"\" };\nexports.ClientConsensusStates = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.consensusStates) {\n exports.ConsensusStateWithHeight.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientConsensusStates);\n message.consensusStates = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.consensusStates.push(exports.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseClientConsensusStates);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.consensusStates = ((_a = object.consensusStates) !== null && _a !== void 0 ? _a : []).map((e) => exports.ConsensusStateWithHeight.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? exports.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseClientConsensusStates);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.consensusStates =\n ((_b = object.consensusStates) === null || _b === void 0 ? void 0 : _b.map((e) => exports.ConsensusStateWithHeight.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseClientUpdateProposal = { title: \"\", description: \"\", clientId: \"\" };\nexports.ClientUpdateProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.clientId !== \"\") {\n writer.uint32(26).string(message.clientId);\n }\n if (message.header !== undefined) {\n any_1.Any.encode(message.header, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientUpdateProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.clientId = reader.string();\n break;\n case 4:\n message.header = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseClientUpdateProposal);\n message.title = object.title !== undefined && object.title !== null ? String(object.title) : \"\";\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.header =\n object.header !== undefined && object.header !== null ? any_1.Any.fromJSON(object.header) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header !== undefined && (obj.header = message.header ? any_1.Any.toJSON(message.header) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseClientUpdateProposal);\n message.title = (_a = object.title) !== null && _a !== void 0 ? _a : \"\";\n message.description = (_b = object.description) !== null && _b !== void 0 ? _b : \"\";\n message.clientId = (_c = object.clientId) !== null && _c !== void 0 ? _c : \"\";\n message.header =\n object.header !== undefined && object.header !== null ? any_1.Any.fromPartial(object.header) : undefined;\n return message;\n },\n};\nconst baseHeight = { revisionNumber: long_1.default.UZERO, revisionHeight: long_1.default.UZERO };\nexports.Height = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.revisionNumber.isZero()) {\n writer.uint32(8).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(16).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeight);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.revisionNumber = reader.uint64();\n break;\n case 2:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeight);\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromString(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromString(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHeight);\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromValue(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromValue(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseParams = { allowedClients: \"\" };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.allowedClients) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.allowedClients = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowedClients.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseParams);\n message.allowedClients = ((_a = object.allowedClients) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowedClients) {\n obj.allowedClients = message.allowedClients.map((e) => e);\n }\n else {\n obj.allowedClients = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseParams);\n message.allowedClients = ((_a = object.allowedClients) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=client.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryClientParamsResponse = exports.QueryClientParamsRequest = exports.QueryConsensusStatesResponse = exports.QueryConsensusStatesRequest = exports.QueryConsensusStateResponse = exports.QueryConsensusStateRequest = exports.QueryClientStatesResponse = exports.QueryClientStatesRequest = exports.QueryClientStateResponse = exports.QueryClientStateRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nconst baseQueryClientStateRequest = { clientId: \"\" };\nexports.QueryClientStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientStateRequest);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientStateRequest);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryClientStateResponse = {};\nexports.QueryClientStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientStateResponse);\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientStateResponse);\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryClientStatesRequest = {};\nexports.QueryClientStatesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientStatesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientStatesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryClientStatesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryClientStatesResponse = {};\nexports.QueryClientStatesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.clientStates) {\n client_1.IdentifiedClientState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientStatesResponse);\n message.clientStates = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientStates.push(client_1.IdentifiedClientState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientStatesResponse);\n message.clientStates = ((_a = object.clientStates) !== null && _a !== void 0 ? _a : []).map((e) => client_1.IdentifiedClientState.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.clientStates) {\n obj.clientStates = message.clientStates.map((e) => (e ? client_1.IdentifiedClientState.toJSON(e) : undefined));\n }\n else {\n obj.clientStates = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientStatesResponse);\n message.clientStates = ((_a = object.clientStates) === null || _a === void 0 ? void 0 : _a.map((e) => client_1.IdentifiedClientState.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryConsensusStateRequest = {\n clientId: \"\",\n revisionNumber: long_1.default.UZERO,\n revisionHeight: long_1.default.UZERO,\n latestHeight: false,\n};\nexports.QueryConsensusStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (!message.revisionNumber.isZero()) {\n writer.uint32(16).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(24).uint64(message.revisionHeight);\n }\n if (message.latestHeight === true) {\n writer.uint32(32).bool(message.latestHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConsensusStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.revisionNumber = reader.uint64();\n break;\n case 3:\n message.revisionHeight = reader.uint64();\n break;\n case 4:\n message.latestHeight = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConsensusStateRequest);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromString(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromString(object.revisionHeight)\n : long_1.default.UZERO;\n message.latestHeight =\n object.latestHeight !== undefined && object.latestHeight !== null\n ? Boolean(object.latestHeight)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n message.latestHeight !== undefined && (obj.latestHeight = message.latestHeight);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryConsensusStateRequest);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromValue(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromValue(object.revisionHeight)\n : long_1.default.UZERO;\n message.latestHeight = (_b = object.latestHeight) !== null && _b !== void 0 ? _b : false;\n return message;\n },\n};\nconst baseQueryConsensusStateResponse = {};\nexports.QueryConsensusStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConsensusStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryConsensusStatesRequest = { clientId: \"\" };\nexports.QueryConsensusStatesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConsensusStatesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConsensusStatesRequest);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConsensusStatesRequest);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryConsensusStatesResponse = {};\nexports.QueryConsensusStatesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.consensusStates) {\n client_1.ConsensusStateWithHeight.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConsensusStatesResponse);\n message.consensusStates = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusStates.push(client_1.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryConsensusStatesResponse);\n message.consensusStates = ((_a = object.consensusStates) !== null && _a !== void 0 ? _a : []).map((e) => client_1.ConsensusStateWithHeight.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? client_1.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConsensusStatesResponse);\n message.consensusStates =\n ((_a = object.consensusStates) === null || _a === void 0 ? void 0 : _a.map((e) => client_1.ConsensusStateWithHeight.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryClientParamsRequest = {};\nexports.QueryClientParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryClientParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryClientParamsRequest);\n return message;\n },\n};\nconst baseQueryClientParamsResponse = {};\nexports.QueryClientParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n client_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = client_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? client_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? client_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryClientParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? client_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ClientState = this.ClientState.bind(this);\n this.ClientStates = this.ClientStates.bind(this);\n this.ConsensusState = this.ConsensusState.bind(this);\n this.ConsensusStates = this.ConsensusStates.bind(this);\n this.ClientParams = this.ClientParams.bind(this);\n }\n ClientState(request) {\n const data = exports.QueryClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientState\", data);\n return promise.then((data) => exports.QueryClientStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClientStates(request) {\n const data = exports.QueryClientStatesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientStates\", data);\n return promise.then((data) => exports.QueryClientStatesResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConsensusState(request) {\n const data = exports.QueryConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusState\", data);\n return promise.then((data) => exports.QueryConsensusStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConsensusStates(request) {\n const data = exports.QueryConsensusStatesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusStates\", data);\n return promise.then((data) => exports.QueryConsensusStatesResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClientParams(request) {\n const data = exports.QueryClientParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientParams\", data);\n return promise.then((data) => exports.QueryClientParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgSubmitMisbehaviourResponse = exports.MsgSubmitMisbehaviour = exports.MsgUpgradeClientResponse = exports.MsgUpgradeClient = exports.MsgUpdateClientResponse = exports.MsgUpdateClient = exports.MsgCreateClientResponse = exports.MsgCreateClient = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nconst baseMsgCreateClient = { signer: \"\" };\nexports.MsgCreateClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateClient);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgCreateClient);\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgCreateClient);\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.signer = (_a = object.signer) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseMsgCreateClientResponse = {};\nexports.MsgCreateClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgCreateClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgCreateClientResponse);\n return message;\n },\n};\nconst baseMsgUpdateClient = { clientId: \"\", signer: \"\" };\nexports.MsgUpdateClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.header !== undefined) {\n any_1.Any.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateClient);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.header = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpdateClient);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.header =\n object.header !== undefined && object.header !== null ? any_1.Any.fromJSON(object.header) : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header !== undefined && (obj.header = message.header ? any_1.Any.toJSON(message.header) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgUpdateClient);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.header =\n object.header !== undefined && object.header !== null ? any_1.Any.fromPartial(object.header) : undefined;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgUpdateClientResponse = {};\nexports.MsgUpdateClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n return message;\n },\n};\nconst baseMsgUpgradeClient = { clientId: \"\", signer: \"\" };\nexports.MsgUpgradeClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(26).fork()).ldelim();\n }\n if (message.proofUpgradeClient.length !== 0) {\n writer.uint32(34).bytes(message.proofUpgradeClient);\n }\n if (message.proofUpgradeConsensusState.length !== 0) {\n writer.uint32(42).bytes(message.proofUpgradeConsensusState);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpgradeClient);\n message.proofUpgradeClient = new Uint8Array();\n message.proofUpgradeConsensusState = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.proofUpgradeClient = reader.bytes();\n break;\n case 5:\n message.proofUpgradeConsensusState = reader.bytes();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpgradeClient);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.proofUpgradeClient =\n object.proofUpgradeClient !== undefined && object.proofUpgradeClient !== null\n ? bytesFromBase64(object.proofUpgradeClient)\n : new Uint8Array();\n message.proofUpgradeConsensusState =\n object.proofUpgradeConsensusState !== undefined && object.proofUpgradeConsensusState !== null\n ? bytesFromBase64(object.proofUpgradeConsensusState)\n : new Uint8Array();\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proofUpgradeClient !== undefined &&\n (obj.proofUpgradeClient = base64FromBytes(message.proofUpgradeClient !== undefined ? message.proofUpgradeClient : new Uint8Array()));\n message.proofUpgradeConsensusState !== undefined &&\n (obj.proofUpgradeConsensusState = base64FromBytes(message.proofUpgradeConsensusState !== undefined\n ? message.proofUpgradeConsensusState\n : new Uint8Array()));\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgUpgradeClient);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.proofUpgradeClient = (_b = object.proofUpgradeClient) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofUpgradeConsensusState = (_c = object.proofUpgradeConsensusState) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.signer = (_d = object.signer) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseMsgUpgradeClientResponse = {};\nexports.MsgUpgradeClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n return message;\n },\n};\nconst baseMsgSubmitMisbehaviour = { clientId: \"\", signer: \"\" };\nexports.MsgSubmitMisbehaviour = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.misbehaviour !== undefined) {\n any_1.Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.misbehaviour = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.misbehaviour =\n object.misbehaviour !== undefined && object.misbehaviour !== null\n ? any_1.Any.fromJSON(object.misbehaviour)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.misbehaviour !== undefined &&\n (obj.misbehaviour = message.misbehaviour ? any_1.Any.toJSON(message.misbehaviour) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.misbehaviour =\n object.misbehaviour !== undefined && object.misbehaviour !== null\n ? any_1.Any.fromPartial(object.misbehaviour)\n : undefined;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgSubmitMisbehaviourResponse = {};\nexports.MsgSubmitMisbehaviourResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateClient = this.CreateClient.bind(this);\n this.UpdateClient = this.UpdateClient.bind(this);\n this.UpgradeClient = this.UpgradeClient.bind(this);\n this.SubmitMisbehaviour = this.SubmitMisbehaviour.bind(this);\n }\n CreateClient(request) {\n const data = exports.MsgCreateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"CreateClient\", data);\n return promise.then((data) => exports.MsgCreateClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpdateClient(request) {\n const data = exports.MsgUpdateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpdateClient\", data);\n return promise.then((data) => exports.MsgUpdateClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpgradeClient(request) {\n const data = exports.MsgUpgradeClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpgradeClient\", data);\n return promise.then((data) => exports.MsgUpgradeClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n SubmitMisbehaviour(request) {\n const data = exports.MsgSubmitMisbehaviour.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"SubmitMisbehaviour\", data);\n return promise.then((data) => exports.MsgSubmitMisbehaviourResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerkleProof = exports.MerklePath = exports.MerklePrefix = exports.MerkleRoot = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst proofs_1 = require(\"../../../../confio/proofs\");\nexports.protobufPackage = \"ibc.core.commitment.v1\";\nconst baseMerkleRoot = {};\nexports.MerkleRoot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerkleRoot);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMerkleRoot);\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMerkleRoot);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMerklePrefix = {};\nexports.MerklePrefix = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.keyPrefix.length !== 0) {\n writer.uint32(10).bytes(message.keyPrefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerklePrefix);\n message.keyPrefix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPrefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMerklePrefix);\n message.keyPrefix =\n object.keyPrefix !== undefined && object.keyPrefix !== null\n ? bytesFromBase64(object.keyPrefix)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.keyPrefix !== undefined &&\n (obj.keyPrefix = base64FromBytes(message.keyPrefix !== undefined ? message.keyPrefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMerklePrefix);\n message.keyPrefix = (_a = object.keyPrefix) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMerklePath = { keyPath: \"\" };\nexports.MerklePath = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.keyPath) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPath.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = ((_a = object.keyPath) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.keyPath) {\n obj.keyPath = message.keyPath.map((e) => e);\n }\n else {\n obj.keyPath = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = ((_a = object.keyPath) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseMerkleProof = {};\nexports.MerkleProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.proofs) {\n proofs_1.CommitmentProof.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proofs.push(proofs_1.CommitmentProof.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = ((_a = object.proofs) !== null && _a !== void 0 ? _a : []).map((e) => proofs_1.CommitmentProof.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.proofs) {\n obj.proofs = message.proofs.map((e) => (e ? proofs_1.CommitmentProof.toJSON(e) : undefined));\n }\n else {\n obj.proofs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = ((_a = object.proofs) === null || _a === void 0 ? void 0 : _a.map((e) => proofs_1.CommitmentProof.fromPartial(e))) || [];\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=commitment.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Version = exports.ConnectionPaths = exports.ClientPaths = exports.Counterparty = exports.IdentifiedConnection = exports.ConnectionEnd = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst commitment_1 = require(\"../../../../ibc/core/commitment/v1/commitment\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\n/**\n * State defines if a connection is in one of the following states:\n * INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A connection end has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /**\n * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty\n * chain.\n */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /** STATE_OPEN - A connection end has completed the handshake. */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State = exports.State || (exports.State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.stateToJSON = stateToJSON;\nconst baseConnectionEnd = { clientId: \"\", state: 0, delayPeriod: long_1.default.UZERO };\nexports.ConnectionEnd = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(24).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConnectionEnd);\n message.versions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 3:\n message.state = reader.int32();\n break;\n case 4:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseConnectionEnd);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.versions = ((_a = object.versions) !== null && _a !== void 0 ? _a : []).map((e) => exports.Version.fromJSON(e));\n message.state = object.state !== undefined && object.state !== null ? stateFromJSON(object.state) : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromString(object.delayPeriod)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseConnectionEnd);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.versions = ((_b = object.versions) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Version.fromPartial(e))) || [];\n message.state = (_c = object.state) !== null && _c !== void 0 ? _c : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromValue(object.delayPeriod)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseIdentifiedConnection = { id: \"\", clientId: \"\", state: 0, delayPeriod: long_1.default.UZERO };\nexports.IdentifiedConnection = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(32).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(42).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(48).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedConnection);\n message.versions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 4:\n message.state = reader.int32();\n break;\n case 5:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 6:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseIdentifiedConnection);\n message.id = object.id !== undefined && object.id !== null ? String(object.id) : \"\";\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.versions = ((_a = object.versions) !== null && _a !== void 0 ? _a : []).map((e) => exports.Version.fromJSON(e));\n message.state = object.state !== undefined && object.state !== null ? stateFromJSON(object.state) : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromString(object.delayPeriod)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = message.id);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseIdentifiedConnection);\n message.id = (_a = object.id) !== null && _a !== void 0 ? _a : \"\";\n message.clientId = (_b = object.clientId) !== null && _b !== void 0 ? _b : \"\";\n message.versions = ((_c = object.versions) === null || _c === void 0 ? void 0 : _c.map((e) => exports.Version.fromPartial(e))) || [];\n message.state = (_d = object.state) !== null && _d !== void 0 ? _d : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromValue(object.delayPeriod)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseCounterparty = { clientId: \"\", connectionId: \"\" };\nexports.Counterparty = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.connectionId !== \"\") {\n writer.uint32(18).string(message.connectionId);\n }\n if (message.prefix !== undefined) {\n commitment_1.MerklePrefix.encode(message.prefix, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCounterparty);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.connectionId = reader.string();\n break;\n case 3:\n message.prefix = commitment_1.MerklePrefix.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCounterparty);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? commitment_1.MerklePrefix.fromJSON(object.prefix)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.prefix !== undefined &&\n (obj.prefix = message.prefix ? commitment_1.MerklePrefix.toJSON(message.prefix) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCounterparty);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.connectionId = (_b = object.connectionId) !== null && _b !== void 0 ? _b : \"\";\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? commitment_1.MerklePrefix.fromPartial(object.prefix)\n : undefined;\n return message;\n },\n};\nconst baseClientPaths = { paths: \"\" };\nexports.ClientPaths = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.paths) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientPaths);\n message.paths = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseClientPaths);\n message.paths = ((_a = object.paths) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseClientPaths);\n message.paths = ((_a = object.paths) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseConnectionPaths = { clientId: \"\", paths: \"\" };\nexports.ConnectionPaths = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.paths) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConnectionPaths);\n message.paths = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseConnectionPaths);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.paths = ((_a = object.paths) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseConnectionPaths);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.paths = ((_b = object.paths) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n return message;\n },\n};\nconst baseVersion = { identifier: \"\", features: \"\" };\nexports.Version = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.identifier !== \"\") {\n writer.uint32(10).string(message.identifier);\n }\n for (const v of message.features) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVersion);\n message.features = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifier = reader.string();\n break;\n case 2:\n message.features.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseVersion);\n message.identifier =\n object.identifier !== undefined && object.identifier !== null ? String(object.identifier) : \"\";\n message.features = ((_a = object.features) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.identifier !== undefined && (obj.identifier = message.identifier);\n if (message.features) {\n obj.features = message.features.map((e) => e);\n }\n else {\n obj.features = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseVersion);\n message.identifier = (_a = object.identifier) !== null && _a !== void 0 ? _a : \"\";\n message.features = ((_b = object.features) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=connection.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryConnectionConsensusStateResponse = exports.QueryConnectionConsensusStateRequest = exports.QueryConnectionClientStateResponse = exports.QueryConnectionClientStateRequest = exports.QueryClientConnectionsResponse = exports.QueryClientConnectionsRequest = exports.QueryConnectionsResponse = exports.QueryConnectionsRequest = exports.QueryConnectionResponse = exports.QueryConnectionRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst connection_1 = require(\"../../../../ibc/core/connection/v1/connection\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nconst baseQueryConnectionRequest = { connectionId: \"\" };\nexports.QueryConnectionRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionRequest);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionRequest);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryConnectionResponse = {};\nexports.QueryConnectionResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connection !== undefined) {\n connection_1.ConnectionEnd.encode(message.connection, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection = connection_1.ConnectionEnd.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionResponse);\n message.connection =\n object.connection !== undefined && object.connection !== null\n ? connection_1.ConnectionEnd.fromJSON(object.connection)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connection !== undefined &&\n (obj.connection = message.connection ? connection_1.ConnectionEnd.toJSON(message.connection) : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionResponse);\n message.connection =\n object.connection !== undefined && object.connection !== null\n ? connection_1.ConnectionEnd.fromPartial(object.connection)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionsRequest = {};\nexports.QueryConnectionsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryConnectionsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionsResponse = {};\nexports.QueryConnectionsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.connections) {\n connection_1.IdentifiedConnection.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionsResponse);\n message.connections = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connections.push(connection_1.IdentifiedConnection.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionsResponse);\n message.connections = ((_a = object.connections) !== null && _a !== void 0 ? _a : []).map((e) => connection_1.IdentifiedConnection.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.connections) {\n obj.connections = message.connections.map((e) => (e ? connection_1.IdentifiedConnection.toJSON(e) : undefined));\n }\n else {\n obj.connections = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionsResponse);\n message.connections = ((_a = object.connections) === null || _a === void 0 ? void 0 : _a.map((e) => connection_1.IdentifiedConnection.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryClientConnectionsRequest = { clientId: \"\" };\nexports.QueryClientConnectionsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientConnectionsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientConnectionsRequest);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientConnectionsRequest);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryClientConnectionsResponse = { connectionPaths: \"\" };\nexports.QueryClientConnectionsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.connectionPaths) {\n writer.uint32(10).string(v);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientConnectionsResponse);\n message.connectionPaths = [];\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionPaths.push(reader.string());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientConnectionsResponse);\n message.connectionPaths = ((_a = object.connectionPaths) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.connectionPaths) {\n obj.connectionPaths = message.connectionPaths.map((e) => e);\n }\n else {\n obj.connectionPaths = [];\n }\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryClientConnectionsResponse);\n message.connectionPaths = ((_a = object.connectionPaths) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionClientStateRequest = { connectionId: \"\" };\nexports.QueryConnectionClientStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionClientStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionClientStateRequest);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionClientStateRequest);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryConnectionClientStateResponse = {};\nexports.QueryConnectionClientStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.identifiedClientState !== undefined) {\n client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionClientStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionClientStateResponse);\n message.identifiedClientState =\n object.identifiedClientState !== undefined && object.identifiedClientState !== null\n ? client_1.IdentifiedClientState.fromJSON(object.identifiedClientState)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.identifiedClientState !== undefined &&\n (obj.identifiedClientState = message.identifiedClientState\n ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState)\n : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionClientStateResponse);\n message.identifiedClientState =\n object.identifiedClientState !== undefined && object.identifiedClientState !== null\n ? client_1.IdentifiedClientState.fromPartial(object.identifiedClientState)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionConsensusStateRequest = {\n connectionId: \"\",\n revisionNumber: long_1.default.UZERO,\n revisionHeight: long_1.default.UZERO,\n};\nexports.QueryConnectionConsensusStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (!message.revisionNumber.isZero()) {\n writer.uint32(16).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(24).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionConsensusStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.revisionNumber = reader.uint64();\n break;\n case 3:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionConsensusStateRequest);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromString(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromString(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionConsensusStateRequest);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromValue(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromValue(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryConnectionConsensusStateResponse = { clientId: \"\" };\nexports.QueryConnectionConsensusStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionConsensusStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryConnectionConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Connection = this.Connection.bind(this);\n this.Connections = this.Connections.bind(this);\n this.ClientConnections = this.ClientConnections.bind(this);\n this.ConnectionClientState = this.ConnectionClientState.bind(this);\n this.ConnectionConsensusState = this.ConnectionConsensusState.bind(this);\n }\n Connection(request) {\n const data = exports.QueryConnectionRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"Connection\", data);\n return promise.then((data) => exports.QueryConnectionResponse.decode(new minimal_1.default.Reader(data)));\n }\n Connections(request) {\n const data = exports.QueryConnectionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"Connections\", data);\n return promise.then((data) => exports.QueryConnectionsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClientConnections(request) {\n const data = exports.QueryClientConnectionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ClientConnections\", data);\n return promise.then((data) => exports.QueryClientConnectionsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionClientState(request) {\n const data = exports.QueryConnectionClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionClientState\", data);\n return promise.then((data) => exports.QueryConnectionClientStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionConsensusState(request) {\n const data = exports.QueryConnectionConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionConsensusState\", data);\n return promise.then((data) => exports.QueryConnectionConsensusStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgConnectionOpenConfirmResponse = exports.MsgConnectionOpenConfirm = exports.MsgConnectionOpenAckResponse = exports.MsgConnectionOpenAck = exports.MsgConnectionOpenTryResponse = exports.MsgConnectionOpenTry = exports.MsgConnectionOpenInitResponse = exports.MsgConnectionOpenInit = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst connection_1 = require(\"../../../../ibc/core/connection/v1/connection\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nconst baseMsgConnectionOpenInit = { clientId: \"\", delayPeriod: long_1.default.UZERO, signer: \"\" };\nexports.MsgConnectionOpenInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim();\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(32).uint64(message.delayPeriod);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.delayPeriod = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? connection_1.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null ? connection_1.Version.fromJSON(object.version) : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromString(object.delayPeriod)\n : long_1.default.UZERO;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? connection_1.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? connection_1.Version.fromPartial(object.version)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromValue(object.delayPeriod)\n : long_1.default.UZERO;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgConnectionOpenInitResponse = {};\nexports.MsgConnectionOpenInitResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenTry = {\n clientId: \"\",\n previousConnectionId: \"\",\n delayPeriod: long_1.default.UZERO,\n signer: \"\",\n};\nexports.MsgConnectionOpenTry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.previousConnectionId !== \"\") {\n writer.uint32(18).string(message.previousConnectionId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n for (const v of message.counterpartyVersions) {\n connection_1.Version.encode(v, writer.uint32(50).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim();\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(66).bytes(message.proofInit);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(74).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(82).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(98).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.counterpartyVersions = [];\n message.proofInit = new Uint8Array();\n message.proofClient = new Uint8Array();\n message.proofConsensus = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.previousConnectionId = reader.string();\n break;\n case 3:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n case 6:\n message.counterpartyVersions.push(connection_1.Version.decode(reader, reader.uint32()));\n break;\n case 7:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofInit = reader.bytes();\n break;\n case 9:\n message.proofClient = reader.bytes();\n break;\n case 10:\n message.proofConsensus = reader.bytes();\n break;\n case 11:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 12:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.previousConnectionId =\n object.previousConnectionId !== undefined && object.previousConnectionId !== null\n ? String(object.previousConnectionId)\n : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? connection_1.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromString(object.delayPeriod)\n : long_1.default.UZERO;\n message.counterpartyVersions = ((_a = object.counterpartyVersions) !== null && _a !== void 0 ? _a : []).map((e) => connection_1.Version.fromJSON(e));\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.proofInit =\n object.proofInit !== undefined && object.proofInit !== null\n ? bytesFromBase64(object.proofInit)\n : new Uint8Array();\n message.proofClient =\n object.proofClient !== undefined && object.proofClient !== null\n ? bytesFromBase64(object.proofClient)\n : new Uint8Array();\n message.proofConsensus =\n object.proofConsensus !== undefined && object.proofConsensus !== null\n ? bytesFromBase64(object.proofConsensus)\n : new Uint8Array();\n message.consensusHeight =\n object.consensusHeight !== undefined && object.consensusHeight !== null\n ? client_1.Height.fromJSON(object.consensusHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.previousConnectionId !== undefined && (obj.previousConnectionId = message.previousConnectionId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n if (message.counterpartyVersions) {\n obj.counterpartyVersions = message.counterpartyVersions.map((e) => (e ? connection_1.Version.toJSON(e) : undefined));\n }\n else {\n obj.counterpartyVersions = [];\n }\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = base64FromBytes(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = base64FromBytes(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f, _g;\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.previousConnectionId = (_b = object.previousConnectionId) !== null && _b !== void 0 ? _b : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? connection_1.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromValue(object.delayPeriod)\n : long_1.default.UZERO;\n message.counterpartyVersions = ((_c = object.counterpartyVersions) === null || _c === void 0 ? void 0 : _c.map((e) => connection_1.Version.fromPartial(e))) || [];\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.proofInit = (_d = object.proofInit) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.proofClient = (_e = object.proofClient) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.proofConsensus = (_f = object.proofConsensus) !== null && _f !== void 0 ? _f : new Uint8Array();\n message.consensusHeight =\n object.consensusHeight !== undefined && object.consensusHeight !== null\n ? client_1.Height.fromPartial(object.consensusHeight)\n : undefined;\n message.signer = (_g = object.signer) !== null && _g !== void 0 ? _g : \"\";\n return message;\n },\n};\nconst baseMsgConnectionOpenTryResponse = {};\nexports.MsgConnectionOpenTryResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenAck = { connectionId: \"\", counterpartyConnectionId: \"\", signer: \"\" };\nexports.MsgConnectionOpenAck = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.counterpartyConnectionId !== \"\") {\n writer.uint32(18).string(message.counterpartyConnectionId);\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(34).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim();\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(50).bytes(message.proofTry);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(58).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(66).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(82).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n message.proofTry = new Uint8Array();\n message.proofClient = new Uint8Array();\n message.proofConsensus = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.counterpartyConnectionId = reader.string();\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 5:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 6:\n message.proofTry = reader.bytes();\n break;\n case 7:\n message.proofClient = reader.bytes();\n break;\n case 8:\n message.proofConsensus = reader.bytes();\n break;\n case 9:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 10:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n message.counterpartyConnectionId =\n object.counterpartyConnectionId !== undefined && object.counterpartyConnectionId !== null\n ? String(object.counterpartyConnectionId)\n : \"\";\n message.version =\n object.version !== undefined && object.version !== null ? connection_1.Version.fromJSON(object.version) : undefined;\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.proofTry =\n object.proofTry !== undefined && object.proofTry !== null\n ? bytesFromBase64(object.proofTry)\n : new Uint8Array();\n message.proofClient =\n object.proofClient !== undefined && object.proofClient !== null\n ? bytesFromBase64(object.proofClient)\n : new Uint8Array();\n message.proofConsensus =\n object.proofConsensus !== undefined && object.proofConsensus !== null\n ? bytesFromBase64(object.proofConsensus)\n : new Uint8Array();\n message.consensusHeight =\n object.consensusHeight !== undefined && object.consensusHeight !== null\n ? client_1.Height.fromJSON(object.consensusHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.counterpartyConnectionId !== undefined &&\n (obj.counterpartyConnectionId = message.counterpartyConnectionId);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofTry !== undefined &&\n (obj.proofTry = base64FromBytes(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = base64FromBytes(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = base64FromBytes(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n message.counterpartyConnectionId = (_b = object.counterpartyConnectionId) !== null && _b !== void 0 ? _b : \"\";\n message.version =\n object.version !== undefined && object.version !== null\n ? connection_1.Version.fromPartial(object.version)\n : undefined;\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.proofTry = (_c = object.proofTry) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.proofClient = (_d = object.proofClient) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.proofConsensus = (_e = object.proofConsensus) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.consensusHeight =\n object.consensusHeight !== undefined && object.consensusHeight !== null\n ? client_1.Height.fromPartial(object.consensusHeight)\n : undefined;\n message.signer = (_f = object.signer) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseMsgConnectionOpenAckResponse = {};\nexports.MsgConnectionOpenAckResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenConfirm = { connectionId: \"\", signer: \"\" };\nexports.MsgConnectionOpenConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(18).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n message.proofAck = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.proofAck = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n message.proofAck =\n object.proofAck !== undefined && object.proofAck !== null\n ? bytesFromBase64(object.proofAck)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.proofAck !== undefined &&\n (obj.proofAck = base64FromBytes(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n message.proofAck = (_b = object.proofAck) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_c = object.signer) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgConnectionOpenConfirmResponse = {};\nexports.MsgConnectionOpenConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ConnectionOpenInit = this.ConnectionOpenInit.bind(this);\n this.ConnectionOpenTry = this.ConnectionOpenTry.bind(this);\n this.ConnectionOpenAck = this.ConnectionOpenAck.bind(this);\n this.ConnectionOpenConfirm = this.ConnectionOpenConfirm.bind(this);\n }\n ConnectionOpenInit(request) {\n const data = exports.MsgConnectionOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenInit\", data);\n return promise.then((data) => exports.MsgConnectionOpenInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenTry(request) {\n const data = exports.MsgConnectionOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenTry\", data);\n return promise.then((data) => exports.MsgConnectionOpenTryResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenAck(request) {\n const data = exports.MsgConnectionOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenAck\", data);\n return promise.then((data) => exports.MsgConnectionOpenAckResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenConfirm(request) {\n const data = exports.MsgConnectionOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenConfirm\", data);\n return promise.then((data) => exports.MsgConnectionOpenConfirmResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fraction = exports.Header = exports.Misbehaviour = exports.ConsensusState = exports.ClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst duration_1 = require(\"../../../../google/protobuf/duration\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst timestamp_1 = require(\"../../../../google/protobuf/timestamp\");\nconst commitment_1 = require(\"../../../../ibc/core/commitment/v1/commitment\");\nconst types_1 = require(\"../../../../tendermint/types/types\");\nconst validator_1 = require(\"../../../../tendermint/types/validator\");\nconst proofs_1 = require(\"../../../../confio/proofs\");\nexports.protobufPackage = \"ibc.lightclients.tendermint.v1\";\nconst baseClientState = {\n chainId: \"\",\n upgradePath: \"\",\n allowUpdateAfterExpiry: false,\n allowUpdateAfterMisbehaviour: false,\n};\nexports.ClientState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.chainId !== \"\") {\n writer.uint32(10).string(message.chainId);\n }\n if (message.trustLevel !== undefined) {\n exports.Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustingPeriod !== undefined) {\n duration_1.Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim();\n }\n if (message.unbondingPeriod !== undefined) {\n duration_1.Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim();\n }\n if (message.maxClockDrift !== undefined) {\n duration_1.Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim();\n }\n if (message.frozenHeight !== undefined) {\n client_1.Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.latestHeight !== undefined) {\n client_1.Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim();\n }\n for (const v of message.proofSpecs) {\n proofs_1.ProofSpec.encode(v, writer.uint32(66).fork()).ldelim();\n }\n for (const v of message.upgradePath) {\n writer.uint32(74).string(v);\n }\n if (message.allowUpdateAfterExpiry === true) {\n writer.uint32(80).bool(message.allowUpdateAfterExpiry);\n }\n if (message.allowUpdateAfterMisbehaviour === true) {\n writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientState);\n message.proofSpecs = [];\n message.upgradePath = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chainId = reader.string();\n break;\n case 2:\n message.trustLevel = exports.Fraction.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.unbondingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 5:\n message.maxClockDrift = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 6:\n message.frozenHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.latestHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofSpecs.push(proofs_1.ProofSpec.decode(reader, reader.uint32()));\n break;\n case 9:\n message.upgradePath.push(reader.string());\n break;\n case 10:\n message.allowUpdateAfterExpiry = reader.bool();\n break;\n case 11:\n message.allowUpdateAfterMisbehaviour = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseClientState);\n message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : \"\";\n message.trustLevel =\n object.trustLevel !== undefined && object.trustLevel !== null\n ? exports.Fraction.fromJSON(object.trustLevel)\n : undefined;\n message.trustingPeriod =\n object.trustingPeriod !== undefined && object.trustingPeriod !== null\n ? duration_1.Duration.fromJSON(object.trustingPeriod)\n : undefined;\n message.unbondingPeriod =\n object.unbondingPeriod !== undefined && object.unbondingPeriod !== null\n ? duration_1.Duration.fromJSON(object.unbondingPeriod)\n : undefined;\n message.maxClockDrift =\n object.maxClockDrift !== undefined && object.maxClockDrift !== null\n ? duration_1.Duration.fromJSON(object.maxClockDrift)\n : undefined;\n message.frozenHeight =\n object.frozenHeight !== undefined && object.frozenHeight !== null\n ? client_1.Height.fromJSON(object.frozenHeight)\n : undefined;\n message.latestHeight =\n object.latestHeight !== undefined && object.latestHeight !== null\n ? client_1.Height.fromJSON(object.latestHeight)\n : undefined;\n message.proofSpecs = ((_a = object.proofSpecs) !== null && _a !== void 0 ? _a : []).map((e) => proofs_1.ProofSpec.fromJSON(e));\n message.upgradePath = ((_b = object.upgradePath) !== null && _b !== void 0 ? _b : []).map((e) => String(e));\n message.allowUpdateAfterExpiry =\n object.allowUpdateAfterExpiry !== undefined && object.allowUpdateAfterExpiry !== null\n ? Boolean(object.allowUpdateAfterExpiry)\n : false;\n message.allowUpdateAfterMisbehaviour =\n object.allowUpdateAfterMisbehaviour !== undefined && object.allowUpdateAfterMisbehaviour !== null\n ? Boolean(object.allowUpdateAfterMisbehaviour)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.trustLevel !== undefined &&\n (obj.trustLevel = message.trustLevel ? exports.Fraction.toJSON(message.trustLevel) : undefined);\n message.trustingPeriod !== undefined &&\n (obj.trustingPeriod = message.trustingPeriod ? duration_1.Duration.toJSON(message.trustingPeriod) : undefined);\n message.unbondingPeriod !== undefined &&\n (obj.unbondingPeriod = message.unbondingPeriod ? duration_1.Duration.toJSON(message.unbondingPeriod) : undefined);\n message.maxClockDrift !== undefined &&\n (obj.maxClockDrift = message.maxClockDrift ? duration_1.Duration.toJSON(message.maxClockDrift) : undefined);\n message.frozenHeight !== undefined &&\n (obj.frozenHeight = message.frozenHeight ? client_1.Height.toJSON(message.frozenHeight) : undefined);\n message.latestHeight !== undefined &&\n (obj.latestHeight = message.latestHeight ? client_1.Height.toJSON(message.latestHeight) : undefined);\n if (message.proofSpecs) {\n obj.proofSpecs = message.proofSpecs.map((e) => (e ? proofs_1.ProofSpec.toJSON(e) : undefined));\n }\n else {\n obj.proofSpecs = [];\n }\n if (message.upgradePath) {\n obj.upgradePath = message.upgradePath.map((e) => e);\n }\n else {\n obj.upgradePath = [];\n }\n message.allowUpdateAfterExpiry !== undefined &&\n (obj.allowUpdateAfterExpiry = message.allowUpdateAfterExpiry);\n message.allowUpdateAfterMisbehaviour !== undefined &&\n (obj.allowUpdateAfterMisbehaviour = message.allowUpdateAfterMisbehaviour);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseClientState);\n message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : \"\";\n message.trustLevel =\n object.trustLevel !== undefined && object.trustLevel !== null\n ? exports.Fraction.fromPartial(object.trustLevel)\n : undefined;\n message.trustingPeriod =\n object.trustingPeriod !== undefined && object.trustingPeriod !== null\n ? duration_1.Duration.fromPartial(object.trustingPeriod)\n : undefined;\n message.unbondingPeriod =\n object.unbondingPeriod !== undefined && object.unbondingPeriod !== null\n ? duration_1.Duration.fromPartial(object.unbondingPeriod)\n : undefined;\n message.maxClockDrift =\n object.maxClockDrift !== undefined && object.maxClockDrift !== null\n ? duration_1.Duration.fromPartial(object.maxClockDrift)\n : undefined;\n message.frozenHeight =\n object.frozenHeight !== undefined && object.frozenHeight !== null\n ? client_1.Height.fromPartial(object.frozenHeight)\n : undefined;\n message.latestHeight =\n object.latestHeight !== undefined && object.latestHeight !== null\n ? client_1.Height.fromPartial(object.latestHeight)\n : undefined;\n message.proofSpecs = ((_b = object.proofSpecs) === null || _b === void 0 ? void 0 : _b.map((e) => proofs_1.ProofSpec.fromPartial(e))) || [];\n message.upgradePath = ((_c = object.upgradePath) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n message.allowUpdateAfterExpiry = (_d = object.allowUpdateAfterExpiry) !== null && _d !== void 0 ? _d : false;\n message.allowUpdateAfterMisbehaviour = (_e = object.allowUpdateAfterMisbehaviour) !== null && _e !== void 0 ? _e : false;\n return message;\n },\n};\nconst baseConsensusState = {};\nexports.ConsensusState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim();\n }\n if (message.root !== undefined) {\n commitment_1.MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(26).bytes(message.nextValidatorsHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusState);\n message.nextValidatorsHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.root = commitment_1.MerkleRoot.decode(reader, reader.uint32());\n break;\n case 3:\n message.nextValidatorsHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusState);\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? fromJsonTimestamp(object.timestamp)\n : undefined;\n message.root =\n object.root !== undefined && object.root !== null ? commitment_1.MerkleRoot.fromJSON(object.root) : undefined;\n message.nextValidatorsHash =\n object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null\n ? bytesFromBase64(object.nextValidatorsHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.root !== undefined && (obj.root = message.root ? commitment_1.MerkleRoot.toJSON(message.root) : undefined);\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseConsensusState);\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? timestamp_1.Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.root =\n object.root !== undefined && object.root !== null ? commitment_1.MerkleRoot.fromPartial(object.root) : undefined;\n message.nextValidatorsHash = (_a = object.nextValidatorsHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMisbehaviour = { clientId: \"\" };\nexports.Misbehaviour = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.header1 !== undefined) {\n exports.Header.encode(message.header1, writer.uint32(18).fork()).ldelim();\n }\n if (message.header2 !== undefined) {\n exports.Header.encode(message.header2, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMisbehaviour);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.header1 = exports.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.header2 = exports.Header.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMisbehaviour);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.header1 =\n object.header1 !== undefined && object.header1 !== null ? exports.Header.fromJSON(object.header1) : undefined;\n message.header2 =\n object.header2 !== undefined && object.header2 !== null ? exports.Header.fromJSON(object.header2) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header1 !== undefined &&\n (obj.header1 = message.header1 ? exports.Header.toJSON(message.header1) : undefined);\n message.header2 !== undefined &&\n (obj.header2 = message.header2 ? exports.Header.toJSON(message.header2) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMisbehaviour);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.header1 =\n object.header1 !== undefined && object.header1 !== null\n ? exports.Header.fromPartial(object.header1)\n : undefined;\n message.header2 =\n object.header2 !== undefined && object.header2 !== null\n ? exports.Header.fromPartial(object.header2)\n : undefined;\n return message;\n },\n};\nconst baseHeader = {};\nexports.Header = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.signedHeader !== undefined) {\n types_1.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustedHeight !== undefined) {\n client_1.Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.trustedValidators !== undefined) {\n validator_1.ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeader);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = types_1.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustedHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.trustedValidators = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeader);\n message.signedHeader =\n object.signedHeader !== undefined && object.signedHeader !== null\n ? types_1.SignedHeader.fromJSON(object.signedHeader)\n : undefined;\n message.validatorSet =\n object.validatorSet !== undefined && object.validatorSet !== null\n ? validator_1.ValidatorSet.fromJSON(object.validatorSet)\n : undefined;\n message.trustedHeight =\n object.trustedHeight !== undefined && object.trustedHeight !== null\n ? client_1.Height.fromJSON(object.trustedHeight)\n : undefined;\n message.trustedValidators =\n object.trustedValidators !== undefined && object.trustedValidators !== null\n ? validator_1.ValidatorSet.fromJSON(object.trustedValidators)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? types_1.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n message.trustedHeight !== undefined &&\n (obj.trustedHeight = message.trustedHeight ? client_1.Height.toJSON(message.trustedHeight) : undefined);\n message.trustedValidators !== undefined &&\n (obj.trustedValidators = message.trustedValidators\n ? validator_1.ValidatorSet.toJSON(message.trustedValidators)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHeader);\n message.signedHeader =\n object.signedHeader !== undefined && object.signedHeader !== null\n ? types_1.SignedHeader.fromPartial(object.signedHeader)\n : undefined;\n message.validatorSet =\n object.validatorSet !== undefined && object.validatorSet !== null\n ? validator_1.ValidatorSet.fromPartial(object.validatorSet)\n : undefined;\n message.trustedHeight =\n object.trustedHeight !== undefined && object.trustedHeight !== null\n ? client_1.Height.fromPartial(object.trustedHeight)\n : undefined;\n message.trustedValidators =\n object.trustedValidators !== undefined && object.trustedValidators !== null\n ? validator_1.ValidatorSet.fromPartial(object.trustedValidators)\n : undefined;\n return message;\n },\n};\nconst baseFraction = { numerator: long_1.default.UZERO, denominator: long_1.default.UZERO };\nexports.Fraction = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.numerator.isZero()) {\n writer.uint32(8).uint64(message.numerator);\n }\n if (!message.denominator.isZero()) {\n writer.uint32(16).uint64(message.denominator);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFraction);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.numerator = reader.uint64();\n break;\n case 2:\n message.denominator = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFraction);\n message.numerator =\n object.numerator !== undefined && object.numerator !== null\n ? long_1.default.fromString(object.numerator)\n : long_1.default.UZERO;\n message.denominator =\n object.denominator !== undefined && object.denominator !== null\n ? long_1.default.fromString(object.denominator)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.numerator !== undefined && (obj.numerator = (message.numerator || long_1.default.UZERO).toString());\n message.denominator !== undefined && (obj.denominator = (message.denominator || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseFraction);\n message.numerator =\n object.numerator !== undefined && object.numerator !== null\n ? long_1.default.fromValue(object.numerator)\n : long_1.default.UZERO;\n message.denominator =\n object.denominator !== undefined && object.denominator !== null\n ? long_1.default.fromValue(object.denominator)\n : long_1.default.UZERO;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tendermint.js.map","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Event = exports.LastCommitInfo = exports.BlockParams = exports.ConsensusParams = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseSetOption = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestSetOption = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_Result = exports.evidenceTypeToJSON = exports.evidenceTypeFromJSON = exports.EvidenceType = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxType = exports.protobufPackage = void 0;\nexports.ABCIApplicationClientImpl = exports.Snapshot = exports.Evidence = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst types_1 = require(\"../../tendermint/types/types\");\nconst proof_1 = require(\"../../tendermint/crypto/proof\");\nconst params_1 = require(\"../../tendermint/types/params\");\nconst keys_1 = require(\"../../tendermint/crypto/keys\");\nexports.protobufPackage = \"tendermint.abci\";\nvar CheckTxType;\n(function (CheckTxType) {\n CheckTxType[CheckTxType[\"NEW\"] = 0] = \"NEW\";\n CheckTxType[CheckTxType[\"RECHECK\"] = 1] = \"RECHECK\";\n CheckTxType[CheckTxType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(CheckTxType = exports.CheckTxType || (exports.CheckTxType = {}));\nfunction checkTxTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"NEW\":\n return CheckTxType.NEW;\n case 1:\n case \"RECHECK\":\n return CheckTxType.RECHECK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CheckTxType.UNRECOGNIZED;\n }\n}\nexports.checkTxTypeFromJSON = checkTxTypeFromJSON;\nfunction checkTxTypeToJSON(object) {\n switch (object) {\n case CheckTxType.NEW:\n return \"NEW\";\n case CheckTxType.RECHECK:\n return \"RECHECK\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.checkTxTypeToJSON = checkTxTypeToJSON;\nvar EvidenceType;\n(function (EvidenceType) {\n EvidenceType[EvidenceType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n EvidenceType[EvidenceType[\"DUPLICATE_VOTE\"] = 1] = \"DUPLICATE_VOTE\";\n EvidenceType[EvidenceType[\"LIGHT_CLIENT_ATTACK\"] = 2] = \"LIGHT_CLIENT_ATTACK\";\n EvidenceType[EvidenceType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(EvidenceType = exports.EvidenceType || (exports.EvidenceType = {}));\nfunction evidenceTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return EvidenceType.UNKNOWN;\n case 1:\n case \"DUPLICATE_VOTE\":\n return EvidenceType.DUPLICATE_VOTE;\n case 2:\n case \"LIGHT_CLIENT_ATTACK\":\n return EvidenceType.LIGHT_CLIENT_ATTACK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return EvidenceType.UNRECOGNIZED;\n }\n}\nexports.evidenceTypeFromJSON = evidenceTypeFromJSON;\nfunction evidenceTypeToJSON(object) {\n switch (object) {\n case EvidenceType.UNKNOWN:\n return \"UNKNOWN\";\n case EvidenceType.DUPLICATE_VOTE:\n return \"DUPLICATE_VOTE\";\n case EvidenceType.LIGHT_CLIENT_ATTACK:\n return \"LIGHT_CLIENT_ATTACK\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.evidenceTypeToJSON = evidenceTypeToJSON;\nvar ResponseOfferSnapshot_Result;\n(function (ResponseOfferSnapshot_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Snapshot accepted, apply chunks */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** REJECT - Reject this specific snapshot, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT\"] = 3] = \"REJECT\";\n /** REJECT_FORMAT - Reject all snapshots of this format, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_FORMAT\"] = 4] = \"REJECT_FORMAT\";\n /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_SENDER\"] = 5] = \"REJECT_SENDER\";\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseOfferSnapshot_Result = exports.ResponseOfferSnapshot_Result || (exports.ResponseOfferSnapshot_Result = {}));\nfunction responseOfferSnapshot_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseOfferSnapshot_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseOfferSnapshot_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseOfferSnapshot_Result.ABORT;\n case 3:\n case \"REJECT\":\n return ResponseOfferSnapshot_Result.REJECT;\n case 4:\n case \"REJECT_FORMAT\":\n return ResponseOfferSnapshot_Result.REJECT_FORMAT;\n case 5:\n case \"REJECT_SENDER\":\n return ResponseOfferSnapshot_Result.REJECT_SENDER;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseOfferSnapshot_Result.UNRECOGNIZED;\n }\n}\nexports.responseOfferSnapshot_ResultFromJSON = responseOfferSnapshot_ResultFromJSON;\nfunction responseOfferSnapshot_ResultToJSON(object) {\n switch (object) {\n case ResponseOfferSnapshot_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseOfferSnapshot_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseOfferSnapshot_Result.ABORT:\n return \"ABORT\";\n case ResponseOfferSnapshot_Result.REJECT:\n return \"REJECT\";\n case ResponseOfferSnapshot_Result.REJECT_FORMAT:\n return \"REJECT_FORMAT\";\n case ResponseOfferSnapshot_Result.REJECT_SENDER:\n return \"REJECT_SENDER\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseOfferSnapshot_ResultToJSON = responseOfferSnapshot_ResultToJSON;\nvar ResponseApplySnapshotChunk_Result;\n(function (ResponseApplySnapshotChunk_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Chunk successfully accepted */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** RETRY - Retry chunk (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY\"] = 3] = \"RETRY\";\n /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY_SNAPSHOT\"] = 4] = \"RETRY_SNAPSHOT\";\n /** REJECT_SNAPSHOT - Reject this snapshot, try others */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"REJECT_SNAPSHOT\"] = 5] = \"REJECT_SNAPSHOT\";\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseApplySnapshotChunk_Result = exports.ResponseApplySnapshotChunk_Result || (exports.ResponseApplySnapshotChunk_Result = {}));\nfunction responseApplySnapshotChunk_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseApplySnapshotChunk_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseApplySnapshotChunk_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseApplySnapshotChunk_Result.ABORT;\n case 3:\n case \"RETRY\":\n return ResponseApplySnapshotChunk_Result.RETRY;\n case 4:\n case \"RETRY_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT;\n case 5:\n case \"REJECT_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseApplySnapshotChunk_Result.UNRECOGNIZED;\n }\n}\nexports.responseApplySnapshotChunk_ResultFromJSON = responseApplySnapshotChunk_ResultFromJSON;\nfunction responseApplySnapshotChunk_ResultToJSON(object) {\n switch (object) {\n case ResponseApplySnapshotChunk_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseApplySnapshotChunk_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseApplySnapshotChunk_Result.ABORT:\n return \"ABORT\";\n case ResponseApplySnapshotChunk_Result.RETRY:\n return \"RETRY\";\n case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT:\n return \"RETRY_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT:\n return \"REJECT_SNAPSHOT\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseApplySnapshotChunk_ResultToJSON = responseApplySnapshotChunk_ResultToJSON;\nconst baseRequest = {};\nexports.Request = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.echo !== undefined) {\n exports.RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim();\n }\n if (message.setOption !== undefined) {\n exports.RequestSetOption.encode(message.setOption, writer.uint32(34).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.RequestListSnapshots.encode(message.listSnapshots, writer.uint32(98).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.RequestOfferSnapshot.encode(message.offerSnapshot, writer.uint32(106).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.RequestLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(114).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.echo = exports.RequestEcho.decode(reader, reader.uint32());\n break;\n case 2:\n message.flush = exports.RequestFlush.decode(reader, reader.uint32());\n break;\n case 3:\n message.info = exports.RequestInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.setOption = exports.RequestSetOption.decode(reader, reader.uint32());\n break;\n case 5:\n message.initChain = exports.RequestInitChain.decode(reader, reader.uint32());\n break;\n case 6:\n message.query = exports.RequestQuery.decode(reader, reader.uint32());\n break;\n case 7:\n message.beginBlock = exports.RequestBeginBlock.decode(reader, reader.uint32());\n break;\n case 8:\n message.checkTx = exports.RequestCheckTx.decode(reader, reader.uint32());\n break;\n case 9:\n message.deliverTx = exports.RequestDeliverTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.endBlock = exports.RequestEndBlock.decode(reader, reader.uint32());\n break;\n case 11:\n message.commit = exports.RequestCommit.decode(reader, reader.uint32());\n break;\n case 12:\n message.listSnapshots = exports.RequestListSnapshots.decode(reader, reader.uint32());\n break;\n case 13:\n message.offerSnapshot = exports.RequestOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 14:\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 15:\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequest);\n message.echo =\n object.echo !== undefined && object.echo !== null ? exports.RequestEcho.fromJSON(object.echo) : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null ? exports.RequestFlush.fromJSON(object.flush) : undefined;\n message.info =\n object.info !== undefined && object.info !== null ? exports.RequestInfo.fromJSON(object.info) : undefined;\n message.setOption =\n object.setOption !== undefined && object.setOption !== null\n ? exports.RequestSetOption.fromJSON(object.setOption)\n : undefined;\n message.initChain =\n object.initChain !== undefined && object.initChain !== null\n ? exports.RequestInitChain.fromJSON(object.initChain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null ? exports.RequestQuery.fromJSON(object.query) : undefined;\n message.beginBlock =\n object.beginBlock !== undefined && object.beginBlock !== null\n ? exports.RequestBeginBlock.fromJSON(object.beginBlock)\n : undefined;\n message.checkTx =\n object.checkTx !== undefined && object.checkTx !== null\n ? exports.RequestCheckTx.fromJSON(object.checkTx)\n : undefined;\n message.deliverTx =\n object.deliverTx !== undefined && object.deliverTx !== null\n ? exports.RequestDeliverTx.fromJSON(object.deliverTx)\n : undefined;\n message.endBlock =\n object.endBlock !== undefined && object.endBlock !== null\n ? exports.RequestEndBlock.fromJSON(object.endBlock)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? exports.RequestCommit.fromJSON(object.commit)\n : undefined;\n message.listSnapshots =\n object.listSnapshots !== undefined && object.listSnapshots !== null\n ? exports.RequestListSnapshots.fromJSON(object.listSnapshots)\n : undefined;\n message.offerSnapshot =\n object.offerSnapshot !== undefined && object.offerSnapshot !== null\n ? exports.RequestOfferSnapshot.fromJSON(object.offerSnapshot)\n : undefined;\n message.loadSnapshotChunk =\n object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null\n ? exports.RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk)\n : undefined;\n message.applySnapshotChunk =\n object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null\n ? exports.RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.echo !== undefined && (obj.echo = message.echo ? exports.RequestEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.RequestFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.RequestInfo.toJSON(message.info) : undefined);\n message.setOption !== undefined &&\n (obj.setOption = message.setOption ? exports.RequestSetOption.toJSON(message.setOption) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.RequestInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.RequestQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.RequestBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.RequestCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.RequestDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.RequestEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.RequestCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.RequestListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.RequestOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.RequestLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.RequestApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequest);\n message.echo =\n object.echo !== undefined && object.echo !== null ? exports.RequestEcho.fromPartial(object.echo) : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null\n ? exports.RequestFlush.fromPartial(object.flush)\n : undefined;\n message.info =\n object.info !== undefined && object.info !== null ? exports.RequestInfo.fromPartial(object.info) : undefined;\n message.setOption =\n object.setOption !== undefined && object.setOption !== null\n ? exports.RequestSetOption.fromPartial(object.setOption)\n : undefined;\n message.initChain =\n object.initChain !== undefined && object.initChain !== null\n ? exports.RequestInitChain.fromPartial(object.initChain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null\n ? exports.RequestQuery.fromPartial(object.query)\n : undefined;\n message.beginBlock =\n object.beginBlock !== undefined && object.beginBlock !== null\n ? exports.RequestBeginBlock.fromPartial(object.beginBlock)\n : undefined;\n message.checkTx =\n object.checkTx !== undefined && object.checkTx !== null\n ? exports.RequestCheckTx.fromPartial(object.checkTx)\n : undefined;\n message.deliverTx =\n object.deliverTx !== undefined && object.deliverTx !== null\n ? exports.RequestDeliverTx.fromPartial(object.deliverTx)\n : undefined;\n message.endBlock =\n object.endBlock !== undefined && object.endBlock !== null\n ? exports.RequestEndBlock.fromPartial(object.endBlock)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? exports.RequestCommit.fromPartial(object.commit)\n : undefined;\n message.listSnapshots =\n object.listSnapshots !== undefined && object.listSnapshots !== null\n ? exports.RequestListSnapshots.fromPartial(object.listSnapshots)\n : undefined;\n message.offerSnapshot =\n object.offerSnapshot !== undefined && object.offerSnapshot !== null\n ? exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot)\n : undefined;\n message.loadSnapshotChunk =\n object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null\n ? exports.RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk)\n : undefined;\n message.applySnapshotChunk =\n object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null\n ? exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk)\n : undefined;\n return message;\n },\n};\nconst baseRequestEcho = { message: \"\" };\nexports.RequestEcho = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestEcho);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestEcho);\n message.message = object.message !== undefined && object.message !== null ? String(object.message) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRequestEcho);\n message.message = (_a = object.message) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseRequestFlush = {};\nexports.RequestFlush = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestFlush);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestFlush);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestFlush);\n return message;\n },\n};\nconst baseRequestInfo = { version: \"\", blockVersion: long_1.default.UZERO, p2pVersion: long_1.default.UZERO };\nexports.RequestInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n if (!message.blockVersion.isZero()) {\n writer.uint32(16).uint64(message.blockVersion);\n }\n if (!message.p2pVersion.isZero()) {\n writer.uint32(24).uint64(message.p2pVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n case 2:\n message.blockVersion = reader.uint64();\n break;\n case 3:\n message.p2pVersion = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestInfo);\n message.version = object.version !== undefined && object.version !== null ? String(object.version) : \"\";\n message.blockVersion =\n object.blockVersion !== undefined && object.blockVersion !== null\n ? long_1.default.fromString(object.blockVersion)\n : long_1.default.UZERO;\n message.p2pVersion =\n object.p2pVersion !== undefined && object.p2pVersion !== null\n ? long_1.default.fromString(object.p2pVersion)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined && (obj.version = message.version);\n message.blockVersion !== undefined &&\n (obj.blockVersion = (message.blockVersion || long_1.default.UZERO).toString());\n message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRequestInfo);\n message.version = (_a = object.version) !== null && _a !== void 0 ? _a : \"\";\n message.blockVersion =\n object.blockVersion !== undefined && object.blockVersion !== null\n ? long_1.default.fromValue(object.blockVersion)\n : long_1.default.UZERO;\n message.p2pVersion =\n object.p2pVersion !== undefined && object.p2pVersion !== null\n ? long_1.default.fromValue(object.p2pVersion)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseRequestSetOption = { key: \"\", value: \"\" };\nexports.RequestSetOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestSetOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestSetOption);\n message.key = object.key !== undefined && object.key !== null ? String(object.key) : \"\";\n message.value = object.value !== undefined && object.value !== null ? String(object.value) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRequestSetOption);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : \"\";\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseRequestInitChain = { chainId: \"\", initialHeight: long_1.default.ZERO };\nexports.RequestInitChain = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (message.consensusParams !== undefined) {\n exports.ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.appStateBytes.length !== 0) {\n writer.uint32(42).bytes(message.appStateBytes);\n }\n if (!message.initialHeight.isZero()) {\n writer.uint32(48).int64(message.initialHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestInitChain);\n message.validators = [];\n message.appStateBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 5:\n message.appStateBytes = reader.bytes();\n break;\n case 6:\n message.initialHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseRequestInitChain);\n message.time =\n object.time !== undefined && object.time !== null ? fromJsonTimestamp(object.time) : undefined;\n message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : \"\";\n message.consensusParams =\n object.consensusParams !== undefined && object.consensusParams !== null\n ? exports.ConsensusParams.fromJSON(object.consensusParams)\n : undefined;\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => exports.ValidatorUpdate.fromJSON(e));\n message.appStateBytes =\n object.appStateBytes !== undefined && object.appStateBytes !== null\n ? bytesFromBase64(object.appStateBytes)\n : new Uint8Array();\n message.initialHeight =\n object.initialHeight !== undefined && object.initialHeight !== null\n ? long_1.default.fromString(object.initialHeight)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.time !== undefined && (obj.time = fromTimestamp(message.time).toISOString());\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? exports.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appStateBytes !== undefined &&\n (obj.appStateBytes = base64FromBytes(message.appStateBytes !== undefined ? message.appStateBytes : new Uint8Array()));\n message.initialHeight !== undefined &&\n (obj.initialHeight = (message.initialHeight || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseRequestInitChain);\n message.time =\n object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined;\n message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : \"\";\n message.consensusParams =\n object.consensusParams !== undefined && object.consensusParams !== null\n ? exports.ConsensusParams.fromPartial(object.consensusParams)\n : undefined;\n message.validators = ((_b = object.validators) === null || _b === void 0 ? void 0 : _b.map((e) => exports.ValidatorUpdate.fromPartial(e))) || [];\n message.appStateBytes = (_c = object.appStateBytes) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.initialHeight =\n object.initialHeight !== undefined && object.initialHeight !== null\n ? long_1.default.fromValue(object.initialHeight)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseRequestQuery = { path: \"\", height: long_1.default.ZERO, prove: false };\nexports.RequestQuery = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.prove === true) {\n writer.uint32(32).bool(message.prove);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestQuery);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.path = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.prove = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestQuery);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.path = object.path !== undefined && object.path !== null ? String(object.path) : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.prove = object.prove !== undefined && object.prove !== null ? Boolean(object.prove) : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.path !== undefined && (obj.path = message.path);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.prove !== undefined && (obj.prove = message.prove);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseRequestQuery);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.path = (_b = object.path) !== null && _b !== void 0 ? _b : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.prove = (_c = object.prove) !== null && _c !== void 0 ? _c : false;\n return message;\n },\n};\nconst baseRequestBeginBlock = {};\nexports.RequestBeginBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.lastCommitInfo !== undefined) {\n exports.LastCommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.byzantineValidators) {\n exports.Evidence.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestBeginBlock);\n message.byzantineValidators = [];\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.lastCommitInfo = exports.LastCommitInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.byzantineValidators.push(exports.Evidence.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseRequestBeginBlock);\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n message.header =\n object.header !== undefined && object.header !== null ? types_1.Header.fromJSON(object.header) : undefined;\n message.lastCommitInfo =\n object.lastCommitInfo !== undefined && object.lastCommitInfo !== null\n ? exports.LastCommitInfo.fromJSON(object.lastCommitInfo)\n : undefined;\n message.byzantineValidators = ((_a = object.byzantineValidators) !== null && _a !== void 0 ? _a : []).map((e) => exports.Evidence.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n message.lastCommitInfo !== undefined &&\n (obj.lastCommitInfo = message.lastCommitInfo\n ? exports.LastCommitInfo.toJSON(message.lastCommitInfo)\n : undefined);\n if (message.byzantineValidators) {\n obj.byzantineValidators = message.byzantineValidators.map((e) => (e ? exports.Evidence.toJSON(e) : undefined));\n }\n else {\n obj.byzantineValidators = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRequestBeginBlock);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.header =\n object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined;\n message.lastCommitInfo =\n object.lastCommitInfo !== undefined && object.lastCommitInfo !== null\n ? exports.LastCommitInfo.fromPartial(object.lastCommitInfo)\n : undefined;\n message.byzantineValidators = ((_b = object.byzantineValidators) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Evidence.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseRequestCheckTx = { type: 0 };\nexports.RequestCheckTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n case 2:\n message.type = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx =\n object.tx !== undefined && object.tx !== null ? bytesFromBase64(object.tx) : new Uint8Array();\n message.type = object.type !== undefined && object.type !== null ? checkTxTypeFromJSON(object.type) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx = (_a = object.tx) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.type = (_b = object.type) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseRequestDeliverTx = {};\nexports.RequestDeliverTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx =\n object.tx !== undefined && object.tx !== null ? bytesFromBase64(object.tx) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx = (_a = object.tx) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseRequestEndBlock = { height: long_1.default.ZERO };\nexports.RequestEndBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestEndBlock);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestEndBlock);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestEndBlock);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseRequestCommit = {};\nexports.RequestCommit = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestCommit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestCommit);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestCommit);\n return message;\n },\n};\nconst baseRequestListSnapshots = {};\nexports.RequestListSnapshots = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestListSnapshots);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestListSnapshots);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestListSnapshots);\n return message;\n },\n};\nconst baseRequestOfferSnapshot = {};\nexports.RequestOfferSnapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.snapshot !== undefined) {\n exports.Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(18).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.appHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshot = exports.Snapshot.decode(reader, reader.uint32());\n break;\n case 2:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.snapshot =\n object.snapshot !== undefined && object.snapshot !== null\n ? exports.Snapshot.fromJSON(object.snapshot)\n : undefined;\n message.appHash =\n object.appHash !== undefined && object.appHash !== null\n ? bytesFromBase64(object.appHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.snapshot !== undefined &&\n (obj.snapshot = message.snapshot ? exports.Snapshot.toJSON(message.snapshot) : undefined);\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.snapshot =\n object.snapshot !== undefined && object.snapshot !== null\n ? exports.Snapshot.fromPartial(object.snapshot)\n : undefined;\n message.appHash = (_a = object.appHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseRequestLoadSnapshotChunk = { height: long_1.default.UZERO, format: 0, chunk: 0 };\nexports.RequestLoadSnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunk !== 0) {\n writer.uint32(24).uint32(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunk = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.UZERO;\n message.format = object.format !== undefined && object.format !== null ? Number(object.format) : 0;\n message.chunk = object.chunk !== undefined && object.chunk !== null ? Number(object.chunk) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n message.format !== undefined && (obj.format = message.format);\n message.chunk !== undefined && (obj.chunk = message.chunk);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.UZERO;\n message.format = (_a = object.format) !== null && _a !== void 0 ? _a : 0;\n message.chunk = (_b = object.chunk) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseRequestApplySnapshotChunk = { index: 0, sender: \"\" };\nexports.RequestApplySnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.chunk.length !== 0) {\n writer.uint32(18).bytes(message.chunk);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.chunk = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.chunk = reader.bytes();\n break;\n case 3:\n message.sender = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.index = object.index !== undefined && object.index !== null ? Number(object.index) : 0;\n message.chunk =\n object.chunk !== undefined && object.chunk !== null ? bytesFromBase64(object.chunk) : new Uint8Array();\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = message.index);\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n message.sender !== undefined && (obj.sender = message.sender);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0;\n message.chunk = (_b = object.chunk) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.sender = (_c = object.sender) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseResponse = {};\nexports.Response = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exception !== undefined) {\n exports.ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim();\n }\n if (message.echo !== undefined) {\n exports.ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim();\n }\n if (message.setOption !== undefined) {\n exports.ResponseSetOption.encode(message.setOption, writer.uint32(42).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.ResponseListSnapshots.encode(message.listSnapshots, writer.uint32(106).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.ResponseOfferSnapshot.encode(message.offerSnapshot, writer.uint32(114).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.ResponseLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exception = exports.ResponseException.decode(reader, reader.uint32());\n break;\n case 2:\n message.echo = exports.ResponseEcho.decode(reader, reader.uint32());\n break;\n case 3:\n message.flush = exports.ResponseFlush.decode(reader, reader.uint32());\n break;\n case 4:\n message.info = exports.ResponseInfo.decode(reader, reader.uint32());\n break;\n case 5:\n message.setOption = exports.ResponseSetOption.decode(reader, reader.uint32());\n break;\n case 6:\n message.initChain = exports.ResponseInitChain.decode(reader, reader.uint32());\n break;\n case 7:\n message.query = exports.ResponseQuery.decode(reader, reader.uint32());\n break;\n case 8:\n message.beginBlock = exports.ResponseBeginBlock.decode(reader, reader.uint32());\n break;\n case 9:\n message.checkTx = exports.ResponseCheckTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.deliverTx = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n case 11:\n message.endBlock = exports.ResponseEndBlock.decode(reader, reader.uint32());\n break;\n case 12:\n message.commit = exports.ResponseCommit.decode(reader, reader.uint32());\n break;\n case 13:\n message.listSnapshots = exports.ResponseListSnapshots.decode(reader, reader.uint32());\n break;\n case 14:\n message.offerSnapshot = exports.ResponseOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 15:\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 16:\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponse);\n message.exception =\n object.exception !== undefined && object.exception !== null\n ? exports.ResponseException.fromJSON(object.exception)\n : undefined;\n message.echo =\n object.echo !== undefined && object.echo !== null ? exports.ResponseEcho.fromJSON(object.echo) : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null ? exports.ResponseFlush.fromJSON(object.flush) : undefined;\n message.info =\n object.info !== undefined && object.info !== null ? exports.ResponseInfo.fromJSON(object.info) : undefined;\n message.setOption =\n object.setOption !== undefined && object.setOption !== null\n ? exports.ResponseSetOption.fromJSON(object.setOption)\n : undefined;\n message.initChain =\n object.initChain !== undefined && object.initChain !== null\n ? exports.ResponseInitChain.fromJSON(object.initChain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null ? exports.ResponseQuery.fromJSON(object.query) : undefined;\n message.beginBlock =\n object.beginBlock !== undefined && object.beginBlock !== null\n ? exports.ResponseBeginBlock.fromJSON(object.beginBlock)\n : undefined;\n message.checkTx =\n object.checkTx !== undefined && object.checkTx !== null\n ? exports.ResponseCheckTx.fromJSON(object.checkTx)\n : undefined;\n message.deliverTx =\n object.deliverTx !== undefined && object.deliverTx !== null\n ? exports.ResponseDeliverTx.fromJSON(object.deliverTx)\n : undefined;\n message.endBlock =\n object.endBlock !== undefined && object.endBlock !== null\n ? exports.ResponseEndBlock.fromJSON(object.endBlock)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? exports.ResponseCommit.fromJSON(object.commit)\n : undefined;\n message.listSnapshots =\n object.listSnapshots !== undefined && object.listSnapshots !== null\n ? exports.ResponseListSnapshots.fromJSON(object.listSnapshots)\n : undefined;\n message.offerSnapshot =\n object.offerSnapshot !== undefined && object.offerSnapshot !== null\n ? exports.ResponseOfferSnapshot.fromJSON(object.offerSnapshot)\n : undefined;\n message.loadSnapshotChunk =\n object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null\n ? exports.ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk)\n : undefined;\n message.applySnapshotChunk =\n object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null\n ? exports.ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exception !== undefined &&\n (obj.exception = message.exception ? exports.ResponseException.toJSON(message.exception) : undefined);\n message.echo !== undefined && (obj.echo = message.echo ? exports.ResponseEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.ResponseFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.ResponseInfo.toJSON(message.info) : undefined);\n message.setOption !== undefined &&\n (obj.setOption = message.setOption ? exports.ResponseSetOption.toJSON(message.setOption) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.ResponseInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.ResponseQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.ResponseBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.ResponseCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.ResponseDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.ResponseEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.ResponseCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.ResponseListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.ResponseOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.ResponseLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.ResponseApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponse);\n message.exception =\n object.exception !== undefined && object.exception !== null\n ? exports.ResponseException.fromPartial(object.exception)\n : undefined;\n message.echo =\n object.echo !== undefined && object.echo !== null ? exports.ResponseEcho.fromPartial(object.echo) : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null\n ? exports.ResponseFlush.fromPartial(object.flush)\n : undefined;\n message.info =\n object.info !== undefined && object.info !== null ? exports.ResponseInfo.fromPartial(object.info) : undefined;\n message.setOption =\n object.setOption !== undefined && object.setOption !== null\n ? exports.ResponseSetOption.fromPartial(object.setOption)\n : undefined;\n message.initChain =\n object.initChain !== undefined && object.initChain !== null\n ? exports.ResponseInitChain.fromPartial(object.initChain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null\n ? exports.ResponseQuery.fromPartial(object.query)\n : undefined;\n message.beginBlock =\n object.beginBlock !== undefined && object.beginBlock !== null\n ? exports.ResponseBeginBlock.fromPartial(object.beginBlock)\n : undefined;\n message.checkTx =\n object.checkTx !== undefined && object.checkTx !== null\n ? exports.ResponseCheckTx.fromPartial(object.checkTx)\n : undefined;\n message.deliverTx =\n object.deliverTx !== undefined && object.deliverTx !== null\n ? exports.ResponseDeliverTx.fromPartial(object.deliverTx)\n : undefined;\n message.endBlock =\n object.endBlock !== undefined && object.endBlock !== null\n ? exports.ResponseEndBlock.fromPartial(object.endBlock)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? exports.ResponseCommit.fromPartial(object.commit)\n : undefined;\n message.listSnapshots =\n object.listSnapshots !== undefined && object.listSnapshots !== null\n ? exports.ResponseListSnapshots.fromPartial(object.listSnapshots)\n : undefined;\n message.offerSnapshot =\n object.offerSnapshot !== undefined && object.offerSnapshot !== null\n ? exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot)\n : undefined;\n message.loadSnapshotChunk =\n object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null\n ? exports.ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk)\n : undefined;\n message.applySnapshotChunk =\n object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null\n ? exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk)\n : undefined;\n return message;\n },\n};\nconst baseResponseException = { error: \"\" };\nexports.ResponseException = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.error !== \"\") {\n writer.uint32(10).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseException);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseException);\n message.error = object.error !== undefined && object.error !== null ? String(object.error) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseException);\n message.error = (_a = object.error) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseResponseEcho = { message: \"\" };\nexports.ResponseEcho = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseEcho);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseEcho);\n message.message = object.message !== undefined && object.message !== null ? String(object.message) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseEcho);\n message.message = (_a = object.message) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseResponseFlush = {};\nexports.ResponseFlush = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseFlush);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseResponseFlush);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseResponseFlush);\n return message;\n },\n};\nconst baseResponseInfo = {\n data: \"\",\n version: \"\",\n appVersion: long_1.default.UZERO,\n lastBlockHeight: long_1.default.ZERO,\n};\nexports.ResponseInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data !== \"\") {\n writer.uint32(10).string(message.data);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (!message.appVersion.isZero()) {\n writer.uint32(24).uint64(message.appVersion);\n }\n if (!message.lastBlockHeight.isZero()) {\n writer.uint32(32).int64(message.lastBlockHeight);\n }\n if (message.lastBlockAppHash.length !== 0) {\n writer.uint32(42).bytes(message.lastBlockAppHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseInfo);\n message.lastBlockAppHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n case 3:\n message.appVersion = reader.uint64();\n break;\n case 4:\n message.lastBlockHeight = reader.int64();\n break;\n case 5:\n message.lastBlockAppHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseInfo);\n message.data = object.data !== undefined && object.data !== null ? String(object.data) : \"\";\n message.version = object.version !== undefined && object.version !== null ? String(object.version) : \"\";\n message.appVersion =\n object.appVersion !== undefined && object.appVersion !== null\n ? long_1.default.fromString(object.appVersion)\n : long_1.default.UZERO;\n message.lastBlockHeight =\n object.lastBlockHeight !== undefined && object.lastBlockHeight !== null\n ? long_1.default.fromString(object.lastBlockHeight)\n : long_1.default.ZERO;\n message.lastBlockAppHash =\n object.lastBlockAppHash !== undefined && object.lastBlockAppHash !== null\n ? bytesFromBase64(object.lastBlockAppHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined && (obj.data = message.data);\n message.version !== undefined && (obj.version = message.version);\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || long_1.default.UZERO).toString());\n message.lastBlockHeight !== undefined &&\n (obj.lastBlockHeight = (message.lastBlockHeight || long_1.default.ZERO).toString());\n message.lastBlockAppHash !== undefined &&\n (obj.lastBlockAppHash = base64FromBytes(message.lastBlockAppHash !== undefined ? message.lastBlockAppHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseResponseInfo);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : \"\";\n message.version = (_b = object.version) !== null && _b !== void 0 ? _b : \"\";\n message.appVersion =\n object.appVersion !== undefined && object.appVersion !== null\n ? long_1.default.fromValue(object.appVersion)\n : long_1.default.UZERO;\n message.lastBlockHeight =\n object.lastBlockHeight !== undefined && object.lastBlockHeight !== null\n ? long_1.default.fromValue(object.lastBlockHeight)\n : long_1.default.ZERO;\n message.lastBlockAppHash = (_c = object.lastBlockAppHash) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseResponseSetOption = { code: 0, log: \"\", info: \"\" };\nexports.ResponseSetOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseSetOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseSetOption);\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseResponseSetOption);\n message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;\n message.log = (_b = object.log) !== null && _b !== void 0 ? _b : \"\";\n message.info = (_c = object.info) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseResponseInitChain = {};\nexports.ResponseInitChain = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusParams !== undefined) {\n exports.ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(26).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseInitChain);\n message.validators = [];\n message.appHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 3:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseInitChain);\n message.consensusParams =\n object.consensusParams !== undefined && object.consensusParams !== null\n ? exports.ConsensusParams.fromJSON(object.consensusParams)\n : undefined;\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => exports.ValidatorUpdate.fromJSON(e));\n message.appHash =\n object.appHash !== undefined && object.appHash !== null\n ? bytesFromBase64(object.appHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? exports.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseResponseInitChain);\n message.consensusParams =\n object.consensusParams !== undefined && object.consensusParams !== null\n ? exports.ConsensusParams.fromPartial(object.consensusParams)\n : undefined;\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ValidatorUpdate.fromPartial(e))) || [];\n message.appHash = (_b = object.appHash) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseResponseQuery = {\n code: 0,\n log: \"\",\n info: \"\",\n index: long_1.default.ZERO,\n height: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseQuery = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.index.isZero()) {\n writer.uint32(40).int64(message.index);\n }\n if (message.key.length !== 0) {\n writer.uint32(50).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(58).bytes(message.value);\n }\n if (message.proofOps !== undefined) {\n proof_1.ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(72).int64(message.height);\n }\n if (message.codespace !== \"\") {\n writer.uint32(82).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseQuery);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.index = reader.int64();\n break;\n case 6:\n message.key = reader.bytes();\n break;\n case 7:\n message.value = reader.bytes();\n break;\n case 8:\n message.proofOps = proof_1.ProofOps.decode(reader, reader.uint32());\n break;\n case 9:\n message.height = reader.int64();\n break;\n case 10:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseQuery);\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n message.index =\n object.index !== undefined && object.index !== null ? long_1.default.fromString(object.index) : long_1.default.ZERO;\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n message.proofOps =\n object.proofOps !== undefined && object.proofOps !== null\n ? proof_1.ProofOps.fromJSON(object.proofOps)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.codespace =\n object.codespace !== undefined && object.codespace !== null ? String(object.codespace) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.index !== undefined && (obj.index = (message.index || long_1.default.ZERO).toString());\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.proofOps !== undefined &&\n (obj.proofOps = message.proofOps ? proof_1.ProofOps.toJSON(message.proofOps) : undefined);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseResponseQuery);\n message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;\n message.log = (_b = object.log) !== null && _b !== void 0 ? _b : \"\";\n message.info = (_c = object.info) !== null && _c !== void 0 ? _c : \"\";\n message.index =\n object.index !== undefined && object.index !== null ? long_1.default.fromValue(object.index) : long_1.default.ZERO;\n message.key = (_d = object.key) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.value = (_e = object.value) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.proofOps =\n object.proofOps !== undefined && object.proofOps !== null\n ? proof_1.ProofOps.fromPartial(object.proofOps)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.codespace = (_f = object.codespace) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseResponseBeginBlock = {};\nexports.ResponseBeginBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => exports.Event.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = ((_a = object.events) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Event.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseResponseCheckTx = {\n code: 0,\n log: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseCheckTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseCheckTx);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseCheckTx);\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n message.gasWanted =\n object.gas_wanted !== undefined && object.gas_wanted !== null\n ? long_1.default.fromString(object.gas_wanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gas_used !== undefined && object.gas_used !== null\n ? long_1.default.fromString(object.gas_used)\n : long_1.default.ZERO;\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => exports.Event.fromJSON(e));\n message.codespace =\n object.codespace !== undefined && object.codespace !== null ? String(object.codespace) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || long_1.default.ZERO).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseResponseCheckTx);\n message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.log = (_c = object.log) !== null && _c !== void 0 ? _c : \"\";\n message.info = (_d = object.info) !== null && _d !== void 0 ? _d : \"\";\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromValue(object.gasWanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromValue(object.gasUsed) : long_1.default.ZERO;\n message.events = ((_e = object.events) === null || _e === void 0 ? void 0 : _e.map((e) => exports.Event.fromPartial(e))) || [];\n message.codespace = (_f = object.codespace) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseResponseDeliverTx = {\n code: 0,\n log: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseDeliverTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseDeliverTx);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseDeliverTx);\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n message.gasWanted =\n object.gas_wanted !== undefined && object.gas_wanted !== null\n ? long_1.default.fromString(object.gas_wanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gas_used !== undefined && object.gas_used !== null\n ? long_1.default.fromString(object.gas_used)\n : long_1.default.ZERO;\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => exports.Event.fromJSON(e));\n message.codespace =\n object.codespace !== undefined && object.codespace !== null ? String(object.codespace) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || long_1.default.ZERO).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseResponseDeliverTx);\n message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.log = (_c = object.log) !== null && _c !== void 0 ? _c : \"\";\n message.info = (_d = object.info) !== null && _d !== void 0 ? _d : \"\";\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromValue(object.gasWanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromValue(object.gasUsed) : long_1.default.ZERO;\n message.events = ((_e = object.events) === null || _e === void 0 ? void 0 : _e.map((e) => exports.Event.fromPartial(e))) || [];\n message.codespace = (_f = object.codespace) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseResponseEndBlock = {};\nexports.ResponseEndBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validatorUpdates) {\n exports.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusParamUpdates !== undefined) {\n exports.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = [];\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 2:\n message.consensusParamUpdates = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = ((_a = object.validatorUpdates) !== null && _a !== void 0 ? _a : []).map((e) => exports.ValidatorUpdate.fromJSON(e));\n message.consensusParamUpdates =\n object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null\n ? exports.ConsensusParams.fromJSON(object.consensusParamUpdates)\n : undefined;\n message.events = ((_b = object.events) !== null && _b !== void 0 ? _b : []).map((e) => exports.Event.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorUpdates) {\n obj.validatorUpdates = message.validatorUpdates.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validatorUpdates = [];\n }\n message.consensusParamUpdates !== undefined &&\n (obj.consensusParamUpdates = message.consensusParamUpdates\n ? exports.ConsensusParams.toJSON(message.consensusParamUpdates)\n : undefined);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = ((_a = object.validatorUpdates) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ValidatorUpdate.fromPartial(e))) || [];\n message.consensusParamUpdates =\n object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null\n ? exports.ConsensusParams.fromPartial(object.consensusParamUpdates)\n : undefined;\n message.events = ((_b = object.events) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Event.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseResponseCommit = { retainHeight: long_1.default.ZERO };\nexports.ResponseCommit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (!message.retainHeight.isZero()) {\n writer.uint32(24).int64(message.retainHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseCommit);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.retainHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseCommit);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.retainHeight =\n object.retainHeight !== undefined && object.retainHeight !== null\n ? long_1.default.fromString(object.retainHeight)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseCommit);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.retainHeight =\n object.retainHeight !== undefined && object.retainHeight !== null\n ? long_1.default.fromValue(object.retainHeight)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseResponseListSnapshots = {};\nexports.ResponseListSnapshots = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.snapshots) {\n exports.Snapshot.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshots.push(exports.Snapshot.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = ((_a = object.snapshots) !== null && _a !== void 0 ? _a : []).map((e) => exports.Snapshot.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.snapshots) {\n obj.snapshots = message.snapshots.map((e) => (e ? exports.Snapshot.toJSON(e) : undefined));\n }\n else {\n obj.snapshots = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = ((_a = object.snapshots) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Snapshot.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseResponseOfferSnapshot = { result: 0 };\nexports.ResponseOfferSnapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseOfferSnapshot);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseOfferSnapshot);\n message.result =\n object.result !== undefined && object.result !== null\n ? responseOfferSnapshot_ResultFromJSON(object.result)\n : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseOfferSnapshot_ResultToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseOfferSnapshot);\n message.result = (_a = object.result) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nconst baseResponseLoadSnapshotChunk = {};\nexports.ResponseLoadSnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.chunk.length !== 0) {\n writer.uint32(10).bytes(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chunk = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk =\n object.chunk !== undefined && object.chunk !== null ? bytesFromBase64(object.chunk) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk = (_a = object.chunk) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseResponseApplySnapshotChunk = { result: 0, refetchChunks: 0, rejectSenders: \"\" };\nexports.ResponseApplySnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n writer.uint32(18).fork();\n for (const v of message.refetchChunks) {\n writer.uint32(v);\n }\n writer.ldelim();\n for (const v of message.rejectSenders) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.refetchChunks = [];\n message.rejectSenders = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n case 2:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.refetchChunks.push(reader.uint32());\n }\n }\n else {\n message.refetchChunks.push(reader.uint32());\n }\n break;\n case 3:\n message.rejectSenders.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.result =\n object.result !== undefined && object.result !== null\n ? responseApplySnapshotChunk_ResultFromJSON(object.result)\n : 0;\n message.refetchChunks = ((_a = object.refetchChunks) !== null && _a !== void 0 ? _a : []).map((e) => Number(e));\n message.rejectSenders = ((_b = object.rejectSenders) !== null && _b !== void 0 ? _b : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));\n if (message.refetchChunks) {\n obj.refetchChunks = message.refetchChunks.map((e) => e);\n }\n else {\n obj.refetchChunks = [];\n }\n if (message.rejectSenders) {\n obj.rejectSenders = message.rejectSenders.map((e) => e);\n }\n else {\n obj.rejectSenders = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.result = (_a = object.result) !== null && _a !== void 0 ? _a : 0;\n message.refetchChunks = ((_b = object.refetchChunks) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n message.rejectSenders = ((_c = object.rejectSenders) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n return message;\n },\n};\nconst baseConsensusParams = {};\nexports.ConsensusParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n params_1.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n params_1.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n params_1.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = params_1.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = params_1.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = params_1.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusParams);\n message.block =\n object.block !== undefined && object.block !== null ? exports.BlockParams.fromJSON(object.block) : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? params_1.EvidenceParams.fromJSON(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? params_1.ValidatorParams.fromJSON(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? params_1.VersionParams.fromJSON(object.version)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? params_1.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? params_1.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? params_1.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusParams);\n message.block =\n object.block !== undefined && object.block !== null ? exports.BlockParams.fromPartial(object.block) : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? params_1.EvidenceParams.fromPartial(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? params_1.ValidatorParams.fromPartial(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? params_1.VersionParams.fromPartial(object.version)\n : undefined;\n return message;\n },\n};\nconst baseBlockParams = { maxBytes: long_1.default.ZERO, maxGas: long_1.default.ZERO };\nexports.BlockParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxBytes.isZero()) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (!message.maxGas.isZero()) {\n writer.uint32(16).int64(message.maxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockParams);\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null\n ? long_1.default.fromString(object.maxBytes)\n : long_1.default.ZERO;\n message.maxGas =\n object.maxGas !== undefined && object.maxGas !== null ? long_1.default.fromString(object.maxGas) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockParams);\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null ? long_1.default.fromValue(object.maxBytes) : long_1.default.ZERO;\n message.maxGas =\n object.maxGas !== undefined && object.maxGas !== null ? long_1.default.fromValue(object.maxGas) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseLastCommitInfo = { round: 0 };\nexports.LastCommitInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n exports.VoteInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLastCommitInfo);\n message.votes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(exports.VoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseLastCommitInfo);\n message.round = object.round !== undefined && object.round !== null ? Number(object.round) : 0;\n message.votes = ((_a = object.votes) !== null && _a !== void 0 ? _a : []).map((e) => exports.VoteInfo.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.round !== undefined && (obj.round = message.round);\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? exports.VoteInfo.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseLastCommitInfo);\n message.round = (_a = object.round) !== null && _a !== void 0 ? _a : 0;\n message.votes = ((_b = object.votes) === null || _b === void 0 ? void 0 : _b.map((e) => exports.VoteInfo.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseEvent = { type: \"\" };\nexports.Event = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.EventAttribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvent);\n message.attributes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.EventAttribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseEvent);\n message.type = object.type !== undefined && object.type !== null ? String(object.type) : \"\";\n message.attributes = ((_a = object.attributes) !== null && _a !== void 0 ? _a : []).map((e) => exports.EventAttribute.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.EventAttribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseEvent);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : \"\";\n message.attributes = ((_b = object.attributes) === null || _b === void 0 ? void 0 : _b.map((e) => exports.EventAttribute.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseEventAttribute = { index: false };\nexports.EventAttribute = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.index === true) {\n writer.uint32(24).bool(message.index);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEventAttribute);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.index = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEventAttribute);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n message.index = object.index !== undefined && object.index !== null ? Boolean(object.index) : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.index !== undefined && (obj.index = message.index);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseEventAttribute);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.index = (_c = object.index) !== null && _c !== void 0 ? _c : false;\n return message;\n },\n};\nconst baseTxResult = { height: long_1.default.ZERO, index: 0 };\nexports.TxResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint32(message.index);\n }\n if (message.tx.length !== 0) {\n writer.uint32(26).bytes(message.tx);\n }\n if (message.result !== undefined) {\n exports.ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxResult);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 3:\n message.tx = reader.bytes();\n break;\n case 4:\n message.result = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxResult);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.index = object.index !== undefined && object.index !== null ? Number(object.index) : 0;\n message.tx =\n object.tx !== undefined && object.tx !== null ? bytesFromBase64(object.tx) : new Uint8Array();\n message.result =\n object.result !== undefined && object.result !== null\n ? exports.ResponseDeliverTx.fromJSON(object.result)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.index !== undefined && (obj.index = message.index);\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.result !== undefined &&\n (obj.result = message.result ? exports.ResponseDeliverTx.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseTxResult);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0;\n message.tx = (_b = object.tx) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.result =\n object.result !== undefined && object.result !== null\n ? exports.ResponseDeliverTx.fromPartial(object.result)\n : undefined;\n return message;\n },\n};\nconst baseValidator = { power: long_1.default.ZERO };\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (!message.power.isZero()) {\n writer.uint32(24).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 3:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.address =\n object.address !== undefined && object.address !== null\n ? bytesFromBase64(object.address)\n : new Uint8Array();\n message.power =\n object.power !== undefined && object.power !== null ? long_1.default.fromString(object.power) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));\n message.power !== undefined && (obj.power = (message.power || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidator);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.power =\n object.power !== undefined && object.power !== null ? long_1.default.fromValue(object.power) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseValidatorUpdate = { power: long_1.default.ZERO };\nexports.ValidatorUpdate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (!message.power.isZero()) {\n writer.uint32(16).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorUpdate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorUpdate);\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined;\n message.power =\n object.power !== undefined && object.power !== null ? long_1.default.fromString(object.power) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.power !== undefined && (obj.power = (message.power || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorUpdate);\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null\n ? keys_1.PublicKey.fromPartial(object.pubKey)\n : undefined;\n message.power =\n object.power !== undefined && object.power !== null ? long_1.default.fromValue(object.power) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseVoteInfo = { signedLastBlock: false };\nexports.VoteInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signedLastBlock === true) {\n writer.uint32(16).bool(message.signedLastBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVoteInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signedLastBlock = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVoteInfo);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.Validator.fromJSON(object.validator)\n : undefined;\n message.signedLastBlock =\n object.signedLastBlock !== undefined && object.signedLastBlock !== null\n ? Boolean(object.signedLastBlock)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseVoteInfo);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.Validator.fromPartial(object.validator)\n : undefined;\n message.signedLastBlock = (_a = object.signedLastBlock) !== null && _a !== void 0 ? _a : false;\n return message;\n },\n};\nconst baseEvidence = { type: 0, height: long_1.default.ZERO, totalVotingPower: long_1.default.ZERO };\nexports.Evidence = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(18).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (!message.totalVotingPower.isZero()) {\n writer.uint32(40).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvidence);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvidence);\n message.type = object.type !== undefined && object.type !== null ? evidenceTypeFromJSON(object.type) : 0;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.Validator.fromJSON(object.validator)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.time =\n object.time !== undefined && object.time !== null ? fromJsonTimestamp(object.time) : undefined;\n message.totalVotingPower =\n object.totalVotingPower !== undefined && object.totalVotingPower !== null\n ? long_1.default.fromString(object.totalVotingPower)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = evidenceTypeToJSON(message.type));\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.time !== undefined && (obj.time = fromTimestamp(message.time).toISOString());\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseEvidence);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.Validator.fromPartial(object.validator)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.time =\n object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined;\n message.totalVotingPower =\n object.totalVotingPower !== undefined && object.totalVotingPower !== null\n ? long_1.default.fromValue(object.totalVotingPower)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseSnapshot = { height: long_1.default.UZERO, format: 0, chunks: 0 };\nexports.Snapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunks !== 0) {\n writer.uint32(24).uint32(message.chunks);\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.metadata.length !== 0) {\n writer.uint32(42).bytes(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSnapshot);\n message.hash = new Uint8Array();\n message.metadata = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunks = reader.uint32();\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.metadata = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSnapshot);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.UZERO;\n message.format = object.format !== undefined && object.format !== null ? Number(object.format) : 0;\n message.chunks = object.chunks !== undefined && object.chunks !== null ? Number(object.chunks) : 0;\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n message.metadata =\n object.metadata !== undefined && object.metadata !== null\n ? bytesFromBase64(object.metadata)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n message.format !== undefined && (obj.format = message.format);\n message.chunks !== undefined && (obj.chunks = message.chunks);\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.metadata !== undefined &&\n (obj.metadata = base64FromBytes(message.metadata !== undefined ? message.metadata : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseSnapshot);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.UZERO;\n message.format = (_a = object.format) !== null && _a !== void 0 ? _a : 0;\n message.chunks = (_b = object.chunks) !== null && _b !== void 0 ? _b : 0;\n message.hash = (_c = object.hash) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.metadata = (_d = object.metadata) !== null && _d !== void 0 ? _d : new Uint8Array();\n return message;\n },\n};\nclass ABCIApplicationClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Echo = this.Echo.bind(this);\n this.Flush = this.Flush.bind(this);\n this.Info = this.Info.bind(this);\n this.SetOption = this.SetOption.bind(this);\n this.DeliverTx = this.DeliverTx.bind(this);\n this.CheckTx = this.CheckTx.bind(this);\n this.Query = this.Query.bind(this);\n this.Commit = this.Commit.bind(this);\n this.InitChain = this.InitChain.bind(this);\n this.BeginBlock = this.BeginBlock.bind(this);\n this.EndBlock = this.EndBlock.bind(this);\n this.ListSnapshots = this.ListSnapshots.bind(this);\n this.OfferSnapshot = this.OfferSnapshot.bind(this);\n this.LoadSnapshotChunk = this.LoadSnapshotChunk.bind(this);\n this.ApplySnapshotChunk = this.ApplySnapshotChunk.bind(this);\n }\n Echo(request) {\n const data = exports.RequestEcho.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Echo\", data);\n return promise.then((data) => exports.ResponseEcho.decode(new minimal_1.default.Reader(data)));\n }\n Flush(request) {\n const data = exports.RequestFlush.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Flush\", data);\n return promise.then((data) => exports.ResponseFlush.decode(new minimal_1.default.Reader(data)));\n }\n Info(request) {\n const data = exports.RequestInfo.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Info\", data);\n return promise.then((data) => exports.ResponseInfo.decode(new minimal_1.default.Reader(data)));\n }\n SetOption(request) {\n const data = exports.RequestSetOption.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"SetOption\", data);\n return promise.then((data) => exports.ResponseSetOption.decode(new minimal_1.default.Reader(data)));\n }\n DeliverTx(request) {\n const data = exports.RequestDeliverTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"DeliverTx\", data);\n return promise.then((data) => exports.ResponseDeliverTx.decode(new minimal_1.default.Reader(data)));\n }\n CheckTx(request) {\n const data = exports.RequestCheckTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"CheckTx\", data);\n return promise.then((data) => exports.ResponseCheckTx.decode(new minimal_1.default.Reader(data)));\n }\n Query(request) {\n const data = exports.RequestQuery.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Query\", data);\n return promise.then((data) => exports.ResponseQuery.decode(new minimal_1.default.Reader(data)));\n }\n Commit(request) {\n const data = exports.RequestCommit.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Commit\", data);\n return promise.then((data) => exports.ResponseCommit.decode(new minimal_1.default.Reader(data)));\n }\n InitChain(request) {\n const data = exports.RequestInitChain.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"InitChain\", data);\n return promise.then((data) => exports.ResponseInitChain.decode(new minimal_1.default.Reader(data)));\n }\n BeginBlock(request) {\n const data = exports.RequestBeginBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"BeginBlock\", data);\n return promise.then((data) => exports.ResponseBeginBlock.decode(new minimal_1.default.Reader(data)));\n }\n EndBlock(request) {\n const data = exports.RequestEndBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"EndBlock\", data);\n return promise.then((data) => exports.ResponseEndBlock.decode(new minimal_1.default.Reader(data)));\n }\n ListSnapshots(request) {\n const data = exports.RequestListSnapshots.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ListSnapshots\", data);\n return promise.then((data) => exports.ResponseListSnapshots.decode(new minimal_1.default.Reader(data)));\n }\n OfferSnapshot(request) {\n const data = exports.RequestOfferSnapshot.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"OfferSnapshot\", data);\n return promise.then((data) => exports.ResponseOfferSnapshot.decode(new minimal_1.default.Reader(data)));\n }\n LoadSnapshotChunk(request) {\n const data = exports.RequestLoadSnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"LoadSnapshotChunk\", data);\n return promise.then((data) => exports.ResponseLoadSnapshotChunk.decode(new minimal_1.default.Reader(data)));\n }\n ApplySnapshotChunk(request) {\n const data = exports.RequestApplySnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ApplySnapshotChunk\", data);\n return promise.then((data) => exports.ResponseApplySnapshotChunk.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.ABCIApplicationClientImpl = ABCIApplicationClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.crypto\";\nconst basePublicKey = {};\nexports.PublicKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.ed25519 !== undefined) {\n writer.uint32(10).bytes(message.ed25519);\n }\n if (message.secp256k1 !== undefined) {\n writer.uint32(18).bytes(message.secp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePublicKey);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ed25519 = reader.bytes();\n break;\n case 2:\n message.secp256k1 = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePublicKey);\n message.ed25519 =\n object.ed25519 !== undefined && object.ed25519 !== null ? bytesFromBase64(object.ed25519) : undefined;\n message.secp256k1 =\n object.secp256k1 !== undefined && object.secp256k1 !== null\n ? bytesFromBase64(object.secp256k1)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.ed25519 !== undefined &&\n (obj.ed25519 = message.ed25519 !== undefined ? base64FromBytes(message.ed25519) : undefined);\n message.secp256k1 !== undefined &&\n (obj.secp256k1 = message.secp256k1 !== undefined ? base64FromBytes(message.secp256k1) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, basePublicKey);\n message.ed25519 = (_a = object.ed25519) !== null && _a !== void 0 ? _a : undefined;\n message.secp256k1 = (_b = object.secp256k1) !== null && _b !== void 0 ? _b : undefined;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.crypto\";\nconst baseProof = { total: long_1.default.ZERO, index: long_1.default.ZERO };\nexports.Proof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.total.isZero()) {\n writer.uint32(8).int64(message.total);\n }\n if (!message.index.isZero()) {\n writer.uint32(16).int64(message.index);\n }\n if (message.leafHash.length !== 0) {\n writer.uint32(26).bytes(message.leafHash);\n }\n for (const v of message.aunts) {\n writer.uint32(34).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProof);\n message.aunts = [];\n message.leafHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.int64();\n break;\n case 2:\n message.index = reader.int64();\n break;\n case 3:\n message.leafHash = reader.bytes();\n break;\n case 4:\n message.aunts.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseProof);\n message.total =\n object.total !== undefined && object.total !== null ? long_1.default.fromString(object.total) : long_1.default.ZERO;\n message.index =\n object.index !== undefined && object.index !== null ? long_1.default.fromString(object.index) : long_1.default.ZERO;\n message.leafHash =\n object.leafHash !== undefined && object.leafHash !== null\n ? bytesFromBase64(object.leafHash)\n : new Uint8Array();\n message.aunts = ((_a = object.aunts) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = (message.total || long_1.default.ZERO).toString());\n message.index !== undefined && (obj.index = (message.index || long_1.default.ZERO).toString());\n message.leafHash !== undefined &&\n (obj.leafHash = base64FromBytes(message.leafHash !== undefined ? message.leafHash : new Uint8Array()));\n if (message.aunts) {\n obj.aunts = message.aunts.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.aunts = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseProof);\n message.total =\n object.total !== undefined && object.total !== null ? long_1.default.fromValue(object.total) : long_1.default.ZERO;\n message.index =\n object.index !== undefined && object.index !== null ? long_1.default.fromValue(object.index) : long_1.default.ZERO;\n message.leafHash = (_a = object.leafHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.aunts = ((_b = object.aunts) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n return message;\n },\n};\nconst baseValueOp = {};\nexports.ValueOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.proof !== undefined) {\n exports.Proof.encode(message.proof, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValueOp);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.proof = exports.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValueOp);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? exports.Proof.fromJSON(object.proof) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? exports.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValueOp);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? exports.Proof.fromPartial(object.proof) : undefined;\n return message;\n },\n};\nconst baseDominoOp = { key: \"\", input: \"\", output: \"\" };\nexports.DominoOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.input !== \"\") {\n writer.uint32(18).string(message.input);\n }\n if (message.output !== \"\") {\n writer.uint32(26).string(message.output);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDominoOp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.input = reader.string();\n break;\n case 3:\n message.output = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDominoOp);\n message.key = object.key !== undefined && object.key !== null ? String(object.key) : \"\";\n message.input = object.input !== undefined && object.input !== null ? String(object.input) : \"\";\n message.output = object.output !== undefined && object.output !== null ? String(object.output) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.input !== undefined && (obj.input = message.input);\n message.output !== undefined && (obj.output = message.output);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseDominoOp);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : \"\";\n message.input = (_b = object.input) !== null && _b !== void 0 ? _b : \"\";\n message.output = (_c = object.output) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseProofOp = { type: \"\" };\nexports.ProofOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n if (message.key.length !== 0) {\n writer.uint32(18).bytes(message.key);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofOp);\n message.key = new Uint8Array();\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.key = reader.bytes();\n break;\n case 3:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofOp);\n message.type = object.type !== undefined && object.type !== null ? String(object.type) : \"\";\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseProofOp);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : \"\";\n message.key = (_b = object.key) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.data = (_c = object.data) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseProofOps = {};\nexports.ProofOps = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.ops) {\n exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofOps);\n message.ops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ops.push(exports.ProofOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseProofOps);\n message.ops = ((_a = object.ops) !== null && _a !== void 0 ? _a : []).map((e) => exports.ProofOp.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.ops) {\n obj.ops = message.ops.map((e) => (e ? exports.ProofOp.toJSON(e) : undefined));\n }\n else {\n obj.ops = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseProofOps);\n message.ops = ((_a = object.ops) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ProofOp.fromPartial(e))) || [];\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=proof.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst duration_1 = require(\"../../google/protobuf/duration\");\nexports.protobufPackage = \"tendermint.types\";\nconst baseConsensusParams = {};\nexports.ConsensusParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n exports.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n exports.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n exports.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = exports.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = exports.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = exports.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusParams);\n message.block =\n object.block !== undefined && object.block !== null ? exports.BlockParams.fromJSON(object.block) : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? exports.EvidenceParams.fromJSON(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.ValidatorParams.fromJSON(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? exports.VersionParams.fromJSON(object.version)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? exports.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? exports.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusParams);\n message.block =\n object.block !== undefined && object.block !== null ? exports.BlockParams.fromPartial(object.block) : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? exports.EvidenceParams.fromPartial(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.ValidatorParams.fromPartial(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? exports.VersionParams.fromPartial(object.version)\n : undefined;\n return message;\n },\n};\nconst baseBlockParams = { maxBytes: long_1.default.ZERO, maxGas: long_1.default.ZERO, timeIotaMs: long_1.default.ZERO };\nexports.BlockParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxBytes.isZero()) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (!message.maxGas.isZero()) {\n writer.uint32(16).int64(message.maxGas);\n }\n if (!message.timeIotaMs.isZero()) {\n writer.uint32(24).int64(message.timeIotaMs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n case 3:\n message.timeIotaMs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockParams);\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null\n ? long_1.default.fromString(object.maxBytes)\n : long_1.default.ZERO;\n message.maxGas =\n object.maxGas !== undefined && object.maxGas !== null ? long_1.default.fromString(object.maxGas) : long_1.default.ZERO;\n message.timeIotaMs =\n object.timeIotaMs !== undefined && object.timeIotaMs !== null\n ? long_1.default.fromString(object.timeIotaMs)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || long_1.default.ZERO).toString());\n message.timeIotaMs !== undefined && (obj.timeIotaMs = (message.timeIotaMs || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockParams);\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null ? long_1.default.fromValue(object.maxBytes) : long_1.default.ZERO;\n message.maxGas =\n object.maxGas !== undefined && object.maxGas !== null ? long_1.default.fromValue(object.maxGas) : long_1.default.ZERO;\n message.timeIotaMs =\n object.timeIotaMs !== undefined && object.timeIotaMs !== null\n ? long_1.default.fromValue(object.timeIotaMs)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseEvidenceParams = { maxAgeNumBlocks: long_1.default.ZERO, maxBytes: long_1.default.ZERO };\nexports.EvidenceParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxAgeNumBlocks.isZero()) {\n writer.uint32(8).int64(message.maxAgeNumBlocks);\n }\n if (message.maxAgeDuration !== undefined) {\n duration_1.Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim();\n }\n if (!message.maxBytes.isZero()) {\n writer.uint32(24).int64(message.maxBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvidenceParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxAgeNumBlocks = reader.int64();\n break;\n case 2:\n message.maxAgeDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxBytes = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvidenceParams);\n message.maxAgeNumBlocks =\n object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null\n ? long_1.default.fromString(object.maxAgeNumBlocks)\n : long_1.default.ZERO;\n message.maxAgeDuration =\n object.maxAgeDuration !== undefined && object.maxAgeDuration !== null\n ? duration_1.Duration.fromJSON(object.maxAgeDuration)\n : undefined;\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null\n ? long_1.default.fromString(object.maxBytes)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxAgeNumBlocks !== undefined &&\n (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || long_1.default.ZERO).toString());\n message.maxAgeDuration !== undefined &&\n (obj.maxAgeDuration = message.maxAgeDuration ? duration_1.Duration.toJSON(message.maxAgeDuration) : undefined);\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEvidenceParams);\n message.maxAgeNumBlocks =\n object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null\n ? long_1.default.fromValue(object.maxAgeNumBlocks)\n : long_1.default.ZERO;\n message.maxAgeDuration =\n object.maxAgeDuration !== undefined && object.maxAgeDuration !== null\n ? duration_1.Duration.fromPartial(object.maxAgeDuration)\n : undefined;\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null ? long_1.default.fromValue(object.maxBytes) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseValidatorParams = { pubKeyTypes: \"\" };\nexports.ValidatorParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pubKeyTypes) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKeyTypes.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = ((_a = object.pubKeyTypes) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pubKeyTypes) {\n obj.pubKeyTypes = message.pubKeyTypes.map((e) => e);\n }\n else {\n obj.pubKeyTypes = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = ((_a = object.pubKeyTypes) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseVersionParams = { appVersion: long_1.default.UZERO };\nexports.VersionParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.appVersion.isZero()) {\n writer.uint32(8).uint64(message.appVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVersionParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.appVersion = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVersionParams);\n message.appVersion =\n object.appVersion !== undefined && object.appVersion !== null\n ? long_1.default.fromString(object.appVersion)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVersionParams);\n message.appVersion =\n object.appVersion !== undefined && object.appVersion !== null\n ? long_1.default.fromValue(object.appVersion)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseHashedParams = { blockMaxBytes: long_1.default.ZERO, blockMaxGas: long_1.default.ZERO };\nexports.HashedParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.blockMaxBytes.isZero()) {\n writer.uint32(8).int64(message.blockMaxBytes);\n }\n if (!message.blockMaxGas.isZero()) {\n writer.uint32(16).int64(message.blockMaxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHashedParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockMaxBytes = reader.int64();\n break;\n case 2:\n message.blockMaxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHashedParams);\n message.blockMaxBytes =\n object.blockMaxBytes !== undefined && object.blockMaxBytes !== null\n ? long_1.default.fromString(object.blockMaxBytes)\n : long_1.default.ZERO;\n message.blockMaxGas =\n object.blockMaxGas !== undefined && object.blockMaxGas !== null\n ? long_1.default.fromString(object.blockMaxGas)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockMaxBytes !== undefined &&\n (obj.blockMaxBytes = (message.blockMaxBytes || long_1.default.ZERO).toString());\n message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHashedParams);\n message.blockMaxBytes =\n object.blockMaxBytes !== undefined && object.blockMaxBytes !== null\n ? long_1.default.fromValue(object.blockMaxBytes)\n : long_1.default.ZERO;\n message.blockMaxGas =\n object.blockMaxGas !== undefined && object.blockMaxGas !== null\n ? long_1.default.fromValue(object.blockMaxGas)\n : long_1.default.ZERO;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=params.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlag = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst proof_1 = require(\"../../tendermint/crypto/proof\");\nconst types_1 = require(\"../../tendermint/version/types\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst validator_1 = require(\"../../tendermint/types/validator\");\nexports.protobufPackage = \"tendermint.types\";\n/** BlockIdFlag indicates which BlcokID the signature is for */\nvar BlockIDFlag;\n(function (BlockIDFlag) {\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_UNKNOWN\"] = 0] = \"BLOCK_ID_FLAG_UNKNOWN\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_ABSENT\"] = 1] = \"BLOCK_ID_FLAG_ABSENT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_COMMIT\"] = 2] = \"BLOCK_ID_FLAG_COMMIT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_NIL\"] = 3] = \"BLOCK_ID_FLAG_NIL\";\n BlockIDFlag[BlockIDFlag[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BlockIDFlag = exports.BlockIDFlag || (exports.BlockIDFlag = {}));\nfunction blockIDFlagFromJSON(object) {\n switch (object) {\n case 0:\n case \"BLOCK_ID_FLAG_UNKNOWN\":\n return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;\n case 1:\n case \"BLOCK_ID_FLAG_ABSENT\":\n return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;\n case 2:\n case \"BLOCK_ID_FLAG_COMMIT\":\n return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;\n case 3:\n case \"BLOCK_ID_FLAG_NIL\":\n return BlockIDFlag.BLOCK_ID_FLAG_NIL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BlockIDFlag.UNRECOGNIZED;\n }\n}\nexports.blockIDFlagFromJSON = blockIDFlagFromJSON;\nfunction blockIDFlagToJSON(object) {\n switch (object) {\n case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:\n return \"BLOCK_ID_FLAG_UNKNOWN\";\n case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:\n return \"BLOCK_ID_FLAG_ABSENT\";\n case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:\n return \"BLOCK_ID_FLAG_COMMIT\";\n case BlockIDFlag.BLOCK_ID_FLAG_NIL:\n return \"BLOCK_ID_FLAG_NIL\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.blockIDFlagToJSON = blockIDFlagToJSON;\n/** SignedMsgType is a type of signed message in the consensus. */\nvar SignedMsgType;\n(function (SignedMsgType) {\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_UNKNOWN\"] = 0] = \"SIGNED_MSG_TYPE_UNKNOWN\";\n /** SIGNED_MSG_TYPE_PREVOTE - Votes */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PREVOTE\"] = 1] = \"SIGNED_MSG_TYPE_PREVOTE\";\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PRECOMMIT\"] = 2] = \"SIGNED_MSG_TYPE_PRECOMMIT\";\n /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PROPOSAL\"] = 32] = \"SIGNED_MSG_TYPE_PROPOSAL\";\n SignedMsgType[SignedMsgType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignedMsgType = exports.SignedMsgType || (exports.SignedMsgType = {}));\nfunction signedMsgTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGNED_MSG_TYPE_UNKNOWN\":\n return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;\n case 1:\n case \"SIGNED_MSG_TYPE_PREVOTE\":\n return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;\n case 2:\n case \"SIGNED_MSG_TYPE_PRECOMMIT\":\n return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;\n case 32:\n case \"SIGNED_MSG_TYPE_PROPOSAL\":\n return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignedMsgType.UNRECOGNIZED;\n }\n}\nexports.signedMsgTypeFromJSON = signedMsgTypeFromJSON;\nfunction signedMsgTypeToJSON(object) {\n switch (object) {\n case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:\n return \"SIGNED_MSG_TYPE_UNKNOWN\";\n case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:\n return \"SIGNED_MSG_TYPE_PREVOTE\";\n case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:\n return \"SIGNED_MSG_TYPE_PRECOMMIT\";\n case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:\n return \"SIGNED_MSG_TYPE_PROPOSAL\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.signedMsgTypeToJSON = signedMsgTypeToJSON;\nconst basePartSetHeader = { total: 0 };\nexports.PartSetHeader = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.total !== 0) {\n writer.uint32(8).uint32(message.total);\n }\n if (message.hash.length !== 0) {\n writer.uint32(18).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePartSetHeader);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.uint32();\n break;\n case 2:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePartSetHeader);\n message.total = object.total !== undefined && object.total !== null ? Number(object.total) : 0;\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = message.total);\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, basePartSetHeader);\n message.total = (_a = object.total) !== null && _a !== void 0 ? _a : 0;\n message.hash = (_b = object.hash) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst basePart = { index: 0 };\nexports.Part = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePart);\n message.bytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.bytes = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePart);\n message.index = object.index !== undefined && object.index !== null ? Number(object.index) : 0;\n message.bytes =\n object.bytes !== undefined && object.bytes !== null ? bytesFromBase64(object.bytes) : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromJSON(object.proof) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = message.index);\n message.bytes !== undefined &&\n (obj.bytes = base64FromBytes(message.bytes !== undefined ? message.bytes : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, basePart);\n message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0;\n message.bytes = (_b = object.bytes) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromPartial(object.proof) : undefined;\n return message;\n },\n};\nconst baseBlockID = {};\nexports.BlockID = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.partSetHeader !== undefined) {\n exports.PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockID);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.partSetHeader = exports.PartSetHeader.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockID);\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n message.partSetHeader =\n object.partSetHeader !== undefined && object.partSetHeader !== null\n ? exports.PartSetHeader.fromJSON(object.partSetHeader)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.partSetHeader !== undefined &&\n (obj.partSetHeader = message.partSetHeader ? exports.PartSetHeader.toJSON(message.partSetHeader) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseBlockID);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.partSetHeader =\n object.partSetHeader !== undefined && object.partSetHeader !== null\n ? exports.PartSetHeader.fromPartial(object.partSetHeader)\n : undefined;\n return message;\n },\n};\nconst baseHeader = { chainId: \"\", height: long_1.default.ZERO };\nexports.Header = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.version !== undefined) {\n types_1.Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (message.lastBlockId !== undefined) {\n exports.BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.lastCommitHash.length !== 0) {\n writer.uint32(50).bytes(message.lastCommitHash);\n }\n if (message.dataHash.length !== 0) {\n writer.uint32(58).bytes(message.dataHash);\n }\n if (message.validatorsHash.length !== 0) {\n writer.uint32(66).bytes(message.validatorsHash);\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(74).bytes(message.nextValidatorsHash);\n }\n if (message.consensusHash.length !== 0) {\n writer.uint32(82).bytes(message.consensusHash);\n }\n if (message.appHash.length !== 0) {\n writer.uint32(90).bytes(message.appHash);\n }\n if (message.lastResultsHash.length !== 0) {\n writer.uint32(98).bytes(message.lastResultsHash);\n }\n if (message.evidenceHash.length !== 0) {\n writer.uint32(106).bytes(message.evidenceHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(114).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeader);\n message.lastCommitHash = new Uint8Array();\n message.dataHash = new Uint8Array();\n message.validatorsHash = new Uint8Array();\n message.nextValidatorsHash = new Uint8Array();\n message.consensusHash = new Uint8Array();\n message.appHash = new Uint8Array();\n message.lastResultsHash = new Uint8Array();\n message.evidenceHash = new Uint8Array();\n message.proposerAddress = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = types_1.Consensus.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.lastBlockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.lastCommitHash = reader.bytes();\n break;\n case 7:\n message.dataHash = reader.bytes();\n break;\n case 8:\n message.validatorsHash = reader.bytes();\n break;\n case 9:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 10:\n message.consensusHash = reader.bytes();\n break;\n case 11:\n message.appHash = reader.bytes();\n break;\n case 12:\n message.lastResultsHash = reader.bytes();\n break;\n case 13:\n message.evidenceHash = reader.bytes();\n break;\n case 14:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeader);\n message.version =\n object.version !== undefined && object.version !== null\n ? types_1.Consensus.fromJSON(object.version)\n : undefined;\n message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.time =\n object.time !== undefined && object.time !== null ? fromJsonTimestamp(object.time) : undefined;\n message.lastBlockId =\n object.lastBlockId !== undefined && object.lastBlockId !== null\n ? exports.BlockID.fromJSON(object.lastBlockId)\n : undefined;\n message.lastCommitHash =\n object.lastCommitHash !== undefined && object.lastCommitHash !== null\n ? bytesFromBase64(object.lastCommitHash)\n : new Uint8Array();\n message.dataHash =\n object.dataHash !== undefined && object.dataHash !== null\n ? bytesFromBase64(object.dataHash)\n : new Uint8Array();\n message.validatorsHash =\n object.validatorsHash !== undefined && object.validatorsHash !== null\n ? bytesFromBase64(object.validatorsHash)\n : new Uint8Array();\n message.nextValidatorsHash =\n object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null\n ? bytesFromBase64(object.nextValidatorsHash)\n : new Uint8Array();\n message.consensusHash =\n object.consensusHash !== undefined && object.consensusHash !== null\n ? bytesFromBase64(object.consensusHash)\n : new Uint8Array();\n message.appHash =\n object.appHash !== undefined && object.appHash !== null\n ? bytesFromBase64(object.appHash)\n : new Uint8Array();\n message.lastResultsHash =\n object.lastResultsHash !== undefined && object.lastResultsHash !== null\n ? bytesFromBase64(object.lastResultsHash)\n : new Uint8Array();\n message.evidenceHash =\n object.evidenceHash !== undefined && object.evidenceHash !== null\n ? bytesFromBase64(object.evidenceHash)\n : new Uint8Array();\n message.proposerAddress =\n object.proposerAddress !== undefined && object.proposerAddress !== null\n ? bytesFromBase64(object.proposerAddress)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined &&\n (obj.version = message.version ? types_1.Consensus.toJSON(message.version) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.time !== undefined && (obj.time = fromTimestamp(message.time).toISOString());\n message.lastBlockId !== undefined &&\n (obj.lastBlockId = message.lastBlockId ? exports.BlockID.toJSON(message.lastBlockId) : undefined);\n message.lastCommitHash !== undefined &&\n (obj.lastCommitHash = base64FromBytes(message.lastCommitHash !== undefined ? message.lastCommitHash : new Uint8Array()));\n message.dataHash !== undefined &&\n (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));\n message.validatorsHash !== undefined &&\n (obj.validatorsHash = base64FromBytes(message.validatorsHash !== undefined ? message.validatorsHash : new Uint8Array()));\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.consensusHash !== undefined &&\n (obj.consensusHash = base64FromBytes(message.consensusHash !== undefined ? message.consensusHash : new Uint8Array()));\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n message.lastResultsHash !== undefined &&\n (obj.lastResultsHash = base64FromBytes(message.lastResultsHash !== undefined ? message.lastResultsHash : new Uint8Array()));\n message.evidenceHash !== undefined &&\n (obj.evidenceHash = base64FromBytes(message.evidenceHash !== undefined ? message.evidenceHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = base64FromBytes(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n const message = Object.assign({}, baseHeader);\n message.version =\n object.version !== undefined && object.version !== null\n ? types_1.Consensus.fromPartial(object.version)\n : undefined;\n message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.time =\n object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined;\n message.lastBlockId =\n object.lastBlockId !== undefined && object.lastBlockId !== null\n ? exports.BlockID.fromPartial(object.lastBlockId)\n : undefined;\n message.lastCommitHash = (_b = object.lastCommitHash) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.dataHash = (_c = object.dataHash) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.validatorsHash = (_d = object.validatorsHash) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.nextValidatorsHash = (_e = object.nextValidatorsHash) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.consensusHash = (_f = object.consensusHash) !== null && _f !== void 0 ? _f : new Uint8Array();\n message.appHash = (_g = object.appHash) !== null && _g !== void 0 ? _g : new Uint8Array();\n message.lastResultsHash = (_h = object.lastResultsHash) !== null && _h !== void 0 ? _h : new Uint8Array();\n message.evidenceHash = (_j = object.evidenceHash) !== null && _j !== void 0 ? _j : new Uint8Array();\n message.proposerAddress = (_k = object.proposerAddress) !== null && _k !== void 0 ? _k : new Uint8Array();\n return message;\n },\n};\nconst baseData = {};\nexports.Data = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseData);\n message.txs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseData);\n message.txs = ((_a = object.txs) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseData);\n message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseVote = { type: 0, height: long_1.default.ZERO, round: 0, validatorIndex: 0 };\nexports.Vote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (!message.height.isZero()) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(50).bytes(message.validatorAddress);\n }\n if (message.validatorIndex !== 0) {\n writer.uint32(56).int32(message.validatorIndex);\n }\n if (message.signature.length !== 0) {\n writer.uint32(66).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVote);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 5:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.validatorAddress = reader.bytes();\n break;\n case 7:\n message.validatorIndex = reader.int32();\n break;\n case 8:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVote);\n message.type = object.type !== undefined && object.type !== null ? signedMsgTypeFromJSON(object.type) : 0;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.round = object.round !== undefined && object.round !== null ? Number(object.round) : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromJSON(object.blockId) : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? fromJsonTimestamp(object.timestamp)\n : undefined;\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? bytesFromBase64(object.validatorAddress)\n : new Uint8Array();\n message.validatorIndex =\n object.validatorIndex !== undefined && object.validatorIndex !== null\n ? Number(object.validatorIndex)\n : 0;\n message.signature =\n object.signature !== undefined && object.signature !== null\n ? bytesFromBase64(object.signature)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.validatorIndex !== undefined && (obj.validatorIndex = message.validatorIndex);\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseVote);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.round = (_b = object.round) !== null && _b !== void 0 ? _b : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null\n ? exports.BlockID.fromPartial(object.blockId)\n : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? timestamp_1.Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.validatorAddress = (_c = object.validatorAddress) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.validatorIndex = (_d = object.validatorIndex) !== null && _d !== void 0 ? _d : 0;\n message.signature = (_e = object.signature) !== null && _e !== void 0 ? _e : new Uint8Array();\n return message;\n },\n};\nconst baseCommit = { height: long_1.default.ZERO, round: 0 };\nexports.Commit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(16).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.CommitSig.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommit);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.round = reader.int32();\n break;\n case 3:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 4:\n message.signatures.push(exports.CommitSig.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseCommit);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.round = object.round !== undefined && object.round !== null ? Number(object.round) : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromJSON(object.blockId) : undefined;\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => exports.CommitSig.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.CommitSig.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCommit);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.round = (_a = object.round) !== null && _a !== void 0 ? _a : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null\n ? exports.BlockID.fromPartial(object.blockId)\n : undefined;\n message.signatures = ((_b = object.signatures) === null || _b === void 0 ? void 0 : _b.map((e) => exports.CommitSig.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCommitSig = { blockIdFlag: 0 };\nexports.CommitSig = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.blockIdFlag !== 0) {\n writer.uint32(8).int32(message.blockIdFlag);\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(18).bytes(message.validatorAddress);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(34).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommitSig);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockIdFlag = reader.int32();\n break;\n case 2:\n message.validatorAddress = reader.bytes();\n break;\n case 3:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 4:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommitSig);\n message.blockIdFlag =\n object.blockIdFlag !== undefined && object.blockIdFlag !== null\n ? blockIDFlagFromJSON(object.blockIdFlag)\n : 0;\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? bytesFromBase64(object.validatorAddress)\n : new Uint8Array();\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? fromJsonTimestamp(object.timestamp)\n : undefined;\n message.signature =\n object.signature !== undefined && object.signature !== null\n ? bytesFromBase64(object.signature)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockIdFlag !== undefined && (obj.blockIdFlag = blockIDFlagToJSON(message.blockIdFlag));\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseCommitSig);\n message.blockIdFlag = (_a = object.blockIdFlag) !== null && _a !== void 0 ? _a : 0;\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? timestamp_1.Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.signature = (_c = object.signature) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseProposal = { type: 0, height: long_1.default.ZERO, round: 0, polRound: 0 };\nexports.Proposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (!message.height.isZero()) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.polRound !== 0) {\n writer.uint32(32).int32(message.polRound);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(50).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(58).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProposal);\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.polRound = reader.int32();\n break;\n case 5:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProposal);\n message.type = object.type !== undefined && object.type !== null ? signedMsgTypeFromJSON(object.type) : 0;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.round = object.round !== undefined && object.round !== null ? Number(object.round) : 0;\n message.polRound =\n object.polRound !== undefined && object.polRound !== null ? Number(object.polRound) : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromJSON(object.blockId) : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? fromJsonTimestamp(object.timestamp)\n : undefined;\n message.signature =\n object.signature !== undefined && object.signature !== null\n ? bytesFromBase64(object.signature)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.polRound !== undefined && (obj.polRound = message.polRound);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseProposal);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.round = (_b = object.round) !== null && _b !== void 0 ? _b : 0;\n message.polRound = (_c = object.polRound) !== null && _c !== void 0 ? _c : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null\n ? exports.BlockID.fromPartial(object.blockId)\n : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? timestamp_1.Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.signature = (_d = object.signature) !== null && _d !== void 0 ? _d : new Uint8Array();\n return message;\n },\n};\nconst baseSignedHeader = {};\nexports.SignedHeader = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignedHeader);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.commit = exports.Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignedHeader);\n message.header =\n object.header !== undefined && object.header !== null ? exports.Header.fromJSON(object.header) : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null ? exports.Commit.fromJSON(object.commit) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.commit !== undefined && (obj.commit = message.commit ? exports.Commit.toJSON(message.commit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignedHeader);\n message.header =\n object.header !== undefined && object.header !== null ? exports.Header.fromPartial(object.header) : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null ? exports.Commit.fromPartial(object.commit) : undefined;\n return message;\n },\n};\nconst baseLightBlock = {};\nexports.LightBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.signedHeader !== undefined) {\n exports.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLightBlock);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = exports.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLightBlock);\n message.signedHeader =\n object.signedHeader !== undefined && object.signedHeader !== null\n ? exports.SignedHeader.fromJSON(object.signedHeader)\n : undefined;\n message.validatorSet =\n object.validatorSet !== undefined && object.validatorSet !== null\n ? validator_1.ValidatorSet.fromJSON(object.validatorSet)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? exports.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLightBlock);\n message.signedHeader =\n object.signedHeader !== undefined && object.signedHeader !== null\n ? exports.SignedHeader.fromPartial(object.signedHeader)\n : undefined;\n message.validatorSet =\n object.validatorSet !== undefined && object.validatorSet !== null\n ? validator_1.ValidatorSet.fromPartial(object.validatorSet)\n : undefined;\n return message;\n },\n};\nconst baseBlockMeta = { blockSize: long_1.default.ZERO, numTxs: long_1.default.ZERO };\nexports.BlockMeta = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();\n }\n if (!message.blockSize.isZero()) {\n writer.uint32(16).int64(message.blockSize);\n }\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(26).fork()).ldelim();\n }\n if (!message.numTxs.isZero()) {\n writer.uint32(32).int64(message.numTxs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockMeta);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 2:\n message.blockSize = reader.int64();\n break;\n case 3:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 4:\n message.numTxs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockMeta);\n message.blockId =\n object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromJSON(object.blockId) : undefined;\n message.blockSize =\n object.blockSize !== undefined && object.blockSize !== null\n ? long_1.default.fromString(object.blockSize)\n : long_1.default.ZERO;\n message.header =\n object.header !== undefined && object.header !== null ? exports.Header.fromJSON(object.header) : undefined;\n message.numTxs =\n object.numTxs !== undefined && object.numTxs !== null ? long_1.default.fromString(object.numTxs) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.blockSize !== undefined && (obj.blockSize = (message.blockSize || long_1.default.ZERO).toString());\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.numTxs !== undefined && (obj.numTxs = (message.numTxs || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockMeta);\n message.blockId =\n object.blockId !== undefined && object.blockId !== null\n ? exports.BlockID.fromPartial(object.blockId)\n : undefined;\n message.blockSize =\n object.blockSize !== undefined && object.blockSize !== null\n ? long_1.default.fromValue(object.blockSize)\n : long_1.default.ZERO;\n message.header =\n object.header !== undefined && object.header !== null ? exports.Header.fromPartial(object.header) : undefined;\n message.numTxs =\n object.numTxs !== undefined && object.numTxs !== null ? long_1.default.fromValue(object.numTxs) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseTxProof = {};\nexports.TxProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rootHash.length !== 0) {\n writer.uint32(10).bytes(message.rootHash);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxProof);\n message.rootHash = new Uint8Array();\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rootHash = reader.bytes();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxProof);\n message.rootHash =\n object.rootHash !== undefined && object.rootHash !== null\n ? bytesFromBase64(object.rootHash)\n : new Uint8Array();\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromJSON(object.proof) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rootHash !== undefined &&\n (obj.rootHash = base64FromBytes(message.rootHash !== undefined ? message.rootHash : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseTxProof);\n message.rootHash = (_a = object.rootHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromPartial(object.proof) : undefined;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleValidator = exports.Validator = exports.ValidatorSet = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst keys_1 = require(\"../../tendermint/crypto/keys\");\nexports.protobufPackage = \"tendermint.types\";\nconst baseValidatorSet = { totalVotingPower: long_1.default.ZERO };\nexports.ValidatorSet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n exports.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.proposer !== undefined) {\n exports.Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim();\n }\n if (!message.totalVotingPower.isZero()) {\n writer.uint32(24).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSet);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.proposer = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSet);\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => exports.Validator.fromJSON(e));\n message.proposer =\n object.proposer !== undefined && object.proposer !== null\n ? exports.Validator.fromJSON(object.proposer)\n : undefined;\n message.totalVotingPower =\n object.totalVotingPower !== undefined && object.totalVotingPower !== null\n ? long_1.default.fromString(object.totalVotingPower)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.proposer !== undefined &&\n (obj.proposer = message.proposer ? exports.Validator.toJSON(message.proposer) : undefined);\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSet);\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Validator.fromPartial(e))) || [];\n message.proposer =\n object.proposer !== undefined && object.proposer !== null\n ? exports.Validator.fromPartial(object.proposer)\n : undefined;\n message.totalVotingPower =\n object.totalVotingPower !== undefined && object.totalVotingPower !== null\n ? long_1.default.fromValue(object.totalVotingPower)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseValidator = { votingPower: long_1.default.ZERO, proposerPriority: long_1.default.ZERO };\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (!message.votingPower.isZero()) {\n writer.uint32(24).int64(message.votingPower);\n }\n if (!message.proposerPriority.isZero()) {\n writer.uint32(32).int64(message.proposerPriority);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 2:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 3:\n message.votingPower = reader.int64();\n break;\n case 4:\n message.proposerPriority = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.address =\n object.address !== undefined && object.address !== null\n ? bytesFromBase64(object.address)\n : new Uint8Array();\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined;\n message.votingPower =\n object.votingPower !== undefined && object.votingPower !== null\n ? long_1.default.fromString(object.votingPower)\n : long_1.default.ZERO;\n message.proposerPriority =\n object.proposerPriority !== undefined && object.proposerPriority !== null\n ? long_1.default.fromString(object.proposerPriority)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || long_1.default.ZERO).toString());\n message.proposerPriority !== undefined &&\n (obj.proposerPriority = (message.proposerPriority || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidator);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null\n ? keys_1.PublicKey.fromPartial(object.pubKey)\n : undefined;\n message.votingPower =\n object.votingPower !== undefined && object.votingPower !== null\n ? long_1.default.fromValue(object.votingPower)\n : long_1.default.ZERO;\n message.proposerPriority =\n object.proposerPriority !== undefined && object.proposerPriority !== null\n ? long_1.default.fromValue(object.proposerPriority)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseSimpleValidator = { votingPower: long_1.default.ZERO };\nexports.SimpleValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (!message.votingPower.isZero()) {\n writer.uint32(16).int64(message.votingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimpleValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.votingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimpleValidator);\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined;\n message.votingPower =\n object.votingPower !== undefined && object.votingPower !== null\n ? long_1.default.fromString(object.votingPower)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimpleValidator);\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null\n ? keys_1.PublicKey.fromPartial(object.pubKey)\n : undefined;\n message.votingPower =\n object.votingPower !== undefined && object.votingPower !== null\n ? long_1.default.fromValue(object.votingPower)\n : long_1.default.ZERO;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=validator.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Consensus = exports.App = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.version\";\nconst baseApp = { protocol: long_1.default.UZERO, software: \"\" };\nexports.App = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.protocol.isZero()) {\n writer.uint32(8).uint64(message.protocol);\n }\n if (message.software !== \"\") {\n writer.uint32(18).string(message.software);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseApp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.protocol = reader.uint64();\n break;\n case 2:\n message.software = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseApp);\n message.protocol =\n object.protocol !== undefined && object.protocol !== null\n ? long_1.default.fromString(object.protocol)\n : long_1.default.UZERO;\n message.software =\n object.software !== undefined && object.software !== null ? String(object.software) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.protocol !== undefined && (obj.protocol = (message.protocol || long_1.default.UZERO).toString());\n message.software !== undefined && (obj.software = message.software);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseApp);\n message.protocol =\n object.protocol !== undefined && object.protocol !== null\n ? long_1.default.fromValue(object.protocol)\n : long_1.default.UZERO;\n message.software = (_a = object.software) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseConsensus = { block: long_1.default.UZERO, app: long_1.default.UZERO };\nexports.Consensus = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.block.isZero()) {\n writer.uint32(8).uint64(message.block);\n }\n if (!message.app.isZero()) {\n writer.uint32(16).uint64(message.app);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensus);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = reader.uint64();\n break;\n case 2:\n message.app = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensus);\n message.block =\n object.block !== undefined && object.block !== null ? long_1.default.fromString(object.block) : long_1.default.UZERO;\n message.app = object.app !== undefined && object.app !== null ? long_1.default.fromString(object.app) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined && (obj.block = (message.block || long_1.default.UZERO).toString());\n message.app !== undefined && (obj.app = (message.app || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensus);\n message.block =\n object.block !== undefined && object.block !== null ? long_1.default.fromValue(object.block) : long_1.default.UZERO;\n message.app = object.app !== undefined && object.app !== null ? long_1.default.fromValue(object.app) : long_1.default.UZERO;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","'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 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 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","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\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 BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\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';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\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","(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","// 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 errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/* eslint no-negated-condition: 0, no-new-func: 0 */\n\n'use strict';\n\nif (typeof self !== 'undefined') {\n\tmodule.exports = self;\n} else if (typeof window !== 'undefined') {\n\tmodule.exports = window;\n} else {\n\tmodule.exports = Function('return this')();\n}\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\nvar getGlobal = function () { return polyfill; };\n\ndefineProperties(getGlobal, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = getGlobal;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (typeof global !== 'object' || !global || global.Math !== Math || global.Array !== Array) {\n\t\treturn implementation;\n\t}\n\treturn global;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimGlobal() {\n\tvar polyfill = getPolyfill();\n\tif (define.supportsDescriptors) {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(polyfill, 'globalThis');\n\t\tif (!descriptor || (descriptor.configurable && (descriptor.enumerable || descriptor.writable || globalThis !== polyfill))) { // eslint-disable-line max-len\n\t\t\tObject.defineProperty(polyfill, 'globalThis', {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: polyfill,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t}\n\t} else if (typeof globalThis !== 'object' || globalThis !== polyfill) {\n\t\tpolyfill.globalThis = polyfill;\n\t}\n\treturn polyfill;\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-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","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\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 Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\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 rh = [\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 s = [\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 sh = [\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","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.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\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\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\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\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};\n\nSHA1.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 SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\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');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar 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 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 hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.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","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","// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nmodule.exports = ws\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.errorCodeToString = errorCodeToString;\nexports.processErrorResponse = processErrorResponse;\nexports.getVersion = getVersion;\nexports.ERROR_CODE = exports.P1_VALUES = exports.PAYLOAD_TYPE = exports.INS = exports.APP_KEY = exports.CHUNK_SIZE = exports.CLA = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar CLA = 0x55;\nexports.CLA = CLA;\nvar CHUNK_SIZE = 250;\nexports.CHUNK_SIZE = CHUNK_SIZE;\nvar APP_KEY = \"CSM\";\nexports.APP_KEY = APP_KEY;\nvar INS = {\n GET_VERSION: 0x00,\n INS_PUBLIC_KEY_SECP256K1: 0x01,\n // Obsolete\n SIGN_SECP256K1: 0x02,\n GET_ADDR_SECP256K1: 0x04\n};\nexports.INS = INS;\nvar PAYLOAD_TYPE = {\n INIT: 0x00,\n ADD: 0x01,\n LAST: 0x02\n};\nexports.PAYLOAD_TYPE = PAYLOAD_TYPE;\nvar P1_VALUES = {\n ONLY_RETRIEVE: 0x00,\n SHOW_ADDRESS_IN_DEVICE: 0x01\n};\nexports.P1_VALUES = P1_VALUES;\nvar ERROR_CODE = {\n NoError: 0x9000\n};\nexports.ERROR_CODE = ERROR_CODE;\nvar ERROR_DESCRIPTION = {\n 1: \"U2F: Unknown\",\n 2: \"U2F: Bad request\",\n 3: \"U2F: Configuration unsupported\",\n 4: \"U2F: Device Ineligible\",\n 5: \"U2F: Timeout\",\n 14: \"Timeout\",\n 0x9000: \"No errors\",\n 0x9001: \"Device is busy\",\n 0x6802: \"Error deriving keys\",\n 0x6400: \"Execution Error\",\n 0x6700: \"Wrong Length\",\n 0x6982: \"Empty Buffer\",\n 0x6983: \"Output buffer too small\",\n 0x6984: \"Data is invalid\",\n 0x6985: \"Conditions not satisfied\",\n 0x6986: \"Transaction rejected\",\n 0x6a80: \"Bad key handle\",\n 0x6b00: \"Invalid P1/P2\",\n 0x6d00: \"Instruction not supported\",\n 0x6e00: \"App does not seem to be open\",\n 0x6f00: \"Unknown error\",\n 0x6f01: \"Sign/verify error\"\n};\n\nfunction errorCodeToString(statusCode) {\n if (statusCode in ERROR_DESCRIPTION) return ERROR_DESCRIPTION[statusCode];\n return \"Unknown Status Code: \".concat(statusCode);\n}\n\nfunction isDict(v) {\n return (0, _typeof2.default)(v) === \"object\" && v !== null && !(v instanceof Array) && !(v instanceof Date);\n}\n\nfunction processErrorResponse(response) {\n if (response) {\n if (isDict(response)) {\n if (Object.prototype.hasOwnProperty.call(response, \"statusCode\")) {\n return {\n return_code: response.statusCode,\n error_message: errorCodeToString(response.statusCode)\n };\n }\n\n if (Object.prototype.hasOwnProperty.call(response, \"return_code\") && Object.prototype.hasOwnProperty.call(response, \"error_message\")) {\n return response;\n }\n }\n\n return {\n return_code: 0xffff,\n error_message: response.toString()\n };\n }\n\n return {\n return_code: 0xffff,\n error_message: response.toString()\n };\n}\n\nfunction getVersion(_x) {\n return _getVersion.apply(this, arguments);\n}\n\nfunction _getVersion() {\n _getVersion = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(transport) {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", transport.send(CLA, INS.GET_VERSION, 0, 0).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var targetId = 0;\n\n if (response.length >= 9) {\n /* eslint-disable no-bitwise */\n targetId = (response[5] << 24) + (response[6] << 16) + (response[7] << 8) + (response[8] << 0);\n /* eslint-enable no-bitwise */\n }\n\n return {\n return_code: returnCode,\n error_message: errorCodeToString(returnCode),\n // ///\n test_mode: response[0] !== 0,\n major: response[1],\n minor: response[2],\n patch: response[3],\n device_locked: response[4] === 1,\n target_id: targetId.toString(16)\n };\n }, processErrorResponse));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _getVersion.apply(this, arguments);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.serializePathv1 = serializePathv1;\nexports.signSendChunkv1 = signSendChunkv1;\nexports.publicKeyv1 = publicKeyv1;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _common = require(\"./common\");\n\nfunction serializePathv1(path) {\n if (path == null || path.length < 3) {\n throw new Error(\"Invalid path.\");\n }\n\n if (path.length > 10) {\n throw new Error(\"Invalid path. Length should be <= 10\");\n }\n\n var buf = Buffer.alloc(1 + 4 * path.length);\n buf.writeUInt8(path.length, 0);\n\n for (var i = 0; i < path.length; i += 1) {\n var v = path[i];\n\n if (i < 3) {\n // eslint-disable-next-line no-bitwise\n v |= 0x80000000; // Harden\n }\n\n buf.writeInt32LE(v, 1 + i * 4);\n }\n\n return buf;\n}\n\nfunction signSendChunkv1(_x, _x2, _x3, _x4) {\n return _signSendChunkv.apply(this, arguments);\n}\n\nfunction _signSendChunkv() {\n _signSendChunkv = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(app, chunkIdx, chunkNum, chunk) {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", app.transport.send(_common.CLA, _common.INS.SIGN_SECP256K1, chunkIdx, chunkNum, chunk, [_common.ERROR_CODE.NoError, 0x6984, 0x6a80]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var errorMessage = (0, _common.errorCodeToString)(returnCode);\n\n if (returnCode === 0x6a80 || returnCode === 0x6984) {\n errorMessage = \"\".concat(errorMessage, \" : \").concat(response.slice(0, response.length - 2).toString(\"ascii\"));\n }\n\n var signature = null;\n\n if (response.length > 2) {\n signature = response.slice(0, response.length - 2);\n }\n\n return {\n signature: signature,\n return_code: returnCode,\n error_message: errorMessage\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _signSendChunkv.apply(this, arguments);\n}\n\nfunction compressPublicKey(publicKey) {\n if (publicKey.length !== 65) {\n throw new Error(\"decompressed public key length should be 65 bytes\");\n }\n\n var y = publicKey.slice(33, 65); // eslint-disable-next-line no-bitwise\n\n var z = Buffer.from([2 + (y[y.length - 1] & 1)]);\n return Buffer.concat([z, publicKey.slice(1, 33)]);\n}\n\nfunction publicKeyv1(_x5, _x6) {\n return _publicKeyv.apply(this, arguments);\n}\n\nfunction _publicKeyv() {\n _publicKeyv = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(app, data) {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", app.transport.send(_common.CLA, _common.INS.INS_PUBLIC_KEY_SECP256K1, 0, 0, data, [_common.ERROR_CODE.NoError]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var pk = Buffer.from(response.slice(0, 65));\n return {\n pk: pk,\n compressed_pk: compressPublicKey(pk),\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode)\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _publicKeyv.apply(this, arguments);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.serializePathv2 = serializePathv2;\nexports.signSendChunkv2 = signSendChunkv2;\nexports.publicKeyv2 = publicKeyv2;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _helperV = require(\"./helperV1\");\n\nvar _common = require(\"./common\");\n\nfunction serializePathv2(path) {\n if (!path || path.length !== 5) {\n throw new Error(\"Invalid path.\");\n }\n\n var buf = Buffer.alloc(20);\n buf.writeUInt32LE(0x80000000 + path[0], 0);\n buf.writeUInt32LE(0x80000000 + path[1], 4);\n buf.writeUInt32LE(0x80000000 + path[2], 8);\n buf.writeUInt32LE(path[3], 12);\n buf.writeUInt32LE(path[4], 16);\n return buf;\n}\n\nfunction signSendChunkv2(_x, _x2, _x3, _x4) {\n return _signSendChunkv.apply(this, arguments);\n}\n\nfunction _signSendChunkv() {\n _signSendChunkv = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(app, chunkIdx, chunkNum, chunk) {\n var payloadType;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n payloadType = _common.PAYLOAD_TYPE.ADD;\n\n if (chunkIdx === 1) {\n payloadType = _common.PAYLOAD_TYPE.INIT;\n }\n\n if (chunkIdx === chunkNum) {\n payloadType = _common.PAYLOAD_TYPE.LAST;\n }\n\n return _context.abrupt(\"return\", (0, _helperV.signSendChunkv1)(app, payloadType, 0, chunk));\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _signSendChunkv.apply(this, arguments);\n}\n\nfunction publicKeyv2(_x5, _x6) {\n return _publicKeyv.apply(this, arguments);\n}\n\nfunction _publicKeyv() {\n _publicKeyv = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(app, data) {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", app.transport.send(_common.CLA, _common.INS.GET_ADDR_SECP256K1, 0, 0, data, [_common.ERROR_CODE.NoError]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var compressedPk = Buffer.from(response.slice(0, 33));\n return {\n pk: \"OBSOLETE PROPERTY\",\n compressed_pk: compressedPk,\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode)\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _publicKeyv.apply(this, arguments);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nvar _ripemd = _interopRequireDefault(require(\"ripemd160\"));\n\nvar _bech = _interopRequireDefault(require(\"bech32\"));\n\nvar _helperV = require(\"./helperV1\");\n\nvar _helperV2 = require(\"./helperV2\");\n\nvar _common = require(\"./common\");\n\n/** ******************************************************************************\n * (c) 2019 ZondaX GmbH\n * (c) 2016-2017 Ledger\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ******************************************************************************* */\nvar CosmosApp = /*#__PURE__*/function () {\n function CosmosApp(transport) {\n var scrambleKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _common.APP_KEY;\n (0, _classCallCheck2.default)(this, CosmosApp);\n\n if (!transport) {\n throw new Error(\"Transport has not been defined\");\n }\n\n this.transport = transport;\n transport.decorateAppAPIMethods(this, [\"getVersion\", \"sign\", \"getAddressAndPubKey\", \"appInfo\", \"deviceInfo\", \"getBech32FromPK\"], scrambleKey);\n }\n\n (0, _createClass2.default)(CosmosApp, [{\n key: \"serializePath\",\n value: function () {\n var _serializePath = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(path) {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0, _common.getVersion)(this.transport);\n\n case 2:\n this.versionResponse = _context.sent;\n\n if (!(this.versionResponse.return_code !== _common.ERROR_CODE.NoError)) {\n _context.next = 5;\n break;\n }\n\n throw this.versionResponse;\n\n case 5:\n _context.t0 = this.versionResponse.major;\n _context.next = _context.t0 === 1 ? 8 : _context.t0 === 2 ? 9 : 10;\n break;\n\n case 8:\n return _context.abrupt(\"return\", (0, _helperV.serializePathv1)(path));\n\n case 9:\n return _context.abrupt(\"return\", (0, _helperV2.serializePathv2)(path));\n\n case 10:\n return _context.abrupt(\"return\", {\n return_code: 0x6400,\n error_message: \"App Version is not supported\"\n });\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function serializePath(_x) {\n return _serializePath.apply(this, arguments);\n }\n\n return serializePath;\n }()\n }, {\n key: \"signGetChunks\",\n value: function () {\n var _signGetChunks = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(path, message) {\n var serializedPath, chunks, buffer, i, end;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.serializePath(path);\n\n case 2:\n serializedPath = _context2.sent;\n chunks = [];\n chunks.push(serializedPath);\n buffer = Buffer.from(message);\n\n for (i = 0; i < buffer.length; i += _common.CHUNK_SIZE) {\n end = i + _common.CHUNK_SIZE;\n\n if (i > buffer.length) {\n end = buffer.length;\n }\n\n chunks.push(buffer.slice(i, end));\n }\n\n return _context2.abrupt(\"return\", chunks);\n\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function signGetChunks(_x2, _x3) {\n return _signGetChunks.apply(this, arguments);\n }\n\n return signGetChunks;\n }()\n }, {\n key: \"getVersion\",\n value: function () {\n var _getVersion2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n _context3.next = 3;\n return (0, _common.getVersion)(this.transport);\n\n case 3:\n this.versionResponse = _context3.sent;\n return _context3.abrupt(\"return\", this.versionResponse);\n\n case 7:\n _context3.prev = 7;\n _context3.t0 = _context3[\"catch\"](0);\n return _context3.abrupt(\"return\", (0, _common.processErrorResponse)(_context3.t0));\n\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[0, 7]]);\n }));\n\n function getVersion() {\n return _getVersion2.apply(this, arguments);\n }\n\n return getVersion;\n }()\n }, {\n key: \"appInfo\",\n value: function () {\n var _appInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n return _context4.abrupt(\"return\", this.transport.send(0xb0, 0x01, 0, 0).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var result = {};\n var appName = \"err\";\n var appVersion = \"err\";\n var flagLen = 0;\n var flagsValue = 0;\n\n if (response[0] !== 1) {\n // Ledger responds with format ID 1. There is no spec for any format != 1\n result.error_message = \"response format ID not recognized\";\n result.return_code = 0x9001;\n } else {\n var appNameLen = response[1];\n appName = response.slice(2, 2 + appNameLen).toString(\"ascii\");\n var idx = 2 + appNameLen;\n var appVersionLen = response[idx];\n idx += 1;\n appVersion = response.slice(idx, idx + appVersionLen).toString(\"ascii\");\n idx += appVersionLen;\n var appFlagsLen = response[idx];\n idx += 1;\n flagLen = appFlagsLen;\n flagsValue = response[idx];\n }\n\n return {\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode),\n // //\n appName: appName,\n appVersion: appVersion,\n flagLen: flagLen,\n flagsValue: flagsValue,\n // eslint-disable-next-line no-bitwise\n flag_recovery: (flagsValue & 1) !== 0,\n // eslint-disable-next-line no-bitwise\n flag_signed_mcu_code: (flagsValue & 2) !== 0,\n // eslint-disable-next-line no-bitwise\n flag_onboarded: (flagsValue & 4) !== 0,\n // eslint-disable-next-line no-bitwise\n flag_pin_validated: (flagsValue & 128) !== 0\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function appInfo() {\n return _appInfo.apply(this, arguments);\n }\n\n return appInfo;\n }()\n }, {\n key: \"deviceInfo\",\n value: function () {\n var _deviceInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n return _context5.abrupt(\"return\", this.transport.send(0xe0, 0x01, 0, 0, Buffer.from([]), [_common.ERROR_CODE.NoError, 0x6e00]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n\n if (returnCode === 0x6e00) {\n return {\n return_code: returnCode,\n error_message: \"This command is only available in the Dashboard\"\n };\n }\n\n var targetId = response.slice(0, 4).toString(\"hex\");\n var pos = 4;\n var secureElementVersionLen = response[pos];\n pos += 1;\n var seVersion = response.slice(pos, pos + secureElementVersionLen).toString();\n pos += secureElementVersionLen;\n var flagsLen = response[pos];\n pos += 1;\n var flag = response.slice(pos, pos + flagsLen).toString(\"hex\");\n pos += flagsLen;\n var mcuVersionLen = response[pos];\n pos += 1; // Patch issue in mcu version\n\n var tmp = response.slice(pos, pos + mcuVersionLen);\n\n if (tmp[mcuVersionLen - 1] === 0) {\n tmp = response.slice(pos, pos + mcuVersionLen - 1);\n }\n\n var mcuVersion = tmp.toString();\n return {\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode),\n // //\n targetId: targetId,\n seVersion: seVersion,\n flag: flag,\n mcuVersion: mcuVersion\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function deviceInfo() {\n return _deviceInfo.apply(this, arguments);\n }\n\n return deviceInfo;\n }()\n }, {\n key: \"publicKey\",\n value: function () {\n var _publicKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(path) {\n var serializedPath, data;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n _context6.next = 3;\n return this.serializePath(path);\n\n case 3:\n serializedPath = _context6.sent;\n _context6.t0 = this.versionResponse.major;\n _context6.next = _context6.t0 === 1 ? 7 : _context6.t0 === 2 ? 8 : 10;\n break;\n\n case 7:\n return _context6.abrupt(\"return\", (0, _helperV.publicKeyv1)(this, serializedPath));\n\n case 8:\n data = Buffer.concat([CosmosApp.serializeHRP(\"cosmos\"), serializedPath]);\n return _context6.abrupt(\"return\", (0, _helperV2.publicKeyv2)(this, data));\n\n case 10:\n return _context6.abrupt(\"return\", {\n return_code: 0x6400,\n error_message: \"App Version is not supported\"\n });\n\n case 11:\n _context6.next = 16;\n break;\n\n case 13:\n _context6.prev = 13;\n _context6.t1 = _context6[\"catch\"](0);\n return _context6.abrupt(\"return\", (0, _common.processErrorResponse)(_context6.t1));\n\n case 16:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this, [[0, 13]]);\n }));\n\n function publicKey(_x4) {\n return _publicKey.apply(this, arguments);\n }\n\n return publicKey;\n }()\n }, {\n key: \"getAddressAndPubKey\",\n value: function () {\n var _getAddressAndPubKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(path, hrp) {\n var _this = this;\n\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n return _context7.abrupt(\"return\", this.serializePath(path).then(function (serializedPath) {\n var data = Buffer.concat([CosmosApp.serializeHRP(hrp), serializedPath]);\n return _this.transport.send(_common.CLA, _common.INS.GET_ADDR_SECP256K1, _common.P1_VALUES.ONLY_RETRIEVE, 0, data, [_common.ERROR_CODE.NoError]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var compressedPk = Buffer.from(response.slice(0, 33));\n var bech32Address = Buffer.from(response.slice(33, -2)).toString();\n return {\n bech32_address: bech32Address,\n compressed_pk: compressedPk,\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode)\n };\n }, _common.processErrorResponse);\n }).catch(function (err) {\n return (0, _common.processErrorResponse)(err);\n }));\n\n case 4:\n _context7.prev = 4;\n _context7.t0 = _context7[\"catch\"](0);\n return _context7.abrupt(\"return\", (0, _common.processErrorResponse)(_context7.t0));\n\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this, [[0, 4]]);\n }));\n\n function getAddressAndPubKey(_x5, _x6) {\n return _getAddressAndPubKey.apply(this, arguments);\n }\n\n return getAddressAndPubKey;\n }()\n }, {\n key: \"showAddressAndPubKey\",\n value: function () {\n var _showAddressAndPubKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(path, hrp) {\n var _this2 = this;\n\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n return _context8.abrupt(\"return\", this.serializePath(path).then(function (serializedPath) {\n var data = Buffer.concat([CosmosApp.serializeHRP(hrp), serializedPath]);\n return _this2.transport.send(_common.CLA, _common.INS.GET_ADDR_SECP256K1, _common.P1_VALUES.SHOW_ADDRESS_IN_DEVICE, 0, data, [_common.ERROR_CODE.NoError]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var compressedPk = Buffer.from(response.slice(0, 33));\n var bech32Address = Buffer.from(response.slice(33, -2)).toString();\n return {\n bech32_address: bech32Address,\n compressed_pk: compressedPk,\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode)\n };\n }, _common.processErrorResponse);\n }).catch(function (err) {\n return (0, _common.processErrorResponse)(err);\n }));\n\n case 4:\n _context8.prev = 4;\n _context8.t0 = _context8[\"catch\"](0);\n return _context8.abrupt(\"return\", (0, _common.processErrorResponse)(_context8.t0));\n\n case 7:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this, [[0, 4]]);\n }));\n\n function showAddressAndPubKey(_x7, _x8) {\n return _showAddressAndPubKey.apply(this, arguments);\n }\n\n return showAddressAndPubKey;\n }()\n }, {\n key: \"signSendChunk\",\n value: function () {\n var _signSendChunk = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(chunkIdx, chunkNum, chunk) {\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.t0 = this.versionResponse.major;\n _context9.next = _context9.t0 === 1 ? 3 : _context9.t0 === 2 ? 4 : 5;\n break;\n\n case 3:\n return _context9.abrupt(\"return\", (0, _helperV.signSendChunkv1)(this, chunkIdx, chunkNum, chunk));\n\n case 4:\n return _context9.abrupt(\"return\", (0, _helperV2.signSendChunkv2)(this, chunkIdx, chunkNum, chunk));\n\n case 5:\n return _context9.abrupt(\"return\", {\n return_code: 0x6400,\n error_message: \"App Version is not supported\"\n });\n\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function signSendChunk(_x9, _x10, _x11) {\n return _signSendChunk.apply(this, arguments);\n }\n\n return signSendChunk;\n }()\n }, {\n key: \"sign\",\n value: function () {\n var _sign = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(path, message) {\n var _this3 = this;\n\n return _regenerator.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n return _context11.abrupt(\"return\", this.signGetChunks(path, message).then(function (chunks) {\n return _this3.signSendChunk(1, chunks.length, chunks[0], [_common.ERROR_CODE.NoError]).then( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(response) {\n var result, i;\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n result = {\n return_code: response.return_code,\n error_message: response.error_message,\n signature: null\n };\n i = 1;\n\n case 2:\n if (!(i < chunks.length)) {\n _context10.next = 11;\n break;\n }\n\n _context10.next = 5;\n return _this3.signSendChunk(1 + i, chunks.length, chunks[i]);\n\n case 5:\n result = _context10.sent;\n\n if (!(result.return_code !== _common.ERROR_CODE.NoError)) {\n _context10.next = 8;\n break;\n }\n\n return _context10.abrupt(\"break\", 11);\n\n case 8:\n i += 1;\n _context10.next = 2;\n break;\n\n case 11:\n return _context10.abrupt(\"return\", {\n return_code: result.return_code,\n error_message: result.error_message,\n // ///\n signature: result.signature\n });\n\n case 12:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n\n return function (_x14) {\n return _ref.apply(this, arguments);\n };\n }(), _common.processErrorResponse);\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function sign(_x12, _x13) {\n return _sign.apply(this, arguments);\n }\n\n return sign;\n }()\n }], [{\n key: \"serializeHRP\",\n value: function serializeHRP(hrp) {\n if (hrp == null || hrp.length < 3 || hrp.length > 83) {\n throw new Error(\"Invalid HRP\");\n }\n\n var buf = Buffer.alloc(1 + hrp.length);\n buf.writeUInt8(hrp.length, 0);\n buf.write(hrp, 1);\n return buf;\n }\n }, {\n key: \"getBech32FromPK\",\n value: function getBech32FromPK(hrp, pk) {\n if (pk.length !== 33) {\n throw new Error(\"expected compressed public key [31 bytes]\");\n }\n\n var hashSha256 = _crypto.default.createHash(\"sha256\").update(pk).digest();\n\n var hashRip = new _ripemd.default().update(hashSha256).digest();\n return _bech.default.encode(hrp, _bech.default.toWords(hashRip));\n }\n }]);\n return CosmosApp;\n}();\n\nexports.default = CosmosApp;","!function(e){function r(e,r){\"use strict\";var t,a=r.ready.then((function(){function a(){if(0!==t._sodium_init())throw new Error(\"libsodium was not correctly initialized.\");for(var r=[\"crypto_aead_chacha20poly1305_decrypt\",\"crypto_aead_chacha20poly1305_decrypt_detached\",\"crypto_aead_chacha20poly1305_encrypt\",\"crypto_aead_chacha20poly1305_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_decrypt\",\"crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_encrypt\",\"crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_keygen\",\"crypto_aead_chacha20poly1305_keygen\",\"crypto_aead_xchacha20poly1305_ietf_decrypt\",\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_encrypt\",\"crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_keygen\",\"crypto_auth\",\"crypto_auth_hmacsha256\",\"crypto_auth_hmacsha256_keygen\",\"crypto_auth_hmacsha256_verify\",\"crypto_auth_hmacsha512\",\"crypto_auth_hmacsha512_keygen\",\"crypto_auth_hmacsha512_verify\",\"crypto_auth_keygen\",\"crypto_auth_verify\",\"crypto_box_beforenm\",\"crypto_box_curve25519xchacha20poly1305_keypair\",\"crypto_box_curve25519xchacha20poly1305_seal\",\"crypto_box_curve25519xchacha20poly1305_seal_open\",\"crypto_box_detached\",\"crypto_box_easy\",\"crypto_box_easy_afternm\",\"crypto_box_keypair\",\"crypto_box_open_detached\",\"crypto_box_open_easy\",\"crypto_box_open_easy_afternm\",\"crypto_box_seal\",\"crypto_box_seal_open\",\"crypto_box_seed_keypair\",\"crypto_core_ed25519_add\",\"crypto_core_ed25519_from_hash\",\"crypto_core_ed25519_from_uniform\",\"crypto_core_ed25519_is_valid_point\",\"crypto_core_ed25519_random\",\"crypto_core_ed25519_scalar_add\",\"crypto_core_ed25519_scalar_complement\",\"crypto_core_ed25519_scalar_invert\",\"crypto_core_ed25519_scalar_mul\",\"crypto_core_ed25519_scalar_negate\",\"crypto_core_ed25519_scalar_random\",\"crypto_core_ed25519_scalar_reduce\",\"crypto_core_ed25519_scalar_sub\",\"crypto_core_ed25519_sub\",\"crypto_core_ristretto255_add\",\"crypto_core_ristretto255_from_hash\",\"crypto_core_ristretto255_is_valid_point\",\"crypto_core_ristretto255_random\",\"crypto_core_ristretto255_scalar_add\",\"crypto_core_ristretto255_scalar_complement\",\"crypto_core_ristretto255_scalar_invert\",\"crypto_core_ristretto255_scalar_mul\",\"crypto_core_ristretto255_scalar_negate\",\"crypto_core_ristretto255_scalar_random\",\"crypto_core_ristretto255_scalar_reduce\",\"crypto_core_ristretto255_scalar_sub\",\"crypto_core_ristretto255_sub\",\"crypto_generichash\",\"crypto_generichash_blake2b_salt_personal\",\"crypto_generichash_final\",\"crypto_generichash_init\",\"crypto_generichash_keygen\",\"crypto_generichash_update\",\"crypto_hash\",\"crypto_hash_sha256\",\"crypto_hash_sha256_final\",\"crypto_hash_sha256_init\",\"crypto_hash_sha256_update\",\"crypto_hash_sha512\",\"crypto_hash_sha512_final\",\"crypto_hash_sha512_init\",\"crypto_hash_sha512_update\",\"crypto_kdf_derive_from_key\",\"crypto_kdf_keygen\",\"crypto_kx_client_session_keys\",\"crypto_kx_keypair\",\"crypto_kx_seed_keypair\",\"crypto_kx_server_session_keys\",\"crypto_onetimeauth\",\"crypto_onetimeauth_final\",\"crypto_onetimeauth_init\",\"crypto_onetimeauth_keygen\",\"crypto_onetimeauth_update\",\"crypto_onetimeauth_verify\",\"crypto_pwhash\",\"crypto_pwhash_scryptsalsa208sha256\",\"crypto_pwhash_scryptsalsa208sha256_ll\",\"crypto_pwhash_scryptsalsa208sha256_str\",\"crypto_pwhash_scryptsalsa208sha256_str_verify\",\"crypto_pwhash_str\",\"crypto_pwhash_str_needs_rehash\",\"crypto_pwhash_str_verify\",\"crypto_scalarmult\",\"crypto_scalarmult_base\",\"crypto_scalarmult_ed25519\",\"crypto_scalarmult_ed25519_base\",\"crypto_scalarmult_ed25519_base_noclamp\",\"crypto_scalarmult_ed25519_noclamp\",\"crypto_scalarmult_ristretto255\",\"crypto_scalarmult_ristretto255_base\",\"crypto_secretbox_detached\",\"crypto_secretbox_easy\",\"crypto_secretbox_keygen\",\"crypto_secretbox_open_detached\",\"crypto_secretbox_open_easy\",\"crypto_secretstream_xchacha20poly1305_init_pull\",\"crypto_secretstream_xchacha20poly1305_init_push\",\"crypto_secretstream_xchacha20poly1305_keygen\",\"crypto_secretstream_xchacha20poly1305_pull\",\"crypto_secretstream_xchacha20poly1305_push\",\"crypto_secretstream_xchacha20poly1305_rekey\",\"crypto_shorthash\",\"crypto_shorthash_keygen\",\"crypto_shorthash_siphashx24\",\"crypto_sign\",\"crypto_sign_detached\",\"crypto_sign_ed25519_pk_to_curve25519\",\"crypto_sign_ed25519_sk_to_curve25519\",\"crypto_sign_ed25519_sk_to_pk\",\"crypto_sign_ed25519_sk_to_seed\",\"crypto_sign_final_create\",\"crypto_sign_final_verify\",\"crypto_sign_init\",\"crypto_sign_keypair\",\"crypto_sign_open\",\"crypto_sign_seed_keypair\",\"crypto_sign_update\",\"crypto_sign_verify_detached\",\"crypto_stream_chacha20\",\"crypto_stream_chacha20_ietf_xor\",\"crypto_stream_chacha20_ietf_xor_ic\",\"crypto_stream_chacha20_keygen\",\"crypto_stream_chacha20_xor\",\"crypto_stream_chacha20_xor_ic\",\"crypto_stream_keygen\",\"crypto_stream_xchacha20_keygen\",\"crypto_stream_xchacha20_xor\",\"crypto_stream_xchacha20_xor_ic\",\"randombytes_buf\",\"randombytes_buf_deterministic\",\"randombytes_close\",\"randombytes_random\",\"randombytes_set_implementation\",\"randombytes_stir\",\"randombytes_uniform\",\"sodium_version_string\"],a=[E,x,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,q,j,z,W,J,Q,Z,$,ee,re,te,ae,_e,se,ne,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,qe,je,ze,We,Je,Qe,Ze,$e,er,rr,tr,ar,_r,sr,nr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Kr,Mr,Ir,Nr,Lr,Ur,Or,Cr,Rr,Pr,Gr,Xr,Dr,Fr,Vr,Hr,qr,jr,zr,Wr,Jr,Qr,Zr,$r,et,rt,tt,at,_t,st,nt,ct,ot,ht,pt,yt,it],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(r=e[s]>>>4)+(r-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var c={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function o(e){if(null==e)return c.URLSAFE_NO_PADDING;if(e!==c.ORIGINAL&&e!==c.ORIGINAL_NO_PADDING&&e!==c.URLSAFE&&e!=c.URLSAFE_NO_PADDING)throw new Error(\"unsupported base64 variant\");return e}function h(e,r){r=o(r),e=m(_,e,\"input\");var a,_=[],n=0|Math.floor(e.length/3),c=e.length-3*n,h=4*n+(0!==c?0==(2&r)?4:2+(c>>>1):0),p=new l(h+1),y=u(e);return _.push(y),_.push(p.address),0===t._sodium_bin2base64(p.address,p.length,y,e.length,r)&&g(_,\"conversion failed\"),p.length=h,a=s(p.to_Uint8Array()),v(_),a}function p(e,r){var t=r||\"uint8array\";if(!y(t))throw new Error(t+\" output format is not available\");if(e instanceof l){if(\"uint8array\"===t)return e.to_Uint8Array();if(\"text\"===t)return s(e.to_Uint8Array());if(\"hex\"===t)return n(e.to_Uint8Array());if(\"base64\"===t)return h(e.to_Uint8Array(),c.URLSAFE_NO_PADDING);throw new Error('What is output format \"'+t+'\"?')}if(\"object\"==typeof e){for(var a=Object.keys(e),_={},o=0;o>>24>>>8,o,y);var x=p(g,n);return v(c),x}function ze(e){var r=[];i(e);var a=new l(0|t._crypto_kdf_keybytes()),_=a.address;r.push(_),t._crypto_kdf_keygen(_);var s=p(a,e);return v(r),s}function We(e,r,a,_){var s=[];i(_),e=m(s,e,\"clientPublicKey\");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&b(s,\"invalid clientPublicKey length\"),n=u(e),s.push(n),r=m(s,r,\"clientSecretKey\");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&b(s,\"invalid clientSecretKey length\"),o=u(r),s.push(o),a=m(s,a,\"serverPublicKey\");var y,d=0|t._crypto_kx_publickeybytes();a.length!==d&&b(s,\"invalid serverPublicKey length\"),y=u(a),s.push(y);var f=new l(0|t._crypto_kx_sessionkeybytes()),E=f.address;s.push(E);var x=new l(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_client_session_keys(E,k,n,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(s),S}g(s,\"invalid usage\")}function Je(e){var r=[];i(e);var a=new l(0|t._crypto_kx_publickeybytes()),_=a.address;r.push(_);var s=new l(0|t._crypto_kx_secretkeybytes()),n=s.address;if(r.push(n),0==(0|t._crypto_kx_keypair(_,n))){var c={publicKey:p(a,e),privateKey:p(s,e),keyType:\"x25519\"};return v(r),c}g(r,\"internal error\")}function Qe(e,r){var a=[];i(r),e=m(a,e,\"seed\");var _,s=0|t._crypto_kx_seedbytes();e.length!==s&&b(a,\"invalid seed length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_kx_publickeybytes()),c=n.address;a.push(c);var o=new l(0|t._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|t._crypto_kx_seed_keypair(c,h,_))){var y={publicKey:p(n,r),privateKey:p(o,r),keyType:\"x25519\"};return v(a),y}g(a,\"internal error\")}function Ze(e,r,a,_){var s=[];i(_),e=m(s,e,\"serverPublicKey\");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&b(s,\"invalid serverPublicKey length\"),n=u(e),s.push(n),r=m(s,r,\"serverSecretKey\");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&b(s,\"invalid serverSecretKey length\"),o=u(r),s.push(o),a=m(s,a,\"clientPublicKey\");var y,d=0|t._crypto_kx_publickeybytes();a.length!==d&&b(s,\"invalid clientPublicKey length\"),y=u(a),s.push(y);var f=new l(0|t._crypto_kx_sessionkeybytes()),E=f.address;s.push(E);var x=new l(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_server_session_keys(E,k,n,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(s),S}g(s,\"invalid usage\")}function $e(e,r,a){var _=[];i(a);var s=u(e=m(_,e,\"message\")),n=e.length;_.push(s),r=m(_,r,\"key\");var c,o=0|t._crypto_onetimeauth_keybytes();r.length!==o&&b(_,\"invalid key length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_onetimeauth_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_onetimeauth(y,s,n,0,c))){var d=p(h,a);return v(_),d}g(_,\"invalid usage\")}function er(e,r){var a=[];i(r),f(a,e,\"state_address\");var _=new l(0|t._crypto_onetimeauth_bytes()),s=_.address;if(a.push(s),0==(0|t._crypto_onetimeauth_final(e,s))){var n=(t._free(e),p(_,r));return v(a),n}g(a,\"invalid usage\")}function rr(e,r){var a=[];i(r);var _=null;null!=e&&(_=u(e=m(a,e,\"key\")),e.length,a.push(_));var s=new l(144).address;if(0==(0|t._crypto_onetimeauth_init(s,_))){var n=s;return v(a),n}g(a,\"invalid usage\")}function tr(e){var r=[];i(e);var a=new l(0|t._crypto_onetimeauth_keybytes()),_=a.address;r.push(_),t._crypto_onetimeauth_keygen(_);var s=p(a,e);return v(r),s}function ar(e,r,a){var _=[];i(a),f(_,e,\"state_address\");var s=u(r=m(_,r,\"message_chunk\")),n=r.length;_.push(s),0!=(0|t._crypto_onetimeauth_update(e,s,n))&&g(_,\"invalid usage\"),v(_)}function _r(e,r,a){var _=[];e=m(_,e,\"hash\");var s,n=0|t._crypto_onetimeauth_bytes();e.length!==n&&b(_,\"invalid hash length\"),s=u(e),_.push(s);var c=u(r=m(_,r,\"message\")),o=r.length;_.push(c),a=m(_,a,\"key\");var h,p=0|t._crypto_onetimeauth_keybytes();a.length!==p&&b(_,\"invalid key length\"),h=u(a),_.push(h);var y=0==(0|t._crypto_onetimeauth_verify(s,c,o,0,h));return v(_),y}function sr(e,r,a,_,s,n,c){var o=[];i(c),f(o,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(o,\"keyLength must be an unsigned integer\");var h=u(r=m(o,r,\"password\")),y=r.length;o.push(h),a=m(o,a,\"salt\");var d,E=0|t._crypto_pwhash_saltbytes();a.length!==E&&b(o,\"invalid salt length\"),d=u(a),o.push(d),f(o,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(o,\"opsLimit must be an unsigned integer\"),f(o,s,\"memLimit\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(o,\"memLimit must be an unsigned integer\"),f(o,n,\"algorithm\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&b(o,\"algorithm must be an unsigned integer\");var x=new l(0|e),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash(k,e,0,h,y,0,d,_,0,s,n))){var S=p(x,c);return v(o),S}g(o,\"invalid usage\")}function nr(e,r,a,_,s,n){var c=[];i(n),f(c,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(c,\"keyLength must be an unsigned integer\");var o=u(r=m(c,r,\"password\")),h=r.length;c.push(o),a=m(c,a,\"salt\");var y,d=0|t._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==d&&b(c,\"invalid salt length\"),y=u(a),c.push(y),f(c,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(c,\"opsLimit must be an unsigned integer\"),f(c,s,\"memLimit\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(c,\"memLimit must be an unsigned integer\");var E=new l(0|e),x=E.address;if(c.push(x),0==(0|t._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,y,_,0,s))){var k=p(E,n);return v(c),k}g(c,\"invalid usage\")}function cr(e,r,a,_,s,n,c){var o=[];i(c);var h=u(e=m(o,e,\"password\")),y=e.length;o.push(h);var d=u(r=m(o,r,\"salt\")),E=r.length;o.push(d),f(o,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(o,\"opsLimit must be an unsigned integer\"),f(o,_,\"r\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(o,\"r must be an unsigned integer\"),f(o,s,\"p\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(o,\"p must be an unsigned integer\"),f(o,n,\"keyLength\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&b(o,\"keyLength must be an unsigned integer\");var x=new l(0|n),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash_scryptsalsa208sha256_ll(h,y,d,E,a,0,_,s,k,n))){var S=p(x,c);return v(o),S}g(o,\"invalid usage\")}function or(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"password\")),c=e.length;s.push(n),f(s,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(s,\"opsLimit must be an unsigned integer\"),f(s,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(s,\"memLimit must be an unsigned integer\");var o=new l(0|t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_scryptsalsa208sha256_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return v(s),h}g(s,\"invalid usage\")}function hr(e,r,a){var s=[];i(a),\"string\"!=typeof e&&b(s,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=c&&e.length-1!==c&&b(s,\"invalid hashed_password length\");var n=u(e),c=e.length-1;s.push(n);var o=u(r=m(s,r,\"password\")),h=r.length;s.push(o);var p=0==(0|t._crypto_pwhash_scryptsalsa208sha256_str_verify(n,o,h,0));return v(s),p}function pr(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"password\")),c=e.length;s.push(n),f(s,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(s,\"opsLimit must be an unsigned integer\"),f(s,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(s,\"memLimit must be an unsigned integer\");var o=new l(0|t._crypto_pwhash_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return v(s),h}g(s,\"invalid usage\")}function yr(e,r,a,s){var n=[];i(s),\"string\"!=typeof e&&b(n,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=o&&e.length-1!==o&&b(n,\"invalid hashed_password length\");var c=u(e),o=e.length-1;n.push(c),f(n,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(n,\"opsLimit must be an unsigned integer\"),f(n,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(n,\"memLimit must be an unsigned integer\");var h=0!=(0|t._crypto_pwhash_str_needs_rehash(c,r,0,a));return v(n),h}function ir(e,r,a){var s=[];i(a),\"string\"!=typeof e&&b(s,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=c&&e.length-1!==c&&b(s,\"invalid hashed_password length\");var n=u(e),c=e.length-1;s.push(n);var o=u(r=m(s,r,\"password\")),h=r.length;s.push(o);var p=0==(0|t._crypto_pwhash_str_verify(n,o,h,0));return v(s),p}function lr(e,r,a){var _=[];i(a),e=m(_,e,\"privateKey\");var s,n=0|t._crypto_scalarmult_scalarbytes();e.length!==n&&b(_,\"invalid privateKey length\"),s=u(e),_.push(s),r=m(_,r,\"publicKey\");var c,o=0|t._crypto_scalarmult_bytes();r.length!==o&&b(_,\"invalid publicKey length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"weak public key\")}function ur(e,r){var a=[];i(r),e=m(a,e,\"privateKey\");var _,s=0|t._crypto_scalarmult_scalarbytes();e.length!==s&&b(a,\"invalid privateKey length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"unknown error\")}function dr(e,r,a){var _=[];i(a),e=m(_,e,\"n\");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&b(_,\"invalid n length\"),s=u(e),_.push(s),r=m(_,r,\"p\");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&b(_,\"invalid p length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ed25519_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ed25519(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"invalid point or scalar is 0\")}function vr(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function gr(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function br(e,r,a){var _=[];i(a),e=m(_,e,\"n\");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&b(_,\"invalid n length\"),s=u(e),_.push(s),r=m(_,r,\"p\");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&b(_,\"invalid p length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ed25519_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ed25519_noclamp(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"invalid point or scalar is 0\")}function fr(e,r,a){var _=[];i(a),e=m(_,e,\"scalar\");var s,n=0|t._crypto_scalarmult_ristretto255_scalarbytes();e.length!==n&&b(_,\"invalid scalar length\"),s=u(e),_.push(s),r=m(_,r,\"element\");var c,o=0|t._crypto_scalarmult_ristretto255_bytes();r.length!==o&&b(_,\"invalid element length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ristretto255_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ristretto255(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"result is identity element\")}function mr(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_core_ristretto255_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_core_ristretto255_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ristretto255_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function Er(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"message\")),c=e.length;s.push(n),r=m(s,r,\"nonce\");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&b(s,\"invalid nonce length\"),o=u(r),s.push(o),a=m(s,a,\"key\");var y,d=0|t._crypto_secretbox_keybytes();a.length!==d&&b(s,\"invalid key length\"),y=u(a),s.push(y);var f=new l(0|c),E=f.address;s.push(E);var x=new l(0|t._crypto_secretbox_macbytes()),k=x.address;if(s.push(k),0==(0|t._crypto_secretbox_detached(E,k,n,c,0,o,y))){var S=p({mac:x,cipher:f},_);return v(s),S}g(s,\"invalid usage\")}function xr(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"message\")),c=e.length;s.push(n),r=m(s,r,\"nonce\");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&b(s,\"invalid nonce length\"),o=u(r),s.push(o),a=m(s,a,\"key\");var y,d=0|t._crypto_secretbox_keybytes();a.length!==d&&b(s,\"invalid key length\"),y=u(a),s.push(y);var f=new l(c+t._crypto_secretbox_macbytes()|0),E=f.address;if(s.push(E),0==(0|t._crypto_secretbox_easy(E,n,c,0,o,y))){var x=p(f,_);return v(s),x}g(s,\"invalid usage\")}function kr(e){var r=[];i(e);var a=new l(0|t._crypto_secretbox_keybytes()),_=a.address;r.push(_),t._crypto_secretbox_keygen(_);var s=p(a,e);return v(r),s}function Sr(e,r,a,_,s){var n=[];i(s);var c=u(e=m(n,e,\"ciphertext\")),o=e.length;n.push(c),r=m(n,r,\"mac\");var h,y=0|t._crypto_secretbox_macbytes();r.length!==y&&b(n,\"invalid mac length\"),h=u(r),n.push(h),a=m(n,a,\"nonce\");var d,f=0|t._crypto_secretbox_noncebytes();a.length!==f&&b(n,\"invalid nonce length\"),d=u(a),n.push(d),_=m(n,_,\"key\");var E,x=0|t._crypto_secretbox_keybytes();_.length!==x&&b(n,\"invalid key length\"),E=u(_),n.push(E);var k=new l(0|o),S=k.address;if(n.push(S),0==(0|t._crypto_secretbox_open_detached(S,c,h,o,0,d,E))){var T=p(k,s);return v(n),T}g(n,\"wrong secret key for the given ciphertext\")}function Tr(e,r,a,_){var s=[];i(_),e=m(s,e,\"ciphertext\");var n,c=t._crypto_secretbox_macbytes(),o=e.length;o>>0;return v([]),r}function ht(e,r){var a=[];i(r);for(var _=t._malloc(24),s=0;s<6;s++)t.setValue(_+4*s,t.Runtime.addFunction(e[[\"implementation_name\",\"random\",\"stir\",\"uniform\",\"buf\",\"close\"][s]]),\"i32\");0!=(0|t._randombytes_set_implementation(_))&&g(a,\"unsupported implementation\"),v(a)}function pt(e){i(e),t._randombytes_stir()}function yt(e,r){var a=[];i(r),f(a,e,\"upper_bound\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(a,\"upper_bound must be an unsigned integer\");var _=t._randombytes_uniform(e)>>>0;return v(a),_}function it(){var e=t._sodium_version_string(),r=t.UTF8ToString(e);return v([]),r}return l.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(t.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can added\");var t=e.length,a=0,_=0;if(r.length!=e.length)throw new TypeError(\"Arguments must have the same length\");for(_=0;_>=8,a+=e[_]+r[_],e[_]=255&a},e.base64_variants=c,e.compare=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(e.length!==r.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var t=0,a=1,_=e.length;_-- >0;)t|=r[_]-e[_]>>8&a,a&=(r[_]^e[_])-1>>8;return t+t+a-1},e.from_base64=function(e,r){r=o(r);var a,_=[],s=new l(3*(e=m(_,e,\"input\")).length/4),n=u(e),c=d(4),h=d(4);return _.push(n),_.push(s.address),_.push(s.result_bin_len_p),_.push(s.b64_end_p),0!==t._sodium_base642bin(s.address,s.length,n,e.length,0,c,h,r)&&g(_,\"invalid input\"),t.getValue(h,\"i32\")-n!==e.length&&g(_,\"incomplete input\"),s.length=t.getValue(c,\"i32\"),a=s.to_Uint8Array(),v(_),a},e.from_hex=function(e){var r,a=[],_=new l((e=m(a,e,\"input\")).length/2),s=u(e),n=d(4);return a.push(s),a.push(_.address),a.push(_.hex_end_p),0!==t._sodium_hex2bin(_.address,_.length,s,e.length,0,0,n)&&g(a,\"invalid input\"),t.getValue(n,\"i32\")-s!==e.length&&g(a,\"incomplete input\"),r=_.to_Uint8Array(),v(a),r},e.from_string=_,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be incremented\");for(var r=256,t=0,a=e.length;t>=8,r+=e[t],e[t]=255&r},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be checked\");for(var r=0,t=0,a=e.length;t 0\");var a,_=[],s=d(4),n=1,c=0,o=0|e.length,h=new l(o+r);_.push(s),_.push(h.address);for(var p=h.address,y=h.address+o+r;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==t._sodium_pad(s,h.address,e.length,r,h.length)&&g(_,\"internal error\"),h.length=t.getValue(s,\"i32\"),a=h.to_Uint8Array(),v(_),a},e.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((r|=0)<=0)throw new Error(\"block size must be > 0\");var a=[],_=u(e),s=d(4);return a.push(_),a.push(s),0!==t._sodium_unpad(s,_,e.length,r)&&g(a,\"unsupported/invalid padding\"),e=(e=new Uint8Array(e)).subarray(0,t.getValue(s,\"i32\")),v(a),e},e.ready=a,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=h,e.to_hex=n,e.to_string=s,e}var t=\"object\"==typeof e.sodium&&\"function\"==typeof e.sodium.onload?e.sodium.onload:null;\"function\"==typeof define&&define.amd?define([\"exports\",\"libsodium\"],r):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?r(exports,require(\"libsodium\")):e.sodium=r(e.commonJsStrict={},e.libsodium),t&&e.sodium.ready.then((function(){t(e.sodium)}))}(this);\n","!function(A){function I(A){\"use strict\";var I;void 0===(I=A)&&(I={});var g=I;\"object\"!=typeof g.sodium&&(\"object\"==typeof global?g=global:\"object\"==typeof window&&(g=window)),\"object\"==typeof g.sodium&&\"number\"==typeof g.sodium.totalMemory&&(I.TOTAL_MEMORY=g.sodium.totalMemory);var B=I;return I.ready=new Promise((function(A,I){(Q=B).onAbort=I,Q.print=function(A){},Q.printErr=function(A){},Q.onRuntimeInitialized=function(){try{Q._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},Q.useBackupModule=function(){return new Promise((function(A,I){(Q={}).onAbort=I,Q.onRuntimeInitialized=function(){Object.keys(B).forEach((function(A){\"getRandomValue\"!==A&&delete B[A]})),Object.keys(Q).forEach((function(A){B[A]=Q[A]})),A()};var g,Q=void 0!==Q?Q:{},C={};for(g in Q)Q.hasOwnProperty(g)&&(C[g]=Q[g]);var E=[],i=!1,n=!1,a=!1,r=!1;i=\"object\"==typeof window,n=\"function\"==typeof importScripts,a=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,r=!i&&!a&&!n;var o,e,t,f,c,y=\"\";function s(A){return Q.locateFile?Q.locateFile(A,y):y+A}a?(y=n?require(\"path\").dirname(y)+\"/\":__dirname+\"/\",o=function(A,I){var g=bA(A);return g?I?g:g.toString():(f||(f=require(\"fs\")),c||(c=require(\"path\")),A=c.normalize(A),f.readFileSync(A,I?null:\"utf8\"))},t=function(A){var I=o(A,!0);return I.buffer||(I=new Uint8Array(I)),G(I.buffer),I},process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),E=process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=Q),Q.inspect=function(){return\"[Emscripten Module object]\"}):r?(\"undefined\"!=typeof read&&(o=function(A){var I=bA(A);return I?_A(I):read(A)}),t=function(A){var I;return(I=bA(A))?I:\"function\"==typeof readbuffer?new Uint8Array(readbuffer(A)):(G(\"object\"==typeof(I=read(A,\"binary\"))),I)},\"undefined\"!=typeof scriptArgs?E=scriptArgs:void 0!==arguments&&(E=arguments),\"undefined\"!=typeof print&&(\"undefined\"==typeof console&&(console={}),console.log=print,console.warn=console.error=\"undefined\"!=typeof printErr?printErr:print)):(i||n)&&(n?y=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(y=document.currentScript.src),y=0!==y.indexOf(\"blob:\")?y.substr(0,y.lastIndexOf(\"/\")+1):\"\",o=function(A){try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.send(null),I.responseText}catch(I){var g=bA(A);if(g)return _A(g);throw I}},n&&(t=function(A){try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}catch(I){var g=bA(A);if(g)return g;throw I}}),e=function(A,I,g){var B=new XMLHttpRequest;B.open(\"GET\",A,!0),B.responseType=\"arraybuffer\",B.onload=function(){if(200==B.status||0==B.status&&B.response)I(B.response);else{var Q=bA(A);Q?I(Q.buffer):g()}},B.onerror=g,B.send(null)}),Q.print;var w,h=Q.printErr||void 0;for(g in C)C.hasOwnProperty(g)&&(Q[g]=C[g]);C=null,Q.arguments&&(E=Q.arguments),Q.thisProgram&&Q.thisProgram,Q.quit&&Q.quit,Q.wasmBinary&&(w=Q.wasmBinary),Q.noExitRuntime&&Q.noExitRuntime;var D,u={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),B=25;B>=0;--B)g[48+B]=52+B,g[65+B]=B,g[97+B]=26+B;function Q(A,I,B){for(var Q,C,E=0,i=I,n=B.length,a=I+(3*n>>2)-(\"=\"==B[n-2])-(\"=\"==B[n-1]);E>4,i>2),i>2]=n[0|K]|n[K+1|0]<<8|n[K+2|0]<<16|n[K+3|0]<<24,i[V+4>>2]=QA,16!=(0|(Z=Z+1|0)););for(g=X(W,A,64),K=i[(I=g)>>2],Z=i[I+4>>2],a=K,K=(QA=i[I+32>>2])+(W=i[I+128>>2])|0,I=($=i[I+36>>2])+i[I+132>>2]|0,I=K>>>0>>0?I+1|0:I,W=K,I=I+Z|0,W=I=(K=a+K|0)>>>0>>0?I+1|0:I,x=ug((Z=K)^(n[0|(K=A- -64|0)]|n[K+1|0]<<8|n[K+2|0]<<16|n[K+3|0]<<24)^-1377402159,I^(n[K+4|0]|n[K+5|0]<<8|n[K+6|0]<<16|n[K+7|0]<<24)^1359893119,32),K=I=p,I=I+1779033703|0,a=QA^(V=x-205731576|0),QA=I=V>>>0<4089235720?I+1|0:I,b=ug(a,$^I,24),m=I=p,j=K,a=x,I=I+W|0,I=(I=(x=b+Z|0)>>>0>>0?I+1|0:I)+(t=B=i[g+140>>2])|0,a=ug(a^(o=Z=(K=i[g+136>>2])+x|0),(G=x>>>0>o>>>0?I+1|0:I)^j,16),I=QA+(d=p)|0,t=ug((l=Z=V+a|0)^b,(W=V>>>0>l>>>0?I+1|0:I)^m,63),f=p,V=i[g+12>>2],Z=(b=i[g+144>>2])+($=QA=i[g+40>>2])|0,I=(T=i[g+148>>2])+(j=i[g+44>>2])|0,I=Z>>>0<$>>>0?I+1|0:I,$=Z,I=I+V|0,I=(Z=Z+i[g+8>>2]|0)>>>0<$>>>0?I+1|0:I,x=ug(Z^(n[A+72|0]|n[A+73|0]<<8|n[A+74|0]<<16|n[A+75|0]<<24)^725511199,(n[A+76|0]|n[A+77|0]<<8|n[A+78|0]<<16|n[A+79|0]<<24)^I^-1694144372,32),j=ug(r=(V=x-2067093701|0)^QA,j^(m=(QA=p)-((x>>>0<2067093701)+1150833018|0)|0),24),c=i[g+156>>2],r=j,I=I+($=p)|0,I=(I=(j=j+Z|0)>>>0>>0?I+1|0:I)+c|0,eA=ug((u=Z=j+i[g+152>>2]|0)^x,(k=j>>>0>u>>>0?I+1|0:I)^QA,16),I=m+(H=p)|0,cA=Z=V+eA|0,x=ug(r^Z,(V=V>>>0>Z>>>0?I+1|0:I)^$,63),m=p,QA=i[g+20>>2],Z=(U=i[g+160>>2])+(j=i[g+48>>2])|0,I=(iA=i[g+164>>2])+(y=i[g+52>>2])|0,$=Z,I=(I=Z>>>0>>0?I+1|0:I)+QA|0,rA=Z=Z+i[g+16>>2]|0,Z=Z>>>0<$>>>0?I+1|0:I,s=ug(rA^(n[A+80|0]|n[A+81|0]<<8|n[A+82|0]<<16|n[A+83|0]<<24)^-79577749,Z^(n[A+84|0]|n[A+85|0]<<8|n[A+86|0]<<16|n[A+87|0]<<24)^528734635,32),QA=I=p,I=I+1013904242|0,r=j^($=s-23791573|0),j=I=$>>>0<4271175723?I+1|0:I,I=ug(r,y^I,24),c=QA,Q=i[g+172>>2],r=I,e=s,s=I,rA=I+rA|0,I=(y=p)+Z|0,I=(I=s>>>0>rA>>>0?I+1|0:I)+(J=Q)|0,AA=ug(e^(F=Z=(QA=i[g+168>>2])+(s=rA)|0),(J=s>>>0>F>>>0?I+1|0:I)^c,16),I=j+(M=p)|0,y=ug(r^(_=Z=$+AA|0),(j=_>>>0<$>>>0?I+1|0:I)^y,63),c=p,s=i[g+28>>2],$=(Z=i[g+176>>2])+(D=rA=i[g+56>>2])|0,I=(yA=i[g+180>>2])+(w=i[g+60>>2])|0,I=(I=D>>>0>$>>>0?I+1|0:I)+s|0,I=(D=$)>>>0>(v=$=D+i[g+24>>2]|0)>>>0?I+1|0:I,S=ug(v^(n[A+88|0]|n[A+89|0]<<8|n[A+90|0]<<16|n[A+91|0]<<24)^327033209,I^(n[A+92|0]|n[A+93|0]<<8|n[A+94|0]<<16|n[A+95|0]<<24)^1541459225,32),s=ug(e=(r=(s=S)+1595750129|0)^rA,w^(rA=($=p)-((s>>>0<2699217167)+1521486533|0)|0),24),w=rA,Y=$,rA=i[g+188>>2],e=s,P=r,I=(D=p)+I|0,I=(I=(v=s+v|0)>>>0>>0?I+1|0:I)+(N=rA)|0,O=s=($=i[g+184>>2])+v|0,r=ug(s^S,(r=Y)^(Y=s>>>0>>0?I+1|0:I),16),I=(I=w)+(w=p)|0,v=s=P+r|0,S=D,D=I=s>>>0>>0?I+1|0:I,e=ug(e^s,S^I,63),s=p,S=m,P=x,L=_,I=m+G|0,m=o=o+x|0,I=(I=o>>>0>>0?I+1|0:I)+(N=q=i[g+196>>2])|0,_=ug((o=x=(IA=i[g+192>>2])+o|0)^r,(x=m>>>0>o>>>0?I+1|0:I)^w,32),I=(I=j)+(j=p)|0,G=I=(m=L+(G=_)|0)>>>0>>0?I+1|0:I,I=ug(P^m,I^S,24),fA=i[g+204>>2],P=I,r=_,w=o,o=I,_=w+I|0,I=(w=p)+x|0,I=(I=o>>>0>_>>>0?I+1|0:I)+(N=fA)|0,CA=x=(S=i[g+200>>2])+(o=_)|0,tA=ug(r^x,(o=o>>>0>x>>>0?I+1|0:I)^j,16),I=G+(_=p)|0,N=ug(P^(r=j=m+tA|0),(G=w)^(w=m>>>0>r>>>0?I+1|0:I),63),G=p,j=c,L=y,I=c+k|0,I=(I=(m=y+u|0)>>>0>>0?I+1|0:I)+(P=oA=i[g+212>>2])|0,u=ug((R=a)^(a=m=(x=i[g+208>>2])+(y=m)|0),(y=y>>>0>a>>>0?I+1|0:I)^d,32),I=D+(m=p)|0,j=ug(L^(c=v+u|0),(I=c>>>0>>0?I+1|0:I)^j,24),d=I,k=m,z=i[g+220>>2],L=j,R=c,I=(c=p)+y|0,I=(I=(D=a+j|0)>>>0>>0?I+1|0:I)+(P=z)|0,k=ug((D=j=(m=i[g+216>>2])+(y=D)|0)^u,(v=y>>>0>D>>>0?I+1|0:I)^k,16),I=(a=p)+d|0,aA=j=R+(y=k)|0,P=ug(L^j,(y=y>>>0>j>>>0?I+1|0:I)^c,63),c=p,d=s,L=e,I=s+J|0,I=(I=(e=e+F|0)>>>0>>0?I+1|0:I)+(u=E=i[g+228>>2])|0,e=ug((J=s=(j=i[g+224>>2])+e|0)^eA,(s=s>>>0>>0?I+1|0:I)^H,32),I=(H=p)+W|0,l=F=l+e|0,W=ug(L^F,(I=F>>>0>>0?I+1|0:I)^d,24),F=I,L=i[g+236>>2],u=W,I=(d=p)+s|0,I=(I=(J=J+W|0)>>>0>>0?I+1|0:I)+L|0,nA=ug((J=W=(BA=i[g+232>>2])+(s=J)|0)^e,(W=H)^(H=s>>>0>J>>>0?I+1|0:I),16),I=(I=F)+(F=p)|0,s=ug(u^(e=W=(s=nA)+l|0),(l=s>>>0>e>>>0?I+1|0:I)^d,63),d=p,u=f,gA=t,EA=cA,I=f+Y|0,I=(I=(cA=t+O|0)>>>0>>0?I+1|0:I)+(R=eA=i[g+244>>2])|0,f=I=(t=(W=i[g+240>>2])+(f=cA)|0)>>>0>>0?I+1|0:I,AA=ug(t^AA,I^M,32),I=(I=V)+(V=p)|0,O=M=EA+(Y=AA)|0,u=ug(gA^M,(I=Y>>>0>M>>>0?I+1|0:I)^u,24),gA=EA=p,M=I,Y=V,sA=u,I=f+EA|0,I=(I=(u=t+u|0)>>>0>>0?I+1|0:I)+(cA=i[g+252>>2])|0,u=t=(V=i[g+248>>2])+(f=u)|0,R=ug(t^AA,(R=Y)^(Y=t>>>0>>0?I+1|0:I),16),I=(I=M)+(M=p)|0,AA=ug(sA^(EA=t=(f=R)+O|0),(t=t>>>0>>0?I+1|0:I)^gA,63),gA=I=p,f=I,sA=k,I=o+eA|0,I=(I=(k=W)>>>0>(O=k+CA|0)>>>0?I+1|0:I)+f|0,O=ug(sA^(f=k=(o=O)+AA|0),(k=o>>>0>f>>>0?I+1|0:I)^a,32),I=l+(o=p)|0,e=I=(a=e+O|0)>>>0>>0?I+1|0:I,CA=AA=ug(AA^a,gA^I,24),gA=I=p,l=I,wA=AA,I=k+oA|0,I=(I=(AA=f+x|0)>>>0>>0?I+1|0:I)+l|0,CA=f=CA+(k=AA)|0,sA=ug(f^O,(l=o)^(o=f>>>0>>0?I+1|0:I),16),I=e+(l=p)|0,e=I=(f=a+sA|0)>>>0>>0?I+1|0:I,AA=ug(wA^(a=f),I^gA,63),k=p,O=N,I=iA+(f=G)|0,I=(I=(N=U+N|0)>>>0>>0?I+1|0:I)+v|0,U=I=(G=D+N|0)>>>0>>0?I+1|0:I,v=ug(G^nA,I^F,32),I=(I=t)+(t=p)|0,I=(F=(D=v)+EA|0)>>>0>>0?I+1|0:I,D=f,f=I,N=ug(O^F,D^I,24),iA=I=p,D=I,O=v,I=U+q|0,I=(I=(v=G+IA|0)>>>0>>0?I+1|0:I)+D|0,I=(G=(U=v)+N|0)>>>0>>0?I+1|0:I,U=G,D=I,nA=ug(O^G,I^t,16),I=f+(v=p)|0,EA=t=F+nA|0,N=ug(t^N,(f=t>>>0>>0?I+1|0:I)^iA,63),t=p,G=c,I=c+fA|0,I=(I=(F=S+P|0)>>>0>>0?I+1|0:I)+H|0,M=ug((S=c=F+J|0)^R,(c=c>>>0>>0?I+1|0:I)^M,32),I=w+(H=p)|0,I=r>>>0>(F=r+M|0)>>>0?I+1|0:I,r=G,G=I,r=w=ug(F^P,r^I,24),P=I=p,J=I,O=M,I=c+cA|0,I=(I=(w=(M=V)+S|0)>>>0>>0?I+1|0:I)+J|0,R=c=r+w|0,gA=ug(O^c,(M=H)^(H=c>>>0>>0?I+1|0:I),16),I=G+(J=p)|0,P=ug((S=c=F+gA|0)^r,(c=c>>>0>>0?I+1|0:I)^P,63),G=p,r=s,I=(F=d)+L|0,I=(I=(M=s+BA|0)>>>0>>0?I+1|0:I)+Y|0,w=ug((M=s=u+M|0)^tA,(s=s>>>0>>0?I+1|0:I)^_,32),I=(I=y)+(y=p)|0,_=ug(r^(Y=d=w+aA|0),(I=d>>>0>>0?I+1|0:I)^F,24),u=d=p,F=I,O=Y,Y=w,w=(I=M)+(M=Z)|0,I=s+yA|0,I=(I=w>>>0>>0?I+1|0:I)+d|0,M=s=w+(r=_)|0,w=I=s>>>0>>0?I+1|0:I,Y=ug(Y^s,I^y,16),I=(d=p)+F|0,O=ug(_^(r=y=O+(s=Y)|0),(s=r>>>0>>0?I+1|0:I)^u,63),y=p,F=t,_=S,u=Y,I=o+B|0,I=(I=(Y=K)>>>0>(S=Y+CA|0)>>>0?I+1|0:I)+t|0,S=ug(u^(t=Y=S+N|0),(o=d)^(d=t>>>0>>0?I+1|0:I),32),I=(I=c)+(c=p)|0,I=(o=S)>>>0>(Y=_+o|0)>>>0?I+1|0:I,u=_=ug((o=Y)^N,I^F,24),N=F=p,Y=I,CA=S,I=d+E|0,I=(I=(S=t+j|0)>>>0>>0?I+1|0:I)+F|0,F=t=(d=S)+_|0,tA=ug(CA^t,(S=t>>>0>>0?I+1|0:I)^c,16),I=(I=Y)+(Y=p)|0,o=t=(c=tA)+o|0,iA=ug(t^u,(_=t>>>0>>0?I+1|0:I)^N,63),c=p,N=r,I=D+(t=G)|0,I=(I=(d=U+P|0)>>>0>>0?I+1|0:I)+(u=aA=i[g+132>>2])|0,d=I=(G=(r=i[g+128>>2])+d|0)>>>0>>0?I+1|0:I,D=ug(G^sA,I^l,32),I=(I=s)+(s=p)|0,l=U=N+D|0,N=u=ug(U^P,(I=U>>>0>>0?I+1|0:I)^t,24),P=t=p,U=I,CA=D,I=d+T|0,d=D=b+G|0,I=(I=D>>>0>>0?I+1|0:I)+t|0,t=ug(CA^(D=G=D+u|0),(t=s)^(s=D>>>0>>0?I+1|0:I),16),I=(I=U)+(U=p)|0,l=G=t+l|0,fA=ug(G^N,(u=G>>>0>>0?I+1|0:I)^P,63),G=p,d=y,I=H+z|0,I=(I=(P=m+R|0)>>>0>>0?I+1|0:I)+y|0,I=(H=(N=P)+O|0)>>>0>>0?I+1|0:I,N=H,y=I,P=ug(H^nA,I^v,32),I=e+(H=p)|0,I=a>>>0>(v=a+P|0)>>>0?I+1|0:I,O=e=ug((a=v)^O,I^d,24),CA=d=p,v=I,R=a,I=y+rA|0,I=(a=$)>>>0>(e=a+N|0)>>>0?I+1|0:I,a=e,I=I+d|0,e=H,H=I=a>>>0>(y=O+a|0)>>>0?I+1|0:I,nA=ug((a=y)^P,e^I,16),I=(y=p)+v|0,O=ug((v=d=R+(e=nA)|0)^O,(I=e>>>0>v>>>0?I+1|0:I)^CA,63),d=p,N=I,P=t,R=AA,I=Q+(e=k)|0,I=(I=(t=QA)>>>0>(AA=t+AA|0)>>>0?I+1|0:I)+w|0,k=t=M+AA|0,w=ug(t^gA,(w=J)^(J=t>>>0>>0?I+1|0:I),32),I=(t=p)+f|0,CA=M=w+EA|0,e=ug(R^M,(I=M>>>0>>0?I+1|0:I)^e,24),gA=EA=p,f=I,M=t,EA=e,R=w,I=J+gA|0,I=(I=(w=e+k|0)>>>0>>0?I+1|0:I)+(AA=i[g+156>>2])|0,J=k=(t=i[g+152>>2])+w|0,e=M,M=I=k>>>0>>0?I+1|0:I,R=ug(R^k,e^I,16),I=(I=f)+(f=p)|0,e=I=(w=R)>>>0>(k=w+CA|0)>>>0?I+1|0:I,CA=ug(EA^(w=k),I^gA,63),EA=I=p,k=I,gA=v,I=S+z|0,I=(I=(v=F+m|0)>>>0>>0?I+1|0:I)+k|0,k=F=v+CA|0,P=ug(F^P,(S=U)^(U=F>>>0>>0?I+1|0:I),32),I=(F=p)+N|0,S=I=(v=gA+(S=P)|0)>>>0>>0?I+1|0:I,EA=CA=ug(CA^v,EA^I,24),gA=I=p,N=I,sA=P,I=U+q|0,I=(I=(P=k+IA|0)>>>0>>0?I+1|0:I)+N|0,I=(k=(U=P)+CA|0)>>>0>>0?I+1|0:I,U=k,N=F,F=I,CA=ug(sA^k,N^I,16),I=S+(N=p)|0,I=(k=v+CA|0)>>>0>>0?I+1|0:I,v=k,S=I,IA=ug(k^EA,I^gA,63),k=p,P=c,gA=iA,I=c+E|0,I=s+(j>>>0>(iA=j+iA|0)>>>0?I+1|0:I)|0,q=c=D+iA|0,iA=ug(c^nA,(s=y)^(y=c>>>0>>0?I+1|0:I),32),I=e+(c=p)|0,D=I=(s=w+iA|0)>>>0>>0?I+1|0:I,P=e=ug(gA^s,I^P,24),nA=I=p,w=I,I=y+aA|0,I=(I=(e=r+q|0)>>>0>>0?I+1|0:I)+w|0,q=y=P+(r=e)|0,iA=ug(y^iA,(w=y>>>0>>0?I+1|0:I)^c,16),I=D+(r=p)|0,aA=y=s+iA|0,e=ug(y^P,(s=y>>>0>>0?I+1|0:I)^nA,63),y=p,I=Q+(c=G)|0,I=H+((D=QA)>>>0>(P=D+fA|0)>>>0?I+1|0:I)|0,D=f,f=I=a>>>0>(G=a+P|0)>>>0?I+1|0:I,P=ug((a=G)^R,D^I,32),I=_+(G=p)|0,I=o>>>0>(H=o+P|0)>>>0?I+1|0:I,o=c,c=I,o=ug(H^fA,o^I,24),fA=I=p,D=I,gA=o,I=f+T|0,I=(I=(o=b)>>>0>(_=o+a|0)>>>0?I+1|0:I)+D|0,nA=f=gA+(o=_)|0,R=ug(f^P,(D=f>>>0>>0?I+1|0:I)^G,16),I=c+(o=p)|0,P=f=H+R|0,_=ug(gA^f,(G=f>>>0>>0?I+1|0:I)^fA,63),f=p,I=cA+(c=d)|0,I=M+((a=(H=V)+O|0)>>>0>>0?I+1|0:I)|0,H=I=(d=J+a|0)>>>0>>0?I+1|0:I,a=ug(d^tA,I^Y,32),I=u+(J=p)|0,Y=c,c=I=l>>>0>(M=l+a|0)>>>0?I+1|0:I,l=ug(M^O,Y^I,24),O=I=p,Y=I,gA=a,I=H+L|0,I=(I=(a=d+BA|0)>>>0>>0?I+1|0:I)+Y|0,a=ug(gA^(Y=d=a+(u=l)|0),(u=J)^(J=a>>>0>Y>>>0?I+1|0:I),16),I=c+(H=p)|0,l=ug(l^(u=d=M+a|0),(d=u>>>0>>0?I+1|0:I)^O,63),c=p,M=y,O=e,gA=a,I=F+oA|0,F=a=U+x|0,I=(I=a>>>0>>0?I+1|0:I)+y|0,e=ug(gA^(a=U=a+e|0),(y=F>>>0>a>>>0?I+1|0:I)^H,32),I=(I=G)+(G=p)|0,U=I=(H=e+P|0)>>>0>>0?I+1|0:I,P=M=ug(O^H,I^M,24),O=I=p,F=I,I=y+eA|0,I=(I=(a=(M=W)+a|0)>>>0>>0?I+1|0:I)+F|0,fA=y=P+a|0,tA=ug(y^e,(F=y>>>0>>0?I+1|0:I)^G,16),I=U+(M=p)|0,P=ug((EA=y=H+tA|0)^P,(y=y>>>0>>0?I+1|0:I)^O,63),G=p,H=f,e=_,I=w+AA|0,I=(I=(_=t+q|0)>>>0>>0?I+1|0:I)+f|0,f=I=(w=_)>>>0>(U=e+w|0)>>>0?I+1|0:I,_=ug((w=U)^CA,I^N,32),I=(I=d)+(d=p)|0,I=(a=_)>>>0>(U=a+u|0)>>>0?I+1|0:I,u=e=ug(e^(a=U),I^H,24),U=I,N=a,a=_,_=(I=w)+(w=Z)|0,I=f+yA|0,I=(I=w>>>0>_>>>0?I+1|0:I)+(H=p)|0,I=(f=(w=_)+e|0)>>>0>>0?I+1|0:I,w=f,_=I,a=ug(a^f,I^d,16),I=(e=p)+U|0,d=ug((CA=f=N+a|0)^u,(f=f>>>0>>0?I+1|0:I)^H,63),H=p,U=c,N=l,I=D+rA|0,I=(I=(u=(l=$)+nA|0)>>>0>>0?I+1|0:I)+c|0,l=D=N+u|0,c=I=D>>>0>>0?I+1|0:I,u=ug(D^iA,I^r,32),I=S+(D=p)|0,S=r=v+u|0,N=r=ug(N^r,(I=r>>>0>>0?I+1|0:I)^U,24),q=U=p,v=I,O=S,I=c+B|0,I=(I=(r=(S=K)+l|0)>>>0>>0?I+1|0:I)+U|0,I=(c=N+r|0)>>>0>>0?I+1|0:I,S=c,r=D,D=I,nA=ug(c^u,r^I,16),I=(I=v)+(v=p)|0,N=ug((c=O+(U=nA)|0)^N,(I=c>>>0>>0?I+1|0:I)^q,63),U=p,l=c,u=I,I=J+(r=k)|0,k=c=Y+IA|0,I=(I=c>>>0>>0?I+1|0:I)+(q=i[g+204>>2])|0,k=I=(c=(O=i[g+200>>2])+c|0)>>>0>>0?I+1|0:I,Y=ug(c^R,I^o,32),I=(I=s)+(s=p)|0,I=(o=Y)>>>0>(J=o+aA|0)>>>0?I+1|0:I,r=ug((o=J)^IA,I^r,24),R=aA=p,J=I,gA=o,aA=Y,I=k+R|0,I=(I=(Y=c+r|0)>>>0>>0?I+1|0:I)+(IA=i[g+164>>2])|0,Y=c=(iA=i[g+160>>2])+(k=Y)|0,aA=ug(aA^c,(o=c>>>0>>0?I+1|0:I)^s,16),I=(I=J)+(J=p)|0,r=ug(r^(gA=c=gA+(s=aA)|0),(c=c>>>0>>0?I+1|0:I)^R,63),R=I=p,s=I,sA=a,I=F+rA|0,I=(I=(a=(k=$)+fA|0)>>>0>>0?I+1|0:I)+s|0,e=ug(sA^(s=k=a+r|0),(k=a>>>0>s>>>0?I+1|0:I)^e,32),I=(F=p)+u|0,l=a=l+e|0,u=ug(r^a,(I=a>>>0>>0?I+1|0:I)^R,24),R=r=p,a=I,fA=l,sA=e,I=k+q|0,I=(I=(e=s+O|0)>>>0>>0?I+1|0:I)+r|0,l=s=e+u|0,sA=ug(sA^s,(r=F)^(F=s>>>0>>0?I+1|0:I),16),I=(r=p)+a|0,fA=ug((wA=s=fA+(k=sA)|0)^u,(s=s>>>0>>0?I+1|0:I)^R,63),k=p,I=AA+(a=G)|0,I=(I=(e=t+P|0)>>>0>>0?I+1|0:I)+_|0,e=ug((_=t=e+w|0)^nA,(t=t>>>0>>0?I+1|0:I)^v,32),I=(I=c)+(c=p)|0,w=I=e>>>0>(G=e+gA|0)>>>0?I+1|0:I,u=a=ug(G^P,I^a,24),P=I=p,v=I,a=(I=_)+(_=K)|0,I=t+B|0,I=(I=a>>>0<_>>>0?I+1|0:I)+v|0,AA=t=u+a|0,nA=ug(t^e,(v=t>>>0>>0?I+1|0:I)^c,16),I=w+(_=p)|0,R=t=G+nA|0,a=ug(t^u,(c=t>>>0>>0?I+1|0:I)^P,63),t=p,e=d,I=(G=H)+L|0,I=(I=(w=d+BA|0)>>>0>>0?I+1|0:I)+D|0,H=I=(d=w+S|0)>>>0>>0?I+1|0:I,D=ug(d^aA,I^J,32),I=(I=y)+(y=p)|0,I=(w=D)>>>0>(J=w+EA|0)>>>0?I+1|0:I,S=ug(e^(w=J),I^G,24),u=G=p,J=I,P=w,L=D,I=H+E|0,H=D=d+j|0,I=(I=D>>>0>>0?I+1|0:I)+G|0,aA=ug(L^(D=d=D+(e=S)|0),(w=H>>>0>D>>>0?I+1|0:I)^y,16),I=(I=J)+(J=p)|0,u=ug(S^(e=y=P+(G=aA)|0),(G=e>>>0>>0?I+1|0:I)^u,63),y=p,d=U,I=U+z|0,I=(I=(S=m+N|0)>>>0>>0?I+1|0:I)+o|0,I=(H=Y+S|0)>>>0>>0?I+1|0:I,Y=H,H=I,S=ug(Y^tA,I^M,32),I=(I=f)+(f=p)|0,o=d,d=I=(U=(M=S)+CA|0)>>>0>>0?I+1|0:I,N=o=ug(U^N,o^I,24),P=I=p,M=I,L=S,S=(I=Y)+(Y=W)|0,I=H+eA|0,I=(I=Y>>>0>S>>>0?I+1|0:I)+M|0,M=H=(Y=S)+o|0,o=ug(L^H,(Y=H>>>0>>0?I+1|0:I)^f,16),I=d+(H=p)|0,I=(f=U+o|0)>>>0>>0?I+1|0:I,U=f,S=I,N=ug(f^N,I^P,63),f=p,d=t,P=a,L=o,I=F+T|0,I=(I=(a=(o=b)+l|0)>>>0>>0?I+1|0:I)+t|0,t=I=a>>>0>(F=P+a|0)>>>0?I+1|0:I,o=ug(L^F,I^H,32),I=(I=G)+(G=p)|0,I=(a=o)>>>0>(H=a+e|0)>>>0?I+1|0:I,l=e=ug(P^(a=H),I^d,24),H=I,P=o,o=(I=F)+(F=Z)|0,I=t+yA|0,I=(I=o>>>0>>0?I+1|0:I)+(d=p)|0,F=t=o+e|0,o=I=t>>>0>>0?I+1|0:I,t=(G=tA=ug(P^t,I^G,16))+a|0,I=(a=p)+H|0,e=t,L=ug(H=t^l,(l=t>>>0>>0?I+1|0:I)^d,63),d=p,I=v+Q|0,I=(I=(G=QA)>>>0>(H=G+AA|0)>>>0?I+1|0:I)+(t=y)|0,v=G=H+u|0,r=ug(G^sA,(y=G>>>0>>0?I+1|0:I)^r,32),I=S+(G=p)|0,I=(H=U+r|0)>>>0>>0?I+1|0:I,U=H,S=ug(H^u,I^t,24),P=t=p,H=I,AA=U,I=y+oA|0,I=(U=x)>>>0>(v=U+v|0)>>>0?I+1|0:I,U=v,I=I+t|0,v=y=v+(u=S)|0,y=ug(y^r,(S=y>>>0>>0?I+1|0:I)^G,16),I=(U=p)+H|0,EA=t=AA+y|0,BA=ug(t^u,(G=t>>>0>>0?I+1|0:I)^P,63),H=p,P=N,I=w+IA|0,I=(I=(r=D+iA|0)>>>0>>0?I+1|0:I)+(t=f)|0,u=ug((f=D=r+N|0)^nA,(D=r>>>0>f>>>0?I+1|0:I)^_,32),I=(I=s)+(s=p)|0,N=w=(_=u)+wA|0,r=ug(P^w,(I=w>>>0<_>>>0?I+1|0:I)^t,24),w=t=p,_=I,P=r,I=D+t|0,I=(I=(r=f+r|0)>>>0>>0?I+1|0:I)+(AA=i[g+132>>2])|0,D=f=(t=i[g+128>>2])+r|0,r=I=f>>>0>>0?I+1|0:I,nA=ug(f^u,I^s,16),I=(I=_)+(_=p)|0,CA=ug(P^(f=(s=nA)+N|0),(I=f>>>0>>0?I+1|0:I)^w,63),s=p,u=f,N=I,P=y,I=cA+(w=k)|0,I=(I=(f=(y=V)+fA|0)>>>0>>0?I+1|0:I)+Y|0,M=ug((f=y=f+M|0)^aA,(k=f>>>0>>0?I+1|0:I)^J,32),I=(y=p)+c|0,I=(Y=M)>>>0>(J=Y+R|0)>>>0?I+1|0:I,w=ug((Y=J)^fA,I^w,24),gA=R=p,c=I,J=y,aA=M,I=k+R|0,I=(I=(M=f+w|0)>>>0>>0?I+1|0:I)+(fA=i[g+196>>2])|0,M=f=(y=i[g+192>>2])+(k=M)|0,aA=ug(aA^f,(R=J)^(J=f>>>0>>0?I+1|0:I),16),I=(I=c)+(c=p)|0,w=ug(w^(R=f=(k=aA)+Y|0),(f=f>>>0>>0?I+1|0:I)^gA,63),gA=I=p,k=I,I=o+q|0,I=(I=(Y=F+O|0)>>>0>>0?I+1|0:I)+k|0,I=(F=Y+w|0)>>>0>>0?I+1|0:I,Y=F,k=I,o=ug(F^P,I^U,32),I=(U=p)+N|0,u=F=u+o|0,N=ug(w^F,(I=F>>>0>>0?I+1|0:I)^gA,24),q=F=p,w=I,P=o,I=k+AA|0,I=(I=(o=t+Y|0)>>>0>>0?I+1|0:I)+F|0,O=k=o+N|0,gA=ug(P^k,(F=k>>>0>>0?I+1|0:I)^U,16),I=(I=w)+(w=p)|0,Y=k=(U=gA)+u|0,q=ug(k^N,(o=k>>>0>>0?I+1|0:I)^q,63),U=p,I=Q+(k=d)|0,I=S+((u=QA)>>>0>(N=u+L|0)>>>0?I+1|0:I)|0,v=I=(d=v+N|0)>>>0>>0?I+1|0:I,u=ug(d^nA,I^_,32),I=(I=f)+(f=p)|0,I=(_=u)>>>0>(S=_+R|0)>>>0?I+1|0:I,_=k,k=I,N=ug(S^L,_^I,24),L=I=p,_=I,P=u,I=v+rA|0,I=(I=(u=d+$|0)>>>0>>0?I+1|0:I)+_|0,_=I=(d=(v=u)+N|0)>>>0>>0?I+1|0:I,nA=ug(P^(v=d),I^f,16),I=k+(u=p)|0,R=f=S+nA|0,N=ug(f^N,(d=f>>>0>>0?I+1|0:I)^L,63),f=p,k=H,I=H+T|0,I=r+(b>>>0>(P=b+BA|0)>>>0?I+1|0:I)|0,r=c,c=I=D>>>0>(H=D+P|0)>>>0?I+1|0:I,P=ug(H^aA,r^I,32),I=l+(D=p)|0,r=k,k=I=e>>>0>(S=e+P|0)>>>0?I+1|0:I,l=e=ug(S^BA,r^I,24),r=I=p,I=c+IA|0,I=(I=(e=H+iA|0)>>>0>>0?I+1|0:I)+r|0,IA=c=l+e|0,iA=ug(c^P,(H=c>>>0>>0?I+1|0:I)^D,16),I=k+(D=p)|0,BA=c=S+iA|0,e=ug(c^l,(k=c>>>0>>0?I+1|0:I)^r,63),c=p,S=s,I=s+oA|0,I=J+((r=x)>>>0>(l=r+CA|0)>>>0?I+1|0:I)|0,a=ug((r=s=M+l|0)^tA,(s=r>>>0>>0?I+1|0:I)^a,32),I=(I=G)+(G=p)|0,P=S=ug((l=J=a+EA|0)^CA,(I=a>>>0>l>>>0?I+1|0:I)^S,24),L=J=p,M=I,I=s+cA|0,I=(I=(r=(S=V)+r|0)>>>0>>0?I+1|0:I)+J|0,J=s=P+r|0,a=ug(s^a,(S=s>>>0>>0?I+1|0:I)^G,16),I=(I=M)+(M=p)|0,CA=s=a+l|0,P=ug(s^P,(G=s>>>0>>0?I+1|0:I)^L,63),s=p,L=N,aA=a,I=F+eA|0,I=(I=(a=W)>>>0>(l=a+O|0)>>>0?I+1|0:I)+(r=f)|0,f=I=(a=l)>>>0>(F=a+N|0)>>>0?I+1|0:I,l=ug(aA^(a=F),I^M,32),I=(I=k)+(k=p)|0,N=F=(M=l)+BA|0,L=r=ug(L^F,(I=F>>>0>>0?I+1|0:I)^r,24),BA=F=p,M=I,I=f+B|0,I=(I=(a=(r=K)+a|0)>>>0>>0?I+1|0:I)+F|0,tA=f=L+a|0,aA=ug(f^l,(r=k)^(k=f>>>0>>0?I+1|0:I),16),I=(F=p)+M|0,M=f=(r=aA)+N|0,L=ug(f^L,(r=f>>>0>>0?I+1|0:I)^BA,63),f=p,N=e,I=_+z|0,_=e=m+v|0,I=(I=e>>>0>>0?I+1|0:I)+(a=c)|0,l=ug((e=v=N+e|0)^gA,(c=e>>>0<_>>>0?I+1|0:I)^w,32),I=(I=G)+(G=p)|0,v=I=(w=(v=l)+CA|0)>>>0>>0?I+1|0:I,N=a=ug(N^w,I^a,24),BA=I=p,_=I,I=c+E|0,I=(I=(a=j)>>>0>(e=a+e|0)>>>0?I+1|0:I)+_|0,_=c=N+(a=e)|0,G=ug(c^l,(a=c>>>0>>0?I+1|0:I)^G,16),I=v+(e=p)|0,I=(c=w+G|0)>>>0>>0?I+1|0:I,w=c,v=I,BA=ug(c^N,I^BA,63),c=p,l=s,O=P,I=H+yA|0,I=(I=(N=Z)>>>0>(P=N+IA|0)>>>0?I+1|0:I)+s|0,I=(H=O+(N=P)|0)>>>0>>0?I+1|0:I,N=H,s=I,P=ug(H^nA,I^u,32),I=o+(H=p)|0,o=I=(u=Y+P|0)>>>0>>0?I+1|0:I,u=ug(O^(Y=u),I^l,24),O=I=p,l=I,I=s+fA|0,I=(I=(N=y+N|0)>>>0>>0?I+1|0:I)+l|0,l=s=(IA=u)+(u=N)|0,CA=ug(s^P,(N=H)^(H=s>>>0>>0?I+1|0:I),16),I=o+(u=p)|0,I=(s=Y+CA|0)>>>0>>0?I+1|0:I,Y=s,IA=ug(s^IA,I^O,63),s=p,N=I,gA=q,I=S+(o=U)|0,I=(I=(q=J+q|0)>>>0>>0?I+1|0:I)+(O=nA=i[g+156>>2])|0,J=I=(U=(P=i[g+152>>2])+(J=q)|0)>>>0>>0?I+1|0:I,S=ug(U^iA,I^D,32),I=(I=d)+(d=p)|0,q=D=S+R|0,O=o=ug(gA^D,(I=D>>>0>>0?I+1|0:I)^o,24),R=iA=p,D=I,gA=EA=i[g+236>>2],EA=q,q=S,I=J+R|0,I=(I=(o=o+U|0)>>>0>>0?I+1|0:I)+gA|0,I=(U=(S=i[g+232>>2])+o|0)>>>0>>0?I+1|0:I,o=d,d=I,iA=ug(q^U,o^I,16),I=(J=p)+D|0,O=ug((D=o=EA+(q=iA)|0)^O,(o=o>>>0>>0?I+1|0:I)^R,63),R=I=p,q=I,EA=G,I=k+T|0,I=(I=(G=b+tA|0)>>>0>>0?I+1|0:I)+q|0,e=ug(EA^(q=b=G+O|0),(b=b>>>0>>0?I+1|0:I)^e,32),I=(G=p)+N|0,N=k=Y+e|0,T=ug(O^k,R^(I=k>>>0>>0?I+1|0:I),24),tA=k=p,Y=I,O=N,R=e,I=b+E|0,I=(I=(e=j)>>>0>(N=e+q|0)>>>0?I+1|0:I)+k|0,R=ug(R^(k=b=(e=N)+T|0),(e=e>>>0>k>>>0?I+1|0:I)^G,16),I=(I=Y)+(Y=p)|0,N=b=O+(G=R)|0,O=ug(b^T,(q=b>>>0>>0?I+1|0:I)^tA,63),G=p,b=f,EA=L,I=f+yA|0,I=a+(Z>>>0>(L=Z+L|0)>>>0?I+1|0:I)|0,u=ug((T=f=_+L|0)^CA,(f=f>>>0<_>>>0?I+1|0:I)^u,32),I=o+(_=p)|0,I=(a=D+u|0)>>>0>>0?I+1|0:I,D=a,o=b,b=I,L=a=ug(EA^a,o^I,24),CA=I=p,o=I,EA=a,tA=u,I=f+oA|0,I=(I=(a=x)>>>0>(u=a+T|0)>>>0?I+1|0:I)+o|0,L=f=L+(a=u)|0,tA=ug(tA^f,(o=f>>>0>>0?I+1|0:I)^_,16),I=b+(_=p)|0,I=(f=D+tA|0)>>>0>>0?I+1|0:I,D=f,a=I,u=ug(EA^f,I^CA,63),f=p,b=c,I=c+AA|0,I=(I=(T=t+BA|0)>>>0>>0?I+1|0:I)+H|0,I=(t=l+T|0)>>>0>>0?I+1|0:I,l=t,t=I,T=ug(l^iA,I^J,32),I=r+(c=p)|0,r=b,b=I=(H=M+T|0)>>>0>>0?I+1|0:I,r=M=ug(H^BA,r^I,24),BA=I=p,J=I,I=t+z|0,I=(I=(M=m+l|0)>>>0>>0?I+1|0:I)+J|0,l=m=r+(t=M)|0,T=ug(m^T,(M=c)^(c=t>>>0>m>>>0?I+1|0:I),16),I=b+(J=p)|0,z=m=H+T|0,M=ug(m^r,(t=m>>>0>>0?I+1|0:I)^BA,63),b=p,m=s,I=s+fA|0,I=(I=(H=y+IA|0)>>>0>>0?I+1|0:I)+d|0,I=(y=H+U|0)>>>0>>0?I+1|0:I,U=y,y=I,F=ug(U^aA,I^F,32),I=v+(s=p)|0,r=m,m=I=w>>>0>(d=w+F|0)>>>0?I+1|0:I,v=w=ug(d^IA,r^I,24),r=I=p,I=y+nA|0,I=(I=(U=U+P|0)>>>0

>>0?I+1|0:I)+r|0,H=y=U+w|0,F=ug(y^F,(w=s)^(s=y>>>0>>0?I+1|0:I),16),I=m+(U=p)|0,r=ug((w=y=d+F|0)^v,(y=y>>>0>>0?I+1|0:I)^r,63),m=p,d=f,P=F,I=f+e|0,I=(F=k+u|0)>>>0>>0?I+1|0:I,k=F,I=I+(v=i[g+164>>2])|0,v=ug(P^(F=f=F+i[g+160>>2]|0),(f=f>>>0>>0?I+1|0:I)^U,32),I=(I=t)+(t=p)|0,e=d,d=I=(k=(U=v)+z|0)>>>0>>0?I+1|0:I,e=ug(k^u,e^I,24),P=I=p,U=I,I=f+gA|0,I=(I=(F=F+S|0)>>>0>>0?I+1|0:I)+U|0,BA=ug((z=f=F+e|0)^v,(f=f>>>0>>0?I+1|0:I)^t,16),I=d+(U=p)|0,d=t=k+BA|0,u=ug(t^e,(k=t>>>0>>0?I+1|0:I)^P,63),t=p,e=M,S=w,I=o+rA|0,I=(I=(w=(M=$)+L|0)>>>0>>0?I+1|0:I)+(F=b)|0,Y=ug((v=M=e+w|0)^R,(b=w>>>0>v>>>0?I+1|0:I)^Y,32),I=(I=y)+(y=p)|0,o=F,F=I=(w=Y)>>>0>(M=S+w|0)>>>0?I+1|0:I,o=S=ug(e^M,o^I,24),e=I=p,S=Y,I=b+Q|0,I=(I=(Y=QA)>>>0>(v=Y+v|0)>>>0?I+1|0:I)+e|0,v=ug(S^(w=b=v+o|0),(Y=w>>>0>>0?I+1|0:I)^y,16),I=F+(S=p)|0,P=ug((F=b=M+v|0)^o,(M=F>>>0>>0?I+1|0:I)^e,63),b=p,L=r,I=c+cA|0,I=(o=V)>>>0>(r=o+l|0)>>>0?I+1|0:I,o=r,I=I+(y=m)|0,e=ug((r=c=L+r|0)^tA,(m=r>>>0>>0?I+1|0:I)^_,32),I=q+(c=p)|0,_=y,y=I=(o=N+e|0)>>>0>>0?I+1|0:I,l=ug(L^o,_^I,24),q=I=p,_=I,N=e,e=(I=r)+(r=W)|0,I=m+eA|0,I=(I=r>>>0>e>>>0?I+1|0:I)+_|0,_=I=(r=e)>>>0>(m=r+l|0)>>>0?I+1|0:I,L=ug(N^m,I^c,16),I=y+(r=p)|0,N=ug((c=o+L|0)^l,(I=c>>>0>>0?I+1|0:I)^q,63),y=p,e=I,I=B+(o=G)|0,I=s+((l=K)>>>0>(q=l+O|0)>>>0?I+1|0:I)|0,l=G=H+q|0,q=ug(G^T,(s=G>>>0>>0?I+1|0:I)^J,32),I=a+(G=p)|0,J=I=D>>>0>(H=D+q|0)>>>0?I+1|0:I,T=I=ug(H^O,I^o,24),D=I,o=I+l|0,I=(a=p)+s|0,I=(I=o>>>0>>0?I+1|0:I)+(IA=i[g+204>>2])|0,I=(s=o+i[g+200>>2]|0)>>>0>>0?I+1|0:I,o=G,G=I,IA=ug(s^q,o^I,16),I=J+(D=p)|0,I=(o=H+IA|0)>>>0>>0?I+1|0:I,H=o,J=I,a=ug(T^o,I^a,63),o=I=p,l=c,T=v,I=f+E|0,I=(I=(c=j)>>>0>(v=c+z|0)>>>0?I+1|0:I)+o|0,T=ug(T^(q=f=(c=v)+a|0),(f=f>>>0>>0?I+1|0:I)^S,32),I=(c=p)+e|0,S=I=(v=l+(S=T)|0)>>>0>>0?I+1|0:I,a=ug(a^v,o^I,24),l=I=p,o=I,R=a,I=f+Q|0,I=(I=(a=QA)>>>0>(e=a+q|0)>>>0?I+1|0:I)+o|0,T=ug((o=f=R+(a=e)|0)^T,(a=o>>>0>>0?I+1|0:I)^c,16),I=S+(e=p)|0,I=(f=v+T|0)>>>0>>0?I+1|0:I,v=f,S=I,f=ug(R^f,I^l,63),c=p,l=t,R=u,I=t+B|0,I=Y+((u=K)>>>0>(q=R+u|0)>>>0?I+1|0:I)|0,r=ug((u=t=w+q|0)^L,(t=t>>>0>>0?I+1|0:I)^r,32),I=J+(w=p)|0,J=I=H>>>0>(Y=H+r|0)>>>0?I+1|0:I,q=l=ug(R^(H=Y),I^l,24),z=I=p,Y=I,R=l,L=r,I=t+cA|0,I=(I=(r=V)>>>0>(l=r+u|0)>>>0?I+1|0:I)+Y|0,q=t=q+(r=l)|0,L=ug(L^t,(Y=w)^(w=t>>>0>>0?I+1|0:I),16),I=J+(Y=p)|0,I=(t=H+L|0)>>>0>>0?I+1|0:I,H=t,J=I,u=ug(R^t,I^z,63),t=p,R=P,I=eA+(r=b)|0,I=_+((l=W)>>>0>(P=l+P|0)>>>0?I+1|0:I)|0,l=ug((_=b=m+P|0)^IA,(b=m>>>0>_>>>0?I+1|0:I)^D,32),I=k+(m=p)|0,I=(D=d+l|0)>>>0>>0?I+1|0:I,d=D,k=I,I=ug(R^D,I^r,24),z=i[g+236>>2],R=I,r=_,_=I,r=r+I|0,I=(D=p)+b|0,I=(I=r>>>0<_>>>0?I+1|0:I)+z|0,r=I=(b=r+i[g+232>>2]|0)>>>0>>0?I+1|0:I,z=ug((_=b)^l,I^m,16),I=k+(l=p)|0,P=b=d+z|0,D=ug(R^b,(m=b>>>0>>0?I+1|0:I)^D,63),b=p,d=y,R=N,I=y+G|0,I=(I=(k=s+N|0)>>>0>>0?I+1|0:I)+(IA=i[g+164>>2])|0,U=ug((N=y=(s=k)+i[g+160>>2]|0)^BA,(y=y>>>0>>0?I+1|0:I)^U,32),I=M+(s=p)|0,M=d,d=I=F>>>0>(G=F+U|0)>>>0?I+1|0:I,M=F=ug(R^G,M^I,24),BA=I=p,k=I,R=U,I=y+oA|0,I=(I=(F=(U=x)+N|0)>>>0>>0?I+1|0:I)+k|0,IA=y=M+F|0,F=ug(R^y,(k=s)^(s=y>>>0>>0?I+1|0:I),16),I=d+(k=p)|0,I=(y=G+F|0)>>>0>>0?I+1|0:I,G=y,d=I,N=ug(y^M,I^BA,63),y=p,U=t,R=F,I=t+a|0,I=(I=(F=o+u|0)>>>0>>0?I+1|0:I)+(M=i[g+132>>2])|0,o=ug(R^(M=t=F+i[g+128>>2]|0),(t=t>>>0>>0?I+1|0:I)^k,32),I=(I=m)+(m=p)|0,a=U,U=I=o>>>0>(k=o+P|0)>>>0?I+1|0:I,a=ug(k^u,a^I,24),P=I=p,F=I,u=o,o=(I=M)+(M=$)|0,I=t+rA|0,I=(I=o>>>0>>0?I+1|0:I)+F|0,BA=t=o+a|0,AA=ug(u^t,(F=t>>>0>>0?I+1|0:I)^m,16),I=U+(M=p)|0,U=I=(m=k+AA|0)>>>0>>0?I+1|0:I,u=ug((k=m)^a,I^P,63),m=p,P=D,I=w+yA|0,w=o=(D=Z)+q|0,I=(I=o>>>0>>0?I+1|0:I)+(t=b)|0,a=ug((o=D=P+o|0)^T,(b=w>>>0>o>>>0?I+1|0:I)^e,32),I=d+(D=p)|0,I=(w=G+a|0)>>>0>>0?I+1|0:I,G=w,e=t,t=I,I=ug(P^w,e^I,24),P=i[g+156>>2],e=I,w=I,o=I+o|0,I=(d=p)+b|0,I=(I=o>>>0>>0?I+1|0:I)+P|0,I=o>>>0>(b=o+i[g+152>>2]|0)>>>0?I+1|0:I,o=D,D=I,q=ug((w=b)^a,o^I,16),I=t+(o=p)|0,a=d,d=I=(b=G+q|0)>>>0>>0?I+1|0:I,P=ug(e^(G=b),a^I,63),t=p,b=y,I=y+r|0,I=(I=(a=_+N|0)>>>0<_>>>0?I+1|0:I)+(e=i[g+204>>2])|0,I=(y=a+i[g+200>>2]|0)>>>0>>0?I+1|0:I,a=Y,Y=I,a=ug(y^L,a^I,32),I=S+(_=p)|0,I=(r=v+a|0)>>>0>>0?I+1|0:I,v=r,e=b,b=I,r=ug(r^N,e^I,24),e=I=p,L=r,I=I+Y|0,I=(I=(r=y+r|0)>>>0>>0?I+1|0:I)+(N=i[g+148>>2])|0,I=(y=r+i[g+144>>2]|0)>>>0>>0?I+1|0:I,Y=y,r=_,_=I,T=ug(y^a,r^I,16),I=b+(r=p)|0,I=(y=v+T|0)>>>0>>0?I+1|0:I,v=y,S=I,N=ug(L^y,e^I,63),y=p,b=c,L=f,I=c+s|0,c=a=f+IA|0,I=(I=a>>>0>>0?I+1|0:I)+(e=i[g+196>>2])|0,e=ug((a=f=a+i[g+192>>2]|0)^z,(f=a>>>0>>0?I+1|0:I)^l,32),I=J+(c=p)|0,b=ug(L^(s=H+e|0),(I=s>>>0>>0?I+1|0:I)^b,24),H=I,z=i[g+220>>2],l=b,R=s,I=(s=p)+f|0,f=a=a+b|0,I=(I=a>>>0>>0?I+1|0:I)+(L=z)|0,L=ug(b=(a=b=(J=i[g+216>>2])+a|0)^e,(e=f>>>0>a>>>0?I+1|0:I)^c,16),I=(I=H)+(H=p)|0,I=(f=L)>>>0>(b=R+f|0)>>>0?I+1|0:I,f=s,s=I,I=ug(l^b,f^I,63),O=i[g+236>>2],R=I,c=I,l=I+BA|0,I=(f=p)+F|0,I=(I=c>>>0>l>>>0?I+1|0:I)+O|0,q=ug((l=c=(F=l)+i[g+232>>2]|0)^q,(c=c>>>0>>0?I+1|0:I)^o,32),I=S+(F=p)|0,I=(o=v+q|0)>>>0>>0?I+1|0:I,v=o,S=f,f=I,I=ug(R^o,S^I,24),R=q,o=I,l=I+l|0,I=(S=p)+c|0,I=z+(o>>>0>l>>>0?I+1|0:I)|0,q=c=l+J|0,z=ug(R^c,(l=F)^(F=c>>>0>>0?I+1|0:I),16),I=f+(J=p)|0,I=(c=v+z|0)>>>0>>0?I+1|0:I,v=c,f=S,S=I,f=ug(o^c,f^I,63),c=p,R=u,I=rA+(o=m)|0,I=D+((u=(l=$)+u|0)>>>0>>0?I+1|0:I)|0,r=ug((l=m=w+u|0)^T,(m=w>>>0>m>>>0?I+1|0:I)^r,32),I=s+(D=p)|0,I=(w=b+r|0)>>>0>>0?I+1|0:I,b=w,s=I,u=o=ug(R^w,I^o,24),T=I=p,w=I,R=r,I=m+eA|0,I=(I=(o=W)>>>0>(r=o+l|0)>>>0?I+1|0:I)+w|0,BA=m=u+(o=r)|0,IA=ug(R^m,(r=D)^(D=o>>>0>m>>>0?I+1|0:I),16),I=s+(w=p)|0,l=ug((s=m=b+IA|0)^u,(o=s>>>0>>0?I+1|0:I)^T,63),b=p,m=t,I=t+E|0,I=_+((r=j)>>>0>(u=r+P|0)>>>0?I+1|0:I)|0,r=ug((_=t=Y+u|0)^L,(t=t>>>0>>0?I+1|0:I)^H,32),I=U+(H=p)|0,I=k>>>0>(Y=k+r|0)>>>0?I+1|0:I,k=Y,Y=m,m=I,u=Y=ug(k^P,Y^I,24),P=I=p,U=I,I=t+B|0,I=(I=(Y=K)>>>0>(_=Y+_|0)>>>0?I+1|0:I)+U|0,U=t=u+_|0,T=ug(t^r,(Y=H)^(H=t>>>0<_>>>0?I+1|0:I),16),I=m+(Y=p)|0,I=(t=k+T|0)>>>0>>0?I+1|0:I,k=t,_=I,u=ug(t^u,I^P,63),m=p,I=e+(t=y)|0,I=(I=(r=a+N|0)>>>0>>0?I+1|0:I)+(P=i[g+156>>2])|0,a=M,M=I=(y=r+i[g+152>>2]|0)>>>0>>0?I+1|0:I,e=ug(y^AA,a^I,32),I=d+(r=p)|0,I=(a=G+e|0)>>>0>>0?I+1|0:I,G=a,d=t,t=I,a=ug(a^N,d^I,24),N=I=p,R=a,I=M+I|0,I=(I=(a=a+y|0)>>>0>>0?I+1|0:I)+(P=i[g+204>>2])|0,L=y=a+i[g+200>>2]|0,a=ug(y^e,(M=y>>>0>>0?I+1|0:I)^r,16),I=t+(y=p)|0,I=(r=G+a|0)>>>0>>0?I+1|0:I,G=r,d=I,N=ug(R^r,N^I,63),t=p,P=a,I=F+Q|0,I=(I=(a=QA)>>>0>(e=a+q|0)>>>0?I+1|0:I)+(r=b)|0,b=F=(a=e)+l|0,e=ug(P^F,(e=y)^(y=a>>>0>F>>>0?I+1|0:I),32),I=_+(F=p)|0,I=(a=k+e|0)>>>0>>0?I+1|0:I,k=a,_=I,a=ug(a^l,I^r,24),r=I=p,l=a,I=y+I|0,I=(I=(a=a+b|0)>>>0>>0?I+1|0:I)+(P=i[g+132>>2])|0,q=b=a+i[g+128>>2]|0,AA=ug(b^e,(y=F)^(F=a>>>0>b>>>0?I+1|0:I),16),I=_+(a=p)|0,_=I=(b=k+AA|0)>>>0>>0?I+1|0:I,P=ug(l^(k=b),I^r,63),b=p,I=D+cA|0,I=(I=(r=V)>>>0>(e=r+BA|0)>>>0?I+1|0:I)+(y=m)|0,m=I=(r=e)>>>0>(D=r+u|0)>>>0?I+1|0:I,e=ug((r=D)^z,I^J,32),I=d+(J=p)|0,I=G>>>0>(D=G+e|0)>>>0?I+1|0:I,G=D,l=y,y=I,I=ug(D^u,l^I,24),u=i[g+164>>2],l=I,D=I,r=I+r|0,I=(d=p)+m|0,I=(I=r>>>0>>0?I+1|0:I)+u|0,I=(m=r+i[g+160>>2]|0)>>>0>>0?I+1|0:I,r=J,J=I,r=ug((D=m)^e,r^I,16),I=y+(e=p)|0,y=d,d=I=(m=G+r|0)>>>0>>0?I+1|0:I,m=ug(l^(G=m),y^I,63),y=p,l=t,R=N,I=t+H|0,I=(I=(u=U+N|0)>>>0>>0?I+1|0:I)+(z=i[g+196>>2])|0,N=ug((u=t=(H=u)+i[g+192>>2]|0)^IA,(t=t>>>0>>0?I+1|0:I)^w,32),I=S+(H=p)|0,w=I=(U=v+N|0)>>>0>>0?I+1|0:I,S=ug(R^U,I^l,24),z=I=p,v=I,R=S,I=t+yA|0,I=(I=(l=(S=Z)+u|0)>>>0>>0?I+1|0:I)+v|0,BA=t=R+(S=l)|0,IA=ug(t^N,(l=H)^(H=t>>>0>>0?I+1|0:I),16),I=w+(v=p)|0,I=(t=U+IA|0)>>>0>>0?I+1|0:I,U=t,l=ug(R^t,I^z,63),t=p,w=c,S=I,R=f,I=c+M|0,I=(I=(u=f+L|0)>>>0>>0?I+1|0:I)+(N=i[g+148>>2])|0,Y=ug((u=f=(c=u)+i[g+144>>2]|0)^T,(f=f>>>0>>0?I+1|0:I)^Y,32),I=o+(c=p)|0,I=s>>>0>(M=s+Y|0)>>>0?I+1|0:I,s=M,M=I,N=o=ug(R^s,I^w,24),T=I=p,w=I,L=Y,I=f+oA|0,I=(I=(o=(Y=x)+u|0)>>>0>>0?I+1|0:I)+w|0,w=f=N+o|0,z=ug(L^f,(Y=f>>>0>>0?I+1|0:I)^c,16),I=M+(c=p)|0,I=(f=s+z|0)>>>0>>0?I+1|0:I,s=f,M=I,o=ug(f^N,I^T,63),u=I=p,f=I,N=U,T=r,I=F+yA|0,F=r=(U=Z)+q|0,I=(I=r>>>0>>0?I+1|0:I)+f|0,e=ug(T^(r=U=r+o|0),(f=F>>>0>r>>>0?I+1|0:I)^e,32),I=(U=p)+S|0,S=I=(F=N+e|0)>>>0>>0?I+1|0:I,u=ug(o^F,u^I,24),q=I=p,o=I,N=e,e=(I=r)+(r=V)|0,I=f+cA|0,I=(I=r>>>0>e>>>0?I+1|0:I)+o|0,T=f=(r=e)+u|0,L=ug(N^f,(o=U)^(U=f>>>0>>0?I+1|0:I),16),I=S+(o=p)|0,I=(f=F+L|0)>>>0>>0?I+1|0:I,F=f,S=I,N=ug(f^u,I^q,63),f=p,I=eA+(r=b)|0,I=J+((e=W)>>>0>(u=e+P|0)>>>0?I+1|0:I)|0,v=ug((e=b=D+u|0)^IA,(b=e>>>0>>0?I+1|0:I)^v,32),I=M+(J=p)|0,M=I=s>>>0>(D=s+v|0)>>>0?I+1|0:I,I=ug((s=D)^P,I^r,24),P=i[g+204>>2],u=I,q=v,v=I,r=I+e|0,I=(D=p)+b|0,I=(I=r>>>0>>0?I+1|0:I)+P|0,P=b=r+i[g+200>>2]|0,q=ug(q^b,(e=J)^(J=b>>>0>>0?I+1|0:I),16),I=M+(v=p)|0,M=b=s+q|0,e=ug(u^b,(r=D)^(D=s>>>0>b>>>0?I+1|0:I),63),b=p,s=y,R=m,I=y+H|0,I=(I=(r=m+BA|0)>>>0>>0?I+1|0:I)+(u=i[g+220>>2])|0,r=ug((H=m=r+i[g+216>>2]|0)^z,(m=r>>>0>H>>>0?I+1|0:I)^c,32),I=_+(y=p)|0,_=s,s=I=(c=k+r|0)>>>0>>0?I+1|0:I,I=ug(R^c,_^I,24),z=i[g+156>>2],u=I,_=H,H=I,_=_+I|0,I=(k=p)+m|0,I=(I=H>>>0>_>>>0?I+1|0:I)+z|0,z=m=(H=_)+i[g+152>>2]|0,BA=ug(m^r,(H=m>>>0>>0?I+1|0:I)^y,16),I=s+(_=p)|0,y=ug(u^(s=m=c+BA|0),(r=k)^(k=c>>>0>s>>>0?I+1|0:I),63),c=p,m=t,I=t+Y|0,I=(I=(r=w+l|0)>>>0>>0?I+1|0:I)+(u=i[g+132>>2])|0,w=I=(t=r+i[g+128>>2]|0)>>>0>>0?I+1|0:I,a=ug(t^AA,I^a,32),I=d+(Y=p)|0,I=(r=G+a|0)>>>0>>0?I+1|0:I,G=r,u=m,m=I,r=ug(r^l,u^I,24),l=I=p,R=r,I=w+I|0,I=(I=(r=t+r|0)>>>0>>0?I+1|0:I)+(u=i[g+196>>2])|0,I=(t=r+i[g+192>>2]|0)>>>0>>0?I+1|0:I,w=t,r=Y,Y=I,a=ug(t^a,r^I,16),I=m+(t=p)|0,I=(r=G+a|0)>>>0>>0?I+1|0:I,G=r,d=I,u=ug(R^r,l^I,63),m=p,R=e,l=a,I=U+E|0,I=(I=(a=j)>>>0>(e=a+T|0)>>>0?I+1|0:I)+(r=b)|0,b=U=R+(a=e)|0,e=ug(l^U,(e=t)^(t=a>>>0>U>>>0?I+1|0:I),32),I=k+(U=p)|0,l=a=s+e|0,a=ug(R^a,(I=a>>>0>>0?I+1|0:I)^r,24),k=I,IA=i[g+148>>2],T=a,I=t+(s=p)|0,I=(I=(a=a+b|0)>>>0>>0?I+1|0:I)+(AA=IA)|0,O=ug((AA=b=(r=i[g+144>>2])+a|0)^e,(b=a>>>0>b>>>0?I+1|0:I)^U,16),I=(I=k)+(k=p)|0,I=(t=(U=O)+l|0)>>>0>>0?I+1|0:I,U=t,a=I,t=ug(T^t,I^s,63),s=p,R=y,I=(e=c)+J|0,I=(I=(l=y+P|0)>>>0>>0?I+1|0:I)+(T=i[g+236>>2])|0,o=ug((l=y=(c=l)+i[g+232>>2]|0)^L,(y=c>>>0>y>>>0?I+1|0:I)^o,32),I=d+(c=p)|0,d=I=G>>>0>(J=G+o|0)>>>0?I+1|0:I,P=e=ug(R^(G=J),I^e,24),T=I=p,J=I,R=o,I=y+rA|0,I=(I=(o=$)>>>0>(e=o+l|0)>>>0?I+1|0:I)+J|0,L=y=P+(o=e)|0,o=ug(R^y,(J=y>>>0>>0?I+1|0:I)^c,16),I=d+(e=p)|0,d=y=G+o|0,P=ug(y^P,(l=y>>>0>>0?I+1|0:I)^T,63),y=p,T=u,I=H+B|0,I=(I=(G=K)>>>0>(u=G+z|0)>>>0?I+1|0:I)+(c=m)|0,u=ug((m=G=T+(H=u)|0)^q,(G=G>>>0>>0?I+1|0:I)^v,32),I=S+(H=p)|0,S=ug(T^(v=F+u|0),(I=F>>>0>v>>>0?I+1|0:I)^c,24),F=I,z=i[g+164>>2],q=S,R=v,I=G+(c=p)|0,G=S=m+S|0,I=(I=S>>>0>>0?I+1|0:I)+(T=z)|0,S=H,H=I=(m=(v=i[g+160>>2])+G|0)>>>0>>0?I+1|0:I,iA=ug(m^u,S^I,16),I=(I=F)+(F=p)|0,S=I=(G=R+(S=iA)|0)>>>0>>0?I+1|0:I,q=ug(q^G,I^c,63),c=p,u=f,R=N,I=f+oA|0,I=Y+((N=x)>>>0>(T=R+N|0)>>>0?I+1|0:I)|0,_=ug((N=f=w+T|0)^BA,(f=f>>>0>>0?I+1|0:I)^_,32),I=D+(w=p)|0,D=I=(Y=M+_|0)>>>0>>0?I+1|0:I,T=u=ug(R^(M=Y),I^u,24),BA=I=p,Y=I,R=_,I=f+Q|0,I=(I=(u=(_=QA)+N|0)>>>0<_>>>0?I+1|0:I)+Y|0,Y=f=T+u|0,N=ug(R^f,(_=w)^(w=f>>>0>>0?I+1|0:I),16),I=D+(_=p)|0,I=(f=M+N|0)>>>0>>0?I+1|0:I,M=f,D=I,u=ug(f^T,I^BA,63),T=I=p,f=I,R=o,I=b+oA|0,b=o=x+AA|0,I=(I=o>>>0>>0?I+1|0:I)+f|0,e=ug(R^(o=x=o+u|0),(b=b>>>0>o>>>0?I+1|0:I)^e,32),I=S+(f=p)|0,oA=x=G+e|0,S=I=G>>>0>x>>>0?I+1|0:I,R=x=ug(u^x,T^I,24),I=(G=p)+b|0,I=(I=(o=o+x|0)>>>0>>0?I+1|0:I)+IA|0,T=ug((u=x=o+r|0)^e,(o=r>>>0>u>>>0?I+1|0:I)^f,16),I=(I=S)+(S=p)|0,oA=x=(b=T)+oA|0,f=ug(R^x,(b=b>>>0>x>>>0?I+1|0:I)^G,63),G=p,x=s,R=t,I=s+J|0,s=r=t+L|0,I=(I=r>>>0>>0?I+1|0:I)+(e=i[g+196>>2])|0,e=ug((r=t=r+i[g+192>>2]|0)^iA,(t=r>>>0>>0?I+1|0:I)^F,32),I=D+(s=p)|0,D=x,x=I=(F=M+e|0)>>>0>>0?I+1|0:I,R=I=ug(R^F,D^I,24),M=I,D=I+r|0,I=(J=p)+t|0,I=z+(D>>>0>>0?I+1|0:I)|0,z=t=D+v|0,L=ug(t^e,(r=s)^(s=t>>>0>>0?I+1|0:I),16),I=x+(M=p)|0,I=(t=F+L|0)>>>0>>0?I+1|0:I,F=t,r=J,J=I,r=ug(R^t,r^I,63),x=p,I=rA+(t=y)|0,I=H+((D=$)>>>0>(v=D+P|0)>>>0?I+1|0:I)|0,D=y=m+v|0,v=ug(y^N,(m=y>>>0>>0?I+1|0:I)^_,32),I=a+(y=p)|0,a=t,t=I=(H=U+v|0)>>>0>>0?I+1|0:I,a=_=ug(H^P,a^I,24),e=I=p,_=v,v=(I=D)+(D=Z)|0,I=m+yA|0,I=(I=D>>>0>v>>>0?I+1|0:I)+e|0,U=m=(D=v)+a|0,N=ug(_^m,(D=m>>>0>>0?I+1|0:I)^y,16),I=t+(v=p)|0,t=ug((P=m=H+N|0)^a,(m=m>>>0>>0?I+1|0:I)^e,63),y=p,H=c,I=c+B|0,I=w+((a=(_=K)+q|0)>>>0<_>>>0?I+1|0:I)|0,I=(c=Y+a|0)>>>0>>0?I+1|0:I,Y=c,c=I,_=ug(Y^O,I^k,32),I=l+(k=p)|0,I=(w=d+_|0)>>>0>>0?I+1|0:I,d=w,a=H,H=I,a=ug(w^q,a^I,24),l=I=p,w=I,e=_,_=(I=Y)+(Y=QA)|0,I=c+Q|0,I=(I=Y>>>0>_>>>0?I+1|0:I)+w|0,q=c=_+a|0,_=ug(e^c,(Y=k)^(k=c>>>0<_>>>0?I+1|0:I),16),I=H+(w=p)|0,I=(c=d+_|0)>>>0>>0?I+1|0:I,d=c,H=I,e=ug(c^a,I^l,63),c=p,a=r,l=_,I=o+cA|0,I=(I=(r=(_=V)+u|0)>>>0<_>>>0?I+1|0:I)+(Y=x)|0,_=o=a+r|0,x=I=o>>>0>>0?I+1|0:I,r=ug(l^o,I^w,32),I=(I=m)+(m=p)|0,o=Y,Y=I=r>>>0>(w=r+P|0)>>>0?I+1|0:I,I=ug(a^w,o^I,24),l=i[g+220>>2],a=I,P=r,o=_,_=I,r=o+I|0,I=(o=p)+x|0,I=(I=r>>>0<_>>>0?I+1|0:I)+l|0,P=ug(P^(u=x=r+i[g+216>>2]|0),(_=r>>>0>u>>>0?I+1|0:I)^m,16),I=Y+(r=p)|0,Y=I=w>>>0>(x=w+P|0)>>>0?I+1|0:I,x=ug(a^(w=x),I^o,63),m=p,R=t,I=(o=y)+s|0,y=a=t+z|0,I=(I=a>>>0>>0?I+1|0:I)+(l=i[g+204>>2])|0,S=ug((a=t=a+i[g+200>>2]|0)^T,(t=a>>>0>>0?I+1|0:I)^S,32),I=H+(y=p)|0,d=I=(s=d+S|0)>>>0>>0?I+1|0:I,l=o=ug(R^s,I^o,24),T=I=p,H=I,R=S,I=t+eA|0,I=(I=(o=(S=W)+a|0)>>>0>>0?I+1|0:I)+H|0,z=t=l+o|0,BA=ug(R^t,(H=t>>>0>>0?I+1|0:I)^y,16),I=d+(S=p)|0,I=(t=s+BA|0)>>>0>>0?I+1|0:I,s=t,d=I,t=ug(t^l,I^T,63),y=p,R=e,I=(o=c)+D|0,I=(e=e+U|0)>>>0>>0?I+1|0:I,U=e,I=I+(l=T=i[g+156>>2])|0,l=ug((e=c=(a=i[g+152>>2])+e|0)^L,(c=e>>>0>>0?I+1|0:I)^M,32),I=(I=b)+(b=p)|0,M=I=(U=l+oA|0)>>>0>>0?I+1|0:I,oA=o=ug(R^U,I^o,24),L=I=p,D=I,R=o,I=c+E|0,I=(I=(o=j)>>>0>(e=o+e|0)>>>0?I+1|0:I)+D|0,oA=c=oA+(o=e)|0,IA=ug(c^l,(D=c>>>0>>0?I+1|0:I)^b,16),I=M+(c=p)|0,I=(b=U+IA|0)>>>0>>0?I+1|0:I,U=b,M=I,l=ug(R^b,I^L,63),b=p,R=f,I=(o=G)+k|0,G=e=f+q|0,I=(I=e>>>0>>0?I+1|0:I)+(L=i[g+236>>2])|0,v=ug((e=f=e+i[g+232>>2]|0)^N,(G=e>>>0>>0?I+1|0:I)^v,32),I=J+(k=p)|0,N=f=F+v|0,f=ug(R^f,(I=f>>>0>>0?I+1|0:I)^o,24),J=I,L=i[g+132>>2],q=f,R=N,N=v,I=(F=p)+G|0,I=(I=(o=f+e|0)>>>0>>0?I+1|0:I)+L|0,I=(f=(v=i[g+128>>2])+o|0)>>>0>>0?I+1|0:I,G=f,o=k,k=I,N=ug(N^f,o^I,16),I=(I=J)+(J=p)|0,I=(f=R+(o=N)|0)>>>0>>0?I+1|0:I,o=f,f=F,F=I,q=I=ug(q^o,f^I,63),e=I,u=I+u|0,I=(f=p)+_|0,I=L+(e>>>0>u>>>0?I+1|0:I)|0,u=ug((e=_=u+v|0)^BA,(v=v>>>0>e>>>0?I+1|0:I)^S,32),I=M+(S=p)|0,I=U>>>0>(_=U+u|0)>>>0?I+1|0:I,U=_,_=f,f=I,q=_=ug(q^U,_^I,24),L=I=p,M=I,R=_,I=v+B|0,I=(I=(e=(_=K)+e|0)>>>0<_>>>0?I+1|0:I)+M|0,q=v=q+e|0,BA=ug(v^u,(M=v>>>0>>0?I+1|0:I)^S,16),I=f+(v=p)|0,I=U>>>0>(S=U+BA|0)>>>0?I+1|0:I,U=S,S=I,u=ug(R^U,I^L,63),f=p,_=m,R=x,I=m+H|0,m=e=x+z|0,I=(I=e>>>0>>0?I+1|0:I)+(L=i[g+148>>2])|0,z=ug((e=x=e+i[g+144>>2]|0)^IA,(x=m>>>0>e>>>0?I+1|0:I)^c,32),I=F+(m=p)|0,H=I=(c=o+z|0)>>>0>>0?I+1|0:I,L=I=ug(R^c,I^_,24),o=I,_=I+e|0,I=(F=p)+x|0,I=T+(o>>>0>_>>>0?I+1|0:I)|0,T=x=a+_|0,z=ug(x^z,(o=a>>>0>x>>>0?I+1|0:I)^m,16),I=H+(_=p)|0,m=ug(L^(H=x=c+z|0),(a=F)^(F=c>>>0>H>>>0?I+1|0:I),63),c=p,x=y,L=t,I=y+D|0,y=a=t+oA|0,I=(I=a>>>0>>0?I+1|0:I)+(e=i[g+164>>2])|0,e=ug((a=t=a+i[g+160>>2]|0)^N,(t=a>>>0>>0?I+1|0:I)^J,32),I=Y+(y=p)|0,Y=x,x=I=w>>>0>(J=w+e|0)>>>0?I+1|0:I,w=ug(L^J,Y^I,24),N=I=p,D=I,R=w,I=t+Q|0,I=(I=(w=QA)>>>0>(Y=w+a|0)>>>0?I+1|0:I)+D|0,oA=t=R+(w=Y)|0,L=ug(t^e,(D=t>>>0>>0?I+1|0:I)^y,16),I=x+(w=p)|0,I=(t=J+L|0)>>>0>>0?I+1|0:I,J=t,Y=I,t=ug(R^t,I^N,63),y=p,x=b,I=b+yA|0,I=k+((a=Z)>>>0>(e=a+l|0)>>>0?I+1|0:I)|0,r=ug((a=b=G+e|0)^P,(b=a>>>0>>0?I+1|0:I)^r,32),I=d+(G=p)|0,e=x,x=I=s>>>0>(k=s+r|0)>>>0?I+1|0:I,e=k=ug((s=k)^l,e^I,24),l=I=p,N=r,I=b+rA|0,I=(I=(r=(k=$)+a|0)>>>0>>0?I+1|0:I)+l|0,d=b=e+r|0,r=ug(N^b,(a=G)^(G=b>>>0>>0?I+1|0:I),16),I=x+(k=p)|0,l=ug((a=b=s+r|0)^e,(b=s>>>0>a>>>0?I+1|0:I)^l,63),x=p,s=c,N=m,P=r,I=c+M|0,I=(I=(r=m+q|0)>>>0>>0?I+1|0:I)+(e=i[g+196>>2])|0,r=ug(P^(M=m=r+i[g+192>>2]|0),(m=r>>>0>m>>>0?I+1|0:I)^k,32),I=Y+(c=p)|0,e=s,s=I=(k=J+r|0)>>>0>>0?I+1|0:I,I=ug(N^k,e^I,24),N=i[g+204>>2],e=I,Y=M,M=I,Y=Y+I|0,I=(J=p)+m|0,I=(I=Y>>>0>>0?I+1|0:I)+N|0,P=m=Y+i[g+200>>2]|0,q=ug(m^r,(M=m>>>0>>0?I+1|0:I)^c,16),I=s+(Y=p)|0,m=ug(e^(s=m=k+q|0),(k=s>>>0>>0?I+1|0:I)^J,63),c=p,J=y,N=t,R=a,I=y+o|0,I=(I=(a=t+T|0)>>>0>>0?I+1|0:I)+(e=IA=i[g+212>>2])|0,a=ug((o=t=(r=i[g+208>>2])+a|0)^BA,(t=t>>>0>>0?I+1|0:I)^v,32),I=(I=b)+(b=p)|0,e=J,J=I=(y=R+a|0)>>>0>>0?I+1|0:I,I=ug(N^y,e^I,24),N=i[g+220>>2],R=I,e=a,a=o,o=I,a=a+I|0,I=(v=p)+t|0,I=(I=a>>>0>>0?I+1|0:I)+N|0,T=t=a+i[g+216>>2]|0,a=ug(e^t,(o=t>>>0>>0?I+1|0:I)^b,16),I=J+(e=p)|0,J=b=y+a|0,b=ug(R^b,(t=v)^(v=y>>>0>b>>>0?I+1|0:I),63),t=p,R=l,I=D+E|0,I=(I=(l=j)>>>0>(N=l+oA|0)>>>0?I+1|0:I)+(y=x)|0,N=ug((x=D=R+(l=N)|0)^z,(D=D>>>0>>0?I+1|0:I)^_,32),I=S+(_=p)|0,I=U>>>0>(l=U+N|0)>>>0?I+1|0:I,U=l,l=y,y=I,l=ug(R^U,l^I,24),S=I=p,R=l,I=D+I|0,I=(I=(l=l+x|0)>>>0>>0?I+1|0:I)+(z=i[g+236>>2])|0,oA=x=(D=l)+i[g+232>>2]|0,z=ug(x^N,(D=D>>>0>x>>>0?I+1|0:I)^_,16),I=y+(_=p)|0,N=ug(R^(y=x=U+z|0),(U=U>>>0>y>>>0?I+1|0:I)^S,63),x=p,S=f,R=u,I=f+eA|0,I=G+((u=(l=W)+u|0)>>>0>>0?I+1|0:I)|0,w=ug((l=f=d+u|0)^L,(f=f>>>0>>0?I+1|0:I)^w,32),I=F+(G=p)|0,H=I=H>>>0>(d=H+w|0)>>>0?I+1|0:I,u=S=ug(R^d,I^S,24),L=I=p,F=I,R=w,I=f+cA|0,I=(I=(w=V)>>>0>(S=w+l|0)>>>0?I+1|0:I)+F|0,F=f=u+(w=S)|0,l=ug(R^f,(l=G)^(G=f>>>0>>0?I+1|0:I),16),I=H+(w=p)|0,I=(f=d+l|0)>>>0>>0?I+1|0:I,d=f,H=I,S=ug(f^u,I^L,63),u=I=p,f=I,L=a,I=M+eA|0,M=a=P+W|0,I=(I=a>>>0>>0?I+1|0:I)+f|0,e=ug(L^(a=W=a+S|0),(W=M>>>0>a>>>0?I+1|0:I)^e,32),I=U+(f=p)|0,U=I=y>>>0>(M=y+e|0)>>>0?I+1|0:I,P=I=ug(S^(y=M),u^I,24),S=I,a=I+a|0,I=(M=p)+W|0,I=IA+(a>>>0>>0?I+1|0:I)|0,u=ug((u=e)^(e=W=a+r|0),(S=r>>>0>e>>>0?I+1|0:I)^f,16),I=U+(r=p)|0,y=ug(P^(U=W=y+u|0),(a=M)^(M=y>>>0>U>>>0?I+1|0:I),63),f=p,W=c,L=m,I=c+o|0,c=a=m+T|0,I=(I=a>>>0>>0?I+1|0:I)+(P=i[g+164>>2])|0,_=ug((a=m=a+i[g+160>>2]|0)^z,(m=c>>>0>a>>>0?I+1|0:I)^_,32),I=H+(c=p)|0,I=(o=d+_|0)>>>0>>0?I+1|0:I,d=o,H=W,W=I,I=ug(L^o,H^I,24),T=i[g+196>>2],L=I,P=_,o=I,_=I+a|0,I=(H=p)+m|0,I=(I=o>>>0>_>>>0?I+1|0:I)+T|0,P=ug(P^(a=m=(o=_)+i[g+192>>2]|0),(_=c)^(c=o>>>0>a>>>0?I+1|0:I),16),I=W+(T=p)|0,I=(m=d+P|0)>>>0>>0?I+1|0:I,d=m,o=H,H=I,o=ug(L^m,o^I,63),W=p,m=t,L=b,I=t+D|0,I=(I=(_=b+oA|0)>>>0>>0?I+1|0:I)+(eA=i[g+204>>2])|0,w=ug((_=b=(t=_)+i[g+200>>2]|0)^l,(b=t>>>0>b>>>0?I+1|0:I)^w,32),I=k+(t=p)|0,I=s>>>0>(D=s+w|0)>>>0?I+1|0:I,s=D,D=m,m=I,l=D=ug(L^s,D^I,24),eA=I=p,k=I,L=D,I=b+cA|0,I=(I=(D=_+V|0)>>>0>>0?I+1|0:I)+k|0,l=ug((_=V=l+D|0)^w,(l=t)^(t=D>>>0>_>>>0?I+1|0:I),16),I=m+(k=p)|0,D=I=s>>>0>(V=s+l|0)>>>0?I+1|0:I,V=ug(L^(s=V),I^eA,63),b=p,I=G+(m=x)|0,G=w=F+N|0,I=(I=w>>>0>>0?I+1|0:I)+(eA=i[g+236>>2])|0,Y=ug((w=x=w+i[g+232>>2]|0)^q,(x=G>>>0>w>>>0?I+1|0:I)^Y,32),I=v+(G=p)|0,v=m,m=I=(F=J+Y|0)>>>0>>0?I+1|0:I,v=ug(F^N,v^I,24),q=I=p,J=I,I=x+yA|0,I=(I=(w=w+Z|0)>>>0>>0?I+1|0:I)+J|0,N=ug((J=Z=w+v|0)^Y,(N=G)^(G=w>>>0>J>>>0?I+1|0:I),16),I=m+(yA=p)|0,w=I=F>>>0>(Z=F+N|0)>>>0?I+1|0:I,x=ug(v^(F=Z),I^q,63),m=p,I=S+B|0,I=(I=(v=e+K|0)>>>0>>0?I+1|0:I)+(Y=W)|0,I=v>>>0>(K=v+o|0)>>>0?I+1|0:I,v=K,K=I,I=E+I|0,j=I=(Y=j+v|0)>>>0>>0?I+1|0:I,e=Y,Y=ug(v^N,K^yA,32),I=D+(v=p)|0,S=ug((D=K=s+Y|0)^o,(K=s>>>0>D>>>0?I+1|0:I)^W,24),I=(o=p)+j|0,I=(s=S)>>>0>(W=e+s|0)>>>0?I+1|0:I,s=W,i[g>>2]=s,i[g+4>>2]=I,Z=I,I=ug(s^Y,I^v,16),Y=W=p,i[g+120>>2]=I,i[g+124>>2]=Y,j=I,D=I+D|0,I=Y+K|0,i[g+80>>2]=D,I=D>>>0>>0?I+1|0:I,i[g+84>>2]=I,hA=g,DA=ug(S^D,I^o,63),i[hA+40>>2]=DA,i[g+44>>2]=p,K=b,o=V,I=c+b|0,I=(I=(j=a+V|0)>>>0>>0?I+1|0:I)+(D=i[g+132>>2])|0,j=I=(V=j+i[g+128>>2]|0)>>>0>>0?I+1|0:I,c=ug(V^u,I^r,32),I=w+(D=p)|0,a=K,K=I=F>>>0>(b=F+c|0)>>>0?I+1|0:I,w=ug(o^(F=b),a^I,24),I=j+(Y=p)|0,I=(b=w+V|0)>>>0>>0?I+1|0:I,V=(j=i[g+144>>2])+b|0,I=i[g+148>>2]+I|0,I=V>>>0>>0?I+1|0:I,i[g+8>>2]=V,i[g+12>>2]=I,I=ug(c^V,I^D,16),b=W=p,i[g+96>>2]=I,i[g+100>>2]=b,V=I,j=I+F|0,I=b+K|0,K=j,i[g+88>>2]=K,I=V>>>0>K>>>0?I+1|0:I,i[g+92>>2]=I,hA=g,DA=ug(w^K,I^Y,63),i[hA+48>>2]=DA,i[g+52>>2]=p,a=$,I=t+m|0,I=(I=(V=_+x|0)>>>0>>0?I+1|0:I)+(j=i[g+220>>2])|0,I=(W=V+i[g+216>>2]|0)>>>0>>0?I+1|0:I,$=W,j=W,V=a+W|0,W=I,I=I+rA|0,I=V>>>0>>0?I+1|0:I,j=V,V=I,a=j,o=x,j=ug(P^$,W^T,32),I=M+(x=p)|0,m=ug(o^(b=W=U+j|0),(W=U>>>0>b>>>0?I+1|0:I)^m,24),I=(c=p)+V|0,V=$=a+(t=m)|0,i[g+16>>2]=V,I=t>>>0>V>>>0?I+1|0:I,i[g+20>>2]=I,I=ug(V^j,I^x,16),K=p,i[g+104>>2]=I,i[g+108>>2]=K,V=I,$=I+b|0,I=W+K|0,W=$,i[g+64>>2]=W,I=V>>>0>W>>>0?I+1|0:I,i[g+68>>2]=I,hA=g,DA=ug(t^W,I^c,63),i[hA+56>>2]=DA,i[g+60>>2]=p,I=f+Q|0,I=(I=(V=y+QA|0)>>>0>>0?I+1|0:I)+G|0,QA=I=J>>>0>(V=J+V|0)>>>0?I+1|0:I,x=ug(V^l,I^k,32),I=H+(b=p)|0,K=I=d>>>0>($=d+x|0)>>>0?I+1|0:I,m=ug($^y,f^I,24),I=QA+(t=p)|0,I=V>>>0>(j=m+V|0)>>>0?I+1|0:I,V=(QA=i[g+152>>2])+j|0,I=i[g+156>>2]+I|0,I=V>>>0>>0?I+1|0:I,i[g+24>>2]=V,i[g+28>>2]=I,I=ug(x^V,I^b,16),i[g+112>>2]=I,QA=p,i[g+116>>2]=QA,V=I+$|0,I=K+QA|0,K=V,i[g+72>>2]=K,I=K>>>0<$>>>0?I+1|0:I,i[g+76>>2]=I,hA=g,DA=ug(m^K,I^t,63),i[hA+32>>2]=DA,i[g+36>>2]=p,I=i[g+68>>2]^(n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24)^Z,K=i[g+64>>2]^(n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24)^s,C[0|A]=K,C[A+1|0]=K>>>8,C[A+2|0]=K>>>16,C[A+3|0]=K>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,Z=1;I=(K=Z<<3)+A|0,W=K=g+K|0,V=i[K>>2]^(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24),QA=i[(K=K- -64|0)>>2],K=i[K+4>>2]^i[W+4>>2]^(n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24),W=V^QA,C[0|I]=W,C[I+1|0]=W>>>8,C[I+2|0]=W>>>16,C[I+3|0]=W>>>24,C[I+4|0]=K,C[I+5|0]=K>>>8,C[I+6|0]=K>>>16,C[I+7|0]=K>>>24,8!=(0|(Z=Z+1|0)););h=g+256|0}function F(A,I,g,B){var Q=0,C=0,E=0,n=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0;for(function(A,I){for(var g=0,B=0,Q=0,C=0,E=0;C=Q=(B=g<<3)+A|0,E=dA(I+B|0),i[C>>2]=E,i[Q+4>>2]=p,16!=(0|(g=g+1|0)););}(g,I),I=X(B,A,64),o=i[g>>2],f=i[g+4>>2],B=0;;){if(Q=ug(l=i[(E=I)+32>>2],t=i[E+36>>2],14),s=p,Q=ug(l,t,18)^Q,D=p^s,C=o,o=ug(l,t,41)^Q,Q=(p^D)+f|0,Q=o>>>0>(s=C+o|0)>>>0?Q+1|0:Q,o=s,y=i[E+48>>2],o=(D=i[(f=34784+(L=B<<3)|0)>>2])+o|0,Q=i[f+4>>2]+Q|0,Q=o>>>0>>0?Q+1|0:Q,o=(f=y^((k=i[E+40>>2])^y)&l)+o|0,Q=(((C=i[E+52>>2])^(u=i[E+44>>2]))&t^C)+Q|0,Q=o>>>0>>0?Q+1|0:Q,s=(a=o)+(o=i[E+56>>2])|0,Q=i[E+60>>2]+Q|0,Q=o>>>0>s>>>0?Q+1|0:Q,f=s+(D=i[E+24>>2])|0,o=Q,Q=Q+i[E+28>>2]|0,Q=f>>>0>>0?Q+1|0:Q,D=f,c=Q,i[E+24>>2]=f,i[E+28>>2]=Q,Q=ug(F=i[E>>2],f=i[E+4>>2],28),h=p,Q=ug(F,f,34)^Q,n=p^h,h=s+(ug(F,f,39)^Q)|0,Q=o+(p^n)|0,Q=s>>>0>h>>>0?Q+1|0:Q,s=(a=F&((n=i[E+16>>2])|(r=i[E+8>>2]))|n&r)+h|0,Q=(f&((h=i[E+20>>2])|(o=i[E+12>>2]))|o&h)+Q|0,s=Q=a>>>0>(e=s)>>>0?Q+1|0:Q,i[E+56>>2]=e,i[E+60>>2]=Q,Q=ug(D,c,14),a=p,d=ug(D,c,18)^Q,a^=p,w=n,Q=((t^u)&c^u)+C|0,Q=(n=(l^k)&D^k)>>>0>(y=n+y|0)>>>0?Q+1|0:Q,C=ug(D,c,41)^d,Q=(p^a)+Q|0,Q=C>>>0>(y=C+y|0)>>>0?Q+1|0:Q,y=(a=i[(n=d=(C=(1|B)<<3)+g|0)>>2])+y|0,Q=i[n+4>>2]+Q|0,Q=a>>>0>y>>>0?Q+1|0:Q,y=(n=i[(C=C+34784|0)>>2])+y|0,Q=i[C+4>>2]+Q|0,n=Q=n>>>0>y>>>0?Q+1|0:Q,Q=Q+h|0,h=y=w+(C=a=y)|0,C=Q=C>>>0>y>>>0?Q+1|0:Q,i[E+16>>2]=y,i[E+20>>2]=Q,y=E,Q=ug(e,s,28),E=p,G=ug(e,s,34)^Q,H=p^E,E=(Q=a)+(a=(r|F)&e|r&F)|0,Q=((o|f)&s|o&f)+n|0,Q=E>>>0>>0?Q+1|0:Q,n=ug(e,s,39)^G,Q=(p^H)+Q|0,G=E=n+E|0,E=Q=E>>>0>>0?Q+1|0:Q,i[y+48>>2]=G,i[y+52>>2]=Q,a=y,Q=ug(h,C,14),y=p,n=ug(h,C,18)^Q,H=p^y,w=r,Q=((t^c)&C^t)+u|0,Q=(r=(D^l)&h^l)>>>0>(y=r+k|0)>>>0?Q+1|0:Q,n=ug(h,C,41)^n,Q=(p^H)+Q|0,Q=n>>>0>(y=n+y|0)>>>0?Q+1|0:Q,y=(k=i[(r=U=(n=(2|B)<<3)+g|0)>>2])+y|0,Q=i[r+4>>2]+Q|0,Q=y>>>0>>0?Q+1|0:Q,y=(r=i[(n=n+34784|0)>>2])+y|0,Q=i[n+4>>2]+Q|0,Q=r>>>0>y>>>0?Q+1|0:Q,y=w+(n=r=y)|0,w=o,o=Q,Q=w+Q|0,n=Q=n>>>0>y>>>0?Q+1|0:Q,i[a+8>>2]=y,i[a+12>>2]=Q,Q=ug(G,E,28),k=p,u=ug(G,E,34)^Q,k^=p,Q=((f|s)&E|f&s)+o|0,Q=(r=(H=(e|F)&G|e&F)+r|0)>>>0>>0?Q+1|0:Q,o=r,r=ug(G,E,39)^u,Q=(p^k)+Q|0,k=o=o+r|0,o=Q=o>>>0>>0?Q+1|0:Q,i[a+40>>2]=k,i[a+44>>2]=Q,r=a,Q=ug(y,n,14),a=p,u=ug(y,n,18)^Q,H=p^a,w=F,Q=(c^(C^c)&n)+t|0,Q=(a=(F=D^(h^D)&y)+l|0)>>>0>>0?Q+1|0:Q,t=a,a=ug(y,n,41)^u,Q=(p^H)+Q|0,Q=a>>>0>(t=t+a|0)>>>0?Q+1|0:Q,t=(u=i[(l=F=(a=(3|B)<<3)+g|0)>>2])+t|0,Q=i[l+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,t=(l=i[(a=a+34784|0)>>2])+t|0,Q=i[a+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,l=t,t=w+(a=t)|0,w=f,f=Q,Q=w+Q|0,a=Q=a>>>0>t>>>0?Q+1|0:Q,i[r>>2]=t,i[r+4>>2]=Q,Q=ug(k,o,28),u=p,H=ug(k,o,34)^Q,u^=p,Q=((E|s)&o|E&s)+f|0,Q=(l=(v=(e|G)&k|e&G)+l|0)>>>0>>0?Q+1|0:Q,f=l,l=ug(k,o,39)^H,Q=(p^u)+Q|0,Q=(f=f+l|0)>>>0>>0?Q+1|0:Q,l=f,f=Q,i[r+32>>2]=l,i[r+36>>2]=Q,Q=ug(t,a,14),u=p,H=ug(t,a,18)^Q,u^=p,w=e,Q=c+(C^(C^n)&a)|0,Q=(e=D+(h^(y^h)&t)|0)>>>0>>0?Q+1|0:Q,c=ug(t,a,41)^H,Q=(p^u)+Q|0,Q=c>>>0>(D=c+e|0)>>>0?Q+1|0:Q,D=(u=i[(e=S=(c=(4|B)<<3)+g|0)>>2])+D|0,Q=i[e+4>>2]+Q|0,Q=D>>>0>>0?Q+1|0:Q,D=(e=i[(c=c+34784|0)>>2])+D|0,Q=i[c+4>>2]+Q|0,c=s,s=Q=e>>>0>D>>>0?Q+1|0:Q,Q=c+Q|0,c=Q=(e=D)>>>0>(D=w+e|0)>>>0?Q+1|0:Q,i[r+56>>2]=D,i[r+60>>2]=Q,Q=ug(l,f,28),u=p,H=ug(l,f,34)^Q,u^=p,Q=((E|o)&f|E&o)+s|0,Q=(e=(v=(k|G)&l|k&G)+e|0)>>>0>>0?Q+1|0:Q,s=e,e=ug(l,f,39)^H,Q=(p^u)+Q|0,u=s=s+e|0,s=Q=e>>>0>s>>>0?Q+1|0:Q,i[r+24>>2]=u,i[r+28>>2]=Q,Q=ug(D,c,14),e=p,H=ug(D,c,18)^Q,v=p^e,w=G,Q=C+(n^(n^a)&c)|0,Q=(e=h+(y^(t^y)&D)|0)>>>0>>0?Q+1|0:Q,C=ug(D,c,41)^H,Q=(p^v)+Q|0,Q=C>>>0>(h=C+e|0)>>>0?Q+1|0:Q,h=(H=i[(e=G=(C=(5|B)<<3)+g|0)>>2])+h|0,Q=i[e+4>>2]+Q|0,Q=h>>>0>>0?Q+1|0:Q,h=(e=i[(C=C+34784|0)>>2])+h|0,Q=i[C+4>>2]+Q|0,Q=e>>>0>h>>>0?Q+1|0:Q,h=w+(C=e=h)|0,w=E,E=Q,Q=w+Q|0,C=Q=C>>>0>h>>>0?Q+1|0:Q,i[r+48>>2]=h,i[r+52>>2]=Q,Q=ug(u,s,28),H=p,v=ug(u,s,34)^Q,H^=p,Q=((o|f)&s|o&f)+E|0,Q=(e=(_=(l|k)&u|l&k)+e|0)>>>0<_>>>0?Q+1|0:Q,E=e,e=ug(u,s,39)^v,Q=(p^H)+Q|0,v=E=E+e|0,E=Q=E>>>0>>0?Q+1|0:Q,i[r+16>>2]=v,i[r+20>>2]=Q,Q=ug(h,C,14),e=p,H=ug(h,C,18)^Q,_=p^e,w=k,Q=n+(a^(a^c)&C)|0,Q=(e=y+(t^(t^D)&h)|0)>>>0>>0?Q+1|0:Q,n=ug(h,C,41)^H,Q=(p^_)+Q|0,Q=n>>>0>(y=n+e|0)>>>0?Q+1|0:Q,y=(k=i[(e=R=(n=(6|B)<<3)+g|0)>>2])+y|0,Q=i[e+4>>2]+Q|0,Q=y>>>0>>0?Q+1|0:Q,y=(e=i[(n=n+34784|0)>>2])+y|0,Q=i[n+4>>2]+Q|0,Q=e>>>0>y>>>0?Q+1|0:Q,y=w+(n=e=y)|0,w=o,o=Q,Q=w+Q|0,n=Q=n>>>0>y>>>0?Q+1|0:Q,i[r+40>>2]=y,i[r+44>>2]=Q,Q=ug(v,E,28),k=p,H=ug(v,E,34)^Q,k^=p,Q=((f|s)&E|f&s)+o|0,Q=(e=(_=(u|l)&v|u&l)+e|0)>>>0<_>>>0?Q+1|0:Q,o=e,e=ug(v,E,39)^H,Q=(p^k)+Q|0,_=o=o+e|0,o=Q=o>>>0>>0?Q+1|0:Q,i[r+8>>2]=_,i[r+12>>2]=Q,Q=ug(y,n,14),e=p,k=ug(y,n,18)^Q,H=p^e,w=l,Q=a+(c^(C^c)&n)|0,Q=(e=t+(D^(h^D)&y)|0)>>>0>>0?Q+1|0:Q,a=ug(y,n,41)^k,Q=(p^H)+Q|0,Q=a>>>0>(t=a+e|0)>>>0?Q+1|0:Q,t=(l=i[(e=k=(a=(7|B)<<3)+g|0)>>2])+t|0,Q=i[e+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,t=(e=i[(a=a+34784|0)>>2])+t|0,Q=i[a+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,t=w+(a=e=t)|0,w=f,f=Q,Q=w+Q|0,a=Q=a>>>0>t>>>0?Q+1|0:Q,i[r+32>>2]=t,i[r+36>>2]=Q,Q=ug(_,o,28),l=p,H=ug(_,o,34)^Q,l^=p,Q=((E|s)&o|E&s)+f|0,Q=(e=(w=(u|v)&_|u&v)+e|0)>>>0>>0?Q+1|0:Q,f=e,e=ug(_,o,39)^H,Q=(p^l)+Q|0,w=f=f+e|0,f=Q=e>>>0>f>>>0?Q+1|0:Q,i[r>>2]=w,i[r+4>>2]=Q,e=r,Q=ug(t,a,14),r=p,l=ug(t,a,18)^Q,H=p^r,Q=c+(C^(C^n)&a)|0,Q=(r=D+(h^(y^h)&t)|0)>>>0>>0?Q+1|0:Q,c=ug(t,a,41)^l,Q=(p^H)+Q|0,Q=c>>>0>(D=c+r|0)>>>0?Q+1|0:Q,D=(l=i[(r=H=(c=(8|B)<<3)+g|0)>>2])+D|0,Q=i[r+4>>2]+Q|0,Q=D>>>0>>0?Q+1|0:Q,D=(r=i[(c=c+34784|0)>>2])+D|0,Q=i[c+4>>2]+Q|0,Q=r>>>0>D>>>0?Q+1|0:Q,l=D,r=s,s=Q,Q=r+Q|0,r=Q=(c=D)>>>0>(D=c+u|0)>>>0?Q+1|0:Q,i[e+24>>2]=D,i[e+28>>2]=Q,c=e,Q=ug(w,f,28),e=p,u=ug(w,f,34)^Q,Y=p^e,e=(Q=l)+(l=(_|v)&w|_&v)|0,Q=((E|o)&f|E&o)+s|0,Q=e>>>0>>0?Q+1|0:Q,s=e,e=ug(w,f,39)^u,Q=(p^Y)+Q|0,Y=s=s+e|0,s=Q=e>>>0>s>>>0?Q+1|0:Q,i[c+56>>2]=Y,i[c+60>>2]=Q,Q=ug(D,r,14),e=p,l=ug(D,r,18)^Q,u=p^e,Q=C+(n^(n^a)&r)|0,Q=(e=h+(y^(t^y)&D)|0)>>>0>>0?Q+1|0:Q,C=ug(D,r,41)^l,Q=(p^u)+Q|0,Q=C>>>0>(h=C+e|0)>>>0?Q+1|0:Q,h=(u=i[(e=l=(C=(9|B)<<3)+g|0)>>2])+h|0,Q=i[e+4>>2]+Q|0,Q=h>>>0>>0?Q+1|0:Q,h=(e=i[(C=C+34784|0)>>2])+h|0,Q=i[C+4>>2]+Q|0,Q=e>>>0>h>>>0?Q+1|0:Q,e=E,E=Q,Q=e+Q|0,e=Q=(C=h)>>>0>(h=C+v|0)>>>0?Q+1|0:Q,i[c+16>>2]=h,i[c+20>>2]=Q,Q=ug(Y,s,28),u=p,v=ug(Y,s,34)^Q,u^=p,Q=((o|f)&s|o&f)+E|0,Q=(C=(b=(w|_)&Y|w&_)+C|0)>>>0>>0?Q+1|0:Q,E=C,C=ug(Y,s,39)^v,Q=(p^u)+Q|0,b=E=E+C|0,E=Q=E>>>0>>0?Q+1|0:Q,i[c+48>>2]=b,i[c+52>>2]=Q,Q=ug(h,e,14),C=p,u=ug(h,e,18)^Q,v=p^C,Q=n+(a^(r^a)&e)|0,Q=(C=y+(t^(t^D)&h)|0)>>>0>>0?Q+1|0:Q,n=C,C=ug(h,e,41)^u,Q=(p^v)+Q|0,Q=C>>>0>(y=n+C|0)>>>0?Q+1|0:Q,y=(u=i[(n=v=(C=(10|B)<<3)+g|0)>>2])+y|0,Q=i[n+4>>2]+Q|0,Q=y>>>0>>0?Q+1|0:Q,y=(n=i[(C=C+34784|0)>>2])+y|0,Q=i[C+4>>2]+Q|0,Q=n>>>0>y>>>0?Q+1|0:Q,u=y,n=o,o=Q,Q=n+Q|0,n=Q=(C=y)>>>0>(y=C+_|0)>>>0?Q+1|0:Q,i[c+8>>2]=y,i[c+12>>2]=Q,C=c,Q=ug(b,E,28),c=p,_=ug(b,E,34)^Q,N=p^c,c=(Q=u)+(u=(w|Y)&b|w&Y)|0,Q=((f|s)&E|f&s)+o|0,Q=c>>>0>>0?Q+1|0:Q,o=c,c=ug(b,E,39)^_,Q=(p^N)+Q|0,c=Q=(o=o+c|0)>>>0>>0?Q+1|0:Q,i[C+40>>2]=o,i[C+44>>2]=Q,Q=ug(y,n,14),u=p,_=ug(y,n,18)^Q,N=p^u,m=w,Q=a+(r^(r^e)&n)|0,Q=(u=t+(D^(h^D)&y)|0)>>>0>>0?Q+1|0:Q,a=ug(y,n,41)^_,Q=(p^N)+Q|0,Q=a>>>0>(t=a+u|0)>>>0?Q+1|0:Q,t=(w=i[(u=(a=(11|B)<<3)+g|0)>>2])+t|0,Q=i[u+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,t=(_=i[(a=a+34784|0)>>2])+t|0,Q=i[a+4>>2]+Q|0,Q=t>>>0<_>>>0?Q+1|0:Q,w=t,_=f,f=Q,Q=_+Q|0,a=Q=(a=t)>>>0>(t=m+a|0)>>>0?Q+1|0:Q,i[C>>2]=t,i[C+4>>2]=Q,_=C,Q=ug(o,c,28),C=p,N=ug(o,c,34)^Q,M=p^C,C=(Q=w)+(w=(Y|b)&o|Y&b)|0,Q=((E|s)&c|E&s)+f|0,Q=C>>>0>>0?Q+1|0:Q,f=C,C=ug(o,c,39)^N,Q=(p^M)+Q|0,C=Q=C>>>0>(f=f+C|0)>>>0?Q+1|0:Q,i[_+32>>2]=f,i[_+36>>2]=Q,w=_,Q=ug(t,a,14),_=p,N=ug(t,a,18)^Q,M=p^_,m=Y,Q=r+(e^(n^e)&a)|0,Q=(_=D+(h^(y^h)&t)|0)>>>0>>0?Q+1|0:Q,r=ug(t,a,41)^N,Q=(p^M)+Q|0,Q=r>>>0>(D=r+_|0)>>>0?Q+1|0:Q,D=(N=i[(Y=_=(r=(12|B)<<3)+g|0)>>2])+D|0,Q=i[Y+4>>2]+Q|0,Q=D>>>0>>0?Q+1|0:Q,D=(Y=i[(r=r+34784|0)>>2])+D|0,Q=i[r+4>>2]+Q|0,Q=D>>>0>>0?Q+1|0:Q,Y=D,D=m+(r=D)|0,m=s,s=Q,Q=m+Q|0,N=D,D=Q=r>>>0>D>>>0?Q+1|0:Q,i[w+56>>2]=N,i[w+60>>2]=Q,r=w,Q=ug(f,C,28),w=p,M=ug(f,C,34)^Q,m=p^w,w=(Q=Y)+(Y=(o|b)&f|o&b)|0,Q=((E|c)&C|E&c)+s|0,Q=w>>>0>>0?Q+1|0:Q,s=w,w=ug(f,C,39)^M,Q=(p^m)+Q|0,Y=s=s+w|0,s=Q=s>>>0>>0?Q+1|0:Q,i[r+24>>2]=Y,i[r+28>>2]=Q,w=r,Q=ug(N,D,14),r=p,M=ug(N,D,18)^Q,m=p^r,P=b,Q=e+(n^(n^a)&D)|0,Q=(r=h+(y^(t^y)&N)|0)>>>0>>0?Q+1|0:Q,e=r,r=ug(N,D,41)^M,Q=(p^m)+Q|0,Q=r>>>0>(h=e+r|0)>>>0?Q+1|0:Q,r=(r=h)+(M=i[(h=(e=(13|B)<<3)+g|0)>>2])|0,Q=i[h+4>>2]+Q|0,Q=r>>>0>>0?Q+1|0:Q,r=(b=i[(e=e+34784|0)>>2])+r|0,Q=i[e+4>>2]+Q|0,Q=r>>>0>>0?Q+1|0:Q,b=r,e=r,m=E,E=Q,Q=m+Q|0,M=r=P+r|0,r=Q=r>>>0>>0?Q+1|0:Q,i[w+48>>2]=M,i[w+52>>2]=Q,e=w,Q=ug(Y,s,28),w=p,m=ug(Y,s,34)^Q,P=p^w,w=(Q=b)+(b=(o|f)&Y|o&f)|0,Q=((C|c)&s|C&c)+E|0,Q=w>>>0>>0?Q+1|0:Q,E=w,w=ug(Y,s,39)^m,Q=(p^P)+Q|0,b=E=E+w|0,E=Q=E>>>0>>0?Q+1|0:Q,i[e+16>>2]=b,i[e+20>>2]=Q,Q=ug(M,r,14),w=p,m=ug(M,r,18)^Q,P=p^w,Q=n+(a^(a^D)&r)|0,Q=(w=y+(t^(t^N)&M)|0)>>>0>>0?Q+1|0:Q,n=ug(M,r,41)^m,Q=(p^P)+Q|0,Q=n>>>0>(y=n+w|0)>>>0?Q+1|0:Q,n=(n=y)+(P=i[(y=(w=(14|B)<<3)+g|0)>>2])|0,Q=i[y+4>>2]+Q|0,Q=n>>>0

>>0?Q+1|0:Q,n=(m=i[(w=w+34784|0)>>2])+n|0,Q=i[w+4>>2]+Q|0,P=n,w=Q=n>>>0>>0?Q+1|0:Q,Q=c+Q|0,m=n=o+n|0,o=Q=n>>>0>>0?Q+1|0:Q,i[e+40>>2]=n,i[e+44>>2]=Q,n=e,Q=ug(b,E,28),c=p,e=ug(b,E,34)^Q,J=p^c,c=(Q=P)+(P=(f|Y)&b|f&Y)|0,Q=((C|s)&E|C&s)+w|0,Q=c>>>0

>>0?Q+1|0:Q,e=ug(b,E,39)^e,Q=(p^J)+Q|0,Q=e>>>0>(c=e+c|0)>>>0?Q+1|0:Q,e=c,c=Q,i[n+8>>2]=e,i[n+12>>2]=Q,Q=ug(m,o,14),n=p,P=ug(m,o,18)^Q,J=p^n,Q=a+(D^(r^D)&o)|0,Q=(w=t+(N^(N^M)&m)|0)>>>0>>0?Q+1|0:Q,D=ug(m,o,41)^P,Q=(p^J)+Q|0,Q=(o=D+w|0)>>>0>>0?Q+1|0:Q,o=(r=i[(a=D=(t=(15|B)<<3)+g|0)>>2])+o|0,Q=i[a+4>>2]+Q|0,Q=o>>>0>>0?Q+1|0:Q,o=(a=i[(t=t+34784|0)>>2])+o|0,Q=i[t+4>>2]+Q|0,Q=o>>>0>>0?Q+1|0:Q,t=f+(a=o)|0,o=Q,Q=C+Q|0,i[(n=I)+32>>2]=t,i[n+36>>2]=t>>>0>>0?Q+1|0:Q,Q=ug(e,c,28),f=p,C=ug(e,c,34)^Q,n=p^f,Q=((E|s)&c|E&s)+o|0,s=(t=(E=a)+(a=(Y|b)&e|Y&b)|0)+(E=ug(e,c,39)^C)|0,Q=(p^n)+(a>>>0>t>>>0?Q+1|0:Q)|0,i[(f=I)>>2]=s,i[f+4>>2]=E>>>0>s>>>0?Q+1|0:Q,64==(0|B)){for(;s=g=(B=x<<3)+A|0,B=(E=i[(Q=I+B|0)>>2])+i[s>>2]|0,Q=i[s+4>>2]+i[Q+4>>2]|0,i[s>>2]=B,i[s+4>>2]=B>>>0>>0?Q+1|0:Q,8!=(0|(x=x+1|0)););break}c=((B=B+16|0)<<3)+g|0,Y=s=i[y+4>>2],Q=s>>>6|0,s=((63&s)<<26|(b=i[y>>2])>>>6)^ug(b,s,19),Q^=p,s=(C=ug(b,Y,61)^s)+(E=w=i[l>>2])|0,Q=(f=i[l+4>>2])+(p^Q)|0,Q=E>>>0>s>>>0?Q+1|0:Q,s=(o=i[(E=g+L|0)>>2])+s|0,Q=i[E+4>>2]+Q|0,s=o>>>0>(C=s)>>>0?Q+1|0:Q,o=E=i[d+4>>2],Q=E>>>7|0,E=((127&E)<<25|(t=i[d>>2])>>>7)^ug(t,E,1),Q^=p,a=C,C=ug(t,o,8)^E,Q=(p^Q)+s|0,n=E=a+C|0,E=Q=E>>>0>>0?Q+1|0:Q,i[c>>2]=n,i[c+4>>2]=Q,Q=i[(c=d)+76>>2]+o|0,C=t,o=(t=i[c+72>>2])>>>0>(C=s=C+t|0)>>>0?Q+1|0:Q,s=t=i[D+4>>2],Q=t>>>6|0,t=((63&t)<<26|(e=i[D>>2])>>>6)^ug(e,t,19),Q^=p,a=C,C=ug(e,s,61)^t,Q=(p^Q)+o|0,o=C>>>0>(a=t=a+C|0)>>>0?Q+1|0:Q,t=C=i[c+12>>2],Q=C>>>7|0,C=((127&C)<<25|(r=i[c+8>>2])>>>7)^ug(r,C,1),Q^=p,d=a,a=ug(r,t,8)^C,Q=(p^Q)+o|0,Q=(C=d+a|0)>>>0>>0?Q+1|0:Q,a=C,o=Q,i[c+128>>2]=C,i[c+132>>2]=Q,c=U,C=t,Q=ug(n,E,19),U=p,t=Q,Q=E>>>6|0,E=(E=ug(n,E,61)^t^((63&E)<<26|n>>>6))+(n=d=i[u>>2])|0,Q=(t=i[u+4>>2])+(p^Q^U)|0,Q=E>>>0>>0?Q+1|0:Q,n=E,Q=Q+C|0,r=E=E+r|0,E=E>>>0>>0?Q+1|0:Q,n=C=i[F+4>>2],Q=C>>>7|0,C=((127&C)<<25|(U=i[F>>2])>>>7)^ug(U,C,1),Q^=p,m=r,r=ug(U,n,8)^C,Q=(p^Q)+E|0,Q=(C=m+r|0)>>>0>>0?Q+1|0:Q,r=C,E=Q,i[c+128>>2]=C,i[c+132>>2]=Q,c=(Q=U)+(U=i[(C=F)+72>>2])|0,Q=i[C+76>>2]+n|0,n=Q=c>>>0>>0?Q+1|0:Q,Q=ug(a,o,19),U=p,F=c,c=Q,Q=o>>>6|0,c=ug(a,o,61)^c^((63&o)<<26|a>>>6),Q=(p^Q^U)+n|0,U=o=F+c|0,o=o>>>0>>0?Q+1|0:Q,c=n=i[C+12>>2],Q=n>>>7|0,n=((127&n)<<25|(a=i[C+8>>2])>>>7)^ug(a,n,1),Q^=p,F=ug(a,c,8)^n,Q=(p^Q)+o|0,Q=(n=F+U|0)>>>0>>0?Q+1|0:Q,F=n,o=Q,i[C+128>>2]=n,i[C+132>>2]=Q,C=S,n=c,Q=ug(r,E,19),S=p,m=a,a=Q,Q=E>>>6|0,E=(E=ug(r,E,61)^a^((63&E)<<26|r>>>6))+(a=U=i[h>>2])|0,Q=(c=i[h+4>>2])+(p^Q^S)|0,Q=E>>>0>>0?Q+1|0:Q,a=E,Q=Q+n|0,S=E=m+E|0,E=E>>>0>>0?Q+1|0:Q,a=n=i[G+4>>2],Q=n>>>7|0,n=((127&n)<<25|(r=i[G>>2])>>>7)^ug(r,n,1),Q^=p,m=S,S=ug(r,a,8)^n,Q=(p^Q)+E|0,Q=(n=m+S|0)>>>0>>0?Q+1|0:Q,S=n,E=Q,i[C+128>>2]=n,i[C+132>>2]=Q,C=(Q=r)+(r=i[(n=G)+72>>2])|0,Q=i[n+76>>2]+a|0,a=Q=C>>>0>>0?Q+1|0:Q,Q=ug(F,o,19),r=p,G=C,m=Q,Q=(C=o)>>>6|0,C=m^((63&C)<<26|F>>>6)^ug(F,C,61),Q=(p^Q^r)+a|0,o=C>>>0>(r=o=G+C|0)>>>0?Q+1|0:Q,Q=(C=a=i[n+12>>2])>>>7|0,a=((127&C)<<25|(G=i[n+8>>2])>>>7)^ug(G,C,1),Q^=p,F=r,r=ug(G,C,8)^a,Q=(p^Q)+o|0,F=a=F+r|0,o=Q=r>>>0>a>>>0?Q+1|0:Q,i[n+128>>2]=a,i[n+132>>2]=Q,n=R,a=C,Q=ug(S,E,19),R=p,C=Q,Q=E>>>6|0,C=ug(S,E,61)^C^((63&E)<<26|S>>>6),Q=(p^Q^R)+s|0,Q=(E=C+e|0)>>>0>>0?Q+1|0:Q,C=E,Q=Q+a|0,G=E=E+G|0,E=E>>>0>>0?Q+1|0:Q,Q=(C=r=i[k+4>>2])>>>7|0,r=((127&C)<<25|(a=i[k>>2])>>>7)^ug(a,C,1),Q^=p,S=G,G=ug(a,C,8)^r,Q=(p^Q)+E|0,E=Q=(r=S+G|0)>>>0>>0?Q+1|0:Q,i[n+128>>2]=r,i[n+132>>2]=Q,Q=i[(n=k)+76>>2]+C|0,a=(C=a=(G=i[n+72>>2])+a|0)>>>0>>0?Q+1|0:Q,Q=ug(F,o,19),G=p,S=C,k=Q,Q=(C=o)>>>6|0,C=k^((63&C)<<26|F>>>6)^ug(F,C,61),Q=(p^Q^G)+a|0,F=o=S+C|0,o=C>>>0>o>>>0?Q+1|0:Q,Q=(C=a=i[n+12>>2])>>>7|0,a=((127&C)<<25|(G=i[n+8>>2])>>>7)^ug(G,C,1),Q^=p,S=F,F=ug(G,C,8)^a,Q=(p^Q)+o|0,Q=(a=S+F|0)>>>0>>0?Q+1|0:Q,F=a,o=Q,i[n+128>>2]=a,i[n+132>>2]=Q,a=C,Q=ug(r,E,19),k=p,C=Q,Q=E>>>6|0,E=(E=ug(r,E,61)^C^((63&E)<<26|r>>>6))+(C=i[(n=H)+72>>2])|0,Q=i[n+76>>2]+(p^Q^k)|0,Q=E>>>0>>0?Q+1|0:Q,C=E,Q=Q+a|0,C=Q=(E=E+G|0)>>>0>>0?Q+1|0:Q,Q=ug(w,f,1),a=p,G=E,r=Q,Q=(E=f)>>>7|0,r=r^((127&E)<<25|w>>>7)^ug(w,E,8),Q=(p^Q^a)+C|0,a=E=G+r|0,E=Q=E>>>0>>0?Q+1|0:Q,i[n+128>>2]=a,i[n+132>>2]=Q,Q=i[(C=l)+76>>2]+f|0,f=n=(r=i[C+72>>2])+w|0,n=n>>>0>>0?Q+1|0:Q,Q=ug(F,o,19),r=p,w=f,f=Q,Q=o>>>6|0,f=ug(F,o,61)^f^((63&o)<<26|F>>>6),Q=(p^Q^r)+n|0,o=(r=o=w+f|0)>>>0>>0?Q+1|0:Q,f=n=i[C+12>>2],Q=n>>>7|0,n=((127&n)<<25|(F=i[C+8>>2])>>>7)^ug(F,n,1),Q^=p,w=r,r=ug(F,f,8)^n,Q=(p^Q)+o|0,Q=(n=w+r|0)>>>0>>0?Q+1|0:Q,r=n,o=Q,i[C+128>>2]=n,i[C+132>>2]=Q,n=f,Q=ug(a,E,19),G=p,C=Q,Q=E>>>6|0,E=(E=ug(a,E,61)^C^((63&E)<<26|a>>>6))+(f=i[(C=v)+72>>2])|0,Q=i[C+76>>2]+(p^Q^G)|0,Q=E>>>0>>0?Q+1|0:Q,f=E,Q=Q+n|0,f=Q=(E=E+F|0)>>>0>>0?Q+1|0:Q,Q=ug(d,t,1),n=p,w=E,a=Q,Q=(E=t)>>>7|0,a=a^((127&E)<<25|d>>>7)^ug(d,E,8),Q=(p^Q^n)+f|0,n=E=w+a|0,E=Q=E>>>0>>0?Q+1|0:Q,i[C+128>>2]=n,i[C+132>>2]=Q,f=(a=i[(C=u)+72>>2])+d|0,Q=i[C+76>>2]+t|0,t=Q=a>>>0>f>>>0?Q+1|0:Q,Q=ug(r,o,19),a=p,w=f,f=Q,Q=o>>>6|0,f=ug(r,o,61)^f^((63&o)<<26|r>>>6),Q=(p^Q^a)+t|0,o=(a=o=w+f|0)>>>0>>0?Q+1|0:Q,f=t=i[C+12>>2],Q=t>>>7|0,t=((127&t)<<25|(r=i[C+8>>2])>>>7)^ug(r,t,1),Q^=p,w=a,a=ug(r,f,8)^t,Q=(p^Q)+o|0,Q=a>>>0>(t=w+a|0)>>>0?Q+1|0:Q,a=t,o=Q,i[C+128>>2]=a,i[C+132>>2]=Q,C=f,Q=ug(n,E,19),d=p,f=Q,Q=E>>>6|0,E=(E=ug(n,E,61)^f^((63&E)<<26|n>>>6))+(f=i[(t=_)+72>>2])|0,Q=i[t+76>>2]+(p^Q^d)|0,Q=E>>>0>>0?Q+1|0:Q,f=E,Q=Q+C|0,f=Q=(E=E+r|0)>>>0>>0?Q+1|0:Q,Q=ug(U,c,1),C=p,r=E,n=Q,Q=(E=c)>>>7|0,n=n^((127&E)<<25|U>>>7)^ug(U,E,8),Q=(p^Q^C)+f|0,C=E=r+n|0,E=Q=E>>>0>>0?Q+1|0:Q,i[t+128>>2]=C,i[t+132>>2]=Q,t=(n=i[(f=h)+72>>2])+U|0,Q=i[f+76>>2]+c|0,c=Q=n>>>0>t>>>0?Q+1|0:Q,Q=ug(a,o,19),n=p,r=t,t=Q,Q=o>>>6|0,t=ug(a,o,61)^t^((63&o)<<26|a>>>6),Q=(p^Q^n)+c|0,o=(n=o=r+t|0)>>>0>>0?Q+1|0:Q,c=t=i[f+12>>2],Q=t>>>7|0,t=((127&t)<<25|(h=i[f+8>>2])>>>7)^ug(h,t,1),Q^=p,t=ug(h,c,8)^t,Q=(p^Q)+o|0,Q=t>>>0>(h=t+n|0)>>>0?Q+1|0:Q,t=h,o=Q,i[f+128>>2]=t,i[f+132>>2]=Q,h=(c=i[(f=y)+72>>2])+b|0,Q=i[f+76>>2]+Y|0,y=Q=c>>>0>h>>>0?Q+1|0:Q,Q=ug(C,E,19),c=p,a=h,n=Q,Q=E>>>6|0,h=ug(C,E,61)^n^((63&E)<<26|C>>>6),Q=(p^Q^c)+y|0,h=Q=(E=a+h|0)>>>0>>0?Q+1|0:Q,Q=ug(e,s,1),y=p,C=E,a=Q,Q=(E=s)>>>7|0,E=C+(c=a^((127&E)<<25|e>>>7)^ug(e,E,8))|0,Q=(p^Q^y)+h|0,i[f+128>>2]=E,i[f+132>>2]=E>>>0>>0?Q+1|0:Q,Q=i[(E=D)+76>>2]+s|0,s=f=(h=i[E+72>>2])+e|0,f=f>>>0>>0?Q+1|0:Q,Q=ug(t,o,19),h=p,C=Q,Q=o>>>6|0,o=ug(t,o,61)^C^((63&o)<<26|t>>>6),Q=(p^Q^h)+f|0,s=o>>>0>(y=s=o+s|0)>>>0?Q+1|0:Q,D=((127&(f=h=i[E+12>>2]))<<25|(o=i[E+8>>2])>>>7)^ug(o,f,1),Q=p^f>>>7,D=(h=ug(o,f,8)^D)+y|0,Q=(p^Q)+s|0,i[E+128>>2]=D,i[E+132>>2]=h>>>0>D>>>0?Q+1|0:Q}}function G(A){var I,g,B,Q,E,i,a,r,o,e,t,f,c,y,s,w,h,D,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0,CA=0,EA=0;y=HI(A),s=n[A+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,w=HI(A+5|0),h=p,IA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,gA=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,D=HI(A+13|0),BA=p,M=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,Z=HI(A+18|0),d=p,m=HI(A+21|0),_=n[A+23|0]|n[A+24|0]<<8|n[A+25|0]<<16|n[A+26|0]<<24,k=HI(A+26|0),l=p,AA=n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,q=n[A+31|0]|n[A+32|0]<<8|n[A+33|0]<<16|n[A+34|0]<<24,T=HI(A+34|0),W=p,P=n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24,O=HI(A+39|0),J=p,Y=HI(A+42|0),G=n[A+44|0]|n[A+45|0]<<8|n[A+46|0]<<16|n[A+47|0]<<24,F=HI(A+47|0),u=2097151&((3&l)<<30|k>>>2),k=eg(I=2097151&((3&(H=p))<<30|F>>>2),0,136657,0)+u|0,l=p,l=u>>>0>k>>>0?l+1|0:l,F=eg(g=(n[A+49|0]|n[A+50|0]<<8|n[A+51|0]<<16|n[A+52|0]<<24)>>>7&2097151,0,-997805,-1),u=p+l|0,u=F>>>0>(k=F+k|0)>>>0?u+1|0:u,l=eg(B=(n[A+52|0]|n[A+53|0]<<8|n[A+54|0]<<16|n[A+55|0]<<24)>>>4&2097151,0,654183,0),F=p+u|0,F=l>>>0>(k=l+k|0)>>>0?F+1|0:F,u=k,l=HI(A+55|0),k=u+(l=eg(Q=2097151&((1&(k=p))<<31|l>>>1),0,470296,0))|0,u=p+F|0,u=l>>>0>k>>>0?u+1|0:u,F=eg(E=(n[A+57|0]|n[A+58|0]<<8|n[A+59|0]<<16|n[A+60|0]<<24)>>>6&2097151,0,666643,0),l=p+u|0,U=l=F>>>0>(k=F+k|0)>>>0?l+1|0:l,F=l,b=G>>>5&2097151,l=2097151&Y,G=eg(i=(n[A+60|0]|n[A+61|0]<<8|n[A+62|0]<<16|n[A+63|0]<<24)>>>3|0,0,-683901,-1)+l|0,u=p,Y=G,S=u=l>>>0>G>>>0?u+1|0:u,N=(u=G)- -1048576|0,L=G=S-((u>>>0<4293918720)-1|0)|0,u=G>>21,r=b=(G=(2097151&G)<<11|N>>>21)+b|0,V=l=G>>>0>b>>>0?u+1|0:u,u=eg(b,l,-683901,-1),l=p+F|0,j=H=u+k|0,v=u>>>0>H>>>0?l+1|0:l,F=_>>>5&2097151,H=eg(I,0,-997805,-1)+F|0,u=p,u=F>>>0>H>>>0?u+1|0:u,l=eg(g,0,654183,0),F=p+u|0,F=l>>>0>(H=l+H|0)>>>0?F+1|0:F,u=eg(B,0,470296,0),l=p+F|0,l=u>>>0>(H=u+H|0)>>>0?l+1|0:l,F=eg(Q,0,666643,0),u=p+l|0,F=F>>>0>(_=H=F+H|0)>>>0?u+1|0:u,u=2097151&m,H=eg(I,0,654183,0)+u|0,l=p,l=u>>>0>H>>>0?l+1|0:l,G=(u=H)+(H=eg(g,0,470296,0))|0,u=p+l|0,u=G>>>0>>0?u+1|0:u,H=eg(B,0,666643,0),l=p+u|0,b=G=H+G|0,G=l=G>>>0>>0?l+1|0:l,z=(u=b)- -1048576|0,R=H=l-((u>>>0<4293918720)-1|0)|0,F=(u=H>>>21|0)+F|0,m=F=(l=(2097151&H)<<11|z>>>21)>>>0>(_=H=l+_|0)>>>0?F+1|0:F,K=(u=_)- -1048576|0,f=k- -1048576|0,U=U-((k>>>0<4293918720)-1|0)|0,l=(u=(F=x=F-((u>>>0<4293918720)-1|0)|0)>>21)+v|0,U=(l=(k=(2097151&F)<<11|K>>>21)>>>0>(x=k+j|0)>>>0?l+1|0:l)-(((u=-2097152&f)>>>0>(k=x)>>>0)+(H=U)|0)|0,QA=(u=k-u|0)-(l=-2097152&(c=u- -1048576|0))|0,CA=U-((u>>>0>>0)+(k=U-((u>>>0<4293918720)-1|0)|0)|0)|0,l=eg(r,V,136657,0)+_|0,u=m+p|0,u=l>>>0<_>>>0?u+1|0:u,$=(_=l)-(l=-2097152&K)|0,j=u-((l>>>0>_>>>0)+F|0)|0,U=Y-(u=-2097152&N)|0,v=S-((u>>>0>Y>>>0)+L|0)|0,u=2097151&((7&J)<<29|O>>>3),F=eg(i,0,136657,0)+u|0,l=p,l=u>>>0>F>>>0?l+1|0:l,_=(u=F)+(F=eg(E,0,-683901,-1))|0,u=p+l|0,Y=_,_=F>>>0>_>>>0?u+1|0:u,u=eg(Q,0,-683901,-1),l=p,F=u,l=(u=P>>>6&2097151)>>>0>(F=F+u|0)>>>0?l+1|0:l,m=(u=eg(i,0,-997805,-1))+F|0,F=p+l|0,F=u>>>0>m>>>0?F+1|0:F,l=eg(E,0,136657,0),u=p+F|0,K=l=(N=u=l>>>0>(m=l+m|0)>>>0?u+1|0:u)-(((u=m)>>>0<4293918720)-1|0)|0,u=(2097151&l)<<11|(O=u- -1048576|0)>>>21,l=(l>>21)+_|0,S=l=u>>>0>(Y=u+Y|0)>>>0?l+1|0:l,x=(u=Y)- -1048576|0,L=l=l-((u>>>0<4293918720)-1|0)|0,u=(F=l>>21)+v|0,o=_=(l=(2097151&l)<<11|x>>>21)+U|0,X=u=l>>>0>_>>>0?u+1|0:u,l=eg(_,u,-683901,-1),u=p+j|0,EA=F=l+$|0,P=l>>>0>F>>>0?u+1|0:u,v=b,u=2097151&((7&d)<<29|Z>>>3),F=eg(I,0,470296,0)+u|0,l=p,l=u>>>0>F>>>0?l+1|0:l,u=eg(g,0,666643,0),l=p+l|0,U=F=u+F|0,F=u>>>0>F>>>0?l+1|0:l,_=M>>>6&2097151,b=eg(I,0,666643,0)+_|0,u=p,d=_=(M=u=_>>>0>b>>>0?u+1|0:u)-(((u=b)>>>0<4293918720)-1|0)|0,l=(l=_>>>21|0)+F|0,J=l=(u=(2097151&_)<<11|($=u- -1048576|0)>>>21)>>>0>(_=u+U|0)>>>0?l+1|0:l,Z=l-(((u=_)>>>0<4293918720)-1|0)|0,j=u- -1048576|0,a=Y-(u=-2097152&x)|0,e=F=S-((u>>>0>Y>>>0)+L|0)|0,u=((U=Z)>>>21|0)+G|0,u=(Y=(2097151&U)<<11|j>>>21)>>>0>(v=Y+v|0)>>>0?u+1|0:u,v=(G=eg(r,V,-997805,-1))+((Y=v)-(l=-2097152&z)|0)|0,l=p+(u-((8191&R)+(l>>>0>Y>>>0)|0)|0)|0,l=G>>>0>v>>>0?l+1|0:l,u=eg(o,X,136657,0),l=p+l|0,l=u>>>0>(G=u+v|0)>>>0?l+1|0:l,F=eg(a,F,-683901,-1),u=p+l|0,S=u=F>>>0>(G=F+G|0)>>>0?u+1|0:u,x=(u=G)- -1048576|0,L=F=S-((u>>>0<4293918720)-1|0)|0,l=(u=F>>21)+P|0,v=l=(F=(2097151&F)<<11|x>>>21)>>>0>(Y=F+EA|0)>>>0?l+1|0:l,R=(u=F=Y)- -1048576|0,u=(u=(Y=P=l-((u>>>0<4293918720)-1|0)|0)>>21)+CA|0,QA=P=(l=(2097151&Y)<<11|R>>>21)+QA|0,P=l>>>0>P>>>0?u+1|0:u,CA=F-(u=-2097152&R)|0,EA=v-((u>>>0>F>>>0)+Y|0)|0,Z=G-(u=-2097152&x)|0,z=S-((u>>>0>G>>>0)+L|0)|0,u=eg(r,V,654183,0),F=p+(J-((8191&U)+((l=-2097152&j)>>>0>_>>>0)|0)|0)|0,F=u>>>0>(G=u+(_-l|0)|0)>>>0?F+1|0:F,l=eg(o,X,-997805,-1),u=p+F|0,u=l>>>0>(G=l+G|0)>>>0?u+1|0:u,F=eg(a,e,136657,0),l=p+u|0,x=G=F+G|0,Y=F>>>0>G>>>0?l+1|0:l,R=m-(u=-2097152&O)|0,J=N-((u>>>0>m>>>0)+K|0)|0,l=2097151&((1&W)<<31|T>>>1),G=eg(B,0,-683901,-1)+l|0,u=p,u=l>>>0>G>>>0?u+1|0:u,l=eg(Q,0,136657,0),u=p+u|0,u=l>>>0>(F=l+G|0)>>>0?u+1|0:u,G=(l=F)+(F=eg(i,0,654183,0))|0,l=p+u|0,l=F>>>0>G>>>0?l+1|0:l,u=eg(E,0,-997805,-1),l=p+l|0,m=F=u+G|0,G=u>>>0>F>>>0?l+1|0:l,u=eg(g,0,-683901,-1),F=p,l=u,F=(u=q>>>4&2097151)>>>0>(l=l+u|0)>>>0?F+1|0:F,_=(u=l)+(l=eg(B,0,136657,0))|0,u=p+F|0,u=l>>>0>_>>>0?u+1|0:u,F=eg(Q,0,-997805,-1),l=p+u|0,l=F>>>0>(_=F+_|0)>>>0?l+1|0:l,F=eg(i,0,470296,0),u=p+l|0,u=F>>>0>(_=F+_|0)>>>0?u+1|0:u,F=eg(E,0,654183,0),l=p+u|0,S=l=F>>>0>(_=F+_|0)>>>0?l+1|0:l,K=(u=_)- -1048576|0,L=F=l-((u>>>0<4293918720)-1|0)|0,u=(u=F>>21)+G|0,G=F=(l=(2097151&F)<<11|K>>>21)+m|0,v=u=l>>>0>F>>>0?u+1|0:u,U=(u=F)- -1048576|0,m=F=v-((u>>>0<4293918720)-1|0)|0,l=(u=F>>21)+J|0,t=N=(F=(2097151&F)<<11|U>>>21)+R|0,q=l=F>>>0>N>>>0?l+1|0:l,u=eg(N,l,-683901,-1),F=p+Y|0,J=l=u+x|0,Y=u>>>0>l>>>0?F+1|0:F,T=G-(u=-2097152&U)|0,W=m=v-((u>>>0>G>>>0)+m|0)|0,F=(u=eg(r,V,470296,0))+(b-(l=-2097152&$)|0)|0,l=p+(M-((2047&d)+(l>>>0>b>>>0)|0)|0)|0,l=u>>>0>F>>>0?l+1|0:l,u=eg(o,X,654183,0),l=p+l|0,l=u>>>0>(F=u+F|0)>>>0?l+1|0:l,G=(u=eg(a,e,-997805,-1))+F|0,F=p+l|0,F=u>>>0>G>>>0?F+1|0:F,l=eg(N,q,136657,0),u=p+F|0,u=l>>>0>(G=l+G|0)>>>0?u+1|0:u,F=eg(T,m,-683901,-1),l=p+u|0,v=l=F>>>0>(G=F+G|0)>>>0?l+1|0:l,d=(u=G)- -1048576|0,m=F=l-((u>>>0<4293918720)-1|0)|0,u=(u=F>>21)+Y|0,Y=u=(l=(2097151&F)<<11|d>>>21)>>>0>(F=l+J|0)>>>0?u+1|0:u,U=(u=F)- -1048576|0,l=(u=(b=J=Y-((u>>>0<4293918720)-1|0)|0)>>21)+z|0,Z=M=(J=(2097151&b)<<11|U>>>21)+Z|0,J=M>>>0>>0?l+1|0:l,z=F-(u=-2097152&U)|0,O=Y-((u>>>0>F>>>0)+b|0)|0,x=G-(u=-2097152&d)|0,N=v-((u>>>0>G>>>0)+m|0)|0,l=2097151&((1&BA)<<31|D>>>1),G=eg(r,V,666643,0)+l|0,u=p,u=l>>>0>G>>>0?u+1|0:u,F=eg(o,X,470296,0),l=p+u|0,l=F>>>0>(G=F+G|0)>>>0?l+1|0:l,F=eg(a,e,654183,0),u=p+l|0,u=F>>>0>(G=F+G|0)>>>0?u+1|0:u,l=eg(t,q,-997805,-1),F=p+u|0,F=l>>>0>(G=l+G|0)>>>0?F+1|0:F,u=eg(T,W,136657,0),l=p+F|0,m=G=u+G|0,b=u>>>0>G>>>0?l+1|0:l,Y=_-(u=-2097152&K)|0,_=S-((u>>>0>_>>>0)+L|0)|0,u=eg(I,0,-683901,-1),l=p,F=u,l=(u=AA>>>7&2097151)>>>0>(F=F+u|0)>>>0?l+1|0:l,G=(u=eg(g,0,136657,0))+F|0,F=p+l|0,F=u>>>0>G>>>0?F+1|0:F,l=eg(B,0,-997805,-1),u=p+F|0,u=l>>>0>(G=l+G|0)>>>0?u+1|0:u,F=eg(Q,0,654183,0),l=p+u|0,l=F>>>0>(G=F+G|0)>>>0?l+1|0:l,F=eg(i,0,666643,0),u=p+l|0,u=F>>>0>(G=F+G|0)>>>0?u+1|0:u,F=eg(E,0,470296,0),l=p+u|0,u=l=F>>>0>(G=F+G|0)>>>0?l+1|0:l,l=H>>21,G=(H=(2097151&H)<<11|f>>>21)+(F=G)|0,F=u+l|0,L=F=G>>>0>>0?F+1|0:F,S=(u=G)- -1048576|0,v=F=F-((u>>>0<4293918720)-1|0)|0,u=(l=F>>21)+_|0,V=H=(F=(2097151&F)<<11|S>>>21)+Y|0,R=u=F>>>0>H>>>0?u+1|0:u,u=eg(H,u,-683901,-1),l=p+b|0,b=F=u+m|0,H=u>>>0>F>>>0?l+1|0:l,u=eg(o,X,666643,0),F=p,l=u,F=(u=gA>>>4&2097151)>>>0>(l=l+u|0)>>>0?F+1|0:F,_=(u=l)+(l=eg(a,e,470296,0))|0,u=p+F|0,u=l>>>0>_>>>0?u+1|0:u,F=eg(t,q,654183,0),l=p+u|0,l=F>>>0>(_=F+_|0)>>>0?l+1|0:l,u=eg(T,W,-997805,-1),l=p+l|0,l=u>>>0>(F=u+_|0)>>>0?l+1|0:l,_=(u=F)+(F=eg(V,R,136657,0))|0,u=p+l|0,m=u=F>>>0>_>>>0?u+1|0:u,M=(u=_)- -1048576|0,Y=F=m-((u>>>0<4293918720)-1|0)|0,u=(l=F>>21)+H|0,F=u=(F=(2097151&F)<<11|M>>>21)>>>0>(H=b=F+b|0)>>>0?u+1|0:u,d=(u=H)- -1048576|0,u=(l=(b=U=F-((u>>>0<4293918720)-1|0)|0)>>21)+N|0,$=K=(U=(2097151&b)<<11|d>>>21)+x|0,U=U>>>0>K>>>0?u+1|0:u,u=G-(l=-2097152&S)|0,G=L-((l>>>0>G>>>0)+v|0)|0,v=u,u=(u=k>>21)+G|0,S=u=(l=(2097151&k)<<11|c>>>21)>>>0>(G=k=v+l|0)>>>0?u+1|0:u,K=(u=G)- -1048576|0,L=k=S-((u>>>0<4293918720)-1|0)|0,N=u=k>>21,u=eg(X=(2097151&k)<<11|K>>>21,u,-683901,-1),l=p+F|0,l=u>>>0>(k=u+H|0)>>>0?l+1|0:l,j=(F=k)-(u=-2097152&d)|0,x=l-((u>>>0>F>>>0)+b|0)|0,l=eg(X,N,136657,0)+_|0,u=m+p|0,u=l>>>0<_>>>0?u+1|0:u,AA=(F=l)-(l=-2097152&M)|0,M=u-((l>>>0>F>>>0)+Y|0)|0,u=eg(a,e,666643,0),l=p,F=u,l=(u=IA>>>7&2097151)>>>0>(F=F+u|0)>>>0?l+1|0:l,k=(u=eg(t,q,470296,0))+F|0,F=p+l|0,F=u>>>0>k>>>0?F+1|0:F,l=eg(T,W,654183,0),u=p+F|0,u=l>>>0>(k=l+k|0)>>>0?u+1|0:u,l=eg(V,R,-997805,-1),u=p+u|0,Y=F=l+k|0,F=l>>>0>F>>>0?u+1|0:u,u=2097151&((3&h)<<30|w>>>2),k=eg(t,q,666643,0)+u|0,l=p,l=u>>>0>k>>>0?l+1|0:l,u=eg(T,W,470296,0),l=p+l|0,l=u>>>0>(k=u+k|0)>>>0?l+1|0:l,H=(u=k)+(k=eg(V,R,654183,0))|0,u=p+l|0,b=u=k>>>0>H>>>0?u+1|0:u,d=(u=k=H)- -1048576|0,u=(l=(_=H=b-((u>>>0<4293918720)-1|0)|0)>>21)+F|0,m=Y=(H=(2097151&_)<<11|d>>>21)+Y|0,F=u=H>>>0>Y>>>0?u+1|0:u,Y=(u=Y)- -1048576|0,u=(l=(H=v=F-((u>>>0<4293918720)-1|0)|0)>>21)+M|0,IA=q=(v=(2097151&H)<<11|Y>>>21)+AA|0,v=v>>>0>q>>>0?u+1|0:u,u=eg(X,N,-997805,-1),F=p+F|0,F=u>>>0>(l=u+m|0)>>>0?F+1|0:F,gA=l-(u=-2097152&Y)|0,BA=F-((u>>>0>l>>>0)+H|0)|0,u=eg(X,N,654183,0)+k|0,l=b+p|0,l=u>>>0>>0?l+1|0:l,AA=(F=u)-(u=-2097152&d)|0,q=l-((u>>>0>F>>>0)+_|0)|0,u=eg(T,W,666643,0),F=p,l=u,F=(u=s>>>5&2097151)>>>0>(l=l+u|0)>>>0?F+1|0:F,k=(u=l)+(l=eg(V,R,470296,0))|0,u=p+F|0,_=k,F=l>>>0>k>>>0?u+1|0:u,l=2097151&y,k=eg(V,R,666643,0)+l|0,u=p,H=k,Y=k=(m=u=l>>>0>k>>>0?u+1|0:u)-(((u=k)>>>0<4293918720)-1|0)|0,F=(l=k>>21)+F|0,b=F=(u=(2097151&k)<<11|(M=u- -1048576|0)>>>21)>>>0>(k=u+_|0)>>>0?F+1|0:F,d=(u=k)- -1048576|0,_=F=F-((u>>>0<4293918720)-1|0)|0,u=(l=F>>21)+q|0,F=u=(F=(2097151&F)<<11|d>>>21)>>>0>(R=F+AA|0)>>>0?u+1|0:u,u=eg(X,N,470296,0)+k|0,l=b+p|0,_=(l=u>>>0>>0?l+1|0:l)-(((k=-2097152&d)>>>0>(b=u)>>>0)+_|0)|0,b=u=u-k|0,k=(l=eg(X,N,666643,0))+(H-(u=-2097152&M)|0)|0,u=p+(m-((u>>>0>H>>>0)+Y|0)|0)|0,H=k,l=(l=(u=l>>>0>k>>>0?u+1|0:u)>>21)+_|0,W=k=b+(u=(2097151&u)<<11|k>>>21)|0,F=(u=(l=u>>>0>k>>>0?l+1|0:l)>>21)+F|0,_=k=(l=(2097151&l)<<11|k>>>21)+R|0,l=(F=l>>>0>(u=k)>>>0?F+1|0:F)>>21,F=(2097151&F)<<11|u>>>21,u=l+BA|0,Y=k=F+gA|0,F=(u=F>>>0>(l=k)>>>0?u+1|0:u)>>21,u=(2097151&u)<<11|l>>>21,l=F+v|0,v=k=u+IA|0,u=(u=(l=u>>>0>(F=k)>>>0?l+1|0:l)>>21)+x|0,R=F=(l=(2097151&l)<<11|F>>>21)+j|0,l=(l=(u=l>>>0>F>>>0?u+1|0:u)>>21)+U|0,N=F=(u=(2097151&u)<<11|F>>>21)+$|0,u=(l=u>>>0>F>>>0?l+1|0:l)>>21,l=(2097151&l)<<11|F>>>21,F=u+O|0,M=k=l+z|0,l=(F=l>>>0>(u=k)>>>0?F+1|0:F)>>21,F=(2097151&F)<<11|u>>>21,u=l+J|0,d=k=F+Z|0,F=(u=F>>>0>(l=k)>>>0?u+1|0:u)>>21,u=(2097151&u)<<11|l>>>21,l=F+EA|0,J=k=u+CA|0,u=(u=(l=u>>>0>(F=k)>>>0?l+1|0:l)>>21)+P|0,U=F=(l=(2097151&l)<<11|F>>>21)+QA|0,l=(u=l>>>0>F>>>0?u+1|0:u)>>21,k=(2097151&u)<<11|F>>>21,u=G-(F=-2097152&K)|0,F=(S-((F>>>0>G>>>0)+L|0)|0)+l|0,L=k=k+u|0,P=(2097151&(F=u>>>0>(l=k)>>>0?F+1|0:F))<<11|l>>>21,m=u=F>>21,l=2097151&H,F=eg(P,u,666643,0)+l|0,u=p,b=F,k=u=l>>>0>F>>>0?u+1|0:u,C[0|A]=F,C[A+1|0]=(255&u)<<24|F>>>8,u=2097151&W,F=eg(P,m,470296,0)+u|0,l=p,l=u>>>0>F>>>0?l+1|0:l,H=F,G=(2097151&(F=k))<<11|b>>>21,F=(u=F>>21)+l|0,F=G>>>0>(S=H+G|0)>>>0?F+1|0:F,G=S,C[A+4|0]=(2047&F)<<21|G>>>11,u=l=F,F=G,C[A+3|0]=(7&u)<<29|F>>>3,F=2097151&_,_=eg(P,m,654183,0)+F|0,u=p,u=F>>>0>_>>>0?u+1|0:u,F=_,_=(2097151&l)<<11|G>>>21,l=(l>>21)+u|0,l=_>>>0>(S=F+_|0)>>>0?l+1|0:l,_=S,u=l,C[A+6|0]=(63&u)<<26|_>>>6,H=0,F=31&((65535&k)<<16|b>>>16),l=b=2097151&G,C[A+2|0]=F|l<<5,F=2097151&Y,G=eg(P,m,-997805,-1)+F|0,l=p,F=l=F>>>0>G>>>0?l+1|0:l,F=(l=u>>21)+F|0,Y=G=(u=(2097151&u)<<11|_>>>21)+G|0,F=u>>>0>G>>>0?F+1|0:F,C[A+9|0]=(511&F)<<23|G>>>9,u=l=F,F=G,C[A+8|0]=(1&u)<<31|F>>>1,G=0,F=_&=2097151,C[A+5|0]=(524287&H)<<13|b>>>19|F<<2,F=2097151&v,H=eg(P,m,136657,0)+F|0,u=p,u=(u=F>>>0>H>>>0?u+1|0:u)+(F=l>>21)|0,b=H=(l=(2097151&l)<<11|Y>>>21)+H|0,u=l>>>0>H>>>0?u+1|0:u,l=H,C[A+12|0]=(4095&u)<<20|l>>>12,F=u,C[A+11|0]=(15&u)<<28|l>>>4,H=0,l=v=2097151&Y,C[A+7|0]=(16383&G)<<18|_>>>14|l<<7,u=2097151&R,G=eg(P,m,-683901,-1)+u|0,l=p,l=u>>>0>G>>>0?l+1|0:l,l=(u=F>>21)+l|0,_=G=(F=(2097151&F)<<11|b>>>21)+G|0,u=l=F>>>0>G>>>0?l+1|0:l,C[A+14|0]=(127&u)<<25|G>>>7,G=0,F=Y=2097151&b,C[A+10|0]=(131071&H)<<15|v>>>17|F<<4,l=u>>21,F=(u=(2097151&u)<<11|_>>>21)>>>0>(b=u+(2097151&N)|0)>>>0?l+1|0:l,C[A+17|0]=(1023&F)<<22|b>>>10,u=F,F=b,C[A+16|0]=(3&u)<<30|F>>>2,F=m=2097151&_,C[A+13|0]=(1048575&G)<<12|Y>>>20|F<<1,F=(2097151&u)<<11|b>>>21,u>>=21,u=F>>>0>(_=F+(2097151&M)|0)>>>0?u+1|0:u,l=_,C[A+20|0]=(8191&u)<<19|l>>>13,C[A+19|0]=(31&u)<<27|l>>>5,l=Y=2097151&b,C[A+15|0]=(32767&H)<<17|m>>>15|l<<6,k=(2097151&u)<<11|_>>>21,u=l=u>>21,k=u=k>>>0>(m=k+(2097151&d)|0)>>>0?u+1|0:u,C[A+21|0]=m,u=_,C[A+18|0]=(262143&G)<<14|Y>>>18|u<<3,u=k,C[A+22|0]=(255&u)<<24|m>>>8,F=u,u>>=21,F=(_=(H=(2097151&F)<<11|m>>>21)+(2097151&J)|0)>>>0>>0?u+1|0:u,C[(l=A)+25|0]=(2047&F)<<21|_>>>11,u=F,F=_,C[l+24|0]=(7&u)<<29|F>>>3,F=l,H=(2097151&u)<<11|_>>>21,u>>=21,l=u=H>>>0>(G=b=H+(2097151&U)|0)>>>0?u+1|0:u,C[F+27|0]=(63&u)<<26|G>>>6,H=0,u=b=2097151&_,C[F+23|0]=31&((65535&k)<<16|m>>>16)|u<<5,l=(u=l)>>21,l=(u=(2097151&u)<<11|G>>>21)>>>0>(k=u+(2097151&L)|0)>>>0?l+1|0:l,F=k,C[A+31|0]=(131071&l)<<15|F>>>17,u=l,C[A+30|0]=(511&u)<<23|F>>>9,C[A+29|0]=(1&u)<<31|F>>>1,l=0,G&=2097151,C[A+26|0]=(524287&H)<<13|b>>>19|G<<2,C[A+28|0]=(16383&l)<<18|G>>>14|F<<7}function k(A){var I,g=0,B=0,Q=0,C=0,E=0,r=0,o=0,t=0,f=0,c=0,y=0,s=0,w=0;h=I=h-16|0;A:{I:{g:{B:{Q:{C:{E:{i:{n:{a:{r:{o:{if((A|=0)>>>0<=244){if(3&(g=(E=i[8961])>>>(B=(t=A>>>0<11?16:A+11&-8)>>>3|0)|0)){A=(C=i[35892+(g=(Q=B+(1&(-1^g))|0)<<3)>>2])+8|0,(0|(B=i[C+8>>2]))!=(0|(g=g+35884|0))?(i[B+12>>2]=g,i[g+8>>2]=B):(s=35844,w=vI(-2,Q)&E,i[s>>2]=w),g=Q<<3,i[C+4>>2]=3|g,i[4+(g=g+C|0)>>2]=1|i[g+4>>2];break A}if((c=i[8963])>>>0>=t>>>0)break o;if(g){B=A=(g=(0-(A=(0-(A=2<>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,r=i[35892+(A=(B=((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)|0)<<3)>>2],(0|(g=i[r+8>>2]))!=(0|(A=A+35884|0))?(i[g+12>>2]=A,i[A+8>>2]=g):(E=vI(-2,B)&E,i[8961]=E),A=r+8|0,i[r+4>>2]=3|t,C=(g=B<<3)-t|0,i[4+(Q=r+t|0)>>2]=1|C,i[g+r>>2]=C,c&&(B=35884+((g=c>>>3|0)<<3)|0,r=i[8966],(g=1<>2]:(i[8961]=g|E,g=B),i[B+8>>2]=r,i[g+12>>2]=r,i[r+12>>2]=B,i[r+8>>2]=g),i[8966]=Q,i[8963]=C;break A}if(!(o=i[8962]))break o;for(B=A=(g=(o&0-o)-1|0)>>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,g=i[36148+(((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)<<2)>>2],C=(-8&i[g+4>>2])-t|0,B=g;(A=i[B+16>>2])||(A=i[B+20>>2]);)C=(Q=(B=(-8&i[A+4>>2])-t|0)>>>0>>0)?B:C,g=Q?A:g,B=A;if((f=g+t|0)>>>0<=g>>>0)break r;if(y=i[g+24>>2],(0|(Q=i[g+12>>2]))!=(0|g)){A=i[g+8>>2],i[A+12>>2]=Q,i[Q+8>>2]=A;break I}if(!(A=i[(B=g+20|0)>>2])){if(!(A=i[g+16>>2]))break a;B=g+16|0}for(;r=B,Q=A,(A=i[(B=A+20|0)>>2])||(B=Q+16|0,A=i[Q+16>>2]););i[r>>2]=0;break I}if(t=-1,!(A>>>0>4294967231)&&(t=-8&(A=A+11|0),f=i[8962])){E=31,C=0-t|0,t>>>0<=16777215&&(A=A>>>8|0,A<<=r=A+1048320>>>16&8,E=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|r)|0)<<1|t>>>A+21&1)|0);e:{t:{if(B=i[36148+(E<<2)>>2])for(A=0,g=t<<(31==(0|E)?0:25-(E>>>1|0)|0);;){if(!((r=(-8&i[B+4>>2])-t|0)>>>0>=C>>>0||(Q=B,C=r))){C=0,A=B;break t}if(r=i[B+20>>2],B=i[16+((g>>>29&4)+B|0)>>2],A=r?(0|r)==(0|B)?A:r:A,g<<=1,!B)break}else A=0;if(!(A|Q)){if(!(A=(0-(A=2<>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,A=i[36148+(((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)<<2)>>2]}if(!A)break e}for(;C=(B=(g=(-8&i[A+4>>2])-t|0)>>>0>>0)?g:C,Q=B?A:Q,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!Q|i[8963]-t>>>0<=C>>>0)){if((o=Q+t|0)>>>0<=Q>>>0)break r;if(E=i[Q+24>>2],(0|Q)!=(0|(g=i[Q+12>>2]))){A=i[Q+8>>2],i[A+12>>2]=g,i[g+8>>2]=A;break g}if(!(A=i[(B=Q+20|0)>>2])){if(!(A=i[Q+16>>2]))break n;B=Q+16|0}for(;r=B,g=A,(A=i[(B=A+20|0)>>2])||(B=g+16|0,A=i[g+16>>2]););i[r>>2]=0;break g}}}if((B=i[8963])>>>0>=t>>>0){Q=i[8966],(g=B-t|0)>>>0>=16?(i[8963]=g,A=Q+t|0,i[8966]=A,i[A+4>>2]=1|g,i[B+Q>>2]=g,i[Q+4>>2]=3|t):(i[8966]=0,i[8963]=0,i[Q+4>>2]=3|B,i[4+(A=B+Q|0)>>2]=1|i[A+4>>2]),A=Q+8|0;break A}if((o=i[8964])>>>0>t>>>0){g=o-t|0,i[8964]=g,A=(B=i[8967])+t|0,i[8967]=A,i[A+4>>2]=1|g,i[B+4>>2]=3|t,A=B+8|0;break A}if(A=0,g=f=t+47|0,i[9079]?B=i[9081]:(i[9082]=-1,i[9083]=-1,i[9080]=4096,i[9081]=4096,i[9079]=I+12&-16^1431655768,i[9084]=0,i[9072]=0,B=4096),(B=(r=g+B|0)&(C=0-B|0))>>>0<=t>>>0)break A;if((Q=i[9071])&&Q>>>0<(E=(g=i[9069])+B|0)>>>0|g>>>0>=E>>>0)break A;if(4&n[36288])break C;o:{e:{if(Q=i[8967])for(A=36292;;){if(Q>>>0<(g=i[A>>2])+i[A+4>>2]>>>0&&g>>>0<=Q>>>0)break e;if(!(A=i[A+8>>2]))break}if(-1==(0|(g=II(0))))break E;if(E=B,(A=(Q=i[9080])-1|0)&g&&(E=(B-g|0)+(A+g&0-Q)|0),E>>>0<=t>>>0|E>>>0>2147483646)break E;if((Q=i[9071])&&Q>>>0<(C=(A=i[9069])+E|0)>>>0|A>>>0>=C>>>0)break E;if((0|g)!=(0|(A=II(E))))break o;break Q}if((E=C&r-o)>>>0>2147483646)break E;if((0|(g=II(E)))==(i[A>>2]+i[A+4>>2]|0))break i;A=g}if(!(-1==(0|A)|t+48>>>0<=E>>>0)){if((g=(g=i[9081])+(f-E|0)&0-g)>>>0>2147483646){g=A;break Q}if(-1!=(0|II(g))){E=g+E|0,g=A;break Q}II(0-E|0);break E}if(g=A,-1!=(0|A))break Q;break E}e()}Q=0;break I}g=0;break g}if(-1!=(0|g))break Q}i[9072]=4|i[9072]}if(B>>>0>2147483646)break B;if((g=II(B))>>>0>=(A=II(0))>>>0|-1==(0|g)|-1==(0|A))break B;if((E=A-g|0)>>>0<=t+40>>>0)break B}A=i[9069]+E|0,i[9069]=A,A>>>0>a[9070]&&(i[9070]=A);Q:{C:{E:{if(r=i[8967]){for(A=36292;;){if(((Q=i[A>>2])+(B=i[A+4>>2])|0)==(0|g))break E;if(!(A=i[A+8>>2]))break}break C}for((A=i[8965])>>>0<=g>>>0&&A||(i[8965]=g),A=0,i[9074]=E,i[9073]=g,i[8969]=-1,i[8970]=i[9079],i[9076]=0;B=35884+(Q=A<<3)|0,i[Q+35892>>2]=B,i[Q+35896>>2]=B,32!=(0|(A=A+1|0)););B=(Q=E-40|0)-(A=g+8&7?-8-g&7:0)|0,i[8964]=B,A=A+g|0,i[8967]=A,i[A+4>>2]=1|B,i[4+(g+Q|0)>>2]=40,i[8968]=i[9083];break Q}if(!(8&n[A+12|0]|g>>>0<=r>>>0|Q>>>0>r>>>0)){i[A+4>>2]=B+E,B=(A=r+8&7?-8-r&7:0)+r|0,i[8967]=B,A=(g=i[8964]+E|0)-A|0,i[8964]=A,i[B+4>>2]=1|A,i[4+(g+r|0)>>2]=40,i[8968]=i[9083];break Q}}(Q=i[8965])>>>0>g>>>0&&(i[8965]=g,Q=0),B=g+E|0,A=36292;C:{E:{i:{n:{a:{r:{for(;;){if((0|B)!=i[A>>2]){if(A=i[A+8>>2])continue;break r}break}if(!(8&n[A+12|0]))break a}for(A=36292;;){if((B=i[A>>2])>>>0<=r>>>0&&(C=B+i[A+4>>2]|0)>>>0>r>>>0)break n;A=i[A+8>>2]}}if(i[A>>2]=g,i[A+4>>2]=i[A+4>>2]+E,i[4+(f=(g+8&7?-8-g&7:0)+g|0)>>2]=3|t,B=((E=B+(B+8&7?-8-B&7:0)|0)-f|0)-t|0,o=t+f|0,(0|E)==(0|r)){i[8967]=o,A=i[8964]+B|0,i[8964]=A,i[o+4>>2]=1|A;break E}if(i[8966]==(0|E)){i[8966]=o,A=i[8963]+B|0,i[8963]=A,i[o+4>>2]=1|A,i[A+o>>2]=A;break E}if(1==(3&(A=i[E+4>>2]))){r=-8&A;a:if(A>>>0<=255){if(Q=i[E+8>>2],A=A>>>3|0,(0|(g=i[E+12>>2]))==(0|Q)){s=35844,w=i[8961]&vI(-2,A),i[s>>2]=w;break a}i[Q+12>>2]=g,i[g+8>>2]=Q}else{if(t=i[E+24>>2],(0|E)==(0|(g=i[E+12>>2])))if((C=i[(A=E+20|0)>>2])||(C=i[(A=E+16|0)>>2])){for(;Q=A,(C=i[(A=(g=C)+20|0)>>2])||(A=g+16|0,C=i[g+16>>2]););i[Q>>2]=0}else g=0;else A=i[E+8>>2],i[A+12>>2]=g,i[g+8>>2]=A;if(t){Q=i[E+28>>2];r:{if(i[(A=36148+(Q<<2)|0)>>2]==(0|E)){if(i[A>>2]=g,g)break r;s=35848,w=i[8962]&vI(-2,Q),i[s>>2]=w;break a}if(i[t+(i[t+16>>2]==(0|E)?16:20)>>2]=g,!g)break a}i[g+24>>2]=t,(A=i[E+16>>2])&&(i[g+16>>2]=A,i[A+24>>2]=g),(A=i[E+20>>2])&&(i[g+20>>2]=A,i[A+24>>2]=g)}}E=E+r|0,B=B+r|0}if(i[E+4>>2]=-2&i[E+4>>2],i[o+4>>2]=1|B,i[B+o>>2]=B,B>>>0<=255){g=35884+((A=B>>>3|0)<<3)|0,(B=i[8961])&(A=1<>2]:(i[8961]=A|B,A=g),i[g+8>>2]=o,i[A+12>>2]=o,i[o+12>>2]=g,i[o+8>>2]=A;break E}if(A=31,B>>>0<=16777215&&(A=B>>>8|0,A<<=C=A+1048320>>>16&8,A=28+((A=((A<<=Q=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|Q|C)|0)<<1|B>>>A+21&1)|0),i[o+28>>2]=A,i[o+16>>2]=0,i[o+20>>2]=0,C=36148+(A<<2)|0,(Q=i[8962])&(g=1<>>1|0)|0),g=i[C>>2];;){if(Q=g,(-8&i[g+4>>2])==(0|B))break i;if(g=A>>>29|0,A<<=1,!(g=i[16+(C=Q+(4&g)|0)>>2]))break}i[C+16>>2]=o,i[o+24>>2]=Q}else i[8962]=g|Q,i[C>>2]=o,i[o+24>>2]=C;i[o+12>>2]=o,i[o+8>>2]=o;break E}for(B=(Q=E-40|0)-(A=g+8&7?-8-g&7:0)|0,i[8964]=B,A=A+g|0,i[8967]=A,i[A+4>>2]=1|B,i[4+(g+Q|0)>>2]=40,i[8968]=i[9083],i[(B=(A=(C+(C-39&7?39-C&7:0)|0)-47|0)>>>0>>0?r:A)+4>>2]=27,A=i[9076],i[B+16>>2]=i[9075],i[B+20>>2]=A,A=i[9074],i[B+8>>2]=i[9073],i[B+12>>2]=A,i[9075]=B+8,i[9074]=E,i[9073]=g,i[9076]=0,A=B+24|0;i[A+4>>2]=7,g=A+8|0,A=A+4|0,g>>>0>>0;);if((0|B)==(0|r))break Q;if(i[B+4>>2]=-2&i[B+4>>2],C=B-r|0,i[r+4>>2]=1|C,i[B>>2]=C,C>>>0<=255){g=35884+((A=C>>>3|0)<<3)|0,(B=i[8961])&(A=1<>2]:(i[8961]=A|B,A=g),i[g+8>>2]=r,i[A+12>>2]=r,i[r+12>>2]=g,i[r+8>>2]=A;break Q}if(A=31,i[r+16>>2]=0,i[r+20>>2]=0,C>>>0<=16777215&&(A=C>>>8|0,A<<=Q=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|Q)|0)<<1|C>>>A+21&1)|0),i[r+28>>2]=A,Q=36148+(A<<2)|0,(B=i[8962])&(g=1<>>1|0)|0),g=i[Q>>2];;){if(B=g,(0|C)==(-8&i[g+4>>2]))break C;if(g=A>>>29|0,A<<=1,!(g=i[16+(Q=B+(4&g)|0)>>2]))break}i[Q+16>>2]=r,i[r+24>>2]=B}else i[8962]=g|B,i[Q>>2]=r,i[r+24>>2]=Q;i[r+12>>2]=r,i[r+8>>2]=r;break Q}A=i[Q+8>>2],i[A+12>>2]=o,i[Q+8>>2]=o,i[o+24>>2]=0,i[o+12>>2]=Q,i[o+8>>2]=A}A=f+8|0;break A}A=i[B+8>>2],i[A+12>>2]=r,i[B+8>>2]=r,i[r+24>>2]=0,i[r+12>>2]=B,i[r+8>>2]=A}if(!((A=i[8964])>>>0<=t>>>0)){g=A-t|0,i[8964]=g,A=(B=i[8967])+t|0,i[8967]=A,i[A+4>>2]=1|g,i[B+4>>2]=3|t,A=B+8|0;break A}}i[8960]=48,A=0;break A}g:if(E){B=i[Q+28>>2];B:{if(i[(A=36148+(B<<2)|0)>>2]==(0|Q)){if(i[A>>2]=g,g)break B;f=vI(-2,B)&f,i[8962]=f;break g}if(i[E+(i[E+16>>2]==(0|Q)?16:20)>>2]=g,!g)break g}i[g+24>>2]=E,(A=i[Q+16>>2])&&(i[g+16>>2]=A,i[A+24>>2]=g),(A=i[Q+20>>2])&&(i[g+20>>2]=A,i[A+24>>2]=g)}g:if(C>>>0<=15)A=C+t|0,i[Q+4>>2]=3|A,i[4+(A=A+Q|0)>>2]=1|i[A+4>>2];else if(i[Q+4>>2]=3|t,i[o+4>>2]=1|C,i[C+o>>2]=C,C>>>0<=255)g=35884+((A=C>>>3|0)<<3)|0,(B=i[8961])&(A=1<>2]:(i[8961]=A|B,A=g),i[g+8>>2]=o,i[A+12>>2]=o,i[o+12>>2]=g,i[o+8>>2]=A;else{A=31,C>>>0<=16777215&&(A=C>>>8|0,A<<=r=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|r)|0)<<1|C>>>A+21&1)|0),i[o+28>>2]=A,i[o+16>>2]=0,i[o+20>>2]=0,B=36148+(A<<2)|0;B:{if((g=1<>>1|0)|0),t=i[B>>2];;){if((-8&i[(g=t)+4>>2])==(0|C))break B;if(B=A>>>29|0,A<<=1,!(t=i[16+(B=g+(4&B)|0)>>2]))break}i[B+16>>2]=o,i[o+24>>2]=g}else i[8962]=g|f,i[B>>2]=o,i[o+24>>2]=B;i[o+12>>2]=o,i[o+8>>2]=o;break g}A=i[g+8>>2],i[A+12>>2]=o,i[g+8>>2]=o,i[o+24>>2]=0,i[o+12>>2]=g,i[o+8>>2]=A}A=Q+8|0;break A}I:if(y){B=i[g+28>>2];g:{if(i[(A=36148+(B<<2)|0)>>2]==(0|g)){if(i[A>>2]=Q,Q)break g;s=35848,w=vI(-2,B)&o,i[s>>2]=w;break I}if(i[(i[y+16>>2]==(0|g)?16:20)+y>>2]=Q,!Q)break I}i[Q+24>>2]=y,(A=i[g+16>>2])&&(i[Q+16>>2]=A,i[A+24>>2]=Q),(A=i[g+20>>2])&&(i[Q+20>>2]=A,i[A+24>>2]=Q)}C>>>0<=15?(A=C+t|0,i[g+4>>2]=3|A,i[4+(A=A+g|0)>>2]=1|i[A+4>>2]):(i[g+4>>2]=3|t,i[f+4>>2]=1|C,i[C+f>>2]=C,c&&(B=35884+((A=c>>>3|0)<<3)|0,Q=i[8966],(A=1<>2]:(i[8961]=A|E,A=B),i[B+8>>2]=Q,i[A+12>>2]=Q,i[Q+12>>2]=B,i[Q+8>>2]=A),i[8966]=f,i[8963]=C),A=g+8|0}return h=I+16|0,0|A}function _(A,I,g){var B,Q,C,E,n,a,o,e,t,f,c,y,s,w,h,D,u,l,F,G,k,_,H,Y,b,m,v,U,S,N,M,d,P,R,J,x,L,K,q,X,V,W,T,j,Z,O,z,$,AA,IA,gA,BA,QA,CA,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,eA=0,tA=0,fA=0,cA=0,yA=0,sA=0,wA=0,hA=0,DA=0,uA=0,pA=0,lA=0,FA=0,GA=0,kA=0,_A=0,HA=0,YA=0,bA=0;eA=A,B=EA=HA=i[g+4>>2],t=EA>>31,x=EA=(DA=i[I+20>>2])<<1,EA=eg(B,t,EA,H=EA>>31),nA=p,iA=EA,Q=EA=i[g>>2],C=EA>>31,f=EA=i[I+24>>2],rA=eg(Q,C,EA,E=EA>>31),EA=p+nA|0,EA=(iA=iA+rA|0)>>>0>>0?EA+1|0:EA,nA=iA,L=iA=oA=i[g+8>>2],u=iA>>31,c=iA=i[I+16>>2],iA=nA+(rA=eg(oA,u,iA,n=iA>>31))|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,K=EA=pA=i[g+12>>2],l=EA>>31,q=EA=(sA=i[I+12>>2])<<1,EA=(rA=eg(pA,l,EA,Y=EA>>31))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=EA,O=EA=uA=i[g+16>>2],k=EA>>31,y=EA=i[I+8>>2],rA=eg(uA,k,EA,a=EA>>31),EA=p+iA|0,EA=(nA=nA+rA|0)>>>0>>0?EA+1|0:EA,aA=nA,z=iA=cA=i[g+20>>2],b=iA>>31,X=iA=(fA=i[I+4>>2])<<1,nA=eg(cA,b,iA,m=iA>>31),EA=p+EA|0,EA=(iA=aA+nA|0)>>>0>>0?EA+1|0:EA,nA=iA,$=iA=yA=i[g+24>>2],V=iA>>31,s=iA=i[I>>2],rA=eg(yA,V,iA,o=iA>>31),iA=p+EA|0,iA=(nA=nA+rA|0)>>>0>>0?iA+1|0:iA,lA=i[g+28>>2],F=EA=r(lA,19),G=EA>>31,W=EA=(wA=i[I+36>>2])<<1,EA=(rA=eg(F,G,EA,v=EA>>31))+nA|0,nA=p+iA|0,nA=EA>>>0>>0?nA+1|0:nA,iA=EA,hA=i[g+32>>2],FA=EA=r(hA,19),GA=EA>>31,w=EA=i[I+32>>2],rA=eg(FA,GA,EA,e=EA>>31),EA=p+nA|0,EA=(iA=iA+rA|0)>>>0>>0?EA+1|0:EA,nA=iA,AA=i[g+36>>2],h=g=r(AA,19),D=g>>31,T=g=(I=i[I+28>>2])<<1,iA=eg(h,D,g,U=g>>31),EA=p+EA|0,tA=g=nA+iA|0,g=g>>>0>>0?EA+1|0:EA,EA=eg(c,n,B,t),iA=p,DA=eg(Q,C,rA=DA,S=rA>>31),nA=p+iA|0,nA=(EA=DA+EA|0)>>>0>>0?nA+1|0:nA,DA=sA,sA=eg(oA,u,sA,N=sA>>31),iA=p+nA|0,iA=(EA=sA+EA|0)>>>0>>0?iA+1|0:iA,nA=(sA=eg(y,a,pA,l))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,sA=fA,nA=eg(uA,k,fA,M=fA>>31),EA=p+EA|0,EA=(iA=iA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(s,o,cA,b),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=iA,d=iA=r(yA,19),iA=nA+(wA=eg(iA,_=iA>>31,fA=wA,P=fA>>31))|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,EA=(wA=eg(w,e,F,G))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,wA=I,I=(nA=eg(FA,GA,I,R=I>>31))+EA|0,EA=p+iA|0,EA=I>>>0>>0?EA+1|0:EA,iA=eg(h,D,f,E),EA=p+EA|0,_A=I=iA+I|0,I=I>>>0>>0?EA+1|0:EA,EA=eg(B,t,q,Y),nA=p,iA=(yA=eg(Q,C,c,n))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,yA=eg(y,a,oA,u),nA=p+EA|0,nA=(iA=yA+iA|0)>>>0>>0?nA+1|0:nA,EA=(yA=eg(pA,l,X,m))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(yA=eg(s,o,uA,k))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,aA=nA,j=iA=r(cA,19),nA=eg(iA,J=iA>>31,W,v),EA=p+EA|0,EA=(iA=aA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(w,e,d,_),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,cA=eg(F,G,T,U),nA=p+EA|0,nA=(iA=cA+iA|0)>>>0>>0?nA+1|0:nA,EA=(cA=eg(FA,GA,f,E))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(cA=eg(h,D,x,H))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,cA=nA,gA=EA,yA=iA=nA+33554432|0,BA=EA=iA>>>0<33554432?EA+1|0:EA,nA=_A,_A=(67108863&EA)<<6|iA>>>26,EA=(EA>>26)+I|0,EA=(nA=nA+_A|0)>>>0<_A>>>0?EA+1|0:EA,QA=I=(_A=nA)+16777216|0,EA=g+(iA=(nA=I>>>0<16777216?EA+1|0:EA)>>25)|0,EA=(I=(nA=(33554431&nA)<<7|I>>>25)+tA|0)>>>0>>0?EA+1|0:EA,YA=I=(g=I)+33554432|0,I=EA=I>>>0<33554432?EA+1|0:EA,EA=-67108864&YA,i[eA+24>>2]=g-EA,tA=eA,g=eg(B,t,X,m),EA=p,iA=eg(Q,C,y,a),nA=p+EA|0,nA=(g=iA+g|0)>>>0>>0?nA+1|0:nA,iA=eg(s,o,oA,u),EA=p+nA|0,EA=(g=iA+g|0)>>>0>>0?EA+1|0:EA,nA=g,eA=g=r(pA,19),iA=eg(g,pA=g>>31,W,v),EA=p+EA|0,EA=(g=nA+iA|0)>>>0>>0?EA+1|0:EA,iA=g,IA=g=r(uA,19),g=iA+(nA=eg(w,e,g,Z=g>>31))|0,iA=p+EA|0,iA=g>>>0>>0?iA+1|0:iA,nA=eg(T,U,j,J),EA=p+iA|0,EA=(g=nA+g|0)>>>0>>0?EA+1|0:EA,iA=eg(f,E,d,_),nA=p+EA|0,nA=(g=iA+g|0)>>>0>>0?nA+1|0:nA,iA=eg(F,G,x,H),EA=p+nA|0,EA=(g=iA+g|0)>>>0>>0?EA+1|0:EA,iA=eg(FA,GA,c,n),EA=p+EA|0,EA=(g=iA+g|0)>>>0>>0?EA+1|0:EA,nA=eg(h,D,q,Y),iA=p+EA|0,aA=g=nA+g|0,g=g>>>0>>0?iA+1|0:iA,EA=eg(s,o,B,t),nA=p,iA=(uA=eg(Q,C,sA,M))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,nA=iA,uA=iA=r(oA,19),iA=nA+(oA=eg(iA,kA=iA>>31,fA,P))|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,oA=eg(w,e,eA,pA),EA=p+nA|0,EA=(iA=oA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(IA,Z,wA,R),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=(oA=eg(f,E,j,J))+iA|0,iA=p+EA|0,iA=nA>>>0>>0?iA+1|0:iA,oA=eg(d,_,rA,S),EA=p+iA|0,EA=(nA=oA+nA|0)>>>0>>0?EA+1|0:EA,iA=(oA=eg(c,n,F,G))+nA|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,oA=eg(FA,GA,DA,N),EA=p+nA|0,EA=(iA=oA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(h,D,y,a),EA=p+EA|0,bA=iA=nA+iA|0,oA=iA>>>0>>0?EA+1|0:EA,EA=eg(EA=r(B,19),EA>>31,W,v),iA=p,nA=eg(Q,C,s,o),iA=p+iA|0,iA=(EA=nA+EA|0)>>>0>>0?iA+1|0:iA,nA=(HA=eg(w,e,uA,kA))+EA|0,EA=p+iA|0,iA=(eA=eg(eA,pA,T,U))+nA|0,nA=p+(nA>>>0>>0?EA+1|0:EA)|0,nA=iA>>>0>>0?nA+1|0:nA,eA=eg(f,E,IA,Z),EA=p+nA|0,EA=(iA=eA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(x,H,j,J),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=(eA=eg(c,n,d,_))+iA|0,iA=p+EA|0,iA=nA>>>0>>0?iA+1|0:iA,eA=eg(F,G,q,Y),EA=p+iA|0,EA=(nA=eA+nA|0)>>>0>>0?EA+1|0:EA,iA=(eA=eg(FA,GA,y,a))+nA|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,eA=eg(h,D,X,m),EA=p+nA|0,EA=(iA=eA+iA|0)>>>0>>0?EA+1|0:EA,eA=iA,HA=EA,pA=iA=iA+33554432|0,uA=EA=iA>>>0<33554432?EA+1|0:EA,kA=(67108863&EA)<<6|iA>>>26,iA=(nA=EA>>26)+oA|0,oA=EA=kA+bA|0,nA=aA,EA=EA>>>0>>0?iA+1|0:iA,CA=iA=oA+16777216|0,aA=(33554431&(EA=iA>>>0<16777216?EA+1|0:EA))<<7|iA>>>25,EA=(EA>>25)+g|0,EA=(iA=nA+aA|0)>>>0>>0?EA+1|0:EA,kA=g=iA+33554432|0,g=EA=g>>>0<33554432?EA+1|0:EA,EA=-67108864&kA,i[tA+8>>2]=iA-EA,aA=tA,EA=eg(f,E,B,t),nA=p,iA=(tA=eg(Q,C,wA,R))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,nA=eg(L,u,rA,S),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(c,n,K,l),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,tA=eg(O,k,DA,N),nA=p+EA|0,nA=(iA=tA+iA|0)>>>0>>0?nA+1|0:nA,EA=(tA=eg(y,a,z,b))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(tA=eg(sA,M,$,V))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,nA=eg(s,o,tA=lA,bA=tA>>31),EA=p+EA|0,EA=(iA=iA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(FA,GA,fA,P),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,lA=eg(h,D,w,e),nA=p+EA|0,nA=(iA=lA+iA|0)>>>0>>0?nA+1|0:nA,EA=I>>26,I=(lA=(67108863&I)<<6|YA>>>26)+iA|0,iA=EA+nA|0,EA=iA=I>>>0>>0?iA+1|0:iA,YA=I=(nA=I)+16777216|0,I=EA=I>>>0<16777216?EA+1|0:EA,EA=-33554432&YA,i[aA+28>>2]=nA-EA,lA=aA,EA=eg(y,a,B,t),iA=p,aA=eg(Q,C,DA,N),nA=p+iA|0,nA=(EA=aA+EA|0)>>>0>>0?nA+1|0:nA,aA=eg(L,u,sA,M),iA=p+nA|0,iA=(EA=aA+EA|0)>>>0>>0?iA+1|0:iA,nA=(aA=eg(s,o,K,l))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,nA=eg(IA,Z,fA,P),EA=p+EA|0,EA=(iA=iA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(w,e,j,J),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,aA=eg(d,_,wA,R),nA=p+EA|0,nA=(iA=aA+iA|0)>>>0>>0?nA+1|0:nA,EA=(aA=eg(f,E,F,G))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(aA=eg(FA,GA,rA,S))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,nA=eg(h,D,c,n),EA=p+EA|0,aA=iA=iA+nA|0,EA=(EA=iA>>>0>>0?EA+1|0:EA)+(iA=g>>26)|0,EA=(g=aA+(nA=(67108863&g)<<6|kA>>>26)|0)>>>0>>0?EA+1|0:EA,FA=g=(iA=g)+16777216|0,g=nA=g>>>0<16777216?EA+1|0:EA,EA=-33554432&FA,i[lA+12>>2]=iA-EA,EA=eg(B,t,T,U),nA=p,iA=(aA=eg(Q,C,w,e))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,nA=eg(f,E,L,u),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,aA=eg(K,l,x,H),nA=p+EA|0,nA=(iA=aA+iA|0)>>>0>>0?nA+1|0:nA,EA=(aA=eg(c,n,O,k))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(aA=eg(q,Y,z,b))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,nA=eg(y,a,$,V),EA=p+EA|0,EA=(iA=iA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(tA,bA,X,m),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,hA=eg(s,o,aA=hA,GA=aA>>31),nA=p+EA|0,nA=(iA=hA+iA|0)>>>0>>0?nA+1|0:nA,EA=(hA=eg(h,D,W,v))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,hA=EA,EA=(EA=I>>25)+iA|0,EA=(I=hA+(nA=(33554431&I)<<7|YA>>>25)|0)>>>0>>0?EA+1|0:EA,hA=I=(iA=I)+33554432|0,I=EA=I>>>0<33554432?EA+1|0:EA,EA=-67108864&hA,i[lA+32>>2]=iA-EA,nA=iA=cA-(EA=-67108864&yA)|0,EA=(EA=gA-((EA>>>0>cA>>>0)+BA|0)|0)+(iA=g>>25)|0,EA=(g=nA+(cA=(33554431&g)<<7|FA>>>25)|0)>>>0>>0?EA+1|0:EA,(iA=g+33554432|0)>>>0<33554432&&(EA=EA+1|0),EA=(_A-(-33554432&QA)|0)+((67108863&EA)<<6|iA>>>26)|0,i[A+20>>2]=EA,EA=-67108864&iA,i[A+16>>2]=g-EA,EA=eg(w,e,B,t),nA=p,iA=(fA=eg(Q,C,fA,P))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,nA=(fA=eg(L,u,wA,R))+iA|0,iA=p+EA|0,iA=nA>>>0>>0?iA+1|0:iA,EA=(fA=eg(f,E,K,l))+nA|0,nA=p+iA|0,iA=(rA=eg(O,k,rA,S))+EA|0,EA=p+(EA>>>0>>0?nA+1|0:nA)|0,EA=iA>>>0>>0?EA+1|0:EA,nA=eg(c,n,z,b),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(DA,N,$,V),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=(rA=eg(y,a,tA,bA))+iA|0,iA=p+EA|0,iA=nA>>>0>>0?iA+1|0:iA,EA=(rA=eg(aA,GA,sA,M))+nA|0,nA=p+iA|0,nA=EA>>>0>>0?nA+1|0:nA,iA=(rA=eg(s,o,AA,AA>>31))+EA|0,EA=p+nA|0,g=iA,EA=(EA=iA>>>0>>0?EA+1|0:EA)+(iA=I>>26)|0,EA=(I=g+(nA=(67108863&I)<<6|hA>>>26)|0)>>>0>>0?EA+1|0:EA,EA=(I=(g=I)+16777216|0)>>>0<16777216?EA+1|0:EA,I=-33554432&(iA=I),i[A+36>>2]=g-I,nA=oA-(-33554432&CA)|0,rA=eA-(I=-67108864&pA)|0,DA=HA-((I>>>0>eA>>>0)+uA|0)|0,EA=eg((33554431&(I=EA))<<7|iA>>>25,EA>>=25,19,0),iA=p+DA|0,EA=iA=(I=EA+rA|0)>>>0>>0?iA+1|0:iA,g=((67108863&(EA=(g=I+33554432|0)>>>0<33554432?EA+1|0:EA))<<6|(iA=g)>>>26)+nA|0,i[A+4>>2]=g,g=A,A=-67108864&iA,i[g>>2]=I-A}function H(A,I){var g,B,Q,C,E,n,a,o,e,t,f,c,y,s,w,h,D,u,l,F,G,k,_,H,Y,b,m,v,U,S,N,M,d,P,R,J,x,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0;W=A,t=K=(L=i[I+12>>2])<<1,j=L,L=eg(K,E=K>>31,L,H=L>>31),X=p,K=L,g=L=i[I+16>>2],n=L>>31,D=L=(O=i[I+8>>2])<<1,V=eg(g,n,L,y=L>>31),L=p+X|0,L=(K=K+V|0)>>>0>>0?L+1|0:L,X=K,s=K=(V=i[I+20>>2])<<1,w=K>>31,a=K=(z=i[I+4>>2])<<1,q=eg(s,w,K,B=K>>31),K=p+L|0,K=(X=X+q|0)>>>0>>0?K+1|0:K,F=L=T=i[I+24>>2],f=L>>31,o=L=(BA=i[I>>2])<<1,q=eg(T,f,L,Q=L>>31),L=p+K|0,L=(X=q+X|0)>>>0>>0?L+1|0:L,Z=X,K=i[I+32>>2],h=X=r(K,19),Y=K,X=eg(X,c=X>>31,K,G=K>>31),L=p+L|0,L=(K=Z+X|0)>>>0>>0?L+1|0:L,Z=K,AA=i[I+36>>2],e=K=r(AA,38),C=K>>31,S=I=(X=i[I+28>>2])<<1,q=eg(K,C,I,b=I>>31),I=p+L|0,IA=K=Z+q|0,$=K>>>0>>0?I+1|0:I,I=eg(a,B,g,n),L=p,K=eg(D,y,j,H),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,N=V,q=eg(V,k=V>>31,o,Q),K=p+L|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=eg(h,c,S,b),L=p+K|0,L=(I=q+I|0)>>>0>>0?L+1|0:L,K=eg(e,C,T,f),L=p+L|0,Z=I=K+I|0,QA=I>>>0>>0?L+1|0:L,I=eg(a,B,t,E),K=p,L=(O=eg(q=O,u=q>>31,q,u))+I|0,I=p+K|0,I=L>>>0>>0?I+1|0:I,K=(O=eg(o,Q,g,n))+L|0,L=p+I|0,L=K>>>0>>0?L+1|0:L,_=I=r(X,38),O=X,I=(X=eg(I,l=I>>31,X,m=X>>31))+K|0,K=p+L|0,K=I>>>0>>0?K+1|0:K,I=(L=I)+(X=eg(h,c,I=T<<1,I>>31))|0,L=p+K|0,L=I>>>0>>0?L+1|0:L,K=eg(e,C,s,w),L=p+L|0,v=I=K+I|0,P=L=I>>>0>>0?L+1|0:L,I=L,M=L=v+33554432|0,R=I=L>>>0<33554432?I+1|0:I,L=(L=I>>26)+QA|0,QA=I=(K=(67108863&I)<<6|M>>>26)+Z|0,K=I>>>0>>0?L+1|0:L,J=I=I+16777216|0,L=(L=(K=I>>>0<16777216?K+1|0:K)>>25)+$|0,L=(I=(K=(33554431&K)<<7|I>>>25)+IA|0)>>>0>>0?L+1|0:L,K=I,I=L,Z=L=K+33554432|0,X=I=L>>>0<33554432?I+1|0:I,I=-67108864&L,i[W+24>>2]=K-I,I=eg(o,Q,q,u),L=p,z=eg(a,B,W=z,gA=W>>31),K=p+L|0,K=(I=z+I|0)>>>0>>0?K+1|0:K,L=I,z=I=r(T,19),I=L+(T=eg(I,IA=I>>31,T,f))|0,L=p+K|0,L=I>>>0>>0?L+1|0:L,K=(T=eg(s,w,_,l))+I|0,I=p+L|0,I=K>>>0>>0?I+1|0:I,d=L=g<<1,T=eg(h,c,L,U=L>>31),L=p+I|0,L=(K=T+K|0)>>>0>>0?L+1|0:L,I=K,K=eg(e,C,t,E),L=p+L|0,$=I=I+K|0,T=I>>>0>>0?L+1|0:L,I=eg(s,w,z,IA),L=p,W=eg(o,Q,W,gA),K=p+L|0,K=(I=W+I|0)>>>0>>0?K+1|0:K,W=eg(g,n,_,l),L=p+K|0,L=(I=W+I|0)>>>0>>0?L+1|0:L,K=(W=eg(h,c,t,E))+I|0,I=p+L|0,I=K>>>0>>0?I+1|0:I,W=eg(e,C,q,u),L=p+I|0,gA=K=W+K|0,W=K>>>0>>0?L+1|0:L,I=eg(I=r(V,38),I>>31,V,k),L=p,V=I,K=eg(I=BA,K=I>>31,I,K),L=p+L|0,L=(I=V+K|0)>>>0>>0?L+1|0:L,V=eg(z,IA,d,U),K=p+L|0,K=(I=V+I|0)>>>0>>0?K+1|0:K,V=eg(t,E,_,l),L=p+K|0,L=(I=V+I|0)>>>0>>0?L+1|0:L,K=(V=eg(h,c,D,y))+I|0,I=p+L|0,I=K>>>0>>0?I+1|0:I,V=eg(a,B,e,C),L=p+I|0,z=K=V+K|0,IA=L=K>>>0>>0?L+1|0:L,BA=I=K+33554432|0,x=L=I>>>0<33554432?L+1|0:L,K=(I=L>>26)+W|0,W=L=(V=(67108863&L)<<6|BA>>>26)+gA|0,L=L>>>0>>0?K+1|0:K,gA=I=W+16777216|0,V=(33554431&(L=I>>>0<16777216?L+1|0:L))<<7|I>>>25,L=(L>>25)+T|0,L=(K=V+$|0)>>>0>>0?L+1|0:L,T=K=(I=K)+33554432|0,V=L=K>>>0<33554432?L+1|0:L,L=-67108864&K,i[A+8>>2]=I-L,I=eg(D,y,N,k),L=p,K=eg(g,n,t,E),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=eg(a,B,F,f),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=eg(o,Q,O,m),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=($=eg(e,C,Y,G))+I|0,I=p+L|0,L=X>>26,X=(Z=(67108863&X)<<6|Z>>>26)+K|0,K=(I=K>>>0<$>>>0?I+1|0:I)+L|0,L=K=X>>>0>>0?K+1|0:K,Z=K=(I=X)+16777216|0,X=L=K>>>0<16777216?L+1|0:L,L=-33554432&K,i[A+28>>2]=I-L,I=eg(o,Q,j,H),K=p,L=(q=eg(a,B,q,u))+I|0,I=p+K|0,I=L>>>0>>0?I+1|0:I,q=eg(F,f,_,l),K=p+I|0,K=(L=q+L|0)>>>0>>0?K+1|0:K,I=(q=eg(h,c,s,w))+L|0,L=p+K|0,L=I>>>0>>0?L+1|0:L,K=eg(e,C,g,n),L=p+L|0,L=(L=(I=K+I|0)>>>0>>0?L+1|0:L)+(K=V>>26)|0,K=I=(V=(67108863&V)<<6|T>>>26)+I|0,I=L=I>>>0>>0?L+1|0:L,T=L=K+16777216|0,V=I=L>>>0<16777216?I+1|0:I,I=-33554432&L,i[A+12>>2]=K-I,q=A,I=eg(F,f,D,y),L=p,K=eg(g,n,g,n),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=eg(t,E,s,w),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=(j=eg(a,B,S,b))+I|0,I=p+L|0,I=K>>>0>>0?I+1|0:I,L=(j=eg(o,Q,Y,G))+K|0,K=p+I|0,K=L>>>0>>0?K+1|0:K,I=(AA=eg(e,C,j=AA,$=j>>31))+L|0,L=p+K|0,L=I>>>0>>0?L+1|0:L,A=I,L=(I=X>>25)+L|0,L=(K=A+(X=(33554431&X)<<7|Z>>>25)|0)>>>0>>0?L+1|0:L,AA=K=(I=K)+33554432|0,X=L=K>>>0<33554432?L+1|0:L,L=-67108864&K,i[q+32>>2]=I-L,L=V>>25,K=(V=(33554431&V)<<7|T>>>25)+(v-(I=-67108864&M)|0)|0,I=L+(P-((I>>>0>v>>>0)+R|0)|0)|0,L=I=K>>>0>>0?I+1|0:I,V=I=K+33554432|0,I=((67108863&(L=I>>>0<33554432?L+1|0:L))<<6|I>>>26)+(QA=QA-(-33554432&J)|0)|0,i[q+20>>2]=I,I=-67108864&V,i[q+16>>2]=K-I,V=q,I=eg(t,E,F,f),K=p,L=(q=eg(N,k,d,U))+I|0,I=p+K|0,I=L>>>0>>0?I+1|0:I,K=(q=eg(D,y,O,m))+L|0,L=p+I|0,L=K>>>0>>0?L+1|0:L,I=(q=eg(a,B,Y,G))+K|0,K=p+L|0,K=I>>>0>>0?K+1|0:K,q=eg(o,Q,j,$),L=p+K|0,K=I=q+I|0,L=(I=I>>>0>>0?L+1|0:L)+(L=X>>26)|0,L=(K=(X=(67108863&X)<<6|AA>>>26)+K|0)>>>0>>0?L+1|0:L,X=K,I=L,I=(L=K+16777216|0)>>>0<16777216?I+1|0:I,K=-33554432&L,i[V+36>>2]=X-K,q=eg((33554431&I)<<7|L>>>25,I>>25,19,0),L=p+(IA-(((K=-67108864&BA)>>>0>z>>>0)+x|0)|0)|0,K=I=q+(z-K|0)|0,I=I>>>0>>0?L+1|0:L,I=(W-(-33554432&gA)|0)+((67108863&(I=(L=K+33554432|0)>>>0<33554432?I+1|0:I))<<6|L>>>26)|0,i[V+4>>2]=I,A=-67108864&L,i[V>>2]=K-A}function Y(A,I,g){var B,Q=0,C=0,E=0,n=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,D=0,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0,CA=0;for(h=B=h-2048|0,Yg(B+1024|0,I),QI(B+1024|0,A),Yg(B,B+1024|0),QI(B,g),I=0;n=i[(Q=f=(B+1024|0)+(64|(A=F<<7))|0)>>2],e=i[(E=t=(B+1024|0)+(96|A)|0)>>2],E=i[E+4>>2],a=n,w=i[Q+4>>2],o=e,Q=A+(B+1024|0)|0,r=i[(n=(B+1024|0)+(32|A)|0)>>2],e=i[n+4>>2],o=ug(o^(l=rI(i[Q>>2],i[Q+4>>2],r,e)),(C=E)^(E=p),32),e=ug(a=(s=rI(a,w,o,C=p))^r,e^(r=p),24),P=ug((m=rI(l,a=E,e,E=p))^o,(y=p)^C,16),E=ug(e^(R=rI(s,r,P,S=p)),(N=p)^E,63),e=p,o=i[(r=(B+1024|0)+(104|A)|0)>>2],s=i[r+4>>2],H=i[(C=l=(B+1024|0)+(72|A)|0)>>2],c=i[C+4>>2],G=ug((G=o)^(k=rI(u=i[(C=o=(B+1024|0)+(8|A)|0)>>2],w=i[C+4>>2],U=i[(C=(B+1024|0)+(40|A)|0)>>2],a=i[C+4>>2])),(w=s)^(s=p),32),a=ug(c=(u=rI(H,c,G,w=p))^U,a^(U=p),24),V=ug((M=rI(k,c=s,a,s=p))^G,(J=p)^w,16),s=ug(a^(O=rI(u,U,V,j=p)),(z=p)^s,63),a=p,G=i[(k=U=(B+1024|0)+(112|A)|0)>>2],u=i[k+4>>2],v=i[(k=(B+1024|0)+(80|A)|0)>>2],D=i[k+4>>2],H=G,G=(B+1024|0)+(16|A)|0,Y=i[(b=w=(B+1024|0)+(48|A)|0)>>2],b=i[b+4>>2],H=ug(H^(d=rI(i[G>>2],i[G+4>>2],Y,b)),(c=u)^(u=p),32),b=ug(D=(c=rI(v,D,H,_=p))^Y,b^(Y=p),24),IA=ug(($=rI(d,D=u,b,u=p))^H,(AA=p)^_,16),u=ug(b^(W=rI(c,Y,IA,gA=p)),(q=p)^u,63),b=p,H=i[(Y=(B+1024|0)+(120|A)|0)>>2],_=i[Y+4>>2],BA=i[(c=d=(B+1024|0)+(88|A)|0)>>2],X=i[c+4>>2],L=ug((v=H)^(T=rI(Z=i[(c=H=(B+1024|0)+(24|A)|0)>>2],D=i[c+4>>2],x=i[(A=(B+1024|0)+(56|A)|0)>>2],c=i[A+4>>2])),(D=_)^(_=p),32),c=ug(D=(X=rI(BA,X,L,K=p))^x,c^(x=p),24),v=x,L=ug((x=rI(T,D=_,c,_=p))^L,(T=p)^K,16),_=ug(c^(X=rI(X,v,L,K=p)),(Z=p)^_,63),c=p,v=W,D=q,W=ug(L^(m=rI(m,y,s,a)),K^(y=p),32),s=ug((L=rI(v,D,W,q=p))^s,(K=p)^a,24),a=rI(a=m,y,s,m=p),y=p,i[Q>>2]=a,i[Q+4>>2]=y,Q=ug(a^W,q^y,16),a=p,i[Y>>2]=Q,i[Y+4>>2]=a,Q=rI(L,K,Q,a),a=p,i[k>>2]=Q,i[k+4>>2]=a,QA=C,CA=ug(Q^s,a^m,63),i[QA>>2]=CA,i[C+4>>2]=p,y=u,a=ug(P^(C=rI(M,J,u,b)),S^(s=p),32),Q=ug(y^(u=rI(X,Z,a,k=p)),(Q=b)^(b=p),24),C=rI(C,y=s,Q,s=p),Y=p,i[o>>2]=C,i[o+4>>2]=Y,o=ug(C^a,k^Y,16),C=p,i[t>>2]=o,i[t+4>>2]=C,t=rI(u,b,o,C),i[d>>2]=t,o=p,i[d+4>>2]=o,QA=w,CA=ug(Q^t,o^s,63),i[QA>>2]=CA,i[w+4>>2]=p,Q=rI($,AA,_,c),a=rI(R,N,C=ug(V^Q,j^(o=p),32),s=p),Q=rI(Q,w=o,t=ug(a^_,(k=p)^c,24),o=p),u=w=p,i[G>>2]=Q,i[G+4>>2]=u,Q=ug(Q^C,s^u,16),C=p,i[r>>2]=Q,i[r+4>>2]=C,Q=rI(a,k,Q,C),i[f>>2]=Q,C=f,f=p,i[C+4>>2]=f,QA=A,CA=ug(Q^t,f^o,63),i[QA>>2]=CA,i[A+4>>2]=p,C=E,Q=ug(IA^(f=rI(x,T,E,e)),gA^(t=p),32),A=ug(C^(r=rI(O,z,Q,E=p)),(A=e)^(e=p),24),f=rI(f,C=t,A,t=p),C=o=p,i[H>>2]=f,i[H+4>>2]=C,f=ug(Q^f,E^C,16),Q=p,i[U>>2]=f,i[U+4>>2]=Q,f=rI(r,e,f,Q),i[l>>2]=f,Q=p,i[l+4>>2]=Q,QA=n,CA=ug(A^f,Q^t,63),i[QA>>2]=CA,i[n+4>>2]=p,8!=(0|(F=F+1|0)););for(;F=i[768+(A=(t=I<<4)+(B+1024|0)|0)>>2],f=i[A+772>>2],a=i[(Q=A+512|0)>>2],o=i[Q+4>>2],C=F,F=i[A+256>>2],Q=i[A+260>>2],E=ug(C^(n=rI(i[A>>2],i[A+4>>2],F,Q)),(E=f)^(f=p),32),Q=ug(C=(r=rI(a,o,E,e=p))^F,Q^(F=p),24),w=F,s=ug((o=rI(n,f,Q,F=p))^E,(C=p)^e,16),F=ug(Q^(U=rI(r,w,s,a=p)),(k=p)^F,63),f=p,Q=i[A+780>>2],u=i[A+520>>2],y=i[A+524>>2],r=ug((G=i[A+776>>2])^(e=rI(w=i[(n=t=(B+1024|0)+(8|t)|0)>>2],e=i[n+4>>2],n=i[A+264>>2],E=i[A+268>>2])),(w=Q)^(Q=p),32),E=ug(w=(G=rI(u,y,r,l=p))^n,E^(n=p),24),y=G,u=ug((G=rI(e,w=Q,E,Q=p))^r,(w=p)^l,16),Q=ug(E^(Y=rI(y,n,u,b=p)),(d=p)^Q,63),n=p,E=i[A+900>>2],D=i[A+640>>2],m=i[A+644>>2],c=i[A+896>>2],e=i[A+384>>2],r=i[A+388>>2],H=ug(c^(l=rI(i[A+128>>2],i[A+132>>2],e,r)),(y=E)^(E=p),32),r=ug(y=(c=rI(D,m,H,_=p))^e,r^(e=p),24),D=c,c=ug((c=H)^(H=rI(l,y=E,r,E=p)),(y=_)^(_=p),16),E=ug(r^(y=rI(D,e,c,m=p)),(P=p)^E,63),e=p,r=i[A+908>>2],q=i[A+648>>2],j=i[A+652>>2],v=i[A+904>>2],l=i[A+392>>2],S=i[A+396>>2],N=ug(v^(R=rI(i[A+136>>2],i[A+140>>2],l,S)),(D=r)^(r=p),32),v=S=ug(D=(J=rI(q,j,N,M=p))^l,S^(l=p),24),N=ug((S=rI(R,D=r,S,r=p))^N,(R=p)^M,16),r=ug(v^(J=rI(J,l,N,M=p)),(V=p)^r,63),l=p,v=y,D=P,y=ug(N^(o=rI(o,C,Q,n)),M^(C=p),32),Q=ug((N=rI(v,D,y,P=p))^Q,(M=p)^n,24),n=rI(n=o,C,Q,o=p),C=p,i[A>>2]=n,i[A+4>>2]=C,n=ug(n^y,P^C,16),C=p,i[A+904>>2]=n,i[A+908>>2]=C,n=rI(N,M,n,C),C=p,i[A+640>>2]=n,i[A+644>>2]=C,QA=A,CA=ug(Q^n,o^C,63),i[QA+264>>2]=CA,i[A+268>>2]=p,y=E,n=rI(G,w,E,e),s=rI(J,V,o=ug(s^n,a^(E=p),32),C=p),n=rI(n,a=E,Q=ug(y^s,(Q=e)^(e=p),24),E=p),a=p,i[t>>2]=n,i[t+4>>2]=a,t=ug(n^o,C^a,16),n=p,i[A+768>>2]=t,i[A+772>>2]=n,t=rI(s,e,t,n),i[A+648>>2]=t,n=p,i[A+652>>2]=n,QA=A,CA=ug(Q^t,n^E,63),i[QA+384>>2]=CA,i[A+388>>2]=p,o=r,E=ug(u^(Q=rI(H,_,r,l)),b^(n=p),32),t=ug(o^(r=rI(U,k,E,e=p)),(C=l)^(l=p),24),Q=rI(Q,C=n,t,n=p),C=o=p,i[A+128>>2]=Q,i[A+132>>2]=C,Q=ug(Q^E,C^e,16),E=p,i[A+776>>2]=Q,i[A+780>>2]=E,Q=rI(r,l,Q,E),i[A+512>>2]=Q,E=p,i[A+516>>2]=E,QA=A,CA=ug(Q^t,n^E,63),i[QA+392>>2]=CA,i[A+396>>2]=p,t=rI(S,R,F,f),e=rI(Y,d,n=ug(c^t,m^(Q=p),32),E=p),f=rI(C=t,Q,F=ug(e^F,(r=p)^f,24),t=p),Q=p,i[A+136>>2]=f,i[A+140>>2]=Q,f=ug(n^f,E^Q,16),Q=p,i[A+896>>2]=f,i[A+900>>2]=Q,f=rI(e,r,f,Q),i[A+520>>2]=f,Q=p,i[A+524>>2]=Q,QA=A,CA=ug(f^F,Q^t,63),i[QA+256>>2]=CA,i[A+260>>2]=p,8!=(0|(I=I+1|0)););Yg(g,B),QI(g,B+1024|0),h=B+2048|0}function b(A,I,g){var B,Q=0,C=0,E=0,n=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,D=0,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0,CA=0;for(h=B=h-2048|0,Yg(B+1024|0,I),QI(B+1024|0,A),Yg(B,B+1024|0),I=0;n=i[(Q=f=(B+1024|0)+(64|(A=F<<7))|0)>>2],e=i[(E=t=(B+1024|0)+(96|A)|0)>>2],E=i[E+4>>2],a=n,w=i[Q+4>>2],o=e,Q=A+(B+1024|0)|0,r=i[(n=(B+1024|0)+(32|A)|0)>>2],e=i[n+4>>2],o=ug(o^(l=rI(i[Q>>2],i[Q+4>>2],r,e)),(C=E)^(E=p),32),e=ug(a=(s=rI(a,w,o,C=p))^r,e^(r=p),24),P=ug((m=rI(l,a=E,e,E=p))^o,(y=p)^C,16),E=ug(e^(R=rI(s,r,P,S=p)),(N=p)^E,63),e=p,o=i[(r=(B+1024|0)+(104|A)|0)>>2],s=i[r+4>>2],H=i[(C=l=(B+1024|0)+(72|A)|0)>>2],c=i[C+4>>2],G=ug((G=o)^(k=rI(u=i[(C=o=(B+1024|0)+(8|A)|0)>>2],w=i[C+4>>2],U=i[(C=(B+1024|0)+(40|A)|0)>>2],a=i[C+4>>2])),(w=s)^(s=p),32),a=ug(c=(u=rI(H,c,G,w=p))^U,a^(U=p),24),V=ug((M=rI(k,c=s,a,s=p))^G,(J=p)^w,16),s=ug(a^(O=rI(u,U,V,j=p)),(z=p)^s,63),a=p,G=i[(k=U=(B+1024|0)+(112|A)|0)>>2],u=i[k+4>>2],v=i[(k=(B+1024|0)+(80|A)|0)>>2],D=i[k+4>>2],H=G,G=(B+1024|0)+(16|A)|0,Y=i[(b=w=(B+1024|0)+(48|A)|0)>>2],b=i[b+4>>2],H=ug(H^(d=rI(i[G>>2],i[G+4>>2],Y,b)),(c=u)^(u=p),32),b=ug(D=(c=rI(v,D,H,_=p))^Y,b^(Y=p),24),IA=ug(($=rI(d,D=u,b,u=p))^H,(AA=p)^_,16),u=ug(b^(W=rI(c,Y,IA,gA=p)),(q=p)^u,63),b=p,H=i[(Y=(B+1024|0)+(120|A)|0)>>2],_=i[Y+4>>2],BA=i[(c=d=(B+1024|0)+(88|A)|0)>>2],X=i[c+4>>2],L=ug((v=H)^(T=rI(Z=i[(c=H=(B+1024|0)+(24|A)|0)>>2],D=i[c+4>>2],x=i[(A=(B+1024|0)+(56|A)|0)>>2],c=i[A+4>>2])),(D=_)^(_=p),32),c=ug(D=(X=rI(BA,X,L,K=p))^x,c^(x=p),24),v=x,L=ug((x=rI(T,D=_,c,_=p))^L,(T=p)^K,16),_=ug(c^(X=rI(X,v,L,K=p)),(Z=p)^_,63),c=p,v=W,D=q,W=ug(L^(m=rI(m,y,s,a)),K^(y=p),32),s=ug((L=rI(v,D,W,q=p))^s,(K=p)^a,24),a=rI(a=m,y,s,m=p),y=p,i[Q>>2]=a,i[Q+4>>2]=y,Q=ug(a^W,q^y,16),a=p,i[Y>>2]=Q,i[Y+4>>2]=a,Q=rI(L,K,Q,a),a=p,i[k>>2]=Q,i[k+4>>2]=a,QA=C,CA=ug(Q^s,a^m,63),i[QA>>2]=CA,i[C+4>>2]=p,y=u,a=ug(P^(C=rI(M,J,u,b)),S^(s=p),32),Q=ug(y^(u=rI(X,Z,a,k=p)),(Q=b)^(b=p),24),C=rI(C,y=s,Q,s=p),Y=p,i[o>>2]=C,i[o+4>>2]=Y,o=ug(C^a,k^Y,16),C=p,i[t>>2]=o,i[t+4>>2]=C,t=rI(u,b,o,C),i[d>>2]=t,o=p,i[d+4>>2]=o,QA=w,CA=ug(Q^t,o^s,63),i[QA>>2]=CA,i[w+4>>2]=p,Q=rI($,AA,_,c),a=rI(R,N,C=ug(V^Q,j^(o=p),32),s=p),Q=rI(Q,w=o,t=ug(a^_,(k=p)^c,24),o=p),u=w=p,i[G>>2]=Q,i[G+4>>2]=u,Q=ug(Q^C,s^u,16),C=p,i[r>>2]=Q,i[r+4>>2]=C,Q=rI(a,k,Q,C),i[f>>2]=Q,C=f,f=p,i[C+4>>2]=f,QA=A,CA=ug(Q^t,f^o,63),i[QA>>2]=CA,i[A+4>>2]=p,C=E,Q=ug(IA^(f=rI(x,T,E,e)),gA^(t=p),32),A=ug(C^(r=rI(O,z,Q,E=p)),(A=e)^(e=p),24),f=rI(f,C=t,A,t=p),C=o=p,i[H>>2]=f,i[H+4>>2]=C,f=ug(Q^f,E^C,16),Q=p,i[U>>2]=f,i[U+4>>2]=Q,f=rI(r,e,f,Q),i[l>>2]=f,Q=p,i[l+4>>2]=Q,QA=n,CA=ug(A^f,Q^t,63),i[QA>>2]=CA,i[n+4>>2]=p,8!=(0|(F=F+1|0)););for(;F=i[768+(A=(t=I<<4)+(B+1024|0)|0)>>2],f=i[A+772>>2],a=i[(Q=A+512|0)>>2],o=i[Q+4>>2],C=F,F=i[A+256>>2],Q=i[A+260>>2],E=ug(C^(n=rI(i[A>>2],i[A+4>>2],F,Q)),(E=f)^(f=p),32),Q=ug(C=(r=rI(a,o,E,e=p))^F,Q^(F=p),24),w=F,s=ug((o=rI(n,f,Q,F=p))^E,(C=p)^e,16),F=ug(Q^(U=rI(r,w,s,a=p)),(k=p)^F,63),f=p,Q=i[A+780>>2],u=i[A+520>>2],y=i[A+524>>2],r=ug((G=i[A+776>>2])^(e=rI(w=i[(n=t=(B+1024|0)+(8|t)|0)>>2],e=i[n+4>>2],n=i[A+264>>2],E=i[A+268>>2])),(w=Q)^(Q=p),32),E=ug(w=(G=rI(u,y,r,l=p))^n,E^(n=p),24),y=G,u=ug((G=rI(e,w=Q,E,Q=p))^r,(w=p)^l,16),Q=ug(E^(Y=rI(y,n,u,b=p)),(d=p)^Q,63),n=p,E=i[A+900>>2],D=i[A+640>>2],m=i[A+644>>2],c=i[A+896>>2],e=i[A+384>>2],r=i[A+388>>2],H=ug(c^(l=rI(i[A+128>>2],i[A+132>>2],e,r)),(y=E)^(E=p),32),r=ug(y=(c=rI(D,m,H,_=p))^e,r^(e=p),24),D=c,c=ug((c=H)^(H=rI(l,y=E,r,E=p)),(y=_)^(_=p),16),E=ug(r^(y=rI(D,e,c,m=p)),(P=p)^E,63),e=p,r=i[A+908>>2],q=i[A+648>>2],j=i[A+652>>2],v=i[A+904>>2],l=i[A+392>>2],S=i[A+396>>2],N=ug(v^(R=rI(i[A+136>>2],i[A+140>>2],l,S)),(D=r)^(r=p),32),v=S=ug(D=(J=rI(q,j,N,M=p))^l,S^(l=p),24),N=ug((S=rI(R,D=r,S,r=p))^N,(R=p)^M,16),r=ug(v^(J=rI(J,l,N,M=p)),(V=p)^r,63),l=p,v=y,D=P,y=ug(N^(o=rI(o,C,Q,n)),M^(C=p),32),Q=ug((N=rI(v,D,y,P=p))^Q,(M=p)^n,24),n=rI(n=o,C,Q,o=p),C=p,i[A>>2]=n,i[A+4>>2]=C,n=ug(n^y,P^C,16),C=p,i[A+904>>2]=n,i[A+908>>2]=C,n=rI(N,M,n,C),C=p,i[A+640>>2]=n,i[A+644>>2]=C,QA=A,CA=ug(Q^n,o^C,63),i[QA+264>>2]=CA,i[A+268>>2]=p,y=E,n=rI(G,w,E,e),s=rI(J,V,o=ug(s^n,a^(E=p),32),C=p),n=rI(n,a=E,Q=ug(y^s,(Q=e)^(e=p),24),E=p),a=p,i[t>>2]=n,i[t+4>>2]=a,t=ug(n^o,C^a,16),n=p,i[A+768>>2]=t,i[A+772>>2]=n,t=rI(s,e,t,n),i[A+648>>2]=t,n=p,i[A+652>>2]=n,QA=A,CA=ug(Q^t,n^E,63),i[QA+384>>2]=CA,i[A+388>>2]=p,o=r,E=ug(u^(Q=rI(H,_,r,l)),b^(n=p),32),t=ug(o^(r=rI(U,k,E,e=p)),(C=l)^(l=p),24),Q=rI(Q,C=n,t,n=p),C=o=p,i[A+128>>2]=Q,i[A+132>>2]=C,Q=ug(Q^E,C^e,16),E=p,i[A+776>>2]=Q,i[A+780>>2]=E,Q=rI(r,l,Q,E),i[A+512>>2]=Q,E=p,i[A+516>>2]=E,QA=A,CA=ug(Q^t,n^E,63),i[QA+392>>2]=CA,i[A+396>>2]=p,t=rI(S,R,F,f),e=rI(Y,d,n=ug(c^t,m^(Q=p),32),E=p),f=rI(C=t,Q,F=ug(e^F,(r=p)^f,24),t=p),Q=p,i[A+136>>2]=f,i[A+140>>2]=Q,f=ug(n^f,E^Q,16),Q=p,i[A+896>>2]=f,i[A+900>>2]=Q,f=rI(e,r,f,Q),i[A+520>>2]=f,Q=p,i[A+524>>2]=Q,QA=A,CA=ug(f^F,Q^t,63),i[QA+256>>2]=CA,i[A+260>>2]=p,8!=(0|(I=I+1|0)););Yg(g,B),QI(g,B+1024|0),h=B+2048|0}function m(A){var I=0,g=0,B=0,Q=0,C=0,E=0,n=0,r=0,o=0;A:if(A|=0){C=(B=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(3&I))break A;if((B=B-(I=i[B>>2])|0)>>>0>2])))return i[8963]=A,i[C+4>>2]=-2&I,i[B+4>>2]=1|A,void(i[A+B>>2]=A)}else{if(I>>>0<=255){if(Q=i[B+8>>2],I=I>>>3|0,(0|(g=i[B+12>>2]))==(0|Q)){r=35844,o=i[8961]&vI(-2,I),i[r>>2]=o;break I}i[Q+12>>2]=g,i[g+8>>2]=Q;break I}if(n=i[B+24>>2],(0|B)==(0|(I=i[B+12>>2])))if((g=i[(Q=B+20|0)>>2])||(g=i[(Q=B+16|0)>>2])){for(;E=Q,(g=i[(Q=(I=g)+20|0)>>2])||(Q=I+16|0,g=i[I+16>>2]););i[E>>2]=0}else I=0;else g=i[B+8>>2],i[g+12>>2]=I,i[I+8>>2]=g;if(!n)break I;Q=i[B+28>>2];g:{if(i[(g=36148+(Q<<2)|0)>>2]==(0|B)){if(i[g>>2]=I,I)break g;r=35848,o=i[8962]&vI(-2,Q),i[r>>2]=o;break I}if(i[n+(i[n+16>>2]==(0|B)?16:20)>>2]=I,!I)break I}if(i[I+24>>2]=n,(g=i[B+16>>2])&&(i[I+16>>2]=g,i[g+24>>2]=I),!(g=i[B+20>>2]))break I;i[I+20>>2]=g,i[g+24>>2]=I}}if(!(B>>>0>=C>>>0)&&1&(I=i[C+4>>2])){I:{if(!(2&I)){if(i[8967]==(0|C)){if(i[8967]=B,A=i[8964]+A|0,i[8964]=A,i[B+4>>2]=1|A,i[8966]!=(0|B))break A;return i[8963]=0,void(i[8966]=0)}if(i[8966]==(0|C))return i[8966]=B,A=i[8963]+A|0,i[8963]=A,i[B+4>>2]=1|A,void(i[A+B>>2]=A);A=(-8&I)+A|0;g:if(I>>>0<=255){if(I=I>>>3|0,(0|(g=i[C+8>>2]))==(0|(Q=i[C+12>>2]))){r=35844,o=i[8961]&vI(-2,I),i[r>>2]=o;break g}i[g+12>>2]=Q,i[Q+8>>2]=g}else{if(n=i[C+24>>2],(0|C)==(0|(I=i[C+12>>2])))if((g=i[(Q=C+20|0)>>2])||(g=i[(Q=C+16|0)>>2])){for(;E=Q,(g=i[(Q=(I=g)+20|0)>>2])||(Q=I+16|0,g=i[I+16>>2]););i[E>>2]=0}else I=0;else g=i[C+8>>2],i[g+12>>2]=I,i[I+8>>2]=g;if(n){Q=i[C+28>>2];B:{if(i[(g=36148+(Q<<2)|0)>>2]==(0|C)){if(i[g>>2]=I,I)break B;r=35848,o=i[8962]&vI(-2,Q),i[r>>2]=o;break g}if(i[n+(i[n+16>>2]==(0|C)?16:20)>>2]=I,!I)break g}i[I+24>>2]=n,(g=i[C+16>>2])&&(i[I+16>>2]=g,i[g+24>>2]=I),(g=i[C+20>>2])&&(i[I+20>>2]=g,i[g+24>>2]=I)}}if(i[B+4>>2]=1|A,i[A+B>>2]=A,i[8966]!=(0|B))break I;return void(i[8963]=A)}i[C+4>>2]=-2&I,i[B+4>>2]=1|A,i[A+B>>2]=A}if(A>>>0<=255)return I=35884+((A=A>>>3|0)<<3)|0,(g=i[8961])&(A=1<>2]:(i[8961]=A|g,A=I),i[I+8>>2]=B,i[A+12>>2]=B,i[B+12>>2]=I,void(i[B+8>>2]=A);Q=31,i[B+16>>2]=0,i[B+20>>2]=0,A>>>0<=16777215&&(I=A>>>8|0,I<<=E=I+1048320>>>16&8,Q=28+((I=((I<<=Q=I+520192>>>16&4)<<(g=I+245760>>>16&2)>>>15|0)-(g|Q|E)|0)<<1|A>>>I+21&1)|0),i[B+28>>2]=Q,E=36148+(Q<<2)|0;I:{g:{if((g=i[8962])&(I=1<>>1|0)|0),I=i[E>>2];;){if(g=I,(-8&i[I+4>>2])==(0|A))break g;if(I=Q>>>29|0,Q<<=1,!(I=i[16+(E=g+(4&I)|0)>>2]))break}i[E+16>>2]=B,i[B+24>>2]=g}else i[8962]=I|g,i[E>>2]=B,i[B+24>>2]=E;i[B+12>>2]=B,i[B+8>>2]=B;break I}A=i[g+8>>2],i[A+12>>2]=B,i[g+8>>2]=B,i[B+24>>2]=0,i[B+12>>2]=g,i[B+8>>2]=A}A=i[8969]-1|0,i[8969]=A||-1}}}function v(A,I){var g,B=0,Q=0,C=0,E=0,n=0,a=0,r=0;g=A+I|0;A:{I:if(!(1&(B=i[A+4>>2]))){if(!(3&B))break A;if(I=(B=i[A>>2])+I|0,(0|(A=A-B|0))==i[8966]){if(3==(3&(B=i[g+4>>2])))return i[8963]=I,i[g+4>>2]=-2&B,i[A+4>>2]=1|I,void(i[g>>2]=I)}else{if(B>>>0<=255){if(C=i[A+8>>2],B=B>>>3|0,(0|(Q=i[A+12>>2]))==(0|C)){a=35844,r=i[8961]&vI(-2,B),i[a>>2]=r;break I}i[C+12>>2]=Q,i[Q+8>>2]=C;break I}if(n=i[A+24>>2],(0|(B=i[A+12>>2]))==(0|A))if((Q=i[(C=A+20|0)>>2])||(Q=i[(C=A+16|0)>>2])){for(;E=C,(Q=i[(C=(B=Q)+20|0)>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0}else B=0;else Q=i[A+8>>2],i[Q+12>>2]=B,i[B+8>>2]=Q;if(!n)break I;C=i[A+28>>2];g:{if(i[(Q=36148+(C<<2)|0)>>2]==(0|A)){if(i[Q>>2]=B,B)break g;a=35848,r=i[8962]&vI(-2,C),i[a>>2]=r;break I}if(i[n+(i[n+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}if(i[B+24>>2]=n,(Q=i[A+16>>2])&&(i[B+16>>2]=Q,i[Q+24>>2]=B),!(Q=i[A+20>>2]))break I;i[B+20>>2]=Q,i[Q+24>>2]=B}}I:{if(!(2&(B=i[g+4>>2]))){if(i[8967]==(0|g)){if(i[8967]=A,I=i[8964]+I|0,i[8964]=I,i[A+4>>2]=1|I,i[8966]!=(0|A))break A;return i[8963]=0,void(i[8966]=0)}if(i[8966]==(0|g))return i[8966]=A,I=i[8963]+I|0,i[8963]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);I=(-8&B)+I|0;g:if(B>>>0<=255){if(C=i[g+8>>2],B=B>>>3|0,(0|(Q=i[g+12>>2]))==(0|C)){a=35844,r=i[8961]&vI(-2,B),i[a>>2]=r;break g}i[C+12>>2]=Q,i[Q+8>>2]=C}else{if(n=i[g+24>>2],(0|g)==(0|(B=i[g+12>>2])))if((C=i[(Q=g+20|0)>>2])||(C=i[(Q=g+16|0)>>2])){for(;E=Q,(C=i[(Q=(B=C)+20|0)>>2])||(Q=B+16|0,C=i[B+16>>2]););i[E>>2]=0}else B=0;else Q=i[g+8>>2],i[Q+12>>2]=B,i[B+8>>2]=Q;if(n){C=i[g+28>>2];B:{if(i[(Q=36148+(C<<2)|0)>>2]==(0|g)){if(i[Q>>2]=B,B)break B;a=35848,r=i[8962]&vI(-2,C),i[a>>2]=r;break g}if(i[n+(i[n+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=n,(Q=i[g+16>>2])&&(i[B+16>>2]=Q,i[Q+24>>2]=B),(Q=i[g+20>>2])&&(i[B+20>>2]=Q,i[Q+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[8966]!=(0|A))break I;return void(i[8963]=I)}i[g+4>>2]=-2&B,i[A+4>>2]=1|I,i[A+I>>2]=I}if(I>>>0<=255)return B=35884+((I=I>>>3|0)<<3)|0,(Q=i[8961])&(I=1<>2]:(i[8961]=I|Q,I=B),i[B+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=B,void(i[A+8>>2]=I);C=31,i[A+16>>2]=0,i[A+20>>2]=0,I>>>0<=16777215&&(B=I>>>8|0,B<<=E=B+1048320>>>16&8,C=28+((B=((B<<=C=B+520192>>>16&4)<<(Q=B+245760>>>16&2)>>>15|0)-(Q|C|E)|0)<<1|I>>>B+21&1)|0),i[A+28>>2]=C,E=36148+(C<<2)|0;I:{if((Q=i[8962])&(B=1<>>1|0)|0),B=i[E>>2];;){if(Q=B,(-8&i[B+4>>2])==(0|I))break I;if(B=C>>>29|0,C<<=1,!(B=i[16+(E=Q+(4&B)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=Q}else i[8962]=B|Q,i[E>>2]=A,i[A+24>>2]=E;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[Q+8>>2],i[I+12>>2]=A,i[Q+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=Q,i[A+8>>2]=I}}function U(A,I,g,B,Q){var E,a,r,o,e,t,f,c,y,s,w,D,u,p,l,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0;for(h=E=h+-64|0,a=i[A+60>>2],r=i[A+56>>2],K=i[A+52>>2],x=i[A+48>>2],o=i[A+44>>2],e=i[A+40>>2],t=i[A+36>>2],f=i[A+32>>2],c=i[A+28>>2],y=i[A+24>>2],s=i[A+20>>2],w=i[A+16>>2],D=i[A+12>>2],u=i[A+8>>2],p=i[A+4>>2],l=i[A>>2];;){if(!Q&B>>>0>63|Q)k=g;else{if(_=0,k=F=EA(E,0,64),B|Q)for(;C[F+_|0]=n[I+_|0],!Q&(_=_+1|0)>>>0>>0|Q;);I=k,V=g}for(q=20,m=l,v=p,U=u,S=D,_=w,F=s,g=y,N=c,H=f,Y=t,M=e,d=a,P=r,G=K,R=x,L=o;b=_,m=Hg((_=_+m|0)^R,16),R=Hg(b^(H=m+H|0),12),b=H,H=Hg((H=m)^(m=_+R|0),8),_=Hg(R^(J=b+H|0),7),b=F,v=Hg((F=F+v|0)^G,16),G=Hg(b^(Y=v+Y|0),12),b=Y,Y=Hg((Y=v)^(v=F+G|0),8),F=Hg(G^(X=b+Y|0),7),G=g,U=Hg((g=g+U|0)^P,16),b=P=Hg(G^(M=U+M|0),12),P=Hg((G=U)^(U=g+P|0),8),g=Hg(b^(M=P+M|0),7),G=N,S=Hg((N=N+S|0)^d,16),L=G=Hg(G^(d=S+L|0),12),b=d,d=Hg((d=S)^(S=N+G|0),8),N=Hg(L^(G=b+d|0),7),b=M,M=Hg((m=F+m|0)^d,16),F=Hg((R=b+M|0)^F,12),d=Hg(M^(m=F+m|0),8),F=Hg(F^(M=R+d|0),7),H=Hg((v=g+v|0)^H,16),g=Hg((G=H+G|0)^g,12),R=Hg(H^(v=g+v|0),8),g=Hg(g^(L=G+R|0),7),H=Hg((U=N+U|0)^Y,16),N=Hg((Y=H+J|0)^N,12),G=Hg(H^(U=N+U|0),8),N=Hg(N^(H=Y+G|0),7),Y=Hg((S=_+S|0)^P,16),_=Hg((J=Y+X|0)^_,12),P=Hg(Y^(S=_+S|0),8),_=Hg(_^(Y=J+P|0),7),q=q-2|0;);if(q=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,J=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,X=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,W=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,T=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,j=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,Z=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,O=n[I+32|0]|n[I+33|0]<<8|n[I+34|0]<<16|n[I+35|0]<<24,z=n[I+36|0]|n[I+37|0]<<8|n[I+38|0]<<16|n[I+39|0]<<24,$=n[I+40|0]|n[I+41|0]<<8|n[I+42|0]<<16|n[I+43|0]<<24,AA=n[I+44|0]|n[I+45|0]<<8|n[I+46|0]<<16|n[I+47|0]<<24,IA=n[I+48|0]|n[I+49|0]<<8|n[I+50|0]<<16|n[I+51|0]<<24,gA=n[I+52|0]|n[I+53|0]<<8|n[I+54|0]<<16|n[I+55|0]<<24,BA=n[I+56|0]|n[I+57|0]<<8|n[I+58|0]<<16|n[I+59|0]<<24,b=n[I+60|0]|n[I+61|0]<<8|n[I+62|0]<<16|n[I+63|0]<<24,xI(k,m+l^(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24)),xI(k+4|0,v+p^q),xI(k+8|0,U+u^J),xI(k+12|0,S+D^X),xI(k+16|0,_+w^W),xI(k+20|0,F+s^T),xI(k+24|0,g+y^j),xI(k+28|0,N+c^Z),xI(k+32|0,H+f^O),xI(k+36|0,Y+t^z),xI(k+40|0,$^M+e),xI(k+44|0,AA^L+o),xI(k+48|0,IA^R+x),xI(k+52|0,gA^G+K),xI(k+56|0,BA^P+r),xI(k+60|0,b^d+a),K=((x=(g=x)+1|0)>>>0>>0)+K|0,!Q&B>>>0<=64){if(!(!B|!Q&B>>>0>63|0!=(0|Q)))for(F=0;C[F+V|0]=n[k+F|0],(0|B)!=(0|(F=F+1|0)););i[A+52>>2]=K,i[A+48>>2]=x,h=E- -64|0;break}I=I- -64|0,g=k- -64|0,Q=Q-1|0,Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q}}function S(A,I,g,B){var Q=0,C=0,E=0,a=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0;if(c=i[A+36>>2],a=i[A+32>>2],E=i[A+28>>2],C=i[A+24>>2],o=i[A+20>>2],!B&g>>>0>=16|B)for(H=!n[A+80|0]<<24,s=i[A+4>>2],Y=r(s,5),D=i[A+8>>2],_=r(D,5),G=i[A+12>>2],k=r(G,5),Q=i[A+16>>2],u=r(Q,5),b=Q,w=i[A>>2];Q=eg(e=((n[I+3|0]|n[I+4|0]<<8|n[I+5|0]<<16|n[I+6|0]<<24)>>>2&67108863)+C|0,0,G,0),t=p,C=(y=eg(o=(67108863&(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24))+o|0,0,b,0))+Q|0,Q=p+t|0,Q=C>>>0>>0?Q+1|0:Q,f=C,C=eg(t=((n[I+6|0]|n[I+7|0]<<8|n[I+8|0]<<16|n[I+9|0]<<24)>>>4&67108863)+E|0,0,D,0),Q=p+Q|0,Q=C>>>0>(E=f+C|0)>>>0?Q+1|0:Q,C=E,E=eg(y=((n[I+9|0]|n[I+10|0]<<8|n[I+11|0]<<16|n[I+12|0]<<24)>>>6|0)+a|0,0,s,0),Q=p+Q|0,Q=E>>>0>(a=C+E|0)>>>0?Q+1|0:Q,C=a,a=eg(h=c+H+((n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24)>>>8)|0,0,w,0),Q=p+Q|0,m=c=C+a|0,c=a>>>0>c>>>0?Q+1|0:Q,Q=eg(e,0,D,0),E=p,a=(C=eg(o,0,G,0))+Q|0,Q=p+E|0,Q=C>>>0>a>>>0?Q+1|0:Q,E=eg(t,0,s,0),Q=p+Q|0,Q=E>>>0>(a=E+a|0)>>>0?Q+1|0:Q,E=eg(y,0,w,0),Q=p+Q|0,Q=E>>>0>(a=E+a|0)>>>0?Q+1|0:Q,E=eg(h,0,u,0),Q=p+Q|0,v=a=E+a|0,a=E>>>0>a>>>0?Q+1|0:Q,Q=eg(e,0,s,0),C=p,E=(l=eg(o,0,D,0))+Q|0,Q=p+C|0,Q=E>>>0>>0?Q+1|0:Q,C=eg(t,0,w,0),Q=p+Q|0,Q=C>>>0>(E=C+E|0)>>>0?Q+1|0:Q,C=eg(y,0,u,0),Q=p+Q|0,Q=C>>>0>(E=C+E|0)>>>0?Q+1|0:Q,C=eg(h,0,k,0),Q=p+Q|0,l=E=C+E|0,E=C>>>0>E>>>0?Q+1|0:Q,Q=eg(e,0,w,0),f=p,C=(F=eg(o,0,s,0))+Q|0,Q=p+f|0,Q=C>>>0>>0?Q+1|0:Q,f=eg(t,0,u,0),Q=p+Q|0,Q=(C=f+C|0)>>>0>>0?Q+1|0:Q,f=eg(y,0,k,0),Q=p+Q|0,Q=(C=f+C|0)>>>0>>0?Q+1|0:Q,f=eg(h,0,_,0),Q=p+Q|0,Q=(C=f+C|0)>>>0>>0?Q+1|0:Q,f=C,C=Q,Q=eg(e,0,u,0),F=p,e=(o=eg(o,0,w,0))+Q|0,Q=p+F|0,Q=e>>>0>>0?Q+1|0:Q,o=eg(t,0,k,0),Q=p+Q|0,Q=(e=o+e|0)>>>0>>0?Q+1|0:Q,o=eg(y,0,_,0),Q=p+Q|0,Q=(e=o+e|0)>>>0>>0?Q+1|0:Q,o=eg(h,0,Y,0),Q=p+Q|0,Q=(e=o+e|0)>>>0>>0?Q+1|0:Q,o=e,t=(67108863&Q)<<6|e>>>26,Q=C,t=(67108863&(Q=(e=t+f|0)>>>0>>0?Q+1|0:Q))<<6|(C=e)>>>26,Q=E,Q=(C=t+l|0)>>>0>>0?Q+1|0:Q,t=C,C=(67108863&Q)<<6|C>>>26,Q=a,y=E=C+v|0,E=(67108863&(Q=C>>>0>E>>>0?Q+1|0:Q))<<6|E>>>26,Q=c,c=a=E+m|0,C=(67108863&e)+((Q=r((67108863&(Q=E>>>0>a>>>0?Q+1|0:Q))<<6|a>>>26,5)+(67108863&o)|0)>>>26|0)|0,E=67108863&t,a=67108863&y,c&=67108863,o=67108863&Q,I=I+16|0,!(B=B-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|B;);i[A+20>>2]=o,i[A+36>>2]=c,i[A+32>>2]=a,i[A+28>>2]=E,i[A+24>>2]=C}function N(A,I,g){var B,Q,E,i,a=0,r=0,o=0,e=0,t=0;return h=E=h-160|0,mI(I,g,32,0),C[0|I]=248&n[0|I],C[I+31|0]=63&n[I+31|0]|64,CA(E,I),nI(A,E),r=n[(Q=g)+8|0]|n[Q+9|0]<<8|n[Q+10|0]<<16|n[Q+11|0]<<24,a=n[Q+12|0]|n[Q+13|0]<<8|n[Q+14|0]<<16|n[Q+15|0]<<24,o=n[Q+16|0]|n[Q+17|0]<<8|n[Q+18|0]<<16|n[Q+19|0]<<24,e=n[Q+20|0]|n[Q+21|0]<<8|n[Q+22|0]<<16|n[Q+23|0]<<24,t=n[0|Q]|n[Q+1|0]<<8|n[Q+2|0]<<16|n[Q+3|0]<<24,g=n[Q+4|0]|n[Q+5|0]<<8|n[Q+6|0]<<16|n[Q+7|0]<<24,B=I,i=n[Q+28|0]|n[Q+29|0]<<8|n[Q+30|0]<<16|n[Q+31|0]<<24,I=n[Q+24|0]|n[Q+25|0]<<8|n[Q+26|0]<<16|n[Q+27|0]<<24,C[B+24|0]=I,C[B+25|0]=I>>>8,C[B+26|0]=I>>>16,C[B+27|0]=I>>>24,C[B+28|0]=i,C[B+29|0]=i>>>8,C[B+30|0]=i>>>16,C[B+31|0]=i>>>24,C[B+16|0]=o,C[B+17|0]=o>>>8,C[B+18|0]=o>>>16,C[B+19|0]=o>>>24,C[B+20|0]=e,C[B+21|0]=e>>>8,C[B+22|0]=e>>>16,C[B+23|0]=e>>>24,C[B+8|0]=r,C[B+9|0]=r>>>8,C[B+10|0]=r>>>16,C[B+11|0]=r>>>24,C[B+12|0]=a,C[B+13|0]=a>>>8,C[B+14|0]=a>>>16,C[B+15|0]=a>>>24,C[0|B]=t,C[B+1|0]=t>>>8,C[B+2|0]=t>>>16,C[B+3|0]=t>>>24,C[B+4|0]=g,C[B+5|0]=g>>>8,C[B+6|0]=g>>>16,C[B+7|0]=g>>>24,o=n[(a=A)+8|0]|n[a+9|0]<<8|n[a+10|0]<<16|n[a+11|0]<<24,e=n[a+12|0]|n[a+13|0]<<8|n[a+14|0]<<16|n[a+15|0]<<24,t=n[a+16|0]|n[a+17|0]<<8|n[a+18|0]<<16|n[a+19|0]<<24,g=n[a+20|0]|n[a+21|0]<<8|n[a+22|0]<<16|n[a+23|0]<<24,I=n[0|a]|n[a+1|0]<<8|n[a+2|0]<<16|n[a+3|0]<<24,A=n[a+4|0]|n[a+5|0]<<8|n[a+6|0]<<16|n[a+7|0]<<24,r=n[a+28|0]|n[a+29|0]<<8|n[a+30|0]<<16|n[a+31|0]<<24,a=n[a+24|0]|n[a+25|0]<<8|n[a+26|0]<<16|n[a+27|0]<<24,C[B+56|0]=a,C[B+57|0]=a>>>8,C[B+58|0]=a>>>16,C[B+59|0]=a>>>24,C[B+60|0]=r,C[B+61|0]=r>>>8,C[B+62|0]=r>>>16,C[B+63|0]=r>>>24,C[B+48|0]=t,C[B+49|0]=t>>>8,C[B+50|0]=t>>>16,C[B+51|0]=t>>>24,C[B+52|0]=g,C[B+53|0]=g>>>8,C[B+54|0]=g>>>16,C[B+55|0]=g>>>24,C[B+40|0]=o,C[B+41|0]=o>>>8,C[B+42|0]=o>>>16,C[B+43|0]=o>>>24,C[B+44|0]=e,C[B+45|0]=e>>>8,C[B+46|0]=e>>>16,C[B+47|0]=e>>>24,C[B+32|0]=I,C[B+33|0]=I>>>8,C[B+34|0]=I>>>16,C[B+35|0]=I>>>24,C[B+36|0]=A,C[B+37|0]=A>>>8,C[B+38|0]=A>>>16,C[B+39|0]=A>>>24,h=E+160|0,0}function M(A,I,g){var B,Q=0,E=0,i=0;h=B=h+-64|0;A:{if(!(!g|g>>>0>=65)){if(Q=-1,!(n[A+80|0]|n[A+81|0]<<8|n[A+82|0]<<16|n[A+83|0]<<24|n[A+84|0]|n[A+85|0]<<8|n[A+86|0]<<16|n[A+87|0]<<24)){if(E=A,(Q=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)>>>0>=129){if(iA(A,128),l(A,i=A+96|0),Q=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,Q>>>0>=129)break A;X(i,A+224|0,Q),Q=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24}iA(E,Q),n[A+356|0]&&(C[A+88|0]=255,C[A+89|0]=255,C[A+90|0]=255,C[A+91|0]=255,C[A+92|0]=255,C[A+93|0]=255,C[A+94|0]=255,C[A+95|0]=255),C[A+80|0]=255,C[A+81|0]=255,C[A+82|0]=255,C[A+83|0]=255,C[A+84|0]=255,C[A+85|0]=255,C[A+86|0]=255,C[A+87|0]=255,EA((Q=A+96|0)+(E=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0,0,256-E|0),l(A,Q),tI(B,n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24),tI(8|B,n[A+8|0]|n[A+9|0]<<8|n[A+10|0]<<16|n[A+11|0]<<24,n[A+12|0]|n[A+13|0]<<8|n[A+14|0]<<16|n[A+15|0]<<24),tI(B+16|0,n[A+16|0]|n[A+17|0]<<8|n[A+18|0]<<16|n[A+19|0]<<24,n[A+20|0]|n[A+21|0]<<8|n[A+22|0]<<16|n[A+23|0]<<24),tI(B+24|0,n[A+24|0]|n[A+25|0]<<8|n[A+26|0]<<16|n[A+27|0]<<24,n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24),tI(B+32|0,n[A+32|0]|n[A+33|0]<<8|n[A+34|0]<<16|n[A+35|0]<<24,n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24),tI(B+40|0,n[A+40|0]|n[A+41|0]<<8|n[A+42|0]<<16|n[A+43|0]<<24,n[A+44|0]|n[A+45|0]<<8|n[A+46|0]<<16|n[A+47|0]<<24),tI(B+48|0,n[A+48|0]|n[A+49|0]<<8|n[A+50|0]<<16|n[A+51|0]<<24,n[A+52|0]|n[A+53|0]<<8|n[A+54|0]<<16|n[A+55|0]<<24),tI(B+56|0,n[A+56|0]|n[A+57|0]<<8|n[A+58|0]<<16|n[A+59|0]<<24,n[A+60|0]|n[A+61|0]<<8|n[A+62|0]<<16|n[A+63|0]<<24),X(I,B,g),fI(A,64),fI(Q,256),Q=0}return h=B- -64|0,Q}OI(),e()}t(1854,1886,306,1931),e()}function d(A,I){var g,B,Q,C,E,a,r,o,e,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,l=0,F=0;g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,u=HI(I+4|0),t=p,h=HI(I+7|0),c=p,D=HI(I+10|0),f=p,B=HI(I+13|0),s=p,y=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,Q=HI(I+20|0),l=p,C=HI(I+23|0),E=p,a=HI(I+26|0),r=p,o=HI(I+29|0),I=f<<3|D>>>29,F=f=D<<3,D=f=f+16777216|0,f=I=f>>>0<16777216?I+1|0:I,c=I=c<<5|h>>>27,e=w=h<<5,t=I=t<<6|(h=u)>>>26,u=I=16777216+(h<<=6)|0,w=I,I=(I=(t=I>>>0<16777216?t+1|0:t)>>25)+c|0,I=(t=e+(w=(33554431&t)<<7|w>>>25)|0)>>>0>>0?I+1|0:I,(c=t+33554432|0)>>>0<33554432&&(I=I+1|0),I=(F-(-33554432&D)|0)+((67108863&I)<<6|c>>>26)|0,i[A+12>>2]=I,I=-67108864&c,i[A+8>>2]=t-I,I=0,w=y=(c=y)+16777216|0,y=I=y>>>0<16777216?1:I,F=c-(-33554432&w)|0,I=s<<2|(c=B)>>>30,s=c<<2,c=I,I=(I=f>>25)+c|0,t=I=(f=(t=s)+(s=(33554431&f)<<7|D>>>25)|0)>>>0>>0?I+1|0:I,c=I=f+33554432|0,I=((67108863&(t=I>>>0<33554432?t+1|0:t))<<6|I>>>26)+F|0,i[A+20>>2]=I,I=-67108864&c,i[A+16>>2]=f-I,s=(t=Q)<<7,I=(I=l<<7|t>>>25)+(t=y>>25)|0,I=(y=s+(c=(33554431&y)<<7|w>>>25)|0)>>>0>>0?I+1|0:I,y=t=y,c=t=t+33554432|0,t=I=t>>>0<33554432?I+1|0:I,I=-67108864&c,i[(f=A)+24>>2]=y-I,y=f,I=E<<5|(f=C)>>>27,l=f<<=5,s=f=f+16777216|0,f=I=f>>>0<16777216?I+1|0:I,I=(l-(-33554432&s)|0)+((67108863&t)<<6|c>>>26)|0,i[y+28>>2]=I,c=(t=a)<<4,t=I=r<<4|t>>>28,I=(I=f>>25)+t|0,I=(f=(w=c)+(c=(33554431&f)<<7|s>>>25)|0)>>>0>>0?I+1|0:I,f=t=f,c=t=t+33554432|0,t=I=t>>>0<33554432?I+1|0:I,I=-67108864&c,i[y+32>>2]=f-I,I=0,f=y=(y=o)<<2&33554428,I=(y=y+16777216|0)>>>0<16777216?I+1|0:I,t=(f-(33554432&y)|0)+((67108863&t)<<6|c>>>26)|0,i[A+36>>2]=t,y=eg((33554431&I)<<7|y>>>25,I>>>25|0,19,0),I=p,I=(t=y+g|0)>>>0>>0?I+1|0:I,(f=t+33554432|0)>>>0<33554432&&(I=I+1|0),I=(h-(-33554432&u)|0)+((67108863&I)<<6|f>>>26)|0,i[A+4>>2]=I,I=A,A=-67108864&f,i[I>>2]=t-A}function P(A,I){var g,B,Q,C,E,n,a,r,o,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,l=0,F=0,G=0,k=0;l=t=i[(e=I)+4>>2],D=t>>31,F=t=i[e+8>>2],B=t>>31,w=t=i[e+12>>2],u=t>>31,G=t=i[e+16>>2],Q=t>>31,h=t=i[e+20>>2],s=t>>31,k=t=i[e+24>>2],C=t>>31,E=t=i[e>>2],n=t>>31,c=t=eg(e=i[e+36>>2],e>>31,121666,0),e=p,g=t=t+16777216|0,t=e=t>>>0<16777216?e+1|0:e,a=c-(-33554432&g)|0,f=eg(e=i[I+32>>2],e>>31,121666,0),r=p,c=eg(I=i[I+28>>2],I>>31,121666,0),e=p,y=f,o=I=c+16777216|0,f=I,I=(I=(e=I>>>0<16777216?e+1|0:e)>>25)+r|0,I=(e=y+(f=(33554431&e)<<7|f>>>25)|0)>>>0>>0?I+1|0:I,f=e,e=I,y=I=f+33554432|0,I=((67108863&(e=I>>>0<33554432?e+1|0:e))<<6|I>>>26)+a|0,i[A+36>>2]=I,I=-67108864&y,i[A+32>>2]=f-I,y=c-(-33554432&o)|0,e=eg(k,C,121666,0),k=p,c=eg(h,s,121666,0),I=p,f=e,h=e=c+16777216|0,s=e,e=(e=(I=e>>>0<16777216?I+1|0:I)>>25)+k|0,e=(I=f+(s=(33554431&I)<<7|s>>>25)|0)>>>0>>0?e+1|0:e,(f=I+33554432|0)>>>0<33554432&&(e=e+1|0),e=y+((67108863&e)<<6|f>>>26)|0,i[A+28>>2]=e,e=-67108864&f,i[A+24>>2]=I-e,h=c-(-33554432&h)|0,I=eg(G,Q,121666,0),G=p,c=eg(w,u,121666,0),e=p,y=I,w=I=c+16777216|0,u=(33554431&(e=I>>>0<16777216?e+1|0:e))<<7|I>>>25,e=(e>>25)+G|0,I=e=(f=y+u|0)>>>0>>0?e+1|0:e,I=((67108863&(I=(e=f+33554432|0)>>>0<33554432?I+1|0:I))<<6|e>>>26)+h|0,i[A+20>>2]=I,I=-67108864&e,i[A+16>>2]=f-I,w=c-(-33554432&w)|0,e=eg(F,B,121666,0),F=p,c=eg(l,D,121666,0),I=p,y=e,l=e=c+16777216|0,D=(33554431&(I=e>>>0<16777216?I+1|0:I))<<7|e>>>25,I=(I>>25)+F|0,e=I=(f=y+D|0)>>>0>>0?I+1|0:I,y=I=f+33554432|0,I=((67108863&(e=I>>>0<33554432?e+1|0:e))<<6|I>>>26)+w|0,i[A+12>>2]=I,I=-67108864&y,i[A+8>>2]=f-I,I=eg((33554431&t)<<7|g>>>25,t>>25,19,0),e=p,y=c-(-33554432&l)|0,t=eg(E,n,121666,0),e=p+e|0,e=(I=t+I|0)>>>0>>0?e+1|0:e,(t=I+33554432|0)>>>0<33554432&&(e=e+1|0),e=y+((67108863&e)<<6|t>>>26)|0,i[A+4>>2]=e,e=A,A=-67108864&t,i[e>>2]=I-A}function R(A,I,g,B){var Q,E=0,a=0;h=Q=h-16|0,E=-31;A:{I:{g:{B:switch(B-1|0){case 1:if(I>>>0<13)break I;B=n[35660]|n[35661]<<8|n[35662]<<16|n[35663]<<24,E=n[35656]|n[35657]<<8|n[35658]<<16|n[35659]<<24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,B=n[35665]|n[35666]<<8|n[35667]<<16|n[35668]<<24,E=n[35661]|n[35662]<<8|n[35663]<<16|n[35664]<<24,C[A+5|0]=E,C[A+6|0]=E>>>8,C[A+7|0]=E>>>16,C[A+8|0]=E>>>24,C[A+9|0]=B,C[A+10|0]=B>>>8,C[A+11|0]=B>>>16,C[A+12|0]=B>>>24,a=-12,B=12;break g;case 0:break B;default:break A}if(I>>>0<12)break I;B=n[35673]|n[35674]<<8|n[35675]<<16|n[35676]<<24,E=n[35669]|n[35670]<<8|n[35671]<<16|n[35672]<<24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,B=n[35677]|n[35678]<<8|n[35679]<<16|n[35680]<<24,C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,a=-11,B=11}if(E=oA(g))break A;if(qA(Q+5|0,19),!((E=I+a|0)>>>0<=(I=YA(Q+5|0))>>>0)&&(A=X(A+B|0,Q+5|0,I+1|0),!((B=E-I|0)>>>0<4)&&(C[0|(A=A+I|0)]=36,C[A+1|0]=109,C[A+2|0]=61,C[A+3|0]=0,qA(Q+5|0,i[g+44>>2]),!((B=B-3|0)>>>0<=(I=YA(Q+5|0))>>>0)&&(A=X(A+3|0,Q+5|0,I+1|0),!((B=B-I|0)>>>0<4)&&(C[0|(A=A+I|0)]=44,C[A+1|0]=116,C[A+2|0]=61,C[A+3|0]=0,qA(Q+5|0,i[g+40>>2]),!((B=B-3|0)>>>0<=(I=YA(Q+5|0))>>>0)&&(A=X(A+3|0,Q+5|0,I+1|0),!((B=B-I|0)>>>0<4)&&(C[0|(A=A+I|0)]=44,C[A+1|0]=112,C[A+2|0]=61,C[A+3|0]=0,qA(Q+5|0,i[g+48>>2]),!((B=B-3|0)>>>0<=(I=YA(Q+5|0))>>>0)&&(A=X(A+3|0,Q+5|0,I+1|0),!((B=B-I|0)>>>0<2)&&(C[0|(A=A+I|0)]=36,C[A+1|0]=0,O(A=A+1|0,I=B-1|0,i[g+16>>2],i[g+20>>2],3)))))))))){if(E=-31,(B=(B=I)-(I=YA(A))|0)>>>0<2)break A;return C[0|(A=A+I|0)]=36,C[A+1|0]=0,A=O(A+1|0,B-1|0,i[g>>2],i[g+4>>2],3),h=Q+16|0,A?0:-31}}E=-31}return h=Q+16|0,E}function J(A,I,g,B){var Q,E=0;Q=E=h,h=E=E-576&-64,i[E+188>>2]=0,xI(E+188|0,I);A:if(I>>>0<=64){if((0|iI(E+192|0,0,0,I))<0)break A;if((0|hg(E+192|0,E+188|0,4,0))<0)break A;if((0|hg(E+192|0,g,B,0))<0)break A;dI(E+192|0,A,I)}else if(!((0|iI(E+192|0,0,0,64))<0||(0|hg(E+192|0,E+188|0,4,0))<0||(0|hg(E+192|0,g,B,0))<0||(0|dI(E+192|0,E+112|0,64))<0)){if(g=i[E+116>>2],B=i[E+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[E+124>>2],B=i[E+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[E+140>>2],B=i[E+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[E+132>>2],B=i[E+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(X(E+48|0,E+112|0,64),(0|GI(E+112|0,64,E+48|0,64,0,0,0))<0)break A;if(g=i[E+116>>2],B=i[E+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[E+124>>2],B=i[E+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[E+140>>2],B=i[E+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[E+132>>2],B=i[E+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}X(E+48|0,E+112|0,64),(0|GI(E+112|0,I,E+48|0,64,0,0,0))<0||X(A,E+112|0,I)}fI(E+192|0,384),h=Q}function x(A,I,g){var B=0,Q=0,C=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0;for(C=2036477234,e=857760878,t=1634760805,E=1797285236,o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,B=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,Q=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,a=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,c=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,y=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,w=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,h=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,f=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,I=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24;r=o,t=Hg((s=g)^(g=o+t|0),16),r=c=Hg(r^(o=t+c|0),12),c=Hg((s=t)^(t=g+c|0),8),o=Hg(r^(D=c+o|0),7),r=B,e=Hg((g=B+e|0)^f,16),r=f=Hg(r^(B=e+y|0),12),f=Hg((s=e)^(e=g+f|0),8),g=Hg(r^(y=f+B|0),7),r=Q,B=Hg((C=C+Q|0)^i,16),r=i=Hg(r^(Q=B+w|0),12),s=Hg(B^(i=C+i|0),8),C=Hg(r^(B=s+Q|0),7),E=Hg((Q=I)^(I=E+a|0),16),a=Hg((Q=E+h|0)^a,12),I=Hg(E^(u=I+a|0),8),E=Hg(a^(Q=I+Q|0),7),r=B,B=Hg((B=I)^(I=g+t|0),16),g=Hg((a=r+B|0)^g,12),I=Hg(B^(t=I+g|0),8),B=Hg(g^(w=a+I|0),7),r=Q,Q=Hg((g=C+e|0)^c,16),C=Hg((a=r+Q|0)^C,12),g=Hg(Q^(e=g+C|0),8),Q=Hg(C^(h=a+g|0),7),a=Hg((C=E+i|0)^f,16),E=Hg((i=a+D|0)^E,12),f=Hg(a^(C=C+E|0),8),a=Hg(E^(c=i+f|0),7),i=Hg((E=o+u|0)^s,16),o=Hg((y=i+y|0)^o,12),i=Hg(i^(E=E+o|0),8),o=Hg(o^(y=y+i|0),7),10!=(0|(p=p+1|0)););xI(A,t),xI(A+4|0,e),xI(A+8|0,C),xI(A+12|0,E),xI(A+16|0,g),xI(A+20|0,f),xI(A+24|0,i),xI(A+28|0,I)}function L(A){var I,g=0,B=0;h=I=h-48|0,g=n[28+(A|=0)|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,i[I+24>>2]=n[A+24|0]|n[A+25|0]<<8|n[A+26|0]<<16|n[A+27|0]<<24,i[I+28>>2]=g,g=n[A+20|0]|n[A+21|0]<<8|n[A+22|0]<<16|n[A+23|0]<<24,i[I+16>>2]=n[A+16|0]|n[A+17|0]<<8|n[A+18|0]<<16|n[A+19|0]<<24,i[I+20>>2]=g,g=n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24,i[I>>2]=n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,i[I+4>>2]=g,g=n[A+12|0]|n[A+13|0]<<8|n[A+14|0]<<16|n[A+15|0]<<24,i[I+8>>2]=n[A+8|0]|n[A+9|0]<<8|n[A+10|0]<<16|n[A+11|0]<<24,i[I+12>>2]=g,g=n[A+40|0]|n[A+41|0]<<8|n[A+42|0]<<16|n[A+43|0]<<24,i[I+32>>2]=n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24,i[I+36>>2]=g,Vg[i[8957]](I,I,40,0,A+32|0,0,A),g=i[I+28>>2],B=i[I+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[I+36>>2],B=i[I+32>>2],C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,C[A+40|0]=g,C[A+41|0]=g>>>8,C[A+42|0]=g>>>16,C[A+43|0]=g>>>24,XI(A),h=I+48|0}function K(A,I,g){var B=0,Q=0,C=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0,l=0,F=0;for(Q=2036477234,C=857760878,E=1634760805,i=1797285236,w=20,o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,s=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,h=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,c=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,e=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,a=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,t=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,f=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,r=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,B=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,I=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24;D=B,B=Hg(E+a|0,7)^c,y=D^Hg(B+E|0,9),u=Hg(B+y|0,13)^a,c=Hg(y+u|0,18),I=Hg(C+o|0,7)^I,t=Hg(I+C|0,9)^t,o=Hg(I+t|0,13)^o,l=Hg(t+o|0,18),f=Hg(g+Q|0,7)^f,a=Hg(f+Q|0,9)^s,p=Hg(a+f|0,13)^g,F=Hg(a+p|0,18),g=Hg(i+e|0,7)^h,r=Hg(g+i|0,9)^r,e=Hg(g+r|0,13)^e,D=Hg(r+e|0,18),o=Hg((E^=c)+g|0,7)^o,s=Hg(o+E|0,9)^a,h=Hg(o+s|0,13)^g,E=Hg(s+h|0,18)^E,g=Hg((C^=l)+B|0,7)^p,r=Hg(g+C|0,9)^r,c=Hg(g+r|0,13)^B,C=Hg(r+c|0,18)^C,e=Hg((Q^=F)+I|0,7)^e,B=Hg(e+Q|0,9)^y,I=Hg(B+e|0,13)^I,Q=Hg(I+B|0,18)^Q,a=Hg((i^=D)+f|0,7)^u,t=Hg(a+i|0,9)^t,f=Hg(a+t|0,13)^f,i=Hg(t+f|0,18)^i,y=w>>>0>2,w=w-2|0,y;);return xI(A,E),xI(A+4|0,C),xI(A+8|0,Q),xI(A+12|0,i),xI(A+16|0,g),xI(A+20|0,r),xI(A+24|0,B),xI(A+28|0,I),0}function q(A,I,g,B,Q,E,a){var r,o,e,t,f,c,y,s=0;return h=r=h-560|0,ig(r+352|0,a),mI(r+288|0,E,32,0),V(r+352|0,r+320|0,32,0),V(r+352|0,g,B,Q),UI(r+352|0,r+224|0),o=n[(s=E)+32|0]|n[s+33|0]<<8|n[s+34|0]<<16|n[s+35|0]<<24,e=n[s+36|0]|n[s+37|0]<<8|n[s+38|0]<<16|n[s+39|0]<<24,t=n[s+40|0]|n[s+41|0]<<8|n[s+42|0]<<16|n[s+43|0]<<24,f=n[s+44|0]|n[s+45|0]<<8|n[s+46|0]<<16|n[s+47|0]<<24,c=n[s+48|0]|n[s+49|0]<<8|n[s+50|0]<<16|n[s+51|0]<<24,E=n[s+52|0]|n[s+53|0]<<8|n[s+54|0]<<16|n[s+55|0]<<24,y=n[s+60|0]|n[s+61|0]<<8|n[s+62|0]<<16|n[s+63|0]<<24,s=n[s+56|0]|n[s+57|0]<<8|n[s+58|0]<<16|n[s+59|0]<<24,C[A+56|0]=s,C[A+57|0]=s>>>8,C[A+58|0]=s>>>16,C[A+59|0]=s>>>24,C[A+60|0]=y,C[A+61|0]=y>>>8,C[A+62|0]=y>>>16,C[A+63|0]=y>>>24,C[A+48|0]=c,C[A+49|0]=c>>>8,C[A+50|0]=c>>>16,C[A+51|0]=c>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=t,C[A+41|0]=t>>>8,C[A+42|0]=t>>>16,C[A+43|0]=t>>>24,C[A+44|0]=f,C[A+45|0]=f>>>8,C[A+46|0]=f>>>16,C[A+47|0]=f>>>24,C[0|(E=A+32|0)]=o,C[E+1|0]=o>>>8,C[E+2|0]=o>>>16,C[E+3|0]=o>>>24,C[E+4|0]=e,C[E+5|0]=e>>>8,C[E+6|0]=e>>>16,C[E+7|0]=e>>>24,G(r+224|0),CA(r,r+224|0),nI(A,r),ig(r+352|0,a),V(r+352|0,A,64,0),V(r+352|0,g,B,Q),UI(r+352|0,r+160|0),G(r+160|0),C[r+288|0]=248&n[r+288|0],C[r+319|0]=63&n[r+319|0]|64,function(A,I,g,B){var Q,E,i,a,r,o,e,t,f,c,y,s,w,h,D,u,l,F,G,k,_,H,Y,b,m,v,U,S,N,M,d,P,R,J,x,L,K,q,X,V,W,T,j,Z,O,z,$,AA,IA=0,gA=0,BA=0,QA=0,CA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,eA=0,tA=0,fA=0,cA=0,yA=0,sA=0,wA=0,hA=0,DA=0,uA=0,pA=0,lA=0,FA=0,GA=0,kA=0,_A=0,HA=0,YA=0,bA=0,mA=0,vA=0,UA=0,SA=0,NA=0,MA=0,dA=0,PA=0,RA=0,JA=0,xA=0,LA=0,KA=0,qA=0,XA=0,VA=0,WA=0,TA=0,jA=0,ZA=0,OA=0;RA=HI(I),sA=n[I+2|0]|n[I+3|0]<<8|n[I+4|0]<<16|n[I+5|0]<<24,WA=HI(I+5|0),YA=p,wA=n[I+7|0]|n[I+8|0]<<8|n[I+9|0]<<16|n[I+10|0]<<24,hA=n[I+10|0]|n[I+11|0]<<8|n[I+12|0]<<16|n[I+13|0]<<24,mA=HI(I+13|0),oA=p,tA=n[I+15|0]|n[I+16|0]<<8|n[I+17|0]<<16|n[I+18|0]<<24,KA=HI(I+18|0),fA=p,bA=HI(I+21|0),iA=n[I+23|0]|n[I+24|0]<<8|n[I+25|0]<<16|n[I+26|0]<<24,aA=HI(I+26|0),QA=p,BA=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,NA=HI(g),pA=n[(I=g)+2|0]|n[I+3|0]<<8|n[I+4|0]<<16|n[I+5|0]<<24,XA=HI(I+5|0),rA=p,cA=n[I+7|0]|n[I+8|0]<<8|n[I+9|0]<<16|n[I+10|0]<<24,yA=n[I+10|0]|n[I+11|0]<<8|n[I+12|0]<<16|n[I+13|0]<<24,VA=HI(I+13|0),eA=p,CA=n[I+15|0]|n[I+16|0]<<8|n[I+17|0]<<16|n[I+18|0]<<24,qA=HI(I+18|0),gA=p,JA=HI(I+21|0),IA=n[I+23|0]|n[I+24|0]<<8|n[I+25|0]<<16|n[I+26|0]<<24,nA=HI(I+26|0),g=p,I=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,Z=HI(B),O=n[B+2|0]|n[B+3|0]<<8|n[B+4|0]<<16|n[B+5|0]<<24,z=HI(B+5|0),$=p,MA=n[B+7|0]|n[B+8|0]<<8|n[B+9|0]<<16|n[B+10|0]<<24,xA=n[B+10|0]|n[B+11|0]<<8|n[B+12|0]<<16|n[B+13|0]<<24,LA=HI(B+13|0),SA=p,vA=n[B+15|0]|n[B+16|0]<<8|n[B+17|0]<<16|n[B+18|0]<<24,TA=HI(B+18|0),_A=p,FA=HI(B+21|0),I=eg(Q=I>>>7|0,0,E=2097151&((3&QA)<<30|aA>>>2),0),EA=p,QA=I,I=eg(i=2097151&((3&g)<<30|nA>>>2),0,a=BA>>>7|0,0),g=p+EA|0,EA=BA=QA+I|0,BA=I>>>0>BA>>>0?g+1|0:g,I=eg(E,0,i,0),QA=p,IA=(g=eg(r=IA>>>5&2097151,0,a,0))+I|0,I=p+QA|0,g=I=g>>>0>IA>>>0?I+1|0:I,I=eg(Q,0,o=iA>>>5&2097151,0),g=p+g|0,iA=IA=I+IA|0,lA=g=I>>>0>IA>>>0?g+1|0:g,DA=(I=IA)- -1048576|0,uA=g=g-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+BA|0,aA=I=(g=(2097151&g)<<11|DA>>>21)>>>0>(BA=QA=g+EA|0)>>>0?I+1|0:I,GA=(I=BA)- -1048576|0,nA=EA=aA-((I>>>0<4293918720)-1|0)|0,QA=eg(Q,0,a,0),g=HA=(PA=p)-(((I=QA)>>>0<4293918720)-1|0)|0,IA=EA>>21,HA=(2097151&EA)<<11|GA>>>21,QA=I-(EA=-2097152&(dA=I- -1048576|0))|0,I=(PA-((I>>>0>>0)+g|0)|0)+IA|0,P=I=QA>>>0>(v=HA+QA|0)>>>0?I+1|0:I,EA=eg(v,I,-683901,-1),QA=p,R=I=g>>21,I=eg(S=(2097151&g)<<11|dA>>>21,I,136657,0),IA=p+QA|0,HA=g=I+EA|0,EA=I>>>0>g>>>0?IA+1|0:IA,I=eg(e=2097151&((1&eA)<<31|VA>>>1),0,E,0),g=p,IA=I,I=eg(t=yA>>>4&2097151,0,a,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,I=eg(f=CA>>>6&2097151,0,o,0),g=p+g|0,g=I>>>0>(IA=I+IA|0)>>>0?g+1|0:g,m=I=0,QA=IA,IA=eg(c=2097151&JA,I,y=2097151&((7&fA)<<29|KA>>>3),0),I=p+g|0,I=IA>>>0>(QA=QA+IA|0)>>>0?I+1|0:I,IA=eg(s=2097151&((7&gA)<<29|qA>>>3),0,w=2097151&bA,0),g=p+I|0,g=IA>>>0>(QA=IA+QA|0)>>>0?g+1|0:g,I=eg(r,0,h=tA>>>6&2097151,0),IA=p+g|0,IA=I>>>0>(QA=I+QA|0)>>>0?IA+1|0:IA,g=eg(i,0,D=2097151&((1&oA)<<31|mA>>>1),0),I=p+IA|0,g=g>>>0>(IA=QA=g+QA|0)>>>0?I+1|0:I,I=eg(Q,0,u=hA>>>4&2097151,0),g=p+g|0,fA=IA=I+IA|0,QA=I>>>0>IA>>>0?g+1|0:g,I=eg(E,0,t,0),g=p,gA=(IA=I)+(I=eg(l=cA>>>7&2097151,0,a,0))|0,IA=p+g|0,IA=I>>>0>gA>>>0?IA+1|0:IA,g=eg(o,0,e,0),I=p+IA|0,I=g>>>0>(gA=g+gA|0)>>>0?I+1|0:I,IA=eg(f,0,w,0),g=p+I|0,g=IA>>>0>(gA=IA+gA|0)>>>0?g+1|0:g,I=eg(c,m,h,0),g=p+g|0,g=I>>>0>(IA=I+gA|0)>>>0?g+1|0:g,gA=(I=IA)+(IA=eg(y,0,s,0))|0,I=p+g|0,I=IA>>>0>gA>>>0?I+1|0:I,g=eg(r,0,D,0),IA=p+I|0,IA=g>>>0>(gA=g+gA|0)>>>0?IA+1|0:IA,g=eg(i,0,u,0),I=p+IA|0,g=g>>>0>(IA=gA=g+gA|0)>>>0?I+1|0:I,I=eg(Q,0,F=wA>>>7&2097151,0),g=p+g|0,yA=IA=I+IA|0,CA=g=I>>>0>IA>>>0?g+1|0:g,eA=(I=IA)- -1048576|0,gA=g=g-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+QA|0,g=I=(g=(2097151&g)<<11|eA>>>21)>>>0>(cA=g+fA|0)>>>0?I+1|0:I,I=I+EA|0,I=(IA=QA=cA)>>>0>(cA=IA+HA|0)>>>0?I+1|0:I,EA=(EA=g)-(((g=QA)>>>0<4293918720)-1|0)|0,oA=g- -1048576|0,tA=(g=IA=cA)-(IA=-2097152&oA)|0,fA=I-((QA=EA)+(g>>>0>>0)|0)|0,N=BA-(I=-2097152&GA)|0,J=g=aA-((I>>>0>BA>>>0)+nA|0)|0,I=eg(S,R,-997805,-1),IA=p+CA|0,IA=I>>>0>(BA=I+yA|0)>>>0?IA+1|0:IA,CA=(I=BA)+(BA=eg(v,P,136657,0))|0,I=p+IA|0,g=eg(N,g,-683901,-1),I=p+(BA>>>0>CA>>>0?I+1|0:I)|0,I=g>>>0>(IA=g+CA|0)>>>0?I+1|0:I,EA=IA-(g=-2097152&eA)|0,CA=I-((g>>>0>IA>>>0)+gA|0)|0,I=eg(E,0,l,0),IA=p,BA=(g=eg(G=2097151&((3&rA)<<30|XA>>>2),0,a,0))+I|0,I=p+IA|0,I=g>>>0>BA>>>0?I+1|0:I,IA=eg(o,0,t,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,I=eg(e,0,w,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,g=eg(f,0,y,0),I=p+IA|0,I=g>>>0>(BA=g+BA|0)>>>0?I+1|0:I,IA=eg(c,m,D,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,IA=eg(s,0,h,0),I=p+g|0,I=IA>>>0>(BA=IA+BA|0)>>>0?I+1|0:I,IA=eg(r,0,u,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,I=eg(i,0,F,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,g=eg(Q,0,k=2097151&((3&YA)<<30|WA>>>2),0),I=p+IA|0,BA=g>>>0>(gA=BA=g+BA|0)>>>0?I+1|0:I,I=eg(E,0,G,0),g=p,IA=I,I=eg(_=pA>>>5&2097151,0,a,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,nA=(I=eg(o,0,l,0))+IA|0,IA=p+g|0,IA=I>>>0>nA>>>0?IA+1|0:IA,g=eg(t,0,w,0),I=p+IA|0,I=g>>>0>(nA=g+nA|0)>>>0?I+1|0:I,g=eg(e,0,y,0),I=p+I|0,I=g>>>0>(IA=g+nA|0)>>>0?I+1|0:I,nA=(g=IA)+(IA=eg(f,0,h,0))|0,g=p+I|0,g=IA>>>0>nA>>>0?g+1|0:g,I=eg(c,m,u,0),g=p+g|0,g=I>>>0>(IA=I+nA|0)>>>0?g+1|0:g,nA=(I=eg(s,0,D,0))+IA|0,IA=p+g|0,IA=I>>>0>nA>>>0?IA+1|0:IA,g=eg(r,0,F,0),I=p+IA|0,I=g>>>0>(nA=g+nA|0)>>>0?I+1|0:I,g=eg(i,0,k,0),I=p+I|0,g=I=g>>>0>(IA=g+nA|0)>>>0?I+1|0:I,I=eg(Q,0,H=sA>>>5&2097151,0),g=p+g|0,cA=IA=I+IA|0,XA=g=I>>>0>IA>>>0?g+1|0:g,AA=(I=IA)- -1048576|0,VA=IA=g-((I>>>0<4293918720)-1|0)|0,I=(I=IA>>21)+BA|0,yA=IA=(g=(2097151&IA)<<11|AA>>>21)+gA|0,qA=I=g>>>0>IA>>>0?I+1|0:I,WA=(I=IA)- -1048576|0,JA=IA=qA-((I>>>0<4293918720)-1|0)|0,g=(I=IA>>21)+CA|0,eA=BA=(IA=(2097151&IA)<<11|WA>>>21)+EA|0,PA=g=IA>>>0>BA>>>0?g+1|0:g,mA=(I=BA)- -1048576|0,HA=IA=g-((I>>>0<4293918720)-1|0)|0,I=(I=IA>>21)+fA|0,CA=IA=(g=(2097151&IA)<<11|mA>>>21)+tA|0,sA=IA=(GA=I=g>>>0>IA>>>0?I+1|0:I)-(((I=IA)>>>0<4293918720)-1|0)|0,aA=(2097151&IA)<<11|(bA=I- -1048576|0)>>>21,gA=IA>>21,I=eg(E,0,f,0),g=p,IA=I,I=eg(a,0,e,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,I=eg(c,m,w,0),g=p+g|0,g=I>>>0>(IA=I+IA|0)>>>0?g+1|0:g,BA=(I=IA)+(IA=eg(o,0,s,0))|0,I=p+g|0,I=IA>>>0>BA>>>0?I+1|0:I,g=eg(r,0,y,0),IA=p+I|0,IA=g>>>0>(BA=g+BA|0)>>>0?IA+1|0:IA,g=eg(i,0,h,0),I=p+IA|0,I=g>>>0>(BA=g+BA|0)>>>0?I+1|0:I,IA=eg(Q,0,D,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,IA=eg(S,R,-683901,-1),g=(I=g)+p|0,g=IA>>>0>(EA=BA+IA|0)>>>0?g+1|0:g,IA=EA,EA=(EA=I)-(((I=BA)>>>0<4293918720)-1|0)|0,pA=I- -1048576|0,nA=(I=IA)-(IA=-2097152&pA)|0,IA=g-((BA=EA)+(I>>>0>>0)|0)|0,I=(I=QA>>21)+IA|0,I=(g=(2097151&QA)<<11|oA>>>21)>>>0>(QA=g+nA|0)>>>0?I+1|0:I,EA=(g=QA)-(IA=-2097152&(rA=g- -1048576|0))|0,IA=(I-((g>>>0>>0)+(QA=nA=I-((g>>>0<4293918720)-1|0)|0)|0)|0)+gA|0,x=aA=EA+aA|0,L=IA=EA>>>0>aA>>>0?IA+1|0:IA,nA=eg(aA,IA,-683901,-1),EA=p,g=eg(o,0,c,m),I=p,IA=g,g=eg(a,0,f,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,gA=(g=IA)+(IA=eg(E,0,s,0))|0,g=p+I|0,g=IA>>>0>gA>>>0?g+1|0:g,IA=eg(r,0,w,0),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,IA=eg(i,0,y,0),g=p+I|0,g=IA>>>0>(gA=IA+gA|0)>>>0?g+1|0:g,I=eg(Q,0,h,0),IA=p+g|0,IA=I>>>0>(gA=I+gA|0)>>>0?IA+1|0:IA,I=(I=BA>>21)+IA|0,wA=gA=(I=(g=(2097151&BA)<<11|pA>>>21)>>>0>(BA=g+gA|0)>>>0?I+1|0:I)-(((g=BA)>>>0<4293918720)-1|0)|0,BA=g-(IA=-2097152&(UA=g- -1048576|0))|0,IA=(I-((g>>>0>>0)+gA|0)|0)+(QA>>21)|0,K=BA=(I=(2097151&QA)<<11|rA>>>21)+BA|0,q=IA=I>>>0>BA>>>0?IA+1|0:IA,g=eg(BA,IA,136657,0),I=p+EA|0,KA=IA=g+nA|0,hA=g>>>0>IA>>>0?I+1|0:I,g=eg(w,0,_,0),I=p,IA=g,g=eg(Y=2097151&NA,0,o,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,BA=(g=IA)+(IA=eg(y,0,G,0))|0,g=p+I|0,g=IA>>>0>BA>>>0?g+1|0:g,I=eg(h,0,l,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,g=eg(t,0,D,0),I=p+IA|0,I=g>>>0>(BA=g+BA|0)>>>0?I+1|0:I,IA=eg(e,0,u,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,IA=eg(f,0,F,0),I=p+g|0,I=IA>>>0>(BA=IA+BA|0)>>>0?I+1|0:I,IA=eg(c,m,H,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,I=eg(s,0,k,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,g=eg(r,0,b=2097151&RA,0),I=p+IA|0,I=g>>>0>(BA=g+BA|0)>>>0?I+1|0:I,QA=BA=(IA=(n[B+23|0]|n[B+24|0]<<8|n[B+25|0]<<16|n[B+26|0]<<24)>>>5&2097151)+BA|0,BA=IA>>>0>BA>>>0?I+1|0:I,I=eg(y,0,_,0),g=p,IA=I,I=eg(w,0,Y,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,gA=(I=eg(h,0,G,0))+IA|0,IA=p+g|0,IA=I>>>0>gA>>>0?IA+1|0:IA,g=eg(D,0,l,0),I=p+IA|0,I=g>>>0>(gA=g+gA|0)>>>0?I+1|0:I,g=eg(t,0,u,0),I=p+I|0,I=g>>>0>(IA=g+gA|0)>>>0?I+1|0:I,gA=(g=IA)+(IA=eg(e,0,F,0))|0,g=p+I|0,g=IA>>>0>gA>>>0?g+1|0:g,I=eg(f,0,k,0),g=p+g|0,g=I>>>0>(IA=I+gA|0)>>>0?g+1|0:g,gA=(I=eg(c,m,b,0))+IA|0,IA=p+g|0,IA=I>>>0>gA>>>0?IA+1|0:IA,g=eg(s,0,H,0),I=p+IA|0,I=g>>>0>(gA=g+gA|0)>>>0?I+1|0:I,gA=IA=(g=2097151&FA)+gA|0,tA=IA=(oA=I=g>>>0>IA>>>0?I+1|0:I)-(((I=IA)>>>0<4293918720)-1|0)|0,I=(2097151&IA)<<11|(YA=I- -1048576|0)>>>21,IA=(IA>>>21|0)+BA|0,rA=IA=I>>>0>(QA=I+QA|0)>>>0?IA+1|0:IA,NA=iA-(I=-2097152&DA)|0,FA=lA-((I>>>0>iA>>>0)+uA|0)|0,g=eg(E,0,r,0),I=p,IA=g,g=eg(a,0,c,m),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,BA=(g=IA)+(IA=eg(i,0,o,0))|0,g=p+I|0,g=IA>>>0>BA>>>0?g+1|0:g,I=eg(Q,0,w,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,EA=BA,I=eg(a,0,s,0),g=p,BA=I,I=eg(E,0,c,m),g=p+g|0,g=I>>>0>(BA=BA+I|0)>>>0?g+1|0:g,iA=(I=BA)+(BA=eg(o,0,r,0))|0,I=p+g|0,I=BA>>>0>iA>>>0?I+1|0:I,g=eg(i,0,w,0),I=p+I|0,I=g>>>0>(BA=g+iA|0)>>>0?I+1|0:I,iA=(g=BA)+(BA=eg(Q,0,y,0))|0,g=p+I|0,aA=g=BA>>>0>iA>>>0?g+1|0:g,lA=(I=BA=iA)- -1048576|0,nA=iA=g-((I>>>0<4293918720)-1|0)|0,g=(I=iA>>21)+IA|0,EA=g=(IA=EA=(iA=(2097151&iA)<<11|lA>>>21)+EA|0)>>>0>>0?g+1|0:g,uA=(I=IA)- -1048576|0,g=(I=(iA=DA=g-((I>>>0<4293918720)-1|0)|0)>>21)+FA|0,X=g=(DA=(2097151&iA)<<11|uA>>>21)>>>0>(U=NA=DA+NA|0)>>>0?g+1|0:g,FA=eg(U,g,470296,0),DA=p,M=IA-(g=-2097152&uA)|0,dA=I=EA-((g>>>0>IA>>>0)+iA|0)|0,g=eg(N,J,666643,0),IA=p+DA|0,IA=g>>>0>(iA=g+FA|0)>>>0?IA+1|0:IA,g=eg(M,I,654183,0),I=p+IA|0,g=g>>>0>(EA=iA=g+iA|0)>>>0?I+1|0:I,I=BA-(IA=-2097152&lA)|0,IA=(wA>>21)+(iA=aA-((IA>>>0>BA>>>0)+nA|0)|0)|0,V=nA=(BA=(2097151&wA)<<11|UA>>>21)+I|0,RA=IA=BA>>>0>nA>>>0?IA+1|0:IA,jA=QA- -1048576|0,BA=iA=rA-((QA>>>0<4293918720)-1|0)|0,I=eg(nA,IA,-997805,-1),g=p+g|0,I=(g=I>>>0>(IA=I+EA|0)>>>0?g+1|0:g)+rA|0,I=IA>>>0>(QA=IA+QA|0)>>>0?I+1|0:I,FA=(IA=QA)-(g=-2097152&jA)|0,DA=I-((g>>>0>IA>>>0)+BA|0)|0,I=eg(M,dA,470296,0),g=p,QA=(IA=I)+(I=eg(U,X,666643,0))|0,IA=p+g|0,IA=I>>>0>QA>>>0?IA+1|0:IA,g=eg(nA,RA,654183,0),I=p+IA|0,g=oA+(g>>>0>(QA=g+QA|0)>>>0?I+1|0:I)|0,rA=(IA=gA+QA|0)-(I=-2097152&YA)|0,iA=(g=IA>>>0>>0?g+1|0:g)-((I>>>0>IA>>>0)+tA|0)|0,g=eg(h,0,_,0),I=p,IA=g,g=eg(y,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,g=eg(D,0,G,0),I=p+I|0,I=g>>>0>(IA=g+IA|0)>>>0?I+1|0:I,QA=(g=IA)+(IA=eg(u,0,l,0))|0,g=p+I|0,g=IA>>>0>QA>>>0?g+1|0:g,I=eg(t,0,F,0),IA=p+g|0,IA=I>>>0>(QA=I+QA|0)>>>0?IA+1|0:IA,I=eg(e,0,k,0),g=p+IA|0,g=I>>>0>(QA=I+QA|0)>>>0?g+1|0:g,IA=eg(f,0,H,0),I=p+g|0,I=IA>>>0>(QA=IA+QA|0)>>>0?I+1|0:I,g=eg(s,0,b,0),I=p+I|0,I=g>>>0>(IA=g+QA|0)>>>0?I+1|0:I,g=IA,QA=(IA=2097151&((7&_A)<<29|TA>>>3))>>>0>(gA=QA=g+IA|0)>>>0?I+1|0:I,I=eg(D,0,_,0),g=p,EA=(IA=I)+(I=eg(h,0,Y,0))|0,IA=p+g|0,IA=I>>>0>EA>>>0?IA+1|0:IA,g=eg(u,0,G,0),I=p+IA|0,I=g>>>0>(EA=g+EA|0)>>>0?I+1|0:I,IA=eg(F,0,l,0),g=p+I|0,g=IA>>>0>(EA=IA+EA|0)>>>0?g+1|0:g,IA=eg(t,0,k,0),I=p+g|0,I=IA>>>0>(EA=IA+EA|0)>>>0?I+1|0:I,IA=eg(e,0,H,0),g=p+I|0,g=IA>>>0>(EA=IA+EA|0)>>>0?g+1|0:g,I=eg(f,0,b,0),IA=p+g|0,I=I>>>0>(g=EA=I+EA|0)>>>0?IA+1|0:IA,lA=IA=EA+(g=vA>>>6&2097151)|0,fA=IA=(aA=I=g>>>0>IA>>>0?I+1|0:I)-(((I=IA)>>>0<4293918720)-1|0)|0,I=(2097151&IA)<<11|(uA=I- -1048576|0)>>>21,IA=(IA>>>21|0)+QA|0,nA=IA=I>>>0>(gA=I+gA|0)>>>0?IA+1|0:IA,wA=(I=gA)- -1048576|0,EA=IA=IA-((I>>>0<4293918720)-1|0)|0,I=(g=IA>>>21|0)+iA|0,oA=QA=(IA=(2097151&IA)<<11|wA>>>21)+rA|0,pA=IA=(iA=I=IA>>>0>QA>>>0?I+1|0:I)-(((I=QA)>>>0<4293918720)-1|0)|0,I=(2097151&IA)<<11|(tA=I- -1048576|0)>>>21,IA=(IA>>21)+DA|0,I=(g=IA=I>>>0>(QA=I+FA|0)>>>0?IA+1|0:IA)+hA|0,rA=(rA=g)-(((g=QA)>>>0<4293918720)-1|0)|0,ZA=g- -1048576|0,OA=(g=IA=_A=QA+KA|0)-(IA=-2097152&ZA)|0,kA=(I=QA>>>0>_A>>>0?I+1|0:I)-((QA=rA)+(g>>>0>>0)|0)|0,I=eg(K,q,-997805,-1),g=p+iA|0,UA=IA=I+oA|0,rA=I>>>0>IA>>>0?g+1|0:g,g=eg(V,RA,470296,0),I=p,IA=g,g=eg(M,dA,666643,0),I=p+I|0,I=(I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I)+nA|0,I=(g=IA+gA|0)>>>0>>0?I+1|0:I,wA=(IA=g)-(g=-2097152&wA)|0,hA=I-((g>>>0>IA>>>0)+EA|0)|0,I=eg(V,RA,666643,0),g=p+aA|0,oA=IA=I+lA|0,iA=I>>>0>IA>>>0?g+1|0:g,g=eg(u,0,_,0),I=p,IA=g,g=eg(D,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,g=eg(F,0,G,0),I=p+I|0,I=g>>>0>(IA=g+IA|0)>>>0?I+1|0:I,gA=(g=IA)+(IA=eg(k,0,l,0))|0,g=p+I|0,g=IA>>>0>gA>>>0?g+1|0:g,I=eg(t,0,H,0),IA=p+g|0,IA=I>>>0>(gA=I+gA|0)>>>0?IA+1|0:IA,I=eg(e,0,b,0),g=p+IA|0,I=g=I>>>0>(gA=I+gA|0)>>>0?g+1|0:g,EA=gA=(IA=2097151&((1&SA)<<31|LA>>>1))+gA|0,gA=IA>>>0>gA>>>0?I+1|0:I,g=eg(F,0,_,0),I=p,IA=g,g=eg(u,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,nA=(g=IA)+(IA=eg(k,0,G,0))|0,g=p+I|0,g=IA>>>0>nA>>>0?g+1|0:g,I=eg(H,0,l,0),g=p+g|0,g=I>>>0>(IA=I+nA|0)>>>0?g+1|0:g,nA=(I=eg(t,0,b,0))+IA|0,IA=p+g|0,I=I>>>0>(g=nA)>>>0?IA+1|0:IA,aA=IA=nA+(g=xA>>>4&2097151)|0,xA=IA=(YA=I=g>>>0>IA>>>0?I+1|0:I)-(((I=IA)>>>0<4293918720)-1|0)|0,I=(2097151&IA)<<11|(TA=I- -1048576|0)>>>21,IA=(IA>>>21|0)+gA|0,nA=EA=I+EA|0,SA=IA=I>>>0>EA>>>0?IA+1|0:IA,KA=(I=EA)- -1048576|0,vA=IA=IA-((I>>>0<4293918720)-1|0)|0,I=(g=IA>>>21|0)+iA|0,lA=IA=(_A=(IA=(IA=(2097151&IA)<<11|KA>>>21)>>>0>(g=gA=IA+oA|0)>>>0?I+1|0:I)-(((I=-2097152&uA)>>>0>g>>>0)+fA|0)|0)-(((I=EA=g-I|0)>>>0<4293918720)-1|0)|0,g=(g=IA>>21)+hA|0,FA=IA=(I=(2097151&IA)<<11|(NA=I- -1048576|0)>>>21)+wA|0,uA=g=I>>>0>IA>>>0?g+1|0:g,DA=(I=IA)- -1048576|0,wA=gA=g-((I>>>0<4293918720)-1|0)|0,d=CA-(I=-2097152&bA)|0,LA=IA=GA-((I>>>0>CA>>>0)+sA|0)|0,I=(g=gA>>21)+rA|0,I=(gA=(2097151&gA)<<11|DA>>>21)>>>0>(CA=gA+UA|0)>>>0?I+1|0:I,iA=(gA=eg(x,L,136657,0))+(CA-(g=-2097152&tA)|0)|0,g=p+(I-((g>>>0>CA>>>0)+pA|0)|0)|0,g=gA>>>0>iA>>>0?g+1|0:g,IA=eg(d,IA,-683901,-1),I=p+g|0,iA=gA=IA+iA|0,oA=IA=(hA=I=IA>>>0>gA>>>0?I+1|0:I)-(((I=gA)>>>0<4293918720)-1|0)|0,g=(g=IA>>21)+kA|0,CA=IA=(I=(2097151&IA)<<11|(bA=I- -1048576|0)>>>21)+OA|0,tA=g=I>>>0>IA>>>0?g+1|0:g,fA=IA=g-(((I=IA)>>>0<4293918720)-1|0)|0,UA=(2097151&IA)<<11|(GA=I- -1048576|0)>>>21,pA=IA>>21,g=eg(o,0,_,0),I=p,IA=g,g=eg(E,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,gA=(g=eg(w,0,G,0))+IA|0,IA=p+I|0,IA=g>>>0>gA>>>0?IA+1|0:IA,I=eg(y,0,l,0),g=p+IA|0,g=I>>>0>(gA=I+gA|0)>>>0?g+1|0:g,IA=eg(t,0,h,0),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,IA=eg(e,0,D,0),g=p+I|0,g=IA>>>0>(gA=IA+gA|0)>>>0?g+1|0:g,IA=eg(f,0,u,0),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,g=eg(c,m,k,0),IA=p+I|0,IA=g>>>0>(gA=g+gA|0)>>>0?IA+1|0:IA,I=eg(s,0,F,0),g=p+IA|0,g=I>>>0>(gA=I+gA|0)>>>0?g+1|0:g,IA=eg(r,0,H,0),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,IA=eg(i,0,b,0),g=p+I|0,g=IA>>>0>(gA=IA+gA|0)>>>0?g+1|0:g,I=HI(B+26|0),IA=2097151&((3&(IA=p))<<30|I>>>2),I=g,sA=gA=IA+gA|0,gA=I=IA>>>0>gA>>>0?I+1|0:I,I=eg(N,J,470296,0),g=p,kA=(IA=I)+(I=eg(v,P,666643,0))|0,IA=p+g|0,IA=I>>>0>kA>>>0?IA+1|0:IA,I=eg(U,X,654183,0),g=p+IA|0,g=I>>>0>(kA=I+kA|0)>>>0?g+1|0:g,I=eg(M,dA,-997805,-1),g=p+g|0,g=I>>>0>(IA=I+kA|0)>>>0?g+1|0:g,kA=(I=IA)+(IA=eg(V,RA,136657,0))|0,I=p+g|0,I=(I=IA>>>0>kA>>>0?I+1|0:I)+gA|0,I=(g=kA)>>>0>(IA=g+sA|0)>>>0?I+1|0:I,g=IA,IA=I,W=(I=sA)- -1048576|0,gA=rA=gA-((I>>>0<4293918720)-1|0)|0,rA=g,IA=(g=BA>>21)+IA|0,IA=(I=(2097151&BA)<<11|jA>>>21)>>>0>(BA=rA+I|0)>>>0?IA+1|0:IA,g=BA-(I=-2097152&W)|0,sA=eg(K,q,-683901,-1),I=(BA=IA-((I>>>0>BA>>>0)+gA|0)|0)+p|0,IA=I=sA>>>0>(kA=g+sA|0)>>>0?I+1|0:I,rA=BA-(((I=g)>>>0<4293918720)-1|0)|0,T=I- -1048576|0,IA=(g=QA>>21)+IA|0,IA=(I=(2097151&QA)<<11|ZA>>>21)>>>0>(QA=I+(sA=kA)|0)>>>0?IA+1|0:IA,sA=g=QA-(I=-2097152&T)|0,I=(QA=IA-((I>>>0>QA>>>0)+(BA=rA)|0)|0)+pA|0,j=g- -1048576|0,rA=QA-((g>>>0<4293918720)-1|0)|0,jA=(g=IA=UA=g+UA|0)-(IA=-2097152&j)|0,ZA=(sA>>>0>g>>>0?I+1|0:I)-((g>>>0>>0)+(QA=rA)|0)|0,OA=CA-(I=-2097152&GA)|0,kA=tA-((I>>>0>CA>>>0)+fA|0)|0,UA=iA-(I=-2097152&bA)|0,bA=hA-((I>>>0>iA>>>0)+oA|0)|0,g=eg(K,q,654183,0),I=p+uA|0,I=g>>>0>(IA=g+FA|0)>>>0?I+1|0:I,iA=((CA=IA)-(g=-2097152&DA)|0)+(IA=eg(x,L,-997805,-1))|0,g=p+(I-((g>>>0>CA>>>0)+wA|0)|0)|0,g=IA>>>0>iA>>>0?g+1|0:g,IA=eg(d,LA,136657,0),I=p+g|0,GA=CA=IA+iA|0,iA=IA>>>0>CA>>>0?I+1|0:I,sA=eA-(I=-2097152&mA)|0,hA=PA-((I>>>0>eA>>>0)+HA|0)|0,I=eg(v,P,-997805,-1),g=p,IA=I,I=eg(S,R,654183,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,I=eg(N,J,136657,0),g=p+g|0,g=I>>>0>(IA=I+IA|0)>>>0?g+1|0:g,CA=(I=IA)+(IA=eg(U,X,-683901,-1))|0,I=p+g|0,IA=qA+(IA>>>0>CA>>>0?I+1|0:I)|0,oA=(g=CA+yA|0)-(I=-2097152&WA)|0,tA=(IA=g>>>0>>0?IA+1|0:IA)-((I>>>0>g>>>0)+JA|0)|0,I=eg(v,P,654183,0),g=p,IA=I,I=eg(S,R,470296,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,CA=(I=IA)+(IA=eg(N,J,-997805,-1))|0,I=p+g|0,g=CA+cA|0,IA=XA+(IA>>>0>CA>>>0?I+1|0:I)|0,CA=(I=eg(U,X,136657,0))+g|0,g=p+(g>>>0>>0?IA+1|0:IA)|0,g=I>>>0>CA>>>0?g+1|0:g,IA=eg(M,dA,-683901,-1),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,yA=(IA=CA)-(g=-2097152&AA)|0,eA=I-((g>>>0>IA>>>0)+VA|0)|0,g=eg(E,0,_,0),I=p,IA=g,g=eg(a,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,CA=(g=IA)+(IA=eg(o,0,G,0))|0,g=p+I|0,g=IA>>>0>CA>>>0?g+1|0:g,IA=eg(w,0,l,0),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,g=eg(t,0,y,0),IA=p+I|0,IA=g>>>0>(CA=g+CA|0)>>>0?IA+1|0:IA,I=eg(e,0,h,0),g=p+IA|0,g=I>>>0>(CA=I+CA|0)>>>0?g+1|0:g,IA=eg(f,0,D,0),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,IA=eg(c,m,F,0),g=p+I|0,g=IA>>>0>(CA=IA+CA|0)>>>0?g+1|0:g,IA=eg(s,0,u,0),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,g=eg(r,0,k,0),IA=p+I|0,IA=g>>>0>(CA=g+CA|0)>>>0?IA+1|0:IA,I=eg(Q,0,b,0),g=p+IA|0,g=I>>>0>(CA=I+CA|0)>>>0?g+1|0:g,IA=eg(i,0,H,0),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,g=(B=(n[B+28|0]|n[B+29|0]<<8|n[B+30|0]<<16|n[B+31|0]<<24)>>>7|0)>>>0>(IA=B+CA|0)>>>0?I+1|0:I,I=IA,IA=gA>>21,gA=I+(B=(2097151&gA)<<11|W>>>21)|0,I=g+IA|0,CA=gA,fA=I=B>>>0>gA>>>0?I+1|0:I,uA=(I=gA)- -1048576|0,pA=g=fA-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+eA|0,gA=B=(g=(2097151&g)<<11|uA>>>21)+yA|0,rA=I=g>>>0>B>>>0?I+1|0:I,wA=(I=B)- -1048576|0,cA=g=rA-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+tA|0,yA=I=(g=(2097151&g)<<11|wA>>>21)>>>0>(B=g+oA|0)>>>0?I+1|0:I,tA=(I=B)- -1048576|0,eA=g=yA-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+hA|0,mA=oA=(g=(2097151&g)<<11|tA>>>21)+sA|0,HA=I=g>>>0>oA>>>0?I+1|0:I,I=eg(oA,I,-683901,-1),g=p+iA|0,oA=IA=I+GA|0,iA=I>>>0>IA>>>0?g+1|0:g,FA=B-(I=-2097152&tA)|0,GA=eA=yA-((I>>>0>B>>>0)+eA|0)|0,g=eg(K,q,470296,0)+EA|0,I=_A+p|0,I=g>>>0>>0?I+1|0:I,EA=((IA=g)-(B=-2097152&NA)|0)+(g=eg(x,L,654183,0))|0,IA=p+(I-((B>>>0>IA>>>0)+lA|0)|0)|0,I=eg(d,LA,-997805,-1),g=p+(g>>>0>EA>>>0?IA+1|0:IA)|0,g=I>>>0>(B=I+EA|0)>>>0?g+1|0:g,IA=(I=B)+(B=eg(mA,HA,136657,0))|0,I=p+g|0,I=B>>>0>IA>>>0?I+1|0:I,B=eg(FA,eA,-683901,-1),g=p+I|0,yA=g=B>>>0>(IA=B+IA|0)>>>0?g+1|0:g,hA=(I=IA)- -1048576|0,eA=B=g-((I>>>0<4293918720)-1|0)|0,I=(I=B>>21)+iA|0,EA=I=(g=(2097151&B)<<11|hA>>>21)>>>0>(B=g+oA|0)>>>0?I+1|0:I,tA=(I=B)- -1048576|0,g=(I=(iA=oA=EA-((I>>>0<4293918720)-1|0)|0)>>21)+bA|0,bA=lA=(oA=(2097151&iA)<<11|tA>>>21)+UA|0,oA=oA>>>0>lA>>>0?g+1|0:g,XA=B-(I=-2097152&tA)|0,VA=EA-((I>>>0>B>>>0)+iA|0)|0,JA=IA-(I=-2097152&hA)|0,PA=yA-((I>>>0>IA>>>0)+eA|0)|0,I=eg(K,q,666643,0),IA=p+(SA-(((g=-2097152&KA)>>>0>nA>>>0)+vA|0)|0)|0,IA=I>>>0>(B=I+(nA-g|0)|0)>>>0?IA+1|0:IA,I=eg(x,L,470296,0),g=p+IA|0,g=I>>>0>(B=I+B|0)>>>0?g+1|0:g,IA=(I=B)+(B=eg(d,LA,654183,0))|0,I=p+g|0,eA=IA,B=B>>>0>IA>>>0?I+1|0:I,nA=gA-(I=-2097152&wA)|0,iA=rA-((I>>>0>gA>>>0)+cA|0)|0,g=eg(v,P,470296,0),I=p,IA=g,g=eg(S,R,666643,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,gA=(g=IA)+(IA=eg(N,J,654183,0))|0,g=p+I|0,g=IA>>>0>gA>>>0?g+1|0:g,IA=eg(U,X,-997805,-1),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,g=eg(M,dA,136657,0),IA=p+I|0,IA=g>>>0>(gA=g+gA|0)>>>0?IA+1|0:IA,I=eg(V,RA,-683901,-1),g=p+IA|0,I=fA+(I>>>0>(gA=I+gA|0)>>>0?g+1|0:g)|0,I=(IA=gA+CA|0)>>>0>>0?I+1|0:I,g=(gA=IA)-(IA=-2097152&uA)|0,IA=I-((IA>>>0>gA>>>0)+pA|0)|0,I=(I=BA>>21)+IA|0,EA=BA=(gA=g)+(g=(2097151&BA)<<11|T>>>21)|0,cA=IA=(rA=I=g>>>0>BA>>>0?I+1|0:I)-(((I=BA)>>>0<4293918720)-1|0)|0,g=(2097151&IA)<<11|(_A=I- -1048576|0)>>>21,IA=(IA>>21)+iA|0,DA=BA=g+nA|0,sA=IA=g>>>0>BA>>>0?IA+1|0:IA,I=eg(BA,IA,-683901,-1),g=p+B|0,g=I>>>0>(IA=I+eA|0)>>>0?g+1|0:g,B=eg(mA,HA,-997805,-1),I=p+g|0,I=B>>>0>(IA=B+IA|0)>>>0?I+1|0:I,B=eg(FA,GA,136657,0),g=p+I|0,nA=IA=B+IA|0,gA=B>>>0>IA>>>0?g+1|0:g,g=eg(k,0,_,0),I=p,B=g,g=eg(F,0,Y,0),I=p+I|0,I=g>>>0>(B=B+g|0)>>>0?I+1|0:I,g=eg(H,0,G,0),IA=p+I|0,IA=g>>>0>(B=g+B|0)>>>0?IA+1|0:IA,I=eg(b,0,l,0),g=p+IA|0,I=g=I>>>0>(B=I+B|0)>>>0?g+1|0:g,CA=B=(g=MA>>>7&2097151)+B|0,B=g>>>0>B>>>0?I+1|0:I,I=eg(H,0,_,0),g=p,IA=I,I=eg(k,0,Y,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,I=eg(b,0,G,0),g=p+g|0,g=I>>>0>(IA=I+IA|0)>>>0?g+1|0:g,BA=(I=IA)+(IA=2097151&((3&$)<<30|z>>>2))|0,I=g,iA=BA,tA=IA=(BA=I=IA>>>0>BA>>>0?I+1|0:I)-(((I=iA)>>>0<4293918720)-1|0)|0,g=(g=IA>>>21|0)+B|0,CA=IA=(I=(2097151&IA)<<11|(vA=I- -1048576|0)>>>21)+CA|0,fA=g=I>>>0>IA>>>0?g+1|0:g,lA=(I=IA)- -1048576|0,yA=B=g-((I>>>0<4293918720)-1|0)|0,I=(g=B>>>21|0)+YA|0,I=(B=aA+((2097151&B)<<11|lA>>>21)|0)>>>0>>0?I+1|0:I,aA=((IA=B)-(g=-2097152&TA)|0)+(B=eg(x,L,666643,0))|0,g=p+(I-((g>>>0>IA>>>0)+xA|0)|0)|0,g=B>>>0>aA>>>0?g+1|0:g,I=eg(d,LA,470296,0),g=p+g|0,g=I>>>0>(B=I+aA|0)>>>0?g+1|0:g,IA=(I=B)+(B=eg(DA,sA,136657,0))|0,I=p+g|0,I=B>>>0>IA>>>0?I+1|0:I,g=eg(mA,HA,654183,0),I=p+I|0,I=g>>>0>(B=g+IA|0)>>>0?I+1|0:I,g=eg(FA,GA,-997805,-1),IA=p+I|0,uA=B=g+B|0,eA=IA=g>>>0>B>>>0?IA+1|0:IA,wA=(I=B)- -1048576|0,aA=B=IA-((I>>>0<4293918720)-1|0)|0,g=(I=B>>21)+gA|0,gA=IA=(B=(2097151&B)<<11|wA>>>21)+nA|0,B=g=B>>>0>IA>>>0?g+1|0:g,nA=IA=g-(((I=IA)>>>0<4293918720)-1|0)|0,g=(2097151&IA)<<11|(hA=I- -1048576|0)>>>21,IA=(IA>>21)+PA|0,qA=pA=g+JA|0,pA=g>>>0>pA>>>0?IA+1|0:IA,IA=QA>>21,QA=(I=(2097151&QA)<<11|j>>>21)+(EA-(g=-2097152&_A)|0)|0,g=IA+(rA-((g>>>0>EA>>>0)+cA|0)|0)|0,rA=g=I>>>0>QA>>>0?g+1|0:g,cA=g=g-(((I=QA)>>>0<4293918720)-1|0)|0,SA=IA=g>>21,g=eg(MA=(2097151&g)<<11|(_A=I- -1048576|0)>>>21,IA,-683901,-1),I=p+B|0,I=g>>>0>(IA=g+gA|0)>>>0?I+1|0:I,JA=IA-(g=-2097152&hA)|0,PA=I-((g>>>0>IA>>>0)+nA|0)|0,I=eg(MA,SA,136657,0),g=p+eA|0,g=I>>>0>(B=I+uA|0)>>>0?g+1|0:g,YA=B-(I=-2097152&wA)|0,xA=g-((I>>>0>B>>>0)+aA|0)|0,B=(I=eg(d,LA,666643,0))+(CA-(g=-2097152&lA)|0)|0,g=p+(fA-((g>>>0>CA>>>0)+yA|0)|0)|0,g=I>>>0>B>>>0?g+1|0:g,IA=(I=B)+(B=eg(DA,sA,-997805,-1))|0,I=p+g|0,I=B>>>0>IA>>>0?I+1|0:I,B=(g=eg(mA,HA,470296,0))+IA|0,IA=p+I|0,IA=g>>>0>B>>>0?IA+1|0:IA,I=eg(FA,GA,654183,0),g=p+IA|0,fA=B=I+B|0,EA=I>>>0>B>>>0?g+1|0:g,gA=BA,g=eg(b,0,_,0),I=p,B=g,g=eg(H,0,Y,0),I=p+I|0,I=g>>>0>(B=B+g|0)>>>0?I+1|0:I,g=B,g=(B=O>>>5&2097151)>>>0>(IA=g+B|0)>>>0?I+1|0:I,B=2097151&Z,BA=eg(b,0,Y,0)+B|0,I=p,eA=B=(yA=I=B>>>0>BA>>>0?I+1|0:I)-(((I=BA)>>>0<4293918720)-1|0)|0,CA=IA,g=g+(IA=B>>>21|0)|0,aA=g=(I=(2097151&B)<<11|(lA=I- -1048576|0)>>>21)>>>0>(B=CA+I|0)>>>0?g+1|0:g,uA=(I=B)- -1048576|0,nA=g=g-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>>21|0)+gA|0,I=(g=(2097151&g)<<11|uA>>>21)>>>0>(CA=g+iA|0)>>>0?I+1|0:I,CA=(IA=eg(DA,sA,654183,0))+((gA=CA)-(g=-2097152&vA)|0)|0,g=p+(I-((16383&tA)+(g>>>0>gA>>>0)|0)|0)|0,I=eg(mA,HA,666643,0),IA=p+(IA>>>0>CA>>>0?g+1|0:g)|0,IA=I>>>0>(gA=I+CA|0)>>>0?IA+1|0:IA,g=eg(FA,GA,470296,0),I=p+IA|0,wA=gA=g+gA|0,iA=I=g>>>0>gA>>>0?I+1|0:I,hA=(I=gA)- -1048576|0,CA=g=iA-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+EA|0,tA=gA=(g=(2097151&g)<<11|hA>>>21)+fA|0,g=I=g>>>0>gA>>>0?I+1|0:I,fA=(I=gA)- -1048576|0,I=(IA=(gA=EA=g-((I>>>0<4293918720)-1|0)|0)>>21)+xA|0,EA=(EA=(2097151&gA)<<11|fA>>>21)>>>0>(YA=vA=EA+YA|0)>>>0?I+1|0:I,I=eg(MA,SA,-997805,-1);g=p+g|0,g=I>>>0>(IA=I+tA|0)>>>0?g+1|0:g,xA=IA-(I=-2097152&fA)|0,vA=g-((I>>>0>IA>>>0)+gA|0)|0,I=eg(MA,SA,654183,0),g=p+iA|0,g=I>>>0>(IA=I+wA|0)>>>0?g+1|0:g,tA=IA-(I=-2097152&hA)|0,fA=g-((I>>>0>IA>>>0)+CA|0)|0,IA=(g=eg(DA,sA,470296,0))+(B-(I=-2097152&uA)|0)|0,I=p+(aA-((16383&nA)+(I>>>0>B>>>0)|0)|0)|0,I=g>>>0>IA>>>0?I+1|0:I,B=(g=eg(FA,GA,666643,0))+IA|0,IA=p+I|0,IA=g>>>0>B>>>0?IA+1|0:IA,gA=B,B=(I=eg(DA,sA,666643,0))+(BA-(g=-2097152&lA)|0)|0,g=p+(yA-((4095&eA)+(g>>>0>BA>>>0)|0)|0)|0,iA=g=I>>>0>B>>>0?g+1|0:g,eA=(I=B)- -1048576|0,CA=BA=g-((I>>>0<4293918720)-1|0)|0,IA=(I=BA>>21)+IA|0,aA=BA=(g=(2097151&BA)<<11|eA>>>21)+gA|0,gA=IA=g>>>0>BA>>>0?IA+1|0:IA,nA=(I=BA)- -1048576|0,BA=IA=IA-((I>>>0<4293918720)-1|0)|0,g=(I=IA>>21)+fA|0,IA=g=(IA=(2097151&IA)<<11|nA>>>21)>>>0>(yA=IA+tA|0)>>>0?g+1|0:g,g=eg(MA,SA,470296,0),I=p+gA|0,I=g>>>0>(aA=g+aA|0)>>>0?I+1|0:I,g=aA-(gA=-2097152&nA)|0,gA=I-((gA>>>0>aA>>>0)+BA|0)|0,nA=g,BA=(I=eg(MA,SA,666643,0))+(B-(g=-2097152&eA)|0)|0,g=p+(iA-((g>>>0>B>>>0)+CA|0)|0)|0,I=(I=(g=I>>>0>BA>>>0?g+1|0:g)>>21)+gA|0,CA=B=nA+(g=(2097151&g)<<11|(B=BA)>>>21)|0,IA=(g=(I=g>>>0>B>>>0?I+1|0:I)>>21)+IA|0,gA=B=(I=(2097151&I)<<11|B>>>21)+yA|0,B=(2097151&(IA=I>>>0>(g=B)>>>0?IA+1|0:IA))<<11|g>>>21,g=(I=IA>>21)+vA|0,aA=IA=B+xA|0,IA=(g=B>>>0>(I=IA)>>>0?g+1|0:g)>>21,g=(2097151&g)<<11|I>>>21,I=IA+EA|0,uA=B=g+YA|0,g=(g=(I=g>>>0>B>>>0?I+1|0:I)>>21)+PA|0,wA=B=(I=(2097151&I)<<11|B>>>21)+JA|0,I=(I=(g=I>>>0>B>>>0?g+1|0:g)>>21)+pA|0,hA=B=(g=(2097151&g)<<11|B>>>21)+qA|0,IA=(g=(I=g>>>0>B>>>0?I+1|0:I)>>21)+VA|0,tA=B=(I=(2097151&I)<<11|B>>>21)+XA|0,B=(2097151&(IA=I>>>0>(g=B)>>>0?IA+1|0:IA))<<11|g>>>21,g=(I=IA>>21)+oA|0,fA=IA=B+bA|0,IA=(g=B>>>0>(I=IA)>>>0?g+1|0:g)>>21,g=(2097151&g)<<11|I>>>21,I=IA+kA|0,pA=B=g+OA|0,g=(g=(I=g>>>0>B>>>0?I+1|0:I)>>21)+ZA|0,yA=B=(I=(2097151&I)<<11|B>>>21)+jA|0,I=(g=I>>>0>B>>>0?g+1|0:g)>>21,iA=(IA=(2097151&g)<<11|B>>>21)+(g=QA-(B=-2097152&_A)|0)|0,IA=(rA-((B>>>0>QA>>>0)+cA|0)|0)+I|0,eA=iA,cA=(2097151&(IA=g>>>0>(I=iA)>>>0?IA+1|0:IA))<<11|I>>>21,EA=g=IA>>21,I=2097151&BA,B=eg(cA,g,666643,0)+I|0,g=p,iA=B,B=g=I>>>0>B>>>0?g+1|0:g,C[0|A]=iA,C[A+1|0]=(255&g)<<24|iA>>>8,BA=A,g=2097151&CA,IA=eg(cA,EA,470296,0)+g|0,I=p,I=g>>>0>IA>>>0?I+1|0:I,CA=IA,QA=(2097151&(IA=B))<<11|iA>>>21,IA=I+(g=IA>>21)|0,IA=QA>>>0>(CA=CA+QA|0)>>>0?IA+1|0:IA,QA=CA,C[BA+4|0]=(2047&IA)<<21|QA>>>11,I=IA,IA=QA,C[BA+3|0]=(7&I)<<29|IA>>>3,IA=2097151&gA,gA=eg(cA,EA,654183,0)+IA|0,g=p,g=IA>>>0>gA>>>0?g+1|0:g,IA=gA,gA=(2097151&I)<<11|QA>>>21,I=(I>>21)+g|0,g=I=gA>>>0>(CA=IA+gA|0)>>>0?I+1|0:I,C[BA+6|0]=(63&I)<<26|CA>>>6,gA=0,I=nA=2097151&QA,C[BA+2|0]=31&((65535&B)<<16|iA>>>16)|I<<5,B=2097151&aA,IA=eg(cA,EA,-997805,-1)+B|0,I=p,B=I=B>>>0>IA>>>0?I+1|0:I,I=g>>21,QA=(g=(2097151&g)<<11|CA>>>21)+IA|0,IA=I+B|0,iA=QA,IA=g>>>0>QA>>>0?IA+1|0:IA,C[BA+9|0]=(511&IA)<<23|QA>>>9,I=IA,C[BA+8|0]=(1&I)<<31|QA>>>1,QA=0,B=aA=2097151&CA,C[BA+5|0]=(524287&gA)<<13|nA>>>19|B<<2,B=2097151&uA,IA=eg(cA,EA,136657,0)+B|0,g=p,g=B>>>0>IA>>>0?g+1|0:g,B=IA,g=g+(IA=I>>21)|0,CA=B=B+(I=(2097151&I)<<11|iA>>>21)|0,g=I>>>0>B>>>0?g+1|0:g,C[BA+12|0]=(4095&g)<<20|B>>>12,B=g,I=g,g=CA,C[BA+11|0]=(15&I)<<28|g>>>4,BA=0,g=nA=2097151&iA,C[A+7|0]=(16383&QA)<<18|aA>>>14|g<<7,IA=A,g=2097151&wA,QA=eg(cA,EA,-683901,-1)+g|0,I=p,I=(I=g>>>0>QA>>>0?I+1|0:I)+(g=B>>21)|0,g=I=(B=(2097151&B)<<11|CA>>>21)>>>0>(gA=QA=B+QA|0)>>>0?I+1|0:I,C[IA+14|0]=(127&I)<<25|gA>>>7,QA=0,B=iA=2097151&CA,C[IA+10|0]=(131071&BA)<<15|nA>>>17|B<<4,B=IA,I>>=21,IA=(g=(2097151&g)<<11|gA>>>21)>>>0>(CA=g+(2097151&hA)|0)>>>0?I+1|0:I,C[B+17|0]=(1023&IA)<<22|CA>>>10,I=IA,C[B+16|0]=(3&I)<<30|CA>>>2,B=EA=2097151&gA,C[A+13|0]=(1048575&QA)<<12|iA>>>20|B<<1,g=I,I>>=21,g=(IA=(2097151&g)<<11|CA>>>21)>>>0>(gA=IA+(2097151&tA)|0)>>>0?I+1|0:I,C[(B=A)+20|0]=(8191&g)<<19|gA>>>13,I=g,g=gA,C[B+19|0]=(31&I)<<27|g>>>5,g=iA=2097151&CA,C[B+15|0]=(32767&BA)<<17|EA>>>15|g<<6,g=I,I>>=21,g=(B=(2097151&g)<<11|gA>>>21)>>>0>(EA=B+(2097151&fA)|0)>>>0?I+1|0:I,C[A+21|0]=EA,I=gA,C[A+18|0]=(262143&QA)<<14|iA>>>18|I<<3,B=g,I=g,g=EA,C[A+22|0]=(255&I)<<24|g>>>8,g=I>>21,IA=(I=(2097151&I)<<11|EA>>>21)>>>0>(gA=I+(2097151&pA)|0)>>>0?g+1|0:g,C[A+25|0]=(2047&IA)<<21|gA>>>11,I=IA,IA=gA,C[A+24|0]=(7&I)<<29|IA>>>3,g=I>>21,g=(BA=(2097151&I)<<11|gA>>>21)>>>0>(CA=BA+(2097151&yA)|0)>>>0?g+1|0:g,BA=CA,I=g,C[(IA=A)+27|0]=(63&I)<<26|BA>>>6,IA=0,g=CA=2097151&gA,C[A+23|0]=31&((65535&B)<<16|EA>>>16)|g<<5,g=I,I>>=21,I=(g=(2097151&g)<<11|BA>>>21)>>>0>(QA=g+(2097151&eA)|0)>>>0?I+1|0:I,B=QA,C[A+31|0]=(131071&I)<<15|B>>>17,C[A+30|0]=(511&I)<<23|B>>>9,C[A+29|0]=(1&I)<<31|B>>>1,I=0,gA=BA&=2097151,C[A+26|0]=(524287&IA)<<13|CA>>>19|gA<<2,C[A+28|0]=(16383&I)<<18|gA>>>14|B<<7}(E,r+160|0,r+288|0,r+224|0),fI(r+288|0,64),fI(r+224|0,64),I&&(i[I>>2]=64,i[I+4>>2]=0),h=r+560|0,0}function X(A,I,g){var B,Q=0,E=0;if(g>>>0>=512)return s(0|A,0|I,0|g),A;B=A+g|0;A:if(3&(A^I))if(B>>>0<4)g=A;else if((Q=B-4|0)>>>0>>0)g=A;else for(g=A;C[0|g]=n[0|I],C[g+1|0]=n[I+1|0],C[g+2|0]=n[I+2|0],C[g+3|0]=n[I+3|0],I=I+4|0,Q>>>0>=(g=g+4|0)>>>0;);else{I:if((0|g)<1)g=A;else if(3&A)for(g=A;;){if(C[0|g]=n[0|I],I=I+1|0,B>>>0<=(g=g+1|0)>>>0)break I;if(!(3&g))break}else g=A;if(!((Q=-4&B)>>>0<64||(E=Q+-64|0)>>>0>>0))for(;i[g>>2]=i[I>>2],i[g+4>>2]=i[I+4>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=i[I+12>>2],i[g+16>>2]=i[I+16>>2],i[g+20>>2]=i[I+20>>2],i[g+24>>2]=i[I+24>>2],i[g+28>>2]=i[I+28>>2],i[g+32>>2]=i[I+32>>2],i[g+36>>2]=i[I+36>>2],i[g+40>>2]=i[I+40>>2],i[g+44>>2]=i[I+44>>2],i[g+48>>2]=i[I+48>>2],i[g+52>>2]=i[I+52>>2],i[g+56>>2]=i[I+56>>2],i[g+60>>2]=i[I+60>>2],I=I- -64|0,E>>>0>=(g=g- -64|0)>>>0;);if(g>>>0>=Q>>>0)break A;for(;i[g>>2]=i[I>>2],I=I+4|0,Q>>>0>(g=g+4|0)>>>0;);}if(g>>>0>>0)for(;C[0|g]=n[0|I],I=I+1|0,(0|B)!=(0|(g=g+1|0)););return A}function V(A,I,g,B){var Q,E=0,a=0,r=0,o=0,e=0,t=0,f=0;if(h=Q=h-704|0,g|B)if(E=B<<3|g>>>29,r=(f=i[(a=A)+72>>2])+(e=g<<3)|0,E=E+(o=i[a+76>>2])|0,t=r,i[a+72>>2]=r,E=r>>>0>>0?E+1|0:E,i[a+76>>2]=E,t=(e=(0|E)==(0|o)&f>>>0>t>>>0|E>>>0>>0)+i[(a=r=a- -64|0)>>2]|0,E=i[a+4>>2],E=e>>>0>t>>>0?E+1|0:E,r=(e=B>>>29|0)+t|0,i[a>>2]=r,i[a+4>>2]=r>>>0>>0?E+1|0:E,(0|(E=B))==(0|(t=0-((o=127&((7&o)<<29|f>>>3))>>>0>128)|0))&g>>>0>=(r=128-o|0)>>>0|E>>>0>t>>>0){for(a=0,E=0;C[80+(A+(e=a+o|0)|0)|0]=n[I+a|0],(0|r)!=(0|(a=a+1|0))|(0|(E=a>>>0<1?E+1|0:E))!=(0|t););if(F(A,A+80|0,Q,E=Q+640|0),I=I+r|0,!(B=B-((g>>>0>>0)+t|0)|0)&(g=g-r|0)>>>0>127|B)for(;F(A,I,Q,E),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B)for(a=0,E=0;C[80+(A+a|0)|0]=n[I+a|0],(0|g)!=(0|(a=o=a+1|0))|(0|B)!=(0|(E=o>>>0<1?E+1|0:E)););fI(Q,704)}else for(a=g,r=(g=!B&g>>>0>1|0!=(0|B))?a:1,f=g?B:0,a=0,E=0;C[80+(A+(B=a+o|0)|0)|0]=n[I+a|0],(0|r)!=(0|(a=g=a+1|0))|(0|(E=g>>>0<1?E+1|0:E))!=(0|f););return h=Q+704|0,0}function W(A,I,g,B,Q,E,n,a){A|=0,I|=0,g|=0,B|=0,Q|=0,E|=0,n|=0,a|=0;var r,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,D=0;h=r=h-16|0,i[r+12>>2]=0,pg(a);A:{if(B){w=4&a;I:{g:{B:{for(;;){o=f;Q:{C:{for(;;){if(y=C[g+o|0],255!=(0|(t=w?LA(y):KA(y))))break C;if(!Q)break Q;if(!gg(Q,y))break B;if(!((o=o+1|0)>>>0>>0))break}A=f+1|0,i[r+12>>2]=A>>>0>>0?B:A;break g}if(s=(s<<6)+t|0,(t=e+6|0)>>>0<8)e=t;else{if(e=e-2|0,I>>>0<=c>>>0){i[r+12>>2]=o,i[8960]=68,o=1;break I}C[A+c|0]=s>>>e,c=c+1|0}if((f=o+1|0)>>>0>>0)continue}break}i[r+12>>2]=f;break g}i[r+12>>2]=o}o=0}if(!(e>>>0<=4)){A=-1;break A}}if(A=-1,!((-1<>2];;){g:{if(I>>>0<=E>>>0)i[8960]=68;else{if(61==(0|(n=C[A+E|0]))){Q=Q-1|0;break g}if(B&&gg(B,n))break g;i[8960]=28}a=-1;break I}if(E=E+1|0,i[g>>2]=E,!Q)break}return a}(g,B,r+12|0,Q,e>>>1|0)))){A=0;I:if(Q&&!((o=i[r+12>>2])>>>0>=B>>>0)){g:{for(;;){if(!gg(Q,C[g+o|0]))break g;if((0|(o=o+1|0))==(0|B))break}i[r+12>>2]=B;break I}i[r+12>>2]=o}D=c}}return I=i[r+12>>2],n?i[n>>2]=I+g:(0|I)!=(0|B)&&(i[8960]=28,A=-1),E&&(i[E>>2]=D),h=r+16|0,0|A}function T(A,I,g){var B,Q,C,E=0;h=B=h-16|0,Q=i[A+20>>2],i[A+20>>2]=0,C=i[A+4>>2],i[A+4>>2]=0,E=-26;A:{I:{g:switch(g-1|0){case 1:if(E=-32,XA(I,35621,9))break A;I=I+9|0;break I;case 0:break g;default:break A}if(E=-32,XA(I,35631,8))break A;I=I+8|0}if(!XA(I,35640,3)&&(I=bA(I+3|0,B+12|0))){if(E=-26,19!=i[B+12>>2])break A;if(!XA(I,35644,3)&&(I=bA(I+3|0,B+12|0))&&(i[A+44>>2]=i[B+12>>2],!XA(I,35648,3)&&(I=bA(I+3|0,B+12|0))&&(i[A+40>>2]=i[B+12>>2],!XA(I,35652,3)&&(I=bA(I+3|0,B+12|0))&&(g=i[B+12>>2],i[A+48>>2]=g,i[A+52>>2]=g,36==(0|(g=n[0|I]))&&(i[B+12>>2]=Q,I=36==(0|g)?I+1|0:I,!W(i[A+16>>2],Q,I,YA(I),0,B+12|0,B+8|0,3)&&(i[A+20>>2]=i[B+12>>2],I=i[B+8>>2],36==(0|(g=n[0|I]))&&(i[B+12>>2]=C,I=36==(0|g)?I+1|0:I,!W(i[A>>2],C,I,YA(I),0,B+12|0,B+8|0,3)))))))){if(i[A+4>>2]=i[B+12>>2],I=i[B+8>>2],E=oA(A))break A;return h=B+16|0,n[0|I]?-32:0}}E=-32}return h=B+16|0,E}function j(A,I){var g;for(h=g=h-192|0,H(g+144|0,I),H(g+96|0,g+144|0),H(g+96|0,g+96|0),_(g+96|0,I,g+96|0),_(g+144|0,g+144|0,g+96|0),H(g+48|0,g+144|0),_(g+96|0,g+96|0,g+48|0),H(g+48|0,g+96|0),I=1;H(g+48|0,g+48|0),5!=(0|(I=I+1|0)););for(_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),I=1;H(g+48|0,g+48|0),10!=(0|(I=I+1|0)););for(_(g+48|0,g+48|0,g+96|0),H(g,g+48|0),I=1;H(g,g),20!=(0|(I=I+1|0)););for(_(g+48|0,g,g+48|0),I=1;H(g+48|0,g+48|0),11!=(0|(I=I+1|0)););for(_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),I=1;H(g+48|0,g+48|0),50!=(0|(I=I+1|0)););for(_(g+48|0,g+48|0,g+96|0),H(g,g+48|0),I=1;H(g,g),100!=(0|(I=I+1|0)););for(_(g+48|0,g,g+48|0),I=1;H(g+48|0,g+48|0),51!=(0|(I=I+1|0)););for(_(g+96|0,g+48|0,g+96|0),I=1;H(g+96|0,g+96|0),6!=(0|(I=I+1|0)););_(A,g+96|0,g+144|0),h=g+192|0}function Z(A,I){var g,B,Q,E,n,a,o,e,t,f,c=0,y=0,s=0,w=0,h=0,D=0,u=0;(y=s=i[A+60>>2])|(c=i[A+56>>2])&&(s=c,C[(w=c+A|0)- -64|0]=1,!(y=(c=c+1|0)>>>0<1?y+1|0:y)&c>>>0<=15&&EA(w+65|0,0,15-s|0),C[A+80|0]=1,S(A,A- -64|0,16,0)),t=i[A+52>>2],f=i[A+48>>2],s=i[A+44>>2],u=i[A+24>>2],h=i[A+28>>2]+(u>>>26|0)|0,c=i[A+32>>2]+(h>>>26|0)|0,e=(g=(E=(-67108864|(Q=i[A+36>>2]+(c>>>26|0)|0))+((o=(a=67108863&c)+((h=(D=67108863&h)+((y=(c=(67108863&u)+((y=i[A+20>>2]+r(Q>>>26|0,5)|0)>>>26|0)|0)+((n=5+(w=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>31)&c|(B=67108863&(u=(E>>>31|0)-1|0))&y,y=0,y=(c=w&g|B&n|e<<26)>>>0>(w=c+i[A+40>>2]|0)>>>0?1:y,xI(I,w),h=(c=(D=D&g|h&B)<<20|e>>>6)+s|0,s=0,s=c>>>0>h>>>0?1:s,c=y,y=s,y=c>>>0>(h=c+h|0)>>>0?y+1|0:y,xI(I+4|0,h),s=0,s=(c=(w=g&a|B&o)<<14|D>>>12)>>>0>(D=c+f|0)>>>0?1:s,c=y,y=s,y=c>>>0>(D=c+D|0)>>>0?y+1|0:y,xI(I+8|0,D),xI(s=I+12|0,y=y+(w=(I=(u&E|g&Q)<<8|w>>>18)+t|0)|0),fI(A,88)}function O(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var E=0,i=0,a=0,o=0,f=0,c=0,y=0,s=0,w=0;pg(Q|=0),i=(E=(B>>>0)/3|0)<<2,(E=r(E,-3)+B|0)&&(i=2&Q?(2|i)+(E>>>1|0)|0:i+4|0);A:{I:{g:{B:{if(I>>>0>i>>>0){if(!(4&Q)){if(a=0,!B)break g;Q=0,E=0;break B}if(a=0,!B)break g;for(Q=0,E=0;;){for(f=n[g+o|0]|f<<8,Q=Q+8|0;c=E,y=Q,s=A+E|0,w=CI(f>>>(Q=Q-6|0)&63),C[0|s]=w,E=E+1|0,Q>>>0>5;);if((0|(o=o+1|0))==(0|B))break}if(a=E,!Q)break g;s=A+E|0,w=CI(f<<12-y&63),C[0|s]=w,a=c+2|0;break g}OI(),e()}for(;;){for(f=n[g+o|0]|f<<8,Q=Q+8|0;c=E,y=Q,s=A+E|0,w=EI(f>>>(Q=Q-6|0)&63),C[0|s]=w,E=E+1|0,Q>>>0>5;);if((0|(o=o+1|0))==(0|B))break}a=E,Q&&(s=A+E|0,w=EI(f<<12-y&63),C[0|s]=w,a=c+2|0)}if((E=a)>>>0<=i>>>0){if(E>>>0>>0)break I;i=E;break A}t(35568,35587,230,35603),e()}EA(A+E|0,61,i-E|0)}return EA(A+i|0,0,(I>>>0>(g=i+1|0)>>>0?I:g)-i|0),0|A}function z(A,I,g,B){var Q=0,E=0,a=0,r=0,o=0,e=0;A:{if((Q=i[A+56>>2])|(E=i[A+60>>2])){if(e=A,o=a=16-Q|0,o=(a=(0|(r=0-((Q>>>0>16)+E|0)|0))==(0|B)&g>>>0>>0|B>>>0>>0)?g:o,(a=r=a?B:r)|o){if(C[(A+Q|0)- -64|0]=n[0|I],E=1,Q=0,1!=(0|o)|a)for(;r=E+i[A+56>>2]|0,C[(A+r|0)- -64|0]=n[I+E|0],(0|o)!=(0|(E=E+1|0))|(0|(Q=E>>>0<1?Q+1|0:Q))!=(0|a););Q=i[A+56>>2],E=i[A+60>>2]}if(r=Q+o|0,Q=E+a|0,E=r,i[e+56>>2]=E,Q=E>>>0>>0?Q+1|0:Q,i[e+60>>2]=Q,!Q&E>>>0<16)break A;S(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(Q=g)-(E=o)|0,B=B-((Q>>>0>>0)+a|0)|0,I=I+E|0}if(!B&g>>>0>=16|B&&(S(A,I,Q=-16&g,B),g&=15,B=0,I=I+Q|0),g|B){for(E=0,Q=0;e=E+i[A+56>>2]|0,C[(A+e|0)- -64|0]=n[I+E|0],(0|g)!=(0|(E=E+1|0))|(0|B)!=(0|(Q=E>>>0<1?Q+1|0:Q)););I=A,Q=g+i[A+56>>2]|0,A=B+i[A+60>>2]|0,i[I+56>>2]=Q,i[I+60>>2]=g>>>0>Q>>>0?A+1|0:A}}}function $(A,I){var g=0,B=0,Q=0,C=0,E=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0;A:if(A&&(2!=i[A+36>>2]||(Q=i[I>>2],n[I+8|0]<2&&!Q)?(function(A,I,g){var B,Q=0,C=0,E=0;if(h=B=h-4096|0,vg(B+3072|0),vg(B+2048|0),!(!A|!I)&&(i[B+2048>>2]=i[I>>2],i[B+2052>>2]=0,i[B+2056>>2]=i[I+4>>2],i[B+2060>>2]=0,i[B+2064>>2]=n[I+8|0],i[B+2068>>2]=0,i[B+2072>>2]=i[A+16>>2],i[B+2076>>2]=0,i[B+2080>>2]=i[A+8>>2],i[B+2084>>2]=0,i[B+2088>>2]=i[A+36>>2],i[B+2092>>2]=0,i[A+20>>2]))for(I=0;(E=127&I)||(Q=i[B+2100>>2],Q=(C=i[B+2096>>2]+1|0)>>>0<1?Q+1|0:Q,i[B+2096>>2]=C,i[B+2100>>2]=Q,vg(B),vg(B+1024|0),Y(B+3072|0,B+2048|0,B),Y(B+3072|0,B,B+1024|0)),E=i[4+(C=(B+1024|0)+(E<<3)|0)>>2],i[(Q=(I<<3)+g|0)>>2]=i[C>>2],i[Q+4>>2]=E,(I=I+1|0)>>>0>2];);h=B+4096|0}(A,I,t=i[A+4>>2]),Q=i[I>>2],B=0):(t=i[A+4>>2],B=1),c=B,!((E=!((B=n[I+8|0])|Q)<<1)>>>0>=(g=i[A+20>>2])>>>0)))for(C=i[A+24>>2],g=(Q=(r(C,i[I+4>>2])+E|0)+r(g,B)|0)+((Q>>>0)%(C>>>0)|0?-1:C-1|0)|0;;){if(f=1==((Q>>>0)%(C>>>0)|0)?Q-1|0:g,c?(o=i[A>>2],g=i[o+4>>2]+(f<<10)|0):(o=i[A>>2],g=(E<<3)+t|0),B=i[g+4>>2],y=i[g>>2],g=i[A+28>>2],i[I+12>>2]=E,B=(B>>>0)%(g>>>0)|0,e=i[I+4>>2],g=n[I+8|0]?B:e,o=i[o+4>>2],s=C,w=B,C=i[I>>2],e=(o+(r(s,g=(B=C)?w:g)<<10)|0)+(FA(A,I,y,!0&(0|g)==(0|e))<<10)|0,B=o+(f<<10)|0,g=o+(Q<<10)|0,C?Y(B,e,g):b(B,e,g),(E=E+1|0)>>>0>=a[A+20>>2])break A;Q=Q+1|0,g=f+1|0,C=i[A+24>>2]}}function AA(A,I,g){var B,Q,C,E,n,a,r,o,e,t,f,c,y=0,s=0,w=0,h=0,D=0,u=0,p=0,l=0,F=0;B=i[I+4>>2],Q=i[A+4>>2],C=i[I+8>>2],s=i[A+8>>2],E=i[I+12>>2],w=i[A+12>>2],n=i[I+16>>2],h=i[A+16>>2],a=i[I+20>>2],D=i[A+20>>2],r=i[I+24>>2],u=i[A+24>>2],o=i[I+28>>2],p=i[A+28>>2],e=i[I+32>>2],l=i[A+32>>2],t=i[I+36>>2],F=i[A+36>>2],c=(g=0-g|0)&((f=i[I>>2])^(y=i[A>>2])),i[A>>2]=c^y,y=F,F=g&(F^t),i[A+36>>2]=y^F,y=l,l=g&(l^e),i[A+32>>2]=y^l,y=p,p=g&(p^o),i[A+28>>2]=y^p,y=u,u=g&(u^r),i[A+24>>2]=y^u,y=D,D=g&(D^a),i[A+20>>2]=y^D,y=h,h=g&(h^n),i[A+16>>2]=y^h,y=w,w=g&(w^E),i[A+12>>2]=y^w,y=s,s=g&(s^C),i[A+8>>2]=y^s,y=A,A=g&(B^Q),i[y+4>>2]=A^Q,i[I+36>>2]=F^t,i[I+32>>2]=l^e,i[I+28>>2]=p^o,i[I+24>>2]=u^r,i[I+20>>2]=D^a,i[I+16>>2]=h^n,i[I+12>>2]=w^E,i[I+8>>2]=s^C,i[I+4>>2]=A^B,i[I>>2]=f^c}function IA(A,I){var g;i[A>>2]=67108863&(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24),i[A+4>>2]=(n[I+3|0]|n[I+4|0]<<8|n[I+5|0]<<16|n[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(n[I+6|0]|n[I+7|0]<<8|n[I+8|0]<<16|n[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(n[I+9|0]|n[I+10|0]<<8|n[I+11|0]<<16|n[I+12|0]<<24)>>>6&66076671,g=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,i[A+44>>2]=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,i[A+48>>2]=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,I=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,C[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I}function gA(A,I,g){var B=0;A:if((0|A)!=(0|I)){if((I-A|0)-g>>>0<=0-(g<<1)>>>0)return X(A,I,g);if(B=3&(A^I),A>>>0>>0){if(B)B=A;else{if(3&A)for(B=A;;){if(!g)break A;if(C[0|B]=n[0|I],I=I+1|0,g=g-1|0,!(3&(B=B+1|0)))break}else B=A;if(!(g>>>0<=3))for(;i[B>>2]=i[I>>2],I=I+4|0,B=B+4|0,(g=g-4|0)>>>0>3;);}if(g)for(;C[0|B]=n[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);}else{if(!B){if(A+g&3)for(;;){if(!g)break A;if(C[0|(B=(g=g-1|0)+A|0)]=n[I+g|0],!(3&B))break}if(!(g>>>0<=3))for(;i[(g=g-4|0)+A>>2]=i[I+g>>2],g>>>0>3;);}if(!g)break A;for(;C[(g=g-1|0)+A|0]=n[I+g|0],g;);}}return A}function BA(A,I){var g,B=0;h=g=h-48|0,function(A,I){var g,B,Q,C,E,n,a,o,e=0;B=i[I+28>>2],Q=i[I+24>>2],C=i[I+20>>2],E=i[I+16>>2],n=i[I+12>>2],a=i[I+8>>2],o=i[I+4>>2],e=i[I>>2],g=i[I+36>>2],I=i[I+32>>2],e=r(((B+(Q+(C+(E+(n+(a+(o+(e+(r(g,19)+16777216>>>25|0)>>26)>>25)>>26)>>25)>>26)>>25)>>26)>>25)+I>>26)+g>>25,19)+e|0,i[A>>2]=67108863&e,e=o+(e>>26)|0,i[A+4>>2]=33554431&e,e=a+(e>>25)|0,i[A+8>>2]=67108863&e,e=n+(e>>26)|0,i[A+12>>2]=33554431&e,e=E+(e>>25)|0,i[A+16>>2]=67108863&e,e=C+(e>>26)|0,i[A+20>>2]=33554431&e,e=Q+(e>>25)|0,i[A+24>>2]=67108863&e,e=B+(e>>26)|0,i[A+28>>2]=33554431&e,I=I+(e>>25)|0,i[A+32>>2]=67108863&I,i[A+36>>2]=g+(I>>26)&33554431}(g,I),I=i[g>>2],C[0|A]=I,C[A+2|0]=I>>>16,C[A+1|0]=I>>>8,B=i[g+4>>2],C[A+5|0]=B>>>14,C[A+4|0]=B>>>6,C[A+3|0]=B<<2|I>>>24,I=i[g+8>>2],C[A+8|0]=I>>>13,C[A+7|0]=I>>>5,C[A+6|0]=I<<3|B>>>22,B=i[g+12>>2],C[A+11|0]=B>>>11,C[A+10|0]=B>>>3,C[A+9|0]=B<<5|I>>>21,I=i[g+16>>2],C[A+15|0]=I>>>18,C[A+14|0]=I>>>10,C[A+13|0]=I>>>2,C[A+12|0]=I<<6|B>>>19,I=i[g+20>>2],C[A+16|0]=I,C[A+18|0]=I>>>16,C[A+17|0]=I>>>8,B=i[g+24>>2],C[A+21|0]=B>>>15,C[A+20|0]=B>>>7,C[A+19|0]=B<<1|I>>>24,I=i[g+28>>2],C[A+24|0]=I>>>13,C[A+23|0]=I>>>5,C[A+22|0]=I<<3|B>>>23,B=i[g+32>>2],C[A+27|0]=B>>>12,C[A+26|0]=B>>>4,C[A+25|0]=B<<4|I>>>21,I=i[g+36>>2],C[A+31|0]=I>>>18,C[A+30|0]=I>>>10,C[A+29|0]=I>>>2,C[A+28|0]=I<<6|B>>>20,h=g+48|0}function QA(A,I,g,B){var Q=0,E=0,i=0,a=0,r=0,o=0;A:if(g|B)for(o=A+224|0,i=A+96|0,Q=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24;;){if(a=96+(A+Q|0)|0,r=E=256-Q|0,!B&g>>>0<=E>>>0){X(a,I,g),I=g+(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24;break A}if(X(a,I,E),Q=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)+E|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,iA(A,128),l(A,i),X(i,o,128),Q=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,I=I+E|0,!((g=(E=g)-r|0)|(B=B-(E>>>0>>0)|0)))break}return 0}function CA(A,I){var g,B=0,Q=0,E=0,i=0;for(h=g=h-464|0;Q=B<<1,i=n[I+B|0],C[Q+(g+400|0)|0]=15&i,C[(g+400|0)+(1|Q)|0]=i>>>4,32!=(0|(B=B+1|0)););for(B=0;I=((Q=(I=B)+n[0|(B=(g+400|0)+E|0)]|0)<<24)- -134217728|0,C[0|B]=Q-(I>>24&240),B=I>>28,63!=(0|(E=E+1|0)););for(C[g+463|0]=n[g+463|0]+B,zI(A),B=1;fg(g,B>>>1|0,C[(g+400|0)+B|0]),OA(g+240|0,A,g),DI(A,g+240|0),I=B>>>0<62,B=B+2|0,I;);for(JI(g+240|0,A),_I(g+120|0,g+240|0),AI(g+240|0,g+120|0),_I(g+120|0,g+240|0),AI(g+240|0,g+120|0),_I(g+120|0,g+240|0),AI(g+240|0,g+120|0),DI(A,g+240|0),B=0;fg(g,B>>>1|0,C[(g+400|0)+B|0]),OA(g+240|0,A,g),DI(A,g+240|0),I=B>>>0<62,B=B+2|0,I;);h=g+464|0}function EA(A,I,g){var B=0,Q=0,E=0,n=0;if(g&&(C[(B=A+g|0)-1|0]=I,C[0|A]=I,!(g>>>0<3||(C[B-2|0]=I,C[A+1|0]=I,C[B-3|0]=I,C[A+2|0]=I,g>>>0<7||(C[B-4|0]=I,C[A+3|0]=I,g>>>0<9||(Q=(B=0-A&3)+A|0,I=r(255&I,16843009),i[Q>>2]=I,i[(B=(g=g-B&-4)+Q|0)-4>>2]=I,g>>>0<9||(i[Q+8>>2]=I,i[Q+4>>2]=I,i[B-8>>2]=I,i[B-12>>2]=I,g>>>0<25||(i[Q+24>>2]=I,i[Q+20>>2]=I,i[Q+16>>2]=I,i[Q+12>>2]=I,i[B-16>>2]=I,i[B-20>>2]=I,i[B-24>>2]=I,i[B-28>>2]=I,(g=g-(n=4&Q|24)|0)>>>0<32))))))))for(B=I,E=I,I=Q+n|0;i[I+24>>2]=E,i[I+28>>2]=B,i[I+16>>2]=E,i[I+20>>2]=B,i[I+8>>2]=E,i[I+12>>2]=B,i[I>>2]=E,i[I+4>>2]=B,I=I+32|0,(g=g-32|0)>>>0>31;);return A}function iA(A,I){var g,B,Q,E=0,i=0;i=E=A- -64|0,B=1+(g=n[E+4|0]|n[E+5|0]<<8|n[E+6|0]<<16|n[E+7|0]<<24)|0,E=(I=I+(E=Q=n[0|E]|n[E+1|0]<<8|n[E+2|0]<<16|n[E+3|0]<<24)|0)>>>0>>0?B:g,C[0|i]=I,C[i+1|0]=I>>>8,C[i+2|0]=I>>>16,C[i+3|0]=I>>>24,C[i+4|0]=E,C[i+5|0]=E>>>8,C[i+6|0]=E>>>16,C[i+7|0]=E>>>24,I=(E=(0|E)==(0|g)&I>>>0>>0|E>>>0>>0)+(n[A+72|0]|n[A+73|0]<<8|n[A+74|0]<<16|n[A+75|0]<<24)|0,i=n[A+76|0]|n[A+77|0]<<8|n[A+78|0]<<16|n[A+79|0]<<24,E=I>>>0>>0?i+1|0:i,C[A+72|0]=I,C[A+73|0]=I>>>8,C[A+74|0]=I>>>16,C[A+75|0]=I>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24}function nA(A,I,g,B,Q,C,E){var n,a,r,o,e=0;return h=n=h-352|0,K(n,C,E),!Q&B>>>0<=g-A>>>0|A>>>0>=g>>>0&&!(!Q&B>>>0>A-g>>>0|Q&&A>>>0>g>>>0)||(g=gA(A,g,B)),i[n+56>>2]=0,i[n+60>>2]=0,i[n+48>>2]=0,i[n+52>>2]=0,i[n+40>>2]=0,i[n+44>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,(a=!((E=(e=!Q&B>>>0>32|0!=(0|Q))?32:B)|(e=e?0:Q)))||X(n- -64|0,g,E),o=C+16|0,$I(n+32|0,n+32|0,r=E+32|0,C=r>>>0<32?e+1|0:e,o,n),lg(n+96|0,n+32|0),a||X(A,n- -64|0,E),fI(n+32|0,64),!Q&B>>>0>=33|Q&&Ag(A+E|0,C=g+E|0,(g=B)-E|0,Q-(e+(g>>>0>>0)|0)|0,o,n),fI(n,32),yg(n+96|0,A,B,Q),Fg(n+96|0,I),fI(n+96|0,256),h=n+352|0,0}function aA(A,I){i[A>>2]=1634760805,i[A+4>>2]=857760878,i[A+8>>2]=2036477234,i[A+12>>2]=1797285236,i[A+16>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+20>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i[A+24>>2]=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,i[A+28>>2]=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,i[A+32>>2]=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,i[A+36>>2]=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,i[A+40>>2]=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,i[A+44>>2]=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24}function rA(A,I,g,B,Q,C,E){var n,a,r=0,o=0;h=n=h-96|0,K(n,C,E),a=C+16|0,Vg[i[8952]](n+32|0,32,0,a,n),C=-1;A:{if(!(0|Vg[i[8946]](g,I,B,Q,n+32|0))){if(C=0,!A)break A;!Q&B>>>0<=A-I>>>0|A>>>0<=I>>>0&&!(!Q&B>>>0>I-A>>>0|Q&&A>>>0>>0)||(I=gA(A,I,B)),g=(C=!Q&B>>>0>32|0!=(0|Q))?32:B,E=C=C?0:Q,g|C?(o=X(n- -64|0,I,g),C=E,$I(n+32|0,n+32|0,r=g+32|0,C=r>>>0<32?C+1|0:C,a,n),X(A,o,g)):(C=E,$I(n+32|0,n+32|0,r=g+32|0,C=r>>>0<32?C+1|0:C,a,n)),C=0,!Q&B>>>0<33||Ag((r=A)+(A=g)|0,A+I|0,B-A|0,Q-(E+(A>>>0>B>>>0)|0)|0,a,n)}fI(n,32)}return h=n+96|0,C}function oA(A){var I=0,g=0,B=0;if(!A)return-25;if(!i[A>>2])return-1;A:{I:{if(I=-2,!(a[A+4>>2]<16)&&(i[A+8>>2]||(I=-18,!i[A+12>>2]))){if(g=i[A+20>>2],!i[A+16>>2])break I;if(I=-6,!(g>>>0<8)&&(i[A+24>>2]||(I=-20,!i[A+28>>2]))&&(i[A+32>>2]||(I=-21,!i[A+36>>2]))){if(!(g=i[A+48>>2]))return-16;if(I=-17,!(g>>>0>16777215||(I=-14,(B=i[A+44>>2])>>>0<8||(I=-15,B>>>0>2097152||(I=-14,g<<3>>>0>B>>>0))))){if(!i[A+40>>2])return-12;if(A=i[A+52>>2])break A;I=-28}}}return I}return g?-19:-6}return A>>>0>16777215?-29:0}function eA(A,I,g){var B,Q,C,E,n,a,r,o,e,t,f,c,y,s,w,h,D,u,p,l;f=i[I+4>>2],B=i[A+4>>2],c=i[I+8>>2],Q=i[A+8>>2],y=i[I+12>>2],C=i[A+12>>2],s=i[I+16>>2],E=i[A+16>>2],w=i[I+20>>2],n=i[A+20>>2],h=i[I+24>>2],a=i[A+24>>2],D=i[I+28>>2],r=i[A+28>>2],u=i[I+32>>2],o=i[A+32>>2],p=i[I+36>>2],e=i[A+36>>2],t=i[A>>2],l=i[I>>2]^t,I=0-g|0,i[A>>2]=t^l&I,i[A+36>>2]=I&(e^p)^e,i[A+32>>2]=I&(o^u)^o,i[A+28>>2]=I&(r^D)^r,i[A+24>>2]=I&(a^h)^a,i[A+20>>2]=I&(n^w)^n,i[A+16>>2]=I&(E^s)^E,i[A+12>>2]=I&(C^y)^C,i[A+8>>2]=I&(Q^c)^Q,i[A+4>>2]=I&(B^f)^B}function tA(A,I){for(var g=0,B=0,Q=0,E=0,i=0,a=0,r=0,o=0;C[A+g|0]=n[(g>>>3|0)+I|0]>>>(7&g)&1,256!=(0|(g=g+1|0)););for(;;){a=(I=a)+1|0;A:if(n[0|(i=A+I|0)]&&(g=a,Q=1,!(I>>>0>254)))for(;;){I:if(E=C[0|(B=A+g|0)])if((0|(o=(r=C[0|i])+(E<<=Q)|0))<=15)C[0|i]=o,C[0|B]=0;else{if((0|(B=r-E|0))<-15)break A;for(C[0|i]=B;;){if(!n[0|(B=A+g|0)]){C[0|B]=1;break I}if(C[0|B]=0,B=g>>>0<255,g=g+1|0,!B)break}}if(Q>>>0>5)break A;if(!((g=I+(Q=Q+1|0)|0)>>>0<256))break}if(256==(0|a))break}}function fA(A,I,g,B){var Q,C,E,n,a=0;h=Q=h+-64|0,EA(Q+8|0,0,52),a=YA(A),i[Q+20>>2]=a,i[Q+36>>2]=a,i[Q+4>>2]=a,C=k(a),i[Q+32>>2]=C,E=k(a),i[Q+16>>2]=E,n=k(a),i[Q>>2]=n;A:if(!n|!C|!E||!(a=k(a)))m(C),m(E),m(n),A=-22;else{if(A=T(Q,A,B)){m(i[Q+32>>2]),m(i[Q+16>>2]),m(i[Q>>2]),m(a);break A}A=0,I=pA(i[Q+40>>2],i[Q+44>>2],i[Q+52>>2],I,g,i[Q+16>>2],i[Q+20>>2],a,i[Q+4>>2],0,0,B),m(i[Q+32>>2]),m(i[Q+16>>2]),(I||zA(a,i[Q>>2],i[Q+4>>2]))&&(A=-35),m(a),m(i[Q>>2])}return h=Q- -64|0,A}function cA(A,I){var g,B,Q=0;h=g=h-288|0,d(B=A+40|0,I),wg(Q=A+80|0),H(g+240|0,B),_(g+192|0,g+240|0,2128),yA(g+240|0,g+240|0,Q),sA(g+192|0,g+192|0,Q),H(g+144|0,g+192|0),_(g+144|0,g+144|0,g+192|0),H(A,g+144|0),_(A,A,g+192|0),_(A,A,g+240|0),function(A,I){var g,B=0;for(h=g=h-144|0,H(g+96|0,I),H(g+48|0,g+96|0),H(g+48|0,g+48|0),_(g+48|0,I,g+48|0),_(g+96|0,g+96|0,g+48|0),H(g+96|0,g+96|0),_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),B=1;H(g+48|0,g+48|0),5!=(0|(B=B+1|0)););for(_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),B=1;H(g+48|0,g+48|0),10!=(0|(B=B+1|0)););for(_(g+48|0,g+48|0,g+96|0),H(g,g+48|0),B=1;H(g,g),20!=(0|(B=B+1|0)););for(_(g+48|0,g,g+48|0),B=1;H(g+48|0,g+48|0),11!=(0|(B=B+1|0)););for(_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),B=1;H(g+48|0,g+48|0),50!=(0|(B=B+1|0)););for(_(g+48|0,g+48|0,g+96|0),H(g,g+48|0),B=1;H(g,g),100!=(0|(B=B+1|0)););for(_(g+48|0,g,g+48|0),B=1;H(g+48|0,g+48|0),51!=(0|(B=B+1|0)););_(g+96|0,g+48|0,g+96|0),H(g+96|0,g+96|0),H(g+96|0,g+96|0),_(A,g+96|0,I),h=g+144|0}(A,A),_(A,A,g+144|0),_(A,A,g+240|0),H(g+96|0,A),_(g+96|0,g+96|0,g+192|0),yA(g+48|0,g+96|0,g+240|0);A:{if(!RI(g+48|0)){if(sA(g,g+96|0,g+240|0),Q=-1,!RI(g))break A;_(A,A,2176)}(0|KI(A))==(n[I+31|0]>>>7|0)&&mA(A,A),_(A+120|0,A,B),Q=0}return h=g+288|0,Q}function yA(A,I,g){var B,Q,C,E,n,a,r,o,e,t,f,c,y,s,w,h,D,u;B=i[g+4>>2],Q=i[I+4>>2],C=i[g+8>>2],E=i[I+8>>2],n=i[g+12>>2],a=i[I+12>>2],r=i[g+16>>2],o=i[I+16>>2],e=i[g+20>>2],t=i[I+20>>2],f=i[g+24>>2],c=i[I+24>>2],y=i[g+28>>2],s=i[I+28>>2],w=i[g+32>>2],h=i[I+32>>2],D=i[g+36>>2],u=i[I+36>>2],i[A>>2]=i[I>>2]-i[g>>2],i[A+36>>2]=u-D,i[A+32>>2]=h-w,i[A+28>>2]=s-y,i[A+24>>2]=c-f,i[A+20>>2]=t-e,i[A+16>>2]=o-r,i[A+12>>2]=a-n,i[A+8>>2]=E-C,i[A+4>>2]=Q-B}function sA(A,I,g){var B,Q,C,E,n,a,r,o,e,t,f,c,y,s,w,h,D,u;B=i[g+4>>2],Q=i[I+4>>2],C=i[g+8>>2],E=i[I+8>>2],n=i[g+12>>2],a=i[I+12>>2],r=i[g+16>>2],o=i[I+16>>2],e=i[g+20>>2],t=i[I+20>>2],f=i[g+24>>2],c=i[I+24>>2],y=i[g+28>>2],s=i[I+28>>2],w=i[g+32>>2],h=i[I+32>>2],D=i[g+36>>2],u=i[I+36>>2],i[A>>2]=i[g>>2]+i[I>>2],i[A+36>>2]=D+u,i[A+32>>2]=w+h,i[A+28>>2]=y+s,i[A+24>>2]=f+c,i[A+20>>2]=e+t,i[A+16>>2]=r+o,i[A+12>>2]=n+a,i[A+8>>2]=C+E,i[A+4>>2]=B+Q}function wA(A){var I,g=0,B=0,Q=0,E=0;for(C[11+(I=h-16|0)|0]=0,C[I+12|0]=0,C[I+13|0]=0,C[I+14|0]=0,i[I+8>>2]=0;;){for(Q=n[A+B|0],g=0;C[0|(E=(I+8|0)+g|0)]=n[0|E]|Q^n[(3232+(g<<5)|0)+B|0],7!=(0|(g=g+1|0)););if(31==(0|(B=B+1|0)))break}for(B=127&n[A+31|0],A=0,g=0;C[0|(Q=(I+8|0)+g|0)]=n[0|Q]|B^n[3263+(g<<5)|0],7!=(0|(g=g+1|0)););for(g=0;g=n[(I+8|0)+A|0]-1|g,7!=(0|(A=A+1|0)););return g>>>8&1}function hA(A,I){var g=0,B=0,Q=0,E=0,i=0;for(EA(X(A,1952,64)- -64|0,0,293);Q=B=(g=E<<3)+A|0,g=I+g|0,i=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24,B=(n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24)^(n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24),g=(n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24)^i,C[0|Q]=g,C[Q+1|0]=g>>>8,C[Q+2|0]=g>>>16,C[Q+3|0]=g>>>24,C[Q+4|0]=B,C[Q+5|0]=B>>>8,C[Q+6|0]=B>>>16,C[Q+7|0]=B>>>24,8!=(0|(E=E+1|0)););}function DA(A,I,g,B,Q){var C,E=0;h=C=h+-64|0;A:{I:{if(E=!g,(g=YA(A))>>>0<128&&E){if(i[C+56>>2]=0,i[C+48>>2]=0,i[C+52>>2]=0,i[C+40>>2]=0,i[C+44>>2]=0,E=function(A){var I=0,g=0;return I=0,A&&(g=A,I=A,(1|A)>>>0<65536||(I=g)),g=I,!(A=k(I))|!(3&n[A-4|0])||EA(A,0,g),A}(g))break I}else i[8960]=28;A=-1;break A}i[C+32>>2]=0,i[C+36>>2]=0,i[C+8>>2]=E,i[C+16>>2]=E,i[C+20>>2]=g,i[C>>2]=E,i[C+12>>2]=g,i[C+24>>2]=0,i[C+28>>2]=0,i[C+4>>2]=g,T(C,A,Q)?(i[8960]=28,A=-1):(A=1,(0|I)==i[C+40>>2]&&(A=i[C+44>>2]!=(B>>>10|0))),m(E)}return h=C- -64|0,A}function uA(A,I){var g,B=0,Q=0,E=0,o=0;if(h=g=h-48|0,!((B=oA(A))||(B=-26,I-1>>>0>1||(E=i[A+44>>2],B=i[A+48>>2],i[g>>2]=0,Q=i[A+40>>2],i[g+28>>2]=B,i[g+12>>2]=-1,i[g+8>>2]=Q,B=((Q=E>>>0<(Q=B<<3)>>>0?Q:E)>>>0)/((E=B<<2)>>>0)|0,i[g+20>>2]=B,i[g+24>>2]=B<<2,i[g+16>>2]=r(B,E),B=i[A+52>>2],i[g+36>>2]=I,i[g+32>>2]=B,B=function(A,I){var g,B=0;return h=g=h-80|0,B=-25,!A|!I||(B=k(i[A+20>>2]<<3),i[A+4>>2]=B,B?(B=function(A,I){var g,B=0,Q=0;h=g=h-16|0,Q=-22;A:if(!(!A|!I)&&1024==(((B=I<<10)>>>0)/(I>>>0)|0)&&(I=k(12),i[A>>2]=I,I)){i[I>>2]=0,i[I+4>>2]=0,I=function(A,I){if(I>>>0>4294967168)A=48;else{if(!(I=function(A){var I=0,g=0,B=0,Q=0,C=0,E=0;return A>>>0>=4294967168?(i[8960]=48,0):(A=k(76+(B=A>>>0<11?16:A+11&-8)|0))?(I=A-8|0,63&A?(Q=(-8&(E=i[(C=A-4|0)>>2]))-(g=(A=(A=(A+63&-64)-8|0)-I>>>0>15?A:A- -64|0)-I|0)|0,3&E?(i[A+4>>2]=Q|1&i[A+4>>2]|2,i[4+(Q=A+Q|0)>>2]=1|i[Q+4>>2],i[C>>2]=g|1&i[C>>2]|2,i[A+4>>2]=1|i[A+4>>2],v(I,g)):(I=i[I>>2],i[A+4>>2]=Q,i[A>>2]=I+g)):A=I,3&(I=i[A+4>>2])&&((g=-8&I)>>>0<=B+16>>>0||(i[A+4>>2]=B|1&I|2,I=A+B|0,B=g-B|0,i[I+4>>2]=3|B,i[4+(g=A+g|0)>>2]=1|i[g+4>>2],v(I,B))),A+8|0):0}(I)))return 48;i[A>>2]=I,A=0}return A}(g+12|0,B),i[8960]=I;I:{if(I)i[g+12>>2]=0;else if(I=i[g+12>>2])break I;m(i[A>>2]),i[A>>2]=0;break A}i[i[A>>2]>>2]=I,i[i[A>>2]+4>>2]=I,i[i[A>>2]+8>>2]=B,Q=0}return h=g+16|0,Q}(A,i[A+16>>2]))?eI(A,i[I+56>>2]):(function(A,I,g){var B,Q=0;B=Q=h,h=Q=Q-448&-64,!A|!I||(iI(Q- -64|0,0,0,64),xI(Q+60|0,i[I+48>>2]),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,i[I+4>>2]),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,i[I+44>>2]),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,i[I+40>>2]),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,19),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,g),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,i[I+12>>2]),hg(Q- -64|0,Q+60|0,4,0),(g=i[I+8>>2])&&(hg(Q- -64|0,g,i[I+12>>2],0),1&C[I+56|0]&&(fI(i[I+8>>2],i[I+12>>2]),i[I+12>>2]=0)),xI(Q+60|0,i[I+20>>2]),hg(Q- -64|0,Q+60|0,4,0),(g=i[I+16>>2])&&hg(Q- -64|0,g,i[I+20>>2],0),xI(Q+60|0,i[I+28>>2]),hg(Q- -64|0,Q+60|0,4,0),(g=i[I+24>>2])&&(hg(Q- -64|0,g,i[I+28>>2],0),2&n[I+56|0]&&(fI(i[I+24>>2],i[I+28>>2]),i[I+28>>2]=0)),xI(Q+60|0,i[I+36>>2]),hg(Q- -64|0,Q+60|0,4,0),(g=i[I+32>>2])&&hg(Q- -64|0,g,i[I+36>>2],0),dI(Q- -64|0,A,64)),h=B}(g,I,i[A+36>>2]),fI(g- -64|0,8),function(A,I){var g,B=0,Q=0,C=0;if(h=g=h-1024|0,i[I+28>>2])for(C=A+68|0,Q=A- -64|0;xI(Q,0),xI(C,B),J(g,1024,A,72),TA(i[i[I>>2]+4>>2]+(r(i[I+24>>2],B)<<10)|0,g),xI(Q,1),J(g,1024,A,72),TA(1024+(i[i[I>>2]+4>>2]+(r(i[I+24>>2],B)<<10)|0)|0,g),(B=B+1|0)>>>0>2];);fI(g,1024),h=g+1024|0}(g,A),fI(g,72),B=0):B=-22),h=g+80|0,B}(g,A))))){if(i[g+8>>2])for(;kA(g,o),(o=o+1|0)>>>0>2];);!function(A,I){var g,B=0,Q=0;if(h=g=h-2048|0,!(!A|!I)){if(Yg(g+1024|0,(i[i[I>>2]+4>>2]+(i[I+24>>2]<<10)|0)-1024|0),a[I+28>>2]>=2)for(B=1;Q=i[I+24>>2],QI(g+1024|0,(i[i[I>>2]+4>>2]+(Q+r(B,Q)<<10)|0)-1024|0),(B=B+1|0)>>>0>2];);!function(A,I){for(var g=0,B=0;tI((g=B<<3)+A|0,i[(g=I+g|0)>>2],i[g+4>>2]),128!=(0|(B=B+1|0)););}(g,g+1024|0),J(i[A>>2],i[A+4>>2],g,1024),fI(g+1024|0,1024),fI(g,1024),eI(I,i[A+56>>2])}h=g+2048|0}(A,g),B=0}return h=g+48|0,B}function pA(A,I,g,B,Q,C,E,n,a,r,o,e){var t,f;return h=t=h+-64|0,(f=k(a))?(i[t+32>>2]=0,i[t+36>>2]=0,i[t+24>>2]=0,i[t+28>>2]=0,i[t+20>>2]=E,i[t+16>>2]=C,i[t+12>>2]=Q,i[t+8>>2]=B,i[t+4>>2]=a,i[t>>2]=f,i[t+56>>2]=0,i[t+52>>2]=g,i[t+48>>2]=g,i[t+44>>2]=I,i[t+40>>2]=A,(g=uA(t,e))?fI(f,a):!r|!o||!R(r,o,t,e)?(n&&X(n,f,a),fI(f,a),g=0):(fI(f,a),fI(r,o),g=-31),m(f)):g=-22,h=t- -64|0,g}function lA(A,I,g,B,Q,E){var i,a,o=0,e=0,t=0;return h=i=h-592|0,o=-1,function(A){var I=0,g=0,B=0,Q=0,C=0;for(I=32,g=1;C=(B=n[(I=I-1|0)+A|0])-(Q=n[I+3456|0])>>8&g|255&C,g&=65535+(B^Q)>>>8,I;);return 0!=(0|C)}(a=A+32|0)&&(wA(A)||function(A){var I=0,g=0;for(g=127&(-1^n[A+31|0]),I=30;g=-1^n[A+I|0]|g,I=I-1|0;);return 1&(((255&g)-1&236-n[0|A])>>>8^-1)}(Q)&&(wA(Q)||cA(i+128|0,Q)||(ig(i+384|0,E),V(i+384|0,A,32,0),V(i+384|0,Q,32,0),V(i+384|0,I,g,B),UI(i+384|0,i+320|0),G(i+320|0),function(A,I,g,B){var Q;h=Q=h-2272|0,tA(Q+2016|0,I),tA(Q+1760|0,B),FI(Q+480|0,g),JI(Q+320|0,g),DI(Q,Q+320|0),VA(Q+320|0,Q,Q+480|0),DI(Q+160|0,Q+320|0),FI(I=Q+640|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+800|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+960|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+1120|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+1280|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+1440|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(Q+1600|0,Q+160|0),Ug(A),wg(A+40|0),wg(A+80|0),B=255;A:{for(;;){if(!(n[(g=B)+(Q+2016|0)|0]|n[(Q+1760|0)+g|0])){if(B=g-1|0,g)continue;break A}break}if(!((0|g)<0))for(;AI(Q+320|0,A),(0|(g=C[(I=g)+(Q+2016|0)|0]))>=1?(DI(Q+160|0,Q+320|0),VA(Q+320|0,Q+160|0,(Q+480|0)+r((254&g)>>>1|0,160)|0)):(0|g)>-1||(DI(Q+160|0,Q+320|0),WA(Q+320|0,Q+160|0,(Q+480|0)+r((0-g&254)>>>1|0,160)|0)),(0|(g=C[I+(Q+1760|0)|0]))>=1?(DI(Q+160|0,Q+320|0),OA(Q+320|0,Q+160|0,r((254&g)>>>1|0,120)+2272|0)):(0|g)>-1||(DI(Q+160|0,Q+320|0),ZA(Q+320|0,Q+160|0,r((0-g&254)>>>1|0,120)+2272|0)),_I(A,Q+320|0),g=I-1|0,(0|I)>0;);}h=Q+2272|0}(i+8|0,i+320|0,i+128|0,a),nI(i+288|0,i+8|0),e=-1,t=Gg(i+288|0,A),o=((i+288|0)==(0|A)?e:t)|zA(A,i+288|0,32)))),h=i+592|0,o}function FA(A,I,g,B){var Q=0,C=0;A:if(i[I>>2])C=i[A+24>>2],Q=i[A+20>>2],B=B?i[I+12>>2]+(C+(-1^Q)|0)|0:(C-Q|0)-!i[I+12>>2]|0,C=0,3!=(0|(I=n[I+8|0]))&&(C=r(Q,I+1|0));else{if(!(Q=n[I+8|0])){B=i[I+12>>2]-1|0,C=0;break A}if(Q=r(Q,i[A+20>>2]),I=i[I+12>>2],B){B=(I+Q|0)-1|0,C=0;break A}B=Q-!I|0,C=0}return I=C+(Q=B-1|0)|0,eg(g,0,g,0),eg(B,0,p,0),function(A,I,g){var B=0,Q=0,C=0,E=0,i=0,n=0,a=0,e=0,t=0;A:{I:{g:{B:{Q:{C:{E:{i:{n:{if(Q=I){if(!(B=g))break n;break i}return D=A-r((A>>>0)/(g>>>0)|0,g)|0,u=0,void(p=0)}if(!A)break E;break C}if(!((E=B-1|0)&B))break Q;i=0-(E=(o(B)+33|0)-o(Q)|0)|0;break g}return D=0,u=Q,void(p=0)}if((B=32-o(Q)|0)>>>0<31)break B;break I}if(D=A&E,u=0,1==(0|B))break A;return g=31&(A=B?31-o(B-1^B)|0:32),void(p=(63&A)>>>0>=32?0:I>>>g|0)}E=B+1|0,i=63-B|0}if(B=I,C=31&(Q=63&E),Q>>>0>=32?(Q=0,C=B>>>C|0):(Q=B>>>C|0,C=((1<>>C),B=31&(i&=63),i>>>0>=32?(I=A<>>32-B|I<>>31)-(e=g&(n=i-((Q=Q<<1|C>>>31)+(B>>>0>>0)|0)>>31))|0,Q=Q-(a>>>0>>0)|0,I=I<<1|A>>>31,A=t|A<<1,t=1&n,E=E-1|0;);return D=C,u=Q,void(p=I<<1|A>>>31)}D=A,u=I,I=0}p=I}(I-(g=p)|0,(I>>>0>>0)-(I>>>0>>0)|0,i[A+24>>2]),p=u,D}function GA(A,I,g,B,Q,C,E,i,n,a){var r;return h=r=h-352|0,_g(r+32|0,64,n,a),lg(r+96|0,r+32|0),fI(r+32|0,64),yg(r+96|0,C,E,i),yg(r+96|0,34688,0-E&15,0),yg(r+96|0,I,g,B),yg(r+96|0,34688,0-g&15,0),tI(r+24|0,E,i),yg(r+96|0,r+24|0,8,0),tI(r+24|0,g,B),yg(r+96|0,r+24|0,8,0),Fg(r+96|0,r),fI(r+96|0,256),Q=kg(r,Q),fI(r,16),A&&(Q?(EA(A,0,g),Q=-1):(BI(A,I,g,B,n,1,a),Q=0)),h=r+352|0,Q}function kA(A,I){var g,B=0,Q=0,E=0;if(h=g=h-32|0,!(!A|!i[A+28>>2]))for(i[g+16>>2]=I,B=1;;){if(C[g+24|0]=Q,I=0,E=0,B)for(;i[g+28>>2]=0,B=i[g+28>>2],i[g+8>>2]=i[g+24>>2],i[g+12>>2]=B,i[g+20>>2]=I,B=i[g+20>>2],i[g>>2]=i[g+16>>2],i[g+4>>2]=B,$(A,g),(I=I+1|0)>>>0<(E=i[A+28>>2])>>>0;);if(B=E,4==(0|(Q=Q+1|0)))break}h=g+32|0}function _A(A,I,g,B,Q,C,E,n,a,r,o){var e;return h=e=h-336|0,_g(e+16|0,64,r,o),lg(e+80|0,e+16|0),fI(e+16|0,64),yg(e+80|0,E,n,a),yg(e+80|0,34688,0-n&15,0),BI(A,B,Q,C,r,1,o),yg(e+80|0,A,Q,C),yg(e+80|0,34688,0-Q&15,0),tI(e+8|0,n,a),yg(e+80|0,e+8|0,8,0),tI(e+8|0,Q,C),yg(e+80|0,e+8|0,8,0),Fg(e+80|0,I),fI(e+80|0,256),g&&(i[g>>2]=16,i[g+4>>2]=0),h=e+336|0,0}function HA(A,I,g,B,Q,C,E,i,n,a){var r;return h=r=h-352|0,og(r+32|0,n,a),lg(r+96|0,r+32|0),fI(r+32|0,64),yg(r+96|0,C,E,i),tI(r+24|0,E,i),yg(r+96|0,r+24|0,8,0),yg(r+96|0,I,g,B),tI(r+24|0,g,B),yg(r+96|0,r+24|0,8,0),Fg(r+96|0,r),fI(r+96|0,256),Q=kg(r,Q),fI(r,16),A&&(Q?(EA(A,0,g),Q=-1):(NI(A,I,g,B,n,a),Q=0)),h=r+352|0,Q}function YA(A){var I=0,g=0,B=0;A:{I:if(3&(I=A)){if(!n[0|A])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!n[0|I])break}break A}for(;g=I,I=I+4|0,!((-1^(B=i[g>>2]))&B-16843009&-2139062144););if(!(255&B))return g-A|0;for(;B=n[g+1|0],g=I=g+1|0,B;);}return I-A|0}function bA(A,I){var g,B=0,Q=0,C=0,E=0,a=0;A:if(!(((g=n[0|A])-48&255)>>>0>9)){for(Q=g,B=A;;){if(E=B,C>>>0>429496729)break A;if((Q=(255&Q)-48|0)>>>0>(-1^(B=r(C,10)))>>>0)break A;if(C=B+Q|0,!(((Q=n[0|(B=E+1|0)])-48&255)>>>0<10))break}(0|A)==(0|B)|(48==(0|g)?(0|A)!=(0|E):0)||(i[I>>2]=C,a=B)}return a}function mA(A,I){var g,B,Q,C,E,n,a,r,o;g=i[I+4>>2],B=i[I+8>>2],Q=i[I+12>>2],C=i[I+16>>2],E=i[I+20>>2],n=i[I+24>>2],a=i[I+28>>2],r=i[I+32>>2],o=i[I+36>>2],i[A>>2]=0-i[I>>2],i[A+36>>2]=0-o,i[A+32>>2]=0-r,i[A+28>>2]=0-a,i[A+24>>2]=0-n,i[A+20>>2]=0-E,i[A+16>>2]=0-C,i[A+12>>2]=0-Q,i[A+8>>2]=0-B,i[A+4>>2]=0-g}function vA(A,I,g){var B=0;B=I<<8&16711680|I<<24,B|=255&(g<<8|I>>>24)|65280&(g<<24|I>>>8),I=-16777216&((255&g)<<24|I>>>8)|16711680&((16777215&g)<<8|I>>>24)|g>>>8&65280|g>>>24|0,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,I=B,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24}function UA(A,I,g){var B;B=A,g?(i[A+48>>2]=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24):(i[A+48>>2]=0,g=0),i[B+52>>2]=g,i[A+56>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+60>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24}function SA(A,I){var g,B,Q,C,E,n,a,r,o;g=i[I+8>>2],B=i[I+12>>2],Q=i[I+16>>2],C=i[I+20>>2],E=i[I+24>>2],n=i[I+28>>2],a=i[I>>2],r=i[I+4>>2],o=i[I+36>>2],i[A+32>>2]=i[I+32>>2],i[A+36>>2]=o,i[A+24>>2]=E,i[A+28>>2]=n,i[A+16>>2]=Q,i[A+20>>2]=C,i[A+8>>2]=g,i[A+12>>2]=B,i[A>>2]=a,i[A+4>>2]=r}function NA(A,I,g,B,Q,C,E,a,r,o,e){var t;return h=t=h-48|0,i[t+8>>2]=0,i[t>>2]=0,i[t+4>>2]=0,x(t+16|0,o,e),e=n[o+16|0]|n[o+17|0]<<8|n[o+18|0]<<16|n[o+19|0]<<24,o=n[o+20|0]|n[o+21|0]<<8|n[o+22|0]<<16|n[o+23|0]<<24,i[t+4>>2]=e,i[t+8>>2]=o,function(A,I,g,B,Q,C,E,n,a,r,o){var e;h=e=h-336|0,rg(e+16|0,64,r,o),lg(e+80|0,e+16|0),fI(e+16|0,64),yg(e+80|0,E,n,a),yg(e+80|0,34704,0-n&15,0),SI(A,B,Q,C,r,1,o),yg(e+80|0,A,Q,C),yg(e+80|0,34704,0-Q&15,0),tI(e+8|0,n,a),yg(e+80|0,e+8|0,8,0),tI(e+8|0,Q,C),yg(e+80|0,e+8|0,8,0),Fg(e+80|0,I),fI(e+80|0,256),g&&(i[g>>2]=16,i[g+4>>2]=0),h=e+336|0}(A,I,g,B,Q,C,E,a,r,t,t+16|0),fI(t+16|0,32),h=t+48|0,0}function MA(A,I,g,B,Q,C,E,a,r,o){var e;return h=e=h-48|0,i[e+8>>2]=0,i[e>>2]=0,i[e+4>>2]=0,x(e+16|0,r,o),o=n[r+16|0]|n[r+17|0]<<8|n[r+18|0]<<16|n[r+19|0]<<24,r=n[r+20|0]|n[r+21|0]<<8|n[r+22|0]<<16|n[r+23|0]<<24,i[e+4>>2]=o,i[e+8>>2]=r,A=function(A,I,g,B,Q,C,E,i,n,a){var r;return h=r=h-352|0,rg(r+32|0,64,n,a),lg(r+96|0,r+32|0),fI(r+32|0,64),yg(r+96|0,C,E,i),yg(r+96|0,34704,0-E&15,0),yg(r+96|0,I,g,B),yg(r+96|0,34704,0-g&15,0),tI(r+24|0,E,i),yg(r+96|0,r+24|0,8,0),tI(r+24|0,g,B),yg(r+96|0,r+24|0,8,0),Fg(r+96|0,r),fI(r+96|0,256),Q=kg(r,Q),fI(r,16),A&&(Q?(EA(A,0,g),Q=-1):(SI(A,I,g,B,n,1,a),Q=0)),h=r+352|0,Q}(A,I,g,B,Q,C,E,a,e,e+16|0),fI(e+16|0,32),h=e+48|0,A}function dA(A){var I;return I=n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,A=n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24,p=65280&(A<<24|I>>>8)|255&(A<<8|I>>>24)|I<<8&16711680|I<<24,-16777216&((255&A)<<24|I>>>8)|16711680&((16777215&A)<<8|I>>>24)|A>>>8&65280|A>>>24|0}function PA(A,I,g,B,Q,C,E,n,a,r,o){var e;return h=e=h-336|0,og(e+16|0,r,o),lg(e+80|0,e+16|0),fI(e+16|0,64),yg(e+80|0,E,n,a),tI(e+8|0,n,a),yg(e+80|0,e+8|0,8,0),NI(A,B,Q,C,r,o),yg(e+80|0,A,Q,C),tI(e+8|0,Q,C),yg(e+80|0,e+8|0,8,0),Fg(e+80|0,I),fI(e+80|0,256),g&&(i[g>>2]=16,i[g+4>>2]=0),h=e+336|0,0}function RA(A,I,g,B){var Q;if(h=Q=h-192|0,!(!g|(I-1&255)>>>0>=64|(B-1&255)>>>0>=64))return E[Q+130>>1]=257,C[Q+129|0]=B,C[Q+128|0]=I,WI(Q+128|4),tI(Q+128|8,0,0),EA(Q+144|0,0,48),hA(A,Q+128|0),EA(B+Q|0,0,128-B|0),QA(I=A,A=X(Q,g,B),128,0),fI(A,128),h=A+192|0,0;OI(),e()}function JA(A,I,g){i[A+48>>2]=g?n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24:0,i[A+52>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+56>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i[A+60>>2]=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24}function xA(A,I,g,B,Q,C,E){var n;return h=n=h-16|0,A=EA(A,0,128),E>>>0<2147483649&&!(B|C)?E>>>0>8191&&Q|C?(cI(n,16),A=pA(Q,E>>>10|0,1,I,g,n,16,0,32,A,128,2)?-1:0):(i[8960]=28,A=-1):(i[8960]=22,A=-1),h=n+16|0,A}function LA(A){var I=0;return(0-(I=A+4&(A+65488>>>8^-1)&(57-A>>>8^-1)&255|((I=A-65|0)>>>8^-1)&I&(90-A>>>8^-1)&255|A+185&(A+65439>>>8^-1)&(122-A>>>8^-1)&255|63&(1+(16288^A)>>>8^-1)|62&(1+(16338^A)>>>8^-1))>>>8^-1)&1+(65470^A)>>>8&255|I}function KA(A){var I=0;return(0-(I=A+4&(A+65488>>>8^-1)&(57-A>>>8^-1)&255|((I=A-65|0)>>>8^-1)&I&(90-A>>>8^-1)&255|A+185&(A+65439>>>8^-1)&(122-A>>>8^-1)&255|63&(1+(16336^A)>>>8^-1)|62&(1+(16340^A)>>>8^-1))>>>8^-1)&1+(65470^A)>>>8&255|I}function qA(A,I){var g,B,Q=0,E=0,i=0,n=0;for(h=g=h-16|0,Q=10;n=Q,i=(I>>>0)/10|0,C[0|(E=(Q=Q-1|0)+(g+6|0)|0)]=I-r(i,10)|48,!(I>>>0<10)&&(I=i,Q););B=X(I=A,E,A=11-n|0)+A|0,C[0|B]=0,h=g+16|0}function XA(A,I,g){var B=0,Q=0,C=0;if(!g)return 0;A:if(B=n[0|A]){for(;;){if((0|(Q=n[0|I]))==(0|B)&&!(!(g=g-1|0)|!Q)){if(I=I+1|0,B=n[A+1|0],A=A+1|0,B)continue;break A}break}C=B}return(255&C)-n[0|I]|0}function VA(A,I,g){var B,Q,C,E=0;h=Q=h-48|0,sA(A,E=I+40|0,I),yA(B=A+40|0,E,I),_(E=A+80|0,A,g),_(B,B,g+40|0),_(C=A+120|0,g+120|0,I+120|0),_(A,I+80|0,g+80|0),sA(Q,A,A),yA(A,E,B),sA(B,E,B),sA(E,Q,C),yA(C,Q,C),h=Q+48|0}function WA(A,I,g){var B,Q,C,E=0;h=Q=h-48|0,sA(A,E=I+40|0,I),yA(B=A+40|0,E,I),_(E=A+80|0,A,g+40|0),_(B,B,g),_(C=A+120|0,g+120|0,I+120|0),_(A,I+80|0,g+80|0),sA(Q,A,A),yA(A,E,B),sA(B,E,B),yA(E,Q,C),sA(C,Q,C),h=Q+48|0}function TA(A,I){for(var g=0,B=0,Q=0,C=0;Q=(g=B<<3)+A|0,C=n[0|(g=I+g|0)]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,i[Q>>2]=C,i[Q+4>>2]=g,128!=(0|(B=B+1|0)););}function jA(A,I,g){var B;if(i[12+(B=h-16|0)>>2]=A,i[B+8>>2]=I,I=0,i[B+4>>2]=0,(0|g)>=1)for(;i[B+4>>2]=i[B+4>>2]|n[i[B+8>>2]+I|0]^n[i[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(i[B+4>>2]-1>>>8&1)-1|0}function ZA(A,I,g){var B,Q,C,E=0;h=Q=h-48|0,sA(A,E=I+40|0,I),yA(B=A+40|0,E,I),_(E=A+80|0,A,g+40|0),_(B,B,g),_(C=A+120|0,g+80|0,I+120|0),sA(Q,I=I+80|0,I),yA(A,E,B),sA(B,E,B),yA(E,Q,C),sA(C,Q,C),h=Q+48|0}function OA(A,I,g){var B,Q,C,E=0;h=Q=h-48|0,sA(A,E=I+40|0,I),yA(B=A+40|0,E,I),_(E=A+80|0,A,g),_(B,B,g+40|0),_(C=A+120|0,g+80|0,I+120|0),sA(Q,I=I+80|0,I),yA(A,E,B),sA(B,E,B),sA(E,Q,C),yA(C,Q,C),h=Q+48|0}function zA(A,I,g){var B;if(i[12+(B=h-16|0)>>2]=A,i[B+8>>2]=I,I=0,C[B+7|0]=0,g)for(;C[B+7|0]=n[B+7|0]|n[i[B+8>>2]+I|0]^n[i[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(n[B+7|0]-1>>>8&1)-1|0}function $A(A,I,g){var B,Q=0,E=0;if(h=B=h-16|0,C[B+15|0]=0,E=-1,!(0|Vg[i[8950]](A,I,g))){for(;C[B+15|0]=n[A+Q|0]|n[B+15|0],32!=(0|(Q=Q+1|0)););E=0-(n[B+15|0]-1>>>8&1)|0}return h=B+16|0,E}function AI(A,I){var g,B,Q,C,E;h=B=h-48|0,H(A,I),H(g=A+80|0,E=I+40|0),function(A,I){var g,B,Q,C,E,n,a,o,e,t,f,c,y,s,w,h,D,u,l,F,G,k,_,H,Y,b,m,v,U,S,N,M,d,P,R,J,x,L,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0,CA=0,EA=0,iA=0,nA=0;E=K=(W=i[I+12>>2])<<1,n=K>>31,a=K=(O=i[I+4>>2])<<1,K=eg(E,n,K,g=K>>31),X=p,q=K,k=K=gA=i[I+8>>2],V=eg(K,z=K>>31,K,z),K=p+X|0,K=(q=q+V|0)>>>0>>0?K+1|0:K,V=q,B=q=BA=i[I+16>>2],o=q>>31,e=q=(QA=i[I>>2])<<1,X=eg(B,o,q,Q=q>>31),K=p+K|0,K=(q=V+X|0)>>>0>>0?K+1|0:K,j=q,X=i[I+28>>2],l=q=r(X,38),U=X,V=eg(q,h=q>>31,X,_=X>>31),K=p+K|0,K=(q=j+V|0)>>>0>>0?K+1|0:K,T=q,j=i[I+32>>2],Z=eg(f=q=r(j,19),c=q>>31,q=(V=i[I+24>>2])<<1,q>>31),q=p+K|0,q=Z>>>0>($=T+Z|0)>>>0?q+1|0:q,T=$,IA=i[I+36>>2],t=K=r(IA,38),C=K>>31,D=I=($=i[I+20>>2])<<1,Z=eg(K,C,I,s=I>>31),I=p+q|0,H=(K=T+Z|0)<<1,P=K=(K>>>0>>0?I+1|0:I)<<1|K>>>31,S=I=H+33554432|0,R=K=I>>>0<33554432?K+1|0:K,I=K>>26,K=(67108863&K)<<6|S>>>26,q=eg(a,g,B,o),Z=p,T=K,u=K=gA<<1,CA=W,W=eg(K,w=K>>31,W,Y=W>>31),K=p+Z|0,K=(q=W+q|0)>>>0>>0?K+1|0:K,gA=$,W=(Z=eg($,F=$>>31,e,Q))+q|0,q=p+K|0,q=W>>>0>>0?q+1|0:q,BA=W,N=K=X<<1,W=eg(f,c,K,b=K>>31),K=p+q|0,K=(X=BA+W|0)>>>0>>0?K+1|0:K,q=X,W=V,X=eg(t,C,V,y=V>>31),K=p+K|0,K=(q=q+X|0)>>>0>>0?K+1|0:K,X=q,I=I+(q=K<<1|q>>>31)|0,EA=K=T+(X<<=1)|0,K=K>>>0>>0?I+1|0:I,J=I=EA+16777216|0,I=(33554431&(K=I>>>0<16777216?K+1|0:K))<<7|I>>>25,X=K>>25,K=eg(E,n,CA,Y),q=p,T=I,I=(Z=eg(B,o,u,w))+K|0,K=p+q|0,K=I>>>0>>0?K+1|0:K,q=eg(a,g,D,s),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(Z=eg(e,Q,V,y))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,Z=j,j=eg(f,c,j,G=j>>31),K=p+I|0,K=(q=j+q|0)>>>0>>0?K+1|0:K,I=(j=eg(t,C,N,b))+q|0,q=p+K|0,I=((K=I)>>>0>>0?q+1|0:q)<<1|K>>>31,j=K<<1,K=I+X|0,K=(q=T+j|0)>>>0>>0?K+1|0:K,iA=q=(I=q)+33554432|0,X=K=q>>>0<33554432?K+1|0:K,K=-67108864&q,i[A+24>>2]=I-K,j=A,I=eg(I=r($,38),I>>31,$,F),K=p,T=I,$=eg(I=QA,q=I>>31,I,q),q=p+K|0,q=(I=T+$|0)>>>0<$>>>0?q+1|0:q,K=I,AA=I=r(V,19),m=I>>31,M=I=B<<1,I=K+(V=eg(AA,m,I,v=I>>31))|0,K=p+q|0,K=I>>>0>>0?K+1|0:K,q=eg(E,n,l,h),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(V=eg(f,c,u,w))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,V=eg(a,g,t,C),K=p+I|0,x=K=((I=q=V+q|0)>>>0>>0?K+1|0:K)<<1|I>>>31,QA=I=33554432+($=I<<1)|0,BA=q=I>>>0<33554432?K+1|0:K,I=(67108863&q)<<6|I>>>26,V=q>>26,K=eg(AA,m,D,s),q=p,nA=I,I=(O=eg(e,Q,T=O,d=T>>31))+K|0,K=p+q|0,K=I>>>0>>0?K+1|0:K,q=(O=eg(B,o,l,h))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,O=eg(f,c,E,n),K=p+I|0,K=(q=O+q|0)>>>0>>0?K+1|0:K,I=(O=eg(t,C,k,z))+q|0,q=p+K|0,I=((K=I)>>>0>>0?q+1|0:q)<<1|K>>>31,O=K<<1,K=I+V|0,K=(q=nA+O|0)>>>0>>0?K+1|0:K,O=q,(I=q+16777216|0)>>>0<16777216&&(K=K+1|0),nA=I,q=I,I=K>>25,K=(33554431&K)<<7|q>>>25,V=I,I=eg(e,Q,k,z),q=p,L=K,T=eg(a,g,T,d),K=p+q|0,K=(I=T+I|0)>>>0>>0?K+1|0:K,T=eg(AA,m,W,y),q=p+K|0,q=(I=T+I|0)>>>0>>0?q+1|0:q,T=eg(D,s,l,h),K=p+q|0,K=(I=T+I|0)>>>0>>0?K+1|0:K,q=eg(f,c,M,v),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(T=eg(t,C,E,n))+I|0,I=p+K|0,K=(K=(I=q>>>0>>0?I+1|0:I)<<1|q>>>31)+V|0,q=K=(I=L+(q<<=1)|0)>>>0>>0?K+1|0:K,T=K=I+33554432|0,V=q=K>>>0<33554432?q+1|0:q,K&=-67108864,i[j+8>>2]=I-K,I=eg(u,w,gA,F),q=p,K=(AA=eg(B,o,E,n))+I|0,I=p+q|0,I=K>>>0>>0?I+1|0:I,q=(AA=eg(a,g,W,y))+K|0,K=p+I|0,K=q>>>0>>0?K+1|0:K,I=(AA=eg(e,Q,U,_))+q|0,q=p+K|0,q=I>>>0>>0?q+1|0:q,AA=eg(t,C,Z,G),K=p+q|0,K=(K=(K=(I=AA+I|0)>>>0>>0?K+1|0:K)<<1|I>>>31)+(q=X>>26)|0,q=I=(X=(67108863&X)<<6|iA>>>26)+(I<<1)|0,I=K=I>>>0>>0?K+1|0:K,iA=K=q+16777216|0,X=I=K>>>0<16777216?I+1|0:I,I=-33554432&K,i[j+28>>2]=q-I,I=eg(e,Q,CA,Y),K=p,q=eg(a,g,k,z),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=eg(W,y,l,h),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(z=eg(f,c,D,s))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,K=(z=eg(t,C,B,o))+q|0,q=p+I|0,I=K,K=(K>>>0>>0?q+1|0:q)<<1|K>>>31,q=I<<1,K=(I=V>>26)+K|0,K=(q=q+(V=(67108863&V)<<6|T>>>26)|0)>>>0>>0?K+1|0:K,CA=q=(I=q)+16777216|0,V=K=q>>>0<16777216?K+1|0:K,K=-33554432&q,i[j+12>>2]=I-K,z=A,I=eg(W,y,u,w),K=p,q=eg(B,o,B,o),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=eg(E,n,D,s),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=eg(a,g,N,b),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(j=eg(e,Q,Z,G))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,K=(IA=eg(t,C,j=IA,T=j>>31))+q|0,q=p+I|0,A=(I=K)<<1,K=(I=X>>25)+(K=(K>>>0>>0?q+1|0:q)<<1|K>>>31)|0,K=(q=A+(X=(33554431&X)<<7|iA>>>25)|0)>>>0>>0?K+1|0:K,IA=q=(I=q)+33554432|0,X=K=q>>>0<33554432?K+1|0:K,K=-67108864&q,i[z+32>>2]=I-K,K=V>>25,q=(V=(33554431&V)<<7|CA>>>25)+(H-(I=-67108864&S)|0)|0,I=K+(P-((I>>>0>H>>>0)+R|0)|0)|0,K=I=q>>>0>>0?I+1|0:I,V=I=q+33554432|0,I=((67108863&(K=I>>>0<33554432?K+1|0:K))<<6|I>>>26)+(EA=EA-(-33554432&J)|0)|0,i[z+20>>2]=I,I=-67108864&V,i[z+16>>2]=q-I,I=eg(E,n,W,y),q=p,K=(W=eg(gA,F,M,v))+I|0,I=p+q|0,I=K>>>0>>0?I+1|0:I,q=(W=eg(u,w,U,_))+K|0,K=p+I|0,K=q>>>0>>0?K+1|0:K,I=(W=eg(a,g,Z,G))+q|0,q=p+K|0,q=I>>>0>>0?q+1|0:q,W=eg(e,Q,j,T),K=p+q|0,K=(K=(K=(I=W+I|0)>>>0>>0?K+1|0:K)<<1|I>>>31)+(q=X>>26)|0,K=(I=(X=(67108863&X)<<6|IA>>>26)+(I<<1)|0)>>>0>>0?K+1|0:K,q=I,X=I,I=K,I=(K=q+16777216|0)>>>0<16777216?I+1|0:I,q=-33554432&K,i[z+36>>2]=X-q,V=O-(-33554432&nA)|0,I=(K=eg((33554431&I)<<7|K>>>25,I>>25,19,0))+($-(q=-67108864&QA)|0)|0,q=p+(x-((q>>>0>$>>>0)+BA|0)|0)|0,q=I>>>0>>0?q+1|0:q,K=I,I=q,I=((67108863&(I=(q=K+33554432|0)>>>0<33554432?I+1|0:I))<<6|q>>>26)+V|0,i[z+4>>2]=I,A=-67108864&q,i[z>>2]=K-A}(C=A+120|0,I+80|0),sA(Q=A+40|0,I,E),H(B,Q),sA(Q,g,A),yA(g,g,A),yA(A,B,Q),yA(C,C,g),h=B+48|0}function II(A){var I,g;return(A=(I=i[8943])+(g=A+3&-4)|0)>>>0<=I>>>0&&(0|g)>=1||A>>>0>Wg()<<16>>>0&&!(0|w(0|A))?(i[8960]=48,-1):(i[8943]=A,I)}function gI(A,I){var g;return h=g=h+-64|0,(I-1&255)>>>0>=64&&(OI(),e()),C[g+3|0]=1,C[g+1|0]=0,C[g+2|0]=1,C[0|g]=I,WI(4|g),tI(8|g,0,0),EA(g+16|0,0,48),hA(A,g),h=g- -64|0,0}function BI(A,I,g,B,Q,C,E){var i=0,n=0;i=B,1==(((i=(n=g+63|0)>>>0<63?i+1|0:i)>>>6|0)+(0!=(0|(i=(63&i)<<26|n>>>6)))|0)&(n=0-i|0)>>>0>>0&&(OI(),e()),SI(A,I,g,B,Q,C,E)}function QI(A,I){for(var g=0,B=0,Q=0,C=0;B=(g=Q<<3)+A|0,C=i[(g=I+g|0)>>2],g=i[B+4>>2]^i[g+4>>2],i[B>>2]=i[B>>2]^C,i[B+4>>2]=g,128!=(0|(Q=Q+1|0)););}function CI(A){var I,g;return 95&(1+(32704^A)>>>8^-1)|45&(1+(16321^A)>>>8^-1)|(I=A+65510>>>8&255)&A+65|(g=A+65484>>>8|0)&A+71&(255^I)|A+252&A+65474>>>8&(-1^g)&255}function EI(A){var I,g;return 47&(1+(16320^A)>>>8^-1)|43&(1+(16321^A)>>>8^-1)|(I=A+65510>>>8&255)&A+65|(g=A+65484>>>8|0)&A+71&(255^I)|A+252&A+65474>>>8&(-1^g)&255}function iI(A,I,g,B){var Q=0;Q=-1;A:if(!(g>>>0>64|B-1>>>0>63)){I:{if(!g||!I){if(!gI(A,255&B))break I;break A}if(RA(A,255&B,I,255&g))break A}Q=0}return Q}function nI(A,I){var g,B,Q;h=g=h-144|0,j(g+96|0,I+80|0),_(g+48|0,I,g+96|0),_(g,I+40|0,g+96|0),BA(A,g),B=A,Q=KI(g+48|0)<<7^n[A+31|0],C[B+31|0]=Q,h=g+144|0}function aI(A,I){var g,B=0;if(C[15+(g=h-16|0)|0]=0,I)for(;C[g+15|0]=n[A+B|0]|n[g+15|0],(0|(B=B+1|0))!=(0|I););return n[g+15|0]-1>>>8&1}function rI(A,I,g,B){var Q;return B=I+B|0,B=(Q=A+g|0)>>>0>>0?B+1|0:B,g=eg(A<<1&-2,1&(I=I<<1|A>>>31),g,0),A=p+B|0,p=A=(I=g+Q|0)>>>0>>0?A+1|0:A,I}function oI(A,I,g){var B,Q=0;if(B=g>>>3|0)for(g=0;vA((Q=g<<3)+A|0,i[(Q=I+Q|0)>>2],i[Q+4>>2]),(0|B)!=(0|(g=g+1|0)););}function eI(A,I){var g=0;!function(A,I){I&&((I=i[A>>2])&&fI(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&fI(I,i[A+20>>2]<<3))}(A,4&I),m(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&m(g),m(I),i[A>>2]=0}function tI(A,I,g){C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24}function fI(A,I){var g;if(i[12+(g=h-16|0)>>2]=A,I)for(A=0;C[i[g+12>>2]+A|0]=0,(0|I)!=(0|(A=A+1|0)););}function cI(A,I){A|=0;var g=0,B=0,Q=0;if(I|=0)for(;B=A+g|0,Q=YI(),C[0|B]=Q,(0|(g=g+1|0))!=(0|I););}function yI(A,I,g,B,Q){var C,E;return A|=0,I|=0,g|=0,B|=0,h=C=(E=h)-128&-64,IA(C,Q|=0),z(C,I,g,B),Z(C,A),h=E,0}function sI(A){var I=0,g=0,B=0;for(I=1;I=n[0|(B=A+g|0)]+I|0,C[0|B]=I,I=I>>>8|0,4!=(0|(g=g+1|0)););}function wI(A,I,g,B,Q,C,E,i){var n,a=0;return h=n=h-32|0,a=-1,jI(n,E,i)||(a=Qg(A,I,g,B,Q,C,n),fI(n,32)),h=n+32|0,a}function hI(A,I,g,B,Q,C,E,i){var n,a=0;return h=n=h-32|0,a=-1,jI(n,E,i)||(a=Cg(A,I,g,B,Q,C,n),fI(n,32)),h=n+32|0,a}function DI(A,I){var g,B,Q;_(A,I,g=I+120|0),_(A+40|0,B=I+40|0,Q=I+80|0),_(A+80|0,Q,g),_(A+120|0,I,B)}function uI(A,I,g,B,Q,C,E){return!B&g>>>0>=16|B?hI(A,I+16|0,I,g-16|0,B-(g>>>0<16)|0,Q,C,E):-1}function pI(A,I){for(var g=0,B=0;C[0|(B=A+g|0)]=n[0|B]^n[I+g|0],8!=(0|(g=g+1|0)););}function lI(A,I,g){var B,Q;h=B=(Q=h)-384&-64,qI(B,0,0,24),sg(B,I,32,0),sg(B,g,32,0),TI(B,A,24),h=Q}function FI(A,I){var g;sA(A,g=I+40|0,I),yA(A+40|0,g,I),SA(A+80|0,I+80|0),_(A+120|0,I+120|0,2224)}function GI(A,I,g,B,Q,C,E){return I-1>>>0>63|E>>>0>64?-1:function(A,I,g,B,Q,C,E){var i,n=0;if(i=n=h,h=n=n-384&-64,!(!A|(B-1&255)>>>0>=64|(Q|C?!I:0)|E>>>0>=65|(E?!g:0)))return E?RA(n,B,g,E):gI(n,B),QA(n,I,Q,C),M(n,A,B),h=i,0;OI(),e()}(A,g,C,255&I,B,Q,255&E)}function kI(A,I,g,B,Q,C,E){return!B&g>>>0>=4294967280|B&&(OI(),e()),wI(A+16|0,A,I,g,B,Q,C,E)}function _I(A,I){var g;_(A,I,g=I+120|0),_(A+40|0,I+40|0,I=I+80|0),_(A+80|0,I,g)}function HI(A){var I;return I=n[0|A]|n[A+1|0]<<8,A=n[A+2|0],p=A>>>16|0,I|A<<16}function YI(){var A,I;return h=A=h-16|0,C[A+15|0]=0,I=0|f(1024,A+15|0,0),h=A+16|0,0|I}function bI(A,I,g,B,Q){var E;return h=E=h-416|0,function(A,I){var g,B=0,Q=0;for(h=g=h-192|0,MI(A),EA(g- -64|0,54,128),C[g+64|0]=54^n[0|I],B=1;C[0|(Q=(g- -64|0)+B|0)]=n[0|Q]^n[I+B|0],32!=(0|(B=B+1|0)););for(V(A,g- -64|0,128,0),MI(A=A+208|0),EA(g- -64|0,92,128),C[g+64|0]=92^n[0|I],B=1;C[0|(Q=(g- -64|0)+B|0)]=n[0|Q]^n[I+B|0],32!=(0|(B=B+1|0)););V(A,g- -64|0,128,0),fI(g- -64|0,128),fI(g,64),h=g+192|0}(E,Q),V(E,I,g,B),function(A,I){var g,B=0;h=g=h+-64|0,function(A,I){var g;h=g=h+-64|0,UI(A,g),V(A=A+208|0,g,64,0),UI(A,I),fI(g,64),h=g- -64|0}(A,g),B=i[g+28>>2],A=i[g+24>>2],C[I+24|0]=A,C[I+25|0]=A>>>8,C[I+26|0]=A>>>16,C[I+27|0]=A>>>24,C[I+28|0]=B,C[I+29|0]=B>>>8,C[I+30|0]=B>>>16,C[I+31|0]=B>>>24,B=i[g+20>>2],A=i[g+16>>2],C[I+16|0]=A,C[I+17|0]=A>>>8,C[I+18|0]=A>>>16,C[I+19|0]=A>>>24,C[I+20|0]=B,C[I+21|0]=B>>>8,C[I+22|0]=B>>>16,C[I+23|0]=B>>>24,B=i[g+12>>2],A=i[g+8>>2],C[I+8|0]=A,C[I+9|0]=A>>>8,C[I+10|0]=A>>>16,C[I+11|0]=A>>>24,C[I+12|0]=B,C[I+13|0]=B>>>8,C[I+14|0]=B>>>16,C[I+15|0]=B>>>24,B=i[g+4>>2],A=i[g>>2],C[0|I]=A,C[I+1|0]=A>>>8,C[I+2|0]=A>>>16,C[I+3|0]=A>>>24,C[I+4|0]=B,C[I+5|0]=B>>>8,C[I+6|0]=B>>>16,C[I+7|0]=B>>>24,h=g- -64|0}(E,A),h=E+416|0,0}function mI(A,I,g,B){var Q;return h=Q=h-208|0,MI(Q),V(Q,I,g,B),UI(Q,A),h=Q+208|0,0}function vI(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function UI(A,I){var g;h=g=h-704|0,function(A,I){var g,B=0;(g=i[A+72>>2]>>>3&127)>>>0<=111?X(80+(A+g|0)|0,35424,112-g|0):(X((B=A+80|0)+g|0,35424,128-g|0),F(A,B,I,I+640|0),EA(B,0,112)),oI(A+192|0,A- -64|0,16),F(A,A+80|0,I,I+640|0)}(A,g),oI(I,A,64),fI(g,704),fI(A,208),h=g+704|0}function SI(A,I,g,B,Q,C,E){1==(0|B)|B>>>0>1&&(OI(),e()),Vg[i[8957]](A,I,g,B,Q,C,E)}function NI(A,I,g,B,Q,C){1==(0|B)|B>>>0>1&&(OI(),e()),Vg[i[8956]](A,I,g,B,Q,1,0,C)}function MI(A){i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,X(A,34720,64)}function dI(A,I,g){return g>>>0>=256&&(t(2016,2036,107,2089),e()),M(A,I,255&g)}function PI(){var A;h=A=h-16|0,C[A+15|0]=0,f(1062,A+15|0,0),h=A+16|0}function RI(A){var I;return h=I=h-32|0,BA(I,A),A=aI(I,32),h=I+32|0,A}function JI(A,I){var g;h=g=h-128|0,function(A,I){SA(A,I),SA(A+40|0,I+40|0),SA(A+80|0,I+80|0)}(g+8|0,I),AI(A,g+8|0),h=g+128|0}function xI(A,I){C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24}function LI(A,I,g){eA(A,I,g),eA(A+40|0,I+40|0,g),eA(A+80|0,I+80|0,g)}function KI(A){var I;return h=I=h-32|0,BA(I,A),h=I+32|0,1&C[0|I]}function qI(A,I,g,B){return 0|iI(A|=0,I|=0,g|=0,B|=0)}function XI(A){C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0}function VI(A){i[A>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0}function WI(A){C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0}function TI(A,I,g){return 0|dI(A|=0,I|=0,g|=0)}function jI(A,I,g){return 0|function(A,I,g){var B,Q=0;return h=B=h-32|0,Q=-1,$A(B,g,I)||(Q=K(A,35552,B)),h=B+32|0,Q}(A|=0,I|=0,g|=0)}function ZI(A,I,g){return 0|$A(A|=0,I|=0,g|=0)}function OI(){var A;(A=i[9105])&&Vg[0|A](),c(),e()}function zI(A){Ug(A),wg(A+40|0),wg(A+80|0),Ug(A+120|0)}function $I(A,I,g,B,Q,C){Vg[i[8953]](A,I,g,B,Q,0,0,C)}function Ag(A,I,g,B,Q,C){Vg[i[8953]](A,I,g,B,Q,1,0,C)}function Ig(A,I){return A|=0,cI(I|=0,32),0|cg(A,I)}function gg(A,I){return A=function(A,I){var g=0,B=0;A:{if(B=255&I){if(3&A)for(;;){if(!(g=n[0|A])|(0|g)==(255&I))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(g=i[A>>2]))&g-16843009&-2139062144))for(B=r(B,16843009);;){if((-1^(g^=B))&g-16843009&-2139062144)break I;if(g=i[A+4>>2],A=A+4|0,g-16843009&(-1^g)&-2139062144)break}for(;(B=n[0|(g=A)])&&(A=g+1|0,(0|B)!=(255&I)););return g}return YA(A)+A|0}return A}(A,I),n[0|A]==(255&I)?A:0}function Bg(A,I,g,B,Q,C){return q(A,I,g,B,Q,C,0),0}function Qg(A,I,g,B,Q,C,E){return nA(A,I,g,B,Q,C,E)}function Cg(A,I,g,B,Q,C,E){return rA(A,I,g,B,Q,C,E)}function Eg(A,I,g,B,Q,C,E){return GI(A,I,g,B,Q,C,E)}function ig(A,I){MI(A),I&&V(A,35728,34,0)}function ng(A,I,g,B,Q){return lA(A,I,g,B,Q,0)}function ag(A,I){return 0|cg(A|=0,I|=0)}function rg(A,I,g,B){Vg[i[8955]](A,I,0,g,B)}function og(A,I,g){Vg[i[8954]](A,64,0,I,g)}function eg(A,I,g,B){return function(A,I,g,B){var Q,C,E,i,n=0,a=0;return i=r(n=g>>>16|0,a=A>>>16|0),n=(65535&(a=((E=r(Q=65535&g,C=65535&A))>>>16|0)+r(a,Q)|0))+r(n,C)|0,A=(r(I,g)+i|0)+r(A,B)+(a>>>16)+(n>>>16)|0,p=A,65535&E|n<<16}(A,I,g,B)}function tg(A,I){return(255&(A^I))-1>>>31|0}function fg(A,I,g){!function(A,I,g){var B,Q;h=B=h-128|0,wg(A),wg(A+40|0),Ug(A+80|0),LI(A,I,tg(g=g-((0-(Q=(128&g)>>>7|0)&g)<<1)<<24>>24,1)),LI(A,I+120|0,tg(g,2)),LI(A,I+240|0,tg(g,3)),LI(A,I+360|0,tg(g,4)),LI(A,I+480|0,tg(g,5)),LI(A,I+600|0,tg(g,6)),LI(A,I+720|0,tg(g,7)),LI(A,I+840|0,tg(g,8)),SA(B+8|0,A+40|0),SA(B+48|0,A),mA(B+88|0,A+80|0),LI(A,B+8|0,Q),h=B+128|0}(A,r(I,960)+3488|0,g)}function cg(A,I){return 0|Vg[i[8951]](A,I)}function yg(A,I,g,B){Vg[i[8948]](A,I,g,B)}function sg(A,I,g,B){return hg(A,I,g,B)}function wg(A){i[A>>2]=1,EA(A+4|0,0,36)}function hg(A,I,g,B){return QA(A,I,g,B)}function Dg(A,I,g){return function(A,I,g){var B=0,Q=0,C=0,E=0;return B=31&(C=E=63&g),C>>>0>=32?B=-1>>>B|0:(Q=-1>>>B|0,B=(1<>>B),C=B&A,B=I&Q,Q=31&E,E>>>0>=32?(B=C<>>32-Q|B<>>0>=32?(B=-1<>>32-g|-1<>>0>=32?(g=0,A=B>>>I|0):(g=B>>>I|0,A=((1<>>I),p=g|C,A|E}(A,I,g)}function ug(A,I,g){return function(A,I,g){var B=0,Q=0,C=0,E=0,i=0;return B=31&(E=63&g),E>>>0>=32?(Q=-1<>>32-B|-1<>>0>=32?(Q=0,E=B>>>C|0):(Q=B>>>C|0,E=((1<>>C),i=Q,C=31&(B=0-g&63),B>>>0>=32?(Q=0,g=-1>>>C|0):(Q=-1>>>C|0,g=(1<>>C),A&=g,I&=Q,Q=31&B,B>>>0>=32?(g=A<>>32-Q|I<>>0<18,U=U+2|0,Y;);xI(A,g+1634760805|0),xI(A+4|0,h+B|0),xI(A+8|0,D+Q|0),xI(A+12|0,b+C|0),xI(A+16|0,u+E|0),xI(A+20|0,H+857760878|0),xI(A+24|0,p+e|0),xI(A+28|0,l+t|0),xI(A+32|0,F+f|0),xI(A+36|0,_+c|0),xI(A+40|0,I+2036477234|0),xI(A+44|0,s+i|0),xI(A+48|0,y+a|0),xI(A+52|0,w+r|0),xI(A+56|0,k+o|0),xI(A+60|0,G+1797285236|0)}(A,I,g)}function vg(A){EA(A,0,1024)}function Ug(A){EA(A,0,40)}function Sg(){return 16}function Ng(){return 32}function Mg(){return 24}function dg(){return-17}function Pg(){return 64}function Rg(){return 1}function Jg(){return 2}function xg(){return 8}function Lg(){return 0}function Kg(){return-1}function qg(){return 3}Q(I=n,1024,\"InsgcmV0dXJuIE1vZHVsZS5nZXRSYW5kb21WYWx1ZSgpOyB9IgB7IGlmIChNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPT09IHVuZGVmaW5lZCkgeyB0cnkgeyB2YXIgd2luZG93XyA9ICdvYmplY3QnID09PSB0eXBlb2Ygd2luZG93ID8gd2luZG93IDogc2VsZjsgdmFyIGNyeXB0b18gPSB0eXBlb2Ygd2luZG93Xy5jcnlwdG8gIT09ICd1bmRlZmluZWQnID8gd2luZG93Xy5jcnlwdG8gOiB3aW5kb3dfLm1zQ3J5cHRvOyB2YXIgcmFuZG9tVmFsdWVzU3RhbmRhcmQgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IG5ldyBVaW50MzJBcnJheSgxKTsgY3J5cHRvXy5nZXRSYW5kb21WYWx1ZXMoYnVmKTsgcmV0dXJuIGJ1ZlswXSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVzU3RhbmRhcmQoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVzU3RhbmRhcmQ7IH0gY2F0Y2ggKGUpIHsgdHJ5IHsgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOyB2YXIgcmFuZG9tVmFsdWVOb2RlSlMgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IGNyeXB0b1sncmFuZG9tQnl0ZXMnXSg0KTsgcmV0dXJuIChidWZbMF0gPDwgMjQgfCBidWZbMV0gPDwgMTYgfCBidWZbMl0gPDwgOCB8IGJ1ZlszXSkgPj4+IDA7IH07IHJhbmRvbVZhbHVlTm9kZUpTKCk7IE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9IHJhbmRvbVZhbHVlTm9kZUpTOyB9IGNhdGNoIChlKSB7IHRocm93ICdObyBzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm91bmQnOyB9IH0gfSB9AExpYnNvZGl1bURSR2J1Zl9sZW4gPD0gU0laRV9NQVgAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwByYW5kb21ieXRlcwBTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGJsYWtlMmJfZmluYWwAAAAAAAAAAAjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FtvdXRsZW4gPD0gVUlOVDhfTUFYAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAAAAAAAAAtnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu\"),Q(I,2224,\"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ\"),Q(I,2272,\"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/\"),Q(I,3264,\"AQ==\"),Q(I,3296,\"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=\"),Q(I,3487,\"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\"),Q(I,34460,\"AQ==\"),Q(I,34496,\"AQ==\"),Q(I,34528,\"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw==\"),Q(I,34720,\"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA\"),Q(I,35568,\"YjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJA==\"),Q(I,35728,\"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMBADEuMC4xOA==\"),Q(I,35772,\"UI5QAABAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAAN\");var Xg,Vg=((Xg=[null,yI,function(A,I,g,B,Q){var C;return A|=0,h=C=h-16|0,yI(C,I|=0,g|=0,B|=0,Q|=0),A=kg(A,C),h=C+16|0,0|A},function(A,I){return IA(A|=0,I|=0),0},function(A,I,g,B){return z(A|=0,I|=0,g|=0,B|=0),0},function(A,I){return Z(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0;var B,Q=0,E=0;if(h=B=h-336|0,Q=-1,!function(A){var I,g=0,B=0,Q=0,E=0;for(C[11+(I=h-16|0)|0]=0,C[I+12|0]=0,C[I+13|0]=0,C[I+14|0]=0,i[I+8>>2]=0;;){for(Q=n[A+B|0],g=0;C[0|(E=(I+8|0)+g|0)]=n[0|E]|Q^n[(34464+(g<<5)|0)+B|0],7!=(0|(g=g+1|0)););if(31==(0|(B=B+1|0)))break}for(B=127&n[A+31|0],A=0,g=0;C[0|(Q=(I+8|0)+g|0)]=n[0|Q]|B^n[34495+(g<<5)|0],7!=(0|(g=g+1|0)););for(g=0;g=n[(I+8|0)+A|0]-1|g,7!=(0|(A=A+1|0)););return g>>>8&1}(g|=0)){for(Q=0;C[A+Q|0]=n[I+Q|0],32!=(0|(Q=Q+1|0)););for(C[0|A]=248&n[0|A],C[A+31|0]=63&n[A+31|0]|64,d(B+288|0,g),wg(B+240|0),Ug(B+192|0),SA(B+144|0,B+288|0),wg(B+96|0),g=254,I=0;Q=I,E=g,AA(B+240|0,B+144|0,Q^=I=n[(g>>>3|0)+A|0]>>>(7&g)&1),AA(B+192|0,B+96|0,Q),g=g-1|0,yA(B+48|0,B+144|0,B+96|0),yA(B,B+240|0,B+192|0),sA(B+240|0,B+240|0,B+192|0),sA(B+192|0,B+144|0,B+96|0),_(B+96|0,B+48|0,B+240|0),_(B+192|0,B+192|0,B),H(B+48|0,B),H(B,B+240|0),sA(B+144|0,B+96|0,B+192|0),yA(B+192|0,B+96|0,B+192|0),_(B+240|0,B,B+48|0),yA(B,B,B+48|0),H(B+192|0,B+192|0),P(B+96|0,B),H(B+144|0,B+144|0),sA(B+48|0,B+48|0,B+96|0),_(B+96|0,B+288|0,B+192|0),_(B+192|0,B,B+48|0),E;);AA(B+240|0,B+144|0,I),AA(B+192|0,B+96|0,I),j(B+192|0,B+192|0),_(B+240|0,B+240|0,B+192|0),BA(A,B+240|0),Q=0}return h=B+336|0,0|Q},function(A,I){A|=0,I|=0;var g,B=0;for(h=g=h-208|0;C[A+B|0]=n[I+B|0],32!=(0|(B=B+1|0)););return C[0|A]=248&n[0|A],C[A+31|0]=63&n[A+31|0]|64,CA(g+48|0,A),function(A,I,g){var B;h=B=h-96|0,sA(B+48|0,g,I),yA(B,g,I),j(B,B),_(A,B+48|0,B),h=B+96|0}(g,g+88|0,g+128|0),BA(A,g),h=g+208|0,0},function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0;if(h=E=h-112|0,(I|=0)|(g|=0)){a=n[Q+28|0]|n[Q+29|0]<<8|n[Q+30|0]<<16|n[Q+31|0]<<24,i[E+24>>2]=n[Q+24|0]|n[Q+25|0]<<8|n[Q+26|0]<<16|n[Q+27|0]<<24,i[E+28>>2]=a,a=n[Q+20|0]|n[Q+21|0]<<8|n[Q+22|0]<<16|n[Q+23|0]<<24,i[E+16>>2]=n[Q+16|0]|n[Q+17|0]<<8|n[Q+18|0]<<16|n[Q+19|0]<<24,i[E+20>>2]=a,a=n[Q+4|0]|n[Q+5|0]<<8|n[Q+6|0]<<16|n[Q+7|0]<<24,i[E>>2]=n[0|Q]|n[Q+1|0]<<8|n[Q+2|0]<<16|n[Q+3|0]<<24,i[E+4>>2]=a,a=n[Q+12|0]|n[Q+13|0]<<8|n[Q+14|0]<<16|n[Q+15|0]<<24,i[E+8>>2]=n[Q+8|0]|n[Q+9|0]<<8|n[Q+10|0]<<16|n[Q+11|0]<<24,i[E+12>>2]=a,Q=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24,B=n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=Q,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;;){for(mg(A,E+96|0,E),Q=8,B=1;B=n[0|(a=(E+96|0)+Q|0)]+B|0,C[0|a]=B,B=B>>>8|0,16!=(0|(Q=Q+1|0)););if(A=A- -64|0,g=g-1|0,!(!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g))break}if(!(I|g))break A}for(Q=0,mg(E+32|0,E+96|0,E);C[A+Q|0]=n[(E+32|0)+Q|0],(0|I)!=(0|(Q=Q+1|0)););}fI(E+32|0,64),fI(E,32)}return h=E+112|0,0},function(A,I,g,B,Q,E,a,r){A|=0,I|=0,Q|=0,E|=0,a|=0,r|=0;var o,e=0,t=0;if(h=o=h-112|0,(g|=0)|(B|=0)){for(e=n[r+28|0]|n[r+29|0]<<8|n[r+30|0]<<16|n[r+31|0]<<24,i[o+24>>2]=n[r+24|0]|n[r+25|0]<<8|n[r+26|0]<<16|n[r+27|0]<<24,i[o+28>>2]=e,e=n[r+20|0]|n[r+21|0]<<8|n[r+22|0]<<16|n[r+23|0]<<24,i[o+16>>2]=n[r+16|0]|n[r+17|0]<<8|n[r+18|0]<<16|n[r+19|0]<<24,i[o+20>>2]=e,e=n[r+4|0]|n[r+5|0]<<8|n[r+6|0]<<16|n[r+7|0]<<24,i[o>>2]=n[0|r]|n[r+1|0]<<8|n[r+2|0]<<16|n[r+3|0]<<24,i[o+4>>2]=e,e=8,t=n[r+12|0]|n[r+13|0]<<8|n[r+14|0]<<16|n[r+15|0]<<24,i[o+8>>2]=n[r+8|0]|n[r+9|0]<<8|n[r+10|0]<<16|n[r+11|0]<<24,i[o+12>>2]=t,r=n[Q+4|0]|n[Q+5|0]<<8|n[Q+6|0]<<16|n[Q+7|0]<<24,i[o+96>>2]=n[0|Q]|n[Q+1|0]<<8|n[Q+2|0]<<16|n[Q+3|0]<<24,i[o+100>>2]=r;C[(o+96|0)+e|0]=E,E=(255&a)<<24|E>>>8,a=a>>>8|0,16!=(0|(e=e+1|0)););if(!B&g>>>0>63|B)for(;;){for(e=0,mg(o+32|0,o+96|0,o);C[A+e|0]=n[(o+32|0)+e|0]^n[I+e|0],r=1,64!=(0|(e=e+1|0)););for(e=8;Q=n[0|(E=(o+96|0)+e|0)]+r|0,C[0|E]=Q,r=Q>>>8|0,16!=(0|(e=e+1|0)););if(I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(g|B)for(e=0,mg(o+32|0,o+96|0,o);C[A+e|0]=n[(o+32|0)+e|0]^n[I+e|0],(0|g)!=(0|(e=e+1|0)););fI(o+32|0,64),fI(o,32)}return h=o+112|0,0},function(A,I,g,B,Q){var C;return A|=0,B|=0,h=C=h+-64|0,(I|=0)|(g|=0)&&(aA(C,Q|=0),UA(C,B,0),U(C,A=EA(A,0,I),A,I,g),fI(C,64)),h=C- -64|0,0},function(A,I,g,B,Q){var C;return A|=0,B|=0,h=C=h+-64|0,(I|=0)|(g|=0)&&(aA(C,Q|=0),JA(C,B,0),U(C,A=EA(A,0,I),A,I,g),fI(C,64)),h=C- -64|0,0},function(A,I,g,B,Q,C,E,i){var n;return A|=0,I|=0,Q|=0,E|=0,i|=0,h=n=h-80|0,(g|=0)|(B|=0)&&(xI(n+8|0,C|=0),xI(n+12|0,E),aA(n+16|0,i),UA(n+16|0,Q,n+8|0),U(n+16|0,I,A,g,B),fI(n+16|0,64)),h=n+80|0,0},function(A,I,g,B,Q,C,E){var i;return A|=0,I|=0,Q|=0,E|=0,h=i=h-80|0,(g|=0)|(B|=0)&&(xI(i+12|0,C|=0),aA(i+16|0,E),JA(i+16|0,Q,i+12|0),U(i+16|0,I,A,g,B),fI(i+16|0,64)),h=i+80|0,0}]).grow=function(A){var I=this.length;return this.length=this.length+A,I},Xg.set=function(A,I){this[A]=I},Xg.get=function(A){return this[A]},Xg);function Wg(){return B.byteLength/65536|0}return{h:Vg,i:function(){},j:function(A,I,g,B,Q,C,E,i,n,a,r,o){return 0|PA(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},k:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){if(!Q&B>>>0<4294967280)return PA(A,A+B|0,0,g,B,Q,C,E,n,a,r),I&&(Q=(A=B+16|0)>>>0<16?Q+1|0:Q,i[I>>2]=A,i[I+4>>2]=Q),0;OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,r|=0,o|=0)},l:function(A,I,g,B,Q,C,E,i,n,a,r,o){return 0|_A(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},m:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){if(!Q&B>>>0<4294967280)return _A(A,A+B|0,0,g,B,Q,C,E,n,a,r),I&&(Q=(A=B+16|0)>>>0<16?Q+1|0:Q,i[I>>2]=A,i[I+4>>2]=Q),0;OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,r|=0,o|=0)},n:function(A,I,g,B,Q,C,E,i,n,a,r){return 0|HA(A|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},o:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){var o=0;return o=-1,!Q&B>>>0>=16|Q&&(o=HA(A,g,B-16|0,Q-(B>>>0<16)|0,(g+B|0)-16|0,C,E,n,a,r)),I&&(i[I>>2]=o?0:B-16|0,i[I+4>>2]=o?0:Q-(B>>>0<16)|0),o}(A|=0,I|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,a|=0,r|=0,o|=0)},p:function(A,I,g,B,Q,C,E,i,n,a,r){return 0|GA(A|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},q:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){var o=0;return o=-1,!Q&B>>>0>=16|Q&&(o=GA(A,g,B-16|0,Q-(B>>>0<16)|0,(g+B|0)-16|0,C,E,n,a,r)),I&&(i[I>>2]=o?0:B-16|0,i[I+4>>2]=o?0:Q-(B>>>0<16)|0),o}(A|=0,I|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,a|=0,r|=0,o|=0)},r:Ng,s:function(){return 12},t:Lg,u:Sg,v:dg,w:bg,x:Ng,y:xg,z:Lg,A:Sg,B:dg,C:bg,D:function(A,I,g,B,Q,C,E,i,n,a,r,o){return 0|NA(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},E:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){if(!Q&B>>>0<4294967280)return NA(A,A+B|0,0,g,B,Q,C,E,n,a,r),I&&(Q=(A=B+16|0)>>>0<16?Q+1|0:Q,i[I>>2]=A,i[I+4>>2]=Q),0;OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,r|=0,o|=0)},F:function(A,I,g,B,Q,C,E,i,n,a,r){return 0|MA(A|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},G:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){var o=0;return o=-1,!Q&B>>>0>=16|Q&&(o=MA(A,g,B-16|0,Q-(B>>>0<16)|0,(g+B|0)-16|0,C,E,n,a,r)),I&&(i[I>>2]=o?0:B-16|0,i[I+4>>2]=o?0:Q-(B>>>0<16)|0),o}(A|=0,I|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,a|=0,r|=0,o|=0)},H:Ng,I:Mg,J:Lg,K:Sg,L:dg,M:bg,N:Ng,O:Ng,P:function(A,I,g,B,Q){return 0|bI(A|=0,I|=0,g|=0,B|=0,Q|=0)},Q:function(A,I,g,B,Q){return 0|function(A,I,g,B,Q){var C;return h=C=h-32|0,bI(C,I,g,B,Q),I=Gg(A,C),g=zA(C,A,32),h=C+32|0,g|((0|A)==(0|C)?-1:I)}(A|=0,I|=0,g|=0,B|=0,Q|=0)},R:bg,S:Ng,T:Ng,U:Ng,V:Ng,W:Mg,X:Sg,Y:dg,Z:function(A,I,g){return 0|function(A,I,g){var B,Q=0;return h=B=h+-64|0,mI(B,g,32,0),g=i[B+28>>2],Q=i[B+24>>2],C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,C[I+28|0]=g,C[I+29|0]=g>>>8,C[I+30|0]=g>>>16,C[I+31|0]=g>>>24,g=i[B+20>>2],Q=i[B+16>>2],C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,C[I+20|0]=g,C[I+21|0]=g>>>8,C[I+22|0]=g>>>16,C[I+23|0]=g>>>24,g=i[B+12>>2],Q=i[B+8>>2],C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,C[I+12|0]=g,C[I+13|0]=g>>>8,C[I+14|0]=g>>>16,C[I+15|0]=g>>>24,g=i[B+4>>2],Q=i[B>>2],C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,C[I+4|0]=g,C[I+5|0]=g>>>8,C[I+6|0]=g>>>16,C[I+7|0]=g>>>24,fI(B,64),A=cg(A,I),h=B- -64|0,A}(A|=0,I|=0,g|=0)},_:Ig,$:jI,aa:function(A,I,g,B,Q,C,E){return 0|Qg(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},ba:function(A,I,g,B,Q,C,E,i){return 0|wI(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0)},ca:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){return!B&g>>>0>=4294967280|B&&(OI(),e()),Qg(A+16|0,A,I,g,B,Q,C)}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},da:function(A,I,g,B,Q,C,E){return 0|kI(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},ea:function(A,I,g,B,Q,C,E){return 0|Cg(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},fa:function(A,I,g,B,Q,C,E,i){return 0|hI(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0)},ga:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){return!B&g>>>0>=16|B?Cg(A,I+16|0,I,g-16|0,B-(g>>>0<16)|0,Q,C):-1}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},ha:function(A,I,g,B,Q,C,E){return 0|uI(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},ia:function(A,I,g,B,Q){return 0|function(A,I,g,B,Q){var E,n=0;return h=E=h-96|0,n=-1,Ig(E+32|0,E)||(lI(E- -64|0,E+32|0,Q),n=kI(A+32|0,I,g,B,E- -64|0,Q,E),I=i[E+60>>2],g=i[E+56>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[E+52>>2],g=i[E+48>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[E+44>>2],g=i[E+40>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[E+36>>2],g=i[E+32>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,fI(E,32),fI(E+32|0,32),fI(E- -64|0,24)),h=E+96|0,n}(A|=0,I|=0,g|=0,B|=0,Q|=0)},ja:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){var E,i=0;return h=E=h-32|0,i=-1,!B&g>>>0>=48|B&&(lI(E,I,Q),i=uI(A,I+32|0,g-32|0,B-(g>>>0<32)|0,E,I,C)),h=E+32|0,i}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},ka:function(){return 48},la:Sg,ma:Pg,na:Ng,oa:Sg,pa:Pg,qa:Ng,ra:function(){return 384},sa:function(A,I,g,B,Q,C,E){return 0|Eg(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},ta:qI,ua:function(A,I,g,B){return 0|sg(A|=0,I|=0,g|=0,B|=0)},va:TI,wa:bg,xa:Pg,ya:function(A,I,g,B){return 0|mI(A|=0,I|=0,g|=0,B|=0)},za:Sg,Aa:Pg,Ba:xg,Ca:Ng,Da:function(A,I,g,B,Q,a){return 0|function(A,I,g,B,Q,a){var r,o;return h=r=h-32|0,o=n[0|Q]|n[Q+1|0]<<8|n[Q+2|0]<<16|n[Q+3|0]<<24,Q=n[Q+4|0]|n[Q+5|0]<<8|n[Q+6|0]<<16|n[Q+7|0]<<24,i[r+24>>2]=0,i[r+28>>2]=0,i[r+16>>2]=o,i[r+20>>2]=Q,tI(r,g,B),i[r+8>>2]=0,i[r+12>>2]=0,I-16>>>0>=49?(i[8960]=28,A=-1):(g=r+16|0,A=I-1>>>0>63?-1:function(A,I,g,B,Q){var a,r=0;if(a=r=h,h=r=r-384&-64,!(!I|!A|(g-1&255)>>>0>=64))return function(A,I,g,B,Q){var a;if(h=a=h-192|0,!(!g|(I-1&255)>>>0>=64))return E[a+130>>1]=257,C[a+129|0]=32,C[a+128|0]=I,WI(a+128|4),tI(a+128|8,0,0),i[a+152>>2]=0,i[a+156>>2]=0,i[a+144>>2]=0,i[a+148>>2]=0,B?function(A,I){var g,B=0;B=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,C[A+32|0]=g,C[A+33|0]=g>>>8,C[A+34|0]=g>>>16,C[A+35|0]=g>>>24,C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,B=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,I=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,C[A+44|0]=B,C[A+45|0]=B>>>8,C[A+46|0]=B>>>16,C[A+47|0]=B>>>24}(a+128|0,B):(i[a+168>>2]=0,i[a+172>>2]=0,i[a+160>>2]=0,i[a+164>>2]=0),Q?function(A,I){var g,B=0;B=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,C[A+48|0]=g,C[A+49|0]=g>>>8,C[A+50|0]=g>>>16,C[A+51|0]=g>>>24,C[A+52|0]=B,C[A+53|0]=B>>>8,C[A+54|0]=B>>>16,C[A+55|0]=B>>>24,B=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,I=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,C[A+56|0]=I,C[A+57|0]=I>>>8,C[A+58|0]=I>>>16,C[A+59|0]=I>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24}(a+128|0,Q):(i[a+184>>2]=0,i[a+188>>2]=0,i[a+176>>2]=0,i[a+180>>2]=0),hA(A,a+128|0),EA(a+32|0,0,96),QA(I=A,A=X(a,g,32),128,0),fI(A,128),void(h=A+192|0);OI(),e()}(r,g,I,B,Q),QA(r,0,0,0),M(r,A,g),h=a,0;OI(),e()}(A,a,255&I,r,g)),h=r+32|0,A}(A|=0,I|=0,g|=0,B|=0,Q|=0,a|=0)},Ea:bg,Fa:function(A,I,g){return A|=0,Eg(I|=0,32,g|=0,32,0,0,0),0|ag(A,I)},Ga:function(A,I){return A|=0,cI(I|=0,32),0|ag(A,I)},Ha:function(A,I,g,B,Q){I|=0,g|=0,Q|=0;var E,i,a=0;if(i=a=h,h=a=a-512&-64,E=(A|=0)||I){if(A=-1,!ZI(a+96|0,B|=0,Q)){for(I=I||E,A=0,qI(a+128|0,0,0,64),sg(a+128|0,a+96|0,32,0),fI(a+96|0,32),sg(a+128|0,g,32,0),sg(a+128|0,Q,32,0),TI(a+128|0,a+32|0,64),fI(a+128|0,384);g=(a+32|0)+A|0,C[A+E|0]=n[0|g],C[A+I|0]=n[g+32|0],32!=(0|(A=A+1|0)););fI(a+32|0,64),A=0}return h=i,0|A}OI(),e()},Ia:function(A,I,g,B,Q){I|=0,g|=0,Q|=0;var E,i,a=0;if(i=a=h,h=a=a-512&-64,E=(A|=0)||I){if(A=-1,!ZI(a+96|0,B|=0,Q)){for(I=I||E,A=0,qI(a+128|0,0,0,64),sg(a+128|0,a+96|0,32,0),fI(a+96|0,32),sg(a+128|0,Q,32,0),sg(a+128|0,g,32,0),TI(a+128|0,a+32|0,64),fI(a+128|0,384);g=(a+32|0)+A|0,C[A+I|0]=n[0|g],C[A+E|0]=n[g+32|0],32!=(0|(A=A+1|0)););fI(a+32|0,64),A=0}return h=i,0|A}OI(),e()},Ja:Ng,Ka:Ng,La:Ng,Ma:Ng,Na:Rg,Oa:Jg,Pa:Jg,Qa:Sg,Ra:Kg,Sa:Lg,Ta:Kg,Ua:Sg,Va:function(){return 128},Wa:function(){return 35681},Xa:Rg,Ya:Kg,Za:function(){return 8192},_a:function(){return-2147483648},$a:Jg,ab:function(){return 67108864},bb:qg,cb:function(){return 268435456},db:function(){return 4},eb:function(){return 1073741824},fb:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r,o){switch(o-1|0){case 0:return function(A,I,g,B,Q,C,E,n,a,r){var o,e;e=I,o=EA(A,0,I),A=22;A:if(!g){if(!(!g&I>>>0<16)){if(C|a|r>>>0>2147483648)break A;if(!(!a&n>>>0<3|r>>>0<8192)){if(A=28,(0|B)==(0|o))break A;return pA(n,r>>>10|0,1,B,Q,E,16,o,e,0,0,1)?-1:0}}A=28}return i[8960]=A,-1}(A,I,g,B,Q,C,E,n,a,r);case 1:return function(A,I,g,B,Q,C,E,n,a,r){var o,e;e=I,o=EA(A,0,I),A=22;A:if(!g){if(!(!g&I>>>0<16)){if(C|a|r>>>0>2147483648)break A;if(!(!(n|a)|r>>>0<8192)){if(A=28,(0|B)==(0|o))break A;return pA(n,r>>>10|0,1,B,Q,E,16,o,e,0,0,2)?-1:0}}A=28}return i[8960]=A,-1}(A,I,g,B,Q,C,E,n,a,r)}return i[8960]=28,-1}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,a|=0,r|=0,o|=0)},gb:function(A,I,g,B,Q,C,E){return 0|xA(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},hb:function(A,I,g,B,Q,C,E,n){return 0|function(A,I,g,B,Q,C,E,n){switch(n-1|0){case 1:return xA(A,I,g,B,Q,C,E);default:OI(),e();case 0:}return function(A,I,g,B,Q,C,E){var n;return h=n=h-16|0,A=EA(A,0,128),E>>>0<2147483649&&!(B|C)?E>>>0>8191&&!C&Q>>>0>=3|0!=(0|C)?(cI(n,16),A=pA(Q,E>>>10|0,1,I,g,n,16,0,32,A,128,1)?-1:0):(i[8960]=28,A=-1):(i[8960]=22,A=-1),h=n+16|0,A}(A,I,g,B,Q,C,E)}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0)},ib:function(A,I,g,B){return 0|function(A,I,g,B){return XA(A,35681,10)?XA(A,35692,9)?(i[8960]=28,-1):function(A,I,g,B){A:{if(1==(0|B)|B>>>0>1)i[8960]=22;else{if(!(A=fA(A,I,g,1)))break A;-35==(0|A)&&(i[8960]=28)}A=-1}return A}(A,I,g,B):function(A,I,g,B){A:{if(1==(0|B)|B>>>0>1)i[8960]=22;else{if(!(A=fA(A,I,g,2)))break A;-35==(0|A)&&(i[8960]=28)}A=-1}return A}(A,I,g,B)}(A|=0,I|=0,g|=0,B|=0)},jb:function(A,I,g,B){return 0|function(A,I,g,B){return XA(A,35681,10)?XA(A,35692,9)?(i[8960]=28,-1):DA(A,I,g,B,1):DA(A,I,g,B,2)}(A|=0,I|=0,g|=0,B|=0)},kb:ag,lb:ZI,mb:Ng,nb:Ng,ob:Ng,pb:Mg,qb:Sg,rb:dg,sb:bg,tb:Qg,ub:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){return!B&g>>>0>=4294967280|B&&(OI(),e()),nA(A+16|0,A,I,g,B,Q,C),0}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},vb:Cg,wb:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){return!B&g>>>0>=16|B?rA(A,I+16|0,I,g-16|0,B-(g>>>0<16)|0,Q,C):-1}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},xb:bg,yb:function(A,I,g){return A|=0,g|=0,cI(I|=0,24),x(A,I,g),XI(A),g=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,I=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},zb:function(A,I,g){return x(A|=0,I|=0,g|=0),XI(A),g=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,I=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Ab:L,Bb:function(A,I,g,B,Q,E,a,r,o,t){return 0|function(A,I,g,B,Q,E,a,r,o,t){var f,c=0;if(h=f=h-336|0,g&&(i[g>>2]=0,i[g+4>>2]=0),!E&Q>>>0<4294967279)return _g(f+16|0,64,c=A+32|0,A),lg(f+80|0,f+16|0),fI(f+16|0,64),yg(f+80|0,a,r,o),yg(f+80|0,35712,0-r&15,0),EA(f+16|0,0,64),C[f+16|0]=t,BI(f+16|0,f+16|0,64,0,c,1,A),yg(f+80|0,f+16|0,64,0),C[0|I]=n[f+16|0],BI(a=I+1|0,B,Q,E,c,2,A),yg(f+80|0,a,Q,E),yg(f+80|0,35712,15&Q,0),tI(f+8|0,r,o),yg(f+80|0,f+8|0,8,0),tI(f+8|0,Q- -64|0,E-((Q>>>0<4294967232)-1|0)|0),yg(f+80|0,f+8|0,8,0),Fg(f+80|0,I=Q+a|0),fI(f+80|0,256),pI(A+36|0,I),sI(c),(2&t||aI(c,4))&&L(A),g&&(E=(A=Q+17|0)>>>0<17?E+1|0:E,i[g>>2]=A,i[g+4>>2]=E),h=f+336|0,0;OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,E|=0,a|=0,r|=0,o|=0,t|=0)},Cb:function(A,I,g,B,Q,E,a,r,o,t){return 0|function(A,I,g,B,Q,E,a,r,o,t){var f,c=0,y=0,s=0,w=0,D=0;h=f=h-352|0,g&&(i[g>>2]=0,i[g+4>>2]=0),B&&(C[0|B]=255),w=-1;A:{if(!(!a&E>>>0<17)){if(!(c=a-(E>>>0<17)|0)&(y=E-17|0)>>>0>=4294967279|c)break A;_g(f+32|0,64,s=A+32|0,A),lg(f+96|0,f+32|0),fI(f+32|0,64),yg(f+96|0,r,o,t),yg(f+96|0,35712,0-o&15,0),EA(f+32|0,0,64),C[f+32|0]=n[0|Q],BI(f+32|0,f+32|0,64,0,s,1,A),D=n[f+32|0],C[f+32|0]=n[0|Q],yg(f+96|0,f+32|0,64,0),yg(f+96|0,r=Q+1|0,y,c),yg(f+96|0,35712,E-1&15,0),tI(f+24|0,o,t),yg(f+96|0,f+24|0,8,0),tI(f+24|0,Q=E+47|0,a=Q>>>0<47?a+1|0:a),yg(f+96|0,f+24|0,8,0),Fg(f+96|0,f),fI(f+96|0,256),zA(f,r+y|0,16)?fI(f,16):(BI(I,r,y,c,s,2,A),pI(A+36|0,f),sI(s),(2&D||aI(s,4))&&L(A),g&&(i[g>>2]=y,i[g+4>>2]=c),w=0,B&&(C[0|B]=D))}return h=f+352|0,w}OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,E|=0,a|=0,r|=0,o|=0,t|=0)},Db:function(){return 52},Eb:function(){return 17},Fb:Mg,Gb:Ng,Hb:function(){return-18},Ib:Lg,Jb:Rg,Kb:Jg,Lb:qg,Mb:xg,Nb:Sg,Ob:function(A,I,g,B,Q){return 0|function(A,I,g,B){var Q=0,C=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0;if(Q=1886610805^(E=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24),i=1936682341^(C=n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24),a=1852142177^E,o=1819895653^C,E=1852075885^(t=n[B+8|0]|n[B+9|0]<<8|n[B+10|0]<<16|n[B+11|0]<<24),C=1685025377^(B=n[B+12|0]|n[B+13|0]<<8|n[B+14|0]<<16|n[B+15|0]<<24),t^=2037671283,r=1952801890^B,(0|(B=(I+g|0)-(y=7&g)|0))!=(0|I)){for(;e=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,f=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,c=Dg(E,C,13),s=p,w=1+(C=C+i|0)|0,i=C,h=Dg(C=Q+E|0,i=C>>>0>>0?w:i,32),w=p,r=Q=r^f,E=Dg(t^=e,Q,16),Q=a+t|0,a=o+r|0,t=o=(a=Q>>>0>>0?a+1|0:a)^p,o=Dg(E^=Q,o,21),r=p,c=Dg(C^=c,i^=s,17),D=p,i=a+i|0,a=Q,i=Dg(Q=Q+C|0,C=a>>>0>Q>>>0?i+1|0:i,32),a=p,s=Dg(c^=Q,C^=D,13),D=p,w=1+(Q=t+w|0)|0,t=Q,E=(Q=E+h|0)>>>0>>0?w:t,c=t=Q+c|0,C=E+C|0,C=Dg(t,h=Q>>>0>t>>>0?C+1|0:C,32),t=p,o=Dg(Q^=o,E^=r,16),E=a+E|0,E=(Q=Q+i|0)>>>0>>0?E+1|0:E,i=C+(a=Q^o)|0,C=(r=t)+(t=E^p)|0,t=Dg(a,t,21)^i,r=(w=i>>>0>>0?C+1|0:C)^p,a=C=h^D,C=Dg(o=c^s,C,17),E=E+a|0,o=(a=Q+o|0)>>>0>>0?E+1|0:E,E=C^a,C=o^p,Q=i^e,i=f^w,a=Dg(a,o,32),o=p,(0|B)!=(0|(I=I+8|0)););I=B}switch(B=g<<24,g=0,y-1|0){case 6:B|=n[I+6|0]<<16;case 5:B|=n[I+5|0]<<8;case 4:B|=n[I+4|0];case 3:e=(g=n[I+3|0])>>>8|0,g<<=24,B|=e;case 2:g|=(e=n[I+2|0])<<16,B|=f=e>>>16|0;case 1:g|=(e=n[I+1|0])<<8,B|=f=e>>>24|0;case 0:g=n[0|I]|g}return e=Dg(E,C,13),f=p,I=C+i|0,y=Dg(E=Q+E|0,C=E>>>0>>0?I+1|0:I,32),c=p,i=Q=B^r,Q=Dg(I=g^t,Q,16),i=i+o|0,o=a=(i=(r=I)>>>0>(I=I+a|0)>>>0?i+1|0:i)^p,a=Dg(Q^=I,a,21),t=p,e=Dg(E^=e,C^=f,17),f=p,C=i+C|0,r=I,C=Dg(I=I+E|0,E=r>>>0>I>>>0?C+1|0:C,32),i=p,e=Dg(r=I^e,E^=f,13),f=p,s=1+(I=o+c|0)|0,o=I,E=(Q=(I=Q+y|0)>>>0>>0?s:o)+E|0,E=Dg(r=o=I+r|0,o=I>>>0>o>>>0?E+1|0:E,32),y=p,a=Dg(I^=a,Q^=t,16),Q=i+Q|0,Q=(I=I+C|0)>>>0>>0?Q+1|0:Q,C=I^a,a=i=Q^p,i=Dg(C,i,21),t=p,f=o^=f,o=Dg(r^=e,o,17),e=p,Q=Q+f|0,s=I,r=Dg(I=I+r|0,Q=s>>>0>I>>>0?Q+1|0:Q,32),f=p,e=Dg(I^=o,o=Q^e,13),c=p,s=I,a=1+(I=a+y|0)|0,Q=I,B=o+(B^(Q=(I=E+C|0)>>>0>>0?a:Q))|0,g=Dg(C=E=s+(g^=I)|0,E=g>>>0>E>>>0?B+1|0:B,32),a=p,i=Dg(I^=i,B=Q^t,16),B=B+f|0,B=(Q=I)>>>0>(I=I+(255^r)|0)>>>0?B+1|0:B,Q=I^i,o=i=B^p,i=Dg(Q,i,21),t=p,r=E^=c,E=Dg(C^=e,E,17),e=p,B=B+r|0,r=I,C=Dg(I=I+C|0,B=r>>>0>I>>>0?B+1|0:B,32),r=p,f=Dg(E^=I,e^=B,13),y=p,o=1+(I=a+o|0)|0,B=I,Q=(B=(I=g+Q|0)>>>0>>0?o:B)+e|0,a=Q=I>>>0>(g=I+E|0)>>>0?Q+1|0:Q,Q=Dg(g,Q,32),o=p,i=Dg(I^=i,B^=t,16),B=B+r|0,r=I,E=(I=I+C|0)^i,i=C=(B=r>>>0>I>>>0?B+1|0:B)^p,C=Dg(E,C,21),t=p,r=a^=y,a=Dg(g^=f,a,17),e=p,B=B+r|0,r=I,r=Dg(I=I+g|0,g=r>>>0>I>>>0?B+1|0:B,32),f=p,y=Dg(a^=I,e^=g,13),c=p,B=1+(I=i+o|0)|0,g=I,Q=(B=(I=Q+E|0)>>>0>>0?B:g)+e|0,i=Q=I>>>0>(g=I+a|0)>>>0?Q+1|0:Q,Q=Dg(g,Q,32),a=p,C=Dg(I^=C,B^=t,16),B=B+f|0,o=I,E=(I=I+r|0)^C,o=C=(B=o>>>0>I>>>0?B+1|0:B)^p,C=Dg(E,C,21),t=p,r=i^=c,i=Dg(g^=y,i,17),e=p,B=B+r|0,r=I,B=Dg(I=I+g|0,g=r>>>0>I>>>0?B+1|0:B,32),r=p,e=g^=e,f=Dg(i^=I,g,13),y=p,o=1+(I=a+o|0)|0,g=I,a=E=t^(Q=(I=Q+E|0)>>>0>>0?o:g),E=Dg(g=I^C,E,16),C=a+r|0,r=g,E=Dg((g=g+B|0)^E,(B=r>>>0>g>>>0?C+1|0:C)^p,21),C=p,Q=Q+e|0,o=1+(B=B+(Q=((r=I)>>>0>(I=I+i|0)>>>0?Q+1|0:Q)^y)|0)|0,r=B,g=(I=g+(B=I^f)|0)>>>0>>0?o:r,B=Dg(B,Q,17)^I^E,Q=p^g^C,tI(A,Dg(I,g,32)^B,p^Q),0}(A|=0,I|=0,g|=0,Q|=0)},Pb:function(A){cI(A|=0,16)},Qb:function(){return 208},Rb:Pg,Sb:Ng,Tb:Ng,Ub:Pg,Vb:function(){return-65},Wb:function(A,I,g){return 0|N(A|=0,I|=0,g|=0)},Xb:function(A,I){return 0|function(A,I){var g;return h=g=h-32|0,cI(g,32),N(A,I,g),fI(g,32),h=g+32|0,0}(A|=0,I|=0)},Yb:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){var E,n;return h=E=h-16|0,n=g,g=B,Bg(A,E+8|0,gA(A- -64|0,n,B),B,Q,C),64!=i[E+8>>2]|i[E+12>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),EA(A,0,g- -64|0),A=-1):(A=0,I&&(i[I>>2]=B- -64,i[I+4>>2]=Q-((B>>>0<4294967232)-1|0))),h=E+16|0,A}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},Zb:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){var E=0;A:{I:{if(!(!Q&B>>>0<64||(Q=Q-1|0,!(Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q)&B>>>0>4294967231|Q))){if(!ng(g,E=g- -64|0,B,Q,C))break I;A&&EA(A,0,B)}if(g=-1,!I)break A;return i[I>>2]=0,i[I+4>>2]=0,-1}I&&(i[I>>2]=B,i[I+4>>2]=Q),g=0,A&&gA(A,E,B)}return g}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},_b:function(A,I,g,B,Q,C){return 0|Bg(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},$b:function(A,I,g,B,Q){return 0|ng(A|=0,I|=0,g|=0,B|=0,Q|=0)},ac:function(A){return MI(A|=0),0},bc:function(A,I,g,B){return 0|V(A|=0,I|=0,g|=0,B|=0)},cc:function(A,I,g,B){return 0|function(A,I,g,B){var Q;return h=Q=h+-64|0,UI(A,Q),A=q(I,g,Q,64,0,B,1),h=Q- -64|0,A}(A|=0,I|=0,g|=0,B|=0)},dc:function(A,I,g){return 0|function(A,I,g){var B;return h=B=h+-64|0,UI(A,B),A=lA(I,B,64,0,g,1),h=B- -64|0,A}(A|=0,I|=0,g|=0)},ec:function(A,I){A|=0;var g,B=0;return h=g=h-256|0,B=-1,wA(I|=0)||cA(g+96|0,I)||function(A){var I;return h=I=h-160|0,function(A,I){var g,B=0;for(h=g=h-1760|0,FI(g+480|0,I),JI(g+320|0,I),DI(g,g+320|0),VA(g+320|0,g,g+480|0),DI(g+160|0,g+320|0),FI(I=g+640|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+800|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+960|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+1120|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+1280|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+1440|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(g+1600|0,g+160|0),zI(A),I=252;JI(g+320|0,A),B=I,(0|(I=C[I+34208|0]))>=1?(DI(g+160|0,g+320|0),VA(g+320|0,g+160|0,(g+480|0)+r((254&I)>>>1|0,160)|0)):(0|I)>-1||(DI(g+160|0,g+320|0),WA(g+320|0,g+160|0,(g+480|0)+r((0-I&254)>>>1|0,160)|0)),DI(A,g+320|0),I=B-1|0,B;);h=g+1760|0}(I,A),A=RI(I),h=I+160|0,A}(g+96|0)&&(wg(g),yA(g,g,I=g+136|0),wg(g+48|0),sA(g+48|0,g+48|0,I),j(g,g),_(g+48|0,g+48|0,g),BA(A,g+48|0),B=0),h=g+256|0,0|B},fc:function(A,I){A|=0;var g,B=0;return h=g=h+-64|0,mI(g,I|=0,32,0),C[0|g]=248&n[0|g],C[g+31|0]=63&n[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,fI(g,64),h=g- -64|0,0},gc:YI,hc:PI,ic:function(A){var I=0,g=0;if((A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;(I=YI())>>>0>>0;);A=(I>>>0)%(A>>>0)|0}else A=0;return 0|A},jc:cI,kc:function(A,I,g){_g(A|=0,I|=0,1784,g|=0)},lc:Ng,mc:function(){var A=0,I=0;return(A=i[9097])&&(A=i[A+20>>2])&&(I=0|Vg[0|A]()),0|I},nc:function(A,I,g){!function(A,I,g){1==(0|g)|g>>>0>1&&(t(1796,1816,197,1842),e()),cI(A,I)}(A|=0,I|=0,g|=0)},oc:function(A,I,g,B){A|=0,g|=0;var Q=0,E=0,i=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;Q=I<<1,E=(i=n[I+g|0])>>>4|0,C[Q+A|0]=87+(E+(E+65526>>>8&217)|0),E=(1|Q)+A|0,Q=15&i,C[0|E]=22272+((Q<<8)+(Q+65526&55552)|0)>>>8,(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return C[I+A|0]=0,0|A}OI(),e()},pc:function(A,I,g,B,Q,E,a){A|=0,I|=0,g|=0,Q|=0,E|=0,a|=0;var r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0;A:if(B|=0){I:{g:{B:for(;;){for(o=r;;){Q:{if(!(255&((w=(65526+(y=(223&(c=n[g+o|0]))-55&255)^y+65520)>>>8|0)|(e=65526+(h=48^c)>>>8|0)))){if(e=1,!Q|255&f)break g;if(gg(Q,c))break Q;r=o;break A}if(I>>>0<=t>>>0){i[8960]=68,e=0;break g}if(r=y&w|e&h,255&f?(C[A+t|0]=r|D,t=t+1|0):D=r<<4,f^=-1,e=1,(r=o+1|0)>>>0>>0)continue B;break I}if(f=0,!((o=o+1|0)>>>0>>0))break}break}r=(A=r+1|0)>>>0>>0?B:A;break A}r=o}255&f?(i[8960]=28,s=-1,r=r-1|0,t=0):e||(t=0,s=-1)}return a?i[a>>2]=g+r:(0|B)!=(0|r)&&(i[8960]=28,s=-1),E&&(i[E>>2]=t),0|s},qc:function(A,I){var g;return A|=0,pg(I|=0),A=r(g=(A>>>0)/3|0,-3)+A|0,r(4-(3-A&0-(I>>>1&1))|0,1&(A|A>>>1))+(g<<2|1)|0},rc:O,sc:W,tc:function(){var A=0;return i[9104]?A=1:(i[9086]=0,function(){var A;h=A=h-16|0,VI(A),i[A>>2]&&(VI(A),EA(36348,0,40)),h=A+16|0}(),i[9085]=1,PI(),function(){var A=0;(0|(A=0|y(30)))>=1?i[8944]=A:A=i[8944],A>>>0<=15&&(OI(),e()),cI(36400,16)}(),i[9104]=1,A=0),0|A},uc:function(A,I,g,B,Q){A|=0,I|=0,g|=0,Q|=0;var E,a=0,r=0,o=0;h=E=h-16|0;A:{if(B|=0){if(o=-1,(a=(a=B-1|0)-(r=a&B?(g>>>0)%(B>>>0)|0:g&a)|0)>>>0>=(-1^g)>>>0)break A;if(!((g=g+a|0)>>>0>=Q>>>0))for(A&&(i[A>>2]=g+1),A=I+g|0,o=0,C[E+15|0]=0,I=B>>>0>1?B:1,B=0;Q=g=A-B|0,r=n[0|g]&n[E+15|0],g=(B^a)-1>>>24|0,C[0|Q]=r|128&g,C[E+15|0]=g|n[E+15|0],(0|I)!=(0|(B=B+1|0)););}else o=-1;return h=E+16|0,0|o}OI(),e()},vc:function(A,I,g,B){A|=0,I|=0,g|=0,B|=0;var Q,C=0,E=0,a=0,r=0,o=0;if(i[12+(Q=h-16|0)>>2]=0,B-1>>>0>>0){for(o=(C=g-1|0)+I|0,g=0,I=0;r=((128^(E=n[o-g|0]))-1&i[Q+12>>2]-1&a-1)>>>8&1,i[Q+12>>2]=i[Q+12>>2]|0-r&g,I|=r,a|=E,(0|B)!=(0|(g=g+1|0)););i[A>>2]=C-i[Q+12>>2],A=I-1|0}else A=-1;return 0|A},wc:function(){return 35762},xc:function(){return 10},yc:qg,zc:Rg,Ac:function(){return 35840},Bc:k,Cc:m}}(A)}(vA)},instantiate:function(A,I){return{then:function(I){var g=new u.Module(A);I({instance:new u.Instance(g)})}}},RuntimeError:Error};function p(A,I,g,B){switch(\"*\"===(g=g||\"i8\").charAt(g.length-1)&&(g=\"i32\"),g){case\"i1\":case\"i8\":_[A>>0]=I;break;case\"i16\":Y[A>>1]=I;break;case\"i32\":b[A>>2]=I;break;case\"i64\":nA=[I>>>0,(iA=I,+Math.abs(iA)>=1?iA>0?(0|Math.min(+Math.floor(iA/4294967296),4294967295))>>>0:~~+Math.ceil((iA-+(~~iA>>>0))/4294967296)>>>0:0)],b[A>>2]=nA[0],b[A+4>>2]=nA[1];break;case\"float\":m[A>>2]=I;break;case\"double\":v[A>>3]=I;break;default:IA(\"invalid type for setValue: \"+g)}}function l(A,I,g){switch(\"*\"===(I=I||\"i8\").charAt(I.length-1)&&(I=\"i32\"),I){case\"i1\":case\"i8\":return _[A>>0];case\"i16\":return Y[A>>1];case\"i32\":case\"i64\":return b[A>>2];case\"float\":return m[A>>2];case\"double\":return v[A>>3];default:IA(\"invalid type for getValue: \"+I)}return null}w=[],\"object\"!=typeof u&&IA(\"no native wasm support detected\");var F=!1;function G(A,I){A||IA(\"Assertion failed: \"+I)}var k,_,H,Y,b,m,v,U=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function S(A,I,g){for(var B=I+g,Q=I;A[Q]&&!(Q>=B);)++Q;if(Q-I>16&&A.subarray&&U)return U.decode(A.subarray(I,Q));for(var C=\"\";I>10,56320|1023&a)}}else C+=String.fromCharCode((31&E)<<6|i)}else C+=String.fromCharCode(E)}return C}function N(A,I){return A?S(H,A,I):\"\"}function M(A,I){return A%I>0&&(A+=I-A%I),A}function d(A){k=A,Q.HEAP8=_=new Int8Array(A),Q.HEAP16=Y=new Int16Array(A),Q.HEAP32=b=new Int32Array(A),Q.HEAPU8=H=new Uint8Array(A),Q.HEAPU16=new Uint16Array(A),Q.HEAPU32=new Uint32Array(A),Q.HEAPF32=m=new Float32Array(A),Q.HEAPF64=v=new Float64Array(A)}var P,R=Q.INITIAL_MEMORY||16777216;(D=Q.wasmMemory?Q.wasmMemory:new u.Memory({initial:R/65536,maximum:32768}))&&(k=D.buffer),R=k.byteLength,d(k);var J=[],x=[],L=[],K=[];function q(){if(Q.preRun)for(\"function\"==typeof Q.preRun&&(Q.preRun=[Q.preRun]);Q.preRun.length;)T(Q.preRun.shift());fA(J)}function X(){fA(x)}function V(){fA(L)}function W(){if(Q.postRun)for(\"function\"==typeof Q.postRun&&(Q.postRun=[Q.postRun]);Q.postRun.length;)j(Q.postRun.shift());fA(K)}function T(A){J.unshift(A)}function j(A){K.unshift(A)}x.push({func:function(){UA()}});var Z=0,O=null,z=null;function $(A){Z++,Q.monitorRunDependencies&&Q.monitorRunDependencies(Z)}function AA(A){if(Z--,Q.monitorRunDependencies&&Q.monitorRunDependencies(Z),0==Z&&(null!==O&&(clearInterval(O),O=null),z)){var I=z;z=null,I()}}function IA(A){throw Q.onAbort&&Q.onAbort(A),h(A+=\"\"),F=!0,A=\"abort(\"+A+\"). Build with -s ASSERTIONS=1 for more info.\",new u.RuntimeError(A)}function gA(A,I){return String.prototype.startsWith?A.startsWith(I):0===A.indexOf(I)}Q.preloadedImages={},Q.preloadedAudios={};var BA=\"data:application/octet-stream;base64,\";function QA(A){return gA(A,BA)}var CA=\"file://\";function EA(A){return gA(A,CA)}var iA,nA,aA=\"<<< WASM_BINARY_FILE >>>\";function rA(A){try{if(A==aA&&w)return new Uint8Array(w);var I=bA(A);if(I)return I;if(t)return t(A);throw\"both async and sync fetching of the wasm failed\"}catch(A){IA(A)}}function oA(){if(!w&&(i||n)){if(\"function\"==typeof fetch&&!EA(aA))return fetch(aA,{credentials:\"same-origin\"}).then((function(A){if(!A.ok)throw\"failed to load wasm binary file at '\"+aA+\"'\";return A.arrayBuffer()})).catch((function(){return rA(aA)}));if(e)return new Promise((function(A,I){e(aA,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return rA(aA)}))}function eA(){var A={a:vA};function I(A,I){var g=A.exports;Q.asm=g,P=Q.asm.h,AA()}function g(A){I(A.instance)}function B(I){return oA().then((function(I){return u.instantiate(I,A)})).then(I,(function(A){h(\"failed to asynchronously prepare wasm: \"+A),IA(A)}))}if($(),Q.instantiateWasm)try{return Q.instantiateWasm(A,I)}catch(A){return h(\"Module.instantiateWasm callback failed with error: \"+A),!1}return w||\"function\"!=typeof u.instantiateStreaming||QA(aA)||EA(aA)||\"function\"!=typeof fetch?B(g):fetch(aA,{credentials:\"same-origin\"}).then((function(I){return u.instantiateStreaming(I,A).then(g,(function(A){return h(\"wasm streaming compile failed: \"+A),h(\"falling back to ArrayBuffer instantiation\"),B(g)}))})),{}}QA(aA)||(aA=s(aA));var tA={1024:function(){return Q.getRandomValue()},1062:function(){if(void 0===Q.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),Q.getRandomValue=g}catch(A){try{var B=require(\"crypto\"),C=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};C(),Q.getRandomValue=C}catch(A){throw\"No secure random number generator found\"}}}};function fA(A){for(;A.length>0;){var I=A.shift();if(\"function\"!=typeof I){var g=I.func;\"number\"==typeof g?void 0===I.arg?P.get(g)():P.get(g)(I.arg):g(void 0===I.arg?null:I.arg)}else I(Q)}}function cA(A,I,g,B){IA(\"Assertion failed: \"+N(A)+\", at: \"+[I?N(I):\"unknown filename\",g,B?N(B):\"unknown function\"])}function yA(){IA()}function sA(A,I,g){var B=GA(I,g);return tA[A].apply(null,B)}function wA(A,I,g){H.copyWithin(A,I,I+g)}function hA(){return H.length}function DA(A){try{return D.grow(A-k.byteLength+65535>>>16),d(D.buffer),1}catch(A){}}function uA(A){A>>>=0;var I=hA(),g=2147483648;if(A>g)return!1;for(var B=1;B<=4;B*=2){var Q=I*(1+.2/B);if(Q=Math.min(Q,A+100663296),DA(Math.min(g,M(Math.max(16777216,A,Q),65536))))return!0}return!1}function pA(A){return b[SA()>>2]=A,A}function lA(A){switch(A){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return\"object\"==typeof navigator&&navigator.hardwareConcurrency||1}return pA(28),-1}var FA=[];function GA(A,I){var g;for(FA.length=0,I>>=2;g=H[A++];){var B=g<105;B&&1&I&&I++,FA.push(B?v[I++>>1]:b[I]),++I}return FA}var kA=!1;function _A(A){for(var I=[],g=0;g255&&(kA&&G(!1,\"Character code \"+B+\" (\"+String.fromCharCode(B)+\") at offset \"+g+\" not in 0x00-0xFF.\"),B&=255),I.push(String.fromCharCode(B))}return I.join(\"\")}var HA=\"function\"==typeof atob?atob:function(A){var I,g,B,Q,C,E,i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",n=\"\",a=0;A=A.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{I=i.indexOf(A.charAt(a++))<<2|(Q=i.indexOf(A.charAt(a++)))>>4,g=(15&Q)<<4|(C=i.indexOf(A.charAt(a++)))>>2,B=(3&C)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==C&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a0||(q(),Z>0||(Q.setStatus?(Q.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){Q.setStatus(\"\")}),1),I()}),1)):I()))}if(Q._malloc=function(){return(Q._malloc=Q.asm.Bc).apply(null,arguments)},Q._free=function(){return(Q._free=Q.asm.Cc).apply(null,arguments)},Q.setValue=p,Q.getValue=l,Q.UTF8ToString=N,z=function A(){mA||NA(),mA||(z=A)},Q.run=NA,Q.preInit)for(\"function\"==typeof Q.preInit&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();NA()}))};var g,Q=void 0!==Q?Q:{},C={};for(g in Q)Q.hasOwnProperty(g)&&(C[g]=Q[g]);var E=[],i=!1,n=!1,a=!1,r=!1;i=\"object\"==typeof window,n=\"function\"==typeof importScripts,a=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,r=!i&&!a&&!n;var o,e,t,f,c,y=\"\";function s(A){return Q.locateFile?Q.locateFile(A,y):y+A}a?(y=n?require(\"path\").dirname(y)+\"/\":__dirname+\"/\",o=function(A,I){var g=HA(A);return g?I?g:g.toString():(f||(f=require(\"fs\")),c||(c=require(\"path\")),A=c.normalize(A),f.readFileSync(A,I?null:\"utf8\"))},t=function(A){var I=o(A,!0);return I.buffer||(I=new Uint8Array(I)),F(I.buffer),I},process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),E=process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=Q),Q.inspect=function(){return\"[Emscripten Module object]\"}):r?(\"undefined\"!=typeof read&&(o=function(A){var I=HA(A);return I?GA(I):read(A)}),t=function(A){var I;return(I=HA(A))?I:\"function\"==typeof readbuffer?new Uint8Array(readbuffer(A)):(F(\"object\"==typeof(I=read(A,\"binary\"))),I)},\"undefined\"!=typeof scriptArgs?E=scriptArgs:void 0!==arguments&&(E=arguments),\"undefined\"!=typeof print&&(\"undefined\"==typeof console&&(console={}),console.log=print,console.warn=console.error=\"undefined\"!=typeof printErr?printErr:print)):(i||n)&&(n?y=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(y=document.currentScript.src),y=0!==y.indexOf(\"blob:\")?y.substr(0,y.lastIndexOf(\"/\")+1):\"\",o=function(A){try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.send(null),I.responseText}catch(I){var g=HA(A);if(g)return GA(g);throw I}},n&&(t=function(A){try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}catch(I){var g=HA(A);if(g)return g;throw I}}),e=function(A,I,g){var B=new XMLHttpRequest;B.open(\"GET\",A,!0),B.responseType=\"arraybuffer\",B.onload=function(){if(200==B.status||0==B.status&&B.response)I(B.response);else{var Q=HA(A);Q?I(Q.buffer):g()}},B.onerror=g,B.send(null)}),Q.print;var w,h,D=Q.printErr||void 0;for(g in C)C.hasOwnProperty(g)&&(Q[g]=C[g]);function u(A,I,g,B){switch(\"*\"===(g=g||\"i8\").charAt(g.length-1)&&(g=\"i32\"),g){case\"i1\":case\"i8\":k[A>>0]=I;break;case\"i16\":H[A>>1]=I;break;case\"i32\":Y[A>>2]=I;break;case\"i64\":EA=[I>>>0,(CA=I,+Math.abs(CA)>=1?CA>0?(0|Math.min(+Math.floor(CA/4294967296),4294967295))>>>0:~~+Math.ceil((CA-+(~~CA>>>0))/4294967296)>>>0:0)],Y[A>>2]=EA[0],Y[A+4>>2]=EA[1];break;case\"float\":b[A>>2]=I;break;case\"double\":m[A>>3]=I;break;default:$(\"invalid type for setValue: \"+g)}}function p(A,I,g){switch(\"*\"===(I=I||\"i8\").charAt(I.length-1)&&(I=\"i32\"),I){case\"i1\":case\"i8\":return k[A>>0];case\"i16\":return H[A>>1];case\"i32\":case\"i64\":return Y[A>>2];case\"float\":return b[A>>2];case\"double\":return m[A>>3];default:$(\"invalid type for getValue: \"+I)}return null}C=null,Q.arguments&&(E=Q.arguments),Q.thisProgram&&Q.thisProgram,Q.quit&&Q.quit,Q.wasmBinary&&(w=Q.wasmBinary),Q.noExitRuntime&&Q.noExitRuntime,\"object\"!=typeof WebAssembly&&$(\"no native wasm support detected\");var l=!1;function F(A,I){A||$(\"Assertion failed: \"+I)}var G,k,_,H,Y,b,m,v=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function U(A,I,g){for(var B=I+g,Q=I;A[Q]&&!(Q>=B);)++Q;if(Q-I>16&&A.subarray&&v)return v.decode(A.subarray(I,Q));for(var C=\"\";I>10,56320|1023&a)}}else C+=String.fromCharCode((31&E)<<6|i)}else C+=String.fromCharCode(E)}return C}function S(A,I){return A?U(_,A,I):\"\"}function N(A,I){return A%I>0&&(A+=I-A%I),A}function M(A){G=A,Q.HEAP8=k=new Int8Array(A),Q.HEAP16=H=new Int16Array(A),Q.HEAP32=Y=new Int32Array(A),Q.HEAPU8=_=new Uint8Array(A),Q.HEAPU16=new Uint16Array(A),Q.HEAPU32=new Uint32Array(A),Q.HEAPF32=b=new Float32Array(A),Q.HEAPF64=m=new Float64Array(A)}Q.INITIAL_MEMORY;var d,P=[],R=[],J=[],x=[];function L(){if(Q.preRun)for(\"function\"==typeof Q.preRun&&(Q.preRun=[Q.preRun]);Q.preRun.length;)V(Q.preRun.shift());eA(P)}function K(){eA(R)}function q(){eA(J)}function X(){if(Q.postRun)for(\"function\"==typeof Q.postRun&&(Q.postRun=[Q.postRun]);Q.postRun.length;)W(Q.postRun.shift());eA(x)}function V(A){P.unshift(A)}function W(A){x.unshift(A)}R.push({func:function(){mA()}});var T=0,j=null,Z=null;function O(A){T++,Q.monitorRunDependencies&&Q.monitorRunDependencies(T)}function z(A){if(T--,Q.monitorRunDependencies&&Q.monitorRunDependencies(T),0==T&&(null!==j&&(clearInterval(j),j=null),Z)){var I=Z;Z=null,I()}}function $(A){throw Q.onAbort&&Q.onAbort(A),D(A+=\"\"),l=!0,A=\"abort(\"+A+\"). Build with -s ASSERTIONS=1 for more info.\",new WebAssembly.RuntimeError(A)}function AA(A,I){return String.prototype.startsWith?A.startsWith(I):0===A.indexOf(I)}Q.preloadedImages={},Q.preloadedAudios={};var IA=\"data:application/octet-stream;base64,\";function gA(A){return AA(A,IA)}var BA=\"file://\";function QA(A){return AA(A,BA)}var CA,EA,iA=\"data:application/octet-stream;base64,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CiASfnwgCSALfnwiEUKAgIAQfCIUQhqHfCIiQoCAgAh8IiNCGYd8IhkgGUKAgIAQfCIZQoCAgOAPg30+AgggACASIBh+IA0gDn58IAkgEH58IAwgHH58IAsgF358IBNCGod8IhMgE0KAgIAIfCITQoCAgPAPg30+AhwgACAMIBp+IAkgFX58IBAgFn58IAogD358IAsgDX58IBlCGod8IgogCkKAgIAIfCIKQoCAgPAPg30+AgwgACAQIBJ+IA0gDX58IA4gD358IAkgG358IAwgF358IAsgA6wiDX58IBNCGYd8IgsgC0KAgIAQfCILQoCAgOAPg30+AiAgACAgICFCgICA8A+DfSAeIB9CgICAYIN9IApCGYd8IgpCgICAEHwiD0IaiHw+AhQgACAKIA9CgICA4A+DfT4CECAAIA4gEH4gGCAdfnwgEiAcfnwgCSAXfnwgDCANfnwgC0Iah3wiCSAJQoCAgAh8IglCgICA8A+DfT4CJCAAICIgI0KAgIDwD4N9IBEgFEKAgIBgg30gCUIZh0ITfnwiCUKAgIAQfCIMQhqIfD4CBCAAIAkgDEKAgIDgD4N9PgIACxAAIAAzAAAgADEAAkIQhoQL8wICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACwkAIAAgATcAAAuCBAEDfyACQYAETwRAIAAgASACEAQaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvsAQESfyACKAIEIQMgASgCBCEEIAIoAgghBSABKAIIIQYgAigCDCEHIAEoAgwhCCACKAIQIQkgASgCECEKIAIoAhQhCyABKAIUIQwgAigCGCENIAEoAhghDiACKAIcIQ8gASgCHCEQIAIoAiAhESABKAIgIRIgAigCJCETIAEoAiQhFCAAIAIoAgAgASgCAGo2AgAgACATIBRqNgIkIAAgESASajYCICAAIA8gEGo2AhwgACANIA5qNgIYIAAgCyAMajYCFCAAIAkgCmo2AhAgACAHIAhqNgIMIAAgBSAGajYCCCAAIAMgBGo2AgQLGAEBf0HEnAIoAgAiAARAIAARDgALEAIAC0ABA38gACABIAFB+ABqIgIQCyAAQShqIAFBKGoiAyABQdAAaiIEEAsgAEHQAGogBCACEAsgAEH4AGogASADEAsL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREg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czYCFCABIAUgEHM2AhAgASAEIA9zNgIMIAEgAyANczYCCCABIAAgC3M2AgQgASAWIBdzNgIACykBAX8jAEGAAWsiAiQAIAJBCGogARDoAiAAIAJBCGoQOSACQYABaiQACzIBAX8gACABIAFB+ABqIgIQCyAAQShqIAFBKGogAUHQAGoiARALIABB0ABqIAEgAhALC68CARN/IAEoAgQhDCAAKAIEIQMgASgCCCENIAAoAgghBCABKAIMIQ4gACgCDCEFIAEoAhAhDyAAKAIQIQYgASgCFCEQIAAoAhQhByABKAIYIREgACgCGCEIIAEoAhwhEiAAKAIcIQkgASgCICETIAAoAiAhCiABKAIkIRQgACgCJCELIABBACACayICIAAoAgAiFSABKAIAc3EgFXM2AgAgACALIAsgFHMgAnFzNgIkIAAgCiAKIBNzIAJxczYCICAAIAkgCSAScyACcXM2AhwgACAIIAggEXMgAnFzNgIYIAAgByAHIBBzIAJxczYCFCAAIAYgBiAPcyACcXM2AhAgACAFIAUgDnMgAnFzNgIMIAAgBCAEIA1zIAJxczYCCCAAIAMgAyAMcyACcXM2AgQLJAEBfyMAQSBrIgEkACABIAAQLSABQSAQZSEAIAFBIGokACAAC6YEAgp/Dn4gACgCJCEEIAAoAiAhBSAAKAIcIQYgACgCGCEHIAAoAhQhAyACQhBaBEAgAC0AUEVBGHQhCCAAKAIEIglBBWytIRkgACgCCCIKQQVsrSEXIAAoAgwiC0EFbK0hFSAAKAIQIgxBBWytIRMgDK0hGiALrSEYIAqtIRYgCa0hFCAANQIAIRIDQCABKAADQQJ2Qf///x9xIAdqrSINIBh+IAEoAABB////H3EgA2qtIg4gGn58IAEoAAZBBHZB////H3EgBmqtIg8gFn58IAEoAAlBBnYgBWqtIhAgFH58IAQgCGogASgADEEIdmqtIhEgEn58IA0gFn4gDiAYfnwgDyAUfnwgECASfnwgESATfnwgDSAUfiAOIBZ+fCAPIBJ+fCAQIBN+fCARIBV+fCANIBJ+IA4gFH58IA8gE358IBAgFX58IBEgF358IA0gE34gDiASfnwgDyAVfnwgECAXfnwgESAZfnwiDUIaiEL/////D4N8Ig5CGohC/////w+DfCIPQhqIQv////8Pg3wiEEIaiEL/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aiAFIAYQDCAJQQhqIAYQESAJQdAAaiAJQQhqQggQDCAAIAMgBCAHIAgQogEgCUHQAGogACAEEAwgCUEIaiAEEBEgCUHQAGogCUEIakIIEAwgCUHQAGogARAjIAlB0ABqQYACEAkgAgRAIAJCEDcDAAsgCUHQAmokAEEACygAIAJCgICAgBBaBEAQFAALIAAgASACIANCASAEQfCXAigCABEVABoLFgAgAELAACABIAJB6JcCKAIAEREAGgsyACAAIAIEfyACKAAABUEACzYCMCAAIAEoAAA2AjQgACABKAAENgI4IAAgASgACDYCPAs9ACAAAn8gAgRAIAAgAigAADYCMCACKAAEDAELIABBADYCMEEACzYCNCAAIAEoAAA2AjggACABKAAENgI8CxkAIAAgASACIANCASAEQeSXAigCABEVABoLKAEBfyMAQRBrIgAkACAAQQA6AA9BpgggAEEPakEAEAEaIABBEGokAAtqAQN/IwBBEGsiAyQAIANBADoAD0F/IQUgACABIAJB2JcCKAIAEQMARQRAA0AgAyAAIARqLQAAIAMtAA9yOgAPIARBAWoiBEEgRw0AC0EAIAMtAA9BAWtBCHZBAXFrIQULIANBEGokACAFCxMAIAAgAUHAB2xBoBtqIAIQ5gILEAAgAEIANwIAIABCADcCCAsdACAAEDggAEEoahAdIABB0ABqEB0gAEH4AGoQOAuAAgEIfwNAIAAgAmogASACQQN2ai0AACACQQdxdkEBcToAACACQQFqIgJBgAJHDQALA0AgBCIBQQFqIQQCQCAAIAFqIgYtAABFDQAgBCECQQEhBSABQf4BSw0AA0ACQCAAIAJqIgMsAAAiB0UNACAHIAV0IgcgBiwAACIIaiIJQQ9MBEAgBiAJOgAAIANBADoAAAwBCyAIIAdrIgNBcUgNAiAGIAM6AAADQCAAIAJqIgMtAABFBEAgA0EBOgAADAILIANBADoAACACQf8BSSEDIAJBAWohAiADDQALCyAFQQVLDQEgBUEBaiIFIAFqIgJBgAJJDQALCyAEQYACRw0ACwuVAQEEfyMAQTBrIgUkACAAIAFBKGoiAyABEBMgAEEoaiIEIAMgARAWIABB0ABqIgMgACACQShqEAsgBCAEIAIQCyAAQfgAaiIGIAJB+ABqIAFB+ABqEAsgACABQdAAaiACQdAA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CSACQYAIaiQAC/ADAQJ/IwAiAyEEIANBwANrQUBxIgMkACAARSABRXJFBEAgA0FAa0EAQQBBwAAQPhogA0E8aiABKAIwEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIEEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIsEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIoEAogA0FAayADQTxqQgQQGBogA0E8akETEAogA0FAayADQTxqQgQQGBogA0E8aiACEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIMEAogA0FAayADQTxqQgQQGBoCQCABKAIIIgJFDQAgA0FAayACIAE1AgwQGBogAS0AOEEBcUUNACABKAIIIAEoAgwQCSABQQA2AgwLIANBPGogASgCFBAKIANBQGsgA0E8akIEEBgaIAEoAhAiAgRAIANBQGsgAiABNQIUEBgaCyADQTxqIAEoAhwQCiADQUBrIANBPGpCBBAYGgJAIAEoAhgiAkUNACADQUBrIAIgATUCHBAYGiABLQA4QQJxRQ0AIAEoAhggASgCHBAJIAFBADYCHAsgA0E8aiABKAIkEAogA0FAayADQTxqQgQQGBogASgCICICBEAgA0FAayACIAE1AiQQGBoLIANBQGsgAEHAABA9GgsgBCQAC68BAQN/IwBBEGsiAiQAQWohAwJAIABFIAFFcg0AIAFBCnQiBCABbkGACEcNACAAQQwQICIBNgIAIAFFDQAgAUIANwIAQYCYAiACQQxqIAQQsgEiATYCAAJAAkAgAQRAIAJBADYCDAwBCyACKAIMIgENAQsgACgCABAZIABBADYCAAwBCyAAKAIAIAE2AgAgACgCACABNgIEIAAoAgAgBDYCCEEAIQMLIAJBEGokACADC4cBAQJ/IwBB0ABrIgMkAEFnIQICQCAARSABRXINACAAIAAoAhRBA3QQICICNgIEIAJFBEBBaiECDAELIAAgACgCEBC8ASICBEAgACABKAI4EIMBDAELIAMgASAAKAIkELsBIANBQGtBCBAJIAMgABC6ASADQcgAEAlBACECCyADQdAAaiQAIAILkwEBBH8jAEEgayICJAACQCAARQ0AIAAoAhxFDQAgAiABNgIQQQEhBANAIAIgAzoAGEEAIQFBACEFIAQEQANAIAJBADYCHCACIAIpAxg3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ACAAIAEgAiADrSAErUIghoQgBSAGEGoLFwAgACABIAKtIAOtQiCGhCAEIAUQuwILFgAgACABKQAANwAwIAAgASkACDcAOAsYACAAIAEgAiADrSAErUIghoQgBSAGEGsLEwAgACABrSACrUIghoQgAxCSAgsTACAAIAEgAq0gA61CIIaEEJMCCyEAIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYgBxCUAgsfACAAIAEgAq0gA61CIIaEIAStIAWtQiCGhCAGEIwBCy0AIAAgAa0gAq1CIIaEIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChCVAgsXACAAIAEgAq0gA61CIIaEIAQgBRCzAgsSACAAIAEgAq0gA61CIIaEEDQLEgAgACABIAKtIAOtQiCGhBAlCxkAIAAgASACIAOtIAStQiCGhCAFIAYQlAELFgAgACABKQAANwAgIAAgASkACDcAKAsXACAAIAEgAq0gA61CIIaEIAQgBRC1AgsVACAAIAEgAq0gA61CIIaEIAQQtgILGQAgACABIAKtIAOtQiCGhCAEIAUgBhCVAQsXACAAIAEgAq0gA61CIIaEIAQgBRC4AgsbACAAIAEgAiADrSAErUIghoQgBSAGIAcQlgELGAAgACABIAIgA60gBK1CIIaEIAUgBhBoCxkAIAAgASACrSADrUIghoQgBCAFIAYQlwELFwAgACABIAKtIAOtQiCGhCAEIAUQuQILGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJgBCxgAIAAgASACIAOtIAStQiCGhCAFIAYQaQsVACAAIAEgAq0gA61CIIaEIAQQwAILFQAgACABIAKtIAOtQiCGhCAEEJoBCyUAIAAgASADIAStIAWtQiCGhCAGIAetIAitQiCGhCAJIAoQyQILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCcAQslACAAIAEgAiADrSAErUIghoQgBSAGrSAHrUIghoQgCSAKEMsCCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxCdAQslACAAIAEgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCSAKEM8CCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQngELJQAgACABIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChDQAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEJ8BCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0QILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKABCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0gILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKEBCwQAQQoLBgBBspcCCwsAIAAgASACEIICCw0AIAAgASACIAMQgwILCAAgABA1QQALCQAgACABEIgCCwsAIAAgASACEIoBCwUAQb9/CwUAQdABCywBAX8jAEFAaiIDJAAgACADECcgASADQsAAIAJBARCHASEAIANBQGskACAACy4BAX8jAEFAaiIEJAAgACAEECcgASACIARCwAAgA0EBEIkBIQAgBEFAayQAIAALewEBfwJAAkACQCADQsAAVA0AIANCQHwiA0K/////D1YNACACIAJBQGsiBSADIAQQhgFFDQEgAEUNACAAQQAgA6cQEBoLQX8hAiABRQ0BIAFCADcDAEF/DwsgAQRAIAEgAzcDAAtBACECIABFDQAgACAFIAOnEEcaCyACC3MBAX8jAEEQayIFJAAgACAFQQhqIABBQGsgAiADpyICEEcgAyAEEIgBGgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQEBpBfyEADAELQQAhACABRQ0AIAEgA0JAfTcDAAsgBUEQaiQAIAALbQEBfyMAQUBqIgIkACACIAFCIBA0GiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQCSACQUBrJABBAAuGAQECfyMAQYACayICJABBfyEDAkAgARB1DQAgAkHgAGogARCuAQ0AIAJB4ABqEOUCRQ0AIAIQHSACIAIgAkGIAWoiARAWIAJBMGoQHSACQTBqIAJBMGogARATIAIgAhA6IAJBMGogAkEwaiACEAsgACACQTBqEC1BACEDCyACQYACaiQAIAMLLAEBfyMAQSBrIgIkACACQSAQHyAAIAEg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ASACQhB9IAMgBBBqBSAFCwslACACQvD///8PWgRAEBQACyAAQRBqIAAgASACIAMgBBBrGkEACwsAIAAgASACEL8CCy8AIAFCgICAgBBaBEBBACIAQYQOaiAAQZgOakHFASAAQbIOahAAAAsgACABpxAfCzMBAn8jAEEgayIDJABBfyEEIAMgAiABEKgBRQRAIABB4JUCIAMQbSEECyADQSBqJAAgBAtWAQF/IwBBQGoiAyQAIAMgAkIgEDQaIAEgAykDGDcAGCABIAMpAxA3ABAgASADKQMINwAIIAEgAykDADcAACADQcAAEAkgACABEHIhACADQUBrJAAgAAtAAQF/IwBBIGsiBCQAIAQgASACIAMQmgEaIAAgBBCAASEBIAQgAEEgEEUhAyAEQSBqJAAgA0F/IAEgACAERhtyC0MBAX8jAEFAaiICJAAgACACEMICIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACACQUBrJAALNwEBfyMAQUBqIgIkACAAIAIQJyAAQdABaiIAIAJCwAAQHBogACABECcgAkHAABAJIAJBQGskAAvhAQEDfyMAQcABayICJAAgABA1IAJBQGtBNkGAARAQGiACIAEtAABBNnM6AEBBASEDA0AgAkFAayADaiIEIAQtAAAgASADai0AAHM6AAAgA0EBaiIDQSBHDQALIAAgAkFAa0KAARAcGiAAQdABaiIAEDUgAkFAa0HcAEGAARAQGiACIAEtAABB3ABzOgBAQQEhAwNAIAJBQGsgA2oiBCAELQAAIAEgA2otAABzOgAAIANBAWoiA0EgRw0ACyAAIAJBQGtCgAEQHBogAkFAa0GAARAJIAJBwAAQCSACQcABaiQAC2YBAX4gACkAACIBQjiGIAFCKIZCgICAgICAwP8Ag4QgAUIYhkKAgICAgOA/gyABQgiGQoCAgIDwH4OEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhAsmAQJ/AkBBpJwCKAIAIgBFDQAgACgCFCIARQ0AIAARAQAhAQsgAQtkACAAIAFCKIZCgICAgICAwP8AgyABQjiGhCABQhiGQoCAgICA4D+DIAFCCIZCgICAgPAfg4SEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4D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BiADakENEAggDXMiDSAGakESEAggBXMhBSAaQRJJIRAgGkECaiEaIBANAAsgACACQeXwwYsGahAKIABBBGogByASahAKIABBCGogCCATahAKIABBDGogESAUahAKIABBEGogCSAVahAKIABBFGogDkHuyIGZA2oQCiAAQRhqIAogG2oQCiAAQRxqIAsgHGoQCiAAQSBqIAwgHWoQCiAAQSRqIA8gHmoQCiAAQShqIAFBstqIywdqEAogAEEsaiAEIBZqEAogAEEwaiADIBdqEAogAEE0aiAGIBhqEAogAEE4aiANIBlqEAogAEE8aiAFQfTKgdkGahAKCzoBAX8jAEHgAGsiAyQAIANBMGogAiABEBMgAyACIAEQFiADIAMQOiAAIANBMGogAxALIANB4ABqJAALdgECfyMAQdABayICJAADQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyACQTBqIAAQdiACIAJB2ABqIAJBgAFqENwCIAAgAhAtIAJB0AFqJABBAAu9AwEMfiABNAIEIQIgATQCCCEDIAE0AgwhBCABNAIQIQUgATQCFCEGIAE0AhghByABNAIAIQsgACABNAIkQsK2B34iCCAIQoCAgAh8IghCgICA8A+DfSABNAIgQsK2B34gATQCHELCtgd+IglCgICACHwiCkIZh3wiDEKAgIAQfCINQhqIfD4CJCAAIAwgDUKAgIDgD4N9PgIgIAAgCSAKQoCAgPAPg30gB0LCtgd+IAZCwrYHfiIGQoCAgAh8IgdCGYd8IglCgICAEHwiCkIaiHw+AhwgACAJIApCgICA4A+DfT4CGCAAIAYgB0KAgIDwD4N9IAVCwrYHfiAEQsK2B34iBEKAgIAIfCIFQhmHfCIGQoCAgBB8IgdCGoh8PgIUIAAgBiAHQoCAgOAPg30+AhAgACAEIAVCgICA8A+DfSADQsK2B34gAkLCtgd+IgJCgICACHwiA0IZh3wiBEKAgIAQfCIFQhqIfD4CDCAAIAQgBUKAgIDgD4N9PgIIIAAgAiADQoCAgPAPg30gCEIZh0ITfiALQsK2B358IgJCgICAEHwiA0IaiHw+AgQgACACIANCgICA4A+DfT4CAAvcAQEFfyMAQRBrIgNBADYACyADQQA2AggDQCAAIAJqLQAAIQRBACEBA0AgA0EIaiABaiIFIAUtAAAgAUEFdEGgjQJqIAJqLQAAIARzcjoAACABQQFqIgFBB0cNAAsgAkEBaiICQR9HDQALIAAtAB9B/wBxIQJBACEAQQAhAQNAIANBCGogAWoiBCAELQAAIAIgAUEFdEG/jQJqLQAAc3I6AAAgAUEBaiIBQQdHDQALQQAhAQNAIANBCGogAGotAABBAWsgAXIhASAAQQFqIgBBB0cNAAsgAUEIdkEBcQvcBAEDfyMAQdACayIDJABBfyEEIAIQ3wJFBEBBACEEA0AgACAEaiABIARqLQAAOgAAIARBAWoiBEEgRw0ACyAAIAAtAABB+AFxOgAAIAAgAC0AH0E/cUHAAHI6AB8gA0GgAmogAhB7IANB8AFqEB0gA0HAAWoQOCADQZABaiADQaACahAsIANB4ABqEB1B/gEhAkEAIQQDQCADQfABaiADQZABaiAAIAIiBUEDdmotAAAgAkEHcXZBAXEiASAEcyIEEE4gA0HAAWogA0HgAGogBBBOIAJBAWshAiADQTBqIANBkAFqIANB4ABqEBYgAyADQfABaiADQcABahAWIANB8AFqIANB8AFqIANBwAFqEBMgA0HAAWogA0GQAWogA0HgAGoQEyADQeAAaiADQTBqIANB8AFqEAsgA0HAAWogA0HAAWogAxALIANBMGogAxAOIAMgA0HwAWoQDiADQZABaiADQeAAaiADQcABahATIANBwAFqIANB4ABqIANBwAFqEBYgA0HwAWogAyADQTBqEAsgAyADIANBMGoQFiADQcABaiADQcABahAOIANB4ABqIAMQ3gIgA0GQAWogA0GQAWoQDiADQTBqIANBMGogA0HgAGoQEyADQeAAaiADQaACaiADQcABahALIANBwAFqIAMgA0EwahALIAEhBCAFDQALIANB8AFqIANBkAFqIAEQTiADQcABaiADQeAAaiABEE4gA0HAAWogA0HAAWoQOiADQfABaiADQfABaiADQcABahALIAAgA0HwAWoQLUEAIQQLIANB0AJqJAAgBAtUAQV/QSAhAUEBIQIDQCAAIAFBAWsiAWotAAAiBCABQYAbai0AACIFa0EIdSACcSADQf8BcXIhAyAEIAVzQf//A2pBCHYgAnEhAiABDQALIANBAEcL6B4BOn4gARAPIRIg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CiAAIAtC////AIMgBEIVh3wiBkIKiDwAESAAIAZCAog8ABAgACAEQv///wCDIgdCAYYgBUIUiIQ8AA0gACAMQv///wCDIAZCFYd8IgRCDYg8ABQgACAEQgWIPAATIAAgBkL///8AgyIFQgaGIAdCD4iEPAAPIAAgDkL///8AgyAEQhWHfCIGPAAVIAAgBEIDhiAFQhKIhDwAEiAAIAZCCIg8ABYgACAPQv///wCDIAZCFYd8IgRCC4g8ABkgACAEQgOIPAAYIAAgEEL///8AgyAEQhWHfCIFQgaIPAAbIAAgBkIQiEIfgyAEQv///wCDIgRCBYaEPAAXIAAgDUL///8AgyAFQhWHfCIGQhGIPAAfIAAgBkIJiDwAHiAAIAZCAYg8AB0gACAFQv///wCDIgVCAoYgBEITiIQ8ABogACAGQgeGIAVCDoiEPAAcC1IBA38gAC0AH0F/c0H/AHEhAUEeIQIDQCABIAAgAmotAABBf3NyIQEgAkEBayIDIQIgAw0ACyABQf8BcUEBa0HsASAALQAAa3FBCHZBf3NBAXELjAQBAn8jAEHgDWsiAiQAIAJB4ANqIAEQGyACQcACaiABEE8gAiACQcACahAVIAJBwAJqIAIgAkHgA2oQGiACQaABaiACQcACahAVIAJBgAVqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAZqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAdqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJB4AhqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBgApqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAtqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAxqIAJBoAFqEBsgABCrAUH8ASEBA0AgAkHAAmogABBPAkAgASIDQaCLAmosAAAiAUEBTgRAIAJBoAFqIAJBwAJqEBUgAkHAAmogAkGgAWogAkHgA2ogAUH+AXFBAXZBoAFsahAaDAELIAFBf0oNACACQaABaiACQcACahAVIAJBwAJqIAJBoAFqIAJB4ANqQQAgAWtB/gFx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/////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBnxsL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4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ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBnI0CCwEBAEHAjQILAQEAQeCNAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQaCPAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB8JUCC4UBYjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJABBkJcCCyhTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAMS4wLjE4AEG8lwILOVCOUAAAQAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ==\";function nA(A){try{if(A==iA&&w)return new Uint8Array(w);var I=HA(A);if(I)return I;if(t)return t(A);throw\"both async and sync fetching of the wasm failed\"}catch(A){$(A)}}function aA(){if(!w&&(i||n)){if(\"function\"==typeof fetch&&!QA(iA))return fetch(iA,{credentials:\"same-origin\"}).then((function(A){if(!A.ok)throw\"failed to load wasm binary file at '\"+iA+\"'\";return A.arrayBuffer()})).catch((function(){return nA(iA)}));if(e)return new Promise((function(A,I){e(iA,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return nA(iA)}))}function rA(){var A={a:bA};function I(A,I){var g=A.exports;Q.asm=g,M((h=Q.asm.g).buffer),d=Q.asm.h,z()}function g(A){I(A.instance)}function B(I){return aA().then((function(I){return WebAssembly.instantiate(I,A)})).then(I,(function(A){D(\"failed to asynchronously prepare wasm: \"+A),$(A)}))}if(O(),Q.instantiateWasm)try{return Q.instantiateWasm(A,I)}catch(A){return D(\"Module.instantiateWasm callback failed with error: \"+A),!1}return w||\"function\"!=typeof WebAssembly.instantiateStreaming||gA(iA)||QA(iA)||\"function\"!=typeof fetch?B(g):fetch(iA,{credentials:\"same-origin\"}).then((function(I){return WebAssembly.instantiateStreaming(I,A).then(g,(function(A){return D(\"wasm streaming compile failed: \"+A),D(\"falling back to ArrayBuffer instantiation\"),B(g)}))})),{}}gA(iA)||(iA=s(iA));var oA={1024:function(){return Q.getRandomValue()},1062:function(){if(void 0===Q.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),Q.getRandomValue=g}catch(A){try{var B=require(\"crypto\"),C=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};C(),Q.getRandomValue=C}catch(A){throw\"No secure random number generator found\"}}}};function eA(A){for(;A.length>0;){var I=A.shift();if(\"function\"!=typeof I){var g=I.func;\"number\"==typeof g?void 0===I.arg?d.get(g)():d.get(g)(I.arg):g(void 0===I.arg?null:I.arg)}else I(Q)}}function tA(A,I,g,B){$(\"Assertion failed: \"+S(A)+\", at: \"+[I?S(I):\"unknown filename\",g,B?S(B):\"unknown function\"])}function fA(){$()}function cA(A,I,g){var B=lA(I,g);return oA[A].apply(null,B)}function yA(A,I,g){_.copyWithin(A,I,I+g)}function sA(){return _.length}function wA(A){try{return h.grow(A-G.byteLength+65535>>>16),M(h.buffer),1}catch(A){}}function hA(A){A>>>=0;var I=sA(),g=2147483648;if(A>g)return!1;for(var B=1;B<=4;B*=2){var Q=I*(1+.2/B);if(Q=Math.min(Q,A+100663296),wA(Math.min(g,N(Math.max(16777216,A,Q),65536))))return!0}return!1}function DA(A){return Y[vA()>>2]=A,A}function uA(A){switch(A){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return\"object\"==typeof navigator&&navigator.hardwareConcurrency||1}return DA(28),-1}var pA=[];function lA(A,I){var g;for(pA.length=0,I>>=2;g=_[A++];){var B=g<105;B&&1&I&&I++,pA.push(B?m[I++>>1]:Y[I]),++I}return pA}var FA=!1;function GA(A){for(var I=[],g=0;g255&&(FA&&F(!1,\"Character code \"+B+\" (\"+String.fromCharCode(B)+\") at offset \"+g+\" not in 0x00-0xFF.\"),B&=255),I.push(String.fromCharCode(B))}return I.join(\"\")}var kA=\"function\"==typeof atob?atob:function(A){var I,g,B,Q,C,E,i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",n=\"\",a=0;A=A.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{I=i.indexOf(A.charAt(a++))<<2|(Q=i.indexOf(A.charAt(a++)))>>4,g=(15&Q)<<4|(C=i.indexOf(A.charAt(a++)))>>2,B=(3&C)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==C&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a0||(L(),T>0||(Q.setStatus?(Q.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){Q.setStatus(\"\")}),1),I()}),1)):I()))}if(Q._malloc=function(){return(Q._malloc=Q.asm.Bc).apply(null,arguments)},Q._free=function(){return(Q._free=Q.asm.Cc).apply(null,arguments)},Q.setValue=u,Q.getValue=p,Q.UTF8ToString=S,Z=function A(){YA||UA(),YA||(Z=A)},Q.run=UA,Q.preInit)for(\"function\"==typeof Q.preInit&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();UA()})).catch((function(){return B.useBackupModule()})),I}\"function\"==typeof define&&define.amd?define([\"exports\"],I):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this);\n","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\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;\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 keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\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","// Top level file is just a mixin of submodules & constants\n'use strict';\n\nconst { Deflate, deflate, deflateRaw, gzip } = require('./lib/deflate');\n\nconst { Inflate, inflate, inflateRaw, ungzip } = require('./lib/inflate');\n\nconst constants = require('./lib/zlib/constants');\n\nmodule.exports.Deflate = Deflate;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateRaw = deflateRaw;\nmodule.exports.gzip = gzip;\nmodule.exports.Inflate = Inflate;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateRaw = inflateRaw;\nmodule.exports.ungzip = ungzip;\nmodule.exports.constants = constants;\n","'use strict';\n\n\nconst zlib_deflate = require('./zlib/deflate');\nconst utils = require('./utils/common');\nconst strings = require('./utils/strings');\nconst msg = require('./zlib/messages');\nconst ZStream = require('./zlib/zstream');\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED\n} = require('./zlib/constants');\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n let status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = zlib_deflate.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n this.result = utils.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n const deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nmodule.exports.Deflate = Deflate;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateRaw = deflateRaw;\nmodule.exports.gzip = gzip;\nmodule.exports.constants = require('./zlib/constants');\n","'use strict';\n\n\nconst zlib_inflate = require('./zlib/inflate');\nconst utils = require('./utils/common');\nconst strings = require('./utils/strings');\nconst msg = require('./zlib/messages');\nconst ZStream = require('./zlib/zstream');\nconst GZheader = require('./zlib/gzheader');\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = require('./zlib/constants');\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n this.options = utils.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n let status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = zlib_inflate.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = zlib_inflate.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n zlib_inflate.inflateReset(strm);\n status = zlib_inflate.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n const inflator = new Inflate(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || msg[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nmodule.exports.Inflate = Inflate;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateRaw = inflateRaw;\nmodule.exports.ungzip = inflate;\nmodule.exports.constants = require('./zlib/constants');\n","'use strict';\n\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nmodule.exports.assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nmodule.exports.flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n","// String encode/decode helpers\n'use strict';\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nmodule.exports.string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nmodule.exports.buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nmodule.exports.utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nmodule.exports = adler32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n","'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nmodule.exports = crc32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = require('./trees');\nconst adler32 = require('./adler32');\nconst crc32 = require('./crc32');\nconst msg = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_PARTIAL_FLUSH, Z_FULL_FLUSH, Z_FINISH, Z_BLOCK,\n Z_OK, Z_STREAM_END, Z_STREAM_ERROR, Z_DATA_ERROR, Z_BUF_ERROR,\n Z_DEFAULT_COMPRESSION,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY,\n Z_UNKNOWN,\n Z_DEFLATED\n} = require('./constants');\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = msg[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n _tr_init(s);\n return Z_OK;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n};\n\n\nconst deflate = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n};\n\n\nmodule.exports.deflateInit = deflateInit;\nmodule.exports.deflateInit2 = deflateInit2;\nmodule.exports.deflateReset = deflateReset;\nmodule.exports.deflateResetKeep = deflateResetKeep;\nmodule.exports.deflateSetHeader = deflateSetHeader;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateEnd = deflateEnd;\nmodule.exports.deflateSetDictionary = deflateSetDictionary;\nmodule.exports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = require('./adler32');\nconst crc32 = require('./crc32');\nconst inflate_fast = require('./inffast');\nconst inflate_table = require('./inftrees');\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH, Z_BLOCK, Z_TREES,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR, Z_BUF_ERROR,\n Z_DEFLATED\n} = require('./constants');\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n};\n\n\nmodule.exports.inflateReset = inflateReset;\nmodule.exports.inflateReset2 = inflateReset2;\nmodule.exports.inflateResetKeep = inflateResetKeep;\nmodule.exports.inflateInit = inflateInit;\nmodule.exports.inflateInit2 = inflateInit2;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateEnd = inflateEnd;\nmodule.exports.inflateGetHeader = inflateGetHeader;\nmodule.exports.inflateSetDictionary = inflateSetDictionary;\nmodule.exports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nmodule.exports = inflate_table;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES = 30;\n/* number of distance codes */\n\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nmodule.exports._tr_init = _tr_init;\nmodule.exports._tr_stored_block = _tr_stored_block;\nmodule.exports._tr_flush_block = _tr_flush_block;\nmodule.exports._tr_tally = _tr_tally;\nmodule.exports._tr_align = _tr_align;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\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\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\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';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\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// 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'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\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 Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\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 get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\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 get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\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 get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\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 get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(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 } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\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'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\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); // 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\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // 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\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // 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\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // 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\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; // 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\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // 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\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\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 if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\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 get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\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.\n\n\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\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\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\n if (er) {\n errorOrDestroy(stream, 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) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\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 maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\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 if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\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\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\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 } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // 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\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || 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); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\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 // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\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; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // 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\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 = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\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; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\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.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\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.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\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.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\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\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\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 } // 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\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\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 cleanedUp = true; // 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\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\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', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\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 = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\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 if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\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, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\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\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\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.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\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 stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\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\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\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 get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\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 get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\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 get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\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 get() {\n return this._readableState.length;\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.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\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.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\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\n return -1;\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// 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'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\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 Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // 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\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\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}; // 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.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\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\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}; // 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.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\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 Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\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// 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'use strict';\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} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // 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 // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // 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\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // 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\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // 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\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // 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\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // 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\n this.sync = true; // 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\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\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 value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // 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 // 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 // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\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.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\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 if (typeof cb !== 'function') cb = nop;\n if (state.ending) 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 return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !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 ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\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 get() {\n return this._writableState && this._writableState.getBuffer();\n }\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\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 get() {\n return this._writableState.highWaterMark;\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.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\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\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\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 (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else 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 process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, 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 errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\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 if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\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) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\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} // 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.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\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 var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\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 doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // 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\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 ERR_METHOD_NOT_IMPLEMENTED('_write()'));\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); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\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 get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.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\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\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\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\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 get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: 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 key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\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\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\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\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\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) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\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\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\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.finalCalled = false;\n this._writableState.prefinished = 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\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\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');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\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","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0)\n this.set = [first]\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached)\n return cached\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const l = rangeList.length\n const rangeMap = new Map()\n for (const comp of rangeList) {\n if (isNullSet(comp))\n return [comp]\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has(''))\n rangeMap.delete('')\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null)\n return null\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((options, k) => {\n options[k] = true\n return options\n }, {})\nmodule.exports = parseOptions\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin)))\n minver = setMin\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom)\n return true\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom)\n return true\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY)\n return true\n else if (options.includePrerelease)\n sub = [ new Comparator('>=0.0.0-0') ]\n else\n sub = [ new Comparator('>=0.0.0') ]\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease)\n return true\n else\n dom = [ new Comparator('>=0.0.0') ]\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\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}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\n\t\t\t// This just needs to be something that won't trample other user's Symbol.for use\n\t\t\t// It also will guide people to the source of their issues, if this is problematic.\n\t\t\t// META: It's a resource locator!\n\t\t\tresult = _Symbol['for']('https://github.com/benlesh/symbol-observable');\n\t\t\ttry {\n\t\t\t\t_Symbol.observable = result;\n\t\t\t} catch (err) {\n\t\t\t\t// Do nothing. In some environments, users have frozen `Symbol` for security reasons,\n\t\t\t\t// if it is frozen assigning to it will throw. In this case, we don't care, because\n\t\t\t\t// they will need to use the returned value from the ponyfill.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};","module.exports = require('./lib/ponyfill');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeSignDoc = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.rawSecp256k1PubkeyToRawAddress = exports.pubkeyType = exports.pubkeyToRawAddress = exports.pubkeyToAddress = exports.parseCoins = exports.makeStdTx = exports.makeSignDoc = exports.makeCosmoshubPath = exports.isStdTx = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.encodeSecp256k1Signature = exports.encodeSecp256k1Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeSignature = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.coins = exports.coin = void 0;\nvar amino_1 = require(\"@cosmjs/amino\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return amino_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return amino_1.coins; } });\nObject.defineProperty(exports, \"decodeAminoPubkey\", { enumerable: true, get: function () { return amino_1.decodeAminoPubkey; } });\nObject.defineProperty(exports, \"decodeBech32Pubkey\", { enumerable: true, get: function () { return amino_1.decodeBech32Pubkey; } });\nObject.defineProperty(exports, \"decodeSignature\", { enumerable: true, get: function () { return amino_1.decodeSignature; } });\nObject.defineProperty(exports, \"encodeAminoPubkey\", { enumerable: true, get: function () { return amino_1.encodeAminoPubkey; } });\nObject.defineProperty(exports, \"encodeBech32Pubkey\", { enumerable: true, get: function () { return amino_1.encodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Pubkey\", { enumerable: true, get: function () { return amino_1.encodeSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Signature\", { enumerable: true, get: function () { return amino_1.encodeSecp256k1Signature; } });\nObject.defineProperty(exports, \"isSecp256k1Pubkey\", { enumerable: true, get: function () { return amino_1.isSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"isSinglePubkey\", { enumerable: true, get: function () { return amino_1.isSinglePubkey; } });\nObject.defineProperty(exports, \"isStdTx\", { enumerable: true, get: function () { return amino_1.isStdTx; } });\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return amino_1.makeCosmoshubPath; } });\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return amino_1.makeSignDoc; } });\nObject.defineProperty(exports, \"makeStdTx\", { enumerable: true, get: function () { return amino_1.makeStdTx; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return amino_1.parseCoins; } });\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return amino_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return amino_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"pubkeyType\", { enumerable: true, get: function () { return amino_1.pubkeyType; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return amino_1.rawSecp256k1PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"Secp256k1HdWallet\", { enumerable: true, get: function () { return amino_1.Secp256k1HdWallet; } });\nObject.defineProperty(exports, \"Secp256k1Wallet\", { enumerable: true, get: function () { return amino_1.Secp256k1Wallet; } });\nObject.defineProperty(exports, \"serializeSignDoc\", { enumerable: true, get: function () { return amino_1.serializeSignDoc; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBinary = exports.SigningCosmWasmClient = exports.fromBinary = exports.CosmWasmClient = void 0;\nvar cosmwasm_stargate_1 = require(\"@cosmjs/cosmwasm-stargate\");\nObject.defineProperty(exports, \"CosmWasmClient\", { enumerable: true, get: function () { return cosmwasm_stargate_1.CosmWasmClient; } });\nObject.defineProperty(exports, \"fromBinary\", { enumerable: true, get: function () { return cosmwasm_stargate_1.fromBinary; } });\nObject.defineProperty(exports, \"SigningCosmWasmClient\", { enumerable: true, get: function () { return cosmwasm_stargate_1.SigningCosmWasmClient; } });\nObject.defineProperty(exports, \"toBinary\", { enumerable: true, get: function () { return cosmwasm_stargate_1.toBinary; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = exports.pathToString = exports.Bip39 = void 0;\nvar crypto_1 = require(\"@cosmjs/crypto\");\nObject.defineProperty(exports, \"Bip39\", { enumerable: true, get: function () { return crypto_1.Bip39; } });\nObject.defineProperty(exports, \"pathToString\", { enumerable: true, get: function () { return crypto_1.pathToString; } });\nObject.defineProperty(exports, \"Random\", { enumerable: true, get: function () { return crypto_1.Random; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.toRfc3339 = exports.toHex = exports.toBech32 = exports.toBase64 = exports.toAscii = exports.fromUtf8 = exports.fromRfc3339 = exports.fromHex = exports.fromBech32 = exports.fromBase64 = exports.fromAscii = exports.Bech32 = void 0;\nvar encoding_1 = require(\"@cosmjs/encoding\");\nObject.defineProperty(exports, \"Bech32\", { enumerable: true, get: function () { return encoding_1.Bech32; } });\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return encoding_1.fromAscii; } });\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return encoding_1.fromBase64; } });\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return encoding_1.fromBech32; } });\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return encoding_1.fromHex; } });\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return encoding_1.fromRfc3339; } });\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return encoding_1.fromUtf8; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return encoding_1.toAscii; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return encoding_1.toBase64; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return encoding_1.toBech32; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return encoding_1.toHex; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return encoding_1.toRfc3339; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return encoding_1.toUtf8; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FaucetClient = void 0;\nvar faucet_client_1 = require(\"@cosmjs/faucet-client\");\nObject.defineProperty(exports, \"FaucetClient\", { enumerable: true, get: function () { return faucet_client_1.FaucetClient; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupNodeLedger = exports.setupNodeLocal = exports.setupWebLedger = exports.setupWebKeplr = void 0;\n/**\n * Setup helper functions\n *\n * These are multiple helper function to get quickly started.\n * There are currently 4 different functions to choose from:\n * (a) Web / Keplr\n * (b) Web / Ledger\n * (c) Node / Local Mnemonic\n * (d) Node / Ledger\n */\nconst amino_1 = require(\"../amino\");\nconst cosmwasm_stargate_1 = require(\"../cosmwasm-stargate\");\nconst ledger_amino_1 = require(\"../ledger-amino\");\nconst proto_signing_1 = require(\"../proto-signing\");\n/**\n * (a) Web / Keplr\n * Prompts keplr and returns a signing client after the user\n * gave permissions.\n *\n * @param config\n * @returns SigningCosmWasmClient\n */\nasync function setupWebKeplr(config) {\n // check browser compatibility\n if (!window.keplr) {\n throw new Error(\"Keplr is not supported or installed on this browser!\");\n }\n // try to enable keplr with given chainId\n await window.keplr.enable(config.chainId).catch(() => {\n throw new Error(\"Keplr can't connect to this chainId!\");\n });\n const { prefix, gasPrice } = config;\n // Setup signer\n const offlineSigner = await window.getOfflineSignerAuto(config.chainId);\n // Init SigningCosmWasmClient client\n const signingClient = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(config.rpcEndpoint, offlineSigner, {\n prefix,\n gasPrice,\n });\n return signingClient;\n}\nexports.setupWebKeplr = setupWebKeplr;\n/**\n * (b) Web / Ledger\n * Returns a signing client after the user gave permissions.\n *\n * @param config\n * @returns SigningCosmWasmClient\n */\nasync function setupWebLedger(config, transport) {\n const { prefix, gasPrice } = config;\n const interactiveTimeout = 120000;\n // Prepare ledger\n const ledgerTransport = await transport.create(interactiveTimeout, interactiveTimeout);\n // Setup signer\n const offlineSigner = new ledger_amino_1.LedgerSigner(ledgerTransport, {\n hdPaths: [(0, amino_1.makeCosmoshubPath)(0)],\n prefix: prefix,\n });\n // Init SigningCosmWasmClient client\n const client = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(config.rpcEndpoint, offlineSigner, {\n prefix,\n gasPrice,\n });\n const chainId = await client.getChainId();\n if (chainId !== config.chainId) {\n throw Error(\"Given ChainId doesn't match the clients ChainID!\");\n }\n return client;\n}\nexports.setupWebLedger = setupWebLedger;\n/**\n * (c) Node / Local Mnemonic\n * Using a local mnemonic and returns a signing clien\n *\n * @param config\n * @param mnemonic\n * @returns SigningCosmWasmClient\n */\nasync function setupNodeLocal(config, mnemonic) {\n const { prefix, gasPrice } = config;\n // Setup signer\n const offlineSigner = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix });\n // Init SigningCosmWasmClient client\n const client = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(config.rpcEndpoint, offlineSigner, {\n prefix,\n gasPrice,\n });\n const chainId = await client.getChainId();\n if (chainId !== config.chainId) {\n throw Error(\"Given ChainId doesn't match the clients ChainID!\");\n }\n return client;\n}\nexports.setupNodeLocal = setupNodeLocal;\n/**\n * (d) Node / Ledger\n * Returns a signing client after the user gave permissions.\n *\n * @param config\n * @returns SigningCosmWasmClient\n */\nasync function setupNodeLedger(config, transport) {\n const { prefix, gasPrice } = config;\n const interactiveTimeout = 120000;\n // Prepare ledger\n const ledgerTransport = await transport.create(interactiveTimeout, interactiveTimeout);\n // Setup signer\n const offlineSigner = new ledger_amino_1.LedgerSigner(ledgerTransport, {\n hdPaths: [(0, amino_1.makeCosmoshubPath)(0)],\n prefix: prefix,\n });\n const client = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(config.rpcEndpoint, offlineSigner, {\n prefix: prefix,\n gasPrice: gasPrice,\n });\n const chainId = await client.getChainId();\n if (chainId !== config.chainId) {\n throw Error(\"Given ChainId doesn't match the clients ChainID!\");\n }\n return client;\n}\nexports.setupNodeLedger = setupNodeLedger;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupWebLedger = exports.setupWebKeplr = exports.setupNodeLocal = exports.setupNodeLedger = void 0;\n/**\n * Exporting all the defined CosmJS symbols\n */\n__exportStar(require(\"./amino\"), exports);\n__exportStar(require(\"./cosmwasm-stargate\"), exports);\n__exportStar(require(\"./crypto\"), exports);\n__exportStar(require(\"./encoding\"), exports);\n__exportStar(require(\"./faucet-client\"), exports);\n__exportStar(require(\"./ledger-amino\"), exports);\n__exportStar(require(\"./math\"), exports);\n__exportStar(require(\"./proto-signing\"), exports);\n__exportStar(require(\"./stargate\"), exports);\n__exportStar(require(\"./utils\"), exports);\n/**\n * Exporting CosmWasmJS Helpers\n */\nvar setup_1 = require(\"./helpers/setup\");\nObject.defineProperty(exports, \"setupNodeLedger\", { enumerable: true, get: function () { return setup_1.setupNodeLedger; } });\nObject.defineProperty(exports, \"setupNodeLocal\", { enumerable: true, get: function () { return setup_1.setupNodeLocal; } });\nObject.defineProperty(exports, \"setupWebKeplr\", { enumerable: true, get: function () { return setup_1.setupWebKeplr; } });\nObject.defineProperty(exports, \"setupWebLedger\", { enumerable: true, get: function () { return setup_1.setupWebLedger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LedgerSigner = void 0;\nvar ledger_amino_1 = require(\"@cosmjs/ledger-amino\");\nObject.defineProperty(exports, \"LedgerSigner\", { enumerable: true, get: function () { return ledger_amino_1.LedgerSigner; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\nvar math_1 = require(\"@cosmjs/math\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return math_1.Decimal; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Registry = exports.DirectSecp256k1HdWallet = void 0;\nvar proto_signing_1 = require(\"@cosmjs/proto-signing\");\nObject.defineProperty(exports, \"DirectSecp256k1HdWallet\", { enumerable: true, get: function () { return proto_signing_1.DirectSecp256k1HdWallet; } });\nObject.defineProperty(exports, \"Registry\", { enumerable: true, get: function () { return proto_signing_1.Registry; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupTxExtension = exports.setupStakingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthExtension = exports.createPagination = exports.calculateFee = exports.QueryClient = exports.GasPrice = void 0;\nvar stargate_1 = require(\"@cosmjs/stargate\");\nObject.defineProperty(exports, \"GasPrice\", { enumerable: true, get: function () { return stargate_1.GasPrice; } });\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return stargate_1.QueryClient; } });\n// Queries\nvar stargate_2 = require(\"@cosmjs/stargate\");\nObject.defineProperty(exports, \"calculateFee\", { enumerable: true, get: function () { return stargate_2.calculateFee; } });\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return stargate_2.createPagination; } });\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return stargate_2.setupAuthExtension; } });\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return stargate_2.setupBankExtension; } });\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return stargate_2.setupDistributionExtension; } });\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return stargate_2.setupGovExtension; } });\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return stargate_2.setupIbcExtension; } });\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return stargate_2.setupMintExtension; } });\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return stargate_2.setupStakingExtension; } });\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return stargate_2.setupTxExtension; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = void 0;\nvar utils_1 = require(\"@cosmjs/utils\");\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return utils_1.isNonNullObject; } });\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 extendStatics(d, b);\n };\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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NO_IL = exports.NO = exports.MemoryStream = exports.Stream = void 0;\nvar ponyfill_1 = require(\"symbol-observable/ponyfill\");\nvar globalthis_1 = require(\"globalthis\");\nvar $$observable = ponyfill_1.default(globalthis_1.getPolyfill());\nvar NO = {};\nexports.NO = NO;\nfunction noop() { }\nfunction cp(a) {\n var l = a.length;\n var b = Array(l);\n for (var i = 0; i < l; ++i)\n b[i] = a[i];\n return b;\n}\nfunction and(f1, f2) {\n return function andFn(t) {\n return f1(t) && f2(t);\n };\n}\nfunction _try(c, t, u) {\n try {\n return c.f(t);\n }\n catch (e) {\n u._e(e);\n return NO;\n }\n}\nvar NO_IL = {\n _n: noop,\n _e: noop,\n _c: noop,\n};\nexports.NO_IL = NO_IL;\n// mutates the input\nfunction internalizeProducer(producer) {\n producer._start = function _start(il) {\n il.next = il._n;\n il.error = il._e;\n il.complete = il._c;\n this.start(il);\n };\n producer._stop = producer.stop;\n}\nvar StreamSub = /** @class */ (function () {\n function StreamSub(_stream, _listener) {\n this._stream = _stream;\n this._listener = _listener;\n }\n StreamSub.prototype.unsubscribe = function () {\n this._stream._remove(this._listener);\n };\n return StreamSub;\n}());\nvar Observer = /** @class */ (function () {\n function Observer(_listener) {\n this._listener = _listener;\n }\n Observer.prototype.next = function (value) {\n this._listener._n(value);\n };\n Observer.prototype.error = function (err) {\n this._listener._e(err);\n };\n Observer.prototype.complete = function () {\n this._listener._c();\n };\n return Observer;\n}());\nvar FromObservable = /** @class */ (function () {\n function FromObservable(observable) {\n this.type = 'fromObservable';\n this.ins = observable;\n this.active = false;\n }\n FromObservable.prototype._start = function (out) {\n this.out = out;\n this.active = true;\n this._sub = this.ins.subscribe(new Observer(out));\n if (!this.active)\n this._sub.unsubscribe();\n };\n FromObservable.prototype._stop = function () {\n if (this._sub)\n this._sub.unsubscribe();\n this.active = false;\n };\n return FromObservable;\n}());\nvar Merge = /** @class */ (function () {\n function Merge(insArr) {\n this.type = 'merge';\n this.insArr = insArr;\n this.out = NO;\n this.ac = 0;\n }\n Merge.prototype._start = function (out) {\n this.out = out;\n var s = this.insArr;\n var L = s.length;\n this.ac = L;\n for (var i = 0; i < L; i++)\n s[i]._add(this);\n };\n Merge.prototype._stop = function () {\n var s = this.insArr;\n var L = s.length;\n for (var i = 0; i < L; i++)\n s[i]._remove(this);\n this.out = NO;\n };\n Merge.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n Merge.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Merge.prototype._c = function () {\n if (--this.ac <= 0) {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n }\n };\n return Merge;\n}());\nvar CombineListener = /** @class */ (function () {\n function CombineListener(i, out, p) {\n this.i = i;\n this.out = out;\n this.p = p;\n p.ils.push(this);\n }\n CombineListener.prototype._n = function (t) {\n var p = this.p, out = this.out;\n if (out === NO)\n return;\n if (p.up(t, this.i)) {\n var b = cp(p.vals);\n out._n(b);\n }\n };\n CombineListener.prototype._e = function (err) {\n var out = this.out;\n if (out === NO)\n return;\n out._e(err);\n };\n CombineListener.prototype._c = function () {\n var p = this.p;\n if (p.out === NO)\n return;\n if (--p.Nc === 0)\n p.out._c();\n };\n return CombineListener;\n}());\nvar Combine = /** @class */ (function () {\n function Combine(insArr) {\n this.type = 'combine';\n this.insArr = insArr;\n this.out = NO;\n this.ils = [];\n this.Nc = this.Nn = 0;\n this.vals = [];\n }\n Combine.prototype.up = function (t, i) {\n var v = this.vals[i];\n var Nn = !this.Nn ? 0 : v === NO ? --this.Nn : this.Nn;\n this.vals[i] = t;\n return Nn === 0;\n };\n Combine.prototype._start = function (out) {\n this.out = out;\n var s = this.insArr;\n var n = this.Nc = this.Nn = s.length;\n var vals = this.vals = new Array(n);\n if (n === 0) {\n out._n([]);\n out._c();\n }\n else {\n for (var i = 0; i < n; i++) {\n vals[i] = NO;\n s[i]._add(new CombineListener(i, out, this));\n }\n }\n };\n Combine.prototype._stop = function () {\n var s = this.insArr;\n var n = s.length;\n var ils = this.ils;\n for (var i = 0; i < n; i++)\n s[i]._remove(ils[i]);\n this.out = NO;\n this.ils = [];\n this.vals = [];\n };\n return Combine;\n}());\nvar FromArray = /** @class */ (function () {\n function FromArray(a) {\n this.type = 'fromArray';\n this.a = a;\n }\n FromArray.prototype._start = function (out) {\n var a = this.a;\n for (var i = 0, n = a.length; i < n; i++)\n out._n(a[i]);\n out._c();\n };\n FromArray.prototype._stop = function () {\n };\n return FromArray;\n}());\nvar FromPromise = /** @class */ (function () {\n function FromPromise(p) {\n this.type = 'fromPromise';\n this.on = false;\n this.p = p;\n }\n FromPromise.prototype._start = function (out) {\n var prod = this;\n this.on = true;\n this.p.then(function (v) {\n if (prod.on) {\n out._n(v);\n out._c();\n }\n }, function (e) {\n out._e(e);\n }).then(noop, function (err) {\n setTimeout(function () { throw err; });\n });\n };\n FromPromise.prototype._stop = function () {\n this.on = false;\n };\n return FromPromise;\n}());\nvar Periodic = /** @class */ (function () {\n function Periodic(period) {\n this.type = 'periodic';\n this.period = period;\n this.intervalID = -1;\n this.i = 0;\n }\n Periodic.prototype._start = function (out) {\n var self = this;\n function intervalHandler() { out._n(self.i++); }\n this.intervalID = setInterval(intervalHandler, this.period);\n };\n Periodic.prototype._stop = function () {\n if (this.intervalID !== -1)\n clearInterval(this.intervalID);\n this.intervalID = -1;\n this.i = 0;\n };\n return Periodic;\n}());\nvar Debug = /** @class */ (function () {\n function Debug(ins, arg) {\n this.type = 'debug';\n this.ins = ins;\n this.out = NO;\n this.s = noop;\n this.l = '';\n if (typeof arg === 'string')\n this.l = arg;\n else if (typeof arg === 'function')\n this.s = arg;\n }\n Debug.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n Debug.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Debug.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var s = this.s, l = this.l;\n if (s !== noop) {\n try {\n s(t);\n }\n catch (e) {\n u._e(e);\n }\n }\n else if (l)\n console.log(l + ':', t);\n else\n console.log(t);\n u._n(t);\n };\n Debug.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Debug.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Debug;\n}());\nvar Drop = /** @class */ (function () {\n function Drop(max, ins) {\n this.type = 'drop';\n this.ins = ins;\n this.out = NO;\n this.max = max;\n this.dropped = 0;\n }\n Drop.prototype._start = function (out) {\n this.out = out;\n this.dropped = 0;\n this.ins._add(this);\n };\n Drop.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Drop.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n if (this.dropped++ >= this.max)\n u._n(t);\n };\n Drop.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Drop.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Drop;\n}());\nvar EndWhenListener = /** @class */ (function () {\n function EndWhenListener(out, op) {\n this.out = out;\n this.op = op;\n }\n EndWhenListener.prototype._n = function () {\n this.op.end();\n };\n EndWhenListener.prototype._e = function (err) {\n this.out._e(err);\n };\n EndWhenListener.prototype._c = function () {\n this.op.end();\n };\n return EndWhenListener;\n}());\nvar EndWhen = /** @class */ (function () {\n function EndWhen(o, ins) {\n this.type = 'endWhen';\n this.ins = ins;\n this.out = NO;\n this.o = o;\n this.oil = NO_IL;\n }\n EndWhen.prototype._start = function (out) {\n this.out = out;\n this.o._add(this.oil = new EndWhenListener(out, this));\n this.ins._add(this);\n };\n EndWhen.prototype._stop = function () {\n this.ins._remove(this);\n this.o._remove(this.oil);\n this.out = NO;\n this.oil = NO_IL;\n };\n EndWhen.prototype.end = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n EndWhen.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n EndWhen.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n EndWhen.prototype._c = function () {\n this.end();\n };\n return EndWhen;\n}());\nvar Filter = /** @class */ (function () {\n function Filter(passes, ins) {\n this.type = 'filter';\n this.ins = ins;\n this.out = NO;\n this.f = passes;\n }\n Filter.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n Filter.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Filter.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO || !r)\n return;\n u._n(t);\n };\n Filter.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Filter.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Filter;\n}());\nvar FlattenListener = /** @class */ (function () {\n function FlattenListener(out, op) {\n this.out = out;\n this.op = op;\n }\n FlattenListener.prototype._n = function (t) {\n this.out._n(t);\n };\n FlattenListener.prototype._e = function (err) {\n this.out._e(err);\n };\n FlattenListener.prototype._c = function () {\n this.op.inner = NO;\n this.op.less();\n };\n return FlattenListener;\n}());\nvar Flatten = /** @class */ (function () {\n function Flatten(ins) {\n this.type = 'flatten';\n this.ins = ins;\n this.out = NO;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n }\n Flatten.prototype._start = function (out) {\n this.out = out;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n this.ins._add(this);\n };\n Flatten.prototype._stop = function () {\n this.ins._remove(this);\n if (this.inner !== NO)\n this.inner._remove(this.il);\n this.out = NO;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n };\n Flatten.prototype.less = function () {\n var u = this.out;\n if (u === NO)\n return;\n if (!this.open && this.inner === NO)\n u._c();\n };\n Flatten.prototype._n = function (s) {\n var u = this.out;\n if (u === NO)\n return;\n var _a = this, inner = _a.inner, il = _a.il;\n if (inner !== NO && il !== NO_IL)\n inner._remove(il);\n (this.inner = s)._add(this.il = new FlattenListener(u, this));\n };\n Flatten.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Flatten.prototype._c = function () {\n this.open = false;\n this.less();\n };\n return Flatten;\n}());\nvar Fold = /** @class */ (function () {\n function Fold(f, seed, ins) {\n var _this = this;\n this.type = 'fold';\n this.ins = ins;\n this.out = NO;\n this.f = function (t) { return f(_this.acc, t); };\n this.acc = this.seed = seed;\n }\n Fold.prototype._start = function (out) {\n this.out = out;\n this.acc = this.seed;\n out._n(this.acc);\n this.ins._add(this);\n };\n Fold.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n this.acc = this.seed;\n };\n Fold.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO)\n return;\n u._n(this.acc = r);\n };\n Fold.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Fold.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Fold;\n}());\nvar Last = /** @class */ (function () {\n function Last(ins) {\n this.type = 'last';\n this.ins = ins;\n this.out = NO;\n this.has = false;\n this.val = NO;\n }\n Last.prototype._start = function (out) {\n this.out = out;\n this.has = false;\n this.ins._add(this);\n };\n Last.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n this.val = NO;\n };\n Last.prototype._n = function (t) {\n this.has = true;\n this.val = t;\n };\n Last.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Last.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n if (this.has) {\n u._n(this.val);\n u._c();\n }\n else\n u._e(new Error('last() failed because input stream completed'));\n };\n return Last;\n}());\nvar MapOp = /** @class */ (function () {\n function MapOp(project, ins) {\n this.type = 'map';\n this.ins = ins;\n this.out = NO;\n this.f = project;\n }\n MapOp.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n MapOp.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n MapOp.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO)\n return;\n u._n(r);\n };\n MapOp.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n MapOp.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return MapOp;\n}());\nvar Remember = /** @class */ (function () {\n function Remember(ins) {\n this.type = 'remember';\n this.ins = ins;\n this.out = NO;\n }\n Remember.prototype._start = function (out) {\n this.out = out;\n this.ins._add(out);\n };\n Remember.prototype._stop = function () {\n this.ins._remove(this.out);\n this.out = NO;\n };\n return Remember;\n}());\nvar ReplaceError = /** @class */ (function () {\n function ReplaceError(replacer, ins) {\n this.type = 'replaceError';\n this.ins = ins;\n this.out = NO;\n this.f = replacer;\n }\n ReplaceError.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n ReplaceError.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n ReplaceError.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n ReplaceError.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n try {\n this.ins._remove(this);\n (this.ins = this.f(err))._add(this);\n }\n catch (e) {\n u._e(e);\n }\n };\n ReplaceError.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return ReplaceError;\n}());\nvar StartWith = /** @class */ (function () {\n function StartWith(ins, val) {\n this.type = 'startWith';\n this.ins = ins;\n this.out = NO;\n this.val = val;\n }\n StartWith.prototype._start = function (out) {\n this.out = out;\n this.out._n(this.val);\n this.ins._add(out);\n };\n StartWith.prototype._stop = function () {\n this.ins._remove(this.out);\n this.out = NO;\n };\n return StartWith;\n}());\nvar Take = /** @class */ (function () {\n function Take(max, ins) {\n this.type = 'take';\n this.ins = ins;\n this.out = NO;\n this.max = max;\n this.taken = 0;\n }\n Take.prototype._start = function (out) {\n this.out = out;\n this.taken = 0;\n if (this.max <= 0)\n out._c();\n else\n this.ins._add(this);\n };\n Take.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Take.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var m = ++this.taken;\n if (m < this.max)\n u._n(t);\n else if (m === this.max) {\n u._n(t);\n u._c();\n }\n };\n Take.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Take.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Take;\n}());\nvar Stream = /** @class */ (function () {\n function Stream(producer) {\n this._prod = producer || NO;\n this._ils = [];\n this._stopID = NO;\n this._dl = NO;\n this._d = false;\n this._target = null;\n this._err = NO;\n }\n Stream.prototype._n = function (t) {\n var a = this._ils;\n var L = a.length;\n if (this._d)\n this._dl._n(t);\n if (L == 1)\n a[0]._n(t);\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._n(t);\n }\n };\n Stream.prototype._e = function (err) {\n if (this._err !== NO)\n return;\n this._err = err;\n var a = this._ils;\n var L = a.length;\n this._x();\n if (this._d)\n this._dl._e(err);\n if (L == 1)\n a[0]._e(err);\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._e(err);\n }\n if (!this._d && L == 0)\n throw this._err;\n };\n Stream.prototype._c = function () {\n var a = this._ils;\n var L = a.length;\n this._x();\n if (this._d)\n this._dl._c();\n if (L == 1)\n a[0]._c();\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._c();\n }\n };\n Stream.prototype._x = function () {\n if (this._ils.length === 0)\n return;\n if (this._prod !== NO)\n this._prod._stop();\n this._err = NO;\n this._ils = [];\n };\n Stream.prototype._stopNow = function () {\n // WARNING: code that calls this method should\n // first check if this._prod is valid (not `NO`)\n this._prod._stop();\n this._err = NO;\n this._stopID = NO;\n };\n Stream.prototype._add = function (il) {\n var ta = this._target;\n if (ta)\n return ta._add(il);\n var a = this._ils;\n a.push(il);\n if (a.length > 1)\n return;\n if (this._stopID !== NO) {\n clearTimeout(this._stopID);\n this._stopID = NO;\n }\n else {\n var p = this._prod;\n if (p !== NO)\n p._start(this);\n }\n };\n Stream.prototype._remove = function (il) {\n var _this = this;\n var ta = this._target;\n if (ta)\n return ta._remove(il);\n var a = this._ils;\n var i = a.indexOf(il);\n if (i > -1) {\n a.splice(i, 1);\n if (this._prod !== NO && a.length <= 0) {\n this._err = NO;\n this._stopID = setTimeout(function () { return _this._stopNow(); });\n }\n else if (a.length === 1) {\n this._pruneCycles();\n }\n }\n };\n // If all paths stemming from `this` stream eventually end at `this`\n // stream, then we remove the single listener of `this` stream, to\n // force it to end its execution and dispose resources. This method\n // assumes as a precondition that this._ils has just one listener.\n Stream.prototype._pruneCycles = function () {\n if (this._hasNoSinks(this, []))\n this._remove(this._ils[0]);\n };\n // Checks whether *there is no* path starting from `x` that leads to an end\n // listener (sink) in the stream graph, following edges A->B where B is a\n // listener of A. This means these paths constitute a cycle somehow. Is given\n // a trace of all visited nodes so far.\n Stream.prototype._hasNoSinks = function (x, trace) {\n if (trace.indexOf(x) !== -1)\n return true;\n else if (x.out === this)\n return true;\n else if (x.out && x.out !== NO)\n return this._hasNoSinks(x.out, trace.concat(x));\n else if (x._ils) {\n for (var i = 0, N = x._ils.length; i < N; i++)\n if (!this._hasNoSinks(x._ils[i], trace.concat(x)))\n return false;\n return true;\n }\n else\n return false;\n };\n Stream.prototype.ctor = function () {\n return this instanceof MemoryStream ? MemoryStream : Stream;\n };\n /**\n * Adds a Listener to the Stream.\n *\n * @param {Listener} listener\n */\n Stream.prototype.addListener = function (listener) {\n listener._n = listener.next || noop;\n listener._e = listener.error || noop;\n listener._c = listener.complete || noop;\n this._add(listener);\n };\n /**\n * Removes a Listener from the Stream, assuming the Listener was added to it.\n *\n * @param {Listener} listener\n */\n Stream.prototype.removeListener = function (listener) {\n this._remove(listener);\n };\n /**\n * Adds a Listener to the Stream returning a Subscription to remove that\n * listener.\n *\n * @param {Listener} listener\n * @returns {Subscription}\n */\n Stream.prototype.subscribe = function (listener) {\n this.addListener(listener);\n return new StreamSub(this, listener);\n };\n /**\n * Add interop between most.js and RxJS 5\n *\n * @returns {Stream}\n */\n Stream.prototype[$$observable] = function () {\n return this;\n };\n /**\n * Creates a new Stream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {Stream}\n */\n Stream.create = function (producer) {\n if (producer) {\n if (typeof producer.start !== 'function'\n || typeof producer.stop !== 'function')\n throw new Error('producer requires both start and stop functions');\n internalizeProducer(producer); // mutates the input\n }\n return new Stream(producer);\n };\n /**\n * Creates a new MemoryStream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {MemoryStream}\n */\n Stream.createWithMemory = function (producer) {\n if (producer)\n internalizeProducer(producer); // mutates the input\n return new MemoryStream(producer);\n };\n /**\n * Creates a Stream that does nothing when started. It never emits any event.\n *\n * Marble diagram:\n *\n * ```text\n * never\n * -----------------------\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n Stream.never = function () {\n return new Stream({ _start: noop, _stop: noop });\n };\n /**\n * Creates a Stream that immediately emits the \"complete\" notification when\n * started, and that's it.\n *\n * Marble diagram:\n *\n * ```text\n * empty\n * -|\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n Stream.empty = function () {\n return new Stream({\n _start: function (il) { il._c(); },\n _stop: noop,\n });\n };\n /**\n * Creates a Stream that immediately emits an \"error\" notification with the\n * value you passed as the `error` argument when the stream starts, and that's\n * it.\n *\n * Marble diagram:\n *\n * ```text\n * throw(X)\n * -X\n * ```\n *\n * @factory true\n * @param error The error event to emit on the created stream.\n * @return {Stream}\n */\n Stream.throw = function (error) {\n return new Stream({\n _start: function (il) { il._e(error); },\n _stop: noop,\n });\n };\n /**\n * Creates a stream from an Array, Promise, or an Observable.\n *\n * @factory true\n * @param {Array|PromiseLike|Observable} input The input to make a stream from.\n * @return {Stream}\n */\n Stream.from = function (input) {\n if (typeof input[$$observable] === 'function')\n return Stream.fromObservable(input);\n else if (typeof input.then === 'function')\n return Stream.fromPromise(input);\n else if (Array.isArray(input))\n return Stream.fromArray(input);\n throw new TypeError(\"Type of input to from() must be an Array, Promise, or Observable\");\n };\n /**\n * Creates a Stream that immediately emits the arguments that you give to\n * *of*, then completes.\n *\n * Marble diagram:\n *\n * ```text\n * of(1,2,3)\n * 123|\n * ```\n *\n * @factory true\n * @param a The first value you want to emit as an event on the stream.\n * @param b The second value you want to emit as an event on the stream. One\n * or more of these values may be given as arguments.\n * @return {Stream}\n */\n Stream.of = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n return Stream.fromArray(items);\n };\n /**\n * Converts an array to a stream. The returned stream will emit synchronously\n * all the items in the array, and then complete.\n *\n * Marble diagram:\n *\n * ```text\n * fromArray([1,2,3])\n * 123|\n * ```\n *\n * @factory true\n * @param {Array} array The array to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromArray = function (array) {\n return new Stream(new FromArray(array));\n };\n /**\n * Converts a promise to a stream. The returned stream will emit the resolved\n * value of the promise, and then complete. However, if the promise is\n * rejected, the stream will emit the corresponding error.\n *\n * Marble diagram:\n *\n * ```text\n * fromPromise( ----42 )\n * -----------------42|\n * ```\n *\n * @factory true\n * @param {PromiseLike} promise The promise to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromPromise = function (promise) {\n return new Stream(new FromPromise(promise));\n };\n /**\n * Converts an Observable into a Stream.\n *\n * @factory true\n * @param {any} observable The observable to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromObservable = function (obs) {\n if (obs.endWhen !== undefined)\n return obs;\n var o = typeof obs[$$observable] === 'function' ? obs[$$observable]() : obs;\n return new Stream(new FromObservable(o));\n };\n /**\n * Creates a stream that periodically emits incremental numbers, every\n * `period` milliseconds.\n *\n * Marble diagram:\n *\n * ```text\n * periodic(1000)\n * ---0---1---2---3---4---...\n * ```\n *\n * @factory true\n * @param {number} period The interval in milliseconds to use as a rate of\n * emission.\n * @return {Stream}\n */\n Stream.periodic = function (period) {\n return new Stream(new Periodic(period));\n };\n Stream.prototype._map = function (project) {\n return new (this.ctor())(new MapOp(project, this));\n };\n /**\n * Transforms each event from the input Stream through a `project` function,\n * to get a Stream that emits those transformed events.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7------\n * map(i => i * 10)\n * --10--30-50----70-----\n * ```\n *\n * @param {Function} project A function of type `(t: T) => U` that takes event\n * `t` of type `T` from the input Stream and produces an event of type `U`, to\n * be emitted on the output Stream.\n * @return {Stream}\n */\n Stream.prototype.map = function (project) {\n return this._map(project);\n };\n /**\n * It's like `map`, but transforms each input event to always the same\n * constant value on the output Stream.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7-----\n * mapTo(10)\n * --10--10-10----10----\n * ```\n *\n * @param projectedValue A value to emit on the output Stream whenever the\n * input Stream emits any value.\n * @return {Stream}\n */\n Stream.prototype.mapTo = function (projectedValue) {\n var s = this.map(function () { return projectedValue; });\n var op = s._prod;\n op.type = 'mapTo';\n return s;\n };\n /**\n * Only allows events that pass the test given by the `passes` argument.\n *\n * Each event from the input stream is given to the `passes` function. If the\n * function returns `true`, the event is forwarded to the output stream,\n * otherwise it is ignored and not forwarded.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2--3-----4-----5---6--7-8--\n * filter(i => i % 2 === 0)\n * ------2--------4---------6----8--\n * ```\n *\n * @param {Function} passes A function of type `(t: T) => boolean` that takes\n * an event from the input stream and checks if it passes, by returning a\n * boolean.\n * @return {Stream}\n */\n Stream.prototype.filter = function (passes) {\n var p = this._prod;\n if (p instanceof Filter)\n return new Stream(new Filter(and(p.f, passes), p.ins));\n return new Stream(new Filter(passes, this));\n };\n /**\n * Lets the first `amount` many events from the input stream pass to the\n * output stream, then makes the output stream complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * take(3)\n * --a---b--c|\n * ```\n *\n * @param {number} amount How many events to allow from the input stream\n * before completing the output stream.\n * @return {Stream}\n */\n Stream.prototype.take = function (amount) {\n return new (this.ctor())(new Take(amount, this));\n };\n /**\n * Ignores the first `amount` many events from the input stream, and then\n * after that starts forwarding events from the input stream to the output\n * stream.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * drop(3)\n * --------------d---e--\n * ```\n *\n * @param {number} amount How many events to ignore from the input stream\n * before forwarding all events from the input stream to the output stream.\n * @return {Stream}\n */\n Stream.prototype.drop = function (amount) {\n return new Stream(new Drop(amount, this));\n };\n /**\n * When the input stream completes, the output stream will emit the last event\n * emitted by the input stream, and then will also complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c--d----|\n * last()\n * -----------------d|\n * ```\n *\n * @return {Stream}\n */\n Stream.prototype.last = function () {\n return new Stream(new Last(this));\n };\n /**\n * Prepends the given `initial` value to the sequence of events emitted by the\n * input stream. The returned stream is a MemoryStream, which means it is\n * already `remember()`'d.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3---\n * startWith(0)\n * 0--1---2-----3---\n * ```\n *\n * @param initial The value or event to prepend.\n * @return {MemoryStream}\n */\n Stream.prototype.startWith = function (initial) {\n return new MemoryStream(new StartWith(this, initial));\n };\n /**\n * Uses another stream to determine when to complete the current stream.\n *\n * When the given `other` stream emits an event or completes, the output\n * stream will complete. Before that happens, the output stream will behaves\n * like the input stream.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3--4----5----6---\n * endWhen( --------a--b--| )\n * ---1---2-----3--4--|\n * ```\n *\n * @param other Some other stream that is used to know when should the output\n * stream of this operator complete.\n * @return {Stream}\n */\n Stream.prototype.endWhen = function (other) {\n return new (this.ctor())(new EndWhen(other, this));\n };\n /**\n * \"Folds\" the stream onto itself.\n *\n * Combines events from the past throughout\n * the entire execution of the input stream, allowing you to accumulate them\n * together. It's essentially like `Array.prototype.reduce`. The returned\n * stream is a MemoryStream, which means it is already `remember()`'d.\n *\n * The output stream starts by emitting the `seed` which you give as argument.\n * Then, when an event happens on the input stream, it is combined with that\n * seed value through the `accumulate` function, and the output value is\n * emitted on the output stream. `fold` remembers that output value as `acc`\n * (\"accumulator\"), and then when a new input event `t` happens, `acc` will be\n * combined with that to produce the new `acc` and so forth.\n *\n * Marble diagram:\n *\n * ```text\n * ------1-----1--2----1----1------\n * fold((acc, x) => acc + x, 3)\n * 3-----4-----5--7----8----9------\n * ```\n *\n * @param {Function} accumulate A function of type `(acc: R, t: T) => R` that\n * takes the previous accumulated value `acc` and the incoming event from the\n * input stream and produces the new accumulated value.\n * @param seed The initial accumulated value, of type `R`.\n * @return {MemoryStream}\n */\n Stream.prototype.fold = function (accumulate, seed) {\n return new MemoryStream(new Fold(accumulate, seed, this));\n };\n /**\n * Replaces an error with another stream.\n *\n * When (and if) an error happens on the input stream, instead of forwarding\n * that error to the output stream, *replaceError* will call the `replace`\n * function which returns the stream that the output stream will replicate.\n * And, in case that new stream also emits an error, `replace` will be called\n * again to get another stream to start replicating.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2-----3--4-----X\n * replaceError( () => --10--| )\n * --1---2-----3--4--------10--|\n * ```\n *\n * @param {Function} replace A function of type `(err) => Stream` that takes\n * the error that occurred on the input stream or on the previous replacement\n * stream and returns a new stream. The output stream will behave like the\n * stream that this function returns.\n * @return {Stream}\n */\n Stream.prototype.replaceError = function (replace) {\n return new (this.ctor())(new ReplaceError(replace, this));\n };\n /**\n * Flattens a \"stream of streams\", handling only one nested stream at a time\n * (no concurrency).\n *\n * If the input stream is a stream that emits streams, then this operator will\n * return an output stream which is a flat stream: emits regular events. The\n * flattening happens without concurrency. It works like this: when the input\n * stream emits a nested stream, *flatten* will start imitating that nested\n * one. However, as soon as the next nested stream is emitted on the input\n * stream, *flatten* will forget the previous nested one it was imitating, and\n * will start imitating the new nested one.\n *\n * Marble diagram:\n *\n * ```text\n * --+--------+---------------\n * \\ \\\n * \\ ----1----2---3--\n * --a--b----c----d--------\n * flatten\n * -----a--b------1----2---3--\n * ```\n *\n * @return {Stream}\n */\n Stream.prototype.flatten = function () {\n return new Stream(new Flatten(this));\n };\n /**\n * Passes the input stream to a custom operator, to produce an output stream.\n *\n * *compose* is a handy way of using an existing function in a chained style.\n * Instead of writing `outStream = f(inStream)` you can write\n * `outStream = inStream.compose(f)`.\n *\n * @param {function} operator A function that takes a stream as input and\n * returns a stream as well.\n * @return {Stream}\n */\n Stream.prototype.compose = function (operator) {\n return operator(this);\n };\n /**\n * Returns an output stream that behaves like the input stream, but also\n * remembers the most recent event that happens on the input stream, so that a\n * newly added listener will immediately receive that memorised event.\n *\n * @return {MemoryStream}\n */\n Stream.prototype.remember = function () {\n return new MemoryStream(new Remember(this));\n };\n /**\n * Returns an output stream that identically behaves like the input stream,\n * but also runs a `spy` function for each event, to help you debug your app.\n *\n * *debug* takes a `spy` function as argument, and runs that for each event\n * happening on the input stream. If you don't provide the `spy` argument,\n * then *debug* will just `console.log` each event. This helps you to\n * understand the flow of events through some operator chain.\n *\n * Please note that if the output stream has no listeners, then it will not\n * start, which means `spy` will never run because no actual event happens in\n * that case.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3-----4--\n * debug\n * --1----2-----3-----4--\n * ```\n *\n * @param {function} labelOrSpy A string to use as the label when printing\n * debug information on the console, or a 'spy' function that takes an event\n * as argument, and does not need to return anything.\n * @return {Stream}\n */\n Stream.prototype.debug = function (labelOrSpy) {\n return new (this.ctor())(new Debug(this, labelOrSpy));\n };\n /**\n * *imitate* changes this current Stream to emit the same events that the\n * `other` given Stream does. This method returns nothing.\n *\n * This method exists to allow one thing: **circular dependency of streams**.\n * For instance, let's imagine that for some reason you need to create a\n * circular dependency where stream `first$` depends on stream `second$`\n * which in turn depends on `first$`:\n *\n * \n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var first$ = second$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * ```\n *\n * However, that is invalid JavaScript, because `second$` is undefined\n * on the first line. This is how *imitate* can help solve it:\n *\n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var secondProxy$ = xs.create();\n * var first$ = secondProxy$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * secondProxy$.imitate(second$);\n * ```\n *\n * We create `secondProxy$` before the others, so it can be used in the\n * declaration of `first$`. Then, after both `first$` and `second$` are\n * defined, we hook `secondProxy$` with `second$` with `imitate()` to tell\n * that they are \"the same\". `imitate` will not trigger the start of any\n * stream, it just binds `secondProxy$` and `second$` together.\n *\n * The following is an example where `imitate()` is important in Cycle.js\n * applications. A parent component contains some child components. A child\n * has an action stream which is given to the parent to define its state:\n *\n * \n * ```js\n * const childActionProxy$ = xs.create();\n * const parent = Parent({...sources, childAction$: childActionProxy$});\n * const childAction$ = parent.state$.map(s => s.child.action$).flatten();\n * childActionProxy$.imitate(childAction$);\n * ```\n *\n * Note, though, that **`imitate()` does not support MemoryStreams**. If we\n * would attempt to imitate a MemoryStream in a circular dependency, we would\n * either get a race condition (where the symptom would be \"nothing happens\")\n * or an infinite cyclic emission of values. It's useful to think about\n * MemoryStreams as cells in a spreadsheet. It doesn't make any sense to\n * define a spreadsheet cell `A1` with a formula that depends on `B1` and\n * cell `B1` defined with a formula that depends on `A1`.\n *\n * If you find yourself wanting to use `imitate()` with a\n * MemoryStream, you should rework your code around `imitate()` to use a\n * Stream instead. Look for the stream in the circular dependency that\n * represents an event stream, and that would be a candidate for creating a\n * proxy Stream which then imitates the target Stream.\n *\n * @param {Stream} target The other stream to imitate on the current one. Must\n * not be a MemoryStream.\n */\n Stream.prototype.imitate = function (target) {\n if (target instanceof MemoryStream)\n throw new Error('A MemoryStream was given to imitate(), but it only ' +\n 'supports a Stream. Read more about this restriction here: ' +\n 'https://github.com/staltz/xstream#faq');\n this._target = target;\n for (var ils = this._ils, N = ils.length, i = 0; i < N; i++)\n target._add(ils[i]);\n this._ils = [];\n };\n /**\n * Forces the Stream to emit the given value to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param value The \"next\" value you want to broadcast to all listeners of\n * this Stream.\n */\n Stream.prototype.shamefullySendNext = function (value) {\n this._n(value);\n };\n /**\n * Forces the Stream to emit the given error to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param {any} error The error you want to broadcast to all the listeners of\n * this Stream.\n */\n Stream.prototype.shamefullySendError = function (error) {\n this._e(error);\n };\n /**\n * Forces the Stream to emit the \"completed\" event to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n */\n Stream.prototype.shamefullySendComplete = function () {\n this._c();\n };\n /**\n * Adds a \"debug\" listener to the stream. There can only be one debug\n * listener, that's why this is 'setDebugListener'. To remove the debug\n * listener, just call setDebugListener(null).\n *\n * A debug listener is like any other listener. The only difference is that a\n * debug listener is \"stealthy\": its presence/absence does not trigger the\n * start/stop of the stream (or the producer inside the stream). This is\n * useful so you can inspect what is going on without changing the behavior\n * of the program. If you have an idle stream and you add a normal listener to\n * it, the stream will start executing. But if you set a debug listener on an\n * idle stream, it won't start executing (not until the first normal listener\n * is added).\n *\n * As the name indicates, we don't recommend using this method to build app\n * logic. In fact, in most cases the debug operator works just fine. Only use\n * this one if you know what you're doing.\n *\n * @param {Listener} listener\n */\n Stream.prototype.setDebugListener = function (listener) {\n if (!listener) {\n this._d = false;\n this._dl = NO;\n }\n else {\n this._d = true;\n listener._n = listener.next || noop;\n listener._e = listener.error || noop;\n listener._c = listener.complete || noop;\n this._dl = listener;\n }\n };\n /**\n * Blends multiple streams together, emitting events from all of them\n * concurrently.\n *\n * *merge* takes multiple streams as arguments, and creates a stream that\n * behaves like each of the argument streams, in parallel.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b----c---d------\n * merge\n * --1-a--2--b--3-c---d--4---\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to merge together with other streams.\n * @param {Stream} stream2 A stream to merge together with other streams. Two\n * or more streams may be given as arguments.\n * @return {Stream}\n */\n Stream.merge = function merge() {\n var streams = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n streams[_i] = arguments[_i];\n }\n return new Stream(new Merge(streams));\n };\n /**\n * Combines multiple input streams together to return a stream whose events\n * are arrays that collect the latest events from each input stream.\n *\n * *combine* internally remembers the most recent event from each of the input\n * streams. When any of the input streams emits an event, that event together\n * with all the other saved events are combined into an array. That array will\n * be emitted on the output stream. It's essentially a way of joining together\n * the events from multiple streams.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b-----c--d------\n * combine\n * ----1a-2a-2b-3b-3c-3d-4d--\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to combine together with other streams.\n * @param {Stream} stream2 A stream to combine together with other streams.\n * Multiple streams, not just two, may be given as arguments.\n * @return {Stream}\n */\n Stream.combine = function combine() {\n var streams = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n streams[_i] = arguments[_i];\n }\n return new Stream(new Combine(streams));\n };\n return Stream;\n}());\nexports.Stream = Stream;\nvar MemoryStream = /** @class */ (function (_super) {\n __extends(MemoryStream, _super);\n function MemoryStream(producer) {\n var _this = _super.call(this, producer) || this;\n _this._has = false;\n return _this;\n }\n MemoryStream.prototype._n = function (x) {\n this._v = x;\n this._has = true;\n _super.prototype._n.call(this, x);\n };\n MemoryStream.prototype._add = function (il) {\n var ta = this._target;\n if (ta)\n return ta._add(il);\n var a = this._ils;\n a.push(il);\n if (a.length > 1) {\n if (this._has)\n il._n(this._v);\n return;\n }\n if (this._stopID !== NO) {\n if (this._has)\n il._n(this._v);\n clearTimeout(this._stopID);\n this._stopID = NO;\n }\n else if (this._has)\n il._n(this._v);\n else {\n var p = this._prod;\n if (p !== NO)\n p._start(this);\n }\n };\n MemoryStream.prototype._stopNow = function () {\n this._has = false;\n _super.prototype._stopNow.call(this);\n };\n MemoryStream.prototype._x = function () {\n this._has = false;\n _super.prototype._x.call(this);\n };\n MemoryStream.prototype.map = function (project) {\n return this._map(project);\n };\n MemoryStream.prototype.mapTo = function (projectedValue) {\n return _super.prototype.mapTo.call(this, projectedValue);\n };\n MemoryStream.prototype.take = function (amount) {\n return _super.prototype.take.call(this, amount);\n };\n MemoryStream.prototype.endWhen = function (other) {\n return _super.prototype.endWhen.call(this, other);\n };\n MemoryStream.prototype.replaceError = function (replace) {\n return _super.prototype.replaceError.call(this, replace);\n };\n MemoryStream.prototype.remember = function () {\n return this;\n };\n MemoryStream.prototype.debug = function (labelOrSpy) {\n return _super.prototype.debug.call(this, labelOrSpy);\n };\n return MemoryStream;\n}(Stream));\nexports.MemoryStream = MemoryStream;\nvar xs = Stream;\nexports.default = xs;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFrRTtBQUNsRSx5Q0FBMEQ7QUFFMUQsSUFBTSxZQUFZLEdBQUcsa0JBQXdCLENBQUMsd0JBQWEsRUFBRSxDQUFDLENBQUM7QUFFL0QsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBOC9ETCxnQkFBRTtBQTcvRFgsU0FBUyxJQUFJLEtBQUssQ0FBQztBQUVuQixTQUFTLEVBQUUsQ0FBSSxDQUFXO0lBQ3hCLElBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkIsSUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBSSxFQUFxQixFQUFFLEVBQXFCO0lBQzFELE9BQU8sU0FBUyxLQUFLLENBQUMsQ0FBSTtRQUN4QixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU1ELFNBQVMsSUFBSSxDQUFPLENBQW1CLEVBQUUsQ0FBSSxFQUFFLENBQWM7SUFDM0QsSUFBSTtRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNmO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFRRCxJQUFNLEtBQUss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TCxVQUFNLFVBQWlEO1FBQ3JELE9BQU8saUJBQU0sS0FBSyxZQUFDLFVBQWlCLENBQW9CLENBQUM7SUFDM0QsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXhFRCxDQUFxQyxNQUFNLEdBd0UxQztBQXhFWSxvQ0FBWTtBQTJFekIsSUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0FBRWxCLGtCQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUgZnJvbSAnc3ltYm9sLW9ic2VydmFibGUvcG9ueWZpbGwnO1xuaW1wb3J0IHsgZ2V0UG9seWZpbGwgYXMgZ2V0R2xvYmFsVGhpcyB9IGZyb20gJ2dsb2JhbHRoaXMnO1xuXG5jb25zdCAkJG9ic2VydmFibGUgPSBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUoZ2V0R2xvYmFsVGhpcygpKTtcblxuY29uc3QgTk8gPSB7fTtcbmZ1bmN0aW9uIG5vb3AoKSB7IH1cblxuZnVuY3Rpb24gY3A8VD4oYTogQXJyYXk8VD4pOiBBcnJheTxUPiB7XG4gIGNvbnN0IGwgPSBhLmxlbmd0aDtcbiAgY29uc3QgYiA9IEFycmF5KGwpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGw7ICsraSkgYltpXSA9IGFbaV07XG4gIHJldHVybiBiO1xufVxuXG5mdW5jdGlvbiBhbmQ8VD4oZjE6ICh0OiBUKSA9PiBib29sZWFuLCBmMjogKHQ6IFQpID0+IGJvb2xlYW4pOiAodDogVCkgPT4gYm9vbGVhbiB7XG4gIHJldHVybiBmdW5jdGlvbiBhbmRGbih0OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGYxKHQpICYmIGYyKHQpO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgRkNvbnRhaW5lcjxULCBSPiB7XG4gIGYodDogVCk6IFI7XG59XG5cbmZ1bmN0aW9uIF90cnk8VCwgUj4oYzogRkNvbnRhaW5lcjxULCBSPiwgdDogVCwgdTogU3RyZWFtPGFueT4pOiBSIHwge30ge1xuICB0cnkge1xuICAgIHJldHVybiBjLmYodCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB1Ll9lKGUpO1xuICAgIHJldHVybiBOTztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBfbjogKHY6IFQpID0+IHZvaWQ7XG4gIF9lOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIF9jOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBOT19JTDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+ID0ge1xuICBfbjogbm9vcCxcbiAgX2U6IG5vb3AsXG4gIF9jOiBub29wLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgX3N0YXJ0KGxpc3RlbmVyOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZDtcbiAgX3N0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0U2VuZGVyPFQ+IHtcbiAgb3V0OiBTdHJlYW08VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0b3I8VCwgUj4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFI+LCBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8Uj4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluczogU3RyZWFtPFQ+O1xuICBfc3RhcnQob3V0OiBTdHJlYW08Uj4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0b3I8VCwgVT4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFU+LCBPdXRTZW5kZXI8VT4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluc0FycjogQXJyYXk8U3RyZWFtPFQ+PjtcbiAgX3N0YXJ0KG91dDogU3RyZWFtPFU+KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlcjxUPiB7XG4gIHN0YXJ0OiAobGlzdGVuZXI6IExpc3RlbmVyPFQ+KSA9PiB2b2lkO1xuICBzdG9wOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyPFQ+IHtcbiAgbmV4dDogKHg6IFQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbXBsZXRlOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbiB7XG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJsZTxUPiB7XG4gIHN1YnNjcmliZShsaXN0ZW5lcjogTGlzdGVuZXI8VD4pOiBTdWJzY3JpcHRpb247XG59XG5cbi8vIG11dGF0ZXMgdGhlIGlucHV0XG5mdW5jdGlvbiBpbnRlcm5hbGl6ZVByb2R1Y2VyPFQ+KHByb2R1Y2VyOiBQcm9kdWNlcjxUPiAmIFBhcnRpYWw8SW50ZXJuYWxQcm9kdWNlcjxUPj4pIHtcbiAgcHJvZHVjZXIuX3N0YXJ0ID0gZnVuY3Rpb24gX3N0YXJ0KGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+ICYgUGFydGlhbDxMaXN0ZW5lcjxUPj4pIHtcbiAgICBpbC5uZXh0ID0gaWwuX247XG4gICAgaWwuZXJyb3IgPSBpbC5fZTtcbiAgICBpbC5jb21wbGV0ZSA9IGlsLl9jO1xuICAgIHRoaXMuc3RhcnQoaWwgYXMgTGlzdGVuZXI8VD4pO1xuICB9O1xuICBwcm9kdWNlci5fc3RvcCA9IHByb2R1Y2VyLnN0b3A7XG59XG5cbmNsYXNzIFN0cmVhbVN1YjxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0cmVhbTogU3RyZWFtPFQ+LCBwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RyZWFtLl9yZW1vdmUodGhpcy5fbGlzdGVuZXIpO1xuICB9XG59XG5cbmNsYXNzIE9ic2VydmVyPFQ+IGltcGxlbWVudHMgTGlzdGVuZXI8VD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgbmV4dCh2YWx1ZTogVCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9uKHZhbHVlKTtcbiAgfVxuXG4gIGVycm9yKGVycjogYW55KSB7XG4gICAgdGhpcy5fbGlzdGVuZXIuX2UoZXJyKTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRnJvbU9ic2VydmFibGU8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbU9ic2VydmFibGUnO1xuICBwdWJsaWMgaW5zOiBPYnNlcnZhYmxlPFQ+O1xuICBwdWJsaWMgb3V0PzogU3RyZWFtPFQ+O1xuICBwcml2YXRlIGFjdGl2ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfc3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Iob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHRoaXMuaW5zID0gb2JzZXJ2YWJsZTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX3N1YiA9IHRoaXMuaW5zLnN1YnNjcmliZShuZXcgT2JzZXJ2ZXIob3V0KSk7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSkgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfc3RvcCgpIHtcbiAgICBpZiAodGhpcy5fc3ViKSB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VTaWduYXR1cmUge1xuICAoKTogU3RyZWFtPGFueT47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08VDE+O1xuICA8VDEsIFQyPihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPik6IFN0cmVhbTxUMSB8IFQyPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFQxIHwgVDIgfCBUMz47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQ+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNj47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDc+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1PixcbiAgICBzNjogU3RyZWFtPFQ2PixcbiAgICBzNzogU3RyZWFtPFQ3PixcbiAgICBzODogU3RyZWFtPFQ4Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1IHwgVDYgfCBUNyB8IFQ4PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNiB8IFQ3IHwgVDggfCBUOT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDcgfCBUOCB8IFQ5IHwgVDEwPjtcbiAgPFQ+KC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPFQ+Pik6IFN0cmVhbTxUPjtcbn1cblxuY2xhc3MgTWVyZ2U8VD4gaW1wbGVtZW50cyBBZ2dyZWdhdG9yPFQsIFQ+LCBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnbWVyZ2UnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08VD4+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgYWM6IG51bWJlcjsgLy8gYWMgaXMgYWN0aXZlQ291bnRcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxUPj4pIHtcbiAgICB0aGlzLmluc0FyciA9IGluc0FycjtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmFjID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgdGhpcy5hYyA9IEw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGlmICgtLXRoaXMuYWMgPD0gMCkge1xuICAgICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgICB1Ll9jKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZVNpZ25hdHVyZSB7XG4gICgpOiBTdHJlYW08QXJyYXk8YW55Pj47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08W1QxXT47XG4gIDxUMSwgVDI+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+KTogU3RyZWFtPFtUMSwgVDJdPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFtUMSwgVDIsIFQzXT47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDhdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMF0+O1xuICA8VD4oLi4uc3RyZWFtOiBBcnJheTxTdHJlYW08VD4+KTogU3RyZWFtPEFycmF5PFQ+PjtcbiAgKC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPGFueT4+KTogU3RyZWFtPEFycmF5PGFueT4+O1xufVxuXG5jbGFzcyBDb21iaW5lTGlzdGVuZXI8VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8QXJyYXk8VD4+IHtcbiAgcHJpdmF0ZSBpOiBudW1iZXI7XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxUPj47XG4gIHByaXZhdGUgcDogQ29tYmluZTxUPjtcblxuICBjb25zdHJ1Y3RvcihpOiBudW1iZXIsIG91dDogU3RyZWFtPEFycmF5PFQ+PiwgcDogQ29tYmluZTxUPikge1xuICAgIHRoaXMuaSA9IGk7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5wID0gcDtcbiAgICBwLmlscy5wdXNoKHRoaXMpO1xuICB9XG5cbiAgX24odDogVCk6IHZvaWQge1xuICAgIGNvbnN0IHAgPSB0aGlzLnAsIG91dCA9IHRoaXMub3V0O1xuICAgIGlmIChvdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKHAudXAodCwgdGhpcy5pKSkge1xuICAgICAgY29uc3QgYiA9IGNwKHAudmFscyk7XG4gICAgICBvdXQuX24oYik7XG4gICAgfVxuICB9XG5cbiAgX2UoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvdXQgPSB0aGlzLm91dDtcbiAgICBpZiAob3V0ID09PSBOTykgcmV0dXJuO1xuICAgIG91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgcCA9IHRoaXMucDtcbiAgICBpZiAocC5vdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKC0tcC5OYyA9PT0gMCkgcC5vdXQuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBDb21iaW5lPFI+IGltcGxlbWVudHMgQWdncmVnYXRvcjxhbnksIEFycmF5PFI+PiB7XG4gIHB1YmxpYyB0eXBlID0gJ2NvbWJpbmUnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08YW55Pj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxSPj47XG4gIHB1YmxpYyBpbHM6IEFycmF5PENvbWJpbmVMaXN0ZW5lcjxhbnk+PjtcbiAgcHVibGljIE5jOiBudW1iZXI7IC8vICpOKnVtYmVyIG9mIHN0cmVhbXMgc3RpbGwgdG8gc2VuZCAqYypvbXBsZXRlXG4gIHB1YmxpYyBObjogbnVtYmVyOyAvLyAqTip1bWJlciBvZiBzdHJlYW1zIHN0aWxsIHRvIHNlbmQgKm4qZXh0XG4gIHB1YmxpYyB2YWxzOiBBcnJheTxSPjtcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxhbnk+Pikge1xuICAgIHRoaXMuaW5zQXJyID0gaW5zQXJyO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMuTmMgPSB0aGlzLk5uID0gMDtcbiAgICB0aGlzLnZhbHMgPSBbXTtcbiAgfVxuXG4gIHVwKHQ6IGFueSwgaTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsc1tpXTtcbiAgICBjb25zdCBObiA9ICF0aGlzLk5uID8gMCA6IHYgPT09IE5PID8gLS10aGlzLk5uIDogdGhpcy5ObjtcbiAgICB0aGlzLnZhbHNbaV0gPSB0O1xuICAgIHJldHVybiBObiA9PT0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxBcnJheTxSPj4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICBjb25zdCBzID0gdGhpcy5pbnNBcnI7XG4gICAgY29uc3QgbiA9IHRoaXMuTmMgPSB0aGlzLk5uID0gcy5sZW5ndGg7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudmFscyA9IG5ldyBBcnJheShuKTtcbiAgICBpZiAobiA9PT0gMCkge1xuICAgICAgb3V0Ll9uKFtdKTtcbiAgICAgIG91dC5fYygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICB2YWxzW2ldID0gTk87XG4gICAgICAgIHNbaV0uX2FkZChuZXcgQ29tYmluZUxpc3RlbmVyKGksIG91dCwgdGhpcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBuID0gcy5sZW5ndGg7XG4gICAgY29uc3QgaWxzID0gdGhpcy5pbHM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHNbaV0uX3JlbW92ZShpbHNbaV0pO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMudmFscyA9IFtdO1xuICB9XG59XG5cbmNsYXNzIEZyb21BcnJheTxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmcm9tQXJyYXknO1xuICBwdWJsaWMgYTogQXJyYXk8VD47XG5cbiAgY29uc3RydWN0b3IoYTogQXJyYXk8VD4pIHtcbiAgICB0aGlzLmEgPSBhO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IGEgPSB0aGlzLmE7XG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBhLmxlbmd0aDsgaSA8IG47IGkrKykgb3V0Ll9uKGFbaV0pO1xuICAgIG91dC5fYygpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gIH1cbn1cblxuY2xhc3MgRnJvbVByb21pc2U8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbVByb21pc2UnO1xuICBwdWJsaWMgb246IGJvb2xlYW47XG4gIHB1YmxpYyBwOiBQcm9taXNlTGlrZTxUPjtcblxuICBjb25zdHJ1Y3RvcihwOiBQcm9taXNlTGlrZTxUPikge1xuICAgIHRoaXMub24gPSBmYWxzZTtcbiAgICB0aGlzLnAgPSBwO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHByb2QgPSB0aGlzO1xuICAgIHRoaXMub24gPSB0cnVlO1xuICAgIHRoaXMucC50aGVuKFxuICAgICAgKHY6IFQpID0+IHtcbiAgICAgICAgaWYgKHByb2Qub24pIHtcbiAgICAgICAgICBvdXQuX24odik7XG4gICAgICAgICAgb3V0Ll9jKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiB7XG4gICAgICAgIG91dC5fZShlKTtcbiAgICAgIH0sXG4gICAgKS50aGVuKG5vb3AsIChlcnI6IGFueSkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVycjsgfSk7XG4gICAgfSk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uID0gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgUGVyaW9kaWMgaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPG51bWJlcj4ge1xuICBwdWJsaWMgdHlwZSA9ICdwZXJpb2RpYyc7XG4gIHB1YmxpYyBwZXJpb2Q6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbnRlcnZhbElEOiBhbnk7XG4gIHByaXZhdGUgaTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHBlcmlvZDogbnVtYmVyKSB7XG4gICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgdGhpcy5pbnRlcnZhbElEID0gLTE7XG4gICAgdGhpcy5pID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IEludGVybmFsTGlzdGVuZXI8bnVtYmVyPik6IHZvaWQge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIGludGVydmFsSGFuZGxlcigpIHsgb3V0Ll9uKHNlbGYuaSsrKTsgfVxuICAgIHRoaXMuaW50ZXJ2YWxJRCA9IHNldEludGVydmFsKGludGVydmFsSGFuZGxlciwgdGhpcy5wZXJpb2QpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJRCAhPT0gLTEpIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElEKTtcbiAgICB0aGlzLmludGVydmFsSUQgPSAtMTtcbiAgICB0aGlzLmkgPSAwO1xuICB9XG59XG5cbmNsYXNzIERlYnVnPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkZWJ1Zyc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIHM6ICh0OiBUKSA9PiBhbnk7IC8vIHNweVxuICBwcml2YXRlIGw6IHN0cmluZzsgLy8gbGFiZWxcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPik7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogKHQ6IFQpID0+IGFueSk7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcgfCAoKHQ6IFQpID0+IGFueSkpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5zID0gbm9vcDtcbiAgICB0aGlzLmwgPSAnJztcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHRoaXMubCA9IGFyZzsgZWxzZSBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5zID0gYXJnO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMsIGwgPSB0aGlzLmw7XG4gICAgaWYgKHMgIT09IG5vb3ApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHModCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHUuX2UoZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsKSBjb25zb2xlLmxvZyhsICsgJzonLCB0KTsgZWxzZSBjb25zb2xlLmxvZyh0KTtcbiAgICB1Ll9uKHQpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBEcm9wPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkcm9wJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBtYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBkcm9wcGVkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobWF4OiBudW1iZXIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5tYXggPSBtYXg7XG4gICAgdGhpcy5kcm9wcGVkID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuZHJvcHBlZCA9IDA7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRyb3BwZWQrKyA+PSB0aGlzLm1heCkgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRW5kV2hlbkxpc3RlbmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxMaXN0ZW5lcjxhbnk+IHtcbiAgcHJpdmF0ZSBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcDogRW5kV2hlbjxUPjtcblxuICBjb25zdHJ1Y3RvcihvdXQ6IFN0cmVhbTxUPiwgb3A6IEVuZFdoZW48VD4pIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wID0gb3A7XG4gIH1cblxuICBfbigpIHtcbiAgICB0aGlzLm9wLmVuZCgpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICB0aGlzLm91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcC5lbmQoKTtcbiAgfVxufVxuXG5jbGFzcyBFbmRXaGVuPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdlbmRXaGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBvOiBTdHJlYW08YW55PjsgLy8gbyA9IG90aGVyXG4gIHByaXZhdGUgb2lsOiBJbnRlcm5hbExpc3RlbmVyPGFueT47IC8vIG9pbCA9IG90aGVyIEludGVybmFsTGlzdGVuZXJcblxuICBjb25zdHJ1Y3RvcihvOiBTdHJlYW08YW55PiwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm8gPSBvO1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm8uX2FkZCh0aGlzLm9pbCA9IG5ldyBFbmRXaGVuTGlzdGVuZXIob3V0LCB0aGlzKSk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vLl9yZW1vdmUodGhpcy5vaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBlbmQoKTogdm9pZCB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMuZW5kKCk7XG4gIH1cbn1cblxuY2xhc3MgRmlsdGVyPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmaWx0ZXInO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIGY6ICh0OiBUKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHBhc3NlczogKHQ6IFQpID0+IGJvb2xlYW4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcGFzc2VzO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTyB8fCAhcikgcmV0dXJuO1xuICAgIHUuX24odCk7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIEZsYXR0ZW5MaXN0ZW5lcjxUPiBpbXBsZW1lbnRzIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBwcml2YXRlIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIG9wOiBGbGF0dGVuPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG91dDogU3RyZWFtPFQ+LCBvcDogRmxhdHRlbjxUPikge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMub3AgPSBvcDtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICB0aGlzLm91dC5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgdGhpcy5vdXQuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMub3AuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5vcC5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRmxhdHRlbjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFN0cmVhbTxUPiwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmbGF0dGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFN0cmVhbTxUPj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcGVuOiBib29sZWFuO1xuICBwdWJsaWMgaW5uZXI6IFN0cmVhbTxUPjsgLy8gQ3VycmVudCBpbm5lciBTdHJlYW1cbiAgcHJpdmF0ZSBpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPjsgLy8gQ3VycmVudCBpbm5lciBJbnRlcm5hbExpc3RlbmVyXG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08U3RyZWFtPFQ+Pikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5pbCA9IE5PX0lMO1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIGlmICh0aGlzLmlubmVyICE9PSBOTykgdGhpcy5pbm5lci5fcmVtb3ZlKHRoaXMuaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBsZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLmlubmVyID09PSBOTykgdS5fYygpO1xuICB9XG5cbiAgX24oczogU3RyZWFtPFQ+KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHsgaW5uZXIsIGlsIH0gPSB0aGlzO1xuICAgIGlmIChpbm5lciAhPT0gTk8gJiYgaWwgIT09IE5PX0lMKSBpbm5lci5fcmVtb3ZlKGlsKTtcbiAgICAodGhpcy5pbm5lciA9IHMpLl9hZGQodGhpcy5pbCA9IG5ldyBGbGF0dGVuTGlzdGVuZXIodSwgdGhpcykpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRm9sZDxULCBSPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFI+IHtcbiAgcHVibGljIHR5cGUgPSAnZm9sZCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG4gIHB1YmxpYyBzZWVkOiBSO1xuICBwcml2YXRlIGFjYzogUjsgLy8gaW5pdGlhbGl6ZWQgYXMgc2VlZFxuXG4gIGNvbnN0cnVjdG9yKGY6IChhY2M6IFIsIHQ6IFQpID0+IFIsIHNlZWQ6IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gKHQ6IFQpID0+IGYodGhpcy5hY2MsIHQpO1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkID0gc2VlZDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkO1xuICAgIG91dC5fbih0aGlzLmFjYyk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5hY2MgPSB0aGlzLnNlZWQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTykgcmV0dXJuO1xuICAgIHUuX24odGhpcy5hY2MgPSByIGFzIFIpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBMYXN0PFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdsYXN0JztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgaGFzOiBib29sZWFuO1xuICBwcml2YXRlIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMuaGFzID0gZmFsc2U7XG4gICAgdGhpcy52YWwgPSBOTyBhcyBUO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5oYXMgPSBmYWxzZTtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLnZhbCA9IE5PIGFzIFQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgdGhpcy5oYXMgPSB0cnVlO1xuICAgIHRoaXMudmFsID0gdDtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXMpIHtcbiAgICAgIHUuX24odGhpcy52YWwpO1xuICAgICAgdS5fYygpO1xuICAgIH0gZWxzZSB1Ll9lKG5ldyBFcnJvcignbGFzdCgpIGZhaWxlZCBiZWNhdXNlIGlucHV0IHN0cmVhbSBjb21wbGV0ZWQnKSk7XG4gIH1cbn1cblxuY2xhc3MgTWFwT3A8VCwgUj4gaW1wbGVtZW50cyBPcGVyYXRvcjxULCBSPiB7XG4gIHB1YmxpYyB0eXBlID0gJ21hcCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogKHQ6IFQpID0+IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gcHJvamVjdDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFI+O1xuICB9XG5cbiAgX24odDogVCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBjb25zdCByID0gX3RyeSh0aGlzLCB0LCB1KTtcbiAgICBpZiAociA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9uKHIgYXMgUik7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFJlbWVtYmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxQcm9kdWNlcjxUPiB7XG4gIHB1YmxpYyB0eXBlID0gJ3JlbWVtYmVyJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQob3V0KTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcy5vdXQpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICB9XG59XG5cbmNsYXNzIFJlcGxhY2VFcnJvcjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAncmVwbGFjZUVycm9yJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBmOiAoZXJyOiBhbnkpID0+IFN0cmVhbTxUPjtcblxuICBjb25zdHJ1Y3RvcihyZXBsYWNlcjogKGVycjogYW55KSA9PiBTdHJlYW08VD4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcmVwbGFjZXI7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgICAgKHRoaXMuaW5zID0gdGhpcy5mKGVycikpLl9hZGQodGhpcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdS5fZShlKTtcbiAgICB9XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFN0YXJ0V2l0aDxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdzdGFydFdpdGgnO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgdmFsOiBUKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy52YWwgPSB2YWw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm91dC5fbih0aGlzLnZhbCk7XG4gICAgdGhpcy5pbnMuX2FkZChvdXQpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzLm91dCk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cbn1cblxuY2xhc3MgVGFrZTxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAndGFrZSc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwdWJsaWMgbWF4OiBudW1iZXI7XG4gIHByaXZhdGUgdGFrZW46IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtYXg6IG51bWJlciwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLnRha2VuID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMudGFrZW4gPSAwO1xuICAgIGlmICh0aGlzLm1heCA8PSAwKSBvdXQuX2MoKTsgZWxzZSB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgY29uc3QgbSA9ICsrdGhpcy50YWtlbjtcbiAgICBpZiAobSA8IHRoaXMubWF4KSB1Ll9uKHQpOyBlbHNlIGlmIChtID09PSB0aGlzLm1heCkge1xuICAgICAgdS5fbih0KTtcbiAgICAgIHUuX2MoKTtcbiAgICB9XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYW08VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIF9wcm9kOiBJbnRlcm5hbFByb2R1Y2VyPFQ+O1xuICBwcm90ZWN0ZWQgX2lsczogQXJyYXk8SW50ZXJuYWxMaXN0ZW5lcjxUPj47IC8vICdpbHMnID0gSW50ZXJuYWwgbGlzdGVuZXJzXG4gIHByb3RlY3RlZCBfc3RvcElEOiBhbnk7XG4gIHByb3RlY3RlZCBfZGw6IEludGVybmFsTGlzdGVuZXI8VD47IC8vIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX2Q6IGJvb2xlYW47IC8vIGZsYWcgaW5kaWNhdGluZyB0aGUgZXhpc3RlbmNlIG9mIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX3RhcmdldDogU3RyZWFtPFQ+IHwgbnVsbDsgLy8gaW1pdGF0aW9uIHRhcmdldCBpZiB0aGlzIFN0cmVhbSB3aWxsIGltaXRhdGVcbiAgcHJvdGVjdGVkIF9lcnI6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9kdWNlcj86IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICB0aGlzLl9wcm9kID0gcHJvZHVjZXIgfHwgTk8gYXMgSW50ZXJuYWxQcm9kdWNlcjxUPjtcbiAgICB0aGlzLl9pbHMgPSBbXTtcbiAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB0aGlzLl9kbCA9IE5PIGFzIEludGVybmFsTGlzdGVuZXI8VD47XG4gICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgIHRoaXMuX3RhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gIH1cblxuICBfbih0OiBUKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgaWYgKHRoaXMuX2QpIHRoaXMuX2RsLl9uKHQpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX24odCk7IGVsc2UgaWYgKEwgPT0gMCkgcmV0dXJuOyBlbHNlIHtcbiAgICAgIGNvbnN0IGIgPSBjcChhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTDsgaSsrKSBiW2ldLl9uKHQpO1xuICAgIH1cbiAgfVxuXG4gIF9lKGVycjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VyciAhPT0gTk8pIHJldHVybjtcbiAgICB0aGlzLl9lcnIgPSBlcnI7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fZShlcnIpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2UoZXJyKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2UoZXJyKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kICYmIEwgPT0gMCkgdGhyb3cgdGhpcy5fZXJyO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fYygpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2MoKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2MoKTtcbiAgICB9XG4gIH1cblxuICBfeCgpOiB2b2lkIHsgLy8gdGVhciBkb3duIGxvZ2ljLCBhZnRlciBlcnJvciBvciBjb21wbGV0ZVxuICAgIGlmICh0aGlzLl9pbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3Byb2QgIT09IE5PKSB0aGlzLl9wcm9kLl9zdG9wKCk7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICAvLyBXQVJOSU5HOiBjb2RlIHRoYXQgY2FsbHMgdGhpcyBtZXRob2Qgc2hvdWxkXG4gICAgLy8gZmlyc3QgY2hlY2sgaWYgdGhpcy5fcHJvZCBpcyB2YWxpZCAobm90IGBOT2ApXG4gICAgdGhpcy5fcHJvZC5fc3RvcCgpO1xuICAgIHRoaXMuX2VyciA9IE5PO1xuICAgIHRoaXMuX3N0b3BJRCA9IE5PO1xuICB9XG5cbiAgX2FkZChpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHRhID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICh0YSkgcmV0dXJuIHRhLl9hZGQoaWwpO1xuICAgIGNvbnN0IGEgPSB0aGlzLl9pbHM7XG4gICAgYS5wdXNoKGlsKTtcbiAgICBpZiAoYS5sZW5ndGggPiAxKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3N0b3BJRCAhPT0gTk8pIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdG9wSUQpO1xuICAgICAgdGhpcy5fc3RvcElEID0gTk87XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfcmVtb3ZlKGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgdGEgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKHRhKSByZXR1cm4gdGEuX3JlbW92ZShpbCk7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBpID0gYS5pbmRleE9mKGlsKTtcbiAgICBpZiAoaSA+IC0xKSB7XG4gICAgICBhLnNwbGljZShpLCAxKTtcbiAgICAgIGlmICh0aGlzLl9wcm9kICE9PSBOTyAmJiBhLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuX2VyciA9IE5PO1xuICAgICAgICB0aGlzLl9zdG9wSUQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3N0b3BOb3coKSk7XG4gICAgICB9IGVsc2UgaWYgKGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuX3BydW5lQ3ljbGVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYWxsIHBhdGhzIHN0ZW1taW5nIGZyb20gYHRoaXNgIHN0cmVhbSBldmVudHVhbGx5IGVuZCBhdCBgdGhpc2BcbiAgLy8gc3RyZWFtLCB0aGVuIHdlIHJlbW92ZSB0aGUgc2luZ2xlIGxpc3RlbmVyIG9mIGB0aGlzYCBzdHJlYW0sIHRvXG4gIC8vIGZvcmNlIGl0IHRvIGVuZCBpdHMgZXhlY3V0aW9uIGFuZCBkaXNwb3NlIHJlc291cmNlcy4gVGhpcyBtZXRob2RcbiAgLy8gYXNzdW1lcyBhcyBhIHByZWNvbmRpdGlvbiB0aGF0IHRoaXMuX2lscyBoYXMganVzdCBvbmUgbGlzdGVuZXIuXG4gIF9wcnVuZUN5Y2xlcygpIHtcbiAgICBpZiAodGhpcy5faGFzTm9TaW5rcyh0aGlzLCBbXSkpIHRoaXMuX3JlbW92ZSh0aGlzLl9pbHNbMF0pO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHdoZXRoZXIgKnRoZXJlIGlzIG5vKiBwYXRoIHN0YXJ0aW5nIGZyb20gYHhgIHRoYXQgbGVhZHMgdG8gYW4gZW5kXG4gIC8vIGxpc3RlbmVyIChzaW5rKSBpbiB0aGUgc3RyZWFtIGdyYXBoLCBmb2xsb3dpbmcgZWRnZXMgQS0+QiB3aGVyZSBCIGlzIGFcbiAgLy8gbGlzdGVuZXIgb2YgQS4gVGhpcyBtZWFucyB0aGVzZSBwYXRocyBjb25zdGl0dXRlIGEgY3ljbGUgc29tZWhvdy4gSXMgZ2l2ZW5cbiAgLy8gYSB0cmFjZSBvZiBhbGwgdmlzaXRlZCBub2RlcyBzbyBmYXIuXG4gIF9oYXNOb1NpbmtzKHg6IEludGVybmFsTGlzdGVuZXI8YW55PiwgdHJhY2U6IEFycmF5PGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAodHJhY2UuaW5kZXhPZih4KSAhPT0gLTEpXG4gICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgaWYgKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0ID09PSB0aGlzKVxuICAgICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgICBpZiAoKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgJiYgKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgIT09IE5PKVxuICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0LCB0cmFjZS5jb25jYXQoeCkpOyBlbHNlXG4gICAgICAgICAgaWYgKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgTiA9ICh4IGFzIFN0cmVhbTxhbnk+KS5faWxzLmxlbmd0aDsgaSA8IE47IGkrKylcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzW2ldLCB0cmFjZS5jb25jYXQoeCkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGN0b3IoKTogdHlwZW9mIFN0cmVhbSB7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBNZW1vcnlTdHJlYW0gPyBNZW1vcnlTdHJlYW0gOiBTdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIExpc3RlbmVyIHRvIHRoZSBTdHJlYW0uXG4gICAqXG4gICAqIEBwYXJhbSB7TGlzdGVuZXJ9IGxpc3RlbmVyXG4gICAqL1xuICBhZGRMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiB2b2lkIHtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX24gPSBsaXN0ZW5lci5uZXh0IHx8IG5vb3A7XG4gICAgKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pLl9lID0gbGlzdGVuZXIuZXJyb3IgfHwgbm9vcDtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgIHRoaXMuX2FkZChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgTGlzdGVuZXIgZnJvbSB0aGUgU3RyZWFtLCBhc3N1bWluZyB0aGUgTGlzdGVuZXIgd2FzIGFkZGVkIHRvIGl0LlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgcmVtb3ZlTGlzdGVuZXIobGlzdGVuZXI6IFBhcnRpYWw8TGlzdGVuZXI8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBMaXN0ZW5lciB0byB0aGUgU3RyZWFtIHJldHVybmluZyBhIFN1YnNjcmlwdGlvbiB0byByZW1vdmUgdGhhdFxuICAgKiBsaXN0ZW5lci5cbiAgICpcbiAgICogQHBhcmFtIHtMaXN0ZW5lcn0gbGlzdGVuZXJcbiAgICogQHJldHVybnMge1N1YnNjcmlwdGlvbn1cbiAgICovXG4gIHN1YnNjcmliZShsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiBTdWJzY3JpcHRpb24ge1xuICAgIHRoaXMuYWRkTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgIHJldHVybiBuZXcgU3RyZWFtU3ViPFQ+KHRoaXMsIGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBpbnRlcm9wIGJldHdlZW4gbW9zdC5qcyBhbmQgUnhKUyA1XG4gICAqXG4gICAqIEByZXR1cm5zIHtTdHJlYW19XG4gICAqL1xuICBbJCRvYnNlcnZhYmxlXSgpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgU3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZTxUPihwcm9kdWNlcj86IFByb2R1Y2VyPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICBpZiAocHJvZHVjZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvZHVjZXIuc3RhcnQgIT09ICdmdW5jdGlvbidcbiAgICAgICAgfHwgdHlwZW9mIHByb2R1Y2VyLnN0b3AgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncHJvZHVjZXIgcmVxdWlyZXMgYm90aCBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMnKTtcbiAgICAgIGludGVybmFsaXplUHJvZHVjZXIocHJvZHVjZXIpOyAvLyBtdXRhdGVzIHRoZSBpbnB1dFxuICAgIH1cbiAgICByZXR1cm4gbmV3IFN0cmVhbShwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTWVtb3J5U3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7TWVtb3J5U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVdpdGhNZW1vcnk8VD4ocHJvZHVjZXI/OiBQcm9kdWNlcjxUPik6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgaWYgKHByb2R1Y2VyKSBpbnRlcm5hbGl6ZVByb2R1Y2VyKHByb2R1Y2VyKTsgLy8gbXV0YXRlcyB0aGUgaW5wdXRcbiAgICByZXR1cm4gbmV3IE1lbW9yeVN0cmVhbTxUPihwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBTdHJlYW0gdGhhdCBkb2VzIG5vdGhpbmcgd2hlbiBzdGFydGVkLiBJdCBuZXZlciBlbWl0cyBhbnkgZXZlbnQuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqICAgICAgICAgIG5ldmVyXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZmFjdG9yeSB0cnVlXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBuZXZlcjxUID0gYW55PigpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KHsgX3N0YXJ0OiBub29wLCBfc3RvcDogbm9vcCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgU3RyZWFtIHRoYXQgaW1tZWRpYXRlbHkgZW1pdHMgdGhlIFwiY29tcGxldGVcIiBub3RpZmljYXRpb24gd2hlblxuICAgKiBzdGFydGVkLCBhbmQgdGhhdCdzIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBlbXB0eVxuICAgKiAtfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZW1wdHk8VCA9IGFueT4oKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPih7XG4gICAgICBfc3RhcnQoaWw6IEludGVybmFsTGlzdGVuZXI8YW55PikgeyBpbC5fYygpOyB9LFxuICAgICAgX3N0b3A6IG5vb3AsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIGFuIFwiZXJyb3JcIiBub3RpZmljYXRpb24gd2l0aCB0aGVcbiAgICogdmFsdWUgeW91IHBhc3NlZCBhcyB0aGUgYGVycm9yYCBhcmd1bWVudCB3aGVuIHRoZSBzdHJlYW0gc3RhcnRzLCBhbmQgdGhhdCdzXG4gICAqIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiB0aHJvdyhYKVxuICAgKiAtWFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0gZXJyb3IgVGhlIGVycm9yIGV2ZW50IHRvIGVtaXQgb24gdGhlIGNyZWF0ZWQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgdGhyb3coZXJyb3I6IGFueSk6IFN0cmVhbTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxhbnk+KHtcbiAgICAgIF9zdGFydChpbDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+KSB7IGlsLl9lKGVycm9yKTsgfSxcbiAgICAgIF9zdG9wOiBub29wLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gZnJvbSBhbiBBcnJheSwgUHJvbWlzZSwgb3IgYW4gT2JzZXJ2YWJsZS5cbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fFByb21pc2VMaWtlfE9ic2VydmFibGV9IGlucHV0IFRoZSBpbnB1dCB0byBtYWtlIGEgc3RyZWFtIGZyb20uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tPFQ+KGlucHV0OiBQcm9taXNlTGlrZTxUPiB8IFN0cmVhbTxUPiB8IEFycmF5PFQ+IHwgT2JzZXJ2YWJsZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dFskJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nKVxuICAgICAgcmV0dXJuIFN0cmVhbS5mcm9tT2JzZXJ2YWJsZTxUPihpbnB1dCBhcyBPYnNlcnZhYmxlPFQ+KTsgZWxzZVxuICAgICAgaWYgKHR5cGVvZiAoaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pLnRoZW4gPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBTdHJlYW0uZnJvbVByb21pc2U8VD4oaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pOyBlbHNlXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSlcbiAgICAgICAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpbnB1dCk7XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUeXBlIG9mIGlucHV0IHRvIGZyb20oKSBtdXN0IGJlIGFuIEFycmF5LCBQcm9taXNlLCBvciBPYnNlcnZhYmxlYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIHRoZSBhcmd1bWVudHMgdGhhdCB5b3UgZ2l2ZSB0b1xuICAgKiAqb2YqLCB0aGVuIGNvbXBsZXRlcy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogb2YoMSwyLDMpXG4gICAqIDEyM3xcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIGEgVGhlIGZpcnN0IHZhbHVlIHlvdSB3YW50IHRvIGVtaXQgYXMgYW4gZXZlbnQgb24gdGhlIHN0cmVhbS5cbiAgICogQHBhcmFtIGIgVGhlIHNlY29uZCB2YWx1ZSB5b3Ugd2FudCB0byBlbWl0IGFzIGFuIGV2ZW50IG9uIHRoZSBzdHJlYW0uIE9uZVxuICAgKiBvciBtb3JlIG9mIHRoZXNlIHZhbHVlcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgb2Y8VD4oLi4uaXRlbXM6IEFycmF5PFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgdG8gYSBzdHJlYW0uIFRoZSByZXR1cm5lZCBzdHJlYW0gd2lsbCBlbWl0IHN5bmNocm9ub3VzbHlcbiAgICogYWxsIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXksIGFuZCB0aGVuIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tQXJyYXkoWzEsMiwzXSlcbiAgICogMTIzfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbUFycmF5PFQ+KGFycmF5OiBBcnJheTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21BcnJheTxUPihhcnJheSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgcHJvbWlzZSB0byBhIHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSB3aWxsIGVtaXQgdGhlIHJlc29sdmVkXG4gICAqIHZhbHVlIG9mIHRoZSBwcm9taXNlLCBhbmQgdGhlbiBjb21wbGV0ZS4gSG93ZXZlciwgaWYgdGhlIHByb21pc2UgaXNcbiAgICogcmVqZWN0ZWQsIHRoZSBzdHJlYW0gd2lsbCBlbWl0IHRoZSBjb3JyZXNwb25kaW5nIGVycm9yLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tUHJvbWlzZSggLS0tLTQyIClcbiAgICogLS0tLS0tLS0tLS0tLS0tLS00MnxcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9taXNlTGlrZX0gcHJvbWlzZSBUaGUgcHJvbWlzZSB0byBiZSBjb252ZXJ0ZWQgYXMgYSBzdHJlYW0uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUHJvbWlzZTxUPihwcm9taXNlOiBQcm9taXNlTGlrZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21Qcm9taXNlPFQ+KHByb21pc2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBPYnNlcnZhYmxlIGludG8gYSBTdHJlYW0uXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHthbnl9IG9ic2VydmFibGUgVGhlIG9ic2VydmFibGUgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbU9ic2VydmFibGU8VD4ob2JzOiB7IHN1YnNjcmliZTogYW55IH0pOiBTdHJlYW08VD4ge1xuICAgIGlmICgob2JzIGFzIFN0cmVhbTxUPikuZW5kV2hlbiAhPT0gdW5kZWZpbmVkKSByZXR1cm4gb2JzIGFzIFN0cmVhbTxUPjtcbiAgICBjb25zdCBvID0gdHlwZW9mIG9ic1skJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nID8gb2JzWyQkb2JzZXJ2YWJsZV0oKSA6IG9icztcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRnJvbU9ic2VydmFibGUobykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gdGhhdCBwZXJpb2RpY2FsbHkgZW1pdHMgaW5jcmVtZW50YWwgbnVtYmVycywgZXZlcnlcbiAgICogYHBlcmlvZGAgbWlsbGlzZWNvbmRzLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAgICAgcGVyaW9kaWMoMTAwMClcbiAgICogLS0tMC0tLTEtLS0yLS0tMy0tLTQtLS0uLi5cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBlcmlvZCBUaGUgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIHVzZSBhcyBhIHJhdGUgb2ZcbiAgICogZW1pc3Npb24uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBwZXJpb2RpYyhwZXJpb2Q6IG51bWJlcik6IFN0cmVhbTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxudW1iZXI+KG5ldyBQZXJpb2RpYyhwZXJpb2QpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCbGVuZHMgbXVsdGlwbGUgc3RyZWFtcyB0b2dldGhlciwgZW1pdHRpbmcgZXZlbnRzIGZyb20gYWxsIG9mIHRoZW1cbiAgICogY29uY3VycmVudGx5LlxuICAgKlxuICAgKiAqbWVyZ2UqIHRha2VzIG11bHRpcGxlIHN0cmVhbXMgYXMgYXJndW1lbnRzLCBhbmQgY3JlYXRlcyBhIHN0cmVhbSB0aGF0XG4gICAqIGJlaGF2ZXMgbGlrZSBlYWNoIG9mIHRoZSBhcmd1bWVudCBzdHJlYW1zLCBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLS0tLTQtLS1cbiAgICogLS0tLWEtLS0tLWItLS0tYy0tLWQtLS0tLS1cbiAgICogICAgICAgICAgICBtZXJnZVxuICAgKiAtLTEtYS0tMi0tYi0tMy1jLS0tZC0tNC0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge1N0cmVhbX0gc3RyZWFtMSBBIHN0cmVhbSB0byBtZXJnZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIG1lcmdlIHRvZ2V0aGVyIHdpdGggb3RoZXIgc3RyZWFtcy4gVHdvXG4gICAqIG9yIG1vcmUgc3RyZWFtcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgbWVyZ2U6IE1lcmdlU2lnbmF0dXJlID0gZnVuY3Rpb24gbWVyZ2UoLi4uc3RyZWFtczogQXJyYXk8U3RyZWFtPGFueT4+KSB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08YW55PihuZXcgTWVyZ2Uoc3RyZWFtcykpO1xuICB9IGFzIE1lcmdlU2lnbmF0dXJlO1xuXG4gIC8qKlxuICAgKiBDb21iaW5lcyBtdWx0aXBsZSBpbnB1dCBzdHJlYW1zIHRvZ2V0aGVyIHRvIHJldHVybiBhIHN0cmVhbSB3aG9zZSBldmVudHNcbiAgICogYXJlIGFycmF5cyB0aGF0IGNvbGxlY3QgdGhlIGxhdGVzdCBldmVudHMgZnJvbSBlYWNoIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbWJpbmUqIGludGVybmFsbHkgcmVtZW1iZXJzIHRoZSBtb3N0IHJlY2VudCBldmVudCBmcm9tIGVhY2ggb2YgdGhlIGlucHV0XG4gICAqIHN0cmVhbXMuIFdoZW4gYW55IG9mIHRoZSBpbnB1dCBzdHJlYW1zIGVtaXRzIGFuIGV2ZW50LCB0aGF0IGV2ZW50IHRvZ2V0aGVyXG4gICAqIHdpdGggYWxsIHRoZSBvdGhlciBzYXZlZCBldmVudHMgYXJlIGNvbWJpbmVkIGludG8gYW4gYXJyYXkuIFRoYXQgYXJyYXkgd2lsbFxuICAgKiBiZSBlbWl0dGVkIG9uIHRoZSBvdXRwdXQgc3RyZWFtLiBJdCdzIGVzc2VudGlhbGx5IGEgd2F5IG9mIGpvaW5pbmcgdG9nZXRoZXJcbiAgICogdGhlIGV2ZW50cyBmcm9tIG11bHRpcGxlIHN0cmVhbXMuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLS0yLS0tLS0zLS0tLS0tLS00LS0tXG4gICAqIC0tLS1hLS0tLS1iLS0tLS1jLS1kLS0tLS0tXG4gICAqICAgICAgICAgIGNvbWJpbmVcbiAgICogLS0tLTFhLTJhLTJiLTNiLTNjLTNkLTRkLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtTdHJlYW19IHN0cmVhbTEgQSBzdHJlYW0gdG8gY29tYmluZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIGNvbWJpbmUgdG9nZXRoZXIgd2l0aCBvdGhlciBzdHJlYW1zLlxuICAgKiBNdWx0aXBsZSBzdHJlYW1zLCBub3QganVzdCB0d28sIG1heSBiZSBnaXZlbiBhcyBhcmd1bWVudHMuXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBjb21iaW5lOiBDb21iaW5lU2lnbmF0dXJlID0gZnVuY3Rpb24gY29tYmluZSguLi5zdHJlYW1zOiBBcnJheTxTdHJlYW08YW55Pj4pIHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxBcnJheTxhbnk+PihuZXcgQ29tYmluZTxhbnk+KHN0cmVhbXMpKTtcbiAgfSBhcyBDb21iaW5lU2lnbmF0dXJlO1xuXG4gIHByb3RlY3RlZCBfbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHwgTWVtb3J5U3RyZWFtPFU+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VT4obmV3IE1hcE9wPFQsIFU+KHByb2plY3QsIHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIHRocm91Z2ggYSBgcHJvamVjdGAgZnVuY3Rpb24sXG4gICAqIHRvIGdldCBhIFN0cmVhbSB0aGF0IGVtaXRzIHRob3NlIHRyYW5zZm9ybWVkIGV2ZW50cy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMy0tNS0tLS0tNy0tLS0tLVxuICAgKiAgICBtYXAoaSA9PiBpICogMTApXG4gICAqIC0tMTAtLTMwLTUwLS0tLTcwLS0tLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByb2plY3QgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gVWAgdGhhdCB0YWtlcyBldmVudFxuICAgKiBgdGAgb2YgdHlwZSBgVGAgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIGFuZCBwcm9kdWNlcyBhbiBldmVudCBvZiB0eXBlIGBVYCwgdG9cbiAgICogYmUgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwKHByb2plY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgbGlrZSBgbWFwYCwgYnV0IHRyYW5zZm9ybXMgZWFjaCBpbnB1dCBldmVudCB0byBhbHdheXMgdGhlIHNhbWVcbiAgICogY29uc3RhbnQgdmFsdWUgb24gdGhlIG91dHB1dCBTdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLTMtLTUtLS0tLTctLS0tLVxuICAgKiAgICAgICBtYXBUbygxMClcbiAgICogLS0xMC0tMTAtMTAtLS0tMTAtLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gcHJvamVjdGVkVmFsdWUgQSB2YWx1ZSB0byBlbWl0IG9uIHRoZSBvdXRwdXQgU3RyZWFtIHdoZW5ldmVyIHRoZVxuICAgKiBpbnB1dCBTdHJlYW0gZW1pdHMgYW55IHZhbHVlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IFN0cmVhbTxVPiB7XG4gICAgY29uc3QgcyA9IHRoaXMubWFwKCgpID0+IHByb2plY3RlZFZhbHVlKTtcbiAgICBjb25zdCBvcDogT3BlcmF0b3I8VCwgVT4gPSBzLl9wcm9kIGFzIE9wZXJhdG9yPFQsIFU+O1xuICAgIG9wLnR5cGUgPSAnbWFwVG8nO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgZmlsdGVyPFMgZXh0ZW5kcyBUPihwYXNzZXM6ICh0OiBUKSA9PiB0IGlzIFMpOiBTdHJlYW08Uz47XG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogT25seSBhbGxvd3MgZXZlbnRzIHRoYXQgcGFzcyB0aGUgdGVzdCBnaXZlbiBieSB0aGUgYHBhc3Nlc2AgYXJndW1lbnQuXG4gICAqXG4gICAqIEVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgc3RyZWFtIGlzIGdpdmVuIHRvIHRoZSBgcGFzc2VzYCBmdW5jdGlvbi4gSWYgdGhlXG4gICAqIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgLCB0aGUgZXZlbnQgaXMgZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgc3RyZWFtLFxuICAgKiBvdGhlcndpc2UgaXQgaXMgaWdub3JlZCBhbmQgbm90IGZvcndhcmRlZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tMy0tLS0tNC0tLS0tNS0tLTYtLTctOC0tXG4gICAqICAgICBmaWx0ZXIoaSA9PiBpICUgMiA9PT0gMClcbiAgICogLS0tLS0tMi0tLS0tLS0tNC0tLS0tLS0tLTYtLS0tOC0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXNzZXMgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gYm9vbGVhbmAgdGhhdCB0YWtlc1xuICAgKiBhbiBldmVudCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gYW5kIGNoZWNrcyBpZiBpdCBwYXNzZXMsIGJ5IHJldHVybmluZyBhXG4gICAqIGJvb2xlYW4uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+IHtcbiAgICBjb25zdCBwID0gdGhpcy5fcHJvZDtcbiAgICBpZiAocCBpbnN0YW5jZW9mIEZpbHRlcilcbiAgICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KG5ldyBGaWx0ZXI8VD4oXG4gICAgICAgIGFuZCgocCBhcyBGaWx0ZXI8VD4pLmYsIHBhc3NlcyksXG4gICAgICAgIChwIGFzIEZpbHRlcjxUPikuaW5zXG4gICAgICApKTtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRmlsdGVyPFQ+KHBhc3NlcywgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIExldHMgdGhlIGZpcnN0IGBhbW91bnRgIG1hbnkgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSBwYXNzIHRvIHRoZVxuICAgKiBvdXRwdXQgc3RyZWFtLCB0aGVuIG1ha2VzIHRoZSBvdXRwdXQgc3RyZWFtIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS0tLWQtLS1lLS1cbiAgICogICAgdGFrZSgzKVxuICAgKiAtLWEtLS1iLS1jfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gYWxsb3cgZnJvbSB0aGUgaW5wdXQgc3RyZWFtXG4gICAqIGJlZm9yZSBjb21wbGV0aW5nIHRoZSBvdXRwdXQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICB0YWtlKGFtb3VudDogbnVtYmVyKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFRha2U8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogSWdub3JlcyB0aGUgZmlyc3QgYGFtb3VudGAgbWFueSBldmVudHMgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCBhbmQgdGhlblxuICAgKiBhZnRlciB0aGF0IHN0YXJ0cyBmb3J3YXJkaW5nIGV2ZW50cyBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gdG8gdGhlIG91dHB1dFxuICAgKiBzdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tYS0tLWItLWMtLS0tZC0tLWUtLVxuICAgKiAgICAgICBkcm9wKDMpXG4gICAqIC0tLS0tLS0tLS0tLS0tZC0tLWUtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gaWdub3JlIGZyb20gdGhlIGlucHV0IHN0cmVhbVxuICAgKiBiZWZvcmUgZm9yd2FyZGluZyBhbGwgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSB0byB0aGUgb3V0cHV0IHN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgZHJvcChhbW91bnQ6IG51bWJlcik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IERyb3A8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgaW5wdXQgc3RyZWFtIGNvbXBsZXRlcywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBlbWl0IHRoZSBsYXN0IGV2ZW50XG4gICAqIGVtaXR0ZWQgYnkgdGhlIGlucHV0IHN0cmVhbSwgYW5kIHRoZW4gd2lsbCBhbHNvIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS1kLS0tLXxcbiAgICogICAgICAgbGFzdCgpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tZHxcbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGxhc3QoKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgTGFzdDxUPih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGVuZHMgdGhlIGdpdmVuIGBpbml0aWFsYCB2YWx1ZSB0byB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGVtaXR0ZWQgYnkgdGhlXG4gICAqIGlucHV0IHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXNcbiAgICogYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLS1cbiAgICogICBzdGFydFdpdGgoMClcbiAgICogMC0tMS0tLTItLS0tLTMtLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBpbml0aWFsIFRoZSB2YWx1ZSBvciBldmVudCB0byBwcmVwZW5kLlxuICAgKiBAcmV0dXJuIHtNZW1vcnlTdHJlYW19XG4gICAqL1xuICBzdGFydFdpdGgoaW5pdGlhbDogVCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFN0YXJ0V2l0aDxUPih0aGlzLCBpbml0aWFsKSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyBhbm90aGVyIHN0cmVhbSB0byBkZXRlcm1pbmUgd2hlbiB0byBjb21wbGV0ZSB0aGUgY3VycmVudCBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gdGhlIGdpdmVuIGBvdGhlcmAgc3RyZWFtIGVtaXRzIGFuIGV2ZW50IG9yIGNvbXBsZXRlcywgdGhlIG91dHB1dFxuICAgKiBzdHJlYW0gd2lsbCBjb21wbGV0ZS4gQmVmb3JlIHRoYXQgaGFwcGVucywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBiZWhhdmVzXG4gICAqIGxpa2UgdGhlIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLS0tNS0tLS02LS0tXG4gICAqICAgZW5kV2hlbiggLS0tLS0tLS1hLS1iLS18IClcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLXxcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBTb21lIG90aGVyIHN0cmVhbSB0aGF0IGlzIHVzZWQgdG8ga25vdyB3aGVuIHNob3VsZCB0aGUgb3V0cHV0XG4gICAqIHN0cmVhbSBvZiB0aGlzIG9wZXJhdG9yIGNvbXBsZXRlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBlbmRXaGVuKG90aGVyOiBTdHJlYW08YW55Pik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyAodGhpcy5jdG9yKCkpPFQ+KG5ldyBFbmRXaGVuPFQ+KG90aGVyLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJGb2xkc1wiIHRoZSBzdHJlYW0gb250byBpdHNlbGYuXG4gICAqXG4gICAqIENvbWJpbmVzIGV2ZW50cyBmcm9tIHRoZSBwYXN0IHRocm91Z2hvdXRcbiAgICogdGhlIGVudGlyZSBleGVjdXRpb24gb2YgdGhlIGlucHV0IHN0cmVhbSwgYWxsb3dpbmcgeW91IHRvIGFjY3VtdWxhdGUgdGhlbVxuICAgKiB0b2dldGhlci4gSXQncyBlc3NlbnRpYWxseSBsaWtlIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYC4gVGhlIHJldHVybmVkXG4gICAqIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXMgYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogVGhlIG91dHB1dCBzdHJlYW0gc3RhcnRzIGJ5IGVtaXR0aW5nIHRoZSBgc2VlZGAgd2hpY2ggeW91IGdpdmUgYXMgYXJndW1lbnQuXG4gICAqIFRoZW4sIHdoZW4gYW4gZXZlbnQgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpdCBpcyBjb21iaW5lZCB3aXRoIHRoYXRcbiAgICogc2VlZCB2YWx1ZSB0aHJvdWdoIHRoZSBgYWNjdW11bGF0ZWAgZnVuY3Rpb24sIGFuZCB0aGUgb3V0cHV0IHZhbHVlIGlzXG4gICAqIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBzdHJlYW0uIGBmb2xkYCByZW1lbWJlcnMgdGhhdCBvdXRwdXQgdmFsdWUgYXMgYGFjY2BcbiAgICogKFwiYWNjdW11bGF0b3JcIiksIGFuZCB0aGVuIHdoZW4gYSBuZXcgaW5wdXQgZXZlbnQgYHRgIGhhcHBlbnMsIGBhY2NgIHdpbGwgYmVcbiAgICogY29tYmluZWQgd2l0aCB0aGF0IHRvIHByb2R1Y2UgdGhlIG5ldyBgYWNjYCBhbmQgc28gZm9ydGguXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tLS0tLTEtLS0tLTEtLTItLS0tMS0tLS0xLS0tLS0tXG4gICAqICAgZm9sZCgoYWNjLCB4KSA9PiBhY2MgKyB4LCAzKVxuICAgKiAzLS0tLS00LS0tLS01LS03LS0tLTgtLS0tOS0tLS0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWNjdW11bGF0ZSBBIGZ1bmN0aW9uIG9mIHR5cGUgYChhY2M6IFIsIHQ6IFQpID0+IFJgIHRoYXRcbiAgICogdGFrZXMgdGhlIHByZXZpb3VzIGFjY3VtdWxhdGVkIHZhbHVlIGBhY2NgIGFuZCB0aGUgaW5jb21pbmcgZXZlbnQgZnJvbSB0aGVcbiAgICogaW5wdXQgc3RyZWFtIGFuZCBwcm9kdWNlcyB0aGUgbmV3IGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKiBAcGFyYW0gc2VlZCBUaGUgaW5pdGlhbCBhY2N1bXVsYXRlZCB2YWx1ZSwgb2YgdHlwZSBgUmAuXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIGZvbGQ8Uj4oYWNjdW11bGF0ZTogKGFjYzogUiwgdDogVCkgPT4gUiwgc2VlZDogUik6IE1lbW9yeVN0cmVhbTxSPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08Uj4obmV3IEZvbGQ8VCwgUj4oYWNjdW11bGF0ZSwgc2VlZCwgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFuIGVycm9yIHdpdGggYW5vdGhlciBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gKGFuZCBpZikgYW4gZXJyb3IgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpbnN0ZWFkIG9mIGZvcndhcmRpbmdcbiAgICogdGhhdCBlcnJvciB0byB0aGUgb3V0cHV0IHN0cmVhbSwgKnJlcGxhY2VFcnJvciogd2lsbCBjYWxsIHRoZSBgcmVwbGFjZWBcbiAgICogZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgc3RyZWFtIHRoYXQgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCByZXBsaWNhdGUuXG4gICAqIEFuZCwgaW4gY2FzZSB0aGF0IG5ldyBzdHJlYW0gYWxzbyBlbWl0cyBhbiBlcnJvciwgYHJlcGxhY2VgIHdpbGwgYmUgY2FsbGVkXG4gICAqIGFnYWluIHRvIGdldCBhbm90aGVyIHN0cmVhbSB0byBzdGFydCByZXBsaWNhdGluZy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tLS0tMy0tNC0tLS0tWFxuICAgKiAgIHJlcGxhY2VFcnJvciggKCkgPT4gLS0xMC0tfCApXG4gICAqIC0tMS0tLTItLS0tLTMtLTQtLS0tLS0tLTEwLS18XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXBsYWNlIEEgZnVuY3Rpb24gb2YgdHlwZSBgKGVycikgPT4gU3RyZWFtYCB0aGF0IHRha2VzXG4gICAqIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkIG9uIHRoZSBpbnB1dCBzdHJlYW0gb3Igb24gdGhlIHByZXZpb3VzIHJlcGxhY2VtZW50XG4gICAqIHN0cmVhbSBhbmQgcmV0dXJucyBhIG5ldyBzdHJlYW0uIFRoZSBvdXRwdXQgc3RyZWFtIHdpbGwgYmVoYXZlIGxpa2UgdGhlXG4gICAqIHN0cmVhbSB0aGF0IHRoaXMgZnVuY3Rpb24gcmV0dXJucy5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFJlcGxhY2VFcnJvcjxUPihyZXBsYWNlLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhdHRlbnMgYSBcInN0cmVhbSBvZiBzdHJlYW1zXCIsIGhhbmRsaW5nIG9ubHkgb25lIG5lc3RlZCBzdHJlYW0gYXQgYSB0aW1lXG4gICAqIChubyBjb25jdXJyZW5jeSkuXG4gICAqXG4gICAqIElmIHRoZSBpbnB1dCBzdHJlYW0gaXMgYSBzdHJlYW0gdGhhdCBlbWl0cyBzdHJlYW1zLCB0aGVuIHRoaXMgb3BlcmF0b3Igd2lsbFxuICAgKiByZXR1cm4gYW4gb3V0cHV0IHN0cmVhbSB3aGljaCBpcyBhIGZsYXQgc3RyZWFtOiBlbWl0cyByZWd1bGFyIGV2ZW50cy4gVGhlXG4gICAqIGZsYXR0ZW5pbmcgaGFwcGVucyB3aXRob3V0IGNvbmN1cnJlbmN5LiBJdCB3b3JrcyBsaWtlIHRoaXM6IHdoZW4gdGhlIGlucHV0XG4gICAqIHN0cmVhbSBlbWl0cyBhIG5lc3RlZCBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIHN0YXJ0IGltaXRhdGluZyB0aGF0IG5lc3RlZFxuICAgKiBvbmUuIEhvd2V2ZXIsIGFzIHNvb24gYXMgdGhlIG5leHQgbmVzdGVkIHN0cmVhbSBpcyBlbWl0dGVkIG9uIHRoZSBpbnB1dFxuICAgKiBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIGZvcmdldCB0aGUgcHJldmlvdXMgbmVzdGVkIG9uZSBpdCB3YXMgaW1pdGF0aW5nLCBhbmRcbiAgICogd2lsbCBzdGFydCBpbWl0YXRpbmcgdGhlIG5ldyBuZXN0ZWQgb25lLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS1cbiAgICogICBcXCAgICAgICAgXFxcbiAgICogICAgXFwgICAgICAgLS0tLTEtLS0tMi0tLTMtLVxuICAgKiAgICAtLWEtLWItLS0tYy0tLS1kLS0tLS0tLS1cbiAgICogICAgICAgICAgIGZsYXR0ZW5cbiAgICogLS0tLS1hLS1iLS0tLS0tMS0tLS0yLS0tMy0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBmbGF0dGVuPFI+KHRoaXM6IFN0cmVhbTxTdHJlYW08Uj4gfCBNZW1vcnlTdHJlYW08Uj4+KTogU3RyZWFtPFI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxSPihuZXcgRmxhdHRlbih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VzIHRoZSBpbnB1dCBzdHJlYW0gdG8gYSBjdXN0b20gb3BlcmF0b3IsIHRvIHByb2R1Y2UgYW4gb3V0cHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbXBvc2UqIGlzIGEgaGFuZHkgd2F5IG9mIHVzaW5nIGFuIGV4aXN0aW5nIGZ1bmN0aW9uIGluIGEgY2hhaW5lZCBzdHlsZS5cbiAgICogSW5zdGVhZCBvZiB3cml0aW5nIGBvdXRTdHJlYW0gPSBmKGluU3RyZWFtKWAgeW91IGNhbiB3cml0ZVxuICAgKiBgb3V0U3RyZWFtID0gaW5TdHJlYW0uY29tcG9zZShmKWAuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wZXJhdG9yIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmVhbSBhcyBpbnB1dCBhbmRcbiAgICogcmV0dXJucyBhIHN0cmVhbSBhcyB3ZWxsLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBjb21wb3NlPFU+KG9wZXJhdG9yOiAoc3RyZWFtOiBTdHJlYW08VD4pID0+IFUpOiBVIHtcbiAgICByZXR1cm4gb3BlcmF0b3IodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sIGJ1dCBhbHNvXG4gICAqIHJlbWVtYmVycyB0aGUgbW9zdCByZWNlbnQgZXZlbnQgdGhhdCBoYXBwZW5zIG9uIHRoZSBpbnB1dCBzdHJlYW0sIHNvIHRoYXQgYVxuICAgKiBuZXdseSBhZGRlZCBsaXN0ZW5lciB3aWxsIGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhhdCBtZW1vcmlzZWQgZXZlbnQuXG4gICAqXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFJlbWVtYmVyPFQ+KHRoaXMpKTtcbiAgfVxuXG4gIGRlYnVnKCk6IFN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogc3RyaW5nKTogU3RyZWFtPFQ+O1xuICBkZWJ1ZyhsYWJlbE9yU3B5OiAodDogVCkgPT4gYW55KTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgaWRlbnRpY2FsbHkgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sXG4gICAqIGJ1dCBhbHNvIHJ1bnMgYSBgc3B5YCBmdW5jdGlvbiBmb3IgZWFjaCBldmVudCwgdG8gaGVscCB5b3UgZGVidWcgeW91ciBhcHAuXG4gICAqXG4gICAqICpkZWJ1ZyogdGFrZXMgYSBgc3B5YCBmdW5jdGlvbiBhcyBhcmd1bWVudCwgYW5kIHJ1bnMgdGhhdCBmb3IgZWFjaCBldmVudFxuICAgKiBoYXBwZW5pbmcgb24gdGhlIGlucHV0IHN0cmVhbS4gSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGBzcHlgIGFyZ3VtZW50LFxuICAgKiB0aGVuICpkZWJ1Zyogd2lsbCBqdXN0IGBjb25zb2xlLmxvZ2AgZWFjaCBldmVudC4gVGhpcyBoZWxwcyB5b3UgdG9cbiAgICogdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBldmVudHMgdGhyb3VnaCBzb21lIG9wZXJhdG9yIGNoYWluLlxuICAgKlxuICAgKiBQbGVhc2Ugbm90ZSB0aGF0IGlmIHRoZSBvdXRwdXQgc3RyZWFtIGhhcyBubyBsaXN0ZW5lcnMsIHRoZW4gaXQgd2lsbCBub3RcbiAgICogc3RhcnQsIHdoaWNoIG1lYW5zIGBzcHlgIHdpbGwgbmV2ZXIgcnVuIGJlY2F1c2Ugbm8gYWN0dWFsIGV2ZW50IGhhcHBlbnMgaW5cbiAgICogdGhhdCBjYXNlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLTEtLS0tMi0tLS0tMy0tLS0tNC0tXG4gICAqICAgICAgICAgZGVidWdcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLTQtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbGFiZWxPclNweSBBIHN0cmluZyB0byB1c2UgYXMgdGhlIGxhYmVsIHdoZW4gcHJpbnRpbmdcbiAgICogZGVidWcgaW5mb3JtYXRpb24gb24gdGhlIGNvbnNvbGUsIG9yIGEgJ3NweScgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBldmVudFxuICAgKiBhcyBhcmd1bWVudCwgYW5kIGRvZXMgbm90IG5lZWQgdG8gcmV0dXJuIGFueXRoaW5nLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBkZWJ1ZyhsYWJlbE9yU3B5Pzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IERlYnVnPFQ+KHRoaXMsIGxhYmVsT3JTcHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAqaW1pdGF0ZSogY2hhbmdlcyB0aGlzIGN1cnJlbnQgU3RyZWFtIHRvIGVtaXQgdGhlIHNhbWUgZXZlbnRzIHRoYXQgdGhlXG4gICAqIGBvdGhlcmAgZ2l2ZW4gU3RyZWFtIGRvZXMuIFRoaXMgbWV0aG9kIHJldHVybnMgbm90aGluZy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZXhpc3RzIHRvIGFsbG93IG9uZSB0aGluZzogKipjaXJjdWxhciBkZXBlbmRlbmN5IG9mIHN0cmVhbXMqKi5cbiAgICogRm9yIGluc3RhbmNlLCBsZXQncyBpbWFnaW5lIHRoYXQgZm9yIHNvbWUgcmVhc29uIHlvdSBuZWVkIHRvIGNyZWF0ZSBhXG4gICAqIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2hlcmUgc3RyZWFtIGBmaXJzdCRgIGRlcGVuZHMgb24gc3RyZWFtIGBzZWNvbmQkYFxuICAgKiB3aGljaCBpbiB0dXJuIGRlcGVuZHMgb24gYGZpcnN0JGA6XG4gICAqXG4gICAqIDwhLS0gc2tpcC1leGFtcGxlIC0tPlxuICAgKiBgYGBqc1xuICAgKiBpbXBvcnQgZGVsYXkgZnJvbSAneHN0cmVhbS9leHRyYS9kZWxheSdcbiAgICpcbiAgICogdmFyIGZpcnN0JCA9IHNlY29uZCQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBIb3dldmVyLCB0aGF0IGlzIGludmFsaWQgSmF2YVNjcmlwdCwgYmVjYXVzZSBgc2Vjb25kJGAgaXMgdW5kZWZpbmVkXG4gICAqIG9uIHRoZSBmaXJzdCBsaW5lLiBUaGlzIGlzIGhvdyAqaW1pdGF0ZSogY2FuIGhlbHAgc29sdmUgaXQ6XG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGltcG9ydCBkZWxheSBmcm9tICd4c3RyZWFtL2V4dHJhL2RlbGF5J1xuICAgKlxuICAgKiB2YXIgc2Vjb25kUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIHZhciBmaXJzdCQgPSBzZWNvbmRQcm94eSQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIHNlY29uZFByb3h5JC5pbWl0YXRlKHNlY29uZCQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogV2UgY3JlYXRlIGBzZWNvbmRQcm94eSRgIGJlZm9yZSB0aGUgb3RoZXJzLCBzbyBpdCBjYW4gYmUgdXNlZCBpbiB0aGVcbiAgICogZGVjbGFyYXRpb24gb2YgYGZpcnN0JGAuIFRoZW4sIGFmdGVyIGJvdGggYGZpcnN0JGAgYW5kIGBzZWNvbmQkYCBhcmVcbiAgICogZGVmaW5lZCwgd2UgaG9vayBgc2Vjb25kUHJveHkkYCB3aXRoIGBzZWNvbmQkYCB3aXRoIGBpbWl0YXRlKClgIHRvIHRlbGxcbiAgICogdGhhdCB0aGV5IGFyZSBcInRoZSBzYW1lXCIuIGBpbWl0YXRlYCB3aWxsIG5vdCB0cmlnZ2VyIHRoZSBzdGFydCBvZiBhbnlcbiAgICogc3RyZWFtLCBpdCBqdXN0IGJpbmRzIGBzZWNvbmRQcm94eSRgIGFuZCBgc2Vjb25kJGAgdG9nZXRoZXIuXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSB3aGVyZSBgaW1pdGF0ZSgpYCBpcyBpbXBvcnRhbnQgaW4gQ3ljbGUuanNcbiAgICogYXBwbGljYXRpb25zLiBBIHBhcmVudCBjb21wb25lbnQgY29udGFpbnMgc29tZSBjaGlsZCBjb21wb25lbnRzLiBBIGNoaWxkXG4gICAqIGhhcyBhbiBhY3Rpb24gc3RyZWFtIHdoaWNoIGlzIGdpdmVuIHRvIHRoZSBwYXJlbnQgdG8gZGVmaW5lIGl0cyBzdGF0ZTpcbiAgICpcbiAgICogPCEtLSBza2lwLWV4YW1wbGUgLS0+XG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IGNoaWxkQWN0aW9uUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIGNvbnN0IHBhcmVudCA9IFBhcmVudCh7Li4uc291cmNlcywgY2hpbGRBY3Rpb24kOiBjaGlsZEFjdGlvblByb3h5JH0pO1xuICAgKiBjb25zdCBjaGlsZEFjdGlvbiQgPSBwYXJlbnQuc3RhdGUkLm1hcChzID0+IHMuY2hpbGQuYWN0aW9uJCkuZmxhdHRlbigpO1xuICAgKiBjaGlsZEFjdGlvblByb3h5JC5pbWl0YXRlKGNoaWxkQWN0aW9uJCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBOb3RlLCB0aG91Z2gsIHRoYXQgKipgaW1pdGF0ZSgpYCBkb2VzIG5vdCBzdXBwb3J0IE1lbW9yeVN0cmVhbXMqKi4gSWYgd2VcbiAgICogd291bGQgYXR0ZW1wdCB0byBpbWl0YXRlIGEgTWVtb3J5U3RyZWFtIGluIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgd2Ugd291bGRcbiAgICogZWl0aGVyIGdldCBhIHJhY2UgY29uZGl0aW9uICh3aGVyZSB0aGUgc3ltcHRvbSB3b3VsZCBiZSBcIm5vdGhpbmcgaGFwcGVuc1wiKVxuICAgKiBvciBhbiBpbmZpbml0ZSBjeWNsaWMgZW1pc3Npb24gb2YgdmFsdWVzLiBJdCdzIHVzZWZ1bCB0byB0aGluayBhYm91dFxuICAgKiBNZW1vcnlTdHJlYW1zIGFzIGNlbGxzIGluIGEgc3ByZWFkc2hlZXQuIEl0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgdG9cbiAgICogZGVmaW5lIGEgc3ByZWFkc2hlZXQgY2VsbCBgQTFgIHdpdGggYSBmb3JtdWxhIHRoYXQgZGVwZW5kcyBvbiBgQjFgIGFuZFxuICAgKiBjZWxsIGBCMWAgZGVmaW5lZCB3aXRoIGEgZm9ybXVsYSB0aGF0IGRlcGVuZHMgb24gYEExYC5cbiAgICpcbiAgICogSWYgeW91IGZpbmQgeW91cnNlbGYgd2FudGluZyB0byB1c2UgYGltaXRhdGUoKWAgd2l0aCBhXG4gICAqIE1lbW9yeVN0cmVhbSwgeW91IHNob3VsZCByZXdvcmsgeW91ciBjb2RlIGFyb3VuZCBgaW1pdGF0ZSgpYCB0byB1c2UgYVxuICAgKiBTdHJlYW0gaW5zdGVhZC4gTG9vayBmb3IgdGhlIHN0cmVhbSBpbiB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSB0aGF0XG4gICAqIHJlcHJlc2VudHMgYW4gZXZlbnQgc3RyZWFtLCBhbmQgdGhhdCB3b3VsZCBiZSBhIGNhbmRpZGF0ZSBmb3IgY3JlYXRpbmcgYVxuICAgKiBwcm94eSBTdHJlYW0gd2hpY2ggdGhlbiBpbWl0YXRlcyB0aGUgdGFyZ2V0IFN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJlYW19IHRhcmdldCBUaGUgb3RoZXIgc3RyZWFtIHRvIGltaXRhdGUgb24gdGhlIGN1cnJlbnQgb25lLiBNdXN0XG4gICAqIG5vdCBiZSBhIE1lbW9yeVN0cmVhbS5cbiAgICovXG4gIGltaXRhdGUodGFyZ2V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgTWVtb3J5U3RyZWFtKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIE1lbW9yeVN0cmVhbSB3YXMgZ2l2ZW4gdG8gaW1pdGF0ZSgpLCBidXQgaXQgb25seSAnICtcbiAgICAgICAgJ3N1cHBvcnRzIGEgU3RyZWFtLiBSZWFkIG1vcmUgYWJvdXQgdGhpcyByZXN0cmljdGlvbiBoZXJlOiAnICtcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9zdGFsdHoveHN0cmVhbSNmYXEnKTtcbiAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gICAgZm9yIChsZXQgaWxzID0gdGhpcy5faWxzLCBOID0gaWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBOOyBpKyspIHRhcmdldC5fYWRkKGlsc1tpXSk7XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICAvKipcbiAgICogRm9yY2VzIHRoZSBTdHJlYW0gdG8gZW1pdCB0aGUgZ2l2ZW4gdmFsdWUgdG8gaXRzIGxpc3RlbmVycy5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCBpZiB5b3UgdXNlIHRoaXMsIHlvdSBhcmUgbW9zdCBsaWtlbHkgZG9pbmcgc29tZXRoaW5nXG4gICAqIFRoZSBXcm9uZyBXYXkuIFBsZWFzZSB0cnkgdG8gdW5kZXJzdGFuZCB0aGUgcmVhY3RpdmUgd2F5IGJlZm9yZSB1c2luZyB0aGlzXG4gICAqIG1ldGhvZC4gVXNlIGl0IG9ubHkgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgXCJuZXh0XCIgdmFsdWUgeW91IHdhbnQgdG8gYnJvYWRjYXN0IHRvIGFsbCBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZE5leHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9uKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBnaXZlbiBlcnJvciB0byBpdHMgbGlzdGVuZXJzLlxuICAgKlxuICAgKiBBcyB0aGUgbmFtZSBpbmRpY2F0ZXMsIGlmIHlvdSB1c2UgdGhpcywgeW91IGFyZSBtb3N0IGxpa2VseSBkb2luZyBzb21ldGhpbmdcbiAgICogVGhlIFdyb25nIFdheS4gUGxlYXNlIHRyeSB0byB1bmRlcnN0YW5kIHRoZSByZWFjdGl2ZSB3YXkgYmVmb3JlIHVzaW5nIHRoaXNcbiAgICogbWV0aG9kLiBVc2UgaXQgb25seSB3aGVuIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGVycm9yIFRoZSBlcnJvciB5b3Ugd2FudCB0byBicm9hZGNhc3QgdG8gYWxsIHRoZSBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLl9lKGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBcImNvbXBsZXRlZFwiIGV2ZW50IHRvIGl0cyBsaXN0ZW5lcnMuXG4gICAqXG4gICAqIEFzIHRoZSBuYW1lIGluZGljYXRlcywgaWYgeW91IHVzZSB0aGlzLCB5b3UgYXJlIG1vc3QgbGlrZWx5IGRvaW5nIHNvbWV0aGluZ1xuICAgKiBUaGUgV3JvbmcgV2F5LiBQbGVhc2UgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJlYWN0aXZlIHdheSBiZWZvcmUgdXNpbmcgdGhpc1xuICAgKiBtZXRob2QuIFVzZSBpdCBvbmx5IHdoZW4geW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLlxuICAgKi9cbiAgc2hhbWVmdWxseVNlbmRDb21wbGV0ZSgpIHtcbiAgICB0aGlzLl9jKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIFwiZGVidWdcIiBsaXN0ZW5lciB0byB0aGUgc3RyZWFtLiBUaGVyZSBjYW4gb25seSBiZSBvbmUgZGVidWdcbiAgICogbGlzdGVuZXIsIHRoYXQncyB3aHkgdGhpcyBpcyAnc2V0RGVidWdMaXN0ZW5lcicuIFRvIHJlbW92ZSB0aGUgZGVidWdcbiAgICogbGlzdGVuZXIsIGp1c3QgY2FsbCBzZXREZWJ1Z0xpc3RlbmVyKG51bGwpLlxuICAgKlxuICAgKiBBIGRlYnVnIGxpc3RlbmVyIGlzIGxpa2UgYW55IG90aGVyIGxpc3RlbmVyLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgYVxuICAgKiBkZWJ1ZyBsaXN0ZW5lciBpcyBcInN0ZWFsdGh5XCI6IGl0cyBwcmVzZW5jZS9hYnNlbmNlIGRvZXMgbm90IHRyaWdnZXIgdGhlXG4gICAqIHN0YXJ0L3N0b3Agb2YgdGhlIHN0cmVhbSAob3IgdGhlIHByb2R1Y2VyIGluc2lkZSB0aGUgc3RyZWFtKS4gVGhpcyBpc1xuICAgKiB1c2VmdWwgc28geW91IGNhbiBpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gd2l0aG91dCBjaGFuZ2luZyB0aGUgYmVoYXZpb3JcbiAgICogb2YgdGhlIHByb2dyYW0uIElmIHlvdSBoYXZlIGFuIGlkbGUgc3RyZWFtIGFuZCB5b3UgYWRkIGEgbm9ybWFsIGxpc3RlbmVyIHRvXG4gICAqIGl0LCB0aGUgc3RyZWFtIHdpbGwgc3RhcnQgZXhlY3V0aW5nLiBCdXQgaWYgeW91IHNldCBhIGRlYnVnIGxpc3RlbmVyIG9uIGFuXG4gICAqIGlkbGUgc3RyZWFtLCBpdCB3b24ndCBzdGFydCBleGVjdXRpbmcgKG5vdCB1bnRpbCB0aGUgZmlyc3Qgbm9ybWFsIGxpc3RlbmVyXG4gICAqIGlzIGFkZGVkKS5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCB3ZSBkb24ndCByZWNvbW1lbmQgdXNpbmcgdGhpcyBtZXRob2QgdG8gYnVpbGQgYXBwXG4gICAqIGxvZ2ljLiBJbiBmYWN0LCBpbiBtb3N0IGNhc2VzIHRoZSBkZWJ1ZyBvcGVyYXRvciB3b3JrcyBqdXN0IGZpbmUuIE9ubHkgdXNlXG4gICAqIHRoaXMgb25lIGlmIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgc2V0RGVidWdMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFsaXN0ZW5lcikge1xuICAgICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fZGwgPSBOTyBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kID0gdHJ1ZTtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fbiA9IGxpc3RlbmVyLm5leHQgfHwgbm9vcDtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fZSA9IGxpc3RlbmVyLmVycm9yIHx8IG5vb3A7XG4gICAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgICAgdGhpcy5fZGwgPSBsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVtb3J5U3RyZWFtPFQ+IGV4dGVuZHMgU3RyZWFtPFQ+IHtcbiAgcHJpdmF0ZSBfdj86IFQ7XG4gIHByaXZhdGUgX2hhcz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJvZHVjZXI6IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICBzdXBlcihwcm9kdWNlcik7XG4gIH1cblxuICBfbih4OiBUKSB7XG4gICAgdGhpcy5fdiA9IHg7XG4gICAgdGhpcy5faGFzID0gdHJ1ZTtcbiAgICBzdXBlci5fbih4KTtcbiAgfVxuXG4gIF9hZGQoaWw6IEludGVybmFsTGlzdGVuZXI8VD4pOiB2b2lkIHtcbiAgICBjb25zdCB0YSA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAodGEpIHJldHVybiB0YS5fYWRkKGlsKTtcbiAgICBjb25zdCBhID0gdGhpcy5faWxzO1xuICAgIGEucHVzaChpbCk7XG4gICAgaWYgKGEubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc3RvcElEICE9PSBOTykge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N0b3BJRCk7XG4gICAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpOyBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICB0aGlzLl9oYXMgPSBmYWxzZTtcbiAgICBzdXBlci5fc3RvcE5vdygpO1xuICB9XG5cbiAgX3goKTogdm9pZCB7XG4gICAgdGhpcy5faGFzID0gZmFsc2U7XG4gICAgc3VwZXIuX3goKTtcbiAgfVxuXG4gIG1hcDxVPihwcm9qZWN0OiAodDogVCkgPT4gVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcChwcm9qZWN0KSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHN1cGVyLm1hcFRvKHByb2plY3RlZFZhbHVlKSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICB0YWtlKGFtb3VudDogbnVtYmVyKTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIudGFrZShhbW91bnQpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIGVuZFdoZW4ob3RoZXI6IFN0cmVhbTxhbnk+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZW5kV2hlbihvdGhlcikgYXMgTWVtb3J5U3RyZWFtPFQ+O1xuICB9XG5cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIucmVwbGFjZUVycm9yKHJlcGxhY2UpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWJ1ZygpOiBNZW1vcnlTdHJlYW08VD47XG4gIGRlYnVnKGxhYmVsT3JTcHk6IHN0cmluZyk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogKHQ6IFQpID0+IGFueSk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweT86IHN0cmluZyB8ICgodDogVCkgPT4gYW55KSB8IHVuZGVmaW5lZCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlYnVnKGxhYmVsT3JTcHkgYXMgYW55KSBhcyBNZW1vcnlTdHJlYW08VD47XG4gIH1cbn1cblxuZXhwb3J0IHsgTk8sIE5PX0lMIH07XG5jb25zdCB4cyA9IFN0cmVhbTtcbnR5cGUgeHM8VD4gPSBTdHJlYW08VD47XG5leHBvcnQgZGVmYXVsdCB4cztcbiJdfQ==","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(3607);\n"],"names":["root","factory","exports","module","define","amd","self","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","__esModule","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","prototype","obj","_typeof","Symbol","iterator","constructor","decompress","compress","codecimpl_1","compressBatch","proof","centries","lookup","registry","Map","entry","entries","exist","centry","compressExist","push","nonexist","Error","non","left","right","lookupInners","path","map","inner","sig","ics23","InnerOp","encode","finish","idx","get","set","leaf","decompressBatch","comp","decompressExist","batch","compressed","valuesById","values","$protobuf","$Reader","Reader","$Writer","Writer","$util","util","$root","roots","HashOp","create","LengthOp","ExistenceProof","properties","keys","newBuffer","emptyArray","message","writer","hasOwnProperty","uint32","bytes","LeafOp","fork","ldelim","encodeDelimited","decode","reader","end","len","pos","tag","skipType","decodeDelimited","verify","isString","Array","isArray","fromObject","object","base64","toObject","options","arrays","defaults","String","slice","call","j","toJSON","toJSONOptions","NonExistenceProof","CommitmentProof","$oneOfFields","oneOfGetter","oneOfSetter","BatchProof","CompressedBatchProof","oneofs","hash","prehashKey","prehashValue","prefix","int32","enums","suffix","ProofSpec","leafSpec","innerSpec","maxDepth","minDepth","InnerSpec","isInteger","childOrder","childSize","minPrefixLength","maxPrefixLength","emptyChild","end2","BatchEntry","CompressedBatchEntry","CompressedExistenceProof","CompressedNonExistenceProof","batchVerifyNonMembership","batchVerifyMembership","verifyNonMembership","verifyMembership","compress_1","proofs_1","specs_1","spec","match","p","bytesEqual","x","find","getExistForKey","verifyExistence","_a","bytesBefore","getNonExistForKey","verifyNonExistence","items","norm","tendermintSpec","iavlSpec","calculateExistenceRoot","ics23_1","doHash","applyInner","applyLeaf","ripemd160_1","sha256_1","sha512_1","ensure","maybe","pkey","prepareLeafData","ensureHash","ensureLength","pvalue","data","Uint8Array","ensureBytes","child","preimage","h","NO_HASH","l","NO_PREFIX","b","hashOp","lengthOp","doHashOrNoop","VAR_PROTO","encodeVarintProto","REQUIRE_32_BYTES","REQUIRE_64_BYTES","FIXED32_LITTLE","encodeFixed32Le","doLengthOp","SHA256","sha256","SHA512","sha512","RIPEMD160","ripemd160","BITCOIN","SHA512_256","sha512_256","n","enc","Math","abs","floor","ensureLeftNeighbor","ensureSpec","smtSpec","ops_1","calc","ensureBytesEqual","res","ensureLeaf","ensureInner","ensureLeftMost","minPrefix","maxPrefix","getPadding","step","hasPadding","ensureRightMost","mutleft","mutright","topleft","pop","topright","leftidx","orderFromPadding","isLeftStep","branch","op","order","findIndex","val","getPosition","from","leftKey","rightKey","ensureBytesBefore","a","first","last","min","check","ensurePrefix","hasPrefix","maxLeftChildBytes","protobuf","configure","_configure","BufferWriter","BufferReader","build","rpc","LongBits","utf8","indexOutOfRange","writeLength","RangeError","buffer","buf","create_array","Buffer","isBuffer","readLongVarint","bits","lo","hi","readFixed32_end","readFixed64","_slice","subarray","sint32","bool","fixed32","sfixed32","float","readFloatLE","double","readDoubleLE","start","string","read","skip","wireType","BufferReader_","Long","merge","int64","uint64","sint64","zzDecode","fixed64","sfixed64","utf8Slice","toString","Service","rpcImpl","requestDelimited","responseDelimited","EventEmitter","Boolean","rpcCall","method","requestCtor","responseCtor","request","callback","asPromise","response","emit","setTimeout","endedByRPC","off","zero","toNumber","zzEncode","zeroHash","fromNumber","sign","parseInt","fromString","low","high","unsigned","toLong","charCodeAt","fromHash","toHash","fromCharCode","mask","part0","part1","part2","dst","src","ifNotSet","newError","name","CustomError","captureStackTrace","stack","inquire","pool","isNode","g","process","versions","node","global","window","freeze","emptyObject","Number","isFinite","isObject","isset","isSet","prop","utf8Write","e","_Buffer_from","_Buffer_allocUnsafe","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","fromBits","lcFirst","str","charAt","toLowerCase","substring","ProtocolError","fieldNames","fieldMap","longs","json","encoding","allocUnsafe","size","Op","next","noop","State","head","tail","states","writeByte","VarintOp","writeVarint64","writeFixed32","alloc","_push","writeFloatLE","writeDoubleLE","writeBytes","write","reset","BufferWriter_","writeStringBuffer","writeBytesBuffer","copy","byteLength","pubkeyToAddress","pubkeyToRawAddress","rawSecp256k1PubkeyToRawAddress","rawEd25519PubkeyToRawAddress","crypto_1","encoding_1","encoding_2","pubkeys_1","pubkeyData","pubkey","isSecp256k1Pubkey","fromBase64","isEd25519Pubkey","isMultisigThresholdPubkey","encodeAminoPubkey","toBech32","parseCoins","coins","coin","math_1","amount","denom","outAmount","Uint53","_err","replace","input","split","filter","part","Uint64","encodeBech32Pubkey","decodeBech32Pubkey","decodeAminoPubkey","encodeSecp256k1Pubkey","utils_1","type","pubkeyType","secp256k1","toBase64","pubkeyAminoPrefixSecp256k1","fromHex","pubkeyAminoPrefixEd25519","pubkeyAminoPrefixSr25519","pubkeyAminoPrefixMultisigThreshold","arrayContentStartsWith","rest","ed25519","sr25519","prefixFromReader","splice","shift","threshold","thresholdBytesLength","decodeUvarint","pubkeys","pubkeyLength","pubkeyLengthBytesSize","encodedPubkey","multisigThreshold","decodeMultisigPubkey","toHex","encodeUvarint","checked","out","bechEncoded","fromBech32","executeKdf","makeStdTx","isStdTx","serializeSignDoc","makeSignDoc","encodeSecp256k1Signature","decodeSignature","Secp256k1Wallet","Secp256k1HdWallet","extractKdfConfiguration","isSinglePubkey","makeCosmoshubPath","createMultisigThresholdPubkey","addresses_1","coins_1","multisig_1","paths_1","secp256k1hdwallet_1","secp256k1wallet_1","signature_1","signdoc_1","stdtx_1","wallet_1","compareArrays","aHex","bHex","nosort","uintThreshold","outPubkeys","sort","lhs","rhs","Slip10RawIndex","hardened","normal","includes","serializationTypeV1","basicPasswordHashingOptions","algorithm","params","outputLength","opsLimit","memLimitKib","serialization","JSON","parse","isNonNullObject","kdf","defaultOptions","bip39Password","hdPaths","mnemonic","_b","secret","seed","accounts","hdPath","static","mnemonicChecked","EnglishMnemonic","Bip39","mnemonicToSeed","entropyLength","entropy","Random","getBytes","fromMnemonic","password","deserializeTypeV1","encryptionKey","untypedRoot","decryptedBytes","decrypt","encryption","decryptedDocument","fromUtf8","assert","every","account","isDerivationJson","thing","firstPrefix","stringToPath","deserializeWithEncryptionKey","async","getAccountsWithPrivkeys","algo","address","signerAddress","signDoc","privkey","signature","Secp256k1","createSignature","signatureBytes","r","s","signed","kdfConfiguration","serializeWithEncryptionKey","dataToEncrypt","pathToString","dataToEncryptRaw","toUtf8","stringify","encryptionConfiguration","supportedAlgorithms","xchacha20poly1305Ietf","encryptedData","encrypt","Slip10","derivePath","Slip10Curve","makeKeypair","compressPubkey","all","getKeyPair","uncompressed","Sha256","digest","pub_key","sortedJsonStringify","sortedObject","sortedKeys","result","forEach","msgs","fee","chainId","memo","accountNumber","sequence","chain_id","account_number","txValue","msg","signatures","content","cosmjsSalt","toAscii","configuration","isArgon2idOptions","Argon2id","execute","plaintext","config","nonce","xchacha20NonceLength","Xchacha20poly1305Ietf","ciphertext","__importDefault","mod","cosmWasmTypes","long_1","aminoType","toAmino","sender","wasmByteCode","wasm_byte_code","fromAmino","instantiatePermission","codeId","label","funds","admin","code_id","default","newAdmin","contract","new_admin","CosmWasmClient","stargate_1","tendermint_rpc_1","types_1","queries_1","tmClient","codesCache","queryClient","QueryClient","withExtensions","setupAuthExtension","setupBankExtension","setupWasmExtension","setupTxExtension","endpoint","Tendermint34Client","connect","getTmClient","forceGetTmClient","getQueryClient","forceGetQueryClient","status","nodeInfo","network","syncInfo","latestBlockHeight","searchAddress","auth","accountFromAny","test","getAccount","height","block","id","blockId","toUpperCase","header","version","app","time","toRfc3339WithNanoseconds","txs","searchDenom","bank","balance","txsQuery","query","minHeight","maxHeight","MAX_SAFE_INTEGER","withFilters","originalQuery","isSearchByHeightQuery","isSearchBySentFromOrToQuery","sentQuery","sentFromOrTo","receivedQuery","sent","received","rawQuery","sentHashes","t","isSearchByTagsQuery","tags","join","tx","disconnect","timeoutMs","pollIntervalMs","timedOut","txPollTimeout","pollForTx","txId","TimeoutError","sleep","getTx","code","rawLog","transactionHash","gasUsed","gasWanted","broadcasted","broadcastTxSync","codeSpace","log","transactionId","clearTimeout","codeInfos","wasm","listCodeInfo","creator","dataHash","checksum","cached","codeInfo","getCode","codeDetails","contracts","listContractsByCodeId","retrievedAddress","contractInfo","getContractInfo","ibcPortId","getContractCodeHistory","operations","ContractCodeHistoryOperationType","CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT","CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS","CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE","operation","fromAscii","getContract","queryContractRaw","queryMsg","queryContractSmart","startsWith","txSearchAll","isMsgExecuteEncodeObject","isMsgMigrateEncodeObject","isMsgClearAdminEncodeObject","isMsgUpdateAdminEncodeObject","isMsgInstantiateContractEncodeObject","isMsgStoreCodeEncodeObject","encodeObject","typeUrl","fromBinary","toBinary","SigningCosmWasmClient","aminotypes_1","cosmwasmclient_1","encodeobjects_1","signingcosmwasmclient_1","wasm_1","query_1","base","createProtobufRpcClient","queryService","QueryClientImpl","paginationKey","pagination","createPagination","Codes","Code","ContractsByCode","ContractInfo","ContractHistory","getAllContractState","AllContractState","queryData","RawContractState","SmartContractState","responseText","amino_1","proto_signing_1","tx_1","tx_2","signing_1","tx_3","tx_4","pako_1","createDeliverTxResponseErrorMessage","createDefaultRegistry","Registry","defaultRegistryTypes","register","MsgClearAdmin","MsgExecuteContract","MsgMigrateContract","MsgStoreCode","MsgInstantiateContract","MsgUpdateAdmin","signer","super","aminoTypes","AminoTypes","additions","broadcastTimeoutMs","broadcastPollIntervalMs","gasPrice","messages","anyMsgs","m","encodeAsAny","accountFromSigner","getAccounts","getSequence","gasInfo","simulate","assertDefined","senderAddress","wasmCode","gzip","level","storeCodeMsg","fromPartial","signAndBroadcast","isDeliverTxFailure","parsedLogs","logs","parseRawLog","codeIdAttr","findAttribute","originalSize","originalChecksum","compressedSize","compressedChecksum","instantiateContractMsg","contractAddress","updateAdminMsg","clearAdminMsg","migrateMsg","migrateContractMsg","executeContractMsg","recipientAddress","sendMsg","fromAddress","toAddress","delegatorAddress","validatorAddress","delegateMsg","MsgDelegate","undelegateMsg","MsgUndelegate","withdrawDelegatorRewardMsg","MsgWithdrawDelegatorReward","usedFee","gasEstimation","muliplier","calculateFee","round","txRaw","txBytes","TxRaw","broadcastTx","explicitSignerData","signerData","getChainId","isOfflineDirectSigner","signDirect","signAmino","encodePubkey","signMode","SignMode","SIGN_MODE_LEGACY_AMINO_JSON","signedTxBody","signedTxBodyBytes","signedGasLimit","Int53","gas","signedSequence","signedAuthInfoBytes","makeAuthInfoBytes","bodyBytes","authInfoBytes","txBody","txBodyBytes","gasLimit","mnemonicToEntropy","entropyToMnemonic","pbkdf2_1","sha_1","wordlist","bytesToBitstring","byte","padStart","deriveChecksumBits","checksumLengthBits","bitstringToByte","bin","allowedEntropyLengths","allowedWordLengths","indexOf","binary","index","normalize","words","word","dividerIndex","entropyBits","checksumBits","entropyBytes","mnemonicMatcher","allowedWordsLengths","mnemonicBytes","salt","saltBytes","pbkdf2Sha512","Hmac","hashFunctionConstructor","originalKey","blockSize","update","zeroPadding","oKeyPad","keyByte","iKeyPad","messageHasher","innerHash","slip10CurveFromString","Sha512","Secp256k1Signature","ExtendedSecp256k1Signature","Ripemd160","Ed25519Keypair","Ed25519","keccak256","Keccak256","bip39_1","hmac_1","keccak_1","libsodium_1","random_1","ripemd_1","secp256k1_1","secp256k1signature_1","slip10_1","sha3_1","firstData","impl","keccak_256","toRealUint8Array","libsodium_wrappers_1","ready","crypto_pwhash","crypto_pwhash_ALG_ARGON2ID13","libsodiumPrivkey","toLibsodiumPrivkey","keypair","crypto_sign_seed_keypair","fromLibsodiumPrivkey","privateKey","keyPair","crypto_sign_detached","crypto_sign_verify_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_decrypt","__createBinding","o","k","k2","__setModuleDefault","v","__importStar","pbkdf2Sha512Noble","pbkdf2Sha512Crypto","pbkdf2Sha512Subtle","getSubtle","getCryptoModule","crypto","globalThis","subtle","webcrypto","iterations","keylen","importKey","deriveBits","pbkdf2","pbkdf2Async","c","dkLen","count","globalObject","cryptoApi","msCrypto","getRandomValues","randomBytes","bn_js_1","elliptic_1","ec","secp256k1N","keyFromPrivate","validate","gte","getPrivate","getPublic","messageHash","recoveryParam","canonical","toArray","keyFromPublic","toDer","signatureForElliptic","point","recoverPubKey","recovery","trimLeadingNullBytes","inData","numberOfLeadingNullBytes","bodyLength","rLength","rData","sLength","sData","paddingLength","padding","toFixedLength","rEncoded","sEncoded","curveString","Uint32","hardenedIndex","normalIndex","isHardened","curve","master","rawIndex","chainCode","il","ir","isZero","isGteN","parentPrivkey","parentChainCode","payload","toBytesBigEndian","serializedPoint","childImpl","mul","encodeCompressed","returnChainCode","returnChildKeyAsNumber","add","returnChildKey","newI","reduce","current","component","fullMatch","numberString","apostrophe","charCode","listOfNumbers","base64js","fromByteArray","base64String","toByteArray","Bech32","bech32","limit","toWords","Infinity","decodedAddress","fromWords","hexstring","hexByteAsString","toRfc3339","fromRfc3339","ascii_1","base64_1","bech32_1","hex_1","rfc3339_1","utf8_1","rfc3339Matcher","padded","integer","filled","matches","exec","year","month","day","hour","minute","second","milliSeconds","tzOffsetSign","tzOffsetHours","tzOffsetMinutes","tzOffset","timestamp","Date","UTC","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","TextEncoder","TextDecoder","fatal","FaucetClient","axios_1","baseUrl","strippedBaseUrl","body","post","faucetclient_1","isJsonCompatibleValue","isJsonCompatibleArray","isJsonCompatibleDictionary","item","makeJsonRpcId","counter","jsonRpcCode","isJsonRpcSuccessResponse","isJsonRpcErrorResponse","parseJsonRpcSuccessResponse","parseJsonRpcResponse","parseJsonRpcRequest","parseJsonRpcId","parseJsonRpcErrorResponse","JsonRpcClient","id_1","jsonrpcclient_1","parse_1","stream_1","connection","filteredStream","responseStream","pendingResponses","firstEvent","sendRequest","compatibility_1","parseError","maybeUndefinedData","jsonrpc","_","invalidRequest","methodNotFound","invalidParams","internalError","serverError","LedgerSigner","LedgerConnector","ledgerconnector_1","ledgersigner_1","ledger_cosmos_js_1","semver_1","unharden","cosmosHdPath","transport","_c","_d","_e","testModeAllowed","ledgerAppName","requiredLedgerAppVersion","minLedgerAppVersion","verifyCosmosAppIsOpen","getVersion","handleLedgerErrors","major","minor","patch","test_mode","testMode","verifyAppMode","verifyDeviceIsReady","hdPathToUse","publicKey","compressed_pk","promise","getPubkey","pubkeyToUse","fromDer","appInfo","appName","getCosmosAppVersion","getOpenAppName","verifyAppVersion","showAddressAndPubKey","error_message","errorMessage","device_locked","deviceLocked","rejectionMessage","connector","getPubkeys","getCosmosAddress","showAddress","accountIndex","accountForAddress","Decimal","atomics","fractionalDigits","verifyFractionalDigits","badCharacter","whole","fractional","search","parts","quantity","padEnd","cmp","factor","pow","div","trimmedFractionalPart","toFloatApproximation","isNaN","plus","sum","minus","difference","sub","ltn","multiply","product","equals","compare","isLessThan","isLessThanOrEqual","isGreaterThan","isGreaterThanOrEqual","decimal_1","integers_1","uint64MaxValue","fromBytes","endianess","beBytes","reverse","toBytesLittleEndian","MIN_SAFE_INTEGER","isNeg","gt","bigint","decodeTxRaw","authInfo","AuthInfo","TxBody","DirectSecp256k1HdWallet","signBytes","makeSignBytes","hashedMessage","DirectSecp256k1Wallet","isTxBodyEncodeObject","isTsProtoGeneratedType","isPbjsGeneratedType","decodePubkey","decode_1","directsecp256k1hdwallet_1","directsecp256k1wallet_1","pubkey_1","registry_1","signer_1","keys_1","keys_2","any_1","decodeSinglePubkey","PubKey","pubkeyProto","Any","LegacyAminoPubKey","publicKeys","coin_1","defaultTypeUrls","cosmosCoin","cosmosMsgSend","cosmosTxBody","googleAny","customTypes","types","Coin","MsgSend","lookupType","lookupTypeWithError","encodeTxBody","binaryValue","txBodyFields","wrappedMessages","decodeTxBody","decoded","decodedTxBody","makeSignerInfos","signers","modeInfo","single","mode","feeAmount","SIGN_MODE_DIRECT","signerInfos","SignDoc","StreamingSocket","SocketWrapper","ReconnectingSocket","QueueingStreamingSocket","ConnectionStatus","queueingstreamingsocket_1","reconnectingsocket_1","socketwrapper_1","streamingsocket_1","xstream_1","url","timeout","reconnectedHandler","queue","isProcessingQueue","eventProducer","listener","eventProducerListener","stop","events","Stream","connectionStatusProducer","DefaultValueProducer","Unconnected","connectionStatus","ValueAndUpdates","socket","subscribe","event","Disconnected","Connecting","connected","Connected","processQueue","reconnect","getQueueLength","queueRequest","send","unshift","unconnected","disconnected","timeoutIndex","reconnectTimeout","updates","calculateTimeout","complete","isomorphic_ws_1","messageHandler","errorHandler","openHandler","closeHandler","closed","connectedResolver","connectedRejecter","onerror","onmessage","messageEvent","onopen","onclose","closeEvent","started","now","timeoutId","close","elapsed","readyState","OPEN","CLOSED","CONNECTING","wasClean","CLOSING","errorEvent","auth_1","vesting_1","uint64FromProto","accountFromBaseAccount","pubKey","_f","_g","BaseAccount","baseAccount","ModuleAccount","BaseVestingAccount","ContinuousVestingAccount","baseVestingAccount","DelayedVestingAccount","PeriodicVestingAccount","isAminoMsgTransfer","isAminoMsgUndelegate","isAminoMsgBeginRedelegate","isAminoMsgDelegate","isAminoMsgEditValidator","isAminoMsgCreateValidator","isAminoMsgUnjail","isAminoMsgDeposit","isAminoMsgVote","isAminoMsgSubmitProposal","isAminoMsgSubmitEvidence","isAminoMsgFundCommunityPool","isAminoMsgWithdrawValidatorCommission","isAminoMsgWithdrawDelegatorReward","isAminoMsgSetWithdrawAddress","isAminoMsgVerifyInvariant","isAminoMsgMultiSend","isAminoMsgSend","gov_1","omitDefault","isLong","isAminoConverter","converter","defaultTypes","from_address","to_address","inputs","outputs","output","depositor","withdrawAddress","delegator_address","withdraw_address","validator_address","proposalId","proposal_id","option","voter","voteOptionFromJSON","initialDeposit","proposer","proposal","assertDefinedAndNotNull","textProposal","TextProposal","description","title","initial_deposit","any_content","validatorSrcAddress","validatorDstAddress","validator_src_address","validator_dst_address","commission","minSelfDelegation","moniker","identity","website","security_contact","securityContact","details","rate","max_rate","maxRate","max_change_rate","maxChangeRate","min_self_delegation","decodedPubkey","commissionRate","commission_rate","sourcePort","sourceChannel","token","receiver","timeoutHeight","timeoutTimestamp","source_port","source_channel","timeout_height","revision_height","revisionHeight","revision_number","revisionNumber","timeout_timestamp","createDefaultTypes","_typeUrl","_value","isMsgVoteEncodeObject","isMsgSubmitProposalEncodeObject","isMsgDepositEncodeObject","isMsgTransferEncodeObject","isMsgWithdrawDelegatorRewardEncodeObject","isMsgUndelegateEncodeObject","isMsgDelegateEncodeObject","isMsgSendEncodeObject","GasPrice","matchResult","checkDenom","decimalAmount","fromUserInput","processedGasPrice","gasPriceAmount","ceil","assertIsDeliverTxSuccess","assertIsDeliverTxFailure","SigningStargateClient","setupStakingExtension","setupMintExtension","setupIbcExtension","setupGovExtension","setupDistributionExtension","decodeCosmosSdkDecFromProto","makeMultisignedTx","StargateClient","isDeliverTxSuccess","accounts_1","aminomsgs_1","fee_1","multisignature_1","search_1","signingstargateclient_1","stargateclient_1","parseLogs","parseLog","parseEvent","parseAttribute","attributes","msg_index","eventType","attrKey","firstLogs","attr","makeCompactBitArray","byteCount","extraBits","bytePos","bitPos","CompactBitArray","elems","extraBitsStored","multisigPubkey","addresses","fill","signaturesList","signerInfo","multi","bitarray","modeInfos","MultiSignature","Account","utils_2","Balance","allBalances","balances","AllBalances","totalSupply","supply","TotalSupply","supplyOf","SupplyOf","denomMetadata","metadata","DenomMetadata","denomsMetadata","metadatas","DenomsMetadata","distribution","communityPool","CommunityPool","delegationRewards","DelegationRewards","delegationTotalRewards","DelegationTotalRewards","delegatorValidators","DelegatorValidators","delegatorWithdrawAddress","DelegatorWithdrawAddress","Params","validatorCommission","ValidatorCommission","validatorOutstandingRewards","ValidatorOutstandingRewards","validatorSlashes","startingHeight","endingHeight","ValidatorSlashes","gov","parametersType","paramsType","proposals","proposalStatus","depositorAddress","voterAddress","Proposals","Proposal","longify","deposits","Deposits","deposit","Deposit","tally","TallyResult","votes","Votes","vote","Vote","channel_1","query_2","query_3","query_4","tendermint_1","decodeTendermintClientStateAny","clientState","ClientState","channelQueryService","clientQueryService","connectionQueryService","transferQueryService","ibc","channel","portId","channelId","Channel","channels","Channels","allChannels","nextKey","connectionChannels","ConnectionChannels","allConnectionChannels","ChannelClientState","consensusState","ChannelConsensusState","packetCommitment","PacketCommitment","packetCommitments","PacketCommitments","allPacketCommitments","commitments","packetReceipt","PacketReceipt","packetAcknowledgement","PacketAcknowledgement","packetAcknowledgements","PacketAcknowledgements","allPacketAcknowledgements","acknowledgements","unreceivedPackets","packetCommitmentSequences","UnreceivedPackets","unreceivedAcks","packetAckSequences","UnreceivedAcks","nextSequenceReceive","NextSequenceReceive","client","state","clientId","ClientStates","allStates","clientStates","consensusHeight","ConsensusState","QueryConsensusStateRequest","latestHeight","consensusStates","ConsensusStates","allConsensusStates","ClientParams","stateTm","statesTm","allStatesTm","consensusStateTm","decodeTendermintConsensusStateAny","connectionId","Connection","connections","Connections","allConnections","clientConnections","ClientConnections","ConnectionClientState","ConnectionConsensusState","QueryConnectionConsensusStateRequest","transfer","denomTrace","DenomTrace","denomTraces","DenomTraces","allDenomTraces","verified","responseData","queryVerified","setupSlashingExtension","queryclient_1","bank_1","distribution_1","ibc_1","mint_1","slashing_1","staking_1","__1","mint","blocksPerYear","goalBonded","inflationMin","inflationMax","inflationRateChange","mintDenom","inflation","Inflation","annualProvisions","AnnualProvisions","checkAndParseOp","kind","arrayContentEquals","extensionSetups","extensions","setupExtension","extension","moduleKey","moduleValue","store","desiredHeight","queryRawProof","subProof","ops","storeProof","getNextHeader","appHash","queryKey","abciQuery","prove","searchHeight","nextHeader","headersSubscription","subscribeNewBlockHeader","firstHeader","correctHeader","blockchain","blockMetas","meta","slashing","signingInfo","consAddress","SigningInfo","signingInfos","SigningInfos","staking","delegation","Delegation","delegatorAddr","validatorAddr","delegatorDelegations","DelegatorDelegations","delegatorUnbondingDelegations","DelegatorUnbondingDelegations","delegatorValidator","DelegatorValidator","historicalInfo","HistoricalInfo","Pool","redelegations","sourceValidatorAddress","destinationValidatorAddress","Redelegations","srcValidatorAddr","dstValidatorAddr","unbondingDelegation","UnbondingDelegation","validator","Validator","validatorDelegations","ValidatorDelegations","validators","Validators","validatorUnbondingDelegations","ValidatorUnbondingDelegations","service_1","ServiceClientImpl","GetTx","SimulateRequest","Tx","Fee","SIGN_MODE_UNSPECIFIED","Simulate","toAccAddress","pagination_1","PageRequest","offset","countTotal","service","queryUnverified","checkedValue","fromBytesBE","asString","fromAtomics","tx_5","tx_6","tx_7","tx_8","tx_9","tx_10","tx_11","MsgExec","MsgGrant","MsgRevoke","MsgMultiSend","MsgFundCommunityPool","MsgSetWithdrawAddress","MsgWithdrawValidatorCommission","MsgGrantAllowance","MsgRevokeAllowance","MsgDeposit","MsgSubmitProposal","MsgVote","MsgBeginRedelegate","MsgCreateValidator","MsgEditValidator","MsgTransfer","MsgAcknowledgement","MsgChannelCloseConfirm","MsgChannelCloseInit","MsgChannelOpenAck","MsgChannelOpenConfirm","MsgChannelOpenInit","MsgChannelOpenTry","MsgRecvPacket","MsgTimeout","MsgTimeoutOnClose","MsgCreateClient","MsgSubmitMisbehaviour","MsgUpdateClient","MsgUpgradeClient","MsgConnectionOpenAck","MsgConnectionOpenConfirm","MsgConnectionOpenInit","MsgConnectionOpenTry","withdrawMsg","transferAmount","timeoutTimestampNanoseconds","transferMsg","signedTxBodyEncodeObject","txBodyEncodeObject","delegatedAmount","delegationResponse","concat","streams","subscriptions","queues","completedStreams","Set","activeStreamIndex","unsubscribe","clear","producer","emitAllQueuesEvents","streamIndex","element","isDone","stream","has","callbacks","internalValue","onStarted","onStop","dropDuplicates","valueToKey","instream","emittedKeys","debug","__exportStar","toListPromise","fromListPromise","concat_1","defaultvalueproducer_1","dropduplicates_1","promise_1","valueandupdates_1","take","iterable","catch","lastValue","asArray","countStream","Reducer","reducer","initState","completed","subscription","evt","increment","append","list","MemoryStream","createWithMemory","searchImplementation","newValue","DateTime","toSeconds","fromSeconds","fromRfc3339WithNanoseconds","dateTimeString","nanosecondsMatch","nanoseconds","dateTime","millisecondIso","toISOString","seconds","nanos","checkedNanos","getTime","BlockIdFlag","tendermint34","VoteType","SubscriptionEventType","Method","broadcastTxSyncSuccess","broadcastTxCommitSuccess","WebsocketClient","HttpClient","dates_1","rpcclients_1","tendermint34_1","tendermint34_2","createJsonRpcRequest","numbersWithoutZero","paramsCopy","random","http","json_rpc_1","rpcclient_1","filterBadStatus","fetch","hasProtocol","instanceOfRpcStreamingClient","httpclient_1","websocketclient_1","listen","socket_1","defaultErrorHandler","toJsonRpcResponse","RpcEventProducer","running","connectToClient","endRequest","idSubscription","closeSubscriptions","idEventSubscription","nonResponseSubscription","onError","subscriptionStreams","endsWith","cleanBaseUrl","errorSubscription","jsonRpcResponseStream","pendingResponse","responseForRequestId","waitFor","adaptor34","hasher_1","requests_1","responses_1","responses","Responses","hashTx","hashBlock","jsonrpc_1","encodings_1","requests","encodeHeightParam","param","may","Integer","req","assertNotEmpty","page","per_page","order_by","eventTag","buildQuery","raw","decodeQueryProof","decodeAttribute","attribute","optional","decodeEvent","assertArray","decodeEvents","decodeTxData","assertNumber","codespace","gas_wanted","gas_used","decodeValidatorUpdate","assertObject","votingPower","voting_power","proposerPriority","proposer_priority","decodeBlockParams","maxBytes","max_bytes","maxGas","max_gas","decodeEvidenceParams","maxAgeNumBlocks","max_age_num_blocks","maxAgeDuration","max_age_duration","decodeConsensusParams","evidence","decodeBlockId","total","decodeBlockVersion","decodeHeader","lastBlockId","last_block_id","lastCommitHash","assertSet","last_commit_hash","data_hash","validatorsHash","validators_hash","nextValidatorsHash","next_validators_hash","consensusHash","consensus_hash","app_hash","lastResultsHash","last_results_hash","evidenceHash","evidence_hash","proposerAddress","proposer_address","decodeBlockMeta","block_id","block_size","numTxs","num_txs","decodeCommitSignature","blockIdFlag","block_id_flag","decodeCommit","decodeValidatorGenesis","power","decodeValidatorInfo","decodeNodeInfo","listenAddr","listen_addr","assertString","other","dictionaryToStringMap","protocolVersion","protocol_version","p2p","decodeSyncInfo","latestBlockHash","latest_block_hash","latestAppHash","latest_app_hash","latestBlockTime","latest_block_time","latest_block_height","catchingUp","assertBoolean","catching_up","decodeTxProof","rootHash","root_hash","leafHash","leaf_hash","aunts","decodeTxResponse","tx_result","decodeBlock","lastCommit","last_commit","decodeBlockResponse","lastBlockHeight","last_block_height","lastBlockAppHash","last_block_app_hash","proofOps","results","txs_results","validatorUpdates","validator_updates","consensusUpdates","consensus_param_updates","beginBlockEvents","begin_block_events","endBlockEvents","end_block_events","totalCount","total_count","blocks","lastHeight","last_height","block_metas","decodeBroadcastTxSync","checkTx","check_tx","deliverTx","deliver_tx","signed_header","commit","genesis","genesisTime","genesis_time","consensusParams","consensus_params","appState","app_state","node_info","sync_info","validatorInfo","validator_info","decodeTxEvent","TxResult","blockHeight","block_height","encodeBlockId","encodeVersion","encodeBytes","encodeTime","encodeInt","encodeString","fallback","transform","num","milliseconds","secondsArray","nanosecondsArray","blockArray","appArray","hashTree","hashes","hashLeaf","slicePoint","largestPowerOf2","log2","getSplitPoint","hashInner","tendermint34client_1","components","adaptor_1","rpcClient","detectVersion","Status","AbciInfo","doCall","encodeAbciInfo","decodeAbciInfo","AbciQuery","encodeAbciQuery","decodeAbciQuery","Block","encodeBlock","BlockResults","encodeBlockResults","decodeBlockResults","BlockSearch","resp","encodeBlockSearch","decodeBlockSearch","blockSearch","Blockchain","encodeBlockchain","decodeBlockchain","BroadcastTxSync","encodeBroadcastTx","BroadcastTxAsync","decodeBroadcastTxAsync","BroadcastTxCommit","decodeBroadcastTxCommit","Commit","encodeCommit","Genesis","encodeGenesis","decodeGenesis","Health","encodeHealth","decodeHealth","encodeStatus","decodeStatus","subscribeNewBlock","Subscribe","NewBlock","decodeNewBlockEvent","NewBlockHeader","decodeNewBlockHeaderEvent","subscribeTx","encodeTx","decodeTx","TxSearch","encodeTxSearch","decodeTxSearch","txSearch","encodeValidators","decodeValidators","encodeSubscribe","condition","isUint8Array","arrays_1","assert_1","sleep_1","typechecks_1","ms","SHA2","utils_js_1","Hash","blockLen","outputLen","padOffset","isLE","finished","destroyed","view","createView","toBytes","dataView","roundClean","digestInto","byteOffset","setBigUint64","_32n","BigInt","_u32_max","wh","wl","setUint32","oview","destroy","_cloneInto","to","add5H","add5L","add4H","add4L","add3H","add3L","rotlBL","rotlBH","rotlSL","rotlSH","rotr32L","rotr32H","rotrBL","rotrBH","rotrSL","rotrSH","shrSL","shrSH","toBig","fromBig","U32_MASK64","le","lst","Ah","Uint32Array","Al","Bh","Bl","Cl","Ch","Dl","Dh","El","Eh","web","hmac","HMAC","_key","assertHash","iHash","pad","oHash","getPrototypeOf","hmac_js_1","pbkdf2Init","_password","_salt","_opts","opts","checkOpts","asyncTick","DK","PRF","PRFSalt","pbkdf2Output","prfW","u","arr","ti","Ti","setInt32","ui","asyncLoop","_sha2_js_1","Rho","Id","Pi","idxL","idxR","shifts","shiftsL","shiftsR","Kl","Kr","rotl","f","group","y","z","BUF","h0","h1","h2","h3","h4","getUint32","al","ar","bl","br","cl","cr","dl","dr","el","er","rGroup","hbl","hbr","rl","rr","sl","sr","tl","tr","wrapConstructor","Maj","SHA256_K","IV","SHA256_W","A","B","C","D","E","F","G","H","W15","W2","s0","rotr","s1","T1","T2","shake256","shake128","keccak_512","keccak_384","keccak_224","sha3_512","sha3_384","sha3_256","sha3_224","Keccak","keccakP","u64","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","R","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","rounds","idx1","idx0","B0","B1","Th","Tl","curH","curL","PI","enableXOF","posOut","state32","u32","keccak","writeInto","xofInto","xof","genShake","wrapConstructorWithOpts","sha384","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","Fh","Fl","Gh","Gl","Hh","Hl","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","sigma1h","sigma1l","CHIh","CHIl","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","All","SHA384","assertBytes","assertBool","concatBytes","utf8ToBytes","nextTick","hexToBytes","bytesToHex","u8","DataView","hexes","isSafeInteger","uint8a","hex","array","hexByte","nodeRequire","require","bind","setImmediate","iters","tick","cb","ts","diff","lengths","clone","def","assign","hashConstructor","hashC","tmp","hashCons","bytesLength","ctx","pending","b64","s64","chunk","invalidEncoding","_listeners","on","listeners","Float32Array","f32","f8b","writeFloat_f32_cpy","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatBE","readFloatBE","writeFloat_ieee754","writeUint","exponent","LN2","readFloat_ieee754","readUint","uint","mantissa","NaN","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleBE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","moduleName","eval","SIZE","MAX","slab","c1","c2","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","headers","responseType","isFormData","XMLHttpRequest","username","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","statusText","open","paramsSerializer","onreadystatechange","responseURL","onabort","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","xsrfHeaderName","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","cancel","abort","Axios","mergeConfig","createInstance","defaultConfig","context","extend","axios","instanceConfig","Cancel","CancelToken","isCancel","promises","spread","isAxiosError","__CANCEL__","executor","resolvePromise","reason","throwIfRequested","source","InterceptorManager","dispatchRequest","interceptors","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","rejected","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","handlers","use","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","transformRequest","common","adapter","transformResponse","number","fileName","lineNumber","columnNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","axiosKeys","otherKeys","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isArrayBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","rawValue","parser","encoder","trim","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","serializedParams","isDate","hashmarkIndex","relativeURL","expires","domain","secure","cookie","isNumber","toGMTString","document","RegExp","decodeURIComponent","remove","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","hostname","port","pathname","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","substr","pkg","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","console","warn","schema","allowUnknown","isFunction","FormData","ArrayBuffer","isView","pipe","URLSearchParams","assignValue","stripBOM","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","ALPHABET","ALPHABET_MAP","polymodStep","pre","prefixChk","chk","__decode","LIMIT","lowered","uppered","lastIndexOf","wordChars","convert","inBits","outBits","maxV","decodeUnsafe","toWordsUnsafe","fromWordsUnsafe","inherits","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","red","_init","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","move","dest","max","_initNumber","_initArray","_parseHex","_parseBase","w","_strip","limbLen","limbPow","imuln","_iaddn","_move","_expand","_normSign","for","inspect","zeros","groupSizes","groupBases","smallMulTo","carry","ncarry","rword","maxJ","groupSize","groupBase","modrn","idivn","ret","toBuffer","toArrayLike","ArrayType","reqLength","allocate","_toArrayLikeLE","position","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","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","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","q","iushln","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","divmod","positive","divn","umod","divRound","dm","half","r2","andln","acc","modn","egcd","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gten","lt","lten","lte","eqn","eq","Red","toRed","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","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","outLen","prev","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","Rand","rand","generate","_rand","getByte","ieee754","customInspectSymbol","SlowBuffer","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","setPrototypeOf","encodingOrOffset","isEncoding","actual","arrayView","isInstance","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","numberIsNaN","toPrimitive","assertSize","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","poolSize","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","toLocaleString","thisStart","thisEnd","thisCopy","targetCopy","_arr","hexSliceLookupTable","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","readUIntLE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","writeUIntLE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","targetStart","copyWithin","errors","sym","getMessage","Base","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","INVALID_BASE64_RE","leadSurrogate","base64clean","alphabet","table","i16","BufferBigIntNotDefined","lengthOpToJSON","lengthOpFromJSON","hashOpToJSON","hashOpFromJSON","protobufPackage","minimal_1","KECCAK","UNRECOGNIZED","VAR_RLP","FIXED32_BIG","FIXED64_BIG","FIXED64_LITTLE","baseExistenceProof","fromJSON","bytesFromBase64","base64FromBytes","baseNonExistenceProof","baseCommitmentProof","baseLeafOp","baseInnerOp","baseProofSpec","baseInnerSpec","baseBatchProof","baseBatchEntry","baseCompressedBatchProof","baseCompressedBatchEntry","baseCompressedExistenceProof","baseCompressedNonExistenceProof","atob","baseBaseAccount","UZERO","fromValue","baseModuleAccount","permissions","baseParams","maxMemoCharacters","txSigLimit","txSizeCostPerByte","sigVerifyCostEd25519","sigVerifyCostSecp256k1","QueryParamsResponse","QueryParamsRequest","QueryAccountResponse","QueryAccountRequest","QueryAccountsResponse","QueryAccountsRequest","baseQueryAccountsRequest","baseQueryAccountsResponse","PageResponse","baseQueryAccountRequest","baseQueryAccountResponse","baseQueryParamsRequest","baseQueryParamsResponse","Accounts","Grant","GenericAuthorization","timestamp_1","baseGenericAuthorization","baseGrant","toTimestamp","authorization","expiration","Timestamp","millis","fromTimestamp","MsgClientImpl","MsgRevokeResponse","MsgGrantResponse","MsgExecResponse","authz_1","baseMsgGrant","granter","grantee","grant","baseMsgExecResponse","baseMsgExec","baseMsgGrantResponse","baseMsgRevoke","msgTypeUrl","baseMsgRevokeResponse","Exec","Revoke","Metadata","DenomUnit","Supply","Output","Input","SendEnabled","defaultSendEnabled","sendEnabled","baseSendEnabled","enabled","baseInput","baseOutput","baseSupply","baseDenomUnit","aliases","baseMetadata","display","symbol","denomUnits","QueryDenomMetadataResponse","QueryDenomMetadataRequest","QueryDenomsMetadataResponse","QueryDenomsMetadataRequest","QuerySupplyOfResponse","QuerySupplyOfRequest","QueryTotalSupplyResponse","QueryTotalSupplyRequest","QueryAllBalancesResponse","QueryAllBalancesRequest","QueryBalanceResponse","QueryBalanceRequest","baseQueryBalanceRequest","baseQueryBalanceResponse","baseQueryAllBalancesRequest","baseQueryAllBalancesResponse","baseQueryTotalSupplyRequest","baseQueryTotalSupplyResponse","baseQuerySupplyOfRequest","baseQuerySupplyOfResponse","baseQueryDenomsMetadataRequest","baseQueryDenomsMetadataResponse","baseQueryDenomMetadataRequest","baseQueryDenomMetadataResponse","MsgMultiSendResponse","MsgSendResponse","baseMsgSend","baseMsgSendResponse","baseMsgMultiSend","baseMsgMultiSendResponse","Send","MultiSend","SearchTxsResult","TxMsgData","MsgData","SimulationResponse","Result","GasInfo","Attribute","StringEvent","ABCIMessageLog","TxResponse","baseTxResponse","ZERO","txhash","Event","_h","_j","baseABCIMessageLog","msgIndex","baseStringEvent","baseAttribute","baseGasInfo","baseResult","baseSimulationResponse","baseMsgData","msgType","baseTxMsgData","baseSearchTxsResult","pageNumber","pageTotal","basePageRequest","basePageResponse","DecProto","IntProto","DecCoin","baseCoin","baseDecCoin","baseIntProto","int","baseDecProto","dec","baseLegacyAminoPubKey","baseMultiSignature","baseCompactBitArray","PrivKey","basePubKey","basePrivKey","CommunityPoolSpendProposalWithDeposit","DelegationDelegatorReward","DelegatorStartingInfo","CommunityPoolSpendProposal","FeePool","ValidatorSlashEvents","ValidatorSlashEvent","ValidatorAccumulatedCommission","ValidatorCurrentRewards","ValidatorHistoricalRewards","communityTax","baseProposerReward","bonusProposerReward","withdrawAddrEnabled","baseValidatorHistoricalRewards","referenceCount","cumulativeRewardRatio","baseValidatorCurrentRewards","period","rewards","baseValidatorAccumulatedCommission","baseValidatorOutstandingRewards","baseValidatorSlashEvent","validatorPeriod","fraction","baseValidatorSlashEvents","validatorSlashEvents","baseFeePool","baseCommunityPoolSpendProposal","recipient","baseDelegatorStartingInfo","previousPeriod","stake","baseDelegationDelegatorReward","reward","baseCommunityPoolSpendProposalWithDeposit","QueryCommunityPoolResponse","QueryCommunityPoolRequest","QueryDelegatorWithdrawAddressResponse","QueryDelegatorWithdrawAddressRequest","QueryDelegatorValidatorsResponse","QueryDelegatorValidatorsRequest","QueryDelegationTotalRewardsResponse","QueryDelegationTotalRewardsRequest","QueryDelegationRewardsResponse","QueryDelegationRewardsRequest","QueryValidatorSlashesResponse","QueryValidatorSlashesRequest","QueryValidatorCommissionResponse","QueryValidatorCommissionRequest","QueryValidatorOutstandingRewardsResponse","QueryValidatorOutstandingRewardsRequest","baseQueryValidatorOutstandingRewardsRequest","baseQueryValidatorOutstandingRewardsResponse","baseQueryValidatorCommissionRequest","baseQueryValidatorCommissionResponse","baseQueryValidatorSlashesRequest","baseQueryValidatorSlashesResponse","slashes","baseQueryDelegationRewardsRequest","baseQueryDelegationRewardsResponse","baseQueryDelegationTotalRewardsRequest","baseQueryDelegationTotalRewardsResponse","baseQueryDelegatorValidatorsRequest","baseQueryDelegatorValidatorsResponse","baseQueryDelegatorWithdrawAddressRequest","baseQueryDelegatorWithdrawAddressResponse","baseQueryCommunityPoolRequest","baseQueryCommunityPoolResponse","MsgFundCommunityPoolResponse","MsgWithdrawValidatorCommissionResponse","MsgWithdrawDelegatorRewardResponse","MsgSetWithdrawAddressResponse","baseMsgSetWithdrawAddress","baseMsgSetWithdrawAddressResponse","baseMsgWithdrawDelegatorReward","baseMsgWithdrawDelegatorRewardResponse","baseMsgWithdrawValidatorCommission","baseMsgWithdrawValidatorCommissionResponse","baseMsgFundCommunityPool","baseMsgFundCommunityPoolResponse","SetWithdrawAddress","WithdrawDelegatorReward","WithdrawValidatorCommission","FundCommunityPool","MsgRevokeAllowanceResponse","MsgGrantAllowanceResponse","baseMsgGrantAllowance","allowance","baseMsgGrantAllowanceResponse","baseMsgRevokeAllowance","baseMsgRevokeAllowanceResponse","GrantAllowance","RevokeAllowance","TallyParams","VotingParams","DepositParams","WeightedVoteOption","proposalStatusToJSON","proposalStatusFromJSON","ProposalStatus","voteOptionToJSON","VoteOption","duration_1","VOTE_OPTION_UNSPECIFIED","VOTE_OPTION_YES","VOTE_OPTION_ABSTAIN","VOTE_OPTION_NO","VOTE_OPTION_NO_WITH_VETO","PROPOSAL_STATUS_UNSPECIFIED","PROPOSAL_STATUS_DEPOSIT_PERIOD","PROPOSAL_STATUS_VOTING_PERIOD","PROPOSAL_STATUS_PASSED","PROPOSAL_STATUS_REJECTED","PROPOSAL_STATUS_FAILED","baseWeightedVoteOption","weight","baseTextProposal","baseDeposit","baseProposal","finalTallyResult","submitTime","depositEndTime","totalDeposit","votingStartTime","votingEndTime","fromJsonTimestamp","baseTallyResult","yes","abstain","no","noWithVeto","baseVote","baseDepositParams","minDeposit","maxDepositPeriod","Duration","baseVotingParams","votingPeriod","baseTallyParams","quorum","vetoThreshold","QueryTallyResultResponse","QueryTallyResultRequest","QueryDepositsResponse","QueryDepositsRequest","QueryDepositResponse","QueryDepositRequest","QueryVotesResponse","QueryVotesRequest","QueryVoteResponse","QueryVoteRequest","QueryProposalsResponse","QueryProposalsRequest","QueryProposalResponse","QueryProposalRequest","baseQueryProposalRequest","baseQueryProposalResponse","baseQueryProposalsRequest","baseQueryProposalsResponse","baseQueryVoteRequest","baseQueryVoteResponse","baseQueryVotesRequest","baseQueryVotesResponse","votingParams","depositParams","tallyParams","baseQueryDepositRequest","baseQueryDepositResponse","baseQueryDepositsRequest","baseQueryDepositsResponse","baseQueryTallyResultRequest","baseQueryTallyResultResponse","MsgDepositResponse","MsgVoteWeightedResponse","MsgVoteWeighted","MsgVoteResponse","MsgSubmitProposalResponse","baseMsgSubmitProposal","baseMsgSubmitProposalResponse","baseMsgVote","baseMsgVoteResponse","baseMsgVoteWeighted","baseMsgVoteWeightedResponse","baseMsgDeposit","baseMsgDepositResponse","SubmitProposal","VoteWeighted","Minter","baseMinter","QueryAnnualProvisionsResponse","QueryAnnualProvisionsRequest","QueryInflationResponse","QueryInflationRequest","baseQueryInflationRequest","baseQueryInflationResponse","baseQueryAnnualProvisionsRequest","baseQueryAnnualProvisionsResponse","QuerySigningInfosResponse","QuerySigningInfosRequest","QuerySigningInfoResponse","QuerySigningInfoRequest","baseQuerySigningInfoRequest","baseQuerySigningInfoResponse","valSigningInfo","ValidatorSigningInfo","baseQuerySigningInfosRequest","baseQuerySigningInfosResponse","baseValidatorSigningInfo","startHeight","indexOffset","tombstoned","missedBlocksCounter","jailedUntil","signedBlocksWindow","minSignedPerWindow","downtimeJailDuration","slashFractionDoubleSign","slashFractionDowntime","QueryPoolResponse","QueryPoolRequest","QueryHistoricalInfoResponse","QueryHistoricalInfoRequest","QueryDelegatorValidatorResponse","QueryDelegatorValidatorRequest","QueryRedelegationsResponse","QueryRedelegationsRequest","QueryDelegatorUnbondingDelegationsResponse","QueryDelegatorUnbondingDelegationsRequest","QueryDelegatorDelegationsResponse","QueryDelegatorDelegationsRequest","QueryUnbondingDelegationResponse","QueryUnbondingDelegationRequest","QueryDelegationResponse","QueryDelegationRequest","QueryValidatorUnbondingDelegationsResponse","QueryValidatorUnbondingDelegationsRequest","QueryValidatorDelegationsResponse","QueryValidatorDelegationsRequest","QueryValidatorResponse","QueryValidatorRequest","QueryValidatorsResponse","QueryValidatorsRequest","baseQueryValidatorsRequest","baseQueryValidatorsResponse","baseQueryValidatorRequest","baseQueryValidatorResponse","baseQueryValidatorDelegationsRequest","baseQueryValidatorDelegationsResponse","delegationResponses","DelegationResponse","baseQueryValidatorUnbondingDelegationsRequest","baseQueryValidatorUnbondingDelegationsResponse","unbondingResponses","baseQueryDelegationRequest","baseQueryDelegationResponse","baseQueryUnbondingDelegationRequest","baseQueryUnbondingDelegationResponse","unbond","baseQueryDelegatorDelegationsRequest","baseQueryDelegatorDelegationsResponse","baseQueryDelegatorUnbondingDelegationsRequest","baseQueryDelegatorUnbondingDelegationsResponse","baseQueryRedelegationsRequest","baseQueryRedelegationsResponse","redelegationResponses","RedelegationResponse","baseQueryDelegatorValidatorRequest","baseQueryDelegatorValidatorResponse","baseQueryHistoricalInfoRequest","baseQueryHistoricalInfoResponse","hist","baseQueryPoolRequest","baseQueryPoolResponse","RedelegationEntryResponse","Redelegation","RedelegationEntry","UnbondingDelegationEntry","DVVTriplets","DVVTriplet","DVPairs","DVPair","ValAddresses","Description","Commission","CommissionRates","bondStatusToJSON","bondStatusFromJSON","BondStatus","BOND_STATUS_UNSPECIFIED","BOND_STATUS_UNBONDED","BOND_STATUS_UNBONDING","BOND_STATUS_BONDED","baseHistoricalInfo","Header","valset","baseCommissionRates","baseCommission","commissionRates","updateTime","baseDescription","baseValidator","operatorAddress","jailed","tokens","delegatorShares","unbondingHeight","consensusPubkey","unbondingTime","baseValAddresses","baseDVPair","baseDVPairs","pairs","baseDVVTriplet","baseDVVTriplets","triplets","baseDelegation","shares","baseUnbondingDelegation","baseUnbondingDelegationEntry","creationHeight","initialBalance","completionTime","baseRedelegationEntry","sharesDst","baseRedelegation","maxValidators","maxEntries","historicalEntries","bondDenom","baseDelegationResponse","baseRedelegationEntryResponse","redelegationEntry","baseRedelegationResponse","redelegation","basePool","notBondedTokens","bondedTokens","MsgUndelegateResponse","MsgBeginRedelegateResponse","MsgDelegateResponse","MsgEditValidatorResponse","MsgCreateValidatorResponse","baseMsgCreateValidator","baseMsgCreateValidatorResponse","baseMsgEditValidator","baseMsgEditValidatorResponse","baseMsgDelegate","baseMsgDelegateResponse","baseMsgBeginRedelegate","baseMsgBeginRedelegateResponse","baseMsgUndelegate","baseMsgUndelegateResponse","CreateValidator","EditValidator","Delegate","BeginRedelegate","Undelegate","SignatureDescriptor_Data_Multi","SignatureDescriptor_Data_Single","SignatureDescriptor_Data","SignatureDescriptor","SignatureDescriptors","signModeToJSON","signModeFromJSON","SIGN_MODE_TEXTUAL","baseSignatureDescriptors","baseSignatureDescriptor","baseSignatureDescriptor_Data","baseSignatureDescriptor_Data_Single","baseSignatureDescriptor_Data_Multi","GetTxResponse","GetTxRequest","SimulateResponse","BroadcastTxResponse","BroadcastTxRequest","GetTxsEventResponse","GetTxsEventRequest","broadcastModeToJSON","broadcastModeFromJSON","BroadcastMode","orderByToJSON","orderByFromJSON","OrderBy","abci_1","ORDER_BY_UNSPECIFIED","ORDER_BY_ASC","ORDER_BY_DESC","BROADCAST_MODE_UNSPECIFIED","BROADCAST_MODE_BLOCK","BROADCAST_MODE_SYNC","BROADCAST_MODE_ASYNC","baseGetTxsEventRequest","orderBy","baseGetTxsEventResponse","txResponses","baseBroadcastTxRequest","baseBroadcastTxResponse","txResponse","baseSimulateRequest","baseSimulateResponse","baseGetTxRequest","baseGetTxResponse","BroadcastTx","GetTxsEvent","ModeInfo_Multi","ModeInfo_Single","ModeInfo","SignerInfo","baseTx","baseTxRaw","baseSignDoc","baseTxBody","extensionOptions","nonCriticalExtensionOptions","baseAuthInfo","baseSignerInfo","baseModeInfo","baseModeInfo_Single","baseModeInfo_Multi","baseFee","payer","PermanentLockedAccount","Period","baseBaseVestingAccount","endTime","originalVesting","delegatedFree","delegatedVesting","baseContinuousVestingAccount","startTime","baseDelayedVestingAccount","basePeriod","basePeriodicVestingAccount","vestingPeriods","basePermanentLockedAccount","QueryCodesResponse","QueryCodesRequest","QueryCodeResponse","CodeInfoResponse","QueryCodeRequest","QuerySmartContractStateResponse","QuerySmartContractStateRequest","QueryRawContractStateResponse","QueryRawContractStateRequest","QueryAllContractStateResponse","QueryAllContractStateRequest","QueryContractsByCodeResponse","QueryContractsByCodeRequest","QueryContractHistoryResponse","QueryContractHistoryRequest","QueryContractInfoResponse","QueryContractInfoRequest","baseQueryContractInfoRequest","baseQueryContractInfoResponse","baseQueryContractHistoryRequest","baseQueryContractHistoryResponse","ContractCodeHistoryEntry","baseQueryContractsByCodeRequest","baseQueryContractsByCodeResponse","baseQueryAllContractStateRequest","baseQueryAllContractStateResponse","models","Model","baseQueryRawContractStateRequest","baseQueryRawContractStateResponse","baseQuerySmartContractStateRequest","baseQuerySmartContractStateResponse","baseQueryCodeRequest","baseCodeInfoResponse","baseQueryCodeResponse","baseQueryCodesRequest","baseQueryCodesResponse","MsgClearAdminResponse","MsgUpdateAdminResponse","MsgMigrateContractResponse","MsgExecuteContractResponse","MsgInstantiateContractResponse","MsgStoreCodeResponse","baseMsgStoreCode","AccessConfig","baseMsgStoreCodeResponse","baseMsgInstantiateContract","baseMsgInstantiateContractResponse","baseMsgExecuteContract","baseMsgExecuteContractResponse","baseMsgMigrateContract","baseMsgMigrateContractResponse","baseMsgUpdateAdmin","baseMsgUpdateAdminResponse","baseMsgClearAdmin","baseMsgClearAdminResponse","StoreCode","InstantiateContract","ExecuteContract","MigrateContract","UpdateAdmin","ClearAdmin","AbsoluteTxPosition","CodeInfo","AccessTypeParam","contractCodeHistoryOperationTypeToJSON","contractCodeHistoryOperationTypeFromJSON","accessTypeToJSON","accessTypeFromJSON","AccessType","ACCESS_TYPE_UNSPECIFIED","ACCESS_TYPE_NOBODY","ACCESS_TYPE_ONLY_ADDRESS","ACCESS_TYPE_EVERYBODY","CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED","baseAccessTypeParam","baseAccessConfig","permission","instantiateDefaultPermission","maxWasmCodeSize","codeUploadAccess","baseCodeInfo","codeHash","instantiateConfig","baseContractInfo","created","baseContractCodeHistoryEntry","updated","baseAbsoluteTxPosition","txIndex","baseModel","baseAny","baseDuration","baseTimestamp","QueryDenomTracesResponse","QueryDenomTracesRequest","QueryDenomTraceResponse","QueryDenomTraceRequest","transfer_1","baseQueryDenomTraceRequest","baseQueryDenomTraceResponse","baseQueryDenomTracesRequest","baseQueryDenomTracesResponse","FungibleTokenPacketData","baseFungibleTokenPacketData","baseDenomTrace","baseDenom","receiveEnabled","MsgTransferResponse","client_1","baseMsgTransfer","Height","baseMsgTransferResponse","Transfer","Acknowledgement","PacketState","Packet","Counterparty","IdentifiedChannel","orderToJSON","orderFromJSON","Order","stateToJSON","stateFromJSON","STATE_UNINITIALIZED_UNSPECIFIED","STATE_INIT","STATE_TRYOPEN","STATE_OPEN","STATE_CLOSED","ORDER_NONE_UNSPECIFIED","ORDER_UNORDERED","ORDER_ORDERED","baseChannel","ordering","connectionHops","counterparty","baseIdentifiedChannel","baseCounterparty","basePacket","destinationPort","destinationChannel","basePacketState","baseAcknowledgement","QueryNextSequenceReceiveResponse","QueryNextSequenceReceiveRequest","QueryUnreceivedAcksResponse","QueryUnreceivedAcksRequest","QueryUnreceivedPacketsResponse","QueryUnreceivedPacketsRequest","QueryPacketAcknowledgementsResponse","QueryPacketAcknowledgementsRequest","QueryPacketAcknowledgementResponse","QueryPacketAcknowledgementRequest","QueryPacketReceiptResponse","QueryPacketReceiptRequest","QueryPacketCommitmentsResponse","QueryPacketCommitmentsRequest","QueryPacketCommitmentResponse","QueryPacketCommitmentRequest","QueryChannelConsensusStateResponse","QueryChannelConsensusStateRequest","QueryChannelClientStateResponse","QueryChannelClientStateRequest","QueryConnectionChannelsResponse","QueryConnectionChannelsRequest","QueryChannelsResponse","QueryChannelsRequest","QueryChannelResponse","QueryChannelRequest","baseQueryChannelRequest","baseQueryChannelResponse","proofHeight","baseQueryChannelsRequest","baseQueryChannelsResponse","baseQueryConnectionChannelsRequest","baseQueryConnectionChannelsResponse","baseQueryChannelClientStateRequest","baseQueryChannelClientStateResponse","identifiedClientState","IdentifiedClientState","baseQueryChannelConsensusStateRequest","baseQueryChannelConsensusStateResponse","baseQueryPacketCommitmentRequest","baseQueryPacketCommitmentResponse","commitment","baseQueryPacketCommitmentsRequest","baseQueryPacketCommitmentsResponse","baseQueryPacketReceiptRequest","baseQueryPacketReceiptResponse","baseQueryPacketAcknowledgementRequest","baseQueryPacketAcknowledgementResponse","acknowledgement","baseQueryPacketAcknowledgementsRequest","baseQueryPacketAcknowledgementsResponse","baseQueryUnreceivedPacketsRequest","baseQueryUnreceivedPacketsResponse","sequences","baseQueryUnreceivedAcksRequest","baseQueryUnreceivedAcksResponse","baseQueryNextSequenceReceiveRequest","baseQueryNextSequenceReceiveResponse","MsgAcknowledgementResponse","MsgTimeoutOnCloseResponse","MsgTimeoutResponse","MsgRecvPacketResponse","MsgChannelCloseConfirmResponse","MsgChannelCloseInitResponse","MsgChannelOpenConfirmResponse","MsgChannelOpenAckResponse","MsgChannelOpenTryResponse","MsgChannelOpenInitResponse","baseMsgChannelOpenInit","baseMsgChannelOpenInitResponse","baseMsgChannelOpenTry","previousChannelId","counterpartyVersion","proofInit","baseMsgChannelOpenTryResponse","baseMsgChannelOpenAck","counterpartyChannelId","proofTry","baseMsgChannelOpenAckResponse","baseMsgChannelOpenConfirm","proofAck","baseMsgChannelOpenConfirmResponse","baseMsgChannelCloseInit","baseMsgChannelCloseInitResponse","baseMsgChannelCloseConfirm","baseMsgChannelCloseConfirmResponse","baseMsgRecvPacket","packet","proofCommitment","baseMsgRecvPacketResponse","baseMsgTimeout","nextSequenceRecv","proofUnreceived","baseMsgTimeoutResponse","baseMsgTimeoutOnClose","proofClose","baseMsgTimeoutOnCloseResponse","baseMsgAcknowledgement","proofAcked","baseMsgAcknowledgementResponse","ChannelOpenInit","ChannelOpenTry","ChannelOpenAck","ChannelOpenConfirm","ChannelCloseInit","ChannelCloseConfirm","RecvPacket","Timeout","TimeoutOnClose","ClientUpdateProposal","ClientConsensusStates","ConsensusStateWithHeight","baseIdentifiedClientState","baseConsensusStateWithHeight","baseClientConsensusStates","baseClientUpdateProposal","baseHeight","allowedClients","QueryClientParamsResponse","QueryClientParamsRequest","QueryConsensusStatesResponse","QueryConsensusStatesRequest","QueryConsensusStateResponse","QueryClientStatesResponse","QueryClientStatesRequest","QueryClientStateResponse","QueryClientStateRequest","baseQueryClientStateRequest","baseQueryClientStateResponse","baseQueryClientStatesRequest","baseQueryClientStatesResponse","baseQueryConsensusStateRequest","baseQueryConsensusStateResponse","baseQueryConsensusStatesRequest","baseQueryConsensusStatesResponse","baseQueryClientParamsRequest","baseQueryClientParamsResponse","MsgSubmitMisbehaviourResponse","MsgUpgradeClientResponse","MsgUpdateClientResponse","MsgCreateClientResponse","baseMsgCreateClient","baseMsgCreateClientResponse","baseMsgUpdateClient","baseMsgUpdateClientResponse","baseMsgUpgradeClient","proofUpgradeClient","proofUpgradeConsensusState","baseMsgUpgradeClientResponse","baseMsgSubmitMisbehaviour","misbehaviour","baseMsgSubmitMisbehaviourResponse","CreateClient","UpdateClient","UpgradeClient","SubmitMisbehaviour","MerkleProof","MerklePath","MerklePrefix","MerkleRoot","baseMerkleRoot","baseMerklePrefix","keyPrefix","baseMerklePath","keyPath","baseMerkleProof","proofs","Version","ConnectionPaths","ClientPaths","IdentifiedConnection","ConnectionEnd","commitment_1","baseConnectionEnd","delayPeriod","baseIdentifiedConnection","baseClientPaths","paths","baseConnectionPaths","baseVersion","identifier","features","QueryConnectionConsensusStateResponse","QueryConnectionClientStateResponse","QueryConnectionClientStateRequest","QueryClientConnectionsResponse","QueryClientConnectionsRequest","QueryConnectionsResponse","QueryConnectionsRequest","QueryConnectionResponse","QueryConnectionRequest","connection_1","baseQueryConnectionRequest","baseQueryConnectionResponse","baseQueryConnectionsRequest","baseQueryConnectionsResponse","baseQueryClientConnectionsRequest","baseQueryClientConnectionsResponse","connectionPaths","baseQueryConnectionClientStateRequest","baseQueryConnectionClientStateResponse","baseQueryConnectionConsensusStateRequest","baseQueryConnectionConsensusStateResponse","MsgConnectionOpenConfirmResponse","MsgConnectionOpenAckResponse","MsgConnectionOpenTryResponse","MsgConnectionOpenInitResponse","baseMsgConnectionOpenInit","baseMsgConnectionOpenInitResponse","baseMsgConnectionOpenTry","previousConnectionId","counterpartyVersions","proofClient","proofConsensus","baseMsgConnectionOpenTryResponse","baseMsgConnectionOpenAck","counterpartyConnectionId","baseMsgConnectionOpenAckResponse","baseMsgConnectionOpenConfirm","baseMsgConnectionOpenConfirmResponse","ConnectionOpenInit","ConnectionOpenTry","ConnectionOpenAck","ConnectionOpenConfirm","Fraction","Misbehaviour","validator_1","baseClientState","upgradePath","allowUpdateAfterExpiry","allowUpdateAfterMisbehaviour","trustLevel","trustingPeriod","unbondingPeriod","maxClockDrift","frozenHeight","proofSpecs","baseConsensusState","baseMisbehaviour","header1","header2","baseHeader","signedHeader","SignedHeader","validatorSet","ValidatorSet","trustedHeight","trustedValidators","baseFraction","numerator","denominator","LastCommitInfo","BlockParams","ConsensusParams","ResponseApplySnapshotChunk","ResponseLoadSnapshotChunk","ResponseOfferSnapshot","ResponseListSnapshots","ResponseCommit","ResponseEndBlock","ResponseDeliverTx","ResponseCheckTx","ResponseBeginBlock","ResponseQuery","ResponseInitChain","ResponseSetOption","ResponseInfo","ResponseFlush","ResponseEcho","ResponseException","Response","RequestApplySnapshotChunk","RequestLoadSnapshotChunk","RequestOfferSnapshot","RequestListSnapshots","RequestCommit","RequestEndBlock","RequestDeliverTx","RequestCheckTx","RequestBeginBlock","RequestQuery","RequestInitChain","RequestSetOption","RequestInfo","RequestFlush","RequestEcho","Request","responseApplySnapshotChunk_ResultToJSON","responseApplySnapshotChunk_ResultFromJSON","ResponseApplySnapshotChunk_Result","responseOfferSnapshot_ResultToJSON","responseOfferSnapshot_ResultFromJSON","ResponseOfferSnapshot_Result","evidenceTypeToJSON","evidenceTypeFromJSON","EvidenceType","checkTxTypeToJSON","checkTxTypeFromJSON","CheckTxType","ABCIApplicationClientImpl","Snapshot","Evidence","VoteInfo","ValidatorUpdate","EventAttribute","proof_1","params_1","NEW","RECHECK","UNKNOWN","DUPLICATE_VOTE","LIGHT_CLIENT_ATTACK","ACCEPT","ABORT","REJECT","REJECT_FORMAT","REJECT_SENDER","RETRY","RETRY_SNAPSHOT","REJECT_SNAPSHOT","baseRequest","echo","flush","setOption","initChain","beginBlock","endBlock","listSnapshots","offerSnapshot","loadSnapshotChunk","applySnapshotChunk","baseRequestEcho","baseRequestFlush","baseRequestInfo","blockVersion","p2pVersion","baseRequestSetOption","baseRequestInitChain","initialHeight","appStateBytes","baseRequestQuery","baseRequestBeginBlock","lastCommitInfo","byzantineValidators","baseRequestCheckTx","baseRequestDeliverTx","baseRequestEndBlock","baseRequestCommit","baseRequestListSnapshots","baseRequestOfferSnapshot","snapshot","baseRequestLoadSnapshotChunk","format","baseRequestApplySnapshotChunk","baseResponse","exception","baseResponseException","baseResponseEcho","baseResponseFlush","baseResponseInfo","appVersion","baseResponseSetOption","baseResponseInitChain","baseResponseQuery","ProofOps","baseResponseBeginBlock","baseResponseCheckTx","baseResponseDeliverTx","baseResponseEndBlock","consensusParamUpdates","baseResponseCommit","retainHeight","baseResponseListSnapshots","snapshots","baseResponseOfferSnapshot","baseResponseLoadSnapshotChunk","baseResponseApplySnapshotChunk","refetchChunks","rejectSenders","baseConsensusParams","EvidenceParams","ValidatorParams","VersionParams","baseBlockParams","baseLastCommitInfo","baseEvent","baseEventAttribute","baseTxResult","baseValidatorUpdate","PublicKey","baseVoteInfo","signedLastBlock","baseEvidence","totalVotingPower","baseSnapshot","chunks","Echo","Flush","Info","SetOption","DeliverTx","CheckTx","Query","InitChain","BeginBlock","EndBlock","ListSnapshots","OfferSnapshot","LoadSnapshotChunk","ApplySnapshotChunk","basePublicKey","ProofOp","DominoOp","ValueOp","Proof","baseProof","baseValueOp","baseDominoOp","baseProofOp","baseProofOps","HashedParams","timeIotaMs","baseEvidenceParams","baseValidatorParams","pubKeyTypes","baseVersionParams","baseHashedParams","blockMaxBytes","blockMaxGas","TxProof","BlockMeta","LightBlock","CommitSig","Data","BlockID","Part","PartSetHeader","signedMsgTypeToJSON","signedMsgTypeFromJSON","SignedMsgType","blockIDFlagToJSON","blockIDFlagFromJSON","BlockIDFlag","BLOCK_ID_FLAG_UNKNOWN","BLOCK_ID_FLAG_ABSENT","BLOCK_ID_FLAG_COMMIT","BLOCK_ID_FLAG_NIL","SIGNED_MSG_TYPE_UNKNOWN","SIGNED_MSG_TYPE_PREVOTE","SIGNED_MSG_TYPE_PRECOMMIT","SIGNED_MSG_TYPE_PROPOSAL","basePartSetHeader","basePart","baseBlockID","partSetHeader","Consensus","_k","baseData","validatorIndex","baseCommit","baseCommitSig","polRound","baseSignedHeader","baseLightBlock","baseBlockMeta","baseTxProof","SimpleValidator","baseValidatorSet","baseSimpleValidator","App","baseApp","software","baseConsensus","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicate","defineProperties","predicates","getOwnPropertySymbols","elliptic","curves","eddsa","getNAF","getJSF","BaseCurve","conf","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","_fixedNafMul","doubles","_getDoubles","naf","I","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","jsf","ja","jb","decodePoint","pointFromX","_encode","compact","getX","getY","precompute","beta","_getBeta","_hasDoubles","dbl","EdwardsCurve","twisted","mOneA","d","dd","oneC","Point","zOne","_mulA","_mulC","y2","pointFromY","isInfinity","_extDbl","nx","ny","nt","nz","_projDbl","_extAdd","_projAdd","mulAdd","k1","jmulAdd","zi","eqXToP","xc","short","edwards","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","isRed","inf","JPoint","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","_endoWnafMulAdd","npoints","ncoeffs","endoMul","obj2point","ys1","dyinv","_precompute","negate","zinv","zinv2","ay","pz2","z2","u1","u2","s2","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","zs","PresetCurve","defineCurve","HmacDRBG","KeyPair","Signature","EC","nh","priv","fromPrivate","pub","fromPublic","genKeyPair","drbg","pers","persEnc","hmacStrength","entropyEnc","ns2","_truncateToN","truncOnly","bkey","ns1","iter","kp","kpX","sinv","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","_importPrivate","privEnc","_importPublic","pubEnc","derive","_importDER","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","toDER","backHalf","parseBytes","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","Rencoded","encodePoint","s_","pubBytes","S","makeSignature","SG","intFromLE","fromSecret","lastIx","normed","xIsOdd","decodeInt","isPoint","cachedProperty","_secret","_pub","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","minAssert","minUtils","zero2","m8","d1","d2","m14","m24","computer","ReflectOwnKeys","Reflect","ReflectApply","Function","ownKeys","getOwnPropertyNames","NumberIsNaN","init","once","emitter","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","that","_addListener","prepend","existing","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","removeEventListener","setMaxListeners","getMaxListeners","doError","addListener","prependListener","prependOnceListener","originalListener","spliceOne","removeAllListeners","rawListeners","eventNames","implementation","getPolyfill","shim","polyfill","getGlobal","getOwnPropertyDescriptor","Transform","HashBase","_block","_blockSize","_blockOffset","_length","_finalized","_transform","_flush","throwIfNotStringOrBuffer","_update","_digest","sha","ripemd","sha1","sha224","BlockHash","pendingTotal","outSize","padLength","_delta8","_delta32","join32","_pad","outer","rotl32","sum32","sum32_3","sum32_4","K","Kh","T","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","W","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","bh","ch","dh","eh","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","predResist","minEntropy","_reseed","reseedInterval","V","nonceEnc","_hmac","kmac","reseed","addEnc","temp","mLen","nBytes","eLen","eMax","eBias","nBits","rt","WebSocket","MozWebSocket","_interopRequireDefault","errorCodeToString","processErrorResponse","_x","_getVersion","ERROR_CODE","P1_VALUES","PAYLOAD_TYPE","INS","APP_KEY","CHUNK_SIZE","CLA","_regenerator","_asyncToGenerator2","_typeof2","GET_VERSION","INS_PUBLIC_KEY_SECP256K1","SIGN_SECP256K1","GET_ADDR_SECP256K1","INIT","ADD","LAST","ONLY_RETRIEVE","SHOW_ADDRESS_IN_DEVICE","NoError","ERROR_DESCRIPTION","statusCode","return_code","mark","_callee","wrap","_context","abrupt","errorCodeData","returnCode","targetId","target_id","serializePathv1","signSendChunkv1","_x2","_x3","_x4","_signSendChunkv","publicKeyv1","_x5","_x6","_publicKeyv","_common","chunkIdx","chunkNum","compressPublicKey","_callee2","_context2","pk","serializePathv2","signSendChunkv2","publicKeyv2","_helperV","payloadType","_classCallCheck2","_createClass2","_crypto","_ripemd","_bech","_helperV2","CosmosApp","scrambleKey","decorateAppAPIMethods","_sign","_signSendChunk","_showAddressAndPubKey","_getAddressAndPubKey","_publicKey","_deviceInfo","_appInfo","_getVersion2","_signGetChunks","_serializePath","versionResponse","t0","serializedPath","serializePath","_callee3","_context3","_callee4","_context4","flagLen","flagsValue","appNameLen","appVersionLen","flag_recovery","flag_signed_mcu_code","flag_onboarded","flag_pin_validated","_callee5","_context5","secureElementVersionLen","seVersion","flagsLen","flag","mcuVersionLen","mcuVersion","_callee6","_context6","serializeHRP","_callee7","hrp","_this","_context7","compressedPk","bech32_address","_callee8","_this2","_context8","_x7","_x8","_callee9","_context9","_x9","_x10","_x11","_callee11","_this3","_context11","signGetChunks","signSendChunk","_ref","_callee10","_context10","_x14","_x12","_x13","hashSha256","createHash","hashRip","sodium","onload","_sodium_init","Y","M","L","U","O","P","X","J","Z","$","te","ae","se","ne","ce","oe","he","pe","ye","ue","de","ve","ge","be","fe","me","Ee","xe","ke","Se","Te","we","Ye","Be","Ae","Ke","Me","Ie","Ne","Le","Ue","Oe","Ce","Re","Pe","Ge","Xe","De","Fe","Ve","He","qe","je","ze","We","Je","Qe","Ze","$e","_r","nr","hr","pr","yr","lr","ur","vr","gr","fr","mr","Er","xr","kr","Sr","Tr","wr","Yr","Br","Ar","Mr","Ir","Nr","Lr","Ur","Or","Cr","Rr","Pr","Gr","Xr","Dr","Fr","Vr","Hr","qr","jr","zr","Wr","Jr","Qr","Zr","$r","et","tt","at","_t","st","ct","ot","ht","pt","yt","it","UTF8ToString","randombytes_buf","crypto_secretbox_NONCEBYTES","crypto_secretbox_KEYBYTES","crypto_secretbox_easy","crypto_secretbox_open_easy","memcmp","useBackupModule","escape","ORIGINAL","ORIGINAL_NO_PADDING","URLSAFE","URLSAFE_NO_PADDING","_sodium_bin2base64","to_Uint8Array","HEAPU8","_malloc","_free","_crypto_aead_chacha20poly1305_abytes","_crypto_aead_chacha20poly1305_npubbytes","_crypto_aead_chacha20poly1305_keybytes","_crypto_aead_chacha20poly1305_decrypt","_crypto_box_macbytes","_crypto_aead_chacha20poly1305_decrypt_detached","_crypto_aead_chacha20poly1305_encrypt","_crypto_aead_chacha20poly1305_encrypt_detached","mac","_crypto_aead_chacha20poly1305_ietf_abytes","_crypto_aead_chacha20poly1305_ietf_npubbytes","_crypto_aead_chacha20poly1305_ietf_keybytes","_crypto_aead_chacha20poly1305_ietf_decrypt","_crypto_aead_chacha20poly1305_ietf_decrypt_detached","_crypto_aead_chacha20poly1305_ietf_encrypt","_crypto_aead_chacha20poly1305_ietf_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_keygen","_crypto_aead_chacha20poly1305_keygen","_crypto_aead_xchacha20poly1305_ietf_abytes","_crypto_aead_xchacha20poly1305_ietf_npubbytes","_crypto_aead_xchacha20poly1305_ietf_keybytes","_crypto_aead_xchacha20poly1305_ietf_decrypt","_crypto_aead_xchacha20poly1305_ietf_decrypt_detached","_crypto_aead_xchacha20poly1305_ietf_encrypt","_crypto_aead_xchacha20poly1305_ietf_encrypt_detached","_crypto_aead_xchacha20poly1305_ietf_keygen","_crypto_auth_keybytes","_crypto_auth_bytes","_crypto_auth","_crypto_auth_hmacsha256_keybytes","_crypto_auth_hmacsha256_bytes","_crypto_auth_hmacsha256","_crypto_auth_hmacsha256_keygen","_crypto_auth_hmacsha256_verify","_crypto_auth_hmacsha512_keybytes","_crypto_auth_hmacsha512_bytes","_crypto_auth_hmacsha512","_crypto_auth_hmacsha512_keygen","_crypto_auth_hmacsha512_verify","_crypto_auth_keygen","_crypto_auth_verify","_crypto_box_publickeybytes","_crypto_box_secretkeybytes","_crypto_box_beforenmbytes","_crypto_box_beforenm","_crypto_box_curve25519xchacha20poly1305_publickeybytes","_crypto_box_curve25519xchacha20poly1305_secretkeybytes","_crypto_box_curve25519xchacha20poly1305_keypair","keyType","_crypto_box_curve25519xchacha20poly1305_sealbytes","_crypto_box_curve25519xchacha20poly1305_seal","_crypto_box_curve25519xchacha20poly1305_seal_open","_crypto_box_noncebytes","_crypto_box_detached","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_open_detached","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_sealbytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_seedbytes","_crypto_box_seed_keypair","_crypto_core_ed25519_bytes","_crypto_core_ed25519_add","_crypto_core_ed25519_from_hash","_crypto_core_ed25519_from_uniform","_crypto_core_ed25519_is_valid_point","_crypto_core_ed25519_random","_crypto_core_ed25519_scalarbytes","_crypto_core_ed25519_scalar_add","_crypto_core_ed25519_scalar_complement","_crypto_core_ed25519_scalar_invert","_crypto_core_ed25519_scalar_mul","_crypto_core_ed25519_scalar_negate","_crypto_core_ed25519_scalar_random","_crypto_core_ed25519_nonreducedscalarbytes","_crypto_core_ed25519_scalar_reduce","_crypto_core_ed25519_scalar_sub","_crypto_core_ed25519_sub","_crypto_core_ristretto255_bytes","_crypto_core_ristretto255_add","_crypto_core_ristretto255_from_hash","_crypto_core_ristretto255_is_valid_point","_crypto_core_ristretto255_random","_crypto_core_ristretto255_scalarbytes","_crypto_core_ristretto255_scalar_add","_crypto_core_ristretto255_scalar_complement","_crypto_core_ristretto255_scalar_invert","_crypto_core_ristretto255_scalar_mul","_crypto_core_ristretto255_scalar_negate","_crypto_core_ristretto255_scalar_random","_crypto_core_ristretto255_nonreducedscalarbytes","_crypto_core_ristretto255_scalar_reduce","_crypto_core_ristretto255_scalar_sub","_crypto_core_ristretto255_sub","_crypto_generichash","_crypto_generichash_blake2b_saltbytes","_crypto_generichash_blake2b_personalbytes","_crypto_generichash_blake2b_salt_personal","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keygen","_crypto_generichash_update","_crypto_hash_bytes","_crypto_hash","_crypto_hash_sha256_bytes","_crypto_hash_sha256","_crypto_hash_sha256_final","_crypto_hash_sha256_init","_crypto_hash_sha256_update","_crypto_hash_sha512_bytes","_crypto_hash_sha512","_crypto_hash_sha512_final","_crypto_hash_sha512_init","_crypto_hash_sha512_update","_crypto_kdf_keybytes","_crypto_kdf_derive_from_key","_crypto_kdf_keygen","_crypto_kx_publickeybytes","_crypto_kx_secretkeybytes","_crypto_kx_sessionkeybytes","_crypto_kx_client_session_keys","sharedRx","sharedTx","_crypto_kx_keypair","_crypto_kx_seedbytes","_crypto_kx_seed_keypair","_crypto_kx_server_session_keys","_crypto_onetimeauth_keybytes","_crypto_onetimeauth_bytes","_crypto_onetimeauth","_crypto_onetimeauth_final","_crypto_onetimeauth_init","_crypto_onetimeauth_keygen","_crypto_onetimeauth_update","_crypto_onetimeauth_verify","_crypto_pwhash_saltbytes","_crypto_pwhash","_crypto_pwhash_scryptsalsa208sha256_saltbytes","_crypto_pwhash_scryptsalsa208sha256","_crypto_pwhash_scryptsalsa208sha256_ll","_crypto_pwhash_scryptsalsa208sha256_strbytes","_crypto_pwhash_scryptsalsa208sha256_str","_crypto_pwhash_scryptsalsa208sha256_str_verify","_crypto_pwhash_strbytes","_crypto_pwhash_str","_crypto_pwhash_str_needs_rehash","_crypto_pwhash_str_verify","_crypto_scalarmult_scalarbytes","_crypto_scalarmult_bytes","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_ed25519_scalarbytes","_crypto_scalarmult_ed25519_bytes","_crypto_scalarmult_ed25519","_crypto_scalarmult_ed25519_base","_crypto_scalarmult_ed25519_base_noclamp","_crypto_scalarmult_ed25519_noclamp","_crypto_scalarmult_ristretto255_scalarbytes","_crypto_scalarmult_ristretto255_bytes","_crypto_scalarmult_ristretto255","_crypto_scalarmult_ristretto255_base","_crypto_secretbox_noncebytes","_crypto_secretbox_keybytes","_crypto_secretbox_macbytes","_crypto_secretbox_detached","cipher","_crypto_secretbox_easy","_crypto_secretbox_keygen","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_secretstream_xchacha20poly1305_headerbytes","_crypto_secretstream_xchacha20poly1305_keybytes","_crypto_secretstream_xchacha20poly1305_init_pull","_crypto_secretstream_xchacha20poly1305_init_push","_crypto_secretstream_xchacha20poly1305_keygen","_crypto_secretstream_xchacha20poly1305_abytes","_crypto_secretstream_xchacha20poly1305_pull","_crypto_secretstream_xchacha20poly1305_push","_crypto_secretstream_xchacha20poly1305_rekey","_crypto_shorthash_keybytes","_crypto_shorthash_bytes","_crypto_shorthash","_crypto_shorthash_keygen","_crypto_shorthash_siphashx24_keybytes","_crypto_shorthash_siphashx24_bytes","_crypto_shorthash_siphashx24","_crypto_sign_secretkeybytes","_crypto_sign_bytes","_crypto_sign","_crypto_sign_detached","_crypto_sign_publickeybytes","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_ed25519_sk_to_pk","_crypto_sign_seedbytes","_crypto_sign_ed25519_sk_to_seed","_crypto_sign_final_create","_crypto_sign_final_verify","_crypto_sign_init","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_seed_keypair","_crypto_sign_update","_crypto_sign_verify_detached","_crypto_stream_chacha20_keybytes","_crypto_stream_chacha20_noncebytes","_crypto_stream_chacha20","_crypto_stream_chacha20_ietf_noncebytes","_crypto_stream_chacha20_ietf_keybytes","_crypto_stream_chacha20_ietf_xor","_crypto_stream_chacha20_ietf_xor_ic","_crypto_stream_chacha20_keygen","_crypto_stream_chacha20_xor","_crypto_stream_chacha20_xor_ic","_crypto_stream_keybytes","_crypto_stream_keygen","_crypto_stream_xchacha20_keybytes","_crypto_stream_xchacha20_keygen","_crypto_stream_xchacha20_noncebytes","_crypto_stream_xchacha20_xor","_crypto_stream_xchacha20_xor_ic","_randombytes_buf","_randombytes_seedbytes","_randombytes_buf_deterministic","_randombytes_close","_randombytes_random","setValue","Runtime","addFunction","_randombytes_set_implementation","_randombytes_stir","_randombytes_uniform","_sodium_version_string","base64_variants","from_base64","result_bin_len_p","b64_end_p","_sodium_base642bin","getValue","from_hex","hex_end_p","_sodium_hex2bin","from_string","is_zero","libsodium","memzero","output_formats","_sodium_pad","unpad","_sodium_unpad","symbols","to_base64","to_hex","to_string","totalMemory","TOTAL_MEMORY","onAbort","print","printErr","onRuntimeInitialized","importScripts","locateFile","__dirname","bA","readFileSync","argv","_A","readbuffer","scriptArgs","currentScript","thisProgram","quit","wasmBinary","noExitRuntime","Memory","Module","Instance","grow","Wg","Int8Array","Int16Array","Int32Array","Uint16Array","fround","trunc","AA","IA","gA","BA","QA","CA","EA","iA","nA","aA","rA","oA","eA","tA","fA","cA","yA","sA","wA","hA","DA","ug","dA","HI","eg","vI","II","uA","pA","lA","FA","GA","kA","HA","YA","Yg","QI","rI","Hg","xI","mI","nI","tI","fI","OI","qA","iI","hg","dI","GI","Vg","XI","ig","UI","mA","vA","UA","SA","NA","MA","PA","RA","JA","xA","LA","KA","XA","VA","WA","TA","jA","ZA","OA","pg","gg","CI","EI","vg","zI","fg","DI","JI","_I","AI","$I","lg","Ag","yg","Fg","zA","wg","RI","KI","eI","FI","Ug","Gg","kg","BI","og","NI","rg","SI","WI","cI","$A","gI","aI","oI","YI","yI","sI","wI","jI","Qg","hI","Cg","uI","pI","lI","qI","sg","TI","kI","bI","MI","LI","VI","ZI","Ig","cg","Bg","Eg","ng","ag","tg","Dg","bg","mg","Sg","Ng","Mg","dg","Pg","Rg","Jg","xg","Lg","Kg","qg","Xg","ba","ca","ea","fa","ga","ha","ia","ka","la","ma","na","oa","pa","qa","ra","sa","ta","ua","va","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","$a","ab","db","eb","fb","gb","hb","ib","kb","lb","mb","nb","ob","pb","qb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","wc","yc","zc","Ac","Bc","Cc","instantiate","RuntimeError","HEAP8","HEAP16","HEAP32","HEAPU16","HEAPU32","HEAPF32","HEAPF64","INITIAL_MEMORY","wasmMemory","maximum","preRun","postRun","func","monitorRunDependencies","clearInterval","preloadedImages","preloadedAudios","credentials","ok","arrayBuffer","asm","instantiateWasm","instantiateStreaming","getRandomValue","hardwareConcurrency","___wasm_call_ctors","_crypto_aead_chacha20poly1305_ietf_nsecbytes","_crypto_aead_chacha20poly1305_ietf_messagebytes_max","_crypto_aead_chacha20poly1305_nsecbytes","_crypto_aead_chacha20poly1305_messagebytes_max","_crypto_aead_xchacha20poly1305_ietf_nsecbytes","_crypto_aead_xchacha20poly1305_ietf_messagebytes_max","_crypto_box_messagebytes_max","_crypto_box_detached_afternm","_crypto_box_open_detached_afternm","_crypto_generichash_bytes_min","_crypto_generichash_bytes_max","_crypto_generichash_bytes","_crypto_generichash_keybytes_min","_crypto_generichash_keybytes_max","_crypto_generichash_statebytes","_crypto_kdf_bytes_min","_crypto_kdf_bytes_max","_crypto_kdf_contextbytes","_crypto_pwhash_alg_argon2i13","_crypto_pwhash_alg_argon2id13","_crypto_pwhash_alg_default","_crypto_pwhash_bytes_min","_crypto_pwhash_bytes_max","_crypto_pwhash_passwd_min","_crypto_pwhash_passwd_max","_crypto_pwhash_strprefix","_crypto_pwhash_opslimit_min","_crypto_pwhash_opslimit_max","_crypto_pwhash_memlimit_min","_crypto_pwhash_memlimit_max","_crypto_pwhash_opslimit_interactive","_crypto_pwhash_memlimit_interactive","_crypto_pwhash_opslimit_moderate","_crypto_pwhash_memlimit_moderate","_crypto_pwhash_opslimit_sensitive","_crypto_pwhash_memlimit_sensitive","_crypto_pwhash_str_alg","_crypto_secretbox_messagebytes_max","_crypto_secretstream_xchacha20poly1305_statebytes","_crypto_secretstream_xchacha20poly1305_messagebytes_max","_crypto_secretstream_xchacha20poly1305_tag_message","_crypto_secretstream_xchacha20poly1305_tag_push","_crypto_secretstream_xchacha20poly1305_tag_rekey","_crypto_secretstream_xchacha20poly1305_tag_final","_crypto_sign_statebytes","_crypto_sign_messagebytes_max","_randombytes","_sodium_bin2hex","_sodium_base64_encoded_len","_sodium_library_version_major","_sodium_library_version_minor","_sodium_library_minimal","___errno_location","calledRun","setStatus","run","preInit","WebAssembly","__isLong__","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","radix","radixToPower","TWO_PWR_16_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","isNegative","radixLong","rem1","rem","remDiv","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","eqz","isPositive","notEquals","neq","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","thisNeg","otherNeg","not","addend","a48","a32","a16","a00","b48","b32","b16","c48","c32","c16","c00","subtract","subtrahend","multiplier","get_high","b00","divide","divisor","approx","div_u","div_s","toUnsigned","shru","shr","approxRes","approxRem","modulo","rem_u","rem_s","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytesLE","toBytesBE","fromBytesLE","Yallist","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","doUse","hit","isStale","del","unshiftNode","maxAge","walker","delete","removeNode","Entry","forEachStep","thisp","stale","dispose","noDisposeOnSet","updateAgeOnGet","mL","allowStale","lengthCalculator","lC","itemCount","rforEach","dump","dumpLru","peek","load","expiresAt","prune","equal","keysShim","isArgs","isEnumerable","propertyIsEnumerable","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","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","callee","Deflate","deflate","deflateRaw","Inflate","inflate","inflateRaw","ungzip","constants","zlib_deflate","strings","ZStream","Z_NO_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","chunkSize","windowBits","memLevel","strategy","ended","strm","avail_out","deflateInit2","deflateSetHeader","dictionary","dict","string2buf","deflateSetDictionary","_dict_set","deflator","flush_mode","_flush_mode","next_in","avail_in","next_out","onData","deflateEnd","onEnd","flattenChunks","zlib_inflate","GZheader","Z_NEED_DICT","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","inflateInit2","inflateGetHeader","inflateSetDictionary","inflator","last_avail_out","inflateReset","next_out_utf8","utf8border","utf8str","buf2string","inflateEnd","_has","sources","STR_APPLY_UIA_OK","__","_utf8len","m_pos","str_len","buf_len","utf16buf","c_len","buf2binstring","adler","Z_PARTIAL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","crcTable","makeTable","crc","_tr_init","_tr_stored_block","_tr_flush_block","_tr_tally","_tr_align","adler32","crc32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","rank","HASH","hash_shift","hash_mask","flush_pending","pending_buf","pending_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","insert","ins_h","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","configuration_table","max_block_size","pending_buf_size","max_start","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","deflateReset","deflateInit","beg","old_flush","text","hcrc","extra","comment","os","level_flags","bstate","deflate_huff","deflate_rle","dictLength","tmpDict","avail","deflateInfo","xflags","extra_len","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","inflate_fast","inflate_table","TYPE","BAD","zswap32","InflateState","havedict","wbits","ncode","nlen","ndist","have","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset2","lenfix","distfix","virgin","fixedtables","updatewindow","inflateInit","put","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","inf_leave","dictid","inflateInfo","lbase","lext","dbase","dext","lens_index","codes","table_index","incr","curr","drop","used","huff","base_index","MAXBITS","offs","extra_index","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lx","build_tree","stree","xbits","overflow","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","assertPath","normalizeStringPosix","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","posix","cwd","resolvedPath","resolvedAbsolute","isAbsolute","trailingSeparator","joined","relative","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","_makeLong","dirname","hasRoot","matchedSlash","basename","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","pathObject","sep","_format","delimiter","win32","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","env","binding","chdir","umask","createErrorType","NodeError","_Base","subClass","superClass","arg1","arg2","arg3","__proto__","oneOf","expected","determiner","this_len","objectKeys","Duplex","Readable","Writable","allowHalfOpen","readable","onend","_writableState","onEndNT","highWaterMark","getBuffer","_readableState","PassThrough","ReadableState","EElistenerCount","OurUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","_read","_destroy","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","dests","ev","asyncIterator","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","prefinish","_write","err2","CorkedRequest","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","deprecate","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","final","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","rState","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","_defineProperty","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_Object$create","enumerableOnly","custom","_classCallCheck","hasStrings","_getString","_getBuffer","getOwnPropertyDescriptors","_objectSpread","customInspect","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","eos","called","_len","onlegacyfinish","writableEnded","readableEnded","onrequest","setHeader","isRequest","ERR_MISSING_ARGS","destroyer","popCallback","destroys","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","runtime","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ARRAY16","fn1","fn2","fn3","fn4","fn5","copyProps","SafeBuffer","ANY","Comparator","parseOptions","loose","semver","operator","COMPARATORLOOSE","COMPARATOR","SemVer","intersects","includePrerelease","Range","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","parseRange","isNullSet","isAny","comps","memoKey","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","compRe","rangeList","parseComparator","replaceGTE0","rangeMap","some","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","testSet","comparators","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","replaceCaret","CARETLOOSE","CARET","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","tM","tm","tp","tpr","prerelease","allowed","MAX_LENGTH","compareIdentifiers","LOOSE","FULL","compareMain","comparePre","compareBuild","inc","release","rtl","COERCERTL","lastIndex","COERCE","versionA","versionB","version1","version2","hasPre","defaultResult","internalRe","SEMVER_SPEC_VERSION","rcompareIdentifiers","valid","clean","rcompare","compareLoose","rsort","coerce","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","MAX_SAFE_COMPONENT_LENGTH","NODE_DEBUG","numeric","anum","bnum","createToken","isGlobal","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","LONETILDE","LONECARET","r1","maxSV","rangeObj","minSV","minver","setMin","comparator","compver","hilo","gtfn","ltefn","ltfn","ecomp","ranges","simplified","original","simpleSubset","dom","eqSet","gtltComp","higher","lower","hasDomLT","hasDomGT","higherGT","lowerLT","needDomLTPre","needDomGTPre","sawNonNull","OUTER","simpleSub","simpleDom","isSub","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckExtraBytes","utf8CheckIncomplete","_Symbol","observable","cosmwasm_stargate_1","faucet_client_1","setupNodeLedger","setupNodeLocal","setupWebLedger","setupWebKeplr","ledger_amino_1","keplr","enable","offlineSigner","getOfflineSignerAuto","connectWithSigner","rpcEndpoint","interactiveTimeout","ledgerTransport","setup_1","stargate_2","localStorage","trace","extendStatics","__extends","NO_IL","NO","ponyfill_1","globalthis_1","$$observable","cp","_try","_n","internalizeProducer","_start","_stop","StreamSub","_stream","_listener","_remove","Observer","FromObservable","ins","active","_sub","Merge","insArr","_add","CombineListener","ils","up","vals","Nc","Combine","Nn","FromArray","FromPromise","prod","Periodic","intervalID","setInterval","Debug","Drop","dropped","EndWhenListener","EndWhen","oil","Filter","passes","FlattenListener","less","Flatten","Fold","Last","MapOp","project","Remember","ReplaceError","replacer","StartWith","Take","taken","_prod","_ils","_stopID","_dl","_target","_stopNow","_pruneCycles","_hasNoSinks","never","empty","throw","fromObservable","fromPromise","fromArray","of","_i","obs","endWhen","periodic","_map","mapTo","projectedValue","f1","f2","startWith","fold","accumulate","replaceError","flatten","compose","remember","labelOrSpy","imitate","shamefullySendNext","shamefullySendError","shamefullySendComplete","setDebugListener","combine","_super","_v","inserted","Node","pushNode","forEachReverse","getReverse","mapReverse","reduceReverse","toArrayReverse","sliceReverse","deleteCount","nodes","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","nmd","children","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/bundle.node.js b/dist/bundle.node.js new file mode 100644 index 0000000..bf50b64 --- /dev/null +++ b/dist/bundle.node.js @@ -0,0 +1,3 @@ +/*! For license information please see bundle.node.js.LICENSE.txt */ +(()=>{var __webpack_modules__={8926:e=>{function t(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(o,i){var a=e.apply(n,r);function s(e){t(a,o,i,s,c,"next",e)}function c(e){t(a,o,i,s,c,"throw",e)}s(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},3913:e=>{function t(e,t){for(var n=0;n{e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},8:e=>{function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},7757:(e,t,n)=>{e.exports=n(5666)},4453:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decompress=t.compress=void 0;const r=n(641);function o(e){const t=[],n=[],r=new Map;for(const o of e.entries)if(o.exist){const e={exist:i(o.exist,n,r)};t.push(e)}else{if(!o.nonexist)throw new Error("Unexpected batch entry during compress");{const e=o.nonexist,a={nonexist:{key:e.key,left:i(e.left,n,r),right:i(e.right,n,r)}};t.push(a)}}return{entries:t,lookupInners:n}}function i(e,t,n){if(!e)return;const o=e.path.map((e=>{const o=r.ics23.InnerOp.encode(e).finish();let i=n.get(o);return void 0===i&&(i=t.length,t.push(e),n.set(o,i)),i}));return{key:e.key,value:e.value,leaf:e.leaf,path:o}}function a(e){const t=e.lookupInners;return{entries:e.entries.map((e=>{if(e.exist)return{exist:s(e.exist,t)};if(e.nonexist){const n=e.nonexist;return{nonexist:{key:n.key,left:s(n.left,t),right:s(n.right,t)}}}throw new Error("Unexpected batch entry during compress")}))}}function s(e,t){if(!e)return;const{key:n,value:r,leaf:o,path:i}=e;return{key:n,value:r,leaf:o,path:(i||[]).map((e=>t[e]))}}t.compress=function(e){return e.batch?{compressed:o(e.batch)}:e},t.decompress=function(e){return e.compressed?{batch:a(e.compressed)}:e}},641:(e,t,n)=>{"use strict";var r,o,i,a=n(3302),s=a.Reader,c=a.Writer,d=a.util,u=a.roots.default||(a.roots.default={});u.ics23=((i={}).HashOp=(r={},(o=Object.create(r))[r[0]="NO_HASH"]=0,o[r[1]="SHA256"]=1,o[r[2]="SHA512"]=2,o[r[3]="KECCAK"]=3,o[r[4]="RIPEMD160"]=4,o[r[5]="BITCOIN"]=5,o[r[6]="SHA512_256"]=6,o),i.LengthOp=function(){var e={},t=Object.create(e);return t[e[0]="NO_PREFIX"]=0,t[e[1]="VAR_PROTO"]=1,t[e[2]="VAR_RLP"]=2,t[e[3]="FIXED32_BIG"]=3,t[e[4]="FIXED32_LITTLE"]=4,t[e[5]="FIXED64_BIG"]=5,t[e[6]="FIXED64_LITTLE"]=6,t[e[7]="REQUIRE_32_BYTES"]=7,t[e[8]="REQUIRE_64_BYTES"]=8,t}(),i.ExistenceProof=function(){function e(e){if(this.path=[],e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.key=e.bytes();break;case 2:r.value=e.bytes();break;case 3:r.leaf=u.ics23.LeafOp.decode(e,e.uint32());break;case 4:r.path&&r.path.length||(r.path=[]),r.path.push(u.ics23.InnerOp.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.key&&e.hasOwnProperty("key")&&!(e.key&&"number"==typeof e.key.length||d.isString(e.key)))return"key: buffer expected";if(null!=e.value&&e.hasOwnProperty("value")&&!(e.value&&"number"==typeof e.value.length||d.isString(e.value)))return"value: buffer expected";if(null!=e.leaf&&e.hasOwnProperty("leaf")&&(n=u.ics23.LeafOp.verify(e.leaf)))return"leaf."+n;if(null!=e.path&&e.hasOwnProperty("path")){if(!Array.isArray(e.path))return"path: array expected";for(var t=0;t>>3){case 1:r.key=e.bytes();break;case 2:r.left=u.ics23.ExistenceProof.decode(e,e.uint32());break;case 3:r.right=u.ics23.ExistenceProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.key&&e.hasOwnProperty("key")&&!(e.key&&"number"==typeof e.key.length||d.isString(e.key))?"key: buffer expected":null!=e.left&&e.hasOwnProperty("left")&&(t=u.ics23.ExistenceProof.verify(e.left))?"left."+t:null!=e.right&&e.hasOwnProperty("right")&&(t=u.ics23.ExistenceProof.verify(e.right))?"right."+t:null;var t},e.fromObject=function(e){if(e instanceof u.ics23.NonExistenceProof)return e;var t=new u.ics23.NonExistenceProof;if(null!=e.key&&("string"==typeof e.key?d.base64.decode(e.key,t.key=d.newBuffer(d.base64.length(e.key)),0):e.key.length&&(t.key=e.key)),null!=e.left){if("object"!=typeof e.left)throw TypeError(".ics23.NonExistenceProof.left: object expected");t.left=u.ics23.ExistenceProof.fromObject(e.left)}if(null!=e.right){if("object"!=typeof e.right)throw TypeError(".ics23.NonExistenceProof.right: object expected");t.right=u.ics23.ExistenceProof.fromObject(e.right)}return t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(t.bytes===String?n.key="":(n.key=[],t.bytes!==Array&&(n.key=d.newBuffer(n.key))),n.left=null,n.right=null),null!=e.key&&e.hasOwnProperty("key")&&(n.key=t.bytes===String?d.base64.encode(e.key,0,e.key.length):t.bytes===Array?Array.prototype.slice.call(e.key):e.key),null!=e.left&&e.hasOwnProperty("left")&&(n.left=u.ics23.ExistenceProof.toObject(e.left,t)),null!=e.right&&e.hasOwnProperty("right")&&(n.right=u.ics23.ExistenceProof.toObject(e.right,t)),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.CommitmentProof=function(){function e(e){if(e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.exist=u.ics23.ExistenceProof.decode(e,e.uint32());break;case 2:r.nonexist=u.ics23.NonExistenceProof.decode(e,e.uint32());break;case 3:r.batch=u.ics23.BatchProof.decode(e,e.uint32());break;case 4:r.compressed=u.ics23.CompressedBatchProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.exist&&e.hasOwnProperty("exist")&&(t.proof=1,n=u.ics23.ExistenceProof.verify(e.exist)))return"exist."+n;if(null!=e.nonexist&&e.hasOwnProperty("nonexist")){if(1===t.proof)return"proof: multiple values";if(t.proof=1,n=u.ics23.NonExistenceProof.verify(e.nonexist))return"nonexist."+n}if(null!=e.batch&&e.hasOwnProperty("batch")){if(1===t.proof)return"proof: multiple values";if(t.proof=1,n=u.ics23.BatchProof.verify(e.batch))return"batch."+n}if(null!=e.compressed&&e.hasOwnProperty("compressed")){if(1===t.proof)return"proof: multiple values";var n;if(t.proof=1,n=u.ics23.CompressedBatchProof.verify(e.compressed))return"compressed."+n}return null},e.fromObject=function(e){if(e instanceof u.ics23.CommitmentProof)return e;var t=new u.ics23.CommitmentProof;if(null!=e.exist){if("object"!=typeof e.exist)throw TypeError(".ics23.CommitmentProof.exist: object expected");t.exist=u.ics23.ExistenceProof.fromObject(e.exist)}if(null!=e.nonexist){if("object"!=typeof e.nonexist)throw TypeError(".ics23.CommitmentProof.nonexist: object expected");t.nonexist=u.ics23.NonExistenceProof.fromObject(e.nonexist)}if(null!=e.batch){if("object"!=typeof e.batch)throw TypeError(".ics23.CommitmentProof.batch: object expected");t.batch=u.ics23.BatchProof.fromObject(e.batch)}if(null!=e.compressed){if("object"!=typeof e.compressed)throw TypeError(".ics23.CommitmentProof.compressed: object expected");t.compressed=u.ics23.CompressedBatchProof.fromObject(e.compressed)}return t},e.toObject=function(e,t){t||(t={});var n={};return null!=e.exist&&e.hasOwnProperty("exist")&&(n.exist=u.ics23.ExistenceProof.toObject(e.exist,t),t.oneofs&&(n.proof="exist")),null!=e.nonexist&&e.hasOwnProperty("nonexist")&&(n.nonexist=u.ics23.NonExistenceProof.toObject(e.nonexist,t),t.oneofs&&(n.proof="nonexist")),null!=e.batch&&e.hasOwnProperty("batch")&&(n.batch=u.ics23.BatchProof.toObject(e.batch,t),t.oneofs&&(n.proof="batch")),null!=e.compressed&&e.hasOwnProperty("compressed")&&(n.compressed=u.ics23.CompressedBatchProof.toObject(e.compressed,t),t.oneofs&&(n.proof="compressed")),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.LeafOp=function(){function e(e){if(e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.hash=e.int32();break;case 2:r.prehashKey=e.int32();break;case 3:r.prehashValue=e.int32();break;case 4:r.length=e.int32();break;case 5:r.prefix=e.bytes();break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.hash&&e.hasOwnProperty("hash"))switch(e.hash){default:return"hash: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:}if(null!=e.prehashKey&&e.hasOwnProperty("prehashKey"))switch(e.prehashKey){default:return"prehashKey: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:}if(null!=e.prehashValue&&e.hasOwnProperty("prehashValue"))switch(e.prehashValue){default:return"prehashValue: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:}if(null!=e.length&&e.hasOwnProperty("length"))switch(e.length){default:return"length: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:}return null!=e.prefix&&e.hasOwnProperty("prefix")&&!(e.prefix&&"number"==typeof e.prefix.length||d.isString(e.prefix))?"prefix: buffer expected":null},e.fromObject=function(e){if(e instanceof u.ics23.LeafOp)return e;var t=new u.ics23.LeafOp;switch(e.hash){case"NO_HASH":case 0:t.hash=0;break;case"SHA256":case 1:t.hash=1;break;case"SHA512":case 2:t.hash=2;break;case"KECCAK":case 3:t.hash=3;break;case"RIPEMD160":case 4:t.hash=4;break;case"BITCOIN":case 5:t.hash=5;break;case"SHA512_256":case 6:t.hash=6}switch(e.prehashKey){case"NO_HASH":case 0:t.prehashKey=0;break;case"SHA256":case 1:t.prehashKey=1;break;case"SHA512":case 2:t.prehashKey=2;break;case"KECCAK":case 3:t.prehashKey=3;break;case"RIPEMD160":case 4:t.prehashKey=4;break;case"BITCOIN":case 5:t.prehashKey=5;break;case"SHA512_256":case 6:t.prehashKey=6}switch(e.prehashValue){case"NO_HASH":case 0:t.prehashValue=0;break;case"SHA256":case 1:t.prehashValue=1;break;case"SHA512":case 2:t.prehashValue=2;break;case"KECCAK":case 3:t.prehashValue=3;break;case"RIPEMD160":case 4:t.prehashValue=4;break;case"BITCOIN":case 5:t.prehashValue=5;break;case"SHA512_256":case 6:t.prehashValue=6}switch(e.length){case"NO_PREFIX":case 0:t.length=0;break;case"VAR_PROTO":case 1:t.length=1;break;case"VAR_RLP":case 2:t.length=2;break;case"FIXED32_BIG":case 3:t.length=3;break;case"FIXED32_LITTLE":case 4:t.length=4;break;case"FIXED64_BIG":case 5:t.length=5;break;case"FIXED64_LITTLE":case 6:t.length=6;break;case"REQUIRE_32_BYTES":case 7:t.length=7;break;case"REQUIRE_64_BYTES":case 8:t.length=8}return null!=e.prefix&&("string"==typeof e.prefix?d.base64.decode(e.prefix,t.prefix=d.newBuffer(d.base64.length(e.prefix)),0):e.prefix.length&&(t.prefix=e.prefix)),t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(n.hash=t.enums===String?"NO_HASH":0,n.prehashKey=t.enums===String?"NO_HASH":0,n.prehashValue=t.enums===String?"NO_HASH":0,n.length=t.enums===String?"NO_PREFIX":0,t.bytes===String?n.prefix="":(n.prefix=[],t.bytes!==Array&&(n.prefix=d.newBuffer(n.prefix)))),null!=e.hash&&e.hasOwnProperty("hash")&&(n.hash=t.enums===String?u.ics23.HashOp[e.hash]:e.hash),null!=e.prehashKey&&e.hasOwnProperty("prehashKey")&&(n.prehashKey=t.enums===String?u.ics23.HashOp[e.prehashKey]:e.prehashKey),null!=e.prehashValue&&e.hasOwnProperty("prehashValue")&&(n.prehashValue=t.enums===String?u.ics23.HashOp[e.prehashValue]:e.prehashValue),null!=e.length&&e.hasOwnProperty("length")&&(n.length=t.enums===String?u.ics23.LengthOp[e.length]:e.length),null!=e.prefix&&e.hasOwnProperty("prefix")&&(n.prefix=t.bytes===String?d.base64.encode(e.prefix,0,e.prefix.length):t.bytes===Array?Array.prototype.slice.call(e.prefix):e.prefix),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.InnerOp=function(){function e(e){if(e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.hash=e.int32();break;case 2:r.prefix=e.bytes();break;case 3:r.suffix=e.bytes();break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.hash&&e.hasOwnProperty("hash"))switch(e.hash){default:return"hash: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:}return null!=e.prefix&&e.hasOwnProperty("prefix")&&!(e.prefix&&"number"==typeof e.prefix.length||d.isString(e.prefix))?"prefix: buffer expected":null!=e.suffix&&e.hasOwnProperty("suffix")&&!(e.suffix&&"number"==typeof e.suffix.length||d.isString(e.suffix))?"suffix: buffer expected":null},e.fromObject=function(e){if(e instanceof u.ics23.InnerOp)return e;var t=new u.ics23.InnerOp;switch(e.hash){case"NO_HASH":case 0:t.hash=0;break;case"SHA256":case 1:t.hash=1;break;case"SHA512":case 2:t.hash=2;break;case"KECCAK":case 3:t.hash=3;break;case"RIPEMD160":case 4:t.hash=4;break;case"BITCOIN":case 5:t.hash=5;break;case"SHA512_256":case 6:t.hash=6}return null!=e.prefix&&("string"==typeof e.prefix?d.base64.decode(e.prefix,t.prefix=d.newBuffer(d.base64.length(e.prefix)),0):e.prefix.length&&(t.prefix=e.prefix)),null!=e.suffix&&("string"==typeof e.suffix?d.base64.decode(e.suffix,t.suffix=d.newBuffer(d.base64.length(e.suffix)),0):e.suffix.length&&(t.suffix=e.suffix)),t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(n.hash=t.enums===String?"NO_HASH":0,t.bytes===String?n.prefix="":(n.prefix=[],t.bytes!==Array&&(n.prefix=d.newBuffer(n.prefix))),t.bytes===String?n.suffix="":(n.suffix=[],t.bytes!==Array&&(n.suffix=d.newBuffer(n.suffix)))),null!=e.hash&&e.hasOwnProperty("hash")&&(n.hash=t.enums===String?u.ics23.HashOp[e.hash]:e.hash),null!=e.prefix&&e.hasOwnProperty("prefix")&&(n.prefix=t.bytes===String?d.base64.encode(e.prefix,0,e.prefix.length):t.bytes===Array?Array.prototype.slice.call(e.prefix):e.prefix),null!=e.suffix&&e.hasOwnProperty("suffix")&&(n.suffix=t.bytes===String?d.base64.encode(e.suffix,0,e.suffix.length):t.bytes===Array?Array.prototype.slice.call(e.suffix):e.suffix),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.ProofSpec=function(){function e(e){if(e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.leafSpec=u.ics23.LeafOp.decode(e,e.uint32());break;case 2:r.innerSpec=u.ics23.InnerSpec.decode(e,e.uint32());break;case 3:r.maxDepth=e.int32();break;case 4:r.minDepth=e.int32();break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.leafSpec&&e.hasOwnProperty("leafSpec")&&(t=u.ics23.LeafOp.verify(e.leafSpec))?"leafSpec."+t:null!=e.innerSpec&&e.hasOwnProperty("innerSpec")&&(t=u.ics23.InnerSpec.verify(e.innerSpec))?"innerSpec."+t:null!=e.maxDepth&&e.hasOwnProperty("maxDepth")&&!d.isInteger(e.maxDepth)?"maxDepth: integer expected":null!=e.minDepth&&e.hasOwnProperty("minDepth")&&!d.isInteger(e.minDepth)?"minDepth: integer expected":null;var t},e.fromObject=function(e){if(e instanceof u.ics23.ProofSpec)return e;var t=new u.ics23.ProofSpec;if(null!=e.leafSpec){if("object"!=typeof e.leafSpec)throw TypeError(".ics23.ProofSpec.leafSpec: object expected");t.leafSpec=u.ics23.LeafOp.fromObject(e.leafSpec)}if(null!=e.innerSpec){if("object"!=typeof e.innerSpec)throw TypeError(".ics23.ProofSpec.innerSpec: object expected");t.innerSpec=u.ics23.InnerSpec.fromObject(e.innerSpec)}return null!=e.maxDepth&&(t.maxDepth=0|e.maxDepth),null!=e.minDepth&&(t.minDepth=0|e.minDepth),t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(n.leafSpec=null,n.innerSpec=null,n.maxDepth=0,n.minDepth=0),null!=e.leafSpec&&e.hasOwnProperty("leafSpec")&&(n.leafSpec=u.ics23.LeafOp.toObject(e.leafSpec,t)),null!=e.innerSpec&&e.hasOwnProperty("innerSpec")&&(n.innerSpec=u.ics23.InnerSpec.toObject(e.innerSpec,t)),null!=e.maxDepth&&e.hasOwnProperty("maxDepth")&&(n.maxDepth=e.maxDepth),null!=e.minDepth&&e.hasOwnProperty("minDepth")&&(n.minDepth=e.minDepth),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.InnerSpec=function(){function e(e){if(this.childOrder=[],e)for(var t=Object.keys(e),n=0;n>>3){case 1:if(r.childOrder&&r.childOrder.length||(r.childOrder=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3==1?(r.entries&&r.entries.length||(r.entries=[]),r.entries.push(u.ics23.BatchEntry.decode(e,e.uint32()))):e.skipType(7&o)}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.entries&&e.hasOwnProperty("entries")){if(!Array.isArray(e.entries))return"entries: array expected";for(var t=0;t>>3){case 1:r.exist=u.ics23.ExistenceProof.decode(e,e.uint32());break;case 2:r.nonexist=u.ics23.NonExistenceProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.exist&&e.hasOwnProperty("exist")&&(t.proof=1,n=u.ics23.ExistenceProof.verify(e.exist)))return"exist."+n;if(null!=e.nonexist&&e.hasOwnProperty("nonexist")){if(1===t.proof)return"proof: multiple values";var n;if(t.proof=1,n=u.ics23.NonExistenceProof.verify(e.nonexist))return"nonexist."+n}return null},e.fromObject=function(e){if(e instanceof u.ics23.BatchEntry)return e;var t=new u.ics23.BatchEntry;if(null!=e.exist){if("object"!=typeof e.exist)throw TypeError(".ics23.BatchEntry.exist: object expected");t.exist=u.ics23.ExistenceProof.fromObject(e.exist)}if(null!=e.nonexist){if("object"!=typeof e.nonexist)throw TypeError(".ics23.BatchEntry.nonexist: object expected");t.nonexist=u.ics23.NonExistenceProof.fromObject(e.nonexist)}return t},e.toObject=function(e,t){t||(t={});var n={};return null!=e.exist&&e.hasOwnProperty("exist")&&(n.exist=u.ics23.ExistenceProof.toObject(e.exist,t),t.oneofs&&(n.proof="exist")),null!=e.nonexist&&e.hasOwnProperty("nonexist")&&(n.nonexist=u.ics23.NonExistenceProof.toObject(e.nonexist,t),t.oneofs&&(n.proof="nonexist")),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.CompressedBatchProof=function(){function e(e){if(this.entries=[],this.lookupInners=[],e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.entries&&r.entries.length||(r.entries=[]),r.entries.push(u.ics23.CompressedBatchEntry.decode(e,e.uint32()));break;case 2:r.lookupInners&&r.lookupInners.length||(r.lookupInners=[]),r.lookupInners.push(u.ics23.InnerOp.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.entries&&e.hasOwnProperty("entries")){if(!Array.isArray(e.entries))return"entries: array expected";for(var t=0;t>>3){case 1:r.exist=u.ics23.CompressedExistenceProof.decode(e,e.uint32());break;case 2:r.nonexist=u.ics23.CompressedNonExistenceProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.exist&&e.hasOwnProperty("exist")&&(t.proof=1,n=u.ics23.CompressedExistenceProof.verify(e.exist)))return"exist."+n;if(null!=e.nonexist&&e.hasOwnProperty("nonexist")){if(1===t.proof)return"proof: multiple values";var n;if(t.proof=1,n=u.ics23.CompressedNonExistenceProof.verify(e.nonexist))return"nonexist."+n}return null},e.fromObject=function(e){if(e instanceof u.ics23.CompressedBatchEntry)return e;var t=new u.ics23.CompressedBatchEntry;if(null!=e.exist){if("object"!=typeof e.exist)throw TypeError(".ics23.CompressedBatchEntry.exist: object expected");t.exist=u.ics23.CompressedExistenceProof.fromObject(e.exist)}if(null!=e.nonexist){if("object"!=typeof e.nonexist)throw TypeError(".ics23.CompressedBatchEntry.nonexist: object expected");t.nonexist=u.ics23.CompressedNonExistenceProof.fromObject(e.nonexist)}return t},e.toObject=function(e,t){t||(t={});var n={};return null!=e.exist&&e.hasOwnProperty("exist")&&(n.exist=u.ics23.CompressedExistenceProof.toObject(e.exist,t),t.oneofs&&(n.proof="exist")),null!=e.nonexist&&e.hasOwnProperty("nonexist")&&(n.nonexist=u.ics23.CompressedNonExistenceProof.toObject(e.nonexist,t),t.oneofs&&(n.proof="nonexist")),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i.CompressedExistenceProof=function(){function e(e){if(this.path=[],e)for(var t=Object.keys(e),n=0;n>>3){case 1:r.key=e.bytes();break;case 2:r.value=e.bytes();break;case 3:r.leaf=u.ics23.LeafOp.decode(e,e.uint32());break;case 4:if(r.path&&r.path.length||(r.path=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:r.key=e.bytes();break;case 2:r.left=u.ics23.CompressedExistenceProof.decode(e,e.uint32());break;case 3:r.right=u.ics23.CompressedExistenceProof.decode(e,e.uint32());break;default:e.skipType(7&o)}}return r},e.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.key&&e.hasOwnProperty("key")&&!(e.key&&"number"==typeof e.key.length||d.isString(e.key))?"key: buffer expected":null!=e.left&&e.hasOwnProperty("left")&&(t=u.ics23.CompressedExistenceProof.verify(e.left))?"left."+t:null!=e.right&&e.hasOwnProperty("right")&&(t=u.ics23.CompressedExistenceProof.verify(e.right))?"right."+t:null;var t},e.fromObject=function(e){if(e instanceof u.ics23.CompressedNonExistenceProof)return e;var t=new u.ics23.CompressedNonExistenceProof;if(null!=e.key&&("string"==typeof e.key?d.base64.decode(e.key,t.key=d.newBuffer(d.base64.length(e.key)),0):e.key.length&&(t.key=e.key)),null!=e.left){if("object"!=typeof e.left)throw TypeError(".ics23.CompressedNonExistenceProof.left: object expected");t.left=u.ics23.CompressedExistenceProof.fromObject(e.left)}if(null!=e.right){if("object"!=typeof e.right)throw TypeError(".ics23.CompressedNonExistenceProof.right: object expected");t.right=u.ics23.CompressedExistenceProof.fromObject(e.right)}return t},e.toObject=function(e,t){t||(t={});var n={};return t.defaults&&(t.bytes===String?n.key="":(n.key=[],t.bytes!==Array&&(n.key=d.newBuffer(n.key))),n.left=null,n.right=null),null!=e.key&&e.hasOwnProperty("key")&&(n.key=t.bytes===String?d.base64.encode(e.key,0,e.key.length):t.bytes===Array?Array.prototype.slice.call(e.key):e.key),null!=e.left&&e.hasOwnProperty("left")&&(n.left=u.ics23.CompressedExistenceProof.toObject(e.left,t)),null!=e.right&&e.hasOwnProperty("right")&&(n.right=u.ics23.CompressedExistenceProof.toObject(e.right,t)),n},e.prototype.toJSON=function(){return this.constructor.toObject(this,a.util.toJSONOptions)},e}(),i),e.exports=u},1708:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.batchVerifyNonMembership=t.batchVerifyMembership=t.verifyNonMembership=t.verifyMembership=void 0;const r=n(4453),o=n(4659),i=n(3824);function a(e,t,n,a,s){const c=function(e,t){const n=e=>!!e&&(0,i.bytesEqual)(t,e.key);return n(e.exist)?e.exist:e.batch?e.batch.entries.map((e=>e.exist||null)).find(n):void 0}((0,r.decompress)(e),a);if(!c)return!1;try{return(0,o.verifyExistence)(c,t,n,a,s),!0}catch(e){return!1}}function s(e,t,n,a){const s=function(e,t){const n=e=>!!e&&(!e.left||(0,i.bytesBefore)(e.left.key,t))&&(!e.right||(0,i.bytesBefore)(t,e.right.key));return n(e.nonexist)?e.nonexist:e.batch?e.batch.entries.map((e=>e.nonexist||null)).find(n):void 0}((0,r.decompress)(e),a);if(!s)return!1;try{return(0,o.verifyNonExistence)(s,t,n,a),!0}catch(e){return!1}}t.verifyMembership=a,t.verifyNonMembership=s,t.batchVerifyMembership=function(e,t,n,o){const i=(0,r.decompress)(e);for(const[e,r]of o.entries())if(!a(i,t,n,e,r))return!1;return!0},t.batchVerifyNonMembership=function(e,t,n,o){const i=(0,r.decompress)(e);for(const e of o)if(!s(i,t,n,e))return!1;return!0}},5201:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.verifyNonExistence=t.verifyExistence=t.tendermintSpec=t.iavlSpec=t.calculateExistenceRoot=t.verifyNonMembership=t.verifyMembership=t.ics23=void 0;var r=n(641);Object.defineProperty(t,"ics23",{enumerable:!0,get:function(){return r.ics23}});var o=n(1708);Object.defineProperty(t,"verifyMembership",{enumerable:!0,get:function(){return o.verifyMembership}}),Object.defineProperty(t,"verifyNonMembership",{enumerable:!0,get:function(){return o.verifyNonMembership}});var i=n(4659);Object.defineProperty(t,"calculateExistenceRoot",{enumerable:!0,get:function(){return i.calculateExistenceRoot}}),Object.defineProperty(t,"iavlSpec",{enumerable:!0,get:function(){return i.iavlSpec}}),Object.defineProperty(t,"tendermintSpec",{enumerable:!0,get:function(){return i.tendermintSpec}}),Object.defineProperty(t,"verifyExistence",{enumerable:!0,get:function(){return i.verifyExistence}}),Object.defineProperty(t,"verifyNonExistence",{enumerable:!0,get:function(){return i.verifyNonExistence}})},9768:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.doHash=t.applyInner=t.applyLeaf=void 0;const r=n(830),o=n(3061),i=n(6262),a=n(641);function s(e,t){return null==e?t:e}t.applyLeaf=function(e,t,n){if(0===t.length)throw new Error("Missing key");if(0===n.length)throw new Error("Missing value");const r=l(c(e.prehashKey),d(e.length),t),o=l(c(e.prehashValue),d(e.length),n),i=new Uint8Array([...u(e.prefix),...r,...o]);return A(c(e.hash),i)},t.applyInner=function(e,t){if(0===t.length)throw new Error("Inner op needs child value");const n=new Uint8Array([...u(e.prefix),...t,...u(e.suffix)]);return A(c(e.hash),n)};const c=e=>s(e,a.ics23.HashOp.NO_HASH),d=e=>s(e,a.ics23.LengthOp.NO_PREFIX),u=e=>s(e,new Uint8Array([]));function l(e,t,n){const r=function(e,t){return e===a.ics23.HashOp.NO_HASH?t:A(e,t)}(e,n);return function(e,t){switch(e){case a.ics23.LengthOp.NO_PREFIX:return t;case a.ics23.LengthOp.VAR_PROTO:return new Uint8Array([...f(t.length),...t]);case a.ics23.LengthOp.REQUIRE_32_BYTES:if(32!==t.length)throw new Error(`Length is ${t.length}, not 32 bytes`);return t;case a.ics23.LengthOp.REQUIRE_64_BYTES:if(64!==t.length)throw new Error(`Length is ${t.length}, not 64 bytes`);return t;case a.ics23.LengthOp.FIXED32_LITTLE:return new Uint8Array([...h(t.length),...t])}throw new Error(`Unsupported lengthop: ${e}`)}(t,r)}function A(e,t){switch(e){case a.ics23.HashOp.SHA256:return(0,o.sha256)(t);case a.ics23.HashOp.SHA512:return(0,i.sha512)(t);case a.ics23.HashOp.RIPEMD160:return(0,r.ripemd160)(t);case a.ics23.HashOp.BITCOIN:return(0,r.ripemd160)((0,o.sha256)(t));case a.ics23.HashOp.SHA512_256:return(0,i.sha512_256)(t)}throw new Error(`Unsupported hashop: ${e}`)}function f(e){let t=[],n=e;for(;n>=128;){const e=n%128+128;t=[...t,e],n/=128}return t=[...t,n],new Uint8Array(t)}function h(e){const t=new Uint8Array(4);let n=e;for(let e=t.length;e>0;e--)t[Math.abs(e-t.length)]=n%256,n=Math.floor(n/256);return t}t.doHash=A},4659:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureLeftNeighbor=t.ensureSpec=t.calculateExistenceRoot=t.verifyNonExistence=t.verifyExistence=t.smtSpec=t.tendermintSpec=t.iavlSpec=void 0;const r=n(641),o=n(9768),i=n(3824);function a(e,t,n,r,o){c(e,t);const a=s(e);(0,i.ensureBytesEqual)(a,n),(0,i.ensureBytesEqual)(r,e.key),(0,i.ensureBytesEqual)(o,e.value)}function s(e){if(!e.key||!e.value)throw new Error("Existence proof needs key and value set");if(!e.leaf)throw new Error("Existence proof must start with a leaf operation");const t=e.path||[];let n=(0,o.applyLeaf)(e.leaf,e.key,e.value);for(const e of t)n=(0,o.applyInner)(e,n);return n}function c(e,t){if(!e.leaf)throw new Error("Existence proof must start with a leaf operation");if(!t.leafSpec)throw new Error("Spec must include leafSpec");if(!t.innerSpec)throw new Error("Spec must include innerSpec");(0,i.ensureLeaf)(e.leaf,t.leafSpec);const n=e.path||[];if(t.minDepth&&n.lengtht.maxDepth)throw new Error(`Too many inner nodes ${n.length}`);for(const e of n)(0,i.ensureInner)(e,t.leafSpec.prefix,t.innerSpec)}function d(e,t){const{minPrefix:n,maxPrefix:r,suffix:o}=h(e,0);for(const e of t)if(!f(e,n,r,o))throw new Error("Step not leftmost")}function u(e,t){const n=e.childOrder.length-1,{minPrefix:r,maxPrefix:o,suffix:i}=h(e,n);for(const e of t)if(!f(e,r,o,i))throw new Error("Step not leftmost")}function l(e,t,n){const r=[...t],o=[...n];let a=r.pop(),s=o.pop();for(;(0,i.bytesEqual)(a.prefix,s.prefix)&&(0,i.bytesEqual)(a.suffix,s.suffix);)a=r.pop(),s=o.pop();if(!function(e,t,n){const r=A(e,t);return A(e,n)===r+1}(e,a,s))throw new Error("Not left neightbor at first divergent step");u(e,r),d(e,o)}function A(e,t){for(let n=0;nn||(e.suffix||[]).length!==r)}function h(e,t){const n=function(e,t){if(t<0||t>=e.length)throw new Error(`Invalid branch: ${t}`);return e.findIndex((e=>e===t))}(e.childOrder,t),r=n*e.childSize;return{minPrefix:r+e.minPrefixLength,maxPrefix:r+e.maxPrefixLength,suffix:(e.childOrder.length-1-n)*e.childSize}}t.iavlSpec={leafSpec:{prefix:Uint8Array.from([0]),hash:r.ics23.HashOp.SHA256,prehashValue:r.ics23.HashOp.SHA256,prehashKey:r.ics23.HashOp.NO_HASH,length:r.ics23.LengthOp.VAR_PROTO},innerSpec:{childOrder:[0,1],minPrefixLength:4,maxPrefixLength:12,childSize:33,hash:r.ics23.HashOp.SHA256}},t.tendermintSpec={leafSpec:{prefix:Uint8Array.from([0]),hash:r.ics23.HashOp.SHA256,prehashValue:r.ics23.HashOp.SHA256,prehashKey:r.ics23.HashOp.NO_HASH,length:r.ics23.LengthOp.VAR_PROTO},innerSpec:{childOrder:[0,1],minPrefixLength:1,maxPrefixLength:1,childSize:32,hash:r.ics23.HashOp.SHA256}},t.smtSpec={leafSpec:{hash:r.ics23.HashOp.SHA256,prehashKey:r.ics23.HashOp.NO_HASH,prehashValue:r.ics23.HashOp.SHA256,length:r.ics23.LengthOp.NO_PREFIX,prefix:Uint8Array.from([0])},innerSpec:{childOrder:[0,1],childSize:32,minPrefixLength:1,maxPrefixLength:1,emptyChild:new Uint8Array(32),hash:r.ics23.HashOp.SHA256},maxDepth:256},t.verifyExistence=a,t.verifyNonExistence=function(e,t,n,r){let o,s;if(e.left&&(a(e.left,t,n,e.left.key,e.left.value),o=e.left.key),e.right&&(a(e.right,t,n,e.right.key,e.right.value),s=e.right.key),!o&&!s)throw new Error("neither left nor right proof defined");if(o&&(0,i.ensureBytesBefore)(o,r),s&&(0,i.ensureBytesBefore)(r,s),!t.innerSpec)throw new Error("no inner spec");o?s?l(t.innerSpec,e.left.path,e.right.path):u(t.innerSpec,e.left.path):d(t.innerSpec,e.right.path)},t.calculateExistenceRoot=s,t.ensureSpec=c,t.ensureLeftNeighbor=l},3824:(e,t)=>{"use strict";function n(e,t){if(e.length!==t.length)throw new Error(`Different lengths ${e.length} vs ${t.length}`);for(let n=0;nt[r])return!1}return e.length(n.maxPrefixLength||0)+r)throw new Error(`Prefix too long: ${e.prefix.length} bytes`)},t.ensureBytesEqual=n,t.bytesEqual=function(e,t){if(e.length!==t.length)return!1;for(let n=0;n{"use strict";e.exports=n(6401)},6401:(e,t,n)=>{"use strict";var r=t;function o(){r.util._configure(),r.Writer._configure(r.BufferWriter),r.Reader._configure(r.BufferReader)}r.build="minimal",r.Writer=n(7490),r.BufferWriter=n(7094),r.Reader=n(952),r.BufferReader=n(3318),r.util=n(493),r.rpc=n(7365),r.roots=n(6756),r.configure=o,o()},952:(e,t,n)=>{"use strict";e.exports=c;var r,o=n(493),i=o.LongBits,a=o.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function c(e){this.buf=e,this.pos=0,this.len=e.length}var d,u="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new c(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new c(e);throw Error("illegal buffer")},l=function(){return o.Buffer?function(e){return(c.create=function(e){return o.Buffer.isBuffer(e)?new r(e):u(e)})(e)}:u};function A(){var e=new i(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function f(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function h(){if(this.pos+8>this.len)throw s(this,8);return new i(f(this.buf,this.pos+=4),f(this.buf,this.pos+=4))}c.create=l(),c.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,c.prototype.uint32=(d=4294967295,function(){if(d=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return d;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return d}),c.prototype.int32=function(){return 0|this.uint32()},c.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},c.prototype.bool=function(){return 0!==this.uint32()},c.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return f(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|f(this.buf,this.pos+=4)},c.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},c.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},c.prototype.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,n):t===n?new this.buf.constructor(0):this._slice.call(this.buf,t,n)},c.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},c.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},c.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},c._configure=function(e){r=e,c.create=l(),r._configure();var t=o.Long?"toLong":"toNumber";o.merge(c.prototype,{int64:function(){return A.call(this)[t](!1)},uint64:function(){return A.call(this)[t](!0)},sint64:function(){return A.call(this).zzDecode()[t](!1)},fixed64:function(){return h.call(this)[t](!0)},sfixed64:function(){return h.call(this)[t](!1)}})}},3318:(e,t,n)=>{"use strict";e.exports=i;var r=n(952);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(493);function i(e){r.call(this,e)}i._configure=function(){o.Buffer&&(i.prototype._slice=o.Buffer.prototype.slice)},i.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},i._configure()},6756:e=>{"use strict";e.exports={}},7365:(e,t,n)=>{"use strict";t.Service=n(1216)},1216:(e,t,n)=>{"use strict";e.exports=o;var r=n(493);function o(e,t,n){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");r.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(o.prototype=Object.create(r.EventEmitter.prototype)).constructor=o,o.prototype.rpcCall=function e(t,n,o,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return r.asPromise(e,s,t,n,o,i);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof o))try{n=o[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},o.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},1877:(e,t,n)=>{"use strict";e.exports=o;var r=n(493);function o(e,t){this.lo=e>>>0,this.hi=t>>>0}var i=o.zero=new o(0,0);i.toNumber=function(){return 0},i.zzEncode=i.zzDecode=function(){return this},i.length=function(){return 1};var a=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(e){if(0===e)return i;var t=e<0;t&&(e=-e);var n=e>>>0,r=(e-n)/4294967296>>>0;return t&&(r=~r>>>0,n=~n>>>0,++n>4294967295&&(n=0,++r>4294967295&&(r=0))),new o(n,r)},o.from=function(e){if("number"==typeof e)return o.fromNumber(e);if(r.isString(e)){if(!r.Long)return o.fromNumber(parseInt(e,10));e=r.Long.fromString(e)}return e.low||e.high?new o(e.low>>>0,e.high>>>0):i},o.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},o.prototype.toLong=function(e){return r.Long?new r.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;o.fromHash=function(e){return e===a?i:new o((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},o.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},o.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},493:function(e,t,n){"use strict";var r=t;function o(e,t,n){for(var r=Object.keys(t),o=0;o0)},r.Buffer=function(){try{var e=r.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),r._Buffer_from=null,r._Buffer_allocUnsafe=null,r.newBuffer=function(e){return"number"==typeof e?r.Buffer?r._Buffer_allocUnsafe(e):new r.Array(e):r.Buffer?r._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},r.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,r.Long=r.global.dcodeIO&&r.global.dcodeIO.Long||r.global.Long||r.inquire("long"),r.key2Re=/^true|false|0|1$/,r.key32Re=/^-?(?:0|[1-9][0-9]*)$/,r.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,r.longToHash=function(e){return e?r.LongBits.from(e).toHash():r.LongBits.zeroHash},r.longFromHash=function(e,t){var n=r.LongBits.fromHash(e);return r.Long?r.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))},r.merge=o,r.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},r.newError=i,r.ProtocolError=i("ProtocolError"),r.oneOfGetter=function(e){for(var t={},n=0;n-1;--n)if(1===t[e[n]]&&void 0!==this[e[n]]&&null!==this[e[n]])return e[n]}},r.oneOfSetter=function(e){return function(t){for(var n=0;n{"use strict";e.exports=l;var r,o=n(493),i=o.LongBits,a=o.base64,s=o.utf8;function c(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}function d(){}function u(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function l(){this.len=0,this.head=new c(d,0,0),this.tail=this.head,this.states=null}var A=function(){return o.Buffer?function(){return(l.create=function(){return new r})()}:function(){return new l}};function f(e,t,n){t[n]=255&e}function h(e,t){this.len=e,this.next=void 0,this.val=t}function p(e,t,n){for(;e.hi;)t[n++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[n++]=127&e.lo|128,e.lo=e.lo>>>7;t[n++]=e.lo}function g(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}l.create=A(),l.alloc=function(e){return new o.Array(e)},o.Array!==Array&&(l.alloc=o.pool(l.alloc,o.Array.prototype.subarray)),l.prototype._push=function(e,t,n){return this.tail=this.tail.next=new c(e,t,n),this.len+=t,this},h.prototype=Object.create(c.prototype),h.prototype.fn=function(e,t,n){for(;e>127;)t[n++]=127&e|128,e>>>=7;t[n]=e},l.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new h((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},l.prototype.int32=function(e){return e<0?this._push(p,10,i.fromNumber(e)):this.uint32(e)},l.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},l.prototype.uint64=function(e){var t=i.from(e);return this._push(p,t.length(),t)},l.prototype.int64=l.prototype.uint64,l.prototype.sint64=function(e){var t=i.from(e).zzEncode();return this._push(p,t.length(),t)},l.prototype.bool=function(e){return this._push(f,1,e?1:0)},l.prototype.fixed32=function(e){return this._push(g,4,e>>>0)},l.prototype.sfixed32=l.prototype.fixed32,l.prototype.fixed64=function(e){var t=i.from(e);return this._push(g,4,t.lo)._push(g,4,t.hi)},l.prototype.sfixed64=l.prototype.fixed64,l.prototype.float=function(e){return this._push(o.float.writeFloatLE,4,e)},l.prototype.double=function(e){return this._push(o.float.writeDoubleLE,8,e)};var m=o.Array.prototype.set?function(e,t,n){t.set(e,n)}:function(e,t,n){for(var r=0;r>>0;if(!t)return this._push(f,1,0);if(o.isString(e)){var n=l.alloc(t=a.length(e));a.decode(e,n,0),e=n}return this.uint32(t)._push(m,t,e)},l.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(f,1,0)},l.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new c(d,0,0),this.len=0,this},l.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(d,0,0),this.len=0),this},l.prototype.ldelim=function(){var e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=t,this.len+=n),this},l.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t},l._configure=function(e){r=e,l.create=A(),r._configure()}},7094:(e,t,n)=>{"use strict";e.exports=i;var r=n(7490);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(493);function i(){r.call(this)}function a(e,t,n){e.length<40?o.utf8.write(e,t,n):t.utf8Write?t.utf8Write(e,n):t.write(e,n)}i._configure=function(){i.alloc=o._Buffer_allocUnsafe,i.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&"set"===o.Buffer.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var r=0;r>>0;return this.uint32(t),t&&this._push(i.writeBytesBuffer,t,e),this},i.prototype.string=function(e){var t=o.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},i._configure()},3217:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pubkeyToAddress=t.pubkeyToRawAddress=t.rawSecp256k1PubkeyToRawAddress=t.rawEd25519PubkeyToRawAddress=void 0;const r=n(9562),o=n(8972),i=n(11),a=n(3554);function s(e){if(32!==e.length)throw new Error(`Invalid Ed25519 pubkey length: ${e.length}`);return(0,r.sha256)(e).slice(0,20)}function c(e){if(33!==e.length)throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${e.length}`);return(0,r.ripemd160)((0,r.sha256)(e))}function d(e){if((0,a.isSecp256k1Pubkey)(e))return c((0,o.fromBase64)(e.value));if((0,a.isEd25519Pubkey)(e))return s((0,o.fromBase64)(e.value));if((0,a.isMultisigThresholdPubkey)(e)){const t=(0,i.encodeAminoPubkey)(e);return(0,r.sha256)(t).slice(0,20)}throw new Error("Unsupported public key type")}t.rawEd25519PubkeyToRawAddress=s,t.rawSecp256k1PubkeyToRawAddress=c,t.pubkeyToRawAddress=d,t.pubkeyToAddress=function(e,t){return(0,o.toBech32)(t,d(e))}},8709:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseCoins=t.coins=t.coin=void 0;const r=n(6961);function o(e,t){let n;if("number"==typeof e)try{n=new r.Uint53(e).toString()}catch(e){throw new Error("Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.")}else{if(!e.match(/^[0-9]+$/))throw new Error("Invalid unsigned integer string format");n=e.replace(/^0*/,"")||"0"}return{amount:n,denom:t}}t.coin=o,t.coins=function(e,t){return[o(e,t)]},t.parseCoins=function(e){return e.replace(/\s/g,"").split(",").filter(Boolean).map((e=>{const t=e.match(/^([0-9]+)([a-zA-Z]+)/);if(!t)throw new Error("Got an invalid coin string");return{amount:r.Uint64.fromString(t[1]).toString(),denom:t[2]}}))}},11:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.encodeBech32Pubkey=t.encodeAminoPubkey=t.decodeBech32Pubkey=t.decodeAminoPubkey=t.encodeSecp256k1Pubkey=void 0;const r=n(8972),o=n(6961),i=n(5553),a=n(3554);t.encodeSecp256k1Pubkey=function(e){if(33!==e.length||2!==e[0]&&3!==e[0])throw new Error("Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03");return{type:a.pubkeyType.secp256k1,value:(0,r.toBase64)(e)}};const s=(0,r.fromHex)("eb5ae98721"),c=(0,r.fromHex)("1624de6420"),d=(0,r.fromHex)("0dfb100520"),u=(0,r.fromHex)("22c1f7e2");function l(e){if((0,i.arrayContentStartsWith)(e,s)){const t=e.slice(s.length);if(33!==t.length)throw new Error("Invalid rest data length. Expected 33 bytes (compressed secp256k1 pubkey).");return{type:a.pubkeyType.secp256k1,value:(0,r.toBase64)(t)}}if((0,i.arrayContentStartsWith)(e,c)){const t=e.slice(c.length);if(32!==t.length)throw new Error("Invalid rest data length. Expected 32 bytes (Ed25519 pubkey).");return{type:a.pubkeyType.ed25519,value:(0,r.toBase64)(t)}}if((0,i.arrayContentStartsWith)(e,d)){const t=e.slice(d.length);if(32!==t.length)throw new Error("Invalid rest data length. Expected 32 bytes (Sr25519 pubkey).");return{type:a.pubkeyType.sr25519,value:(0,r.toBase64)(t)}}if((0,i.arrayContentStartsWith)(e,u))return function(e){const t=Array.from(e),n=t.splice(0,u.length);if(!(0,i.arrayContentStartsWith)(n,u))throw new Error("Invalid multisig prefix.");if(8!=t.shift())throw new Error("Invalid multisig data. Expecting 0x08 prefix before threshold.");const[r,o]=A(t);t.splice(0,o);const s=[];for(;t.length>0;){if(18!=t.shift())throw new Error("Invalid multisig data. Expecting 0x12 prefix before participant pubkey length.");const[e,n]=A(t);if(t.splice(0,n),t.length127)throw new Error("Decoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.Varint implementation from the Go standard library and write some tests.");return[e[0],1]}function f(e){const t=o.Uint53.fromString(e.toString()).toNumber();if(t>127)throw new Error("Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.");return[t]}function h(e){if((0,a.isMultisigThresholdPubkey)(e)){const t=Array.from(u);t.push(8),t.push(...f(e.value.threshold));for(const n of e.value.pubkeys.map((e=>h(e))))t.push(18),t.push(...f(n.length)),t.push(...n);return new Uint8Array(t)}if((0,a.isEd25519Pubkey)(e))return new Uint8Array([...c,...(0,r.fromBase64)(e.value)]);if((0,a.isSecp256k1Pubkey)(e))return new Uint8Array([...s,...(0,r.fromBase64)(e.value)]);throw new Error("Unsupported pubkey type")}t.decodeAminoPubkey=l,t.decodeBech32Pubkey=function(e){const{data:t}=(0,r.fromBech32)(e);return l(t)},t.encodeAminoPubkey=h,t.encodeBech32Pubkey=function(e,t){return(0,r.toBech32)(t,h(e))}},3359:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.executeKdf=t.makeStdTx=t.isStdTx=t.serializeSignDoc=t.makeSignDoc=t.encodeSecp256k1Signature=t.decodeSignature=t.Secp256k1Wallet=t.Secp256k1HdWallet=t.extractKdfConfiguration=t.pubkeyType=t.isSinglePubkey=t.isSecp256k1Pubkey=t.isMultisigThresholdPubkey=t.isEd25519Pubkey=t.makeCosmoshubPath=t.createMultisigThresholdPubkey=t.encodeSecp256k1Pubkey=t.encodeBech32Pubkey=t.encodeAminoPubkey=t.decodeBech32Pubkey=t.decodeAminoPubkey=t.parseCoins=t.coins=t.coin=t.rawSecp256k1PubkeyToRawAddress=t.rawEd25519PubkeyToRawAddress=t.pubkeyToRawAddress=t.pubkeyToAddress=void 0;var r=n(3217);Object.defineProperty(t,"pubkeyToAddress",{enumerable:!0,get:function(){return r.pubkeyToAddress}}),Object.defineProperty(t,"pubkeyToRawAddress",{enumerable:!0,get:function(){return r.pubkeyToRawAddress}}),Object.defineProperty(t,"rawEd25519PubkeyToRawAddress",{enumerable:!0,get:function(){return r.rawEd25519PubkeyToRawAddress}}),Object.defineProperty(t,"rawSecp256k1PubkeyToRawAddress",{enumerable:!0,get:function(){return r.rawSecp256k1PubkeyToRawAddress}});var o=n(8709);Object.defineProperty(t,"coin",{enumerable:!0,get:function(){return o.coin}}),Object.defineProperty(t,"coins",{enumerable:!0,get:function(){return o.coins}}),Object.defineProperty(t,"parseCoins",{enumerable:!0,get:function(){return o.parseCoins}});var i=n(11);Object.defineProperty(t,"decodeAminoPubkey",{enumerable:!0,get:function(){return i.decodeAminoPubkey}}),Object.defineProperty(t,"decodeBech32Pubkey",{enumerable:!0,get:function(){return i.decodeBech32Pubkey}}),Object.defineProperty(t,"encodeAminoPubkey",{enumerable:!0,get:function(){return i.encodeAminoPubkey}}),Object.defineProperty(t,"encodeBech32Pubkey",{enumerable:!0,get:function(){return i.encodeBech32Pubkey}}),Object.defineProperty(t,"encodeSecp256k1Pubkey",{enumerable:!0,get:function(){return i.encodeSecp256k1Pubkey}});var a=n(7851);Object.defineProperty(t,"createMultisigThresholdPubkey",{enumerable:!0,get:function(){return a.createMultisigThresholdPubkey}});var s=n(959);Object.defineProperty(t,"makeCosmoshubPath",{enumerable:!0,get:function(){return s.makeCosmoshubPath}});var c=n(3554);Object.defineProperty(t,"isEd25519Pubkey",{enumerable:!0,get:function(){return c.isEd25519Pubkey}}),Object.defineProperty(t,"isMultisigThresholdPubkey",{enumerable:!0,get:function(){return c.isMultisigThresholdPubkey}}),Object.defineProperty(t,"isSecp256k1Pubkey",{enumerable:!0,get:function(){return c.isSecp256k1Pubkey}}),Object.defineProperty(t,"isSinglePubkey",{enumerable:!0,get:function(){return c.isSinglePubkey}}),Object.defineProperty(t,"pubkeyType",{enumerable:!0,get:function(){return c.pubkeyType}});var d=n(4531);Object.defineProperty(t,"extractKdfConfiguration",{enumerable:!0,get:function(){return d.extractKdfConfiguration}}),Object.defineProperty(t,"Secp256k1HdWallet",{enumerable:!0,get:function(){return d.Secp256k1HdWallet}});var u=n(1295);Object.defineProperty(t,"Secp256k1Wallet",{enumerable:!0,get:function(){return u.Secp256k1Wallet}});var l=n(6891);Object.defineProperty(t,"decodeSignature",{enumerable:!0,get:function(){return l.decodeSignature}}),Object.defineProperty(t,"encodeSecp256k1Signature",{enumerable:!0,get:function(){return l.encodeSecp256k1Signature}});var A=n(1361);Object.defineProperty(t,"makeSignDoc",{enumerable:!0,get:function(){return A.makeSignDoc}}),Object.defineProperty(t,"serializeSignDoc",{enumerable:!0,get:function(){return A.serializeSignDoc}});var f=n(489);Object.defineProperty(t,"isStdTx",{enumerable:!0,get:function(){return f.isStdTx}}),Object.defineProperty(t,"makeStdTx",{enumerable:!0,get:function(){return f.makeStdTx}});var h=n(5077);Object.defineProperty(t,"executeKdf",{enumerable:!0,get:function(){return h.executeKdf}})},7851:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createMultisigThresholdPubkey=t.compareArrays=void 0;const r=n(8972),o=n(6961),i=n(3217);function a(e,t){const n=(0,r.toHex)(e),o=(0,r.toHex)(t);return n===o?0:ne.length)throw new Error(`Threshold k = ${r.toNumber()} exceeds number of keys n = ${e.length}`);const s=n?e:Array.from(e).sort(((e,t)=>a((0,i.pubkeyToRawAddress)(e),(0,i.pubkeyToRawAddress)(t))));return{type:"tendermint/PubKeyMultisigThreshold",value:{threshold:r.toString(),pubkeys:s}}}},959:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeCosmoshubPath=void 0;const r=n(9562);t.makeCosmoshubPath=function(e){return[r.Slip10RawIndex.hardened(44),r.Slip10RawIndex.hardened(118),r.Slip10RawIndex.hardened(0),r.Slip10RawIndex.normal(0),r.Slip10RawIndex.normal(e)]}},3554:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isMultisigThresholdPubkey=t.isSinglePubkey=t.pubkeyType=t.isSecp256k1Pubkey=t.isEd25519Pubkey=void 0,t.isEd25519Pubkey=function(e){return"tendermint/PubKeyEd25519"===e.type},t.isSecp256k1Pubkey=function(e){return"tendermint/PubKeySecp256k1"===e.type},t.pubkeyType={secp256k1:"tendermint/PubKeySecp256k1",ed25519:"tendermint/PubKeyEd25519",sr25519:"tendermint/PubKeySr25519",multisigThreshold:"tendermint/PubKeyMultisigThreshold"},t.isSinglePubkey=function(e){return[t.pubkeyType.ed25519,t.pubkeyType.secp256k1,t.pubkeyType.sr25519].includes(e.type)},t.isMultisigThresholdPubkey=function(e){return"tendermint/PubKeyMultisigThreshold"===e.type}},4531:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Secp256k1HdWallet=t.extractKdfConfiguration=void 0;const r=n(9562),o=n(8972),i=n(5553),a=n(3217),s=n(959),c=n(6891),d=n(1361),u=n(5077),l="secp256k1wallet-v1",A={algorithm:"argon2id",params:{outputLength:32,opsLimit:24,memLimitKib:12288}};t.extractKdfConfiguration=function(e){const t=JSON.parse(e);if(!(0,i.isNonNullObject)(t))throw new Error("Root document is not an object.");if(t.type===l)return t.kdf;throw new Error("Unsupported serialization type")};const f={bip39Password:"",hdPaths:[(0,s.makeCosmoshubPath)(0)],prefix:"cosmos"};class h{constructor(e,t){var n,r;const o=null!==(n=t.hdPaths)&&void 0!==n?n:f.hdPaths,i=null!==(r=t.prefix)&&void 0!==r?r:f.prefix;this.secret=e,this.seed=t.seed,this.accounts=o.map((e=>({hdPath:e,prefix:i})))}static async fromMnemonic(e,t={}){const n=new r.EnglishMnemonic(e),o=await r.Bip39.mnemonicToSeed(n,t.bip39Password);return new h(n,{...t,seed:o})}static async generate(e=12,t={}){const n=4*Math.floor(11*e/33),o=r.Random.getBytes(n),i=r.Bip39.encode(o);return h.fromMnemonic(i.toString(),t)}static async deserialize(e,t){const n=JSON.parse(e);if(!(0,i.isNonNullObject)(n))throw new Error("Root document is not an object.");if(n.type===l)return h.deserializeTypeV1(e,t);throw new Error("Unsupported serialization type")}static async deserializeWithEncryptionKey(e,t){const n=JSON.parse(e);if(!(0,i.isNonNullObject)(n))throw new Error("Root document is not an object.");const a=n;if(a.type===l){const e=await(0,u.decrypt)((0,o.fromBase64)(a.data),t,a.encryption),n=JSON.parse((0,o.fromUtf8)(e)),{mnemonic:s,accounts:c}=n;if((0,i.assert)("string"==typeof s),!Array.isArray(c))throw new Error("Property 'accounts' is not an array");if(!c.every((e=>{return t=e,!!(0,i.isNonNullObject)(t)&&"string"==typeof t.hdPath&&"string"==typeof t.prefix;var t})))throw new Error("Account is not in the correct format.");const d=c[0].prefix;if(!c.every((({prefix:e})=>e===d)))throw new Error("Accounts do not all have the same prefix");const l=c.map((({hdPath:e})=>(0,r.stringToPath)(e)));return h.fromMnemonic(s,{hdPaths:l,prefix:d})}throw new Error("Unsupported serialization type")}static async deserializeTypeV1(e,t){const n=JSON.parse(e);if(!(0,i.isNonNullObject)(n))throw new Error("Root document is not an object.");const r=await(0,u.executeKdf)(t,n.kdf);return h.deserializeWithEncryptionKey(e,r)}get mnemonic(){return this.secret.toString()}async getAccounts(){return(await this.getAccountsWithPrivkeys()).map((({algo:e,pubkey:t,address:n})=>({algo:e,pubkey:t,address:n})))}async signAmino(e,t){const n=(await this.getAccountsWithPrivkeys()).find((({address:t})=>t===e));if(void 0===n)throw new Error(`Address ${e} not found in wallet`);const{privkey:o,pubkey:i}=n,a=(0,r.sha256)((0,d.serializeSignDoc)(t)),s=await r.Secp256k1.createSignature(a,o),u=new Uint8Array([...s.r(32),...s.s(32)]);return{signed:t,signature:(0,c.encodeSecp256k1Signature)(i,u)}}async serialize(e){const t=A,n=await(0,u.executeKdf)(e,t);return this.serializeWithEncryptionKey(n,t)}async serializeWithEncryptionKey(e,t){const n={mnemonic:this.mnemonic,accounts:this.accounts.map((({hdPath:e,prefix:t})=>({hdPath:(0,r.pathToString)(e),prefix:t})))},i=(0,o.toUtf8)(JSON.stringify(n)),a={algorithm:u.supportedAlgorithms.xchacha20poly1305Ietf},s=await(0,u.encrypt)(i,e,a),c={type:l,kdf:t,encryption:a,data:(0,o.toBase64)(s)};return JSON.stringify(c)}async getKeyPair(e){const{privkey:t}=r.Slip10.derivePath(r.Slip10Curve.Secp256k1,this.seed,e),{pubkey:n}=await r.Secp256k1.makeKeypair(t);return{privkey:t,pubkey:r.Secp256k1.compressPubkey(n)}}async getAccountsWithPrivkeys(){return Promise.all(this.accounts.map((async({hdPath:e,prefix:t})=>{const{privkey:n,pubkey:r}=await this.getKeyPair(e);return{algo:"secp256k1",privkey:n,pubkey:r,address:(0,o.toBech32)(t,(0,a.rawSecp256k1PubkeyToRawAddress)(r))}})))}}t.Secp256k1HdWallet=h},1295:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Secp256k1Wallet=void 0;const r=n(9562),o=n(8972),i=n(3217),a=n(6891),s=n(1361);class c{constructor(e,t,n){this.privkey=e,this.pubkey=t,this.prefix=n}static async fromKey(e,t="cosmos"){const n=(await r.Secp256k1.makeKeypair(e)).pubkey;return new c(e,r.Secp256k1.compressPubkey(n),t)}get address(){return(0,o.toBech32)(this.prefix,(0,i.rawSecp256k1PubkeyToRawAddress)(this.pubkey))}async getAccounts(){return[{algo:"secp256k1",address:this.address,pubkey:this.pubkey}]}async signAmino(e,t){if(e!==this.address)throw new Error(`Address ${e} not found in wallet`);const n=new r.Sha256((0,s.serializeSignDoc)(t)).digest(),o=await r.Secp256k1.createSignature(n,this.privkey),i=new Uint8Array([...o.r(32),...o.s(32)]);return{signed:t,signature:(0,a.encodeSecp256k1Signature)(this.pubkey,i)}}}t.Secp256k1Wallet=c},6891:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeSignature=t.encodeSecp256k1Signature=void 0;const r=n(8972),o=n(11),i=n(3554);t.encodeSecp256k1Signature=function(e,t){if(64!==t.length)throw new Error("Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.");return{pub_key:(0,o.encodeSecp256k1Pubkey)(e),signature:(0,r.toBase64)(t)}},t.decodeSignature=function(e){if(e.pub_key.type===i.pubkeyType.secp256k1)return{pubkey:(0,r.fromBase64)(e.pub_key.value),signature:(0,r.fromBase64)(e.signature)};throw new Error("Unsupported pubkey type")}},1361:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serializeSignDoc=t.makeSignDoc=t.sortedJsonStringify=void 0;const r=n(8972),o=n(6961);function i(e){if("object"!=typeof e||null===e)return e;if(Array.isArray(e))return e.map(i);const t=Object.keys(e).sort(),n={};return t.forEach((t=>{n[t]=i(e[t])})),n}function a(e){return JSON.stringify(i(e))}t.sortedJsonStringify=a,t.makeSignDoc=function(e,t,n,r,i,a){return{chain_id:n,account_number:o.Uint53.fromString(i.toString()).toString(),sequence:o.Uint53.fromString(a.toString()).toString(),fee:t,msgs:e,memo:r||""}},t.serializeSignDoc=function(e){return(0,r.toUtf8)(a(e))}},489:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeStdTx=t.isStdTx=void 0,t.isStdTx=function(e){const{memo:t,msg:n,fee:r,signatures:o}=e;return"string"==typeof t&&Array.isArray(n)&&"object"==typeof r&&Array.isArray(o)},t.makeStdTx=function(e,t){return{msg:e.msgs,fee:e.fee,memo:e.memo,signatures:Array.isArray(t)?t:[t]}}},5077:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decrypt=t.encrypt=t.supportedAlgorithms=t.executeKdf=t.cosmjsSalt=void 0;const r=n(9562),o=n(8972);t.cosmjsSalt=(0,o.toAscii)("The CosmJS salt."),t.executeKdf=async function(e,n){if("argon2id"===n.algorithm){const o=n.params;if(!(0,r.isArgon2idOptions)(o))throw new Error("Invalid format of argon2id params");return r.Argon2id.execute(e,t.cosmjsSalt,o)}throw new Error("Unsupported KDF algorithm")},t.supportedAlgorithms={xchacha20poly1305Ietf:"xchacha20poly1305-ietf"},t.encrypt=async function(e,n,o){if(o.algorithm===t.supportedAlgorithms.xchacha20poly1305Ietf){const t=r.Random.getBytes(r.xchacha20NonceLength);return new Uint8Array([...t,...await r.Xchacha20poly1305Ietf.encrypt(e,n,t)])}throw new Error(`Unsupported encryption algorithm: '${o.algorithm}'`)},t.decrypt=async function(e,n,o){if(o.algorithm===t.supportedAlgorithms.xchacha20poly1305Ietf){const t=e.slice(0,r.xchacha20NonceLength);return r.Xchacha20poly1305Ietf.decrypt(e.slice(r.xchacha20NonceLength),n,t)}throw new Error(`Unsupported encryption algorithm: '${o.algorithm}'`)}},2599:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.cosmWasmTypes=void 0;const o=n(8972),i=r(n(3720));t.cosmWasmTypes={"/cosmwasm.wasm.v1.MsgStoreCode":{aminoType:"wasm/MsgStoreCode",toAmino:({sender:e,wasmByteCode:t})=>({sender:e,wasm_byte_code:(0,o.toBase64)(t)}),fromAmino:({sender:e,wasm_byte_code:t})=>({sender:e,wasmByteCode:(0,o.fromBase64)(t),instantiatePermission:void 0})},"/cosmwasm.wasm.v1.MsgInstantiateContract":{aminoType:"wasm/MsgInstantiateContract",toAmino:({sender:e,codeId:t,label:n,msg:r,funds:i,admin:a})=>({sender:e,code_id:t.toString(),label:n,msg:JSON.parse((0,o.fromUtf8)(r)),funds:i,admin:a||void 0}),fromAmino:({sender:e,code_id:t,label:n,msg:r,funds:a,admin:s})=>({sender:e,codeId:i.default.fromString(t),label:n,msg:(0,o.toUtf8)(JSON.stringify(r)),funds:[...a],admin:null!=s?s:""})},"/cosmwasm.wasm.v1.MsgUpdateAdmin":{aminoType:"wasm/MsgUpdateAdmin",toAmino:({sender:e,newAdmin:t,contract:n})=>({sender:e,new_admin:t,contract:n}),fromAmino:({sender:e,new_admin:t,contract:n})=>({sender:e,newAdmin:t,contract:n})},"/cosmwasm.wasm.v1.MsgClearAdmin":{aminoType:"wasm/MsgClearAdmin",toAmino:({sender:e,contract:t})=>({sender:e,contract:t}),fromAmino:({sender:e,contract:t})=>({sender:e,contract:t})},"/cosmwasm.wasm.v1.MsgExecuteContract":{aminoType:"wasm/MsgExecuteContract",toAmino:({sender:e,contract:t,msg:n,funds:r})=>({sender:e,contract:t,msg:JSON.parse((0,o.fromUtf8)(n)),funds:r}),fromAmino:({sender:e,contract:t,msg:n,funds:r})=>({sender:e,contract:t,msg:(0,o.toUtf8)(JSON.stringify(n)),funds:[...r]})},"/cosmwasm.wasm.v1.MsgMigrateContract":{aminoType:"wasm/MsgMigrateContract",toAmino:({sender:e,contract:t,codeId:n,msg:r})=>({sender:e,contract:t,code_id:n.toString(),msg:JSON.parse((0,o.fromUtf8)(r))}),fromAmino:({sender:e,contract:t,code_id:n,msg:r})=>({sender:e,contract:t,codeId:i.default.fromString(n),msg:(0,o.toUtf8)(JSON.stringify(r))})}}},53:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CosmWasmClient=void 0;const r=n(8972),o=n(6961),i=n(4658),a=n(3034),s=n(5553),c=n(9374),d=n(6820);class u{constructor(e){this.codesCache=new Map,e&&(this.tmClient=e,this.queryClient=i.QueryClient.withExtensions(e,i.setupAuthExtension,i.setupBankExtension,d.setupWasmExtension,i.setupTxExtension))}static async connect(e){const t=await a.Tendermint34Client.connect(e);return new u(t)}getTmClient(){return this.tmClient}forceGetTmClient(){if(!this.tmClient)throw new Error("Tendermint client not available. You cannot use online functionality in offline mode.");return this.tmClient}getQueryClient(){return this.queryClient}forceGetQueryClient(){if(!this.queryClient)throw new Error("Query client not available. You cannot use online functionality in offline mode.");return this.queryClient}async getChainId(){if(!this.chainId){const e=(await this.forceGetTmClient().status()).nodeInfo.network;if(!e)throw new Error("Chain ID must not be empty");this.chainId=e}return this.chainId}async getHeight(){return(await this.forceGetTmClient().status()).syncInfo.latestBlockHeight}async getAccount(e){try{const t=await this.forceGetQueryClient().auth.account(e);return t?(0,i.accountFromAny)(t):null}catch(e){if(/rpc error: code = NotFound/i.test(e.toString()))return null;throw e}}async getSequence(e){const t=await this.getAccount(e);if(!t)throw new Error("Account does not exist on chain. Send some tokens there before trying to query sequence.");return{accountNumber:t.accountNumber,sequence:t.sequence}}async getBlock(e){const t=await this.forceGetTmClient().block(e);return{id:(0,r.toHex)(t.blockId.hash).toUpperCase(),header:{version:{block:new o.Uint53(t.block.header.version.block).toString(),app:new o.Uint53(t.block.header.version.app).toString()},height:t.block.header.height,chainId:t.block.header.chainId,time:(0,a.toRfc3339WithNanoseconds)(t.block.header.time)},txs:t.block.txs}}async getBalance(e,t){return this.forceGetQueryClient().bank.balance(e,t)}async getTx(e){var t;return null!==(t=(await this.txsQuery(`tx.hash='${e}'`))[0])&&void 0!==t?t:null}async searchTx(e,t={}){const n=t.minHeight||0,r=t.maxHeight||Number.MAX_SAFE_INTEGER;if(r=${n} AND tx.height<=${r}`}let a;if((0,i.isSearchByHeightQuery)(e))a=e.height>=n&&e.height<=r?await this.txsQuery(`tx.height=${e.height}`):[];else if((0,i.isSearchBySentFromOrToQuery)(e)){const t=o(`message.module='bank' AND transfer.sender='${e.sentFromOrTo}'`),n=o(`message.module='bank' AND transfer.recipient='${e.sentFromOrTo}'`),[r,i]=await Promise.all([t,n].map((e=>this.txsQuery(e)))),s=r.map((e=>e.hash));a=[...r,...i.filter((e=>!s.includes(e.hash)))]}else{if(!(0,i.isSearchByTagsQuery)(e))throw new Error("Unknown query type");{const t=o(e.tags.map((e=>`${e.key}='${e.value}'`)).join(" AND "));a=await this.txsQuery(t)}}return a.filter((e=>e.height>=n&&e.height<=r))}disconnect(){this.tmClient&&this.tmClient.disconnect()}async broadcastTx(e,t=6e4,n=3e3){let o=!1;const a=setTimeout((()=>{o=!0}),t),c=async e=>{if(o)throw new i.TimeoutError(`Transaction with ID ${e} was submitted but was not yet found on the chain. You might want to check later.`,e);await(0,s.sleep)(n);const t=await this.getTx(e);return t?{code:t.code,height:t.height,rawLog:t.rawLog,transactionHash:e,gasUsed:t.gasUsed,gasWanted:t.gasWanted}:c(e)},d=await this.forceGetTmClient().broadcastTxSync({tx:e});if(d.code)throw new Error(`Broadcasting transaction failed with code ${d.code} (codespace: ${d.codeSpace}). Log: ${d.log}`);const u=(0,r.toHex)(d.hash).toUpperCase();return new Promise(((e,t)=>c(u).then((t=>{clearTimeout(a),e(t)}),(e=>{clearTimeout(a),t(e)}))))}async getCodes(){const{codeInfos:e}=await this.forceGetQueryClient().wasm.listCodeInfo();return(e||[]).map((e=>((0,s.assert)(e.creator&&e.codeId&&e.dataHash,"entry incomplete"),{id:e.codeId.toNumber(),creator:e.creator,checksum:(0,r.toHex)(e.dataHash)})))}async getCodeDetails(e){const t=this.codesCache.get(e);if(t)return t;const{codeInfo:n,data:o}=await this.forceGetQueryClient().wasm.getCode(e);(0,s.assert)(n&&n.codeId&&n.creator&&n.dataHash&&o,"codeInfo missing or incomplete");const i={id:n.codeId.toNumber(),creator:n.creator,checksum:(0,r.toHex)(n.dataHash),data:o};return this.codesCache.set(e,i),i}async getContracts(e){const{contracts:t}=await this.forceGetQueryClient().wasm.listContractsByCodeId(e);return t}async getContract(e){const{address:t,contractInfo:n}=await this.forceGetQueryClient().wasm.getContractInfo(e);if(!n)throw new Error(`No contract found at address "${e}"`);return(0,s.assert)(t,"address missing"),(0,s.assert)(n.codeId&&n.creator&&n.label,"contractInfo incomplete"),{address:t,codeId:n.codeId.toNumber(),creator:n.creator,admin:n.admin||void 0,label:n.label,ibcPortId:n.ibcPortId||void 0}}async getContractCodeHistory(e){const t=await this.forceGetQueryClient().wasm.getContractCodeHistory(e);if(!t)throw new Error(`No contract history found for address "${e}"`);const n={[c.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT]:"Init",[c.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS]:"Genesis",[c.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE]:"Migrate"};return(t.entries||[]).map((e=>((0,s.assert)(e.operation&&e.codeId&&e.msg),{operation:n[e.operation],codeId:e.codeId.toNumber(),msg:JSON.parse((0,r.fromAscii)(e.msg))})))}async queryContractRaw(e,t){await this.getContract(e);const{data:n}=await this.forceGetQueryClient().wasm.queryContractRaw(e,t);return null!=n?n:null}async queryContractSmart(e,t){try{return await this.forceGetQueryClient().wasm.queryContractSmart(e,t)}catch(t){throw t instanceof Error&&t.message.startsWith("not found: contract")?new Error(`No contract found at address "${e}"`):t}}async txsQuery(e){return(await this.forceGetTmClient().txSearchAll({query:e})).txs.map((e=>({height:e.height,hash:(0,r.toHex)(e.hash).toUpperCase(),code:e.result.code,rawLog:e.result.log||"",tx:e.tx,gasUsed:e.result.gasUsed,gasWanted:e.result.gasWanted})))}}t.CosmWasmClient=u},5994:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isMsgExecuteEncodeObject=t.isMsgMigrateEncodeObject=t.isMsgClearAdminEncodeObject=t.isMsgUpdateAdminEncodeObject=t.isMsgInstantiateContractEncodeObject=t.isMsgStoreCodeEncodeObject=void 0,t.isMsgStoreCodeEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgStoreCode"===e.typeUrl},t.isMsgInstantiateContractEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgInstantiateContract"===e.typeUrl},t.isMsgUpdateAdminEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgUpdateAdmin"===e.typeUrl},t.isMsgClearAdminEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgClearAdmin"===e.typeUrl},t.isMsgMigrateEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgMigrateContract"===e.typeUrl},t.isMsgExecuteEncodeObject=function(e){return"/cosmwasm.wasm.v1.MsgExecuteContract"===e.typeUrl}},2854:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromBinary=t.toBinary=void 0;const r=n(8972);t.toBinary=function(e){return(0,r.toBase64)((0,r.toUtf8)(JSON.stringify(e)))},t.fromBinary=function(e){return JSON.parse((0,r.fromUtf8)((0,r.fromBase64)(e)))}},4926:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SigningCosmWasmClient=t.setupWasmExtension=t.toBinary=t.fromBinary=t.isMsgUpdateAdminEncodeObject=t.isMsgStoreCodeEncodeObject=t.isMsgMigrateEncodeObject=t.isMsgInstantiateContractEncodeObject=t.isMsgExecuteEncodeObject=t.isMsgClearAdminEncodeObject=t.CosmWasmClient=t.cosmWasmTypes=void 0;var r=n(2599);Object.defineProperty(t,"cosmWasmTypes",{enumerable:!0,get:function(){return r.cosmWasmTypes}});var o=n(53);Object.defineProperty(t,"CosmWasmClient",{enumerable:!0,get:function(){return o.CosmWasmClient}});var i=n(5994);Object.defineProperty(t,"isMsgClearAdminEncodeObject",{enumerable:!0,get:function(){return i.isMsgClearAdminEncodeObject}}),Object.defineProperty(t,"isMsgExecuteEncodeObject",{enumerable:!0,get:function(){return i.isMsgExecuteEncodeObject}}),Object.defineProperty(t,"isMsgInstantiateContractEncodeObject",{enumerable:!0,get:function(){return i.isMsgInstantiateContractEncodeObject}}),Object.defineProperty(t,"isMsgMigrateEncodeObject",{enumerable:!0,get:function(){return i.isMsgMigrateEncodeObject}}),Object.defineProperty(t,"isMsgStoreCodeEncodeObject",{enumerable:!0,get:function(){return i.isMsgStoreCodeEncodeObject}}),Object.defineProperty(t,"isMsgUpdateAdminEncodeObject",{enumerable:!0,get:function(){return i.isMsgUpdateAdminEncodeObject}});var a=n(2854);Object.defineProperty(t,"fromBinary",{enumerable:!0,get:function(){return a.fromBinary}}),Object.defineProperty(t,"toBinary",{enumerable:!0,get:function(){return a.toBinary}});var s=n(6820);Object.defineProperty(t,"setupWasmExtension",{enumerable:!0,get:function(){return s.setupWasmExtension}});var c=n(2994);Object.defineProperty(t,"SigningCosmWasmClient",{enumerable:!0,get:function(){return c.SigningCosmWasmClient}})},6820:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupWasmExtension=void 0;var r=n(5371);Object.defineProperty(t,"setupWasmExtension",{enumerable:!0,get:function(){return r.setupWasmExtension}})},5371:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupWasmExtension=void 0;const o=n(8972),i=n(4658),a=n(6218),s=r(n(3720));t.setupWasmExtension=function(e){const t=(0,i.createProtobufRpcClient)(e),n=new a.QueryClientImpl(t);return{wasm:{listCodeInfo:async e=>{const t={pagination:(0,i.createPagination)(e)};return n.Codes(t)},getCode:async e=>{const t={codeId:s.default.fromNumber(e)};return n.Code(t)},listContractsByCodeId:async(e,t)=>{const r={codeId:s.default.fromNumber(e),pagination:(0,i.createPagination)(t)};return n.ContractsByCode(r)},getContractInfo:async e=>{const t={address:e};return n.ContractInfo(t)},getContractCodeHistory:async(e,t)=>{const r={address:e,pagination:(0,i.createPagination)(t)};return n.ContractHistory(r)},getAllContractState:async(e,t)=>{const r={address:e,pagination:(0,i.createPagination)(t)};return n.AllContractState(r)},queryContractRaw:async(e,t)=>{const r={address:e,queryData:t};return n.RawContractState(r)},queryContractSmart:async(e,t)=>{const r={address:e,queryData:(0,o.toAscii)(JSON.stringify(t))},{data:i}=await n.SmartContractState(r);let a;try{a=(0,o.fromUtf8)(i)}catch(e){throw new Error(`Could not UTF-8 decode smart query response from contract: ${e}`)}try{return JSON.parse(a)}catch(e){throw new Error(`Could not JSON parse smart query response from contract: ${e}`)}}}}}},2994:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SigningCosmWasmClient=void 0;const o=n(3359),i=n(9562),a=n(8972),s=n(6961),c=n(4087),d=n(4658),u=n(3034),l=n(5553),A=n(3773),f=n(422),h=n(2574),p=n(9639),g=n(1814),m=r(n(3720)),v=r(n(9591)),y=n(2599),b=n(53);function I(e){return`Error when broadcasting tx ${e.transactionHash} at height ${e.height}. Code: ${e.code}; Raw log: ${e.rawLog}`}function C(){const e=new c.Registry(d.defaultRegistryTypes);return e.register("/cosmwasm.wasm.v1.MsgClearAdmin",g.MsgClearAdmin),e.register("/cosmwasm.wasm.v1.MsgExecuteContract",g.MsgExecuteContract),e.register("/cosmwasm.wasm.v1.MsgMigrateContract",g.MsgMigrateContract),e.register("/cosmwasm.wasm.v1.MsgStoreCode",g.MsgStoreCode),e.register("/cosmwasm.wasm.v1.MsgInstantiateContract",g.MsgInstantiateContract),e.register("/cosmwasm.wasm.v1.MsgUpdateAdmin",g.MsgUpdateAdmin),e}class E extends b.CosmWasmClient{constructor(e,t,n){var r;super(e);const o=null!==(r=n.prefix)&&void 0!==r?r:"cosmos",{registry:i=C(),aminoTypes:a=new d.AminoTypes({prefix:o,additions:y.cosmWasmTypes})}=n;this.registry=i,this.aminoTypes=a,this.signer=t,this.broadcastTimeoutMs=n.broadcastTimeoutMs,this.broadcastPollIntervalMs=n.broadcastPollIntervalMs,this.gasPrice=n.gasPrice}static async connectWithSigner(e,t,n={}){const r=await u.Tendermint34Client.connect(e);return new E(r,t,n)}static async offline(e,t={}){return new E(void 0,e,t)}async simulate(e,t,n){const r=t.map((e=>this.registry.encodeAsAny(e))),i=(await this.signer.getAccounts()).find((t=>t.address===e));if(!i)throw new Error("Failed to retrieve account from signer");const a=(0,o.encodeSecp256k1Pubkey)(i.pubkey),{sequence:c}=await this.getSequence(e),{gasInfo:d}=await this.forceGetQueryClient().tx.simulate(r,n,a,c);return(0,l.assertDefined)(d),s.Uint53.fromString(d.gasUsed.toString()).toNumber()}async upload(e,t,n,r=""){const o=v.default.gzip(t,{level:9}),s={typeUrl:"/cosmwasm.wasm.v1.MsgStoreCode",value:g.MsgStoreCode.fromPartial({sender:e,wasmByteCode:o})},c=await this.signAndBroadcast(e,[s],n,r);if((0,d.isDeliverTxFailure)(c))throw new Error(I(c));const u=d.logs.parseRawLog(c.rawLog),l=d.logs.findAttribute(u,"store_code","code_id");return{originalSize:t.length,originalChecksum:(0,a.toHex)((0,i.sha256)(t)),compressedSize:o.length,compressedChecksum:(0,a.toHex)((0,i.sha256)(o)),codeId:Number.parseInt(l.value,10),logs:u,height:c.height,transactionHash:c.transactionHash,gasWanted:c.gasWanted,gasUsed:c.gasUsed}}async instantiate(e,t,n,r,o,i={}){const c={typeUrl:"/cosmwasm.wasm.v1.MsgInstantiateContract",value:g.MsgInstantiateContract.fromPartial({sender:e,codeId:m.default.fromString(new s.Uint53(t).toString()),label:r,msg:(0,a.toUtf8)(JSON.stringify(n)),funds:[...i.funds||[]],admin:i.admin})},u=await this.signAndBroadcast(e,[c],o,i.memo);if((0,d.isDeliverTxFailure)(u))throw new Error(I(u));const l=d.logs.parseRawLog(u.rawLog);return{contractAddress:d.logs.findAttribute(l,"instantiate","_contract_address").value,logs:l,height:u.height,transactionHash:u.transactionHash,gasWanted:u.gasWanted,gasUsed:u.gasUsed}}async updateAdmin(e,t,n,r,o=""){const i={typeUrl:"/cosmwasm.wasm.v1.MsgUpdateAdmin",value:g.MsgUpdateAdmin.fromPartial({sender:e,contract:t,newAdmin:n})},a=await this.signAndBroadcast(e,[i],r,o);if((0,d.isDeliverTxFailure)(a))throw new Error(I(a));return{logs:d.logs.parseRawLog(a.rawLog),height:a.height,transactionHash:a.transactionHash,gasWanted:a.gasWanted,gasUsed:a.gasUsed}}async clearAdmin(e,t,n,r=""){const o={typeUrl:"/cosmwasm.wasm.v1.MsgClearAdmin",value:g.MsgClearAdmin.fromPartial({sender:e,contract:t})},i=await this.signAndBroadcast(e,[o],n,r);if((0,d.isDeliverTxFailure)(i))throw new Error(I(i));return{logs:d.logs.parseRawLog(i.rawLog),height:i.height,transactionHash:i.transactionHash,gasWanted:i.gasWanted,gasUsed:i.gasUsed}}async migrate(e,t,n,r,o,i=""){const c={typeUrl:"/cosmwasm.wasm.v1.MsgMigrateContract",value:g.MsgMigrateContract.fromPartial({sender:e,contract:t,codeId:m.default.fromString(new s.Uint53(n).toString()),msg:(0,a.toUtf8)(JSON.stringify(r))})},u=await this.signAndBroadcast(e,[c],o,i);if((0,d.isDeliverTxFailure)(u))throw new Error(I(u));return{logs:d.logs.parseRawLog(u.rawLog),height:u.height,transactionHash:u.transactionHash,gasWanted:u.gasWanted,gasUsed:u.gasUsed}}async execute(e,t,n,r,o="",i){const s={typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:g.MsgExecuteContract.fromPartial({sender:e,contract:t,msg:(0,a.toUtf8)(JSON.stringify(n)),funds:[...i||[]]})},c=await this.signAndBroadcast(e,[s],r,o);if((0,d.isDeliverTxFailure)(c))throw new Error(I(c));return{logs:d.logs.parseRawLog(c.rawLog),height:c.height,transactionHash:c.transactionHash,gasWanted:c.gasWanted,gasUsed:c.gasUsed}}async sendTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:{fromAddress:e,toAddress:t,amount:[...n]}};return this.signAndBroadcast(e,[i],r,o)}async delegateTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.staking.v1beta1.MsgDelegate",value:f.MsgDelegate.fromPartial({delegatorAddress:e,validatorAddress:t,amount:n})};return this.signAndBroadcast(e,[i],r,o)}async undelegateTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.staking.v1beta1.MsgUndelegate",value:f.MsgUndelegate.fromPartial({delegatorAddress:e,validatorAddress:t,amount:n})};return this.signAndBroadcast(e,[i],r,o)}async withdrawRewards(e,t,n,r=""){const o={typeUrl:"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",value:A.MsgWithdrawDelegatorReward.fromPartial({delegatorAddress:e,validatorAddress:t})};return this.signAndBroadcast(e,[o],n,r)}async signAndBroadcast(e,t,n,r=""){let o;if("auto"==n||"number"==typeof n){(0,l.assertDefined)(this.gasPrice,"Gas price must be set in the client options when auto gas is used.");const i=await this.simulate(e,t,r),a="number"==typeof n?n:1.3;o=(0,d.calculateFee)(Math.round(i*a),this.gasPrice)}else o=n;const i=await this.sign(e,t,o,r),a=p.TxRaw.encode(i).finish();return this.broadcastTx(a,this.broadcastTimeoutMs,this.broadcastPollIntervalMs)}async sign(e,t,n,r,o){let i;if(o)i=o;else{const{accountNumber:t,sequence:n}=await this.getSequence(e);i={accountNumber:t,sequence:n,chainId:await this.getChainId()}}return(0,c.isOfflineDirectSigner)(this.signer)?this.signDirect(e,t,n,r,i):this.signAmino(e,t,n,r,i)}async signAmino(e,t,n,r,{accountNumber:i,sequence:d,chainId:u}){(0,l.assert)(!(0,c.isOfflineDirectSigner)(this.signer));const A=(await this.signer.getAccounts()).find((t=>t.address===e));if(!A)throw new Error("Failed to retrieve account from signer");const f=(0,c.encodePubkey)((0,o.encodeSecp256k1Pubkey)(A.pubkey)),g=h.SignMode.SIGN_MODE_LEGACY_AMINO_JSON,m=t.map((e=>this.aminoTypes.toAmino(e))),v=(0,o.makeSignDoc)(m,n,u,r,i,d),{signature:y,signed:b}=await this.signer.signAmino(e,v),I={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{messages:b.msgs.map((e=>this.aminoTypes.fromAmino(e))),memo:b.memo}},C=this.registry.encode(I),E=s.Int53.fromString(b.fee.gas).toNumber(),w=s.Int53.fromString(b.sequence).toNumber(),B=(0,c.makeAuthInfoBytes)([{pubkey:f,sequence:w}],b.fee.amount,E,g);return p.TxRaw.fromPartial({bodyBytes:C,authInfoBytes:B,signatures:[(0,a.fromBase64)(y.signature)]})}async signDirect(e,t,n,r,{accountNumber:i,sequence:d,chainId:u}){(0,l.assert)((0,c.isOfflineDirectSigner)(this.signer));const A=(await this.signer.getAccounts()).find((t=>t.address===e));if(!A)throw new Error("Failed to retrieve account from signer");const f=(0,c.encodePubkey)((0,o.encodeSecp256k1Pubkey)(A.pubkey)),h={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{messages:t,memo:r}},g=this.registry.encode(h),m=s.Int53.fromString(n.gas).toNumber(),v=(0,c.makeAuthInfoBytes)([{pubkey:f,sequence:d}],n.amount,m),y=(0,c.makeSignDoc)(g,v,u,i),{signature:b,signed:I}=await this.signer.signDirect(e,y);return p.TxRaw.fromPartial({bodyBytes:I.bodyBytes,authInfoBytes:I.authInfoBytes,signatures:[(0,a.fromBase64)(b.signature)]})}}t.SigningCosmWasmClient=E},9549:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Bip39=t.EnglishMnemonic=t.mnemonicToEntropy=t.entropyToMnemonic=void 0;const r=n(8972),o=n(2997),i=n(2387),a=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];function s(e){return Array.from(e).map((e=>e.toString(2).padStart(8,"0"))).join("")}function c(e){const t=8*e.length/32;return s((0,i.sha256)(e)).slice(0,t)}function d(e){return parseInt(e,2)}const u=[16,20,24,28,32],l=[12,15,18,21,24];function A(e){if(-1===u.indexOf(e.length))throw new Error("invalid input length");return(s(e)+c(e)).match(/(.{11})/g).map((e=>{const t=d(e);return a[t]})).join(" ")}function f(e){return e.normalize("NFKD")}function h(e){const t=f(e).split(" ");if(!l.includes(t.length))throw new Error("Invalid number of words");const n=t.map((e=>{const t=a.indexOf(e);if(-1===t)throw new Error("Found word that is not in the wordlist");return t.toString(2).padStart(11,"0")})).join(""),r=32*Math.floor(n.length/33),o=n.slice(0,r),i=n.slice(r),s=o.match(/(.{1,8})/g).map(d);if(s.length<16||s.length>32||s.length%4!=0)throw new Error("Invalid entropy");const u=Uint8Array.from(s);if(c(u)!==i)throw new Error("Invalid mnemonic checksum");return u}t.entropyToMnemonic=A,t.mnemonicToEntropy=h;class p{constructor(e){if(!p.mnemonicMatcher.test(e))throw new Error("Invalid mnemonic format");const t=e.split(" "),n=[12,15,18,21,24];if(-1===n.indexOf(t.length))throw new Error(`Invalid word count in mnemonic (allowed: ${n} got: ${t.length})`);for(const e of t)if(-1===p.wordlist.indexOf(e))throw new Error("Mnemonic contains invalid word");h(e),this.data=e}toString(){return this.data}}t.EnglishMnemonic=p,p.wordlist=a,p.mnemonicMatcher=/^[a-z]+( [a-z]+)*$/,t.Bip39=class{static encode(e){return new p(A(e))}static decode(e){return h(e.toString())}static async mnemonicToSeed(e,t){const n=(0,r.toUtf8)(f(e.toString())),i="mnemonic"+(t?f(t):""),a=(0,r.toUtf8)(i);return(0,o.pbkdf2Sha512)(n,a,2048,64)}}},3955:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hmac=void 0,t.Hmac=class{constructor(e,t){const n=(new e).blockSize;this.hash=t=>(new e).update(t).digest();let r=t;if(r.length>n&&(r=this.hash(r)),r.length92^e)),this.iKeyPad=r.map((e=>54^e)),this.messageHasher=new e,this.blockSize=n,this.update(this.iKeyPad)}update(e){return this.messageHasher.update(e),this}digest(){const e=this.messageHasher.digest();return this.hash(new Uint8Array([...this.oKeyPad,...e]))}}},9562:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringToPath=t.Slip10RawIndex=t.slip10CurveFromString=t.Slip10Curve=t.Slip10=t.pathToString=t.sha512=t.Sha512=t.sha256=t.Sha256=t.Secp256k1Signature=t.ExtendedSecp256k1Signature=t.Secp256k1=t.ripemd160=t.Ripemd160=t.Random=t.Xchacha20poly1305Ietf=t.xchacha20NonceLength=t.isArgon2idOptions=t.Ed25519Keypair=t.Ed25519=t.Argon2id=t.keccak256=t.Keccak256=t.Hmac=t.EnglishMnemonic=t.Bip39=void 0;var r=n(9549);Object.defineProperty(t,"Bip39",{enumerable:!0,get:function(){return r.Bip39}}),Object.defineProperty(t,"EnglishMnemonic",{enumerable:!0,get:function(){return r.EnglishMnemonic}});var o=n(3955);Object.defineProperty(t,"Hmac",{enumerable:!0,get:function(){return o.Hmac}});var i=n(9372);Object.defineProperty(t,"Keccak256",{enumerable:!0,get:function(){return i.Keccak256}}),Object.defineProperty(t,"keccak256",{enumerable:!0,get:function(){return i.keccak256}});var a=n(3942);Object.defineProperty(t,"Argon2id",{enumerable:!0,get:function(){return a.Argon2id}}),Object.defineProperty(t,"Ed25519",{enumerable:!0,get:function(){return a.Ed25519}}),Object.defineProperty(t,"Ed25519Keypair",{enumerable:!0,get:function(){return a.Ed25519Keypair}}),Object.defineProperty(t,"isArgon2idOptions",{enumerable:!0,get:function(){return a.isArgon2idOptions}}),Object.defineProperty(t,"xchacha20NonceLength",{enumerable:!0,get:function(){return a.xchacha20NonceLength}}),Object.defineProperty(t,"Xchacha20poly1305Ietf",{enumerable:!0,get:function(){return a.Xchacha20poly1305Ietf}});var s=n(616);Object.defineProperty(t,"Random",{enumerable:!0,get:function(){return s.Random}});var c=n(568);Object.defineProperty(t,"Ripemd160",{enumerable:!0,get:function(){return c.Ripemd160}}),Object.defineProperty(t,"ripemd160",{enumerable:!0,get:function(){return c.ripemd160}});var d=n(6649);Object.defineProperty(t,"Secp256k1",{enumerable:!0,get:function(){return d.Secp256k1}});var u=n(8222);Object.defineProperty(t,"ExtendedSecp256k1Signature",{enumerable:!0,get:function(){return u.ExtendedSecp256k1Signature}}),Object.defineProperty(t,"Secp256k1Signature",{enumerable:!0,get:function(){return u.Secp256k1Signature}});var l=n(2387);Object.defineProperty(t,"Sha256",{enumerable:!0,get:function(){return l.Sha256}}),Object.defineProperty(t,"sha256",{enumerable:!0,get:function(){return l.sha256}}),Object.defineProperty(t,"Sha512",{enumerable:!0,get:function(){return l.Sha512}}),Object.defineProperty(t,"sha512",{enumerable:!0,get:function(){return l.sha512}});var A=n(2081);Object.defineProperty(t,"pathToString",{enumerable:!0,get:function(){return A.pathToString}}),Object.defineProperty(t,"Slip10",{enumerable:!0,get:function(){return A.Slip10}}),Object.defineProperty(t,"Slip10Curve",{enumerable:!0,get:function(){return A.Slip10Curve}}),Object.defineProperty(t,"slip10CurveFromString",{enumerable:!0,get:function(){return A.slip10CurveFromString}}),Object.defineProperty(t,"Slip10RawIndex",{enumerable:!0,get:function(){return A.Slip10RawIndex}}),Object.defineProperty(t,"stringToPath",{enumerable:!0,get:function(){return A.stringToPath}})},9372:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.keccak256=t.Keccak256=void 0;const r=n(5426),o=n(9583);class i{constructor(e){this.blockSize=64,this.impl=r.keccak_256.create(),e&&this.update(e)}update(e){return this.impl.update((0,o.toRealUint8Array)(e)),this}digest(){return this.impl.digest()}}t.Keccak256=i,t.keccak256=function(e){return new i(e).digest()}},3942:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Xchacha20poly1305Ietf=t.xchacha20NonceLength=t.Ed25519=t.Ed25519Keypair=t.Argon2id=t.isArgon2idOptions=void 0;const o=n(5553),i=r(n(6869));t.isArgon2idOptions=function(e){return!!(0,o.isNonNullObject)(e)&&"number"==typeof e.outputLength&&"number"==typeof e.opsLimit&&"number"==typeof e.memLimitKib},t.Argon2id=class{static async execute(e,t,n){return await i.default.ready,i.default.crypto_pwhash(n.outputLength,e,t,n.opsLimit,1024*n.memLimitKib,i.default.crypto_pwhash_ALG_ARGON2ID13)}};class a{constructor(e,t){this.privkey=e,this.pubkey=t}static fromLibsodiumPrivkey(e){if(64!==e.length)throw new Error(`Unexpected key length ${e.length}. Must be 64.`);return new a(e.slice(0,32),e.slice(32,64))}toLibsodiumPrivkey(){return new Uint8Array([...this.privkey,...this.pubkey])}}t.Ed25519Keypair=a,t.Ed25519=class{static async makeKeypair(e){await i.default.ready;const t=i.default.crypto_sign_seed_keypair(e);return a.fromLibsodiumPrivkey(t.privateKey)}static async createSignature(e,t){return await i.default.ready,i.default.crypto_sign_detached(e,t.toLibsodiumPrivkey())}static async verifySignature(e,t,n){return await i.default.ready,i.default.crypto_sign_verify_detached(e,t,n)}},t.xchacha20NonceLength=24,t.Xchacha20poly1305Ietf=class{static async encrypt(e,t,n){return await i.default.ready,i.default.crypto_aead_xchacha20poly1305_ietf_encrypt(e,null,null,n,t)}static async decrypt(e,t,n){return await i.default.ready,i.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null,e,null,n,t)}}},2997:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.pbkdf2Sha512=t.pbkdf2Sha512Noble=t.pbkdf2Sha512Crypto=t.pbkdf2Sha512Subtle=t.getSubtle=t.getCryptoModule=void 0;const a=n(5553),s=n(9023),c=n(6262);async function d(){try{const e=await Promise.resolve().then((()=>i(n(6113))));if("object"==typeof e&&Object.keys(e).length<=1)return;return e}catch(e){return}}async function u(){const e=globalThis;let t=e.crypto&&e.crypto.subtle;if(!t){const e=await d();e&&e.webcrypto&&e.webcrypto.subtle&&(t=e.webcrypto.subtle)}return t}async function l(e,t,n,r,o){return(0,a.assert)(e,"Argument subtle is falsy"),(0,a.assert)("object"==typeof e,"Argument subtle is not of type object"),(0,a.assert)("function"==typeof e.importKey,"subtle.importKey is not a function"),(0,a.assert)("function"==typeof e.deriveBits,"subtle.deriveBits is not a function"),e.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((t=>e.deriveBits({name:"PBKDF2",salt:n,iterations:r,hash:{name:"SHA-512"}},t,8*o).then((e=>new Uint8Array(e)))))}async function A(e,t,n,r,o){return(0,a.assert)(e,"Argument crypto is falsy"),(0,a.assert)("object"==typeof e,"Argument crypto is not of type object"),(0,a.assert)("function"==typeof e.pbkdf2,"crypto.pbkdf2 is not a function"),new Promise(((i,a)=>{e.pbkdf2(t,n,r,o,"sha512",((e,t)=>{e?a(e):i(Uint8Array.from(t))}))}))}async function f(e,t,n,r){return(0,s.pbkdf2Async)(c.sha512,e,t,{c:n,dkLen:r})}t.getCryptoModule=d,t.getSubtle=u,t.pbkdf2Sha512Subtle=l,t.pbkdf2Sha512Crypto=A,t.pbkdf2Sha512Noble=f,t.pbkdf2Sha512=async function(e,t,n,r){const o=await u();if(o)return l(o,e,t,n,r);{const o=await d();return o?A(o,e,t,n,r):f(e,t,n,r)}}},616:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Random=void 0,t.Random=class{static getBytes(e){try{const t="object"==typeof window?window:self,n=void 0!==t.crypto?t.crypto:t.msCrypto,r=new Uint8Array(e);return n.getRandomValues(r),r}catch(t){try{const t=n(6113);return new Uint8Array([...t.randomBytes(e)])}catch(e){throw new Error("No secure random number generator found")}}}}},568:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ripemd160=t.Ripemd160=void 0;const r=n(830),o=n(9583);class i{constructor(e){this.blockSize=64,this.impl=r.ripemd160.create(),e&&this.update(e)}update(e){return this.impl.update((0,o.toRealUint8Array)(e)),this}digest(){return this.impl.digest()}}t.Ripemd160=i,t.ripemd160=function(e){return new i(e).digest()}},6649:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Secp256k1=void 0;const o=n(8972),i=r(n(3550)),a=r(n(6266)),s=n(8222),c=new a.default.ec("secp256k1"),d=new i.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141","hex");t.Secp256k1=class{static async makeKeypair(e){if(32!==e.length)throw new Error("input data is not a valid secp256k1 private key");const t=c.keyFromPrivate(e);if(!0!==t.validate().result)throw new Error("input data is not a valid secp256k1 private key");if(new i.default(e).gte(d))throw new Error("input data is not a valid secp256k1 private key");return{privkey:(0,o.fromHex)(t.getPrivate("hex")),pubkey:Uint8Array.from(t.getPublic("array"))}}static async createSignature(e,t){if(0===e.length)throw new Error("Message hash must not be empty");if(e.length>32)throw new Error("Message hash length must not exceed 32 bytes");const n=c.keyFromPrivate(t),{r,s:o,recoveryParam:i}=n.sign(e,{canonical:!0});if("number"!=typeof i)throw new Error("Recovery param missing");return new s.ExtendedSecp256k1Signature(Uint8Array.from(r.toArray()),Uint8Array.from(o.toArray()),i)}static async verifySignature(e,t,n){if(0===t.length)throw new Error("Message hash must not be empty");if(t.length>32)throw new Error("Message hash length must not exceed 32 bytes");const r=c.keyFromPublic(n);try{return r.verify(t,e.toDer())}catch(e){return!1}}static recoverPubkey(e,t){const n={r:(0,o.toHex)(e.r()),s:(0,o.toHex)(e.s())},r=c.recoverPubKey(t,n,e.recovery),i=c.keyFromPublic(r);return(0,o.fromHex)(i.getPublic(!1,"hex"))}static compressPubkey(e){switch(e.length){case 33:return e;case 65:return Uint8Array.from(c.keyFromPublic(e).getPublic(!0,"array"));default:throw new Error("Invalid pubkey length")}}static uncompressPubkey(e){switch(e.length){case 33:return Uint8Array.from(c.keyFromPublic(e).getPublic(!1,"array"));case 65:return e;default:throw new Error("Invalid pubkey length")}}static trimRecoveryByte(e){switch(e.length){case 64:return e;case 65:return e.slice(0,64);default:throw new Error("Invalid signature length")}}}},8222:(e,t)=>{"use strict";function n(e){let t=0;for(const n of e){if(0!==n)break;t++}return e.slice(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedSecp256k1Signature=t.Secp256k1Signature=void 0;class r{constructor(e,t){if(e.length>32||0===e.length||0===e[0])throw new Error("Unsigned integer r must be encoded as unpadded big endian.");if(t.length>32||0===t.length||0===t[0])throw new Error("Unsigned integer s must be encoded as unpadded big endian.");this.data={r:e,s:t}}static fromFixedLength(e){if(64!==e.length)throw new Error(`Got invalid data length: ${e.length}. Expected 2x 32 bytes for the pair (r, s)`);return new r(n(e.slice(0,32)),n(e.slice(32,64)))}static fromDer(e){let t=0;if(48!==e[t++])throw new Error("Prefix 0x30 expected");const o=e[t++];if(e.length-t!==o)throw new Error("Data length mismatch detected");if(2!==e[t++])throw new Error("INTEGER tag expected");const i=e[t++];if(i>=128)throw new Error("Decoding length values above 127 not supported");const a=e.slice(t,t+i);if(t+=i,2!==e[t++])throw new Error("INTEGER tag expected");const s=e[t++];if(s>=128)throw new Error("Decoding length values above 127 not supported");const c=e.slice(t,t+s);return t+=s,new r(n(a),n(c))}r(e){if(void 0===e)return this.data.r;{const t=e-this.data.r.length;if(t<0)throw new Error("Length too small to hold parameter r");const n=new Uint8Array(t);return new Uint8Array([...n,...this.data.r])}}s(e){if(void 0===e)return this.data.s;{const t=e-this.data.s.length;if(t<0)throw new Error("Length too small to hold parameter s");const n=new Uint8Array(t);return new Uint8Array([...n,...this.data.s])}}toFixedLength(){return new Uint8Array([...this.r(32),...this.s(32)])}toDer(){const e=this.data.r[0]>=128?new Uint8Array([0,...this.data.r]):this.data.r,t=this.data.s[0]>=128?new Uint8Array([0,...this.data.s]):this.data.s,n=e.length,r=t.length,o=new Uint8Array([2,n,...e,2,r,...t]);return new Uint8Array([48,o.length,...o])}}t.Secp256k1Signature=r;class o extends r{constructor(e,t,n){if(super(e,t),!Number.isInteger(n))throw new Error("The recovery parameter must be an integer.");if(n<0||n>4)throw new Error("The recovery parameter must be one of 0, 1, 2, 3.");this.recovery=n}static fromFixedLength(e){if(65!==e.length)throw new Error(`Got invalid data length ${e.length}. Expected 32 + 32 + 1`);return new o(n(e.slice(0,32)),n(e.slice(32,64)),e[64])}toFixedLength(){return new Uint8Array([...this.r(32),...this.s(32),this.recovery])}}t.ExtendedSecp256k1Signature=o},2387:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sha512=t.Sha512=t.sha256=t.Sha256=void 0;const r=n(3061),o=n(6262),i=n(9583);class a{constructor(e){this.blockSize=64,this.impl=r.sha256.create(),e&&this.update(e)}update(e){return this.impl.update((0,i.toRealUint8Array)(e)),this}digest(){return this.impl.digest()}}t.Sha256=a,t.sha256=function(e){return new a(e).digest()};class s{constructor(e){this.blockSize=128,this.impl=o.sha512.create(),e&&this.update(e)}update(e){return this.impl.update((0,i.toRealUint8Array)(e)),this}digest(){return this.impl.digest()}}t.Sha512=s,t.sha512=function(e){return new s(e).digest()}},2081:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.stringToPath=t.pathToString=t.Slip10=t.Slip10RawIndex=t.slip10CurveFromString=t.Slip10Curve=void 0;const o=n(8972),i=n(6961),a=r(n(3550)),s=r(n(6266)),c=n(3955),d=n(2387);var u;!function(e){e.Secp256k1="Bitcoin seed",e.Ed25519="ed25519 seed"}(u=t.Slip10Curve||(t.Slip10Curve={})),t.slip10CurveFromString=function(e){switch(e){case u.Ed25519:return u.Ed25519;case u.Secp256k1:return u.Secp256k1;default:throw new Error(`Unknown curve string: '${e}'`)}};class l extends i.Uint32{static hardened(e){return new l(e+2**31)}static normal(e){return new l(e)}isHardened(){return this.data>=2**31}}t.Slip10RawIndex=l;const A=new s.default.ec("secp256k1");class f{static derivePath(e,t,n){let r=this.master(e,t);for(const t of n)r=this.child(e,r.privkey,r.chainCode,t);return r}static master(e,t){const n=new c.Hmac(d.Sha512,(0,o.toAscii)(e)).update(t).digest(),r=n.slice(0,32),i=n.slice(32,64);return e!==u.Ed25519&&(this.isZero(r)||this.isGteN(e,r))?this.master(e,n):{chainCode:i,privkey:r}}static child(e,t,n,r){let o;if(r.isHardened()){const e=new Uint8Array([0,...t,...r.toBytesBigEndian()]);o=new c.Hmac(d.Sha512,n).update(e).digest()}else{if(e===u.Ed25519)throw new Error("Normal keys are not allowed with ed25519");{const i=new Uint8Array([...f.serializedPoint(e,new a.default(t)),...r.toBytesBigEndian()]);o=new c.Hmac(d.Sha512,n).update(i).digest()}}return this.childImpl(e,t,n,r,o)}static serializedPoint(e,t){if(e===u.Secp256k1)return(0,o.fromHex)(A.g.mul(t).encodeCompressed("hex"));throw new Error("curve not supported")}static childImpl(e,t,n,r,o){const i=o.slice(0,32),s=o.slice(32,64),l=s;if(e===u.Ed25519)return{chainCode:l,privkey:i};const A=this.n(e),f=new a.default(i).add(new a.default(t)).mod(A),h=Uint8Array.from(f.toArray("be",32));if(this.isGteN(e,i)||this.isZero(h)){const o=new c.Hmac(d.Sha512,n).update(new Uint8Array([1,...s,...r.toBytesBigEndian()])).digest();return this.childImpl(e,t,n,r,o)}return{chainCode:l,privkey:h}}static isZero(e){return e.every((e=>0===e))}static isGteN(e,t){return new a.default(t).gte(this.n(e))}static n(e){if(e===u.Secp256k1)return new a.default("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141",16);throw new Error("curve not supported")}}t.Slip10=f,t.pathToString=function(e){return e.reduce(((e,t)=>e+"/"+(t.isHardened()?t.toNumber()-2**31+"'":t.toString())),"m")},t.stringToPath=function(e){if(!e.startsWith("m"))throw new Error("Path string must start with 'm'");let t=e.slice(1);const n=new Array;for(;t;){const e=t.match(/^\/([0-9]+)('?)/);if(!e)throw new Error("Syntax error while reading path component");const[r,o,a]=e,s=i.Uint53.fromString(o).toNumber();if(s>=2**31)throw new Error("Component value too high. Must not exceed 2**31-1.");a?n.push(l.hardened(s)):n.push(l.normal(s)),t=t.slice(r.length)}return n}},9583:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toRealUint8Array=void 0,t.toRealUint8Array=function(e){return e instanceof Uint8Array?e:Uint8Array.from(e)}},7768:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromAscii=t.toAscii=void 0,t.toAscii=function(e){return Uint8Array.from(e.split("").map((e=>{const t=e.charCodeAt(0);if(t<32||t>126)throw new Error("Cannot encode character that is out of printable ASCII range: "+t);return t})))},t.fromAscii=function(e){return(t=Array.from(e),t.map((e=>{if(e<32||e>126)throw new Error("Cannot decode character that is out of printable ASCII range: "+e);return String.fromCharCode(e)}))).join("");var t}},3431:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.fromBase64=t.toBase64=void 0;const a=i(n(9742));t.toBase64=function(e){return a.fromByteArray(e)},t.fromBase64=function(e){if(!e.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new Error("Invalid base64 string format");return a.toByteArray(e)}},5438:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Bech32=t.fromBech32=t.toBech32=void 0;const a=i(n(2882));function s(e,t,n){return a.encode(e,a.toWords(t),n)}function c(e,t=1/0){const n=a.decode(e,t);return{prefix:n.prefix,data:new Uint8Array(a.fromWords(n.words))}}t.toBech32=s,t.fromBech32=c,t.Bech32=class{static encode(e,t,n){return s(e,t,n)}static decode(e,t=1/0){return c(e,t)}}},6135:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromHex=t.toHex=void 0,t.toHex=function(e){let t="";for(const n of e)t+=("0"+n.toString(16)).slice(-2);return t},t.fromHex=function(e){if(e.length%2!=0)throw new Error("hex string length must be a multiple of 2");const t=new Uint8Array(e.length/2);for(let n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUtf8=t.fromUtf8=t.toRfc3339=t.fromRfc3339=t.toHex=t.fromHex=t.toBech32=t.fromBech32=t.Bech32=t.toBase64=t.fromBase64=t.toAscii=t.fromAscii=void 0;var r=n(7768);Object.defineProperty(t,"fromAscii",{enumerable:!0,get:function(){return r.fromAscii}}),Object.defineProperty(t,"toAscii",{enumerable:!0,get:function(){return r.toAscii}});var o=n(3431);Object.defineProperty(t,"fromBase64",{enumerable:!0,get:function(){return o.fromBase64}}),Object.defineProperty(t,"toBase64",{enumerable:!0,get:function(){return o.toBase64}});var i=n(5438);Object.defineProperty(t,"Bech32",{enumerable:!0,get:function(){return i.Bech32}}),Object.defineProperty(t,"fromBech32",{enumerable:!0,get:function(){return i.fromBech32}}),Object.defineProperty(t,"toBech32",{enumerable:!0,get:function(){return i.toBech32}});var a=n(6135);Object.defineProperty(t,"fromHex",{enumerable:!0,get:function(){return a.fromHex}}),Object.defineProperty(t,"toHex",{enumerable:!0,get:function(){return a.toHex}});var s=n(7310);Object.defineProperty(t,"fromRfc3339",{enumerable:!0,get:function(){return s.fromRfc3339}}),Object.defineProperty(t,"toRfc3339",{enumerable:!0,get:function(){return s.toRfc3339}});var c=n(6081);Object.defineProperty(t,"fromUtf8",{enumerable:!0,get:function(){return c.fromUtf8}}),Object.defineProperty(t,"toUtf8",{enumerable:!0,get:function(){return c.toUtf8}})},7310:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toRfc3339=t.fromRfc3339=void 0;const n=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/;function r(e,t=2){const n="00000"+e.toString();return n.substring(n.length-t)}t.fromRfc3339=function(e){const t=n.exec(e);if(!t)throw new Error("Date string is not in RFC3339 format");const r=+t[1],o=+t[2],i=+t[3],a=+t[4],s=+t[5],c=+t[6],d=t[7]?Math.floor(1e3*+t[7]):0;let u,l,A;"Z"===t[8]?(u=1,l=0,A=0):(u="-"===t[8].substring(0,1)?-1:1,l=+t[8].substring(1,3),A=+t[8].substring(4,6));const f=u*(60*l+A)*60,h=Date.UTC(r,o-1,i,a,s,c,d)-1e3*f;return new Date(h)},t.toRfc3339=function(e){return`${e.getUTCFullYear()}-${r(e.getUTCMonth()+1)}-${r(e.getUTCDate())}T${r(e.getUTCHours())}:${r(e.getUTCMinutes())}:${r(e.getUTCSeconds())}.${r(e.getUTCMilliseconds(),3)}Z`}},6081:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromUtf8=t.toUtf8=void 0,t.toUtf8=function(e){return(new TextEncoder).encode(e)},t.fromUtf8=function(e){return new TextDecoder("utf-8",{fatal:!0}).decode(e)}},240:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FaucetClient=void 0;const o=r(n(9669));t.FaucetClient=class{constructor(e){if(!e.match(/^https?:\/\//))throw new Error("Expected base url to start with http:// or https://");const t=e.replace(/(\/+)$/,"");this.baseUrl=t}async credit(e,t){const n={address:e,denom:t};try{await o.default.post(this.baseUrl+"/credit",n)}catch(e){throw e.response?new Error(`${e}; response body: ${JSON.stringify(e.response.data)}`):e}}}},1467:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaucetClient=void 0;var r=n(240);Object.defineProperty(t,"FaucetClient",{enumerable:!0,get:function(){return r.FaucetClient}})},4111:(e,t)=>{"use strict";function n(e){return!("string"!=typeof e&&"number"!=typeof e&&"boolean"!=typeof e&&null!==e&&!r(e)&&!o(e))}function r(e){if(!Array.isArray(e))return!1;for(const t of e)if(!n(t))return!1;return!0}function o(e){return"object"==typeof e&&null!==e&&"[object Object]"===Object.prototype.toString.call(e)&&Object.values(e).every(n)}Object.defineProperty(t,"__esModule",{value:!0}),t.isJsonCompatibleDictionary=t.isJsonCompatibleArray=t.isJsonCompatibleValue=void 0,t.isJsonCompatibleValue=n,t.isJsonCompatibleArray=r,t.isJsonCompatibleDictionary=o},8729:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeJsonRpcId=void 0;let n=1e4;t.makeJsonRpcId=function(){return n+=1}},2812:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.jsonRpcCode=t.isJsonRpcSuccessResponse=t.isJsonRpcErrorResponse=t.parseJsonRpcSuccessResponse=t.parseJsonRpcResponse=t.parseJsonRpcRequest=t.parseJsonRpcId=t.parseJsonRpcErrorResponse=t.JsonRpcClient=t.makeJsonRpcId=void 0;var r=n(8729);Object.defineProperty(t,"makeJsonRpcId",{enumerable:!0,get:function(){return r.makeJsonRpcId}});var o=n(1123);Object.defineProperty(t,"JsonRpcClient",{enumerable:!0,get:function(){return o.JsonRpcClient}});var i=n(2743);Object.defineProperty(t,"parseJsonRpcErrorResponse",{enumerable:!0,get:function(){return i.parseJsonRpcErrorResponse}}),Object.defineProperty(t,"parseJsonRpcId",{enumerable:!0,get:function(){return i.parseJsonRpcId}}),Object.defineProperty(t,"parseJsonRpcRequest",{enumerable:!0,get:function(){return i.parseJsonRpcRequest}}),Object.defineProperty(t,"parseJsonRpcResponse",{enumerable:!0,get:function(){return i.parseJsonRpcResponse}}),Object.defineProperty(t,"parseJsonRpcSuccessResponse",{enumerable:!0,get:function(){return i.parseJsonRpcSuccessResponse}});var a=n(3974);Object.defineProperty(t,"isJsonRpcErrorResponse",{enumerable:!0,get:function(){return a.isJsonRpcErrorResponse}}),Object.defineProperty(t,"isJsonRpcSuccessResponse",{enumerable:!0,get:function(){return a.isJsonRpcSuccessResponse}}),Object.defineProperty(t,"jsonRpcCode",{enumerable:!0,get:function(){return a.jsonRpcCode}})},1123:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JsonRpcClient=void 0;const r=n(1459),o=n(3974);t.JsonRpcClient=class{constructor(e){this.connection=e}async run(e){const t=this.connection.responseStream.filter((t=>t.id===e.id)),n=(0,r.firstEvent)(t);this.connection.sendRequest(e);const i=await n;if((0,o.isJsonRpcErrorResponse)(i)){const e=i.error;throw new Error(`JSON RPC error: code=${e.code}; message='${e.message}'`)}return i}}},2743:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseJsonRpcResponse=t.parseJsonRpcSuccessResponse=t.parseJsonRpcErrorResponse=t.parseJsonRpcRequest=t.parseJsonRpcId=void 0;const r=n(4111);function o(e){if(!(0,r.isJsonCompatibleDictionary)(e))throw new Error("Data must be JSON compatible dictionary");const t=e.id;return"number"!=typeof t&&"string"!=typeof t?null:t}function i(e){if("number"!=typeof e.code)throw new Error("Error property 'code' is not a number");if("string"!=typeof e.message)throw new Error("Error property 'message' is not a string");let t;if(void 0===e.data)t=void 0;else{if(!(0,r.isJsonCompatibleValue)(e.data))throw new Error("Error property 'data' is defined but not a JSON compatible value.");t=e.data}return{code:e.code,message:e.message,...void 0!==t?{data:t}:{}}}function a(e){if(!(0,r.isJsonCompatibleDictionary)(e))throw new Error("Data must be JSON compatible dictionary");if("2.0"!==e.jsonrpc)throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(e)}`);const t=e.id;if("number"!=typeof t&&"string"!=typeof t&&null!==t)throw new Error("Invalid id field");if(void 0===e.error||!(0,r.isJsonCompatibleDictionary)(e.error))throw new Error("Invalid error field");return{jsonrpc:"2.0",id:t,error:i(e.error)}}function s(e){if(!(0,r.isJsonCompatibleDictionary)(e))throw new Error("Data must be JSON compatible dictionary");if("2.0"!==e.jsonrpc)throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(e)}`);const t=e.id;if("number"!=typeof t&&"string"!=typeof t)throw new Error("Invalid id field");if(void 0===e.result)throw new Error("Invalid result field");return{jsonrpc:"2.0",id:t,result:e.result}}t.parseJsonRpcId=o,t.parseJsonRpcRequest=function(e){if(!(0,r.isJsonCompatibleDictionary)(e))throw new Error("Data must be JSON compatible dictionary");if("2.0"!==e.jsonrpc)throw new Error(`Got unexpected jsonrpc version: ${e.jsonrpc}`);const t=o(e);if(null===t)throw new Error("Invalid id field");const n=e.method;if("string"!=typeof n)throw new Error("Invalid method field");if(!(0,r.isJsonCompatibleArray)(e.params)&&!(0,r.isJsonCompatibleDictionary)(e.params))throw new Error("Invalid params field");return{jsonrpc:"2.0",id:t,method:n,params:e.params}},t.parseJsonRpcErrorResponse=a,t.parseJsonRpcSuccessResponse=s,t.parseJsonRpcResponse=function(e){let t;try{t=a(e)}catch(n){t=s(e)}return t}},3974:(e,t)=>{"use strict";function n(e){return"object"==typeof e.error}Object.defineProperty(t,"__esModule",{value:!0}),t.jsonRpcCode=t.isJsonRpcSuccessResponse=t.isJsonRpcErrorResponse=void 0,t.isJsonRpcErrorResponse=n,t.isJsonRpcSuccessResponse=function(e){return!n(e)},t.jsonRpcCode={parseError:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internalError:-32603,serverError:{default:-32e3}}},8121:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LedgerSigner=t.LedgerConnector=void 0;var r=n(7960);Object.defineProperty(t,"LedgerConnector",{enumerable:!0,get:function(){return r.LedgerConnector}});var o=n(4009);Object.defineProperty(t,"LedgerSigner",{enumerable:!0,get:function(){return o.LedgerSigner}})},7960:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LedgerConnector=void 0;const o=n(3359),i=n(9562),a=n(8972),s=n(5553),c=r(n(9246)),d=r(n(1249));function u(e){return e.map((e=>e.isHardened()?e.toNumber()-2**31:e.toNumber()))}const l=(0,o.makeCosmoshubPath)(0);t.LedgerConnector=class{constructor(e,t={}){var n,r,o,i,a;const s={hdPaths:[l],prefix:"cosmos",testModeAllowed:!1,ledgerAppName:"Cosmos",requiredLedgerAppVersion:"1.5.3"};this.testModeAllowed=null!==(n=t.testModeAllowed)&&void 0!==n?n:s.testModeAllowed,this.hdPaths=null!==(r=t.hdPaths)&&void 0!==r?r:s.hdPaths,this.prefix=null!==(o=t.prefix)&&void 0!==o?o:s.prefix,this.ledgerAppName=null!==(i=t.ledgerAppName)&&void 0!==i?i:s.ledgerAppName,this.minLedgerAppVersion=null!==(a=t.minLedgerAppVersion)&&void 0!==a?a:s.requiredLedgerAppVersion,this.app=new c.default(e)}async getCosmosAppVersion(){await this.verifyCosmosAppIsOpen(),(0,s.assert)(this.app,`${this.ledgerAppName} Ledger App is not connected`);const e=await this.app.getVersion();this.handleLedgerErrors(e);const{major:t,minor:n,patch:r,test_mode:o}=e;return this.verifyAppMode(o),`${t}.${n}.${r}`}async getPubkey(e){await this.verifyDeviceIsReady(),(0,s.assert)(this.app,`${this.ledgerAppName} Ledger App is not connected`);const t=e||this.hdPaths[0],n=await this.app.publicKey(u(t));return this.handleLedgerErrors(n),Uint8Array.from(n.compressed_pk)}async getPubkeys(){return this.hdPaths.reduce(((e,t)=>e.then((async e=>[...e,await this.getPubkey(t)]))),Promise.resolve([]))}async getCosmosAddress(e){const t=e||await this.getPubkey();return(0,o.pubkeyToAddress)((0,o.encodeSecp256k1Pubkey)(t),this.prefix)}async sign(e,t){await this.verifyDeviceIsReady(),(0,s.assert)(this.app,`${this.ledgerAppName} Ledger App is not connected`);const n=t||this.hdPaths[0],r=await this.app.sign(u(n),(0,a.fromUtf8)(e));return this.handleLedgerErrors(r,"Transaction signing request was rejected by the user"),i.Secp256k1Signature.fromDer(r.signature).toFixedLength()}verifyAppMode(e){if(e&&!this.testModeAllowed)throw new Error(`DANGER: The ${this.ledgerAppName} Ledger app is in test mode and should not be used on mainnet!`)}async getOpenAppName(){(0,s.assert)(this.app,`${this.ledgerAppName} Ledger App is not connected`);const e=await this.app.appInfo();return this.handleLedgerErrors(e),e.appName}async verifyAppVersion(){const e=await this.getCosmosAppVersion();if(!d.default.gte(e,this.minLedgerAppVersion))throw new Error(`Outdated version: Please update ${this.ledgerAppName} Ledger App to the latest version.`)}async verifyCosmosAppIsOpen(){const e=await this.getOpenAppName();if("dashboard"===e.toLowerCase())throw new Error(`Please open the ${this.ledgerAppName} Ledger app on your Ledger device.`);if(e.toLowerCase()!==this.ledgerAppName.toLowerCase())throw new Error(`Please close ${e} and open the ${this.ledgerAppName} Ledger app on your Ledger device.`)}async verifyDeviceIsReady(){await this.verifyAppVersion(),await this.verifyCosmosAppIsOpen()}async showAddress(e){await this.verifyDeviceIsReady();const t=e||this.hdPaths[0],n=await this.app.showAddressAndPubKey(u(t),this.prefix);this.handleLedgerErrors(n);const{address:r,compressed_pk:i}=n;return{address:r,pubkey:(0,o.encodeSecp256k1Pubkey)(i)}}handleLedgerErrors({error_message:e="No errors",device_locked:t=!1},n="Request was rejected by the user"){if(t)throw new Error("Ledger’s screensaver mode is on");switch(e){case"U2F: Timeout":throw new Error("Connection timed out. Please try again.");case"Cosmos app does not seem to be open":throw new Error(`${this.ledgerAppName} app is not open`);case"Command not allowed":throw new Error("Transaction rejected");case"Transaction rejected":throw new Error(n);case"Unknown Status Code: 26628":throw new Error("Ledger’s screensaver mode is on");case"Instruction not supported":throw new Error(`Your ${this.ledgerAppName} Ledger App is not up to date. Please update to version ${this.minLedgerAppVersion} or newer.`);case"No errors":break;default:throw new Error(`Ledger Native Error: ${e}`)}}}},4009:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LedgerSigner=void 0;const r=n(3359),o=n(7960);t.LedgerSigner=class{constructor(e,t={}){this.hdPaths=t.hdPaths||[(0,r.makeCosmoshubPath)(0)],this.connector=new o.LedgerConnector(e,t)}async getAccounts(){if(!this.accounts){const e=await this.connector.getPubkeys();this.accounts=await Promise.all(e.map((async e=>({algo:"secp256k1",address:await this.connector.getCosmosAddress(e),pubkey:e}))))}return this.accounts}async showAddress(e){return this.connector.showAddress(e)}async signAmino(e,t){const n=this.accounts||await this.getAccounts(),o=n.findIndex((t=>t.address===e));if(-1===o)throw new Error(`Address ${e} not found in wallet`);const i=(0,r.serializeSignDoc)(t),a=n[o],s=this.hdPaths[o],c=await this.connector.sign(i,s);return{signed:t,signature:(0,r.encodeSecp256k1Signature)(a.pubkey,c)}}}},8828:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Decimal=void 0;const o=r(n(3550));class i{constructor(e,t){this.data={atomics:new o.default(e),fractionalDigits:t}}static fromUserInput(e,t){i.verifyFractionalDigits(t);const n=e.match(/[^0-9.]/);if(n)throw new Error(`Invalid character at position ${n.index+1}`);let r,o;if(-1===e.search(/\./))r=e,o="";else{const t=e.split(".");switch(t.length){case 0:case 1:throw new Error("Fewer than two elements in split result. This must not happen here.");case 2:if(!t[1])throw new Error("Fractional part missing");r=t[0],o=t[1].replace(/0+$/,"");break;default:throw new Error("More than one separator found")}}if(o.length>t)throw new Error("Got more fractional digits than supported");const a=`${r}${o.padEnd(t,"0")}`;return new i(a,t)}static fromAtomics(e,t){return i.verifyFractionalDigits(t),new i(e,t)}static verifyFractionalDigits(e){if(!Number.isInteger(e))throw new Error("Fractional digits is not an integer");if(e<0)throw new Error("Fractional digits must not be negative");if(e>100)throw new Error("Fractional digits must not exceed 100")}static compare(e,t){if(e.fractionalDigits!==t.fractionalDigits)throw new Error("Fractional digits do not match");return e.data.atomics.cmp(new o.default(t.atomics))}get atomics(){return this.data.atomics.toString()}get fractionalDigits(){return this.data.fractionalDigits}toString(){const e=new o.default(10).pow(new o.default(this.data.fractionalDigits)),t=this.data.atomics.div(e),n=this.data.atomics.mod(e);if(n.isZero())return t.toString();{const e=n.toString().padStart(this.data.fractionalDigits,"0").replace(/0+$/,"");return`${t.toString()}.${e}`}}toFloatApproximation(){const e=Number(this.toString());if(Number.isNaN(e))throw new Error("Conversion to number failed");return e}plus(e){if(this.fractionalDigits!==e.fractionalDigits)throw new Error("Fractional digits do not match");const t=this.data.atomics.add(new o.default(e.atomics));return new i(t.toString(),this.fractionalDigits)}minus(e){if(this.fractionalDigits!==e.fractionalDigits)throw new Error("Fractional digits do not match");const t=this.data.atomics.sub(new o.default(e.atomics));if(t.ltn(0))throw new Error("Difference must not be negative");return new i(t.toString(),this.fractionalDigits)}multiply(e){const t=this.data.atomics.mul(new o.default(e.toString()));return new i(t.toString(),this.fractionalDigits)}equals(e){return 0===i.compare(this,e)}isLessThan(e){return i.compare(this,e)<0}isLessThanOrEqual(e){return i.compare(this,e)<=0}isGreaterThan(e){return i.compare(this,e)>0}isGreaterThanOrEqual(e){return i.compare(this,e)>=0}}t.Decimal=i},6961:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Uint64=t.Uint53=t.Uint32=t.Int53=t.Decimal=void 0;var r=n(8828);Object.defineProperty(t,"Decimal",{enumerable:!0,get:function(){return r.Decimal}});var o=n(172);Object.defineProperty(t,"Int53",{enumerable:!0,get:function(){return o.Int53}}),Object.defineProperty(t,"Uint32",{enumerable:!0,get:function(){return o.Uint32}}),Object.defineProperty(t,"Uint53",{enumerable:!0,get:function(){return o.Uint53}}),Object.defineProperty(t,"Uint64",{enumerable:!0,get:function(){return o.Uint64}})},172:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Uint64=t.Uint53=t.Int53=t.Uint32=void 0;const o=r(n(3550)),i=new o.default("18446744073709551615",10,"be");class a{constructor(e){if(Number.isNaN(e))throw new Error("Input is not a number");if(!Number.isInteger(e))throw new Error("Input is not an integer");if(e<0||e>4294967295)throw new Error("Input not in uint32 range: "+e.toString());this.data=e}static fromBigEndianBytes(e){return a.fromBytes(e)}static fromBytes(e,t="be"){if(4!==e.length)throw new Error("Invalid input length. Expected 4 bytes.");for(let t=0;t255||e[t]<0)throw new Error("Invalid value in byte. Found: "+e[t]);const n="be"===t?e:Array.from(e).reverse();return new a(n[0]*2**24+65536*n[1]+256*n[2]+n[3])}static fromString(e){if(!e.match(/^[0-9]+$/))throw new Error("Invalid string format");return new a(Number.parseInt(e,10))}toBytesBigEndian(){return new Uint8Array([255&Math.floor(this.data/2**24),255&Math.floor(this.data/65536),255&Math.floor(this.data/256),255&Math.floor(this.data/1)])}toBytesLittleEndian(){return new Uint8Array([255&Math.floor(this.data/1),255&Math.floor(this.data/256),255&Math.floor(this.data/65536),255&Math.floor(this.data/2**24)])}toNumber(){return this.data}toString(){return this.data.toString()}}t.Uint32=a;class s{constructor(e){if(Number.isNaN(e))throw new Error("Input is not a number");if(!Number.isInteger(e))throw new Error("Input is not an integer");if(eNumber.MAX_SAFE_INTEGER)throw new Error("Input not in int53 range: "+e.toString());this.data=e}static fromString(e){if(!e.match(/^-?[0-9]+$/))throw new Error("Invalid string format");return new s(Number.parseInt(e,10))}toNumber(){return this.data}toString(){return this.data.toString()}}t.Int53=s;class c{constructor(e){const t=new s(e);if(t.toNumber()<0)throw new Error("Input is negative");this.data=t}static fromString(e){const t=s.fromString(e);return new c(t.toNumber())}toNumber(){return this.data.toNumber()}toString(){return this.data.toString()}}t.Uint53=c;class d{constructor(e){if(e.isNeg())throw new Error("Input is negative");if(e.gt(i))throw new Error("Input exceeds uint64 range");this.data=e}static fromBytesBigEndian(e){return d.fromBytes(e)}static fromBytes(e,t="be"){if(8!==e.length)throw new Error("Invalid input length. Expected 8 bytes.");for(let t=0;t255||e[t]<0)throw new Error("Invalid value in byte. Found: "+e[t]);const n="be"===t?Array.from(e):Array.from(e).reverse();return new d(new o.default(n))}static fromString(e){if(!e.match(/^[0-9]+$/))throw new Error("Invalid string format");return new d(new o.default(e,10,"be"))}static fromNumber(e){if(Number.isNaN(e))throw new Error("Input is not a number");if(!Number.isInteger(e))throw new Error("Input is not an integer");let t;try{t=new o.default(e)}catch(e){throw new Error("Input is not a safe integer")}return new d(t)}toBytesBigEndian(){return Uint8Array.from(this.data.toArray("be",8))}toBytesLittleEndian(){return Uint8Array.from(this.data.toArray("le",8))}toString(){return this.data.toString(10)}toNumber(){return this.data.toNumber()}}t.Uint64=d},8296:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseCoins=void 0;const r=n(6961);t.parseCoins=function(e){return e.replace(/\s/g,"").split(",").filter(Boolean).map((e=>{const t=e.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/);if(!t)throw new Error("Got an invalid coin string");return{amount:r.Uint64.fromString(t[1]).toString(),denom:t[2]}}))}},7358:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeTxRaw=void 0;const r=n(9639);t.decodeTxRaw=function(e){const t=r.TxRaw.decode(e);return{authInfo:r.AuthInfo.decode(t.authInfoBytes),body:r.TxBody.decode(t.bodyBytes),signatures:t.signatures}}},5443:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DirectSecp256k1HdWallet=t.extractKdfConfiguration=void 0;const r=n(3359),o=n(9562),i=n(8972),a=n(5553),s=n(9153),c=n(3580),d="directsecp256k1hdwallet-v1",u={algorithm:"argon2id",params:{outputLength:32,opsLimit:24,memLimitKib:12288}};t.extractKdfConfiguration=function(e){const t=JSON.parse(e);if(!(0,a.isNonNullObject)(t))throw new Error("Root document is not an object.");if(t.type===d)return t.kdf;throw new Error("Unsupported serialization type")};const l={bip39Password:"",hdPaths:[(0,r.makeCosmoshubPath)(0)],prefix:"cosmos"};class A{constructor(e,t){var n,r;const o=null!==(n=t.prefix)&&void 0!==n?n:l.prefix,i=null!==(r=t.hdPaths)&&void 0!==r?r:l.hdPaths;this.secret=e,this.seed=t.seed,this.accounts=i.map((e=>({hdPath:e,prefix:o})))}static async fromMnemonic(e,t={}){const n=new o.EnglishMnemonic(e),r=await o.Bip39.mnemonicToSeed(n,t.bip39Password);return new A(n,{...t,seed:r})}static async generate(e=12,t={}){const n=4*Math.floor(11*e/33),r=o.Random.getBytes(n),i=o.Bip39.encode(r);return A.fromMnemonic(i.toString(),t)}static async deserialize(e,t){const n=JSON.parse(e);if(!(0,a.isNonNullObject)(n))throw new Error("Root document is not an object.");if(n.type===d)return A.deserializeTypeV1(e,t);throw new Error("Unsupported serialization type")}static async deserializeWithEncryptionKey(e,t){const n=JSON.parse(e);if(!(0,a.isNonNullObject)(n))throw new Error("Root document is not an object.");const r=n;if(r.type===d){const e=await(0,c.decrypt)((0,i.fromBase64)(r.data),t,r.encryption),n=JSON.parse((0,i.fromUtf8)(e)),{mnemonic:s,accounts:d}=n;if((0,a.assert)("string"==typeof s),!Array.isArray(d))throw new Error("Property 'accounts' is not an array");if(!d.every((e=>{return t=e,!!(0,a.isNonNullObject)(t)&&"string"==typeof t.hdPath&&"string"==typeof t.prefix;var t})))throw new Error("Account is not in the correct format.");const u=d[0].prefix;if(!d.every((({prefix:e})=>e===u)))throw new Error("Accounts do not all have the same prefix");const l=d.map((({hdPath:e})=>(0,o.stringToPath)(e)));return A.fromMnemonic(s,{hdPaths:l,prefix:u})}throw new Error("Unsupported serialization type")}static async deserializeTypeV1(e,t){const n=JSON.parse(e);if(!(0,a.isNonNullObject)(n))throw new Error("Root document is not an object.");const r=await(0,c.executeKdf)(t,n.kdf);return A.deserializeWithEncryptionKey(e,r)}get mnemonic(){return this.secret.toString()}async getAccounts(){return(await this.getAccountsWithPrivkeys()).map((({algo:e,pubkey:t,address:n})=>({algo:e,pubkey:t,address:n})))}async signDirect(e,t){const n=(await this.getAccountsWithPrivkeys()).find((({address:t})=>t===e));if(void 0===n)throw new Error(`Address ${e} not found in wallet`);const{privkey:i,pubkey:a}=n,c=(0,s.makeSignBytes)(t),d=(0,o.sha256)(c),u=await o.Secp256k1.createSignature(d,i),l=new Uint8Array([...u.r(32),...u.s(32)]);return{signed:t,signature:(0,r.encodeSecp256k1Signature)(a,l)}}async serialize(e){const t=u,n=await(0,c.executeKdf)(e,t);return this.serializeWithEncryptionKey(n,t)}async serializeWithEncryptionKey(e,t){const n={mnemonic:this.mnemonic,accounts:this.accounts.map((({hdPath:e,prefix:t})=>({hdPath:(0,o.pathToString)(e),prefix:t})))},r=(0,i.toUtf8)(JSON.stringify(n)),a={algorithm:c.supportedAlgorithms.xchacha20poly1305Ietf},s=await(0,c.encrypt)(r,e,a),u={type:d,kdf:t,encryption:a,data:(0,i.toBase64)(s)};return JSON.stringify(u)}async getKeyPair(e){const{privkey:t}=o.Slip10.derivePath(o.Slip10Curve.Secp256k1,this.seed,e),{pubkey:n}=await o.Secp256k1.makeKeypair(t);return{privkey:t,pubkey:o.Secp256k1.compressPubkey(n)}}async getAccountsWithPrivkeys(){return Promise.all(this.accounts.map((async({hdPath:e,prefix:t})=>{const{privkey:n,pubkey:o}=await this.getKeyPair(e);return{algo:"secp256k1",privkey:n,pubkey:o,address:(0,i.toBech32)(t,(0,r.rawSecp256k1PubkeyToRawAddress)(o))}})))}}t.DirectSecp256k1HdWallet=A},4134:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DirectSecp256k1Wallet=void 0;const r=n(3359),o=n(9562),i=n(8972),a=n(9153);class s{constructor(e,t,n){this.privkey=e,this.pubkey=t,this.prefix=n}static async fromKey(e,t="cosmos"){const n=(await o.Secp256k1.makeKeypair(e)).pubkey;return new s(e,o.Secp256k1.compressPubkey(n),t)}get address(){return(0,i.toBech32)(this.prefix,(0,r.rawSecp256k1PubkeyToRawAddress)(this.pubkey))}async getAccounts(){return[{algo:"secp256k1",address:this.address,pubkey:this.pubkey}]}async signDirect(e,t){const n=(0,a.makeSignBytes)(t);if(e!==this.address)throw new Error(`Address ${e} not found in wallet`);const i=(0,o.sha256)(n),s=await o.Secp256k1.createSignature(i,this.privkey),c=new Uint8Array([...s.r(32),...s.s(32)]);return{signed:t,signature:(0,r.encodeSecp256k1Signature)(this.pubkey,c)}}}t.DirectSecp256k1Wallet=s},4087:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.coins=t.coin=t.executeKdf=t.makeSignDoc=t.makeSignBytes=t.makeAuthInfoBytes=t.isOfflineDirectSigner=t.Registry=t.isTxBodyEncodeObject=t.isTsProtoGeneratedType=t.isPbjsGeneratedType=t.encodePubkey=t.decodePubkey=t.makeCosmoshubPath=t.DirectSecp256k1Wallet=t.extractKdfConfiguration=t.DirectSecp256k1HdWallet=t.decodeTxRaw=t.parseCoins=void 0;var r=n(8296);Object.defineProperty(t,"parseCoins",{enumerable:!0,get:function(){return r.parseCoins}});var o=n(7358);Object.defineProperty(t,"decodeTxRaw",{enumerable:!0,get:function(){return o.decodeTxRaw}});var i=n(5443);Object.defineProperty(t,"DirectSecp256k1HdWallet",{enumerable:!0,get:function(){return i.DirectSecp256k1HdWallet}}),Object.defineProperty(t,"extractKdfConfiguration",{enumerable:!0,get:function(){return i.extractKdfConfiguration}});var a=n(4134);Object.defineProperty(t,"DirectSecp256k1Wallet",{enumerable:!0,get:function(){return a.DirectSecp256k1Wallet}});var s=n(8549);Object.defineProperty(t,"makeCosmoshubPath",{enumerable:!0,get:function(){return s.makeCosmoshubPath}});var c=n(4594);Object.defineProperty(t,"decodePubkey",{enumerable:!0,get:function(){return c.decodePubkey}}),Object.defineProperty(t,"encodePubkey",{enumerable:!0,get:function(){return c.encodePubkey}});var d=n(9030);Object.defineProperty(t,"isPbjsGeneratedType",{enumerable:!0,get:function(){return d.isPbjsGeneratedType}}),Object.defineProperty(t,"isTsProtoGeneratedType",{enumerable:!0,get:function(){return d.isTsProtoGeneratedType}}),Object.defineProperty(t,"isTxBodyEncodeObject",{enumerable:!0,get:function(){return d.isTxBodyEncodeObject}}),Object.defineProperty(t,"Registry",{enumerable:!0,get:function(){return d.Registry}});var u=n(1183);Object.defineProperty(t,"isOfflineDirectSigner",{enumerable:!0,get:function(){return u.isOfflineDirectSigner}});var l=n(9153);Object.defineProperty(t,"makeAuthInfoBytes",{enumerable:!0,get:function(){return l.makeAuthInfoBytes}}),Object.defineProperty(t,"makeSignBytes",{enumerable:!0,get:function(){return l.makeSignBytes}}),Object.defineProperty(t,"makeSignDoc",{enumerable:!0,get:function(){return l.makeSignDoc}});var A=n(3580);Object.defineProperty(t,"executeKdf",{enumerable:!0,get:function(){return A.executeKdf}});var f=n(3359);Object.defineProperty(t,"coin",{enumerable:!0,get:function(){return f.coin}}),Object.defineProperty(t,"coins",{enumerable:!0,get:function(){return f.coins}})},8549:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeCosmoshubPath=void 0;const r=n(9562);t.makeCosmoshubPath=function(e){return[r.Slip10RawIndex.hardened(44),r.Slip10RawIndex.hardened(118),r.Slip10RawIndex.hardened(0),r.Slip10RawIndex.normal(0),r.Slip10RawIndex.normal(e)]}},4594:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodePubkey=t.encodePubkey=void 0;const r=n(3359),o=n(8972),i=n(6961),a=n(479),s=n(7228),c=n(3862);function d(e){if("/cosmos.crypto.secp256k1.PubKey"===e.typeUrl){const{key:t}=s.PubKey.decode(e.value);return(0,r.encodeSecp256k1Pubkey)(t)}throw new Error(`Pubkey type_url ${e.typeUrl} not recognized as single public key type`)}t.encodePubkey=function e(t){if((0,r.isSecp256k1Pubkey)(t)){const e=s.PubKey.fromPartial({key:(0,o.fromBase64)(t.value)});return c.Any.fromPartial({typeUrl:"/cosmos.crypto.secp256k1.PubKey",value:Uint8Array.from(s.PubKey.encode(e).finish())})}if((0,r.isMultisigThresholdPubkey)(t)){const n=a.LegacyAminoPubKey.fromPartial({threshold:i.Uint53.fromString(t.value.threshold).toNumber(),publicKeys:t.value.pubkeys.map(e)});return c.Any.fromPartial({typeUrl:"/cosmos.crypto.multisig.LegacyAminoPubKey",value:Uint8Array.from(a.LegacyAminoPubKey.encode(n).finish())})}throw new Error(`Pubkey type ${t.type} not recognized`)},t.decodePubkey=function(e){if(!e||!e.value)return null;switch(e.typeUrl){case"/cosmos.crypto.secp256k1.PubKey":return d(e);case"/cosmos.crypto.multisig.LegacyAminoPubKey":{const{threshold:t,publicKeys:n}=a.LegacyAminoPubKey.decode(e.value);return{type:"tendermint/PubKeyMultisigThreshold",value:{threshold:t.toString(),pubkeys:n.map(d)}}}default:throw new Error(`Pubkey type_url ${e.typeUrl} not recognized`)}}},9030:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Registry=t.isTxBodyEncodeObject=t.isPbjsGeneratedType=t.isTsProtoGeneratedType=void 0;const r=n(8994),o=n(891),i=n(9639),a=n(3862);function s(e){return"function"==typeof e.fromPartial}t.isTsProtoGeneratedType=s,t.isPbjsGeneratedType=function(e){return!s(e)};const c={cosmosCoin:"/cosmos.base.v1beta1.Coin",cosmosMsgSend:"/cosmos.bank.v1beta1.MsgSend",cosmosTxBody:"/cosmos.tx.v1beta1.TxBody",googleAny:"/google.protobuf.Any"};function d(e){return"/cosmos.tx.v1beta1.TxBody"===e.typeUrl}t.isTxBodyEncodeObject=d,t.Registry=class{constructor(e){const{cosmosCoin:t,cosmosMsgSend:n}=c;this.types=e?new Map([...e]):new Map([[t,o.Coin],[n,r.MsgSend]])}register(e,t){this.types.set(e,t)}lookupType(e){return this.types.get(e)}lookupTypeWithError(e){const t=this.lookupType(e);if(!t)throw new Error(`Unregistered type url: ${e}`);return t}encode(e){const{value:t,typeUrl:n}=e;if(d(e))return this.encodeTxBody(t);const r=this.lookupTypeWithError(n),o=s(r)?r.fromPartial(t):r.create(t);return r.encode(o).finish()}encodeAsAny(e){const t=this.encode(e);return a.Any.fromPartial({typeUrl:e.typeUrl,value:t})}encodeTxBody(e){const t=e.messages.map((e=>this.encodeAsAny(e))),n=i.TxBody.fromPartial({...e,messages:t});return i.TxBody.encode(n).finish()}decode({typeUrl:e,value:t}){if(e===c.cosmosTxBody)return this.decodeTxBody(t);const n=this.lookupTypeWithError(e).decode(t);return Object.entries(n).forEach((([e,t])=>{"undefined"!=typeof Buffer&&void 0!==Buffer.isBuffer&&Buffer.isBuffer(t)&&(n[e]=Uint8Array.from(t))})),n}decodeTxBody(e){const t=i.TxBody.decode(e);return{...t,messages:t.messages.map((({typeUrl:e,value:t})=>{if(!e)throw new Error("Missing type_url in Any");if(!t)throw new Error("Missing value in Any");return this.decode({typeUrl:e,value:t})}))}}}},1183:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isOfflineDirectSigner=void 0,t.isOfflineDirectSigner=function(e){return void 0!==e.signDirect}},9153:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.makeSignBytes=t.makeSignDoc=t.makeAuthInfoBytes=void 0;const o=n(2574),i=n(9639),a=r(n(3720));function s(e,t){return e.map((({pubkey:e,sequence:n})=>({publicKey:e,modeInfo:{single:{mode:t}},sequence:a.default.fromNumber(n)})))}t.makeAuthInfoBytes=function(e,t,n,r=o.SignMode.SIGN_MODE_DIRECT){const c={signerInfos:s(e,r),fee:{amount:[...t],gasLimit:a.default.fromNumber(n)}};return i.AuthInfo.encode(i.AuthInfo.fromPartial(c)).finish()},t.makeSignDoc=function(e,t,n,r){return{bodyBytes:e,authInfoBytes:t,chainId:n,accountNumber:a.default.fromNumber(r)}},t.makeSignBytes=function({accountNumber:e,authInfoBytes:t,bodyBytes:n,chainId:r}){const o=i.SignDoc.fromPartial({accountNumber:e,authInfoBytes:t,bodyBytes:n,chainId:r});return i.SignDoc.encode(o).finish()}},3580:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decrypt=t.encrypt=t.supportedAlgorithms=t.executeKdf=t.cosmjsSalt=void 0;const r=n(9562),o=n(8972);t.cosmjsSalt=(0,o.toAscii)("The CosmJS salt."),t.executeKdf=async function(e,n){if("argon2id"===n.algorithm){const o=n.params;if(!(0,r.isArgon2idOptions)(o))throw new Error("Invalid format of argon2id params");return r.Argon2id.execute(e,t.cosmjsSalt,o)}throw new Error("Unsupported KDF algorithm")},t.supportedAlgorithms={xchacha20poly1305Ietf:"xchacha20poly1305-ietf"},t.encrypt=async function(e,n,o){if(o.algorithm===t.supportedAlgorithms.xchacha20poly1305Ietf){const t=r.Random.getBytes(r.xchacha20NonceLength);return new Uint8Array([...t,...await r.Xchacha20poly1305Ietf.encrypt(e,n,t)])}throw new Error(`Unsupported encryption algorithm: '${o.algorithm}'`)},t.decrypt=async function(e,n,o){if(o.algorithm===t.supportedAlgorithms.xchacha20poly1305Ietf){const t=e.slice(0,r.xchacha20NonceLength);return r.Xchacha20poly1305Ietf.decrypt(e.slice(r.xchacha20NonceLength),n,t)}throw new Error(`Unsupported encryption algorithm: '${o.algorithm}'`)}},3830:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StreamingSocket=t.SocketWrapper=t.ReconnectingSocket=t.QueueingStreamingSocket=t.ConnectionStatus=void 0;var r=n(2365);Object.defineProperty(t,"ConnectionStatus",{enumerable:!0,get:function(){return r.ConnectionStatus}}),Object.defineProperty(t,"QueueingStreamingSocket",{enumerable:!0,get:function(){return r.QueueingStreamingSocket}});var o=n(5850);Object.defineProperty(t,"ReconnectingSocket",{enumerable:!0,get:function(){return o.ReconnectingSocket}});var i=n(9320);Object.defineProperty(t,"SocketWrapper",{enumerable:!0,get:function(){return i.SocketWrapper}});var a=n(6794);Object.defineProperty(t,"StreamingSocket",{enumerable:!0,get:function(){return a.StreamingSocket}})},2365:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QueueingStreamingSocket=t.ConnectionStatus=void 0;const r=n(1459),o=n(3813),i=n(6794);var a;!function(e){e[e.Unconnected=0]="Unconnected",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.Disconnected=3]="Disconnected"}(a=t.ConnectionStatus||(t.ConnectionStatus={})),t.QueueingStreamingSocket=class{constructor(e,t=1e4,n){this.queue=[],this.isProcessingQueue=!1,this.url=e,this.timeout=t,this.reconnectedHandler=n;const s={start:e=>this.eventProducerListener=e,stop:()=>this.eventProducerListener=void 0};this.events=o.Stream.create(s),this.connectionStatusProducer=new r.DefaultValueProducer(a.Unconnected),this.connectionStatus=new r.ValueAndUpdates(this.connectionStatusProducer),this.socket=new i.StreamingSocket(this.url,this.timeout),this.socket.events.subscribe({next:e=>{if(!this.eventProducerListener)throw new Error("No event producer listener set");this.eventProducerListener.next(e)},error:()=>this.connectionStatusProducer.update(a.Disconnected)})}connect(){this.connectionStatusProducer.update(a.Connecting),this.socket.connected.then((async()=>(this.connectionStatusProducer.update(a.Connected),this.processQueue())),(()=>this.connectionStatusProducer.update(a.Disconnected))),this.socket.connect()}disconnect(){this.connectionStatusProducer.update(a.Disconnected),this.socket.disconnect()}reconnect(){this.socket=new i.StreamingSocket(this.url,this.timeout),this.socket.events.subscribe({next:e=>{if(!this.eventProducerListener)throw new Error("No event producer listener set");this.eventProducerListener.next(e)},error:()=>this.connectionStatusProducer.update(a.Disconnected)}),this.socket.connected.then((()=>{this.reconnectedHandler&&this.reconnectedHandler()})),this.connect()}getQueueLength(){return this.queue.length}queueRequest(e){this.queue.push(e),this.processQueue()}async processQueue(){if(this.isProcessingQueue||this.connectionStatus.value!==a.Connected)return;let e;for(this.isProcessingQueue=!0;e=this.queue.shift();)try{await this.socket.send(e),this.isProcessingQueue=!1}catch(t){return this.queue.unshift(e),void(this.isProcessingQueue=!1)}}}},5850:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReconnectingSocket=void 0;const r=n(3813),o=n(2365);class i{constructor(e,t=1e4,n){this.unconnected=!0,this.disconnected=!1,this.timeoutIndex=0,this.reconnectTimeout=null;const a={start:e=>this.eventProducerListener=e,stop:()=>this.eventProducerListener=void 0};this.events=r.Stream.create(a),this.socket=new o.QueueingStreamingSocket(e,t,n),this.socket.events.subscribe({next:e=>{this.eventProducerListener&&this.eventProducerListener.next(e)},error:e=>{this.eventProducerListener&&this.eventProducerListener.error(e)}}),this.connectionStatus=this.socket.connectionStatus,this.connectionStatus.updates.subscribe({next:e=>{e===o.ConnectionStatus.Connected&&(this.timeoutIndex=0),e===o.ConnectionStatus.Disconnected&&(this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.reconnectTimeout=setTimeout((()=>this.socket.reconnect()),i.calculateTimeout(this.timeoutIndex++)))}})}static calculateTimeout(e){return Math.min(2**e*100,5e3)}connect(){if(!this.unconnected)throw new Error("Cannot connect: socket has already connected");this.socket.connect(),this.unconnected=!1}disconnect(){if(this.unconnected)throw new Error("Cannot disconnect: socket has not yet connected");this.socket.disconnect(),this.eventProducerListener&&this.eventProducerListener.complete(),this.disconnected=!0}queueRequest(e){if(this.disconnected)throw new Error("Cannot queue request: socket has disconnected");this.socket.queueRequest(e)}}t.ReconnectingSocket=i},9320:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SocketWrapper=void 0;const o=r(n(7030));t.SocketWrapper=class{constructor(e,t,n,r,o,i=1e4){this.closed=!1,this.connected=new Promise(((e,t)=>{this.connectedResolver=e,this.connectedRejecter=t})),this.url=e,this.messageHandler=t,this.errorHandler=n,this.openHandler=r,this.closeHandler=o,this.timeout=i}connect(){const e=new o.default(this.url);e.onerror=e=>{this.clearTimeout(),this.errorHandler&&this.errorHandler(e)},e.onmessage=e=>{this.messageHandler({type:e.type,data:e.data})},e.onopen=e=>{this.clearTimeout(),this.connectedResolver(),this.openHandler&&this.openHandler()},e.onclose=e=>{this.closed=!0,this.closeHandler&&this.closeHandler(e)};const t=Date.now();this.timeoutId=setTimeout((()=>{e.onmessage=()=>0,e.onerror=()=>0,e.onopen=()=>0,e.onclose=()=>0,e.close(),this.socket=void 0;const n=Math.floor(Date.now()-t);this.connectedRejecter(`Connection attempt timed out after ${n} ms`)}),this.timeout),this.socket=e}disconnect(){if(!this.socket)throw new Error("Socket undefined. This must be called after connecting.");switch(this.clearTimeout(),this.socket.readyState){case o.default.OPEN:this.socket.close(1e3);break;case o.default.CLOSED:break;case o.default.CONNECTING:this.socket.onopen=()=>0,this.socket.onclose=()=>0,this.socket.onerror=()=>0,this.socket.onmessage=()=>0,this.socket=void 0,this.closeHandler&&this.closeHandler({wasClean:!1,code:4001});break;case o.default.CLOSING:break;default:throw new Error(`Unknown readyState: ${this.socket.readyState}`)}}async send(e){return new Promise(((t,n)=>{if(!this.socket)throw new Error("Socket undefined. This must be called after connecting.");if(this.closed)throw new Error("Socket was closed, so no data can be sent anymore.");if(this.socket.readyState!==o.default.OPEN)throw new Error("Websocket is not open");"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node?this.socket.send(e,(e=>e?n(e):t())):(this.socket.send(e),t())}))}clearTimeout(){if(!this.timeoutId)throw new Error("Timeout ID not set. This should not happen and usually means connect() was not called.");clearTimeout(this.timeoutId)}}},6794:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StreamingSocket=void 0;const r=n(3813),o=n(9320);t.StreamingSocket=class{constructor(e,t=1e4){this.socket=new o.SocketWrapper(e,(e=>{this.eventProducerListener&&this.eventProducerListener.next(e)}),(e=>{this.eventProducerListener&&this.eventProducerListener.error(e)}),(()=>{}),(e=>{this.eventProducerListener&&(e.wasClean?this.eventProducerListener.complete():this.eventProducerListener.error("Socket was closed unclean"))}),t),this.connected=this.socket.connected;const n={start:e=>this.eventProducerListener=e,stop:()=>this.eventProducerListener=void 0};this.events=r.Stream.create(n)}connect(){this.socket.connect()}disconnect(){this.socket.disconnect()}async send(e){return this.socket.send(e)}}},2538:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.accountFromAny=void 0;const r=n(6961),o=n(4087),i=n(5553),a=n(3487),s=n(5303);function c(e){return r.Uint64.fromString(e.toString())}function d(e){const{address:t,pubKey:n,accountNumber:r,sequence:i}=e;return{address:t,pubkey:(0,o.decodePubkey)(n),accountNumber:c(r).toNumber(),sequence:c(i).toNumber()}}t.accountFromAny=function(e){var t,n,r,o,c,u,l;const{typeUrl:A,value:f}=e;switch(A){case"/cosmos.auth.v1beta1.BaseAccount":return d(a.BaseAccount.decode(f));case"/cosmos.auth.v1beta1.ModuleAccount":{const e=a.ModuleAccount.decode(f).baseAccount;return(0,i.assert)(e),d(e)}case"/cosmos.vesting.v1beta1.BaseVestingAccount":{const e=null===(t=s.BaseVestingAccount.decode(f))||void 0===t?void 0:t.baseAccount;return(0,i.assert)(e),d(e)}case"/cosmos.vesting.v1beta1.ContinuousVestingAccount":{const e=null===(r=null===(n=s.ContinuousVestingAccount.decode(f))||void 0===n?void 0:n.baseVestingAccount)||void 0===r?void 0:r.baseAccount;return(0,i.assert)(e),d(e)}case"/cosmos.vesting.v1beta1.DelayedVestingAccount":{const e=null===(c=null===(o=s.DelayedVestingAccount.decode(f))||void 0===o?void 0:o.baseVestingAccount)||void 0===c?void 0:c.baseAccount;return(0,i.assert)(e),d(e)}case"/cosmos.vesting.v1beta1.PeriodicVestingAccount":{const e=null===(l=null===(u=s.PeriodicVestingAccount.decode(f))||void 0===u?void 0:u.baseVestingAccount)||void 0===l?void 0:l.baseAccount;return(0,i.assert)(e),d(e)}default:throw new Error(`Unsupported type: '${A}'`)}}},2552:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isAminoMsgTransfer=t.isAminoMsgUndelegate=t.isAminoMsgBeginRedelegate=t.isAminoMsgDelegate=t.isAminoMsgEditValidator=t.isAminoMsgCreateValidator=t.isAminoMsgUnjail=t.isAminoMsgDeposit=t.isAminoMsgVote=t.isAminoMsgSubmitProposal=t.isAminoMsgSubmitEvidence=t.isAminoMsgFundCommunityPool=t.isAminoMsgWithdrawValidatorCommission=t.isAminoMsgWithdrawDelegatorReward=t.isAminoMsgSetWithdrawAddress=t.isAminoMsgVerifyInvariant=t.isAminoMsgMultiSend=t.isAminoMsgSend=void 0,t.isAminoMsgSend=function(e){return"cosmos-sdk/MsgSend"===e.type},t.isAminoMsgMultiSend=function(e){return"cosmos-sdk/MsgMultiSend"===e.type},t.isAminoMsgVerifyInvariant=function(e){return"cosmos-sdk/MsgVerifyInvariant"===e.type},t.isAminoMsgSetWithdrawAddress=function(e){return"cosmos-sdk/MsgModifyWithdrawAddress"===e.type},t.isAminoMsgWithdrawDelegatorReward=function(e){return"cosmos-sdk/MsgWithdrawDelegationReward"===e.type},t.isAminoMsgWithdrawValidatorCommission=function(e){return"cosmos-sdk/MsgWithdrawValidatorCommission"===e.type},t.isAminoMsgFundCommunityPool=function(e){return"cosmos-sdk/MsgFundCommunityPool"===e.type},t.isAminoMsgSubmitEvidence=function(e){return"cosmos-sdk/MsgSubmitEvidence"===e.type},t.isAminoMsgSubmitProposal=function(e){return"cosmos-sdk/MsgSubmitProposal"===e.type},t.isAminoMsgVote=function(e){return"cosmos-sdk/MsgVote"===e.type},t.isAminoMsgDeposit=function(e){return"cosmos-sdk/MsgDeposit"===e.type},t.isAminoMsgUnjail=function(e){return"cosmos-sdk/MsgUnjail"===e.type},t.isAminoMsgCreateValidator=function(e){return"cosmos-sdk/MsgCreateValidator"===e.type},t.isAminoMsgEditValidator=function(e){return"cosmos-sdk/MsgEditValidator"===e.type},t.isAminoMsgDelegate=function(e){return"cosmos-sdk/MsgDelegate"===e.type},t.isAminoMsgBeginRedelegate=function(e){return"cosmos-sdk/MsgBeginRedelegate"===e.type},t.isAminoMsgUndelegate=function(e){return"cosmos-sdk/MsgUndelegate"===e.type},t.isAminoMsgTransfer=function(e){return"cosmos-sdk/MsgTransfer"===e.type}},6111:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AminoTypes=void 0;const o=n(3359),i=n(8972),a=n(5553),s=n(9876),c=n(3862),d=r(n(3720));function u(e){if("string"==typeof e)return""===e?void 0:e;if("number"==typeof e)return 0===e?void 0:e;if(d.default.isLong(e))return e.isZero()?void 0:e;throw new Error(`Got unsupported type '${typeof e}'`)}function l(e){return"string"!=typeof e[1]}t.AminoTypes=class{constructor({prefix:e,additions:t={}}){const n=function(e){return{"/cosmos.authz.v1beta1.MsgGrant":"not_supported_by_chain","/cosmos.authz.v1beta1.MsgExec":"not_supported_by_chain","/cosmos.authz.v1beta1.MsgRevoke":"not_supported_by_chain","/cosmos.bank.v1beta1.MsgSend":{aminoType:"cosmos-sdk/MsgSend",toAmino:({fromAddress:e,toAddress:t,amount:n})=>({from_address:e,to_address:t,amount:[...n]}),fromAmino:({from_address:e,to_address:t,amount:n})=>({fromAddress:e,toAddress:t,amount:[...n]})},"/cosmos.bank.v1beta1.MsgMultiSend":{aminoType:"cosmos-sdk/MsgMultiSend",toAmino:({inputs:e,outputs:t})=>({inputs:e.map((e=>({address:e.address,coins:[...e.coins]}))),outputs:t.map((e=>({address:e.address,coins:[...e.coins]})))}),fromAmino:({inputs:e,outputs:t})=>({inputs:e.map((e=>({address:e.address,coins:[...e.coins]}))),outputs:t.map((e=>({address:e.address,coins:[...e.coins]})))})},"/cosmos.distribution.v1beta1.MsgFundCommunityPool":{aminoType:"cosmos-sdk/MsgFundCommunityPool",toAmino:({amount:e,depositor:t})=>({amount:[...e],depositor:t}),fromAmino:({amount:e,depositor:t})=>({amount:[...e],depositor:t})},"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress":{aminoType:"cosmos-sdk/MsgModifyWithdrawAddress",toAmino:({delegatorAddress:e,withdrawAddress:t})=>({delegator_address:e,withdraw_address:t}),fromAmino:({delegator_address:e,withdraw_address:t})=>({delegatorAddress:e,withdrawAddress:t})},"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward":{aminoType:"cosmos-sdk/MsgWithdrawDelegationReward",toAmino:({delegatorAddress:e,validatorAddress:t})=>({delegator_address:e,validator_address:t}),fromAmino:({delegator_address:e,validator_address:t})=>({delegatorAddress:e,validatorAddress:t})},"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission":{aminoType:"cosmos-sdk/MsgWithdrawValidatorCommission",toAmino:({validatorAddress:e})=>({validator_address:e}),fromAmino:({validator_address:e})=>({validatorAddress:e})},"/cosmos.gov.v1beta1.MsgDeposit":{aminoType:"cosmos-sdk/MsgDeposit",toAmino:({amount:e,depositor:t,proposalId:n})=>({amount:e,depositor:t,proposal_id:n.toString()}),fromAmino:({amount:e,depositor:t,proposal_id:n})=>({amount:Array.from(e),depositor:t,proposalId:d.default.fromString(n)})},"/cosmos.gov.v1beta1.MsgVote":{aminoType:"cosmos-sdk/MsgVote",toAmino:({option:e,proposalId:t,voter:n})=>({option:e,proposal_id:t.toString(),voter:n}),fromAmino:({option:e,proposal_id:t,voter:n})=>({option:(0,s.voteOptionFromJSON)(e),proposalId:d.default.fromString(t),voter:n})},"/cosmos.gov.v1beta1.MsgSubmitProposal":{aminoType:"cosmos-sdk/MsgSubmitProposal",toAmino:({initialDeposit:e,proposer:t,content:n})=>{let r;switch((0,a.assertDefinedAndNotNull)(n),n.typeUrl){case"/cosmos.gov.v1beta1.TextProposal":{const e=s.TextProposal.decode(n.value);r={type:"cosmos-sdk/TextProposal",value:{description:e.description,title:e.title}};break}default:throw new Error(`Unsupported proposal type: '${n.typeUrl}'`)}return{initial_deposit:e,proposer:t,content:r}},fromAmino:({initial_deposit:e,proposer:t,content:n})=>{let r;switch(n.type){case"cosmos-sdk/TextProposal":{const{value:e}=n;(0,a.assert)((0,a.isNonNullObject)(e));const{title:t,description:o}=e;(0,a.assert)("string"==typeof t),(0,a.assert)("string"==typeof o),r=c.Any.fromPartial({typeUrl:"/cosmos.gov.v1beta1.TextProposal",value:s.TextProposal.encode(s.TextProposal.fromPartial({title:t,description:o})).finish()});break}default:throw new Error(`Unsupported proposal type: '${n.type}'`)}return{initialDeposit:Array.from(e),proposer:t,content:r}}},"/cosmos.staking.v1beta1.MsgBeginRedelegate":{aminoType:"cosmos-sdk/MsgBeginRedelegate",toAmino:({delegatorAddress:e,validatorSrcAddress:t,validatorDstAddress:n,amount:r})=>((0,a.assertDefinedAndNotNull)(r,"missing amount"),{delegator_address:e,validator_src_address:t,validator_dst_address:n,amount:r}),fromAmino:({delegator_address:e,validator_src_address:t,validator_dst_address:n,amount:r})=>({delegatorAddress:e,validatorSrcAddress:t,validatorDstAddress:n,amount:r})},"/cosmos.staking.v1beta1.MsgCreateValidator":{aminoType:"cosmos-sdk/MsgCreateValidator",toAmino:({description:t,commission:n,minSelfDelegation:r,delegatorAddress:s,validatorAddress:c,pubkey:d,value:u})=>((0,a.assertDefinedAndNotNull)(t,"missing description"),(0,a.assertDefinedAndNotNull)(n,"missing commission"),(0,a.assertDefinedAndNotNull)(d,"missing pubkey"),(0,a.assertDefinedAndNotNull)(u,"missing value"),{description:{moniker:t.moniker,identity:t.identity,website:t.website,security_contact:t.securityContact,details:t.details},commission:{rate:n.rate,max_rate:n.maxRate,max_change_rate:n.maxChangeRate},min_self_delegation:r,delegator_address:s,validator_address:c,pubkey:(0,o.encodeBech32Pubkey)({type:"tendermint/PubKeySecp256k1",value:(0,i.toBase64)(d.value)},e),value:u}),fromAmino:({description:e,commission:t,min_self_delegation:n,delegator_address:r,validator_address:a,pubkey:s,value:c})=>{const d=(0,o.decodeBech32Pubkey)(s);if("tendermint/PubKeySecp256k1"!==d.type)throw new Error("Only Secp256k1 public keys are supported");return{description:{moniker:e.moniker,identity:e.identity,website:e.website,securityContact:e.security_contact,details:e.details},commission:{rate:t.rate,maxRate:t.max_rate,maxChangeRate:t.max_change_rate},minSelfDelegation:n,delegatorAddress:r,validatorAddress:a,pubkey:{typeUrl:"/cosmos.crypto.secp256k1.PubKey",value:(0,i.fromBase64)(d.value)},value:c}}},"/cosmos.staking.v1beta1.MsgDelegate":{aminoType:"cosmos-sdk/MsgDelegate",toAmino:({delegatorAddress:e,validatorAddress:t,amount:n})=>((0,a.assertDefinedAndNotNull)(n,"missing amount"),{delegator_address:e,validator_address:t,amount:n}),fromAmino:({delegator_address:e,validator_address:t,amount:n})=>({delegatorAddress:e,validatorAddress:t,amount:n})},"/cosmos.staking.v1beta1.MsgEditValidator":{aminoType:"cosmos-sdk/MsgEditValidator",toAmino:({description:e,commissionRate:t,minSelfDelegation:n,validatorAddress:r})=>((0,a.assertDefinedAndNotNull)(e,"missing description"),{description:{moniker:e.moniker,identity:e.identity,website:e.website,security_contact:e.securityContact,details:e.details},commission_rate:t,min_self_delegation:n,validator_address:r}),fromAmino:({description:e,commission_rate:t,min_self_delegation:n,validator_address:r})=>({description:{moniker:e.moniker,identity:e.identity,website:e.website,securityContact:e.security_contact,details:e.details},commissionRate:t,minSelfDelegation:n,validatorAddress:r})},"/cosmos.staking.v1beta1.MsgUndelegate":{aminoType:"cosmos-sdk/MsgUndelegate",toAmino:({delegatorAddress:e,validatorAddress:t,amount:n})=>((0,a.assertDefinedAndNotNull)(n,"missing amount"),{delegator_address:e,validator_address:t,amount:n}),fromAmino:({delegator_address:e,validator_address:t,amount:n})=>({delegatorAddress:e,validatorAddress:t,amount:n})},"/ibc.applications.transfer.v1.MsgTransfer":{aminoType:"cosmos-sdk/MsgTransfer",toAmino:({sourcePort:e,sourceChannel:t,token:n,sender:r,receiver:o,timeoutHeight:i,timeoutTimestamp:a})=>{var s,c,d;return{source_port:e,source_channel:t,token:n,sender:r,receiver:o,timeout_height:i?{revision_height:null===(s=u(i.revisionHeight))||void 0===s?void 0:s.toString(),revision_number:null===(c=u(i.revisionNumber))||void 0===c?void 0:c.toString()}:{},timeout_timestamp:null===(d=u(a))||void 0===d?void 0:d.toString()}},fromAmino:({source_port:e,source_channel:t,token:n,sender:r,receiver:o,timeout_height:i,timeout_timestamp:a})=>({sourcePort:e,sourceChannel:t,token:n,sender:r,receiver:o,timeoutHeight:i?{revisionHeight:d.default.fromString(i.revision_height||"0",!0),revisionNumber:d.default.fromString(i.revision_number||"0",!0)}:void 0,timeoutTimestamp:d.default.fromString(a||"0",!0)})},"/cosmos.feegrant.v1beta1.MsgGrantAllowance":"not_supported_by_chain","/cosmos.feegrant.v1beta1.MsgRevokeAllowance":"not_supported_by_chain"}}(e);this.register={...n,...t}}toAmino({typeUrl:e,value:t}){const n=this.register[e];if("not_supported_by_chain"===n)throw new Error(`The message type '${e}' cannot be signed using the Amino JSON sign mode because this is not supported by chain.`);if(!n)throw new Error(`Type URL '${e}' does not exist in the Amino message type register. If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.`);return{type:n.aminoType,value:n.toAmino(t)}}fromAmino({type:e,value:t}){const n=Object.entries(this.register).filter(l).filter((([t,{aminoType:n}])=>n===e));switch(n.length){case 0:throw new Error(`Amino type identifier '${e}' does not exist in the Amino message type register. If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.`);case 1:{const[e,r]=n[0];return{typeUrl:e,value:r.fromAmino(t)}}default:throw new Error(`Multiple types are registered with Amino type identifier '${e}': '`+n.map((([e,t])=>e)).sort().join("', '")+"'. Thus fromAmino cannot be performed.")}}}},3357:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isMsgVoteEncodeObject=t.isMsgSubmitProposalEncodeObject=t.isMsgDepositEncodeObject=t.isMsgTransferEncodeObject=t.isMsgWithdrawDelegatorRewardEncodeObject=t.isMsgUndelegateEncodeObject=t.isMsgDelegateEncodeObject=t.isMsgSendEncodeObject=void 0,t.isMsgSendEncodeObject=function(e){return"/cosmos.bank.v1beta1.MsgSend"===e.typeUrl},t.isMsgDelegateEncodeObject=function(e){return"/cosmos.staking.v1beta1.MsgDelegate"===e.typeUrl},t.isMsgUndelegateEncodeObject=function(e){return"/cosmos.staking.v1beta1.MsgUndelegate"===e.typeUrl},t.isMsgWithdrawDelegatorRewardEncodeObject=function(e){return"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward"===e.typeUrl},t.isMsgTransferEncodeObject=function(e){return"/ibc.applications.transfer.v1.MsgTransfer"===e.typeUrl},t.isMsgDepositEncodeObject=function(e){return"/cosmos.gov.v1beta1.MsgDeposit"===e.typeUrl},t.isMsgSubmitProposalEncodeObject=function(e){return"/cosmos.gov.v1beta1.MsgSubmitProposal"===e.typeUrl},t.isMsgVoteEncodeObject=function(e){return"/cosmos.gov.v1beta1.MsgVote"===e.typeUrl}},1371:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calculateFee=t.GasPrice=void 0;const r=n(6961),o=n(4087);class i{constructor(e,t){this.amount=e,this.denom=t}static fromString(e){const t=e.match(/^([0-9.]+)([a-z][a-z0-9]*)$/i);if(!t)throw new Error("Invalid gas price string");const[n,o,a]=t;!function(e){if(e.length<3||e.length>128)throw new Error("Denom must be between 3 and 128 characters")}(a);const s=r.Decimal.fromUserInput(o,18);return new i(s,a)}toString(){return this.amount.toString()+this.denom}}t.GasPrice=i,t.calculateFee=function(e,t){const n="string"==typeof t?i.fromString(t):t,{denom:a,amount:s}=n,c=Math.ceil(s.multiply(new r.Uint53(e)).toFloatApproximation());return{amount:(0,o.coins)(c,a),gas:e.toString()}}},4658:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.assertIsDeliverTxSuccess=t.assertIsDeliverTxFailure=t.SigningStargateClient=t.defaultRegistryTypes=t.isSearchByTagsQuery=t.isSearchBySentFromOrToQuery=t.isSearchByHeightQuery=t.setupTxExtension=t.setupStakingExtension=t.setupMintExtension=t.setupIbcExtension=t.setupGovExtension=t.setupDistributionExtension=t.setupBankExtension=t.setupAuthExtension=t.QueryClient=t.decodeCosmosSdkDecFromProto=t.createProtobufRpcClient=t.createPagination=t.makeMultisignedTx=t.logs=t.GasPrice=t.calculateFee=t.isMsgWithdrawDelegatorRewardEncodeObject=t.isMsgVoteEncodeObject=t.isMsgUndelegateEncodeObject=t.isMsgTransferEncodeObject=t.isMsgSubmitProposalEncodeObject=t.isMsgSendEncodeObject=t.isMsgDepositEncodeObject=t.isMsgDelegateEncodeObject=t.AminoTypes=t.isAminoMsgWithdrawValidatorCommission=t.isAminoMsgWithdrawDelegatorReward=t.isAminoMsgVote=t.isAminoMsgVerifyInvariant=t.isAminoMsgUnjail=t.isAminoMsgUndelegate=t.isAminoMsgSubmitProposal=t.isAminoMsgSubmitEvidence=t.isAminoMsgSetWithdrawAddress=t.isAminoMsgSend=t.isAminoMsgMultiSend=t.isAminoMsgFundCommunityPool=t.isAminoMsgEditValidator=t.isAminoMsgDeposit=t.isAminoMsgDelegate=t.isAminoMsgCreateValidator=t.isAminoMsgBeginRedelegate=t.accountFromAny=void 0,t.parseCoins=t.makeCosmoshubPath=t.coins=t.coin=t.TimeoutError=t.StargateClient=t.isDeliverTxSuccess=t.isDeliverTxFailure=void 0;var a=n(2538);Object.defineProperty(t,"accountFromAny",{enumerable:!0,get:function(){return a.accountFromAny}});var s=n(2552);Object.defineProperty(t,"isAminoMsgBeginRedelegate",{enumerable:!0,get:function(){return s.isAminoMsgBeginRedelegate}}),Object.defineProperty(t,"isAminoMsgCreateValidator",{enumerable:!0,get:function(){return s.isAminoMsgCreateValidator}}),Object.defineProperty(t,"isAminoMsgDelegate",{enumerable:!0,get:function(){return s.isAminoMsgDelegate}}),Object.defineProperty(t,"isAminoMsgDeposit",{enumerable:!0,get:function(){return s.isAminoMsgDeposit}}),Object.defineProperty(t,"isAminoMsgEditValidator",{enumerable:!0,get:function(){return s.isAminoMsgEditValidator}}),Object.defineProperty(t,"isAminoMsgFundCommunityPool",{enumerable:!0,get:function(){return s.isAminoMsgFundCommunityPool}}),Object.defineProperty(t,"isAminoMsgMultiSend",{enumerable:!0,get:function(){return s.isAminoMsgMultiSend}}),Object.defineProperty(t,"isAminoMsgSend",{enumerable:!0,get:function(){return s.isAminoMsgSend}}),Object.defineProperty(t,"isAminoMsgSetWithdrawAddress",{enumerable:!0,get:function(){return s.isAminoMsgSetWithdrawAddress}}),Object.defineProperty(t,"isAminoMsgSubmitEvidence",{enumerable:!0,get:function(){return s.isAminoMsgSubmitEvidence}}),Object.defineProperty(t,"isAminoMsgSubmitProposal",{enumerable:!0,get:function(){return s.isAminoMsgSubmitProposal}}),Object.defineProperty(t,"isAminoMsgUndelegate",{enumerable:!0,get:function(){return s.isAminoMsgUndelegate}}),Object.defineProperty(t,"isAminoMsgUnjail",{enumerable:!0,get:function(){return s.isAminoMsgUnjail}}),Object.defineProperty(t,"isAminoMsgVerifyInvariant",{enumerable:!0,get:function(){return s.isAminoMsgVerifyInvariant}}),Object.defineProperty(t,"isAminoMsgVote",{enumerable:!0,get:function(){return s.isAminoMsgVote}}),Object.defineProperty(t,"isAminoMsgWithdrawDelegatorReward",{enumerable:!0,get:function(){return s.isAminoMsgWithdrawDelegatorReward}}),Object.defineProperty(t,"isAminoMsgWithdrawValidatorCommission",{enumerable:!0,get:function(){return s.isAminoMsgWithdrawValidatorCommission}});var c=n(6111);Object.defineProperty(t,"AminoTypes",{enumerable:!0,get:function(){return c.AminoTypes}});var d=n(3357);Object.defineProperty(t,"isMsgDelegateEncodeObject",{enumerable:!0,get:function(){return d.isMsgDelegateEncodeObject}}),Object.defineProperty(t,"isMsgDepositEncodeObject",{enumerable:!0,get:function(){return d.isMsgDepositEncodeObject}}),Object.defineProperty(t,"isMsgSendEncodeObject",{enumerable:!0,get:function(){return d.isMsgSendEncodeObject}}),Object.defineProperty(t,"isMsgSubmitProposalEncodeObject",{enumerable:!0,get:function(){return d.isMsgSubmitProposalEncodeObject}}),Object.defineProperty(t,"isMsgTransferEncodeObject",{enumerable:!0,get:function(){return d.isMsgTransferEncodeObject}}),Object.defineProperty(t,"isMsgUndelegateEncodeObject",{enumerable:!0,get:function(){return d.isMsgUndelegateEncodeObject}}),Object.defineProperty(t,"isMsgVoteEncodeObject",{enumerable:!0,get:function(){return d.isMsgVoteEncodeObject}}),Object.defineProperty(t,"isMsgWithdrawDelegatorRewardEncodeObject",{enumerable:!0,get:function(){return d.isMsgWithdrawDelegatorRewardEncodeObject}});var u=n(1371);Object.defineProperty(t,"calculateFee",{enumerable:!0,get:function(){return u.calculateFee}}),Object.defineProperty(t,"GasPrice",{enumerable:!0,get:function(){return u.GasPrice}}),t.logs=i(n(2082));var l=n(9625);Object.defineProperty(t,"makeMultisignedTx",{enumerable:!0,get:function(){return l.makeMultisignedTx}});var A=n(1627);Object.defineProperty(t,"createPagination",{enumerable:!0,get:function(){return A.createPagination}}),Object.defineProperty(t,"createProtobufRpcClient",{enumerable:!0,get:function(){return A.createProtobufRpcClient}}),Object.defineProperty(t,"decodeCosmosSdkDecFromProto",{enumerable:!0,get:function(){return A.decodeCosmosSdkDecFromProto}}),Object.defineProperty(t,"QueryClient",{enumerable:!0,get:function(){return A.QueryClient}}),Object.defineProperty(t,"setupAuthExtension",{enumerable:!0,get:function(){return A.setupAuthExtension}}),Object.defineProperty(t,"setupBankExtension",{enumerable:!0,get:function(){return A.setupBankExtension}}),Object.defineProperty(t,"setupDistributionExtension",{enumerable:!0,get:function(){return A.setupDistributionExtension}}),Object.defineProperty(t,"setupGovExtension",{enumerable:!0,get:function(){return A.setupGovExtension}}),Object.defineProperty(t,"setupIbcExtension",{enumerable:!0,get:function(){return A.setupIbcExtension}}),Object.defineProperty(t,"setupMintExtension",{enumerable:!0,get:function(){return A.setupMintExtension}}),Object.defineProperty(t,"setupStakingExtension",{enumerable:!0,get:function(){return A.setupStakingExtension}}),Object.defineProperty(t,"setupTxExtension",{enumerable:!0,get:function(){return A.setupTxExtension}});var f=n(494);Object.defineProperty(t,"isSearchByHeightQuery",{enumerable:!0,get:function(){return f.isSearchByHeightQuery}}),Object.defineProperty(t,"isSearchBySentFromOrToQuery",{enumerable:!0,get:function(){return f.isSearchBySentFromOrToQuery}}),Object.defineProperty(t,"isSearchByTagsQuery",{enumerable:!0,get:function(){return f.isSearchByTagsQuery}});var h=n(9438);Object.defineProperty(t,"defaultRegistryTypes",{enumerable:!0,get:function(){return h.defaultRegistryTypes}}),Object.defineProperty(t,"SigningStargateClient",{enumerable:!0,get:function(){return h.SigningStargateClient}});var p=n(6499);Object.defineProperty(t,"assertIsDeliverTxFailure",{enumerable:!0,get:function(){return p.assertIsDeliverTxFailure}}),Object.defineProperty(t,"assertIsDeliverTxSuccess",{enumerable:!0,get:function(){return p.assertIsDeliverTxSuccess}}),Object.defineProperty(t,"isDeliverTxFailure",{enumerable:!0,get:function(){return p.isDeliverTxFailure}}),Object.defineProperty(t,"isDeliverTxSuccess",{enumerable:!0,get:function(){return p.isDeliverTxSuccess}}),Object.defineProperty(t,"StargateClient",{enumerable:!0,get:function(){return p.StargateClient}}),Object.defineProperty(t,"TimeoutError",{enumerable:!0,get:function(){return p.TimeoutError}});var g=n(4087);Object.defineProperty(t,"coin",{enumerable:!0,get:function(){return g.coin}}),Object.defineProperty(t,"coins",{enumerable:!0,get:function(){return g.coins}}),Object.defineProperty(t,"makeCosmoshubPath",{enumerable:!0,get:function(){return g.makeCosmoshubPath}}),Object.defineProperty(t,"parseCoins",{enumerable:!0,get:function(){return g.parseCoins}})},2082:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAttribute=t.parseRawLog=t.parseLogs=t.parseLog=t.parseEvent=t.parseAttribute=void 0;const r=n(5553);function o(e){if(!(0,r.isNonNullObject)(e))throw new Error("Attribute must be a non-null object");const{key:t,value:n}=e;if("string"!=typeof t||!t)throw new Error("Attribute's key must be a non-empty string");if("string"!=typeof n&&void 0!==n)throw new Error("Attribute's value must be a string or unset");return{key:t,value:n||""}}function i(e){if(!(0,r.isNonNullObject)(e))throw new Error("Event must be a non-null object");const{type:t,attributes:n}=e;if("string"!=typeof t||""===t)throw new Error("Event type must be a non-empty string");if(!Array.isArray(n))throw new Error("Event's attributes must be an array");return{type:t,attributes:n.map(o)}}function a(e){if(!(0,r.isNonNullObject)(e))throw new Error("Log must be a non-null object");const{msg_index:t,log:n,events:o}=e;if("number"!=typeof t)throw new Error("Log's msg_index must be a number");if("string"!=typeof n)throw new Error("Log's log must be a string");if(!Array.isArray(o))throw new Error("Log's events must be an array");return{msg_index:t,log:n,events:o.map(i)}}function s(e){if(!Array.isArray(e))throw new Error("Logs must be an array");return e.map(a)}t.parseAttribute=o,t.parseEvent=i,t.parseLog=a,t.parseLogs=s,t.parseRawLog=function(e="[]"){const t=JSON.parse(e).map((({events:e},t)=>({msg_index:t,events:e,log:""})));return s(t)},t.findAttribute=function(e,t,n){var r;const o=e.find((()=>!0)),i=null===(r=null==o?void 0:o.events.find((e=>e.type===t)))||void 0===r?void 0:r.attributes.find((e=>e.key===n));if(!i)throw new Error(`Could not find attribute '${n}' in first event of type '${t}' in first log.`);return i}},9625:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.makeMultisignedTx=t.makeCompactBitArray=void 0;const o=n(3359),i=n(8972),a=n(4087),s=n(7381),c=n(2574),d=n(9639),u=n(9639),l=r(n(3720));function A(e){const t=Math.ceil(e.length/8),n=e.length-8*Math.floor(e.length/8),r=new Uint8Array(t);return e.forEach(((e,t)=>{const n=Math.floor(t/8),o=t%8;e&&(r[n]|=1<<7-o)})),s.CompactBitArray.fromPartial({elems:r,extraBitsStored:n})}t.makeCompactBitArray=A,t.makeMultisignedTx=function(e,t,n,r,f){const h=Array.from(f.keys()),p=(0,i.fromBech32)(h[0]).prefix,g=Array(e.value.pubkeys.length).fill(!1),m=new Array;for(let t=0;t({single:{mode:c.SignMode.SIGN_MODE_LEGACY_AMINO_JSON}})))}},sequence:l.default.fromNumber(t)},y=d.AuthInfo.fromPartial({signerInfos:[v],fee:{amount:[...n.amount],gasLimit:l.default.fromString(n.gas)}}),b=d.AuthInfo.encode(y).finish();return u.TxRaw.fromPartial({bodyBytes:r,authInfoBytes:b,signatures:[s.MultiSignature.encode(s.MultiSignature.fromPartial({signatures:m})).finish()]})}},4812:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupAuthExtension=void 0;const r=n(4443),o=n(437);t.setupAuthExtension=function(e){const t=(0,o.createProtobufRpcClient)(e),n=new r.QueryClientImpl(t);return{auth:{account:async e=>{const{account:t}=await n.Account({address:e});return null!=t?t:null}}}}},5536:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupBankExtension=void 0;const r=n(5553),o=n(2916),i=n(437);t.setupBankExtension=function(e){const t=(0,i.createProtobufRpcClient)(e),n=new o.QueryClientImpl(t);return{bank:{balance:async(e,t)=>{const{balance:o}=await n.Balance({address:e,denom:t});return(0,r.assert)(o),o},allBalances:async e=>{const{balances:t}=await n.AllBalances({address:e});return t},totalSupply:async()=>{const{supply:e}=await n.TotalSupply({});return e},supplyOf:async e=>{const{amount:t}=await n.SupplyOf({denom:e});return(0,r.assert)(t),t},denomMetadata:async e=>{const{metadata:t}=await n.DenomMetadata({denom:e});return(0,r.assert)(t),t},denomsMetadata:async()=>{const{metadatas:e}=await n.DenomsMetadata({pagination:void 0});return e}}}}},7382:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupDistributionExtension=void 0;const o=n(6208),i=r(n(3720)),a=n(437);t.setupDistributionExtension=function(e){const t=(0,a.createProtobufRpcClient)(e),n=new o.QueryClientImpl(t);return{distribution:{communityPool:async()=>await n.CommunityPool({}),delegationRewards:async(e,t)=>await n.DelegationRewards({delegatorAddress:e,validatorAddress:t}),delegationTotalRewards:async e=>await n.DelegationTotalRewards({delegatorAddress:e}),delegatorValidators:async e=>await n.DelegatorValidators({delegatorAddress:e}),delegatorWithdrawAddress:async e=>await n.DelegatorWithdrawAddress({delegatorAddress:e}),params:async()=>await n.Params({}),validatorCommission:async e=>await n.ValidatorCommission({validatorAddress:e}),validatorOutstandingRewards:async e=>await n.ValidatorOutstandingRewards({validatorAddress:e}),validatorSlashes:async(e,t,r,o)=>await n.ValidatorSlashes({validatorAddress:e,startingHeight:i.default.fromNumber(t,!0),endingHeight:i.default.fromNumber(r,!0),pagination:(0,a.createPagination)(o)})}}}},466:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupGovExtension=void 0;const r=n(9207),o=n(437);t.setupGovExtension=function(e){const t=(0,o.createProtobufRpcClient)(e),n=new r.QueryClientImpl(t);return{gov:{params:async e=>await n.Params({paramsType:e}),proposals:async(e,t,r,i)=>await n.Proposals({proposalStatus:e,depositor:t,voter:r,pagination:(0,o.createPagination)(i)}),proposal:async e=>await n.Proposal({proposalId:(0,o.longify)(e)}),deposits:async(e,t)=>await n.Deposits({proposalId:(0,o.longify)(e),pagination:(0,o.createPagination)(t)}),deposit:async(e,t)=>await n.Deposit({proposalId:(0,o.longify)(e),depositor:t}),tally:async e=>await n.TallyResult({proposalId:(0,o.longify)(e)}),votes:async(e,t)=>await n.Votes({proposalId:(0,o.longify)(e),pagination:(0,o.createPagination)(t)}),vote:async(e,t)=>await n.Vote({proposalId:(0,o.longify)(e),voter:t})}}}},5815:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupIbcExtension=void 0;const o=n(8972),i=n(6961),a=n(5892),s=n(1787),c=n(6688),d=n(6448),u=n(2329),l=n(1234),A=r(n(3720)),f=n(437);function h(e){if("/ibc.lightclients.tendermint.v1.ClientState"!==(null==e?void 0:e.typeUrl))throw new Error(`Unexpected client state type: ${null==e?void 0:e.typeUrl}`);return l.ClientState.decode(e.value)}t.setupIbcExtension=function(e){const t=(0,f.createProtobufRpcClient)(e),n=new c.QueryClientImpl(t),r=new d.QueryClientImpl(t),p=new u.QueryClientImpl(t),g=new a.QueryClientImpl(t);return{ibc:{channel:{channel:async(e,t)=>n.Channel({portId:e,channelId:t}),channels:async e=>n.Channels({pagination:(0,f.createPagination)(e)}),allChannels:async()=>{var e;const t=[];let r,o;do{r=await n.Channels({pagination:(0,f.createPagination)(o)}),t.push(...r.channels),o=null===(e=r.pagination)||void 0===e?void 0:e.nextKey}while(o&&o.length);return{channels:t,height:r.height}},connectionChannels:async(e,t)=>n.ConnectionChannels({connection:e,pagination:(0,f.createPagination)(t)}),allConnectionChannels:async e=>{var t;const r=[];let o,i;do{o=await n.ConnectionChannels({connection:e,pagination:(0,f.createPagination)(i)}),r.push(...o.channels),i=null===(t=o.pagination)||void 0===t?void 0:t.nextKey}while(i&&i.length);return{channels:r,height:o.height}},clientState:async(e,t)=>n.ChannelClientState({portId:e,channelId:t}),consensusState:async(e,t,r,o)=>n.ChannelConsensusState({portId:e,channelId:t,revisionNumber:A.default.fromNumber(r,!0),revisionHeight:A.default.fromNumber(o,!0)}),packetCommitment:async(e,t,r)=>n.PacketCommitment({portId:e,channelId:t,sequence:r}),packetCommitments:async(e,t,r)=>n.PacketCommitments({channelId:t,portId:e,pagination:(0,f.createPagination)(r)}),allPacketCommitments:async(e,t)=>{var r;const o=[];let i,a;do{i=await n.PacketCommitments({channelId:t,portId:e,pagination:(0,f.createPagination)(a)}),o.push(...i.commitments),a=null===(r=i.pagination)||void 0===r?void 0:r.nextKey}while(a&&a.length);return{commitments:o,height:i.height}},packetReceipt:async(e,t,r)=>n.PacketReceipt({portId:e,channelId:t,sequence:A.default.fromNumber(r,!0)}),packetAcknowledgement:async(e,t,r)=>n.PacketAcknowledgement({portId:e,channelId:t,sequence:A.default.fromNumber(r,!0)}),packetAcknowledgements:async(e,t,r)=>n.PacketAcknowledgements({portId:e,channelId:t,pagination:(0,f.createPagination)(r)}),allPacketAcknowledgements:async(e,t)=>{var r;const o=[];let i,a;do{i=await n.PacketAcknowledgements({channelId:t,portId:e,pagination:(0,f.createPagination)(a)}),o.push(...i.acknowledgements),a=null===(r=i.pagination)||void 0===r?void 0:r.nextKey}while(a&&a.length);return{acknowledgements:o,height:i.height}},unreceivedPackets:async(e,t,r)=>n.UnreceivedPackets({portId:e,channelId:t,packetCommitmentSequences:r.map((e=>A.default.fromNumber(e,!0)))}),unreceivedAcks:async(e,t,r)=>n.UnreceivedAcks({portId:e,channelId:t,packetAckSequences:r.map((e=>A.default.fromNumber(e,!0)))}),nextSequenceReceive:async(e,t)=>n.NextSequenceReceive({portId:e,channelId:t})},client:{state:async e=>r.ClientState({clientId:e}),states:async e=>r.ClientStates({pagination:(0,f.createPagination)(e)}),allStates:async()=>{var e;const t=[];let n,o;do{n=await r.ClientStates({pagination:(0,f.createPagination)(o)}),t.push(...n.clientStates),o=null===(e=n.pagination)||void 0===e?void 0:e.nextKey}while(o&&o.length);return{clientStates:t}},consensusState:async(e,t)=>r.ConsensusState(d.QueryConsensusStateRequest.fromPartial({clientId:e,revisionHeight:void 0!==t?A.default.fromNumber(t,!0):void 0,latestHeight:void 0===t})),consensusStates:async(e,t)=>r.ConsensusStates({clientId:e,pagination:(0,f.createPagination)(t)}),allConsensusStates:async e=>{var t;const n=[];let o,i;do{o=await r.ConsensusStates({clientId:e,pagination:(0,f.createPagination)(i)}),n.push(...o.consensusStates),i=null===(t=o.pagination)||void 0===t?void 0:t.nextKey}while(i&&i.length);return{consensusStates:n}},params:async()=>r.ClientParams({}),stateTm:async e=>h((await r.ClientState({clientId:e})).clientState),statesTm:async e=>{const{clientStates:t}=await r.ClientStates({pagination:(0,f.createPagination)(e)});return t.map((({clientState:e})=>h(e)))},allStatesTm:async()=>{var e;const t=[];let n,o;do{n=await r.ClientStates({pagination:(0,f.createPagination)(o)}),t.push(...n.clientStates),o=null===(e=n.pagination)||void 0===e?void 0:e.nextKey}while(o&&o.length);return t.map((({clientState:e})=>h(e)))},consensusStateTm:async(e,t)=>function(e){if("/ibc.lightclients.tendermint.v1.ConsensusState"!==(null==e?void 0:e.typeUrl))throw new Error(`Unexpected client state type: ${null==e?void 0:e.typeUrl}`);return l.ConsensusState.decode(e.value)}((await r.ConsensusState(d.QueryConsensusStateRequest.fromPartial({clientId:e,revisionHeight:null==t?void 0:t.revisionHeight,revisionNumber:null==t?void 0:t.revisionNumber,latestHeight:void 0===t}))).consensusState)},connection:{connection:async e=>p.Connection({connectionId:e}),connections:async e=>p.Connections({pagination:(0,f.createPagination)(e)}),allConnections:async()=>{var e;const t=[];let n,r;do{n=await p.Connections({pagination:(0,f.createPagination)(r)}),t.push(...n.connections),r=null===(e=n.pagination)||void 0===e?void 0:e.nextKey}while(r&&r.length);return{connections:t,height:n.height}},clientConnections:async e=>p.ClientConnections({clientId:e}),clientState:async e=>p.ConnectionClientState({connectionId:e}),consensusState:async(e,t)=>p.ConnectionConsensusState(u.QueryConnectionConsensusStateRequest.fromPartial({connectionId:e,revisionHeight:A.default.fromNumber(t,!0)}))},transfer:{denomTrace:async e=>g.DenomTrace({hash:e}),denomTraces:async e=>g.DenomTraces({pagination:(0,f.createPagination)(e)}),allDenomTraces:async()=>{var e;const t=[];let n,r;do{n=await g.DenomTraces({pagination:(0,f.createPagination)(r)}),t.push(...n.denomTraces),r=null===(e=n.pagination)||void 0===e?void 0:e.nextKey}while(r&&r.length);return{denomTraces:t}},params:async()=>g.Params({})},verified:{channel:{channel:async(t,n)=>{const r=(0,o.toAscii)(`channelEnds/ports/${t}/channels/${n}`),i=await e.queryVerified("ibc",r);return i.length?s.Channel.decode(i):null},packetCommitment:async(t,n,r)=>{const i=(0,o.toAscii)(`commitments/ports/${t}/channels/${n}/packets/${r}`);return await e.queryVerified("ibc",i)},packetAcknowledgement:async(t,n,r)=>{const i=(0,o.toAscii)(`acks/ports/${t}/channels/${n}/acknowledgements/${r}`);return await e.queryVerified("ibc",i)},nextSequenceReceive:async(t,n)=>{const r=(0,o.toAscii)(`seqAcks/ports/${t}/channels/${n}/nextSequenceAck`),a=await e.queryVerified("ibc",r);return a.length?i.Uint64.fromBytes(a).toNumber():null}}}}}}},1627:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeCosmosSdkDecFromProto=t.createProtobufRpcClient=t.createPagination=t.setupTxExtension=t.setupStakingExtension=t.setupSlashingExtension=t.setupMintExtension=t.setupIbcExtension=t.setupGovExtension=t.setupDistributionExtension=t.setupBankExtension=t.setupAuthExtension=t.QueryClient=void 0;var r=n(6314);Object.defineProperty(t,"QueryClient",{enumerable:!0,get:function(){return r.QueryClient}});var o=n(4812);Object.defineProperty(t,"setupAuthExtension",{enumerable:!0,get:function(){return o.setupAuthExtension}});var i=n(5536);Object.defineProperty(t,"setupBankExtension",{enumerable:!0,get:function(){return i.setupBankExtension}});var a=n(7382);Object.defineProperty(t,"setupDistributionExtension",{enumerable:!0,get:function(){return a.setupDistributionExtension}});var s=n(466);Object.defineProperty(t,"setupGovExtension",{enumerable:!0,get:function(){return s.setupGovExtension}});var c=n(5815);Object.defineProperty(t,"setupIbcExtension",{enumerable:!0,get:function(){return c.setupIbcExtension}});var d=n(9112);Object.defineProperty(t,"setupMintExtension",{enumerable:!0,get:function(){return d.setupMintExtension}});var u=n(1885);Object.defineProperty(t,"setupSlashingExtension",{enumerable:!0,get:function(){return u.setupSlashingExtension}});var l=n(7175);Object.defineProperty(t,"setupStakingExtension",{enumerable:!0,get:function(){return l.setupStakingExtension}});var A=n(3462);Object.defineProperty(t,"setupTxExtension",{enumerable:!0,get:function(){return A.setupTxExtension}});var f=n(437);Object.defineProperty(t,"createPagination",{enumerable:!0,get:function(){return f.createPagination}}),Object.defineProperty(t,"createProtobufRpcClient",{enumerable:!0,get:function(){return f.createProtobufRpcClient}}),Object.defineProperty(t,"decodeCosmosSdkDecFromProto",{enumerable:!0,get:function(){return f.decodeCosmosSdkDecFromProto}})},9112:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupMintExtension=void 0;const r=n(5553),o=n(2879),i=n(4658),a=n(437);t.setupMintExtension=function(e){const t=(0,i.createProtobufRpcClient)(e),n=new o.QueryClientImpl(t);return{mint:{params:async()=>{const{params:e}=await n.Params({});return(0,r.assert)(e),{blocksPerYear:e.blocksPerYear,goalBonded:(0,a.decodeCosmosSdkDecFromProto)(e.goalBonded),inflationMin:(0,a.decodeCosmosSdkDecFromProto)(e.inflationMin),inflationMax:(0,a.decodeCosmosSdkDecFromProto)(e.inflationMax),inflationRateChange:(0,a.decodeCosmosSdkDecFromProto)(e.inflationRateChange),mintDenom:e.mintDenom}},inflation:async()=>{const{inflation:e}=await n.Inflation({});return(0,a.decodeCosmosSdkDecFromProto)(e)},annualProvisions:async()=>{const{annualProvisions:e}=await n.AnnualProvisions({});return(0,a.decodeCosmosSdkDecFromProto)(e)}}}}},6314:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClient=void 0;const r=n(5201),o=n(8972),i=n(1459),a=n(5553);function s(e,t,n){if(e.type!==t)throw new Error(`Op expected to be ${t}, got "${e.type}`);if(!(0,a.arrayContentEquals)(n,e.key))throw new Error(`Proven key different than queried key.\nQuery: ${(0,o.toHex)(n)}\nProven: ${(0,o.toHex)(e.key)}`);return r.ics23.CommitmentProof.decode(e.data)}class c{constructor(e){this.tmClient=e}static withExtensions(e,...t){const n=new c(e),r=t.map((e=>e(n)));for(const e of r){(0,a.assert)((0,a.isNonNullObject)(e),"Extension must be a non-null object");for(const[t,r]of Object.entries(e)){(0,a.assert)((0,a.isNonNullObject)(r),`Module must be a non-null object. Found type ${typeof r} for module "${t}".`);const e=n[t]||{};n[t]={...e,...r}}}return n}async queryVerified(e,t,n){const{height:i,proof:c,value:d}=await this.queryRawProof(e,t,n),u=s(c.ops[0],"ics23:iavl",t),l=s(c.ops[1],"ics23:simple",(0,o.toAscii)(e));(0,a.assert)(l.exist),(0,a.assert)(l.exist.value),d&&0!==d.length?((0,a.assert)(u.exist),(0,a.assert)(u.exist.value),(0,r.verifyExistence)(u.exist,r.iavlSpec,l.exist.value,t,d)):((0,a.assert)(u.nonexist),(0,r.verifyNonExistence)(u.nonexist,r.iavlSpec,l.exist.value,t));const A=await this.getNextHeader(i);return(0,r.verifyExistence)(l.exist,r.tendermintSpec,A.appHash,(0,o.toAscii)(e),l.exist.value),d}async queryRawProof(e,t,n){var r;const{key:i,value:c,height:d,proof:u,code:l,log:A}=await this.tmClient.abciQuery({path:`/store/${e}/key`,data:t,prove:!0,height:n});if(l)throw new Error(`Query failed with (${l}): ${A}`);if(!(0,a.arrayContentEquals)(t,i))throw new Error(`Response key ${(0,o.toHex)(i)} doesn't match query key ${(0,o.toHex)(t)}`);if(!d)throw new Error("No query height returned");if(!u||2!==u.ops.length)throw new Error(`Expected 2 proof ops, got ${null!==(r=null==u?void 0:u.ops.length)&&void 0!==r?r:0}. Are you using stargate?`);return s(u.ops[0],"ics23:iavl",i),s(u.ops[1],"ics23:simple",(0,o.toAscii)(e)),{key:i,value:c,height:d,proof:{ops:[...u.ops]}}}async queryUnverified(e,t){const n=await this.tmClient.abciQuery({path:e,data:t,prove:!1});if(n.code)throw new Error(`Query failed with (${n.code}): ${n.log}`);return n.value}async getNextHeader(e){if((0,a.assertDefined)(e),0===e)throw new Error("Query returned height 0, cannot prove it");const t=e+1;let n,r;try{r=this.tmClient.subscribeNewBlockHeader()}catch(e){}if(r){const e=await(0,i.firstEvent)(r);e.height===t&&(n=e)}for(;!n;){const r=(await this.tmClient.blockchain(e,t)).blockMetas.map((e=>e.header)).find((e=>e.height===t));r?n=r:await(0,a.sleep)(1e3)}return(0,a.assert)(n.height===t,"Got wrong header. This is a bug in the logic above."),n}}t.QueryClient=c},1885:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupSlashingExtension=void 0;const r=n(6701),o=n(437);t.setupSlashingExtension=function(e){const t=(0,o.createProtobufRpcClient)(e),n=new r.QueryClientImpl(t);return{slashing:{signingInfo:async e=>await n.SigningInfo({consAddress:e}),signingInfos:async e=>await n.SigningInfos({pagination:(0,o.createPagination)(e)}),params:async()=>await n.Params({})}}}},7175:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupStakingExtension=void 0;const o=n(4438),i=r(n(3720)),a=n(437);t.setupStakingExtension=function(e){const t=(0,a.createProtobufRpcClient)(e),n=new o.QueryClientImpl(t);return{staking:{delegation:async(e,t)=>await n.Delegation({delegatorAddr:e,validatorAddr:t}),delegatorDelegations:async(e,t)=>await n.DelegatorDelegations({delegatorAddr:e,pagination:(0,a.createPagination)(t)}),delegatorUnbondingDelegations:async(e,t)=>await n.DelegatorUnbondingDelegations({delegatorAddr:e,pagination:(0,a.createPagination)(t)}),delegatorValidator:async(e,t)=>await n.DelegatorValidator({delegatorAddr:e,validatorAddr:t}),delegatorValidators:async(e,t)=>await n.DelegatorValidators({delegatorAddr:e,pagination:(0,a.createPagination)(t)}),historicalInfo:async e=>await n.HistoricalInfo({height:i.default.fromNumber(e,!0)}),params:async()=>await n.Params({}),pool:async()=>await n.Pool({}),redelegations:async(e,t,r,o)=>await n.Redelegations({delegatorAddr:e,srcValidatorAddr:t,dstValidatorAddr:r,pagination:(0,a.createPagination)(o)}),unbondingDelegation:async(e,t)=>await n.UnbondingDelegation({delegatorAddr:e,validatorAddr:t}),validator:async e=>await n.Validator({validatorAddr:e}),validatorDelegations:async(e,t)=>await n.ValidatorDelegations({validatorAddr:e,pagination:(0,a.createPagination)(t)}),validators:async(e,t)=>await n.Validators({status:e,pagination:(0,a.createPagination)(t)}),validatorUnbondingDelegations:async(e,t)=>await n.ValidatorUnbondingDelegations({validatorAddr:e,pagination:(0,a.createPagination)(t)})}}}},3462:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setupTxExtension=void 0;const o=n(4087),i=n(2574),a=n(4616),s=n(9639),c=r(n(3720)),d=n(437);t.setupTxExtension=function(e){const t=(0,d.createProtobufRpcClient)(e),n=new a.ServiceClientImpl(t);return{tx:{getTx:async e=>{const t={hash:e};return await n.GetTx(t)},simulate:async(e,t,r,d)=>{const u=a.SimulateRequest.fromPartial({tx:s.Tx.fromPartial({authInfo:s.AuthInfo.fromPartial({fee:s.Fee.fromPartial({}),signerInfos:[{publicKey:(0,o.encodePubkey)(r),sequence:c.default.fromNumber(d,!0),modeInfo:{single:{mode:i.SignMode.SIGN_MODE_UNSPECIFIED}}}]}),body:s.TxBody.fromPartial({messages:Array.from(e),memo:t}),signatures:[new Uint8Array]}),txBytes:void 0});return await n.Simulate(u)}}}}},437:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeCosmosSdkDecFromProto=t.longify=t.createProtobufRpcClient=t.createPagination=t.toAccAddress=void 0;const o=n(8972),i=n(6961),a=n(9551),s=r(n(3720));t.toAccAddress=function(e){return(0,o.fromBech32)(e).data},t.createPagination=function(e){return e?a.PageRequest.fromPartial({key:e,offset:s.default.fromNumber(0,!0),limit:s.default.fromNumber(0,!0),countTotal:!1}):void 0},t.createProtobufRpcClient=function(e){return{request:(t,n,r)=>{const o=`/${t}/${n}`;return e.queryUnverified(o,r)}}},t.longify=function(e){const t=i.Uint64.fromString(e.toString());return s.default.fromBytesBE([...t.toBytesBigEndian()],!0)},t.decodeCosmosSdkDecFromProto=function(e){const t="string"==typeof e?e:(0,o.fromAscii)(e);return i.Decimal.fromAtomics(t,18)}},494:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isSearchByTagsQuery=t.isSearchBySentFromOrToQuery=t.isSearchByHeightQuery=void 0,t.isSearchByHeightQuery=function(e){return void 0!==e.height},t.isSearchBySentFromOrToQuery=function(e){return void 0!==e.sentFromOrTo},t.isSearchByTagsQuery=function(e){return void 0!==e.tags}},9438:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SigningStargateClient=t.defaultRegistryTypes=void 0;const o=n(3359),i=n(8972),a=n(6961),s=n(4087),c=n(3034),d=n(5553),u=n(895),l=n(8994),A=n(891),f=n(3773),h=n(5192),p=n(750),g=n(422),m=n(2574),v=n(9639),y=n(9385),b=n(7375),I=n(9548),C=n(4848),E=r(n(3720)),w=n(6111),B=n(1371),_=n(6499);function S(){return new s.Registry(t.defaultRegistryTypes)}t.defaultRegistryTypes=[["/cosmos.authz.v1beta1.MsgExec",u.MsgExec],["/cosmos.authz.v1beta1.MsgGrant",u.MsgGrant],["/cosmos.authz.v1beta1.MsgRevoke",u.MsgRevoke],["/cosmos.bank.v1beta1.MsgMultiSend",l.MsgMultiSend],["/cosmos.bank.v1beta1.MsgSend",l.MsgSend],["/cosmos.base.v1beta1.Coin",A.Coin],["/cosmos.distribution.v1beta1.MsgFundCommunityPool",f.MsgFundCommunityPool],["/cosmos.distribution.v1beta1.MsgSetWithdrawAddress",f.MsgSetWithdrawAddress],["/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",f.MsgWithdrawDelegatorReward],["/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission",f.MsgWithdrawValidatorCommission],["/cosmos.feegrant.v1beta1.MsgGrantAllowance",h.MsgGrantAllowance],["/cosmos.feegrant.v1beta1.MsgRevokeAllowance",h.MsgRevokeAllowance],["/cosmos.gov.v1beta1.MsgDeposit",p.MsgDeposit],["/cosmos.gov.v1beta1.MsgSubmitProposal",p.MsgSubmitProposal],["/cosmos.gov.v1beta1.MsgVote",p.MsgVote],["/cosmos.staking.v1beta1.MsgBeginRedelegate",g.MsgBeginRedelegate],["/cosmos.staking.v1beta1.MsgCreateValidator",g.MsgCreateValidator],["/cosmos.staking.v1beta1.MsgDelegate",g.MsgDelegate],["/cosmos.staking.v1beta1.MsgEditValidator",g.MsgEditValidator],["/cosmos.staking.v1beta1.MsgUndelegate",g.MsgUndelegate],["/ibc.applications.transfer.v1.MsgTransfer",y.MsgTransfer],["/ibc.core.channel.v1.MsgAcknowledgement",b.MsgAcknowledgement],["/ibc.core.channel.v1.MsgChannelCloseConfirm",b.MsgChannelCloseConfirm],["/ibc.core.channel.v1.MsgChannelCloseInit",b.MsgChannelCloseInit],["/ibc.core.channel.v1.MsgChannelOpenAck",b.MsgChannelOpenAck],["/ibc.core.channel.v1.MsgChannelOpenConfirm",b.MsgChannelOpenConfirm],["/ibc.core.channel.v1.MsgChannelOpenInit",b.MsgChannelOpenInit],["/ibc.core.channel.v1.MsgChannelOpenTry",b.MsgChannelOpenTry],["/ibc.core.channel.v1.MsgRecvPacket",b.MsgRecvPacket],["/ibc.core.channel.v1.MsgTimeout",b.MsgTimeout],["/ibc.core.channel.v1.MsgTimeoutOnClose",b.MsgTimeoutOnClose],["/ibc.core.client.v1.MsgCreateClient",I.MsgCreateClient],["/ibc.core.client.v1.MsgSubmitMisbehaviour",I.MsgSubmitMisbehaviour],["/ibc.core.client.v1.MsgUpdateClient",I.MsgUpdateClient],["/ibc.core.client.v1.MsgUpgradeClient",I.MsgUpgradeClient],["/ibc.core.connection.v1.MsgConnectionOpenAck",C.MsgConnectionOpenAck],["/ibc.core.connection.v1.MsgConnectionOpenConfirm",C.MsgConnectionOpenConfirm],["/ibc.core.connection.v1.MsgConnectionOpenInit",C.MsgConnectionOpenInit],["/ibc.core.connection.v1.MsgConnectionOpenTry",C.MsgConnectionOpenTry]];class k extends _.StargateClient{constructor(e,t,n){var r;super(e);const o=null!==(r=n.prefix)&&void 0!==r?r:"cosmos",{registry:i=S(),aminoTypes:a=new w.AminoTypes({prefix:o})}=n;this.registry=i,this.aminoTypes=a,this.signer=t,this.broadcastTimeoutMs=n.broadcastTimeoutMs,this.broadcastPollIntervalMs=n.broadcastPollIntervalMs,this.gasPrice=n.gasPrice}static async connectWithSigner(e,t,n={}){const r=await c.Tendermint34Client.connect(e);return new k(r,t,n)}static async offline(e,t={}){return new k(void 0,e,t)}async simulate(e,t,n){const r=t.map((e=>this.registry.encodeAsAny(e))),i=(await this.signer.getAccounts()).find((t=>t.address===e));if(!i)throw new Error("Failed to retrieve account from signer");const s=(0,o.encodeSecp256k1Pubkey)(i.pubkey),{sequence:c}=await this.getSequence(e),{gasInfo:u}=await this.forceGetQueryClient().tx.simulate(r,n,s,c);return(0,d.assertDefined)(u),a.Uint53.fromString(u.gasUsed.toString()).toNumber()}async sendTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:{fromAddress:e,toAddress:t,amount:[...n]}};return this.signAndBroadcast(e,[i],r,o)}async delegateTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.staking.v1beta1.MsgDelegate",value:g.MsgDelegate.fromPartial({delegatorAddress:e,validatorAddress:t,amount:n})};return this.signAndBroadcast(e,[i],r,o)}async undelegateTokens(e,t,n,r,o=""){const i={typeUrl:"/cosmos.staking.v1beta1.MsgUndelegate",value:g.MsgUndelegate.fromPartial({delegatorAddress:e,validatorAddress:t,amount:n})};return this.signAndBroadcast(e,[i],r,o)}async withdrawRewards(e,t,n,r=""){const o={typeUrl:"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward",value:f.MsgWithdrawDelegatorReward.fromPartial({delegatorAddress:e,validatorAddress:t})};return this.signAndBroadcast(e,[o],n,r)}async sendIbcTokens(e,t,n,r,o,i,a,s,c=""){const d=a?E.default.fromNumber(a).multiply(1e9):void 0,u={typeUrl:"/ibc.applications.transfer.v1.MsgTransfer",value:y.MsgTransfer.fromPartial({sourcePort:r,sourceChannel:o,sender:e,receiver:t,token:n,timeoutHeight:i,timeoutTimestamp:d})};return this.signAndBroadcast(e,[u],s,c)}async signAndBroadcast(e,t,n,r=""){let o;if("auto"==n||"number"==typeof n){(0,d.assertDefined)(this.gasPrice,"Gas price must be set in the client options when auto gas is used.");const i=await this.simulate(e,t,r),a="number"==typeof n?n:1.3;o=(0,B.calculateFee)(Math.round(i*a),this.gasPrice)}else o=n;const i=await this.sign(e,t,o,r),a=v.TxRaw.encode(i).finish();return this.broadcastTx(a,this.broadcastTimeoutMs,this.broadcastPollIntervalMs)}async sign(e,t,n,r,o){let i;if(o)i=o;else{const{accountNumber:t,sequence:n}=await this.getSequence(e);i={accountNumber:t,sequence:n,chainId:await this.getChainId()}}return(0,s.isOfflineDirectSigner)(this.signer)?this.signDirect(e,t,n,r,i):this.signAmino(e,t,n,r,i)}async signAmino(e,t,n,r,{accountNumber:c,sequence:u,chainId:l}){(0,d.assert)(!(0,s.isOfflineDirectSigner)(this.signer));const A=(await this.signer.getAccounts()).find((t=>t.address===e));if(!A)throw new Error("Failed to retrieve account from signer");const f=(0,s.encodePubkey)((0,o.encodeSecp256k1Pubkey)(A.pubkey)),h=m.SignMode.SIGN_MODE_LEGACY_AMINO_JSON,p=t.map((e=>this.aminoTypes.toAmino(e))),g=(0,o.makeSignDoc)(p,n,l,r,c,u),{signature:y,signed:b}=await this.signer.signAmino(e,g),I={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{messages:b.msgs.map((e=>this.aminoTypes.fromAmino(e))),memo:b.memo}},C=this.registry.encode(I),E=a.Int53.fromString(b.fee.gas).toNumber(),w=a.Int53.fromString(b.sequence).toNumber(),B=(0,s.makeAuthInfoBytes)([{pubkey:f,sequence:w}],b.fee.amount,E,h);return v.TxRaw.fromPartial({bodyBytes:C,authInfoBytes:B,signatures:[(0,i.fromBase64)(y.signature)]})}async signDirect(e,t,n,r,{accountNumber:c,sequence:u,chainId:l}){(0,d.assert)((0,s.isOfflineDirectSigner)(this.signer));const A=(await this.signer.getAccounts()).find((t=>t.address===e));if(!A)throw new Error("Failed to retrieve account from signer");const f=(0,s.encodePubkey)((0,o.encodeSecp256k1Pubkey)(A.pubkey)),h={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{messages:t,memo:r}},p=this.registry.encode(h),g=a.Int53.fromString(n.gas).toNumber(),m=(0,s.makeAuthInfoBytes)([{pubkey:f,sequence:u}],n.amount,g),y=(0,s.makeSignDoc)(p,m,l,c),{signature:b,signed:I}=await this.signer.signDirect(e,y);return v.TxRaw.fromPartial({bodyBytes:I.bodyBytes,authInfoBytes:I.authInfoBytes,signatures:[(0,i.fromBase64)(b.signature)]})}}t.SigningStargateClient=k},6499:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StargateClient=t.assertIsDeliverTxFailure=t.assertIsDeliverTxSuccess=t.isDeliverTxSuccess=t.isDeliverTxFailure=t.TimeoutError=void 0;const r=n(8972),o=n(6961),i=n(3034),a=n(5553),s=n(2538),c=n(1627),d=n(494);class u extends Error{constructor(e,t){super(e),this.txId=t}}function l(e){return!!e.code}function A(e){return!l(e)}t.TimeoutError=u,t.isDeliverTxFailure=l,t.isDeliverTxSuccess=A,t.assertIsDeliverTxSuccess=function(e){if(l(e))throw new Error(`Error when broadcasting tx ${e.transactionHash} at height ${e.height}. Code: ${e.code}; Raw log: ${e.rawLog}`)},t.assertIsDeliverTxFailure=function(e){if(A(e))throw new Error(`Transaction ${e.transactionHash} did not fail at height ${e.height}. Code: ${e.code}; Raw log: ${e.rawLog}`)};class f{constructor(e){e&&(this.tmClient=e,this.queryClient=c.QueryClient.withExtensions(e,c.setupAuthExtension,c.setupBankExtension,c.setupStakingExtension,c.setupTxExtension))}static async connect(e){const t=await i.Tendermint34Client.connect(e);return new f(t)}getTmClient(){return this.tmClient}forceGetTmClient(){if(!this.tmClient)throw new Error("Tendermint client not available. You cannot use online functionality in offline mode.");return this.tmClient}getQueryClient(){return this.queryClient}forceGetQueryClient(){if(!this.queryClient)throw new Error("Query client not available. You cannot use online functionality in offline mode.");return this.queryClient}async getChainId(){if(!this.chainId){const e=(await this.forceGetTmClient().status()).nodeInfo.network;if(!e)throw new Error("Chain ID must not be empty");this.chainId=e}return this.chainId}async getHeight(){return(await this.forceGetTmClient().status()).syncInfo.latestBlockHeight}async getAccount(e){try{const t=await this.forceGetQueryClient().auth.account(e);return t?(0,s.accountFromAny)(t):null}catch(e){if(/rpc error: code = NotFound/i.test(e.toString()))return null;throw e}}async getSequence(e){const t=await this.getAccount(e);if(!t)throw new Error("Account does not exist on chain. Send some tokens there before trying to query sequence.");return{accountNumber:t.accountNumber,sequence:t.sequence}}async getBlock(e){const t=await this.forceGetTmClient().block(e);return{id:(0,r.toHex)(t.blockId.hash).toUpperCase(),header:{version:{block:new o.Uint53(t.block.header.version.block).toString(),app:new o.Uint53(t.block.header.version.app).toString()},height:t.block.header.height,chainId:t.block.header.chainId,time:(0,i.toRfc3339WithNanoseconds)(t.block.header.time)},txs:t.block.txs}}async getBalance(e,t){return this.forceGetQueryClient().bank.balance(e,t)}async getAllBalances(e){return this.forceGetQueryClient().bank.allBalances(e)}async getDelegation(e,t){var n;let r;try{r=null===(n=(await this.forceGetQueryClient().staking.delegation(e,t)).delegationResponse)||void 0===n?void 0:n.balance}catch(e){if(!e.toString().includes("key not found"))throw e}return r||null}async getTx(e){var t;return null!==(t=(await this.txsQuery(`tx.hash='${e}'`))[0])&&void 0!==t?t:null}async searchTx(e,t={}){const n=t.minHeight||0,r=t.maxHeight||Number.MAX_SAFE_INTEGER;if(r=${n} AND tx.height<=${r}`}let i;if((0,d.isSearchByHeightQuery)(e))i=e.height>=n&&e.height<=r?await this.txsQuery(`tx.height=${e.height}`):[];else if((0,d.isSearchBySentFromOrToQuery)(e)){const t=o(`message.module='bank' AND transfer.sender='${e.sentFromOrTo}'`),n=o(`message.module='bank' AND transfer.recipient='${e.sentFromOrTo}'`),[r,a]=await Promise.all([t,n].map((e=>this.txsQuery(e)))),s=r.map((e=>e.hash));i=[...r,...a.filter((e=>!s.includes(e.hash)))]}else{if(!(0,d.isSearchByTagsQuery)(e))throw new Error("Unknown query type");{const t=o(e.tags.map((e=>`${e.key}='${e.value}'`)).join(" AND "));i=await this.txsQuery(t)}}return i.filter((e=>e.height>=n&&e.height<=r))}disconnect(){this.tmClient&&this.tmClient.disconnect()}async broadcastTx(e,t=6e4,n=3e3){let o=!1;const i=setTimeout((()=>{o=!0}),t),s=async e=>{if(o)throw new u(`Transaction with ID ${e} was submitted but was not yet found on the chain. You might want to check later.`,e);await(0,a.sleep)(n);const t=await this.getTx(e);return t?{code:t.code,height:t.height,rawLog:t.rawLog,transactionHash:e,gasUsed:t.gasUsed,gasWanted:t.gasWanted}:s(e)},c=await this.forceGetTmClient().broadcastTxSync({tx:e});if(c.code)throw new Error(`Broadcasting transaction failed with code ${c.code} (codespace: ${c.codeSpace}). Log: ${c.log}`);const d=(0,r.toHex)(c.hash).toUpperCase();return new Promise(((e,t)=>s(d).then((t=>{clearTimeout(i),e(t)}),(e=>{clearTimeout(i),t(e)}))))}async txsQuery(e){return(await this.forceGetTmClient().txSearchAll({query:e})).txs.map((e=>({height:e.height,hash:(0,r.toHex)(e.hash).toUpperCase(),code:e.result.code,rawLog:e.result.log||"",tx:e.tx,gasUsed:e.result.gasUsed,gasWanted:e.result.gasWanted})))}}t.StargateClient=f},2118:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.concat=void 0;const r=n(3813);t.concat=function(...e){const t=new Array,n=new Array,o=new Set;let i=0;function a(){for(;t.length>0;)t.shift().unsubscribe();n.length=0,o.clear(),i=0}const s={start:r=>{function s(e){for(;;){const t=n[e].shift();if(void 0===t)return;r.next(t)}}function c(){return i>=e.length}e.forEach((e=>n.push([]))),c()?r.complete():e.forEach(((e,d)=>{t.push(e.subscribe({next:e=>{d===i?r.next(e):n[d].push(e)},complete:()=>{for(o.add(d);o.has(i);)s(i),i++;c()?r.complete():s(i)},error:e=>{r.error(e),a()}}))}))},stop:()=>{a()}};return r.Stream.create(s)}},7606:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultValueProducer=void 0,t.DefaultValueProducer=class{constructor(e,t){this.callbacks=t,this.internalValue=e}get value(){return this.internalValue}update(e){this.internalValue=e,this.listener&&this.listener.next(e)}error(e){this.listener&&this.listener.error(e)}start(e){this.listener=e,e.next(this.internalValue),this.callbacks&&this.callbacks.onStarted()}stop(){this.callbacks&&this.callbacks.onStop(),this.listener=void 0}}},2889:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dropDuplicates=void 0,t.dropDuplicates=function(e){return t=>{const n=new Set;return t.filter((t=>!n.has(e(t)))).debug((t=>n.add(e(t))))}}},1459:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.ValueAndUpdates=t.toListPromise=t.fromListPromise=t.firstEvent=t.dropDuplicates=t.DefaultValueProducer=t.concat=void 0;var i=n(2118);Object.defineProperty(t,"concat",{enumerable:!0,get:function(){return i.concat}});var a=n(7606);Object.defineProperty(t,"DefaultValueProducer",{enumerable:!0,get:function(){return a.DefaultValueProducer}});var s=n(2889);Object.defineProperty(t,"dropDuplicates",{enumerable:!0,get:function(){return s.dropDuplicates}});var c=n(3511);Object.defineProperty(t,"firstEvent",{enumerable:!0,get:function(){return c.firstEvent}}),Object.defineProperty(t,"fromListPromise",{enumerable:!0,get:function(){return c.fromListPromise}}),Object.defineProperty(t,"toListPromise",{enumerable:!0,get:function(){return c.toListPromise}}),o(n(165),t);var d=n(3633);Object.defineProperty(t,"ValueAndUpdates",{enumerable:!0,get:function(){return d.ValueAndUpdates}})},3511:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.firstEvent=t.toListPromise=t.fromListPromise=void 0;const r=n(3813);async function o(e,t){return new Promise(((n,r)=>{if(0===t)return void n([]);const o=new Array;e.take(t).subscribe({next:e=>{o.push(e),o.length===t&&n(o)},complete:()=>{r(`Stream completed before all events could be collected. Collected ${o.length}, expected ${t}`)},error:e=>r(e)})}))}t.fromListPromise=function(e){const t={start:t=>{e.then((e=>{for(const n of e)t.next(n);t.complete()})).catch((e=>t.error(e)))},stop:()=>{}};return r.Stream.create(t)},t.toListPromise=o,t.firstEvent=async function(e){return(await o(e,1))[0]}},165:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.lastValue=t.asArray=t.countStream=t.Reducer=void 0;class n{constructor(e,t,n){this.stream=e,this.reducer=t,this.state=n,this.completed=new Promise(((e,t)=>{const n=this.stream.subscribe({next:e=>{this.state=this.reducer(this.state,e)},complete:()=>{e(),n.unsubscribe()},error:e=>{t(e),n.unsubscribe()}})}))}value(){return this.state}async finished(){return this.completed}}function r(e,t){return e+1}function o(e,t){return[...e,t]}function i(e,t){return t}t.Reducer=n,t.countStream=function(e){return new n(e,r,0)},t.asArray=function(e){return new n(e,o,[])},t.lastValue=function(e){return new n(e,i,void 0)}},3633:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValueAndUpdates=void 0;const r=n(3813);t.ValueAndUpdates=class{constructor(e){this.producer=e,this.updates=r.MemoryStream.createWithMemory(this.producer)}get value(){return this.producer.value}async waitFor(e){const t="function"==typeof e?e:t=>t===e;return new Promise(((e,n)=>{const r=this.updates.subscribe({next:n=>{t(n)&&(e(n),setTimeout((()=>r.unsubscribe()),0))},complete:()=>{r.unsubscribe(),n("Update stream completed without expected value")},error:e=>{n(e)}})}))}}},2522:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pubkeyToAddress=t.pubkeyToRawAddress=t.rawSecp256k1PubkeyToRawAddress=t.rawEd25519PubkeyToRawAddress=void 0;const r=n(9562),o=n(8972);function i(e){if(32!==e.length)throw new Error(`Invalid Ed25519 pubkey length: ${e.length}`);return(0,r.sha256)(e).slice(0,20)}function a(e){if(33!==e.length)throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${e.length}`);return(0,r.ripemd160)((0,r.sha256)(e))}function s(e,t){switch(e){case"ed25519":return i(t);case"secp256k1":return a(t);default:throw new Error(`Pubkey type ${e} not supported`)}}t.rawEd25519PubkeyToRawAddress=i,t.rawSecp256k1PubkeyToRawAddress=a,t.pubkeyToRawAddress=s,t.pubkeyToAddress=function(e,t){return(0,o.toHex)(s(e,t)).toUpperCase()}},8477:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DateTime=t.toSeconds=t.fromSeconds=t.toRfc3339WithNanoseconds=t.fromRfc3339WithNanoseconds=void 0;const r=n(8972),o=n(6961);function i(e){const t=(0,r.fromRfc3339)(e),n=e.match(/\.(\d+)Z$/),o=n?n[1].slice(3):"";return t.nanoseconds=parseInt(o.padEnd(6,"0"),10),t}function a(e){var t,n;const r=e.toISOString(),o=null!==(n=null===(t=e.nanoseconds)||void 0===t?void 0:t.toString())&&void 0!==n?n:"";return`${r.slice(0,-1)}${o.padStart(6,"0")}Z`}t.fromRfc3339WithNanoseconds=i,t.toRfc3339WithNanoseconds=a,t.fromSeconds=function(e,t=0){const n=new o.Uint32(t).toNumber();if(n>999999999)throw new Error("Nano seconds must not exceed 999999999");const r=new Date(1e3*e+Math.floor(n/1e6));return r.nanoseconds=n%1e6,r},t.toSeconds=function(e){var t;return{seconds:Math.floor(e.getTime()/1e3),nanos:e.getTime()%1e3*1e6+(null!==(t=e.nanoseconds)&&void 0!==t?t:0)}},t.DateTime=class{static decode(e){return i(e)}static encode(e){return a(e)}}},3034:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockIdFlag=t.Tendermint34Client=t.tendermint34=t.VoteType=t.SubscriptionEventType=t.Method=t.broadcastTxSyncSuccess=t.broadcastTxCommitSuccess=t.WebsocketClient=t.HttpClient=t.toSeconds=t.toRfc3339WithNanoseconds=t.fromSeconds=t.fromRfc3339WithNanoseconds=t.DateTime=t.rawSecp256k1PubkeyToRawAddress=t.rawEd25519PubkeyToRawAddress=t.pubkeyToRawAddress=t.pubkeyToAddress=void 0;var a=n(2522);Object.defineProperty(t,"pubkeyToAddress",{enumerable:!0,get:function(){return a.pubkeyToAddress}}),Object.defineProperty(t,"pubkeyToRawAddress",{enumerable:!0,get:function(){return a.pubkeyToRawAddress}}),Object.defineProperty(t,"rawEd25519PubkeyToRawAddress",{enumerable:!0,get:function(){return a.rawEd25519PubkeyToRawAddress}}),Object.defineProperty(t,"rawSecp256k1PubkeyToRawAddress",{enumerable:!0,get:function(){return a.rawSecp256k1PubkeyToRawAddress}});var s=n(8477);Object.defineProperty(t,"DateTime",{enumerable:!0,get:function(){return s.DateTime}}),Object.defineProperty(t,"fromRfc3339WithNanoseconds",{enumerable:!0,get:function(){return s.fromRfc3339WithNanoseconds}}),Object.defineProperty(t,"fromSeconds",{enumerable:!0,get:function(){return s.fromSeconds}}),Object.defineProperty(t,"toRfc3339WithNanoseconds",{enumerable:!0,get:function(){return s.toRfc3339WithNanoseconds}}),Object.defineProperty(t,"toSeconds",{enumerable:!0,get:function(){return s.toSeconds}});var c=n(8443);Object.defineProperty(t,"HttpClient",{enumerable:!0,get:function(){return c.HttpClient}}),Object.defineProperty(t,"WebsocketClient",{enumerable:!0,get:function(){return c.WebsocketClient}});var d=n(7468);Object.defineProperty(t,"broadcastTxCommitSuccess",{enumerable:!0,get:function(){return d.broadcastTxCommitSuccess}}),Object.defineProperty(t,"broadcastTxSyncSuccess",{enumerable:!0,get:function(){return d.broadcastTxSyncSuccess}}),Object.defineProperty(t,"Method",{enumerable:!0,get:function(){return d.Method}}),Object.defineProperty(t,"SubscriptionEventType",{enumerable:!0,get:function(){return d.SubscriptionEventType}}),Object.defineProperty(t,"VoteType",{enumerable:!0,get:function(){return d.VoteType}}),t.tendermint34=i(n(7468));var u=n(7468);Object.defineProperty(t,"Tendermint34Client",{enumerable:!0,get:function(){return u.Tendermint34Client}});var l=n(3508);Object.defineProperty(t,"BlockIdFlag",{enumerable:!0,get:function(){return l.BlockIdFlag}})},7793:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createJsonRpcRequest=void 0;const n="123456789";t.createJsonRpcRequest=function(e,t){const r=t?{...t}:{};return{jsonrpc:"2.0",id:parseInt(Array.from({length:12}).map((()=>n[Math.floor(Math.random()*n.length)])).join(""),10),method:e,params:r}}},5398:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.HttpClient=t.http=void 0;const o=n(2812),i=r(n(9669)),a=n(5734);function s(e){if(e.status>=400)throw new Error(`Bad status on response: ${e.status}`);return e}async function c(e,t,n){if("undefined"!=typeof fetch){const r=n?JSON.stringify(n):void 0;return fetch(t,{method:e,body:r}).then(s).then((e=>e.json()))}return i.default.request({url:t,method:e,data:n}).then((e=>e.data))}t.http=c,t.HttpClient=class{constructor(e){this.url=(0,a.hasProtocol)(e)?e:"http://"+e}disconnect(){}async execute(e){const t=(0,o.parseJsonRpcResponse)(await c("POST",this.url,e));if((0,o.isJsonRpcErrorResponse)(t))throw new Error(JSON.stringify(t.error));return t}}},8443:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WebsocketClient=t.instanceOfRpcStreamingClient=t.HttpClient=void 0;var r=n(5398);Object.defineProperty(t,"HttpClient",{enumerable:!0,get:function(){return r.HttpClient}});var o=n(5734);Object.defineProperty(t,"instanceOfRpcStreamingClient",{enumerable:!0,get:function(){return o.instanceOfRpcStreamingClient}});var i=n(2494);Object.defineProperty(t,"WebsocketClient",{enumerable:!0,get:function(){return i.WebsocketClient}})},5734:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasProtocol=t.instanceOfRpcStreamingClient=void 0,t.instanceOfRpcStreamingClient=function(e){return"function"==typeof e.listen},t.hasProtocol=function(e){return-1!==e.search("://")}},2494:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WebsocketClient=void 0;const r=n(2812),o=n(3830),i=n(1459),a=n(3813),s=n(5734);function c(e){throw e}function d(e){if("message"!==e.type)throw new Error(`Unexcepted message type on websocket: ${e.type}`);return(0,r.parseJsonRpcResponse)(JSON.parse(e.data))}class u{constructor(e,t){this.running=!1,this.subscriptions=[],this.request=e,this.socket=t}start(e){if(this.running)throw Error("Already started. Please stop first before restarting.");this.running=!0,this.connectToClient(e),this.socket.queueRequest(JSON.stringify(this.request))}stop(){this.running=!1;const e={...this.request,method:"unsubscribe"};try{this.socket.queueRequest(JSON.stringify(e))}catch(e){if(!(e instanceof Error&&e.message.match(/socket has disconnected/i)))throw e}}connectToClient(e){const t=this.socket.events.map(d),n=t.filter((e=>e.id===this.request.id)).subscribe({next:t=>{(0,r.isJsonRpcErrorResponse)(t)&&(this.closeSubscriptions(),e.error(JSON.stringify(t.error))),n.unsubscribe()}}),o=t.filter((e=>e.id===this.request.id)).subscribe({next:t=>{(0,r.isJsonRpcErrorResponse)(t)?(this.closeSubscriptions(),e.error(JSON.stringify(t.error))):e.next(t.result)}}),i=t.subscribe({error:t=>{this.closeSubscriptions(),e.error(t)},complete:()=>{this.closeSubscriptions(),e.complete()}});this.subscriptions.push(n,o,i)}closeSubscriptions(){for(const e of this.subscriptions)e.unsubscribe();this.subscriptions=[]}}t.WebsocketClient=class{constructor(e,t=c){this.subscriptionStreams=new Map;const n=e.endsWith("/")?"websocket":"/websocket",r=(0,s.hasProtocol)(e)?e:"ws://"+e;this.url=r+n,this.socket=new o.ReconnectingSocket(this.url);const i=this.socket.events.subscribe({error:e=>{t(e),i.unsubscribe()}});this.jsonRpcResponseStream=this.socket.events.map(d),this.socket.connect()}async execute(e){const t=this.responseForRequestId(e.id);this.socket.queueRequest(JSON.stringify(e));const n=await t;if((0,r.isJsonRpcErrorResponse)(n))throw new Error(JSON.stringify(n.error));return n}listen(e){if("subscribe"!==e.method)throw new Error('Request method must be "subscribe" to start event listening');const t=e.params.query;if("string"!=typeof t)throw new Error("request.params.query must be a string");if(!this.subscriptionStreams.has(t)){const n=new u(e,this.socket),r=a.Stream.create(n);this.subscriptionStreams.set(t,r)}return this.subscriptionStreams.get(t).filter((e=>void 0!==e.query))}async connected(){await this.socket.connectionStatus.waitFor(o.ConnectionStatus.Connected)}disconnect(){this.socket.disconnect()}async responseForRequestId(e){return(0,i.firstEvent)(this.jsonRpcResponseStream.filter((t=>t.id===e)))}}},1731:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.adaptor34=void 0;const r=n(9057),o=n(5240),i=n(3106);t.adaptor34={params:o.Params,responses:i.Responses,hashTx:r.hashTx,hashBlock:r.hashBlock}},5240:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;const a=n(8972),s=n(7793),c=n(122),d=i(n(4920));function u(e){return{height:(0,c.may)(c.Integer.encode,e.height)}}t.Params=class{static encodeAbciInfo(e){return(0,s.createJsonRpcRequest)(e.method)}static encodeAbciQuery(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{path:(0,c.assertNotEmpty)(t.path),data:(0,a.toHex)(t.data),height:(0,c.may)(c.Integer.encode,t.height),prove:t.prove}));var t}static encodeBlock(e){return(0,s.createJsonRpcRequest)(e.method,u(e.params))}static encodeBlockchain(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{minHeight:(0,c.may)(c.Integer.encode,t.minHeight),maxHeight:(0,c.may)(c.Integer.encode,t.maxHeight)}));var t}static encodeBlockResults(e){return(0,s.createJsonRpcRequest)(e.method,u(e.params))}static encodeBlockSearch(e){return(0,s.createJsonRpcRequest)(e.method,{query:(t=e.params).query,page:(0,c.may)(c.Integer.encode,t.page),per_page:(0,c.may)(c.Integer.encode,t.per_page),order_by:t.order_by});var t}static encodeBroadcastTx(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{tx:(0,a.toBase64)((0,c.assertNotEmpty)(t.tx))}));var t}static encodeCommit(e){return(0,s.createJsonRpcRequest)(e.method,u(e.params))}static encodeGenesis(e){return(0,s.createJsonRpcRequest)(e.method)}static encodeHealth(e){return(0,s.createJsonRpcRequest)(e.method)}static encodeStatus(e){return(0,s.createJsonRpcRequest)(e.method)}static encodeSubscribe(e){const t={key:"tm.event",value:e.query.type},n=d.buildQuery({tags:[t],raw:e.query.raw});return(0,s.createJsonRpcRequest)("subscribe",{query:n})}static encodeTx(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{hash:(0,a.toBase64)((0,c.assertNotEmpty)(t.hash)),prove:t.prove}));var t}static encodeTxSearch(e){return(0,s.createJsonRpcRequest)(e.method,{query:(t=e.params).query,prove:t.prove,page:(0,c.may)(c.Integer.encode,t.page),per_page:(0,c.may)(c.Integer.encode,t.per_page),order_by:t.order_by});var t}static encodeValidators(e){return(0,s.createJsonRpcRequest)(e.method,(t=e.params,{height:(0,c.may)(c.Integer.encode,t.height),page:(0,c.may)(c.Integer.encode,t.page),per_page:(0,c.may)(c.Integer.encode,t.per_page)}));var t}}},3106:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Responses=void 0;const r=n(8972),o=n(5553),i=n(8477),a=n(3508),s=n(122),c=n(9057);function d(e){return{ops:e.ops.map((e=>({type:e.type,key:(0,r.fromBase64)(e.key),data:(0,r.fromBase64)(e.data)})))}}function u(e){return{key:(0,r.fromBase64)((0,s.assertNotEmpty)(e.key)),value:(0,r.fromBase64)((0,s.optional)(e.value,""))}}function l(e){return{type:e.type,attributes:(t=e.attributes,(0,s.assertArray)(t).map(u))};var t}function A(e){return(0,s.assertArray)(e).map(l)}function f(e){return{code:s.Integer.parse((0,s.assertNumber)((0,s.optional)(e.code,0))),codeSpace:e.codespace,log:e.log,data:(0,s.may)(r.fromBase64,e.data),events:e.events?A(e.events):[],gasWanted:s.Integer.parse((0,s.optional)(e.gas_wanted,"0")),gasUsed:s.Integer.parse((0,s.optional)(e.gas_used,"0"))}}function h(e){switch(e.type){case"tendermint/PubKeyEd25519":return{algorithm:"ed25519",data:(0,r.fromBase64)((0,s.assertNotEmpty)(e.value))};case"tendermint/PubKeySecp256k1":return{algorithm:"secp256k1",data:(0,r.fromBase64)((0,s.assertNotEmpty)(e.value))};default:throw new Error(`unknown pubkey type: ${e.type}`)}}function p(e){return{pubkey:h((0,s.assertObject)(e.pub_key)),votingPower:s.Integer.parse((0,s.assertNotEmpty)(e.voting_power)),address:(0,r.fromHex)((0,s.assertNotEmpty)(e.address)),proposerPriority:s.Integer.parse(e.proposer_priority)}}function g(e){return{maxBytes:s.Integer.parse((0,s.assertNotEmpty)(e.max_bytes)),maxGas:s.Integer.parse((0,s.assertNotEmpty)(e.max_gas))}}function m(e){return{maxAgeNumBlocks:s.Integer.parse((0,s.assertNotEmpty)(e.max_age_num_blocks)),maxAgeDuration:s.Integer.parse((0,s.assertNotEmpty)(e.max_age_duration))}}function v(e){return{block:g((0,s.assertObject)(e.block)),evidence:m((0,s.assertObject)(e.evidence))}}function y(e){return{hash:(0,r.fromHex)((0,s.assertNotEmpty)(e.hash)),parts:{total:(0,s.assertNotEmpty)(e.parts.total),hash:(0,r.fromHex)((0,s.assertNotEmpty)(e.parts.hash))}}}function b(e){var t;return{block:s.Integer.parse(e.block),app:s.Integer.parse(null!==(t=e.app)&&void 0!==t?t:0)}}function I(e){return{version:b(e.version),chainId:(0,s.assertNotEmpty)(e.chain_id),height:s.Integer.parse((0,s.assertNotEmpty)(e.height)),time:(0,i.fromRfc3339WithNanoseconds)((0,s.assertNotEmpty)(e.time)),lastBlockId:e.last_block_id.hash?y(e.last_block_id):null,lastCommitHash:(0,r.fromHex)((0,s.assertSet)(e.last_commit_hash)),dataHash:(0,r.fromHex)((0,s.assertSet)(e.data_hash)),validatorsHash:(0,r.fromHex)((0,s.assertSet)(e.validators_hash)),nextValidatorsHash:(0,r.fromHex)((0,s.assertSet)(e.next_validators_hash)),consensusHash:(0,r.fromHex)((0,s.assertSet)(e.consensus_hash)),appHash:(0,r.fromHex)((0,s.assertSet)(e.app_hash)),lastResultsHash:(0,r.fromHex)((0,s.assertSet)(e.last_results_hash)),evidenceHash:(0,r.fromHex)((0,s.assertSet)(e.evidence_hash)),proposerAddress:(0,r.fromHex)((0,s.assertNotEmpty)(e.proposer_address))}}function C(e){return{blockId:y(e.block_id),blockSize:s.Integer.parse((0,s.assertNotEmpty)(e.block_size)),header:I(e.header),numTxs:s.Integer.parse((0,s.assertNotEmpty)(e.num_txs))}}function E(e){return{blockIdFlag:(n=e.block_id_flag,(0,o.assert)(n in a.BlockIdFlag),n),validatorAddress:e.validator_address?(0,r.fromHex)(e.validator_address):void 0,timestamp:(t=e.timestamp,t&&!t.startsWith("0001-01-01")?(0,i.fromRfc3339WithNanoseconds)(t):void 0),signature:e.signature?(0,r.fromBase64)(e.signature):void 0};var t,n}function w(e){return{blockId:y((0,s.assertObject)(e.block_id)),height:s.Integer.parse((0,s.assertNotEmpty)(e.height)),round:s.Integer.parse(e.round),signatures:(0,s.assertArray)(e.signatures).map(E)}}function B(e){return{address:(0,r.fromHex)((0,s.assertNotEmpty)(e.address)),pubkey:h((0,s.assertObject)(e.pub_key)),votingPower:s.Integer.parse((0,s.assertNotEmpty)(e.power))}}function _(e){return{pubkey:h((0,s.assertObject)(e.pub_key)),votingPower:s.Integer.parse((0,s.assertNotEmpty)(e.voting_power)),address:(0,r.fromHex)((0,s.assertNotEmpty)(e.address))}}function S(e){return{id:(0,r.fromHex)((0,s.assertNotEmpty)(e.id)),listenAddr:(0,s.assertNotEmpty)(e.listen_addr),network:(0,s.assertNotEmpty)(e.network),version:(0,s.assertString)(e.version),channels:(0,s.assertNotEmpty)(e.channels),moniker:(0,s.assertNotEmpty)(e.moniker),other:(0,s.dictionaryToStringMap)(e.other),protocolVersion:{app:s.Integer.parse((0,s.assertNotEmpty)(e.protocol_version.app)),block:s.Integer.parse((0,s.assertNotEmpty)(e.protocol_version.block)),p2p:s.Integer.parse((0,s.assertNotEmpty)(e.protocol_version.p2p))}}}function k(e){return{latestBlockHash:(0,r.fromHex)((0,s.assertNotEmpty)(e.latest_block_hash)),latestAppHash:(0,r.fromHex)((0,s.assertNotEmpty)(e.latest_app_hash)),latestBlockTime:(0,i.fromRfc3339WithNanoseconds)((0,s.assertNotEmpty)(e.latest_block_time)),latestBlockHeight:s.Integer.parse((0,s.assertNotEmpty)(e.latest_block_height)),catchingUp:(0,s.assertBoolean)(e.catching_up)}}function O(e){return{data:(0,r.fromBase64)((0,s.assertNotEmpty)(e.data)),rootHash:(0,r.fromHex)((0,s.assertNotEmpty)(e.root_hash)),proof:{total:s.Integer.parse((0,s.assertNotEmpty)(e.proof.total)),index:s.Integer.parse((0,s.assertNotEmpty)(e.proof.index)),leafHash:(0,r.fromBase64)((0,s.assertNotEmpty)(e.proof.leaf_hash)),aunts:(0,s.assertArray)(e.proof.aunts).map(r.fromBase64)}}}function Q(e){return{tx:(0,r.fromBase64)((0,s.assertNotEmpty)(e.tx)),result:f((0,s.assertObject)(e.tx_result)),height:s.Integer.parse((0,s.assertNotEmpty)(e.height)),index:s.Integer.parse((0,s.assertNumber)(e.index)),hash:(0,r.fromHex)((0,s.assertNotEmpty)(e.hash)),proof:(0,s.may)(O,e.proof)}}function R(e){var t,n;return{header:I((0,s.assertObject)(e.header)),lastCommit:e.last_commit.block_id.hash?w((0,s.assertObject)(e.last_commit)):null,txs:e.data.txs?(0,s.assertArray)(e.data.txs).map(r.fromBase64):[],evidence:null!==(n=null===(t=e.evidence)||void 0===t?void 0:t.evidence)&&void 0!==n?n:[]}}function P(e){return{blockId:y(e.block_id),block:R(e.block)}}class N{static decodeAbciInfo(e){return{data:(t=(0,s.assertObject)(e.result.response)).data,lastBlockHeight:(0,s.may)(s.Integer.parse,t.last_block_height),lastBlockAppHash:(0,s.may)(r.fromBase64,t.last_block_app_hash)};var t}static decodeAbciQuery(e){return t=(0,s.assertObject)(e.result.response),{key:(0,r.fromBase64)((0,s.optional)(t.key,"")),value:(0,r.fromBase64)((0,s.optional)(t.value,"")),proof:(0,s.may)(d,t.proofOps),height:(0,s.may)(s.Integer.parse,t.height),code:(0,s.may)(s.Integer.parse,t.code),index:(0,s.may)(s.Integer.parse,t.index),log:t.log};var t}static decodeBlock(e){return P(e.result)}static decodeBlockResults(e){return t=e.result,{height:s.Integer.parse((0,s.assertNotEmpty)(t.height)),results:(t.txs_results||[]).map(f),validatorUpdates:(t.validator_updates||[]).map(p),consensusUpdates:(0,s.may)(v,t.consensus_param_updates),beginBlockEvents:A(t.begin_block_events||[]),endBlockEvents:A(t.end_block_events||[])};var t}static decodeBlockSearch(e){return t=e.result,{totalCount:s.Integer.parse((0,s.assertNotEmpty)(t.total_count)),blocks:(0,s.assertArray)(t.blocks).map(P)};var t}static decodeBlockchain(e){return t=e.result,{lastHeight:s.Integer.parse((0,s.assertNotEmpty)(t.last_height)),blockMetas:(0,s.assertArray)(t.block_metas).map(C)};var t}static decodeBroadcastTxSync(e){return{...f(t=e.result),hash:(0,r.fromHex)((0,s.assertNotEmpty)(t.hash))};var t}static decodeBroadcastTxAsync(e){return N.decodeBroadcastTxSync(e)}static decodeBroadcastTxCommit(e){return t=e.result,{height:s.Integer.parse(t.height),hash:(0,r.fromHex)((0,s.assertNotEmpty)(t.hash)),checkTx:f((0,s.assertObject)(t.check_tx)),deliverTx:(0,s.may)(f,t.deliver_tx)};var t}static decodeCommit(e){return t=e.result,{canonical:(0,s.assertBoolean)(t.canonical),header:I(t.signed_header.header),commit:w(t.signed_header.commit)};var t}static decodeGenesis(e){return t=(0,s.assertObject)(e.result.genesis),{genesisTime:(0,i.fromRfc3339WithNanoseconds)((0,s.assertNotEmpty)(t.genesis_time)),chainId:(0,s.assertNotEmpty)(t.chain_id),consensusParams:v(t.consensus_params),validators:t.validators?(0,s.assertArray)(t.validators).map(B):[],appHash:(0,r.fromHex)((0,s.assertSet)(t.app_hash)),appState:t.app_state};var t}static decodeHealth(){return null}static decodeStatus(e){return{nodeInfo:S((t=e.result).node_info),syncInfo:k(t.sync_info),validatorInfo:_(t.validator_info)};var t}static decodeNewBlockEvent(e){return R(e.data.value.block)}static decodeNewBlockHeaderEvent(e){return I(e.data.value.header)}static decodeTxEvent(e){return function(e){const t=(0,r.fromBase64)((0,s.assertNotEmpty)(e.tx));return{tx:t,hash:(0,c.hashTx)(t),result:f(e.result),height:s.Integer.parse((0,s.assertNotEmpty)(e.height)),index:(0,s.may)(s.Integer.parse,e.index)}}(e.data.value.TxResult)}static decodeTx(e){return Q(e.result)}static decodeTxSearch(e){return t=e.result,{totalCount:s.Integer.parse((0,s.assertNotEmpty)(t.total_count)),txs:(0,s.assertArray)(t.txs).map(Q)};var t}static decodeValidators(e){return t=e.result,{blockHeight:s.Integer.parse((0,s.assertNotEmpty)(t.block_height)),validators:(0,s.assertArray)(t.validators).map(p),count:s.Integer.parse((0,s.assertNotEmpty)(t.count)),total:s.Integer.parse((0,s.assertNotEmpty)(t.total))};var t}}t.Responses=N},122:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.encodeBlockId=t.encodeVersion=t.encodeBytes=t.encodeTime=t.encodeInt=t.encodeString=t.Integer=t.dictionaryToStringMap=t.may=t.optional=t.assertNotEmpty=t.assertObject=t.assertArray=t.assertNumber=t.assertString=t.assertBoolean=t.assertSet=void 0;const r=n(8972),o=n(6961);function i(e){if(void 0===e)throw new Error("Value must not be undefined");if(null===e)throw new Error("Value must not be null");return e}function a(e){return e>=128?Uint8Array.from([255&e|128,...a(e>>7)]):Uint8Array.from([255&e])}t.assertSet=i,t.assertBoolean=function(e){if(i(e),"boolean"!=typeof e)throw new Error("Value must be a boolean");return e},t.assertString=function(e){if(i(e),"string"!=typeof e)throw new Error("Value must be a string");return e},t.assertNumber=function(e){if(i(e),"number"!=typeof e)throw new Error("Value must be a number");return e},t.assertArray=function(e){if(i(e),!Array.isArray(e))throw new Error("Value must be a an array");return e},t.assertObject=function(e){if(i(e),"object"!=typeof e)throw new Error("Value must be an object");if("[object Object]"!==Object.prototype.toString.call(e))throw new Error("Value must be a simple object");return e},t.assertNotEmpty=function(e){if(i(e),"number"==typeof e&&0===e)throw new Error("must provide a non-zero value");if(0===e.length)throw new Error("must provide a non-empty value");return e},t.optional=function(e,t){return null==e?t:e},t.may=function(e,t){return null==t?void 0:e(t)},t.dictionaryToStringMap=function(e){const t=new Map;for(const n of Object.keys(e)){const r=e[n];if("string"!=typeof r)throw new Error("Found dictionary value of type other than string");t.set(n,r)}return t},t.Integer=class{static parse(e){return("number"==typeof e?new o.Int53(e):o.Int53.fromString(e)).toNumber()}static encode(e){return new o.Int53(e).toString()}},t.encodeString=function(e){const t=(0,r.toUtf8)(e);return Uint8Array.from([t.length,...t])},t.encodeInt=a,t.encodeTime=function(e){const t=e.getTime(),n=Math.floor(t/1e3),r=n?[8,...a(n)]:new Uint8Array,o=(e.nanoseconds||0)+t%1e3*1e6,i=o?[16,...a(o)]:new Uint8Array;return Uint8Array.from([...r,...i])},t.encodeBytes=function(e){if(e.length>=128)throw new Error("Not implemented for byte arrays of length 128 or more");return e.length?Uint8Array.from([e.length,...e]):new Uint8Array},t.encodeVersion=function(e){const t=e.block?Uint8Array.from([8,...a(e.block)]):new Uint8Array,n=e.app?Uint8Array.from([16,...a(e.app)]):new Uint8Array;return Uint8Array.from([...t,...n])},t.encodeBlockId=function(e){return Uint8Array.from([10,e.hash.length,...e.hash,18,e.parts.hash.length+4,8,e.parts.total,18,e.parts.hash.length,...e.parts.hash])}},9057:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hashBlock=t.hashTx=void 0;const r=n(9562),o=n(122);function i(e){switch(e.length){case 0:throw new Error("Cannot hash empty tree");case 1:return function(e){const t=new r.Sha256(Uint8Array.from([0]));return t.update(e),t.digest()}(e[0]);default:{const t=function(e){if(e<1)throw new Error("Cannot split an empty tree");const t=2**Math.floor(Math.log2(e));return t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tendermint34Client=t.VoteType=t.broadcastTxSyncSuccess=t.broadcastTxCommitSuccess=t.SubscriptionEventType=t.Method=void 0;var r=n(4920);Object.defineProperty(t,"Method",{enumerable:!0,get:function(){return r.Method}}),Object.defineProperty(t,"SubscriptionEventType",{enumerable:!0,get:function(){return r.SubscriptionEventType}});var o=n(6802);Object.defineProperty(t,"broadcastTxCommitSuccess",{enumerable:!0,get:function(){return o.broadcastTxCommitSuccess}}),Object.defineProperty(t,"broadcastTxSyncSuccess",{enumerable:!0,get:function(){return o.broadcastTxSyncSuccess}}),Object.defineProperty(t,"VoteType",{enumerable:!0,get:function(){return o.VoteType}});var i=n(4533);Object.defineProperty(t,"Tendermint34Client",{enumerable:!0,get:function(){return i.Tendermint34Client}})},4920:(e,t)=>{"use strict";var n,r;Object.defineProperty(t,"__esModule",{value:!0}),t.buildQuery=t.SubscriptionEventType=t.Method=void 0,(r=t.Method||(t.Method={})).AbciInfo="abci_info",r.AbciQuery="abci_query",r.Block="block",r.Blockchain="blockchain",r.BlockResults="block_results",r.BlockSearch="block_search",r.BroadcastTxAsync="broadcast_tx_async",r.BroadcastTxSync="broadcast_tx_sync",r.BroadcastTxCommit="broadcast_tx_commit",r.Commit="commit",r.Genesis="genesis",r.Health="health",r.Status="status",r.Subscribe="subscribe",r.Tx="tx",r.TxSearch="tx_search",r.Validators="validators",r.Unsubscribe="unsubscribe",(n=t.SubscriptionEventType||(t.SubscriptionEventType={})).NewBlock="NewBlock",n.NewBlockHeader="NewBlockHeader",n.Tx="Tx",t.buildQuery=function(e){return[...(e.tags?e.tags:[]).map((e=>`${e.key}='${e.value}'`)),...e.raw?[e.raw]:[]].join(" AND ")}},6802:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.VoteType=t.broadcastTxCommitSuccess=t.broadcastTxSyncSuccess=void 0,t.broadcastTxSyncSuccess=function(e){return 0===e.code},t.broadcastTxCommitSuccess=function(e){return 0===e.checkTx.code&&!!e.deliverTx&&0===e.deliverTx.code},(n=t.VoteType||(t.VoteType={}))[n.PreVote=1]="PreVote",n[n.PreCommit=2]="PreCommit"},4533:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Tendermint34Client=void 0;const a=n(7793),s=n(8443),c=n(1731),d=i(n(4920));class u{constructor(e){this.client=e,this.p=c.adaptor34.params,this.r=c.adaptor34.responses}static async connect(e){const t=e.startsWith("http://")||e.startsWith("https://")?new s.HttpClient(e):new s.WebsocketClient(e);return u.create(t)}static async create(e){return await this.detectVersion(e),new u(e)}static async detectVersion(e){const t=(0,a.createJsonRpcRequest)(d.Method.Status),n=(await e.execute(t)).result;if(!n||!n.node_info)throw new Error("Unrecognized format for status response");const r=n.node_info.version;if("string"!=typeof r)throw new Error("Unrecognized version format: must be string");return r}disconnect(){this.client.disconnect()}async abciInfo(){const e={method:d.Method.AbciInfo};return this.doCall(e,this.p.encodeAbciInfo,this.r.decodeAbciInfo)}async abciQuery(e){const t={params:e,method:d.Method.AbciQuery};return this.doCall(t,this.p.encodeAbciQuery,this.r.decodeAbciQuery)}async block(e){const t={method:d.Method.Block,params:{height:e}};return this.doCall(t,this.p.encodeBlock,this.r.decodeBlock)}async blockResults(e){const t={method:d.Method.BlockResults,params:{height:e}};return this.doCall(t,this.p.encodeBlockResults,this.r.decodeBlockResults)}async blockSearch(e){const t={params:e,method:d.Method.BlockSearch},n=await this.doCall(t,this.p.encodeBlockSearch,this.r.decodeBlockSearch);return{...n,blocks:[...n.blocks].sort(((e,t)=>e.block.header.height-t.block.header.height))}}async blockSearchAll(e){let t=e.page||1;const n=[];let r=!1;for(;!r;){const o=await this.blockSearch({...e,page:t});n.push(...o.blocks),n.lengthe.block.header.height-t.block.header.height)),{totalCount:n.length,blocks:n}}async blockchain(e,t){const n={method:d.Method.Blockchain,params:{minHeight:e,maxHeight:t}};return this.doCall(n,this.p.encodeBlockchain,this.r.decodeBlockchain)}async broadcastTxSync(e){const t={params:e,method:d.Method.BroadcastTxSync};return this.doCall(t,this.p.encodeBroadcastTx,this.r.decodeBroadcastTxSync)}async broadcastTxAsync(e){const t={params:e,method:d.Method.BroadcastTxAsync};return this.doCall(t,this.p.encodeBroadcastTx,this.r.decodeBroadcastTxAsync)}async broadcastTxCommit(e){const t={params:e,method:d.Method.BroadcastTxCommit};return this.doCall(t,this.p.encodeBroadcastTx,this.r.decodeBroadcastTxCommit)}async commit(e){const t={method:d.Method.Commit,params:{height:e}};return this.doCall(t,this.p.encodeCommit,this.r.decodeCommit)}async genesis(){const e={method:d.Method.Genesis};return this.doCall(e,this.p.encodeGenesis,this.r.decodeGenesis)}async health(){const e={method:d.Method.Health};return this.doCall(e,this.p.encodeHealth,this.r.decodeHealth)}async status(){const e={method:d.Method.Status};return this.doCall(e,this.p.encodeStatus,this.r.decodeStatus)}subscribeNewBlock(){const e={method:d.Method.Subscribe,query:{type:d.SubscriptionEventType.NewBlock}};return this.subscribe(e,this.r.decodeNewBlockEvent)}subscribeNewBlockHeader(){const e={method:d.Method.Subscribe,query:{type:d.SubscriptionEventType.NewBlockHeader}};return this.subscribe(e,this.r.decodeNewBlockHeaderEvent)}subscribeTx(e){const t={method:d.Method.Subscribe,query:{type:d.SubscriptionEventType.Tx,raw:e}};return this.subscribe(t,this.r.decodeTxEvent)}async tx(e){const t={params:e,method:d.Method.Tx};return this.doCall(t,this.p.encodeTx,this.r.decodeTx)}async txSearch(e){const t={params:e,method:d.Method.TxSearch};return this.doCall(t,this.p.encodeTxSearch,this.r.decodeTxSearch)}async txSearchAll(e){let t=e.page||1;const n=[];let r=!1;for(;!r;){const o=await this.txSearch({...e,page:t});n.push(...o.txs),n.lengtht(e)))}}t.Tendermint34Client=u},3508:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.BlockIdFlag=void 0,(n=t.BlockIdFlag||(t.BlockIdFlag={}))[n.Unknown=0]="Unknown",n[n.Absent=1]="Absent",n[n.Commit=2]="Commit",n[n.Nil=3]="Nil",n[n.Unrecognized=-1]="Unrecognized"},1057:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.arrayContentStartsWith=t.arrayContentEquals=void 0,t.arrayContentEquals=function(e,t){if(e.length!==t.length)return!1;for(let n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertDefinedAndNotNull=t.assertDefined=t.assert=void 0,t.assert=function(e,t){if(!e)throw new Error(t||"condition is not truthy")},t.assertDefined=function(e,t){if(void 0===e)throw new Error(null!=t?t:"value is undefined")},t.assertDefinedAndNotNull=function(e,t){if(null==e)throw new Error(null!=t?t:"value is undefined or null")}},5553:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isUint8Array=t.isNonNullObject=t.sleep=t.assertDefinedAndNotNull=t.assertDefined=t.assert=t.arrayContentStartsWith=t.arrayContentEquals=void 0;var r=n(1057);Object.defineProperty(t,"arrayContentEquals",{enumerable:!0,get:function(){return r.arrayContentEquals}}),Object.defineProperty(t,"arrayContentStartsWith",{enumerable:!0,get:function(){return r.arrayContentStartsWith}});var o=n(4427);Object.defineProperty(t,"assert",{enumerable:!0,get:function(){return o.assert}}),Object.defineProperty(t,"assertDefined",{enumerable:!0,get:function(){return o.assertDefined}}),Object.defineProperty(t,"assertDefinedAndNotNull",{enumerable:!0,get:function(){return o.assertDefinedAndNotNull}});var i=n(3029);Object.defineProperty(t,"sleep",{enumerable:!0,get:function(){return i.sleep}});var a=n(5012);Object.defineProperty(t,"isNonNullObject",{enumerable:!0,get:function(){return a.isNonNullObject}}),Object.defineProperty(t,"isUint8Array",{enumerable:!0,get:function(){return a.isUint8Array}})},3029:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sleep=void 0,t.sleep=async function(e){return new Promise((t=>setTimeout(t,e)))}},5012:(e,t)=>{"use strict";function n(e){return"object"==typeof e&&null!==e}Object.defineProperty(t,"__esModule",{value:!0}),t.isUint8Array=t.isNonNullObject=void 0,t.isNonNullObject=n,t.isUint8Array=function(e){return!(!n(e)||"[object Uint8Array]"!==Object.prototype.toString.call(e)||"undefined"!=typeof Buffer&&void 0!==Buffer.isBuffer&&Buffer.isBuffer(e))}},7505:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SHA2=void 0;const r=n(8089);class o extends r.Hash{constructor(e,t,n,o){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=(0,r.createView)(this.buffer)}update(e){if(this.destroyed)throw new Error("instance is destroyed");const{view:t,buffer:n,blockLen:o,finished:i}=this;if(i)throw new Error("digest() was already called");const a=(e=(0,r.toBytes)(e)).length;for(let i=0;io-a&&(this.process(n,0),a=0);for(let e=a;e>o&i),s=Number(n&i),c=r?4:0,d=r?0:4;e.setUint32(t+c,a,r),e.setUint32(t+d,s,r)}(n,o-8,BigInt(8*this.length),i),this.process(n,0);const s=(0,r.createView)(e);this.get().forEach(((e,t)=>s.setUint32(4*t,e,i)))}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:o,destroyed:i,pos:a}=this;return e.length=r,e.pos=a,e.finished=o,e.destroyed=i,r%t&&e.buffer.set(n),e}}t.SHA2=o},6873:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.add5H=t.add5L=t.add4H=t.add4L=t.add3H=t.add3L=t.add=t.rotlBL=t.rotlBH=t.rotlSL=t.rotlSH=t.rotr32L=t.rotr32H=t.rotrBL=t.rotrBH=t.rotrSL=t.rotrSH=t.shrSL=t.shrSH=t.toBig=t.split=t.fromBig=void 0;const n=BigInt(2**32-1),r=BigInt(32);function o(e,t=!1){return t?{h:Number(e&n),l:Number(e>>r&n)}:{h:0|Number(e>>r&n),l:0|Number(e&n)}}t.fromBig=o,t.split=function(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let i=0;iBigInt(e>>>0)<>>0),t.shrSH=(e,t,n)=>e>>>n,t.shrSL=(e,t,n)=>e<<32-n|t>>>n,t.rotrSH=(e,t,n)=>e>>>n|t<<32-n,t.rotrSL=(e,t,n)=>e<<32-n|t>>>n,t.rotrBH=(e,t,n)=>e<<64-n|t>>>n-32,t.rotrBL=(e,t,n)=>e>>>n-32|t<<64-n,t.rotr32H=(e,t)=>t,t.rotr32L=(e,t)=>e,t.rotlSH=(e,t,n)=>e<>>32-n,t.rotlSL=(e,t,n)=>t<>>32-n,t.rotlBH=(e,t,n)=>t<>>64-n,t.rotlBL=(e,t,n)=>e<>>64-n,t.add=function(e,t,n,r){const o=(t>>>0)+(r>>>0);return{h:e+n+(o/2**32|0)|0,l:0|o}},t.add3L=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),t.add3H=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,t.add4L=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),t.add4H=(e,t,n,r,o)=>t+n+r+o+(e/2**32|0)|0,t.add5L=(e,t,n,r,o)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(o>>>0),t.add5H=(e,t,n,r,o,i)=>t+n+r+o+i+(e/2**32|0)|0},1945:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.crypto=void 0;const o=r(n(6113));t.crypto={node:o.default,web:void 0}},9569:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hmac=void 0;const r=n(8089);class o extends r.Hash{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,(0,r.assertHash)(e);const n=(0,r.toBytes)(t);if(this.iHash=e.create(),!(this.iHash instanceof r.Hash))throw new TypeError("Expected instance of class which extends utils.Hash");const o=this.blockLen=this.iHash.blockLen;this.outputLen=this.iHash.outputLen;const i=new Uint8Array(o);i.set(n.length>this.iHash.blockLen?e.create().update(n).digest():n);for(let e=0;enew o(e,t).update(n).digest(),t.hmac.create=(e,t)=>new o(e,t)},9023:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pbkdf2Async=t.pbkdf2=void 0;const r=n(9569),o=n(8089);function i(e,t,n,i){(0,o.assertHash)(e);const a=(0,o.checkOpts)({dkLen:32,asyncTick:10},i),{c:s,dkLen:c,asyncTick:d}=a;if((0,o.assertNumber)(s),(0,o.assertNumber)(c),(0,o.assertNumber)(d),s<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const u=(0,o.toBytes)(t),l=(0,o.toBytes)(n),A=new Uint8Array(c),f=r.hmac.create(e,u),h=f._cloneInto().update(l);return{c:s,dkLen:c,asyncTick:d,DK:A,PRF:f,PRFSalt:h}}function a(e,t,n,r,o){return e.destroy(),t.destroy(),r&&r.destroy(),o.fill(0),n}t.pbkdf2=function(e,t,n,r){const{c:s,dkLen:c,DK:d,PRF:u,PRFSalt:l}=i(e,t,n,r);let A;const f=new Uint8Array(4),h=(0,o.createView)(f),p=new Uint8Array(u.outputLen);for(let e=1,t=0;t{l._cloneInto(f).update(g).digestInto(g);for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ripemd160=t.RIPEMD160=void 0;const r=n(7505),o=n(8089),i=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),a=Uint8Array.from({length:16},((e,t)=>t)),s=a.map((e=>(9*e+5)%16));let c=[a],d=[s];for(let e=0;e<4;e++)for(let t of[c,d])t.push(t[e].map((e=>i[e])));const u=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((e=>new Uint8Array(e))),l=c.map(((e,t)=>e.map((e=>u[t][e])))),A=d.map(((e,t)=>e.map((e=>u[t][e])))),f=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),h=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),p=(e,t)=>e<>>32-t;function g(e,t,n,r){return 0===e?t^n^r:1===e?t&n|~t&r:2===e?(t|~n)^r:3===e?t&r|n&~r:t^(n|~r)}const m=new Uint32Array(16);class v extends r.SHA2{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:n,h3:r,h4:o}=this;return[e,t,n,r,o]}set(e,t,n,r,o){this.h0=0|e,this.h1=0|t,this.h2=0|n,this.h3=0|r,this.h4=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)m[n]=e.getUint32(t,!0);let n=0|this.h0,r=n,o=0|this.h1,i=o,a=0|this.h2,s=a,u=0|this.h3,v=u,y=0|this.h4,b=y;for(let e=0;e<5;e++){const t=4-e,I=f[e],C=h[e],E=c[e],w=d[e],B=l[e],_=A[e];for(let t=0;t<16;t++){const r=p(n+g(e,o,a,u)+m[E[t]]+I,B[t])+y|0;n=y,y=u,u=0|p(a,10),a=o,o=r}for(let e=0;e<16;e++){const n=p(r+g(t,i,s,v)+m[w[e]]+C,_[e])+b|0;r=b,b=v,v=0|p(s,10),s=i,i=n}}this.set(this.h1+a+v|0,this.h2+u+b|0,this.h3+y+r|0,this.h4+n+i|0,this.h0+o+s|0)}roundClean(){m.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}t.RIPEMD160=v,t.ripemd160=(0,o.wrapConstructor)((()=>new v))},3061:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sha256=void 0;const r=n(7505),o=n(8089),i=(e,t,n)=>e&t^e&n^t&n,a=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]),s=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),c=new Uint32Array(64);class d extends r.SHA2{constructor(){super(64,32,8,!1),this.A=0|s[0],this.B=0|s[1],this.C=0|s[2],this.D=0|s[3],this.E=0|s[4],this.F=0|s[5],this.G=0|s[6],this.H=0|s[7]}get(){const{A:e,B:t,C:n,D:r,E:o,F:i,G:a,H:s}=this;return[e,t,n,r,o,i,a,s]}set(e,t,n,r,o,i,a,s){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|o,this.F=0|i,this.G=0|a,this.H=0|s}process(e,t){for(let n=0;n<16;n++,t+=4)c[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=c[e-15],n=c[e-2],r=(0,o.rotr)(t,7)^(0,o.rotr)(t,18)^t>>>3,i=(0,o.rotr)(n,17)^(0,o.rotr)(n,19)^n>>>10;c[e]=i+c[e-7]+r+c[e-16]|0}let{A:n,B:r,C:s,D:d,E:u,F:l,G:A,H:f}=this;for(let e=0;e<64;e++){const t=f+((0,o.rotr)(u,6)^(0,o.rotr)(u,11)^(0,o.rotr)(u,25))+((h=u)&l^~h&A)+a[e]+c[e]|0,p=((0,o.rotr)(n,2)^(0,o.rotr)(n,13)^(0,o.rotr)(n,22))+i(n,r,s)|0;f=A,A=l,l=u,u=d+t|0,d=s,s=r,r=n,n=t+p|0}var h;n=n+this.A|0,r=r+this.B|0,s=s+this.C|0,d=d+this.D|0,u=u+this.E|0,l=l+this.F|0,A=A+this.G|0,f=f+this.H|0,this.set(n,r,s,d,u,l,A,f)}roundClean(){c.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}t.sha256=(0,o.wrapConstructor)((()=>new d))},5426:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.shake256=t.shake128=t.keccak_512=t.keccak_384=t.keccak_256=t.keccak_224=t.sha3_512=t.sha3_384=t.sha3_256=t.sha3_224=t.Keccak=t.keccakP=void 0;const a=i(n(6873)),s=n(8089),[c,d,u]=[[],[],[]],l=BigInt(0),A=BigInt(1),f=BigInt(2),h=BigInt(7),p=BigInt(256),g=BigInt(113);for(let e=0,t=A,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],c.push(2*(5*r+n)),d.push((e+1)*(e+2)/2%64);let o=l;for(let e=0;e<7;e++)t=(t<>h)*g)%p,t&f&&(o^=A<<(A<n>32?a.rotlBH(e,t,n):a.rotlSH(e,t,n),b=(e,t,n)=>n>32?a.rotlBL(e,t,n):a.rotlSL(e,t,n);function I(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const r=(t+8)%10,o=(t+2)%10,i=n[o],a=n[o+1],s=y(i,a,1)^n[r],c=b(i,a,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],o=e[3];for(let n=0;n<24;n++){const r=d[n],i=y(t,o,r),a=b(t,o,r),s=c[n];t=e[s],o=e[s+1],e[s]=i,e[s+1]=a}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=m[r],e[1]^=v[r]}n.fill(0)}t.keccakP=I;class C extends s.Hash{constructor(e,t,n,r=!1,o=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=o,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,(0,s.assertNumber)(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=(0,s.u32)(this.state)}keccak(){I(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){if(this.destroyed)throw new Error("instance is destroyed");if(this.finished)throw new Error("digest() was already called");const{blockLen:t,state:n}=this,r=(e=(0,s.toBytes)(e)).length;for(let o=0;o=this.blockLen&&this.keccak();const r=Math.min(this.blockLen-this.posOut,n-t);e.set(this.state.subarray(this.posOut,this.posOut+r),t),this.posOut+=r,t+=r}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return(0,s.assertNumber)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(e.length(0,s.wrapConstructor)((()=>new C(t,e,n)));t.sha3_224=E(6,144,28),t.sha3_256=E(6,136,32),t.sha3_384=E(6,104,48),t.sha3_512=E(6,72,64),t.keccak_224=E(1,144,28),t.keccak_256=E(1,136,32),t.keccak_384=E(1,104,48),t.keccak_512=E(1,72,64);const w=(e,t,n)=>(0,s.wrapConstructorWithOpts)(((r={})=>new C(t,e,void 0!==r.dkLen?r.dkLen:n,!0)));t.shake128=w(31,168,16),t.shake256=w(31,136,32)},6262:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.sha384=t.sha512_256=t.sha512=t.SHA512=void 0;const a=n(7505),s=i(n(6873)),c=n(8089),[d,u]=s.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))),l=new Uint32Array(80),A=new Uint32Array(80);class f extends a.SHA2{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:n,Bl:r,Ch:o,Cl:i,Dh:a,Dl:s,Eh:c,El:d,Fh:u,Fl:l,Gh:A,Gl:f,Hh:h,Hl:p}=this;return[e,t,n,r,o,i,a,s,c,d,u,l,A,f,h,p]}set(e,t,n,r,o,i,a,s,c,d,u,l,A,f,h,p){this.Ah=0|e,this.Al=0|t,this.Bh=0|n,this.Bl=0|r,this.Ch=0|o,this.Cl=0|i,this.Dh=0|a,this.Dl=0|s,this.Eh=0|c,this.El=0|d,this.Fh=0|u,this.Fl=0|l,this.Gh=0|A,this.Gl=0|f,this.Hh=0|h,this.Hl=0|p}process(e,t){for(let n=0;n<16;n++,t+=4)l[n]=e.getUint32(t),A[n]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|l[e-15],n=0|A[e-15],r=s.rotrSH(t,n,1)^s.rotrSH(t,n,8)^s.shrSH(t,n,7),o=s.rotrSL(t,n,1)^s.rotrSL(t,n,8)^s.shrSL(t,n,7),i=0|l[e-2],a=0|A[e-2],c=s.rotrSH(i,a,19)^s.rotrBH(i,a,61)^s.shrSH(i,a,6),d=s.rotrSL(i,a,19)^s.rotrBL(i,a,61)^s.shrSL(i,a,6),u=s.add4L(o,d,A[e-7],A[e-16]),f=s.add4H(u,r,c,l[e-7],l[e-16]);l[e]=0|f,A[e]=0|u}let{Ah:n,Al:r,Bh:o,Bl:i,Ch:a,Cl:c,Dh:f,Dl:h,Eh:p,El:g,Fh:m,Fl:v,Gh:y,Gl:b,Hh:I,Hl:C}=this;for(let e=0;e<80;e++){const t=s.rotrSH(p,g,14)^s.rotrSH(p,g,18)^s.rotrBH(p,g,41),E=s.rotrSL(p,g,14)^s.rotrSL(p,g,18)^s.rotrBL(p,g,41),w=p&m^~p&y,B=g&v^~g&b,_=s.add5L(C,E,B,u[e],A[e]),S=s.add5H(_,I,t,w,d[e],l[e]),k=0|_,O=s.rotrSH(n,r,28)^s.rotrBH(n,r,34)^s.rotrBH(n,r,39),Q=s.rotrSL(n,r,28)^s.rotrBL(n,r,34)^s.rotrBL(n,r,39),R=n&o^n&a^o&a,P=r&i^r&c^i&c;I=0|y,C=0|b,y=0|m,b=0|v,m=0|p,v=0|g,({h:p,l:g}=s.add(0|f,0|h,0|S,0|k)),f=0|a,h=0|c,a=0|o,c=0|i,o=0|n,i=0|r;const N=s.add3L(k,Q,P);n=s.add3H(N,S,O,R),r=0|N}({h:n,l:r}=s.add(0|this.Ah,0|this.Al,0|n,0|r)),({h:o,l:i}=s.add(0|this.Bh,0|this.Bl,0|o,0|i)),({h:a,l:c}=s.add(0|this.Ch,0|this.Cl,0|a,0|c)),({h:f,l:h}=s.add(0|this.Dh,0|this.Dl,0|f,0|h)),({h:p,l:g}=s.add(0|this.Eh,0|this.El,0|p,0|g)),({h:m,l:v}=s.add(0|this.Fh,0|this.Fl,0|m,0|v)),({h:y,l:b}=s.add(0|this.Gh,0|this.Gl,0|y,0|b)),({h:I,l:C}=s.add(0|this.Hh,0|this.Hl,0|I,0|C)),this.set(n,r,o,i,a,c,f,h,p,g,m,v,y,b,I,C)}roundClean(){l.fill(0),A.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}t.SHA512=f;class h extends f{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class p extends f{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}t.sha512=(0,c.wrapConstructor)((()=>new f)),t.sha512_256=(0,c.wrapConstructor)((()=>new h)),t.sha384=(0,c.wrapConstructor)((()=>new p))},8089:(e,t,n)=>{"use strict";e=n.nmd(e),Object.defineProperty(t,"__esModule",{value:!0}),t.randomBytes=t.wrapConstructorWithOpts=t.wrapConstructor=t.checkOpts=t.Hash=t.assertHash=t.assertBytes=t.assertBool=t.assertNumber=t.concatBytes=t.toBytes=t.utf8ToBytes=t.asyncLoop=t.nextTick=t.hexToBytes=t.bytesToHex=t.isLE=t.rotr=t.createView=t.u32=t.u8=void 0;const r=n(1945);if(t.u8=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t.u32=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),t.createView=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),t.rotr=(e,t)=>e<<32-t|e>>>t,t.isLE=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],!t.isLE)throw new Error("Non little-endian hardware is not supported");const o=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function i(e){if("string"!=typeof e)throw new TypeError("utf8ToBytes expected string, got "+typeof e);return(new TextEncoder).encode(e)}function a(e){if("string"==typeof e&&(e=i(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}function s(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}t.bytesToHex=function(e){let t="";for(let n=0;n{const t="function"==typeof e.require&&e.require.bind(e);try{if(t){const{setImmediate:e}=t("timers");return()=>new Promise((t=>e(t)))}}catch(e){}return()=>new Promise((e=>setTimeout(e,0)))})(),t.asyncLoop=async function(e,n,r){let o=Date.now();for(let i=0;i=0&&ee instanceof Uint8Array)))throw new Error("Uint8Array list expected");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);for(let t=0,r=0;te().update(a(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t},t.wrapConstructorWithOpts=function(e){const t=(t,n)=>e(n).update(a(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t},t.randomBytes=function(e=32){if(r.crypto.web)return r.crypto.web.getRandomValues(new Uint8Array(e));if(r.crypto.node)return new Uint8Array(r.crypto.node.randomBytes(e).buffer);throw new Error("The environment doesn't have randomBytes function")}},4537:e=>{"use strict";e.exports=function(e,t){for(var n=new Array(arguments.length-1),r=0,o=2,i=!0;o{"use strict";var n=t;n.length=function(e){var t=e.length;if(!t)return 0;for(var n=0;--t%4>1&&"="===e.charAt(t);)++n;return Math.ceil(3*e.length)/4-n};for(var r=new Array(64),o=new Array(123),i=0;i<64;)o[r[i]=i<26?i+65:i<52?i+71:i<62?i-4:i-59|43]=i++;n.encode=function(e,t,n){for(var o,i=null,a=[],s=0,c=0;t>2],o=(3&d)<<4,c=1;break;case 1:a[s++]=r[o|d>>4],o=(15&d)<<2,c=2;break;case 2:a[s++]=r[o|d>>6],a[s++]=r[63&d],c=0}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0)}return c&&(a[s++]=r[o],a[s++]=61,1===c&&(a[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var a="invalid encoding";n.decode=function(e,t,n){for(var r,i=n,s=0,c=0;c1)break;if(void 0===(d=o[d]))throw Error(a);switch(s){case 0:r=d,s=1;break;case 1:t[n++]=r<<2|(48&d)>>4,r=d,s=2;break;case 2:t[n++]=(15&r)<<4|(60&d)>>2,r=d,s=3;break;case 3:t[n++]=(3&r)<<6|d,s=0}}if(1===s)throw Error(a);return n-i},n.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},9211:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var n=this._listeners[e],r=0;r{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),n=new Uint8Array(t.buffer),r=128===n[3];function o(e,r,o){t[0]=e,r[o]=n[0],r[o+1]=n[1],r[o+2]=n[2],r[o+3]=n[3]}function i(e,r,o){t[0]=e,r[o]=n[3],r[o+1]=n[2],r[o+2]=n[1],r[o+3]=n[0]}function a(e,r){return n[0]=e[r],n[1]=e[r+1],n[2]=e[r+2],n[3]=e[r+3],t[0]}function s(e,r){return n[3]=e[r],n[2]=e[r+1],n[1]=e[r+2],n[0]=e[r+3],t[0]}e.writeFloatLE=r?o:i,e.writeFloatBE=r?i:o,e.readFloatLE=r?a:s,e.readFloatBE=r?s:a}():function(){function t(e,t,n,r){var o=t<0?1:0;if(o&&(t=-t),0===t)e(1/t>0?0:2147483648,n,r);else if(isNaN(t))e(2143289344,n,r);else if(t>34028234663852886e22)e((o<<31|2139095040)>>>0,n,r);else if(t<11754943508222875e-54)e((o<<31|Math.round(t/1401298464324817e-60))>>>0,n,r);else{var i=Math.floor(Math.log(t)/Math.LN2);e((o<<31|i+127<<23|8388607&Math.round(t*Math.pow(2,-i)*8388608))>>>0,n,r)}}function a(e,t,n){var r=e(t,n),o=2*(r>>31)+1,i=r>>>23&255,a=8388607&r;return 255===i?a?NaN:o*(1/0):0===i?1401298464324817e-60*o*a:o*Math.pow(2,i-150)*(a+8388608)}e.writeFloatLE=t.bind(null,n),e.writeFloatBE=t.bind(null,r),e.readFloatLE=a.bind(null,o),e.readFloatBE=a.bind(null,i)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),n=new Uint8Array(t.buffer),r=128===n[7];function o(e,r,o){t[0]=e,r[o]=n[0],r[o+1]=n[1],r[o+2]=n[2],r[o+3]=n[3],r[o+4]=n[4],r[o+5]=n[5],r[o+6]=n[6],r[o+7]=n[7]}function i(e,r,o){t[0]=e,r[o]=n[7],r[o+1]=n[6],r[o+2]=n[5],r[o+3]=n[4],r[o+4]=n[3],r[o+5]=n[2],r[o+6]=n[1],r[o+7]=n[0]}function a(e,r){return n[0]=e[r],n[1]=e[r+1],n[2]=e[r+2],n[3]=e[r+3],n[4]=e[r+4],n[5]=e[r+5],n[6]=e[r+6],n[7]=e[r+7],t[0]}function s(e,r){return n[7]=e[r],n[6]=e[r+1],n[5]=e[r+2],n[4]=e[r+3],n[3]=e[r+4],n[2]=e[r+5],n[1]=e[r+6],n[0]=e[r+7],t[0]}e.writeDoubleLE=r?o:i,e.writeDoubleBE=r?i:o,e.readDoubleLE=r?a:s,e.readDoubleBE=r?s:a}():function(){function t(e,t,n,r,o,i){var a=r<0?1:0;if(a&&(r=-r),0===r)e(0,o,i+t),e(1/r>0?0:2147483648,o,i+n);else if(isNaN(r))e(0,o,i+t),e(2146959360,o,i+n);else if(r>17976931348623157e292)e(0,o,i+t),e((a<<31|2146435072)>>>0,o,i+n);else{var s;if(r<22250738585072014e-324)e((s=r/5e-324)>>>0,o,i+t),e((a<<31|s/4294967296)>>>0,o,i+n);else{var c=Math.floor(Math.log(r)/Math.LN2);1024===c&&(c=1023),e(4503599627370496*(s=r*Math.pow(2,-c))>>>0,o,i+t),e((a<<31|c+1023<<20|1048576*s&1048575)>>>0,o,i+n)}}}function a(e,t,n,r,o){var i=e(r,o+t),a=e(r,o+n),s=2*(a>>31)+1,c=a>>>20&2047,d=4294967296*(1048575&a)+i;return 2047===c?d?NaN:s*(1/0):0===c?5e-324*s*d:s*Math.pow(2,c-1075)*(d+4503599627370496)}e.writeDoubleLE=t.bind(null,n,0,4),e.writeDoubleBE=t.bind(null,r,4,0),e.readDoubleLE=a.bind(null,o,0,4),e.readDoubleBE=a.bind(null,i,4,0)}(),e}function n(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}function r(e,t,n){t[n]=e>>>24,t[n+1]=e>>>16&255,t[n+2]=e>>>8&255,t[n+3]=255&e}function o(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function i(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},7199:module=>{"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},6662:e=>{"use strict";e.exports=function(e,t,n){var r=n||8192,o=r>>>1,i=null,a=r;return function(n){if(n<1||n>o)return e(n);a+n>r&&(i=e(r),a=0);var s=t.call(i,a,a+=n);return 7&a&&(a=1+(7|a)),s}}},4997:(e,t)=>{"use strict";var n=t;n.length=function(e){for(var t=0,n=0,r=0;r191&&r<224?i[a++]=(31&r)<<6|63&e[t++]:r>239&&r<365?(r=((7&r)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,i[a++]=55296+(r>>10),i[a++]=56320+(1023&r)):i[a++]=(15&r)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,i.slice(0,a))),o.join("")):String.fromCharCode.apply(String,i.slice(0,a))},n.write=function(e,t,n){for(var r,o,i=n,a=0;a>6|192,t[n++]=63&r|128):55296==(64512&r)&&56320==(64512&(o=e.charCodeAt(a+1)))?(r=65536+((1023&r)<<10)+(1023&o),++a,t[n++]=r>>18|240,t[n++]=r>>12&63|128,t[n++]=r>>6&63|128,t[n++]=63&r|128):(t[n++]=r>>12|224,t[n++]=r>>6&63|128,t[n++]=63&r|128);return n-i}},9669:(e,t,n)=>{e.exports=n(1609)},7970:(e,t,n)=>{"use strict";var r=n(4867),o=n(6026),i=n(4097),a=n(5327),s=n(2181),c=n(5687),d=n(938).http,u=n(938).https,l=n(5034),A=n(9796),f=n(8593),h=n(5061),p=n(481),g=/https:?/;function m(e,t,n){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=n,t.auth){var r=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+r}e.beforeRedirect=function(e){e.headers.host=e.host,m(e,t,e.href)}}e.exports=function(e){return new Promise((function(t,n){var v=function(e){t(e)},y=function(e){n(e)},b=e.data,I=e.headers;if("User-Agent"in I||"user-agent"in I?I["User-Agent"]||I["user-agent"]||(delete I["User-Agent"],delete I["user-agent"]):I["User-Agent"]="axios/"+f.version,b&&!r.isStream(b)){if(Buffer.isBuffer(b));else if(r.isArrayBuffer(b))b=Buffer.from(new Uint8Array(b));else{if(!r.isString(b))return y(h("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));b=Buffer.from(b,"utf-8")}I["Content-Length"]=b.length}var C=void 0;e.auth&&(C=(e.auth.username||"")+":"+(e.auth.password||""));var E=i(e.baseURL,e.url),w=l.parse(E),B=w.protocol||"http:";if(!C&&w.auth){var _=w.auth.split(":");C=(_[0]||"")+":"+(_[1]||"")}C&&delete I.Authorization;var S=g.test(B),k=S?e.httpsAgent:e.httpAgent,O={path:a(w.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:I,agent:k,agents:{http:e.httpAgent,https:e.httpsAgent},auth:C};e.socketPath?O.socketPath=e.socketPath:(O.hostname=w.hostname,O.port=w.port);var Q,R=e.proxy;if(!R&&!1!==R){var P=B.slice(0,-1)+"_proxy",N=process.env[P]||process.env[P.toUpperCase()];if(N){var x=l.parse(N),D=process.env.no_proxy||process.env.NO_PROXY,T=!0;if(D&&(T=!D.split(",").map((function(e){return e.trim()})).some((function(e){return!!e&&("*"===e||"."===e[0]&&w.hostname.substr(w.hostname.length-e.length)===e||w.hostname===e)}))),T&&(R={host:x.hostname,port:x.port,protocol:x.protocol},x.auth)){var M=x.auth.split(":");R.auth={username:M[0],password:M[1]}}}}R&&(O.headers.host=w.hostname+(w.port?":"+w.port:""),m(O,R,B+"//"+w.hostname+(w.port?":"+w.port:"")+O.path));var U=S&&(!R||g.test(R.protocol));e.transport?Q=e.transport:0===e.maxRedirects?Q=U?c:s:(e.maxRedirects&&(O.maxRedirects=e.maxRedirects),Q=U?u:d),e.maxBodyLength>-1&&(O.maxBodyLength=e.maxBodyLength);var H=Q.request(O,(function(t){if(!H.aborted){var n=t,i=t.req||H;if(204!==t.statusCode&&"HEAD"!==i.method&&!1!==e.decompress)switch(t.headers["content-encoding"]){case"gzip":case"compress":case"deflate":n=n.pipe(A.createUnzip()),delete t.headers["content-encoding"]}var a={status:t.statusCode,statusText:t.statusMessage,headers:t.headers,config:e,request:i};if("stream"===e.responseType)a.data=n,o(v,y,a);else{var s=[],c=0;n.on("data",(function(t){s.push(t),c+=t.length,e.maxContentLength>-1&&c>e.maxContentLength&&(n.destroy(),y(h("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,i)))})),n.on("error",(function(t){H.aborted||y(p(t,e,null,i))})),n.on("end",(function(){var t=Buffer.concat(s);"arraybuffer"!==e.responseType&&(t=t.toString(e.responseEncoding),e.responseEncoding&&"utf8"!==e.responseEncoding||(t=r.stripBOM(t))),a.data=t,o(v,y,a)}))}}}));if(H.on("error",(function(t){H.aborted&&"ERR_FR_TOO_MANY_REDIRECTS"!==t.code||y(p(t,e,null,H))})),e.timeout){var j=parseInt(e.timeout,10);if(isNaN(j))return void y(h("error trying to parse `config.timeout` to int",e,"ERR_PARSE_TIMEOUT",H));H.setTimeout(j,(function(){H.abort(),y(h("timeout of "+j+"ms exceeded",e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",H))}))}e.cancelToken&&e.cancelToken.promise.then((function(e){H.aborted||(H.abort(),y(e))})),r.isStream(b)?b.on("error",(function(t){y(p(t,e,null,H))})).pipe(H):H.end(b)}))}},5448:(e,t,n)=>{"use strict";var r=n(4867),o=n(6026),i=n(4372),a=n(5327),s=n(4097),c=n(4109),d=n(7985),u=n(5061);e.exports=function(e){return new Promise((function(t,n){var l=e.data,A=e.headers,f=e.responseType;r.isFormData(l)&&delete A["Content-Type"];var h=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",g=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";A.Authorization="Basic "+btoa(p+":"+g)}var m=s(e.baseURL,e.url);function v(){if(h){var r="getAllResponseHeaders"in h?c(h.getAllResponseHeaders()):null,i={data:f&&"text"!==f&&"json"!==f?h.response:h.responseText,status:h.status,statusText:h.statusText,headers:r,config:e,request:h};o(t,n,i),h=null}}if(h.open(e.method.toUpperCase(),a(m,e.params,e.paramsSerializer),!0),h.timeout=e.timeout,"onloadend"in h?h.onloadend=v:h.onreadystatechange=function(){h&&4===h.readyState&&(0!==h.status||h.responseURL&&0===h.responseURL.indexOf("file:"))&&setTimeout(v)},h.onabort=function(){h&&(n(u("Request aborted",e,"ECONNABORTED",h)),h=null)},h.onerror=function(){n(u("Network Error",e,null,h)),h=null},h.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(u(t,e,e.transitional&&e.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",h)),h=null},r.isStandardBrowserEnv()){var y=(e.withCredentials||d(m))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;y&&(A[e.xsrfHeaderName]=y)}"setRequestHeader"in h&&r.forEach(A,(function(e,t){void 0===l&&"content-type"===t.toLowerCase()?delete A[t]:h.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(h.withCredentials=!!e.withCredentials),f&&"json"!==f&&(h.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&h.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&h.upload&&h.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){h&&(h.abort(),n(e),h=null)})),l||(l=null),h.send(l)}))}},1609:(e,t,n)=>{"use strict";var r=n(4867),o=n(1849),i=n(321),a=n(7185);function s(e){var t=new i(e),n=o(i.prototype.request,t);return r.extend(n,i.prototype,t),r.extend(n,t),n}var c=s(n(5655));c.Axios=i,c.create=function(e){return s(a(c.defaults,e))},c.Cancel=n(5263),c.CancelToken=n(4972),c.isCancel=n(6502),c.all=function(e){return Promise.all(e)},c.spread=n(8713),c.isAxiosError=n(6268),e.exports=c,e.exports.default=c},5263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},4972:(e,t,n)=>{"use strict";var r=n(5263);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},6502:e=>{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:(e,t,n)=>{"use strict";var r=n(4867),o=n(5327),i=n(782),a=n(3572),s=n(7185),c=n(4875),d=c.validators;function u(e){this.defaults=e,this.interceptors={request:new i,response:new i}}u.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&c.assertOptions(t,{silentJSONParsing:d.transitional(d.boolean,"1.0.0"),forcedJSONParsing:d.transitional(d.boolean,"1.0.0"),clarifyTimeoutError:d.transitional(d.boolean,"1.0.0")},!1);var n=[],r=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(r=r&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var o,i=[];if(this.interceptors.response.forEach((function(e){i.push(e.fulfilled,e.rejected)})),!r){var u=[a,void 0];for(Array.prototype.unshift.apply(u,n),u=u.concat(i),o=Promise.resolve(e);u.length;)o=o.then(u.shift(),u.shift());return o}for(var l=e;n.length;){var A=n.shift(),f=n.shift();try{l=A(l)}catch(e){f(e);break}}try{o=a(l)}catch(e){return Promise.reject(e)}for(;i.length;)o=o.then(i.shift(),i.shift());return o},u.prototype.getUri=function(e){return e=s(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(s(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(s(r||{},{method:e,url:t,data:n}))}})),e.exports=u},782:(e,t,n)=>{"use strict";var r=n(4867);function o(){this.handlers=[]}o.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},4097:(e,t,n)=>{"use strict";var r=n(1793),o=n(7303);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},5061:(e,t,n)=>{"use strict";var r=n(481);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},3572:(e,t,n)=>{"use strict";var r=n(4867),o=n(8527),i=n(6502),a=n(5655);function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return s(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return s(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(s(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:e=>{"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},7185:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){t=t||{};var n={},o=["url","method","data"],i=["headers","auth","proxy","params"],a=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],s=["validateStatus"];function c(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function d(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=c(void 0,e[o])):n[o]=c(e[o],t[o])}r.forEach(o,(function(e){r.isUndefined(t[e])||(n[e]=c(void 0,t[e]))})),r.forEach(i,d),r.forEach(a,(function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=c(void 0,e[o])):n[o]=c(void 0,t[o])})),r.forEach(s,(function(r){r in t?n[r]=c(e[r],t[r]):r in e&&(n[r]=c(void 0,e[r]))}));var u=o.concat(i).concat(a).concat(s),l=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===u.indexOf(e)}));return r.forEach(l,d),n}},6026:(e,t,n)=>{"use strict";var r=n(5061);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},8527:(e,t,n)=>{"use strict";var r=n(4867),o=n(5655);e.exports=function(e,t,n){var i=this||o;return r.forEach(n,(function(n){e=n.call(i,e,t)})),e}},5655:(e,t,n)=>{"use strict";var r=n(4867),o=n(6016),i=n(481),a={"Content-Type":"application/x-www-form-urlencoded"};function s(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var c,d={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:("undefined"!=typeof XMLHttpRequest?c=n(5448):"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)&&(c=n(7970)),c),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(s(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(s(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(0,JSON.parse)(e),r.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional,n=t&&t.silentJSONParsing,o=t&&t.forcedJSONParsing,a=!n&&"json"===this.responseType;if(a||o&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(a){if("SyntaxError"===e.name)throw i(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){d.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){d.headers[e]=r.merge(a)})),e.exports=d},1849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r{"use strict";var r=n(4867);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var a=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))})))})),i=a.join("&")}if(i){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},1793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},7985:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},6016:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},4109:(e,t,n)=>{"use strict";var r=n(4867),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},4875:(e,t,n)=>{"use strict";var r=n(8593),o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var i={},a=r.version.split(".");function s(e,t){for(var n=t?t.split("."):a,r=e.split("."),o=0;o<3;o++){if(n[o]>r[o])return!0;if(n[o]0;){var i=r[o],a=t[i];if(a){var s=e[i],c=void 0===s||a(s,i,e);if(!0!==c)throw new TypeError("option "+i+" must be "+c)}else if(!0!==n)throw Error("Unknown option "+i)}},validators:o}},4867:(e,t,n)=>{"use strict";var r=n(1849),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function c(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function d(e){return"[object Function]"===o.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n{"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,i=c(e),a=i[0],s=i[1],d=new o(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),u=0,l=s>0?a-4:a;for(n=0;n>16&255,d[u++]=t>>8&255,d[u++]=255&t;return 2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,d[u++]=255&t),1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,d[u++]=t>>8&255,d[u++]=255&t),d},t.fromByteArray=function(e){for(var t,r=e.length,o=r%3,i=[],a=16383,s=0,c=r-o;sc?c:s+a));return 1===o?(t=e[r-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===o&&(t=(e[r-2]<<8)+e[r-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),i.join("")};for(var n=[],r=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=i.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function d(e,t,r){for(var o,i,a=[],s=t;s>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},2882:e=>{"use strict";for(var t="qpzry9x8gf2tvdw0s3jn54khce6mua7l",n={},r=0;r>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function a(e){for(var t=1,n=0;n126)return"Invalid prefix ("+e+")";t=i(t)^r>>5}for(t=i(t),n=0;nt)return"Exceeds length limit";var r=e.toLowerCase(),o=e.toUpperCase();if(e!==r&&e!==o)return"Mixed-case string "+e;var s=(e=r).lastIndexOf("1");if(-1===s)return"No separator character for "+e;if(0===s)return"Missing prefix for "+e;var c=e.slice(0,s),d=e.slice(s+1);if(d.length<6)return"Data too short";var u=a(c);if("string"==typeof u)return u;for(var l=[],A=0;A=d.length||l.push(h)}return 1!==u?"Invalid checksum for "+e:{prefix:c,words:l}}function c(e,t,n,r){for(var o=0,i=0,a=(1<=n;)i-=n,s.push(o>>i&a);if(r)i>0&&s.push(o<=t)return"Excess padding";if(o<r)throw new TypeError("Exceeds length limit");var o=a(e=e.toLowerCase());if("string"==typeof o)throw new Error(o);for(var s=e+"1",c=0;c>5!=0)throw new Error("Non 5-bit word");o=i(o)^d,s+=t.charAt(d)}for(c=0;c<6;++c)o=i(o);for(o^=1,c=0;c<6;++c)s+=t.charAt(o>>5*(5-c)&31);return s},toWordsUnsafe:function(e){var t=c(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=c(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=c(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=c(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}}},3550:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(4300).Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function c(e,t,n){var r=s(e,n);return n-1>=t&&(r|=s(e,n-1)<<4),r}function d(e,t,n,o){for(var i=0,a=0,s=Math.min(e.length,n),c=t;c=49?d-49+10:d>=17?d-17+10:d,r(d>=0&&a0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)o=c(e,t,r)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,o=1;o<=67108863;o*=t)r++;r--,o=o/t|0;for(var i=e.length-n,a=i%r,s=Math.min(i,i-a)+n,c=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?""}var A=["","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"],f=[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],h=[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,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;n.words[0]=s;for(var d=1;d>>26,l=67108863&c,A=Math.min(d,t.length-1),f=Math.max(0,d-e.length+1);f<=A;f++){var h=d-f|0;u+=(a=(o=0|e.words[h])*(i=0|t.words[f])+l)/67108864|0,l=67108863&a}n.words[d]=0|l,c=0|u}return 0!==c?n.words[d]=0|c:n.length--,n._strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?A[6-c.length]+c+n:c+n,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var d=f[e],u=h[e];n="";var l=this.clone();for(l.negative=0;!l.isZero();){var p=l.modrn(u).toString(e);n=(l=l.idivn(u)).isZero()?p+n:A[d-p.length]+p+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){this._strip();var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,i);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,o),a},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,o=0,i=0;o>8&255),n>16&255),6===i?(n>24&255),r=0,i=0):(r=a>>>24,i+=2)}if(n=0&&(e[n--]=a>>8&255),n>=0&&(e[n--]=a>>16&255),6===i?(n>=0&&(e[n--]=a>>24&255),r=0,i=0):(r=a>>>24,i+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=n.length,0!==o)this.words[this.length]=o,this.length++;else if(n!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.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 n,r,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,f=0|a[1],h=8191&f,p=f>>>13,g=0|a[2],m=8191&g,v=g>>>13,y=0|a[3],b=8191&y,I=y>>>13,C=0|a[4],E=8191&C,w=C>>>13,B=0|a[5],_=8191&B,S=B>>>13,k=0|a[6],O=8191&k,Q=k>>>13,R=0|a[7],P=8191&R,N=R>>>13,x=0|a[8],D=8191&x,T=x>>>13,M=0|a[9],U=8191&M,H=M>>>13,j=0|s[0],J=8191&j,F=j>>>13,G=0|s[1],L=8191&G,q=G>>>13,Y=0|s[2],V=8191&Y,W=Y>>>13,K=0|s[3],Z=8191&K,z=K>>>13,X=0|s[4],$=8191&X,ee=X>>>13,te=0|s[5],ne=8191&te,re=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,de=se>>>13,ue=0|s[8],le=8191&ue,Ae=ue>>>13,fe=0|s[9],he=8191&fe,pe=fe>>>13;n.negative=e.negative^t.negative,n.length=19;var ge=(d+(r=Math.imul(l,J))|0)+((8191&(o=(o=Math.imul(l,F))+Math.imul(A,J)|0))<<13)|0;d=((i=Math.imul(A,F))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(h,J),o=(o=Math.imul(h,F))+Math.imul(p,J)|0,i=Math.imul(p,F);var me=(d+(r=r+Math.imul(l,L)|0)|0)+((8191&(o=(o=o+Math.imul(l,q)|0)+Math.imul(A,L)|0))<<13)|0;d=((i=i+Math.imul(A,q)|0)+(o>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(m,J),o=(o=Math.imul(m,F))+Math.imul(v,J)|0,i=Math.imul(v,F),r=r+Math.imul(h,L)|0,o=(o=o+Math.imul(h,q)|0)+Math.imul(p,L)|0,i=i+Math.imul(p,q)|0;var ve=(d+(r=r+Math.imul(l,V)|0)|0)+((8191&(o=(o=o+Math.imul(l,W)|0)+Math.imul(A,V)|0))<<13)|0;d=((i=i+Math.imul(A,W)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(b,J),o=(o=Math.imul(b,F))+Math.imul(I,J)|0,i=Math.imul(I,F),r=r+Math.imul(m,L)|0,o=(o=o+Math.imul(m,q)|0)+Math.imul(v,L)|0,i=i+Math.imul(v,q)|0,r=r+Math.imul(h,V)|0,o=(o=o+Math.imul(h,W)|0)+Math.imul(p,V)|0,i=i+Math.imul(p,W)|0;var ye=(d+(r=r+Math.imul(l,Z)|0)|0)+((8191&(o=(o=o+Math.imul(l,z)|0)+Math.imul(A,Z)|0))<<13)|0;d=((i=i+Math.imul(A,z)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(E,J),o=(o=Math.imul(E,F))+Math.imul(w,J)|0,i=Math.imul(w,F),r=r+Math.imul(b,L)|0,o=(o=o+Math.imul(b,q)|0)+Math.imul(I,L)|0,i=i+Math.imul(I,q)|0,r=r+Math.imul(m,V)|0,o=(o=o+Math.imul(m,W)|0)+Math.imul(v,V)|0,i=i+Math.imul(v,W)|0,r=r+Math.imul(h,Z)|0,o=(o=o+Math.imul(h,z)|0)+Math.imul(p,Z)|0,i=i+Math.imul(p,z)|0;var be=(d+(r=r+Math.imul(l,$)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(A,$)|0))<<13)|0;d=((i=i+Math.imul(A,ee)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(_,J),o=(o=Math.imul(_,F))+Math.imul(S,J)|0,i=Math.imul(S,F),r=r+Math.imul(E,L)|0,o=(o=o+Math.imul(E,q)|0)+Math.imul(w,L)|0,i=i+Math.imul(w,q)|0,r=r+Math.imul(b,V)|0,o=(o=o+Math.imul(b,W)|0)+Math.imul(I,V)|0,i=i+Math.imul(I,W)|0,r=r+Math.imul(m,Z)|0,o=(o=o+Math.imul(m,z)|0)+Math.imul(v,Z)|0,i=i+Math.imul(v,z)|0,r=r+Math.imul(h,$)|0,o=(o=o+Math.imul(h,ee)|0)+Math.imul(p,$)|0,i=i+Math.imul(p,ee)|0;var Ie=(d+(r=r+Math.imul(l,ne)|0)|0)+((8191&(o=(o=o+Math.imul(l,re)|0)+Math.imul(A,ne)|0))<<13)|0;d=((i=i+Math.imul(A,re)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(O,J),o=(o=Math.imul(O,F))+Math.imul(Q,J)|0,i=Math.imul(Q,F),r=r+Math.imul(_,L)|0,o=(o=o+Math.imul(_,q)|0)+Math.imul(S,L)|0,i=i+Math.imul(S,q)|0,r=r+Math.imul(E,V)|0,o=(o=o+Math.imul(E,W)|0)+Math.imul(w,V)|0,i=i+Math.imul(w,W)|0,r=r+Math.imul(b,Z)|0,o=(o=o+Math.imul(b,z)|0)+Math.imul(I,Z)|0,i=i+Math.imul(I,z)|0,r=r+Math.imul(m,$)|0,o=(o=o+Math.imul(m,ee)|0)+Math.imul(v,$)|0,i=i+Math.imul(v,ee)|0,r=r+Math.imul(h,ne)|0,o=(o=o+Math.imul(h,re)|0)+Math.imul(p,ne)|0,i=i+Math.imul(p,re)|0;var Ce=(d+(r=r+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(A,ie)|0))<<13)|0;d=((i=i+Math.imul(A,ae)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(P,J),o=(o=Math.imul(P,F))+Math.imul(N,J)|0,i=Math.imul(N,F),r=r+Math.imul(O,L)|0,o=(o=o+Math.imul(O,q)|0)+Math.imul(Q,L)|0,i=i+Math.imul(Q,q)|0,r=r+Math.imul(_,V)|0,o=(o=o+Math.imul(_,W)|0)+Math.imul(S,V)|0,i=i+Math.imul(S,W)|0,r=r+Math.imul(E,Z)|0,o=(o=o+Math.imul(E,z)|0)+Math.imul(w,Z)|0,i=i+Math.imul(w,z)|0,r=r+Math.imul(b,$)|0,o=(o=o+Math.imul(b,ee)|0)+Math.imul(I,$)|0,i=i+Math.imul(I,ee)|0,r=r+Math.imul(m,ne)|0,o=(o=o+Math.imul(m,re)|0)+Math.imul(v,ne)|0,i=i+Math.imul(v,re)|0,r=r+Math.imul(h,ie)|0,o=(o=o+Math.imul(h,ae)|0)+Math.imul(p,ie)|0,i=i+Math.imul(p,ae)|0;var Ee=(d+(r=r+Math.imul(l,ce)|0)|0)+((8191&(o=(o=o+Math.imul(l,de)|0)+Math.imul(A,ce)|0))<<13)|0;d=((i=i+Math.imul(A,de)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(D,J),o=(o=Math.imul(D,F))+Math.imul(T,J)|0,i=Math.imul(T,F),r=r+Math.imul(P,L)|0,o=(o=o+Math.imul(P,q)|0)+Math.imul(N,L)|0,i=i+Math.imul(N,q)|0,r=r+Math.imul(O,V)|0,o=(o=o+Math.imul(O,W)|0)+Math.imul(Q,V)|0,i=i+Math.imul(Q,W)|0,r=r+Math.imul(_,Z)|0,o=(o=o+Math.imul(_,z)|0)+Math.imul(S,Z)|0,i=i+Math.imul(S,z)|0,r=r+Math.imul(E,$)|0,o=(o=o+Math.imul(E,ee)|0)+Math.imul(w,$)|0,i=i+Math.imul(w,ee)|0,r=r+Math.imul(b,ne)|0,o=(o=o+Math.imul(b,re)|0)+Math.imul(I,ne)|0,i=i+Math.imul(I,re)|0,r=r+Math.imul(m,ie)|0,o=(o=o+Math.imul(m,ae)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,ae)|0,r=r+Math.imul(h,ce)|0,o=(o=o+Math.imul(h,de)|0)+Math.imul(p,ce)|0,i=i+Math.imul(p,de)|0;var we=(d+(r=r+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,Ae)|0)+Math.imul(A,le)|0))<<13)|0;d=((i=i+Math.imul(A,Ae)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(U,J),o=(o=Math.imul(U,F))+Math.imul(H,J)|0,i=Math.imul(H,F),r=r+Math.imul(D,L)|0,o=(o=o+Math.imul(D,q)|0)+Math.imul(T,L)|0,i=i+Math.imul(T,q)|0,r=r+Math.imul(P,V)|0,o=(o=o+Math.imul(P,W)|0)+Math.imul(N,V)|0,i=i+Math.imul(N,W)|0,r=r+Math.imul(O,Z)|0,o=(o=o+Math.imul(O,z)|0)+Math.imul(Q,Z)|0,i=i+Math.imul(Q,z)|0,r=r+Math.imul(_,$)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(S,$)|0,i=i+Math.imul(S,ee)|0,r=r+Math.imul(E,ne)|0,o=(o=o+Math.imul(E,re)|0)+Math.imul(w,ne)|0,i=i+Math.imul(w,re)|0,r=r+Math.imul(b,ie)|0,o=(o=o+Math.imul(b,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,r=r+Math.imul(m,ce)|0,o=(o=o+Math.imul(m,de)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,de)|0,r=r+Math.imul(h,le)|0,o=(o=o+Math.imul(h,Ae)|0)+Math.imul(p,le)|0,i=i+Math.imul(p,Ae)|0;var Be=(d+(r=r+Math.imul(l,he)|0)|0)+((8191&(o=(o=o+Math.imul(l,pe)|0)+Math.imul(A,he)|0))<<13)|0;d=((i=i+Math.imul(A,pe)|0)+(o>>>13)|0)+(Be>>>26)|0,Be&=67108863,r=Math.imul(U,L),o=(o=Math.imul(U,q))+Math.imul(H,L)|0,i=Math.imul(H,q),r=r+Math.imul(D,V)|0,o=(o=o+Math.imul(D,W)|0)+Math.imul(T,V)|0,i=i+Math.imul(T,W)|0,r=r+Math.imul(P,Z)|0,o=(o=o+Math.imul(P,z)|0)+Math.imul(N,Z)|0,i=i+Math.imul(N,z)|0,r=r+Math.imul(O,$)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(Q,$)|0,i=i+Math.imul(Q,ee)|0,r=r+Math.imul(_,ne)|0,o=(o=o+Math.imul(_,re)|0)+Math.imul(S,ne)|0,i=i+Math.imul(S,re)|0,r=r+Math.imul(E,ie)|0,o=(o=o+Math.imul(E,ae)|0)+Math.imul(w,ie)|0,i=i+Math.imul(w,ae)|0,r=r+Math.imul(b,ce)|0,o=(o=o+Math.imul(b,de)|0)+Math.imul(I,ce)|0,i=i+Math.imul(I,de)|0,r=r+Math.imul(m,le)|0,o=(o=o+Math.imul(m,Ae)|0)+Math.imul(v,le)|0,i=i+Math.imul(v,Ae)|0;var _e=(d+(r=r+Math.imul(h,he)|0)|0)+((8191&(o=(o=o+Math.imul(h,pe)|0)+Math.imul(p,he)|0))<<13)|0;d=((i=i+Math.imul(p,pe)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(U,V),o=(o=Math.imul(U,W))+Math.imul(H,V)|0,i=Math.imul(H,W),r=r+Math.imul(D,Z)|0,o=(o=o+Math.imul(D,z)|0)+Math.imul(T,Z)|0,i=i+Math.imul(T,z)|0,r=r+Math.imul(P,$)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(N,$)|0,i=i+Math.imul(N,ee)|0,r=r+Math.imul(O,ne)|0,o=(o=o+Math.imul(O,re)|0)+Math.imul(Q,ne)|0,i=i+Math.imul(Q,re)|0,r=r+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,ae)|0)+Math.imul(S,ie)|0,i=i+Math.imul(S,ae)|0,r=r+Math.imul(E,ce)|0,o=(o=o+Math.imul(E,de)|0)+Math.imul(w,ce)|0,i=i+Math.imul(w,de)|0,r=r+Math.imul(b,le)|0,o=(o=o+Math.imul(b,Ae)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,Ae)|0;var Se=(d+(r=r+Math.imul(m,he)|0)|0)+((8191&(o=(o=o+Math.imul(m,pe)|0)+Math.imul(v,he)|0))<<13)|0;d=((i=i+Math.imul(v,pe)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(U,Z),o=(o=Math.imul(U,z))+Math.imul(H,Z)|0,i=Math.imul(H,z),r=r+Math.imul(D,$)|0,o=(o=o+Math.imul(D,ee)|0)+Math.imul(T,$)|0,i=i+Math.imul(T,ee)|0,r=r+Math.imul(P,ne)|0,o=(o=o+Math.imul(P,re)|0)+Math.imul(N,ne)|0,i=i+Math.imul(N,re)|0,r=r+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(Q,ie)|0,i=i+Math.imul(Q,ae)|0,r=r+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,de)|0)+Math.imul(S,ce)|0,i=i+Math.imul(S,de)|0,r=r+Math.imul(E,le)|0,o=(o=o+Math.imul(E,Ae)|0)+Math.imul(w,le)|0,i=i+Math.imul(w,Ae)|0;var ke=(d+(r=r+Math.imul(b,he)|0)|0)+((8191&(o=(o=o+Math.imul(b,pe)|0)+Math.imul(I,he)|0))<<13)|0;d=((i=i+Math.imul(I,pe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(U,$),o=(o=Math.imul(U,ee))+Math.imul(H,$)|0,i=Math.imul(H,ee),r=r+Math.imul(D,ne)|0,o=(o=o+Math.imul(D,re)|0)+Math.imul(T,ne)|0,i=i+Math.imul(T,re)|0,r=r+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,r=r+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,de)|0)+Math.imul(Q,ce)|0,i=i+Math.imul(Q,de)|0,r=r+Math.imul(_,le)|0,o=(o=o+Math.imul(_,Ae)|0)+Math.imul(S,le)|0,i=i+Math.imul(S,Ae)|0;var Oe=(d+(r=r+Math.imul(E,he)|0)|0)+((8191&(o=(o=o+Math.imul(E,pe)|0)+Math.imul(w,he)|0))<<13)|0;d=((i=i+Math.imul(w,pe)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(U,ne),o=(o=Math.imul(U,re))+Math.imul(H,ne)|0,i=Math.imul(H,re),r=r+Math.imul(D,ie)|0,o=(o=o+Math.imul(D,ae)|0)+Math.imul(T,ie)|0,i=i+Math.imul(T,ae)|0,r=r+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,de)|0)+Math.imul(N,ce)|0,i=i+Math.imul(N,de)|0,r=r+Math.imul(O,le)|0,o=(o=o+Math.imul(O,Ae)|0)+Math.imul(Q,le)|0,i=i+Math.imul(Q,Ae)|0;var Qe=(d+(r=r+Math.imul(_,he)|0)|0)+((8191&(o=(o=o+Math.imul(_,pe)|0)+Math.imul(S,he)|0))<<13)|0;d=((i=i+Math.imul(S,pe)|0)+(o>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,r=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(H,ie)|0,i=Math.imul(H,ae),r=r+Math.imul(D,ce)|0,o=(o=o+Math.imul(D,de)|0)+Math.imul(T,ce)|0,i=i+Math.imul(T,de)|0,r=r+Math.imul(P,le)|0,o=(o=o+Math.imul(P,Ae)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,Ae)|0;var Re=(d+(r=r+Math.imul(O,he)|0)|0)+((8191&(o=(o=o+Math.imul(O,pe)|0)+Math.imul(Q,he)|0))<<13)|0;d=((i=i+Math.imul(Q,pe)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(U,ce),o=(o=Math.imul(U,de))+Math.imul(H,ce)|0,i=Math.imul(H,de),r=r+Math.imul(D,le)|0,o=(o=o+Math.imul(D,Ae)|0)+Math.imul(T,le)|0,i=i+Math.imul(T,Ae)|0;var Pe=(d+(r=r+Math.imul(P,he)|0)|0)+((8191&(o=(o=o+Math.imul(P,pe)|0)+Math.imul(N,he)|0))<<13)|0;d=((i=i+Math.imul(N,pe)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(U,le),o=(o=Math.imul(U,Ae))+Math.imul(H,le)|0,i=Math.imul(H,Ae);var Ne=(d+(r=r+Math.imul(D,he)|0)|0)+((8191&(o=(o=o+Math.imul(D,pe)|0)+Math.imul(T,he)|0))<<13)|0;d=((i=i+Math.imul(T,pe)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863;var xe=(d+(r=Math.imul(U,he))|0)+((8191&(o=(o=Math.imul(U,pe))+Math.imul(H,he)|0))<<13)|0;return d=((i=Math.imul(H,pe))+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,c[0]=ge,c[1]=me,c[2]=ve,c[3]=ye,c[4]=be,c[5]=Ie,c[6]=Ce,c[7]=Ee,c[8]=we,c[9]=Be,c[10]=_e,c[11]=Se,c[12]=ke,c[13]=Oe,c[14]=Qe,c[15]=Re,c[16]=Pe,c[17]=Ne,c[18]=xe,0!==d&&(c[19]=d,n.length++),n};function m(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}n.words[i]=s,r=a,a=o}return 0!==r?n.words[i]=r:n.length--,n._strip()}function v(e,t,n){return m(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(g=p),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?g(this,e,t):n<63?p(this,e,t):n<1024?m(this,e,t):v(this,e,t)},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=i.prototype._countBits(e)-1,r=0;r>=1;return r},y.prototype.permute=function(e,t,n,r,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,n+=i/67108864|0,n+=a>>>26,this.words[o]=67108863&a}return 0!==n&&(this.words[o]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>o&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,d=0;d=0&&(0!==u||d>=o);d--){var l=0|this.words[d];this.words[d]=u<<26-i|l>>>i,u=l&s}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=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},i.prototype.isubn=function(e){if(r("number"==typeof e),r(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)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this._strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),o=e,a=0|o.words[o.length-1];0!=(n=26-this._countBits(a))&&(o=o.ushln(n),r.iushln(n),a=0|o.words[o.length-1]);var s,c=r.length-o.length;if("mod"!==t){(s=new i(null)).length=c+1,s.words=new Array(s.length);for(var d=0;d=0;l--){var A=67108864*(0|r.words[o.length+l])+(0|r.words[o.length+l-1]);for(A=Math.min(A/a|0,67108863),r._ishlnsubmul(o,A,l);0!==r.negative;)A--,r.negative=0,r._ishlnsubmul(o,1,l),r.isZero()||(r.negative^=1);s&&(s.words[l]=A)}return s&&s._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),o=e.andln(1),i=n.cmp(r);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,o=0,i=this.length-1;i>=0;i--)o=(n*o+(0|this.words[i]))%e;return t?-o:o},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,o=this.length-1;o>=0;o--){var i=(0|this.words[o])+67108864*n;this.words[o]=i/e|0,n=i%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),c=new i(1),d=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++d;for(var u=n.clone(),l=t.clone();!t.isZero();){for(var A=0,f=1;0==(t.words[0]&f)&&A<26;++A,f<<=1);if(A>0)for(t.iushrn(A);A-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(u),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var h=0,p=1;0==(n.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(n.iushrn(h);h-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(u),c.isub(l)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(s),a.isub(c)):(n.isub(t),s.isub(o),c.isub(a))}return{a:s,b:c,gcd:n.iushln(d)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var d=0,u=1;0==(t.words[0]&u)&&d<26;++d,u<<=1);if(d>0)for(t.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var l=0,A=1;0==(n.words[0]&A)&&l<26;++l,A<<=1);if(l>0)for(n.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var o=t.cmp(n);if(o<0){var i=t;t=n,n=i}else if(0===o||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;n--){var r=0|this.words[n],o=0|e.words[n];if(r!==o){ro&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new _(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function I(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function C(){I.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){I.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){I.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function B(){I.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){_.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(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)}I.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},I.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},I.prototype.split=function(e,t){e.iushrn(this.n,0,t)},I.prototype.imulK=function(e){return e.imul(this.k)},o(C,I),C.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},C.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=o,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new C;else if("p224"===e)t=new E;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new B}return b[e]=t,t},_.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},_.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},_.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(u(e,e.umod(this.m)._forceRed(this)),e)},_.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},_.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},_.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},_.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},_.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},_.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},_.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},_.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},_.prototype.isqr=function(e){return this.imul(e,e.clone())},_.prototype.sqr=function(e){return this.mul(e,e)},_.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);r(!o.isZero());var s=new i(1).toRed(this),c=s.redNeg(),d=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new i(2*u*u).toRed(this);0!==this.pow(u,d).cmp(c);)u.redIAdd(c);for(var l=this.pow(u,o),A=this.pow(e,o.addn(1).iushrn(1)),f=this.pow(e,o),h=a;0!==f.cmp(s);){for(var p=f,g=0;0!==p.cmp(s);g++)p=p.redSqr();r(g=0;r--){for(var d=t.words[r],u=c-1;u>=0;u--){var l=d>>u&1;o!==n[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===r&&0===u)&&(o=this.mul(o,n[a]),s=0,a=0)):s=0}c=26}return o},_.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},_.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new S(e)},o(S,_),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 n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=n.isub(r).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=n.isub(r).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},9931:(e,t,n)=>{var r;function o(e){this.rand=e}if(e.exports=function(e){return r||(r=new o(null)),r.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),n=0;n{"use strict";e.exports={mask:(e,t,n,r,o)=>{for(var i=0;i{const n=e.length;for(var r=0;r{"use strict";try{e.exports=n(9516)(__dirname)}catch(t){e.exports=n(9376)}},2912:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompressedNonExistenceProof=t.CompressedExistenceProof=t.CompressedBatchEntry=t.CompressedBatchProof=t.BatchEntry=t.BatchProof=t.InnerSpec=t.ProofSpec=t.InnerOp=t.LeafOp=t.CommitmentProof=t.NonExistenceProof=t.ExistenceProof=t.lengthOpToJSON=t.lengthOpFromJSON=t.LengthOp=t.hashOpToJSON=t.hashOpFromJSON=t.HashOp=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));var a,s;function c(e){switch(e){case 0:case"NO_HASH":return a.NO_HASH;case 1:case"SHA256":return a.SHA256;case 2:case"SHA512":return a.SHA512;case 3:case"KECCAK":return a.KECCAK;case 4:case"RIPEMD160":return a.RIPEMD160;case 5:case"BITCOIN":return a.BITCOIN;default:return a.UNRECOGNIZED}}function d(e){switch(e){case a.NO_HASH:return"NO_HASH";case a.SHA256:return"SHA256";case a.SHA512:return"SHA512";case a.KECCAK:return"KECCAK";case a.RIPEMD160:return"RIPEMD160";case a.BITCOIN:return"BITCOIN";default:return"UNKNOWN"}}function u(e){switch(e){case 0:case"NO_PREFIX":return s.NO_PREFIX;case 1:case"VAR_PROTO":return s.VAR_PROTO;case 2:case"VAR_RLP":return s.VAR_RLP;case 3:case"FIXED32_BIG":return s.FIXED32_BIG;case 4:case"FIXED32_LITTLE":return s.FIXED32_LITTLE;case 5:case"FIXED64_BIG":return s.FIXED64_BIG;case 6:case"FIXED64_LITTLE":return s.FIXED64_LITTLE;case 7:case"REQUIRE_32_BYTES":return s.REQUIRE_32_BYTES;case 8:case"REQUIRE_64_BYTES":return s.REQUIRE_64_BYTES;default:return s.UNRECOGNIZED}}function l(e){switch(e){case s.NO_PREFIX:return"NO_PREFIX";case s.VAR_PROTO:return"VAR_PROTO";case s.VAR_RLP:return"VAR_RLP";case s.FIXED32_BIG:return"FIXED32_BIG";case s.FIXED32_LITTLE:return"FIXED32_LITTLE";case s.FIXED64_BIG:return"FIXED64_BIG";case s.FIXED64_LITTLE:return"FIXED64_LITTLE";case s.REQUIRE_32_BYTES:return"REQUIRE_32_BYTES";case s.REQUIRE_64_BYTES:return"REQUIRE_64_BYTES";default:return"UNKNOWN"}}t.protobufPackage="ics23",function(e){e[e.NO_HASH=0]="NO_HASH",e[e.SHA256=1]="SHA256",e[e.SHA512=2]="SHA512",e[e.KECCAK=3]="KECCAK",e[e.RIPEMD160=4]="RIPEMD160",e[e.BITCOIN=5]="BITCOIN",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(a=t.HashOp||(t.HashOp={})),t.hashOpFromJSON=c,t.hashOpToJSON=d,function(e){e[e.NO_PREFIX=0]="NO_PREFIX",e[e.VAR_PROTO=1]="VAR_PROTO",e[e.VAR_RLP=2]="VAR_RLP",e[e.FIXED32_BIG=3]="FIXED32_BIG",e[e.FIXED32_LITTLE=4]="FIXED32_LITTLE",e[e.FIXED64_BIG=5]="FIXED64_BIG",e[e.FIXED64_LITTLE=6]="FIXED64_LITTLE",e[e.REQUIRE_32_BYTES=7]="REQUIRE_32_BYTES",e[e.REQUIRE_64_BYTES=8]="REQUIRE_64_BYTES",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.LengthOp||(t.LengthOp={})),t.lengthOpFromJSON=u,t.lengthOpToJSON=l;const A={};t.ExistenceProof={encode(e,n=i.default.Writer.create()){0!==e.key.length&&n.uint32(10).bytes(e.key),0!==e.value.length&&n.uint32(18).bytes(e.value),void 0!==e.leaf&&t.LeafOp.encode(e.leaf,n.uint32(26).fork()).ldelim();for(const r of e.path)t.InnerOp.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},A);for(a.path=[],a.key=new Uint8Array,a.value=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.value=r.bytes();break;case 3:a.leaf=t.LeafOp.decode(r,r.uint32());break;case 4:a.path.push(t.InnerOp.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},A);return r.key=void 0!==e.key&&null!==e.key?S(e.key):new Uint8Array,r.value=void 0!==e.value&&null!==e.value?S(e.value):new Uint8Array,r.leaf=void 0!==e.leaf&&null!==e.leaf?t.LeafOp.fromJSON(e.leaf):void 0,r.path=(null!==(n=e.path)&&void 0!==n?n:[]).map((e=>t.InnerOp.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.key&&(n.key=O(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(n.value=O(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.leaf&&(n.leaf=e.leaf?t.LeafOp.toJSON(e.leaf):void 0),e.path?n.path=e.path.map((e=>e?t.InnerOp.toJSON(e):void 0)):n.path=[],n},fromPartial(e){var n,r,o;const i=Object.assign({},A);return i.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,i.value=null!==(r=e.value)&&void 0!==r?r:new Uint8Array,i.leaf=void 0!==e.leaf&&null!==e.leaf?t.LeafOp.fromPartial(e.leaf):void 0,i.path=(null===(o=e.path)||void 0===o?void 0:o.map((e=>t.InnerOp.fromPartial(e))))||[],i}};const f={};t.NonExistenceProof={encode:(e,n=i.default.Writer.create())=>(0!==e.key.length&&n.uint32(10).bytes(e.key),void 0!==e.left&&t.ExistenceProof.encode(e.left,n.uint32(18).fork()).ldelim(),void 0!==e.right&&t.ExistenceProof.encode(e.right,n.uint32(26).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(a.key=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.left=t.ExistenceProof.decode(r,r.uint32());break;case 3:a.right=t.ExistenceProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},f);return n.key=void 0!==e.key&&null!==e.key?S(e.key):new Uint8Array,n.left=void 0!==e.left&&null!==e.left?t.ExistenceProof.fromJSON(e.left):void 0,n.right=void 0!==e.right&&null!==e.right?t.ExistenceProof.fromJSON(e.right):void 0,n},toJSON(e){const n={};return void 0!==e.key&&(n.key=O(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.left&&(n.left=e.left?t.ExistenceProof.toJSON(e.left):void 0),void 0!==e.right&&(n.right=e.right?t.ExistenceProof.toJSON(e.right):void 0),n},fromPartial(e){var n;const r=Object.assign({},f);return r.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,r.left=void 0!==e.left&&null!==e.left?t.ExistenceProof.fromPartial(e.left):void 0,r.right=void 0!==e.right&&null!==e.right?t.ExistenceProof.fromPartial(e.right):void 0,r}};const h={};t.CommitmentProof={encode:(e,n=i.default.Writer.create())=>(void 0!==e.exist&&t.ExistenceProof.encode(e.exist,n.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.NonExistenceProof.encode(e.nonexist,n.uint32(18).fork()).ldelim(),void 0!==e.batch&&t.BatchProof.encode(e.batch,n.uint32(26).fork()).ldelim(),void 0!==e.compressed&&t.CompressedBatchProof.encode(e.compressed,n.uint32(34).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},h);for(;r.pos>>3){case 1:a.exist=t.ExistenceProof.decode(r,r.uint32());break;case 2:a.nonexist=t.NonExistenceProof.decode(r,r.uint32());break;case 3:a.batch=t.BatchProof.decode(r,r.uint32());break;case 4:a.compressed=t.CompressedBatchProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},h);return n.exist=void 0!==e.exist&&null!==e.exist?t.ExistenceProof.fromJSON(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.NonExistenceProof.fromJSON(e.nonexist):void 0,n.batch=void 0!==e.batch&&null!==e.batch?t.BatchProof.fromJSON(e.batch):void 0,n.compressed=void 0!==e.compressed&&null!==e.compressed?t.CompressedBatchProof.fromJSON(e.compressed):void 0,n},toJSON(e){const n={};return void 0!==e.exist&&(n.exist=e.exist?t.ExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(n.nonexist=e.nonexist?t.NonExistenceProof.toJSON(e.nonexist):void 0),void 0!==e.batch&&(n.batch=e.batch?t.BatchProof.toJSON(e.batch):void 0),void 0!==e.compressed&&(n.compressed=e.compressed?t.CompressedBatchProof.toJSON(e.compressed):void 0),n},fromPartial(e){const n=Object.assign({},h);return n.exist=void 0!==e.exist&&null!==e.exist?t.ExistenceProof.fromPartial(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.NonExistenceProof.fromPartial(e.nonexist):void 0,n.batch=void 0!==e.batch&&null!==e.batch?t.BatchProof.fromPartial(e.batch):void 0,n.compressed=void 0!==e.compressed&&null!==e.compressed?t.CompressedBatchProof.fromPartial(e.compressed):void 0,n}};const p={hash:0,prehashKey:0,prehashValue:0,length:0};t.LeafOp={encode:(e,t=i.default.Writer.create())=>(0!==e.hash&&t.uint32(8).int32(e.hash),0!==e.prehashKey&&t.uint32(16).int32(e.prehashKey),0!==e.prehashValue&&t.uint32(24).int32(e.prehashValue),0!==e.length&&t.uint32(32).int32(e.length),0!==e.prefix.length&&t.uint32(42).bytes(e.prefix),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.prefix=new Uint8Array;n.pos>>3){case 1:o.hash=n.int32();break;case 2:o.prehashKey=n.int32();break;case 3:o.prehashValue=n.int32();break;case 4:o.length=n.int32();break;case 5:o.prefix=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.hash=void 0!==e.hash&&null!==e.hash?c(e.hash):0,t.prehashKey=void 0!==e.prehashKey&&null!==e.prehashKey?c(e.prehashKey):0,t.prehashValue=void 0!==e.prehashValue&&null!==e.prehashValue?c(e.prehashValue):0,t.length=void 0!==e.length&&null!==e.length?u(e.length):0,t.prefix=void 0!==e.prefix&&null!==e.prefix?S(e.prefix):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=d(e.hash)),void 0!==e.prehashKey&&(t.prehashKey=d(e.prehashKey)),void 0!==e.prehashValue&&(t.prehashValue=d(e.prehashValue)),void 0!==e.length&&(t.length=l(e.length)),void 0!==e.prefix&&(t.prefix=O(void 0!==e.prefix?e.prefix:new Uint8Array)),t},fromPartial(e){var t,n,r,o,i;const a=Object.assign({},p);return a.hash=null!==(t=e.hash)&&void 0!==t?t:0,a.prehashKey=null!==(n=e.prehashKey)&&void 0!==n?n:0,a.prehashValue=null!==(r=e.prehashValue)&&void 0!==r?r:0,a.length=null!==(o=e.length)&&void 0!==o?o:0,a.prefix=null!==(i=e.prefix)&&void 0!==i?i:new Uint8Array,a}};const g={hash:0};t.InnerOp={encode:(e,t=i.default.Writer.create())=>(0!==e.hash&&t.uint32(8).int32(e.hash),0!==e.prefix.length&&t.uint32(18).bytes(e.prefix),0!==e.suffix.length&&t.uint32(26).bytes(e.suffix),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.prefix=new Uint8Array,o.suffix=new Uint8Array;n.pos>>3){case 1:o.hash=n.int32();break;case 2:o.prefix=n.bytes();break;case 3:o.suffix=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.hash=void 0!==e.hash&&null!==e.hash?c(e.hash):0,t.prefix=void 0!==e.prefix&&null!==e.prefix?S(e.prefix):new Uint8Array,t.suffix=void 0!==e.suffix&&null!==e.suffix?S(e.suffix):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=d(e.hash)),void 0!==e.prefix&&(t.prefix=O(void 0!==e.prefix?e.prefix:new Uint8Array)),void 0!==e.suffix&&(t.suffix=O(void 0!==e.suffix?e.suffix:new Uint8Array)),t},fromPartial(e){var t,n,r;const o=Object.assign({},g);return o.hash=null!==(t=e.hash)&&void 0!==t?t:0,o.prefix=null!==(n=e.prefix)&&void 0!==n?n:new Uint8Array,o.suffix=null!==(r=e.suffix)&&void 0!==r?r:new Uint8Array,o}};const m={maxDepth:0,minDepth:0};t.ProofSpec={encode:(e,n=i.default.Writer.create())=>(void 0!==e.leafSpec&&t.LeafOp.encode(e.leafSpec,n.uint32(10).fork()).ldelim(),void 0!==e.innerSpec&&t.InnerSpec.encode(e.innerSpec,n.uint32(18).fork()).ldelim(),0!==e.maxDepth&&n.uint32(24).int32(e.maxDepth),0!==e.minDepth&&n.uint32(32).int32(e.minDepth),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},m);for(;r.pos>>3){case 1:a.leafSpec=t.LeafOp.decode(r,r.uint32());break;case 2:a.innerSpec=t.InnerSpec.decode(r,r.uint32());break;case 3:a.maxDepth=r.int32();break;case 4:a.minDepth=r.int32();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},m);return n.leafSpec=void 0!==e.leafSpec&&null!==e.leafSpec?t.LeafOp.fromJSON(e.leafSpec):void 0,n.innerSpec=void 0!==e.innerSpec&&null!==e.innerSpec?t.InnerSpec.fromJSON(e.innerSpec):void 0,n.maxDepth=void 0!==e.maxDepth&&null!==e.maxDepth?Number(e.maxDepth):0,n.minDepth=void 0!==e.minDepth&&null!==e.minDepth?Number(e.minDepth):0,n},toJSON(e){const n={};return void 0!==e.leafSpec&&(n.leafSpec=e.leafSpec?t.LeafOp.toJSON(e.leafSpec):void 0),void 0!==e.innerSpec&&(n.innerSpec=e.innerSpec?t.InnerSpec.toJSON(e.innerSpec):void 0),void 0!==e.maxDepth&&(n.maxDepth=e.maxDepth),void 0!==e.minDepth&&(n.minDepth=e.minDepth),n},fromPartial(e){var n,r;const o=Object.assign({},m);return o.leafSpec=void 0!==e.leafSpec&&null!==e.leafSpec?t.LeafOp.fromPartial(e.leafSpec):void 0,o.innerSpec=void 0!==e.innerSpec&&null!==e.innerSpec?t.InnerSpec.fromPartial(e.innerSpec):void 0,o.maxDepth=null!==(n=e.maxDepth)&&void 0!==n?n:0,o.minDepth=null!==(r=e.minDepth)&&void 0!==r?r:0,o}};const v={childOrder:0,childSize:0,minPrefixLength:0,maxPrefixLength:0,hash:0};t.InnerSpec={encode(e,t=i.default.Writer.create()){t.uint32(10).fork();for(const n of e.childOrder)t.int32(n);return t.ldelim(),0!==e.childSize&&t.uint32(16).int32(e.childSize),0!==e.minPrefixLength&&t.uint32(24).int32(e.minPrefixLength),0!==e.maxPrefixLength&&t.uint32(32).int32(e.maxPrefixLength),0!==e.emptyChild.length&&t.uint32(42).bytes(e.emptyChild),0!==e.hash&&t.uint32(48).int32(e.hash),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.childOrder=[],o.emptyChild=new Uint8Array;n.pos>>3){case 1:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.posNumber(e))),n.childSize=void 0!==e.childSize&&null!==e.childSize?Number(e.childSize):0,n.minPrefixLength=void 0!==e.minPrefixLength&&null!==e.minPrefixLength?Number(e.minPrefixLength):0,n.maxPrefixLength=void 0!==e.maxPrefixLength&&null!==e.maxPrefixLength?Number(e.maxPrefixLength):0,n.emptyChild=void 0!==e.emptyChild&&null!==e.emptyChild?S(e.emptyChild):new Uint8Array,n.hash=void 0!==e.hash&&null!==e.hash?c(e.hash):0,n},toJSON(e){const t={};return e.childOrder?t.childOrder=e.childOrder.map((e=>e)):t.childOrder=[],void 0!==e.childSize&&(t.childSize=e.childSize),void 0!==e.minPrefixLength&&(t.minPrefixLength=e.minPrefixLength),void 0!==e.maxPrefixLength&&(t.maxPrefixLength=e.maxPrefixLength),void 0!==e.emptyChild&&(t.emptyChild=O(void 0!==e.emptyChild?e.emptyChild:new Uint8Array)),void 0!==e.hash&&(t.hash=d(e.hash)),t},fromPartial(e){var t,n,r,o,i,a;const s=Object.assign({},v);return s.childOrder=(null===(t=e.childOrder)||void 0===t?void 0:t.map((e=>e)))||[],s.childSize=null!==(n=e.childSize)&&void 0!==n?n:0,s.minPrefixLength=null!==(r=e.minPrefixLength)&&void 0!==r?r:0,s.maxPrefixLength=null!==(o=e.maxPrefixLength)&&void 0!==o?o:0,s.emptyChild=null!==(i=e.emptyChild)&&void 0!==i?i:new Uint8Array,s.hash=null!==(a=e.hash)&&void 0!==a?a:0,s}};const y={};t.BatchProof={encode(e,n=i.default.Writer.create()){for(const r of e.entries)t.BatchEntry.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},y);for(a.entries=[];r.pos>>3==1?a.entries.push(t.BatchEntry.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},y);return r.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.BatchEntry.fromJSON(e))),r},toJSON(e){const n={};return e.entries?n.entries=e.entries.map((e=>e?t.BatchEntry.toJSON(e):void 0)):n.entries=[],n},fromPartial(e){var n;const r=Object.assign({},y);return r.entries=(null===(n=e.entries)||void 0===n?void 0:n.map((e=>t.BatchEntry.fromPartial(e))))||[],r}};const b={};t.BatchEntry={encode:(e,n=i.default.Writer.create())=>(void 0!==e.exist&&t.ExistenceProof.encode(e.exist,n.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.NonExistenceProof.encode(e.nonexist,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},b);for(;r.pos>>3){case 1:a.exist=t.ExistenceProof.decode(r,r.uint32());break;case 2:a.nonexist=t.NonExistenceProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},b);return n.exist=void 0!==e.exist&&null!==e.exist?t.ExistenceProof.fromJSON(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.NonExistenceProof.fromJSON(e.nonexist):void 0,n},toJSON(e){const n={};return void 0!==e.exist&&(n.exist=e.exist?t.ExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(n.nonexist=e.nonexist?t.NonExistenceProof.toJSON(e.nonexist):void 0),n},fromPartial(e){const n=Object.assign({},b);return n.exist=void 0!==e.exist&&null!==e.exist?t.ExistenceProof.fromPartial(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.NonExistenceProof.fromPartial(e.nonexist):void 0,n}};const I={};t.CompressedBatchProof={encode(e,n=i.default.Writer.create()){for(const r of e.entries)t.CompressedBatchEntry.encode(r,n.uint32(10).fork()).ldelim();for(const r of e.lookupInners)t.InnerOp.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},I);for(a.entries=[],a.lookupInners=[];r.pos>>3){case 1:a.entries.push(t.CompressedBatchEntry.decode(r,r.uint32()));break;case 2:a.lookupInners.push(t.InnerOp.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n,r;const o=Object.assign({},I);return o.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.CompressedBatchEntry.fromJSON(e))),o.lookupInners=(null!==(r=e.lookupInners)&&void 0!==r?r:[]).map((e=>t.InnerOp.fromJSON(e))),o},toJSON(e){const n={};return e.entries?n.entries=e.entries.map((e=>e?t.CompressedBatchEntry.toJSON(e):void 0)):n.entries=[],e.lookupInners?n.lookupInners=e.lookupInners.map((e=>e?t.InnerOp.toJSON(e):void 0)):n.lookupInners=[],n},fromPartial(e){var n,r;const o=Object.assign({},I);return o.entries=(null===(n=e.entries)||void 0===n?void 0:n.map((e=>t.CompressedBatchEntry.fromPartial(e))))||[],o.lookupInners=(null===(r=e.lookupInners)||void 0===r?void 0:r.map((e=>t.InnerOp.fromPartial(e))))||[],o}};const C={};t.CompressedBatchEntry={encode:(e,n=i.default.Writer.create())=>(void 0!==e.exist&&t.CompressedExistenceProof.encode(e.exist,n.uint32(10).fork()).ldelim(),void 0!==e.nonexist&&t.CompressedNonExistenceProof.encode(e.nonexist,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},C);for(;r.pos>>3){case 1:a.exist=t.CompressedExistenceProof.decode(r,r.uint32());break;case 2:a.nonexist=t.CompressedNonExistenceProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},C);return n.exist=void 0!==e.exist&&null!==e.exist?t.CompressedExistenceProof.fromJSON(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.CompressedNonExistenceProof.fromJSON(e.nonexist):void 0,n},toJSON(e){const n={};return void 0!==e.exist&&(n.exist=e.exist?t.CompressedExistenceProof.toJSON(e.exist):void 0),void 0!==e.nonexist&&(n.nonexist=e.nonexist?t.CompressedNonExistenceProof.toJSON(e.nonexist):void 0),n},fromPartial(e){const n=Object.assign({},C);return n.exist=void 0!==e.exist&&null!==e.exist?t.CompressedExistenceProof.fromPartial(e.exist):void 0,n.nonexist=void 0!==e.nonexist&&null!==e.nonexist?t.CompressedNonExistenceProof.fromPartial(e.nonexist):void 0,n}};const E={path:0};t.CompressedExistenceProof={encode(e,n=i.default.Writer.create()){0!==e.key.length&&n.uint32(10).bytes(e.key),0!==e.value.length&&n.uint32(18).bytes(e.value),void 0!==e.leaf&&t.LeafOp.encode(e.leaf,n.uint32(26).fork()).ldelim(),n.uint32(34).fork();for(const t of e.path)n.int32(t);return n.ldelim(),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},E);for(a.path=[],a.key=new Uint8Array,a.value=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.value=r.bytes();break;case 3:a.leaf=t.LeafOp.decode(r,r.uint32());break;case 4:if(2==(7&e)){const e=r.uint32()+r.pos;for(;r.posNumber(e))),r},toJSON(e){const n={};return void 0!==e.key&&(n.key=O(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(n.value=O(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.leaf&&(n.leaf=e.leaf?t.LeafOp.toJSON(e.leaf):void 0),e.path?n.path=e.path.map((e=>e)):n.path=[],n},fromPartial(e){var n,r,o;const i=Object.assign({},E);return i.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,i.value=null!==(r=e.value)&&void 0!==r?r:new Uint8Array,i.leaf=void 0!==e.leaf&&null!==e.leaf?t.LeafOp.fromPartial(e.leaf):void 0,i.path=(null===(o=e.path)||void 0===o?void 0:o.map((e=>e)))||[],i}};const w={};t.CompressedNonExistenceProof={encode:(e,n=i.default.Writer.create())=>(0!==e.key.length&&n.uint32(10).bytes(e.key),void 0!==e.left&&t.CompressedExistenceProof.encode(e.left,n.uint32(18).fork()).ldelim(),void 0!==e.right&&t.CompressedExistenceProof.encode(e.right,n.uint32(26).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},w);for(a.key=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.left=t.CompressedExistenceProof.decode(r,r.uint32());break;case 3:a.right=t.CompressedExistenceProof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},w);return n.key=void 0!==e.key&&null!==e.key?S(e.key):new Uint8Array,n.left=void 0!==e.left&&null!==e.left?t.CompressedExistenceProof.fromJSON(e.left):void 0,n.right=void 0!==e.right&&null!==e.right?t.CompressedExistenceProof.fromJSON(e.right):void 0,n},toJSON(e){const n={};return void 0!==e.key&&(n.key=O(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.left&&(n.left=e.left?t.CompressedExistenceProof.toJSON(e.left):void 0),void 0!==e.right&&(n.right=e.right?t.CompressedExistenceProof.toJSON(e.right):void 0),n},fromPartial(e){var n;const r=Object.assign({},w);return r.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,r.left=void 0!==e.left&&null!==e.left?t.CompressedExistenceProof.fromPartial(e.left):void 0,r.right=void 0!==e.right&&null!==e.right?t.CompressedExistenceProof.fromPartial(e.right):void 0,r}};var B=(()=>{if(void 0!==B)return B;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const _=B.atob||(e=>B.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),n=new Uint8Array(t.length);for(let e=0;eB.Buffer.from(e,"binary").toString("base64"));function O(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return k(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3487:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.ModuleAccount=t.BaseAccount=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="cosmos.auth.v1beta1";const s={address:"",accountNumber:o.default.UZERO,sequence:o.default.UZERO};t.BaseAccount={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pubKey&&a.Any.encode(e.pubKey,t.uint32(18).fork()).ldelim(),e.accountNumber.isZero()||t.uint32(24).uint64(e.accountNumber),e.sequence.isZero()||t.uint32(32).uint64(e.sequence),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.pubKey=a.Any.decode(n,n.uint32());break;case 3:o.accountNumber=n.uint64();break;case 4:o.sequence=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?a.Any.fromJSON(e.pubKey):void 0,t.accountNumber=void 0!==e.accountNumber&&null!==e.accountNumber?o.default.fromString(e.accountNumber):o.default.UZERO,t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pubKey&&(t.pubKey=e.pubKey?a.Any.toJSON(e.pubKey):void 0),void 0!==e.accountNumber&&(t.accountNumber=(e.accountNumber||o.default.UZERO).toString()),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},s);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.pubKey=void 0!==e.pubKey&&null!==e.pubKey?a.Any.fromPartial(e.pubKey):void 0,n.accountNumber=void 0!==e.accountNumber&&null!==e.accountNumber?o.default.fromValue(e.accountNumber):o.default.UZERO,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,n}};const c={name:"",permissions:""};t.ModuleAccount={encode(e,n=i.default.Writer.create()){void 0!==e.baseAccount&&t.BaseAccount.encode(e.baseAccount,n.uint32(10).fork()).ldelim(),""!==e.name&&n.uint32(18).string(e.name);for(const t of e.permissions)n.uint32(26).string(t);return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},c);for(a.permissions=[];r.pos>>3){case 1:a.baseAccount=t.BaseAccount.decode(r,r.uint32());break;case 2:a.name=r.string();break;case 3:a.permissions.push(r.string());break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},c);return r.baseAccount=void 0!==e.baseAccount&&null!==e.baseAccount?t.BaseAccount.fromJSON(e.baseAccount):void 0,r.name=void 0!==e.name&&null!==e.name?String(e.name):"",r.permissions=(null!==(n=e.permissions)&&void 0!==n?n:[]).map((e=>String(e))),r},toJSON(e){const n={};return void 0!==e.baseAccount&&(n.baseAccount=e.baseAccount?t.BaseAccount.toJSON(e.baseAccount):void 0),void 0!==e.name&&(n.name=e.name),e.permissions?n.permissions=e.permissions.map((e=>e)):n.permissions=[],n},fromPartial(e){var n,r;const o=Object.assign({},c);return o.baseAccount=void 0!==e.baseAccount&&null!==e.baseAccount?t.BaseAccount.fromPartial(e.baseAccount):void 0,o.name=null!==(n=e.name)&&void 0!==n?n:"",o.permissions=(null===(r=e.permissions)||void 0===r?void 0:r.map((e=>e)))||[],o}};const d={maxMemoCharacters:o.default.UZERO,txSigLimit:o.default.UZERO,txSizeCostPerByte:o.default.UZERO,sigVerifyCostEd25519:o.default.UZERO,sigVerifyCostSecp256k1:o.default.UZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(e.maxMemoCharacters.isZero()||t.uint32(8).uint64(e.maxMemoCharacters),e.txSigLimit.isZero()||t.uint32(16).uint64(e.txSigLimit),e.txSizeCostPerByte.isZero()||t.uint32(24).uint64(e.txSizeCostPerByte),e.sigVerifyCostEd25519.isZero()||t.uint32(32).uint64(e.sigVerifyCostEd25519),e.sigVerifyCostSecp256k1.isZero()||t.uint32(40).uint64(e.sigVerifyCostSecp256k1),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.maxMemoCharacters=n.uint64();break;case 2:o.txSigLimit=n.uint64();break;case 3:o.txSizeCostPerByte=n.uint64();break;case 4:o.sigVerifyCostEd25519=n.uint64();break;case 5:o.sigVerifyCostSecp256k1=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.maxMemoCharacters=void 0!==e.maxMemoCharacters&&null!==e.maxMemoCharacters?o.default.fromString(e.maxMemoCharacters):o.default.UZERO,t.txSigLimit=void 0!==e.txSigLimit&&null!==e.txSigLimit?o.default.fromString(e.txSigLimit):o.default.UZERO,t.txSizeCostPerByte=void 0!==e.txSizeCostPerByte&&null!==e.txSizeCostPerByte?o.default.fromString(e.txSizeCostPerByte):o.default.UZERO,t.sigVerifyCostEd25519=void 0!==e.sigVerifyCostEd25519&&null!==e.sigVerifyCostEd25519?o.default.fromString(e.sigVerifyCostEd25519):o.default.UZERO,t.sigVerifyCostSecp256k1=void 0!==e.sigVerifyCostSecp256k1&&null!==e.sigVerifyCostSecp256k1?o.default.fromString(e.sigVerifyCostSecp256k1):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.maxMemoCharacters&&(t.maxMemoCharacters=(e.maxMemoCharacters||o.default.UZERO).toString()),void 0!==e.txSigLimit&&(t.txSigLimit=(e.txSigLimit||o.default.UZERO).toString()),void 0!==e.txSizeCostPerByte&&(t.txSizeCostPerByte=(e.txSizeCostPerByte||o.default.UZERO).toString()),void 0!==e.sigVerifyCostEd25519&&(t.sigVerifyCostEd25519=(e.sigVerifyCostEd25519||o.default.UZERO).toString()),void 0!==e.sigVerifyCostSecp256k1&&(t.sigVerifyCostSecp256k1=(e.sigVerifyCostSecp256k1||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return t.maxMemoCharacters=void 0!==e.maxMemoCharacters&&null!==e.maxMemoCharacters?o.default.fromValue(e.maxMemoCharacters):o.default.UZERO,t.txSigLimit=void 0!==e.txSigLimit&&null!==e.txSigLimit?o.default.fromValue(e.txSigLimit):o.default.UZERO,t.txSizeCostPerByte=void 0!==e.txSizeCostPerByte&&null!==e.txSizeCostPerByte?o.default.fromValue(e.txSizeCostPerByte):o.default.UZERO,t.sigVerifyCostEd25519=void 0!==e.sigVerifyCostEd25519&&null!==e.sigVerifyCostEd25519?o.default.fromValue(e.sigVerifyCostEd25519):o.default.UZERO,t.sigVerifyCostSecp256k1=void 0!==e.sigVerifyCostSecp256k1&&null!==e.sigVerifyCostSecp256k1?o.default.fromValue(e.sigVerifyCostSecp256k1):o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4443:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryParamsResponse=t.QueryParamsRequest=t.QueryAccountResponse=t.QueryAccountRequest=t.QueryAccountsResponse=t.QueryAccountsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9551),s=n(3862),c=n(3487);t.protobufPackage="cosmos.auth.v1beta1";const d={};t.QueryAccountsRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.pagination=a.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},d);return t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,t}};const u={};t.QueryAccountsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.accounts)s.Any.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.accounts=[];n.pos>>3){case 1:o.accounts.push(s.Any.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.accounts=(null!==(t=e.accounts)&&void 0!==t?t:[]).map((e=>s.Any.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.accounts?t.accounts=e.accounts.map((e=>e?s.Any.toJSON(e):void 0)):t.accounts=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},u);return n.accounts=(null===(t=e.accounts)||void 0===t?void 0:t.map((e=>s.Any.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const l={address:""};t.QueryAccountRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.address=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),t},fromPartial(e){var t;const n=Object.assign({},l);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n}};const A={};t.QueryAccountResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.account&&s.Any.encode(e.account,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.account=s.Any.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.account=void 0!==e.account&&null!==e.account?s.Any.fromJSON(e.account):void 0,t},toJSON(e){const t={};return void 0!==e.account&&(t.account=e.account?s.Any.toJSON(e.account):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.account=void 0!==e.account&&null!==e.account?s.Any.fromPartial(e.account):void 0,t}};const f={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&c.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3==1?o.params=c.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);return t.params=void 0!==e.params&&null!==e.params?c.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?c.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},h);return t.params=void 0!==e.params&&null!==e.params?c.Params.fromPartial(e.params):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Accounts=this.Accounts.bind(this),this.Account=this.Account.bind(this),this.Params=this.Params.bind(this)}Accounts(e){const n=t.QueryAccountsRequest.encode(e).finish();return this.rpc.request("cosmos.auth.v1beta1.Query","Accounts",n).then((e=>t.QueryAccountsResponse.decode(new i.default.Reader(e))))}Account(e){const n=t.QueryAccountRequest.encode(e).finish();return this.rpc.request("cosmos.auth.v1beta1.Query","Account",n).then((e=>t.QueryAccountResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.auth.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},8436:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Grant=t.GenericAuthorization=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(5522);t.protobufPackage="cosmos.authz.v1beta1";const c={msg:""};t.GenericAuthorization={encode:(e,t=i.default.Writer.create())=>(""!==e.msg&&t.uint32(10).string(e.msg),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.msg=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.msg=void 0!==e.msg&&null!==e.msg?String(e.msg):"",t},toJSON(e){const t={};return void 0!==e.msg&&(t.msg=e.msg),t},fromPartial(e){var t;const n=Object.assign({},c);return n.msg=null!==(t=e.msg)&&void 0!==t?t:"",n}};const d={};function u(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}t.Grant={encode:(e,t=i.default.Writer.create())=>(void 0!==e.authorization&&a.Any.encode(e.authorization,t.uint32(10).fork()).ldelim(),void 0!==e.expiration&&s.Timestamp.encode(e.expiration,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.authorization=a.Any.decode(n,n.uint32());break;case 2:o.expiration=s.Timestamp.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);var n;return t.authorization=void 0!==e.authorization&&null!==e.authorization?a.Any.fromJSON(e.authorization):void 0,t.expiration=void 0!==e.expiration&&null!==e.expiration?(n=e.expiration)instanceof Date?u(n):"string"==typeof n?u(new Date(n)):s.Timestamp.fromJSON(n):void 0,t},toJSON(e){const t={};return void 0!==e.authorization&&(t.authorization=e.authorization?a.Any.toJSON(e.authorization):void 0),void 0!==e.expiration&&(t.expiration=function(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}(e.expiration).toISOString()),t},fromPartial(e){const t=Object.assign({},d);return t.authorization=void 0!==e.authorization&&null!==e.authorization?a.Any.fromPartial(e.authorization):void 0,t.expiration=void 0!==e.expiration&&null!==e.expiration?s.Timestamp.fromPartial(e.expiration):void 0,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},895:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgRevokeResponse=t.MsgRevoke=t.MsgGrantResponse=t.MsgExec=t.MsgExecResponse=t.MsgGrant=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(8436),s=n(3862);t.protobufPackage="cosmos.authz.v1beta1";const c={granter:"",grantee:""};t.MsgGrant={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),void 0!==e.grant&&a.Grant.encode(e.grant,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.granter=n.string();break;case 2:o.grantee=n.string();break;case 3:o.grant=a.Grant.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",t.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",t.grant=void 0!==e.grant&&null!==e.grant?a.Grant.fromJSON(e.grant):void 0,t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.grant&&(t.grant=e.grant?a.Grant.toJSON(e.grant):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.granter=null!==(t=e.granter)&&void 0!==t?t:"",r.grantee=null!==(n=e.grantee)&&void 0!==n?n:"",r.grant=void 0!==e.grant&&null!==e.grant?a.Grant.fromPartial(e.grant):void 0,r}};const d={};t.MsgExecResponse={encode(e,t=i.default.Writer.create()){for(const n of e.results)t.uint32(10).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.results=[];n.pos>>3==1?o.results.push(n.bytes()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.results=(null!==(t=e.results)&&void 0!==t?t:[]).map((e=>function(e){const t=p(e),n=new Uint8Array(t.length);for(let e=0;efunction(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return g(t.join(""))}(void 0!==e?e:new Uint8Array))):t.results=[],t},fromPartial(e){var t;const n=Object.assign({},d);return n.results=(null===(t=e.results)||void 0===t?void 0:t.map((e=>e)))||[],n}};const u={grantee:""};t.MsgExec={encode(e,t=i.default.Writer.create()){""!==e.grantee&&t.uint32(10).string(e.grantee);for(const n of e.msgs)s.Any.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.msgs=[];n.pos>>3){case 1:o.grantee=n.string();break;case 2:o.msgs.push(s.Any.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",n.msgs=(null!==(t=e.msgs)&&void 0!==t?t:[]).map((e=>s.Any.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.grantee&&(t.grantee=e.grantee),e.msgs?t.msgs=e.msgs.map((e=>e?s.Any.toJSON(e):void 0)):t.msgs=[],t},fromPartial(e){var t,n;const r=Object.assign({},u);return r.grantee=null!==(t=e.grantee)&&void 0!==t?t:"",r.msgs=(null===(n=e.msgs)||void 0===n?void 0:n.map((e=>s.Any.fromPartial(e))))||[],r}};const l={};t.MsgGrantResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const A={granter:"",grantee:"",msgTypeUrl:""};t.MsgRevoke={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),""!==e.msgTypeUrl&&t.uint32(26).string(e.msgTypeUrl),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.granter=n.string();break;case 2:o.grantee=n.string();break;case 3:o.msgTypeUrl=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",t.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",t.msgTypeUrl=void 0!==e.msgTypeUrl&&null!==e.msgTypeUrl?String(e.msgTypeUrl):"",t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.msgTypeUrl&&(t.msgTypeUrl=e.msgTypeUrl),t},fromPartial(e){var t,n,r;const o=Object.assign({},A);return o.granter=null!==(t=e.granter)&&void 0!==t?t:"",o.grantee=null!==(n=e.grantee)&&void 0!==n?n:"",o.msgTypeUrl=null!==(r=e.msgTypeUrl)&&void 0!==r?r:"",o}};const f={};t.MsgRevokeResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Grant=this.Grant.bind(this),this.Exec=this.Exec.bind(this),this.Revoke=this.Revoke.bind(this)}Grant(e){const n=t.MsgGrant.encode(e).finish();return this.rpc.request("cosmos.authz.v1beta1.Msg","Grant",n).then((e=>t.MsgGrantResponse.decode(new i.default.Reader(e))))}Exec(e){const n=t.MsgExec.encode(e).finish();return this.rpc.request("cosmos.authz.v1beta1.Msg","Exec",n).then((e=>t.MsgExecResponse.decode(new i.default.Reader(e))))}Revoke(e){const n=t.MsgRevoke.encode(e).finish();return this.rpc.request("cosmos.authz.v1beta1.Msg","Revoke",n).then((e=>t.MsgRevokeResponse.decode(new i.default.Reader(e))))}};var h=(()=>{if(void 0!==h)return h;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const p=h.atob||(e=>h.Buffer.from(e,"base64").toString("binary")),g=h.btoa||(e=>h.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4343:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=t.DenomUnit=t.Supply=t.Output=t.Input=t.SendEnabled=t.Params=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891);t.protobufPackage="cosmos.bank.v1beta1";const s={defaultSendEnabled:!1};t.Params={encode(e,n=i.default.Writer.create()){for(const r of e.sendEnabled)t.SendEnabled.encode(r,n.uint32(10).fork()).ldelim();return!0===e.defaultSendEnabled&&n.uint32(16).bool(e.defaultSendEnabled),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},s);for(a.sendEnabled=[];r.pos>>3){case 1:a.sendEnabled.push(t.SendEnabled.decode(r,r.uint32()));break;case 2:a.defaultSendEnabled=r.bool();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},s);return r.sendEnabled=(null!==(n=e.sendEnabled)&&void 0!==n?n:[]).map((e=>t.SendEnabled.fromJSON(e))),r.defaultSendEnabled=void 0!==e.defaultSendEnabled&&null!==e.defaultSendEnabled&&Boolean(e.defaultSendEnabled),r},toJSON(e){const n={};return e.sendEnabled?n.sendEnabled=e.sendEnabled.map((e=>e?t.SendEnabled.toJSON(e):void 0)):n.sendEnabled=[],void 0!==e.defaultSendEnabled&&(n.defaultSendEnabled=e.defaultSendEnabled),n},fromPartial(e){var n,r;const o=Object.assign({},s);return o.sendEnabled=(null===(n=e.sendEnabled)||void 0===n?void 0:n.map((e=>t.SendEnabled.fromPartial(e))))||[],o.defaultSendEnabled=null!==(r=e.defaultSendEnabled)&&void 0!==r&&r,o}};const c={denom:"",enabled:!1};t.SendEnabled={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),!0===e.enabled&&t.uint32(16).bool(e.enabled),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.denom=n.string();break;case 2:o.enabled=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t.enabled=void 0!==e.enabled&&null!==e.enabled&&Boolean(e.enabled),t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.enabled&&(t.enabled=e.enabled),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.denom=null!==(t=e.denom)&&void 0!==t?t:"",r.enabled=null!==(n=e.enabled)&&void 0!==n&&n,r}};const d={address:""};t.Input={encode(e,t=i.default.Writer.create()){""!==e.address&&t.uint32(10).string(e.address);for(const n of e.coins)a.Coin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.coins=[];n.pos>>3){case 1:o.address=n.string();break;case 2:o.coins.push(a.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.address=void 0!==e.address&&null!==e.address?String(e.address):"",n.coins=(null!==(t=e.coins)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),e.coins?t.coins=e.coins.map((e=>e?a.Coin.toJSON(e):void 0)):t.coins=[],t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.coins=(null===(n=e.coins)||void 0===n?void 0:n.map((e=>a.Coin.fromPartial(e))))||[],r}};const u={address:""};t.Output={encode(e,t=i.default.Writer.create()){""!==e.address&&t.uint32(10).string(e.address);for(const n of e.coins)a.Coin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.coins=[];n.pos>>3){case 1:o.address=n.string();break;case 2:o.coins.push(a.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.address=void 0!==e.address&&null!==e.address?String(e.address):"",n.coins=(null!==(t=e.coins)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),e.coins?t.coins=e.coins.map((e=>e?a.Coin.toJSON(e):void 0)):t.coins=[],t},fromPartial(e){var t,n;const r=Object.assign({},u);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.coins=(null===(n=e.coins)||void 0===n?void 0:n.map((e=>a.Coin.fromPartial(e))))||[],r}};const l={};t.Supply={encode(e,t=i.default.Writer.create()){for(const n of e.total)a.Coin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.total=[];n.pos>>3==1?o.total.push(a.Coin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.total=(null!==(t=e.total)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return e.total?t.total=e.total.map((e=>e?a.Coin.toJSON(e):void 0)):t.total=[],t},fromPartial(e){var t;const n=Object.assign({},l);return n.total=(null===(t=e.total)||void 0===t?void 0:t.map((e=>a.Coin.fromPartial(e))))||[],n}};const A={denom:"",exponent:0,aliases:""};t.DenomUnit={encode(e,t=i.default.Writer.create()){""!==e.denom&&t.uint32(10).string(e.denom),0!==e.exponent&&t.uint32(16).uint32(e.exponent);for(const n of e.aliases)t.uint32(26).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.aliases=[];n.pos>>3){case 1:o.denom=n.string();break;case 2:o.exponent=n.uint32();break;case 3:o.aliases.push(n.string());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",n.exponent=void 0!==e.exponent&&null!==e.exponent?Number(e.exponent):0,n.aliases=(null!==(t=e.aliases)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.exponent&&(t.exponent=e.exponent),e.aliases?t.aliases=e.aliases.map((e=>e)):t.aliases=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},A);return o.denom=null!==(t=e.denom)&&void 0!==t?t:"",o.exponent=null!==(n=e.exponent)&&void 0!==n?n:0,o.aliases=(null===(r=e.aliases)||void 0===r?void 0:r.map((e=>e)))||[],o}};const f={description:"",base:"",display:"",name:"",symbol:""};t.Metadata={encode(e,n=i.default.Writer.create()){""!==e.description&&n.uint32(10).string(e.description);for(const r of e.denomUnits)t.DenomUnit.encode(r,n.uint32(18).fork()).ldelim();return""!==e.base&&n.uint32(26).string(e.base),""!==e.display&&n.uint32(34).string(e.display),""!==e.name&&n.uint32(42).string(e.name),""!==e.symbol&&n.uint32(50).string(e.symbol),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(a.denomUnits=[];r.pos>>3){case 1:a.description=r.string();break;case 2:a.denomUnits.push(t.DenomUnit.decode(r,r.uint32()));break;case 3:a.base=r.string();break;case 4:a.display=r.string();break;case 5:a.name=r.string();break;case 6:a.symbol=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},f);return r.description=void 0!==e.description&&null!==e.description?String(e.description):"",r.denomUnits=(null!==(n=e.denomUnits)&&void 0!==n?n:[]).map((e=>t.DenomUnit.fromJSON(e))),r.base=void 0!==e.base&&null!==e.base?String(e.base):"",r.display=void 0!==e.display&&null!==e.display?String(e.display):"",r.name=void 0!==e.name&&null!==e.name?String(e.name):"",r.symbol=void 0!==e.symbol&&null!==e.symbol?String(e.symbol):"",r},toJSON(e){const n={};return void 0!==e.description&&(n.description=e.description),e.denomUnits?n.denomUnits=e.denomUnits.map((e=>e?t.DenomUnit.toJSON(e):void 0)):n.denomUnits=[],void 0!==e.base&&(n.base=e.base),void 0!==e.display&&(n.display=e.display),void 0!==e.name&&(n.name=e.name),void 0!==e.symbol&&(n.symbol=e.symbol),n},fromPartial(e){var n,r,o,i,a,s;const c=Object.assign({},f);return c.description=null!==(n=e.description)&&void 0!==n?n:"",c.denomUnits=(null===(r=e.denomUnits)||void 0===r?void 0:r.map((e=>t.DenomUnit.fromPartial(e))))||[],c.base=null!==(o=e.base)&&void 0!==o?o:"",c.display=null!==(i=e.display)&&void 0!==i?i:"",c.name=null!==(a=e.name)&&void 0!==a?a:"",c.symbol=null!==(s=e.symbol)&&void 0!==s?s:"",c}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},2916:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryDenomMetadataResponse=t.QueryDenomMetadataRequest=t.QueryDenomsMetadataResponse=t.QueryDenomsMetadataRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.QuerySupplyOfResponse=t.QuerySupplyOfRequest=t.QueryTotalSupplyResponse=t.QueryTotalSupplyRequest=t.QueryAllBalancesResponse=t.QueryAllBalancesRequest=t.QueryBalanceResponse=t.QueryBalanceRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891),s=n(9551),c=n(4343);t.protobufPackage="cosmos.bank.v1beta1";const d={address:"",denom:""};t.QueryBalanceRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),""!==e.denom&&t.uint32(18).string(e.denom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.denom=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.denom&&(t.denom=e.denom),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.denom=null!==(n=e.denom)&&void 0!==n?n:"",r}};const u={};t.QueryBalanceResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.balance&&a.Coin.encode(e.balance,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.balance=a.Coin.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.balance=void 0!==e.balance&&null!==e.balance?a.Coin.fromJSON(e.balance):void 0,t},toJSON(e){const t={};return void 0!==e.balance&&(t.balance=e.balance?a.Coin.toJSON(e.balance):void 0),t},fromPartial(e){const t=Object.assign({},u);return t.balance=void 0!==e.balance&&null!==e.balance?a.Coin.fromPartial(e.balance):void 0,t}};const l={address:""};t.QueryAllBalancesRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,n}};const A={};t.QueryAllBalancesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.balances)a.Coin.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.balances=[];n.pos>>3){case 1:o.balances.push(a.Coin.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.balances=(null!==(t=e.balances)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.balances?t.balances=e.balances.map((e=>e?a.Coin.toJSON(e):void 0)):t.balances=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},A);return n.balances=(null===(t=e.balances)||void 0===t?void 0:t.map((e=>a.Coin.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const f={};t.QueryTotalSupplyRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},f);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const h={};t.QueryTotalSupplyResponse={encode(e,t=i.default.Writer.create()){for(const n of e.supply)a.Coin.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.supply=[];n.pos>>3){case 1:o.supply.push(a.Coin.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},h);return n.supply=(null!==(t=e.supply)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.supply?t.supply=e.supply.map((e=>e?a.Coin.toJSON(e):void 0)):t.supply=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.supply=(null===(t=e.supply)||void 0===t?void 0:t.map((e=>a.Coin.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const p={denom:""};t.QuerySupplyOfRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3==1?o.denom=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),t},fromPartial(e){var t;const n=Object.assign({},p);return n.denom=null!==(t=e.denom)&&void 0!==t?t:"",n}};const g={};t.QuerySupplyOfResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.amount&&a.Coin.encode(e.amount,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3==1?o.amount=a.Coin.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},g);return t.amount=void 0!==e.amount&&null!==e.amount?a.Coin.fromJSON(e.amount):void 0,t},toJSON(e){const t={};return void 0!==e.amount&&(t.amount=e.amount?a.Coin.toJSON(e.amount):void 0),t},fromPartial(e){const t=Object.assign({},g);return t.amount=void 0!==e.amount&&null!==e.amount?a.Coin.fromPartial(e.amount):void 0,t}};const m={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const v={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&c.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3==1?o.params=c.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return t.params=void 0!==e.params&&null!==e.params?c.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?c.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},v);return t.params=void 0!==e.params&&null!==e.params?c.Params.fromPartial(e.params):void 0,t}};const y={};t.QueryDenomsMetadataRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},y);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const b={};t.QueryDenomsMetadataResponse={encode(e,t=i.default.Writer.create()){for(const n of e.metadatas)c.Metadata.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.metadatas=[];n.pos>>3){case 1:o.metadatas.push(c.Metadata.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},b);return n.metadatas=(null!==(t=e.metadatas)&&void 0!==t?t:[]).map((e=>c.Metadata.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.metadatas?t.metadatas=e.metadatas.map((e=>e?c.Metadata.toJSON(e):void 0)):t.metadatas=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},b);return n.metadatas=(null===(t=e.metadatas)||void 0===t?void 0:t.map((e=>c.Metadata.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const I={denom:""};t.QueryDenomMetadataRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(;n.pos>>3==1?o.denom=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},I);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),t},fromPartial(e){var t;const n=Object.assign({},I);return n.denom=null!==(t=e.denom)&&void 0!==t?t:"",n}};const C={};t.QueryDenomMetadataResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.metadata&&c.Metadata.encode(e.metadata,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3==1?o.metadata=c.Metadata.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},C);return t.metadata=void 0!==e.metadata&&null!==e.metadata?c.Metadata.fromJSON(e.metadata):void 0,t},toJSON(e){const t={};return void 0!==e.metadata&&(t.metadata=e.metadata?c.Metadata.toJSON(e.metadata):void 0),t},fromPartial(e){const t=Object.assign({},C);return t.metadata=void 0!==e.metadata&&null!==e.metadata?c.Metadata.fromPartial(e.metadata):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Balance=this.Balance.bind(this),this.AllBalances=this.AllBalances.bind(this),this.TotalSupply=this.TotalSupply.bind(this),this.SupplyOf=this.SupplyOf.bind(this),this.Params=this.Params.bind(this),this.DenomMetadata=this.DenomMetadata.bind(this),this.DenomsMetadata=this.DenomsMetadata.bind(this)}Balance(e){const n=t.QueryBalanceRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","Balance",n).then((e=>t.QueryBalanceResponse.decode(new i.default.Reader(e))))}AllBalances(e){const n=t.QueryAllBalancesRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","AllBalances",n).then((e=>t.QueryAllBalancesResponse.decode(new i.default.Reader(e))))}TotalSupply(e){const n=t.QueryTotalSupplyRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","TotalSupply",n).then((e=>t.QueryTotalSupplyResponse.decode(new i.default.Reader(e))))}SupplyOf(e){const n=t.QuerySupplyOfRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","SupplyOf",n).then((e=>t.QuerySupplyOfResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}DenomMetadata(e){const n=t.QueryDenomMetadataRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","DenomMetadata",n).then((e=>t.QueryDenomMetadataResponse.decode(new i.default.Reader(e))))}DenomsMetadata(e){const n=t.QueryDenomsMetadataRequest.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Query","DenomsMetadata",n).then((e=>t.QueryDenomsMetadataResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},8994:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgMultiSendResponse=t.MsgMultiSend=t.MsgSendResponse=t.MsgSend=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891),s=n(4343);t.protobufPackage="cosmos.bank.v1beta1";const c={fromAddress:"",toAddress:""};t.MsgSend={encode(e,t=i.default.Writer.create()){""!==e.fromAddress&&t.uint32(10).string(e.fromAddress),""!==e.toAddress&&t.uint32(18).string(e.toAddress);for(const n of e.amount)a.Coin.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.amount=[];n.pos>>3){case 1:o.fromAddress=n.string();break;case 2:o.toAddress=n.string();break;case 3:o.amount.push(a.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},c);return n.fromAddress=void 0!==e.fromAddress&&null!==e.fromAddress?String(e.fromAddress):"",n.toAddress=void 0!==e.toAddress&&null!==e.toAddress?String(e.toAddress):"",n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.fromAddress&&(t.fromAddress=e.fromAddress),void 0!==e.toAddress&&(t.toAddress=e.toAddress),e.amount?t.amount=e.amount.map((e=>e?a.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},c);return o.fromAddress=null!==(t=e.fromAddress)&&void 0!==t?t:"",o.toAddress=null!==(n=e.toAddress)&&void 0!==n?n:"",o.amount=(null===(r=e.amount)||void 0===r?void 0:r.map((e=>a.Coin.fromPartial(e))))||[],o}};const d={};t.MsgSendResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const u={};t.MsgMultiSend={encode(e,t=i.default.Writer.create()){for(const n of e.inputs)s.Input.encode(n,t.uint32(10).fork()).ldelim();for(const n of e.outputs)s.Output.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.inputs=[],o.outputs=[];n.pos>>3){case 1:o.inputs.push(s.Input.decode(n,n.uint32()));break;case 2:o.outputs.push(s.Output.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n;const r=Object.assign({},u);return r.inputs=(null!==(t=e.inputs)&&void 0!==t?t:[]).map((e=>s.Input.fromJSON(e))),r.outputs=(null!==(n=e.outputs)&&void 0!==n?n:[]).map((e=>s.Output.fromJSON(e))),r},toJSON(e){const t={};return e.inputs?t.inputs=e.inputs.map((e=>e?s.Input.toJSON(e):void 0)):t.inputs=[],e.outputs?t.outputs=e.outputs.map((e=>e?s.Output.toJSON(e):void 0)):t.outputs=[],t},fromPartial(e){var t,n;const r=Object.assign({},u);return r.inputs=(null===(t=e.inputs)||void 0===t?void 0:t.map((e=>s.Input.fromPartial(e))))||[],r.outputs=(null===(n=e.outputs)||void 0===n?void 0:n.map((e=>s.Output.fromPartial(e))))||[],r}};const l={};t.MsgMultiSendResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Send=this.Send.bind(this),this.MultiSend=this.MultiSend.bind(this)}Send(e){const n=t.MsgSend.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Msg","Send",n).then((e=>t.MsgSendResponse.decode(new i.default.Reader(e))))}MultiSend(e){const n=t.MsgMultiSend.encode(e).finish();return this.rpc.request("cosmos.bank.v1beta1.Msg","MultiSend",n).then((e=>t.MsgMultiSendResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4194:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SearchTxsResult=t.TxMsgData=t.MsgData=t.SimulationResponse=t.Result=t.GasInfo=t.Attribute=t.StringEvent=t.ABCIMessageLog=t.TxResponse=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(9492);t.protobufPackage="cosmos.base.abci.v1beta1";const c={height:o.default.ZERO,txhash:"",codespace:"",code:0,data:"",rawLog:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,timestamp:""};t.TxResponse={encode(e,n=i.default.Writer.create()){e.height.isZero()||n.uint32(8).int64(e.height),""!==e.txhash&&n.uint32(18).string(e.txhash),""!==e.codespace&&n.uint32(26).string(e.codespace),0!==e.code&&n.uint32(32).uint32(e.code),""!==e.data&&n.uint32(42).string(e.data),""!==e.rawLog&&n.uint32(50).string(e.rawLog);for(const r of e.logs)t.ABCIMessageLog.encode(r,n.uint32(58).fork()).ldelim();""!==e.info&&n.uint32(66).string(e.info),e.gasWanted.isZero()||n.uint32(72).int64(e.gasWanted),e.gasUsed.isZero()||n.uint32(80).int64(e.gasUsed),void 0!==e.tx&&a.Any.encode(e.tx,n.uint32(90).fork()).ldelim(),""!==e.timestamp&&n.uint32(98).string(e.timestamp);for(const t of e.events)s.Event.encode(t,n.uint32(106).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const d=Object.assign({},c);for(d.logs=[],d.events=[];r.pos>>3){case 1:d.height=r.int64();break;case 2:d.txhash=r.string();break;case 3:d.codespace=r.string();break;case 4:d.code=r.uint32();break;case 5:d.data=r.string();break;case 6:d.rawLog=r.string();break;case 7:d.logs.push(t.ABCIMessageLog.decode(r,r.uint32()));break;case 8:d.info=r.string();break;case 9:d.gasWanted=r.int64();break;case 10:d.gasUsed=r.int64();break;case 11:d.tx=a.Any.decode(r,r.uint32());break;case 12:d.timestamp=r.string();break;case 13:d.events.push(s.Event.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return d},fromJSON(e){var n,r;const i=Object.assign({},c);return i.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,i.txhash=void 0!==e.txhash&&null!==e.txhash?String(e.txhash):"",i.codespace=void 0!==e.codespace&&null!==e.codespace?String(e.codespace):"",i.code=void 0!==e.code&&null!==e.code?Number(e.code):0,i.data=void 0!==e.data&&null!==e.data?String(e.data):"",i.rawLog=void 0!==e.rawLog&&null!==e.rawLog?String(e.rawLog):"",i.logs=(null!==(n=e.logs)&&void 0!==n?n:[]).map((e=>t.ABCIMessageLog.fromJSON(e))),i.info=void 0!==e.info&&null!==e.info?String(e.info):"",i.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromString(e.gasWanted):o.default.ZERO,i.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromString(e.gasUsed):o.default.ZERO,i.tx=void 0!==e.tx&&null!==e.tx?a.Any.fromJSON(e.tx):void 0,i.timestamp=void 0!==e.timestamp&&null!==e.timestamp?String(e.timestamp):"",i.events=(null!==(r=e.events)&&void 0!==r?r:[]).map((e=>s.Event.fromJSON(e))),i},toJSON(e){const n={};return void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.txhash&&(n.txhash=e.txhash),void 0!==e.codespace&&(n.codespace=e.codespace),void 0!==e.code&&(n.code=e.code),void 0!==e.data&&(n.data=e.data),void 0!==e.rawLog&&(n.rawLog=e.rawLog),e.logs?n.logs=e.logs.map((e=>e?t.ABCIMessageLog.toJSON(e):void 0)):n.logs=[],void 0!==e.info&&(n.info=e.info),void 0!==e.gasWanted&&(n.gasWanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(n.gasUsed=(e.gasUsed||o.default.ZERO).toString()),void 0!==e.tx&&(n.tx=e.tx?a.Any.toJSON(e.tx):void 0),void 0!==e.timestamp&&(n.timestamp=e.timestamp),e.events?n.events=e.events.map((e=>e?s.Event.toJSON(e):void 0)):n.events=[],n},fromPartial(e){var n,r,i,d,u,l,A,f,h;const p=Object.assign({},c);return p.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,p.txhash=null!==(n=e.txhash)&&void 0!==n?n:"",p.codespace=null!==(r=e.codespace)&&void 0!==r?r:"",p.code=null!==(i=e.code)&&void 0!==i?i:0,p.data=null!==(d=e.data)&&void 0!==d?d:"",p.rawLog=null!==(u=e.rawLog)&&void 0!==u?u:"",p.logs=(null===(l=e.logs)||void 0===l?void 0:l.map((e=>t.ABCIMessageLog.fromPartial(e))))||[],p.info=null!==(A=e.info)&&void 0!==A?A:"",p.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromValue(e.gasWanted):o.default.ZERO,p.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromValue(e.gasUsed):o.default.ZERO,p.tx=void 0!==e.tx&&null!==e.tx?a.Any.fromPartial(e.tx):void 0,p.timestamp=null!==(f=e.timestamp)&&void 0!==f?f:"",p.events=(null===(h=e.events)||void 0===h?void 0:h.map((e=>s.Event.fromPartial(e))))||[],p}};const d={msgIndex:0,log:""};t.ABCIMessageLog={encode(e,n=i.default.Writer.create()){0!==e.msgIndex&&n.uint32(8).uint32(e.msgIndex),""!==e.log&&n.uint32(18).string(e.log);for(const r of e.events)t.StringEvent.encode(r,n.uint32(26).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},d);for(a.events=[];r.pos>>3){case 1:a.msgIndex=r.uint32();break;case 2:a.log=r.string();break;case 3:a.events.push(t.StringEvent.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},d);return r.msgIndex=void 0!==e.msgIndex&&null!==e.msgIndex?Number(e.msgIndex):0,r.log=void 0!==e.log&&null!==e.log?String(e.log):"",r.events=(null!==(n=e.events)&&void 0!==n?n:[]).map((e=>t.StringEvent.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.msgIndex&&(n.msgIndex=e.msgIndex),void 0!==e.log&&(n.log=e.log),e.events?n.events=e.events.map((e=>e?t.StringEvent.toJSON(e):void 0)):n.events=[],n},fromPartial(e){var n,r,o;const i=Object.assign({},d);return i.msgIndex=null!==(n=e.msgIndex)&&void 0!==n?n:0,i.log=null!==(r=e.log)&&void 0!==r?r:"",i.events=(null===(o=e.events)||void 0===o?void 0:o.map((e=>t.StringEvent.fromPartial(e))))||[],i}};const u={type:""};t.StringEvent={encode(e,n=i.default.Writer.create()){""!==e.type&&n.uint32(10).string(e.type);for(const r of e.attributes)t.Attribute.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(a.attributes=[];r.pos>>3){case 1:a.type=r.string();break;case 2:a.attributes.push(t.Attribute.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},u);return r.type=void 0!==e.type&&null!==e.type?String(e.type):"",r.attributes=(null!==(n=e.attributes)&&void 0!==n?n:[]).map((e=>t.Attribute.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.type&&(n.type=e.type),e.attributes?n.attributes=e.attributes.map((e=>e?t.Attribute.toJSON(e):void 0)):n.attributes=[],n},fromPartial(e){var n,r;const o=Object.assign({},u);return o.type=null!==(n=e.type)&&void 0!==n?n:"",o.attributes=(null===(r=e.attributes)||void 0===r?void 0:r.map((e=>t.Attribute.fromPartial(e))))||[],o}};const l={key:"",value:""};t.Attribute={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.value&&t.uint32(18).string(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3){case 1:o.key=n.string();break;case 2:o.value=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.key=void 0!==e.key&&null!==e.key?String(e.key):"",t.value=void 0!==e.value&&null!==e.value?String(e.value):"",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){var t,n;const r=Object.assign({},l);return r.key=null!==(t=e.key)&&void 0!==t?t:"",r.value=null!==(n=e.value)&&void 0!==n?n:"",r}};const A={gasWanted:o.default.UZERO,gasUsed:o.default.UZERO};t.GasInfo={encode:(e,t=i.default.Writer.create())=>(e.gasWanted.isZero()||t.uint32(8).uint64(e.gasWanted),e.gasUsed.isZero()||t.uint32(16).uint64(e.gasUsed),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.gasWanted=n.uint64();break;case 2:o.gasUsed=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromString(e.gasWanted):o.default.UZERO,t.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromString(e.gasUsed):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.gasWanted&&(t.gasWanted=(e.gasWanted||o.default.UZERO).toString()),void 0!==e.gasUsed&&(t.gasUsed=(e.gasUsed||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},A);return t.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromValue(e.gasWanted):o.default.UZERO,t.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromValue(e.gasUsed):o.default.UZERO,t}};const f={log:""};t.Result={encode(e,t=i.default.Writer.create()){0!==e.data.length&&t.uint32(10).bytes(e.data),""!==e.log&&t.uint32(18).string(e.log);for(const n of e.events)s.Event.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.events=[],o.data=new Uint8Array;n.pos>>3){case 1:o.data=n.bytes();break;case 2:o.log=n.string();break;case 3:o.events.push(s.Event.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.data=void 0!==e.data&&null!==e.data?b(e.data):new Uint8Array,n.log=void 0!==e.log&&null!==e.log?String(e.log):"",n.events=(null!==(t=e.events)&&void 0!==t?t:[]).map((e=>s.Event.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.data&&(t.data=C(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(t.log=e.log),e.events?t.events=e.events.map((e=>e?s.Event.toJSON(e):void 0)):t.events=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},f);return o.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,o.log=null!==(n=e.log)&&void 0!==n?n:"",o.events=(null===(r=e.events)||void 0===r?void 0:r.map((e=>s.Event.fromPartial(e))))||[],o}};const h={};t.SimulationResponse={encode:(e,n=i.default.Writer.create())=>(void 0!==e.gasInfo&&t.GasInfo.encode(e.gasInfo,n.uint32(10).fork()).ldelim(),void 0!==e.result&&t.Result.encode(e.result,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},h);for(;r.pos>>3){case 1:a.gasInfo=t.GasInfo.decode(r,r.uint32());break;case 2:a.result=t.Result.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},h);return n.gasInfo=void 0!==e.gasInfo&&null!==e.gasInfo?t.GasInfo.fromJSON(e.gasInfo):void 0,n.result=void 0!==e.result&&null!==e.result?t.Result.fromJSON(e.result):void 0,n},toJSON(e){const n={};return void 0!==e.gasInfo&&(n.gasInfo=e.gasInfo?t.GasInfo.toJSON(e.gasInfo):void 0),void 0!==e.result&&(n.result=e.result?t.Result.toJSON(e.result):void 0),n},fromPartial(e){const n=Object.assign({},h);return n.gasInfo=void 0!==e.gasInfo&&null!==e.gasInfo?t.GasInfo.fromPartial(e.gasInfo):void 0,n.result=void 0!==e.result&&null!==e.result?t.Result.fromPartial(e.result):void 0,n}};const p={msgType:""};t.MsgData={encode:(e,t=i.default.Writer.create())=>(""!==e.msgType&&t.uint32(10).string(e.msgType),0!==e.data.length&&t.uint32(18).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.data=new Uint8Array;n.pos>>3){case 1:o.msgType=n.string();break;case 2:o.data=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.msgType=void 0!==e.msgType&&null!==e.msgType?String(e.msgType):"",t.data=void 0!==e.data&&null!==e.data?b(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.msgType&&(t.msgType=e.msgType),void 0!==e.data&&(t.data=C(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.msgType=null!==(t=e.msgType)&&void 0!==t?t:"",r.data=null!==(n=e.data)&&void 0!==n?n:new Uint8Array,r}};const g={};t.TxMsgData={encode(e,n=i.default.Writer.create()){for(const r of e.data)t.MsgData.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},g);for(a.data=[];r.pos>>3==1?a.data.push(t.MsgData.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},g);return r.data=(null!==(n=e.data)&&void 0!==n?n:[]).map((e=>t.MsgData.fromJSON(e))),r},toJSON(e){const n={};return e.data?n.data=e.data.map((e=>e?t.MsgData.toJSON(e):void 0)):n.data=[],n},fromPartial(e){var n;const r=Object.assign({},g);return r.data=(null===(n=e.data)||void 0===n?void 0:n.map((e=>t.MsgData.fromPartial(e))))||[],r}};const m={totalCount:o.default.UZERO,count:o.default.UZERO,pageNumber:o.default.UZERO,pageTotal:o.default.UZERO,limit:o.default.UZERO};t.SearchTxsResult={encode(e,n=i.default.Writer.create()){e.totalCount.isZero()||n.uint32(8).uint64(e.totalCount),e.count.isZero()||n.uint32(16).uint64(e.count),e.pageNumber.isZero()||n.uint32(24).uint64(e.pageNumber),e.pageTotal.isZero()||n.uint32(32).uint64(e.pageTotal),e.limit.isZero()||n.uint32(40).uint64(e.limit);for(const r of e.txs)t.TxResponse.encode(r,n.uint32(50).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},m);for(a.txs=[];r.pos>>3){case 1:a.totalCount=r.uint64();break;case 2:a.count=r.uint64();break;case 3:a.pageNumber=r.uint64();break;case 4:a.pageTotal=r.uint64();break;case 5:a.limit=r.uint64();break;case 6:a.txs.push(t.TxResponse.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},m);return r.totalCount=void 0!==e.totalCount&&null!==e.totalCount?o.default.fromString(e.totalCount):o.default.UZERO,r.count=void 0!==e.count&&null!==e.count?o.default.fromString(e.count):o.default.UZERO,r.pageNumber=void 0!==e.pageNumber&&null!==e.pageNumber?o.default.fromString(e.pageNumber):o.default.UZERO,r.pageTotal=void 0!==e.pageTotal&&null!==e.pageTotal?o.default.fromString(e.pageTotal):o.default.UZERO,r.limit=void 0!==e.limit&&null!==e.limit?o.default.fromString(e.limit):o.default.UZERO,r.txs=(null!==(n=e.txs)&&void 0!==n?n:[]).map((e=>t.TxResponse.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.totalCount&&(n.totalCount=(e.totalCount||o.default.UZERO).toString()),void 0!==e.count&&(n.count=(e.count||o.default.UZERO).toString()),void 0!==e.pageNumber&&(n.pageNumber=(e.pageNumber||o.default.UZERO).toString()),void 0!==e.pageTotal&&(n.pageTotal=(e.pageTotal||o.default.UZERO).toString()),void 0!==e.limit&&(n.limit=(e.limit||o.default.UZERO).toString()),e.txs?n.txs=e.txs.map((e=>e?t.TxResponse.toJSON(e):void 0)):n.txs=[],n},fromPartial(e){var n;const r=Object.assign({},m);return r.totalCount=void 0!==e.totalCount&&null!==e.totalCount?o.default.fromValue(e.totalCount):o.default.UZERO,r.count=void 0!==e.count&&null!==e.count?o.default.fromValue(e.count):o.default.UZERO,r.pageNumber=void 0!==e.pageNumber&&null!==e.pageNumber?o.default.fromValue(e.pageNumber):o.default.UZERO,r.pageTotal=void 0!==e.pageTotal&&null!==e.pageTotal?o.default.fromValue(e.pageTotal):o.default.UZERO,r.limit=void 0!==e.limit&&null!==e.limit?o.default.fromValue(e.limit):o.default.UZERO,r.txs=(null===(n=e.txs)||void 0===n?void 0:n.map((e=>t.TxResponse.fromPartial(e))))||[],r}};var v=(()=>{if(void 0!==v)return v;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const y=v.atob||(e=>v.Buffer.from(e,"base64").toString("binary"));function b(e){const t=y(e),n=new Uint8Array(t.length);for(let e=0;ev.Buffer.from(e,"binary").toString("base64"));function C(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return I(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9551:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PageResponse=t.PageRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.base.query.v1beta1";const a={offset:o.default.UZERO,limit:o.default.UZERO,countTotal:!1,reverse:!1};t.PageRequest={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),e.offset.isZero()||t.uint32(16).uint64(e.offset),e.limit.isZero()||t.uint32(24).uint64(e.limit),!0===e.countTotal&&t.uint32(32).bool(e.countTotal),!0===e.reverse&&t.uint32(40).bool(e.reverse),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.key=new Uint8Array;n.pos>>3){case 1:o.key=n.bytes();break;case 2:o.offset=n.uint64();break;case 3:o.limit=n.uint64();break;case 4:o.countTotal=n.bool();break;case 5:o.reverse=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.key=void 0!==e.key&&null!==e.key?u(e.key):new Uint8Array,t.offset=void 0!==e.offset&&null!==e.offset?o.default.fromString(e.offset):o.default.UZERO,t.limit=void 0!==e.limit&&null!==e.limit?o.default.fromString(e.limit):o.default.UZERO,t.countTotal=void 0!==e.countTotal&&null!==e.countTotal&&Boolean(e.countTotal),t.reverse=void 0!==e.reverse&&null!==e.reverse&&Boolean(e.reverse),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=A(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.offset&&(t.offset=(e.offset||o.default.UZERO).toString()),void 0!==e.limit&&(t.limit=(e.limit||o.default.UZERO).toString()),void 0!==e.countTotal&&(t.countTotal=e.countTotal),void 0!==e.reverse&&(t.reverse=e.reverse),t},fromPartial(e){var t,n,r;const i=Object.assign({},a);return i.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,i.offset=void 0!==e.offset&&null!==e.offset?o.default.fromValue(e.offset):o.default.UZERO,i.limit=void 0!==e.limit&&null!==e.limit?o.default.fromValue(e.limit):o.default.UZERO,i.countTotal=null!==(n=e.countTotal)&&void 0!==n&&n,i.reverse=null!==(r=e.reverse)&&void 0!==r&&r,i}};const s={total:o.default.UZERO};t.PageResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.nextKey.length&&t.uint32(10).bytes(e.nextKey),e.total.isZero()||t.uint32(16).uint64(e.total),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.nextKey=new Uint8Array;n.pos>>3){case 1:o.nextKey=n.bytes();break;case 2:o.total=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.nextKey=void 0!==e.nextKey&&null!==e.nextKey?u(e.nextKey):new Uint8Array,t.total=void 0!==e.total&&null!==e.total?o.default.fromString(e.total):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.nextKey&&(t.nextKey=A(void 0!==e.nextKey?e.nextKey:new Uint8Array)),void 0!==e.total&&(t.total=(e.total||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},s);return n.nextKey=null!==(t=e.nextKey)&&void 0!==t?t:new Uint8Array,n.total=void 0!==e.total&&null!==e.total?o.default.fromValue(e.total):o.default.UZERO,n}};var c=(()=>{if(void 0!==c)return c;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const d=c.atob||(e=>c.Buffer.from(e,"base64").toString("binary"));function u(e){const t=d(e),n=new Uint8Array(t.length);for(let e=0;ec.Buffer.from(e,"binary").toString("base64"));function A(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},891:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DecProto=t.IntProto=t.DecCoin=t.Coin=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.base.v1beta1";const a={denom:"",amount:""};t.Coin={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.denom=n.string();break;case 2:o.amount=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t.amount=void 0!==e.amount&&null!==e.amount?String(e.amount):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),t},fromPartial(e){var t,n;const r=Object.assign({},a);return r.denom=null!==(t=e.denom)&&void 0!==t?t:"",r.amount=null!==(n=e.amount)&&void 0!==n?n:"",r}};const s={denom:"",amount:""};t.DecCoin={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),""!==e.amount&&t.uint32(18).string(e.amount),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.denom=n.string();break;case 2:o.amount=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t.amount=void 0!==e.amount&&null!==e.amount?String(e.amount):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=e.amount),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.denom=null!==(t=e.denom)&&void 0!==t?t:"",r.amount=null!==(n=e.amount)&&void 0!==n?n:"",r}};const c={int:""};t.IntProto={encode:(e,t=i.default.Writer.create())=>(""!==e.int&&t.uint32(10).string(e.int),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.int=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.int=void 0!==e.int&&null!==e.int?String(e.int):"",t},toJSON(e){const t={};return void 0!==e.int&&(t.int=e.int),t},fromPartial(e){var t;const n=Object.assign({},c);return n.int=null!==(t=e.int)&&void 0!==t?t:"",n}};const d={dec:""};t.DecProto={encode:(e,t=i.default.Writer.create())=>(""!==e.dec&&t.uint32(10).string(e.dec),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.dec=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.dec=void 0!==e.dec&&null!==e.dec?String(e.dec):"",t},toJSON(e){const t={};return void 0!==e.dec&&(t.dec=e.dec),t},fromPartial(e){var t;const n=Object.assign({},d);return n.dec=null!==(t=e.dec)&&void 0!==t?t:"",n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},479:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyAminoPubKey=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="cosmos.crypto.multisig";const s={threshold:0};t.LegacyAminoPubKey={encode(e,t=i.default.Writer.create()){0!==e.threshold&&t.uint32(8).uint32(e.threshold);for(const n of e.publicKeys)a.Any.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.publicKeys=[];n.pos>>3){case 1:o.threshold=n.uint32();break;case 2:o.publicKeys.push(a.Any.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},s);return n.threshold=void 0!==e.threshold&&null!==e.threshold?Number(e.threshold):0,n.publicKeys=(null!==(t=e.publicKeys)&&void 0!==t?t:[]).map((e=>a.Any.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.threshold&&(t.threshold=e.threshold),e.publicKeys?t.publicKeys=e.publicKeys.map((e=>e?a.Any.toJSON(e):void 0)):t.publicKeys=[],t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.threshold=null!==(t=e.threshold)&&void 0!==t?t:0,r.publicKeys=(null===(n=e.publicKeys)||void 0===n?void 0:n.map((e=>a.Any.fromPartial(e))))||[],r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},7381:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompactBitArray=t.MultiSignature=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.crypto.multisig.v1beta1";const a={};t.MultiSignature={encode(e,t=i.default.Writer.create()){for(const n of e.signatures)t.uint32(10).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.signatures=[];n.pos>>3==1?o.signatures.push(n.bytes()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},a);return n.signatures=(null!==(t=e.signatures)&&void 0!==t?t:[]).map((e=>u(e))),n},toJSON(e){const t={};return e.signatures?t.signatures=e.signatures.map((e=>A(void 0!==e?e:new Uint8Array))):t.signatures=[],t},fromPartial(e){var t;const n=Object.assign({},a);return n.signatures=(null===(t=e.signatures)||void 0===t?void 0:t.map((e=>e)))||[],n}};const s={extraBitsStored:0};t.CompactBitArray={encode:(e,t=i.default.Writer.create())=>(0!==e.extraBitsStored&&t.uint32(8).uint32(e.extraBitsStored),0!==e.elems.length&&t.uint32(18).bytes(e.elems),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.elems=new Uint8Array;n.pos>>3){case 1:o.extraBitsStored=n.uint32();break;case 2:o.elems=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.extraBitsStored=void 0!==e.extraBitsStored&&null!==e.extraBitsStored?Number(e.extraBitsStored):0,t.elems=void 0!==e.elems&&null!==e.elems?u(e.elems):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.extraBitsStored&&(t.extraBitsStored=e.extraBitsStored),void 0!==e.elems&&(t.elems=A(void 0!==e.elems?e.elems:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.extraBitsStored=null!==(t=e.extraBitsStored)&&void 0!==t?t:0,r.elems=null!==(n=e.elems)&&void 0!==n?n:new Uint8Array,r}};var c=(()=>{if(void 0!==c)return c;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const d=c.atob||(e=>c.Buffer.from(e,"base64").toString("binary"));function u(e){const t=d(e),n=new Uint8Array(t.length);for(let e=0;ec.Buffer.from(e,"binary").toString("base64"));function A(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},7228:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrivKey=t.PubKey=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.crypto.secp256k1";const a={};t.PubKey={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.key=new Uint8Array;n.pos>>3==1?o.key=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},a);return t.key=void 0!==e.key&&null!==e.key?u(e.key):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=A(void 0!==e.key?e.key:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},a);return n.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,n}};const s={};t.PrivKey={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.key=new Uint8Array;n.pos>>3==1?o.key=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},s);return t.key=void 0!==e.key&&null!==e.key?u(e.key):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=A(void 0!==e.key?e.key:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},s);return n.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,n}};var c=(()=>{if(void 0!==c)return c;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const d=c.atob||(e=>c.Buffer.from(e,"base64").toString("binary"));function u(e){const t=d(e),n=new Uint8Array(t.length);for(let e=0;ec.Buffer.from(e,"binary").toString("base64"));function A(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return l(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1790:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CommunityPoolSpendProposalWithDeposit=t.DelegationDelegatorReward=t.DelegatorStartingInfo=t.CommunityPoolSpendProposal=t.FeePool=t.ValidatorSlashEvents=t.ValidatorSlashEvent=t.ValidatorOutstandingRewards=t.ValidatorAccumulatedCommission=t.ValidatorCurrentRewards=t.ValidatorHistoricalRewards=t.Params=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891);t.protobufPackage="cosmos.distribution.v1beta1";const s={communityTax:"",baseProposerReward:"",bonusProposerReward:"",withdrawAddrEnabled:!1};t.Params={encode:(e,t=i.default.Writer.create())=>(""!==e.communityTax&&t.uint32(10).string(e.communityTax),""!==e.baseProposerReward&&t.uint32(18).string(e.baseProposerReward),""!==e.bonusProposerReward&&t.uint32(26).string(e.bonusProposerReward),!0===e.withdrawAddrEnabled&&t.uint32(32).bool(e.withdrawAddrEnabled),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.communityTax=n.string();break;case 2:o.baseProposerReward=n.string();break;case 3:o.bonusProposerReward=n.string();break;case 4:o.withdrawAddrEnabled=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.communityTax=void 0!==e.communityTax&&null!==e.communityTax?String(e.communityTax):"",t.baseProposerReward=void 0!==e.baseProposerReward&&null!==e.baseProposerReward?String(e.baseProposerReward):"",t.bonusProposerReward=void 0!==e.bonusProposerReward&&null!==e.bonusProposerReward?String(e.bonusProposerReward):"",t.withdrawAddrEnabled=void 0!==e.withdrawAddrEnabled&&null!==e.withdrawAddrEnabled&&Boolean(e.withdrawAddrEnabled),t},toJSON(e){const t={};return void 0!==e.communityTax&&(t.communityTax=e.communityTax),void 0!==e.baseProposerReward&&(t.baseProposerReward=e.baseProposerReward),void 0!==e.bonusProposerReward&&(t.bonusProposerReward=e.bonusProposerReward),void 0!==e.withdrawAddrEnabled&&(t.withdrawAddrEnabled=e.withdrawAddrEnabled),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},s);return i.communityTax=null!==(t=e.communityTax)&&void 0!==t?t:"",i.baseProposerReward=null!==(n=e.baseProposerReward)&&void 0!==n?n:"",i.bonusProposerReward=null!==(r=e.bonusProposerReward)&&void 0!==r?r:"",i.withdrawAddrEnabled=null!==(o=e.withdrawAddrEnabled)&&void 0!==o&&o,i}};const c={referenceCount:0};t.ValidatorHistoricalRewards={encode(e,t=i.default.Writer.create()){for(const n of e.cumulativeRewardRatio)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return 0!==e.referenceCount&&t.uint32(16).uint32(e.referenceCount),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.cumulativeRewardRatio=[];n.pos>>3){case 1:o.cumulativeRewardRatio.push(a.DecCoin.decode(n,n.uint32()));break;case 2:o.referenceCount=n.uint32();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},c);return n.cumulativeRewardRatio=(null!==(t=e.cumulativeRewardRatio)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n.referenceCount=void 0!==e.referenceCount&&null!==e.referenceCount?Number(e.referenceCount):0,n},toJSON(e){const t={};return e.cumulativeRewardRatio?t.cumulativeRewardRatio=e.cumulativeRewardRatio.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.cumulativeRewardRatio=[],void 0!==e.referenceCount&&(t.referenceCount=e.referenceCount),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.cumulativeRewardRatio=(null===(t=e.cumulativeRewardRatio)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],r.referenceCount=null!==(n=e.referenceCount)&&void 0!==n?n:0,r}};const d={period:o.default.UZERO};t.ValidatorCurrentRewards={encode(e,t=i.default.Writer.create()){for(const n of e.rewards)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return e.period.isZero()||t.uint32(16).uint64(e.period),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.rewards=[];n.pos>>3){case 1:o.rewards.push(a.DecCoin.decode(n,n.uint32()));break;case 2:o.period=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.rewards=(null!==(t=e.rewards)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n.period=void 0!==e.period&&null!==e.period?o.default.fromString(e.period):o.default.UZERO,n},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.rewards=[],void 0!==e.period&&(t.period=(e.period||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},d);return n.rewards=(null===(t=e.rewards)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],n.period=void 0!==e.period&&null!==e.period?o.default.fromValue(e.period):o.default.UZERO,n}};const u={};t.ValidatorAccumulatedCommission={encode(e,t=i.default.Writer.create()){for(const n of e.commission)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.commission=[];n.pos>>3==1?o.commission.push(a.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.commission=(null!==(t=e.commission)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.commission?t.commission=e.commission.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.commission=[],t},fromPartial(e){var t;const n=Object.assign({},u);return n.commission=(null===(t=e.commission)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],n}};const l={};t.ValidatorOutstandingRewards={encode(e,t=i.default.Writer.create()){for(const n of e.rewards)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.rewards=[];n.pos>>3==1?o.rewards.push(a.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.rewards=(null!==(t=e.rewards)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.rewards=[],t},fromPartial(e){var t;const n=Object.assign({},l);return n.rewards=(null===(t=e.rewards)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],n}};const A={validatorPeriod:o.default.UZERO,fraction:""};t.ValidatorSlashEvent={encode:(e,t=i.default.Writer.create())=>(e.validatorPeriod.isZero()||t.uint32(8).uint64(e.validatorPeriod),""!==e.fraction&&t.uint32(18).string(e.fraction),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.validatorPeriod=n.uint64();break;case 2:o.fraction=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.validatorPeriod=void 0!==e.validatorPeriod&&null!==e.validatorPeriod?o.default.fromString(e.validatorPeriod):o.default.UZERO,t.fraction=void 0!==e.fraction&&null!==e.fraction?String(e.fraction):"",t},toJSON(e){const t={};return void 0!==e.validatorPeriod&&(t.validatorPeriod=(e.validatorPeriod||o.default.UZERO).toString()),void 0!==e.fraction&&(t.fraction=e.fraction),t},fromPartial(e){var t;const n=Object.assign({},A);return n.validatorPeriod=void 0!==e.validatorPeriod&&null!==e.validatorPeriod?o.default.fromValue(e.validatorPeriod):o.default.UZERO,n.fraction=null!==(t=e.fraction)&&void 0!==t?t:"",n}};const f={};t.ValidatorSlashEvents={encode(e,n=i.default.Writer.create()){for(const r of e.validatorSlashEvents)t.ValidatorSlashEvent.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(a.validatorSlashEvents=[];r.pos>>3==1?a.validatorSlashEvents.push(t.ValidatorSlashEvent.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},f);return r.validatorSlashEvents=(null!==(n=e.validatorSlashEvents)&&void 0!==n?n:[]).map((e=>t.ValidatorSlashEvent.fromJSON(e))),r},toJSON(e){const n={};return e.validatorSlashEvents?n.validatorSlashEvents=e.validatorSlashEvents.map((e=>e?t.ValidatorSlashEvent.toJSON(e):void 0)):n.validatorSlashEvents=[],n},fromPartial(e){var n;const r=Object.assign({},f);return r.validatorSlashEvents=(null===(n=e.validatorSlashEvents)||void 0===n?void 0:n.map((e=>t.ValidatorSlashEvent.fromPartial(e))))||[],r}};const h={};t.FeePool={encode(e,t=i.default.Writer.create()){for(const n of e.communityPool)a.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.communityPool=[];n.pos>>3==1?o.communityPool.push(a.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},h);return n.communityPool=(null!==(t=e.communityPool)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.communityPool?t.communityPool=e.communityPool.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.communityPool=[],t},fromPartial(e){var t;const n=Object.assign({},h);return n.communityPool=(null===(t=e.communityPool)||void 0===t?void 0:t.map((e=>a.DecCoin.fromPartial(e))))||[],n}};const p={title:"",description:"",recipient:""};t.CommunityPoolSpendProposal={encode(e,t=i.default.Writer.create()){""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.recipient&&t.uint32(26).string(e.recipient);for(const n of e.amount)a.Coin.encode(n,t.uint32(34).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.amount=[];n.pos>>3){case 1:o.title=n.string();break;case 2:o.description=n.string();break;case 3:o.recipient=n.string();break;case 4:o.amount.push(a.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.title=void 0!==e.title&&null!==e.title?String(e.title):"",n.description=void 0!==e.description&&null!==e.description?String(e.description):"",n.recipient=void 0!==e.recipient&&null!==e.recipient?String(e.recipient):"",n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.recipient&&(t.recipient=e.recipient),e.amount?t.amount=e.amount.map((e=>e?a.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t,n,r,o;const i=Object.assign({},p);return i.title=null!==(t=e.title)&&void 0!==t?t:"",i.description=null!==(n=e.description)&&void 0!==n?n:"",i.recipient=null!==(r=e.recipient)&&void 0!==r?r:"",i.amount=(null===(o=e.amount)||void 0===o?void 0:o.map((e=>a.Coin.fromPartial(e))))||[],i}};const g={previousPeriod:o.default.UZERO,stake:"",height:o.default.UZERO};t.DelegatorStartingInfo={encode:(e,t=i.default.Writer.create())=>(e.previousPeriod.isZero()||t.uint32(8).uint64(e.previousPeriod),""!==e.stake&&t.uint32(18).string(e.stake),e.height.isZero()||t.uint32(24).uint64(e.height),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.previousPeriod=n.uint64();break;case 2:o.stake=n.string();break;case 3:o.height=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.previousPeriod=void 0!==e.previousPeriod&&null!==e.previousPeriod?o.default.fromString(e.previousPeriod):o.default.UZERO,t.stake=void 0!==e.stake&&null!==e.stake?String(e.stake):"",t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.previousPeriod&&(t.previousPeriod=(e.previousPeriod||o.default.UZERO).toString()),void 0!==e.stake&&(t.stake=e.stake),void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},g);return n.previousPeriod=void 0!==e.previousPeriod&&null!==e.previousPeriod?o.default.fromValue(e.previousPeriod):o.default.UZERO,n.stake=null!==(t=e.stake)&&void 0!==t?t:"",n.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.UZERO,n}};const m={validatorAddress:""};t.DelegationDelegatorReward={encode(e,t=i.default.Writer.create()){""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress);for(const n of e.reward)a.DecCoin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.reward=[];n.pos>>3){case 1:o.validatorAddress=n.string();break;case 2:o.reward.push(a.DecCoin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},m);return n.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",n.reward=(null!==(t=e.reward)&&void 0!==t?t:[]).map((e=>a.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),e.reward?t.reward=e.reward.map((e=>e?a.DecCoin.toJSON(e):void 0)):t.reward=[],t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",r.reward=(null===(n=e.reward)||void 0===n?void 0:n.map((e=>a.DecCoin.fromPartial(e))))||[],r}};const v={title:"",description:"",recipient:"",amount:"",deposit:""};t.CommunityPoolSpendProposalWithDeposit={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.recipient&&t.uint32(26).string(e.recipient),""!==e.amount&&t.uint32(34).string(e.amount),""!==e.deposit&&t.uint32(42).string(e.deposit),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.title=n.string();break;case 2:o.description=n.string();break;case 3:o.recipient=n.string();break;case 4:o.amount=n.string();break;case 5:o.deposit=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.title=void 0!==e.title&&null!==e.title?String(e.title):"",t.description=void 0!==e.description&&null!==e.description?String(e.description):"",t.recipient=void 0!==e.recipient&&null!==e.recipient?String(e.recipient):"",t.amount=void 0!==e.amount&&null!==e.amount?String(e.amount):"",t.deposit=void 0!==e.deposit&&null!==e.deposit?String(e.deposit):"",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.recipient&&(t.recipient=e.recipient),void 0!==e.amount&&(t.amount=e.amount),void 0!==e.deposit&&(t.deposit=e.deposit),t},fromPartial(e){var t,n,r,o,i;const a=Object.assign({},v);return a.title=null!==(t=e.title)&&void 0!==t?t:"",a.description=null!==(n=e.description)&&void 0!==n?n:"",a.recipient=null!==(r=e.recipient)&&void 0!==r?r:"",a.amount=null!==(o=e.amount)&&void 0!==o?o:"",a.deposit=null!==(i=e.deposit)&&void 0!==i?i:"",a}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6208:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryCommunityPoolResponse=t.QueryCommunityPoolRequest=t.QueryDelegatorWithdrawAddressResponse=t.QueryDelegatorWithdrawAddressRequest=t.QueryDelegatorValidatorsResponse=t.QueryDelegatorValidatorsRequest=t.QueryDelegationTotalRewardsResponse=t.QueryDelegationTotalRewardsRequest=t.QueryDelegationRewardsResponse=t.QueryDelegationRewardsRequest=t.QueryValidatorSlashesResponse=t.QueryValidatorSlashesRequest=t.QueryValidatorCommissionResponse=t.QueryValidatorCommissionRequest=t.QueryValidatorOutstandingRewardsResponse=t.QueryValidatorOutstandingRewardsRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1790),s=n(9551),c=n(891);t.protobufPackage="cosmos.distribution.v1beta1";const d={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const u={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&a.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.params=a.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?a.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},u);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromPartial(e.params):void 0,t}};const l={validatorAddress:""};t.QueryValidatorOutstandingRewardsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.validatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t;const n=Object.assign({},l);return n.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",n}};const A={};t.QueryValidatorOutstandingRewardsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.rewards&&a.ValidatorOutstandingRewards.encode(e.rewards,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.rewards=a.ValidatorOutstandingRewards.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.rewards=void 0!==e.rewards&&null!==e.rewards?a.ValidatorOutstandingRewards.fromJSON(e.rewards):void 0,t},toJSON(e){const t={};return void 0!==e.rewards&&(t.rewards=e.rewards?a.ValidatorOutstandingRewards.toJSON(e.rewards):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.rewards=void 0!==e.rewards&&null!==e.rewards?a.ValidatorOutstandingRewards.fromPartial(e.rewards):void 0,t}};const f={validatorAddress:""};t.QueryValidatorCommissionRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.validatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t;const n=Object.assign({},f);return n.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",n}};const h={};t.QueryValidatorCommissionResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.commission&&a.ValidatorAccumulatedCommission.encode(e.commission,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3==1?o.commission=a.ValidatorAccumulatedCommission.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);return t.commission=void 0!==e.commission&&null!==e.commission?a.ValidatorAccumulatedCommission.fromJSON(e.commission):void 0,t},toJSON(e){const t={};return void 0!==e.commission&&(t.commission=e.commission?a.ValidatorAccumulatedCommission.toJSON(e.commission):void 0),t},fromPartial(e){const t=Object.assign({},h);return t.commission=void 0!==e.commission&&null!==e.commission?a.ValidatorAccumulatedCommission.fromPartial(e.commission):void 0,t}};const p={validatorAddress:"",startingHeight:o.default.UZERO,endingHeight:o.default.UZERO};t.QueryValidatorSlashesRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),e.startingHeight.isZero()||t.uint32(16).uint64(e.startingHeight),e.endingHeight.isZero()||t.uint32(24).uint64(e.endingHeight),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.validatorAddress=n.string();break;case 2:o.startingHeight=n.uint64();break;case 3:o.endingHeight=n.uint64();break;case 4:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.startingHeight=void 0!==e.startingHeight&&null!==e.startingHeight?o.default.fromString(e.startingHeight):o.default.UZERO,t.endingHeight=void 0!==e.endingHeight&&null!==e.endingHeight?o.default.fromString(e.endingHeight):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.startingHeight&&(t.startingHeight=(e.startingHeight||o.default.UZERO).toString()),void 0!==e.endingHeight&&(t.endingHeight=(e.endingHeight||o.default.UZERO).toString()),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},p);return n.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",n.startingHeight=void 0!==e.startingHeight&&null!==e.startingHeight?o.default.fromValue(e.startingHeight):o.default.UZERO,n.endingHeight=void 0!==e.endingHeight&&null!==e.endingHeight?o.default.fromValue(e.endingHeight):o.default.UZERO,n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,n}};const g={};t.QueryValidatorSlashesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.slashes)a.ValidatorSlashEvent.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.slashes=[];n.pos>>3){case 1:o.slashes.push(a.ValidatorSlashEvent.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.slashes=(null!==(t=e.slashes)&&void 0!==t?t:[]).map((e=>a.ValidatorSlashEvent.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.slashes?t.slashes=e.slashes.map((e=>e?a.ValidatorSlashEvent.toJSON(e):void 0)):t.slashes=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},g);return n.slashes=(null===(t=e.slashes)||void 0===t?void 0:t.map((e=>a.ValidatorSlashEvent.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const m={delegatorAddress:"",validatorAddress:""};t.QueryDelegationRewardsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r}};const v={};t.QueryDelegationRewardsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.rewards)c.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.rewards=[];n.pos>>3==1?o.rewards.push(c.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},v);return n.rewards=(null!==(t=e.rewards)&&void 0!==t?t:[]).map((e=>c.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?c.DecCoin.toJSON(e):void 0)):t.rewards=[],t},fromPartial(e){var t;const n=Object.assign({},v);return n.rewards=(null===(t=e.rewards)||void 0===t?void 0:t.map((e=>c.DecCoin.fromPartial(e))))||[],n}};const y={delegatorAddress:""};t.QueryDelegationTotalRewardsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.delegatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),t},fromPartial(e){var t;const n=Object.assign({},y);return n.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",n}};const b={};t.QueryDelegationTotalRewardsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.rewards)a.DelegationDelegatorReward.encode(n,t.uint32(10).fork()).ldelim();for(const n of e.total)c.DecCoin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.rewards=[],o.total=[];n.pos>>3){case 1:o.rewards.push(a.DelegationDelegatorReward.decode(n,n.uint32()));break;case 2:o.total.push(c.DecCoin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n;const r=Object.assign({},b);return r.rewards=(null!==(t=e.rewards)&&void 0!==t?t:[]).map((e=>a.DelegationDelegatorReward.fromJSON(e))),r.total=(null!==(n=e.total)&&void 0!==n?n:[]).map((e=>c.DecCoin.fromJSON(e))),r},toJSON(e){const t={};return e.rewards?t.rewards=e.rewards.map((e=>e?a.DelegationDelegatorReward.toJSON(e):void 0)):t.rewards=[],e.total?t.total=e.total.map((e=>e?c.DecCoin.toJSON(e):void 0)):t.total=[],t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.rewards=(null===(t=e.rewards)||void 0===t?void 0:t.map((e=>a.DelegationDelegatorReward.fromPartial(e))))||[],r.total=(null===(n=e.total)||void 0===n?void 0:n.map((e=>c.DecCoin.fromPartial(e))))||[],r}};const I={delegatorAddress:""};t.QueryDelegatorValidatorsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(;n.pos>>3==1?o.delegatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},I);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),t},fromPartial(e){var t;const n=Object.assign({},I);return n.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",n}};const C={validators:""};t.QueryDelegatorValidatorsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.validators)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(o.validators=[];n.pos>>3==1?o.validators.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},C);return n.validators=(null!==(t=e.validators)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.validators?t.validators=e.validators.map((e=>e)):t.validators=[],t},fromPartial(e){var t;const n=Object.assign({},C);return n.validators=(null===(t=e.validators)||void 0===t?void 0:t.map((e=>e)))||[],n}};const E={delegatorAddress:""};t.QueryDelegatorWithdrawAddressRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.pos>>3==1?o.delegatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),t},fromPartial(e){var t;const n=Object.assign({},E);return n.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",n}};const w={withdrawAddress:""};t.QueryDelegatorWithdrawAddressResponse={encode:(e,t=i.default.Writer.create())=>(""!==e.withdrawAddress&&t.uint32(10).string(e.withdrawAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3==1?o.withdrawAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},w);return t.withdrawAddress=void 0!==e.withdrawAddress&&null!==e.withdrawAddress?String(e.withdrawAddress):"",t},toJSON(e){const t={};return void 0!==e.withdrawAddress&&(t.withdrawAddress=e.withdrawAddress),t},fromPartial(e){var t;const n=Object.assign({},w);return n.withdrawAddress=null!==(t=e.withdrawAddress)&&void 0!==t?t:"",n}};const B={};t.QueryCommunityPoolRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(;n.posObject.assign({},B),toJSON:e=>({}),fromPartial:e=>Object.assign({},B)};const _={};t.QueryCommunityPoolResponse={encode(e,t=i.default.Writer.create()){for(const n of e.pool)c.DecCoin.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(o.pool=[];n.pos>>3==1?o.pool.push(c.DecCoin.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},_);return n.pool=(null!==(t=e.pool)&&void 0!==t?t:[]).map((e=>c.DecCoin.fromJSON(e))),n},toJSON(e){const t={};return e.pool?t.pool=e.pool.map((e=>e?c.DecCoin.toJSON(e):void 0)):t.pool=[],t},fromPartial(e){var t;const n=Object.assign({},_);return n.pool=(null===(t=e.pool)||void 0===t?void 0:t.map((e=>c.DecCoin.fromPartial(e))))||[],n}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Params=this.Params.bind(this),this.ValidatorOutstandingRewards=this.ValidatorOutstandingRewards.bind(this),this.ValidatorCommission=this.ValidatorCommission.bind(this),this.ValidatorSlashes=this.ValidatorSlashes.bind(this),this.DelegationRewards=this.DelegationRewards.bind(this),this.DelegationTotalRewards=this.DelegationTotalRewards.bind(this),this.DelegatorValidators=this.DelegatorValidators.bind(this),this.DelegatorWithdrawAddress=this.DelegatorWithdrawAddress.bind(this),this.CommunityPool=this.CommunityPool.bind(this)}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}ValidatorOutstandingRewards(e){const n=t.QueryValidatorOutstandingRewardsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","ValidatorOutstandingRewards",n).then((e=>t.QueryValidatorOutstandingRewardsResponse.decode(new i.default.Reader(e))))}ValidatorCommission(e){const n=t.QueryValidatorCommissionRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","ValidatorCommission",n).then((e=>t.QueryValidatorCommissionResponse.decode(new i.default.Reader(e))))}ValidatorSlashes(e){const n=t.QueryValidatorSlashesRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","ValidatorSlashes",n).then((e=>t.QueryValidatorSlashesResponse.decode(new i.default.Reader(e))))}DelegationRewards(e){const n=t.QueryDelegationRewardsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","DelegationRewards",n).then((e=>t.QueryDelegationRewardsResponse.decode(new i.default.Reader(e))))}DelegationTotalRewards(e){const n=t.QueryDelegationTotalRewardsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","DelegationTotalRewards",n).then((e=>t.QueryDelegationTotalRewardsResponse.decode(new i.default.Reader(e))))}DelegatorValidators(e){const n=t.QueryDelegatorValidatorsRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","DelegatorValidators",n).then((e=>t.QueryDelegatorValidatorsResponse.decode(new i.default.Reader(e))))}DelegatorWithdrawAddress(e){const n=t.QueryDelegatorWithdrawAddressRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","DelegatorWithdrawAddress",n).then((e=>t.QueryDelegatorWithdrawAddressResponse.decode(new i.default.Reader(e))))}CommunityPool(e){const n=t.QueryCommunityPoolRequest.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Query","CommunityPool",n).then((e=>t.QueryCommunityPoolResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3773:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgFundCommunityPoolResponse=t.MsgFundCommunityPool=t.MsgWithdrawValidatorCommissionResponse=t.MsgWithdrawValidatorCommission=t.MsgWithdrawDelegatorRewardResponse=t.MsgWithdrawDelegatorReward=t.MsgSetWithdrawAddressResponse=t.MsgSetWithdrawAddress=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891);t.protobufPackage="cosmos.distribution.v1beta1";const s={delegatorAddress:"",withdrawAddress:""};t.MsgSetWithdrawAddress={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.withdrawAddress&&t.uint32(18).string(e.withdrawAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.withdrawAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.withdrawAddress=void 0!==e.withdrawAddress&&null!==e.withdrawAddress?String(e.withdrawAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.withdrawAddress&&(t.withdrawAddress=e.withdrawAddress),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.withdrawAddress=null!==(n=e.withdrawAddress)&&void 0!==n?n:"",r}};const c={};t.MsgSetWithdrawAddressResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={delegatorAddress:"",validatorAddress:""};t.MsgWithdrawDelegatorReward={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r}};const u={};t.MsgWithdrawDelegatorRewardResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)};const l={validatorAddress:""};t.MsgWithdrawValidatorCommission={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddress&&t.uint32(10).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.validatorAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t;const n=Object.assign({},l);return n.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",n}};const A={};t.MsgWithdrawValidatorCommissionResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={depositor:""};t.MsgFundCommunityPool={encode(e,t=i.default.Writer.create()){for(const n of e.amount)a.Coin.encode(n,t.uint32(10).fork()).ldelim();return""!==e.depositor&&t.uint32(18).string(e.depositor),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.amount=[];n.pos>>3){case 1:o.amount.push(a.Coin.decode(n,n.uint32()));break;case 2:o.depositor=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>a.Coin.fromJSON(e))),n.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",n},toJSON(e){const t={};return e.amount?t.amount=e.amount.map((e=>e?a.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.depositor&&(t.depositor=e.depositor),t},fromPartial(e){var t,n;const r=Object.assign({},f);return r.amount=(null===(t=e.amount)||void 0===t?void 0:t.map((e=>a.Coin.fromPartial(e))))||[],r.depositor=null!==(n=e.depositor)&&void 0!==n?n:"",r}};const h={};t.MsgFundCommunityPoolResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.SetWithdrawAddress=this.SetWithdrawAddress.bind(this),this.WithdrawDelegatorReward=this.WithdrawDelegatorReward.bind(this),this.WithdrawValidatorCommission=this.WithdrawValidatorCommission.bind(this),this.FundCommunityPool=this.FundCommunityPool.bind(this)}SetWithdrawAddress(e){const n=t.MsgSetWithdrawAddress.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","SetWithdrawAddress",n).then((e=>t.MsgSetWithdrawAddressResponse.decode(new i.default.Reader(e))))}WithdrawDelegatorReward(e){const n=t.MsgWithdrawDelegatorReward.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","WithdrawDelegatorReward",n).then((e=>t.MsgWithdrawDelegatorRewardResponse.decode(new i.default.Reader(e))))}WithdrawValidatorCommission(e){const n=t.MsgWithdrawValidatorCommission.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","WithdrawValidatorCommission",n).then((e=>t.MsgWithdrawValidatorCommissionResponse.decode(new i.default.Reader(e))))}FundCommunityPool(e){const n=t.MsgFundCommunityPool.encode(e).finish();return this.rpc.request("cosmos.distribution.v1beta1.Msg","FundCommunityPool",n).then((e=>t.MsgFundCommunityPoolResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5192:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgRevokeAllowanceResponse=t.MsgRevokeAllowance=t.MsgGrantAllowanceResponse=t.MsgGrantAllowance=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="cosmos.feegrant.v1beta1";const s={granter:"",grantee:""};t.MsgGrantAllowance={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),void 0!==e.allowance&&a.Any.encode(e.allowance,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.granter=n.string();break;case 2:o.grantee=n.string();break;case 3:o.allowance=a.Any.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",t.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",t.allowance=void 0!==e.allowance&&null!==e.allowance?a.Any.fromJSON(e.allowance):void 0,t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),void 0!==e.allowance&&(t.allowance=e.allowance?a.Any.toJSON(e.allowance):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.granter=null!==(t=e.granter)&&void 0!==t?t:"",r.grantee=null!==(n=e.grantee)&&void 0!==n?n:"",r.allowance=void 0!==e.allowance&&null!==e.allowance?a.Any.fromPartial(e.allowance):void 0,r}};const c={};t.MsgGrantAllowanceResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={granter:"",grantee:""};t.MsgRevokeAllowance={encode:(e,t=i.default.Writer.create())=>(""!==e.granter&&t.uint32(10).string(e.granter),""!==e.grantee&&t.uint32(18).string(e.grantee),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.granter=n.string();break;case 2:o.grantee=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",t.grantee=void 0!==e.grantee&&null!==e.grantee?String(e.grantee):"",t},toJSON(e){const t={};return void 0!==e.granter&&(t.granter=e.granter),void 0!==e.grantee&&(t.grantee=e.grantee),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.granter=null!==(t=e.granter)&&void 0!==t?t:"",r.grantee=null!==(n=e.grantee)&&void 0!==n?n:"",r}};const u={};t.MsgRevokeAllowanceResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.GrantAllowance=this.GrantAllowance.bind(this),this.RevokeAllowance=this.RevokeAllowance.bind(this)}GrantAllowance(e){const n=t.MsgGrantAllowance.encode(e).finish();return this.rpc.request("cosmos.feegrant.v1beta1.Msg","GrantAllowance",n).then((e=>t.MsgGrantAllowanceResponse.decode(new i.default.Reader(e))))}RevokeAllowance(e){const n=t.MsgRevokeAllowance.encode(e).finish();return this.rpc.request("cosmos.feegrant.v1beta1.Msg","RevokeAllowance",n).then((e=>t.MsgRevokeAllowanceResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9876:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TallyParams=t.VotingParams=t.DepositParams=t.Vote=t.TallyResult=t.Proposal=t.Deposit=t.TextProposal=t.WeightedVoteOption=t.proposalStatusToJSON=t.proposalStatusFromJSON=t.ProposalStatus=t.voteOptionToJSON=t.voteOptionFromJSON=t.VoteOption=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(5522),c=n(281),d=n(891);var u,l;function A(e){switch(e){case 0:case"VOTE_OPTION_UNSPECIFIED":return u.VOTE_OPTION_UNSPECIFIED;case 1:case"VOTE_OPTION_YES":return u.VOTE_OPTION_YES;case 2:case"VOTE_OPTION_ABSTAIN":return u.VOTE_OPTION_ABSTAIN;case 3:case"VOTE_OPTION_NO":return u.VOTE_OPTION_NO;case 4:case"VOTE_OPTION_NO_WITH_VETO":return u.VOTE_OPTION_NO_WITH_VETO;default:return u.UNRECOGNIZED}}function f(e){switch(e){case u.VOTE_OPTION_UNSPECIFIED:return"VOTE_OPTION_UNSPECIFIED";case u.VOTE_OPTION_YES:return"VOTE_OPTION_YES";case u.VOTE_OPTION_ABSTAIN:return"VOTE_OPTION_ABSTAIN";case u.VOTE_OPTION_NO:return"VOTE_OPTION_NO";case u.VOTE_OPTION_NO_WITH_VETO:return"VOTE_OPTION_NO_WITH_VETO";default:return"UNKNOWN"}}function h(e){switch(e){case 0:case"PROPOSAL_STATUS_UNSPECIFIED":return l.PROPOSAL_STATUS_UNSPECIFIED;case 1:case"PROPOSAL_STATUS_DEPOSIT_PERIOD":return l.PROPOSAL_STATUS_DEPOSIT_PERIOD;case 2:case"PROPOSAL_STATUS_VOTING_PERIOD":return l.PROPOSAL_STATUS_VOTING_PERIOD;case 3:case"PROPOSAL_STATUS_PASSED":return l.PROPOSAL_STATUS_PASSED;case 4:case"PROPOSAL_STATUS_REJECTED":return l.PROPOSAL_STATUS_REJECTED;case 5:case"PROPOSAL_STATUS_FAILED":return l.PROPOSAL_STATUS_FAILED;default:return l.UNRECOGNIZED}}function p(e){switch(e){case l.PROPOSAL_STATUS_UNSPECIFIED:return"PROPOSAL_STATUS_UNSPECIFIED";case l.PROPOSAL_STATUS_DEPOSIT_PERIOD:return"PROPOSAL_STATUS_DEPOSIT_PERIOD";case l.PROPOSAL_STATUS_VOTING_PERIOD:return"PROPOSAL_STATUS_VOTING_PERIOD";case l.PROPOSAL_STATUS_PASSED:return"PROPOSAL_STATUS_PASSED";case l.PROPOSAL_STATUS_REJECTED:return"PROPOSAL_STATUS_REJECTED";case l.PROPOSAL_STATUS_FAILED:return"PROPOSAL_STATUS_FAILED";default:return"UNKNOWN"}}t.protobufPackage="cosmos.gov.v1beta1",function(e){e[e.VOTE_OPTION_UNSPECIFIED=0]="VOTE_OPTION_UNSPECIFIED",e[e.VOTE_OPTION_YES=1]="VOTE_OPTION_YES",e[e.VOTE_OPTION_ABSTAIN=2]="VOTE_OPTION_ABSTAIN",e[e.VOTE_OPTION_NO=3]="VOTE_OPTION_NO",e[e.VOTE_OPTION_NO_WITH_VETO=4]="VOTE_OPTION_NO_WITH_VETO",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.VoteOption||(t.VoteOption={})),t.voteOptionFromJSON=A,t.voteOptionToJSON=f,function(e){e[e.PROPOSAL_STATUS_UNSPECIFIED=0]="PROPOSAL_STATUS_UNSPECIFIED",e[e.PROPOSAL_STATUS_DEPOSIT_PERIOD=1]="PROPOSAL_STATUS_DEPOSIT_PERIOD",e[e.PROPOSAL_STATUS_VOTING_PERIOD=2]="PROPOSAL_STATUS_VOTING_PERIOD",e[e.PROPOSAL_STATUS_PASSED=3]="PROPOSAL_STATUS_PASSED",e[e.PROPOSAL_STATUS_REJECTED=4]="PROPOSAL_STATUS_REJECTED",e[e.PROPOSAL_STATUS_FAILED=5]="PROPOSAL_STATUS_FAILED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.ProposalStatus||(t.ProposalStatus={})),t.proposalStatusFromJSON=h,t.proposalStatusToJSON=p;const g={option:0,weight:""};t.WeightedVoteOption={encode:(e,t=i.default.Writer.create())=>(0!==e.option&&t.uint32(8).int32(e.option),""!==e.weight&&t.uint32(18).string(e.weight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.option=n.int32();break;case 2:o.weight=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.option=void 0!==e.option&&null!==e.option?A(e.option):0,t.weight=void 0!==e.weight&&null!==e.weight?String(e.weight):"",t},toJSON(e){const t={};return void 0!==e.option&&(t.option=f(e.option)),void 0!==e.weight&&(t.weight=e.weight),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.option=null!==(t=e.option)&&void 0!==t?t:0,r.weight=null!==(n=e.weight)&&void 0!==n?n:"",r}};const m={title:"",description:""};t.TextProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.title=n.string();break;case 2:o.description=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.title=void 0!==e.title&&null!==e.title?String(e.title):"",t.description=void 0!==e.description&&null!==e.description?String(e.description):"",t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.title=null!==(t=e.title)&&void 0!==t?t:"",r.description=null!==(n=e.description)&&void 0!==n?n:"",r}};const v={proposalId:o.default.UZERO,depositor:""};t.Deposit={encode(e,t=i.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor);for(const n of e.amount)d.Coin.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.amount=[];n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.depositor=n.string();break;case 3:o.amount.push(d.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},v);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,n.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>d.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),e.amount?t.amount=e.amount.map((e=>e?d.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,r.depositor=null!==(t=e.depositor)&&void 0!==t?t:"",r.amount=(null===(n=e.amount)||void 0===n?void 0:n.map((e=>d.Coin.fromPartial(e))))||[],r}};const y={proposalId:o.default.UZERO,status:0};t.Proposal={encode(e,n=i.default.Writer.create()){e.proposalId.isZero()||n.uint32(8).uint64(e.proposalId),void 0!==e.content&&a.Any.encode(e.content,n.uint32(18).fork()).ldelim(),0!==e.status&&n.uint32(24).int32(e.status),void 0!==e.finalTallyResult&&t.TallyResult.encode(e.finalTallyResult,n.uint32(34).fork()).ldelim(),void 0!==e.submitTime&&s.Timestamp.encode(e.submitTime,n.uint32(42).fork()).ldelim(),void 0!==e.depositEndTime&&s.Timestamp.encode(e.depositEndTime,n.uint32(50).fork()).ldelim();for(const t of e.totalDeposit)d.Coin.encode(t,n.uint32(58).fork()).ldelim();return void 0!==e.votingStartTime&&s.Timestamp.encode(e.votingStartTime,n.uint32(66).fork()).ldelim(),void 0!==e.votingEndTime&&s.Timestamp.encode(e.votingEndTime,n.uint32(74).fork()).ldelim(),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const c=Object.assign({},y);for(c.totalDeposit=[];r.pos>>3){case 1:c.proposalId=r.uint64();break;case 2:c.content=a.Any.decode(r,r.uint32());break;case 3:c.status=r.int32();break;case 4:c.finalTallyResult=t.TallyResult.decode(r,r.uint32());break;case 5:c.submitTime=s.Timestamp.decode(r,r.uint32());break;case 6:c.depositEndTime=s.Timestamp.decode(r,r.uint32());break;case 7:c.totalDeposit.push(d.Coin.decode(r,r.uint32()));break;case 8:c.votingStartTime=s.Timestamp.decode(r,r.uint32());break;case 9:c.votingEndTime=s.Timestamp.decode(r,r.uint32());break;default:r.skipType(7&e)}}return c},fromJSON(e){var n;const r=Object.assign({},y);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,r.content=void 0!==e.content&&null!==e.content?a.Any.fromJSON(e.content):void 0,r.status=void 0!==e.status&&null!==e.status?h(e.status):0,r.finalTallyResult=void 0!==e.finalTallyResult&&null!==e.finalTallyResult?t.TallyResult.fromJSON(e.finalTallyResult):void 0,r.submitTime=void 0!==e.submitTime&&null!==e.submitTime?P(e.submitTime):void 0,r.depositEndTime=void 0!==e.depositEndTime&&null!==e.depositEndTime?P(e.depositEndTime):void 0,r.totalDeposit=(null!==(n=e.totalDeposit)&&void 0!==n?n:[]).map((e=>d.Coin.fromJSON(e))),r.votingStartTime=void 0!==e.votingStartTime&&null!==e.votingStartTime?P(e.votingStartTime):void 0,r.votingEndTime=void 0!==e.votingEndTime&&null!==e.votingEndTime?P(e.votingEndTime):void 0,r},toJSON(e){const n={};return void 0!==e.proposalId&&(n.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.content&&(n.content=e.content?a.Any.toJSON(e.content):void 0),void 0!==e.status&&(n.status=p(e.status)),void 0!==e.finalTallyResult&&(n.finalTallyResult=e.finalTallyResult?t.TallyResult.toJSON(e.finalTallyResult):void 0),void 0!==e.submitTime&&(n.submitTime=R(e.submitTime).toISOString()),void 0!==e.depositEndTime&&(n.depositEndTime=R(e.depositEndTime).toISOString()),e.totalDeposit?n.totalDeposit=e.totalDeposit.map((e=>e?d.Coin.toJSON(e):void 0)):n.totalDeposit=[],void 0!==e.votingStartTime&&(n.votingStartTime=R(e.votingStartTime).toISOString()),void 0!==e.votingEndTime&&(n.votingEndTime=R(e.votingEndTime).toISOString()),n},fromPartial(e){var n,r;const i=Object.assign({},y);return i.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,i.content=void 0!==e.content&&null!==e.content?a.Any.fromPartial(e.content):void 0,i.status=null!==(n=e.status)&&void 0!==n?n:0,i.finalTallyResult=void 0!==e.finalTallyResult&&null!==e.finalTallyResult?t.TallyResult.fromPartial(e.finalTallyResult):void 0,i.submitTime=void 0!==e.submitTime&&null!==e.submitTime?s.Timestamp.fromPartial(e.submitTime):void 0,i.depositEndTime=void 0!==e.depositEndTime&&null!==e.depositEndTime?s.Timestamp.fromPartial(e.depositEndTime):void 0,i.totalDeposit=(null===(r=e.totalDeposit)||void 0===r?void 0:r.map((e=>d.Coin.fromPartial(e))))||[],i.votingStartTime=void 0!==e.votingStartTime&&null!==e.votingStartTime?s.Timestamp.fromPartial(e.votingStartTime):void 0,i.votingEndTime=void 0!==e.votingEndTime&&null!==e.votingEndTime?s.Timestamp.fromPartial(e.votingEndTime):void 0,i}};const b={yes:"",abstain:"",no:"",noWithVeto:""};t.TallyResult={encode:(e,t=i.default.Writer.create())=>(""!==e.yes&&t.uint32(10).string(e.yes),""!==e.abstain&&t.uint32(18).string(e.abstain),""!==e.no&&t.uint32(26).string(e.no),""!==e.noWithVeto&&t.uint32(34).string(e.noWithVeto),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.yes=n.string();break;case 2:o.abstain=n.string();break;case 3:o.no=n.string();break;case 4:o.noWithVeto=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.yes=void 0!==e.yes&&null!==e.yes?String(e.yes):"",t.abstain=void 0!==e.abstain&&null!==e.abstain?String(e.abstain):"",t.no=void 0!==e.no&&null!==e.no?String(e.no):"",t.noWithVeto=void 0!==e.noWithVeto&&null!==e.noWithVeto?String(e.noWithVeto):"",t},toJSON(e){const t={};return void 0!==e.yes&&(t.yes=e.yes),void 0!==e.abstain&&(t.abstain=e.abstain),void 0!==e.no&&(t.no=e.no),void 0!==e.noWithVeto&&(t.noWithVeto=e.noWithVeto),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},b);return i.yes=null!==(t=e.yes)&&void 0!==t?t:"",i.abstain=null!==(n=e.abstain)&&void 0!==n?n:"",i.no=null!==(r=e.no)&&void 0!==r?r:"",i.noWithVeto=null!==(o=e.noWithVeto)&&void 0!==o?o:"",i}};const I={proposalId:o.default.UZERO,voter:"",option:0};t.Vote={encode(e,n=i.default.Writer.create()){e.proposalId.isZero()||n.uint32(8).uint64(e.proposalId),""!==e.voter&&n.uint32(18).string(e.voter),0!==e.option&&n.uint32(24).int32(e.option);for(const r of e.options)t.WeightedVoteOption.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},I);for(a.options=[];r.pos>>3){case 1:a.proposalId=r.uint64();break;case 2:a.voter=r.string();break;case 3:a.option=r.int32();break;case 4:a.options.push(t.WeightedVoteOption.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},I);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,r.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",r.option=void 0!==e.option&&null!==e.option?A(e.option):0,r.options=(null!==(n=e.options)&&void 0!==n?n:[]).map((e=>t.WeightedVoteOption.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.proposalId&&(n.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(n.voter=e.voter),void 0!==e.option&&(n.option=f(e.option)),e.options?n.options=e.options.map((e=>e?t.WeightedVoteOption.toJSON(e):void 0)):n.options=[],n},fromPartial(e){var n,r,i;const a=Object.assign({},I);return a.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,a.voter=null!==(n=e.voter)&&void 0!==n?n:"",a.option=null!==(r=e.option)&&void 0!==r?r:0,a.options=(null===(i=e.options)||void 0===i?void 0:i.map((e=>t.WeightedVoteOption.fromPartial(e))))||[],a}};const C={};t.DepositParams={encode(e,t=i.default.Writer.create()){for(const n of e.minDeposit)d.Coin.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.maxDepositPeriod&&c.Duration.encode(e.maxDepositPeriod,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(o.minDeposit=[];n.pos>>3){case 1:o.minDeposit.push(d.Coin.decode(n,n.uint32()));break;case 2:o.maxDepositPeriod=c.Duration.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},C);return n.minDeposit=(null!==(t=e.minDeposit)&&void 0!==t?t:[]).map((e=>d.Coin.fromJSON(e))),n.maxDepositPeriod=void 0!==e.maxDepositPeriod&&null!==e.maxDepositPeriod?c.Duration.fromJSON(e.maxDepositPeriod):void 0,n},toJSON(e){const t={};return e.minDeposit?t.minDeposit=e.minDeposit.map((e=>e?d.Coin.toJSON(e):void 0)):t.minDeposit=[],void 0!==e.maxDepositPeriod&&(t.maxDepositPeriod=e.maxDepositPeriod?c.Duration.toJSON(e.maxDepositPeriod):void 0),t},fromPartial(e){var t;const n=Object.assign({},C);return n.minDeposit=(null===(t=e.minDeposit)||void 0===t?void 0:t.map((e=>d.Coin.fromPartial(e))))||[],n.maxDepositPeriod=void 0!==e.maxDepositPeriod&&null!==e.maxDepositPeriod?c.Duration.fromPartial(e.maxDepositPeriod):void 0,n}};const E={};t.VotingParams={encode:(e,t=i.default.Writer.create())=>(void 0!==e.votingPeriod&&c.Duration.encode(e.votingPeriod,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.pos>>3==1?o.votingPeriod=c.Duration.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return t.votingPeriod=void 0!==e.votingPeriod&&null!==e.votingPeriod?c.Duration.fromJSON(e.votingPeriod):void 0,t},toJSON(e){const t={};return void 0!==e.votingPeriod&&(t.votingPeriod=e.votingPeriod?c.Duration.toJSON(e.votingPeriod):void 0),t},fromPartial(e){const t=Object.assign({},E);return t.votingPeriod=void 0!==e.votingPeriod&&null!==e.votingPeriod?c.Duration.fromPartial(e.votingPeriod):void 0,t}};const w={};t.TallyParams={encode:(e,t=i.default.Writer.create())=>(0!==e.quorum.length&&t.uint32(10).bytes(e.quorum),0!==e.threshold.length&&t.uint32(18).bytes(e.threshold),0!==e.vetoThreshold.length&&t.uint32(26).bytes(e.vetoThreshold),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(o.quorum=new Uint8Array,o.threshold=new Uint8Array,o.vetoThreshold=new Uint8Array;n.pos>>3){case 1:o.quorum=n.bytes();break;case 2:o.threshold=n.bytes();break;case 3:o.vetoThreshold=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.quorum=void 0!==e.quorum&&null!==e.quorum?S(e.quorum):new Uint8Array,t.threshold=void 0!==e.threshold&&null!==e.threshold?S(e.threshold):new Uint8Array,t.vetoThreshold=void 0!==e.vetoThreshold&&null!==e.vetoThreshold?S(e.vetoThreshold):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.quorum&&(t.quorum=O(void 0!==e.quorum?e.quorum:new Uint8Array)),void 0!==e.threshold&&(t.threshold=O(void 0!==e.threshold?e.threshold:new Uint8Array)),void 0!==e.vetoThreshold&&(t.vetoThreshold=O(void 0!==e.vetoThreshold?e.vetoThreshold:new Uint8Array)),t},fromPartial(e){var t,n,r;const o=Object.assign({},w);return o.quorum=null!==(t=e.quorum)&&void 0!==t?t:new Uint8Array,o.threshold=null!==(n=e.threshold)&&void 0!==n?n:new Uint8Array,o.vetoThreshold=null!==(r=e.vetoThreshold)&&void 0!==r?r:new Uint8Array,o}};var B=(()=>{if(void 0!==B)return B;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const _=B.atob||(e=>B.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),n=new Uint8Array(t.length);for(let e=0;eB.Buffer.from(e,"binary").toString("base64"));function O(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return k(t.join(""))}function Q(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function R(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function P(e){return e instanceof Date?Q(e):"string"==typeof e?Q(new Date(e)):s.Timestamp.fromJSON(e)}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9207:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryTallyResultResponse=t.QueryTallyResultRequest=t.QueryDepositsResponse=t.QueryDepositsRequest=t.QueryDepositResponse=t.QueryDepositRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.QueryVotesResponse=t.QueryVotesRequest=t.QueryVoteResponse=t.QueryVoteRequest=t.QueryProposalsResponse=t.QueryProposalsRequest=t.QueryProposalResponse=t.QueryProposalRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9876),s=n(9551);t.protobufPackage="cosmos.gov.v1beta1";const c={proposalId:o.default.UZERO};t.QueryProposalRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.proposalId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t}};const d={};t.QueryProposalResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.proposal&&a.Proposal.encode(e.proposal,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.proposal=a.Proposal.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.proposal=void 0!==e.proposal&&null!==e.proposal?a.Proposal.fromJSON(e.proposal):void 0,t},toJSON(e){const t={};return void 0!==e.proposal&&(t.proposal=e.proposal?a.Proposal.toJSON(e.proposal):void 0),t},fromPartial(e){const t=Object.assign({},d);return t.proposal=void 0!==e.proposal&&null!==e.proposal?a.Proposal.fromPartial(e.proposal):void 0,t}};const u={proposalStatus:0,voter:"",depositor:""};t.QueryProposalsRequest={encode:(e,t=i.default.Writer.create())=>(0!==e.proposalStatus&&t.uint32(8).int32(e.proposalStatus),""!==e.voter&&t.uint32(18).string(e.voter),""!==e.depositor&&t.uint32(26).string(e.depositor),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.proposalStatus=n.int32();break;case 2:o.voter=n.string();break;case 3:o.depositor=n.string();break;case 4:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.proposalStatus=void 0!==e.proposalStatus&&null!==e.proposalStatus?a.proposalStatusFromJSON(e.proposalStatus):0,t.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",t.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.proposalStatus&&(t.proposalStatus=a.proposalStatusToJSON(e.proposalStatus)),void 0!==e.voter&&(t.voter=e.voter),void 0!==e.depositor&&(t.depositor=e.depositor),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},u);return o.proposalStatus=null!==(t=e.proposalStatus)&&void 0!==t?t:0,o.voter=null!==(n=e.voter)&&void 0!==n?n:"",o.depositor=null!==(r=e.depositor)&&void 0!==r?r:"",o.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,o}};const l={};t.QueryProposalsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.proposals)a.Proposal.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.proposals=[];n.pos>>3){case 1:o.proposals.push(a.Proposal.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.proposals=(null!==(t=e.proposals)&&void 0!==t?t:[]).map((e=>a.Proposal.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.proposals?t.proposals=e.proposals.map((e=>e?a.Proposal.toJSON(e):void 0)):t.proposals=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.proposals=(null===(t=e.proposals)||void 0===t?void 0:t.map((e=>a.Proposal.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const A={proposalId:o.default.UZERO,voter:""};t.QueryVoteRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.voter&&t.uint32(18).string(e.voter),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.voter=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(t.voter=e.voter),t},fromPartial(e){var t;const n=Object.assign({},A);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,n.voter=null!==(t=e.voter)&&void 0!==t?t:"",n}};const f={};t.QueryVoteResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.vote&&a.Vote.encode(e.vote,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.vote=a.Vote.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.vote=void 0!==e.vote&&null!==e.vote?a.Vote.fromJSON(e.vote):void 0,t},toJSON(e){const t={};return void 0!==e.vote&&(t.vote=e.vote?a.Vote.toJSON(e.vote):void 0),t},fromPartial(e){const t=Object.assign({},f);return t.vote=void 0!==e.vote&&null!==e.vote?a.Vote.fromPartial(e.vote):void 0,t}};const h={proposalId:o.default.UZERO};t.QueryVotesRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},h);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const p={};t.QueryVotesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.votes)a.Vote.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.votes=[];n.pos>>3){case 1:o.votes.push(a.Vote.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.votes=(null!==(t=e.votes)&&void 0!==t?t:[]).map((e=>a.Vote.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.votes?t.votes=e.votes.map((e=>e?a.Vote.toJSON(e):void 0)):t.votes=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},p);return n.votes=(null===(t=e.votes)||void 0===t?void 0:t.map((e=>a.Vote.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const g={paramsType:""};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.paramsType&&t.uint32(10).string(e.paramsType),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3==1?o.paramsType=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},g);return t.paramsType=void 0!==e.paramsType&&null!==e.paramsType?String(e.paramsType):"",t},toJSON(e){const t={};return void 0!==e.paramsType&&(t.paramsType=e.paramsType),t},fromPartial(e){var t;const n=Object.assign({},g);return n.paramsType=null!==(t=e.paramsType)&&void 0!==t?t:"",n}};const m={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.votingParams&&a.VotingParams.encode(e.votingParams,t.uint32(10).fork()).ldelim(),void 0!==e.depositParams&&a.DepositParams.encode(e.depositParams,t.uint32(18).fork()).ldelim(),void 0!==e.tallyParams&&a.TallyParams.encode(e.tallyParams,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.votingParams=a.VotingParams.decode(n,n.uint32());break;case 2:o.depositParams=a.DepositParams.decode(n,n.uint32());break;case 3:o.tallyParams=a.TallyParams.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.votingParams=void 0!==e.votingParams&&null!==e.votingParams?a.VotingParams.fromJSON(e.votingParams):void 0,t.depositParams=void 0!==e.depositParams&&null!==e.depositParams?a.DepositParams.fromJSON(e.depositParams):void 0,t.tallyParams=void 0!==e.tallyParams&&null!==e.tallyParams?a.TallyParams.fromJSON(e.tallyParams):void 0,t},toJSON(e){const t={};return void 0!==e.votingParams&&(t.votingParams=e.votingParams?a.VotingParams.toJSON(e.votingParams):void 0),void 0!==e.depositParams&&(t.depositParams=e.depositParams?a.DepositParams.toJSON(e.depositParams):void 0),void 0!==e.tallyParams&&(t.tallyParams=e.tallyParams?a.TallyParams.toJSON(e.tallyParams):void 0),t},fromPartial(e){const t=Object.assign({},m);return t.votingParams=void 0!==e.votingParams&&null!==e.votingParams?a.VotingParams.fromPartial(e.votingParams):void 0,t.depositParams=void 0!==e.depositParams&&null!==e.depositParams?a.DepositParams.fromPartial(e.depositParams):void 0,t.tallyParams=void 0!==e.tallyParams&&null!==e.tallyParams?a.TallyParams.fromPartial(e.tallyParams):void 0,t}};const v={proposalId:o.default.UZERO,depositor:""};t.QueryDepositRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.depositor=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),t},fromPartial(e){var t;const n=Object.assign({},v);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,n.depositor=null!==(t=e.depositor)&&void 0!==t?t:"",n}};const y={};t.QueryDepositResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.deposit&&a.Deposit.encode(e.deposit,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.deposit=a.Deposit.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.deposit=void 0!==e.deposit&&null!==e.deposit?a.Deposit.fromJSON(e.deposit):void 0,t},toJSON(e){const t={};return void 0!==e.deposit&&(t.deposit=e.deposit?a.Deposit.toJSON(e.deposit):void 0),t},fromPartial(e){const t=Object.assign({},y);return t.deposit=void 0!==e.deposit&&null!==e.deposit?a.Deposit.fromPartial(e.deposit):void 0,t}};const b={proposalId:o.default.UZERO};t.QueryDepositsRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},b);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const I={};t.QueryDepositsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.deposits)a.Deposit.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(o.deposits=[];n.pos>>3){case 1:o.deposits.push(a.Deposit.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},I);return n.deposits=(null!==(t=e.deposits)&&void 0!==t?t:[]).map((e=>a.Deposit.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.deposits?t.deposits=e.deposits.map((e=>e?a.Deposit.toJSON(e):void 0)):t.deposits=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},I);return n.deposits=(null===(t=e.deposits)||void 0===t?void 0:t.map((e=>a.Deposit.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const C={proposalId:o.default.UZERO};t.QueryTallyResultRequest={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3==1?o.proposalId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},C);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},C);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t}};const E={};t.QueryTallyResultResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.tally&&a.TallyResult.encode(e.tally,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.pos>>3==1?o.tally=a.TallyResult.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return t.tally=void 0!==e.tally&&null!==e.tally?a.TallyResult.fromJSON(e.tally):void 0,t},toJSON(e){const t={};return void 0!==e.tally&&(t.tally=e.tally?a.TallyResult.toJSON(e.tally):void 0),t},fromPartial(e){const t=Object.assign({},E);return t.tally=void 0!==e.tally&&null!==e.tally?a.TallyResult.fromPartial(e.tally):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Proposal=this.Proposal.bind(this),this.Proposals=this.Proposals.bind(this),this.Vote=this.Vote.bind(this),this.Votes=this.Votes.bind(this),this.Params=this.Params.bind(this),this.Deposit=this.Deposit.bind(this),this.Deposits=this.Deposits.bind(this),this.TallyResult=this.TallyResult.bind(this)}Proposal(e){const n=t.QueryProposalRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Proposal",n).then((e=>t.QueryProposalResponse.decode(new i.default.Reader(e))))}Proposals(e){const n=t.QueryProposalsRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Proposals",n).then((e=>t.QueryProposalsResponse.decode(new i.default.Reader(e))))}Vote(e){const n=t.QueryVoteRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Vote",n).then((e=>t.QueryVoteResponse.decode(new i.default.Reader(e))))}Votes(e){const n=t.QueryVotesRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Votes",n).then((e=>t.QueryVotesResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}Deposit(e){const n=t.QueryDepositRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Deposit",n).then((e=>t.QueryDepositResponse.decode(new i.default.Reader(e))))}Deposits(e){const n=t.QueryDepositsRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","Deposits",n).then((e=>t.QueryDepositsResponse.decode(new i.default.Reader(e))))}TallyResult(e){const n=t.QueryTallyResultRequest.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Query","TallyResult",n).then((e=>t.QueryTallyResultResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},750:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgDepositResponse=t.MsgDeposit=t.MsgVoteWeightedResponse=t.MsgVoteWeighted=t.MsgVoteResponse=t.MsgVote=t.MsgSubmitProposalResponse=t.MsgSubmitProposal=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(9876),c=n(891);t.protobufPackage="cosmos.gov.v1beta1";const d={proposer:""};t.MsgSubmitProposal={encode(e,t=i.default.Writer.create()){void 0!==e.content&&a.Any.encode(e.content,t.uint32(10).fork()).ldelim();for(const n of e.initialDeposit)c.Coin.encode(n,t.uint32(18).fork()).ldelim();return""!==e.proposer&&t.uint32(26).string(e.proposer),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.initialDeposit=[];n.pos>>3){case 1:o.content=a.Any.decode(n,n.uint32());break;case 2:o.initialDeposit.push(c.Coin.decode(n,n.uint32()));break;case 3:o.proposer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.content=void 0!==e.content&&null!==e.content?a.Any.fromJSON(e.content):void 0,n.initialDeposit=(null!==(t=e.initialDeposit)&&void 0!==t?t:[]).map((e=>c.Coin.fromJSON(e))),n.proposer=void 0!==e.proposer&&null!==e.proposer?String(e.proposer):"",n},toJSON(e){const t={};return void 0!==e.content&&(t.content=e.content?a.Any.toJSON(e.content):void 0),e.initialDeposit?t.initialDeposit=e.initialDeposit.map((e=>e?c.Coin.toJSON(e):void 0)):t.initialDeposit=[],void 0!==e.proposer&&(t.proposer=e.proposer),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.content=void 0!==e.content&&null!==e.content?a.Any.fromPartial(e.content):void 0,r.initialDeposit=(null===(t=e.initialDeposit)||void 0===t?void 0:t.map((e=>c.Coin.fromPartial(e))))||[],r.proposer=null!==(n=e.proposer)&&void 0!==n?n:"",r}};const u={proposalId:o.default.UZERO};t.MsgSubmitProposalResponse={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.proposalId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},u);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,t}};const l={proposalId:o.default.UZERO,voter:"",option:0};t.MsgVote={encode:(e,t=i.default.Writer.create())=>(e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.voter&&t.uint32(18).string(e.voter),0!==e.option&&t.uint32(24).int32(e.option),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.voter=n.string();break;case 3:o.option=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,t.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",t.option=void 0!==e.option&&null!==e.option?s.voteOptionFromJSON(e.option):0,t},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(t.voter=e.voter),void 0!==e.option&&(t.option=s.voteOptionToJSON(e.option)),t},fromPartial(e){var t,n;const r=Object.assign({},l);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,r.voter=null!==(t=e.voter)&&void 0!==t?t:"",r.option=null!==(n=e.option)&&void 0!==n?n:0,r}};const A={};t.MsgVoteResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={proposalId:o.default.UZERO,voter:""};t.MsgVoteWeighted={encode(e,t=i.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.voter&&t.uint32(18).string(e.voter);for(const n of e.options)s.WeightedVoteOption.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.options=[];n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.voter=n.string();break;case 3:o.options.push(s.WeightedVoteOption.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,n.voter=void 0!==e.voter&&null!==e.voter?String(e.voter):"",n.options=(null!==(t=e.options)&&void 0!==t?t:[]).map((e=>s.WeightedVoteOption.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.voter&&(t.voter=e.voter),e.options?t.options=e.options.map((e=>e?s.WeightedVoteOption.toJSON(e):void 0)):t.options=[],t},fromPartial(e){var t,n;const r=Object.assign({},f);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,r.voter=null!==(t=e.voter)&&void 0!==t?t:"",r.options=(null===(n=e.options)||void 0===n?void 0:n.map((e=>s.WeightedVoteOption.fromPartial(e))))||[],r}};const h={};t.MsgVoteWeightedResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)};const p={proposalId:o.default.UZERO,depositor:""};t.MsgDeposit={encode(e,t=i.default.Writer.create()){e.proposalId.isZero()||t.uint32(8).uint64(e.proposalId),""!==e.depositor&&t.uint32(18).string(e.depositor);for(const n of e.amount)c.Coin.encode(n,t.uint32(26).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.amount=[];n.pos>>3){case 1:o.proposalId=n.uint64();break;case 2:o.depositor=n.string();break;case 3:o.amount.push(c.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromString(e.proposalId):o.default.UZERO,n.depositor=void 0!==e.depositor&&null!==e.depositor?String(e.depositor):"",n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>c.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.proposalId&&(t.proposalId=(e.proposalId||o.default.UZERO).toString()),void 0!==e.depositor&&(t.depositor=e.depositor),e.amount?t.amount=e.amount.map((e=>e?c.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.proposalId=void 0!==e.proposalId&&null!==e.proposalId?o.default.fromValue(e.proposalId):o.default.UZERO,r.depositor=null!==(t=e.depositor)&&void 0!==t?t:"",r.amount=(null===(n=e.amount)||void 0===n?void 0:n.map((e=>c.Coin.fromPartial(e))))||[],r}};const g={};t.MsgDepositResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.SubmitProposal=this.SubmitProposal.bind(this),this.Vote=this.Vote.bind(this),this.VoteWeighted=this.VoteWeighted.bind(this),this.Deposit=this.Deposit.bind(this)}SubmitProposal(e){const n=t.MsgSubmitProposal.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Msg","SubmitProposal",n).then((e=>t.MsgSubmitProposalResponse.decode(new i.default.Reader(e))))}Vote(e){const n=t.MsgVote.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Msg","Vote",n).then((e=>t.MsgVoteResponse.decode(new i.default.Reader(e))))}VoteWeighted(e){const n=t.MsgVoteWeighted.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Msg","VoteWeighted",n).then((e=>t.MsgVoteWeightedResponse.decode(new i.default.Reader(e))))}Deposit(e){const n=t.MsgDeposit.encode(e).finish();return this.rpc.request("cosmos.gov.v1beta1.Msg","Deposit",n).then((e=>t.MsgDepositResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4638:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.Minter=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="cosmos.mint.v1beta1";const a={inflation:"",annualProvisions:""};t.Minter={encode:(e,t=i.default.Writer.create())=>(""!==e.inflation&&t.uint32(10).string(e.inflation),""!==e.annualProvisions&&t.uint32(18).string(e.annualProvisions),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.inflation=n.string();break;case 2:o.annualProvisions=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.inflation=void 0!==e.inflation&&null!==e.inflation?String(e.inflation):"",t.annualProvisions=void 0!==e.annualProvisions&&null!==e.annualProvisions?String(e.annualProvisions):"",t},toJSON(e){const t={};return void 0!==e.inflation&&(t.inflation=e.inflation),void 0!==e.annualProvisions&&(t.annualProvisions=e.annualProvisions),t},fromPartial(e){var t,n;const r=Object.assign({},a);return r.inflation=null!==(t=e.inflation)&&void 0!==t?t:"",r.annualProvisions=null!==(n=e.annualProvisions)&&void 0!==n?n:"",r}};const s={mintDenom:"",inflationRateChange:"",inflationMax:"",inflationMin:"",goalBonded:"",blocksPerYear:o.default.UZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(""!==e.mintDenom&&t.uint32(10).string(e.mintDenom),""!==e.inflationRateChange&&t.uint32(18).string(e.inflationRateChange),""!==e.inflationMax&&t.uint32(26).string(e.inflationMax),""!==e.inflationMin&&t.uint32(34).string(e.inflationMin),""!==e.goalBonded&&t.uint32(42).string(e.goalBonded),e.blocksPerYear.isZero()||t.uint32(48).uint64(e.blocksPerYear),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.mintDenom=n.string();break;case 2:o.inflationRateChange=n.string();break;case 3:o.inflationMax=n.string();break;case 4:o.inflationMin=n.string();break;case 5:o.goalBonded=n.string();break;case 6:o.blocksPerYear=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.mintDenom=void 0!==e.mintDenom&&null!==e.mintDenom?String(e.mintDenom):"",t.inflationRateChange=void 0!==e.inflationRateChange&&null!==e.inflationRateChange?String(e.inflationRateChange):"",t.inflationMax=void 0!==e.inflationMax&&null!==e.inflationMax?String(e.inflationMax):"",t.inflationMin=void 0!==e.inflationMin&&null!==e.inflationMin?String(e.inflationMin):"",t.goalBonded=void 0!==e.goalBonded&&null!==e.goalBonded?String(e.goalBonded):"",t.blocksPerYear=void 0!==e.blocksPerYear&&null!==e.blocksPerYear?o.default.fromString(e.blocksPerYear):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.mintDenom&&(t.mintDenom=e.mintDenom),void 0!==e.inflationRateChange&&(t.inflationRateChange=e.inflationRateChange),void 0!==e.inflationMax&&(t.inflationMax=e.inflationMax),void 0!==e.inflationMin&&(t.inflationMin=e.inflationMin),void 0!==e.goalBonded&&(t.goalBonded=e.goalBonded),void 0!==e.blocksPerYear&&(t.blocksPerYear=(e.blocksPerYear||o.default.UZERO).toString()),t},fromPartial(e){var t,n,r,i,a;const c=Object.assign({},s);return c.mintDenom=null!==(t=e.mintDenom)&&void 0!==t?t:"",c.inflationRateChange=null!==(n=e.inflationRateChange)&&void 0!==n?n:"",c.inflationMax=null!==(r=e.inflationMax)&&void 0!==r?r:"",c.inflationMin=null!==(i=e.inflationMin)&&void 0!==i?i:"",c.goalBonded=null!==(a=e.goalBonded)&&void 0!==a?a:"",c.blocksPerYear=void 0!==e.blocksPerYear&&null!==e.blocksPerYear?o.default.fromValue(e.blocksPerYear):o.default.UZERO,c}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},2879:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryAnnualProvisionsResponse=t.QueryAnnualProvisionsRequest=t.QueryInflationResponse=t.QueryInflationRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(4638);t.protobufPackage="cosmos.mint.v1beta1";const s={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.posObject.assign({},s),toJSON:e=>({}),fromPartial:e=>Object.assign({},s)};const c={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&a.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.params=a.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?a.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},c);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromPartial(e.params):void 0,t}};const d={};t.QueryInflationRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const u={};t.QueryInflationResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.inflation.length&&t.uint32(10).bytes(e.inflation),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.inflation=new Uint8Array;n.pos>>3==1?o.inflation=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.inflation=void 0!==e.inflation&&null!==e.inflation?p(e.inflation):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.inflation&&(t.inflation=m(void 0!==e.inflation?e.inflation:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},u);return n.inflation=null!==(t=e.inflation)&&void 0!==t?t:new Uint8Array,n}};const l={};t.QueryAnnualProvisionsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const A={};t.QueryAnnualProvisionsResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.annualProvisions.length&&t.uint32(10).bytes(e.annualProvisions),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.annualProvisions=new Uint8Array;n.pos>>3==1?o.annualProvisions=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.annualProvisions=void 0!==e.annualProvisions&&null!==e.annualProvisions?p(e.annualProvisions):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.annualProvisions&&(t.annualProvisions=m(void 0!==e.annualProvisions?e.annualProvisions:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},A);return n.annualProvisions=null!==(t=e.annualProvisions)&&void 0!==t?t:new Uint8Array,n}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Params=this.Params.bind(this),this.Inflation=this.Inflation.bind(this),this.AnnualProvisions=this.AnnualProvisions.bind(this)}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.mint.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}Inflation(e){const n=t.QueryInflationRequest.encode(e).finish();return this.rpc.request("cosmos.mint.v1beta1.Query","Inflation",n).then((e=>t.QueryInflationResponse.decode(new i.default.Reader(e))))}AnnualProvisions(e){const n=t.QueryAnnualProvisionsRequest.encode(e).finish();return this.rpc.request("cosmos.mint.v1beta1.Query","AnnualProvisions",n).then((e=>t.QueryAnnualProvisionsResponse.decode(new i.default.Reader(e))))}};var f=(()=>{if(void 0!==f)return f;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const h=f.atob||(e=>f.Buffer.from(e,"base64").toString("binary"));function p(e){const t=h(e),n=new Uint8Array(t.length);for(let e=0;ef.Buffer.from(e,"binary").toString("base64"));function m(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return g(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6701:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QuerySigningInfosResponse=t.QuerySigningInfosRequest=t.QuerySigningInfoResponse=t.QuerySigningInfoRequest=t.QueryParamsResponse=t.QueryParamsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9726),s=n(9551);t.protobufPackage="cosmos.slashing.v1beta1";const c={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&a.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.params=a.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?a.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},d);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromPartial(e.params):void 0,t}};const u={consAddress:""};t.QuerySigningInfoRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.consAddress&&t.uint32(10).string(e.consAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.consAddress=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.consAddress=void 0!==e.consAddress&&null!==e.consAddress?String(e.consAddress):"",t},toJSON(e){const t={};return void 0!==e.consAddress&&(t.consAddress=e.consAddress),t},fromPartial(e){var t;const n=Object.assign({},u);return n.consAddress=null!==(t=e.consAddress)&&void 0!==t?t:"",n}};const l={};t.QuerySigningInfoResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.valSigningInfo&&a.ValidatorSigningInfo.encode(e.valSigningInfo,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.valSigningInfo=a.ValidatorSigningInfo.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.valSigningInfo=void 0!==e.valSigningInfo&&null!==e.valSigningInfo?a.ValidatorSigningInfo.fromJSON(e.valSigningInfo):void 0,t},toJSON(e){const t={};return void 0!==e.valSigningInfo&&(t.valSigningInfo=e.valSigningInfo?a.ValidatorSigningInfo.toJSON(e.valSigningInfo):void 0),t},fromPartial(e){const t=Object.assign({},l);return t.valSigningInfo=void 0!==e.valSigningInfo&&null!==e.valSigningInfo?a.ValidatorSigningInfo.fromPartial(e.valSigningInfo):void 0,t}};const A={};t.QuerySigningInfosRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const f={};t.QuerySigningInfosResponse={encode(e,t=i.default.Writer.create()){for(const n of e.info)a.ValidatorSigningInfo.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.info=[];n.pos>>3){case 1:o.info.push(a.ValidatorSigningInfo.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.info=(null!==(t=e.info)&&void 0!==t?t:[]).map((e=>a.ValidatorSigningInfo.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.info?t.info=e.info.map((e=>e?a.ValidatorSigningInfo.toJSON(e):void 0)):t.info=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.info=(null===(t=e.info)||void 0===t?void 0:t.map((e=>a.ValidatorSigningInfo.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Params=this.Params.bind(this),this.SigningInfo=this.SigningInfo.bind(this),this.SigningInfos=this.SigningInfos.bind(this)}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.slashing.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}SigningInfo(e){const n=t.QuerySigningInfoRequest.encode(e).finish();return this.rpc.request("cosmos.slashing.v1beta1.Query","SigningInfo",n).then((e=>t.QuerySigningInfoResponse.decode(new i.default.Reader(e))))}SigningInfos(e){const n=t.QuerySigningInfosRequest.encode(e).finish();return this.rpc.request("cosmos.slashing.v1beta1.Query","SigningInfos",n).then((e=>t.QuerySigningInfosResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9726:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.ValidatorSigningInfo=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5522),s=n(281);t.protobufPackage="cosmos.slashing.v1beta1";const c={address:"",startHeight:o.default.ZERO,indexOffset:o.default.ZERO,tombstoned:!1,missedBlocksCounter:o.default.ZERO};t.ValidatorSigningInfo={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),e.startHeight.isZero()||t.uint32(16).int64(e.startHeight),e.indexOffset.isZero()||t.uint32(24).int64(e.indexOffset),void 0!==e.jailedUntil&&a.Timestamp.encode(e.jailedUntil,t.uint32(34).fork()).ldelim(),!0===e.tombstoned&&t.uint32(40).bool(e.tombstoned),e.missedBlocksCounter.isZero()||t.uint32(48).int64(e.missedBlocksCounter),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.startHeight=n.int64();break;case 3:o.indexOffset=n.int64();break;case 4:o.jailedUntil=a.Timestamp.decode(n,n.uint32());break;case 5:o.tombstoned=n.bool();break;case 6:o.missedBlocksCounter=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);var n;return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.startHeight=void 0!==e.startHeight&&null!==e.startHeight?o.default.fromString(e.startHeight):o.default.ZERO,t.indexOffset=void 0!==e.indexOffset&&null!==e.indexOffset?o.default.fromString(e.indexOffset):o.default.ZERO,t.jailedUntil=void 0!==e.jailedUntil&&null!==e.jailedUntil?(n=e.jailedUntil)instanceof Date?p(n):"string"==typeof n?p(new Date(n)):a.Timestamp.fromJSON(n):void 0,t.tombstoned=void 0!==e.tombstoned&&null!==e.tombstoned&&Boolean(e.tombstoned),t.missedBlocksCounter=void 0!==e.missedBlocksCounter&&null!==e.missedBlocksCounter?o.default.fromString(e.missedBlocksCounter):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.startHeight&&(t.startHeight=(e.startHeight||o.default.ZERO).toString()),void 0!==e.indexOffset&&(t.indexOffset=(e.indexOffset||o.default.ZERO).toString()),void 0!==e.jailedUntil&&(t.jailedUntil=function(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}(e.jailedUntil).toISOString()),void 0!==e.tombstoned&&(t.tombstoned=e.tombstoned),void 0!==e.missedBlocksCounter&&(t.missedBlocksCounter=(e.missedBlocksCounter||o.default.ZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.startHeight=void 0!==e.startHeight&&null!==e.startHeight?o.default.fromValue(e.startHeight):o.default.ZERO,r.indexOffset=void 0!==e.indexOffset&&null!==e.indexOffset?o.default.fromValue(e.indexOffset):o.default.ZERO,r.jailedUntil=void 0!==e.jailedUntil&&null!==e.jailedUntil?a.Timestamp.fromPartial(e.jailedUntil):void 0,r.tombstoned=null!==(n=e.tombstoned)&&void 0!==n&&n,r.missedBlocksCounter=void 0!==e.missedBlocksCounter&&null!==e.missedBlocksCounter?o.default.fromValue(e.missedBlocksCounter):o.default.ZERO,r}};const d={signedBlocksWindow:o.default.ZERO};t.Params={encode:(e,t=i.default.Writer.create())=>(e.signedBlocksWindow.isZero()||t.uint32(8).int64(e.signedBlocksWindow),0!==e.minSignedPerWindow.length&&t.uint32(18).bytes(e.minSignedPerWindow),void 0!==e.downtimeJailDuration&&s.Duration.encode(e.downtimeJailDuration,t.uint32(26).fork()).ldelim(),0!==e.slashFractionDoubleSign.length&&t.uint32(34).bytes(e.slashFractionDoubleSign),0!==e.slashFractionDowntime.length&&t.uint32(42).bytes(e.slashFractionDowntime),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.minSignedPerWindow=new Uint8Array,o.slashFractionDoubleSign=new Uint8Array,o.slashFractionDowntime=new Uint8Array;n.pos>>3){case 1:o.signedBlocksWindow=n.int64();break;case 2:o.minSignedPerWindow=n.bytes();break;case 3:o.downtimeJailDuration=s.Duration.decode(n,n.uint32());break;case 4:o.slashFractionDoubleSign=n.bytes();break;case 5:o.slashFractionDowntime=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.signedBlocksWindow=void 0!==e.signedBlocksWindow&&null!==e.signedBlocksWindow?o.default.fromString(e.signedBlocksWindow):o.default.ZERO,t.minSignedPerWindow=void 0!==e.minSignedPerWindow&&null!==e.minSignedPerWindow?A(e.minSignedPerWindow):new Uint8Array,t.downtimeJailDuration=void 0!==e.downtimeJailDuration&&null!==e.downtimeJailDuration?s.Duration.fromJSON(e.downtimeJailDuration):void 0,t.slashFractionDoubleSign=void 0!==e.slashFractionDoubleSign&&null!==e.slashFractionDoubleSign?A(e.slashFractionDoubleSign):new Uint8Array,t.slashFractionDowntime=void 0!==e.slashFractionDowntime&&null!==e.slashFractionDowntime?A(e.slashFractionDowntime):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.signedBlocksWindow&&(t.signedBlocksWindow=(e.signedBlocksWindow||o.default.ZERO).toString()),void 0!==e.minSignedPerWindow&&(t.minSignedPerWindow=h(void 0!==e.minSignedPerWindow?e.minSignedPerWindow:new Uint8Array)),void 0!==e.downtimeJailDuration&&(t.downtimeJailDuration=e.downtimeJailDuration?s.Duration.toJSON(e.downtimeJailDuration):void 0),void 0!==e.slashFractionDoubleSign&&(t.slashFractionDoubleSign=h(void 0!==e.slashFractionDoubleSign?e.slashFractionDoubleSign:new Uint8Array)),void 0!==e.slashFractionDowntime&&(t.slashFractionDowntime=h(void 0!==e.slashFractionDowntime?e.slashFractionDowntime:new Uint8Array)),t},fromPartial(e){var t,n,r;const i=Object.assign({},d);return i.signedBlocksWindow=void 0!==e.signedBlocksWindow&&null!==e.signedBlocksWindow?o.default.fromValue(e.signedBlocksWindow):o.default.ZERO,i.minSignedPerWindow=null!==(t=e.minSignedPerWindow)&&void 0!==t?t:new Uint8Array,i.downtimeJailDuration=void 0!==e.downtimeJailDuration&&null!==e.downtimeJailDuration?s.Duration.fromPartial(e.downtimeJailDuration):void 0,i.slashFractionDoubleSign=null!==(n=e.slashFractionDoubleSign)&&void 0!==n?n:new Uint8Array,i.slashFractionDowntime=null!==(r=e.slashFractionDowntime)&&void 0!==r?r:new Uint8Array,i}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const l=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary"));function A(e){const t=l(e),n=new Uint8Array(t.length);for(let e=0;eu.Buffer.from(e,"binary").toString("base64"));function h(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return f(t.join(""))}function p(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4438:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryParamsResponse=t.QueryParamsRequest=t.QueryPoolResponse=t.QueryPoolRequest=t.QueryHistoricalInfoResponse=t.QueryHistoricalInfoRequest=t.QueryDelegatorValidatorResponse=t.QueryDelegatorValidatorRequest=t.QueryDelegatorValidatorsResponse=t.QueryDelegatorValidatorsRequest=t.QueryRedelegationsResponse=t.QueryRedelegationsRequest=t.QueryDelegatorUnbondingDelegationsResponse=t.QueryDelegatorUnbondingDelegationsRequest=t.QueryDelegatorDelegationsResponse=t.QueryDelegatorDelegationsRequest=t.QueryUnbondingDelegationResponse=t.QueryUnbondingDelegationRequest=t.QueryDelegationResponse=t.QueryDelegationRequest=t.QueryValidatorUnbondingDelegationsResponse=t.QueryValidatorUnbondingDelegationsRequest=t.QueryValidatorDelegationsResponse=t.QueryValidatorDelegationsRequest=t.QueryValidatorResponse=t.QueryValidatorRequest=t.QueryValidatorsResponse=t.QueryValidatorsRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9551),s=n(9355);t.protobufPackage="cosmos.staking.v1beta1";const c={status:""};t.QueryValidatorsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.status&&t.uint32(10).string(e.status),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.status=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.status=void 0!==e.status&&null!==e.status?String(e.status):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.status&&(t.status=e.status),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},c);return n.status=null!==(t=e.status)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const d={};t.QueryValidatorsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.validators)s.Validator.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.validators=[];n.pos>>3){case 1:o.validators.push(s.Validator.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.validators=(null!==(t=e.validators)&&void 0!==t?t:[]).map((e=>s.Validator.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.validators?t.validators=e.validators.map((e=>e?s.Validator.toJSON(e):void 0)):t.validators=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},d);return n.validators=(null===(t=e.validators)||void 0===t?void 0:t.map((e=>s.Validator.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const u={validatorAddr:""};t.QueryValidatorRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddr&&t.uint32(10).string(e.validatorAddr),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.validatorAddr=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t},toJSON(e){const t={};return void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){var t;const n=Object.assign({},u);return n.validatorAddr=null!==(t=e.validatorAddr)&&void 0!==t?t:"",n}};const l={};t.QueryValidatorResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.validator&&s.Validator.encode(e.validator,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.validator=s.Validator.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.validator=void 0!==e.validator&&null!==e.validator?s.Validator.fromJSON(e.validator):void 0,t},toJSON(e){const t={};return void 0!==e.validator&&(t.validator=e.validator?s.Validator.toJSON(e.validator):void 0),t},fromPartial(e){const t=Object.assign({},l);return t.validator=void 0!==e.validator&&null!==e.validator?s.Validator.fromPartial(e.validator):void 0,t}};const A={validatorAddr:""};t.QueryValidatorDelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddr&&t.uint32(10).string(e.validatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.validatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},A);return n.validatorAddr=null!==(t=e.validatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const f={};t.QueryValidatorDelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.delegationResponses)s.DelegationResponse.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.delegationResponses=[];n.pos>>3){case 1:o.delegationResponses.push(s.DelegationResponse.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.delegationResponses=(null!==(t=e.delegationResponses)&&void 0!==t?t:[]).map((e=>s.DelegationResponse.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.delegationResponses?t.delegationResponses=e.delegationResponses.map((e=>e?s.DelegationResponse.toJSON(e):void 0)):t.delegationResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.delegationResponses=(null===(t=e.delegationResponses)||void 0===t?void 0:t.map((e=>s.DelegationResponse.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const h={validatorAddr:""};t.QueryValidatorUnbondingDelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.validatorAddr&&t.uint32(10).string(e.validatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.validatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.validatorAddr=null!==(t=e.validatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const p={};t.QueryValidatorUnbondingDelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.unbondingResponses)s.UnbondingDelegation.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.unbondingResponses=[];n.pos>>3){case 1:o.unbondingResponses.push(s.UnbondingDelegation.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.unbondingResponses=(null!==(t=e.unbondingResponses)&&void 0!==t?t:[]).map((e=>s.UnbondingDelegation.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.unbondingResponses?t.unbondingResponses=e.unbondingResponses.map((e=>e?s.UnbondingDelegation.toJSON(e):void 0)):t.unbondingResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},p);return n.unbondingResponses=(null===(t=e.unbondingResponses)||void 0===t?void 0:t.map((e=>s.UnbondingDelegation.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const g={delegatorAddr:"",validatorAddr:""};t.QueryDelegationRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),""!==e.validatorAddr&&t.uint32(18).string(e.validatorAddr),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.validatorAddr=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",r.validatorAddr=null!==(n=e.validatorAddr)&&void 0!==n?n:"",r}};const m={};t.QueryDelegationResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.delegationResponse&&s.DelegationResponse.encode(e.delegationResponse,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3==1?o.delegationResponse=s.DelegationResponse.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.delegationResponse=void 0!==e.delegationResponse&&null!==e.delegationResponse?s.DelegationResponse.fromJSON(e.delegationResponse):void 0,t},toJSON(e){const t={};return void 0!==e.delegationResponse&&(t.delegationResponse=e.delegationResponse?s.DelegationResponse.toJSON(e.delegationResponse):void 0),t},fromPartial(e){const t=Object.assign({},m);return t.delegationResponse=void 0!==e.delegationResponse&&null!==e.delegationResponse?s.DelegationResponse.fromPartial(e.delegationResponse):void 0,t}};const v={delegatorAddr:"",validatorAddr:""};t.QueryUnbondingDelegationRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),""!==e.validatorAddr&&t.uint32(18).string(e.validatorAddr),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.validatorAddr=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",r.validatorAddr=null!==(n=e.validatorAddr)&&void 0!==n?n:"",r}};const y={};t.QueryUnbondingDelegationResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.unbond&&s.UnbondingDelegation.encode(e.unbond,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.unbond=s.UnbondingDelegation.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.unbond=void 0!==e.unbond&&null!==e.unbond?s.UnbondingDelegation.fromJSON(e.unbond):void 0,t},toJSON(e){const t={};return void 0!==e.unbond&&(t.unbond=e.unbond?s.UnbondingDelegation.toJSON(e.unbond):void 0),t},fromPartial(e){const t=Object.assign({},y);return t.unbond=void 0!==e.unbond&&null!==e.unbond?s.UnbondingDelegation.fromPartial(e.unbond):void 0,t}};const b={delegatorAddr:""};t.QueryDelegatorDelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},b);return n.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const I={};t.QueryDelegatorDelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.delegationResponses)s.DelegationResponse.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(o.delegationResponses=[];n.pos>>3){case 1:o.delegationResponses.push(s.DelegationResponse.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},I);return n.delegationResponses=(null!==(t=e.delegationResponses)&&void 0!==t?t:[]).map((e=>s.DelegationResponse.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.delegationResponses?t.delegationResponses=e.delegationResponses.map((e=>e?s.DelegationResponse.toJSON(e):void 0)):t.delegationResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},I);return n.delegationResponses=(null===(t=e.delegationResponses)||void 0===t?void 0:t.map((e=>s.DelegationResponse.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const C={delegatorAddr:""};t.QueryDelegatorUnbondingDelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},C);return n.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const E={};t.QueryDelegatorUnbondingDelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.unbondingResponses)s.UnbondingDelegation.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(o.unbondingResponses=[];n.pos>>3){case 1:o.unbondingResponses.push(s.UnbondingDelegation.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},E);return n.unbondingResponses=(null!==(t=e.unbondingResponses)&&void 0!==t?t:[]).map((e=>s.UnbondingDelegation.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.unbondingResponses?t.unbondingResponses=e.unbondingResponses.map((e=>e?s.UnbondingDelegation.toJSON(e):void 0)):t.unbondingResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},E);return n.unbondingResponses=(null===(t=e.unbondingResponses)||void 0===t?void 0:t.map((e=>s.UnbondingDelegation.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const w={delegatorAddr:"",srcValidatorAddr:"",dstValidatorAddr:""};t.QueryRedelegationsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),""!==e.srcValidatorAddr&&t.uint32(18).string(e.srcValidatorAddr),""!==e.dstValidatorAddr&&t.uint32(26).string(e.dstValidatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.srcValidatorAddr=n.string();break;case 3:o.dstValidatorAddr=n.string();break;case 4:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.srcValidatorAddr=void 0!==e.srcValidatorAddr&&null!==e.srcValidatorAddr?String(e.srcValidatorAddr):"",t.dstValidatorAddr=void 0!==e.dstValidatorAddr&&null!==e.dstValidatorAddr?String(e.dstValidatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.srcValidatorAddr&&(t.srcValidatorAddr=e.srcValidatorAddr),void 0!==e.dstValidatorAddr&&(t.dstValidatorAddr=e.dstValidatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},w);return o.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",o.srcValidatorAddr=null!==(n=e.srcValidatorAddr)&&void 0!==n?n:"",o.dstValidatorAddr=null!==(r=e.dstValidatorAddr)&&void 0!==r?r:"",o.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,o}};const B={};t.QueryRedelegationsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.redelegationResponses)s.RedelegationResponse.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(o.redelegationResponses=[];n.pos>>3){case 1:o.redelegationResponses.push(s.RedelegationResponse.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},B);return n.redelegationResponses=(null!==(t=e.redelegationResponses)&&void 0!==t?t:[]).map((e=>s.RedelegationResponse.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.redelegationResponses?t.redelegationResponses=e.redelegationResponses.map((e=>e?s.RedelegationResponse.toJSON(e):void 0)):t.redelegationResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},B);return n.redelegationResponses=(null===(t=e.redelegationResponses)||void 0===t?void 0:t.map((e=>s.RedelegationResponse.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const _={delegatorAddr:""};t.QueryDelegatorValidatorsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},_);return n.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,n}};const S={};t.QueryDelegatorValidatorsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.validators)s.Validator.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(o.validators=[];n.pos>>3){case 1:o.validators.push(s.Validator.decode(n,n.uint32()));break;case 2:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},S);return n.validators=(null!==(t=e.validators)&&void 0!==t?t:[]).map((e=>s.Validator.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.validators?t.validators=e.validators.map((e=>e?s.Validator.toJSON(e):void 0)):t.validators=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},S);return n.validators=(null===(t=e.validators)||void 0===t?void 0:t.map((e=>s.Validator.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,n}};const k={delegatorAddr:"",validatorAddr:""};t.QueryDelegatorValidatorRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddr&&t.uint32(10).string(e.delegatorAddr),""!==e.validatorAddr&&t.uint32(18).string(e.validatorAddr),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},k);for(;n.pos>>3){case 1:o.delegatorAddr=n.string();break;case 2:o.validatorAddr=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return t.delegatorAddr=void 0!==e.delegatorAddr&&null!==e.delegatorAddr?String(e.delegatorAddr):"",t.validatorAddr=void 0!==e.validatorAddr&&null!==e.validatorAddr?String(e.validatorAddr):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddr&&(t.delegatorAddr=e.delegatorAddr),void 0!==e.validatorAddr&&(t.validatorAddr=e.validatorAddr),t},fromPartial(e){var t,n;const r=Object.assign({},k);return r.delegatorAddr=null!==(t=e.delegatorAddr)&&void 0!==t?t:"",r.validatorAddr=null!==(n=e.validatorAddr)&&void 0!==n?n:"",r}};const O={};t.QueryDelegatorValidatorResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.validator&&s.Validator.encode(e.validator,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},O);for(;n.pos>>3==1?o.validator=s.Validator.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},O);return t.validator=void 0!==e.validator&&null!==e.validator?s.Validator.fromJSON(e.validator):void 0,t},toJSON(e){const t={};return void 0!==e.validator&&(t.validator=e.validator?s.Validator.toJSON(e.validator):void 0),t},fromPartial(e){const t=Object.assign({},O);return t.validator=void 0!==e.validator&&null!==e.validator?s.Validator.fromPartial(e.validator):void 0,t}};const Q={height:o.default.ZERO};t.QueryHistoricalInfoRequest={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).int64(e.height),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},Q);for(;n.pos>>3==1?o.height=n.int64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},Q);return t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},Q);return t.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,t}};const R={};t.QueryHistoricalInfoResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.hist&&s.HistoricalInfo.encode(e.hist,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},R);for(;n.pos>>3==1?o.hist=s.HistoricalInfo.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},R);return t.hist=void 0!==e.hist&&null!==e.hist?s.HistoricalInfo.fromJSON(e.hist):void 0,t},toJSON(e){const t={};return void 0!==e.hist&&(t.hist=e.hist?s.HistoricalInfo.toJSON(e.hist):void 0),t},fromPartial(e){const t=Object.assign({},R);return t.hist=void 0!==e.hist&&null!==e.hist?s.HistoricalInfo.fromPartial(e.hist):void 0,t}};const P={};t.QueryPoolRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},P);for(;n.posObject.assign({},P),toJSON:e=>({}),fromPartial:e=>Object.assign({},P)};const N={};t.QueryPoolResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pool&&s.Pool.encode(e.pool,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},N);for(;n.pos>>3==1?o.pool=s.Pool.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},N);return t.pool=void 0!==e.pool&&null!==e.pool?s.Pool.fromJSON(e.pool):void 0,t},toJSON(e){const t={};return void 0!==e.pool&&(t.pool=e.pool?s.Pool.toJSON(e.pool):void 0),t},fromPartial(e){const t=Object.assign({},N);return t.pool=void 0!==e.pool&&null!==e.pool?s.Pool.fromPartial(e.pool):void 0,t}};const x={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},x);for(;n.posObject.assign({},x),toJSON:e=>({}),fromPartial:e=>Object.assign({},x)};const D={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&s.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},D);for(;n.pos>>3==1?o.params=s.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},D);return t.params=void 0!==e.params&&null!==e.params?s.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?s.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},D);return t.params=void 0!==e.params&&null!==e.params?s.Params.fromPartial(e.params):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Validators=this.Validators.bind(this),this.Validator=this.Validator.bind(this),this.ValidatorDelegations=this.ValidatorDelegations.bind(this),this.ValidatorUnbondingDelegations=this.ValidatorUnbondingDelegations.bind(this),this.Delegation=this.Delegation.bind(this),this.UnbondingDelegation=this.UnbondingDelegation.bind(this),this.DelegatorDelegations=this.DelegatorDelegations.bind(this),this.DelegatorUnbondingDelegations=this.DelegatorUnbondingDelegations.bind(this),this.Redelegations=this.Redelegations.bind(this),this.DelegatorValidators=this.DelegatorValidators.bind(this),this.DelegatorValidator=this.DelegatorValidator.bind(this),this.HistoricalInfo=this.HistoricalInfo.bind(this),this.Pool=this.Pool.bind(this),this.Params=this.Params.bind(this)}Validators(e){const n=t.QueryValidatorsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Validators",n).then((e=>t.QueryValidatorsResponse.decode(new i.default.Reader(e))))}Validator(e){const n=t.QueryValidatorRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Validator",n).then((e=>t.QueryValidatorResponse.decode(new i.default.Reader(e))))}ValidatorDelegations(e){const n=t.QueryValidatorDelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","ValidatorDelegations",n).then((e=>t.QueryValidatorDelegationsResponse.decode(new i.default.Reader(e))))}ValidatorUnbondingDelegations(e){const n=t.QueryValidatorUnbondingDelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","ValidatorUnbondingDelegations",n).then((e=>t.QueryValidatorUnbondingDelegationsResponse.decode(new i.default.Reader(e))))}Delegation(e){const n=t.QueryDelegationRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Delegation",n).then((e=>t.QueryDelegationResponse.decode(new i.default.Reader(e))))}UnbondingDelegation(e){const n=t.QueryUnbondingDelegationRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","UnbondingDelegation",n).then((e=>t.QueryUnbondingDelegationResponse.decode(new i.default.Reader(e))))}DelegatorDelegations(e){const n=t.QueryDelegatorDelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","DelegatorDelegations",n).then((e=>t.QueryDelegatorDelegationsResponse.decode(new i.default.Reader(e))))}DelegatorUnbondingDelegations(e){const n=t.QueryDelegatorUnbondingDelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","DelegatorUnbondingDelegations",n).then((e=>t.QueryDelegatorUnbondingDelegationsResponse.decode(new i.default.Reader(e))))}Redelegations(e){const n=t.QueryRedelegationsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Redelegations",n).then((e=>t.QueryRedelegationsResponse.decode(new i.default.Reader(e))))}DelegatorValidators(e){const n=t.QueryDelegatorValidatorsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","DelegatorValidators",n).then((e=>t.QueryDelegatorValidatorsResponse.decode(new i.default.Reader(e))))}DelegatorValidator(e){const n=t.QueryDelegatorValidatorRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","DelegatorValidator",n).then((e=>t.QueryDelegatorValidatorResponse.decode(new i.default.Reader(e))))}HistoricalInfo(e){const n=t.QueryHistoricalInfoRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","HistoricalInfo",n).then((e=>t.QueryHistoricalInfoResponse.decode(new i.default.Reader(e))))}Pool(e){const n=t.QueryPoolRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Pool",n).then((e=>t.QueryPoolResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9355:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Pool=t.RedelegationResponse=t.RedelegationEntryResponse=t.DelegationResponse=t.Params=t.Redelegation=t.RedelegationEntry=t.UnbondingDelegationEntry=t.UnbondingDelegation=t.Delegation=t.DVVTriplets=t.DVVTriplet=t.DVPairs=t.DVPair=t.ValAddresses=t.Validator=t.Description=t.Commission=t.CommissionRates=t.HistoricalInfo=t.bondStatusToJSON=t.bondStatusFromJSON=t.BondStatus=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1258),s=n(5522),c=n(3862),d=n(281),u=n(891);var l;function A(e){switch(e){case 0:case"BOND_STATUS_UNSPECIFIED":return l.BOND_STATUS_UNSPECIFIED;case 1:case"BOND_STATUS_UNBONDED":return l.BOND_STATUS_UNBONDED;case 2:case"BOND_STATUS_UNBONDING":return l.BOND_STATUS_UNBONDING;case 3:case"BOND_STATUS_BONDED":return l.BOND_STATUS_BONDED;default:return l.UNRECOGNIZED}}function f(e){switch(e){case l.BOND_STATUS_UNSPECIFIED:return"BOND_STATUS_UNSPECIFIED";case l.BOND_STATUS_UNBONDED:return"BOND_STATUS_UNBONDED";case l.BOND_STATUS_UNBONDING:return"BOND_STATUS_UNBONDING";case l.BOND_STATUS_BONDED:return"BOND_STATUS_BONDED";default:return"UNKNOWN"}}t.protobufPackage="cosmos.staking.v1beta1",function(e){e[e.BOND_STATUS_UNSPECIFIED=0]="BOND_STATUS_UNSPECIFIED",e[e.BOND_STATUS_UNBONDED=1]="BOND_STATUS_UNBONDED",e[e.BOND_STATUS_UNBONDING=2]="BOND_STATUS_UNBONDING",e[e.BOND_STATUS_BONDED=3]="BOND_STATUS_BONDED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.BondStatus||(t.BondStatus={})),t.bondStatusFromJSON=A,t.bondStatusToJSON=f;const h={};t.HistoricalInfo={encode(e,n=i.default.Writer.create()){void 0!==e.header&&a.Header.encode(e.header,n.uint32(10).fork()).ldelim();for(const r of e.valset)t.Validator.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},h);for(s.valset=[];r.pos>>3){case 1:s.header=a.Header.decode(r,r.uint32());break;case 2:s.valset.push(t.Validator.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return s},fromJSON(e){var n;const r=Object.assign({},h);return r.header=void 0!==e.header&&null!==e.header?a.Header.fromJSON(e.header):void 0,r.valset=(null!==(n=e.valset)&&void 0!==n?n:[]).map((e=>t.Validator.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.header&&(n.header=e.header?a.Header.toJSON(e.header):void 0),e.valset?n.valset=e.valset.map((e=>e?t.Validator.toJSON(e):void 0)):n.valset=[],n},fromPartial(e){var n;const r=Object.assign({},h);return r.header=void 0!==e.header&&null!==e.header?a.Header.fromPartial(e.header):void 0,r.valset=(null===(n=e.valset)||void 0===n?void 0:n.map((e=>t.Validator.fromPartial(e))))||[],r}};const p={rate:"",maxRate:"",maxChangeRate:""};t.CommissionRates={encode:(e,t=i.default.Writer.create())=>(""!==e.rate&&t.uint32(10).string(e.rate),""!==e.maxRate&&t.uint32(18).string(e.maxRate),""!==e.maxChangeRate&&t.uint32(26).string(e.maxChangeRate),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.rate=n.string();break;case 2:o.maxRate=n.string();break;case 3:o.maxChangeRate=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.rate=void 0!==e.rate&&null!==e.rate?String(e.rate):"",t.maxRate=void 0!==e.maxRate&&null!==e.maxRate?String(e.maxRate):"",t.maxChangeRate=void 0!==e.maxChangeRate&&null!==e.maxChangeRate?String(e.maxChangeRate):"",t},toJSON(e){const t={};return void 0!==e.rate&&(t.rate=e.rate),void 0!==e.maxRate&&(t.maxRate=e.maxRate),void 0!==e.maxChangeRate&&(t.maxChangeRate=e.maxChangeRate),t},fromPartial(e){var t,n,r;const o=Object.assign({},p);return o.rate=null!==(t=e.rate)&&void 0!==t?t:"",o.maxRate=null!==(n=e.maxRate)&&void 0!==n?n:"",o.maxChangeRate=null!==(r=e.maxChangeRate)&&void 0!==r?r:"",o}};const g={};t.Commission={encode:(e,n=i.default.Writer.create())=>(void 0!==e.commissionRates&&t.CommissionRates.encode(e.commissionRates,n.uint32(10).fork()).ldelim(),void 0!==e.updateTime&&s.Timestamp.encode(e.updateTime,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},g);for(;r.pos>>3){case 1:a.commissionRates=t.CommissionRates.decode(r,r.uint32());break;case 2:a.updateTime=s.Timestamp.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},g);return n.commissionRates=void 0!==e.commissionRates&&null!==e.commissionRates?t.CommissionRates.fromJSON(e.commissionRates):void 0,n.updateTime=void 0!==e.updateTime&&null!==e.updateTime?T(e.updateTime):void 0,n},toJSON(e){const n={};return void 0!==e.commissionRates&&(n.commissionRates=e.commissionRates?t.CommissionRates.toJSON(e.commissionRates):void 0),void 0!==e.updateTime&&(n.updateTime=D(e.updateTime).toISOString()),n},fromPartial(e){const n=Object.assign({},g);return n.commissionRates=void 0!==e.commissionRates&&null!==e.commissionRates?t.CommissionRates.fromPartial(e.commissionRates):void 0,n.updateTime=void 0!==e.updateTime&&null!==e.updateTime?s.Timestamp.fromPartial(e.updateTime):void 0,n}};const m={moniker:"",identity:"",website:"",securityContact:"",details:""};t.Description={encode:(e,t=i.default.Writer.create())=>(""!==e.moniker&&t.uint32(10).string(e.moniker),""!==e.identity&&t.uint32(18).string(e.identity),""!==e.website&&t.uint32(26).string(e.website),""!==e.securityContact&&t.uint32(34).string(e.securityContact),""!==e.details&&t.uint32(42).string(e.details),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.moniker=n.string();break;case 2:o.identity=n.string();break;case 3:o.website=n.string();break;case 4:o.securityContact=n.string();break;case 5:o.details=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.moniker=void 0!==e.moniker&&null!==e.moniker?String(e.moniker):"",t.identity=void 0!==e.identity&&null!==e.identity?String(e.identity):"",t.website=void 0!==e.website&&null!==e.website?String(e.website):"",t.securityContact=void 0!==e.securityContact&&null!==e.securityContact?String(e.securityContact):"",t.details=void 0!==e.details&&null!==e.details?String(e.details):"",t},toJSON(e){const t={};return void 0!==e.moniker&&(t.moniker=e.moniker),void 0!==e.identity&&(t.identity=e.identity),void 0!==e.website&&(t.website=e.website),void 0!==e.securityContact&&(t.securityContact=e.securityContact),void 0!==e.details&&(t.details=e.details),t},fromPartial(e){var t,n,r,o,i;const a=Object.assign({},m);return a.moniker=null!==(t=e.moniker)&&void 0!==t?t:"",a.identity=null!==(n=e.identity)&&void 0!==n?n:"",a.website=null!==(r=e.website)&&void 0!==r?r:"",a.securityContact=null!==(o=e.securityContact)&&void 0!==o?o:"",a.details=null!==(i=e.details)&&void 0!==i?i:"",a}};const v={operatorAddress:"",jailed:!1,status:0,tokens:"",delegatorShares:"",unbondingHeight:o.default.ZERO,minSelfDelegation:""};t.Validator={encode:(e,n=i.default.Writer.create())=>(""!==e.operatorAddress&&n.uint32(10).string(e.operatorAddress),void 0!==e.consensusPubkey&&c.Any.encode(e.consensusPubkey,n.uint32(18).fork()).ldelim(),!0===e.jailed&&n.uint32(24).bool(e.jailed),0!==e.status&&n.uint32(32).int32(e.status),""!==e.tokens&&n.uint32(42).string(e.tokens),""!==e.delegatorShares&&n.uint32(50).string(e.delegatorShares),void 0!==e.description&&t.Description.encode(e.description,n.uint32(58).fork()).ldelim(),e.unbondingHeight.isZero()||n.uint32(64).int64(e.unbondingHeight),void 0!==e.unbondingTime&&s.Timestamp.encode(e.unbondingTime,n.uint32(74).fork()).ldelim(),void 0!==e.commission&&t.Commission.encode(e.commission,n.uint32(82).fork()).ldelim(),""!==e.minSelfDelegation&&n.uint32(90).string(e.minSelfDelegation),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},v);for(;r.pos>>3){case 1:a.operatorAddress=r.string();break;case 2:a.consensusPubkey=c.Any.decode(r,r.uint32());break;case 3:a.jailed=r.bool();break;case 4:a.status=r.int32();break;case 5:a.tokens=r.string();break;case 6:a.delegatorShares=r.string();break;case 7:a.description=t.Description.decode(r,r.uint32());break;case 8:a.unbondingHeight=r.int64();break;case 9:a.unbondingTime=s.Timestamp.decode(r,r.uint32());break;case 10:a.commission=t.Commission.decode(r,r.uint32());break;case 11:a.minSelfDelegation=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},v);return n.operatorAddress=void 0!==e.operatorAddress&&null!==e.operatorAddress?String(e.operatorAddress):"",n.consensusPubkey=void 0!==e.consensusPubkey&&null!==e.consensusPubkey?c.Any.fromJSON(e.consensusPubkey):void 0,n.jailed=void 0!==e.jailed&&null!==e.jailed&&Boolean(e.jailed),n.status=void 0!==e.status&&null!==e.status?A(e.status):0,n.tokens=void 0!==e.tokens&&null!==e.tokens?String(e.tokens):"",n.delegatorShares=void 0!==e.delegatorShares&&null!==e.delegatorShares?String(e.delegatorShares):"",n.description=void 0!==e.description&&null!==e.description?t.Description.fromJSON(e.description):void 0,n.unbondingHeight=void 0!==e.unbondingHeight&&null!==e.unbondingHeight?o.default.fromString(e.unbondingHeight):o.default.ZERO,n.unbondingTime=void 0!==e.unbondingTime&&null!==e.unbondingTime?T(e.unbondingTime):void 0,n.commission=void 0!==e.commission&&null!==e.commission?t.Commission.fromJSON(e.commission):void 0,n.minSelfDelegation=void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?String(e.minSelfDelegation):"",n},toJSON(e){const n={};return void 0!==e.operatorAddress&&(n.operatorAddress=e.operatorAddress),void 0!==e.consensusPubkey&&(n.consensusPubkey=e.consensusPubkey?c.Any.toJSON(e.consensusPubkey):void 0),void 0!==e.jailed&&(n.jailed=e.jailed),void 0!==e.status&&(n.status=f(e.status)),void 0!==e.tokens&&(n.tokens=e.tokens),void 0!==e.delegatorShares&&(n.delegatorShares=e.delegatorShares),void 0!==e.description&&(n.description=e.description?t.Description.toJSON(e.description):void 0),void 0!==e.unbondingHeight&&(n.unbondingHeight=(e.unbondingHeight||o.default.ZERO).toString()),void 0!==e.unbondingTime&&(n.unbondingTime=D(e.unbondingTime).toISOString()),void 0!==e.commission&&(n.commission=e.commission?t.Commission.toJSON(e.commission):void 0),void 0!==e.minSelfDelegation&&(n.minSelfDelegation=e.minSelfDelegation),n},fromPartial(e){var n,r,i,a,d,u;const l=Object.assign({},v);return l.operatorAddress=null!==(n=e.operatorAddress)&&void 0!==n?n:"",l.consensusPubkey=void 0!==e.consensusPubkey&&null!==e.consensusPubkey?c.Any.fromPartial(e.consensusPubkey):void 0,l.jailed=null!==(r=e.jailed)&&void 0!==r&&r,l.status=null!==(i=e.status)&&void 0!==i?i:0,l.tokens=null!==(a=e.tokens)&&void 0!==a?a:"",l.delegatorShares=null!==(d=e.delegatorShares)&&void 0!==d?d:"",l.description=void 0!==e.description&&null!==e.description?t.Description.fromPartial(e.description):void 0,l.unbondingHeight=void 0!==e.unbondingHeight&&null!==e.unbondingHeight?o.default.fromValue(e.unbondingHeight):o.default.ZERO,l.unbondingTime=void 0!==e.unbondingTime&&null!==e.unbondingTime?s.Timestamp.fromPartial(e.unbondingTime):void 0,l.commission=void 0!==e.commission&&null!==e.commission?t.Commission.fromPartial(e.commission):void 0,l.minSelfDelegation=null!==(u=e.minSelfDelegation)&&void 0!==u?u:"",l}};const y={addresses:""};t.ValAddresses={encode(e,t=i.default.Writer.create()){for(const n of e.addresses)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.addresses=[];n.pos>>3==1?o.addresses.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},y);return n.addresses=(null!==(t=e.addresses)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.addresses?t.addresses=e.addresses.map((e=>e)):t.addresses=[],t},fromPartial(e){var t;const n=Object.assign({},y);return n.addresses=(null===(t=e.addresses)||void 0===t?void 0:t.map((e=>e)))||[],n}};const b={delegatorAddress:"",validatorAddress:""};t.DVPair={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r}};const I={};t.DVPairs={encode(e,n=i.default.Writer.create()){for(const r of e.pairs)t.DVPair.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},I);for(a.pairs=[];r.pos>>3==1?a.pairs.push(t.DVPair.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},I);return r.pairs=(null!==(n=e.pairs)&&void 0!==n?n:[]).map((e=>t.DVPair.fromJSON(e))),r},toJSON(e){const n={};return e.pairs?n.pairs=e.pairs.map((e=>e?t.DVPair.toJSON(e):void 0)):n.pairs=[],n},fromPartial(e){var n;const r=Object.assign({},I);return r.pairs=(null===(n=e.pairs)||void 0===n?void 0:n.map((e=>t.DVPair.fromPartial(e))))||[],r}};const C={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.DVVTriplet={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&t.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&t.uint32(26).string(e.validatorDstAddress),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorSrcAddress=n.string();break;case 3:o.validatorDstAddress=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorSrcAddress=void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?String(e.validatorSrcAddress):"",t.validatorDstAddress=void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?String(e.validatorDstAddress):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(t.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(t.validatorDstAddress=e.validatorDstAddress),t},fromPartial(e){var t,n,r;const o=Object.assign({},C);return o.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",o.validatorSrcAddress=null!==(n=e.validatorSrcAddress)&&void 0!==n?n:"",o.validatorDstAddress=null!==(r=e.validatorDstAddress)&&void 0!==r?r:"",o}};const E={};t.DVVTriplets={encode(e,n=i.default.Writer.create()){for(const r of e.triplets)t.DVVTriplet.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},E);for(a.triplets=[];r.pos>>3==1?a.triplets.push(t.DVVTriplet.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},E);return r.triplets=(null!==(n=e.triplets)&&void 0!==n?n:[]).map((e=>t.DVVTriplet.fromJSON(e))),r},toJSON(e){const n={};return e.triplets?n.triplets=e.triplets.map((e=>e?t.DVVTriplet.toJSON(e):void 0)):n.triplets=[],n},fromPartial(e){var n;const r=Object.assign({},E);return r.triplets=(null===(n=e.triplets)||void 0===n?void 0:n.map((e=>t.DVVTriplet.fromPartial(e))))||[],r}};const w={delegatorAddress:"",validatorAddress:"",shares:""};t.Delegation={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),""!==e.shares&&t.uint32(26).string(e.shares),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;case 3:o.shares=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.shares=void 0!==e.shares&&null!==e.shares?String(e.shares):"",t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.shares&&(t.shares=e.shares),t},fromPartial(e){var t,n,r;const o=Object.assign({},w);return o.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",o.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",o.shares=null!==(r=e.shares)&&void 0!==r?r:"",o}};const B={delegatorAddress:"",validatorAddress:""};t.UnbondingDelegation={encode(e,n=i.default.Writer.create()){""!==e.delegatorAddress&&n.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&n.uint32(18).string(e.validatorAddress);for(const r of e.entries)t.UnbondingDelegationEntry.encode(r,n.uint32(26).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},B);for(a.entries=[];r.pos>>3){case 1:a.delegatorAddress=r.string();break;case 2:a.validatorAddress=r.string();break;case 3:a.entries.push(t.UnbondingDelegationEntry.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},B);return r.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",r.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",r.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.UnbondingDelegationEntry.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.delegatorAddress&&(n.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(n.validatorAddress=e.validatorAddress),e.entries?n.entries=e.entries.map((e=>e?t.UnbondingDelegationEntry.toJSON(e):void 0)):n.entries=[],n},fromPartial(e){var n,r,o;const i=Object.assign({},B);return i.delegatorAddress=null!==(n=e.delegatorAddress)&&void 0!==n?n:"",i.validatorAddress=null!==(r=e.validatorAddress)&&void 0!==r?r:"",i.entries=(null===(o=e.entries)||void 0===o?void 0:o.map((e=>t.UnbondingDelegationEntry.fromPartial(e))))||[],i}};const _={creationHeight:o.default.ZERO,initialBalance:"",balance:""};t.UnbondingDelegationEntry={encode:(e,t=i.default.Writer.create())=>(e.creationHeight.isZero()||t.uint32(8).int64(e.creationHeight),void 0!==e.completionTime&&s.Timestamp.encode(e.completionTime,t.uint32(18).fork()).ldelim(),""!==e.initialBalance&&t.uint32(26).string(e.initialBalance),""!==e.balance&&t.uint32(34).string(e.balance),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(;n.pos>>3){case 1:o.creationHeight=n.int64();break;case 2:o.completionTime=s.Timestamp.decode(n,n.uint32());break;case 3:o.initialBalance=n.string();break;case 4:o.balance=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.creationHeight=void 0!==e.creationHeight&&null!==e.creationHeight?o.default.fromString(e.creationHeight):o.default.ZERO,t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?T(e.completionTime):void 0,t.initialBalance=void 0!==e.initialBalance&&null!==e.initialBalance?String(e.initialBalance):"",t.balance=void 0!==e.balance&&null!==e.balance?String(e.balance):"",t},toJSON(e){const t={};return void 0!==e.creationHeight&&(t.creationHeight=(e.creationHeight||o.default.ZERO).toString()),void 0!==e.completionTime&&(t.completionTime=D(e.completionTime).toISOString()),void 0!==e.initialBalance&&(t.initialBalance=e.initialBalance),void 0!==e.balance&&(t.balance=e.balance),t},fromPartial(e){var t,n;const r=Object.assign({},_);return r.creationHeight=void 0!==e.creationHeight&&null!==e.creationHeight?o.default.fromValue(e.creationHeight):o.default.ZERO,r.completionTime=void 0!==e.completionTime&&null!==e.completionTime?s.Timestamp.fromPartial(e.completionTime):void 0,r.initialBalance=null!==(t=e.initialBalance)&&void 0!==t?t:"",r.balance=null!==(n=e.balance)&&void 0!==n?n:"",r}};const S={creationHeight:o.default.ZERO,initialBalance:"",sharesDst:""};t.RedelegationEntry={encode:(e,t=i.default.Writer.create())=>(e.creationHeight.isZero()||t.uint32(8).int64(e.creationHeight),void 0!==e.completionTime&&s.Timestamp.encode(e.completionTime,t.uint32(18).fork()).ldelim(),""!==e.initialBalance&&t.uint32(26).string(e.initialBalance),""!==e.sharesDst&&t.uint32(34).string(e.sharesDst),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(;n.pos>>3){case 1:o.creationHeight=n.int64();break;case 2:o.completionTime=s.Timestamp.decode(n,n.uint32());break;case 3:o.initialBalance=n.string();break;case 4:o.sharesDst=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);return t.creationHeight=void 0!==e.creationHeight&&null!==e.creationHeight?o.default.fromString(e.creationHeight):o.default.ZERO,t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?T(e.completionTime):void 0,t.initialBalance=void 0!==e.initialBalance&&null!==e.initialBalance?String(e.initialBalance):"",t.sharesDst=void 0!==e.sharesDst&&null!==e.sharesDst?String(e.sharesDst):"",t},toJSON(e){const t={};return void 0!==e.creationHeight&&(t.creationHeight=(e.creationHeight||o.default.ZERO).toString()),void 0!==e.completionTime&&(t.completionTime=D(e.completionTime).toISOString()),void 0!==e.initialBalance&&(t.initialBalance=e.initialBalance),void 0!==e.sharesDst&&(t.sharesDst=e.sharesDst),t},fromPartial(e){var t,n;const r=Object.assign({},S);return r.creationHeight=void 0!==e.creationHeight&&null!==e.creationHeight?o.default.fromValue(e.creationHeight):o.default.ZERO,r.completionTime=void 0!==e.completionTime&&null!==e.completionTime?s.Timestamp.fromPartial(e.completionTime):void 0,r.initialBalance=null!==(t=e.initialBalance)&&void 0!==t?t:"",r.sharesDst=null!==(n=e.sharesDst)&&void 0!==n?n:"",r}};const k={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.Redelegation={encode(e,n=i.default.Writer.create()){""!==e.delegatorAddress&&n.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&n.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&n.uint32(26).string(e.validatorDstAddress);for(const r of e.entries)t.RedelegationEntry.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},k);for(a.entries=[];r.pos>>3){case 1:a.delegatorAddress=r.string();break;case 2:a.validatorSrcAddress=r.string();break;case 3:a.validatorDstAddress=r.string();break;case 4:a.entries.push(t.RedelegationEntry.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},k);return r.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",r.validatorSrcAddress=void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?String(e.validatorSrcAddress):"",r.validatorDstAddress=void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?String(e.validatorDstAddress):"",r.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.RedelegationEntry.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.delegatorAddress&&(n.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(n.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(n.validatorDstAddress=e.validatorDstAddress),e.entries?n.entries=e.entries.map((e=>e?t.RedelegationEntry.toJSON(e):void 0)):n.entries=[],n},fromPartial(e){var n,r,o,i;const a=Object.assign({},k);return a.delegatorAddress=null!==(n=e.delegatorAddress)&&void 0!==n?n:"",a.validatorSrcAddress=null!==(r=e.validatorSrcAddress)&&void 0!==r?r:"",a.validatorDstAddress=null!==(o=e.validatorDstAddress)&&void 0!==o?o:"",a.entries=(null===(i=e.entries)||void 0===i?void 0:i.map((e=>t.RedelegationEntry.fromPartial(e))))||[],a}};const O={maxValidators:0,maxEntries:0,historicalEntries:0,bondDenom:""};t.Params={encode:(e,t=i.default.Writer.create())=>(void 0!==e.unbondingTime&&d.Duration.encode(e.unbondingTime,t.uint32(10).fork()).ldelim(),0!==e.maxValidators&&t.uint32(16).uint32(e.maxValidators),0!==e.maxEntries&&t.uint32(24).uint32(e.maxEntries),0!==e.historicalEntries&&t.uint32(32).uint32(e.historicalEntries),""!==e.bondDenom&&t.uint32(42).string(e.bondDenom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},O);for(;n.pos>>3){case 1:o.unbondingTime=d.Duration.decode(n,n.uint32());break;case 2:o.maxValidators=n.uint32();break;case 3:o.maxEntries=n.uint32();break;case 4:o.historicalEntries=n.uint32();break;case 5:o.bondDenom=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},O);return t.unbondingTime=void 0!==e.unbondingTime&&null!==e.unbondingTime?d.Duration.fromJSON(e.unbondingTime):void 0,t.maxValidators=void 0!==e.maxValidators&&null!==e.maxValidators?Number(e.maxValidators):0,t.maxEntries=void 0!==e.maxEntries&&null!==e.maxEntries?Number(e.maxEntries):0,t.historicalEntries=void 0!==e.historicalEntries&&null!==e.historicalEntries?Number(e.historicalEntries):0,t.bondDenom=void 0!==e.bondDenom&&null!==e.bondDenom?String(e.bondDenom):"",t},toJSON(e){const t={};return void 0!==e.unbondingTime&&(t.unbondingTime=e.unbondingTime?d.Duration.toJSON(e.unbondingTime):void 0),void 0!==e.maxValidators&&(t.maxValidators=e.maxValidators),void 0!==e.maxEntries&&(t.maxEntries=e.maxEntries),void 0!==e.historicalEntries&&(t.historicalEntries=e.historicalEntries),void 0!==e.bondDenom&&(t.bondDenom=e.bondDenom),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},O);return i.unbondingTime=void 0!==e.unbondingTime&&null!==e.unbondingTime?d.Duration.fromPartial(e.unbondingTime):void 0,i.maxValidators=null!==(t=e.maxValidators)&&void 0!==t?t:0,i.maxEntries=null!==(n=e.maxEntries)&&void 0!==n?n:0,i.historicalEntries=null!==(r=e.historicalEntries)&&void 0!==r?r:0,i.bondDenom=null!==(o=e.bondDenom)&&void 0!==o?o:"",i}};const Q={};t.DelegationResponse={encode:(e,n=i.default.Writer.create())=>(void 0!==e.delegation&&t.Delegation.encode(e.delegation,n.uint32(10).fork()).ldelim(),void 0!==e.balance&&u.Coin.encode(e.balance,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},Q);for(;r.pos>>3){case 1:a.delegation=t.Delegation.decode(r,r.uint32());break;case 2:a.balance=u.Coin.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},Q);return n.delegation=void 0!==e.delegation&&null!==e.delegation?t.Delegation.fromJSON(e.delegation):void 0,n.balance=void 0!==e.balance&&null!==e.balance?u.Coin.fromJSON(e.balance):void 0,n},toJSON(e){const n={};return void 0!==e.delegation&&(n.delegation=e.delegation?t.Delegation.toJSON(e.delegation):void 0),void 0!==e.balance&&(n.balance=e.balance?u.Coin.toJSON(e.balance):void 0),n},fromPartial(e){const n=Object.assign({},Q);return n.delegation=void 0!==e.delegation&&null!==e.delegation?t.Delegation.fromPartial(e.delegation):void 0,n.balance=void 0!==e.balance&&null!==e.balance?u.Coin.fromPartial(e.balance):void 0,n}};const R={balance:""};t.RedelegationEntryResponse={encode:(e,n=i.default.Writer.create())=>(void 0!==e.redelegationEntry&&t.RedelegationEntry.encode(e.redelegationEntry,n.uint32(10).fork()).ldelim(),""!==e.balance&&n.uint32(34).string(e.balance),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},R);for(;r.pos>>3){case 1:a.redelegationEntry=t.RedelegationEntry.decode(r,r.uint32());break;case 4:a.balance=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},R);return n.redelegationEntry=void 0!==e.redelegationEntry&&null!==e.redelegationEntry?t.RedelegationEntry.fromJSON(e.redelegationEntry):void 0,n.balance=void 0!==e.balance&&null!==e.balance?String(e.balance):"",n},toJSON(e){const n={};return void 0!==e.redelegationEntry&&(n.redelegationEntry=e.redelegationEntry?t.RedelegationEntry.toJSON(e.redelegationEntry):void 0),void 0!==e.balance&&(n.balance=e.balance),n},fromPartial(e){var n;const r=Object.assign({},R);return r.redelegationEntry=void 0!==e.redelegationEntry&&null!==e.redelegationEntry?t.RedelegationEntry.fromPartial(e.redelegationEntry):void 0,r.balance=null!==(n=e.balance)&&void 0!==n?n:"",r}};const P={};t.RedelegationResponse={encode(e,n=i.default.Writer.create()){void 0!==e.redelegation&&t.Redelegation.encode(e.redelegation,n.uint32(10).fork()).ldelim();for(const r of e.entries)t.RedelegationEntryResponse.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},P);for(a.entries=[];r.pos>>3){case 1:a.redelegation=t.Redelegation.decode(r,r.uint32());break;case 2:a.entries.push(t.RedelegationEntryResponse.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},P);return r.redelegation=void 0!==e.redelegation&&null!==e.redelegation?t.Redelegation.fromJSON(e.redelegation):void 0,r.entries=(null!==(n=e.entries)&&void 0!==n?n:[]).map((e=>t.RedelegationEntryResponse.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.redelegation&&(n.redelegation=e.redelegation?t.Redelegation.toJSON(e.redelegation):void 0),e.entries?n.entries=e.entries.map((e=>e?t.RedelegationEntryResponse.toJSON(e):void 0)):n.entries=[],n},fromPartial(e){var n;const r=Object.assign({},P);return r.redelegation=void 0!==e.redelegation&&null!==e.redelegation?t.Redelegation.fromPartial(e.redelegation):void 0,r.entries=(null===(n=e.entries)||void 0===n?void 0:n.map((e=>t.RedelegationEntryResponse.fromPartial(e))))||[],r}};const N={notBondedTokens:"",bondedTokens:""};function x(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function D(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function T(e){return e instanceof Date?x(e):"string"==typeof e?x(new Date(e)):s.Timestamp.fromJSON(e)}t.Pool={encode:(e,t=i.default.Writer.create())=>(""!==e.notBondedTokens&&t.uint32(10).string(e.notBondedTokens),""!==e.bondedTokens&&t.uint32(18).string(e.bondedTokens),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},N);for(;n.pos>>3){case 1:o.notBondedTokens=n.string();break;case 2:o.bondedTokens=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},N);return t.notBondedTokens=void 0!==e.notBondedTokens&&null!==e.notBondedTokens?String(e.notBondedTokens):"",t.bondedTokens=void 0!==e.bondedTokens&&null!==e.bondedTokens?String(e.bondedTokens):"",t},toJSON(e){const t={};return void 0!==e.notBondedTokens&&(t.notBondedTokens=e.notBondedTokens),void 0!==e.bondedTokens&&(t.bondedTokens=e.bondedTokens),t},fromPartial(e){var t,n;const r=Object.assign({},N);return r.notBondedTokens=null!==(t=e.notBondedTokens)&&void 0!==t?t:"",r.bondedTokens=null!==(n=e.bondedTokens)&&void 0!==n?n:"",r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},422:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgUndelegateResponse=t.MsgUndelegate=t.MsgBeginRedelegateResponse=t.MsgBeginRedelegate=t.MsgDelegateResponse=t.MsgDelegate=t.MsgEditValidatorResponse=t.MsgEditValidator=t.MsgCreateValidatorResponse=t.MsgCreateValidator=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9355),s=n(3862),c=n(891),d=n(5522);t.protobufPackage="cosmos.staking.v1beta1";const u={minSelfDelegation:"",delegatorAddress:"",validatorAddress:""};t.MsgCreateValidator={encode:(e,t=i.default.Writer.create())=>(void 0!==e.description&&a.Description.encode(e.description,t.uint32(10).fork()).ldelim(),void 0!==e.commission&&a.CommissionRates.encode(e.commission,t.uint32(18).fork()).ldelim(),""!==e.minSelfDelegation&&t.uint32(26).string(e.minSelfDelegation),""!==e.delegatorAddress&&t.uint32(34).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(42).string(e.validatorAddress),void 0!==e.pubkey&&s.Any.encode(e.pubkey,t.uint32(50).fork()).ldelim(),void 0!==e.value&&c.Coin.encode(e.value,t.uint32(58).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.description=a.Description.decode(n,n.uint32());break;case 2:o.commission=a.CommissionRates.decode(n,n.uint32());break;case 3:o.minSelfDelegation=n.string();break;case 4:o.delegatorAddress=n.string();break;case 5:o.validatorAddress=n.string();break;case 6:o.pubkey=s.Any.decode(n,n.uint32());break;case 7:o.value=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.description=void 0!==e.description&&null!==e.description?a.Description.fromJSON(e.description):void 0,t.commission=void 0!==e.commission&&null!==e.commission?a.CommissionRates.fromJSON(e.commission):void 0,t.minSelfDelegation=void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?String(e.minSelfDelegation):"",t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.pubkey=void 0!==e.pubkey&&null!==e.pubkey?s.Any.fromJSON(e.pubkey):void 0,t.value=void 0!==e.value&&null!==e.value?c.Coin.fromJSON(e.value):void 0,t},toJSON(e){const t={};return void 0!==e.description&&(t.description=e.description?a.Description.toJSON(e.description):void 0),void 0!==e.commission&&(t.commission=e.commission?a.CommissionRates.toJSON(e.commission):void 0),void 0!==e.minSelfDelegation&&(t.minSelfDelegation=e.minSelfDelegation),void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.pubkey&&(t.pubkey=e.pubkey?s.Any.toJSON(e.pubkey):void 0),void 0!==e.value&&(t.value=e.value?c.Coin.toJSON(e.value):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},u);return o.description=void 0!==e.description&&null!==e.description?a.Description.fromPartial(e.description):void 0,o.commission=void 0!==e.commission&&null!==e.commission?a.CommissionRates.fromPartial(e.commission):void 0,o.minSelfDelegation=null!==(t=e.minSelfDelegation)&&void 0!==t?t:"",o.delegatorAddress=null!==(n=e.delegatorAddress)&&void 0!==n?n:"",o.validatorAddress=null!==(r=e.validatorAddress)&&void 0!==r?r:"",o.pubkey=void 0!==e.pubkey&&null!==e.pubkey?s.Any.fromPartial(e.pubkey):void 0,o.value=void 0!==e.value&&null!==e.value?c.Coin.fromPartial(e.value):void 0,o}};const l={};t.MsgCreateValidatorResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const A={validatorAddress:"",commissionRate:"",minSelfDelegation:""};t.MsgEditValidator={encode:(e,t=i.default.Writer.create())=>(void 0!==e.description&&a.Description.encode(e.description,t.uint32(10).fork()).ldelim(),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),""!==e.commissionRate&&t.uint32(26).string(e.commissionRate),""!==e.minSelfDelegation&&t.uint32(34).string(e.minSelfDelegation),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.description=a.Description.decode(n,n.uint32());break;case 2:o.validatorAddress=n.string();break;case 3:o.commissionRate=n.string();break;case 4:o.minSelfDelegation=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.description=void 0!==e.description&&null!==e.description?a.Description.fromJSON(e.description):void 0,t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.commissionRate=void 0!==e.commissionRate&&null!==e.commissionRate?String(e.commissionRate):"",t.minSelfDelegation=void 0!==e.minSelfDelegation&&null!==e.minSelfDelegation?String(e.minSelfDelegation):"",t},toJSON(e){const t={};return void 0!==e.description&&(t.description=e.description?a.Description.toJSON(e.description):void 0),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.commissionRate&&(t.commissionRate=e.commissionRate),void 0!==e.minSelfDelegation&&(t.minSelfDelegation=e.minSelfDelegation),t},fromPartial(e){var t,n,r;const o=Object.assign({},A);return o.description=void 0!==e.description&&null!==e.description?a.Description.fromPartial(e.description):void 0,o.validatorAddress=null!==(t=e.validatorAddress)&&void 0!==t?t:"",o.commissionRate=null!==(n=e.commissionRate)&&void 0!==n?n:"",o.minSelfDelegation=null!==(r=e.minSelfDelegation)&&void 0!==r?r:"",o}};const f={};t.MsgEditValidatorResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={delegatorAddress:"",validatorAddress:""};t.MsgDelegate={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;case 3:o.amount=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromJSON(e.amount):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},h);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromPartial(e.amount):void 0,r}};const p={};t.MsgDelegateResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)};const g={delegatorAddress:"",validatorSrcAddress:"",validatorDstAddress:""};t.MsgBeginRedelegate={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorSrcAddress&&t.uint32(18).string(e.validatorSrcAddress),""!==e.validatorDstAddress&&t.uint32(26).string(e.validatorDstAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorSrcAddress=n.string();break;case 3:o.validatorDstAddress=n.string();break;case 4:o.amount=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorSrcAddress=void 0!==e.validatorSrcAddress&&null!==e.validatorSrcAddress?String(e.validatorSrcAddress):"",t.validatorDstAddress=void 0!==e.validatorDstAddress&&null!==e.validatorDstAddress?String(e.validatorDstAddress):"",t.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromJSON(e.amount):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorSrcAddress&&(t.validatorSrcAddress=e.validatorSrcAddress),void 0!==e.validatorDstAddress&&(t.validatorDstAddress=e.validatorDstAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},g);return o.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",o.validatorSrcAddress=null!==(n=e.validatorSrcAddress)&&void 0!==n?n:"",o.validatorDstAddress=null!==(r=e.validatorDstAddress)&&void 0!==r?r:"",o.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromPartial(e.amount):void 0,o}};const m={};t.MsgBeginRedelegateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.completionTime&&d.Timestamp.encode(e.completionTime,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3==1?o.completionTime=d.Timestamp.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?C(e.completionTime):void 0,t},toJSON(e){const t={};return void 0!==e.completionTime&&(t.completionTime=I(e.completionTime).toISOString()),t},fromPartial(e){const t=Object.assign({},m);return t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?d.Timestamp.fromPartial(e.completionTime):void 0,t}};const v={delegatorAddress:"",validatorAddress:""};t.MsgUndelegate={encode:(e,t=i.default.Writer.create())=>(""!==e.delegatorAddress&&t.uint32(10).string(e.delegatorAddress),""!==e.validatorAddress&&t.uint32(18).string(e.validatorAddress),void 0!==e.amount&&c.Coin.encode(e.amount,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.delegatorAddress=n.string();break;case 2:o.validatorAddress=n.string();break;case 3:o.amount=c.Coin.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.delegatorAddress=void 0!==e.delegatorAddress&&null!==e.delegatorAddress?String(e.delegatorAddress):"",t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?String(e.validatorAddress):"",t.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromJSON(e.amount):void 0,t},toJSON(e){const t={};return void 0!==e.delegatorAddress&&(t.delegatorAddress=e.delegatorAddress),void 0!==e.validatorAddress&&(t.validatorAddress=e.validatorAddress),void 0!==e.amount&&(t.amount=e.amount?c.Coin.toJSON(e.amount):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.delegatorAddress=null!==(t=e.delegatorAddress)&&void 0!==t?t:"",r.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:"",r.amount=void 0!==e.amount&&null!==e.amount?c.Coin.fromPartial(e.amount):void 0,r}};const y={};function b(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function I(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function C(e){return e instanceof Date?b(e):"string"==typeof e?b(new Date(e)):d.Timestamp.fromJSON(e)}t.MsgUndelegateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.completionTime&&d.Timestamp.encode(e.completionTime,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3==1?o.completionTime=d.Timestamp.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?C(e.completionTime):void 0,t},toJSON(e){const t={};return void 0!==e.completionTime&&(t.completionTime=I(e.completionTime).toISOString()),t},fromPartial(e){const t=Object.assign({},y);return t.completionTime=void 0!==e.completionTime&&null!==e.completionTime?d.Timestamp.fromPartial(e.completionTime):void 0,t}},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.CreateValidator=this.CreateValidator.bind(this),this.EditValidator=this.EditValidator.bind(this),this.Delegate=this.Delegate.bind(this),this.BeginRedelegate=this.BeginRedelegate.bind(this),this.Undelegate=this.Undelegate.bind(this)}CreateValidator(e){const n=t.MsgCreateValidator.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","CreateValidator",n).then((e=>t.MsgCreateValidatorResponse.decode(new i.default.Reader(e))))}EditValidator(e){const n=t.MsgEditValidator.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","EditValidator",n).then((e=>t.MsgEditValidatorResponse.decode(new i.default.Reader(e))))}Delegate(e){const n=t.MsgDelegate.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","Delegate",n).then((e=>t.MsgDelegateResponse.decode(new i.default.Reader(e))))}BeginRedelegate(e){const n=t.MsgBeginRedelegate.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","BeginRedelegate",n).then((e=>t.MsgBeginRedelegateResponse.decode(new i.default.Reader(e))))}Undelegate(e){const n=t.MsgUndelegate.encode(e).finish();return this.rpc.request("cosmos.staking.v1beta1.Msg","Undelegate",n).then((e=>t.MsgUndelegateResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},2574:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SignatureDescriptor_Data_Multi=t.SignatureDescriptor_Data_Single=t.SignatureDescriptor_Data=t.SignatureDescriptor=t.SignatureDescriptors=t.signModeToJSON=t.signModeFromJSON=t.SignMode=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(7381);var c;function d(e){switch(e){case 0:case"SIGN_MODE_UNSPECIFIED":return c.SIGN_MODE_UNSPECIFIED;case 1:case"SIGN_MODE_DIRECT":return c.SIGN_MODE_DIRECT;case 2:case"SIGN_MODE_TEXTUAL":return c.SIGN_MODE_TEXTUAL;case 127:case"SIGN_MODE_LEGACY_AMINO_JSON":return c.SIGN_MODE_LEGACY_AMINO_JSON;default:return c.UNRECOGNIZED}}function u(e){switch(e){case c.SIGN_MODE_UNSPECIFIED:return"SIGN_MODE_UNSPECIFIED";case c.SIGN_MODE_DIRECT:return"SIGN_MODE_DIRECT";case c.SIGN_MODE_TEXTUAL:return"SIGN_MODE_TEXTUAL";case c.SIGN_MODE_LEGACY_AMINO_JSON:return"SIGN_MODE_LEGACY_AMINO_JSON";default:return"UNKNOWN"}}t.protobufPackage="cosmos.tx.signing.v1beta1",function(e){e[e.SIGN_MODE_UNSPECIFIED=0]="SIGN_MODE_UNSPECIFIED",e[e.SIGN_MODE_DIRECT=1]="SIGN_MODE_DIRECT",e[e.SIGN_MODE_TEXTUAL=2]="SIGN_MODE_TEXTUAL",e[e.SIGN_MODE_LEGACY_AMINO_JSON=127]="SIGN_MODE_LEGACY_AMINO_JSON",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(c=t.SignMode||(t.SignMode={})),t.signModeFromJSON=d,t.signModeToJSON=u;const l={};t.SignatureDescriptors={encode(e,n=i.default.Writer.create()){for(const r of e.signatures)t.SignatureDescriptor.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},l);for(a.signatures=[];r.pos>>3==1?a.signatures.push(t.SignatureDescriptor.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},l);return r.signatures=(null!==(n=e.signatures)&&void 0!==n?n:[]).map((e=>t.SignatureDescriptor.fromJSON(e))),r},toJSON(e){const n={};return e.signatures?n.signatures=e.signatures.map((e=>e?t.SignatureDescriptor.toJSON(e):void 0)):n.signatures=[],n},fromPartial(e){var n;const r=Object.assign({},l);return r.signatures=(null===(n=e.signatures)||void 0===n?void 0:n.map((e=>t.SignatureDescriptor.fromPartial(e))))||[],r}};const A={sequence:o.default.UZERO};t.SignatureDescriptor={encode:(e,n=i.default.Writer.create())=>(void 0!==e.publicKey&&a.Any.encode(e.publicKey,n.uint32(10).fork()).ldelim(),void 0!==e.data&&t.SignatureDescriptor_Data.encode(e.data,n.uint32(18).fork()).ldelim(),e.sequence.isZero()||n.uint32(24).uint64(e.sequence),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},A);for(;r.pos>>3){case 1:s.publicKey=a.Any.decode(r,r.uint32());break;case 2:s.data=t.SignatureDescriptor_Data.decode(r,r.uint32());break;case 3:s.sequence=r.uint64();break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},A);return n.publicKey=void 0!==e.publicKey&&null!==e.publicKey?a.Any.fromJSON(e.publicKey):void 0,n.data=void 0!==e.data&&null!==e.data?t.SignatureDescriptor_Data.fromJSON(e.data):void 0,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,n},toJSON(e){const n={};return void 0!==e.publicKey&&(n.publicKey=e.publicKey?a.Any.toJSON(e.publicKey):void 0),void 0!==e.data&&(n.data=e.data?t.SignatureDescriptor_Data.toJSON(e.data):void 0),void 0!==e.sequence&&(n.sequence=(e.sequence||o.default.UZERO).toString()),n},fromPartial(e){const n=Object.assign({},A);return n.publicKey=void 0!==e.publicKey&&null!==e.publicKey?a.Any.fromPartial(e.publicKey):void 0,n.data=void 0!==e.data&&null!==e.data?t.SignatureDescriptor_Data.fromPartial(e.data):void 0,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,n}};const f={};t.SignatureDescriptor_Data={encode:(e,n=i.default.Writer.create())=>(void 0!==e.single&&t.SignatureDescriptor_Data_Single.encode(e.single,n.uint32(10).fork()).ldelim(),void 0!==e.multi&&t.SignatureDescriptor_Data_Multi.encode(e.multi,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(;r.pos>>3){case 1:a.single=t.SignatureDescriptor_Data_Single.decode(r,r.uint32());break;case 2:a.multi=t.SignatureDescriptor_Data_Multi.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},f);return n.single=void 0!==e.single&&null!==e.single?t.SignatureDescriptor_Data_Single.fromJSON(e.single):void 0,n.multi=void 0!==e.multi&&null!==e.multi?t.SignatureDescriptor_Data_Multi.fromJSON(e.multi):void 0,n},toJSON(e){const n={};return void 0!==e.single&&(n.single=e.single?t.SignatureDescriptor_Data_Single.toJSON(e.single):void 0),void 0!==e.multi&&(n.multi=e.multi?t.SignatureDescriptor_Data_Multi.toJSON(e.multi):void 0),n},fromPartial(e){const n=Object.assign({},f);return n.single=void 0!==e.single&&null!==e.single?t.SignatureDescriptor_Data_Single.fromPartial(e.single):void 0,n.multi=void 0!==e.multi&&null!==e.multi?t.SignatureDescriptor_Data_Multi.fromPartial(e.multi):void 0,n}};const h={mode:0};t.SignatureDescriptor_Data_Single={encode:(e,t=i.default.Writer.create())=>(0!==e.mode&&t.uint32(8).int32(e.mode),0!==e.signature.length&&t.uint32(18).bytes(e.signature),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.signature=new Uint8Array;n.pos>>3){case 1:o.mode=n.int32();break;case 2:o.signature=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.mode=void 0!==e.mode&&null!==e.mode?d(e.mode):0,t.signature=void 0!==e.signature&&null!==e.signature?function(e){const t=m(e),n=new Uint8Array(t.length);for(let e=0;e>>3){case 1:a.bitarray=s.CompactBitArray.decode(r,r.uint32());break;case 2:a.signatures.push(t.SignatureDescriptor_Data.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},p);return r.bitarray=void 0!==e.bitarray&&null!==e.bitarray?s.CompactBitArray.fromJSON(e.bitarray):void 0,r.signatures=(null!==(n=e.signatures)&&void 0!==n?n:[]).map((e=>t.SignatureDescriptor_Data.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.bitarray&&(n.bitarray=e.bitarray?s.CompactBitArray.toJSON(e.bitarray):void 0),e.signatures?n.signatures=e.signatures.map((e=>e?t.SignatureDescriptor_Data.toJSON(e):void 0)):n.signatures=[],n},fromPartial(e){var n;const r=Object.assign({},p);return r.bitarray=void 0!==e.bitarray&&null!==e.bitarray?s.CompactBitArray.fromPartial(e.bitarray):void 0,r.signatures=(null===(n=e.signatures)||void 0===n?void 0:n.map((e=>t.SignatureDescriptor_Data.fromPartial(e))))||[],r}};var g=(()=>{if(void 0!==g)return g;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const m=g.atob||(e=>g.Buffer.from(e,"base64").toString("binary")),v=g.btoa||(e=>g.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4616:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceClientImpl=t.GetTxResponse=t.GetTxRequest=t.SimulateResponse=t.SimulateRequest=t.BroadcastTxResponse=t.BroadcastTxRequest=t.GetTxsEventResponse=t.GetTxsEventRequest=t.broadcastModeToJSON=t.broadcastModeFromJSON=t.BroadcastMode=t.orderByToJSON=t.orderByFromJSON=t.OrderBy=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9551),s=n(4194),c=n(9639);var d,u;function l(e){switch(e){case 0:case"ORDER_BY_UNSPECIFIED":return d.ORDER_BY_UNSPECIFIED;case 1:case"ORDER_BY_ASC":return d.ORDER_BY_ASC;case 2:case"ORDER_BY_DESC":return d.ORDER_BY_DESC;default:return d.UNRECOGNIZED}}function A(e){switch(e){case d.ORDER_BY_UNSPECIFIED:return"ORDER_BY_UNSPECIFIED";case d.ORDER_BY_ASC:return"ORDER_BY_ASC";case d.ORDER_BY_DESC:return"ORDER_BY_DESC";default:return"UNKNOWN"}}function f(e){switch(e){case 0:case"BROADCAST_MODE_UNSPECIFIED":return u.BROADCAST_MODE_UNSPECIFIED;case 1:case"BROADCAST_MODE_BLOCK":return u.BROADCAST_MODE_BLOCK;case 2:case"BROADCAST_MODE_SYNC":return u.BROADCAST_MODE_SYNC;case 3:case"BROADCAST_MODE_ASYNC":return u.BROADCAST_MODE_ASYNC;default:return u.UNRECOGNIZED}}function h(e){switch(e){case u.BROADCAST_MODE_UNSPECIFIED:return"BROADCAST_MODE_UNSPECIFIED";case u.BROADCAST_MODE_BLOCK:return"BROADCAST_MODE_BLOCK";case u.BROADCAST_MODE_SYNC:return"BROADCAST_MODE_SYNC";case u.BROADCAST_MODE_ASYNC:return"BROADCAST_MODE_ASYNC";default:return"UNKNOWN"}}t.protobufPackage="cosmos.tx.v1beta1",function(e){e[e.ORDER_BY_UNSPECIFIED=0]="ORDER_BY_UNSPECIFIED",e[e.ORDER_BY_ASC=1]="ORDER_BY_ASC",e[e.ORDER_BY_DESC=2]="ORDER_BY_DESC",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(d=t.OrderBy||(t.OrderBy={})),t.orderByFromJSON=l,t.orderByToJSON=A,function(e){e[e.BROADCAST_MODE_UNSPECIFIED=0]="BROADCAST_MODE_UNSPECIFIED",e[e.BROADCAST_MODE_BLOCK=1]="BROADCAST_MODE_BLOCK",e[e.BROADCAST_MODE_SYNC=2]="BROADCAST_MODE_SYNC",e[e.BROADCAST_MODE_ASYNC=3]="BROADCAST_MODE_ASYNC",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.BroadcastMode||(t.BroadcastMode={})),t.broadcastModeFromJSON=f,t.broadcastModeToJSON=h;const p={events:"",orderBy:0};t.GetTxsEventRequest={encode(e,t=i.default.Writer.create()){for(const n of e.events)t.uint32(10).string(n);return void 0!==e.pagination&&a.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),0!==e.orderBy&&t.uint32(24).int32(e.orderBy),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.events=[];n.pos>>3){case 1:o.events.push(n.string());break;case 2:o.pagination=a.PageRequest.decode(n,n.uint32());break;case 3:o.orderBy=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.events=(null!==(t=e.events)&&void 0!==t?t:[]).map((e=>String(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromJSON(e.pagination):void 0,n.orderBy=void 0!==e.orderBy&&null!==e.orderBy?l(e.orderBy):0,n},toJSON(e){const t={};return e.events?t.events=e.events.map((e=>e)):t.events=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageRequest.toJSON(e.pagination):void 0),void 0!==e.orderBy&&(t.orderBy=A(e.orderBy)),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.events=(null===(t=e.events)||void 0===t?void 0:t.map((e=>e)))||[],r.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageRequest.fromPartial(e.pagination):void 0,r.orderBy=null!==(n=e.orderBy)&&void 0!==n?n:0,r}};const g={};t.GetTxsEventResponse={encode(e,t=i.default.Writer.create()){for(const n of e.txs)c.Tx.encode(n,t.uint32(10).fork()).ldelim();for(const n of e.txResponses)s.TxResponse.encode(n,t.uint32(18).fork()).ldelim();return void 0!==e.pagination&&a.PageResponse.encode(e.pagination,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.txs=[],o.txResponses=[];n.pos>>3){case 1:o.txs.push(c.Tx.decode(n,n.uint32()));break;case 2:o.txResponses.push(s.TxResponse.decode(n,n.uint32()));break;case 3:o.pagination=a.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n;const r=Object.assign({},g);return r.txs=(null!==(t=e.txs)&&void 0!==t?t:[]).map((e=>c.Tx.fromJSON(e))),r.txResponses=(null!==(n=e.txResponses)&&void 0!==n?n:[]).map((e=>s.TxResponse.fromJSON(e))),r.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromJSON(e.pagination):void 0,r},toJSON(e){const t={};return e.txs?t.txs=e.txs.map((e=>e?c.Tx.toJSON(e):void 0)):t.txs=[],e.txResponses?t.txResponses=e.txResponses.map((e=>e?s.TxResponse.toJSON(e):void 0)):t.txResponses=[],void 0!==e.pagination&&(t.pagination=e.pagination?a.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.txs=(null===(t=e.txs)||void 0===t?void 0:t.map((e=>c.Tx.fromPartial(e))))||[],r.txResponses=(null===(n=e.txResponses)||void 0===n?void 0:n.map((e=>s.TxResponse.fromPartial(e))))||[],r.pagination=void 0!==e.pagination&&null!==e.pagination?a.PageResponse.fromPartial(e.pagination):void 0,r}};const m={mode:0};t.BroadcastTxRequest={encode:(e,t=i.default.Writer.create())=>(0!==e.txBytes.length&&t.uint32(10).bytes(e.txBytes),0!==e.mode&&t.uint32(16).int32(e.mode),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.txBytes=new Uint8Array;n.pos>>3){case 1:o.txBytes=n.bytes();break;case 2:o.mode=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.txBytes=void 0!==e.txBytes&&null!==e.txBytes?B(e.txBytes):new Uint8Array,t.mode=void 0!==e.mode&&null!==e.mode?f(e.mode):0,t},toJSON(e){const t={};return void 0!==e.txBytes&&(t.txBytes=S(void 0!==e.txBytes?e.txBytes:new Uint8Array)),void 0!==e.mode&&(t.mode=h(e.mode)),t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.txBytes=null!==(t=e.txBytes)&&void 0!==t?t:new Uint8Array,r.mode=null!==(n=e.mode)&&void 0!==n?n:0,r}};const v={};t.BroadcastTxResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.txResponse&&s.TxResponse.encode(e.txResponse,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3==1?o.txResponse=s.TxResponse.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return t.txResponse=void 0!==e.txResponse&&null!==e.txResponse?s.TxResponse.fromJSON(e.txResponse):void 0,t},toJSON(e){const t={};return void 0!==e.txResponse&&(t.txResponse=e.txResponse?s.TxResponse.toJSON(e.txResponse):void 0),t},fromPartial(e){const t=Object.assign({},v);return t.txResponse=void 0!==e.txResponse&&null!==e.txResponse?s.TxResponse.fromPartial(e.txResponse):void 0,t}};const y={};t.SimulateRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.tx&&c.Tx.encode(e.tx,t.uint32(10).fork()).ldelim(),0!==e.txBytes.length&&t.uint32(18).bytes(e.txBytes),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.txBytes=new Uint8Array;n.pos>>3){case 1:o.tx=c.Tx.decode(n,n.uint32());break;case 2:o.txBytes=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.tx=void 0!==e.tx&&null!==e.tx?c.Tx.fromJSON(e.tx):void 0,t.txBytes=void 0!==e.txBytes&&null!==e.txBytes?B(e.txBytes):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=e.tx?c.Tx.toJSON(e.tx):void 0),void 0!==e.txBytes&&(t.txBytes=S(void 0!==e.txBytes?e.txBytes:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},y);return n.tx=void 0!==e.tx&&null!==e.tx?c.Tx.fromPartial(e.tx):void 0,n.txBytes=null!==(t=e.txBytes)&&void 0!==t?t:new Uint8Array,n}};const b={};t.SimulateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.gasInfo&&s.GasInfo.encode(e.gasInfo,t.uint32(10).fork()).ldelim(),void 0!==e.result&&s.Result.encode(e.result,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.gasInfo=s.GasInfo.decode(n,n.uint32());break;case 2:o.result=s.Result.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.gasInfo=void 0!==e.gasInfo&&null!==e.gasInfo?s.GasInfo.fromJSON(e.gasInfo):void 0,t.result=void 0!==e.result&&null!==e.result?s.Result.fromJSON(e.result):void 0,t},toJSON(e){const t={};return void 0!==e.gasInfo&&(t.gasInfo=e.gasInfo?s.GasInfo.toJSON(e.gasInfo):void 0),void 0!==e.result&&(t.result=e.result?s.Result.toJSON(e.result):void 0),t},fromPartial(e){const t=Object.assign({},b);return t.gasInfo=void 0!==e.gasInfo&&null!==e.gasInfo?s.GasInfo.fromPartial(e.gasInfo):void 0,t.result=void 0!==e.result&&null!==e.result?s.Result.fromPartial(e.result):void 0,t}};const I={hash:""};t.GetTxRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.hash&&t.uint32(10).string(e.hash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(;n.pos>>3==1?o.hash=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},I);return t.hash=void 0!==e.hash&&null!==e.hash?String(e.hash):"",t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=e.hash),t},fromPartial(e){var t;const n=Object.assign({},I);return n.hash=null!==(t=e.hash)&&void 0!==t?t:"",n}};const C={};t.GetTxResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.tx&&c.Tx.encode(e.tx,t.uint32(10).fork()).ldelim(),void 0!==e.txResponse&&s.TxResponse.encode(e.txResponse,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3){case 1:o.tx=c.Tx.decode(n,n.uint32());break;case 2:o.txResponse=s.TxResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.tx=void 0!==e.tx&&null!==e.tx?c.Tx.fromJSON(e.tx):void 0,t.txResponse=void 0!==e.txResponse&&null!==e.txResponse?s.TxResponse.fromJSON(e.txResponse):void 0,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=e.tx?c.Tx.toJSON(e.tx):void 0),void 0!==e.txResponse&&(t.txResponse=e.txResponse?s.TxResponse.toJSON(e.txResponse):void 0),t},fromPartial(e){const t=Object.assign({},C);return t.tx=void 0!==e.tx&&null!==e.tx?c.Tx.fromPartial(e.tx):void 0,t.txResponse=void 0!==e.txResponse&&null!==e.txResponse?s.TxResponse.fromPartial(e.txResponse):void 0,t}},t.ServiceClientImpl=class{constructor(e){this.rpc=e,this.Simulate=this.Simulate.bind(this),this.GetTx=this.GetTx.bind(this),this.BroadcastTx=this.BroadcastTx.bind(this),this.GetTxsEvent=this.GetTxsEvent.bind(this)}Simulate(e){const n=t.SimulateRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","Simulate",n).then((e=>t.SimulateResponse.decode(new i.default.Reader(e))))}GetTx(e){const n=t.GetTxRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","GetTx",n).then((e=>t.GetTxResponse.decode(new i.default.Reader(e))))}BroadcastTx(e){const n=t.BroadcastTxRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","BroadcastTx",n).then((e=>t.BroadcastTxResponse.decode(new i.default.Reader(e))))}GetTxsEvent(e){const n=t.GetTxsEventRequest.encode(e).finish();return this.rpc.request("cosmos.tx.v1beta1.Service","GetTxsEvent",n).then((e=>t.GetTxsEventResponse.decode(new i.default.Reader(e))))}};var E=(()=>{if(void 0!==E)return E;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const w=E.atob||(e=>E.Buffer.from(e,"base64").toString("binary"));function B(e){const t=w(e),n=new Uint8Array(t.length);for(let e=0;eE.Buffer.from(e,"binary").toString("base64"));function S(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return _(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9639:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Fee=t.ModeInfo_Multi=t.ModeInfo_Single=t.ModeInfo=t.SignerInfo=t.AuthInfo=t.TxBody=t.SignDoc=t.TxRaw=t.Tx=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(2574),c=n(7381),d=n(891);t.protobufPackage="cosmos.tx.v1beta1";const u={};t.Tx={encode(e,n=i.default.Writer.create()){void 0!==e.body&&t.TxBody.encode(e.body,n.uint32(10).fork()).ldelim(),void 0!==e.authInfo&&t.AuthInfo.encode(e.authInfo,n.uint32(18).fork()).ldelim();for(const t of e.signatures)n.uint32(26).bytes(t);return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(a.signatures=[];r.pos>>3){case 1:a.body=t.TxBody.decode(r,r.uint32());break;case 2:a.authInfo=t.AuthInfo.decode(r,r.uint32());break;case 3:a.signatures.push(r.bytes());break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},u);return r.body=void 0!==e.body&&null!==e.body?t.TxBody.fromJSON(e.body):void 0,r.authInfo=void 0!==e.authInfo&&null!==e.authInfo?t.AuthInfo.fromJSON(e.authInfo):void 0,r.signatures=(null!==(n=e.signatures)&&void 0!==n?n:[]).map((e=>C(e))),r},toJSON(e){const n={};return void 0!==e.body&&(n.body=e.body?t.TxBody.toJSON(e.body):void 0),void 0!==e.authInfo&&(n.authInfo=e.authInfo?t.AuthInfo.toJSON(e.authInfo):void 0),e.signatures?n.signatures=e.signatures.map((e=>w(void 0!==e?e:new Uint8Array))):n.signatures=[],n},fromPartial(e){var n;const r=Object.assign({},u);return r.body=void 0!==e.body&&null!==e.body?t.TxBody.fromPartial(e.body):void 0,r.authInfo=void 0!==e.authInfo&&null!==e.authInfo?t.AuthInfo.fromPartial(e.authInfo):void 0,r.signatures=(null===(n=e.signatures)||void 0===n?void 0:n.map((e=>e)))||[],r}};const l={};t.TxRaw={encode(e,t=i.default.Writer.create()){0!==e.bodyBytes.length&&t.uint32(10).bytes(e.bodyBytes),0!==e.authInfoBytes.length&&t.uint32(18).bytes(e.authInfoBytes);for(const n of e.signatures)t.uint32(26).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.signatures=[],o.bodyBytes=new Uint8Array,o.authInfoBytes=new Uint8Array;n.pos>>3){case 1:o.bodyBytes=n.bytes();break;case 2:o.authInfoBytes=n.bytes();break;case 3:o.signatures.push(n.bytes());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.bodyBytes=void 0!==e.bodyBytes&&null!==e.bodyBytes?C(e.bodyBytes):new Uint8Array,n.authInfoBytes=void 0!==e.authInfoBytes&&null!==e.authInfoBytes?C(e.authInfoBytes):new Uint8Array,n.signatures=(null!==(t=e.signatures)&&void 0!==t?t:[]).map((e=>C(e))),n},toJSON(e){const t={};return void 0!==e.bodyBytes&&(t.bodyBytes=w(void 0!==e.bodyBytes?e.bodyBytes:new Uint8Array)),void 0!==e.authInfoBytes&&(t.authInfoBytes=w(void 0!==e.authInfoBytes?e.authInfoBytes:new Uint8Array)),e.signatures?t.signatures=e.signatures.map((e=>w(void 0!==e?e:new Uint8Array))):t.signatures=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},l);return o.bodyBytes=null!==(t=e.bodyBytes)&&void 0!==t?t:new Uint8Array,o.authInfoBytes=null!==(n=e.authInfoBytes)&&void 0!==n?n:new Uint8Array,o.signatures=(null===(r=e.signatures)||void 0===r?void 0:r.map((e=>e)))||[],o}};const A={chainId:"",accountNumber:o.default.UZERO};t.SignDoc={encode:(e,t=i.default.Writer.create())=>(0!==e.bodyBytes.length&&t.uint32(10).bytes(e.bodyBytes),0!==e.authInfoBytes.length&&t.uint32(18).bytes(e.authInfoBytes),""!==e.chainId&&t.uint32(26).string(e.chainId),e.accountNumber.isZero()||t.uint32(32).uint64(e.accountNumber),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.bodyBytes=new Uint8Array,o.authInfoBytes=new Uint8Array;n.pos>>3){case 1:o.bodyBytes=n.bytes();break;case 2:o.authInfoBytes=n.bytes();break;case 3:o.chainId=n.string();break;case 4:o.accountNumber=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.bodyBytes=void 0!==e.bodyBytes&&null!==e.bodyBytes?C(e.bodyBytes):new Uint8Array,t.authInfoBytes=void 0!==e.authInfoBytes&&null!==e.authInfoBytes?C(e.authInfoBytes):new Uint8Array,t.chainId=void 0!==e.chainId&&null!==e.chainId?String(e.chainId):"",t.accountNumber=void 0!==e.accountNumber&&null!==e.accountNumber?o.default.fromString(e.accountNumber):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.bodyBytes&&(t.bodyBytes=w(void 0!==e.bodyBytes?e.bodyBytes:new Uint8Array)),void 0!==e.authInfoBytes&&(t.authInfoBytes=w(void 0!==e.authInfoBytes?e.authInfoBytes:new Uint8Array)),void 0!==e.chainId&&(t.chainId=e.chainId),void 0!==e.accountNumber&&(t.accountNumber=(e.accountNumber||o.default.UZERO).toString()),t},fromPartial(e){var t,n,r;const i=Object.assign({},A);return i.bodyBytes=null!==(t=e.bodyBytes)&&void 0!==t?t:new Uint8Array,i.authInfoBytes=null!==(n=e.authInfoBytes)&&void 0!==n?n:new Uint8Array,i.chainId=null!==(r=e.chainId)&&void 0!==r?r:"",i.accountNumber=void 0!==e.accountNumber&&null!==e.accountNumber?o.default.fromValue(e.accountNumber):o.default.UZERO,i}};const f={memo:"",timeoutHeight:o.default.UZERO};t.TxBody={encode(e,t=i.default.Writer.create()){for(const n of e.messages)a.Any.encode(n,t.uint32(10).fork()).ldelim();""!==e.memo&&t.uint32(18).string(e.memo),e.timeoutHeight.isZero()||t.uint32(24).uint64(e.timeoutHeight);for(const n of e.extensionOptions)a.Any.encode(n,t.uint32(8186).fork()).ldelim();for(const n of e.nonCriticalExtensionOptions)a.Any.encode(n,t.uint32(16378).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.messages=[],o.extensionOptions=[],o.nonCriticalExtensionOptions=[];n.pos>>3){case 1:o.messages.push(a.Any.decode(n,n.uint32()));break;case 2:o.memo=n.string();break;case 3:o.timeoutHeight=n.uint64();break;case 1023:o.extensionOptions.push(a.Any.decode(n,n.uint32()));break;case 2047:o.nonCriticalExtensionOptions.push(a.Any.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n,r;const i=Object.assign({},f);return i.messages=(null!==(t=e.messages)&&void 0!==t?t:[]).map((e=>a.Any.fromJSON(e))),i.memo=void 0!==e.memo&&null!==e.memo?String(e.memo):"",i.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?o.default.fromString(e.timeoutHeight):o.default.UZERO,i.extensionOptions=(null!==(n=e.extensionOptions)&&void 0!==n?n:[]).map((e=>a.Any.fromJSON(e))),i.nonCriticalExtensionOptions=(null!==(r=e.nonCriticalExtensionOptions)&&void 0!==r?r:[]).map((e=>a.Any.fromJSON(e))),i},toJSON(e){const t={};return e.messages?t.messages=e.messages.map((e=>e?a.Any.toJSON(e):void 0)):t.messages=[],void 0!==e.memo&&(t.memo=e.memo),void 0!==e.timeoutHeight&&(t.timeoutHeight=(e.timeoutHeight||o.default.UZERO).toString()),e.extensionOptions?t.extensionOptions=e.extensionOptions.map((e=>e?a.Any.toJSON(e):void 0)):t.extensionOptions=[],e.nonCriticalExtensionOptions?t.nonCriticalExtensionOptions=e.nonCriticalExtensionOptions.map((e=>e?a.Any.toJSON(e):void 0)):t.nonCriticalExtensionOptions=[],t},fromPartial(e){var t,n,r,i;const s=Object.assign({},f);return s.messages=(null===(t=e.messages)||void 0===t?void 0:t.map((e=>a.Any.fromPartial(e))))||[],s.memo=null!==(n=e.memo)&&void 0!==n?n:"",s.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?o.default.fromValue(e.timeoutHeight):o.default.UZERO,s.extensionOptions=(null===(r=e.extensionOptions)||void 0===r?void 0:r.map((e=>a.Any.fromPartial(e))))||[],s.nonCriticalExtensionOptions=(null===(i=e.nonCriticalExtensionOptions)||void 0===i?void 0:i.map((e=>a.Any.fromPartial(e))))||[],s}};const h={};t.AuthInfo={encode(e,n=i.default.Writer.create()){for(const r of e.signerInfos)t.SignerInfo.encode(r,n.uint32(10).fork()).ldelim();return void 0!==e.fee&&t.Fee.encode(e.fee,n.uint32(18).fork()).ldelim(),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},h);for(a.signerInfos=[];r.pos>>3){case 1:a.signerInfos.push(t.SignerInfo.decode(r,r.uint32()));break;case 2:a.fee=t.Fee.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},h);return r.signerInfos=(null!==(n=e.signerInfos)&&void 0!==n?n:[]).map((e=>t.SignerInfo.fromJSON(e))),r.fee=void 0!==e.fee&&null!==e.fee?t.Fee.fromJSON(e.fee):void 0,r},toJSON(e){const n={};return e.signerInfos?n.signerInfos=e.signerInfos.map((e=>e?t.SignerInfo.toJSON(e):void 0)):n.signerInfos=[],void 0!==e.fee&&(n.fee=e.fee?t.Fee.toJSON(e.fee):void 0),n},fromPartial(e){var n;const r=Object.assign({},h);return r.signerInfos=(null===(n=e.signerInfos)||void 0===n?void 0:n.map((e=>t.SignerInfo.fromPartial(e))))||[],r.fee=void 0!==e.fee&&null!==e.fee?t.Fee.fromPartial(e.fee):void 0,r}};const p={sequence:o.default.UZERO};t.SignerInfo={encode:(e,n=i.default.Writer.create())=>(void 0!==e.publicKey&&a.Any.encode(e.publicKey,n.uint32(10).fork()).ldelim(),void 0!==e.modeInfo&&t.ModeInfo.encode(e.modeInfo,n.uint32(18).fork()).ldelim(),e.sequence.isZero()||n.uint32(24).uint64(e.sequence),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},p);for(;r.pos>>3){case 1:s.publicKey=a.Any.decode(r,r.uint32());break;case 2:s.modeInfo=t.ModeInfo.decode(r,r.uint32());break;case 3:s.sequence=r.uint64();break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},p);return n.publicKey=void 0!==e.publicKey&&null!==e.publicKey?a.Any.fromJSON(e.publicKey):void 0,n.modeInfo=void 0!==e.modeInfo&&null!==e.modeInfo?t.ModeInfo.fromJSON(e.modeInfo):void 0,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,n},toJSON(e){const n={};return void 0!==e.publicKey&&(n.publicKey=e.publicKey?a.Any.toJSON(e.publicKey):void 0),void 0!==e.modeInfo&&(n.modeInfo=e.modeInfo?t.ModeInfo.toJSON(e.modeInfo):void 0),void 0!==e.sequence&&(n.sequence=(e.sequence||o.default.UZERO).toString()),n},fromPartial(e){const n=Object.assign({},p);return n.publicKey=void 0!==e.publicKey&&null!==e.publicKey?a.Any.fromPartial(e.publicKey):void 0,n.modeInfo=void 0!==e.modeInfo&&null!==e.modeInfo?t.ModeInfo.fromPartial(e.modeInfo):void 0,n.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,n}};const g={};t.ModeInfo={encode:(e,n=i.default.Writer.create())=>(void 0!==e.single&&t.ModeInfo_Single.encode(e.single,n.uint32(10).fork()).ldelim(),void 0!==e.multi&&t.ModeInfo_Multi.encode(e.multi,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},g);for(;r.pos>>3){case 1:a.single=t.ModeInfo_Single.decode(r,r.uint32());break;case 2:a.multi=t.ModeInfo_Multi.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},g);return n.single=void 0!==e.single&&null!==e.single?t.ModeInfo_Single.fromJSON(e.single):void 0,n.multi=void 0!==e.multi&&null!==e.multi?t.ModeInfo_Multi.fromJSON(e.multi):void 0,n},toJSON(e){const n={};return void 0!==e.single&&(n.single=e.single?t.ModeInfo_Single.toJSON(e.single):void 0),void 0!==e.multi&&(n.multi=e.multi?t.ModeInfo_Multi.toJSON(e.multi):void 0),n},fromPartial(e){const n=Object.assign({},g);return n.single=void 0!==e.single&&null!==e.single?t.ModeInfo_Single.fromPartial(e.single):void 0,n.multi=void 0!==e.multi&&null!==e.multi?t.ModeInfo_Multi.fromPartial(e.multi):void 0,n}};const m={mode:0};t.ModeInfo_Single={encode:(e,t=i.default.Writer.create())=>(0!==e.mode&&t.uint32(8).int32(e.mode),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3==1?o.mode=n.int32():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.mode=void 0!==e.mode&&null!==e.mode?s.signModeFromJSON(e.mode):0,t},toJSON(e){const t={};return void 0!==e.mode&&(t.mode=s.signModeToJSON(e.mode)),t},fromPartial(e){var t;const n=Object.assign({},m);return n.mode=null!==(t=e.mode)&&void 0!==t?t:0,n}};const v={};t.ModeInfo_Multi={encode(e,n=i.default.Writer.create()){void 0!==e.bitarray&&c.CompactBitArray.encode(e.bitarray,n.uint32(10).fork()).ldelim();for(const r of e.modeInfos)t.ModeInfo.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},v);for(a.modeInfos=[];r.pos>>3){case 1:a.bitarray=c.CompactBitArray.decode(r,r.uint32());break;case 2:a.modeInfos.push(t.ModeInfo.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},v);return r.bitarray=void 0!==e.bitarray&&null!==e.bitarray?c.CompactBitArray.fromJSON(e.bitarray):void 0,r.modeInfos=(null!==(n=e.modeInfos)&&void 0!==n?n:[]).map((e=>t.ModeInfo.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.bitarray&&(n.bitarray=e.bitarray?c.CompactBitArray.toJSON(e.bitarray):void 0),e.modeInfos?n.modeInfos=e.modeInfos.map((e=>e?t.ModeInfo.toJSON(e):void 0)):n.modeInfos=[],n},fromPartial(e){var n;const r=Object.assign({},v);return r.bitarray=void 0!==e.bitarray&&null!==e.bitarray?c.CompactBitArray.fromPartial(e.bitarray):void 0,r.modeInfos=(null===(n=e.modeInfos)||void 0===n?void 0:n.map((e=>t.ModeInfo.fromPartial(e))))||[],r}};const y={gasLimit:o.default.UZERO,payer:"",granter:""};t.Fee={encode(e,t=i.default.Writer.create()){for(const n of e.amount)d.Coin.encode(n,t.uint32(10).fork()).ldelim();return e.gasLimit.isZero()||t.uint32(16).uint64(e.gasLimit),""!==e.payer&&t.uint32(26).string(e.payer),""!==e.granter&&t.uint32(34).string(e.granter),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.amount=[];n.pos>>3){case 1:o.amount.push(d.Coin.decode(n,n.uint32()));break;case 2:o.gasLimit=n.uint64();break;case 3:o.payer=n.string();break;case 4:o.granter=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},y);return n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>d.Coin.fromJSON(e))),n.gasLimit=void 0!==e.gasLimit&&null!==e.gasLimit?o.default.fromString(e.gasLimit):o.default.UZERO,n.payer=void 0!==e.payer&&null!==e.payer?String(e.payer):"",n.granter=void 0!==e.granter&&null!==e.granter?String(e.granter):"",n},toJSON(e){const t={};return e.amount?t.amount=e.amount.map((e=>e?d.Coin.toJSON(e):void 0)):t.amount=[],void 0!==e.gasLimit&&(t.gasLimit=(e.gasLimit||o.default.UZERO).toString()),void 0!==e.payer&&(t.payer=e.payer),void 0!==e.granter&&(t.granter=e.granter),t},fromPartial(e){var t,n,r;const i=Object.assign({},y);return i.amount=(null===(t=e.amount)||void 0===t?void 0:t.map((e=>d.Coin.fromPartial(e))))||[],i.gasLimit=void 0!==e.gasLimit&&null!==e.gasLimit?o.default.fromValue(e.gasLimit):o.default.UZERO,i.payer=null!==(n=e.payer)&&void 0!==n?n:"",i.granter=null!==(r=e.granter)&&void 0!==r?r:"",i}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const I=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary"));function C(e){const t=I(e),n=new Uint8Array(t.length);for(let e=0;eb.Buffer.from(e,"binary").toString("base64"));function w(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return E(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5303:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PermanentLockedAccount=t.PeriodicVestingAccount=t.Period=t.DelayedVestingAccount=t.ContinuousVestingAccount=t.BaseVestingAccount=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3487),s=n(891);t.protobufPackage="cosmos.vesting.v1beta1";const c={endTime:o.default.ZERO};t.BaseVestingAccount={encode(e,t=i.default.Writer.create()){void 0!==e.baseAccount&&a.BaseAccount.encode(e.baseAccount,t.uint32(10).fork()).ldelim();for(const n of e.originalVesting)s.Coin.encode(n,t.uint32(18).fork()).ldelim();for(const n of e.delegatedFree)s.Coin.encode(n,t.uint32(26).fork()).ldelim();for(const n of e.delegatedVesting)s.Coin.encode(n,t.uint32(34).fork()).ldelim();return e.endTime.isZero()||t.uint32(40).int64(e.endTime),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.originalVesting=[],o.delegatedFree=[],o.delegatedVesting=[];n.pos>>3){case 1:o.baseAccount=a.BaseAccount.decode(n,n.uint32());break;case 2:o.originalVesting.push(s.Coin.decode(n,n.uint32()));break;case 3:o.delegatedFree.push(s.Coin.decode(n,n.uint32()));break;case 4:o.delegatedVesting.push(s.Coin.decode(n,n.uint32()));break;case 5:o.endTime=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t,n,r;const i=Object.assign({},c);return i.baseAccount=void 0!==e.baseAccount&&null!==e.baseAccount?a.BaseAccount.fromJSON(e.baseAccount):void 0,i.originalVesting=(null!==(t=e.originalVesting)&&void 0!==t?t:[]).map((e=>s.Coin.fromJSON(e))),i.delegatedFree=(null!==(n=e.delegatedFree)&&void 0!==n?n:[]).map((e=>s.Coin.fromJSON(e))),i.delegatedVesting=(null!==(r=e.delegatedVesting)&&void 0!==r?r:[]).map((e=>s.Coin.fromJSON(e))),i.endTime=void 0!==e.endTime&&null!==e.endTime?o.default.fromString(e.endTime):o.default.ZERO,i},toJSON(e){const t={};return void 0!==e.baseAccount&&(t.baseAccount=e.baseAccount?a.BaseAccount.toJSON(e.baseAccount):void 0),e.originalVesting?t.originalVesting=e.originalVesting.map((e=>e?s.Coin.toJSON(e):void 0)):t.originalVesting=[],e.delegatedFree?t.delegatedFree=e.delegatedFree.map((e=>e?s.Coin.toJSON(e):void 0)):t.delegatedFree=[],e.delegatedVesting?t.delegatedVesting=e.delegatedVesting.map((e=>e?s.Coin.toJSON(e):void 0)):t.delegatedVesting=[],void 0!==e.endTime&&(t.endTime=(e.endTime||o.default.ZERO).toString()),t},fromPartial(e){var t,n,r;const i=Object.assign({},c);return i.baseAccount=void 0!==e.baseAccount&&null!==e.baseAccount?a.BaseAccount.fromPartial(e.baseAccount):void 0,i.originalVesting=(null===(t=e.originalVesting)||void 0===t?void 0:t.map((e=>s.Coin.fromPartial(e))))||[],i.delegatedFree=(null===(n=e.delegatedFree)||void 0===n?void 0:n.map((e=>s.Coin.fromPartial(e))))||[],i.delegatedVesting=(null===(r=e.delegatedVesting)||void 0===r?void 0:r.map((e=>s.Coin.fromPartial(e))))||[],i.endTime=void 0!==e.endTime&&null!==e.endTime?o.default.fromValue(e.endTime):o.default.ZERO,i}};const d={startTime:o.default.ZERO};t.ContinuousVestingAccount={encode:(e,n=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,n.uint32(10).fork()).ldelim(),e.startTime.isZero()||n.uint32(16).int64(e.startTime),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},d);for(;r.pos>>3){case 1:a.baseVestingAccount=t.BaseVestingAccount.decode(r,r.uint32());break;case 2:a.startTime=r.int64();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},d);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromJSON(e.baseVestingAccount):void 0,n.startTime=void 0!==e.startTime&&null!==e.startTime?o.default.fromString(e.startTime):o.default.ZERO,n},toJSON(e){const n={};return void 0!==e.baseVestingAccount&&(n.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),void 0!==e.startTime&&(n.startTime=(e.startTime||o.default.ZERO).toString()),n},fromPartial(e){const n=Object.assign({},d);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromPartial(e.baseVestingAccount):void 0,n.startTime=void 0!==e.startTime&&null!==e.startTime?o.default.fromValue(e.startTime):o.default.ZERO,n}};const u={};t.DelayedVestingAccount={encode:(e,n=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,n.uint32(10).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(;r.pos>>3==1?a.baseVestingAccount=t.BaseVestingAccount.decode(r,r.uint32()):r.skipType(7&e)}return a},fromJSON(e){const n=Object.assign({},u);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromJSON(e.baseVestingAccount):void 0,n},toJSON(e){const n={};return void 0!==e.baseVestingAccount&&(n.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),n},fromPartial(e){const n=Object.assign({},u);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromPartial(e.baseVestingAccount):void 0,n}};const l={length:o.default.ZERO};t.Period={encode(e,t=i.default.Writer.create()){e.length.isZero()||t.uint32(8).int64(e.length);for(const n of e.amount)s.Coin.encode(n,t.uint32(18).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.amount=[];n.pos>>3){case 1:o.length=n.int64();break;case 2:o.amount.push(s.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.length=void 0!==e.length&&null!==e.length?o.default.fromString(e.length):o.default.ZERO,n.amount=(null!==(t=e.amount)&&void 0!==t?t:[]).map((e=>s.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.length&&(t.length=(e.length||o.default.ZERO).toString()),e.amount?t.amount=e.amount.map((e=>e?s.Coin.toJSON(e):void 0)):t.amount=[],t},fromPartial(e){var t;const n=Object.assign({},l);return n.length=void 0!==e.length&&null!==e.length?o.default.fromValue(e.length):o.default.ZERO,n.amount=(null===(t=e.amount)||void 0===t?void 0:t.map((e=>s.Coin.fromPartial(e))))||[],n}};const A={startTime:o.default.ZERO};t.PeriodicVestingAccount={encode(e,n=i.default.Writer.create()){void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,n.uint32(10).fork()).ldelim(),e.startTime.isZero()||n.uint32(16).int64(e.startTime);for(const r of e.vestingPeriods)t.Period.encode(r,n.uint32(26).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},A);for(a.vestingPeriods=[];r.pos>>3){case 1:a.baseVestingAccount=t.BaseVestingAccount.decode(r,r.uint32());break;case 2:a.startTime=r.int64();break;case 3:a.vestingPeriods.push(t.Period.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},A);return r.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromJSON(e.baseVestingAccount):void 0,r.startTime=void 0!==e.startTime&&null!==e.startTime?o.default.fromString(e.startTime):o.default.ZERO,r.vestingPeriods=(null!==(n=e.vestingPeriods)&&void 0!==n?n:[]).map((e=>t.Period.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.baseVestingAccount&&(n.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),void 0!==e.startTime&&(n.startTime=(e.startTime||o.default.ZERO).toString()),e.vestingPeriods?n.vestingPeriods=e.vestingPeriods.map((e=>e?t.Period.toJSON(e):void 0)):n.vestingPeriods=[],n},fromPartial(e){var n;const r=Object.assign({},A);return r.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromPartial(e.baseVestingAccount):void 0,r.startTime=void 0!==e.startTime&&null!==e.startTime?o.default.fromValue(e.startTime):o.default.ZERO,r.vestingPeriods=(null===(n=e.vestingPeriods)||void 0===n?void 0:n.map((e=>t.Period.fromPartial(e))))||[],r}};const f={};t.PermanentLockedAccount={encode:(e,n=i.default.Writer.create())=>(void 0!==e.baseVestingAccount&&t.BaseVestingAccount.encode(e.baseVestingAccount,n.uint32(10).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(;r.pos>>3==1?a.baseVestingAccount=t.BaseVestingAccount.decode(r,r.uint32()):r.skipType(7&e)}return a},fromJSON(e){const n=Object.assign({},f);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromJSON(e.baseVestingAccount):void 0,n},toJSON(e){const n={};return void 0!==e.baseVestingAccount&&(n.baseVestingAccount=e.baseVestingAccount?t.BaseVestingAccount.toJSON(e.baseVestingAccount):void 0),n},fromPartial(e){const n=Object.assign({},f);return n.baseVestingAccount=void 0!==e.baseVestingAccount&&null!==e.baseVestingAccount?t.BaseVestingAccount.fromPartial(e.baseVestingAccount):void 0,n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6218:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryCodesResponse=t.QueryCodesRequest=t.QueryCodeResponse=t.CodeInfoResponse=t.QueryCodeRequest=t.QuerySmartContractStateResponse=t.QuerySmartContractStateRequest=t.QueryRawContractStateResponse=t.QueryRawContractStateRequest=t.QueryAllContractStateResponse=t.QueryAllContractStateRequest=t.QueryContractsByCodeResponse=t.QueryContractsByCodeRequest=t.QueryContractHistoryResponse=t.QueryContractHistoryRequest=t.QueryContractInfoResponse=t.QueryContractInfoRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9374),s=n(9551);t.protobufPackage="cosmwasm.wasm.v1";const c={address:""};t.QueryContractInfoRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.address=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),t},fromPartial(e){var t;const n=Object.assign({},c);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n}};const d={address:""};t.QueryContractInfoResponse={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.contractInfo&&a.ContractInfo.encode(e.contractInfo,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.contractInfo=a.ContractInfo.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.contractInfo=void 0!==e.contractInfo&&null!==e.contractInfo?a.ContractInfo.fromJSON(e.contractInfo):void 0,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.contractInfo&&(t.contractInfo=e.contractInfo?a.ContractInfo.toJSON(e.contractInfo):void 0),t},fromPartial(e){var t;const n=Object.assign({},d);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.contractInfo=void 0!==e.contractInfo&&null!==e.contractInfo?a.ContractInfo.fromPartial(e.contractInfo):void 0,n}};const u={address:""};t.QueryContractHistoryRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},u);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,n}};const l={};t.QueryContractHistoryResponse={encode(e,t=i.default.Writer.create()){for(const n of e.entries)a.ContractCodeHistoryEntry.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.entries=[];n.pos>>3){case 1:o.entries.push(a.ContractCodeHistoryEntry.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.entries=(null!==(t=e.entries)&&void 0!==t?t:[]).map((e=>a.ContractCodeHistoryEntry.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.entries?t.entries=e.entries.map((e=>e?a.ContractCodeHistoryEntry.toJSON(e):void 0)):t.entries=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.entries=(null===(t=e.entries)||void 0===t?void 0:t.map((e=>a.ContractCodeHistoryEntry.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const A={codeId:o.default.UZERO};t.QueryContractsByCodeRequest={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.codeId=n.uint64();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const f={contracts:""};t.QueryContractsByCodeResponse={encode(e,t=i.default.Writer.create()){for(const n of e.contracts)t.uint32(10).string(n);return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.contracts=[];n.pos>>3){case 1:o.contracts.push(n.string());break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.contracts=(null!==(t=e.contracts)&&void 0!==t?t:[]).map((e=>String(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.contracts?t.contracts=e.contracts.map((e=>e)):t.contracts=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.contracts=(null===(t=e.contracts)||void 0===t?void 0:t.map((e=>e)))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const h={address:""};t.QueryAllContractStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.address=n.string();break;case 2:o.pagination=s.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.address=null!==(t=e.address)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,n}};const p={};t.QueryAllContractStateResponse={encode(e,t=i.default.Writer.create()){for(const n of e.models)a.Model.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.models=[];n.pos>>3){case 1:o.models.push(a.Model.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.models=(null!==(t=e.models)&&void 0!==t?t:[]).map((e=>a.Model.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.models?t.models=e.models.map((e=>e?a.Model.toJSON(e):void 0)):t.models=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},p);return n.models=(null===(t=e.models)||void 0===t?void 0:t.map((e=>a.Model.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const g={address:""};t.QueryRawContractStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),0!==e.queryData.length&&t.uint32(18).bytes(e.queryData),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.queryData=new Uint8Array;n.pos>>3){case 1:o.address=n.string();break;case 2:o.queryData=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.queryData=void 0!==e.queryData&&null!==e.queryData?S(e.queryData):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.queryData&&(t.queryData=O(void 0!==e.queryData?e.queryData:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.queryData=null!==(n=e.queryData)&&void 0!==n?n:new Uint8Array,r}};const m={};t.QueryRawContractStateResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.data=new Uint8Array;n.pos>>3==1?o.data=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},m);return t.data=void 0!==e.data&&null!==e.data?S(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=O(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},m);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n}};const v={address:""};t.QuerySmartContractStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),0!==e.queryData.length&&t.uint32(18).bytes(e.queryData),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.queryData=new Uint8Array;n.pos>>3){case 1:o.address=n.string();break;case 2:o.queryData=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.queryData=void 0!==e.queryData&&null!==e.queryData?S(e.queryData):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.queryData&&(t.queryData=O(void 0!==e.queryData?e.queryData:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.queryData=null!==(n=e.queryData)&&void 0!==n?n:new Uint8Array,r}};const y={};t.QuerySmartContractStateResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.data=new Uint8Array;n.pos>>3==1?o.data=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},y);return t.data=void 0!==e.data&&null!==e.data?S(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=O(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},y);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n}};const b={codeId:o.default.UZERO};t.QueryCodeRequest={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3==1?o.codeId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},b);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},b);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,t}};const I={codeId:o.default.UZERO,creator:""};t.CodeInfoResponse={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),""!==e.creator&&t.uint32(18).string(e.creator),0!==e.dataHash.length&&t.uint32(26).bytes(e.dataHash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(o.dataHash=new Uint8Array;n.pos>>3){case 1:o.codeId=n.uint64();break;case 2:o.creator=n.string();break;case 3:o.dataHash=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},I);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t.creator=void 0!==e.creator&&null!==e.creator?String(e.creator):"",t.dataHash=void 0!==e.dataHash&&null!==e.dataHash?S(e.dataHash):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.creator&&(t.creator=e.creator),void 0!==e.dataHash&&(t.dataHash=O(void 0!==e.dataHash?e.dataHash:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},I);return r.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,r.creator=null!==(t=e.creator)&&void 0!==t?t:"",r.dataHash=null!==(n=e.dataHash)&&void 0!==n?n:new Uint8Array,r}};const C={};t.QueryCodeResponse={encode:(e,n=i.default.Writer.create())=>(void 0!==e.codeInfo&&t.CodeInfoResponse.encode(e.codeInfo,n.uint32(10).fork()).ldelim(),0!==e.data.length&&n.uint32(18).bytes(e.data),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},C);for(a.data=new Uint8Array;r.pos>>3){case 1:a.codeInfo=t.CodeInfoResponse.decode(r,r.uint32());break;case 2:a.data=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},C);return n.codeInfo=void 0!==e.codeInfo&&null!==e.codeInfo?t.CodeInfoResponse.fromJSON(e.codeInfo):void 0,n.data=void 0!==e.data&&null!==e.data?S(e.data):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.codeInfo&&(n.codeInfo=e.codeInfo?t.CodeInfoResponse.toJSON(e.codeInfo):void 0),void 0!==e.data&&(n.data=O(void 0!==e.data?e.data:new Uint8Array)),n},fromPartial(e){var n;const r=Object.assign({},C);return r.codeInfo=void 0!==e.codeInfo&&null!==e.codeInfo?t.CodeInfoResponse.fromPartial(e.codeInfo):void 0,r.data=null!==(n=e.data)&&void 0!==n?n:new Uint8Array,r}};const E={};t.QueryCodesRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},E);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},E);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const w={};t.QueryCodesResponse={encode(e,n=i.default.Writer.create()){for(const r of e.codeInfos)t.CodeInfoResponse.encode(r,n.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,n.uint32(18).fork()).ldelim(),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},w);for(a.codeInfos=[];r.pos>>3){case 1:a.codeInfos.push(t.CodeInfoResponse.decode(r,r.uint32()));break;case 2:a.pagination=s.PageResponse.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},w);return r.codeInfos=(null!==(n=e.codeInfos)&&void 0!==n?n:[]).map((e=>t.CodeInfoResponse.fromJSON(e))),r.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,r},toJSON(e){const n={};return e.codeInfos?n.codeInfos=e.codeInfos.map((e=>e?t.CodeInfoResponse.toJSON(e):void 0)):n.codeInfos=[],void 0!==e.pagination&&(n.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),n},fromPartial(e){var n;const r=Object.assign({},w);return r.codeInfos=(null===(n=e.codeInfos)||void 0===n?void 0:n.map((e=>t.CodeInfoResponse.fromPartial(e))))||[],r.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,r}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.ContractInfo=this.ContractInfo.bind(this),this.ContractHistory=this.ContractHistory.bind(this),this.ContractsByCode=this.ContractsByCode.bind(this),this.AllContractState=this.AllContractState.bind(this),this.RawContractState=this.RawContractState.bind(this),this.SmartContractState=this.SmartContractState.bind(this),this.Code=this.Code.bind(this),this.Codes=this.Codes.bind(this)}ContractInfo(e){const n=t.QueryContractInfoRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","ContractInfo",n).then((e=>t.QueryContractInfoResponse.decode(new i.default.Reader(e))))}ContractHistory(e){const n=t.QueryContractHistoryRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","ContractHistory",n).then((e=>t.QueryContractHistoryResponse.decode(new i.default.Reader(e))))}ContractsByCode(e){const n=t.QueryContractsByCodeRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","ContractsByCode",n).then((e=>t.QueryContractsByCodeResponse.decode(new i.default.Reader(e))))}AllContractState(e){const n=t.QueryAllContractStateRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","AllContractState",n).then((e=>t.QueryAllContractStateResponse.decode(new i.default.Reader(e))))}RawContractState(e){const n=t.QueryRawContractStateRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","RawContractState",n).then((e=>t.QueryRawContractStateResponse.decode(new i.default.Reader(e))))}SmartContractState(e){const n=t.QuerySmartContractStateRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","SmartContractState",n).then((e=>t.QuerySmartContractStateResponse.decode(new i.default.Reader(e))))}Code(e){const n=t.QueryCodeRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","Code",n).then((e=>t.QueryCodeResponse.decode(new i.default.Reader(e))))}Codes(e){const n=t.QueryCodesRequest.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Query","Codes",n).then((e=>t.QueryCodesResponse.decode(new i.default.Reader(e))))}};var B=(()=>{if(void 0!==B)return B;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const _=B.atob||(e=>B.Buffer.from(e,"base64").toString("binary"));function S(e){const t=_(e),n=new Uint8Array(t.length);for(let e=0;eB.Buffer.from(e,"binary").toString("base64"));function O(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return k(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1814:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgClearAdminResponse=t.MsgClearAdmin=t.MsgUpdateAdminResponse=t.MsgUpdateAdmin=t.MsgMigrateContractResponse=t.MsgMigrateContract=t.MsgExecuteContractResponse=t.MsgExecuteContract=t.MsgInstantiateContractResponse=t.MsgInstantiateContract=t.MsgStoreCodeResponse=t.MsgStoreCode=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(9374),s=n(891);t.protobufPackage="cosmwasm.wasm.v1";const c={sender:""};t.MsgStoreCode={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),0!==e.wasmByteCode.length&&t.uint32(18).bytes(e.wasmByteCode),void 0!==e.instantiatePermission&&a.AccessConfig.encode(e.instantiatePermission,t.uint32(42).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.wasmByteCode=new Uint8Array;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.wasmByteCode=n.bytes();break;case 5:o.instantiatePermission=a.AccessConfig.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.wasmByteCode=void 0!==e.wasmByteCode&&null!==e.wasmByteCode?C(e.wasmByteCode):new Uint8Array,t.instantiatePermission=void 0!==e.instantiatePermission&&null!==e.instantiatePermission?a.AccessConfig.fromJSON(e.instantiatePermission):void 0,t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.wasmByteCode&&(t.wasmByteCode=w(void 0!==e.wasmByteCode?e.wasmByteCode:new Uint8Array)),void 0!==e.instantiatePermission&&(t.instantiatePermission=e.instantiatePermission?a.AccessConfig.toJSON(e.instantiatePermission):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.sender=null!==(t=e.sender)&&void 0!==t?t:"",r.wasmByteCode=null!==(n=e.wasmByteCode)&&void 0!==n?n:new Uint8Array,r.instantiatePermission=void 0!==e.instantiatePermission&&null!==e.instantiatePermission?a.AccessConfig.fromPartial(e.instantiatePermission):void 0,r}};const d={codeId:o.default.UZERO};t.MsgStoreCodeResponse={encode:(e,t=i.default.Writer.create())=>(e.codeId.isZero()||t.uint32(8).uint64(e.codeId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.codeId=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,t}};const u={sender:"",admin:"",codeId:o.default.UZERO,label:""};t.MsgInstantiateContract={encode(e,t=i.default.Writer.create()){""!==e.sender&&t.uint32(10).string(e.sender),""!==e.admin&&t.uint32(18).string(e.admin),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),""!==e.label&&t.uint32(34).string(e.label),0!==e.msg.length&&t.uint32(42).bytes(e.msg);for(const n of e.funds)s.Coin.encode(n,t.uint32(50).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.funds=[],o.msg=new Uint8Array;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.admin=n.string();break;case 3:o.codeId=n.uint64();break;case 4:o.label=n.string();break;case 5:o.msg=n.bytes();break;case 6:o.funds.push(s.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",n.admin=void 0!==e.admin&&null!==e.admin?String(e.admin):"",n.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,n.label=void 0!==e.label&&null!==e.label?String(e.label):"",n.msg=void 0!==e.msg&&null!==e.msg?C(e.msg):new Uint8Array,n.funds=(null!==(t=e.funds)&&void 0!==t?t:[]).map((e=>s.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.admin&&(t.admin=e.admin),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.label&&(t.label=e.label),void 0!==e.msg&&(t.msg=w(void 0!==e.msg?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map((e=>e?s.Coin.toJSON(e):void 0)):t.funds=[],t},fromPartial(e){var t,n,r,i,a;const c=Object.assign({},u);return c.sender=null!==(t=e.sender)&&void 0!==t?t:"",c.admin=null!==(n=e.admin)&&void 0!==n?n:"",c.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,c.label=null!==(r=e.label)&&void 0!==r?r:"",c.msg=null!==(i=e.msg)&&void 0!==i?i:new Uint8Array,c.funds=(null===(a=e.funds)||void 0===a?void 0:a.map((e=>s.Coin.fromPartial(e))))||[],c}};const l={address:""};t.MsgInstantiateContractResponse={encode:(e,t=i.default.Writer.create())=>(""!==e.address&&t.uint32(10).string(e.address),0!==e.data.length&&t.uint32(18).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.data=new Uint8Array;n.pos>>3){case 1:o.address=n.string();break;case 2:o.data=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t.data=void 0!==e.data&&null!==e.data?C(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=e.address),void 0!==e.data&&(t.data=w(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},l);return r.address=null!==(t=e.address)&&void 0!==t?t:"",r.data=null!==(n=e.data)&&void 0!==n?n:new Uint8Array,r}};const A={sender:"",contract:""};t.MsgExecuteContract={encode(e,t=i.default.Writer.create()){""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(18).string(e.contract),0!==e.msg.length&&t.uint32(26).bytes(e.msg);for(const n of e.funds)s.Coin.encode(n,t.uint32(42).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.funds=[],o.msg=new Uint8Array;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.contract=n.string();break;case 3:o.msg=n.bytes();break;case 5:o.funds.push(s.Coin.decode(n,n.uint32()));break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",n.contract=void 0!==e.contract&&null!==e.contract?String(e.contract):"",n.msg=void 0!==e.msg&&null!==e.msg?C(e.msg):new Uint8Array,n.funds=(null!==(t=e.funds)&&void 0!==t?t:[]).map((e=>s.Coin.fromJSON(e))),n},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.msg&&(t.msg=w(void 0!==e.msg?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map((e=>e?s.Coin.toJSON(e):void 0)):t.funds=[],t},fromPartial(e){var t,n,r,o;const i=Object.assign({},A);return i.sender=null!==(t=e.sender)&&void 0!==t?t:"",i.contract=null!==(n=e.contract)&&void 0!==n?n:"",i.msg=null!==(r=e.msg)&&void 0!==r?r:new Uint8Array,i.funds=(null===(o=e.funds)||void 0===o?void 0:o.map((e=>s.Coin.fromPartial(e))))||[],i}};const f={};t.MsgExecuteContractResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.data=new Uint8Array;n.pos>>3==1?o.data=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.data=void 0!==e.data&&null!==e.data?C(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=w(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},f);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n}};const h={sender:"",contract:"",codeId:o.default.UZERO};t.MsgMigrateContract={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(18).string(e.contract),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),0!==e.msg.length&&t.uint32(34).bytes(e.msg),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.msg=new Uint8Array;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.contract=n.string();break;case 3:o.codeId=n.uint64();break;case 4:o.msg=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.contract=void 0!==e.contract&&null!==e.contract?String(e.contract):"",t.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,t.msg=void 0!==e.msg&&null!==e.msg?C(e.msg):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),void 0!==e.codeId&&(t.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.msg&&(t.msg=w(void 0!==e.msg?e.msg:new Uint8Array)),t},fromPartial(e){var t,n,r;const i=Object.assign({},h);return i.sender=null!==(t=e.sender)&&void 0!==t?t:"",i.contract=null!==(n=e.contract)&&void 0!==n?n:"",i.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,i.msg=null!==(r=e.msg)&&void 0!==r?r:new Uint8Array,i}};const p={};t.MsgMigrateContractResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.data=new Uint8Array;n.pos>>3==1?o.data=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},p);return t.data=void 0!==e.data&&null!==e.data?C(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=w(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},p);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n}};const g={sender:"",newAdmin:"",contract:""};t.MsgUpdateAdmin={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.newAdmin&&t.uint32(18).string(e.newAdmin),""!==e.contract&&t.uint32(26).string(e.contract),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.sender=n.string();break;case 2:o.newAdmin=n.string();break;case 3:o.contract=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.newAdmin=void 0!==e.newAdmin&&null!==e.newAdmin?String(e.newAdmin):"",t.contract=void 0!==e.contract&&null!==e.contract?String(e.contract):"",t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.newAdmin&&(t.newAdmin=e.newAdmin),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){var t,n,r;const o=Object.assign({},g);return o.sender=null!==(t=e.sender)&&void 0!==t?t:"",o.newAdmin=null!==(n=e.newAdmin)&&void 0!==n?n:"",o.contract=null!==(r=e.contract)&&void 0!==r?r:"",o}};const m={};t.MsgUpdateAdminResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const v={sender:"",contract:""};t.MsgClearAdmin={encode:(e,t=i.default.Writer.create())=>(""!==e.sender&&t.uint32(10).string(e.sender),""!==e.contract&&t.uint32(26).string(e.contract),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.sender=n.string();break;case 3:o.contract=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.contract=void 0!==e.contract&&null!==e.contract?String(e.contract):"",t},toJSON(e){const t={};return void 0!==e.sender&&(t.sender=e.sender),void 0!==e.contract&&(t.contract=e.contract),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.sender=null!==(t=e.sender)&&void 0!==t?t:"",r.contract=null!==(n=e.contract)&&void 0!==n?n:"",r}};const y={};t.MsgClearAdminResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.posObject.assign({},y),toJSON:e=>({}),fromPartial:e=>Object.assign({},y)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.StoreCode=this.StoreCode.bind(this),this.InstantiateContract=this.InstantiateContract.bind(this),this.ExecuteContract=this.ExecuteContract.bind(this),this.MigrateContract=this.MigrateContract.bind(this),this.UpdateAdmin=this.UpdateAdmin.bind(this),this.ClearAdmin=this.ClearAdmin.bind(this)}StoreCode(e){const n=t.MsgStoreCode.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","StoreCode",n).then((e=>t.MsgStoreCodeResponse.decode(new i.default.Reader(e))))}InstantiateContract(e){const n=t.MsgInstantiateContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","InstantiateContract",n).then((e=>t.MsgInstantiateContractResponse.decode(new i.default.Reader(e))))}ExecuteContract(e){const n=t.MsgExecuteContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","ExecuteContract",n).then((e=>t.MsgExecuteContractResponse.decode(new i.default.Reader(e))))}MigrateContract(e){const n=t.MsgMigrateContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","MigrateContract",n).then((e=>t.MsgMigrateContractResponse.decode(new i.default.Reader(e))))}UpdateAdmin(e){const n=t.MsgUpdateAdmin.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","UpdateAdmin",n).then((e=>t.MsgUpdateAdminResponse.decode(new i.default.Reader(e))))}ClearAdmin(e){const n=t.MsgClearAdmin.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","ClearAdmin",n).then((e=>t.MsgClearAdminResponse.decode(new i.default.Reader(e))))}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const I=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary"));function C(e){const t=I(e),n=new Uint8Array(t.length);for(let e=0;eb.Buffer.from(e,"binary").toString("base64"));function w(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return E(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9374:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Model=t.AbsoluteTxPosition=t.ContractCodeHistoryEntry=t.ContractInfo=t.CodeInfo=t.Params=t.AccessConfig=t.AccessTypeParam=t.contractCodeHistoryOperationTypeToJSON=t.contractCodeHistoryOperationTypeFromJSON=t.ContractCodeHistoryOperationType=t.accessTypeToJSON=t.accessTypeFromJSON=t.AccessType=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);var s,c;function d(e){switch(e){case 0:case"ACCESS_TYPE_UNSPECIFIED":return s.ACCESS_TYPE_UNSPECIFIED;case 1:case"ACCESS_TYPE_NOBODY":return s.ACCESS_TYPE_NOBODY;case 2:case"ACCESS_TYPE_ONLY_ADDRESS":return s.ACCESS_TYPE_ONLY_ADDRESS;case 3:case"ACCESS_TYPE_EVERYBODY":return s.ACCESS_TYPE_EVERYBODY;default:return s.UNRECOGNIZED}}function u(e){switch(e){case s.ACCESS_TYPE_UNSPECIFIED:return"ACCESS_TYPE_UNSPECIFIED";case s.ACCESS_TYPE_NOBODY:return"ACCESS_TYPE_NOBODY";case s.ACCESS_TYPE_ONLY_ADDRESS:return"ACCESS_TYPE_ONLY_ADDRESS";case s.ACCESS_TYPE_EVERYBODY:return"ACCESS_TYPE_EVERYBODY";default:return"UNKNOWN"}}function l(e){switch(e){case 0:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED":return c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;case 1:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT":return c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;case 2:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE":return c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;case 3:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS":return c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;default:return c.UNRECOGNIZED}}function A(e){switch(e){case c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED";case c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT";case c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE";case c.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS";default:return"UNKNOWN"}}t.protobufPackage="cosmwasm.wasm.v1",function(e){e[e.ACCESS_TYPE_UNSPECIFIED=0]="ACCESS_TYPE_UNSPECIFIED",e[e.ACCESS_TYPE_NOBODY=1]="ACCESS_TYPE_NOBODY",e[e.ACCESS_TYPE_ONLY_ADDRESS=2]="ACCESS_TYPE_ONLY_ADDRESS",e[e.ACCESS_TYPE_EVERYBODY=3]="ACCESS_TYPE_EVERYBODY",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.AccessType||(t.AccessType={})),t.accessTypeFromJSON=d,t.accessTypeToJSON=u,function(e){e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED=0]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT=1]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE=2]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS=3]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(c=t.ContractCodeHistoryOperationType||(t.ContractCodeHistoryOperationType={})),t.contractCodeHistoryOperationTypeFromJSON=l,t.contractCodeHistoryOperationTypeToJSON=A;const f={value:0};t.AccessTypeParam={encode:(e,t=i.default.Writer.create())=>(0!==e.value&&t.uint32(8).int32(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.value=n.int32():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.value=void 0!==e.value&&null!==e.value?d(e.value):0,t},toJSON(e){const t={};return void 0!==e.value&&(t.value=u(e.value)),t},fromPartial(e){var t;const n=Object.assign({},f);return n.value=null!==(t=e.value)&&void 0!==t?t:0,n}};const h={permission:0,address:""};t.AccessConfig={encode:(e,t=i.default.Writer.create())=>(0!==e.permission&&t.uint32(8).int32(e.permission),""!==e.address&&t.uint32(18).string(e.address),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.permission=n.int32();break;case 2:o.address=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.permission=void 0!==e.permission&&null!==e.permission?d(e.permission):0,t.address=void 0!==e.address&&null!==e.address?String(e.address):"",t},toJSON(e){const t={};return void 0!==e.permission&&(t.permission=u(e.permission)),void 0!==e.address&&(t.address=e.address),t},fromPartial(e){var t,n;const r=Object.assign({},h);return r.permission=null!==(t=e.permission)&&void 0!==t?t:0,r.address=null!==(n=e.address)&&void 0!==n?n:"",r}};const p={instantiateDefaultPermission:0,maxWasmCodeSize:o.default.UZERO};t.Params={encode:(e,n=i.default.Writer.create())=>(void 0!==e.codeUploadAccess&&t.AccessConfig.encode(e.codeUploadAccess,n.uint32(10).fork()).ldelim(),0!==e.instantiateDefaultPermission&&n.uint32(16).int32(e.instantiateDefaultPermission),e.maxWasmCodeSize.isZero()||n.uint32(24).uint64(e.maxWasmCodeSize),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},p);for(;r.pos>>3){case 1:a.codeUploadAccess=t.AccessConfig.decode(r,r.uint32());break;case 2:a.instantiateDefaultPermission=r.int32();break;case 3:a.maxWasmCodeSize=r.uint64();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},p);return n.codeUploadAccess=void 0!==e.codeUploadAccess&&null!==e.codeUploadAccess?t.AccessConfig.fromJSON(e.codeUploadAccess):void 0,n.instantiateDefaultPermission=void 0!==e.instantiateDefaultPermission&&null!==e.instantiateDefaultPermission?d(e.instantiateDefaultPermission):0,n.maxWasmCodeSize=void 0!==e.maxWasmCodeSize&&null!==e.maxWasmCodeSize?o.default.fromString(e.maxWasmCodeSize):o.default.UZERO,n},toJSON(e){const n={};return void 0!==e.codeUploadAccess&&(n.codeUploadAccess=e.codeUploadAccess?t.AccessConfig.toJSON(e.codeUploadAccess):void 0),void 0!==e.instantiateDefaultPermission&&(n.instantiateDefaultPermission=u(e.instantiateDefaultPermission)),void 0!==e.maxWasmCodeSize&&(n.maxWasmCodeSize=(e.maxWasmCodeSize||o.default.UZERO).toString()),n},fromPartial(e){var n;const r=Object.assign({},p);return r.codeUploadAccess=void 0!==e.codeUploadAccess&&null!==e.codeUploadAccess?t.AccessConfig.fromPartial(e.codeUploadAccess):void 0,r.instantiateDefaultPermission=null!==(n=e.instantiateDefaultPermission)&&void 0!==n?n:0,r.maxWasmCodeSize=void 0!==e.maxWasmCodeSize&&null!==e.maxWasmCodeSize?o.default.fromValue(e.maxWasmCodeSize):o.default.UZERO,r}};const g={creator:""};t.CodeInfo={encode:(e,n=i.default.Writer.create())=>(0!==e.codeHash.length&&n.uint32(10).bytes(e.codeHash),""!==e.creator&&n.uint32(18).string(e.creator),void 0!==e.instantiateConfig&&t.AccessConfig.encode(e.instantiateConfig,n.uint32(42).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},g);for(a.codeHash=new Uint8Array;r.pos>>3){case 1:a.codeHash=r.bytes();break;case 2:a.creator=r.string();break;case 5:a.instantiateConfig=t.AccessConfig.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},g);return n.codeHash=void 0!==e.codeHash&&null!==e.codeHash?E(e.codeHash):new Uint8Array,n.creator=void 0!==e.creator&&null!==e.creator?String(e.creator):"",n.instantiateConfig=void 0!==e.instantiateConfig&&null!==e.instantiateConfig?t.AccessConfig.fromJSON(e.instantiateConfig):void 0,n},toJSON(e){const n={};return void 0!==e.codeHash&&(n.codeHash=B(void 0!==e.codeHash?e.codeHash:new Uint8Array)),void 0!==e.creator&&(n.creator=e.creator),void 0!==e.instantiateConfig&&(n.instantiateConfig=e.instantiateConfig?t.AccessConfig.toJSON(e.instantiateConfig):void 0),n},fromPartial(e){var n,r;const o=Object.assign({},g);return o.codeHash=null!==(n=e.codeHash)&&void 0!==n?n:new Uint8Array,o.creator=null!==(r=e.creator)&&void 0!==r?r:"",o.instantiateConfig=void 0!==e.instantiateConfig&&null!==e.instantiateConfig?t.AccessConfig.fromPartial(e.instantiateConfig):void 0,o}};const m={codeId:o.default.UZERO,creator:"",admin:"",label:"",ibcPortId:""};t.ContractInfo={encode:(e,n=i.default.Writer.create())=>(e.codeId.isZero()||n.uint32(8).uint64(e.codeId),""!==e.creator&&n.uint32(18).string(e.creator),""!==e.admin&&n.uint32(26).string(e.admin),""!==e.label&&n.uint32(34).string(e.label),void 0!==e.created&&t.AbsoluteTxPosition.encode(e.created,n.uint32(42).fork()).ldelim(),""!==e.ibcPortId&&n.uint32(50).string(e.ibcPortId),void 0!==e.extension&&a.Any.encode(e.extension,n.uint32(58).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},m);for(;r.pos>>3){case 1:s.codeId=r.uint64();break;case 2:s.creator=r.string();break;case 3:s.admin=r.string();break;case 4:s.label=r.string();break;case 5:s.created=t.AbsoluteTxPosition.decode(r,r.uint32());break;case 6:s.ibcPortId=r.string();break;case 7:s.extension=a.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},m);return n.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,n.creator=void 0!==e.creator&&null!==e.creator?String(e.creator):"",n.admin=void 0!==e.admin&&null!==e.admin?String(e.admin):"",n.label=void 0!==e.label&&null!==e.label?String(e.label):"",n.created=void 0!==e.created&&null!==e.created?t.AbsoluteTxPosition.fromJSON(e.created):void 0,n.ibcPortId=void 0!==e.ibcPortId&&null!==e.ibcPortId?String(e.ibcPortId):"",n.extension=void 0!==e.extension&&null!==e.extension?a.Any.fromJSON(e.extension):void 0,n},toJSON(e){const n={};return void 0!==e.codeId&&(n.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.creator&&(n.creator=e.creator),void 0!==e.admin&&(n.admin=e.admin),void 0!==e.label&&(n.label=e.label),void 0!==e.created&&(n.created=e.created?t.AbsoluteTxPosition.toJSON(e.created):void 0),void 0!==e.ibcPortId&&(n.ibcPortId=e.ibcPortId),void 0!==e.extension&&(n.extension=e.extension?a.Any.toJSON(e.extension):void 0),n},fromPartial(e){var n,r,i,s;const c=Object.assign({},m);return c.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,c.creator=null!==(n=e.creator)&&void 0!==n?n:"",c.admin=null!==(r=e.admin)&&void 0!==r?r:"",c.label=null!==(i=e.label)&&void 0!==i?i:"",c.created=void 0!==e.created&&null!==e.created?t.AbsoluteTxPosition.fromPartial(e.created):void 0,c.ibcPortId=null!==(s=e.ibcPortId)&&void 0!==s?s:"",c.extension=void 0!==e.extension&&null!==e.extension?a.Any.fromPartial(e.extension):void 0,c}};const v={operation:0,codeId:o.default.UZERO};t.ContractCodeHistoryEntry={encode:(e,n=i.default.Writer.create())=>(0!==e.operation&&n.uint32(8).int32(e.operation),e.codeId.isZero()||n.uint32(16).uint64(e.codeId),void 0!==e.updated&&t.AbsoluteTxPosition.encode(e.updated,n.uint32(26).fork()).ldelim(),0!==e.msg.length&&n.uint32(34).bytes(e.msg),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},v);for(a.msg=new Uint8Array;r.pos>>3){case 1:a.operation=r.int32();break;case 2:a.codeId=r.uint64();break;case 3:a.updated=t.AbsoluteTxPosition.decode(r,r.uint32());break;case 4:a.msg=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},v);return n.operation=void 0!==e.operation&&null!==e.operation?l(e.operation):0,n.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromString(e.codeId):o.default.UZERO,n.updated=void 0!==e.updated&&null!==e.updated?t.AbsoluteTxPosition.fromJSON(e.updated):void 0,n.msg=void 0!==e.msg&&null!==e.msg?E(e.msg):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.operation&&(n.operation=A(e.operation)),void 0!==e.codeId&&(n.codeId=(e.codeId||o.default.UZERO).toString()),void 0!==e.updated&&(n.updated=e.updated?t.AbsoluteTxPosition.toJSON(e.updated):void 0),void 0!==e.msg&&(n.msg=B(void 0!==e.msg?e.msg:new Uint8Array)),n},fromPartial(e){var n,r;const i=Object.assign({},v);return i.operation=null!==(n=e.operation)&&void 0!==n?n:0,i.codeId=void 0!==e.codeId&&null!==e.codeId?o.default.fromValue(e.codeId):o.default.UZERO,i.updated=void 0!==e.updated&&null!==e.updated?t.AbsoluteTxPosition.fromPartial(e.updated):void 0,i.msg=null!==(r=e.msg)&&void 0!==r?r:new Uint8Array,i}};const y={blockHeight:o.default.UZERO,txIndex:o.default.UZERO};t.AbsoluteTxPosition={encode:(e,t=i.default.Writer.create())=>(e.blockHeight.isZero()||t.uint32(8).uint64(e.blockHeight),e.txIndex.isZero()||t.uint32(16).uint64(e.txIndex),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.pos>>3){case 1:o.blockHeight=n.uint64();break;case 2:o.txIndex=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.blockHeight=void 0!==e.blockHeight&&null!==e.blockHeight?o.default.fromString(e.blockHeight):o.default.UZERO,t.txIndex=void 0!==e.txIndex&&null!==e.txIndex?o.default.fromString(e.txIndex):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.blockHeight&&(t.blockHeight=(e.blockHeight||o.default.UZERO).toString()),void 0!==e.txIndex&&(t.txIndex=(e.txIndex||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},y);return t.blockHeight=void 0!==e.blockHeight&&null!==e.blockHeight?o.default.fromValue(e.blockHeight):o.default.UZERO,t.txIndex=void 0!==e.txIndex&&null!==e.txIndex?o.default.fromValue(e.txIndex):o.default.UZERO,t}};const b={};t.Model={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),0!==e.value.length&&t.uint32(18).bytes(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.key=new Uint8Array,o.value=new Uint8Array;n.pos>>3){case 1:o.key=n.bytes();break;case 2:o.value=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.key=void 0!==e.key&&null!==e.key?E(e.key):new Uint8Array,t.value=void 0!==e.value&&null!==e.value?E(e.value):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.key&&(t.key=B(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=B(void 0!==e.value?e.value:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,r.value=null!==(n=e.value)&&void 0!==n?n:new Uint8Array,r}};var I=(()=>{if(void 0!==I)return I;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const C=I.atob||(e=>I.Buffer.from(e,"base64").toString("binary"));function E(e){const t=C(e),n=new Uint8Array(t.length);for(let e=0;eI.Buffer.from(e,"binary").toString("base64"));function B(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return w(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3862:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Any=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="google.protobuf";const a={typeUrl:""};t.Any={encode:(e,t=i.default.Writer.create())=>(""!==e.typeUrl&&t.uint32(10).string(e.typeUrl),0!==e.value.length&&t.uint32(18).bytes(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.value=new Uint8Array;n.pos>>3){case 1:o.typeUrl=n.string();break;case 2:o.value=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.typeUrl=void 0!==e.typeUrl&&null!==e.typeUrl?String(e.typeUrl):"",t.value=void 0!==e.value&&null!==e.value?function(e){const t=c(e),n=new Uint8Array(t.length);for(let e=0;e{if(void 0!==s)return s;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const c=s.atob||(e=>s.Buffer.from(e,"base64").toString("binary")),d=s.btoa||(e=>s.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},281:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Duration=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="google.protobuf";const a={seconds:o.default.ZERO,nanos:0};t.Duration={encode:(e,t=i.default.Writer.create())=>(e.seconds.isZero()||t.uint32(8).int64(e.seconds),0!==e.nanos&&t.uint32(16).int32(e.nanos),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.seconds=n.int64();break;case 2:o.nanos=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.seconds=void 0!==e.seconds&&null!==e.seconds?o.default.fromString(e.seconds):o.default.ZERO,t.nanos=void 0!==e.nanos&&null!==e.nanos?Number(e.nanos):0,t},toJSON(e){const t={};return void 0!==e.seconds&&(t.seconds=(e.seconds||o.default.ZERO).toString()),void 0!==e.nanos&&(t.nanos=e.nanos),t},fromPartial(e){var t;const n=Object.assign({},a);return n.seconds=void 0!==e.seconds&&null!==e.seconds?o.default.fromValue(e.seconds):o.default.ZERO,n.nanos=null!==(t=e.nanos)&&void 0!==t?t:0,n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5522:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Timestamp=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="google.protobuf";const a={seconds:o.default.ZERO,nanos:0};t.Timestamp={encode:(e,t=i.default.Writer.create())=>(e.seconds.isZero()||t.uint32(8).int64(e.seconds),0!==e.nanos&&t.uint32(16).int32(e.nanos),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.seconds=n.int64();break;case 2:o.nanos=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.seconds=void 0!==e.seconds&&null!==e.seconds?o.default.fromString(e.seconds):o.default.ZERO,t.nanos=void 0!==e.nanos&&null!==e.nanos?Number(e.nanos):0,t},toJSON(e){const t={};return void 0!==e.seconds&&(t.seconds=(e.seconds||o.default.ZERO).toString()),void 0!==e.nanos&&(t.nanos=e.nanos),t},fromPartial(e){var t;const n=Object.assign({},a);return n.seconds=void 0!==e.seconds&&null!==e.seconds?o.default.fromValue(e.seconds):o.default.ZERO,n.nanos=null!==(t=e.nanos)&&void 0!==t?t:0,n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5892:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryParamsResponse=t.QueryParamsRequest=t.QueryDenomTracesResponse=t.QueryDenomTracesRequest=t.QueryDenomTraceResponse=t.QueryDenomTraceRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1417),s=n(9551);t.protobufPackage="ibc.applications.transfer.v1";const c={hash:""};t.QueryDenomTraceRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.hash&&t.uint32(10).string(e.hash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3==1?o.hash=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.hash=void 0!==e.hash&&null!==e.hash?String(e.hash):"",t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=e.hash),t},fromPartial(e){var t;const n=Object.assign({},c);return n.hash=null!==(t=e.hash)&&void 0!==t?t:"",n}};const d={};t.QueryDenomTraceResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.denomTrace&&a.DenomTrace.encode(e.denomTrace,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.denomTrace=a.DenomTrace.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.denomTrace=void 0!==e.denomTrace&&null!==e.denomTrace?a.DenomTrace.fromJSON(e.denomTrace):void 0,t},toJSON(e){const t={};return void 0!==e.denomTrace&&(t.denomTrace=e.denomTrace?a.DenomTrace.toJSON(e.denomTrace):void 0),t},fromPartial(e){const t=Object.assign({},d);return t.denomTrace=void 0!==e.denomTrace&&null!==e.denomTrace?a.DenomTrace.fromPartial(e.denomTrace):void 0,t}};const u={};t.QueryDenomTracesRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&s.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.pagination=s.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?s.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},u);return t.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageRequest.fromPartial(e.pagination):void 0,t}};const l={};t.QueryDenomTracesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.denomTraces)a.DenomTrace.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&s.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.denomTraces=[];n.pos>>3){case 1:o.denomTraces.push(a.DenomTrace.decode(n,n.uint32()));break;case 2:o.pagination=s.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.denomTraces=(null!==(t=e.denomTraces)&&void 0!==t?t:[]).map((e=>a.DenomTrace.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.denomTraces?t.denomTraces=e.denomTraces.map((e=>e?a.DenomTrace.toJSON(e):void 0)):t.denomTraces=[],void 0!==e.pagination&&(t.pagination=e.pagination?s.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.denomTraces=(null===(t=e.denomTraces)||void 0===t?void 0:t.map((e=>a.DenomTrace.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?s.PageResponse.fromPartial(e.pagination):void 0,n}};const A={};t.QueryParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={};t.QueryParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&a.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3==1?o.params=a.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},f);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?a.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},f);return t.params=void 0!==e.params&&null!==e.params?a.Params.fromPartial(e.params):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.DenomTrace=this.DenomTrace.bind(this),this.DenomTraces=this.DenomTraces.bind(this),this.Params=this.Params.bind(this)}DenomTrace(e){const n=t.QueryDenomTraceRequest.encode(e).finish();return this.rpc.request("ibc.applications.transfer.v1.Query","DenomTrace",n).then((e=>t.QueryDenomTraceResponse.decode(new i.default.Reader(e))))}DenomTraces(e){const n=t.QueryDenomTracesRequest.encode(e).finish();return this.rpc.request("ibc.applications.transfer.v1.Query","DenomTraces",n).then((e=>t.QueryDenomTracesResponse.decode(new i.default.Reader(e))))}Params(e){const n=t.QueryParamsRequest.encode(e).finish();return this.rpc.request("ibc.applications.transfer.v1.Query","Params",n).then((e=>t.QueryParamsResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1417:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.DenomTrace=t.FungibleTokenPacketData=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="ibc.applications.transfer.v1";const a={denom:"",amount:o.default.UZERO,sender:"",receiver:""};t.FungibleTokenPacketData={encode:(e,t=i.default.Writer.create())=>(""!==e.denom&&t.uint32(10).string(e.denom),e.amount.isZero()||t.uint32(16).uint64(e.amount),""!==e.sender&&t.uint32(26).string(e.sender),""!==e.receiver&&t.uint32(34).string(e.receiver),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.denom=n.string();break;case 2:o.amount=n.uint64();break;case 3:o.sender=n.string();break;case 4:o.receiver=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.denom=void 0!==e.denom&&null!==e.denom?String(e.denom):"",t.amount=void 0!==e.amount&&null!==e.amount?o.default.fromString(e.amount):o.default.UZERO,t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.receiver=void 0!==e.receiver&&null!==e.receiver?String(e.receiver):"",t},toJSON(e){const t={};return void 0!==e.denom&&(t.denom=e.denom),void 0!==e.amount&&(t.amount=(e.amount||o.default.UZERO).toString()),void 0!==e.sender&&(t.sender=e.sender),void 0!==e.receiver&&(t.receiver=e.receiver),t},fromPartial(e){var t,n,r;const i=Object.assign({},a);return i.denom=null!==(t=e.denom)&&void 0!==t?t:"",i.amount=void 0!==e.amount&&null!==e.amount?o.default.fromValue(e.amount):o.default.UZERO,i.sender=null!==(n=e.sender)&&void 0!==n?n:"",i.receiver=null!==(r=e.receiver)&&void 0!==r?r:"",i}};const s={path:"",baseDenom:""};t.DenomTrace={encode:(e,t=i.default.Writer.create())=>(""!==e.path&&t.uint32(10).string(e.path),""!==e.baseDenom&&t.uint32(18).string(e.baseDenom),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.path=n.string();break;case 2:o.baseDenom=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.path=void 0!==e.path&&null!==e.path?String(e.path):"",t.baseDenom=void 0!==e.baseDenom&&null!==e.baseDenom?String(e.baseDenom):"",t},toJSON(e){const t={};return void 0!==e.path&&(t.path=e.path),void 0!==e.baseDenom&&(t.baseDenom=e.baseDenom),t},fromPartial(e){var t,n;const r=Object.assign({},s);return r.path=null!==(t=e.path)&&void 0!==t?t:"",r.baseDenom=null!==(n=e.baseDenom)&&void 0!==n?n:"",r}};const c={sendEnabled:!1,receiveEnabled:!1};t.Params={encode:(e,t=i.default.Writer.create())=>(!0===e.sendEnabled&&t.uint32(8).bool(e.sendEnabled),!0===e.receiveEnabled&&t.uint32(16).bool(e.receiveEnabled),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.sendEnabled=n.bool();break;case 2:o.receiveEnabled=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.sendEnabled=void 0!==e.sendEnabled&&null!==e.sendEnabled&&Boolean(e.sendEnabled),t.receiveEnabled=void 0!==e.receiveEnabled&&null!==e.receiveEnabled&&Boolean(e.receiveEnabled),t},toJSON(e){const t={};return void 0!==e.sendEnabled&&(t.sendEnabled=e.sendEnabled),void 0!==e.receiveEnabled&&(t.receiveEnabled=e.receiveEnabled),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.sendEnabled=null!==(t=e.sendEnabled)&&void 0!==t&&t,r.receiveEnabled=null!==(n=e.receiveEnabled)&&void 0!==n&&n,r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9385:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgTransferResponse=t.MsgTransfer=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(891),s=n(5022);t.protobufPackage="ibc.applications.transfer.v1";const c={sourcePort:"",sourceChannel:"",sender:"",receiver:"",timeoutTimestamp:o.default.UZERO};t.MsgTransfer={encode:(e,t=i.default.Writer.create())=>(""!==e.sourcePort&&t.uint32(10).string(e.sourcePort),""!==e.sourceChannel&&t.uint32(18).string(e.sourceChannel),void 0!==e.token&&a.Coin.encode(e.token,t.uint32(26).fork()).ldelim(),""!==e.sender&&t.uint32(34).string(e.sender),""!==e.receiver&&t.uint32(42).string(e.receiver),void 0!==e.timeoutHeight&&s.Height.encode(e.timeoutHeight,t.uint32(50).fork()).ldelim(),e.timeoutTimestamp.isZero()||t.uint32(56).uint64(e.timeoutTimestamp),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.sourcePort=n.string();break;case 2:o.sourceChannel=n.string();break;case 3:o.token=a.Coin.decode(n,n.uint32());break;case 4:o.sender=n.string();break;case 5:o.receiver=n.string();break;case 6:o.timeoutHeight=s.Height.decode(n,n.uint32());break;case 7:o.timeoutTimestamp=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.sourcePort=void 0!==e.sourcePort&&null!==e.sourcePort?String(e.sourcePort):"",t.sourceChannel=void 0!==e.sourceChannel&&null!==e.sourceChannel?String(e.sourceChannel):"",t.token=void 0!==e.token&&null!==e.token?a.Coin.fromJSON(e.token):void 0,t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t.receiver=void 0!==e.receiver&&null!==e.receiver?String(e.receiver):"",t.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?s.Height.fromJSON(e.timeoutHeight):void 0,t.timeoutTimestamp=void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?o.default.fromString(e.timeoutTimestamp):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.sourcePort&&(t.sourcePort=e.sourcePort),void 0!==e.sourceChannel&&(t.sourceChannel=e.sourceChannel),void 0!==e.token&&(t.token=e.token?a.Coin.toJSON(e.token):void 0),void 0!==e.sender&&(t.sender=e.sender),void 0!==e.receiver&&(t.receiver=e.receiver),void 0!==e.timeoutHeight&&(t.timeoutHeight=e.timeoutHeight?s.Height.toJSON(e.timeoutHeight):void 0),void 0!==e.timeoutTimestamp&&(t.timeoutTimestamp=(e.timeoutTimestamp||o.default.UZERO).toString()),t},fromPartial(e){var t,n,r,i;const d=Object.assign({},c);return d.sourcePort=null!==(t=e.sourcePort)&&void 0!==t?t:"",d.sourceChannel=null!==(n=e.sourceChannel)&&void 0!==n?n:"",d.token=void 0!==e.token&&null!==e.token?a.Coin.fromPartial(e.token):void 0,d.sender=null!==(r=e.sender)&&void 0!==r?r:"",d.receiver=null!==(i=e.receiver)&&void 0!==i?i:"",d.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?s.Height.fromPartial(e.timeoutHeight):void 0,d.timeoutTimestamp=void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?o.default.fromValue(e.timeoutTimestamp):o.default.UZERO,d}};const d={};t.MsgTransferResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.Transfer=this.Transfer.bind(this)}Transfer(e){const n=t.MsgTransfer.encode(e).finish();return this.rpc.request("ibc.applications.transfer.v1.Msg","Transfer",n).then((e=>t.MsgTransferResponse.decode(new i.default.Reader(e))))}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1787:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Acknowledgement=t.PacketState=t.Packet=t.Counterparty=t.IdentifiedChannel=t.Channel=t.orderToJSON=t.orderFromJSON=t.Order=t.stateToJSON=t.stateFromJSON=t.State=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5022);var s,c;function d(e){switch(e){case 0:case"STATE_UNINITIALIZED_UNSPECIFIED":return s.STATE_UNINITIALIZED_UNSPECIFIED;case 1:case"STATE_INIT":return s.STATE_INIT;case 2:case"STATE_TRYOPEN":return s.STATE_TRYOPEN;case 3:case"STATE_OPEN":return s.STATE_OPEN;case 4:case"STATE_CLOSED":return s.STATE_CLOSED;default:return s.UNRECOGNIZED}}function u(e){switch(e){case s.STATE_UNINITIALIZED_UNSPECIFIED:return"STATE_UNINITIALIZED_UNSPECIFIED";case s.STATE_INIT:return"STATE_INIT";case s.STATE_TRYOPEN:return"STATE_TRYOPEN";case s.STATE_OPEN:return"STATE_OPEN";case s.STATE_CLOSED:return"STATE_CLOSED";default:return"UNKNOWN"}}function l(e){switch(e){case 0:case"ORDER_NONE_UNSPECIFIED":return c.ORDER_NONE_UNSPECIFIED;case 1:case"ORDER_UNORDERED":return c.ORDER_UNORDERED;case 2:case"ORDER_ORDERED":return c.ORDER_ORDERED;default:return c.UNRECOGNIZED}}function A(e){switch(e){case c.ORDER_NONE_UNSPECIFIED:return"ORDER_NONE_UNSPECIFIED";case c.ORDER_UNORDERED:return"ORDER_UNORDERED";case c.ORDER_ORDERED:return"ORDER_ORDERED";default:return"UNKNOWN"}}t.protobufPackage="ibc.core.channel.v1",function(e){e[e.STATE_UNINITIALIZED_UNSPECIFIED=0]="STATE_UNINITIALIZED_UNSPECIFIED",e[e.STATE_INIT=1]="STATE_INIT",e[e.STATE_TRYOPEN=2]="STATE_TRYOPEN",e[e.STATE_OPEN=3]="STATE_OPEN",e[e.STATE_CLOSED=4]="STATE_CLOSED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.State||(t.State={})),t.stateFromJSON=d,t.stateToJSON=u,function(e){e[e.ORDER_NONE_UNSPECIFIED=0]="ORDER_NONE_UNSPECIFIED",e[e.ORDER_UNORDERED=1]="ORDER_UNORDERED",e[e.ORDER_ORDERED=2]="ORDER_ORDERED",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(c=t.Order||(t.Order={})),t.orderFromJSON=l,t.orderToJSON=A;const f={state:0,ordering:0,connectionHops:"",version:""};t.Channel={encode(e,n=i.default.Writer.create()){0!==e.state&&n.uint32(8).int32(e.state),0!==e.ordering&&n.uint32(16).int32(e.ordering),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,n.uint32(26).fork()).ldelim();for(const t of e.connectionHops)n.uint32(34).string(t);return""!==e.version&&n.uint32(42).string(e.version),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},f);for(a.connectionHops=[];r.pos>>3){case 1:a.state=r.int32();break;case 2:a.ordering=r.int32();break;case 3:a.counterparty=t.Counterparty.decode(r,r.uint32());break;case 4:a.connectionHops.push(r.string());break;case 5:a.version=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},f);return r.state=void 0!==e.state&&null!==e.state?d(e.state):0,r.ordering=void 0!==e.ordering&&null!==e.ordering?l(e.ordering):0,r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromJSON(e.counterparty):void 0,r.connectionHops=(null!==(n=e.connectionHops)&&void 0!==n?n:[]).map((e=>String(e))),r.version=void 0!==e.version&&null!==e.version?String(e.version):"",r},toJSON(e){const n={};return void 0!==e.state&&(n.state=u(e.state)),void 0!==e.ordering&&(n.ordering=A(e.ordering)),void 0!==e.counterparty&&(n.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),e.connectionHops?n.connectionHops=e.connectionHops.map((e=>e)):n.connectionHops=[],void 0!==e.version&&(n.version=e.version),n},fromPartial(e){var n,r,o,i;const a=Object.assign({},f);return a.state=null!==(n=e.state)&&void 0!==n?n:0,a.ordering=null!==(r=e.ordering)&&void 0!==r?r:0,a.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromPartial(e.counterparty):void 0,a.connectionHops=(null===(o=e.connectionHops)||void 0===o?void 0:o.map((e=>e)))||[],a.version=null!==(i=e.version)&&void 0!==i?i:"",a}};const h={state:0,ordering:0,connectionHops:"",version:"",portId:"",channelId:""};t.IdentifiedChannel={encode(e,n=i.default.Writer.create()){0!==e.state&&n.uint32(8).int32(e.state),0!==e.ordering&&n.uint32(16).int32(e.ordering),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,n.uint32(26).fork()).ldelim();for(const t of e.connectionHops)n.uint32(34).string(t);return""!==e.version&&n.uint32(42).string(e.version),""!==e.portId&&n.uint32(50).string(e.portId),""!==e.channelId&&n.uint32(58).string(e.channelId),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},h);for(a.connectionHops=[];r.pos>>3){case 1:a.state=r.int32();break;case 2:a.ordering=r.int32();break;case 3:a.counterparty=t.Counterparty.decode(r,r.uint32());break;case 4:a.connectionHops.push(r.string());break;case 5:a.version=r.string();break;case 6:a.portId=r.string();break;case 7:a.channelId=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},h);return r.state=void 0!==e.state&&null!==e.state?d(e.state):0,r.ordering=void 0!==e.ordering&&null!==e.ordering?l(e.ordering):0,r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromJSON(e.counterparty):void 0,r.connectionHops=(null!==(n=e.connectionHops)&&void 0!==n?n:[]).map((e=>String(e))),r.version=void 0!==e.version&&null!==e.version?String(e.version):"",r.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",r.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",r},toJSON(e){const n={};return void 0!==e.state&&(n.state=u(e.state)),void 0!==e.ordering&&(n.ordering=A(e.ordering)),void 0!==e.counterparty&&(n.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),e.connectionHops?n.connectionHops=e.connectionHops.map((e=>e)):n.connectionHops=[],void 0!==e.version&&(n.version=e.version),void 0!==e.portId&&(n.portId=e.portId),void 0!==e.channelId&&(n.channelId=e.channelId),n},fromPartial(e){var n,r,o,i,a,s;const c=Object.assign({},h);return c.state=null!==(n=e.state)&&void 0!==n?n:0,c.ordering=null!==(r=e.ordering)&&void 0!==r?r:0,c.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromPartial(e.counterparty):void 0,c.connectionHops=(null===(o=e.connectionHops)||void 0===o?void 0:o.map((e=>e)))||[],c.version=null!==(i=e.version)&&void 0!==i?i:"",c.portId=null!==(a=e.portId)&&void 0!==a?a:"",c.channelId=null!==(s=e.channelId)&&void 0!==s?s:"",c}};const p={portId:"",channelId:""};t.Counterparty={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r}};const g={sequence:o.default.UZERO,sourcePort:"",sourceChannel:"",destinationPort:"",destinationChannel:"",timeoutTimestamp:o.default.UZERO};t.Packet={encode:(e,t=i.default.Writer.create())=>(e.sequence.isZero()||t.uint32(8).uint64(e.sequence),""!==e.sourcePort&&t.uint32(18).string(e.sourcePort),""!==e.sourceChannel&&t.uint32(26).string(e.sourceChannel),""!==e.destinationPort&&t.uint32(34).string(e.destinationPort),""!==e.destinationChannel&&t.uint32(42).string(e.destinationChannel),0!==e.data.length&&t.uint32(50).bytes(e.data),void 0!==e.timeoutHeight&&a.Height.encode(e.timeoutHeight,t.uint32(58).fork()).ldelim(),e.timeoutTimestamp.isZero()||t.uint32(64).uint64(e.timeoutTimestamp),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.data=new Uint8Array;n.pos>>3){case 1:o.sequence=n.uint64();break;case 2:o.sourcePort=n.string();break;case 3:o.sourceChannel=n.string();break;case 4:o.destinationPort=n.string();break;case 5:o.destinationChannel=n.string();break;case 6:o.data=n.bytes();break;case 7:o.timeoutHeight=a.Height.decode(n,n.uint32());break;case 8:o.timeoutTimestamp=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t.sourcePort=void 0!==e.sourcePort&&null!==e.sourcePort?String(e.sourcePort):"",t.sourceChannel=void 0!==e.sourceChannel&&null!==e.sourceChannel?String(e.sourceChannel):"",t.destinationPort=void 0!==e.destinationPort&&null!==e.destinationPort?String(e.destinationPort):"",t.destinationChannel=void 0!==e.destinationChannel&&null!==e.destinationChannel?String(e.destinationChannel):"",t.data=void 0!==e.data&&null!==e.data?I(e.data):new Uint8Array,t.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?a.Height.fromJSON(e.timeoutHeight):void 0,t.timeoutTimestamp=void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?o.default.fromString(e.timeoutTimestamp):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),void 0!==e.sourcePort&&(t.sourcePort=e.sourcePort),void 0!==e.sourceChannel&&(t.sourceChannel=e.sourceChannel),void 0!==e.destinationPort&&(t.destinationPort=e.destinationPort),void 0!==e.destinationChannel&&(t.destinationChannel=e.destinationChannel),void 0!==e.data&&(t.data=E(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.timeoutHeight&&(t.timeoutHeight=e.timeoutHeight?a.Height.toJSON(e.timeoutHeight):void 0),void 0!==e.timeoutTimestamp&&(t.timeoutTimestamp=(e.timeoutTimestamp||o.default.UZERO).toString()),t},fromPartial(e){var t,n,r,i,s;const c=Object.assign({},g);return c.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,c.sourcePort=null!==(t=e.sourcePort)&&void 0!==t?t:"",c.sourceChannel=null!==(n=e.sourceChannel)&&void 0!==n?n:"",c.destinationPort=null!==(r=e.destinationPort)&&void 0!==r?r:"",c.destinationChannel=null!==(i=e.destinationChannel)&&void 0!==i?i:"",c.data=null!==(s=e.data)&&void 0!==s?s:new Uint8Array,c.timeoutHeight=void 0!==e.timeoutHeight&&null!==e.timeoutHeight?a.Height.fromPartial(e.timeoutHeight):void 0,c.timeoutTimestamp=void 0!==e.timeoutTimestamp&&null!==e.timeoutTimestamp?o.default.fromValue(e.timeoutTimestamp):o.default.UZERO,c}};const m={portId:"",channelId:"",sequence:o.default.UZERO};t.PacketState={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),0!==e.data.length&&t.uint32(34).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.data=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.sequence=n.uint64();break;case 4:o.data=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t.data=void 0!==e.data&&null!==e.data?I(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),void 0!==e.data&&(t.data=E(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t,n,r;const i=Object.assign({},m);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,i.data=null!==(r=e.data)&&void 0!==r?r:new Uint8Array,i}};const v={};t.Acknowledgement={encode:(e,t=i.default.Writer.create())=>(void 0!==e.result&&t.uint32(170).bytes(e.result),void 0!==e.error&&t.uint32(178).string(e.error),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 21:o.result=n.bytes();break;case 22:o.error=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.result=void 0!==e.result&&null!==e.result?I(e.result):void 0,t.error=void 0!==e.error&&null!==e.error?String(e.error):void 0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=void 0!==e.result?E(e.result):void 0),void 0!==e.error&&(t.error=e.error),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.result=null!==(t=e.result)&&void 0!==t?t:void 0,r.error=null!==(n=e.error)&&void 0!==n?n:void 0,r}};var y=(()=>{if(void 0!==y)return y;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const b=y.atob||(e=>y.Buffer.from(e,"base64").toString("binary"));function I(e){const t=b(e),n=new Uint8Array(t.length);for(let e=0;ey.Buffer.from(e,"binary").toString("base64"));function E(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return C(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6688:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryNextSequenceReceiveResponse=t.QueryNextSequenceReceiveRequest=t.QueryUnreceivedAcksResponse=t.QueryUnreceivedAcksRequest=t.QueryUnreceivedPacketsResponse=t.QueryUnreceivedPacketsRequest=t.QueryPacketAcknowledgementsResponse=t.QueryPacketAcknowledgementsRequest=t.QueryPacketAcknowledgementResponse=t.QueryPacketAcknowledgementRequest=t.QueryPacketReceiptResponse=t.QueryPacketReceiptRequest=t.QueryPacketCommitmentsResponse=t.QueryPacketCommitmentsRequest=t.QueryPacketCommitmentResponse=t.QueryPacketCommitmentRequest=t.QueryChannelConsensusStateResponse=t.QueryChannelConsensusStateRequest=t.QueryChannelClientStateResponse=t.QueryChannelClientStateRequest=t.QueryConnectionChannelsResponse=t.QueryConnectionChannelsRequest=t.QueryChannelsResponse=t.QueryChannelsRequest=t.QueryChannelResponse=t.QueryChannelRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1787),s=n(5022),c=n(9551),d=n(3862);t.protobufPackage="ibc.core.channel.v1";const u={portId:"",channelId:""};t.QueryChannelRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){var t,n;const r=Object.assign({},u);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r}};const l={};t.QueryChannelResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.channel&&a.Channel.encode(e.channel,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.channel=a.Channel.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromJSON(e.channel):void 0,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.channel&&(t.channel=e.channel?a.Channel.toJSON(e.channel):void 0),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromPartial(e.channel):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const A={};t.QueryChannelsRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.pagination=c.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,t}};const f={};t.QueryChannelsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.channels)a.IdentifiedChannel.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.channels=[];n.pos>>3){case 1:o.channels.push(a.IdentifiedChannel.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.channels=(null!==(t=e.channels)&&void 0!==t?t:[]).map((e=>a.IdentifiedChannel.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.channels?t.channels=e.channels.map((e=>e?a.IdentifiedChannel.toJSON(e):void 0)):t.channels=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.channels=(null===(t=e.channels)||void 0===t?void 0:t.map((e=>a.IdentifiedChannel.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const h={connection:""};t.QueryConnectionChannelsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.connection&&t.uint32(10).string(e.connection),void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3){case 1:o.connection=n.string();break;case 2:o.pagination=c.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.connection=void 0!==e.connection&&null!==e.connection?String(e.connection):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.connection&&(t.connection=e.connection),void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.connection=null!==(t=e.connection)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,n}};const p={};t.QueryConnectionChannelsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.channels)a.IdentifiedChannel.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.channels=[];n.pos>>3){case 1:o.channels.push(a.IdentifiedChannel.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.channels=(null!==(t=e.channels)&&void 0!==t?t:[]).map((e=>a.IdentifiedChannel.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.channels?t.channels=e.channels.map((e=>e?a.IdentifiedChannel.toJSON(e):void 0)):t.channels=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},p);return n.channels=(null===(t=e.channels)||void 0===t?void 0:t.map((e=>a.IdentifiedChannel.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const g={portId:"",channelId:""};t.QueryChannelClientStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r}};const m={};t.QueryChannelClientStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.identifiedClientState&&s.IdentifiedClientState.encode(e.identifiedClientState,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.identifiedClientState=s.IdentifiedClientState.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.identifiedClientState=void 0!==e.identifiedClientState&&null!==e.identifiedClientState?s.IdentifiedClientState.fromJSON(e.identifiedClientState):void 0,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.identifiedClientState&&(t.identifiedClientState=e.identifiedClientState?s.IdentifiedClientState.toJSON(e.identifiedClientState):void 0),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},m);return n.identifiedClientState=void 0!==e.identifiedClientState&&null!==e.identifiedClientState?s.IdentifiedClientState.fromPartial(e.identifiedClientState):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const v={portId:"",channelId:"",revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO};t.QueryChannelConsensusStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.revisionNumber.isZero()||t.uint32(24).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(32).uint64(e.revisionHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.revisionNumber=n.uint64();break;case 4:o.revisionHeight=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromString(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromString(e.revisionHeight):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},v);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromValue(e.revisionNumber):o.default.UZERO,r.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromValue(e.revisionHeight):o.default.UZERO,r}};const y={clientId:""};t.QueryChannelConsensusStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.consensusState&&d.Any.encode(e.consensusState,t.uint32(10).fork()).ldelim(),""!==e.clientId&&t.uint32(18).string(e.clientId),0!==e.proof.length&&t.uint32(26).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.consensusState=d.Any.decode(n,n.uint32());break;case 2:o.clientId=n.string();break;case 3:o.proof=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?d.Any.fromJSON(e.consensusState):void 0,t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.consensusState&&(t.consensusState=e.consensusState?d.Any.toJSON(e.consensusState):void 0),void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},y);return r.consensusState=void 0!==e.consensusState&&null!==e.consensusState?d.Any.fromPartial(e.consensusState):void 0,r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const b={portId:"",channelId:"",sequence:o.default.UZERO};t.QueryPacketCommitmentRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.sequence=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,r}};const I={};t.QueryPacketCommitmentResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.commitment.length&&t.uint32(10).bytes(e.commitment),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(o.commitment=new Uint8Array,o.proof=new Uint8Array;n.pos>>3){case 1:o.commitment=n.bytes();break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},I);return t.commitment=void 0!==e.commitment&&null!==e.commitment?U(e.commitment):new Uint8Array,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.commitment&&(t.commitment=j(void 0!==e.commitment?e.commitment:new Uint8Array)),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},I);return r.commitment=null!==(t=e.commitment)&&void 0!==t?t:new Uint8Array,r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const C={portId:"",channelId:""};t.QueryPacketCommitmentsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.pagination=c.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},C);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,r}};const E={};t.QueryPacketCommitmentsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.commitments)a.PacketState.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(o.commitments=[];n.pos>>3){case 1:o.commitments.push(a.PacketState.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},E);return n.commitments=(null!==(t=e.commitments)&&void 0!==t?t:[]).map((e=>a.PacketState.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.commitments?t.commitments=e.commitments.map((e=>e?a.PacketState.toJSON(e):void 0)):t.commitments=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},E);return n.commitments=(null===(t=e.commitments)||void 0===t?void 0:t.map((e=>a.PacketState.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const w={portId:"",channelId:"",sequence:o.default.UZERO};t.QueryPacketReceiptRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.sequence=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},w);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,r}};const B={received:!1};t.QueryPacketReceiptResponse={encode:(e,t=i.default.Writer.create())=>(!0===e.received&&t.uint32(16).bool(e.received),0!==e.proof.length&&t.uint32(26).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(o.proof=new Uint8Array;n.pos>>3){case 2:o.received=n.bool();break;case 3:o.proof=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},B);return t.received=void 0!==e.received&&null!==e.received&&Boolean(e.received),t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.received&&(t.received=e.received),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},B);return r.received=null!==(t=e.received)&&void 0!==t&&t,r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const _={portId:"",channelId:"",sequence:o.default.UZERO};t.QueryPacketAcknowledgementRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),e.sequence.isZero()||t.uint32(24).uint64(e.sequence),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.sequence=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromString(e.sequence):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.sequence&&(t.sequence=(e.sequence||o.default.UZERO).toString()),t},fromPartial(e){var t,n;const r=Object.assign({},_);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.sequence=void 0!==e.sequence&&null!==e.sequence?o.default.fromValue(e.sequence):o.default.UZERO,r}};const S={};t.QueryPacketAcknowledgementResponse={encode:(e,t=i.default.Writer.create())=>(0!==e.acknowledgement.length&&t.uint32(10).bytes(e.acknowledgement),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(o.acknowledgement=new Uint8Array,o.proof=new Uint8Array;n.pos>>3){case 1:o.acknowledgement=n.bytes();break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);return t.acknowledgement=void 0!==e.acknowledgement&&null!==e.acknowledgement?U(e.acknowledgement):new Uint8Array,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.acknowledgement&&(t.acknowledgement=j(void 0!==e.acknowledgement?e.acknowledgement:new Uint8Array)),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},S);return r.acknowledgement=null!==(t=e.acknowledgement)&&void 0!==t?t:new Uint8Array,r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const k={portId:"",channelId:""};t.QueryPacketAcknowledgementsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},k);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.pagination=c.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},k);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,r}};const O={};t.QueryPacketAcknowledgementsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.acknowledgements)a.PacketState.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},O);for(o.acknowledgements=[];n.pos>>3){case 1:o.acknowledgements.push(a.PacketState.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},O);return n.acknowledgements=(null!==(t=e.acknowledgements)&&void 0!==t?t:[]).map((e=>a.PacketState.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.acknowledgements?t.acknowledgements=e.acknowledgements.map((e=>e?a.PacketState.toJSON(e):void 0)):t.acknowledgements=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},O);return n.acknowledgements=(null===(t=e.acknowledgements)||void 0===t?void 0:t.map((e=>a.PacketState.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const Q={portId:"",channelId:"",packetCommitmentSequences:o.default.UZERO};t.QueryUnreceivedPacketsRequest={encode(e,t=i.default.Writer.create()){""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t.uint32(26).fork();for(const n of e.packetCommitmentSequences)t.uint64(n);return t.ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},Q);for(o.packetCommitmentSequences=[];n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.poso.default.fromString(e))),n},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),e.packetCommitmentSequences?t.packetCommitmentSequences=e.packetCommitmentSequences.map((e=>(e||o.default.UZERO).toString())):t.packetCommitmentSequences=[],t},fromPartial(e){var t,n,r;const i=Object.assign({},Q);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.packetCommitmentSequences=(null===(r=e.packetCommitmentSequences)||void 0===r?void 0:r.map((e=>o.default.fromValue(e))))||[],i}};const R={sequences:o.default.UZERO};t.QueryUnreceivedPacketsResponse={encode(e,t=i.default.Writer.create()){t.uint32(10).fork();for(const n of e.sequences)t.uint64(n);return t.ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},R);for(o.sequences=[];n.pos>>3){case 1:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.poso.default.fromString(e))),n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.sequences?t.sequences=e.sequences.map((e=>(e||o.default.UZERO).toString())):t.sequences=[],void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},R);return n.sequences=(null===(t=e.sequences)||void 0===t?void 0:t.map((e=>o.default.fromValue(e))))||[],n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const P={portId:"",channelId:"",packetAckSequences:o.default.UZERO};t.QueryUnreceivedAcksRequest={encode(e,t=i.default.Writer.create()){""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t.uint32(26).fork();for(const n of e.packetAckSequences)t.uint64(n);return t.ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},P);for(o.packetAckSequences=[];n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.poso.default.fromString(e))),n},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),e.packetAckSequences?t.packetAckSequences=e.packetAckSequences.map((e=>(e||o.default.UZERO).toString())):t.packetAckSequences=[],t},fromPartial(e){var t,n,r;const i=Object.assign({},P);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.packetAckSequences=(null===(r=e.packetAckSequences)||void 0===r?void 0:r.map((e=>o.default.fromValue(e))))||[],i}};const N={sequences:o.default.UZERO};t.QueryUnreceivedAcksResponse={encode(e,t=i.default.Writer.create()){t.uint32(10).fork();for(const n of e.sequences)t.uint64(n);return t.ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},N);for(o.sequences=[];n.pos>>3){case 1:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.poso.default.fromString(e))),n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.sequences?t.sequences=e.sequences.map((e=>(e||o.default.UZERO).toString())):t.sequences=[],void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},N);return n.sequences=(null===(t=e.sequences)||void 0===t?void 0:t.map((e=>o.default.fromValue(e))))||[],n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const x={portId:"",channelId:""};t.QueryNextSequenceReceiveRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},x);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},x);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),t},fromPartial(e){var t,n;const r=Object.assign({},x);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",r}};const D={nextSequenceReceive:o.default.UZERO};t.QueryNextSequenceReceiveResponse={encode:(e,t=i.default.Writer.create())=>(e.nextSequenceReceive.isZero()||t.uint32(8).uint64(e.nextSequenceReceive),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},D);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.nextSequenceReceive=n.uint64();break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},D);return t.nextSequenceReceive=void 0!==e.nextSequenceReceive&&null!==e.nextSequenceReceive?o.default.fromString(e.nextSequenceReceive):o.default.UZERO,t.proof=void 0!==e.proof&&null!==e.proof?U(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.nextSequenceReceive&&(t.nextSequenceReceive=(e.nextSequenceReceive||o.default.UZERO).toString()),void 0!==e.proof&&(t.proof=j(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},D);return n.nextSequenceReceive=void 0!==e.nextSequenceReceive&&null!==e.nextSequenceReceive?o.default.fromValue(e.nextSequenceReceive):o.default.UZERO,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Channel=this.Channel.bind(this),this.Channels=this.Channels.bind(this),this.ConnectionChannels=this.ConnectionChannels.bind(this),this.ChannelClientState=this.ChannelClientState.bind(this),this.ChannelConsensusState=this.ChannelConsensusState.bind(this),this.PacketCommitment=this.PacketCommitment.bind(this),this.PacketCommitments=this.PacketCommitments.bind(this),this.PacketReceipt=this.PacketReceipt.bind(this),this.PacketAcknowledgement=this.PacketAcknowledgement.bind(this),this.PacketAcknowledgements=this.PacketAcknowledgements.bind(this),this.UnreceivedPackets=this.UnreceivedPackets.bind(this),this.UnreceivedAcks=this.UnreceivedAcks.bind(this),this.NextSequenceReceive=this.NextSequenceReceive.bind(this)}Channel(e){const n=t.QueryChannelRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","Channel",n).then((e=>t.QueryChannelResponse.decode(new i.default.Reader(e))))}Channels(e){const n=t.QueryChannelsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","Channels",n).then((e=>t.QueryChannelsResponse.decode(new i.default.Reader(e))))}ConnectionChannels(e){const n=t.QueryConnectionChannelsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","ConnectionChannels",n).then((e=>t.QueryConnectionChannelsResponse.decode(new i.default.Reader(e))))}ChannelClientState(e){const n=t.QueryChannelClientStateRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","ChannelClientState",n).then((e=>t.QueryChannelClientStateResponse.decode(new i.default.Reader(e))))}ChannelConsensusState(e){const n=t.QueryChannelConsensusStateRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","ChannelConsensusState",n).then((e=>t.QueryChannelConsensusStateResponse.decode(new i.default.Reader(e))))}PacketCommitment(e){const n=t.QueryPacketCommitmentRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketCommitment",n).then((e=>t.QueryPacketCommitmentResponse.decode(new i.default.Reader(e))))}PacketCommitments(e){const n=t.QueryPacketCommitmentsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketCommitments",n).then((e=>t.QueryPacketCommitmentsResponse.decode(new i.default.Reader(e))))}PacketReceipt(e){const n=t.QueryPacketReceiptRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketReceipt",n).then((e=>t.QueryPacketReceiptResponse.decode(new i.default.Reader(e))))}PacketAcknowledgement(e){const n=t.QueryPacketAcknowledgementRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketAcknowledgement",n).then((e=>t.QueryPacketAcknowledgementResponse.decode(new i.default.Reader(e))))}PacketAcknowledgements(e){const n=t.QueryPacketAcknowledgementsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","PacketAcknowledgements",n).then((e=>t.QueryPacketAcknowledgementsResponse.decode(new i.default.Reader(e))))}UnreceivedPackets(e){const n=t.QueryUnreceivedPacketsRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","UnreceivedPackets",n).then((e=>t.QueryUnreceivedPacketsResponse.decode(new i.default.Reader(e))))}UnreceivedAcks(e){const n=t.QueryUnreceivedAcksRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","UnreceivedAcks",n).then((e=>t.QueryUnreceivedAcksResponse.decode(new i.default.Reader(e))))}NextSequenceReceive(e){const n=t.QueryNextSequenceReceiveRequest.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Query","NextSequenceReceive",n).then((e=>t.QueryNextSequenceReceiveResponse.decode(new i.default.Reader(e))))}};var T=(()=>{if(void 0!==T)return T;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const M=T.atob||(e=>T.Buffer.from(e,"base64").toString("binary"));function U(e){const t=M(e),n=new Uint8Array(t.length);for(let e=0;eT.Buffer.from(e,"binary").toString("base64"));function j(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return H(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},7375:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgAcknowledgementResponse=t.MsgAcknowledgement=t.MsgTimeoutOnCloseResponse=t.MsgTimeoutOnClose=t.MsgTimeoutResponse=t.MsgTimeout=t.MsgRecvPacketResponse=t.MsgRecvPacket=t.MsgChannelCloseConfirmResponse=t.MsgChannelCloseConfirm=t.MsgChannelCloseInitResponse=t.MsgChannelCloseInit=t.MsgChannelOpenConfirmResponse=t.MsgChannelOpenConfirm=t.MsgChannelOpenAckResponse=t.MsgChannelOpenAck=t.MsgChannelOpenTryResponse=t.MsgChannelOpenTry=t.MsgChannelOpenInitResponse=t.MsgChannelOpenInit=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1787),s=n(5022);t.protobufPackage="ibc.core.channel.v1";const c={portId:"",signer:""};t.MsgChannelOpenInit={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),void 0!==e.channel&&a.Channel.encode(e.channel,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channel=a.Channel.decode(n,n.uint32());break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromJSON(e.channel):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channel&&(t.channel=e.channel?a.Channel.toJSON(e.channel):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},c);return r.portId=null!==(t=e.portId)&&void 0!==t?t:"",r.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromPartial(e.channel):void 0,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const d={};t.MsgChannelOpenInitResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.posObject.assign({},d),toJSON:e=>({}),fromPartial:e=>Object.assign({},d)};const u={portId:"",previousChannelId:"",counterpartyVersion:"",signer:""};t.MsgChannelOpenTry={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.previousChannelId&&t.uint32(18).string(e.previousChannelId),void 0!==e.channel&&a.Channel.encode(e.channel,t.uint32(26).fork()).ldelim(),""!==e.counterpartyVersion&&t.uint32(34).string(e.counterpartyVersion),0!==e.proofInit.length&&t.uint32(42).bytes(e.proofInit),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(50).fork()).ldelim(),""!==e.signer&&t.uint32(58).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.proofInit=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.previousChannelId=n.string();break;case 3:o.channel=a.Channel.decode(n,n.uint32());break;case 4:o.counterpartyVersion=n.string();break;case 5:o.proofInit=n.bytes();break;case 6:o.proofHeight=s.Height.decode(n,n.uint32());break;case 7:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.previousChannelId=void 0!==e.previousChannelId&&null!==e.previousChannelId?String(e.previousChannelId):"",t.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromJSON(e.channel):void 0,t.counterpartyVersion=void 0!==e.counterpartyVersion&&null!==e.counterpartyVersion?String(e.counterpartyVersion):"",t.proofInit=void 0!==e.proofInit&&null!==e.proofInit?Q(e.proofInit):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.previousChannelId&&(t.previousChannelId=e.previousChannelId),void 0!==e.channel&&(t.channel=e.channel?a.Channel.toJSON(e.channel):void 0),void 0!==e.counterpartyVersion&&(t.counterpartyVersion=e.counterpartyVersion),void 0!==e.proofInit&&(t.proofInit=P(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o,i;const c=Object.assign({},u);return c.portId=null!==(t=e.portId)&&void 0!==t?t:"",c.previousChannelId=null!==(n=e.previousChannelId)&&void 0!==n?n:"",c.channel=void 0!==e.channel&&null!==e.channel?a.Channel.fromPartial(e.channel):void 0,c.counterpartyVersion=null!==(r=e.counterpartyVersion)&&void 0!==r?r:"",c.proofInit=null!==(o=e.proofInit)&&void 0!==o?o:new Uint8Array,c.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,c.signer=null!==(i=e.signer)&&void 0!==i?i:"",c}};const l={};t.MsgChannelOpenTryResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.posObject.assign({},l),toJSON:e=>({}),fromPartial:e=>Object.assign({},l)};const A={portId:"",channelId:"",counterpartyChannelId:"",counterpartyVersion:"",signer:""};t.MsgChannelOpenAck={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),""!==e.counterpartyChannelId&&t.uint32(26).string(e.counterpartyChannelId),""!==e.counterpartyVersion&&t.uint32(34).string(e.counterpartyVersion),0!==e.proofTry.length&&t.uint32(42).bytes(e.proofTry),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(50).fork()).ldelim(),""!==e.signer&&t.uint32(58).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.proofTry=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.counterpartyChannelId=n.string();break;case 4:o.counterpartyVersion=n.string();break;case 5:o.proofTry=n.bytes();break;case 6:o.proofHeight=s.Height.decode(n,n.uint32());break;case 7:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.counterpartyChannelId=void 0!==e.counterpartyChannelId&&null!==e.counterpartyChannelId?String(e.counterpartyChannelId):"",t.counterpartyVersion=void 0!==e.counterpartyVersion&&null!==e.counterpartyVersion?String(e.counterpartyVersion):"",t.proofTry=void 0!==e.proofTry&&null!==e.proofTry?Q(e.proofTry):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.counterpartyChannelId&&(t.counterpartyChannelId=e.counterpartyChannelId),void 0!==e.counterpartyVersion&&(t.counterpartyVersion=e.counterpartyVersion),void 0!==e.proofTry&&(t.proofTry=P(void 0!==e.proofTry?e.proofTry:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o,i,a;const c=Object.assign({},A);return c.portId=null!==(t=e.portId)&&void 0!==t?t:"",c.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",c.counterpartyChannelId=null!==(r=e.counterpartyChannelId)&&void 0!==r?r:"",c.counterpartyVersion=null!==(o=e.counterpartyVersion)&&void 0!==o?o:"",c.proofTry=null!==(i=e.proofTry)&&void 0!==i?i:new Uint8Array,c.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,c.signer=null!==(a=e.signer)&&void 0!==a?a:"",c}};const f={};t.MsgChannelOpenAckResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.posObject.assign({},f),toJSON:e=>({}),fromPartial:e=>Object.assign({},f)};const h={portId:"",channelId:"",signer:""};t.MsgChannelOpenConfirm={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),0!==e.proofAck.length&&t.uint32(26).bytes(e.proofAck),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.proofAck=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.proofAck=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.proofAck=void 0!==e.proofAck&&null!==e.proofAck?Q(e.proofAck):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.proofAck&&(t.proofAck=P(void 0!==e.proofAck?e.proofAck:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},h);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.proofAck=null!==(r=e.proofAck)&&void 0!==r?r:new Uint8Array,i.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,i.signer=null!==(o=e.signer)&&void 0!==o?o:"",i}};const p={};t.MsgChannelOpenConfirmResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.posObject.assign({},p),toJSON:e=>({}),fromPartial:e=>Object.assign({},p)};const g={portId:"",channelId:"",signer:""};t.MsgChannelCloseInit={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r;const o=Object.assign({},g);return o.portId=null!==(t=e.portId)&&void 0!==t?t:"",o.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",o.signer=null!==(r=e.signer)&&void 0!==r?r:"",o}};const m={};t.MsgChannelCloseInitResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const v={portId:"",channelId:"",signer:""};t.MsgChannelCloseConfirm={encode:(e,t=i.default.Writer.create())=>(""!==e.portId&&t.uint32(10).string(e.portId),""!==e.channelId&&t.uint32(18).string(e.channelId),0!==e.proofInit.length&&t.uint32(26).bytes(e.proofInit),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(o.proofInit=new Uint8Array;n.pos>>3){case 1:o.portId=n.string();break;case 2:o.channelId=n.string();break;case 3:o.proofInit=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.portId=void 0!==e.portId&&null!==e.portId?String(e.portId):"",t.channelId=void 0!==e.channelId&&null!==e.channelId?String(e.channelId):"",t.proofInit=void 0!==e.proofInit&&null!==e.proofInit?Q(e.proofInit):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.portId&&(t.portId=e.portId),void 0!==e.channelId&&(t.channelId=e.channelId),void 0!==e.proofInit&&(t.proofInit=P(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},v);return i.portId=null!==(t=e.portId)&&void 0!==t?t:"",i.channelId=null!==(n=e.channelId)&&void 0!==n?n:"",i.proofInit=null!==(r=e.proofInit)&&void 0!==r?r:new Uint8Array,i.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,i.signer=null!==(o=e.signer)&&void 0!==o?o:"",i}};const y={};t.MsgChannelCloseConfirmResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(;n.posObject.assign({},y),toJSON:e=>({}),fromPartial:e=>Object.assign({},y)};const b={signer:""};t.MsgRecvPacket={encode:(e,t=i.default.Writer.create())=>(void 0!==e.packet&&a.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofCommitment.length&&t.uint32(18).bytes(e.proofCommitment),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),""!==e.signer&&t.uint32(34).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.proofCommitment=new Uint8Array;n.pos>>3){case 1:o.packet=a.Packet.decode(n,n.uint32());break;case 2:o.proofCommitment=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;case 4:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},b);return t.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromJSON(e.packet):void 0,t.proofCommitment=void 0!==e.proofCommitment&&null!==e.proofCommitment?Q(e.proofCommitment):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?a.Packet.toJSON(e.packet):void 0),void 0!==e.proofCommitment&&(t.proofCommitment=P(void 0!==e.proofCommitment?e.proofCommitment:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},b);return r.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromPartial(e.packet):void 0,r.proofCommitment=null!==(t=e.proofCommitment)&&void 0!==t?t:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const I={};t.MsgRecvPacketResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},I);for(;n.posObject.assign({},I),toJSON:e=>({}),fromPartial:e=>Object.assign({},I)};const C={nextSequenceRecv:o.default.UZERO,signer:""};t.MsgTimeout={encode:(e,t=i.default.Writer.create())=>(void 0!==e.packet&&a.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofUnreceived.length&&t.uint32(18).bytes(e.proofUnreceived),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),e.nextSequenceRecv.isZero()||t.uint32(32).uint64(e.nextSequenceRecv),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},C);for(o.proofUnreceived=new Uint8Array;n.pos>>3){case 1:o.packet=a.Packet.decode(n,n.uint32());break;case 2:o.proofUnreceived=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;case 4:o.nextSequenceRecv=n.uint64();break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},C);return t.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromJSON(e.packet):void 0,t.proofUnreceived=void 0!==e.proofUnreceived&&null!==e.proofUnreceived?Q(e.proofUnreceived):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.nextSequenceRecv=void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?o.default.fromString(e.nextSequenceRecv):o.default.UZERO,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?a.Packet.toJSON(e.packet):void 0),void 0!==e.proofUnreceived&&(t.proofUnreceived=P(void 0!==e.proofUnreceived?e.proofUnreceived:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.nextSequenceRecv&&(t.nextSequenceRecv=(e.nextSequenceRecv||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},C);return r.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromPartial(e.packet):void 0,r.proofUnreceived=null!==(t=e.proofUnreceived)&&void 0!==t?t:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r.nextSequenceRecv=void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?o.default.fromValue(e.nextSequenceRecv):o.default.UZERO,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const E={};t.MsgTimeoutResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(;n.posObject.assign({},E),toJSON:e=>({}),fromPartial:e=>Object.assign({},E)};const w={nextSequenceRecv:o.default.UZERO,signer:""};t.MsgTimeoutOnClose={encode:(e,t=i.default.Writer.create())=>(void 0!==e.packet&&a.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.proofUnreceived.length&&t.uint32(18).bytes(e.proofUnreceived),0!==e.proofClose.length&&t.uint32(26).bytes(e.proofClose),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),e.nextSequenceRecv.isZero()||t.uint32(40).uint64(e.nextSequenceRecv),""!==e.signer&&t.uint32(50).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(o.proofUnreceived=new Uint8Array,o.proofClose=new Uint8Array;n.pos>>3){case 1:o.packet=a.Packet.decode(n,n.uint32());break;case 2:o.proofUnreceived=n.bytes();break;case 3:o.proofClose=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;case 5:o.nextSequenceRecv=n.uint64();break;case 6:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},w);return t.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromJSON(e.packet):void 0,t.proofUnreceived=void 0!==e.proofUnreceived&&null!==e.proofUnreceived?Q(e.proofUnreceived):new Uint8Array,t.proofClose=void 0!==e.proofClose&&null!==e.proofClose?Q(e.proofClose):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.nextSequenceRecv=void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?o.default.fromString(e.nextSequenceRecv):o.default.UZERO,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?a.Packet.toJSON(e.packet):void 0),void 0!==e.proofUnreceived&&(t.proofUnreceived=P(void 0!==e.proofUnreceived?e.proofUnreceived:new Uint8Array)),void 0!==e.proofClose&&(t.proofClose=P(void 0!==e.proofClose?e.proofClose:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.nextSequenceRecv&&(t.nextSequenceRecv=(e.nextSequenceRecv||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r;const i=Object.assign({},w);return i.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromPartial(e.packet):void 0,i.proofUnreceived=null!==(t=e.proofUnreceived)&&void 0!==t?t:new Uint8Array,i.proofClose=null!==(n=e.proofClose)&&void 0!==n?n:new Uint8Array,i.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,i.nextSequenceRecv=void 0!==e.nextSequenceRecv&&null!==e.nextSequenceRecv?o.default.fromValue(e.nextSequenceRecv):o.default.UZERO,i.signer=null!==(r=e.signer)&&void 0!==r?r:"",i}};const B={};t.MsgTimeoutOnCloseResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(;n.posObject.assign({},B),toJSON:e=>({}),fromPartial:e=>Object.assign({},B)};const _={signer:""};t.MsgAcknowledgement={encode:(e,t=i.default.Writer.create())=>(void 0!==e.packet&&a.Packet.encode(e.packet,t.uint32(10).fork()).ldelim(),0!==e.acknowledgement.length&&t.uint32(18).bytes(e.acknowledgement),0!==e.proofAcked.length&&t.uint32(26).bytes(e.proofAcked),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(o.acknowledgement=new Uint8Array,o.proofAcked=new Uint8Array;n.pos>>3){case 1:o.packet=a.Packet.decode(n,n.uint32());break;case 2:o.acknowledgement=n.bytes();break;case 3:o.proofAcked=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromJSON(e.packet):void 0,t.acknowledgement=void 0!==e.acknowledgement&&null!==e.acknowledgement?Q(e.acknowledgement):new Uint8Array,t.proofAcked=void 0!==e.proofAcked&&null!==e.proofAcked?Q(e.proofAcked):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.packet&&(t.packet=e.packet?a.Packet.toJSON(e.packet):void 0),void 0!==e.acknowledgement&&(t.acknowledgement=P(void 0!==e.acknowledgement?e.acknowledgement:new Uint8Array)),void 0!==e.proofAcked&&(t.proofAcked=P(void 0!==e.proofAcked?e.proofAcked:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r;const o=Object.assign({},_);return o.packet=void 0!==e.packet&&null!==e.packet?a.Packet.fromPartial(e.packet):void 0,o.acknowledgement=null!==(t=e.acknowledgement)&&void 0!==t?t:new Uint8Array,o.proofAcked=null!==(n=e.proofAcked)&&void 0!==n?n:new Uint8Array,o.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,o.signer=null!==(r=e.signer)&&void 0!==r?r:"",o}};const S={};t.MsgAcknowledgementResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(;n.posObject.assign({},S),toJSON:e=>({}),fromPartial:e=>Object.assign({},S)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.ChannelOpenInit=this.ChannelOpenInit.bind(this),this.ChannelOpenTry=this.ChannelOpenTry.bind(this),this.ChannelOpenAck=this.ChannelOpenAck.bind(this),this.ChannelOpenConfirm=this.ChannelOpenConfirm.bind(this),this.ChannelCloseInit=this.ChannelCloseInit.bind(this),this.ChannelCloseConfirm=this.ChannelCloseConfirm.bind(this),this.RecvPacket=this.RecvPacket.bind(this),this.Timeout=this.Timeout.bind(this),this.TimeoutOnClose=this.TimeoutOnClose.bind(this),this.Acknowledgement=this.Acknowledgement.bind(this)}ChannelOpenInit(e){const n=t.MsgChannelOpenInit.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelOpenInit",n).then((e=>t.MsgChannelOpenInitResponse.decode(new i.default.Reader(e))))}ChannelOpenTry(e){const n=t.MsgChannelOpenTry.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelOpenTry",n).then((e=>t.MsgChannelOpenTryResponse.decode(new i.default.Reader(e))))}ChannelOpenAck(e){const n=t.MsgChannelOpenAck.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelOpenAck",n).then((e=>t.MsgChannelOpenAckResponse.decode(new i.default.Reader(e))))}ChannelOpenConfirm(e){const n=t.MsgChannelOpenConfirm.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelOpenConfirm",n).then((e=>t.MsgChannelOpenConfirmResponse.decode(new i.default.Reader(e))))}ChannelCloseInit(e){const n=t.MsgChannelCloseInit.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelCloseInit",n).then((e=>t.MsgChannelCloseInitResponse.decode(new i.default.Reader(e))))}ChannelCloseConfirm(e){const n=t.MsgChannelCloseConfirm.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","ChannelCloseConfirm",n).then((e=>t.MsgChannelCloseConfirmResponse.decode(new i.default.Reader(e))))}RecvPacket(e){const n=t.MsgRecvPacket.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","RecvPacket",n).then((e=>t.MsgRecvPacketResponse.decode(new i.default.Reader(e))))}Timeout(e){const n=t.MsgTimeout.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","Timeout",n).then((e=>t.MsgTimeoutResponse.decode(new i.default.Reader(e))))}TimeoutOnClose(e){const n=t.MsgTimeoutOnClose.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","TimeoutOnClose",n).then((e=>t.MsgTimeoutOnCloseResponse.decode(new i.default.Reader(e))))}Acknowledgement(e){const n=t.MsgAcknowledgement.encode(e).finish();return this.rpc.request("ibc.core.channel.v1.Msg","Acknowledgement",n).then((e=>t.MsgAcknowledgementResponse.decode(new i.default.Reader(e))))}};var k=(()=>{if(void 0!==k)return k;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const O=k.atob||(e=>k.Buffer.from(e,"base64").toString("binary"));function Q(e){const t=O(e),n=new Uint8Array(t.length);for(let e=0;ek.Buffer.from(e,"binary").toString("base64"));function P(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return R(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5022:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Params=t.Height=t.ClientUpdateProposal=t.ClientConsensusStates=t.ConsensusStateWithHeight=t.IdentifiedClientState=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="ibc.core.client.v1";const s={clientId:""};t.IdentifiedClientState={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.clientState=a.Any.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromJSON(e.clientState):void 0,t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),t},fromPartial(e){var t;const n=Object.assign({},s);return n.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",n.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromPartial(e.clientState):void 0,n}};const c={};t.ConsensusStateWithHeight={encode:(e,n=i.default.Writer.create())=>(void 0!==e.height&&t.Height.encode(e.height,n.uint32(10).fork()).ldelim(),void 0!==e.consensusState&&a.Any.encode(e.consensusState,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},c);for(;r.pos>>3){case 1:s.height=t.Height.decode(r,r.uint32());break;case 2:s.consensusState=a.Any.decode(r,r.uint32());break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},c);return n.height=void 0!==e.height&&null!==e.height?t.Height.fromJSON(e.height):void 0,n.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromJSON(e.consensusState):void 0,n},toJSON(e){const n={};return void 0!==e.height&&(n.height=e.height?t.Height.toJSON(e.height):void 0),void 0!==e.consensusState&&(n.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),n},fromPartial(e){const n=Object.assign({},c);return n.height=void 0!==e.height&&null!==e.height?t.Height.fromPartial(e.height):void 0,n.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromPartial(e.consensusState):void 0,n}};const d={clientId:""};t.ClientConsensusStates={encode(e,n=i.default.Writer.create()){""!==e.clientId&&n.uint32(10).string(e.clientId);for(const r of e.consensusStates)t.ConsensusStateWithHeight.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},d);for(a.consensusStates=[];r.pos>>3){case 1:a.clientId=r.string();break;case 2:a.consensusStates.push(t.ConsensusStateWithHeight.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},d);return r.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",r.consensusStates=(null!==(n=e.consensusStates)&&void 0!==n?n:[]).map((e=>t.ConsensusStateWithHeight.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.clientId&&(n.clientId=e.clientId),e.consensusStates?n.consensusStates=e.consensusStates.map((e=>e?t.ConsensusStateWithHeight.toJSON(e):void 0)):n.consensusStates=[],n},fromPartial(e){var n,r;const o=Object.assign({},d);return o.clientId=null!==(n=e.clientId)&&void 0!==n?n:"",o.consensusStates=(null===(r=e.consensusStates)||void 0===r?void 0:r.map((e=>t.ConsensusStateWithHeight.fromPartial(e))))||[],o}};const u={title:"",description:"",clientId:""};t.ClientUpdateProposal={encode:(e,t=i.default.Writer.create())=>(""!==e.title&&t.uint32(10).string(e.title),""!==e.description&&t.uint32(18).string(e.description),""!==e.clientId&&t.uint32(26).string(e.clientId),void 0!==e.header&&a.Any.encode(e.header,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3){case 1:o.title=n.string();break;case 2:o.description=n.string();break;case 3:o.clientId=n.string();break;case 4:o.header=a.Any.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.title=void 0!==e.title&&null!==e.title?String(e.title):"",t.description=void 0!==e.description&&null!==e.description?String(e.description):"",t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.header=void 0!==e.header&&null!==e.header?a.Any.fromJSON(e.header):void 0,t},toJSON(e){const t={};return void 0!==e.title&&(t.title=e.title),void 0!==e.description&&(t.description=e.description),void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.header&&(t.header=e.header?a.Any.toJSON(e.header):void 0),t},fromPartial(e){var t,n,r;const o=Object.assign({},u);return o.title=null!==(t=e.title)&&void 0!==t?t:"",o.description=null!==(n=e.description)&&void 0!==n?n:"",o.clientId=null!==(r=e.clientId)&&void 0!==r?r:"",o.header=void 0!==e.header&&null!==e.header?a.Any.fromPartial(e.header):void 0,o}};const l={revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO};t.Height={encode:(e,t=i.default.Writer.create())=>(e.revisionNumber.isZero()||t.uint32(8).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(16).uint64(e.revisionHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3){case 1:o.revisionNumber=n.uint64();break;case 2:o.revisionHeight=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromString(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromString(e.revisionHeight):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromValue(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromValue(e.revisionHeight):o.default.UZERO,t}};const A={allowedClients:""};t.Params={encode(e,t=i.default.Writer.create()){for(const n of e.allowedClients)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.allowedClients=[];n.pos>>3==1?o.allowedClients.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.allowedClients=(null!==(t=e.allowedClients)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.allowedClients?t.allowedClients=e.allowedClients.map((e=>e)):t.allowedClients=[],t},fromPartial(e){var t;const n=Object.assign({},A);return n.allowedClients=(null===(t=e.allowedClients)||void 0===t?void 0:t.map((e=>e)))||[],n}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},6448:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryClientParamsResponse=t.QueryClientParamsRequest=t.QueryConsensusStatesResponse=t.QueryConsensusStatesRequest=t.QueryConsensusStateResponse=t.QueryConsensusStateRequest=t.QueryClientStatesResponse=t.QueryClientStatesRequest=t.QueryClientStateResponse=t.QueryClientStateRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862),s=n(5022),c=n(9551);t.protobufPackage="ibc.core.client.v1";const d={clientId:""};t.QueryClientStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3==1?o.clientId=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},d);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),t},fromPartial(e){var t;const n=Object.assign({},d);return n.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",n}};const u={};t.QueryClientStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.clientState=a.Any.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},u);return t.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromJSON(e.clientState):void 0,t.proof=void 0!==e.proof&&null!==e.proof?I(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),void 0!==e.proof&&(t.proof=E(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},u);return n.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromPartial(e.clientState):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const l={};t.QueryClientStatesRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.pagination=c.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},l);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,t}};const A={};t.QueryClientStatesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.clientStates)s.IdentifiedClientState.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(o.clientStates=[];n.pos>>3){case 1:o.clientStates.push(s.IdentifiedClientState.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},A);return n.clientStates=(null!==(t=e.clientStates)&&void 0!==t?t:[]).map((e=>s.IdentifiedClientState.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.clientStates?t.clientStates=e.clientStates.map((e=>e?s.IdentifiedClientState.toJSON(e):void 0)):t.clientStates=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},A);return n.clientStates=(null===(t=e.clientStates)||void 0===t?void 0:t.map((e=>s.IdentifiedClientState.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n}};const f={clientId:"",revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO,latestHeight:!1};t.QueryConsensusStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),e.revisionNumber.isZero()||t.uint32(16).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(24).uint64(e.revisionHeight),!0===e.latestHeight&&t.uint32(32).bool(e.latestHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.revisionNumber=n.uint64();break;case 3:o.revisionHeight=n.uint64();break;case 4:o.latestHeight=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromString(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromString(e.revisionHeight):o.default.UZERO,t.latestHeight=void 0!==e.latestHeight&&null!==e.latestHeight&&Boolean(e.latestHeight),t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),void 0!==e.latestHeight&&(t.latestHeight=e.latestHeight),t},fromPartial(e){var t,n;const r=Object.assign({},f);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromValue(e.revisionNumber):o.default.UZERO,r.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromValue(e.revisionHeight):o.default.UZERO,r.latestHeight=null!==(n=e.latestHeight)&&void 0!==n&&n,r}};const h={};t.QueryConsensusStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.consensusState&&a.Any.encode(e.consensusState,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.consensusState=a.Any.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);return t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromJSON(e.consensusState):void 0,t.proof=void 0!==e.proof&&null!==e.proof?I(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.consensusState&&(t.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),void 0!==e.proof&&(t.proof=E(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},h);return n.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromPartial(e.consensusState):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const p={clientId:""};t.QueryConsensusStatesRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(18).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.pagination=c.PageRequest.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},p);return n.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,n}};const g={};t.QueryConsensusStatesResponse={encode(e,t=i.default.Writer.create()){for(const n of e.consensusStates)s.ConsensusStateWithHeight.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.consensusStates=[];n.pos>>3){case 1:o.consensusStates.push(s.ConsensusStateWithHeight.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},g);return n.consensusStates=(null!==(t=e.consensusStates)&&void 0!==t?t:[]).map((e=>s.ConsensusStateWithHeight.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n},toJSON(e){const t={};return e.consensusStates?t.consensusStates=e.consensusStates.map((e=>e?s.ConsensusStateWithHeight.toJSON(e):void 0)):t.consensusStates=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),t},fromPartial(e){var t;const n=Object.assign({},g);return n.consensusStates=(null===(t=e.consensusStates)||void 0===t?void 0:t.map((e=>s.ConsensusStateWithHeight.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n}};const m={};t.QueryClientParamsRequest={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.posObject.assign({},m),toJSON:e=>({}),fromPartial:e=>Object.assign({},m)};const v={};t.QueryClientParamsResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.params&&s.Params.encode(e.params,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3==1?o.params=s.Params.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},v);return t.params=void 0!==e.params&&null!==e.params?s.Params.fromJSON(e.params):void 0,t},toJSON(e){const t={};return void 0!==e.params&&(t.params=e.params?s.Params.toJSON(e.params):void 0),t},fromPartial(e){const t=Object.assign({},v);return t.params=void 0!==e.params&&null!==e.params?s.Params.fromPartial(e.params):void 0,t}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.ClientState=this.ClientState.bind(this),this.ClientStates=this.ClientStates.bind(this),this.ConsensusState=this.ConsensusState.bind(this),this.ConsensusStates=this.ConsensusStates.bind(this),this.ClientParams=this.ClientParams.bind(this)}ClientState(e){const n=t.QueryClientStateRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ClientState",n).then((e=>t.QueryClientStateResponse.decode(new i.default.Reader(e))))}ClientStates(e){const n=t.QueryClientStatesRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ClientStates",n).then((e=>t.QueryClientStatesResponse.decode(new i.default.Reader(e))))}ConsensusState(e){const n=t.QueryConsensusStateRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ConsensusState",n).then((e=>t.QueryConsensusStateResponse.decode(new i.default.Reader(e))))}ConsensusStates(e){const n=t.QueryConsensusStatesRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ConsensusStates",n).then((e=>t.QueryConsensusStatesResponse.decode(new i.default.Reader(e))))}ClientParams(e){const n=t.QueryClientParamsRequest.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Query","ClientParams",n).then((e=>t.QueryClientParamsResponse.decode(new i.default.Reader(e))))}};var y=(()=>{if(void 0!==y)return y;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const b=y.atob||(e=>y.Buffer.from(e,"base64").toString("binary"));function I(e){const t=b(e),n=new Uint8Array(t.length);for(let e=0;ey.Buffer.from(e,"binary").toString("base64"));function E(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return C(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},9548:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgSubmitMisbehaviourResponse=t.MsgSubmitMisbehaviour=t.MsgUpgradeClientResponse=t.MsgUpgradeClient=t.MsgUpdateClientResponse=t.MsgUpdateClient=t.MsgCreateClientResponse=t.MsgCreateClient=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(3862);t.protobufPackage="ibc.core.client.v1";const s={signer:""};t.MsgCreateClient={encode:(e,t=i.default.Writer.create())=>(void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(10).fork()).ldelim(),void 0!==e.consensusState&&a.Any.encode(e.consensusState,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.clientState=a.Any.decode(n,n.uint32());break;case 2:o.consensusState=a.Any.decode(n,n.uint32());break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromJSON(e.clientState):void 0,t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromJSON(e.consensusState):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),void 0!==e.consensusState&&(t.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t;const n=Object.assign({},s);return n.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromPartial(e.clientState):void 0,n.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromPartial(e.consensusState):void 0,n.signer=null!==(t=e.signer)&&void 0!==t?t:"",n}};const c={};t.MsgCreateClientResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.posObject.assign({},c),toJSON:e=>({}),fromPartial:e=>Object.assign({},c)};const d={clientId:"",signer:""};t.MsgUpdateClient={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.header&&a.Any.encode(e.header,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.header=a.Any.decode(n,n.uint32());break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.header=void 0!==e.header&&null!==e.header?a.Any.fromJSON(e.header):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.header&&(t.header=e.header?a.Any.toJSON(e.header):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.header=void 0!==e.header&&null!==e.header?a.Any.fromPartial(e.header):void 0,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const u={};t.MsgUpdateClientResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)};const l={clientId:"",signer:""};t.MsgUpgradeClient={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.clientState&&a.Any.encode(e.clientState,t.uint32(18).fork()).ldelim(),void 0!==e.consensusState&&a.Any.encode(e.consensusState,t.uint32(26).fork()).ldelim(),0!==e.proofUpgradeClient.length&&t.uint32(34).bytes(e.proofUpgradeClient),0!==e.proofUpgradeConsensusState.length&&t.uint32(42).bytes(e.proofUpgradeConsensusState),""!==e.signer&&t.uint32(50).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.proofUpgradeClient=new Uint8Array,o.proofUpgradeConsensusState=new Uint8Array;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.clientState=a.Any.decode(n,n.uint32());break;case 3:o.consensusState=a.Any.decode(n,n.uint32());break;case 4:o.proofUpgradeClient=n.bytes();break;case 5:o.proofUpgradeConsensusState=n.bytes();break;case 6:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromJSON(e.clientState):void 0,t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromJSON(e.consensusState):void 0,t.proofUpgradeClient=void 0!==e.proofUpgradeClient&&null!==e.proofUpgradeClient?m(e.proofUpgradeClient):new Uint8Array,t.proofUpgradeConsensusState=void 0!==e.proofUpgradeConsensusState&&null!==e.proofUpgradeConsensusState?m(e.proofUpgradeConsensusState):new Uint8Array,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.clientState&&(t.clientState=e.clientState?a.Any.toJSON(e.clientState):void 0),void 0!==e.consensusState&&(t.consensusState=e.consensusState?a.Any.toJSON(e.consensusState):void 0),void 0!==e.proofUpgradeClient&&(t.proofUpgradeClient=y(void 0!==e.proofUpgradeClient?e.proofUpgradeClient:new Uint8Array)),void 0!==e.proofUpgradeConsensusState&&(t.proofUpgradeConsensusState=y(void 0!==e.proofUpgradeConsensusState?e.proofUpgradeConsensusState:new Uint8Array)),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o;const i=Object.assign({},l);return i.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",i.clientState=void 0!==e.clientState&&null!==e.clientState?a.Any.fromPartial(e.clientState):void 0,i.consensusState=void 0!==e.consensusState&&null!==e.consensusState?a.Any.fromPartial(e.consensusState):void 0,i.proofUpgradeClient=null!==(n=e.proofUpgradeClient)&&void 0!==n?n:new Uint8Array,i.proofUpgradeConsensusState=null!==(r=e.proofUpgradeConsensusState)&&void 0!==r?r:new Uint8Array,i.signer=null!==(o=e.signer)&&void 0!==o?o:"",i}};const A={};t.MsgUpgradeClientResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={clientId:"",signer:""};t.MsgSubmitMisbehaviour={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.misbehaviour&&a.Any.encode(e.misbehaviour,t.uint32(18).fork()).ldelim(),""!==e.signer&&t.uint32(26).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.misbehaviour=a.Any.decode(n,n.uint32());break;case 3:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.misbehaviour=void 0!==e.misbehaviour&&null!==e.misbehaviour?a.Any.fromJSON(e.misbehaviour):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.misbehaviour&&(t.misbehaviour=e.misbehaviour?a.Any.toJSON(e.misbehaviour):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},f);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.misbehaviour=void 0!==e.misbehaviour&&null!==e.misbehaviour?a.Any.fromPartial(e.misbehaviour):void 0,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const h={};t.MsgSubmitMisbehaviourResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.CreateClient=this.CreateClient.bind(this),this.UpdateClient=this.UpdateClient.bind(this),this.UpgradeClient=this.UpgradeClient.bind(this),this.SubmitMisbehaviour=this.SubmitMisbehaviour.bind(this)}CreateClient(e){const n=t.MsgCreateClient.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Msg","CreateClient",n).then((e=>t.MsgCreateClientResponse.decode(new i.default.Reader(e))))}UpdateClient(e){const n=t.MsgUpdateClient.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Msg","UpdateClient",n).then((e=>t.MsgUpdateClientResponse.decode(new i.default.Reader(e))))}UpgradeClient(e){const n=t.MsgUpgradeClient.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Msg","UpgradeClient",n).then((e=>t.MsgUpgradeClientResponse.decode(new i.default.Reader(e))))}SubmitMisbehaviour(e){const n=t.MsgSubmitMisbehaviour.encode(e).finish();return this.rpc.request("ibc.core.client.v1.Msg","SubmitMisbehaviour",n).then((e=>t.MsgSubmitMisbehaviourResponse.decode(new i.default.Reader(e))))}};var p=(()=>{if(void 0!==p)return p;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const g=p.atob||(e=>p.Buffer.from(e,"base64").toString("binary"));function m(e){const t=g(e),n=new Uint8Array(t.length);for(let e=0;ep.Buffer.from(e,"binary").toString("base64"));function y(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return v(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},228:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MerkleProof=t.MerklePath=t.MerklePrefix=t.MerkleRoot=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(2912);t.protobufPackage="ibc.core.commitment.v1";const s={};t.MerkleRoot={encode:(e,t=i.default.Writer.create())=>(0!==e.hash.length&&t.uint32(10).bytes(e.hash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(o.hash=new Uint8Array;n.pos>>3==1?o.hash=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},s);return t.hash=void 0!==e.hash&&null!==e.hash?f(e.hash):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.hash&&(t.hash=p(void 0!==e.hash?e.hash:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},s);return n.hash=null!==(t=e.hash)&&void 0!==t?t:new Uint8Array,n}};const c={};t.MerklePrefix={encode:(e,t=i.default.Writer.create())=>(0!==e.keyPrefix.length&&t.uint32(10).bytes(e.keyPrefix),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.keyPrefix=new Uint8Array;n.pos>>3==1?o.keyPrefix=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},c);return t.keyPrefix=void 0!==e.keyPrefix&&null!==e.keyPrefix?f(e.keyPrefix):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.keyPrefix&&(t.keyPrefix=p(void 0!==e.keyPrefix?e.keyPrefix:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},c);return n.keyPrefix=null!==(t=e.keyPrefix)&&void 0!==t?t:new Uint8Array,n}};const d={keyPath:""};t.MerklePath={encode(e,t=i.default.Writer.create()){for(const n of e.keyPath)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.keyPath=[];n.pos>>3==1?o.keyPath.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},d);return n.keyPath=(null!==(t=e.keyPath)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.keyPath?t.keyPath=e.keyPath.map((e=>e)):t.keyPath=[],t},fromPartial(e){var t;const n=Object.assign({},d);return n.keyPath=(null===(t=e.keyPath)||void 0===t?void 0:t.map((e=>e)))||[],n}};const u={};t.MerkleProof={encode(e,t=i.default.Writer.create()){for(const n of e.proofs)a.CommitmentProof.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.proofs=[];n.pos>>3==1?o.proofs.push(a.CommitmentProof.decode(n,n.uint32())):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.proofs=(null!==(t=e.proofs)&&void 0!==t?t:[]).map((e=>a.CommitmentProof.fromJSON(e))),n},toJSON(e){const t={};return e.proofs?t.proofs=e.proofs.map((e=>e?a.CommitmentProof.toJSON(e):void 0)):t.proofs=[],t},fromPartial(e){var t;const n=Object.assign({},u);return n.proofs=(null===(t=e.proofs)||void 0===t?void 0:t.map((e=>a.CommitmentProof.fromPartial(e))))||[],n}};var l=(()=>{if(void 0!==l)return l;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const A=l.atob||(e=>l.Buffer.from(e,"base64").toString("binary"));function f(e){const t=A(e),n=new Uint8Array(t.length);for(let e=0;el.Buffer.from(e,"binary").toString("base64"));function p(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return h(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},5698:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Version=t.ConnectionPaths=t.ClientPaths=t.Counterparty=t.IdentifiedConnection=t.ConnectionEnd=t.stateToJSON=t.stateFromJSON=t.State=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(228);var s;function c(e){switch(e){case 0:case"STATE_UNINITIALIZED_UNSPECIFIED":return s.STATE_UNINITIALIZED_UNSPECIFIED;case 1:case"STATE_INIT":return s.STATE_INIT;case 2:case"STATE_TRYOPEN":return s.STATE_TRYOPEN;case 3:case"STATE_OPEN":return s.STATE_OPEN;default:return s.UNRECOGNIZED}}function d(e){switch(e){case s.STATE_UNINITIALIZED_UNSPECIFIED:return"STATE_UNINITIALIZED_UNSPECIFIED";case s.STATE_INIT:return"STATE_INIT";case s.STATE_TRYOPEN:return"STATE_TRYOPEN";case s.STATE_OPEN:return"STATE_OPEN";default:return"UNKNOWN"}}t.protobufPackage="ibc.core.connection.v1",function(e){e[e.STATE_UNINITIALIZED_UNSPECIFIED=0]="STATE_UNINITIALIZED_UNSPECIFIED",e[e.STATE_INIT=1]="STATE_INIT",e[e.STATE_TRYOPEN=2]="STATE_TRYOPEN",e[e.STATE_OPEN=3]="STATE_OPEN",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(s=t.State||(t.State={})),t.stateFromJSON=c,t.stateToJSON=d;const u={clientId:"",state:0,delayPeriod:o.default.UZERO};t.ConnectionEnd={encode(e,n=i.default.Writer.create()){""!==e.clientId&&n.uint32(10).string(e.clientId);for(const r of e.versions)t.Version.encode(r,n.uint32(18).fork()).ldelim();return 0!==e.state&&n.uint32(24).int32(e.state),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,n.uint32(34).fork()).ldelim(),e.delayPeriod.isZero()||n.uint32(40).uint64(e.delayPeriod),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(a.versions=[];r.pos>>3){case 1:a.clientId=r.string();break;case 2:a.versions.push(t.Version.decode(r,r.uint32()));break;case 3:a.state=r.int32();break;case 4:a.counterparty=t.Counterparty.decode(r,r.uint32());break;case 5:a.delayPeriod=r.uint64();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},u);return r.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",r.versions=(null!==(n=e.versions)&&void 0!==n?n:[]).map((e=>t.Version.fromJSON(e))),r.state=void 0!==e.state&&null!==e.state?c(e.state):0,r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromJSON(e.counterparty):void 0,r.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromString(e.delayPeriod):o.default.UZERO,r},toJSON(e){const n={};return void 0!==e.clientId&&(n.clientId=e.clientId),e.versions?n.versions=e.versions.map((e=>e?t.Version.toJSON(e):void 0)):n.versions=[],void 0!==e.state&&(n.state=d(e.state)),void 0!==e.counterparty&&(n.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(n.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),n},fromPartial(e){var n,r,i;const a=Object.assign({},u);return a.clientId=null!==(n=e.clientId)&&void 0!==n?n:"",a.versions=(null===(r=e.versions)||void 0===r?void 0:r.map((e=>t.Version.fromPartial(e))))||[],a.state=null!==(i=e.state)&&void 0!==i?i:0,a.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromPartial(e.counterparty):void 0,a.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromValue(e.delayPeriod):o.default.UZERO,a}};const l={id:"",clientId:"",state:0,delayPeriod:o.default.UZERO};t.IdentifiedConnection={encode(e,n=i.default.Writer.create()){""!==e.id&&n.uint32(10).string(e.id),""!==e.clientId&&n.uint32(18).string(e.clientId);for(const r of e.versions)t.Version.encode(r,n.uint32(26).fork()).ldelim();return 0!==e.state&&n.uint32(32).int32(e.state),void 0!==e.counterparty&&t.Counterparty.encode(e.counterparty,n.uint32(42).fork()).ldelim(),e.delayPeriod.isZero()||n.uint32(48).uint64(e.delayPeriod),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},l);for(a.versions=[];r.pos>>3){case 1:a.id=r.string();break;case 2:a.clientId=r.string();break;case 3:a.versions.push(t.Version.decode(r,r.uint32()));break;case 4:a.state=r.int32();break;case 5:a.counterparty=t.Counterparty.decode(r,r.uint32());break;case 6:a.delayPeriod=r.uint64();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},l);return r.id=void 0!==e.id&&null!==e.id?String(e.id):"",r.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",r.versions=(null!==(n=e.versions)&&void 0!==n?n:[]).map((e=>t.Version.fromJSON(e))),r.state=void 0!==e.state&&null!==e.state?c(e.state):0,r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromJSON(e.counterparty):void 0,r.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromString(e.delayPeriod):o.default.UZERO,r},toJSON(e){const n={};return void 0!==e.id&&(n.id=e.id),void 0!==e.clientId&&(n.clientId=e.clientId),e.versions?n.versions=e.versions.map((e=>e?t.Version.toJSON(e):void 0)):n.versions=[],void 0!==e.state&&(n.state=d(e.state)),void 0!==e.counterparty&&(n.counterparty=e.counterparty?t.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(n.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),n},fromPartial(e){var n,r,i,a;const s=Object.assign({},l);return s.id=null!==(n=e.id)&&void 0!==n?n:"",s.clientId=null!==(r=e.clientId)&&void 0!==r?r:"",s.versions=(null===(i=e.versions)||void 0===i?void 0:i.map((e=>t.Version.fromPartial(e))))||[],s.state=null!==(a=e.state)&&void 0!==a?a:0,s.counterparty=void 0!==e.counterparty&&null!==e.counterparty?t.Counterparty.fromPartial(e.counterparty):void 0,s.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromValue(e.delayPeriod):o.default.UZERO,s}};const A={clientId:"",connectionId:""};t.Counterparty={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),""!==e.connectionId&&t.uint32(18).string(e.connectionId),void 0!==e.prefix&&a.MerklePrefix.encode(e.prefix,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.connectionId=n.string();break;case 3:o.prefix=a.MerklePrefix.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t.prefix=void 0!==e.prefix&&null!==e.prefix?a.MerklePrefix.fromJSON(e.prefix):void 0,t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.prefix&&(t.prefix=e.prefix?a.MerklePrefix.toJSON(e.prefix):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},A);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.connectionId=null!==(n=e.connectionId)&&void 0!==n?n:"",r.prefix=void 0!==e.prefix&&null!==e.prefix?a.MerklePrefix.fromPartial(e.prefix):void 0,r}};const f={paths:""};t.ClientPaths={encode(e,t=i.default.Writer.create()){for(const n of e.paths)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.paths=[];n.pos>>3==1?o.paths.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.paths=(null!==(t=e.paths)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.paths?t.paths=e.paths.map((e=>e)):t.paths=[],t},fromPartial(e){var t;const n=Object.assign({},f);return n.paths=(null===(t=e.paths)||void 0===t?void 0:t.map((e=>e)))||[],n}};const h={clientId:"",paths:""};t.ConnectionPaths={encode(e,t=i.default.Writer.create()){""!==e.clientId&&t.uint32(10).string(e.clientId);for(const n of e.paths)t.uint32(18).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.paths=[];n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.paths.push(n.string());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},h);return n.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",n.paths=(null!==(t=e.paths)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),e.paths?t.paths=e.paths.map((e=>e)):t.paths=[],t},fromPartial(e){var t,n;const r=Object.assign({},h);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.paths=(null===(n=e.paths)||void 0===n?void 0:n.map((e=>e)))||[],r}};const p={identifier:"",features:""};t.Version={encode(e,t=i.default.Writer.create()){""!==e.identifier&&t.uint32(10).string(e.identifier);for(const n of e.features)t.uint32(18).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.features=[];n.pos>>3){case 1:o.identifier=n.string();break;case 2:o.features.push(n.string());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.identifier=void 0!==e.identifier&&null!==e.identifier?String(e.identifier):"",n.features=(null!==(t=e.features)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return void 0!==e.identifier&&(t.identifier=e.identifier),e.features?t.features=e.features.map((e=>e)):t.features=[],t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.identifier=null!==(t=e.identifier)&&void 0!==t?t:"",r.features=(null===(n=e.features)||void 0===n?void 0:n.map((e=>e)))||[],r}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},2329:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.QueryClientImpl=t.QueryConnectionConsensusStateResponse=t.QueryConnectionConsensusStateRequest=t.QueryConnectionClientStateResponse=t.QueryConnectionClientStateRequest=t.QueryClientConnectionsResponse=t.QueryClientConnectionsRequest=t.QueryConnectionsResponse=t.QueryConnectionsRequest=t.QueryConnectionResponse=t.QueryConnectionRequest=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5698),s=n(5022),c=n(9551),d=n(3862);t.protobufPackage="ibc.core.connection.v1";const u={connectionId:""};t.QueryConnectionRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.pos>>3==1?o.connectionId=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},u);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),t},fromPartial(e){var t;const n=Object.assign({},u);return n.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",n}};const l={};t.QueryConnectionResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.connection&&a.ConnectionEnd.encode(e.connection,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.connection=a.ConnectionEnd.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},l);return t.connection=void 0!==e.connection&&null!==e.connection?a.ConnectionEnd.fromJSON(e.connection):void 0,t.proof=void 0!==e.proof&&null!==e.proof?C(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.connection&&(t.connection=e.connection?a.ConnectionEnd.toJSON(e.connection):void 0),void 0!==e.proof&&(t.proof=w(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},l);return n.connection=void 0!==e.connection&&null!==e.connection?a.ConnectionEnd.fromPartial(e.connection):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const A={};t.QueryConnectionsRequest={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pagination&&c.PageRequest.encode(e.pagination,t.uint32(10).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3==1?o.pagination=c.PageRequest.decode(n,n.uint32()):n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromJSON(e.pagination):void 0,t},toJSON(e){const t={};return void 0!==e.pagination&&(t.pagination=e.pagination?c.PageRequest.toJSON(e.pagination):void 0),t},fromPartial(e){const t=Object.assign({},A);return t.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageRequest.fromPartial(e.pagination):void 0,t}};const f={};t.QueryConnectionsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.connections)a.IdentifiedConnection.encode(n,t.uint32(10).fork()).ldelim();return void 0!==e.pagination&&c.PageResponse.encode(e.pagination,t.uint32(18).fork()).ldelim(),void 0!==e.height&&s.Height.encode(e.height,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.connections=[];n.pos>>3){case 1:o.connections.push(a.IdentifiedConnection.decode(n,n.uint32()));break;case 2:o.pagination=c.PageResponse.decode(n,n.uint32());break;case 3:o.height=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},f);return n.connections=(null!==(t=e.connections)&&void 0!==t?t:[]).map((e=>a.IdentifiedConnection.fromJSON(e))),n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromJSON(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromJSON(e.height):void 0,n},toJSON(e){const t={};return e.connections?t.connections=e.connections.map((e=>e?a.IdentifiedConnection.toJSON(e):void 0)):t.connections=[],void 0!==e.pagination&&(t.pagination=e.pagination?c.PageResponse.toJSON(e.pagination):void 0),void 0!==e.height&&(t.height=e.height?s.Height.toJSON(e.height):void 0),t},fromPartial(e){var t;const n=Object.assign({},f);return n.connections=(null===(t=e.connections)||void 0===t?void 0:t.map((e=>a.IdentifiedConnection.fromPartial(e))))||[],n.pagination=void 0!==e.pagination&&null!==e.pagination?c.PageResponse.fromPartial(e.pagination):void 0,n.height=void 0!==e.height&&null!==e.height?s.Height.fromPartial(e.height):void 0,n}};const h={clientId:""};t.QueryClientConnectionsRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.pos>>3==1?o.clientId=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},h);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),t},fromPartial(e){var t;const n=Object.assign({},h);return n.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",n}};const p={connectionPaths:""};t.QueryClientConnectionsResponse={encode(e,t=i.default.Writer.create()){for(const n of e.connectionPaths)t.uint32(10).string(n);return 0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.connectionPaths=[],o.proof=new Uint8Array;n.pos>>3){case 1:o.connectionPaths.push(n.string());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},p);return n.connectionPaths=(null!==(t=e.connectionPaths)&&void 0!==t?t:[]).map((e=>String(e))),n.proof=void 0!==e.proof&&null!==e.proof?C(e.proof):new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,n},toJSON(e){const t={};return e.connectionPaths?t.connectionPaths=e.connectionPaths.map((e=>e)):t.connectionPaths=[],void 0!==e.proof&&(t.proof=w(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},p);return r.connectionPaths=(null===(t=e.connectionPaths)||void 0===t?void 0:t.map((e=>e)))||[],r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}};const g={connectionId:""};t.QueryConnectionClientStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3==1?o.connectionId=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},g);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),t},fromPartial(e){var t;const n=Object.assign({},g);return n.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",n}};const m={};t.QueryConnectionClientStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.identifiedClientState&&s.IdentifiedClientState.encode(e.identifiedClientState,t.uint32(10).fork()).ldelim(),0!==e.proof.length&&t.uint32(18).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.identifiedClientState=s.IdentifiedClientState.decode(n,n.uint32());break;case 2:o.proof=n.bytes();break;case 3:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.identifiedClientState=void 0!==e.identifiedClientState&&null!==e.identifiedClientState?s.IdentifiedClientState.fromJSON(e.identifiedClientState):void 0,t.proof=void 0!==e.proof&&null!==e.proof?C(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.identifiedClientState&&(t.identifiedClientState=e.identifiedClientState?s.IdentifiedClientState.toJSON(e.identifiedClientState):void 0),void 0!==e.proof&&(t.proof=w(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t;const n=Object.assign({},m);return n.identifiedClientState=void 0!==e.identifiedClientState&&null!==e.identifiedClientState?s.IdentifiedClientState.fromPartial(e.identifiedClientState):void 0,n.proof=null!==(t=e.proof)&&void 0!==t?t:new Uint8Array,n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,n}};const v={connectionId:"",revisionNumber:o.default.UZERO,revisionHeight:o.default.UZERO};t.QueryConnectionConsensusStateRequest={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),e.revisionNumber.isZero()||t.uint32(16).uint64(e.revisionNumber),e.revisionHeight.isZero()||t.uint32(24).uint64(e.revisionHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},v);for(;n.pos>>3){case 1:o.connectionId=n.string();break;case 2:o.revisionNumber=n.uint64();break;case 3:o.revisionHeight=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},v);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromString(e.revisionNumber):o.default.UZERO,t.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromString(e.revisionHeight):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.revisionNumber&&(t.revisionNumber=(e.revisionNumber||o.default.UZERO).toString()),void 0!==e.revisionHeight&&(t.revisionHeight=(e.revisionHeight||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},v);return n.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",n.revisionNumber=void 0!==e.revisionNumber&&null!==e.revisionNumber?o.default.fromValue(e.revisionNumber):o.default.UZERO,n.revisionHeight=void 0!==e.revisionHeight&&null!==e.revisionHeight?o.default.fromValue(e.revisionHeight):o.default.UZERO,n}};const y={clientId:""};t.QueryConnectionConsensusStateResponse={encode:(e,t=i.default.Writer.create())=>(void 0!==e.consensusState&&d.Any.encode(e.consensusState,t.uint32(10).fork()).ldelim(),""!==e.clientId&&t.uint32(18).string(e.clientId),0!==e.proof.length&&t.uint32(26).bytes(e.proof),void 0!==e.proofHeight&&s.Height.encode(e.proofHeight,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},y);for(o.proof=new Uint8Array;n.pos>>3){case 1:o.consensusState=d.Any.decode(n,n.uint32());break;case 2:o.clientId=n.string();break;case 3:o.proof=n.bytes();break;case 4:o.proofHeight=s.Height.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},y);return t.consensusState=void 0!==e.consensusState&&null!==e.consensusState?d.Any.fromJSON(e.consensusState):void 0,t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.proof=void 0!==e.proof&&null!==e.proof?C(e.proof):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromJSON(e.proofHeight):void 0,t},toJSON(e){const t={};return void 0!==e.consensusState&&(t.consensusState=e.consensusState?d.Any.toJSON(e.consensusState):void 0),void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.proof&&(t.proof=w(void 0!==e.proof?e.proof:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?s.Height.toJSON(e.proofHeight):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},y);return r.consensusState=void 0!==e.consensusState&&null!==e.consensusState?d.Any.fromPartial(e.consensusState):void 0,r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.proof=null!==(n=e.proof)&&void 0!==n?n:new Uint8Array,r.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?s.Height.fromPartial(e.proofHeight):void 0,r}},t.QueryClientImpl=class{constructor(e){this.rpc=e,this.Connection=this.Connection.bind(this),this.Connections=this.Connections.bind(this),this.ClientConnections=this.ClientConnections.bind(this),this.ConnectionClientState=this.ConnectionClientState.bind(this),this.ConnectionConsensusState=this.ConnectionConsensusState.bind(this)}Connection(e){const n=t.QueryConnectionRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","Connection",n).then((e=>t.QueryConnectionResponse.decode(new i.default.Reader(e))))}Connections(e){const n=t.QueryConnectionsRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","Connections",n).then((e=>t.QueryConnectionsResponse.decode(new i.default.Reader(e))))}ClientConnections(e){const n=t.QueryClientConnectionsRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","ClientConnections",n).then((e=>t.QueryClientConnectionsResponse.decode(new i.default.Reader(e))))}ConnectionClientState(e){const n=t.QueryConnectionClientStateRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","ConnectionClientState",n).then((e=>t.QueryConnectionClientStateResponse.decode(new i.default.Reader(e))))}ConnectionConsensusState(e){const n=t.QueryConnectionConsensusStateRequest.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Query","ConnectionConsensusState",n).then((e=>t.QueryConnectionConsensusStateResponse.decode(new i.default.Reader(e))))}};var b=(()=>{if(void 0!==b)return b;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const I=b.atob||(e=>b.Buffer.from(e,"base64").toString("binary"));function C(e){const t=I(e),n=new Uint8Array(t.length);for(let e=0;eb.Buffer.from(e,"binary").toString("base64"));function w(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return E(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},4848:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MsgClientImpl=t.MsgConnectionOpenConfirmResponse=t.MsgConnectionOpenConfirm=t.MsgConnectionOpenAckResponse=t.MsgConnectionOpenAck=t.MsgConnectionOpenTryResponse=t.MsgConnectionOpenTry=t.MsgConnectionOpenInitResponse=t.MsgConnectionOpenInit=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5698),s=n(3862),c=n(5022);t.protobufPackage="ibc.core.connection.v1";const d={clientId:"",delayPeriod:o.default.UZERO,signer:""};t.MsgConnectionOpenInit={encode:(e,t=i.default.Writer.create())=>(""!==e.clientId&&t.uint32(10).string(e.clientId),void 0!==e.counterparty&&a.Counterparty.encode(e.counterparty,t.uint32(18).fork()).ldelim(),void 0!==e.version&&a.Version.encode(e.version,t.uint32(26).fork()).ldelim(),e.delayPeriod.isZero()||t.uint32(32).uint64(e.delayPeriod),""!==e.signer&&t.uint32(42).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.counterparty=a.Counterparty.decode(n,n.uint32());break;case 3:o.version=a.Version.decode(n,n.uint32());break;case 4:o.delayPeriod=n.uint64();break;case 5:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",t.counterparty=void 0!==e.counterparty&&null!==e.counterparty?a.Counterparty.fromJSON(e.counterparty):void 0,t.version=void 0!==e.version&&null!==e.version?a.Version.fromJSON(e.version):void 0,t.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromString(e.delayPeriod):o.default.UZERO,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.counterparty&&(t.counterparty=e.counterparty?a.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.version&&(t.version=e.version?a.Version.toJSON(e.version):void 0),void 0!==e.delayPeriod&&(t.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n;const r=Object.assign({},d);return r.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",r.counterparty=void 0!==e.counterparty&&null!==e.counterparty?a.Counterparty.fromPartial(e.counterparty):void 0,r.version=void 0!==e.version&&null!==e.version?a.Version.fromPartial(e.version):void 0,r.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromValue(e.delayPeriod):o.default.UZERO,r.signer=null!==(n=e.signer)&&void 0!==n?n:"",r}};const u={};t.MsgConnectionOpenInitResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(;n.posObject.assign({},u),toJSON:e=>({}),fromPartial:e=>Object.assign({},u)};const l={clientId:"",previousConnectionId:"",delayPeriod:o.default.UZERO,signer:""};t.MsgConnectionOpenTry={encode(e,t=i.default.Writer.create()){""!==e.clientId&&t.uint32(10).string(e.clientId),""!==e.previousConnectionId&&t.uint32(18).string(e.previousConnectionId),void 0!==e.clientState&&s.Any.encode(e.clientState,t.uint32(26).fork()).ldelim(),void 0!==e.counterparty&&a.Counterparty.encode(e.counterparty,t.uint32(34).fork()).ldelim(),e.delayPeriod.isZero()||t.uint32(40).uint64(e.delayPeriod);for(const n of e.counterpartyVersions)a.Version.encode(n,t.uint32(50).fork()).ldelim();return void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(58).fork()).ldelim(),0!==e.proofInit.length&&t.uint32(66).bytes(e.proofInit),0!==e.proofClient.length&&t.uint32(74).bytes(e.proofClient),0!==e.proofConsensus.length&&t.uint32(82).bytes(e.proofConsensus),void 0!==e.consensusHeight&&c.Height.encode(e.consensusHeight,t.uint32(90).fork()).ldelim(),""!==e.signer&&t.uint32(98).string(e.signer),t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(o.counterpartyVersions=[],o.proofInit=new Uint8Array,o.proofClient=new Uint8Array,o.proofConsensus=new Uint8Array;n.pos>>3){case 1:o.clientId=n.string();break;case 2:o.previousConnectionId=n.string();break;case 3:o.clientState=s.Any.decode(n,n.uint32());break;case 4:o.counterparty=a.Counterparty.decode(n,n.uint32());break;case 5:o.delayPeriod=n.uint64();break;case 6:o.counterpartyVersions.push(a.Version.decode(n,n.uint32()));break;case 7:o.proofHeight=c.Height.decode(n,n.uint32());break;case 8:o.proofInit=n.bytes();break;case 9:o.proofClient=n.bytes();break;case 10:o.proofConsensus=n.bytes();break;case 11:o.consensusHeight=c.Height.decode(n,n.uint32());break;case 12:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},l);return n.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",n.previousConnectionId=void 0!==e.previousConnectionId&&null!==e.previousConnectionId?String(e.previousConnectionId):"",n.clientState=void 0!==e.clientState&&null!==e.clientState?s.Any.fromJSON(e.clientState):void 0,n.counterparty=void 0!==e.counterparty&&null!==e.counterparty?a.Counterparty.fromJSON(e.counterparty):void 0,n.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromString(e.delayPeriod):o.default.UZERO,n.counterpartyVersions=(null!==(t=e.counterpartyVersions)&&void 0!==t?t:[]).map((e=>a.Version.fromJSON(e))),n.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromJSON(e.proofHeight):void 0,n.proofInit=void 0!==e.proofInit&&null!==e.proofInit?y(e.proofInit):new Uint8Array,n.proofClient=void 0!==e.proofClient&&null!==e.proofClient?y(e.proofClient):new Uint8Array,n.proofConsensus=void 0!==e.proofConsensus&&null!==e.proofConsensus?y(e.proofConsensus):new Uint8Array,n.consensusHeight=void 0!==e.consensusHeight&&null!==e.consensusHeight?c.Height.fromJSON(e.consensusHeight):void 0,n.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",n},toJSON(e){const t={};return void 0!==e.clientId&&(t.clientId=e.clientId),void 0!==e.previousConnectionId&&(t.previousConnectionId=e.previousConnectionId),void 0!==e.clientState&&(t.clientState=e.clientState?s.Any.toJSON(e.clientState):void 0),void 0!==e.counterparty&&(t.counterparty=e.counterparty?a.Counterparty.toJSON(e.counterparty):void 0),void 0!==e.delayPeriod&&(t.delayPeriod=(e.delayPeriod||o.default.UZERO).toString()),e.counterpartyVersions?t.counterpartyVersions=e.counterpartyVersions.map((e=>e?a.Version.toJSON(e):void 0)):t.counterpartyVersions=[],void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.proofInit&&(t.proofInit=I(void 0!==e.proofInit?e.proofInit:new Uint8Array)),void 0!==e.proofClient&&(t.proofClient=I(void 0!==e.proofClient?e.proofClient:new Uint8Array)),void 0!==e.proofConsensus&&(t.proofConsensus=I(void 0!==e.proofConsensus?e.proofConsensus:new Uint8Array)),void 0!==e.consensusHeight&&(t.consensusHeight=e.consensusHeight?c.Height.toJSON(e.consensusHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,i,d,u,A;const f=Object.assign({},l);return f.clientId=null!==(t=e.clientId)&&void 0!==t?t:"",f.previousConnectionId=null!==(n=e.previousConnectionId)&&void 0!==n?n:"",f.clientState=void 0!==e.clientState&&null!==e.clientState?s.Any.fromPartial(e.clientState):void 0,f.counterparty=void 0!==e.counterparty&&null!==e.counterparty?a.Counterparty.fromPartial(e.counterparty):void 0,f.delayPeriod=void 0!==e.delayPeriod&&null!==e.delayPeriod?o.default.fromValue(e.delayPeriod):o.default.UZERO,f.counterpartyVersions=(null===(r=e.counterpartyVersions)||void 0===r?void 0:r.map((e=>a.Version.fromPartial(e))))||[],f.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromPartial(e.proofHeight):void 0,f.proofInit=null!==(i=e.proofInit)&&void 0!==i?i:new Uint8Array,f.proofClient=null!==(d=e.proofClient)&&void 0!==d?d:new Uint8Array,f.proofConsensus=null!==(u=e.proofConsensus)&&void 0!==u?u:new Uint8Array,f.consensusHeight=void 0!==e.consensusHeight&&null!==e.consensusHeight?c.Height.fromPartial(e.consensusHeight):void 0,f.signer=null!==(A=e.signer)&&void 0!==A?A:"",f}};const A={};t.MsgConnectionOpenTryResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.posObject.assign({},A),toJSON:e=>({}),fromPartial:e=>Object.assign({},A)};const f={connectionId:"",counterpartyConnectionId:"",signer:""};t.MsgConnectionOpenAck={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),""!==e.counterpartyConnectionId&&t.uint32(18).string(e.counterpartyConnectionId),void 0!==e.version&&a.Version.encode(e.version,t.uint32(26).fork()).ldelim(),void 0!==e.clientState&&s.Any.encode(e.clientState,t.uint32(34).fork()).ldelim(),void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(42).fork()).ldelim(),0!==e.proofTry.length&&t.uint32(50).bytes(e.proofTry),0!==e.proofClient.length&&t.uint32(58).bytes(e.proofClient),0!==e.proofConsensus.length&&t.uint32(66).bytes(e.proofConsensus),void 0!==e.consensusHeight&&c.Height.encode(e.consensusHeight,t.uint32(74).fork()).ldelim(),""!==e.signer&&t.uint32(82).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},f);for(o.proofTry=new Uint8Array,o.proofClient=new Uint8Array,o.proofConsensus=new Uint8Array;n.pos>>3){case 1:o.connectionId=n.string();break;case 2:o.counterpartyConnectionId=n.string();break;case 3:o.version=a.Version.decode(n,n.uint32());break;case 4:o.clientState=s.Any.decode(n,n.uint32());break;case 5:o.proofHeight=c.Height.decode(n,n.uint32());break;case 6:o.proofTry=n.bytes();break;case 7:o.proofClient=n.bytes();break;case 8:o.proofConsensus=n.bytes();break;case 9:o.consensusHeight=c.Height.decode(n,n.uint32());break;case 10:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},f);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t.counterpartyConnectionId=void 0!==e.counterpartyConnectionId&&null!==e.counterpartyConnectionId?String(e.counterpartyConnectionId):"",t.version=void 0!==e.version&&null!==e.version?a.Version.fromJSON(e.version):void 0,t.clientState=void 0!==e.clientState&&null!==e.clientState?s.Any.fromJSON(e.clientState):void 0,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromJSON(e.proofHeight):void 0,t.proofTry=void 0!==e.proofTry&&null!==e.proofTry?y(e.proofTry):new Uint8Array,t.proofClient=void 0!==e.proofClient&&null!==e.proofClient?y(e.proofClient):new Uint8Array,t.proofConsensus=void 0!==e.proofConsensus&&null!==e.proofConsensus?y(e.proofConsensus):new Uint8Array,t.consensusHeight=void 0!==e.consensusHeight&&null!==e.consensusHeight?c.Height.fromJSON(e.consensusHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.counterpartyConnectionId&&(t.counterpartyConnectionId=e.counterpartyConnectionId),void 0!==e.version&&(t.version=e.version?a.Version.toJSON(e.version):void 0),void 0!==e.clientState&&(t.clientState=e.clientState?s.Any.toJSON(e.clientState):void 0),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.proofTry&&(t.proofTry=I(void 0!==e.proofTry?e.proofTry:new Uint8Array)),void 0!==e.proofClient&&(t.proofClient=I(void 0!==e.proofClient?e.proofClient:new Uint8Array)),void 0!==e.proofConsensus&&(t.proofConsensus=I(void 0!==e.proofConsensus?e.proofConsensus:new Uint8Array)),void 0!==e.consensusHeight&&(t.consensusHeight=e.consensusHeight?c.Height.toJSON(e.consensusHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r,o,i,d;const u=Object.assign({},f);return u.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",u.counterpartyConnectionId=null!==(n=e.counterpartyConnectionId)&&void 0!==n?n:"",u.version=void 0!==e.version&&null!==e.version?a.Version.fromPartial(e.version):void 0,u.clientState=void 0!==e.clientState&&null!==e.clientState?s.Any.fromPartial(e.clientState):void 0,u.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromPartial(e.proofHeight):void 0,u.proofTry=null!==(r=e.proofTry)&&void 0!==r?r:new Uint8Array,u.proofClient=null!==(o=e.proofClient)&&void 0!==o?o:new Uint8Array,u.proofConsensus=null!==(i=e.proofConsensus)&&void 0!==i?i:new Uint8Array,u.consensusHeight=void 0!==e.consensusHeight&&null!==e.consensusHeight?c.Height.fromPartial(e.consensusHeight):void 0,u.signer=null!==(d=e.signer)&&void 0!==d?d:"",u}};const h={};t.MsgConnectionOpenAckResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(;n.posObject.assign({},h),toJSON:e=>({}),fromPartial:e=>Object.assign({},h)};const p={connectionId:"",signer:""};t.MsgConnectionOpenConfirm={encode:(e,t=i.default.Writer.create())=>(""!==e.connectionId&&t.uint32(10).string(e.connectionId),0!==e.proofAck.length&&t.uint32(18).bytes(e.proofAck),void 0!==e.proofHeight&&c.Height.encode(e.proofHeight,t.uint32(26).fork()).ldelim(),""!==e.signer&&t.uint32(34).string(e.signer),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},p);for(o.proofAck=new Uint8Array;n.pos>>3){case 1:o.connectionId=n.string();break;case 2:o.proofAck=n.bytes();break;case 3:o.proofHeight=c.Height.decode(n,n.uint32());break;case 4:o.signer=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},p);return t.connectionId=void 0!==e.connectionId&&null!==e.connectionId?String(e.connectionId):"",t.proofAck=void 0!==e.proofAck&&null!==e.proofAck?y(e.proofAck):new Uint8Array,t.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromJSON(e.proofHeight):void 0,t.signer=void 0!==e.signer&&null!==e.signer?String(e.signer):"",t},toJSON(e){const t={};return void 0!==e.connectionId&&(t.connectionId=e.connectionId),void 0!==e.proofAck&&(t.proofAck=I(void 0!==e.proofAck?e.proofAck:new Uint8Array)),void 0!==e.proofHeight&&(t.proofHeight=e.proofHeight?c.Height.toJSON(e.proofHeight):void 0),void 0!==e.signer&&(t.signer=e.signer),t},fromPartial(e){var t,n,r;const o=Object.assign({},p);return o.connectionId=null!==(t=e.connectionId)&&void 0!==t?t:"",o.proofAck=null!==(n=e.proofAck)&&void 0!==n?n:new Uint8Array,o.proofHeight=void 0!==e.proofHeight&&null!==e.proofHeight?c.Height.fromPartial(e.proofHeight):void 0,o.signer=null!==(r=e.signer)&&void 0!==r?r:"",o}};const g={};t.MsgConnectionOpenConfirmResponse={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.posObject.assign({},g),toJSON:e=>({}),fromPartial:e=>Object.assign({},g)},t.MsgClientImpl=class{constructor(e){this.rpc=e,this.ConnectionOpenInit=this.ConnectionOpenInit.bind(this),this.ConnectionOpenTry=this.ConnectionOpenTry.bind(this),this.ConnectionOpenAck=this.ConnectionOpenAck.bind(this),this.ConnectionOpenConfirm=this.ConnectionOpenConfirm.bind(this)}ConnectionOpenInit(e){const n=t.MsgConnectionOpenInit.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Msg","ConnectionOpenInit",n).then((e=>t.MsgConnectionOpenInitResponse.decode(new i.default.Reader(e))))}ConnectionOpenTry(e){const n=t.MsgConnectionOpenTry.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Msg","ConnectionOpenTry",n).then((e=>t.MsgConnectionOpenTryResponse.decode(new i.default.Reader(e))))}ConnectionOpenAck(e){const n=t.MsgConnectionOpenAck.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Msg","ConnectionOpenAck",n).then((e=>t.MsgConnectionOpenAckResponse.decode(new i.default.Reader(e))))}ConnectionOpenConfirm(e){const n=t.MsgConnectionOpenConfirm.encode(e).finish();return this.rpc.request("ibc.core.connection.v1.Msg","ConnectionOpenConfirm",n).then((e=>t.MsgConnectionOpenConfirmResponse.decode(new i.default.Reader(e))))}};var m=(()=>{if(void 0!==m)return m;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const v=m.atob||(e=>m.Buffer.from(e,"base64").toString("binary"));function y(e){const t=v(e),n=new Uint8Array(t.length);for(let e=0;em.Buffer.from(e,"binary").toString("base64"));function I(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return b(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1234:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Fraction=t.Header=t.Misbehaviour=t.ConsensusState=t.ClientState=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(281),s=n(5022),c=n(5522),d=n(228),u=n(1258),l=n(3444),A=n(2912);t.protobufPackage="ibc.lightclients.tendermint.v1";const f={chainId:"",upgradePath:"",allowUpdateAfterExpiry:!1,allowUpdateAfterMisbehaviour:!1};t.ClientState={encode(e,n=i.default.Writer.create()){""!==e.chainId&&n.uint32(10).string(e.chainId),void 0!==e.trustLevel&&t.Fraction.encode(e.trustLevel,n.uint32(18).fork()).ldelim(),void 0!==e.trustingPeriod&&a.Duration.encode(e.trustingPeriod,n.uint32(26).fork()).ldelim(),void 0!==e.unbondingPeriod&&a.Duration.encode(e.unbondingPeriod,n.uint32(34).fork()).ldelim(),void 0!==e.maxClockDrift&&a.Duration.encode(e.maxClockDrift,n.uint32(42).fork()).ldelim(),void 0!==e.frozenHeight&&s.Height.encode(e.frozenHeight,n.uint32(50).fork()).ldelim(),void 0!==e.latestHeight&&s.Height.encode(e.latestHeight,n.uint32(58).fork()).ldelim();for(const t of e.proofSpecs)A.ProofSpec.encode(t,n.uint32(66).fork()).ldelim();for(const t of e.upgradePath)n.uint32(74).string(t);return!0===e.allowUpdateAfterExpiry&&n.uint32(80).bool(e.allowUpdateAfterExpiry),!0===e.allowUpdateAfterMisbehaviour&&n.uint32(88).bool(e.allowUpdateAfterMisbehaviour),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const c=Object.assign({},f);for(c.proofSpecs=[],c.upgradePath=[];r.pos>>3){case 1:c.chainId=r.string();break;case 2:c.trustLevel=t.Fraction.decode(r,r.uint32());break;case 3:c.trustingPeriod=a.Duration.decode(r,r.uint32());break;case 4:c.unbondingPeriod=a.Duration.decode(r,r.uint32());break;case 5:c.maxClockDrift=a.Duration.decode(r,r.uint32());break;case 6:c.frozenHeight=s.Height.decode(r,r.uint32());break;case 7:c.latestHeight=s.Height.decode(r,r.uint32());break;case 8:c.proofSpecs.push(A.ProofSpec.decode(r,r.uint32()));break;case 9:c.upgradePath.push(r.string());break;case 10:c.allowUpdateAfterExpiry=r.bool();break;case 11:c.allowUpdateAfterMisbehaviour=r.bool();break;default:r.skipType(7&e)}}return c},fromJSON(e){var n,r;const o=Object.assign({},f);return o.chainId=void 0!==e.chainId&&null!==e.chainId?String(e.chainId):"",o.trustLevel=void 0!==e.trustLevel&&null!==e.trustLevel?t.Fraction.fromJSON(e.trustLevel):void 0,o.trustingPeriod=void 0!==e.trustingPeriod&&null!==e.trustingPeriod?a.Duration.fromJSON(e.trustingPeriod):void 0,o.unbondingPeriod=void 0!==e.unbondingPeriod&&null!==e.unbondingPeriod?a.Duration.fromJSON(e.unbondingPeriod):void 0,o.maxClockDrift=void 0!==e.maxClockDrift&&null!==e.maxClockDrift?a.Duration.fromJSON(e.maxClockDrift):void 0,o.frozenHeight=void 0!==e.frozenHeight&&null!==e.frozenHeight?s.Height.fromJSON(e.frozenHeight):void 0,o.latestHeight=void 0!==e.latestHeight&&null!==e.latestHeight?s.Height.fromJSON(e.latestHeight):void 0,o.proofSpecs=(null!==(n=e.proofSpecs)&&void 0!==n?n:[]).map((e=>A.ProofSpec.fromJSON(e))),o.upgradePath=(null!==(r=e.upgradePath)&&void 0!==r?r:[]).map((e=>String(e))),o.allowUpdateAfterExpiry=void 0!==e.allowUpdateAfterExpiry&&null!==e.allowUpdateAfterExpiry&&Boolean(e.allowUpdateAfterExpiry),o.allowUpdateAfterMisbehaviour=void 0!==e.allowUpdateAfterMisbehaviour&&null!==e.allowUpdateAfterMisbehaviour&&Boolean(e.allowUpdateAfterMisbehaviour),o},toJSON(e){const n={};return void 0!==e.chainId&&(n.chainId=e.chainId),void 0!==e.trustLevel&&(n.trustLevel=e.trustLevel?t.Fraction.toJSON(e.trustLevel):void 0),void 0!==e.trustingPeriod&&(n.trustingPeriod=e.trustingPeriod?a.Duration.toJSON(e.trustingPeriod):void 0),void 0!==e.unbondingPeriod&&(n.unbondingPeriod=e.unbondingPeriod?a.Duration.toJSON(e.unbondingPeriod):void 0),void 0!==e.maxClockDrift&&(n.maxClockDrift=e.maxClockDrift?a.Duration.toJSON(e.maxClockDrift):void 0),void 0!==e.frozenHeight&&(n.frozenHeight=e.frozenHeight?s.Height.toJSON(e.frozenHeight):void 0),void 0!==e.latestHeight&&(n.latestHeight=e.latestHeight?s.Height.toJSON(e.latestHeight):void 0),e.proofSpecs?n.proofSpecs=e.proofSpecs.map((e=>e?A.ProofSpec.toJSON(e):void 0)):n.proofSpecs=[],e.upgradePath?n.upgradePath=e.upgradePath.map((e=>e)):n.upgradePath=[],void 0!==e.allowUpdateAfterExpiry&&(n.allowUpdateAfterExpiry=e.allowUpdateAfterExpiry),void 0!==e.allowUpdateAfterMisbehaviour&&(n.allowUpdateAfterMisbehaviour=e.allowUpdateAfterMisbehaviour),n},fromPartial(e){var n,r,o,i,c;const d=Object.assign({},f);return d.chainId=null!==(n=e.chainId)&&void 0!==n?n:"",d.trustLevel=void 0!==e.trustLevel&&null!==e.trustLevel?t.Fraction.fromPartial(e.trustLevel):void 0,d.trustingPeriod=void 0!==e.trustingPeriod&&null!==e.trustingPeriod?a.Duration.fromPartial(e.trustingPeriod):void 0,d.unbondingPeriod=void 0!==e.unbondingPeriod&&null!==e.unbondingPeriod?a.Duration.fromPartial(e.unbondingPeriod):void 0,d.maxClockDrift=void 0!==e.maxClockDrift&&null!==e.maxClockDrift?a.Duration.fromPartial(e.maxClockDrift):void 0,d.frozenHeight=void 0!==e.frozenHeight&&null!==e.frozenHeight?s.Height.fromPartial(e.frozenHeight):void 0,d.latestHeight=void 0!==e.latestHeight&&null!==e.latestHeight?s.Height.fromPartial(e.latestHeight):void 0,d.proofSpecs=(null===(r=e.proofSpecs)||void 0===r?void 0:r.map((e=>A.ProofSpec.fromPartial(e))))||[],d.upgradePath=(null===(o=e.upgradePath)||void 0===o?void 0:o.map((e=>e)))||[],d.allowUpdateAfterExpiry=null!==(i=e.allowUpdateAfterExpiry)&&void 0!==i&&i,d.allowUpdateAfterMisbehaviour=null!==(c=e.allowUpdateAfterMisbehaviour)&&void 0!==c&&c,d}};const h={};t.ConsensusState={encode:(e,t=i.default.Writer.create())=>(void 0!==e.timestamp&&c.Timestamp.encode(e.timestamp,t.uint32(10).fork()).ldelim(),void 0!==e.root&&d.MerkleRoot.encode(e.root,t.uint32(18).fork()).ldelim(),0!==e.nextValidatorsHash.length&&t.uint32(26).bytes(e.nextValidatorsHash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},h);for(o.nextValidatorsHash=new Uint8Array;n.pos>>3){case 1:o.timestamp=c.Timestamp.decode(n,n.uint32());break;case 2:o.root=d.MerkleRoot.decode(n,n.uint32());break;case 3:o.nextValidatorsHash=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},h);var n;return t.timestamp=void 0!==e.timestamp&&null!==e.timestamp?(n=e.timestamp)instanceof Date?I(n):"string"==typeof n?I(new Date(n)):c.Timestamp.fromJSON(n):void 0,t.root=void 0!==e.root&&null!==e.root?d.MerkleRoot.fromJSON(e.root):void 0,t.nextValidatorsHash=void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash?function(e){const t=y(e),n=new Uint8Array(t.length);for(let e=0;e(""!==e.clientId&&n.uint32(10).string(e.clientId),void 0!==e.header1&&t.Header.encode(e.header1,n.uint32(18).fork()).ldelim(),void 0!==e.header2&&t.Header.encode(e.header2,n.uint32(26).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},p);for(;r.pos>>3){case 1:a.clientId=r.string();break;case 2:a.header1=t.Header.decode(r,r.uint32());break;case 3:a.header2=t.Header.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},p);return n.clientId=void 0!==e.clientId&&null!==e.clientId?String(e.clientId):"",n.header1=void 0!==e.header1&&null!==e.header1?t.Header.fromJSON(e.header1):void 0,n.header2=void 0!==e.header2&&null!==e.header2?t.Header.fromJSON(e.header2):void 0,n},toJSON(e){const n={};return void 0!==e.clientId&&(n.clientId=e.clientId),void 0!==e.header1&&(n.header1=e.header1?t.Header.toJSON(e.header1):void 0),void 0!==e.header2&&(n.header2=e.header2?t.Header.toJSON(e.header2):void 0),n},fromPartial(e){var n;const r=Object.assign({},p);return r.clientId=null!==(n=e.clientId)&&void 0!==n?n:"",r.header1=void 0!==e.header1&&null!==e.header1?t.Header.fromPartial(e.header1):void 0,r.header2=void 0!==e.header2&&null!==e.header2?t.Header.fromPartial(e.header2):void 0,r}};const g={};t.Header={encode:(e,t=i.default.Writer.create())=>(void 0!==e.signedHeader&&u.SignedHeader.encode(e.signedHeader,t.uint32(10).fork()).ldelim(),void 0!==e.validatorSet&&l.ValidatorSet.encode(e.validatorSet,t.uint32(18).fork()).ldelim(),void 0!==e.trustedHeight&&s.Height.encode(e.trustedHeight,t.uint32(26).fork()).ldelim(),void 0!==e.trustedValidators&&l.ValidatorSet.encode(e.trustedValidators,t.uint32(34).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(;n.pos>>3){case 1:o.signedHeader=u.SignedHeader.decode(n,n.uint32());break;case 2:o.validatorSet=l.ValidatorSet.decode(n,n.uint32());break;case 3:o.trustedHeight=s.Height.decode(n,n.uint32());break;case 4:o.trustedValidators=l.ValidatorSet.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.signedHeader=void 0!==e.signedHeader&&null!==e.signedHeader?u.SignedHeader.fromJSON(e.signedHeader):void 0,t.validatorSet=void 0!==e.validatorSet&&null!==e.validatorSet?l.ValidatorSet.fromJSON(e.validatorSet):void 0,t.trustedHeight=void 0!==e.trustedHeight&&null!==e.trustedHeight?s.Height.fromJSON(e.trustedHeight):void 0,t.trustedValidators=void 0!==e.trustedValidators&&null!==e.trustedValidators?l.ValidatorSet.fromJSON(e.trustedValidators):void 0,t},toJSON(e){const t={};return void 0!==e.signedHeader&&(t.signedHeader=e.signedHeader?u.SignedHeader.toJSON(e.signedHeader):void 0),void 0!==e.validatorSet&&(t.validatorSet=e.validatorSet?l.ValidatorSet.toJSON(e.validatorSet):void 0),void 0!==e.trustedHeight&&(t.trustedHeight=e.trustedHeight?s.Height.toJSON(e.trustedHeight):void 0),void 0!==e.trustedValidators&&(t.trustedValidators=e.trustedValidators?l.ValidatorSet.toJSON(e.trustedValidators):void 0),t},fromPartial(e){const t=Object.assign({},g);return t.signedHeader=void 0!==e.signedHeader&&null!==e.signedHeader?u.SignedHeader.fromPartial(e.signedHeader):void 0,t.validatorSet=void 0!==e.validatorSet&&null!==e.validatorSet?l.ValidatorSet.fromPartial(e.validatorSet):void 0,t.trustedHeight=void 0!==e.trustedHeight&&null!==e.trustedHeight?s.Height.fromPartial(e.trustedHeight):void 0,t.trustedValidators=void 0!==e.trustedValidators&&null!==e.trustedValidators?l.ValidatorSet.fromPartial(e.trustedValidators):void 0,t}};const m={numerator:o.default.UZERO,denominator:o.default.UZERO};t.Fraction={encode:(e,t=i.default.Writer.create())=>(e.numerator.isZero()||t.uint32(8).uint64(e.numerator),e.denominator.isZero()||t.uint32(16).uint64(e.denominator),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(;n.pos>>3){case 1:o.numerator=n.uint64();break;case 2:o.denominator=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.numerator=void 0!==e.numerator&&null!==e.numerator?o.default.fromString(e.numerator):o.default.UZERO,t.denominator=void 0!==e.denominator&&null!==e.denominator?o.default.fromString(e.denominator):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.numerator&&(t.numerator=(e.numerator||o.default.UZERO).toString()),void 0!==e.denominator&&(t.denominator=(e.denominator||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},m);return t.numerator=void 0!==e.numerator&&null!==e.numerator?o.default.fromValue(e.numerator):o.default.UZERO,t.denominator=void 0!==e.denominator&&null!==e.denominator?o.default.fromValue(e.denominator):o.default.UZERO,t}};var v=(()=>{if(void 0!==v)return v;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const y=v.atob||(e=>v.Buffer.from(e,"base64").toString("binary")),b=v.btoa||(e=>v.Buffer.from(e,"binary").toString("base64"));function I(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3789:(e,t,n)=>{"use strict";e.exports=n(9570)},9570:(e,t,n)=>{"use strict";var r=t;function o(){r.util._configure(),r.Writer._configure(r.BufferWriter),r.Reader._configure(r.BufferReader)}r.build="minimal",r.Writer=n(5683),r.BufferWriter=n(8128),r.Reader=n(8489),r.BufferReader=n(1292),r.util=n(2554),r.rpc=n(7622),r.roots=n(6474),r.configure=o,o()},8489:(e,t,n)=>{"use strict";e.exports=c;var r,o=n(2554),i=o.LongBits,a=o.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function c(e){this.buf=e,this.pos=0,this.len=e.length}var d,u="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new c(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new c(e);throw Error("illegal buffer")},l=function(){return o.Buffer?function(e){return(c.create=function(e){return o.Buffer.isBuffer(e)?new r(e):u(e)})(e)}:u};function A(){var e=new i(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function f(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function h(){if(this.pos+8>this.len)throw s(this,8);return new i(f(this.buf,this.pos+=4),f(this.buf,this.pos+=4))}c.create=l(),c.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,c.prototype.uint32=(d=4294967295,function(){if(d=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return d;if(d=(d|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return d;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return d}),c.prototype.int32=function(){return 0|this.uint32()},c.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},c.prototype.bool=function(){return 0!==this.uint32()},c.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return f(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|f(this.buf,this.pos+=4)},c.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},c.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},c.prototype.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw s(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,n):t===n?new this.buf.constructor(0):this._slice.call(this.buf,t,n)},c.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},c.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},c.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},c._configure=function(e){r=e,c.create=l(),r._configure();var t=o.Long?"toLong":"toNumber";o.merge(c.prototype,{int64:function(){return A.call(this)[t](!1)},uint64:function(){return A.call(this)[t](!0)},sint64:function(){return A.call(this).zzDecode()[t](!1)},fixed64:function(){return h.call(this)[t](!0)},sfixed64:function(){return h.call(this)[t](!1)}})}},1292:(e,t,n)=>{"use strict";e.exports=i;var r=n(8489);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(2554);function i(e){r.call(this,e)}i._configure=function(){o.Buffer&&(i.prototype._slice=o.Buffer.prototype.slice)},i.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},i._configure()},6474:e=>{"use strict";e.exports={}},7622:(e,t,n)=>{"use strict";t.Service=n(336)},336:(e,t,n)=>{"use strict";e.exports=o;var r=n(2554);function o(e,t,n){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");r.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(n)}(o.prototype=Object.create(r.EventEmitter.prototype)).constructor=o,o.prototype.rpcCall=function e(t,n,o,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return r.asPromise(e,s,t,n,o,i);if(s.rpcImpl)try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),(function(e,n){if(e)return s.emit("error",e,t),a(e);if(null!==n){if(!(n instanceof o))try{n=o[s.responseDelimited?"decodeDelimited":"decode"](n)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",n,t),a(null,n)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},o.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},8227:(e,t,n)=>{"use strict";e.exports=o;var r=n(2554);function o(e,t){this.lo=e>>>0,this.hi=t>>>0}var i=o.zero=new o(0,0);i.toNumber=function(){return 0},i.zzEncode=i.zzDecode=function(){return this},i.length=function(){return 1};var a=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(e){if(0===e)return i;var t=e<0;t&&(e=-e);var n=e>>>0,r=(e-n)/4294967296>>>0;return t&&(r=~r>>>0,n=~n>>>0,++n>4294967295&&(n=0,++r>4294967295&&(r=0))),new o(n,r)},o.from=function(e){if("number"==typeof e)return o.fromNumber(e);if(r.isString(e)){if(!r.Long)return o.fromNumber(parseInt(e,10));e=r.Long.fromString(e)}return e.low||e.high?new o(e.low>>>0,e.high>>>0):i},o.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+4294967296*n)}return this.lo+4294967296*this.hi},o.prototype.toLong=function(e){return r.Long?new r.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;o.fromHash=function(e){return e===a?i:new o((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},o.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},o.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return 0===n?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}},2554:function(e,t,n){"use strict";var r=t;function o(e,t,n){for(var r=Object.keys(t),o=0;o0)},r.Buffer=function(){try{var e=r.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),r._Buffer_from=null,r._Buffer_allocUnsafe=null,r.newBuffer=function(e){return"number"==typeof e?r.Buffer?r._Buffer_allocUnsafe(e):new r.Array(e):r.Buffer?r._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},r.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,r.Long=r.global.dcodeIO&&r.global.dcodeIO.Long||r.global.Long||r.inquire("long"),r.key2Re=/^true|false|0|1$/,r.key32Re=/^-?(?:0|[1-9][0-9]*)$/,r.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,r.longToHash=function(e){return e?r.LongBits.from(e).toHash():r.LongBits.zeroHash},r.longFromHash=function(e,t){var n=r.LongBits.fromHash(e);return r.Long?r.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))},r.merge=o,r.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},r.newError=i,r.ProtocolError=i("ProtocolError"),r.oneOfGetter=function(e){for(var t={},n=0;n-1;--n)if(1===t[e[n]]&&void 0!==this[e[n]]&&null!==this[e[n]])return e[n]}},r.oneOfSetter=function(e){return function(t){for(var n=0;n{"use strict";e.exports=l;var r,o=n(2554),i=o.LongBits,a=o.base64,s=o.utf8;function c(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}function d(){}function u(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function l(){this.len=0,this.head=new c(d,0,0),this.tail=this.head,this.states=null}var A=function(){return o.Buffer?function(){return(l.create=function(){return new r})()}:function(){return new l}};function f(e,t,n){t[n]=255&e}function h(e,t){this.len=e,this.next=void 0,this.val=t}function p(e,t,n){for(;e.hi;)t[n++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[n++]=127&e.lo|128,e.lo=e.lo>>>7;t[n++]=e.lo}function g(e,t,n){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}l.create=A(),l.alloc=function(e){return new o.Array(e)},o.Array!==Array&&(l.alloc=o.pool(l.alloc,o.Array.prototype.subarray)),l.prototype._push=function(e,t,n){return this.tail=this.tail.next=new c(e,t,n),this.len+=t,this},h.prototype=Object.create(c.prototype),h.prototype.fn=function(e,t,n){for(;e>127;)t[n++]=127&e|128,e>>>=7;t[n]=e},l.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new h((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},l.prototype.int32=function(e){return e<0?this._push(p,10,i.fromNumber(e)):this.uint32(e)},l.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},l.prototype.uint64=function(e){var t=i.from(e);return this._push(p,t.length(),t)},l.prototype.int64=l.prototype.uint64,l.prototype.sint64=function(e){var t=i.from(e).zzEncode();return this._push(p,t.length(),t)},l.prototype.bool=function(e){return this._push(f,1,e?1:0)},l.prototype.fixed32=function(e){return this._push(g,4,e>>>0)},l.prototype.sfixed32=l.prototype.fixed32,l.prototype.fixed64=function(e){var t=i.from(e);return this._push(g,4,t.lo)._push(g,4,t.hi)},l.prototype.sfixed64=l.prototype.fixed64,l.prototype.float=function(e){return this._push(o.float.writeFloatLE,4,e)},l.prototype.double=function(e){return this._push(o.float.writeDoubleLE,8,e)};var m=o.Array.prototype.set?function(e,t,n){t.set(e,n)}:function(e,t,n){for(var r=0;r>>0;if(!t)return this._push(f,1,0);if(o.isString(e)){var n=l.alloc(t=a.length(e));a.decode(e,n,0),e=n}return this.uint32(t)._push(m,t,e)},l.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(f,1,0)},l.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new c(d,0,0),this.len=0,this},l.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(d,0,0),this.len=0),this},l.prototype.ldelim=function(){var e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=t,this.len+=n),this},l.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t},l._configure=function(e){r=e,l.create=A(),r._configure()}},8128:(e,t,n)=>{"use strict";e.exports=i;var r=n(5683);(i.prototype=Object.create(r.prototype)).constructor=i;var o=n(2554);function i(){r.call(this)}function a(e,t,n){e.length<40?o.utf8.write(e,t,n):t.utf8Write?t.utf8Write(e,n):t.write(e,n)}i._configure=function(){i.alloc=o._Buffer_allocUnsafe,i.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&"set"===o.Buffer.prototype.set.name?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var r=0;r>>0;return this.uint32(t),t&&this._push(i.writeBytesBuffer,t,e),this},i.prototype.string=function(e){var t=o.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},i._configure()},9492:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Event=t.LastCommitInfo=t.BlockParams=t.ConsensusParams=t.ResponseApplySnapshotChunk=t.ResponseLoadSnapshotChunk=t.ResponseOfferSnapshot=t.ResponseListSnapshots=t.ResponseCommit=t.ResponseEndBlock=t.ResponseDeliverTx=t.ResponseCheckTx=t.ResponseBeginBlock=t.ResponseQuery=t.ResponseInitChain=t.ResponseSetOption=t.ResponseInfo=t.ResponseFlush=t.ResponseEcho=t.ResponseException=t.Response=t.RequestApplySnapshotChunk=t.RequestLoadSnapshotChunk=t.RequestOfferSnapshot=t.RequestListSnapshots=t.RequestCommit=t.RequestEndBlock=t.RequestDeliverTx=t.RequestCheckTx=t.RequestBeginBlock=t.RequestQuery=t.RequestInitChain=t.RequestSetOption=t.RequestInfo=t.RequestFlush=t.RequestEcho=t.Request=t.responseApplySnapshotChunk_ResultToJSON=t.responseApplySnapshotChunk_ResultFromJSON=t.ResponseApplySnapshotChunk_Result=t.responseOfferSnapshot_ResultToJSON=t.responseOfferSnapshot_ResultFromJSON=t.ResponseOfferSnapshot_Result=t.evidenceTypeToJSON=t.evidenceTypeFromJSON=t.EvidenceType=t.checkTxTypeToJSON=t.checkTxTypeFromJSON=t.CheckTxType=t.protobufPackage=void 0,t.ABCIApplicationClientImpl=t.Snapshot=t.Evidence=t.VoteInfo=t.ValidatorUpdate=t.Validator=t.TxResult=t.EventAttribute=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(5522),s=n(1258),c=n(1494),d=n(7134),u=n(984);var l,A,f,h;function p(e){switch(e){case 0:case"NEW":return l.NEW;case 1:case"RECHECK":return l.RECHECK;default:return l.UNRECOGNIZED}}function g(e){switch(e){case l.NEW:return"NEW";case l.RECHECK:return"RECHECK";default:return"UNKNOWN"}}function m(e){switch(e){case 0:case"UNKNOWN":return A.UNKNOWN;case 1:case"DUPLICATE_VOTE":return A.DUPLICATE_VOTE;case 2:case"LIGHT_CLIENT_ATTACK":return A.LIGHT_CLIENT_ATTACK;default:return A.UNRECOGNIZED}}function v(e){switch(e){case A.UNKNOWN:return"UNKNOWN";case A.DUPLICATE_VOTE:return"DUPLICATE_VOTE";case A.LIGHT_CLIENT_ATTACK:return"LIGHT_CLIENT_ATTACK";default:return"UNKNOWN"}}function y(e){switch(e){case 0:case"UNKNOWN":return f.UNKNOWN;case 1:case"ACCEPT":return f.ACCEPT;case 2:case"ABORT":return f.ABORT;case 3:case"REJECT":return f.REJECT;case 4:case"REJECT_FORMAT":return f.REJECT_FORMAT;case 5:case"REJECT_SENDER":return f.REJECT_SENDER;default:return f.UNRECOGNIZED}}function b(e){switch(e){case f.UNKNOWN:return"UNKNOWN";case f.ACCEPT:return"ACCEPT";case f.ABORT:return"ABORT";case f.REJECT:return"REJECT";case f.REJECT_FORMAT:return"REJECT_FORMAT";case f.REJECT_SENDER:return"REJECT_SENDER";default:return"UNKNOWN"}}function I(e){switch(e){case 0:case"UNKNOWN":return h.UNKNOWN;case 1:case"ACCEPT":return h.ACCEPT;case 2:case"ABORT":return h.ABORT;case 3:case"RETRY":return h.RETRY;case 4:case"RETRY_SNAPSHOT":return h.RETRY_SNAPSHOT;case 5:case"REJECT_SNAPSHOT":return h.REJECT_SNAPSHOT;default:return h.UNRECOGNIZED}}function C(e){switch(e){case h.UNKNOWN:return"UNKNOWN";case h.ACCEPT:return"ACCEPT";case h.ABORT:return"ABORT";case h.RETRY:return"RETRY";case h.RETRY_SNAPSHOT:return"RETRY_SNAPSHOT";case h.REJECT_SNAPSHOT:return"REJECT_SNAPSHOT";default:return"UNKNOWN"}}t.protobufPackage="tendermint.abci",function(e){e[e.NEW=0]="NEW",e[e.RECHECK=1]="RECHECK",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.CheckTxType||(t.CheckTxType={})),t.checkTxTypeFromJSON=p,t.checkTxTypeToJSON=g,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.DUPLICATE_VOTE=1]="DUPLICATE_VOTE",e[e.LIGHT_CLIENT_ATTACK=2]="LIGHT_CLIENT_ATTACK",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(A=t.EvidenceType||(t.EvidenceType={})),t.evidenceTypeFromJSON=m,t.evidenceTypeToJSON=v,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACCEPT=1]="ACCEPT",e[e.ABORT=2]="ABORT",e[e.REJECT=3]="REJECT",e[e.REJECT_FORMAT=4]="REJECT_FORMAT",e[e.REJECT_SENDER=5]="REJECT_SENDER",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(f=t.ResponseOfferSnapshot_Result||(t.ResponseOfferSnapshot_Result={})),t.responseOfferSnapshot_ResultFromJSON=y,t.responseOfferSnapshot_ResultToJSON=b,function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.ACCEPT=1]="ACCEPT",e[e.ABORT=2]="ABORT",e[e.RETRY=3]="RETRY",e[e.RETRY_SNAPSHOT=4]="RETRY_SNAPSHOT",e[e.REJECT_SNAPSHOT=5]="REJECT_SNAPSHOT",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(h=t.ResponseApplySnapshotChunk_Result||(t.ResponseApplySnapshotChunk_Result={})),t.responseApplySnapshotChunk_ResultFromJSON=I,t.responseApplySnapshotChunk_ResultToJSON=C;const E={};t.Request={encode:(e,n=i.default.Writer.create())=>(void 0!==e.echo&&t.RequestEcho.encode(e.echo,n.uint32(10).fork()).ldelim(),void 0!==e.flush&&t.RequestFlush.encode(e.flush,n.uint32(18).fork()).ldelim(),void 0!==e.info&&t.RequestInfo.encode(e.info,n.uint32(26).fork()).ldelim(),void 0!==e.setOption&&t.RequestSetOption.encode(e.setOption,n.uint32(34).fork()).ldelim(),void 0!==e.initChain&&t.RequestInitChain.encode(e.initChain,n.uint32(42).fork()).ldelim(),void 0!==e.query&&t.RequestQuery.encode(e.query,n.uint32(50).fork()).ldelim(),void 0!==e.beginBlock&&t.RequestBeginBlock.encode(e.beginBlock,n.uint32(58).fork()).ldelim(),void 0!==e.checkTx&&t.RequestCheckTx.encode(e.checkTx,n.uint32(66).fork()).ldelim(),void 0!==e.deliverTx&&t.RequestDeliverTx.encode(e.deliverTx,n.uint32(74).fork()).ldelim(),void 0!==e.endBlock&&t.RequestEndBlock.encode(e.endBlock,n.uint32(82).fork()).ldelim(),void 0!==e.commit&&t.RequestCommit.encode(e.commit,n.uint32(90).fork()).ldelim(),void 0!==e.listSnapshots&&t.RequestListSnapshots.encode(e.listSnapshots,n.uint32(98).fork()).ldelim(),void 0!==e.offerSnapshot&&t.RequestOfferSnapshot.encode(e.offerSnapshot,n.uint32(106).fork()).ldelim(),void 0!==e.loadSnapshotChunk&&t.RequestLoadSnapshotChunk.encode(e.loadSnapshotChunk,n.uint32(114).fork()).ldelim(),void 0!==e.applySnapshotChunk&&t.RequestApplySnapshotChunk.encode(e.applySnapshotChunk,n.uint32(122).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},E);for(;r.pos>>3){case 1:a.echo=t.RequestEcho.decode(r,r.uint32());break;case 2:a.flush=t.RequestFlush.decode(r,r.uint32());break;case 3:a.info=t.RequestInfo.decode(r,r.uint32());break;case 4:a.setOption=t.RequestSetOption.decode(r,r.uint32());break;case 5:a.initChain=t.RequestInitChain.decode(r,r.uint32());break;case 6:a.query=t.RequestQuery.decode(r,r.uint32());break;case 7:a.beginBlock=t.RequestBeginBlock.decode(r,r.uint32());break;case 8:a.checkTx=t.RequestCheckTx.decode(r,r.uint32());break;case 9:a.deliverTx=t.RequestDeliverTx.decode(r,r.uint32());break;case 10:a.endBlock=t.RequestEndBlock.decode(r,r.uint32());break;case 11:a.commit=t.RequestCommit.decode(r,r.uint32());break;case 12:a.listSnapshots=t.RequestListSnapshots.decode(r,r.uint32());break;case 13:a.offerSnapshot=t.RequestOfferSnapshot.decode(r,r.uint32());break;case 14:a.loadSnapshotChunk=t.RequestLoadSnapshotChunk.decode(r,r.uint32());break;case 15:a.applySnapshotChunk=t.RequestApplySnapshotChunk.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},E);return n.echo=void 0!==e.echo&&null!==e.echo?t.RequestEcho.fromJSON(e.echo):void 0,n.flush=void 0!==e.flush&&null!==e.flush?t.RequestFlush.fromJSON(e.flush):void 0,n.info=void 0!==e.info&&null!==e.info?t.RequestInfo.fromJSON(e.info):void 0,n.setOption=void 0!==e.setOption&&null!==e.setOption?t.RequestSetOption.fromJSON(e.setOption):void 0,n.initChain=void 0!==e.initChain&&null!==e.initChain?t.RequestInitChain.fromJSON(e.initChain):void 0,n.query=void 0!==e.query&&null!==e.query?t.RequestQuery.fromJSON(e.query):void 0,n.beginBlock=void 0!==e.beginBlock&&null!==e.beginBlock?t.RequestBeginBlock.fromJSON(e.beginBlock):void 0,n.checkTx=void 0!==e.checkTx&&null!==e.checkTx?t.RequestCheckTx.fromJSON(e.checkTx):void 0,n.deliverTx=void 0!==e.deliverTx&&null!==e.deliverTx?t.RequestDeliverTx.fromJSON(e.deliverTx):void 0,n.endBlock=void 0!==e.endBlock&&null!==e.endBlock?t.RequestEndBlock.fromJSON(e.endBlock):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.RequestCommit.fromJSON(e.commit):void 0,n.listSnapshots=void 0!==e.listSnapshots&&null!==e.listSnapshots?t.RequestListSnapshots.fromJSON(e.listSnapshots):void 0,n.offerSnapshot=void 0!==e.offerSnapshot&&null!==e.offerSnapshot?t.RequestOfferSnapshot.fromJSON(e.offerSnapshot):void 0,n.loadSnapshotChunk=void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?t.RequestLoadSnapshotChunk.fromJSON(e.loadSnapshotChunk):void 0,n.applySnapshotChunk=void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?t.RequestApplySnapshotChunk.fromJSON(e.applySnapshotChunk):void 0,n},toJSON(e){const n={};return void 0!==e.echo&&(n.echo=e.echo?t.RequestEcho.toJSON(e.echo):void 0),void 0!==e.flush&&(n.flush=e.flush?t.RequestFlush.toJSON(e.flush):void 0),void 0!==e.info&&(n.info=e.info?t.RequestInfo.toJSON(e.info):void 0),void 0!==e.setOption&&(n.setOption=e.setOption?t.RequestSetOption.toJSON(e.setOption):void 0),void 0!==e.initChain&&(n.initChain=e.initChain?t.RequestInitChain.toJSON(e.initChain):void 0),void 0!==e.query&&(n.query=e.query?t.RequestQuery.toJSON(e.query):void 0),void 0!==e.beginBlock&&(n.beginBlock=e.beginBlock?t.RequestBeginBlock.toJSON(e.beginBlock):void 0),void 0!==e.checkTx&&(n.checkTx=e.checkTx?t.RequestCheckTx.toJSON(e.checkTx):void 0),void 0!==e.deliverTx&&(n.deliverTx=e.deliverTx?t.RequestDeliverTx.toJSON(e.deliverTx):void 0),void 0!==e.endBlock&&(n.endBlock=e.endBlock?t.RequestEndBlock.toJSON(e.endBlock):void 0),void 0!==e.commit&&(n.commit=e.commit?t.RequestCommit.toJSON(e.commit):void 0),void 0!==e.listSnapshots&&(n.listSnapshots=e.listSnapshots?t.RequestListSnapshots.toJSON(e.listSnapshots):void 0),void 0!==e.offerSnapshot&&(n.offerSnapshot=e.offerSnapshot?t.RequestOfferSnapshot.toJSON(e.offerSnapshot):void 0),void 0!==e.loadSnapshotChunk&&(n.loadSnapshotChunk=e.loadSnapshotChunk?t.RequestLoadSnapshotChunk.toJSON(e.loadSnapshotChunk):void 0),void 0!==e.applySnapshotChunk&&(n.applySnapshotChunk=e.applySnapshotChunk?t.RequestApplySnapshotChunk.toJSON(e.applySnapshotChunk):void 0),n},fromPartial(e){const n=Object.assign({},E);return n.echo=void 0!==e.echo&&null!==e.echo?t.RequestEcho.fromPartial(e.echo):void 0,n.flush=void 0!==e.flush&&null!==e.flush?t.RequestFlush.fromPartial(e.flush):void 0,n.info=void 0!==e.info&&null!==e.info?t.RequestInfo.fromPartial(e.info):void 0,n.setOption=void 0!==e.setOption&&null!==e.setOption?t.RequestSetOption.fromPartial(e.setOption):void 0,n.initChain=void 0!==e.initChain&&null!==e.initChain?t.RequestInitChain.fromPartial(e.initChain):void 0,n.query=void 0!==e.query&&null!==e.query?t.RequestQuery.fromPartial(e.query):void 0,n.beginBlock=void 0!==e.beginBlock&&null!==e.beginBlock?t.RequestBeginBlock.fromPartial(e.beginBlock):void 0,n.checkTx=void 0!==e.checkTx&&null!==e.checkTx?t.RequestCheckTx.fromPartial(e.checkTx):void 0,n.deliverTx=void 0!==e.deliverTx&&null!==e.deliverTx?t.RequestDeliverTx.fromPartial(e.deliverTx):void 0,n.endBlock=void 0!==e.endBlock&&null!==e.endBlock?t.RequestEndBlock.fromPartial(e.endBlock):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.RequestCommit.fromPartial(e.commit):void 0,n.listSnapshots=void 0!==e.listSnapshots&&null!==e.listSnapshots?t.RequestListSnapshots.fromPartial(e.listSnapshots):void 0,n.offerSnapshot=void 0!==e.offerSnapshot&&null!==e.offerSnapshot?t.RequestOfferSnapshot.fromPartial(e.offerSnapshot):void 0,n.loadSnapshotChunk=void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?t.RequestLoadSnapshotChunk.fromPartial(e.loadSnapshotChunk):void 0,n.applySnapshotChunk=void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?t.RequestApplySnapshotChunk.fromPartial(e.applySnapshotChunk):void 0,n}};const w={message:""};t.RequestEcho={encode:(e,t=i.default.Writer.create())=>(""!==e.message&&t.uint32(10).string(e.message),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},w);for(;n.pos>>3==1?o.message=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},w);return t.message=void 0!==e.message&&null!==e.message?String(e.message):"",t},toJSON(e){const t={};return void 0!==e.message&&(t.message=e.message),t},fromPartial(e){var t;const n=Object.assign({},w);return n.message=null!==(t=e.message)&&void 0!==t?t:"",n}};const B={};t.RequestFlush={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},B);for(;n.posObject.assign({},B),toJSON:e=>({}),fromPartial:e=>Object.assign({},B)};const _={version:"",blockVersion:o.default.UZERO,p2pVersion:o.default.UZERO};t.RequestInfo={encode:(e,t=i.default.Writer.create())=>(""!==e.version&&t.uint32(10).string(e.version),e.blockVersion.isZero()||t.uint32(16).uint64(e.blockVersion),e.p2pVersion.isZero()||t.uint32(24).uint64(e.p2pVersion),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},_);for(;n.pos>>3){case 1:o.version=n.string();break;case 2:o.blockVersion=n.uint64();break;case 3:o.p2pVersion=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},_);return t.version=void 0!==e.version&&null!==e.version?String(e.version):"",t.blockVersion=void 0!==e.blockVersion&&null!==e.blockVersion?o.default.fromString(e.blockVersion):o.default.UZERO,t.p2pVersion=void 0!==e.p2pVersion&&null!==e.p2pVersion?o.default.fromString(e.p2pVersion):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.version&&(t.version=e.version),void 0!==e.blockVersion&&(t.blockVersion=(e.blockVersion||o.default.UZERO).toString()),void 0!==e.p2pVersion&&(t.p2pVersion=(e.p2pVersion||o.default.UZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},_);return n.version=null!==(t=e.version)&&void 0!==t?t:"",n.blockVersion=void 0!==e.blockVersion&&null!==e.blockVersion?o.default.fromValue(e.blockVersion):o.default.UZERO,n.p2pVersion=void 0!==e.p2pVersion&&null!==e.p2pVersion?o.default.fromValue(e.p2pVersion):o.default.UZERO,n}};const S={key:"",value:""};t.RequestSetOption={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.value&&t.uint32(18).string(e.value),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},S);for(;n.pos>>3){case 1:o.key=n.string();break;case 2:o.value=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},S);return t.key=void 0!==e.key&&null!==e.key?String(e.key):"",t.value=void 0!==e.value&&null!==e.value?String(e.value):"",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.value&&(t.value=e.value),t},fromPartial(e){var t,n;const r=Object.assign({},S);return r.key=null!==(t=e.key)&&void 0!==t?t:"",r.value=null!==(n=e.value)&&void 0!==n?n:"",r}};const k={chainId:"",initialHeight:o.default.ZERO};t.RequestInitChain={encode(e,n=i.default.Writer.create()){void 0!==e.time&&a.Timestamp.encode(e.time,n.uint32(10).fork()).ldelim(),""!==e.chainId&&n.uint32(18).string(e.chainId),void 0!==e.consensusParams&&t.ConsensusParams.encode(e.consensusParams,n.uint32(26).fork()).ldelim();for(const r of e.validators)t.ValidatorUpdate.encode(r,n.uint32(34).fork()).ldelim();return 0!==e.appStateBytes.length&&n.uint32(42).bytes(e.appStateBytes),e.initialHeight.isZero()||n.uint32(48).int64(e.initialHeight),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},k);for(s.validators=[],s.appStateBytes=new Uint8Array;r.pos>>3){case 1:s.time=a.Timestamp.decode(r,r.uint32());break;case 2:s.chainId=r.string();break;case 3:s.consensusParams=t.ConsensusParams.decode(r,r.uint32());break;case 4:s.validators.push(t.ValidatorUpdate.decode(r,r.uint32()));break;case 5:s.appStateBytes=r.bytes();break;case 6:s.initialHeight=r.int64();break;default:r.skipType(7&e)}}return s},fromJSON(e){var n;const r=Object.assign({},k);return r.time=void 0!==e.time&&null!==e.time?be(e.time):void 0,r.chainId=void 0!==e.chainId&&null!==e.chainId?String(e.chainId):"",r.consensusParams=void 0!==e.consensusParams&&null!==e.consensusParams?t.ConsensusParams.fromJSON(e.consensusParams):void 0,r.validators=(null!==(n=e.validators)&&void 0!==n?n:[]).map((e=>t.ValidatorUpdate.fromJSON(e))),r.appStateBytes=void 0!==e.appStateBytes&&null!==e.appStateBytes?pe(e.appStateBytes):new Uint8Array,r.initialHeight=void 0!==e.initialHeight&&null!==e.initialHeight?o.default.fromString(e.initialHeight):o.default.ZERO,r},toJSON(e){const n={};return void 0!==e.time&&(n.time=ye(e.time).toISOString()),void 0!==e.chainId&&(n.chainId=e.chainId),void 0!==e.consensusParams&&(n.consensusParams=e.consensusParams?t.ConsensusParams.toJSON(e.consensusParams):void 0),e.validators?n.validators=e.validators.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):n.validators=[],void 0!==e.appStateBytes&&(n.appStateBytes=me(void 0!==e.appStateBytes?e.appStateBytes:new Uint8Array)),void 0!==e.initialHeight&&(n.initialHeight=(e.initialHeight||o.default.ZERO).toString()),n},fromPartial(e){var n,r,i;const s=Object.assign({},k);return s.time=void 0!==e.time&&null!==e.time?a.Timestamp.fromPartial(e.time):void 0,s.chainId=null!==(n=e.chainId)&&void 0!==n?n:"",s.consensusParams=void 0!==e.consensusParams&&null!==e.consensusParams?t.ConsensusParams.fromPartial(e.consensusParams):void 0,s.validators=(null===(r=e.validators)||void 0===r?void 0:r.map((e=>t.ValidatorUpdate.fromPartial(e))))||[],s.appStateBytes=null!==(i=e.appStateBytes)&&void 0!==i?i:new Uint8Array,s.initialHeight=void 0!==e.initialHeight&&null!==e.initialHeight?o.default.fromValue(e.initialHeight):o.default.ZERO,s}};const O={path:"",height:o.default.ZERO,prove:!1};t.RequestQuery={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(10).bytes(e.data),""!==e.path&&t.uint32(18).string(e.path),e.height.isZero()||t.uint32(24).int64(e.height),!0===e.prove&&t.uint32(32).bool(e.prove),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},O);for(o.data=new Uint8Array;n.pos>>3){case 1:o.data=n.bytes();break;case 2:o.path=n.string();break;case 3:o.height=n.int64();break;case 4:o.prove=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},O);return t.data=void 0!==e.data&&null!==e.data?pe(e.data):new Uint8Array,t.path=void 0!==e.path&&null!==e.path?String(e.path):"",t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,t.prove=void 0!==e.prove&&null!==e.prove&&Boolean(e.prove),t},toJSON(e){const t={};return void 0!==e.data&&(t.data=me(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.path&&(t.path=e.path),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.prove&&(t.prove=e.prove),t},fromPartial(e){var t,n,r;const i=Object.assign({},O);return i.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,i.path=null!==(n=e.path)&&void 0!==n?n:"",i.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,i.prove=null!==(r=e.prove)&&void 0!==r&&r,i}};const Q={};t.RequestBeginBlock={encode(e,n=i.default.Writer.create()){0!==e.hash.length&&n.uint32(10).bytes(e.hash),void 0!==e.header&&s.Header.encode(e.header,n.uint32(18).fork()).ldelim(),void 0!==e.lastCommitInfo&&t.LastCommitInfo.encode(e.lastCommitInfo,n.uint32(26).fork()).ldelim();for(const r of e.byzantineValidators)t.Evidence.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},Q);for(a.byzantineValidators=[],a.hash=new Uint8Array;r.pos>>3){case 1:a.hash=r.bytes();break;case 2:a.header=s.Header.decode(r,r.uint32());break;case 3:a.lastCommitInfo=t.LastCommitInfo.decode(r,r.uint32());break;case 4:a.byzantineValidators.push(t.Evidence.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},Q);return r.hash=void 0!==e.hash&&null!==e.hash?pe(e.hash):new Uint8Array,r.header=void 0!==e.header&&null!==e.header?s.Header.fromJSON(e.header):void 0,r.lastCommitInfo=void 0!==e.lastCommitInfo&&null!==e.lastCommitInfo?t.LastCommitInfo.fromJSON(e.lastCommitInfo):void 0,r.byzantineValidators=(null!==(n=e.byzantineValidators)&&void 0!==n?n:[]).map((e=>t.Evidence.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.hash&&(n.hash=me(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.header&&(n.header=e.header?s.Header.toJSON(e.header):void 0),void 0!==e.lastCommitInfo&&(n.lastCommitInfo=e.lastCommitInfo?t.LastCommitInfo.toJSON(e.lastCommitInfo):void 0),e.byzantineValidators?n.byzantineValidators=e.byzantineValidators.map((e=>e?t.Evidence.toJSON(e):void 0)):n.byzantineValidators=[],n},fromPartial(e){var n,r;const o=Object.assign({},Q);return o.hash=null!==(n=e.hash)&&void 0!==n?n:new Uint8Array,o.header=void 0!==e.header&&null!==e.header?s.Header.fromPartial(e.header):void 0,o.lastCommitInfo=void 0!==e.lastCommitInfo&&null!==e.lastCommitInfo?t.LastCommitInfo.fromPartial(e.lastCommitInfo):void 0,o.byzantineValidators=(null===(r=e.byzantineValidators)||void 0===r?void 0:r.map((e=>t.Evidence.fromPartial(e))))||[],o}};const R={type:0};t.RequestCheckTx={encode:(e,t=i.default.Writer.create())=>(0!==e.tx.length&&t.uint32(10).bytes(e.tx),0!==e.type&&t.uint32(16).int32(e.type),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},R);for(o.tx=new Uint8Array;n.pos>>3){case 1:o.tx=n.bytes();break;case 2:o.type=n.int32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},R);return t.tx=void 0!==e.tx&&null!==e.tx?pe(e.tx):new Uint8Array,t.type=void 0!==e.type&&null!==e.type?p(e.type):0,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=me(void 0!==e.tx?e.tx:new Uint8Array)),void 0!==e.type&&(t.type=g(e.type)),t},fromPartial(e){var t,n;const r=Object.assign({},R);return r.tx=null!==(t=e.tx)&&void 0!==t?t:new Uint8Array,r.type=null!==(n=e.type)&&void 0!==n?n:0,r}};const P={};t.RequestDeliverTx={encode:(e,t=i.default.Writer.create())=>(0!==e.tx.length&&t.uint32(10).bytes(e.tx),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},P);for(o.tx=new Uint8Array;n.pos>>3==1?o.tx=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},P);return t.tx=void 0!==e.tx&&null!==e.tx?pe(e.tx):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.tx&&(t.tx=me(void 0!==e.tx?e.tx:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},P);return n.tx=null!==(t=e.tx)&&void 0!==t?t:new Uint8Array,n}};const N={height:o.default.ZERO};t.RequestEndBlock={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).int64(e.height),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},N);for(;n.pos>>3==1?o.height=n.int64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},N);return t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},N);return t.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,t}};const x={};t.RequestCommit={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},x);for(;n.posObject.assign({},x),toJSON:e=>({}),fromPartial:e=>Object.assign({},x)};const D={};t.RequestListSnapshots={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},D);for(;n.posObject.assign({},D),toJSON:e=>({}),fromPartial:e=>Object.assign({},D)};const T={};t.RequestOfferSnapshot={encode:(e,n=i.default.Writer.create())=>(void 0!==e.snapshot&&t.Snapshot.encode(e.snapshot,n.uint32(10).fork()).ldelim(),0!==e.appHash.length&&n.uint32(18).bytes(e.appHash),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},T);for(a.appHash=new Uint8Array;r.pos>>3){case 1:a.snapshot=t.Snapshot.decode(r,r.uint32());break;case 2:a.appHash=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},T);return n.snapshot=void 0!==e.snapshot&&null!==e.snapshot?t.Snapshot.fromJSON(e.snapshot):void 0,n.appHash=void 0!==e.appHash&&null!==e.appHash?pe(e.appHash):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.snapshot&&(n.snapshot=e.snapshot?t.Snapshot.toJSON(e.snapshot):void 0),void 0!==e.appHash&&(n.appHash=me(void 0!==e.appHash?e.appHash:new Uint8Array)),n},fromPartial(e){var n;const r=Object.assign({},T);return r.snapshot=void 0!==e.snapshot&&null!==e.snapshot?t.Snapshot.fromPartial(e.snapshot):void 0,r.appHash=null!==(n=e.appHash)&&void 0!==n?n:new Uint8Array,r}};const M={height:o.default.UZERO,format:0,chunk:0};t.RequestLoadSnapshotChunk={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).uint64(e.height),0!==e.format&&t.uint32(16).uint32(e.format),0!==e.chunk&&t.uint32(24).uint32(e.chunk),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},M);for(;n.pos>>3){case 1:o.height=n.uint64();break;case 2:o.format=n.uint32();break;case 3:o.chunk=n.uint32();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},M);return t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.UZERO,t.format=void 0!==e.format&&null!==e.format?Number(e.format):0,t.chunk=void 0!==e.chunk&&null!==e.chunk?Number(e.chunk):0,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),void 0!==e.format&&(t.format=e.format),void 0!==e.chunk&&(t.chunk=e.chunk),t},fromPartial(e){var t,n;const r=Object.assign({},M);return r.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.UZERO,r.format=null!==(t=e.format)&&void 0!==t?t:0,r.chunk=null!==(n=e.chunk)&&void 0!==n?n:0,r}};const U={index:0,sender:""};t.RequestApplySnapshotChunk={encode:(e,t=i.default.Writer.create())=>(0!==e.index&&t.uint32(8).uint32(e.index),0!==e.chunk.length&&t.uint32(18).bytes(e.chunk),""!==e.sender&&t.uint32(26).string(e.sender),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},U);for(o.chunk=new Uint8Array;n.pos>>3){case 1:o.index=n.uint32();break;case 2:o.chunk=n.bytes();break;case 3:o.sender=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},U);return t.index=void 0!==e.index&&null!==e.index?Number(e.index):0,t.chunk=void 0!==e.chunk&&null!==e.chunk?pe(e.chunk):new Uint8Array,t.sender=void 0!==e.sender&&null!==e.sender?String(e.sender):"",t},toJSON(e){const t={};return void 0!==e.index&&(t.index=e.index),void 0!==e.chunk&&(t.chunk=me(void 0!==e.chunk?e.chunk:new Uint8Array)),void 0!==e.sender&&(t.sender=e.sender),t},fromPartial(e){var t,n,r;const o=Object.assign({},U);return o.index=null!==(t=e.index)&&void 0!==t?t:0,o.chunk=null!==(n=e.chunk)&&void 0!==n?n:new Uint8Array,o.sender=null!==(r=e.sender)&&void 0!==r?r:"",o}};const H={};t.Response={encode:(e,n=i.default.Writer.create())=>(void 0!==e.exception&&t.ResponseException.encode(e.exception,n.uint32(10).fork()).ldelim(),void 0!==e.echo&&t.ResponseEcho.encode(e.echo,n.uint32(18).fork()).ldelim(),void 0!==e.flush&&t.ResponseFlush.encode(e.flush,n.uint32(26).fork()).ldelim(),void 0!==e.info&&t.ResponseInfo.encode(e.info,n.uint32(34).fork()).ldelim(),void 0!==e.setOption&&t.ResponseSetOption.encode(e.setOption,n.uint32(42).fork()).ldelim(),void 0!==e.initChain&&t.ResponseInitChain.encode(e.initChain,n.uint32(50).fork()).ldelim(),void 0!==e.query&&t.ResponseQuery.encode(e.query,n.uint32(58).fork()).ldelim(),void 0!==e.beginBlock&&t.ResponseBeginBlock.encode(e.beginBlock,n.uint32(66).fork()).ldelim(),void 0!==e.checkTx&&t.ResponseCheckTx.encode(e.checkTx,n.uint32(74).fork()).ldelim(),void 0!==e.deliverTx&&t.ResponseDeliverTx.encode(e.deliverTx,n.uint32(82).fork()).ldelim(),void 0!==e.endBlock&&t.ResponseEndBlock.encode(e.endBlock,n.uint32(90).fork()).ldelim(),void 0!==e.commit&&t.ResponseCommit.encode(e.commit,n.uint32(98).fork()).ldelim(),void 0!==e.listSnapshots&&t.ResponseListSnapshots.encode(e.listSnapshots,n.uint32(106).fork()).ldelim(),void 0!==e.offerSnapshot&&t.ResponseOfferSnapshot.encode(e.offerSnapshot,n.uint32(114).fork()).ldelim(),void 0!==e.loadSnapshotChunk&&t.ResponseLoadSnapshotChunk.encode(e.loadSnapshotChunk,n.uint32(122).fork()).ldelim(),void 0!==e.applySnapshotChunk&&t.ResponseApplySnapshotChunk.encode(e.applySnapshotChunk,n.uint32(130).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},H);for(;r.pos>>3){case 1:a.exception=t.ResponseException.decode(r,r.uint32());break;case 2:a.echo=t.ResponseEcho.decode(r,r.uint32());break;case 3:a.flush=t.ResponseFlush.decode(r,r.uint32());break;case 4:a.info=t.ResponseInfo.decode(r,r.uint32());break;case 5:a.setOption=t.ResponseSetOption.decode(r,r.uint32());break;case 6:a.initChain=t.ResponseInitChain.decode(r,r.uint32());break;case 7:a.query=t.ResponseQuery.decode(r,r.uint32());break;case 8:a.beginBlock=t.ResponseBeginBlock.decode(r,r.uint32());break;case 9:a.checkTx=t.ResponseCheckTx.decode(r,r.uint32());break;case 10:a.deliverTx=t.ResponseDeliverTx.decode(r,r.uint32());break;case 11:a.endBlock=t.ResponseEndBlock.decode(r,r.uint32());break;case 12:a.commit=t.ResponseCommit.decode(r,r.uint32());break;case 13:a.listSnapshots=t.ResponseListSnapshots.decode(r,r.uint32());break;case 14:a.offerSnapshot=t.ResponseOfferSnapshot.decode(r,r.uint32());break;case 15:a.loadSnapshotChunk=t.ResponseLoadSnapshotChunk.decode(r,r.uint32());break;case 16:a.applySnapshotChunk=t.ResponseApplySnapshotChunk.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},H);return n.exception=void 0!==e.exception&&null!==e.exception?t.ResponseException.fromJSON(e.exception):void 0,n.echo=void 0!==e.echo&&null!==e.echo?t.ResponseEcho.fromJSON(e.echo):void 0,n.flush=void 0!==e.flush&&null!==e.flush?t.ResponseFlush.fromJSON(e.flush):void 0,n.info=void 0!==e.info&&null!==e.info?t.ResponseInfo.fromJSON(e.info):void 0,n.setOption=void 0!==e.setOption&&null!==e.setOption?t.ResponseSetOption.fromJSON(e.setOption):void 0,n.initChain=void 0!==e.initChain&&null!==e.initChain?t.ResponseInitChain.fromJSON(e.initChain):void 0,n.query=void 0!==e.query&&null!==e.query?t.ResponseQuery.fromJSON(e.query):void 0,n.beginBlock=void 0!==e.beginBlock&&null!==e.beginBlock?t.ResponseBeginBlock.fromJSON(e.beginBlock):void 0,n.checkTx=void 0!==e.checkTx&&null!==e.checkTx?t.ResponseCheckTx.fromJSON(e.checkTx):void 0,n.deliverTx=void 0!==e.deliverTx&&null!==e.deliverTx?t.ResponseDeliverTx.fromJSON(e.deliverTx):void 0,n.endBlock=void 0!==e.endBlock&&null!==e.endBlock?t.ResponseEndBlock.fromJSON(e.endBlock):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.ResponseCommit.fromJSON(e.commit):void 0,n.listSnapshots=void 0!==e.listSnapshots&&null!==e.listSnapshots?t.ResponseListSnapshots.fromJSON(e.listSnapshots):void 0,n.offerSnapshot=void 0!==e.offerSnapshot&&null!==e.offerSnapshot?t.ResponseOfferSnapshot.fromJSON(e.offerSnapshot):void 0,n.loadSnapshotChunk=void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?t.ResponseLoadSnapshotChunk.fromJSON(e.loadSnapshotChunk):void 0,n.applySnapshotChunk=void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?t.ResponseApplySnapshotChunk.fromJSON(e.applySnapshotChunk):void 0,n},toJSON(e){const n={};return void 0!==e.exception&&(n.exception=e.exception?t.ResponseException.toJSON(e.exception):void 0),void 0!==e.echo&&(n.echo=e.echo?t.ResponseEcho.toJSON(e.echo):void 0),void 0!==e.flush&&(n.flush=e.flush?t.ResponseFlush.toJSON(e.flush):void 0),void 0!==e.info&&(n.info=e.info?t.ResponseInfo.toJSON(e.info):void 0),void 0!==e.setOption&&(n.setOption=e.setOption?t.ResponseSetOption.toJSON(e.setOption):void 0),void 0!==e.initChain&&(n.initChain=e.initChain?t.ResponseInitChain.toJSON(e.initChain):void 0),void 0!==e.query&&(n.query=e.query?t.ResponseQuery.toJSON(e.query):void 0),void 0!==e.beginBlock&&(n.beginBlock=e.beginBlock?t.ResponseBeginBlock.toJSON(e.beginBlock):void 0),void 0!==e.checkTx&&(n.checkTx=e.checkTx?t.ResponseCheckTx.toJSON(e.checkTx):void 0),void 0!==e.deliverTx&&(n.deliverTx=e.deliverTx?t.ResponseDeliverTx.toJSON(e.deliverTx):void 0),void 0!==e.endBlock&&(n.endBlock=e.endBlock?t.ResponseEndBlock.toJSON(e.endBlock):void 0),void 0!==e.commit&&(n.commit=e.commit?t.ResponseCommit.toJSON(e.commit):void 0),void 0!==e.listSnapshots&&(n.listSnapshots=e.listSnapshots?t.ResponseListSnapshots.toJSON(e.listSnapshots):void 0),void 0!==e.offerSnapshot&&(n.offerSnapshot=e.offerSnapshot?t.ResponseOfferSnapshot.toJSON(e.offerSnapshot):void 0),void 0!==e.loadSnapshotChunk&&(n.loadSnapshotChunk=e.loadSnapshotChunk?t.ResponseLoadSnapshotChunk.toJSON(e.loadSnapshotChunk):void 0),void 0!==e.applySnapshotChunk&&(n.applySnapshotChunk=e.applySnapshotChunk?t.ResponseApplySnapshotChunk.toJSON(e.applySnapshotChunk):void 0),n},fromPartial(e){const n=Object.assign({},H);return n.exception=void 0!==e.exception&&null!==e.exception?t.ResponseException.fromPartial(e.exception):void 0,n.echo=void 0!==e.echo&&null!==e.echo?t.ResponseEcho.fromPartial(e.echo):void 0,n.flush=void 0!==e.flush&&null!==e.flush?t.ResponseFlush.fromPartial(e.flush):void 0,n.info=void 0!==e.info&&null!==e.info?t.ResponseInfo.fromPartial(e.info):void 0,n.setOption=void 0!==e.setOption&&null!==e.setOption?t.ResponseSetOption.fromPartial(e.setOption):void 0,n.initChain=void 0!==e.initChain&&null!==e.initChain?t.ResponseInitChain.fromPartial(e.initChain):void 0,n.query=void 0!==e.query&&null!==e.query?t.ResponseQuery.fromPartial(e.query):void 0,n.beginBlock=void 0!==e.beginBlock&&null!==e.beginBlock?t.ResponseBeginBlock.fromPartial(e.beginBlock):void 0,n.checkTx=void 0!==e.checkTx&&null!==e.checkTx?t.ResponseCheckTx.fromPartial(e.checkTx):void 0,n.deliverTx=void 0!==e.deliverTx&&null!==e.deliverTx?t.ResponseDeliverTx.fromPartial(e.deliverTx):void 0,n.endBlock=void 0!==e.endBlock&&null!==e.endBlock?t.ResponseEndBlock.fromPartial(e.endBlock):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.ResponseCommit.fromPartial(e.commit):void 0,n.listSnapshots=void 0!==e.listSnapshots&&null!==e.listSnapshots?t.ResponseListSnapshots.fromPartial(e.listSnapshots):void 0,n.offerSnapshot=void 0!==e.offerSnapshot&&null!==e.offerSnapshot?t.ResponseOfferSnapshot.fromPartial(e.offerSnapshot):void 0,n.loadSnapshotChunk=void 0!==e.loadSnapshotChunk&&null!==e.loadSnapshotChunk?t.ResponseLoadSnapshotChunk.fromPartial(e.loadSnapshotChunk):void 0,n.applySnapshotChunk=void 0!==e.applySnapshotChunk&&null!==e.applySnapshotChunk?t.ResponseApplySnapshotChunk.fromPartial(e.applySnapshotChunk):void 0,n}};const j={error:""};t.ResponseException={encode:(e,t=i.default.Writer.create())=>(""!==e.error&&t.uint32(10).string(e.error),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},j);for(;n.pos>>3==1?o.error=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},j);return t.error=void 0!==e.error&&null!==e.error?String(e.error):"",t},toJSON(e){const t={};return void 0!==e.error&&(t.error=e.error),t},fromPartial(e){var t;const n=Object.assign({},j);return n.error=null!==(t=e.error)&&void 0!==t?t:"",n}};const J={message:""};t.ResponseEcho={encode:(e,t=i.default.Writer.create())=>(""!==e.message&&t.uint32(10).string(e.message),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},J);for(;n.pos>>3==1?o.message=n.string():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},J);return t.message=void 0!==e.message&&null!==e.message?String(e.message):"",t},toJSON(e){const t={};return void 0!==e.message&&(t.message=e.message),t},fromPartial(e){var t;const n=Object.assign({},J);return n.message=null!==(t=e.message)&&void 0!==t?t:"",n}};const F={};t.ResponseFlush={encode:(e,t=i.default.Writer.create())=>t,decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},F);for(;n.posObject.assign({},F),toJSON:e=>({}),fromPartial:e=>Object.assign({},F)};const G={data:"",version:"",appVersion:o.default.UZERO,lastBlockHeight:o.default.ZERO};t.ResponseInfo={encode:(e,t=i.default.Writer.create())=>(""!==e.data&&t.uint32(10).string(e.data),""!==e.version&&t.uint32(18).string(e.version),e.appVersion.isZero()||t.uint32(24).uint64(e.appVersion),e.lastBlockHeight.isZero()||t.uint32(32).int64(e.lastBlockHeight),0!==e.lastBlockAppHash.length&&t.uint32(42).bytes(e.lastBlockAppHash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},G);for(o.lastBlockAppHash=new Uint8Array;n.pos>>3){case 1:o.data=n.string();break;case 2:o.version=n.string();break;case 3:o.appVersion=n.uint64();break;case 4:o.lastBlockHeight=n.int64();break;case 5:o.lastBlockAppHash=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},G);return t.data=void 0!==e.data&&null!==e.data?String(e.data):"",t.version=void 0!==e.version&&null!==e.version?String(e.version):"",t.appVersion=void 0!==e.appVersion&&null!==e.appVersion?o.default.fromString(e.appVersion):o.default.UZERO,t.lastBlockHeight=void 0!==e.lastBlockHeight&&null!==e.lastBlockHeight?o.default.fromString(e.lastBlockHeight):o.default.ZERO,t.lastBlockAppHash=void 0!==e.lastBlockAppHash&&null!==e.lastBlockAppHash?pe(e.lastBlockAppHash):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=e.data),void 0!==e.version&&(t.version=e.version),void 0!==e.appVersion&&(t.appVersion=(e.appVersion||o.default.UZERO).toString()),void 0!==e.lastBlockHeight&&(t.lastBlockHeight=(e.lastBlockHeight||o.default.ZERO).toString()),void 0!==e.lastBlockAppHash&&(t.lastBlockAppHash=me(void 0!==e.lastBlockAppHash?e.lastBlockAppHash:new Uint8Array)),t},fromPartial(e){var t,n,r;const i=Object.assign({},G);return i.data=null!==(t=e.data)&&void 0!==t?t:"",i.version=null!==(n=e.version)&&void 0!==n?n:"",i.appVersion=void 0!==e.appVersion&&null!==e.appVersion?o.default.fromValue(e.appVersion):o.default.UZERO,i.lastBlockHeight=void 0!==e.lastBlockHeight&&null!==e.lastBlockHeight?o.default.fromValue(e.lastBlockHeight):o.default.ZERO,i.lastBlockAppHash=null!==(r=e.lastBlockAppHash)&&void 0!==r?r:new Uint8Array,i}};const L={code:0,log:"",info:""};t.ResponseSetOption={encode:(e,t=i.default.Writer.create())=>(0!==e.code&&t.uint32(8).uint32(e.code),""!==e.log&&t.uint32(26).string(e.log),""!==e.info&&t.uint32(34).string(e.info),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},L);for(;n.pos>>3){case 1:o.code=n.uint32();break;case 3:o.log=n.string();break;case 4:o.info=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},L);return t.code=void 0!==e.code&&null!==e.code?Number(e.code):0,t.log=void 0!==e.log&&null!==e.log?String(e.log):"",t.info=void 0!==e.info&&null!==e.info?String(e.info):"",t},toJSON(e){const t={};return void 0!==e.code&&(t.code=e.code),void 0!==e.log&&(t.log=e.log),void 0!==e.info&&(t.info=e.info),t},fromPartial(e){var t,n,r;const o=Object.assign({},L);return o.code=null!==(t=e.code)&&void 0!==t?t:0,o.log=null!==(n=e.log)&&void 0!==n?n:"",o.info=null!==(r=e.info)&&void 0!==r?r:"",o}};const q={};t.ResponseInitChain={encode(e,n=i.default.Writer.create()){void 0!==e.consensusParams&&t.ConsensusParams.encode(e.consensusParams,n.uint32(10).fork()).ldelim();for(const r of e.validators)t.ValidatorUpdate.encode(r,n.uint32(18).fork()).ldelim();return 0!==e.appHash.length&&n.uint32(26).bytes(e.appHash),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},q);for(a.validators=[],a.appHash=new Uint8Array;r.pos>>3){case 1:a.consensusParams=t.ConsensusParams.decode(r,r.uint32());break;case 2:a.validators.push(t.ValidatorUpdate.decode(r,r.uint32()));break;case 3:a.appHash=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},q);return r.consensusParams=void 0!==e.consensusParams&&null!==e.consensusParams?t.ConsensusParams.fromJSON(e.consensusParams):void 0,r.validators=(null!==(n=e.validators)&&void 0!==n?n:[]).map((e=>t.ValidatorUpdate.fromJSON(e))),r.appHash=void 0!==e.appHash&&null!==e.appHash?pe(e.appHash):new Uint8Array,r},toJSON(e){const n={};return void 0!==e.consensusParams&&(n.consensusParams=e.consensusParams?t.ConsensusParams.toJSON(e.consensusParams):void 0),e.validators?n.validators=e.validators.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):n.validators=[],void 0!==e.appHash&&(n.appHash=me(void 0!==e.appHash?e.appHash:new Uint8Array)),n},fromPartial(e){var n,r;const o=Object.assign({},q);return o.consensusParams=void 0!==e.consensusParams&&null!==e.consensusParams?t.ConsensusParams.fromPartial(e.consensusParams):void 0,o.validators=(null===(n=e.validators)||void 0===n?void 0:n.map((e=>t.ValidatorUpdate.fromPartial(e))))||[],o.appHash=null!==(r=e.appHash)&&void 0!==r?r:new Uint8Array,o}};const Y={code:0,log:"",info:"",index:o.default.ZERO,height:o.default.ZERO,codespace:""};t.ResponseQuery={encode:(e,t=i.default.Writer.create())=>(0!==e.code&&t.uint32(8).uint32(e.code),""!==e.log&&t.uint32(26).string(e.log),""!==e.info&&t.uint32(34).string(e.info),e.index.isZero()||t.uint32(40).int64(e.index),0!==e.key.length&&t.uint32(50).bytes(e.key),0!==e.value.length&&t.uint32(58).bytes(e.value),void 0!==e.proofOps&&c.ProofOps.encode(e.proofOps,t.uint32(66).fork()).ldelim(),e.height.isZero()||t.uint32(72).int64(e.height),""!==e.codespace&&t.uint32(82).string(e.codespace),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},Y);for(o.key=new Uint8Array,o.value=new Uint8Array;n.pos>>3){case 1:o.code=n.uint32();break;case 3:o.log=n.string();break;case 4:o.info=n.string();break;case 5:o.index=n.int64();break;case 6:o.key=n.bytes();break;case 7:o.value=n.bytes();break;case 8:o.proofOps=c.ProofOps.decode(n,n.uint32());break;case 9:o.height=n.int64();break;case 10:o.codespace=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},Y);return t.code=void 0!==e.code&&null!==e.code?Number(e.code):0,t.log=void 0!==e.log&&null!==e.log?String(e.log):"",t.info=void 0!==e.info&&null!==e.info?String(e.info):"",t.index=void 0!==e.index&&null!==e.index?o.default.fromString(e.index):o.default.ZERO,t.key=void 0!==e.key&&null!==e.key?pe(e.key):new Uint8Array,t.value=void 0!==e.value&&null!==e.value?pe(e.value):new Uint8Array,t.proofOps=void 0!==e.proofOps&&null!==e.proofOps?c.ProofOps.fromJSON(e.proofOps):void 0,t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,t.codespace=void 0!==e.codespace&&null!==e.codespace?String(e.codespace):"",t},toJSON(e){const t={};return void 0!==e.code&&(t.code=e.code),void 0!==e.log&&(t.log=e.log),void 0!==e.info&&(t.info=e.info),void 0!==e.index&&(t.index=(e.index||o.default.ZERO).toString()),void 0!==e.key&&(t.key=me(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=me(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.proofOps&&(t.proofOps=e.proofOps?c.ProofOps.toJSON(e.proofOps):void 0),void 0!==e.height&&(t.height=(e.height||o.default.ZERO).toString()),void 0!==e.codespace&&(t.codespace=e.codespace),t},fromPartial(e){var t,n,r,i,a,s;const d=Object.assign({},Y);return d.code=null!==(t=e.code)&&void 0!==t?t:0,d.log=null!==(n=e.log)&&void 0!==n?n:"",d.info=null!==(r=e.info)&&void 0!==r?r:"",d.index=void 0!==e.index&&null!==e.index?o.default.fromValue(e.index):o.default.ZERO,d.key=null!==(i=e.key)&&void 0!==i?i:new Uint8Array,d.value=null!==(a=e.value)&&void 0!==a?a:new Uint8Array,d.proofOps=void 0!==e.proofOps&&null!==e.proofOps?c.ProofOps.fromPartial(e.proofOps):void 0,d.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,d.codespace=null!==(s=e.codespace)&&void 0!==s?s:"",d}};const V={};t.ResponseBeginBlock={encode(e,n=i.default.Writer.create()){for(const r of e.events)t.Event.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},V);for(a.events=[];r.pos>>3==1?a.events.push(t.Event.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},V);return r.events=(null!==(n=e.events)&&void 0!==n?n:[]).map((e=>t.Event.fromJSON(e))),r},toJSON(e){const n={};return e.events?n.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):n.events=[],n},fromPartial(e){var n;const r=Object.assign({},V);return r.events=(null===(n=e.events)||void 0===n?void 0:n.map((e=>t.Event.fromPartial(e))))||[],r}};const W={code:0,log:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,codespace:""};t.ResponseCheckTx={encode(e,n=i.default.Writer.create()){0!==e.code&&n.uint32(8).uint32(e.code),0!==e.data.length&&n.uint32(18).bytes(e.data),""!==e.log&&n.uint32(26).string(e.log),""!==e.info&&n.uint32(34).string(e.info),e.gasWanted.isZero()||n.uint32(40).int64(e.gasWanted),e.gasUsed.isZero()||n.uint32(48).int64(e.gasUsed);for(const r of e.events)t.Event.encode(r,n.uint32(58).fork()).ldelim();return""!==e.codespace&&n.uint32(66).string(e.codespace),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},W);for(a.events=[],a.data=new Uint8Array;r.pos>>3){case 1:a.code=r.uint32();break;case 2:a.data=r.bytes();break;case 3:a.log=r.string();break;case 4:a.info=r.string();break;case 5:a.gasWanted=r.int64();break;case 6:a.gasUsed=r.int64();break;case 7:a.events.push(t.Event.decode(r,r.uint32()));break;case 8:a.codespace=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},W);return r.code=void 0!==e.code&&null!==e.code?Number(e.code):0,r.data=void 0!==e.data&&null!==e.data?pe(e.data):new Uint8Array,r.log=void 0!==e.log&&null!==e.log?String(e.log):"",r.info=void 0!==e.info&&null!==e.info?String(e.info):"",r.gasWanted=void 0!==e.gas_wanted&&null!==e.gas_wanted?o.default.fromString(e.gas_wanted):o.default.ZERO,r.gasUsed=void 0!==e.gas_used&&null!==e.gas_used?o.default.fromString(e.gas_used):o.default.ZERO,r.events=(null!==(n=e.events)&&void 0!==n?n:[]).map((e=>t.Event.fromJSON(e))),r.codespace=void 0!==e.codespace&&null!==e.codespace?String(e.codespace):"",r},toJSON(e){const n={};return void 0!==e.code&&(n.code=e.code),void 0!==e.data&&(n.data=me(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(n.log=e.log),void 0!==e.info&&(n.info=e.info),void 0!==e.gasWanted&&(n.gas_wanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(n.gas_used=(e.gasUsed||o.default.ZERO).toString()),e.events?n.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):n.events=[],void 0!==e.codespace&&(n.codespace=e.codespace),n},fromPartial(e){var n,r,i,a,s,c;const d=Object.assign({},W);return d.code=null!==(n=e.code)&&void 0!==n?n:0,d.data=null!==(r=e.data)&&void 0!==r?r:new Uint8Array,d.log=null!==(i=e.log)&&void 0!==i?i:"",d.info=null!==(a=e.info)&&void 0!==a?a:"",d.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromValue(e.gasWanted):o.default.ZERO,d.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromValue(e.gasUsed):o.default.ZERO,d.events=(null===(s=e.events)||void 0===s?void 0:s.map((e=>t.Event.fromPartial(e))))||[],d.codespace=null!==(c=e.codespace)&&void 0!==c?c:"",d}};const K={code:0,log:"",info:"",gasWanted:o.default.ZERO,gasUsed:o.default.ZERO,codespace:""};t.ResponseDeliverTx={encode(e,n=i.default.Writer.create()){0!==e.code&&n.uint32(8).uint32(e.code),0!==e.data.length&&n.uint32(18).bytes(e.data),""!==e.log&&n.uint32(26).string(e.log),""!==e.info&&n.uint32(34).string(e.info),e.gasWanted.isZero()||n.uint32(40).int64(e.gasWanted),e.gasUsed.isZero()||n.uint32(48).int64(e.gasUsed);for(const r of e.events)t.Event.encode(r,n.uint32(58).fork()).ldelim();return""!==e.codespace&&n.uint32(66).string(e.codespace),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},K);for(a.events=[],a.data=new Uint8Array;r.pos>>3){case 1:a.code=r.uint32();break;case 2:a.data=r.bytes();break;case 3:a.log=r.string();break;case 4:a.info=r.string();break;case 5:a.gasWanted=r.int64();break;case 6:a.gasUsed=r.int64();break;case 7:a.events.push(t.Event.decode(r,r.uint32()));break;case 8:a.codespace=r.string();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},K);return r.code=void 0!==e.code&&null!==e.code?Number(e.code):0,r.data=void 0!==e.data&&null!==e.data?pe(e.data):new Uint8Array,r.log=void 0!==e.log&&null!==e.log?String(e.log):"",r.info=void 0!==e.info&&null!==e.info?String(e.info):"",r.gasWanted=void 0!==e.gas_wanted&&null!==e.gas_wanted?o.default.fromString(e.gas_wanted):o.default.ZERO,r.gasUsed=void 0!==e.gas_used&&null!==e.gas_used?o.default.fromString(e.gas_used):o.default.ZERO,r.events=(null!==(n=e.events)&&void 0!==n?n:[]).map((e=>t.Event.fromJSON(e))),r.codespace=void 0!==e.codespace&&null!==e.codespace?String(e.codespace):"",r},toJSON(e){const n={};return void 0!==e.code&&(n.code=e.code),void 0!==e.data&&(n.data=me(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.log&&(n.log=e.log),void 0!==e.info&&(n.info=e.info),void 0!==e.gasWanted&&(n.gas_wanted=(e.gasWanted||o.default.ZERO).toString()),void 0!==e.gasUsed&&(n.gas_used=(e.gasUsed||o.default.ZERO).toString()),e.events?n.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):n.events=[],void 0!==e.codespace&&(n.codespace=e.codespace),n},fromPartial(e){var n,r,i,a,s,c;const d=Object.assign({},K);return d.code=null!==(n=e.code)&&void 0!==n?n:0,d.data=null!==(r=e.data)&&void 0!==r?r:new Uint8Array,d.log=null!==(i=e.log)&&void 0!==i?i:"",d.info=null!==(a=e.info)&&void 0!==a?a:"",d.gasWanted=void 0!==e.gasWanted&&null!==e.gasWanted?o.default.fromValue(e.gasWanted):o.default.ZERO,d.gasUsed=void 0!==e.gasUsed&&null!==e.gasUsed?o.default.fromValue(e.gasUsed):o.default.ZERO,d.events=(null===(s=e.events)||void 0===s?void 0:s.map((e=>t.Event.fromPartial(e))))||[],d.codespace=null!==(c=e.codespace)&&void 0!==c?c:"",d}};const Z={};t.ResponseEndBlock={encode(e,n=i.default.Writer.create()){for(const r of e.validatorUpdates)t.ValidatorUpdate.encode(r,n.uint32(10).fork()).ldelim();void 0!==e.consensusParamUpdates&&t.ConsensusParams.encode(e.consensusParamUpdates,n.uint32(18).fork()).ldelim();for(const r of e.events)t.Event.encode(r,n.uint32(26).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},Z);for(a.validatorUpdates=[],a.events=[];r.pos>>3){case 1:a.validatorUpdates.push(t.ValidatorUpdate.decode(r,r.uint32()));break;case 2:a.consensusParamUpdates=t.ConsensusParams.decode(r,r.uint32());break;case 3:a.events.push(t.Event.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n,r;const o=Object.assign({},Z);return o.validatorUpdates=(null!==(n=e.validatorUpdates)&&void 0!==n?n:[]).map((e=>t.ValidatorUpdate.fromJSON(e))),o.consensusParamUpdates=void 0!==e.consensusParamUpdates&&null!==e.consensusParamUpdates?t.ConsensusParams.fromJSON(e.consensusParamUpdates):void 0,o.events=(null!==(r=e.events)&&void 0!==r?r:[]).map((e=>t.Event.fromJSON(e))),o},toJSON(e){const n={};return e.validatorUpdates?n.validatorUpdates=e.validatorUpdates.map((e=>e?t.ValidatorUpdate.toJSON(e):void 0)):n.validatorUpdates=[],void 0!==e.consensusParamUpdates&&(n.consensusParamUpdates=e.consensusParamUpdates?t.ConsensusParams.toJSON(e.consensusParamUpdates):void 0),e.events?n.events=e.events.map((e=>e?t.Event.toJSON(e):void 0)):n.events=[],n},fromPartial(e){var n,r;const o=Object.assign({},Z);return o.validatorUpdates=(null===(n=e.validatorUpdates)||void 0===n?void 0:n.map((e=>t.ValidatorUpdate.fromPartial(e))))||[],o.consensusParamUpdates=void 0!==e.consensusParamUpdates&&null!==e.consensusParamUpdates?t.ConsensusParams.fromPartial(e.consensusParamUpdates):void 0,o.events=(null===(r=e.events)||void 0===r?void 0:r.map((e=>t.Event.fromPartial(e))))||[],o}};const z={retainHeight:o.default.ZERO};t.ResponseCommit={encode:(e,t=i.default.Writer.create())=>(0!==e.data.length&&t.uint32(18).bytes(e.data),e.retainHeight.isZero()||t.uint32(24).int64(e.retainHeight),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},z);for(o.data=new Uint8Array;n.pos>>3){case 2:o.data=n.bytes();break;case 3:o.retainHeight=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},z);return t.data=void 0!==e.data&&null!==e.data?pe(e.data):new Uint8Array,t.retainHeight=void 0!==e.retainHeight&&null!==e.retainHeight?o.default.fromString(e.retainHeight):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.data&&(t.data=me(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.retainHeight&&(t.retainHeight=(e.retainHeight||o.default.ZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},z);return n.data=null!==(t=e.data)&&void 0!==t?t:new Uint8Array,n.retainHeight=void 0!==e.retainHeight&&null!==e.retainHeight?o.default.fromValue(e.retainHeight):o.default.ZERO,n}};const X={};t.ResponseListSnapshots={encode(e,n=i.default.Writer.create()){for(const r of e.snapshots)t.Snapshot.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},X);for(a.snapshots=[];r.pos>>3==1?a.snapshots.push(t.Snapshot.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},X);return r.snapshots=(null!==(n=e.snapshots)&&void 0!==n?n:[]).map((e=>t.Snapshot.fromJSON(e))),r},toJSON(e){const n={};return e.snapshots?n.snapshots=e.snapshots.map((e=>e?t.Snapshot.toJSON(e):void 0)):n.snapshots=[],n},fromPartial(e){var n;const r=Object.assign({},X);return r.snapshots=(null===(n=e.snapshots)||void 0===n?void 0:n.map((e=>t.Snapshot.fromPartial(e))))||[],r}};const $={result:0};t.ResponseOfferSnapshot={encode:(e,t=i.default.Writer.create())=>(0!==e.result&&t.uint32(8).int32(e.result),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},$);for(;n.pos>>3==1?o.result=n.int32():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},$);return t.result=void 0!==e.result&&null!==e.result?y(e.result):0,t},toJSON(e){const t={};return void 0!==e.result&&(t.result=b(e.result)),t},fromPartial(e){var t;const n=Object.assign({},$);return n.result=null!==(t=e.result)&&void 0!==t?t:0,n}};const ee={};t.ResponseLoadSnapshotChunk={encode:(e,t=i.default.Writer.create())=>(0!==e.chunk.length&&t.uint32(10).bytes(e.chunk),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},ee);for(o.chunk=new Uint8Array;n.pos>>3==1?o.chunk=n.bytes():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},ee);return t.chunk=void 0!==e.chunk&&null!==e.chunk?pe(e.chunk):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.chunk&&(t.chunk=me(void 0!==e.chunk?e.chunk:new Uint8Array)),t},fromPartial(e){var t;const n=Object.assign({},ee);return n.chunk=null!==(t=e.chunk)&&void 0!==t?t:new Uint8Array,n}};const te={result:0,refetchChunks:0,rejectSenders:""};t.ResponseApplySnapshotChunk={encode(e,t=i.default.Writer.create()){0!==e.result&&t.uint32(8).int32(e.result),t.uint32(18).fork();for(const n of e.refetchChunks)t.uint32(n);t.ldelim();for(const n of e.rejectSenders)t.uint32(26).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},te);for(o.refetchChunks=[],o.rejectSenders=[];n.pos>>3){case 1:o.result=n.int32();break;case 2:if(2==(7&e)){const e=n.uint32()+n.pos;for(;n.posNumber(e))),r.rejectSenders=(null!==(n=e.rejectSenders)&&void 0!==n?n:[]).map((e=>String(e))),r},toJSON(e){const t={};return void 0!==e.result&&(t.result=C(e.result)),e.refetchChunks?t.refetchChunks=e.refetchChunks.map((e=>e)):t.refetchChunks=[],e.rejectSenders?t.rejectSenders=e.rejectSenders.map((e=>e)):t.rejectSenders=[],t},fromPartial(e){var t,n,r;const o=Object.assign({},te);return o.result=null!==(t=e.result)&&void 0!==t?t:0,o.refetchChunks=(null===(n=e.refetchChunks)||void 0===n?void 0:n.map((e=>e)))||[],o.rejectSenders=(null===(r=e.rejectSenders)||void 0===r?void 0:r.map((e=>e)))||[],o}};const ne={};t.ConsensusParams={encode:(e,n=i.default.Writer.create())=>(void 0!==e.block&&t.BlockParams.encode(e.block,n.uint32(10).fork()).ldelim(),void 0!==e.evidence&&d.EvidenceParams.encode(e.evidence,n.uint32(18).fork()).ldelim(),void 0!==e.validator&&d.ValidatorParams.encode(e.validator,n.uint32(26).fork()).ldelim(),void 0!==e.version&&d.VersionParams.encode(e.version,n.uint32(34).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},ne);for(;r.pos>>3){case 1:a.block=t.BlockParams.decode(r,r.uint32());break;case 2:a.evidence=d.EvidenceParams.decode(r,r.uint32());break;case 3:a.validator=d.ValidatorParams.decode(r,r.uint32());break;case 4:a.version=d.VersionParams.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},ne);return n.block=void 0!==e.block&&null!==e.block?t.BlockParams.fromJSON(e.block):void 0,n.evidence=void 0!==e.evidence&&null!==e.evidence?d.EvidenceParams.fromJSON(e.evidence):void 0,n.validator=void 0!==e.validator&&null!==e.validator?d.ValidatorParams.fromJSON(e.validator):void 0,n.version=void 0!==e.version&&null!==e.version?d.VersionParams.fromJSON(e.version):void 0,n},toJSON(e){const n={};return void 0!==e.block&&(n.block=e.block?t.BlockParams.toJSON(e.block):void 0),void 0!==e.evidence&&(n.evidence=e.evidence?d.EvidenceParams.toJSON(e.evidence):void 0),void 0!==e.validator&&(n.validator=e.validator?d.ValidatorParams.toJSON(e.validator):void 0),void 0!==e.version&&(n.version=e.version?d.VersionParams.toJSON(e.version):void 0),n},fromPartial(e){const n=Object.assign({},ne);return n.block=void 0!==e.block&&null!==e.block?t.BlockParams.fromPartial(e.block):void 0,n.evidence=void 0!==e.evidence&&null!==e.evidence?d.EvidenceParams.fromPartial(e.evidence):void 0,n.validator=void 0!==e.validator&&null!==e.validator?d.ValidatorParams.fromPartial(e.validator):void 0,n.version=void 0!==e.version&&null!==e.version?d.VersionParams.fromPartial(e.version):void 0,n}};const re={maxBytes:o.default.ZERO,maxGas:o.default.ZERO};t.BlockParams={encode:(e,t=i.default.Writer.create())=>(e.maxBytes.isZero()||t.uint32(8).int64(e.maxBytes),e.maxGas.isZero()||t.uint32(16).int64(e.maxGas),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},re);for(;n.pos>>3){case 1:o.maxBytes=n.int64();break;case 2:o.maxGas=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},re);return t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromString(e.maxBytes):o.default.ZERO,t.maxGas=void 0!==e.maxGas&&null!==e.maxGas?o.default.fromString(e.maxGas):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),void 0!==e.maxGas&&(t.maxGas=(e.maxGas||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},re);return t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromValue(e.maxBytes):o.default.ZERO,t.maxGas=void 0!==e.maxGas&&null!==e.maxGas?o.default.fromValue(e.maxGas):o.default.ZERO,t}};const oe={round:0};t.LastCommitInfo={encode(e,n=i.default.Writer.create()){0!==e.round&&n.uint32(8).int32(e.round);for(const r of e.votes)t.VoteInfo.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},oe);for(a.votes=[];r.pos>>3){case 1:a.round=r.int32();break;case 2:a.votes.push(t.VoteInfo.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},oe);return r.round=void 0!==e.round&&null!==e.round?Number(e.round):0,r.votes=(null!==(n=e.votes)&&void 0!==n?n:[]).map((e=>t.VoteInfo.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.round&&(n.round=e.round),e.votes?n.votes=e.votes.map((e=>e?t.VoteInfo.toJSON(e):void 0)):n.votes=[],n},fromPartial(e){var n,r;const o=Object.assign({},oe);return o.round=null!==(n=e.round)&&void 0!==n?n:0,o.votes=(null===(r=e.votes)||void 0===r?void 0:r.map((e=>t.VoteInfo.fromPartial(e))))||[],o}};const ie={type:""};t.Event={encode(e,n=i.default.Writer.create()){""!==e.type&&n.uint32(10).string(e.type);for(const r of e.attributes)t.EventAttribute.encode(r,n.uint32(18).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},ie);for(a.attributes=[];r.pos>>3){case 1:a.type=r.string();break;case 2:a.attributes.push(t.EventAttribute.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},ie);return r.type=void 0!==e.type&&null!==e.type?String(e.type):"",r.attributes=(null!==(n=e.attributes)&&void 0!==n?n:[]).map((e=>t.EventAttribute.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.type&&(n.type=e.type),e.attributes?n.attributes=e.attributes.map((e=>e?t.EventAttribute.toJSON(e):void 0)):n.attributes=[],n},fromPartial(e){var n,r;const o=Object.assign({},ie);return o.type=null!==(n=e.type)&&void 0!==n?n:"",o.attributes=(null===(r=e.attributes)||void 0===r?void 0:r.map((e=>t.EventAttribute.fromPartial(e))))||[],o}};const ae={index:!1};t.EventAttribute={encode:(e,t=i.default.Writer.create())=>(0!==e.key.length&&t.uint32(10).bytes(e.key),0!==e.value.length&&t.uint32(18).bytes(e.value),!0===e.index&&t.uint32(24).bool(e.index),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},ae);for(o.key=new Uint8Array,o.value=new Uint8Array;n.pos>>3){case 1:o.key=n.bytes();break;case 2:o.value=n.bytes();break;case 3:o.index=n.bool();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ae);return t.key=void 0!==e.key&&null!==e.key?pe(e.key):new Uint8Array,t.value=void 0!==e.value&&null!==e.value?pe(e.value):new Uint8Array,t.index=void 0!==e.index&&null!==e.index&&Boolean(e.index),t},toJSON(e){const t={};return void 0!==e.key&&(t.key=me(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.value&&(t.value=me(void 0!==e.value?e.value:new Uint8Array)),void 0!==e.index&&(t.index=e.index),t},fromPartial(e){var t,n,r;const o=Object.assign({},ae);return o.key=null!==(t=e.key)&&void 0!==t?t:new Uint8Array,o.value=null!==(n=e.value)&&void 0!==n?n:new Uint8Array,o.index=null!==(r=e.index)&&void 0!==r&&r,o}};const se={height:o.default.ZERO,index:0};t.TxResult={encode:(e,n=i.default.Writer.create())=>(e.height.isZero()||n.uint32(8).int64(e.height),0!==e.index&&n.uint32(16).uint32(e.index),0!==e.tx.length&&n.uint32(26).bytes(e.tx),void 0!==e.result&&t.ResponseDeliverTx.encode(e.result,n.uint32(34).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},se);for(a.tx=new Uint8Array;r.pos>>3){case 1:a.height=r.int64();break;case 2:a.index=r.uint32();break;case 3:a.tx=r.bytes();break;case 4:a.result=t.ResponseDeliverTx.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},se);return n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.index=void 0!==e.index&&null!==e.index?Number(e.index):0,n.tx=void 0!==e.tx&&null!==e.tx?pe(e.tx):new Uint8Array,n.result=void 0!==e.result&&null!==e.result?t.ResponseDeliverTx.fromJSON(e.result):void 0,n},toJSON(e){const n={};return void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.index&&(n.index=e.index),void 0!==e.tx&&(n.tx=me(void 0!==e.tx?e.tx:new Uint8Array)),void 0!==e.result&&(n.result=e.result?t.ResponseDeliverTx.toJSON(e.result):void 0),n},fromPartial(e){var n,r;const i=Object.assign({},se);return i.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,i.index=null!==(n=e.index)&&void 0!==n?n:0,i.tx=null!==(r=e.tx)&&void 0!==r?r:new Uint8Array,i.result=void 0!==e.result&&null!==e.result?t.ResponseDeliverTx.fromPartial(e.result):void 0,i}};const ce={power:o.default.ZERO};t.Validator={encode:(e,t=i.default.Writer.create())=>(0!==e.address.length&&t.uint32(10).bytes(e.address),e.power.isZero()||t.uint32(24).int64(e.power),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},ce);for(o.address=new Uint8Array;n.pos>>3){case 1:o.address=n.bytes();break;case 3:o.power=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},ce);return t.address=void 0!==e.address&&null!==e.address?pe(e.address):new Uint8Array,t.power=void 0!==e.power&&null!==e.power?o.default.fromString(e.power):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.address&&(t.address=me(void 0!==e.address?e.address:new Uint8Array)),void 0!==e.power&&(t.power=(e.power||o.default.ZERO).toString()),t},fromPartial(e){var t;const n=Object.assign({},ce);return n.address=null!==(t=e.address)&&void 0!==t?t:new Uint8Array,n.power=void 0!==e.power&&null!==e.power?o.default.fromValue(e.power):o.default.ZERO,n}};const de={power:o.default.ZERO};t.ValidatorUpdate={encode:(e,t=i.default.Writer.create())=>(void 0!==e.pubKey&&u.PublicKey.encode(e.pubKey,t.uint32(10).fork()).ldelim(),e.power.isZero()||t.uint32(16).int64(e.power),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},de);for(;n.pos>>3){case 1:o.pubKey=u.PublicKey.decode(n,n.uint32());break;case 2:o.power=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},de);return t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?u.PublicKey.fromJSON(e.pubKey):void 0,t.power=void 0!==e.power&&null!==e.power?o.default.fromString(e.power):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.pubKey&&(t.pubKey=e.pubKey?u.PublicKey.toJSON(e.pubKey):void 0),void 0!==e.power&&(t.power=(e.power||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},de);return t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?u.PublicKey.fromPartial(e.pubKey):void 0,t.power=void 0!==e.power&&null!==e.power?o.default.fromValue(e.power):o.default.ZERO,t}};const ue={signedLastBlock:!1};t.VoteInfo={encode:(e,n=i.default.Writer.create())=>(void 0!==e.validator&&t.Validator.encode(e.validator,n.uint32(10).fork()).ldelim(),!0===e.signedLastBlock&&n.uint32(16).bool(e.signedLastBlock),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},ue);for(;r.pos>>3){case 1:a.validator=t.Validator.decode(r,r.uint32());break;case 2:a.signedLastBlock=r.bool();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},ue);return n.validator=void 0!==e.validator&&null!==e.validator?t.Validator.fromJSON(e.validator):void 0,n.signedLastBlock=void 0!==e.signedLastBlock&&null!==e.signedLastBlock&&Boolean(e.signedLastBlock),n},toJSON(e){const n={};return void 0!==e.validator&&(n.validator=e.validator?t.Validator.toJSON(e.validator):void 0),void 0!==e.signedLastBlock&&(n.signedLastBlock=e.signedLastBlock),n},fromPartial(e){var n;const r=Object.assign({},ue);return r.validator=void 0!==e.validator&&null!==e.validator?t.Validator.fromPartial(e.validator):void 0,r.signedLastBlock=null!==(n=e.signedLastBlock)&&void 0!==n&&n,r}};const le={type:0,height:o.default.ZERO,totalVotingPower:o.default.ZERO};t.Evidence={encode:(e,n=i.default.Writer.create())=>(0!==e.type&&n.uint32(8).int32(e.type),void 0!==e.validator&&t.Validator.encode(e.validator,n.uint32(18).fork()).ldelim(),e.height.isZero()||n.uint32(24).int64(e.height),void 0!==e.time&&a.Timestamp.encode(e.time,n.uint32(34).fork()).ldelim(),e.totalVotingPower.isZero()||n.uint32(40).int64(e.totalVotingPower),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const s=Object.assign({},le);for(;r.pos>>3){case 1:s.type=r.int32();break;case 2:s.validator=t.Validator.decode(r,r.uint32());break;case 3:s.height=r.int64();break;case 4:s.time=a.Timestamp.decode(r,r.uint32());break;case 5:s.totalVotingPower=r.int64();break;default:r.skipType(7&e)}}return s},fromJSON(e){const n=Object.assign({},le);return n.type=void 0!==e.type&&null!==e.type?m(e.type):0,n.validator=void 0!==e.validator&&null!==e.validator?t.Validator.fromJSON(e.validator):void 0,n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.time=void 0!==e.time&&null!==e.time?be(e.time):void 0,n.totalVotingPower=void 0!==e.totalVotingPower&&null!==e.totalVotingPower?o.default.fromString(e.totalVotingPower):o.default.ZERO,n},toJSON(e){const n={};return void 0!==e.type&&(n.type=v(e.type)),void 0!==e.validator&&(n.validator=e.validator?t.Validator.toJSON(e.validator):void 0),void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.time&&(n.time=ye(e.time).toISOString()),void 0!==e.totalVotingPower&&(n.totalVotingPower=(e.totalVotingPower||o.default.ZERO).toString()),n},fromPartial(e){var n;const r=Object.assign({},le);return r.type=null!==(n=e.type)&&void 0!==n?n:0,r.validator=void 0!==e.validator&&null!==e.validator?t.Validator.fromPartial(e.validator):void 0,r.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,r.time=void 0!==e.time&&null!==e.time?a.Timestamp.fromPartial(e.time):void 0,r.totalVotingPower=void 0!==e.totalVotingPower&&null!==e.totalVotingPower?o.default.fromValue(e.totalVotingPower):o.default.ZERO,r}};const Ae={height:o.default.UZERO,format:0,chunks:0};t.Snapshot={encode:(e,t=i.default.Writer.create())=>(e.height.isZero()||t.uint32(8).uint64(e.height),0!==e.format&&t.uint32(16).uint32(e.format),0!==e.chunks&&t.uint32(24).uint32(e.chunks),0!==e.hash.length&&t.uint32(34).bytes(e.hash),0!==e.metadata.length&&t.uint32(42).bytes(e.metadata),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},Ae);for(o.hash=new Uint8Array,o.metadata=new Uint8Array;n.pos>>3){case 1:o.height=n.uint64();break;case 2:o.format=n.uint32();break;case 3:o.chunks=n.uint32();break;case 4:o.hash=n.bytes();break;case 5:o.metadata=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},Ae);return t.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.UZERO,t.format=void 0!==e.format&&null!==e.format?Number(e.format):0,t.chunks=void 0!==e.chunks&&null!==e.chunks?Number(e.chunks):0,t.hash=void 0!==e.hash&&null!==e.hash?pe(e.hash):new Uint8Array,t.metadata=void 0!==e.metadata&&null!==e.metadata?pe(e.metadata):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.height&&(t.height=(e.height||o.default.UZERO).toString()),void 0!==e.format&&(t.format=e.format),void 0!==e.chunks&&(t.chunks=e.chunks),void 0!==e.hash&&(t.hash=me(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.metadata&&(t.metadata=me(void 0!==e.metadata?e.metadata:new Uint8Array)),t},fromPartial(e){var t,n,r,i;const a=Object.assign({},Ae);return a.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.UZERO,a.format=null!==(t=e.format)&&void 0!==t?t:0,a.chunks=null!==(n=e.chunks)&&void 0!==n?n:0,a.hash=null!==(r=e.hash)&&void 0!==r?r:new Uint8Array,a.metadata=null!==(i=e.metadata)&&void 0!==i?i:new Uint8Array,a}},t.ABCIApplicationClientImpl=class{constructor(e){this.rpc=e,this.Echo=this.Echo.bind(this),this.Flush=this.Flush.bind(this),this.Info=this.Info.bind(this),this.SetOption=this.SetOption.bind(this),this.DeliverTx=this.DeliverTx.bind(this),this.CheckTx=this.CheckTx.bind(this),this.Query=this.Query.bind(this),this.Commit=this.Commit.bind(this),this.InitChain=this.InitChain.bind(this),this.BeginBlock=this.BeginBlock.bind(this),this.EndBlock=this.EndBlock.bind(this),this.ListSnapshots=this.ListSnapshots.bind(this),this.OfferSnapshot=this.OfferSnapshot.bind(this),this.LoadSnapshotChunk=this.LoadSnapshotChunk.bind(this),this.ApplySnapshotChunk=this.ApplySnapshotChunk.bind(this)}Echo(e){const n=t.RequestEcho.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Echo",n).then((e=>t.ResponseEcho.decode(new i.default.Reader(e))))}Flush(e){const n=t.RequestFlush.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Flush",n).then((e=>t.ResponseFlush.decode(new i.default.Reader(e))))}Info(e){const n=t.RequestInfo.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Info",n).then((e=>t.ResponseInfo.decode(new i.default.Reader(e))))}SetOption(e){const n=t.RequestSetOption.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","SetOption",n).then((e=>t.ResponseSetOption.decode(new i.default.Reader(e))))}DeliverTx(e){const n=t.RequestDeliverTx.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","DeliverTx",n).then((e=>t.ResponseDeliverTx.decode(new i.default.Reader(e))))}CheckTx(e){const n=t.RequestCheckTx.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","CheckTx",n).then((e=>t.ResponseCheckTx.decode(new i.default.Reader(e))))}Query(e){const n=t.RequestQuery.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Query",n).then((e=>t.ResponseQuery.decode(new i.default.Reader(e))))}Commit(e){const n=t.RequestCommit.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","Commit",n).then((e=>t.ResponseCommit.decode(new i.default.Reader(e))))}InitChain(e){const n=t.RequestInitChain.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","InitChain",n).then((e=>t.ResponseInitChain.decode(new i.default.Reader(e))))}BeginBlock(e){const n=t.RequestBeginBlock.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","BeginBlock",n).then((e=>t.ResponseBeginBlock.decode(new i.default.Reader(e))))}EndBlock(e){const n=t.RequestEndBlock.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","EndBlock",n).then((e=>t.ResponseEndBlock.decode(new i.default.Reader(e))))}ListSnapshots(e){const n=t.RequestListSnapshots.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","ListSnapshots",n).then((e=>t.ResponseListSnapshots.decode(new i.default.Reader(e))))}OfferSnapshot(e){const n=t.RequestOfferSnapshot.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","OfferSnapshot",n).then((e=>t.ResponseOfferSnapshot.decode(new i.default.Reader(e))))}LoadSnapshotChunk(e){const n=t.RequestLoadSnapshotChunk.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","LoadSnapshotChunk",n).then((e=>t.ResponseLoadSnapshotChunk.decode(new i.default.Reader(e))))}ApplySnapshotChunk(e){const n=t.RequestApplySnapshotChunk.encode(e).finish();return this.rpc.request("tendermint.abci.ABCIApplication","ApplySnapshotChunk",n).then((e=>t.ResponseApplySnapshotChunk.decode(new i.default.Reader(e))))}};var fe=(()=>{if(void 0!==fe)return fe;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const he=fe.atob||(e=>fe.Buffer.from(e,"base64").toString("binary"));function pe(e){const t=he(e),n=new Uint8Array(t.length);for(let e=0;efe.Buffer.from(e,"binary").toString("base64"));function me(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return ge(t.join(""))}function ve(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function ye(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function be(e){return e instanceof Date?ve(e):"string"==typeof e?ve(new Date(e)):a.Timestamp.fromJSON(e)}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},984:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PublicKey=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="tendermint.crypto";const a={};t.PublicKey={encode:(e,t=i.default.Writer.create())=>(void 0!==e.ed25519&&t.uint32(10).bytes(e.ed25519),void 0!==e.secp256k1&&t.uint32(18).bytes(e.secp256k1),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.ed25519=n.bytes();break;case 2:o.secp256k1=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.ed25519=void 0!==e.ed25519&&null!==e.ed25519?d(e.ed25519):void 0,t.secp256k1=void 0!==e.secp256k1&&null!==e.secp256k1?d(e.secp256k1):void 0,t},toJSON(e){const t={};return void 0!==e.ed25519&&(t.ed25519=void 0!==e.ed25519?l(e.ed25519):void 0),void 0!==e.secp256k1&&(t.secp256k1=void 0!==e.secp256k1?l(e.secp256k1):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},a);return r.ed25519=null!==(t=e.ed25519)&&void 0!==t?t:void 0,r.secp256k1=null!==(n=e.secp256k1)&&void 0!==n?n:void 0,r}};var s=(()=>{if(void 0!==s)return s;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const c=s.atob||(e=>s.Buffer.from(e,"base64").toString("binary"));function d(e){const t=c(e),n=new Uint8Array(t.length);for(let e=0;es.Buffer.from(e,"binary").toString("base64"));function l(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return u(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1494:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ProofOps=t.ProofOp=t.DominoOp=t.ValueOp=t.Proof=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="tendermint.crypto";const a={total:o.default.ZERO,index:o.default.ZERO};t.Proof={encode(e,t=i.default.Writer.create()){e.total.isZero()||t.uint32(8).int64(e.total),e.index.isZero()||t.uint32(16).int64(e.index),0!==e.leafHash.length&&t.uint32(26).bytes(e.leafHash);for(const n of e.aunts)t.uint32(34).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(o.aunts=[],o.leafHash=new Uint8Array;n.pos>>3){case 1:o.total=n.int64();break;case 2:o.index=n.int64();break;case 3:o.leafHash=n.bytes();break;case 4:o.aunts.push(n.bytes());break;default:n.skipType(7&e)}}return o},fromJSON(e){var t;const n=Object.assign({},a);return n.total=void 0!==e.total&&null!==e.total?o.default.fromString(e.total):o.default.ZERO,n.index=void 0!==e.index&&null!==e.index?o.default.fromString(e.index):o.default.ZERO,n.leafHash=void 0!==e.leafHash&&null!==e.leafHash?f(e.leafHash):new Uint8Array,n.aunts=(null!==(t=e.aunts)&&void 0!==t?t:[]).map((e=>f(e))),n},toJSON(e){const t={};return void 0!==e.total&&(t.total=(e.total||o.default.ZERO).toString()),void 0!==e.index&&(t.index=(e.index||o.default.ZERO).toString()),void 0!==e.leafHash&&(t.leafHash=p(void 0!==e.leafHash?e.leafHash:new Uint8Array)),e.aunts?t.aunts=e.aunts.map((e=>p(void 0!==e?e:new Uint8Array))):t.aunts=[],t},fromPartial(e){var t,n;const r=Object.assign({},a);return r.total=void 0!==e.total&&null!==e.total?o.default.fromValue(e.total):o.default.ZERO,r.index=void 0!==e.index&&null!==e.index?o.default.fromValue(e.index):o.default.ZERO,r.leafHash=null!==(t=e.leafHash)&&void 0!==t?t:new Uint8Array,r.aunts=(null===(n=e.aunts)||void 0===n?void 0:n.map((e=>e)))||[],r}};const s={};t.ValueOp={encode:(e,n=i.default.Writer.create())=>(0!==e.key.length&&n.uint32(10).bytes(e.key),void 0!==e.proof&&t.Proof.encode(e.proof,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},s);for(a.key=new Uint8Array;r.pos>>3){case 1:a.key=r.bytes();break;case 2:a.proof=t.Proof.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},s);return n.key=void 0!==e.key&&null!==e.key?f(e.key):new Uint8Array,n.proof=void 0!==e.proof&&null!==e.proof?t.Proof.fromJSON(e.proof):void 0,n},toJSON(e){const n={};return void 0!==e.key&&(n.key=p(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.proof&&(n.proof=e.proof?t.Proof.toJSON(e.proof):void 0),n},fromPartial(e){var n;const r=Object.assign({},s);return r.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,r.proof=void 0!==e.proof&&null!==e.proof?t.Proof.fromPartial(e.proof):void 0,r}};const c={key:"",input:"",output:""};t.DominoOp={encode:(e,t=i.default.Writer.create())=>(""!==e.key&&t.uint32(10).string(e.key),""!==e.input&&t.uint32(18).string(e.input),""!==e.output&&t.uint32(26).string(e.output),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.key=n.string();break;case 2:o.input=n.string();break;case 3:o.output=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.key=void 0!==e.key&&null!==e.key?String(e.key):"",t.input=void 0!==e.input&&null!==e.input?String(e.input):"",t.output=void 0!==e.output&&null!==e.output?String(e.output):"",t},toJSON(e){const t={};return void 0!==e.key&&(t.key=e.key),void 0!==e.input&&(t.input=e.input),void 0!==e.output&&(t.output=e.output),t},fromPartial(e){var t,n,r;const o=Object.assign({},c);return o.key=null!==(t=e.key)&&void 0!==t?t:"",o.input=null!==(n=e.input)&&void 0!==n?n:"",o.output=null!==(r=e.output)&&void 0!==r?r:"",o}};const d={type:""};t.ProofOp={encode:(e,t=i.default.Writer.create())=>(""!==e.type&&t.uint32(10).string(e.type),0!==e.key.length&&t.uint32(18).bytes(e.key),0!==e.data.length&&t.uint32(26).bytes(e.data),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(o.key=new Uint8Array,o.data=new Uint8Array;n.pos>>3){case 1:o.type=n.string();break;case 2:o.key=n.bytes();break;case 3:o.data=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.type=void 0!==e.type&&null!==e.type?String(e.type):"",t.key=void 0!==e.key&&null!==e.key?f(e.key):new Uint8Array,t.data=void 0!==e.data&&null!==e.data?f(e.data):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.type&&(t.type=e.type),void 0!==e.key&&(t.key=p(void 0!==e.key?e.key:new Uint8Array)),void 0!==e.data&&(t.data=p(void 0!==e.data?e.data:new Uint8Array)),t},fromPartial(e){var t,n,r;const o=Object.assign({},d);return o.type=null!==(t=e.type)&&void 0!==t?t:"",o.key=null!==(n=e.key)&&void 0!==n?n:new Uint8Array,o.data=null!==(r=e.data)&&void 0!==r?r:new Uint8Array,o}};const u={};t.ProofOps={encode(e,n=i.default.Writer.create()){for(const r of e.ops)t.ProofOp.encode(r,n.uint32(10).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},u);for(a.ops=[];r.pos>>3==1?a.ops.push(t.ProofOp.decode(r,r.uint32())):r.skipType(7&e)}return a},fromJSON(e){var n;const r=Object.assign({},u);return r.ops=(null!==(n=e.ops)&&void 0!==n?n:[]).map((e=>t.ProofOp.fromJSON(e))),r},toJSON(e){const n={};return e.ops?n.ops=e.ops.map((e=>e?t.ProofOp.toJSON(e):void 0)):n.ops=[],n},fromPartial(e){var n;const r=Object.assign({},u);return r.ops=(null===(n=e.ops)||void 0===n?void 0:n.map((e=>t.ProofOp.fromPartial(e))))||[],r}};var l=(()=>{if(void 0!==l)return l;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const A=l.atob||(e=>l.Buffer.from(e,"base64").toString("binary"));function f(e){const t=A(e),n=new Uint8Array(t.length);for(let e=0;el.Buffer.from(e,"binary").toString("base64"));function p(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return h(t.join(""))}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},7134:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashedParams=t.VersionParams=t.ValidatorParams=t.EvidenceParams=t.BlockParams=t.ConsensusParams=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(281);t.protobufPackage="tendermint.types";const s={};t.ConsensusParams={encode:(e,n=i.default.Writer.create())=>(void 0!==e.block&&t.BlockParams.encode(e.block,n.uint32(10).fork()).ldelim(),void 0!==e.evidence&&t.EvidenceParams.encode(e.evidence,n.uint32(18).fork()).ldelim(),void 0!==e.validator&&t.ValidatorParams.encode(e.validator,n.uint32(26).fork()).ldelim(),void 0!==e.version&&t.VersionParams.encode(e.version,n.uint32(34).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},s);for(;r.pos>>3){case 1:a.block=t.BlockParams.decode(r,r.uint32());break;case 2:a.evidence=t.EvidenceParams.decode(r,r.uint32());break;case 3:a.validator=t.ValidatorParams.decode(r,r.uint32());break;case 4:a.version=t.VersionParams.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},s);return n.block=void 0!==e.block&&null!==e.block?t.BlockParams.fromJSON(e.block):void 0,n.evidence=void 0!==e.evidence&&null!==e.evidence?t.EvidenceParams.fromJSON(e.evidence):void 0,n.validator=void 0!==e.validator&&null!==e.validator?t.ValidatorParams.fromJSON(e.validator):void 0,n.version=void 0!==e.version&&null!==e.version?t.VersionParams.fromJSON(e.version):void 0,n},toJSON(e){const n={};return void 0!==e.block&&(n.block=e.block?t.BlockParams.toJSON(e.block):void 0),void 0!==e.evidence&&(n.evidence=e.evidence?t.EvidenceParams.toJSON(e.evidence):void 0),void 0!==e.validator&&(n.validator=e.validator?t.ValidatorParams.toJSON(e.validator):void 0),void 0!==e.version&&(n.version=e.version?t.VersionParams.toJSON(e.version):void 0),n},fromPartial(e){const n=Object.assign({},s);return n.block=void 0!==e.block&&null!==e.block?t.BlockParams.fromPartial(e.block):void 0,n.evidence=void 0!==e.evidence&&null!==e.evidence?t.EvidenceParams.fromPartial(e.evidence):void 0,n.validator=void 0!==e.validator&&null!==e.validator?t.ValidatorParams.fromPartial(e.validator):void 0,n.version=void 0!==e.version&&null!==e.version?t.VersionParams.fromPartial(e.version):void 0,n}};const c={maxBytes:o.default.ZERO,maxGas:o.default.ZERO,timeIotaMs:o.default.ZERO};t.BlockParams={encode:(e,t=i.default.Writer.create())=>(e.maxBytes.isZero()||t.uint32(8).int64(e.maxBytes),e.maxGas.isZero()||t.uint32(16).int64(e.maxGas),e.timeIotaMs.isZero()||t.uint32(24).int64(e.timeIotaMs),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(;n.pos>>3){case 1:o.maxBytes=n.int64();break;case 2:o.maxGas=n.int64();break;case 3:o.timeIotaMs=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromString(e.maxBytes):o.default.ZERO,t.maxGas=void 0!==e.maxGas&&null!==e.maxGas?o.default.fromString(e.maxGas):o.default.ZERO,t.timeIotaMs=void 0!==e.timeIotaMs&&null!==e.timeIotaMs?o.default.fromString(e.timeIotaMs):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),void 0!==e.maxGas&&(t.maxGas=(e.maxGas||o.default.ZERO).toString()),void 0!==e.timeIotaMs&&(t.timeIotaMs=(e.timeIotaMs||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},c);return t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromValue(e.maxBytes):o.default.ZERO,t.maxGas=void 0!==e.maxGas&&null!==e.maxGas?o.default.fromValue(e.maxGas):o.default.ZERO,t.timeIotaMs=void 0!==e.timeIotaMs&&null!==e.timeIotaMs?o.default.fromValue(e.timeIotaMs):o.default.ZERO,t}};const d={maxAgeNumBlocks:o.default.ZERO,maxBytes:o.default.ZERO};t.EvidenceParams={encode:(e,t=i.default.Writer.create())=>(e.maxAgeNumBlocks.isZero()||t.uint32(8).int64(e.maxAgeNumBlocks),void 0!==e.maxAgeDuration&&a.Duration.encode(e.maxAgeDuration,t.uint32(18).fork()).ldelim(),e.maxBytes.isZero()||t.uint32(24).int64(e.maxBytes),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.maxAgeNumBlocks=n.int64();break;case 2:o.maxAgeDuration=a.Duration.decode(n,n.uint32());break;case 3:o.maxBytes=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.maxAgeNumBlocks=void 0!==e.maxAgeNumBlocks&&null!==e.maxAgeNumBlocks?o.default.fromString(e.maxAgeNumBlocks):o.default.ZERO,t.maxAgeDuration=void 0!==e.maxAgeDuration&&null!==e.maxAgeDuration?a.Duration.fromJSON(e.maxAgeDuration):void 0,t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromString(e.maxBytes):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.maxAgeNumBlocks&&(t.maxAgeNumBlocks=(e.maxAgeNumBlocks||o.default.ZERO).toString()),void 0!==e.maxAgeDuration&&(t.maxAgeDuration=e.maxAgeDuration?a.Duration.toJSON(e.maxAgeDuration):void 0),void 0!==e.maxBytes&&(t.maxBytes=(e.maxBytes||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return t.maxAgeNumBlocks=void 0!==e.maxAgeNumBlocks&&null!==e.maxAgeNumBlocks?o.default.fromValue(e.maxAgeNumBlocks):o.default.ZERO,t.maxAgeDuration=void 0!==e.maxAgeDuration&&null!==e.maxAgeDuration?a.Duration.fromPartial(e.maxAgeDuration):void 0,t.maxBytes=void 0!==e.maxBytes&&null!==e.maxBytes?o.default.fromValue(e.maxBytes):o.default.ZERO,t}};const u={pubKeyTypes:""};t.ValidatorParams={encode(e,t=i.default.Writer.create()){for(const n of e.pubKeyTypes)t.uint32(10).string(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},u);for(o.pubKeyTypes=[];n.pos>>3==1?o.pubKeyTypes.push(n.string()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},u);return n.pubKeyTypes=(null!==(t=e.pubKeyTypes)&&void 0!==t?t:[]).map((e=>String(e))),n},toJSON(e){const t={};return e.pubKeyTypes?t.pubKeyTypes=e.pubKeyTypes.map((e=>e)):t.pubKeyTypes=[],t},fromPartial(e){var t;const n=Object.assign({},u);return n.pubKeyTypes=(null===(t=e.pubKeyTypes)||void 0===t?void 0:t.map((e=>e)))||[],n}};const l={appVersion:o.default.UZERO};t.VersionParams={encode:(e,t=i.default.Writer.create())=>(e.appVersion.isZero()||t.uint32(8).uint64(e.appVersion),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},l);for(;n.pos>>3==1?o.appVersion=n.uint64():n.skipType(7&e)}return o},fromJSON(e){const t=Object.assign({},l);return t.appVersion=void 0!==e.appVersion&&null!==e.appVersion?o.default.fromString(e.appVersion):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.appVersion&&(t.appVersion=(e.appVersion||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},l);return t.appVersion=void 0!==e.appVersion&&null!==e.appVersion?o.default.fromValue(e.appVersion):o.default.UZERO,t}};const A={blockMaxBytes:o.default.ZERO,blockMaxGas:o.default.ZERO};t.HashedParams={encode:(e,t=i.default.Writer.create())=>(e.blockMaxBytes.isZero()||t.uint32(8).int64(e.blockMaxBytes),e.blockMaxGas.isZero()||t.uint32(16).int64(e.blockMaxGas),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},A);for(;n.pos>>3){case 1:o.blockMaxBytes=n.int64();break;case 2:o.blockMaxGas=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},A);return t.blockMaxBytes=void 0!==e.blockMaxBytes&&null!==e.blockMaxBytes?o.default.fromString(e.blockMaxBytes):o.default.ZERO,t.blockMaxGas=void 0!==e.blockMaxGas&&null!==e.blockMaxGas?o.default.fromString(e.blockMaxGas):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.blockMaxBytes&&(t.blockMaxBytes=(e.blockMaxBytes||o.default.ZERO).toString()),void 0!==e.blockMaxGas&&(t.blockMaxGas=(e.blockMaxGas||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},A);return t.blockMaxBytes=void 0!==e.blockMaxBytes&&null!==e.blockMaxBytes?o.default.fromValue(e.blockMaxBytes):o.default.ZERO,t.blockMaxGas=void 0!==e.blockMaxGas&&null!==e.blockMaxGas?o.default.fromValue(e.blockMaxGas):o.default.ZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1258:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TxProof=t.BlockMeta=t.LightBlock=t.SignedHeader=t.Proposal=t.CommitSig=t.Commit=t.Vote=t.Data=t.Header=t.BlockID=t.Part=t.PartSetHeader=t.signedMsgTypeToJSON=t.signedMsgTypeFromJSON=t.SignedMsgType=t.blockIDFlagToJSON=t.blockIDFlagFromJSON=t.BlockIDFlag=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(1494),s=n(1083),c=n(5522),d=n(3444);var u,l;function A(e){switch(e){case 0:case"BLOCK_ID_FLAG_UNKNOWN":return u.BLOCK_ID_FLAG_UNKNOWN;case 1:case"BLOCK_ID_FLAG_ABSENT":return u.BLOCK_ID_FLAG_ABSENT;case 2:case"BLOCK_ID_FLAG_COMMIT":return u.BLOCK_ID_FLAG_COMMIT;case 3:case"BLOCK_ID_FLAG_NIL":return u.BLOCK_ID_FLAG_NIL;default:return u.UNRECOGNIZED}}function f(e){switch(e){case u.BLOCK_ID_FLAG_UNKNOWN:return"BLOCK_ID_FLAG_UNKNOWN";case u.BLOCK_ID_FLAG_ABSENT:return"BLOCK_ID_FLAG_ABSENT";case u.BLOCK_ID_FLAG_COMMIT:return"BLOCK_ID_FLAG_COMMIT";case u.BLOCK_ID_FLAG_NIL:return"BLOCK_ID_FLAG_NIL";default:return"UNKNOWN"}}function h(e){switch(e){case 0:case"SIGNED_MSG_TYPE_UNKNOWN":return l.SIGNED_MSG_TYPE_UNKNOWN;case 1:case"SIGNED_MSG_TYPE_PREVOTE":return l.SIGNED_MSG_TYPE_PREVOTE;case 2:case"SIGNED_MSG_TYPE_PRECOMMIT":return l.SIGNED_MSG_TYPE_PRECOMMIT;case 32:case"SIGNED_MSG_TYPE_PROPOSAL":return l.SIGNED_MSG_TYPE_PROPOSAL;default:return l.UNRECOGNIZED}}function p(e){switch(e){case l.SIGNED_MSG_TYPE_UNKNOWN:return"SIGNED_MSG_TYPE_UNKNOWN";case l.SIGNED_MSG_TYPE_PREVOTE:return"SIGNED_MSG_TYPE_PREVOTE";case l.SIGNED_MSG_TYPE_PRECOMMIT:return"SIGNED_MSG_TYPE_PRECOMMIT";case l.SIGNED_MSG_TYPE_PROPOSAL:return"SIGNED_MSG_TYPE_PROPOSAL";default:return"UNKNOWN"}}t.protobufPackage="tendermint.types",function(e){e[e.BLOCK_ID_FLAG_UNKNOWN=0]="BLOCK_ID_FLAG_UNKNOWN",e[e.BLOCK_ID_FLAG_ABSENT=1]="BLOCK_ID_FLAG_ABSENT",e[e.BLOCK_ID_FLAG_COMMIT=2]="BLOCK_ID_FLAG_COMMIT",e[e.BLOCK_ID_FLAG_NIL=3]="BLOCK_ID_FLAG_NIL",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(u=t.BlockIDFlag||(t.BlockIDFlag={})),t.blockIDFlagFromJSON=A,t.blockIDFlagToJSON=f,function(e){e[e.SIGNED_MSG_TYPE_UNKNOWN=0]="SIGNED_MSG_TYPE_UNKNOWN",e[e.SIGNED_MSG_TYPE_PREVOTE=1]="SIGNED_MSG_TYPE_PREVOTE",e[e.SIGNED_MSG_TYPE_PRECOMMIT=2]="SIGNED_MSG_TYPE_PRECOMMIT",e[e.SIGNED_MSG_TYPE_PROPOSAL=32]="SIGNED_MSG_TYPE_PROPOSAL",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"}(l=t.SignedMsgType||(t.SignedMsgType={})),t.signedMsgTypeFromJSON=h,t.signedMsgTypeToJSON=p;const g={total:0};t.PartSetHeader={encode:(e,t=i.default.Writer.create())=>(0!==e.total&&t.uint32(8).uint32(e.total),0!==e.hash.length&&t.uint32(18).bytes(e.hash),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},g);for(o.hash=new Uint8Array;n.pos>>3){case 1:o.total=n.uint32();break;case 2:o.hash=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},g);return t.total=void 0!==e.total&&null!==e.total?Number(e.total):0,t.hash=void 0!==e.hash&&null!==e.hash?R(e.hash):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.total&&(t.total=e.total),void 0!==e.hash&&(t.hash=N(void 0!==e.hash?e.hash:new Uint8Array)),t},fromPartial(e){var t,n;const r=Object.assign({},g);return r.total=null!==(t=e.total)&&void 0!==t?t:0,r.hash=null!==(n=e.hash)&&void 0!==n?n:new Uint8Array,r}};const m={index:0};t.Part={encode:(e,t=i.default.Writer.create())=>(0!==e.index&&t.uint32(8).uint32(e.index),0!==e.bytes.length&&t.uint32(18).bytes(e.bytes),void 0!==e.proof&&a.Proof.encode(e.proof,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},m);for(o.bytes=new Uint8Array;n.pos>>3){case 1:o.index=n.uint32();break;case 2:o.bytes=n.bytes();break;case 3:o.proof=a.Proof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},m);return t.index=void 0!==e.index&&null!==e.index?Number(e.index):0,t.bytes=void 0!==e.bytes&&null!==e.bytes?R(e.bytes):new Uint8Array,t.proof=void 0!==e.proof&&null!==e.proof?a.Proof.fromJSON(e.proof):void 0,t},toJSON(e){const t={};return void 0!==e.index&&(t.index=e.index),void 0!==e.bytes&&(t.bytes=N(void 0!==e.bytes?e.bytes:new Uint8Array)),void 0!==e.proof&&(t.proof=e.proof?a.Proof.toJSON(e.proof):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},m);return r.index=null!==(t=e.index)&&void 0!==t?t:0,r.bytes=null!==(n=e.bytes)&&void 0!==n?n:new Uint8Array,r.proof=void 0!==e.proof&&null!==e.proof?a.Proof.fromPartial(e.proof):void 0,r}};const v={};t.BlockID={encode:(e,n=i.default.Writer.create())=>(0!==e.hash.length&&n.uint32(10).bytes(e.hash),void 0!==e.partSetHeader&&t.PartSetHeader.encode(e.partSetHeader,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},v);for(a.hash=new Uint8Array;r.pos>>3){case 1:a.hash=r.bytes();break;case 2:a.partSetHeader=t.PartSetHeader.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},v);return n.hash=void 0!==e.hash&&null!==e.hash?R(e.hash):new Uint8Array,n.partSetHeader=void 0!==e.partSetHeader&&null!==e.partSetHeader?t.PartSetHeader.fromJSON(e.partSetHeader):void 0,n},toJSON(e){const n={};return void 0!==e.hash&&(n.hash=N(void 0!==e.hash?e.hash:new Uint8Array)),void 0!==e.partSetHeader&&(n.partSetHeader=e.partSetHeader?t.PartSetHeader.toJSON(e.partSetHeader):void 0),n},fromPartial(e){var n;const r=Object.assign({},v);return r.hash=null!==(n=e.hash)&&void 0!==n?n:new Uint8Array,r.partSetHeader=void 0!==e.partSetHeader&&null!==e.partSetHeader?t.PartSetHeader.fromPartial(e.partSetHeader):void 0,r}};const y={chainId:"",height:o.default.ZERO};t.Header={encode:(e,n=i.default.Writer.create())=>(void 0!==e.version&&s.Consensus.encode(e.version,n.uint32(10).fork()).ldelim(),""!==e.chainId&&n.uint32(18).string(e.chainId),e.height.isZero()||n.uint32(24).int64(e.height),void 0!==e.time&&c.Timestamp.encode(e.time,n.uint32(34).fork()).ldelim(),void 0!==e.lastBlockId&&t.BlockID.encode(e.lastBlockId,n.uint32(42).fork()).ldelim(),0!==e.lastCommitHash.length&&n.uint32(50).bytes(e.lastCommitHash),0!==e.dataHash.length&&n.uint32(58).bytes(e.dataHash),0!==e.validatorsHash.length&&n.uint32(66).bytes(e.validatorsHash),0!==e.nextValidatorsHash.length&&n.uint32(74).bytes(e.nextValidatorsHash),0!==e.consensusHash.length&&n.uint32(82).bytes(e.consensusHash),0!==e.appHash.length&&n.uint32(90).bytes(e.appHash),0!==e.lastResultsHash.length&&n.uint32(98).bytes(e.lastResultsHash),0!==e.evidenceHash.length&&n.uint32(106).bytes(e.evidenceHash),0!==e.proposerAddress.length&&n.uint32(114).bytes(e.proposerAddress),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},y);for(a.lastCommitHash=new Uint8Array,a.dataHash=new Uint8Array,a.validatorsHash=new Uint8Array,a.nextValidatorsHash=new Uint8Array,a.consensusHash=new Uint8Array,a.appHash=new Uint8Array,a.lastResultsHash=new Uint8Array,a.evidenceHash=new Uint8Array,a.proposerAddress=new Uint8Array;r.pos>>3){case 1:a.version=s.Consensus.decode(r,r.uint32());break;case 2:a.chainId=r.string();break;case 3:a.height=r.int64();break;case 4:a.time=c.Timestamp.decode(r,r.uint32());break;case 5:a.lastBlockId=t.BlockID.decode(r,r.uint32());break;case 6:a.lastCommitHash=r.bytes();break;case 7:a.dataHash=r.bytes();break;case 8:a.validatorsHash=r.bytes();break;case 9:a.nextValidatorsHash=r.bytes();break;case 10:a.consensusHash=r.bytes();break;case 11:a.appHash=r.bytes();break;case 12:a.lastResultsHash=r.bytes();break;case 13:a.evidenceHash=r.bytes();break;case 14:a.proposerAddress=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},y);return n.version=void 0!==e.version&&null!==e.version?s.Consensus.fromJSON(e.version):void 0,n.chainId=void 0!==e.chainId&&null!==e.chainId?String(e.chainId):"",n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.time=void 0!==e.time&&null!==e.time?T(e.time):void 0,n.lastBlockId=void 0!==e.lastBlockId&&null!==e.lastBlockId?t.BlockID.fromJSON(e.lastBlockId):void 0,n.lastCommitHash=void 0!==e.lastCommitHash&&null!==e.lastCommitHash?R(e.lastCommitHash):new Uint8Array,n.dataHash=void 0!==e.dataHash&&null!==e.dataHash?R(e.dataHash):new Uint8Array,n.validatorsHash=void 0!==e.validatorsHash&&null!==e.validatorsHash?R(e.validatorsHash):new Uint8Array,n.nextValidatorsHash=void 0!==e.nextValidatorsHash&&null!==e.nextValidatorsHash?R(e.nextValidatorsHash):new Uint8Array,n.consensusHash=void 0!==e.consensusHash&&null!==e.consensusHash?R(e.consensusHash):new Uint8Array,n.appHash=void 0!==e.appHash&&null!==e.appHash?R(e.appHash):new Uint8Array,n.lastResultsHash=void 0!==e.lastResultsHash&&null!==e.lastResultsHash?R(e.lastResultsHash):new Uint8Array,n.evidenceHash=void 0!==e.evidenceHash&&null!==e.evidenceHash?R(e.evidenceHash):new Uint8Array,n.proposerAddress=void 0!==e.proposerAddress&&null!==e.proposerAddress?R(e.proposerAddress):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.version&&(n.version=e.version?s.Consensus.toJSON(e.version):void 0),void 0!==e.chainId&&(n.chainId=e.chainId),void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.time&&(n.time=D(e.time).toISOString()),void 0!==e.lastBlockId&&(n.lastBlockId=e.lastBlockId?t.BlockID.toJSON(e.lastBlockId):void 0),void 0!==e.lastCommitHash&&(n.lastCommitHash=N(void 0!==e.lastCommitHash?e.lastCommitHash:new Uint8Array)),void 0!==e.dataHash&&(n.dataHash=N(void 0!==e.dataHash?e.dataHash:new Uint8Array)),void 0!==e.validatorsHash&&(n.validatorsHash=N(void 0!==e.validatorsHash?e.validatorsHash:new Uint8Array)),void 0!==e.nextValidatorsHash&&(n.nextValidatorsHash=N(void 0!==e.nextValidatorsHash?e.nextValidatorsHash:new Uint8Array)),void 0!==e.consensusHash&&(n.consensusHash=N(void 0!==e.consensusHash?e.consensusHash:new Uint8Array)),void 0!==e.appHash&&(n.appHash=N(void 0!==e.appHash?e.appHash:new Uint8Array)),void 0!==e.lastResultsHash&&(n.lastResultsHash=N(void 0!==e.lastResultsHash?e.lastResultsHash:new Uint8Array)),void 0!==e.evidenceHash&&(n.evidenceHash=N(void 0!==e.evidenceHash?e.evidenceHash:new Uint8Array)),void 0!==e.proposerAddress&&(n.proposerAddress=N(void 0!==e.proposerAddress?e.proposerAddress:new Uint8Array)),n},fromPartial(e){var n,r,i,a,d,u,l,A,f,h;const p=Object.assign({},y);return p.version=void 0!==e.version&&null!==e.version?s.Consensus.fromPartial(e.version):void 0,p.chainId=null!==(n=e.chainId)&&void 0!==n?n:"",p.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,p.time=void 0!==e.time&&null!==e.time?c.Timestamp.fromPartial(e.time):void 0,p.lastBlockId=void 0!==e.lastBlockId&&null!==e.lastBlockId?t.BlockID.fromPartial(e.lastBlockId):void 0,p.lastCommitHash=null!==(r=e.lastCommitHash)&&void 0!==r?r:new Uint8Array,p.dataHash=null!==(i=e.dataHash)&&void 0!==i?i:new Uint8Array,p.validatorsHash=null!==(a=e.validatorsHash)&&void 0!==a?a:new Uint8Array,p.nextValidatorsHash=null!==(d=e.nextValidatorsHash)&&void 0!==d?d:new Uint8Array,p.consensusHash=null!==(u=e.consensusHash)&&void 0!==u?u:new Uint8Array,p.appHash=null!==(l=e.appHash)&&void 0!==l?l:new Uint8Array,p.lastResultsHash=null!==(A=e.lastResultsHash)&&void 0!==A?A:new Uint8Array,p.evidenceHash=null!==(f=e.evidenceHash)&&void 0!==f?f:new Uint8Array,p.proposerAddress=null!==(h=e.proposerAddress)&&void 0!==h?h:new Uint8Array,p}};const b={};t.Data={encode(e,t=i.default.Writer.create()){for(const n of e.txs)t.uint32(10).bytes(n);return t},decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},b);for(o.txs=[];n.pos>>3==1?o.txs.push(n.bytes()):n.skipType(7&e)}return o},fromJSON(e){var t;const n=Object.assign({},b);return n.txs=(null!==(t=e.txs)&&void 0!==t?t:[]).map((e=>R(e))),n},toJSON(e){const t={};return e.txs?t.txs=e.txs.map((e=>N(void 0!==e?e:new Uint8Array))):t.txs=[],t},fromPartial(e){var t;const n=Object.assign({},b);return n.txs=(null===(t=e.txs)||void 0===t?void 0:t.map((e=>e)))||[],n}};const I={type:0,height:o.default.ZERO,round:0,validatorIndex:0};t.Vote={encode:(e,n=i.default.Writer.create())=>(0!==e.type&&n.uint32(8).int32(e.type),e.height.isZero()||n.uint32(16).int64(e.height),0!==e.round&&n.uint32(24).int32(e.round),void 0!==e.blockId&&t.BlockID.encode(e.blockId,n.uint32(34).fork()).ldelim(),void 0!==e.timestamp&&c.Timestamp.encode(e.timestamp,n.uint32(42).fork()).ldelim(),0!==e.validatorAddress.length&&n.uint32(50).bytes(e.validatorAddress),0!==e.validatorIndex&&n.uint32(56).int32(e.validatorIndex),0!==e.signature.length&&n.uint32(66).bytes(e.signature),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},I);for(a.validatorAddress=new Uint8Array,a.signature=new Uint8Array;r.pos>>3){case 1:a.type=r.int32();break;case 2:a.height=r.int64();break;case 3:a.round=r.int32();break;case 4:a.blockId=t.BlockID.decode(r,r.uint32());break;case 5:a.timestamp=c.Timestamp.decode(r,r.uint32());break;case 6:a.validatorAddress=r.bytes();break;case 7:a.validatorIndex=r.int32();break;case 8:a.signature=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},I);return n.type=void 0!==e.type&&null!==e.type?h(e.type):0,n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.round=void 0!==e.round&&null!==e.round?Number(e.round):0,n.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromJSON(e.blockId):void 0,n.timestamp=void 0!==e.timestamp&&null!==e.timestamp?T(e.timestamp):void 0,n.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?R(e.validatorAddress):new Uint8Array,n.validatorIndex=void 0!==e.validatorIndex&&null!==e.validatorIndex?Number(e.validatorIndex):0,n.signature=void 0!==e.signature&&null!==e.signature?R(e.signature):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.type&&(n.type=p(e.type)),void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(n.round=e.round),void 0!==e.blockId&&(n.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.timestamp&&(n.timestamp=D(e.timestamp).toISOString()),void 0!==e.validatorAddress&&(n.validatorAddress=N(void 0!==e.validatorAddress?e.validatorAddress:new Uint8Array)),void 0!==e.validatorIndex&&(n.validatorIndex=e.validatorIndex),void 0!==e.signature&&(n.signature=N(void 0!==e.signature?e.signature:new Uint8Array)),n},fromPartial(e){var n,r,i,a,s;const d=Object.assign({},I);return d.type=null!==(n=e.type)&&void 0!==n?n:0,d.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,d.round=null!==(r=e.round)&&void 0!==r?r:0,d.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromPartial(e.blockId):void 0,d.timestamp=void 0!==e.timestamp&&null!==e.timestamp?c.Timestamp.fromPartial(e.timestamp):void 0,d.validatorAddress=null!==(i=e.validatorAddress)&&void 0!==i?i:new Uint8Array,d.validatorIndex=null!==(a=e.validatorIndex)&&void 0!==a?a:0,d.signature=null!==(s=e.signature)&&void 0!==s?s:new Uint8Array,d}};const C={height:o.default.ZERO,round:0};t.Commit={encode(e,n=i.default.Writer.create()){e.height.isZero()||n.uint32(8).int64(e.height),0!==e.round&&n.uint32(16).int32(e.round),void 0!==e.blockId&&t.BlockID.encode(e.blockId,n.uint32(26).fork()).ldelim();for(const r of e.signatures)t.CommitSig.encode(r,n.uint32(34).fork()).ldelim();return n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},C);for(a.signatures=[];r.pos>>3){case 1:a.height=r.int64();break;case 2:a.round=r.int32();break;case 3:a.blockId=t.BlockID.decode(r,r.uint32());break;case 4:a.signatures.push(t.CommitSig.decode(r,r.uint32()));break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},C);return r.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,r.round=void 0!==e.round&&null!==e.round?Number(e.round):0,r.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromJSON(e.blockId):void 0,r.signatures=(null!==(n=e.signatures)&&void 0!==n?n:[]).map((e=>t.CommitSig.fromJSON(e))),r},toJSON(e){const n={};return void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(n.round=e.round),void 0!==e.blockId&&(n.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),e.signatures?n.signatures=e.signatures.map((e=>e?t.CommitSig.toJSON(e):void 0)):n.signatures=[],n},fromPartial(e){var n,r;const i=Object.assign({},C);return i.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,i.round=null!==(n=e.round)&&void 0!==n?n:0,i.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromPartial(e.blockId):void 0,i.signatures=(null===(r=e.signatures)||void 0===r?void 0:r.map((e=>t.CommitSig.fromPartial(e))))||[],i}};const E={blockIdFlag:0};t.CommitSig={encode:(e,t=i.default.Writer.create())=>(0!==e.blockIdFlag&&t.uint32(8).int32(e.blockIdFlag),0!==e.validatorAddress.length&&t.uint32(18).bytes(e.validatorAddress),void 0!==e.timestamp&&c.Timestamp.encode(e.timestamp,t.uint32(26).fork()).ldelim(),0!==e.signature.length&&t.uint32(34).bytes(e.signature),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},E);for(o.validatorAddress=new Uint8Array,o.signature=new Uint8Array;n.pos>>3){case 1:o.blockIdFlag=n.int32();break;case 2:o.validatorAddress=n.bytes();break;case 3:o.timestamp=c.Timestamp.decode(n,n.uint32());break;case 4:o.signature=n.bytes();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},E);return t.blockIdFlag=void 0!==e.blockIdFlag&&null!==e.blockIdFlag?A(e.blockIdFlag):0,t.validatorAddress=void 0!==e.validatorAddress&&null!==e.validatorAddress?R(e.validatorAddress):new Uint8Array,t.timestamp=void 0!==e.timestamp&&null!==e.timestamp?T(e.timestamp):void 0,t.signature=void 0!==e.signature&&null!==e.signature?R(e.signature):new Uint8Array,t},toJSON(e){const t={};return void 0!==e.blockIdFlag&&(t.blockIdFlag=f(e.blockIdFlag)),void 0!==e.validatorAddress&&(t.validatorAddress=N(void 0!==e.validatorAddress?e.validatorAddress:new Uint8Array)),void 0!==e.timestamp&&(t.timestamp=D(e.timestamp).toISOString()),void 0!==e.signature&&(t.signature=N(void 0!==e.signature?e.signature:new Uint8Array)),t},fromPartial(e){var t,n,r;const o=Object.assign({},E);return o.blockIdFlag=null!==(t=e.blockIdFlag)&&void 0!==t?t:0,o.validatorAddress=null!==(n=e.validatorAddress)&&void 0!==n?n:new Uint8Array,o.timestamp=void 0!==e.timestamp&&null!==e.timestamp?c.Timestamp.fromPartial(e.timestamp):void 0,o.signature=null!==(r=e.signature)&&void 0!==r?r:new Uint8Array,o}};const w={type:0,height:o.default.ZERO,round:0,polRound:0};t.Proposal={encode:(e,n=i.default.Writer.create())=>(0!==e.type&&n.uint32(8).int32(e.type),e.height.isZero()||n.uint32(16).int64(e.height),0!==e.round&&n.uint32(24).int32(e.round),0!==e.polRound&&n.uint32(32).int32(e.polRound),void 0!==e.blockId&&t.BlockID.encode(e.blockId,n.uint32(42).fork()).ldelim(),void 0!==e.timestamp&&c.Timestamp.encode(e.timestamp,n.uint32(50).fork()).ldelim(),0!==e.signature.length&&n.uint32(58).bytes(e.signature),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},w);for(a.signature=new Uint8Array;r.pos>>3){case 1:a.type=r.int32();break;case 2:a.height=r.int64();break;case 3:a.round=r.int32();break;case 4:a.polRound=r.int32();break;case 5:a.blockId=t.BlockID.decode(r,r.uint32());break;case 6:a.timestamp=c.Timestamp.decode(r,r.uint32());break;case 7:a.signature=r.bytes();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},w);return n.type=void 0!==e.type&&null!==e.type?h(e.type):0,n.height=void 0!==e.height&&null!==e.height?o.default.fromString(e.height):o.default.ZERO,n.round=void 0!==e.round&&null!==e.round?Number(e.round):0,n.polRound=void 0!==e.polRound&&null!==e.polRound?Number(e.polRound):0,n.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromJSON(e.blockId):void 0,n.timestamp=void 0!==e.timestamp&&null!==e.timestamp?T(e.timestamp):void 0,n.signature=void 0!==e.signature&&null!==e.signature?R(e.signature):new Uint8Array,n},toJSON(e){const n={};return void 0!==e.type&&(n.type=p(e.type)),void 0!==e.height&&(n.height=(e.height||o.default.ZERO).toString()),void 0!==e.round&&(n.round=e.round),void 0!==e.polRound&&(n.polRound=e.polRound),void 0!==e.blockId&&(n.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.timestamp&&(n.timestamp=D(e.timestamp).toISOString()),void 0!==e.signature&&(n.signature=N(void 0!==e.signature?e.signature:new Uint8Array)),n},fromPartial(e){var n,r,i,a;const s=Object.assign({},w);return s.type=null!==(n=e.type)&&void 0!==n?n:0,s.height=void 0!==e.height&&null!==e.height?o.default.fromValue(e.height):o.default.ZERO,s.round=null!==(r=e.round)&&void 0!==r?r:0,s.polRound=null!==(i=e.polRound)&&void 0!==i?i:0,s.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromPartial(e.blockId):void 0,s.timestamp=void 0!==e.timestamp&&null!==e.timestamp?c.Timestamp.fromPartial(e.timestamp):void 0,s.signature=null!==(a=e.signature)&&void 0!==a?a:new Uint8Array,s}};const B={};t.SignedHeader={encode:(e,n=i.default.Writer.create())=>(void 0!==e.header&&t.Header.encode(e.header,n.uint32(10).fork()).ldelim(),void 0!==e.commit&&t.Commit.encode(e.commit,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},B);for(;r.pos>>3){case 1:a.header=t.Header.decode(r,r.uint32());break;case 2:a.commit=t.Commit.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},B);return n.header=void 0!==e.header&&null!==e.header?t.Header.fromJSON(e.header):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.Commit.fromJSON(e.commit):void 0,n},toJSON(e){const n={};return void 0!==e.header&&(n.header=e.header?t.Header.toJSON(e.header):void 0),void 0!==e.commit&&(n.commit=e.commit?t.Commit.toJSON(e.commit):void 0),n},fromPartial(e){const n=Object.assign({},B);return n.header=void 0!==e.header&&null!==e.header?t.Header.fromPartial(e.header):void 0,n.commit=void 0!==e.commit&&null!==e.commit?t.Commit.fromPartial(e.commit):void 0,n}};const _={};t.LightBlock={encode:(e,n=i.default.Writer.create())=>(void 0!==e.signedHeader&&t.SignedHeader.encode(e.signedHeader,n.uint32(10).fork()).ldelim(),void 0!==e.validatorSet&&d.ValidatorSet.encode(e.validatorSet,n.uint32(18).fork()).ldelim(),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},_);for(;r.pos>>3){case 1:a.signedHeader=t.SignedHeader.decode(r,r.uint32());break;case 2:a.validatorSet=d.ValidatorSet.decode(r,r.uint32());break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},_);return n.signedHeader=void 0!==e.signedHeader&&null!==e.signedHeader?t.SignedHeader.fromJSON(e.signedHeader):void 0,n.validatorSet=void 0!==e.validatorSet&&null!==e.validatorSet?d.ValidatorSet.fromJSON(e.validatorSet):void 0,n},toJSON(e){const n={};return void 0!==e.signedHeader&&(n.signedHeader=e.signedHeader?t.SignedHeader.toJSON(e.signedHeader):void 0),void 0!==e.validatorSet&&(n.validatorSet=e.validatorSet?d.ValidatorSet.toJSON(e.validatorSet):void 0),n},fromPartial(e){const n=Object.assign({},_);return n.signedHeader=void 0!==e.signedHeader&&null!==e.signedHeader?t.SignedHeader.fromPartial(e.signedHeader):void 0,n.validatorSet=void 0!==e.validatorSet&&null!==e.validatorSet?d.ValidatorSet.fromPartial(e.validatorSet):void 0,n}};const S={blockSize:o.default.ZERO,numTxs:o.default.ZERO};t.BlockMeta={encode:(e,n=i.default.Writer.create())=>(void 0!==e.blockId&&t.BlockID.encode(e.blockId,n.uint32(10).fork()).ldelim(),e.blockSize.isZero()||n.uint32(16).int64(e.blockSize),void 0!==e.header&&t.Header.encode(e.header,n.uint32(26).fork()).ldelim(),e.numTxs.isZero()||n.uint32(32).int64(e.numTxs),n),decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},S);for(;r.pos>>3){case 1:a.blockId=t.BlockID.decode(r,r.uint32());break;case 2:a.blockSize=r.int64();break;case 3:a.header=t.Header.decode(r,r.uint32());break;case 4:a.numTxs=r.int64();break;default:r.skipType(7&e)}}return a},fromJSON(e){const n=Object.assign({},S);return n.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromJSON(e.blockId):void 0,n.blockSize=void 0!==e.blockSize&&null!==e.blockSize?o.default.fromString(e.blockSize):o.default.ZERO,n.header=void 0!==e.header&&null!==e.header?t.Header.fromJSON(e.header):void 0,n.numTxs=void 0!==e.numTxs&&null!==e.numTxs?o.default.fromString(e.numTxs):o.default.ZERO,n},toJSON(e){const n={};return void 0!==e.blockId&&(n.blockId=e.blockId?t.BlockID.toJSON(e.blockId):void 0),void 0!==e.blockSize&&(n.blockSize=(e.blockSize||o.default.ZERO).toString()),void 0!==e.header&&(n.header=e.header?t.Header.toJSON(e.header):void 0),void 0!==e.numTxs&&(n.numTxs=(e.numTxs||o.default.ZERO).toString()),n},fromPartial(e){const n=Object.assign({},S);return n.blockId=void 0!==e.blockId&&null!==e.blockId?t.BlockID.fromPartial(e.blockId):void 0,n.blockSize=void 0!==e.blockSize&&null!==e.blockSize?o.default.fromValue(e.blockSize):o.default.ZERO,n.header=void 0!==e.header&&null!==e.header?t.Header.fromPartial(e.header):void 0,n.numTxs=void 0!==e.numTxs&&null!==e.numTxs?o.default.fromValue(e.numTxs):o.default.ZERO,n}};const k={};t.TxProof={encode:(e,t=i.default.Writer.create())=>(0!==e.rootHash.length&&t.uint32(10).bytes(e.rootHash),0!==e.data.length&&t.uint32(18).bytes(e.data),void 0!==e.proof&&a.Proof.encode(e.proof,t.uint32(26).fork()).ldelim(),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},k);for(o.rootHash=new Uint8Array,o.data=new Uint8Array;n.pos>>3){case 1:o.rootHash=n.bytes();break;case 2:o.data=n.bytes();break;case 3:o.proof=a.Proof.decode(n,n.uint32());break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},k);return t.rootHash=void 0!==e.rootHash&&null!==e.rootHash?R(e.rootHash):new Uint8Array,t.data=void 0!==e.data&&null!==e.data?R(e.data):new Uint8Array,t.proof=void 0!==e.proof&&null!==e.proof?a.Proof.fromJSON(e.proof):void 0,t},toJSON(e){const t={};return void 0!==e.rootHash&&(t.rootHash=N(void 0!==e.rootHash?e.rootHash:new Uint8Array)),void 0!==e.data&&(t.data=N(void 0!==e.data?e.data:new Uint8Array)),void 0!==e.proof&&(t.proof=e.proof?a.Proof.toJSON(e.proof):void 0),t},fromPartial(e){var t,n;const r=Object.assign({},k);return r.rootHash=null!==(t=e.rootHash)&&void 0!==t?t:new Uint8Array,r.data=null!==(n=e.data)&&void 0!==n?n:new Uint8Array,r.proof=void 0!==e.proof&&null!==e.proof?a.Proof.fromPartial(e.proof):void 0,r}};var O=(()=>{if(void 0!==O)return O;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const Q=O.atob||(e=>O.Buffer.from(e,"base64").toString("binary"));function R(e){const t=Q(e),n=new Uint8Array(t.length);for(let e=0;eO.Buffer.from(e,"binary").toString("base64"));function N(e){const t=[];for(const n of e)t.push(String.fromCharCode(n));return P(t.join(""))}function x(e){var t;return{seconds:(t=e.getTime()/1e3,o.default.fromNumber(t)),nanos:e.getTime()%1e3*1e6}}function D(e){let t=1e3*e.seconds.toNumber();return t+=e.nanos/1e6,new Date(t)}function T(e){return e instanceof Date?x(e):"string"==typeof e?x(new Date(e)):c.Timestamp.fromJSON(e)}i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},3444:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleValidator=t.Validator=t.ValidatorSet=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789)),a=n(984);t.protobufPackage="tendermint.types";const s={totalVotingPower:o.default.ZERO};t.ValidatorSet={encode(e,n=i.default.Writer.create()){for(const r of e.validators)t.Validator.encode(r,n.uint32(10).fork()).ldelim();return void 0!==e.proposer&&t.Validator.encode(e.proposer,n.uint32(18).fork()).ldelim(),e.totalVotingPower.isZero()||n.uint32(24).int64(e.totalVotingPower),n},decode(e,n){const r=e instanceof i.default.Reader?e:new i.default.Reader(e);let o=void 0===n?r.len:r.pos+n;const a=Object.assign({},s);for(a.validators=[];r.pos>>3){case 1:a.validators.push(t.Validator.decode(r,r.uint32()));break;case 2:a.proposer=t.Validator.decode(r,r.uint32());break;case 3:a.totalVotingPower=r.int64();break;default:r.skipType(7&e)}}return a},fromJSON(e){var n;const r=Object.assign({},s);return r.validators=(null!==(n=e.validators)&&void 0!==n?n:[]).map((e=>t.Validator.fromJSON(e))),r.proposer=void 0!==e.proposer&&null!==e.proposer?t.Validator.fromJSON(e.proposer):void 0,r.totalVotingPower=void 0!==e.totalVotingPower&&null!==e.totalVotingPower?o.default.fromString(e.totalVotingPower):o.default.ZERO,r},toJSON(e){const n={};return e.validators?n.validators=e.validators.map((e=>e?t.Validator.toJSON(e):void 0)):n.validators=[],void 0!==e.proposer&&(n.proposer=e.proposer?t.Validator.toJSON(e.proposer):void 0),void 0!==e.totalVotingPower&&(n.totalVotingPower=(e.totalVotingPower||o.default.ZERO).toString()),n},fromPartial(e){var n;const r=Object.assign({},s);return r.validators=(null===(n=e.validators)||void 0===n?void 0:n.map((e=>t.Validator.fromPartial(e))))||[],r.proposer=void 0!==e.proposer&&null!==e.proposer?t.Validator.fromPartial(e.proposer):void 0,r.totalVotingPower=void 0!==e.totalVotingPower&&null!==e.totalVotingPower?o.default.fromValue(e.totalVotingPower):o.default.ZERO,r}};const c={votingPower:o.default.ZERO,proposerPriority:o.default.ZERO};t.Validator={encode:(e,t=i.default.Writer.create())=>(0!==e.address.length&&t.uint32(10).bytes(e.address),void 0!==e.pubKey&&a.PublicKey.encode(e.pubKey,t.uint32(18).fork()).ldelim(),e.votingPower.isZero()||t.uint32(24).int64(e.votingPower),e.proposerPriority.isZero()||t.uint32(32).int64(e.proposerPriority),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},c);for(o.address=new Uint8Array;n.pos>>3){case 1:o.address=n.bytes();break;case 2:o.pubKey=a.PublicKey.decode(n,n.uint32());break;case 3:o.votingPower=n.int64();break;case 4:o.proposerPriority=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},c);return t.address=void 0!==e.address&&null!==e.address?function(e){const t=l(e),n=new Uint8Array(t.length);for(let e=0;e(void 0!==e.pubKey&&a.PublicKey.encode(e.pubKey,t.uint32(10).fork()).ldelim(),e.votingPower.isZero()||t.uint32(16).int64(e.votingPower),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},d);for(;n.pos>>3){case 1:o.pubKey=a.PublicKey.decode(n,n.uint32());break;case 2:o.votingPower=n.int64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},d);return t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?a.PublicKey.fromJSON(e.pubKey):void 0,t.votingPower=void 0!==e.votingPower&&null!==e.votingPower?o.default.fromString(e.votingPower):o.default.ZERO,t},toJSON(e){const t={};return void 0!==e.pubKey&&(t.pubKey=e.pubKey?a.PublicKey.toJSON(e.pubKey):void 0),void 0!==e.votingPower&&(t.votingPower=(e.votingPower||o.default.ZERO).toString()),t},fromPartial(e){const t=Object.assign({},d);return t.pubKey=void 0!==e.pubKey&&null!==e.pubKey?a.PublicKey.fromPartial(e.pubKey):void 0,t.votingPower=void 0!==e.votingPower&&null!==e.votingPower?o.default.fromValue(e.votingPower):o.default.ZERO,t}};var u=(()=>{if(void 0!==u)return u;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw"Unable to locate global object"})();const l=u.atob||(e=>u.Buffer.from(e,"base64").toString("binary")),A=u.btoa||(e=>u.Buffer.from(e,"binary").toString("base64"));i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1083:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Consensus=t.App=t.protobufPackage=void 0;const o=r(n(3720)),i=r(n(3789));t.protobufPackage="tendermint.version";const a={protocol:o.default.UZERO,software:""};t.App={encode:(e,t=i.default.Writer.create())=>(e.protocol.isZero()||t.uint32(8).uint64(e.protocol),""!==e.software&&t.uint32(18).string(e.software),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},a);for(;n.pos>>3){case 1:o.protocol=n.uint64();break;case 2:o.software=n.string();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},a);return t.protocol=void 0!==e.protocol&&null!==e.protocol?o.default.fromString(e.protocol):o.default.UZERO,t.software=void 0!==e.software&&null!==e.software?String(e.software):"",t},toJSON(e){const t={};return void 0!==e.protocol&&(t.protocol=(e.protocol||o.default.UZERO).toString()),void 0!==e.software&&(t.software=e.software),t},fromPartial(e){var t;const n=Object.assign({},a);return n.protocol=void 0!==e.protocol&&null!==e.protocol?o.default.fromValue(e.protocol):o.default.UZERO,n.software=null!==(t=e.software)&&void 0!==t?t:"",n}};const s={block:o.default.UZERO,app:o.default.UZERO};t.Consensus={encode:(e,t=i.default.Writer.create())=>(e.block.isZero()||t.uint32(8).uint64(e.block),e.app.isZero()||t.uint32(16).uint64(e.app),t),decode(e,t){const n=e instanceof i.default.Reader?e:new i.default.Reader(e);let r=void 0===t?n.len:n.pos+t;const o=Object.assign({},s);for(;n.pos>>3){case 1:o.block=n.uint64();break;case 2:o.app=n.uint64();break;default:n.skipType(7&e)}}return o},fromJSON(e){const t=Object.assign({},s);return t.block=void 0!==e.block&&null!==e.block?o.default.fromString(e.block):o.default.UZERO,t.app=void 0!==e.app&&null!==e.app?o.default.fromString(e.app):o.default.UZERO,t},toJSON(e){const t={};return void 0!==e.block&&(t.block=(e.block||o.default.UZERO).toString()),void 0!==e.app&&(t.app=(e.app||o.default.UZERO).toString()),t},fromPartial(e){const t=Object.assign({},s);return t.block=void 0!==e.block&&null!==e.block?o.default.fromValue(e.block):o.default.UZERO,t.app=void 0!==e.app&&null!==e.app?o.default.fromValue(e.app):o.default.UZERO,t}},i.default.util.Long!==o.default&&(i.default.util.Long=o.default,i.default.configure())},1227:(e,t,n)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,o=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(o=r))})),t.splice(o,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(2447)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},2447:(e,t,n)=>{e.exports=function(e){function t(e){let n,o,i,a=null;function s(...e){if(!s.enabled)return;const r=s,o=Number(new Date),i=o-(n||o);r.diff=i,r.prev=n,r.curr=o,n=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,o)=>{if("%%"===n)return"%";a++;const i=t.formatters[o];if("function"==typeof i){const t=e[a];n=i.call(r,t),e.splice(a,1),a--}return n})),t.formatArgs.call(r,e),(r.log||t.log).apply(r,e)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=r,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==a?a:(o!==t.namespaces&&(o=t.namespaces,i=t.enabled(e)),i),set:e=>{a=e}}),"function"==typeof t.init&&t.init(s),s}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(o),...t.skips.map(o).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),o=r.length;for(n=0;n{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t{"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?e.exports=n(1227):e.exports=n(39)},39:(e,t,n)=>{const r=n(6224),o=n(3837);t.init=function(e){e.inspectOpts={};const n=Object.keys(t.inspectOpts);for(let r=0;r{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{const e=n(2130);e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const n=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let r=process.env[t];return r=!!/^(yes|on|true|enabled)$/i.test(r)||!/^(no|off|false|disabled)$/i.test(r)&&("null"===r?null:Number(r)),e[n]=r,e}),{}),e.exports=n(2447)(t);const{formatters:i}=e.exports;i.o=function(e){return this.inspectOpts.colors=this.useColors,o.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},i.O=function(e){return this.inspectOpts.colors=this.useColors,o.inspect(e,this.inspectOpts)}},4289:(e,t,n)=>{"use strict";var r=n(2215),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,c=s&&function(){var e={};try{for(var t in s(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),d=function(e,t,n,r){var o;(!(t in e)||"function"==typeof(o=r)&&"[object Function]"===i.call(o)&&r())&&(c?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},u=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s{"use strict";var r=t;r.version=n(8597).i8,r.utils=n(953),r.rand=n(9931),r.curve=n(8254),r.curves=n(5427),r.ec=n(7954),r.eddsa=n(5980)},4918:(e,t,n)=>{"use strict";var r=n(3785),o=n(953),i=o.getNAF,a=o.getJSF,s=o.assert;function c(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(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 n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function d(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){s(e.precomputed);var n=e._getDoubles(),r=i(t,1,this._bitLength),o=(1<=a;u--)c=(c<<1)+r[u];d.push(c)}for(var l=this.jpoint(null,null,null),A=this.jpoint(null,null,null),f=o;f>0;f--){for(a=0;a=0;d--){for(var u=0;d>=0&&0===a[d];d--)u++;if(d>=0&&u++,c=c.dblp(u),d<0)break;var l=a[d];s(0!==l),c="affine"===e.type?l>0?c.mixedAdd(o[l-1>>1]):c.mixedAdd(o[-l-1>>1].neg()):l>0?c.add(o[l-1>>1]):c.add(o[-l-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,r,o){var s,c,d,u=this._wnafT1,l=this._wnafT2,A=this._wnafT3,f=0;for(s=0;s=1;s-=2){var p=s-1,g=s;if(1===u[p]&&1===u[g]){var m=[t[p],null,null,t[g]];0===t[p].y.cmp(t[g].y)?(m[1]=t[p].add(t[g]),m[2]=t[p].toJ().mixedAdd(t[g].neg())):0===t[p].y.cmp(t[g].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[g]),m[2]=t[p].add(t[g].neg())):(m[1]=t[p].toJ().mixedAdd(t[g]),m[2]=t[p].toJ().mixedAdd(t[g].neg()));var v=[-3,-1,-5,-7,0,7,5,1,3],y=a(n[p],n[g]);for(f=Math.max(y[0].length,f),A[p]=new Array(f),A[g]=new Array(f),c=0;c=0;s--){for(var w=0;s>=0;){var B=!0;for(c=0;c=0&&w++,C=C.dblp(w),s<0)break;for(c=0;c0?d=l[c][_-1>>1]:_<0&&(d=l[c][-_-1>>1].neg()),C="affine"===d.type?C.mixedAdd(d):C.add(d))}}for(s=0;s=Math.ceil((e.bitLength()+1)/t.step)},d.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,o=0;o{"use strict";var r=n(953),o=n(3785),i=n(4378),a=n(4918),s=r.assert;function c(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 o(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new o(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new o(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 d(e,t,n,r,i){a.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(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 o(t,16),this.y=new o(n,16),this.z=r?new o(r,16):this.curve.one,this.t=i&&new o(i,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()))))}i(c,a),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},c.prototype.pointFromX=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),i=this.one.redSub(this.c2.redMul(this.d).redMul(n)),a=r.redMul(i.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var c=s.fromRed().isOdd();return(t&&!c||!t&&c)&&(s=s.redNeg()),this.point(e,s)},c.prototype.pointFromY=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),i=n.redMul(this.d).redMul(this.c2).redSub(this.a),a=r.redMul(i.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)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(o)},i(d,a.BasePoint),c.prototype.pointFromJSON=function(e){return d.fromJSON(this,e)},c.prototype.point=function(e,t,n,r){return new d(this,e,t,n,r)},d.fromJSON=function(e,t){return new d(e,t[0],t[1],t[2])},d.prototype.inspect=function(){return this.isInfinity()?"":""},d.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},d.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=r.redAdd(t),a=i.redSub(n),s=r.redSub(t),c=o.redMul(a),d=i.redMul(s),u=o.redMul(s),l=a.redMul(i);return this.curve.point(c,d,l,u)},d.prototype._projDbl=function(){var e,t,n,r,o,i,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var d=(r=this.curve._mulA(s)).redAdd(c);this.zOne?(e=a.redSub(s).redSub(c).redMul(d.redSub(this.curve.two)),t=d.redMul(r.redSub(c)),n=d.redSqr().redSub(d).redSub(d)):(o=this.z.redSqr(),i=d.redSub(o).redISub(o),e=a.redSub(s).redISub(c).redMul(i),t=d.redMul(r.redSub(c)),n=d.redMul(i))}else r=s.redAdd(c),o=this.curve._mulC(this.z).redSqr(),i=r.redSub(o).redSub(o),e=this.curve._mulC(a.redISub(r)).redMul(i),t=this.curve._mulC(r).redMul(s.redISub(c)),n=r.redMul(i);return this.curve.point(e,t,n)},d.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},d.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=n.redSub(t),a=o.redSub(r),s=o.redAdd(r),c=n.redAdd(t),d=i.redMul(a),u=s.redMul(c),l=i.redMul(c),A=a.redMul(s);return this.curve.point(d,u,A,l)},d.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),o=r.redSqr(),i=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(i).redMul(a),c=o.redSub(s),d=o.redAdd(s),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(a),l=r.redMul(c).redMul(u);return this.curve.twisted?(t=r.redMul(d).redMul(a.redSub(this.curve._mulA(i))),n=c.redMul(d)):(t=r.redMul(d).redMul(a.redSub(i)),n=this.curve._mulC(c).redMul(d)),this.curve.point(l,t,n)},d.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},d.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},d.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},d.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},d.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},d.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},d.prototype.getX=function(){return this.normalize(),this.x.fromRed()},d.prototype.getY=function(){return this.normalize(),this.y.fromRed()},d.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},d.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},d.prototype.toP=d.prototype.normalize,d.prototype.mixedAdd=d.prototype.add},8254:(e,t,n)=>{"use strict";var r=t;r.base=n(4918),r.short=n(6673),r.mont=n(2881),r.edwards=n(1138)},2881:(e,t,n)=>{"use strict";var r=n(3785),o=n(4378),i=n(4918),a=n(953);function s(e){i.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){i.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}o(s,i),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},o(c,i.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new c(this,e,t)},s.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),o=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,o)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(n),a=o.redMul(r),s=t.z.redMul(i.redAdd(a).redSqr()),c=t.x.redMul(i.redISub(a).redSqr());return this.curve.point(s,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},6673:(e,t,n)=>{"use strict";var r=n(953),o=n(3785),i=n(4378),a=n(4918),s=r.assert;function c(e){a.call(this,"short",e),this.a=new o(e.a,16).toRed(this.red),this.b=new o(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 d(e,t,n,r){a.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new o(t,16),this.y=new o(n,16),r&&(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 u(e,t,n,r){a.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new o(0)):(this.x=new o(t,16),this.y=new o(n,16),this.z=new o(r,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}i(c,a),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new o(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new o(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:(n=i[1],s(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new o(e.a,16),b:new o(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:o.mont(e),n=new o(2).toRed(t).redInvm(),r=n.redNeg(),i=new o(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,r,i,a,s,c,d,u,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),A=e,f=this.n.clone(),h=new o(1),p=new o(0),g=new o(0),m=new o(1),v=0;0!==A.cmpn(0);){var y=f.div(A);d=f.sub(y.mul(A)),u=g.sub(y.mul(h));var b=m.sub(y.mul(p));if(!r&&d.cmp(l)<0)t=c.neg(),n=h,r=d.neg(),i=u;else if(r&&2==++v)break;c=d,f=A,A=d,g=h,h=u,m=p,p=b}a=d.neg(),s=u;var I=r.sqr().add(i.sqr());return a.sqr().add(s.sqr()).cmp(I)>=0&&(a=t,s=n),r.negative&&(r=r.neg(),i=i.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:r,b:i},{a,b:s}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],o=r.b.mul(e).divRound(this.n),i=n.b.neg().mul(e).divRound(this.n),a=o.mul(n.a),s=i.mul(r.a),c=o.mul(n.b),d=i.mul(r.b);return{k1:e.sub(a).sub(s),k2:c.add(d).neg()}},c.prototype.pointFromX=function(e,t){(e=new o(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(o).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},d.prototype.isInfinity=function(){return this.inf},d.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 n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},d.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,n=this.x.redSqr(),r=e.redInvm(),o=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},d.prototype.getX=function(){return this.x.fromRed()},d.prototype.getY=function(){return this.y.fromRed()},d.prototype.mul=function(e){return e=new o(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)},d.prototype.mulAdd=function(e,t,n){var r=[this,t],o=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,o):this.curve._wnafMulAdd(1,r,o,2)},d.prototype.jmulAdd=function(e,t,n){var r=[this,t],o=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,o,!0):this.curve._wnafMulAdd(1,r,o,2,!0)},d.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))},d.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},d.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},i(u,a.BasePoint),c.prototype.jpoint=function(e,t,n){return new u(this,e,t,n)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),o=e.x.redMul(n),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(n.redMul(this.z)),s=r.redSub(o),c=i.redSub(a);if(0===s.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var d=s.redSqr(),u=d.redMul(s),l=r.redMul(d),A=c.redSqr().redIAdd(u).redISub(l).redISub(l),f=c.redMul(l.redISub(A)).redISub(i.redMul(u)),h=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(A,f,h)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=n.redSub(r),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),d=c.redMul(a),u=n.redMul(c),l=s.redSqr().redIAdd(d).redISub(u).redISub(u),A=s.redMul(u.redISub(l)).redISub(o.redMul(d)),f=this.z.redMul(a);return this.curve.jpoint(l,A,f)},u.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 n=this;for(t=0;t=0)return!1;if(n.redIAdd(o),0===this.x.cmp(n))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},5427:(e,t,n)=>{"use strict";var r,o=t,i=n(3715),a=n(8254),s=n(953).assert;function c(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 d(e,t){Object.defineProperty(o,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(o,e,{configurable:!0,enumerable:!0,value:n}),n}})}o.PresetCurve=c,d("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:i.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),d("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:i.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),d("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:i.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),d("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:i.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"]}),d("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:i.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"]}),d("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:i.sha256,gRed:!1,g:["9"]}),d("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:i.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(1037)}catch(e){r=void 0}d("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:i.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},7954:(e,t,n)=>{"use strict";var r=n(3785),o=n(2156),i=n(953),a=n(5427),s=n(9931),c=i.assert,d=n(1251),u=n(611);function l(e){if(!(this instanceof l))return new l(e);"string"==typeof e&&(c(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}e.exports=l,l.prototype.keyPair=function(e){return new d(this,e)},l.prototype.keyFromPrivate=function(e,t){return d.fromPrivate(this,e,t)},l.prototype.keyFromPublic=function(e,t){return d.fromPublic(this,e,t)},l.prototype.genKeyPair=function(e){e||(e={});for(var t=new o({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||s(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),i=this.n.sub(new r(2));;){var a=new r(t.generate(n));if(!(a.cmp(i)>0))return a.iaddn(1),this.keyFromPrivate(a)}},l.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},l.prototype.sign=function(e,t,n,i){"object"==typeof n&&(i=n,n=null),i||(i={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var a=this.n.byteLength(),s=t.getPrivate().toArray("be",a),c=e.toArray("be",a),d=new o({hash:this.hash,entropy:s,nonce:c,pers:i.pers,persEnc:i.persEnc||"utf8"}),l=this.n.sub(new r(1)),A=0;;A++){var f=i.k?i.k(A):new r(d.generate(this.n.byteLength()));if(!((f=this._truncateToN(f,!0)).cmpn(1)<=0||f.cmp(l)>=0)){var h=this.g.mul(f);if(!h.isInfinity()){var p=h.getX(),g=p.umod(this.n);if(0!==g.cmpn(0)){var m=f.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(h.getY().isOdd()?1:0)|(0!==p.cmp(g)?2:0);return i.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new u({r:g,s:m,recoveryParam:v})}}}}}},l.prototype.verify=function(e,t,n,o){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,o);var i=(t=new u(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,c=a.invm(this.n),d=c.mul(e).umod(this.n),l=c.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(d,n.getPublic(),l)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(d,n.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},l.prototype.recoverPubKey=function(e,t,n,o){c((3&n)===n,"The recovery param is more than two bits"),t=new u(t,o);var i=this.n,a=new r(e),s=t.r,d=t.s,l=1&n,A=n>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&A)throw new Error("Unable to find sencond key candinate");s=A?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var f=t.r.invm(i),h=i.sub(a).mul(f).umod(i),p=d.mul(f).umod(i);return this.g.mulAdd(h,s,p)},l.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new u(t,r)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(e){continue}if(i.eq(n))return o}throw new Error("Unable to find valid recovery factor")}},1251:(e,t,n)=>{"use strict";var r=n(3785),o=n(953).assert;function i(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=i,i.fromPublic=function(e,t,n){return t instanceof i?t:new i(e,{pub:t,pubEnc:n})},i.fromPrivate=function(e,t,n){return t instanceof i?t:new i(e,{priv:t,privEnc:n})},i.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},i.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},i.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},i.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},i.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?o(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||o(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},i.prototype.derive=function(e){return e.validate()||o(e.validate(),"public point not validated"),e.mul(this.priv).getX()},i.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},i.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},i.prototype.inspect=function(){return""}},611:(e,t,n)=>{"use strict";var r=n(3785),o=n(953),i=o.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(i(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function d(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=a,a.prototype._importDER=function(e,t){e=o.toArray(e,t);var n=new s;if(48!==e[n.place++])return!1;var i=c(e,n);if(!1===i)return!1;if(i+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var a=c(e,n);if(!1===a)return!1;var d=e.slice(n.place,a+n.place);if(n.place+=a,2!==e[n.place++])return!1;var u=c(e,n);if(!1===u)return!1;if(e.length!==u+n.place)return!1;var l=e.slice(n.place,u+n.place);if(0===d[0]){if(!(128&d[1]))return!1;d=d.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new r(d),this.s=new r(l),this.recoveryParam=null,!0},a.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=d(t),n=d(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];u(r,t.length),(r=r.concat(t)).push(2),u(r,n.length);var i=r.concat(n),a=[48];return u(a,i.length),a=a.concat(i),o.encode(a,e)}},5980:(e,t,n)=>{"use strict";var r=n(3715),o=n(5427),i=n(953),a=i.assert,s=i.parseBytes,c=n(9087),d=n(3622);function u(e){if(a("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=o[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=r.sha512}e.exports=u,u.prototype.sign=function(e,t){e=s(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),o=this.g.mul(r),i=this.encodePoint(o),a=this.hashInt(i,n.pubBytes(),e).mul(n.priv()),c=r.add(a).umod(this.curve.n);return this.makeSignature({R:o,S:c,Rencoded:i})},u.prototype.verify=function(e,t,n){e=s(e),t=this.makeSignature(t);var r=this.keyFromPublic(n),o=this.hashInt(t.Rencoded(),r.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(r.pub().mul(o)).eq(i)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var r=n(953),o=r.assert,i=r.parseBytes,a=r.cachedProperty;function s(e,t){this.eddsa=e,this._secret=i(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=i(t.pub)}s.fromPublic=function(e,t){return t instanceof s?t:new s(e,{pub:t})},s.fromSecret=function(e,t){return t instanceof s?t:new s(e,{secret:t})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(e){return o(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},s.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},s.prototype.getSecret=function(e){return o(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},s.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=s},3622:(e,t,n)=>{"use strict";var r=n(3785),o=n(953),i=o.assert,a=o.cachedProperty,s=o.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=s(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),i(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}a(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),a(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),a(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),a(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return o.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},1037:e=>{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"]]}}},953:(e,t,n)=>{"use strict";var r=t,o=n(3785),i=n(9746),a=n(4504);r.assert=i,r.toArray=a.toArray,r.zero2=a.zero2,r.toHex=a.toHex,r.encode=a.encode,r.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var o=1<(o>>1)-1?(o>>1)-c:c,i.isubn(s)):s=0,r[a]=s,i.iushrn(1)}return r},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,c=e.andln(3)+o&3,d=t.andln(3)+i&3;3===c&&(c=-1),3===d&&(d=-1),a=0==(1&c)?0:3!=(r=e.andln(7)+o&7)&&5!==r||2!==d?c:-c,n[0].push(a),s=0==(1&d)?0:3!=(r=t.andln(7)+i&7)&&5!==r||2!==c?d:-d,n[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new o(e,"hex","le")}},3785:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(4300).Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function c(e,t,n){var r=s(e,n);return n-1>=t&&(r|=s(e,n-1)<<4),r}function d(e,t,n,r){for(var o=0,i=Math.min(e.length,n),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)o=c(e,t,r)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,o=1;o<=67108863;o*=t)r++;r--,o=o/t|0;for(var i=e.length-n,a=i%r,s=Math.min(i,i-a)+n,c=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var u=["","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"],l=[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],A=[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 f(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;n.words[0]=s;for(var d=1;d>>26,l=67108863&c,A=Math.min(d,t.length-1),f=Math.max(0,d-e.length+1);f<=A;f++){var h=d-f|0;u+=(a=(o=0|e.words[h])*(i=0|t.words[f])+l)/67108864|0,l=67108863&a}n.words[d]=0|l,c=0|u}return 0!==c?n.words[d]=0|c:n.length--,n.strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215)||a!==this.length-1?u[6-c.length]+c+n:c+n,(o+=2)>=26&&(o-=26,a--)}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var d=l[e],f=A[e];n="";var h=this.clone();for(h.negative=0;!h.isZero();){var p=h.modn(f).toString(e);n=(h=h.idivn(f)).isZero()?p+n:u[d-p.length]+p+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return r(void 0!==a),this.toArrayLike(a,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,d=new e(i),u=this.clone();if(c){for(s=0;!u.isZero();s++)a=u.andln(255),u.iushrn(8),d[s]=a;for(;s=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=n.length,0!==o)this.words[this.length]=o,this.length++;else if(n!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.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 n,r,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,f=0|a[1],h=8191&f,p=f>>>13,g=0|a[2],m=8191&g,v=g>>>13,y=0|a[3],b=8191&y,I=y>>>13,C=0|a[4],E=8191&C,w=C>>>13,B=0|a[5],_=8191&B,S=B>>>13,k=0|a[6],O=8191&k,Q=k>>>13,R=0|a[7],P=8191&R,N=R>>>13,x=0|a[8],D=8191&x,T=x>>>13,M=0|a[9],U=8191&M,H=M>>>13,j=0|s[0],J=8191&j,F=j>>>13,G=0|s[1],L=8191&G,q=G>>>13,Y=0|s[2],V=8191&Y,W=Y>>>13,K=0|s[3],Z=8191&K,z=K>>>13,X=0|s[4],$=8191&X,ee=X>>>13,te=0|s[5],ne=8191&te,re=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,de=se>>>13,ue=0|s[8],le=8191&ue,Ae=ue>>>13,fe=0|s[9],he=8191&fe,pe=fe>>>13;n.negative=e.negative^t.negative,n.length=19;var ge=(d+(r=Math.imul(l,J))|0)+((8191&(o=(o=Math.imul(l,F))+Math.imul(A,J)|0))<<13)|0;d=((i=Math.imul(A,F))+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(h,J),o=(o=Math.imul(h,F))+Math.imul(p,J)|0,i=Math.imul(p,F);var me=(d+(r=r+Math.imul(l,L)|0)|0)+((8191&(o=(o=o+Math.imul(l,q)|0)+Math.imul(A,L)|0))<<13)|0;d=((i=i+Math.imul(A,q)|0)+(o>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(m,J),o=(o=Math.imul(m,F))+Math.imul(v,J)|0,i=Math.imul(v,F),r=r+Math.imul(h,L)|0,o=(o=o+Math.imul(h,q)|0)+Math.imul(p,L)|0,i=i+Math.imul(p,q)|0;var ve=(d+(r=r+Math.imul(l,V)|0)|0)+((8191&(o=(o=o+Math.imul(l,W)|0)+Math.imul(A,V)|0))<<13)|0;d=((i=i+Math.imul(A,W)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(b,J),o=(o=Math.imul(b,F))+Math.imul(I,J)|0,i=Math.imul(I,F),r=r+Math.imul(m,L)|0,o=(o=o+Math.imul(m,q)|0)+Math.imul(v,L)|0,i=i+Math.imul(v,q)|0,r=r+Math.imul(h,V)|0,o=(o=o+Math.imul(h,W)|0)+Math.imul(p,V)|0,i=i+Math.imul(p,W)|0;var ye=(d+(r=r+Math.imul(l,Z)|0)|0)+((8191&(o=(o=o+Math.imul(l,z)|0)+Math.imul(A,Z)|0))<<13)|0;d=((i=i+Math.imul(A,z)|0)+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(E,J),o=(o=Math.imul(E,F))+Math.imul(w,J)|0,i=Math.imul(w,F),r=r+Math.imul(b,L)|0,o=(o=o+Math.imul(b,q)|0)+Math.imul(I,L)|0,i=i+Math.imul(I,q)|0,r=r+Math.imul(m,V)|0,o=(o=o+Math.imul(m,W)|0)+Math.imul(v,V)|0,i=i+Math.imul(v,W)|0,r=r+Math.imul(h,Z)|0,o=(o=o+Math.imul(h,z)|0)+Math.imul(p,Z)|0,i=i+Math.imul(p,z)|0;var be=(d+(r=r+Math.imul(l,$)|0)|0)+((8191&(o=(o=o+Math.imul(l,ee)|0)+Math.imul(A,$)|0))<<13)|0;d=((i=i+Math.imul(A,ee)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(_,J),o=(o=Math.imul(_,F))+Math.imul(S,J)|0,i=Math.imul(S,F),r=r+Math.imul(E,L)|0,o=(o=o+Math.imul(E,q)|0)+Math.imul(w,L)|0,i=i+Math.imul(w,q)|0,r=r+Math.imul(b,V)|0,o=(o=o+Math.imul(b,W)|0)+Math.imul(I,V)|0,i=i+Math.imul(I,W)|0,r=r+Math.imul(m,Z)|0,o=(o=o+Math.imul(m,z)|0)+Math.imul(v,Z)|0,i=i+Math.imul(v,z)|0,r=r+Math.imul(h,$)|0,o=(o=o+Math.imul(h,ee)|0)+Math.imul(p,$)|0,i=i+Math.imul(p,ee)|0;var Ie=(d+(r=r+Math.imul(l,ne)|0)|0)+((8191&(o=(o=o+Math.imul(l,re)|0)+Math.imul(A,ne)|0))<<13)|0;d=((i=i+Math.imul(A,re)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(O,J),o=(o=Math.imul(O,F))+Math.imul(Q,J)|0,i=Math.imul(Q,F),r=r+Math.imul(_,L)|0,o=(o=o+Math.imul(_,q)|0)+Math.imul(S,L)|0,i=i+Math.imul(S,q)|0,r=r+Math.imul(E,V)|0,o=(o=o+Math.imul(E,W)|0)+Math.imul(w,V)|0,i=i+Math.imul(w,W)|0,r=r+Math.imul(b,Z)|0,o=(o=o+Math.imul(b,z)|0)+Math.imul(I,Z)|0,i=i+Math.imul(I,z)|0,r=r+Math.imul(m,$)|0,o=(o=o+Math.imul(m,ee)|0)+Math.imul(v,$)|0,i=i+Math.imul(v,ee)|0,r=r+Math.imul(h,ne)|0,o=(o=o+Math.imul(h,re)|0)+Math.imul(p,ne)|0,i=i+Math.imul(p,re)|0;var Ce=(d+(r=r+Math.imul(l,ie)|0)|0)+((8191&(o=(o=o+Math.imul(l,ae)|0)+Math.imul(A,ie)|0))<<13)|0;d=((i=i+Math.imul(A,ae)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(P,J),o=(o=Math.imul(P,F))+Math.imul(N,J)|0,i=Math.imul(N,F),r=r+Math.imul(O,L)|0,o=(o=o+Math.imul(O,q)|0)+Math.imul(Q,L)|0,i=i+Math.imul(Q,q)|0,r=r+Math.imul(_,V)|0,o=(o=o+Math.imul(_,W)|0)+Math.imul(S,V)|0,i=i+Math.imul(S,W)|0,r=r+Math.imul(E,Z)|0,o=(o=o+Math.imul(E,z)|0)+Math.imul(w,Z)|0,i=i+Math.imul(w,z)|0,r=r+Math.imul(b,$)|0,o=(o=o+Math.imul(b,ee)|0)+Math.imul(I,$)|0,i=i+Math.imul(I,ee)|0,r=r+Math.imul(m,ne)|0,o=(o=o+Math.imul(m,re)|0)+Math.imul(v,ne)|0,i=i+Math.imul(v,re)|0,r=r+Math.imul(h,ie)|0,o=(o=o+Math.imul(h,ae)|0)+Math.imul(p,ie)|0,i=i+Math.imul(p,ae)|0;var Ee=(d+(r=r+Math.imul(l,ce)|0)|0)+((8191&(o=(o=o+Math.imul(l,de)|0)+Math.imul(A,ce)|0))<<13)|0;d=((i=i+Math.imul(A,de)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(D,J),o=(o=Math.imul(D,F))+Math.imul(T,J)|0,i=Math.imul(T,F),r=r+Math.imul(P,L)|0,o=(o=o+Math.imul(P,q)|0)+Math.imul(N,L)|0,i=i+Math.imul(N,q)|0,r=r+Math.imul(O,V)|0,o=(o=o+Math.imul(O,W)|0)+Math.imul(Q,V)|0,i=i+Math.imul(Q,W)|0,r=r+Math.imul(_,Z)|0,o=(o=o+Math.imul(_,z)|0)+Math.imul(S,Z)|0,i=i+Math.imul(S,z)|0,r=r+Math.imul(E,$)|0,o=(o=o+Math.imul(E,ee)|0)+Math.imul(w,$)|0,i=i+Math.imul(w,ee)|0,r=r+Math.imul(b,ne)|0,o=(o=o+Math.imul(b,re)|0)+Math.imul(I,ne)|0,i=i+Math.imul(I,re)|0,r=r+Math.imul(m,ie)|0,o=(o=o+Math.imul(m,ae)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,ae)|0,r=r+Math.imul(h,ce)|0,o=(o=o+Math.imul(h,de)|0)+Math.imul(p,ce)|0,i=i+Math.imul(p,de)|0;var we=(d+(r=r+Math.imul(l,le)|0)|0)+((8191&(o=(o=o+Math.imul(l,Ae)|0)+Math.imul(A,le)|0))<<13)|0;d=((i=i+Math.imul(A,Ae)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(U,J),o=(o=Math.imul(U,F))+Math.imul(H,J)|0,i=Math.imul(H,F),r=r+Math.imul(D,L)|0,o=(o=o+Math.imul(D,q)|0)+Math.imul(T,L)|0,i=i+Math.imul(T,q)|0,r=r+Math.imul(P,V)|0,o=(o=o+Math.imul(P,W)|0)+Math.imul(N,V)|0,i=i+Math.imul(N,W)|0,r=r+Math.imul(O,Z)|0,o=(o=o+Math.imul(O,z)|0)+Math.imul(Q,Z)|0,i=i+Math.imul(Q,z)|0,r=r+Math.imul(_,$)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(S,$)|0,i=i+Math.imul(S,ee)|0,r=r+Math.imul(E,ne)|0,o=(o=o+Math.imul(E,re)|0)+Math.imul(w,ne)|0,i=i+Math.imul(w,re)|0,r=r+Math.imul(b,ie)|0,o=(o=o+Math.imul(b,ae)|0)+Math.imul(I,ie)|0,i=i+Math.imul(I,ae)|0,r=r+Math.imul(m,ce)|0,o=(o=o+Math.imul(m,de)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,de)|0,r=r+Math.imul(h,le)|0,o=(o=o+Math.imul(h,Ae)|0)+Math.imul(p,le)|0,i=i+Math.imul(p,Ae)|0;var Be=(d+(r=r+Math.imul(l,he)|0)|0)+((8191&(o=(o=o+Math.imul(l,pe)|0)+Math.imul(A,he)|0))<<13)|0;d=((i=i+Math.imul(A,pe)|0)+(o>>>13)|0)+(Be>>>26)|0,Be&=67108863,r=Math.imul(U,L),o=(o=Math.imul(U,q))+Math.imul(H,L)|0,i=Math.imul(H,q),r=r+Math.imul(D,V)|0,o=(o=o+Math.imul(D,W)|0)+Math.imul(T,V)|0,i=i+Math.imul(T,W)|0,r=r+Math.imul(P,Z)|0,o=(o=o+Math.imul(P,z)|0)+Math.imul(N,Z)|0,i=i+Math.imul(N,z)|0,r=r+Math.imul(O,$)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(Q,$)|0,i=i+Math.imul(Q,ee)|0,r=r+Math.imul(_,ne)|0,o=(o=o+Math.imul(_,re)|0)+Math.imul(S,ne)|0,i=i+Math.imul(S,re)|0,r=r+Math.imul(E,ie)|0,o=(o=o+Math.imul(E,ae)|0)+Math.imul(w,ie)|0,i=i+Math.imul(w,ae)|0,r=r+Math.imul(b,ce)|0,o=(o=o+Math.imul(b,de)|0)+Math.imul(I,ce)|0,i=i+Math.imul(I,de)|0,r=r+Math.imul(m,le)|0,o=(o=o+Math.imul(m,Ae)|0)+Math.imul(v,le)|0,i=i+Math.imul(v,Ae)|0;var _e=(d+(r=r+Math.imul(h,he)|0)|0)+((8191&(o=(o=o+Math.imul(h,pe)|0)+Math.imul(p,he)|0))<<13)|0;d=((i=i+Math.imul(p,pe)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(U,V),o=(o=Math.imul(U,W))+Math.imul(H,V)|0,i=Math.imul(H,W),r=r+Math.imul(D,Z)|0,o=(o=o+Math.imul(D,z)|0)+Math.imul(T,Z)|0,i=i+Math.imul(T,z)|0,r=r+Math.imul(P,$)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(N,$)|0,i=i+Math.imul(N,ee)|0,r=r+Math.imul(O,ne)|0,o=(o=o+Math.imul(O,re)|0)+Math.imul(Q,ne)|0,i=i+Math.imul(Q,re)|0,r=r+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,ae)|0)+Math.imul(S,ie)|0,i=i+Math.imul(S,ae)|0,r=r+Math.imul(E,ce)|0,o=(o=o+Math.imul(E,de)|0)+Math.imul(w,ce)|0,i=i+Math.imul(w,de)|0,r=r+Math.imul(b,le)|0,o=(o=o+Math.imul(b,Ae)|0)+Math.imul(I,le)|0,i=i+Math.imul(I,Ae)|0;var Se=(d+(r=r+Math.imul(m,he)|0)|0)+((8191&(o=(o=o+Math.imul(m,pe)|0)+Math.imul(v,he)|0))<<13)|0;d=((i=i+Math.imul(v,pe)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(U,Z),o=(o=Math.imul(U,z))+Math.imul(H,Z)|0,i=Math.imul(H,z),r=r+Math.imul(D,$)|0,o=(o=o+Math.imul(D,ee)|0)+Math.imul(T,$)|0,i=i+Math.imul(T,ee)|0,r=r+Math.imul(P,ne)|0,o=(o=o+Math.imul(P,re)|0)+Math.imul(N,ne)|0,i=i+Math.imul(N,re)|0,r=r+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,ae)|0)+Math.imul(Q,ie)|0,i=i+Math.imul(Q,ae)|0,r=r+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,de)|0)+Math.imul(S,ce)|0,i=i+Math.imul(S,de)|0,r=r+Math.imul(E,le)|0,o=(o=o+Math.imul(E,Ae)|0)+Math.imul(w,le)|0,i=i+Math.imul(w,Ae)|0;var ke=(d+(r=r+Math.imul(b,he)|0)|0)+((8191&(o=(o=o+Math.imul(b,pe)|0)+Math.imul(I,he)|0))<<13)|0;d=((i=i+Math.imul(I,pe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(U,$),o=(o=Math.imul(U,ee))+Math.imul(H,$)|0,i=Math.imul(H,ee),r=r+Math.imul(D,ne)|0,o=(o=o+Math.imul(D,re)|0)+Math.imul(T,ne)|0,i=i+Math.imul(T,re)|0,r=r+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,ae)|0)+Math.imul(N,ie)|0,i=i+Math.imul(N,ae)|0,r=r+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,de)|0)+Math.imul(Q,ce)|0,i=i+Math.imul(Q,de)|0,r=r+Math.imul(_,le)|0,o=(o=o+Math.imul(_,Ae)|0)+Math.imul(S,le)|0,i=i+Math.imul(S,Ae)|0;var Oe=(d+(r=r+Math.imul(E,he)|0)|0)+((8191&(o=(o=o+Math.imul(E,pe)|0)+Math.imul(w,he)|0))<<13)|0;d=((i=i+Math.imul(w,pe)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(U,ne),o=(o=Math.imul(U,re))+Math.imul(H,ne)|0,i=Math.imul(H,re),r=r+Math.imul(D,ie)|0,o=(o=o+Math.imul(D,ae)|0)+Math.imul(T,ie)|0,i=i+Math.imul(T,ae)|0,r=r+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,de)|0)+Math.imul(N,ce)|0,i=i+Math.imul(N,de)|0,r=r+Math.imul(O,le)|0,o=(o=o+Math.imul(O,Ae)|0)+Math.imul(Q,le)|0,i=i+Math.imul(Q,Ae)|0;var Qe=(d+(r=r+Math.imul(_,he)|0)|0)+((8191&(o=(o=o+Math.imul(_,pe)|0)+Math.imul(S,he)|0))<<13)|0;d=((i=i+Math.imul(S,pe)|0)+(o>>>13)|0)+(Qe>>>26)|0,Qe&=67108863,r=Math.imul(U,ie),o=(o=Math.imul(U,ae))+Math.imul(H,ie)|0,i=Math.imul(H,ae),r=r+Math.imul(D,ce)|0,o=(o=o+Math.imul(D,de)|0)+Math.imul(T,ce)|0,i=i+Math.imul(T,de)|0,r=r+Math.imul(P,le)|0,o=(o=o+Math.imul(P,Ae)|0)+Math.imul(N,le)|0,i=i+Math.imul(N,Ae)|0;var Re=(d+(r=r+Math.imul(O,he)|0)|0)+((8191&(o=(o=o+Math.imul(O,pe)|0)+Math.imul(Q,he)|0))<<13)|0;d=((i=i+Math.imul(Q,pe)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(U,ce),o=(o=Math.imul(U,de))+Math.imul(H,ce)|0,i=Math.imul(H,de),r=r+Math.imul(D,le)|0,o=(o=o+Math.imul(D,Ae)|0)+Math.imul(T,le)|0,i=i+Math.imul(T,Ae)|0;var Pe=(d+(r=r+Math.imul(P,he)|0)|0)+((8191&(o=(o=o+Math.imul(P,pe)|0)+Math.imul(N,he)|0))<<13)|0;d=((i=i+Math.imul(N,pe)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(U,le),o=(o=Math.imul(U,Ae))+Math.imul(H,le)|0,i=Math.imul(H,Ae);var Ne=(d+(r=r+Math.imul(D,he)|0)|0)+((8191&(o=(o=o+Math.imul(D,pe)|0)+Math.imul(T,he)|0))<<13)|0;d=((i=i+Math.imul(T,pe)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863;var xe=(d+(r=Math.imul(U,he))|0)+((8191&(o=(o=Math.imul(U,pe))+Math.imul(H,he)|0))<<13)|0;return d=((i=Math.imul(H,pe))+(o>>>13)|0)+(xe>>>26)|0,xe&=67108863,c[0]=ge,c[1]=me,c[2]=ve,c[3]=ye,c[4]=be,c[5]=Ie,c[6]=Ce,c[7]=Ee,c[8]=we,c[9]=Be,c[10]=_e,c[11]=Se,c[12]=ke,c[13]=Oe,c[14]=Qe,c[15]=Re,c[16]=Pe,c[17]=Ne,c[18]=xe,0!==d&&(c[19]=d,n.length++),n};function p(e,t,n){return(new g).mulp(e,t,n)}function g(e,t){this.x=e,this.y=t}Math.imul||(h=f),i.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?h(this,e,t):r<63?f(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}n.words[i]=s,r=a,a=o}return 0!==r?n.words[i]=r:n.length--,n.strip()}(this,e,t):p(this,e,t),n},g.prototype.makeRBT=function(e){for(var t=new Array(e),n=i.prototype._countBits(e)-1,r=0;r>=1;return r},g.prototype.permute=function(e,t,n,r,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>o}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,d=0;d=0&&(0!==u||d>=o);d--){var l=0|this.words[d];this.words[d]=u<<26-i|l>>>i,u=l&s}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=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},i.prototype.isubn=function(e){if(r("number"==typeof e),r(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)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),o=e,a=0|o.words[o.length-1];0!=(n=26-this._countBits(a))&&(o=o.ushln(n),r.iushln(n),a=0|o.words[o.length-1]);var s,c=r.length-o.length;if("mod"!==t){(s=new i(null)).length=c+1,s.words=new Array(s.length);for(var d=0;d=0;l--){var A=67108864*(0|r.words[o.length+l])+(0|r.words[o.length+l-1]);for(A=Math.min(A/a|0,67108863),r._ishlnsubmul(o,A,l);0!==r.negative;)A--,r.negative=0,r._ishlnsubmul(o,1,l),r.isZero()||(r.negative^=1);s&&(s.words[l]=A)}return s&&s.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(o=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:o,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(o=s.div.neg()),{div:o,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var o,a,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),o=e.andln(1),i=n.cmp(r);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},i.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),a=new i(0),s=new i(0),c=new i(1),d=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++d;for(var u=n.clone(),l=t.clone();!t.isZero();){for(var A=0,f=1;0==(t.words[0]&f)&&A<26;++A,f<<=1);if(A>0)for(t.iushrn(A);A-- >0;)(o.isOdd()||a.isOdd())&&(o.iadd(u),a.isub(l)),o.iushrn(1),a.iushrn(1);for(var h=0,p=1;0==(n.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(n.iushrn(h);h-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(u),c.isub(l)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(s),a.isub(c)):(n.isub(t),s.isub(o),c.isub(a))}return{a:s,b:c,gcd:n.iushln(d)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,a=new i(1),s=new i(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var d=0,u=1;0==(t.words[0]&u)&&d<26;++d,u<<=1);if(d>0)for(t.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var l=0,A=1;0==(n.words[0]&A)&&l<26;++l,A<<=1);if(l>0)for(n.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(o=0===t.cmpn(1)?a:s).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var o=t.cmp(n);if(o<0){var i=t;t=n,n=i}else if(0===o||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;n--){var r=0|this.words[n],o=0|e.words[n];if(r!==o){ro&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new E(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function I(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function C(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function w(e){E.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(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 e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},o(y,v),y.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=o,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new b;else if("p192"===e)t=new I;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new C}return m[e]=t,t},E.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},E.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(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):e.umod(this.m)._forceRed(this)},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 n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},E.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},E.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},E.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},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(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),a=0;!o.isZero()&&0===o.andln(1);)a++,o.iushrn(1);r(!o.isZero());var s=new i(1).toRed(this),c=s.redNeg(),d=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new i(2*u*u).toRed(this);0!==this.pow(u,d).cmp(c);)u.redIAdd(c);for(var l=this.pow(u,o),A=this.pow(e,o.addn(1).iushrn(1)),f=this.pow(e,o),h=a;0!==f.cmp(s);){for(var p=f,g=0;0!==p.cmp(s);g++)p=p.redSqr();r(g=0;r--){for(var d=t.words[r],u=c-1;u>=0;u--){var l=d>>u&1;o!==n[0]&&(o=this.sqr(o)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===r&&0===u)&&(o=this.mul(o,n[a]),s=0,a=0)):s=0}c=26}return o},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},i.mont=function(e){return new w(e)},o(w,E),w.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},w.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},w.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=n.isub(r).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},w.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=n.isub(r).iushrn(this.shift),a=o;return o.cmp(this.m)>=0?a=o.isub(this.m):o.cmpn(0)<0&&(a=o.iadd(this.m)),a._forceRed(this)},w.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},2261:(e,t,n)=>{var r;e.exports=function(){if(!r){try{r=n(5158)("follow-redirects")}catch(e){}"function"!=typeof r&&(r=function(){})}r.apply(null,arguments)}},938:(e,t,n)=>{var r=n(5034),o=r.URL,i=n(2181),a=n(5687),s=n(2781).Writable,c=n(9491),d=n(2261),u=["abort","aborted","connect","error","socket","timeout"],l=Object.create(null);u.forEach((function(e){l[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}}));var A=I("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),f=I("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded"),h=I("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),p=I("ERR_STREAM_WRITE_AFTER_END","write after end");function g(e,t){s.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var n=this;this._onNativeResponse=function(e){n._processResponse(e)},this._performRequest()}function m(e){var t={maxRedirects:21,maxBodyLength:10485760},n={};return Object.keys(e).forEach((function(i){var a=i+":",s=n[a]=e[i],u=t[i]=Object.create(s);Object.defineProperties(u,{request:{value:function(e,i,s){if("string"==typeof e){var u=e;try{e=y(new o(u))}catch(t){e=r.parse(u)}}else o&&e instanceof o?e=y(e):(s=i,i=e,e={protocol:a});return"function"==typeof i&&(s=i,i=null),(i=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},e,i)).nativeProtocols=n,c.equal(i.protocol,a,"protocol mismatch"),d("options",i),new g(i,s)},configurable:!0,enumerable:!0,writable:!0},get:{value:function(e,t,n){var r=u.request(e,t,n);return r.end(),r},configurable:!0,enumerable:!0,writable:!0}})})),t}function v(){}function y(e){var t={protocol:e.protocol,hostname:e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,hash:e.hash,search:e.search,pathname:e.pathname,path:e.pathname+e.search,href:e.href};return""!==e.port&&(t.port=Number(e.port)),t}function b(e,t){var n;for(var r in t)e.test(r)&&(n=t[r],delete t[r]);return null==n?void 0:String(n).trim()}function I(e,t){function n(e){Error.captureStackTrace(this,this.constructor),e?(this.message=t+": "+e.message,this.cause=e):this.message=t}return n.prototype=new Error,n.prototype.constructor=n,n.prototype.name="Error ["+e+"]",n.prototype.code=e,n}function C(e){for(var t=0;t=300&&t<400){if(C(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)return void this.emit("error",new f);((301===t||302===t)&&"POST"===this._options.method||303===t&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],b(/^content-/i,this._options.headers));var o,i=b(/^host$/i,this._options.headers),a=r.parse(this._currentUrl),s=i||a.host,c=/^\w+:/.test(n)?this._currentUrl:r.format(Object.assign(a,{host:s}));try{o=r.resolve(c,n)}catch(e){return void this.emit("error",new A(e))}d("redirecting to",o),this._isRedirect=!0;var u=r.parse(o);if(Object.assign(this._options,u),u.protocol===a.protocol&&function(e,t){if(e===t)return!0;const n=e.length-t.length-1;return n>0&&"."===e[n]&&e.endsWith(t)}(u.host,s)||b(/^(?:authorization|cookie)$/i,this._options.headers),"function"==typeof this._options.beforeRedirect){var l={headers:e.headers};try{this._options.beforeRedirect.call(null,this._options,l)}catch(e){return void this.emit("error",e)}this._sanitizeOptions(this._options)}try{this._performRequest()}catch(e){this.emit("error",new A(e))}}else e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[]},e.exports=m({http:i,https:a}),e.exports.wrap=m},6553:e=>{"use strict";e.exports=global},2503:(e,t,n)=>{"use strict";var r=n(4289),o=n(6553),i=n(2168),a=n(9471),s=i(),c=function(){return s};r(c,{getPolyfill:i,implementation:o,shim:a}),e.exports=c},2168:(e,t,n)=>{"use strict";var r=n(6553);e.exports=function(){return"object"==typeof global&&global&&global.Math===Math&&global.Array===Array?global:r}},9471:(e,t,n)=>{"use strict";var r=n(4289),o=n(2168);e.exports=function(){var e=o();if(r.supportsDescriptors){var t=Object.getOwnPropertyDescriptor(e,"globalThis");(!t||t.configurable&&(t.enumerable||t.writable||globalThis!==e))&&Object.defineProperty(e,"globalThis",{configurable:!0,enumerable:!1,value:e,writable:!1})}else"object"==typeof globalThis&&globalThis===e||(e.globalThis=e);return e}},6560:e=>{"use strict";e.exports=(e,t=process.argv)=>{const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),o=t.indexOf("--");return-1!==r&&(-1===o||r{"use strict";var r=n(9509).Buffer,o=n(1451).Transform;function i(e){o.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(4378)(i,o),i.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},i.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},i.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer")}(e),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,o=0;this._blockOffset+e.length-o>=this._blockSize;){for(var i=this._blockOffset;i0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},i.prototype._update=function(){throw new Error("_update is not implemented")},i.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 n=0;n<4;++n)this._length[n]=0;return t},i.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=i},3715:(e,t,n)=>{var r=t;r.utils=n(6436),r.common=n(5772),r.sha=n(9041),r.ripemd=n(2949),r.hmac=n(2344),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},5772:(e,t,n)=>{"use strict";var r=n(6436),o=n(9746);function i(){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=i,i.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var o=0;o>>24&255,r[o++]=e>>>16&255,r[o++]=e>>>8&255,r[o++]=255&e}else for(r[o++]=255&e,r[o++]=e>>>8&255,r[o++]=e>>>16&255,r[o++]=e>>>24&255,r[o++]=0,r[o++]=0,r[o++]=0,r[o++]=0,i=8;i{"use strict";var r=n(6436),o=n(9746);function i(e,t,n){if(!(this instanceof i))return new i(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=i,i.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),o(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var r=n(6436),o=n(5772),i=r.rotl32,a=r.sum32,s=r.sum32_3,c=r.sum32_4,d=o.BlockHash;function u(){if(!(this instanceof u))return new u;d.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function A(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function f(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(u,d),t.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],o=this.h[2],d=this.h[3],u=this.h[4],v=n,y=r,b=o,I=d,C=u,E=0;E<80;E++){var w=a(i(c(n,l(E,r,o,d),e[h[E]+t],A(E)),g[E]),u);n=u,u=d,d=i(o,10),o=r,r=w,w=a(i(c(v,l(79-E,y,b,I),e[p[E]+t],f(E)),m[E]),C),v=C,C=I,I=i(b,10),b=y,y=w}w=s(this.h[1],o,I),this.h[1]=s(this.h[2],d,C),this.h[2]=s(this.h[3],u,v),this.h[3]=s(this.h[4],n,y),this.h[4]=s(this.h[0],r,b),this.h[0]=w},u.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var h=[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],p=[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],g=[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],m=[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]},9041:(e,t,n)=>{"use strict";t.sha1=n(4761),t.sha224=n(799),t.sha256=n(9344),t.sha384=n(772),t.sha512=n(5900)},4761:(e,t,n)=>{"use strict";var r=n(6436),o=n(5772),i=n(7038),a=r.rotl32,s=r.sum32,c=r.sum32_5,d=i.ft_1,u=o.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function A(){if(!(this instanceof A))return new A;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(A,u),e.exports=A,A.blockSize=512,A.outSize=160,A.hmacStrength=80,A.padLength=64,A.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436),o=n(9344);function i(){if(!(this instanceof i))return new i;o.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(i,o),e.exports=i,i.blockSize=512,i.outSize=224,i.hmacStrength=192,i.padLength=64,i.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},9344:(e,t,n)=>{"use strict";var r=n(6436),o=n(5772),i=n(7038),a=n(9746),s=r.sum32,c=r.sum32_4,d=r.sum32_5,u=i.ch32,l=i.maj32,A=i.s0_256,f=i.s1_256,h=i.g0_256,p=i.g1_256,g=o.BlockHash,m=[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;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=m,this.W=new Array(64)}r.inherits(v,g),e.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436),o=n(5900);function i(){if(!(this instanceof i))return new i;o.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(i,o),e.exports=i,i.blockSize=1024,i.outSize=384,i.hmacStrength=192,i.padLength=128,i.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},5900:(e,t,n)=>{"use strict";var r=n(6436),o=n(5772),i=n(9746),a=r.rotr64_hi,s=r.rotr64_lo,c=r.shr64_hi,d=r.shr64_lo,u=r.sum64,l=r.sum64_hi,A=r.sum64_lo,f=r.sum64_4_hi,h=r.sum64_4_lo,p=r.sum64_5_hi,g=r.sum64_5_lo,m=o.BlockHash,v=[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];function y(){if(!(this instanceof y))return new y;m.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=v,this.W=new Array(160)}function b(e,t,n,r,o){var i=e&n^~e&o;return i<0&&(i+=4294967296),i}function I(e,t,n,r,o,i){var a=t&r^~t&i;return a<0&&(a+=4294967296),a}function C(e,t,n,r,o){var i=e&n^e&o^n&o;return i<0&&(i+=4294967296),i}function E(e,t,n,r,o,i){var a=t&r^t&i^r&i;return a<0&&(a+=4294967296),a}function w(e,t){var n=a(e,t,28)^a(t,e,2)^a(t,e,7);return n<0&&(n+=4294967296),n}function B(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function _(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function S(e,t){var n=a(e,t,1)^a(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function k(e,t){var n=s(e,t,1)^s(e,t,8)^d(e,t,7);return n<0&&(n+=4294967296),n}function O(e,t){var n=s(e,t,19)^s(t,e,29)^d(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(y,m),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436).rotr32;function o(e,t,n){return e&t^~e&n}function i(e,t,n){return e&t^e&n^t&n}function a(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?o(t,n,r):1===e||3===e?a(t,n,r):2===e?i(t,n,r):void 0},t.ch32=o,t.maj32=i,t.p32=a,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},6436:(e,t,n)=>{"use strict";var r=n(9746),o=n(4378);function i(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 c(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=o,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),o=0;o>6|192,n[r++]=63&a|128):i(e,o)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++o)),n[r++]=a>>18|240,n[r++]=a>>12&63|128,n[r++]=a>>6&63|128,n[r++]=63&a|128):(n[r++]=a>>12|224,n[r++]=a>>6&63|128,n[r++]=63&a|128)}else for(o=0;o>>0}return a},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,o=0;r>>24,n[o+1]=i>>>16&255,n[o+2]=i>>>8&255,n[o+3]=255&i):(n[o+3]=i>>>24,n[o+2]=i>>>16&255,n[o+1]=i>>>8&255,n[o]=255&i)}return n},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,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,o){return e+t+n+r+o>>>0},t.sum64=function(e,t,n,r){var o=e[t],i=r+e[t+1]>>>0,a=(i>>0,e[t+1]=i},t.sum64_hi=function(e,t,n,r){return(t+r>>>0>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,o,i,a,s){var c=0,d=t;return c+=(d=d+r>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,r,o,i,a,s){return t+r+i+s>>>0},t.sum64_5_hi=function(e,t,n,r,o,i,a,s,c,d){var u=0,l=t;return u+=(l=l+r>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,r,o,i,a,s,c,d){return t+r+i+s+d>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},2156:(e,t,n)=>{"use strict";var r=n(3715),o=n(4504),i=n(9746);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=o.toArray(e.entropy,e.entropyEnc||"hex"),n=o.toArray(e.nonce,e.nonceEnc||"hex"),r=o.toArray(e.pers,e.persEnc||"hex");i(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=a,a.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},a.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=o.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length{try{var r=n(3837);if("function"!=typeof r.inherits)throw"";e.exports=r.inherits}catch(t){e.exports=n(5717)}},5717:e=>{"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 n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},7030:(e,t,n)=>{"use strict";e.exports=n(8777)},5793:(e,t,n)=>{"use strict";var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.errorCodeToString=d,t.processErrorResponse=u,t.getVersion=function(e){return l.apply(this,arguments)},t.ERROR_CODE=t.P1_VALUES=t.PAYLOAD_TYPE=t.INS=t.APP_KEY=t.CHUNK_SIZE=t.CLA=void 0;var o=r(n(7757)),i=r(n(8926)),a=r(n(8));t.CLA=85,t.CHUNK_SIZE=250,t.APP_KEY="CSM";var s={GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2,GET_ADDR_SECP256K1:4};t.INS=s,t.PAYLOAD_TYPE={INIT:0,ADD:1,LAST:2},t.P1_VALUES={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},t.ERROR_CODE={NoError:36864};var c={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",36864:"No errors",36865:"Device is busy",26626:"Error deriving keys",25600:"Execution Error",26368:"Wrong Length",27010:"Empty Buffer",27011:"Output buffer too small",27012:"Data is invalid",27013:"Conditions not satisfied",27014:"Transaction rejected",27264:"Bad key handle",27392:"Invalid P1/P2",27904:"Instruction not supported",28160:"App does not seem to be open",28416:"Unknown error",28417:"Sign/verify error"};function d(e){return e in c?c[e]:"Unknown Status Code: ".concat(e)}function u(e){if(e){if(t=e,!("object"!==(0,a.default)(t)||null===t||t instanceof Array||t instanceof Date)){if(Object.prototype.hasOwnProperty.call(e,"statusCode"))return{return_code:e.statusCode,error_message:d(e.statusCode)};if(Object.prototype.hasOwnProperty.call(e,"return_code")&&Object.prototype.hasOwnProperty.call(e,"error_message"))return e}return{return_code:65535,error_message:e.toString()}}var t;return{return_code:65535,error_message:e.toString()}}function l(){return(l=(0,i.default)(o.default.mark((function e(t){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.send(85,s.GET_VERSION,0,0).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],r=0;return e.length>=9&&(r=(e[5]<<24)+(e[6]<<16)+(e[7]<<8)+(e[8]<<0)),{return_code:n,error_message:d(n),test_mode:0!==e[0],major:e[1],minor:e[2],patch:e[3],device_locked:1===e[4],target_id:r.toString(16)}}),u));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},5496:(e,t,n)=>{"use strict";var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.serializePathv1=function(e){if(null==e||e.length<3)throw new Error("Invalid path.");if(e.length>10)throw new Error("Invalid path. Length should be <= 10");var t=Buffer.alloc(1+4*e.length);t.writeUInt8(e.length,0);for(var n=0;n2&&(o=e.slice(0,e.length-2)),{signature:o,return_code:n,error_message:r}}),a.processErrorResponse));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function c(e){if(65!==e.length)throw new Error("decompressed public key length should be 65 bytes");var t=e.slice(33,65),n=Buffer.from([2+(1&t[t.length-1])]);return Buffer.concat([n,e.slice(1,33)])}function d(){return(d=(0,i.default)(o.default.mark((function e(t,n){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.transport.send(a.CLA,a.INS.INS_PUBLIC_KEY_SECP256K1,0,0,n,[a.ERROR_CODE.NoError]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],r=Buffer.from(e.slice(0,65));return{pk:r,compressed_pk:c(r),return_code:n,error_message:(0,a.errorCodeToString)(n)}}),a.processErrorResponse));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},2449:(e,t,n)=>{"use strict";var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.serializePathv2=function(e){if(!e||5!==e.length)throw new Error("Invalid path.");var t=Buffer.alloc(20);return t.writeUInt32LE(2147483648+e[0],0),t.writeUInt32LE(2147483648+e[1],4),t.writeUInt32LE(2147483648+e[2],8),t.writeUInt32LE(e[3],12),t.writeUInt32LE(e[4],16),t},t.signSendChunkv2=function(e,t,n,r){return c.apply(this,arguments)},t.publicKeyv2=function(e,t){return d.apply(this,arguments)};var o=r(n(7757)),i=r(n(8926)),a=n(5496),s=n(5793);function c(){return(c=(0,i.default)(o.default.mark((function e(t,n,r,i){var c;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=s.PAYLOAD_TYPE.ADD,1===n&&(c=s.PAYLOAD_TYPE.INIT),n===r&&(c=s.PAYLOAD_TYPE.LAST),e.abrupt("return",(0,a.signSendChunkv1)(t,c,0,i));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(){return(d=(0,i.default)(o.default.mark((function e(t,n){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.transport.send(s.CLA,s.INS.GET_ADDR_SECP256K1,0,0,n,[s.ERROR_CODE.NoError]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1];return{pk:"OBSOLETE PROPERTY",compressed_pk:Buffer.from(e.slice(0,33)),return_code:n,error_message:(0,s.errorCodeToString)(n)}}),s.processErrorResponse));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},9246:(e,t,n)=>{"use strict";var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(7757)),i=r(n(8926)),a=r(n(4575)),s=r(n(3913)),c=r(n(6113)),d=r(n(9785)),u=r(n(2882)),l=n(5496),A=n(2449),f=n(5793),h=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f.APP_KEY;if((0,a.default)(this,e),!t)throw new Error("Transport has not been defined");this.transport=t,t.decorateAppAPIMethods(this,["getVersion","sign","getAddressAndPubKey","appInfo","deviceInfo","getBech32FromPK"],n)}var t,n,r,h,p,g,m,v,y,b;return(0,s.default)(e,[{key:"serializePath",value:(b=(0,i.default)(o.default.mark((function e(t){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,f.getVersion)(this.transport);case 2:if(this.versionResponse=e.sent,this.versionResponse.return_code===f.ERROR_CODE.NoError){e.next=5;break}throw this.versionResponse;case 5:e.t0=this.versionResponse.major,e.next=1===e.t0?8:2===e.t0?9:10;break;case 8:return e.abrupt("return",(0,l.serializePathv1)(t));case 9:return e.abrupt("return",(0,A.serializePathv2)(t));case 10:return e.abrupt("return",{return_code:25600,error_message:"App Version is not supported"});case 11:case"end":return e.stop()}}),e,this)}))),function(e){return b.apply(this,arguments)})},{key:"signGetChunks",value:(y=(0,i.default)(o.default.mark((function e(t,n){var r,i,a,s,c;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.serializePath(t);case 2:for(r=e.sent,(i=[]).push(r),a=Buffer.from(n),s=0;sa.length&&(c=a.length),i.push(a.slice(s,c));return e.abrupt("return",i);case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return y.apply(this,arguments)})},{key:"getVersion",value:(v=(0,i.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,f.getVersion)(this.transport);case 3:return this.versionResponse=e.sent,e.abrupt("return",this.versionResponse);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",(0,f.processErrorResponse)(e.t0));case 10:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(){return v.apply(this,arguments)})},{key:"appInfo",value:(m=(0,i.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.transport.send(176,1,0,0).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],r={},o="err",i="err",a=0,s=0;if(1!==e[0])r.error_message="response format ID not recognized",r.return_code=36865;else{var c=e[1];o=e.slice(2,2+c).toString("ascii");var d=2+c,u=e[d];d+=1,i=e.slice(d,d+u).toString("ascii"),a=e[d+=u],s=e[d+=1]}return{return_code:n,error_message:(0,f.errorCodeToString)(n),appName:o,appVersion:i,flagLen:a,flagsValue:s,flag_recovery:0!=(1&s),flag_signed_mcu_code:0!=(2&s),flag_onboarded:0!=(4&s),flag_pin_validated:0!=(128&s)}}),f.processErrorResponse));case 1:case"end":return e.stop()}}),e,this)}))),function(){return m.apply(this,arguments)})},{key:"deviceInfo",value:(g=(0,i.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.transport.send(224,1,0,0,Buffer.from([]),[f.ERROR_CODE.NoError,28160]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1];if(28160===n)return{return_code:n,error_message:"This command is only available in the Dashboard"};var r=e.slice(0,4).toString("hex"),o=4,i=e[o];o+=1;var a=e.slice(o,o+i).toString(),s=e[o+=i];o+=1;var c=e.slice(o,o+s).toString("hex"),d=e[o+=s];o+=1;var u=e.slice(o,o+d);0===u[d-1]&&(u=e.slice(o,o+d-1));var l=u.toString();return{return_code:n,error_message:(0,f.errorCodeToString)(n),targetId:r,seVersion:a,flag:c,mcuVersion:l}}),f.processErrorResponse));case 1:case"end":return e.stop()}}),e,this)}))),function(){return g.apply(this,arguments)})},{key:"publicKey",value:(p=(0,i.default)(o.default.mark((function t(n){var r,i;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.serializePath(n);case 3:r=t.sent,t.t0=this.versionResponse.major,t.next=1===t.t0?7:2===t.t0?8:10;break;case 7:return t.abrupt("return",(0,l.publicKeyv1)(this,r));case 8:return i=Buffer.concat([e.serializeHRP("cosmos"),r]),t.abrupt("return",(0,A.publicKeyv2)(this,i));case 10:return t.abrupt("return",{return_code:25600,error_message:"App Version is not supported"});case 11:t.next=16;break;case 13:return t.prev=13,t.t1=t.catch(0),t.abrupt("return",(0,f.processErrorResponse)(t.t1));case 16:case"end":return t.stop()}}),t,this,[[0,13]])}))),function(e){return p.apply(this,arguments)})},{key:"getAddressAndPubKey",value:(h=(0,i.default)(o.default.mark((function t(n,r){var i=this;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.serializePath(n).then((function(t){var n=Buffer.concat([e.serializeHRP(r),t]);return i.transport.send(f.CLA,f.INS.GET_ADDR_SECP256K1,f.P1_VALUES.ONLY_RETRIEVE,0,n,[f.ERROR_CODE.NoError]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],r=Buffer.from(e.slice(0,33));return{bech32_address:Buffer.from(e.slice(33,-2)).toString(),compressed_pk:r,return_code:n,error_message:(0,f.errorCodeToString)(n)}}),f.processErrorResponse)})).catch((function(e){return(0,f.processErrorResponse)(e)})));case 4:return t.prev=4,t.t0=t.catch(0),t.abrupt("return",(0,f.processErrorResponse)(t.t0));case 7:case"end":return t.stop()}}),t,this,[[0,4]])}))),function(e,t){return h.apply(this,arguments)})},{key:"showAddressAndPubKey",value:(r=(0,i.default)(o.default.mark((function t(n,r){var i=this;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.abrupt("return",this.serializePath(n).then((function(t){var n=Buffer.concat([e.serializeHRP(r),t]);return i.transport.send(f.CLA,f.INS.GET_ADDR_SECP256K1,f.P1_VALUES.SHOW_ADDRESS_IN_DEVICE,0,n,[f.ERROR_CODE.NoError]).then((function(e){var t=e.slice(-2),n=256*t[0]+t[1],r=Buffer.from(e.slice(0,33));return{bech32_address:Buffer.from(e.slice(33,-2)).toString(),compressed_pk:r,return_code:n,error_message:(0,f.errorCodeToString)(n)}}),f.processErrorResponse)})).catch((function(e){return(0,f.processErrorResponse)(e)})));case 4:return t.prev=4,t.t0=t.catch(0),t.abrupt("return",(0,f.processErrorResponse)(t.t0));case 7:case"end":return t.stop()}}),t,this,[[0,4]])}))),function(e,t){return r.apply(this,arguments)})},{key:"signSendChunk",value:(n=(0,i.default)(o.default.mark((function e(t,n,r){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=this.versionResponse.major,e.next=1===e.t0?3:2===e.t0?4:5;break;case 3:return e.abrupt("return",(0,l.signSendChunkv1)(this,t,n,r));case 4:return e.abrupt("return",(0,A.signSendChunkv2)(this,t,n,r));case 5:return e.abrupt("return",{return_code:25600,error_message:"App Version is not supported"});case 6:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"sign",value:(t=(0,i.default)(o.default.mark((function e(t,n){var r=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.signGetChunks(t,n).then((function(e){return r.signSendChunk(1,e.length,e[0],[f.ERROR_CODE.NoError]).then(function(){var t=(0,i.default)(o.default.mark((function t(n){var i,a;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i={return_code:n.return_code,error_message:n.error_message,signature:null},a=1;case 2:if(!(a83)throw new Error("Invalid HRP");var t=Buffer.alloc(1+e.length);return t.writeUInt8(e.length,0),t.write(e,1),t}},{key:"getBech32FromPK",value:function(e,t){if(33!==t.length)throw new Error("expected compressed public key [31 bytes]");var n=c.default.createHash("sha256").update(t).digest(),r=(new d.default).update(n).digest();return u.default.encode(e,u.default.toWords(r))}}]),e}();t.default=h},6869:function(e,t,n){var r,o,i,a,s;s="object"==typeof(a=this).sodium&&"function"==typeof a.sodium.onload?a.sodium.onload:null,o=[t,n(4608)],r=function(e,t){"use strict";var n,r=t.ready.then((function(){function r(){if(0!==n._sodium_init())throw new Error("libsodium was not correctly initialized.");for(var t=["crypto_aead_chacha20poly1305_decrypt","crypto_aead_chacha20poly1305_decrypt_detached","crypto_aead_chacha20poly1305_encrypt","crypto_aead_chacha20poly1305_encrypt_detached","crypto_aead_chacha20poly1305_ietf_decrypt","crypto_aead_chacha20poly1305_ietf_decrypt_detached","crypto_aead_chacha20poly1305_ietf_encrypt","crypto_aead_chacha20poly1305_ietf_encrypt_detached","crypto_aead_chacha20poly1305_ietf_keygen","crypto_aead_chacha20poly1305_keygen","crypto_aead_xchacha20poly1305_ietf_decrypt","crypto_aead_xchacha20poly1305_ietf_decrypt_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_encrypt_detached","crypto_aead_xchacha20poly1305_ietf_keygen","crypto_auth","crypto_auth_hmacsha256","crypto_auth_hmacsha256_keygen","crypto_auth_hmacsha256_verify","crypto_auth_hmacsha512","crypto_auth_hmacsha512_keygen","crypto_auth_hmacsha512_verify","crypto_auth_keygen","crypto_auth_verify","crypto_box_beforenm","crypto_box_curve25519xchacha20poly1305_keypair","crypto_box_curve25519xchacha20poly1305_seal","crypto_box_curve25519xchacha20poly1305_seal_open","crypto_box_detached","crypto_box_easy","crypto_box_easy_afternm","crypto_box_keypair","crypto_box_open_detached","crypto_box_open_easy","crypto_box_open_easy_afternm","crypto_box_seal","crypto_box_seal_open","crypto_box_seed_keypair","crypto_core_ed25519_add","crypto_core_ed25519_from_hash","crypto_core_ed25519_from_uniform","crypto_core_ed25519_is_valid_point","crypto_core_ed25519_random","crypto_core_ed25519_scalar_add","crypto_core_ed25519_scalar_complement","crypto_core_ed25519_scalar_invert","crypto_core_ed25519_scalar_mul","crypto_core_ed25519_scalar_negate","crypto_core_ed25519_scalar_random","crypto_core_ed25519_scalar_reduce","crypto_core_ed25519_scalar_sub","crypto_core_ed25519_sub","crypto_core_ristretto255_add","crypto_core_ristretto255_from_hash","crypto_core_ristretto255_is_valid_point","crypto_core_ristretto255_random","crypto_core_ristretto255_scalar_add","crypto_core_ristretto255_scalar_complement","crypto_core_ristretto255_scalar_invert","crypto_core_ristretto255_scalar_mul","crypto_core_ristretto255_scalar_negate","crypto_core_ristretto255_scalar_random","crypto_core_ristretto255_scalar_reduce","crypto_core_ristretto255_scalar_sub","crypto_core_ristretto255_sub","crypto_generichash","crypto_generichash_blake2b_salt_personal","crypto_generichash_final","crypto_generichash_init","crypto_generichash_keygen","crypto_generichash_update","crypto_hash","crypto_hash_sha256","crypto_hash_sha256_final","crypto_hash_sha256_init","crypto_hash_sha256_update","crypto_hash_sha512","crypto_hash_sha512_final","crypto_hash_sha512_init","crypto_hash_sha512_update","crypto_kdf_derive_from_key","crypto_kdf_keygen","crypto_kx_client_session_keys","crypto_kx_keypair","crypto_kx_seed_keypair","crypto_kx_server_session_keys","crypto_onetimeauth","crypto_onetimeauth_final","crypto_onetimeauth_init","crypto_onetimeauth_keygen","crypto_onetimeauth_update","crypto_onetimeauth_verify","crypto_pwhash","crypto_pwhash_scryptsalsa208sha256","crypto_pwhash_scryptsalsa208sha256_ll","crypto_pwhash_scryptsalsa208sha256_str","crypto_pwhash_scryptsalsa208sha256_str_verify","crypto_pwhash_str","crypto_pwhash_str_needs_rehash","crypto_pwhash_str_verify","crypto_scalarmult","crypto_scalarmult_base","crypto_scalarmult_ed25519","crypto_scalarmult_ed25519_base","crypto_scalarmult_ed25519_base_noclamp","crypto_scalarmult_ed25519_noclamp","crypto_scalarmult_ristretto255","crypto_scalarmult_ristretto255_base","crypto_secretbox_detached","crypto_secretbox_easy","crypto_secretbox_keygen","crypto_secretbox_open_detached","crypto_secretbox_open_easy","crypto_secretstream_xchacha20poly1305_init_pull","crypto_secretstream_xchacha20poly1305_init_push","crypto_secretstream_xchacha20poly1305_keygen","crypto_secretstream_xchacha20poly1305_pull","crypto_secretstream_xchacha20poly1305_push","crypto_secretstream_xchacha20poly1305_rekey","crypto_shorthash","crypto_shorthash_keygen","crypto_shorthash_siphashx24","crypto_sign","crypto_sign_detached","crypto_sign_ed25519_pk_to_curve25519","crypto_sign_ed25519_sk_to_curve25519","crypto_sign_ed25519_sk_to_pk","crypto_sign_ed25519_sk_to_seed","crypto_sign_final_create","crypto_sign_final_verify","crypto_sign_init","crypto_sign_keypair","crypto_sign_open","crypto_sign_seed_keypair","crypto_sign_update","crypto_sign_verify_detached","crypto_stream_chacha20","crypto_stream_chacha20_ietf_xor","crypto_stream_chacha20_ietf_xor_ic","crypto_stream_chacha20_keygen","crypto_stream_chacha20_xor","crypto_stream_chacha20_xor_ic","crypto_stream_keygen","crypto_stream_xchacha20_keygen","crypto_stream_xchacha20_xor","crypto_stream_xchacha20_xor_ic","randombytes_buf","randombytes_buf_deterministic","randombytes_close","randombytes_random","randombytes_set_implementation","randombytes_stir","randombytes_uniform","sodium_version_string"],r=[I,C,E,w,B,_,S,k,O,Q,R,P,N,x,D,T,M,U,H,j,J,F,G,L,q,Y,V,W,K,Z,z,X,$,ee,te,ne,re,oe,ie,ae,se,ce,de,ue,le,Ae,fe,he,pe,ge,me,ve,ye,be,Ie,Ce,Ee,we,Be,_e,Se,ke,Oe,Qe,Re,Pe,Ne,xe,De,Te,Me,Ue,He,je,Je,Fe,Ge,Le,qe,Ye,Ve,We,Ke,Ze,ze,Xe,$e,et,tt,nt,rt,ot,it,at,st,ct,dt,ut,lt,At,ft,ht,pt,gt,mt,vt,yt,bt,It,Ct,Et,wt,Bt,_t,St,kt,Ot,Qt,Rt,Pt,Nt,xt,Dt,Tt,Mt,Ut,Ht,jt,Jt,Ft,Gt,Lt,qt,Yt,Vt,Wt,Kt,Zt,zt,Xt,$t,en,tn,nn,rn,on,an,sn,cn,dn,un,ln,An,fn],o=0;o=240?(u=4,c=!0):l>=224?(u=3,c=!0):l>=192?(u=2,c=!0):l<128&&(u=1,c=!0)}while(!c);for(var A=u-(s.length-d),f=0;f>8&-39)<<8|87+(t=e[i]>>>4)+(t-10>>8&-39),o+=String.fromCharCode(255&r)+String.fromCharCode(r>>>8);return o}var s={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function c(e){if(null==e)return s.URLSAFE_NO_PADDING;if(e!==s.ORIGINAL&&e!==s.ORIGINAL_NO_PADDING&&e!==s.URLSAFE&&e!=s.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function d(e,t){t=c(t),e=b(o,e,"input");var r,o=[],a=0|Math.floor(e.length/3),s=e.length-3*a,d=4*a+(0!==s?0==(2&t)?4:2+(s>>>1):0),u=new f(d+1),l=h(e);return o.push(l),o.push(u.address),0===n._sodium_bin2base64(u.address,u.length,l,e.length,t)&&m(o,"conversion failed"),u.length=d,r=i(u.to_Uint8Array()),g(o),r}function u(e,t){var n=t||"uint8array";if(!l(n))throw new Error(n+" output format is not available");if(e instanceof f){if("uint8array"===n)return e.to_Uint8Array();if("text"===n)return i(e.to_Uint8Array());if("hex"===n)return a(e.to_Uint8Array());if("base64"===n)return d(e.to_Uint8Array(),s.URLSAFE_NO_PADDING);throw new Error('What is output format "'+n+'"?')}if("object"==typeof e){for(var r=Object.keys(e),o={},c=0;c>>24>>>8,c,l);var C=u(m,a);return g(s),C}function We(e){var t=[];A(e);var r=new f(0|n._crypto_kdf_keybytes()),o=r.address;t.push(o),n._crypto_kdf_keygen(o);var i=u(r,e);return g(t),i}function Ke(e,t,r,o){var i=[];A(o),e=b(i,e,"clientPublicKey");var a,s=0|n._crypto_kx_publickeybytes();e.length!==s&&v(i,"invalid clientPublicKey length"),a=h(e),i.push(a),t=b(i,t,"clientSecretKey");var c,d=0|n._crypto_kx_secretkeybytes();t.length!==d&&v(i,"invalid clientSecretKey length"),c=h(t),i.push(c),r=b(i,r,"serverPublicKey");var l,p=0|n._crypto_kx_publickeybytes();r.length!==p&&v(i,"invalid serverPublicKey length"),l=h(r),i.push(l);var y=new f(0|n._crypto_kx_sessionkeybytes()),I=y.address;i.push(I);var C=new f(0|n._crypto_kx_sessionkeybytes()),E=C.address;if(i.push(E),0==(0|n._crypto_kx_client_session_keys(I,E,a,c,l))){var w=u({sharedRx:y,sharedTx:C},o);return g(i),w}m(i,"invalid usage")}function Ze(e){var t=[];A(e);var r=new f(0|n._crypto_kx_publickeybytes()),o=r.address;t.push(o);var i=new f(0|n._crypto_kx_secretkeybytes()),a=i.address;if(t.push(a),0==(0|n._crypto_kx_keypair(o,a))){var s={publicKey:u(r,e),privateKey:u(i,e),keyType:"x25519"};return g(t),s}m(t,"internal error")}function ze(e,t){var r=[];A(t),e=b(r,e,"seed");var o,i=0|n._crypto_kx_seedbytes();e.length!==i&&v(r,"invalid seed length"),o=h(e),r.push(o);var a=new f(0|n._crypto_kx_publickeybytes()),s=a.address;r.push(s);var c=new f(0|n._crypto_kx_secretkeybytes()),d=c.address;if(r.push(d),0==(0|n._crypto_kx_seed_keypair(s,d,o))){var l={publicKey:u(a,t),privateKey:u(c,t),keyType:"x25519"};return g(r),l}m(r,"internal error")}function Xe(e,t,r,o){var i=[];A(o),e=b(i,e,"serverPublicKey");var a,s=0|n._crypto_kx_publickeybytes();e.length!==s&&v(i,"invalid serverPublicKey length"),a=h(e),i.push(a),t=b(i,t,"serverSecretKey");var c,d=0|n._crypto_kx_secretkeybytes();t.length!==d&&v(i,"invalid serverSecretKey length"),c=h(t),i.push(c),r=b(i,r,"clientPublicKey");var l,p=0|n._crypto_kx_publickeybytes();r.length!==p&&v(i,"invalid clientPublicKey length"),l=h(r),i.push(l);var y=new f(0|n._crypto_kx_sessionkeybytes()),I=y.address;i.push(I);var C=new f(0|n._crypto_kx_sessionkeybytes()),E=C.address;if(i.push(E),0==(0|n._crypto_kx_server_session_keys(I,E,a,c,l))){var w=u({sharedRx:y,sharedTx:C},o);return g(i),w}m(i,"invalid usage")}function $e(e,t,r){var o=[];A(r);var i=h(e=b(o,e,"message")),a=e.length;o.push(i),t=b(o,t,"key");var s,c=0|n._crypto_onetimeauth_keybytes();t.length!==c&&v(o,"invalid key length"),s=h(t),o.push(s);var d=new f(0|n._crypto_onetimeauth_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_onetimeauth(l,i,a,0,s))){var p=u(d,r);return g(o),p}m(o,"invalid usage")}function et(e,t){var r=[];A(t),y(r,e,"state_address");var o=new f(0|n._crypto_onetimeauth_bytes()),i=o.address;if(r.push(i),0==(0|n._crypto_onetimeauth_final(e,i))){var a=(n._free(e),u(o,t));return g(r),a}m(r,"invalid usage")}function tt(e,t){var r=[];A(t);var o=null;null!=e&&(o=h(e=b(r,e,"key")),e.length,r.push(o));var i=new f(144).address;if(0==(0|n._crypto_onetimeauth_init(i,o))){var a=i;return g(r),a}m(r,"invalid usage")}function nt(e){var t=[];A(e);var r=new f(0|n._crypto_onetimeauth_keybytes()),o=r.address;t.push(o),n._crypto_onetimeauth_keygen(o);var i=u(r,e);return g(t),i}function rt(e,t,r){var o=[];A(r),y(o,e,"state_address");var i=h(t=b(o,t,"message_chunk")),a=t.length;o.push(i),0!=(0|n._crypto_onetimeauth_update(e,i,a))&&m(o,"invalid usage"),g(o)}function ot(e,t,r){var o=[];e=b(o,e,"hash");var i,a=0|n._crypto_onetimeauth_bytes();e.length!==a&&v(o,"invalid hash length"),i=h(e),o.push(i);var s=h(t=b(o,t,"message")),c=t.length;o.push(s),r=b(o,r,"key");var d,u=0|n._crypto_onetimeauth_keybytes();r.length!==u&&v(o,"invalid key length"),d=h(r),o.push(d);var l=0==(0|n._crypto_onetimeauth_verify(i,s,c,0,d));return g(o),l}function it(e,t,r,o,i,a,s){var c=[];A(s),y(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&v(c,"keyLength must be an unsigned integer");var d=h(t=b(c,t,"password")),l=t.length;c.push(d),r=b(c,r,"salt");var p,I=0|n._crypto_pwhash_saltbytes();r.length!==I&&v(c,"invalid salt length"),p=h(r),c.push(p),y(c,o,"opsLimit"),("number"!=typeof o||(0|o)!==o||o<0)&&v(c,"opsLimit must be an unsigned integer"),y(c,i,"memLimit"),("number"!=typeof i||(0|i)!==i||i<0)&&v(c,"memLimit must be an unsigned integer"),y(c,a,"algorithm"),("number"!=typeof a||(0|a)!==a||a<0)&&v(c,"algorithm must be an unsigned integer");var C=new f(0|e),E=C.address;if(c.push(E),0==(0|n._crypto_pwhash(E,e,0,d,l,0,p,o,0,i,a))){var w=u(C,s);return g(c),w}m(c,"invalid usage")}function at(e,t,r,o,i,a){var s=[];A(a),y(s,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&v(s,"keyLength must be an unsigned integer");var c=h(t=b(s,t,"password")),d=t.length;s.push(c),r=b(s,r,"salt");var l,p=0|n._crypto_pwhash_scryptsalsa208sha256_saltbytes();r.length!==p&&v(s,"invalid salt length"),l=h(r),s.push(l),y(s,o,"opsLimit"),("number"!=typeof o||(0|o)!==o||o<0)&&v(s,"opsLimit must be an unsigned integer"),y(s,i,"memLimit"),("number"!=typeof i||(0|i)!==i||i<0)&&v(s,"memLimit must be an unsigned integer");var I=new f(0|e),C=I.address;if(s.push(C),0==(0|n._crypto_pwhash_scryptsalsa208sha256(C,e,0,c,d,0,l,o,0,i))){var E=u(I,a);return g(s),E}m(s,"invalid usage")}function st(e,t,r,o,i,a,s){var c=[];A(s);var d=h(e=b(c,e,"password")),l=e.length;c.push(d);var p=h(t=b(c,t,"salt")),I=t.length;c.push(p),y(c,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&v(c,"opsLimit must be an unsigned integer"),y(c,o,"r"),("number"!=typeof o||(0|o)!==o||o<0)&&v(c,"r must be an unsigned integer"),y(c,i,"p"),("number"!=typeof i||(0|i)!==i||i<0)&&v(c,"p must be an unsigned integer"),y(c,a,"keyLength"),("number"!=typeof a||(0|a)!==a||a<0)&&v(c,"keyLength must be an unsigned integer");var C=new f(0|a),E=C.address;if(c.push(E),0==(0|n._crypto_pwhash_scryptsalsa208sha256_ll(d,l,p,I,r,0,o,i,E,a))){var w=u(C,s);return g(c),w}m(c,"invalid usage")}function ct(e,t,r,o){var i=[];A(o);var a=h(e=b(i,e,"password")),s=e.length;i.push(a),y(i,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&v(i,"opsLimit must be an unsigned integer"),y(i,r,"memLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&v(i,"memLimit must be an unsigned integer");var c=new f(0|n._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(i.push(c),0==(0|n._crypto_pwhash_scryptsalsa208sha256_str(c,a,s,0,t,0,r))){var d=n.UTF8ToString(c);return g(i),d}m(i,"invalid usage")}function dt(e,t,r){var i=[];A(r),"string"!=typeof e&&v(i,"hashed_password must be a string"),e=o(e+"\0"),null!=s&&e.length-1!==s&&v(i,"invalid hashed_password length");var a=h(e),s=e.length-1;i.push(a);var c=h(t=b(i,t,"password")),d=t.length;i.push(c);var u=0==(0|n._crypto_pwhash_scryptsalsa208sha256_str_verify(a,c,d,0));return g(i),u}function ut(e,t,r,o){var i=[];A(o);var a=h(e=b(i,e,"password")),s=e.length;i.push(a),y(i,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&v(i,"opsLimit must be an unsigned integer"),y(i,r,"memLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&v(i,"memLimit must be an unsigned integer");var c=new f(0|n._crypto_pwhash_strbytes()).address;if(i.push(c),0==(0|n._crypto_pwhash_str(c,a,s,0,t,0,r))){var d=n.UTF8ToString(c);return g(i),d}m(i,"invalid usage")}function lt(e,t,r,i){var a=[];A(i),"string"!=typeof e&&v(a,"hashed_password must be a string"),e=o(e+"\0"),null!=c&&e.length-1!==c&&v(a,"invalid hashed_password length");var s=h(e),c=e.length-1;a.push(s),y(a,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&v(a,"opsLimit must be an unsigned integer"),y(a,r,"memLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&v(a,"memLimit must be an unsigned integer");var d=0!=(0|n._crypto_pwhash_str_needs_rehash(s,t,0,r));return g(a),d}function At(e,t,r){var i=[];A(r),"string"!=typeof e&&v(i,"hashed_password must be a string"),e=o(e+"\0"),null!=s&&e.length-1!==s&&v(i,"invalid hashed_password length");var a=h(e),s=e.length-1;i.push(a);var c=h(t=b(i,t,"password")),d=t.length;i.push(c);var u=0==(0|n._crypto_pwhash_str_verify(a,c,d,0));return g(i),u}function ft(e,t,r){var o=[];A(r),e=b(o,e,"privateKey");var i,a=0|n._crypto_scalarmult_scalarbytes();e.length!==a&&v(o,"invalid privateKey length"),i=h(e),o.push(i),t=b(o,t,"publicKey");var s,c=0|n._crypto_scalarmult_bytes();t.length!==c&&v(o,"invalid publicKey length"),s=h(t),o.push(s);var d=new f(0|n._crypto_scalarmult_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_scalarmult(l,i,s))){var p=u(d,r);return g(o),p}m(o,"weak public key")}function ht(e,t){var r=[];A(t),e=b(r,e,"privateKey");var o,i=0|n._crypto_scalarmult_scalarbytes();e.length!==i&&v(r,"invalid privateKey length"),o=h(e),r.push(o);var a=new f(0|n._crypto_scalarmult_bytes()),s=a.address;if(r.push(s),0==(0|n._crypto_scalarmult_base(s,o))){var c=u(a,t);return g(r),c}m(r,"unknown error")}function pt(e,t,r){var o=[];A(r),e=b(o,e,"n");var i,a=0|n._crypto_scalarmult_ed25519_scalarbytes();e.length!==a&&v(o,"invalid n length"),i=h(e),o.push(i),t=b(o,t,"p");var s,c=0|n._crypto_scalarmult_ed25519_bytes();t.length!==c&&v(o,"invalid p length"),s=h(t),o.push(s);var d=new f(0|n._crypto_scalarmult_ed25519_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_scalarmult_ed25519(l,i,s))){var p=u(d,r);return g(o),p}m(o,"invalid point or scalar is 0")}function gt(e,t){var r=[];A(t),e=b(r,e,"scalar");var o,i=0|n._crypto_scalarmult_ed25519_scalarbytes();e.length!==i&&v(r,"invalid scalar length"),o=h(e),r.push(o);var a=new f(0|n._crypto_scalarmult_ed25519_bytes()),s=a.address;if(r.push(s),0==(0|n._crypto_scalarmult_ed25519_base(s,o))){var c=u(a,t);return g(r),c}m(r,"scalar is 0")}function mt(e,t){var r=[];A(t),e=b(r,e,"scalar");var o,i=0|n._crypto_scalarmult_ed25519_scalarbytes();e.length!==i&&v(r,"invalid scalar length"),o=h(e),r.push(o);var a=new f(0|n._crypto_scalarmult_ed25519_bytes()),s=a.address;if(r.push(s),0==(0|n._crypto_scalarmult_ed25519_base_noclamp(s,o))){var c=u(a,t);return g(r),c}m(r,"scalar is 0")}function vt(e,t,r){var o=[];A(r),e=b(o,e,"n");var i,a=0|n._crypto_scalarmult_ed25519_scalarbytes();e.length!==a&&v(o,"invalid n length"),i=h(e),o.push(i),t=b(o,t,"p");var s,c=0|n._crypto_scalarmult_ed25519_bytes();t.length!==c&&v(o,"invalid p length"),s=h(t),o.push(s);var d=new f(0|n._crypto_scalarmult_ed25519_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_scalarmult_ed25519_noclamp(l,i,s))){var p=u(d,r);return g(o),p}m(o,"invalid point or scalar is 0")}function yt(e,t,r){var o=[];A(r),e=b(o,e,"scalar");var i,a=0|n._crypto_scalarmult_ristretto255_scalarbytes();e.length!==a&&v(o,"invalid scalar length"),i=h(e),o.push(i),t=b(o,t,"element");var s,c=0|n._crypto_scalarmult_ristretto255_bytes();t.length!==c&&v(o,"invalid element length"),s=h(t),o.push(s);var d=new f(0|n._crypto_scalarmult_ristretto255_bytes()),l=d.address;if(o.push(l),0==(0|n._crypto_scalarmult_ristretto255(l,i,s))){var p=u(d,r);return g(o),p}m(o,"result is identity element")}function bt(e,t){var r=[];A(t),e=b(r,e,"scalar");var o,i=0|n._crypto_core_ristretto255_scalarbytes();e.length!==i&&v(r,"invalid scalar length"),o=h(e),r.push(o);var a=new f(0|n._crypto_core_ristretto255_bytes()),s=a.address;if(r.push(s),0==(0|n._crypto_scalarmult_ristretto255_base(s,o))){var c=u(a,t);return g(r),c}m(r,"scalar is 0")}function It(e,t,r,o){var i=[];A(o);var a=h(e=b(i,e,"message")),s=e.length;i.push(a),t=b(i,t,"nonce");var c,d=0|n._crypto_secretbox_noncebytes();t.length!==d&&v(i,"invalid nonce length"),c=h(t),i.push(c),r=b(i,r,"key");var l,p=0|n._crypto_secretbox_keybytes();r.length!==p&&v(i,"invalid key length"),l=h(r),i.push(l);var y=new f(0|s),I=y.address;i.push(I);var C=new f(0|n._crypto_secretbox_macbytes()),E=C.address;if(i.push(E),0==(0|n._crypto_secretbox_detached(I,E,a,s,0,c,l))){var w=u({mac:C,cipher:y},o);return g(i),w}m(i,"invalid usage")}function Ct(e,t,r,o){var i=[];A(o);var a=h(e=b(i,e,"message")),s=e.length;i.push(a),t=b(i,t,"nonce");var c,d=0|n._crypto_secretbox_noncebytes();t.length!==d&&v(i,"invalid nonce length"),c=h(t),i.push(c),r=b(i,r,"key");var l,p=0|n._crypto_secretbox_keybytes();r.length!==p&&v(i,"invalid key length"),l=h(r),i.push(l);var y=new f(s+n._crypto_secretbox_macbytes()|0),I=y.address;if(i.push(I),0==(0|n._crypto_secretbox_easy(I,a,s,0,c,l))){var C=u(y,o);return g(i),C}m(i,"invalid usage")}function Et(e){var t=[];A(e);var r=new f(0|n._crypto_secretbox_keybytes()),o=r.address;t.push(o),n._crypto_secretbox_keygen(o);var i=u(r,e);return g(t),i}function wt(e,t,r,o,i){var a=[];A(i);var s=h(e=b(a,e,"ciphertext")),c=e.length;a.push(s),t=b(a,t,"mac");var d,l=0|n._crypto_secretbox_macbytes();t.length!==l&&v(a,"invalid mac length"),d=h(t),a.push(d),r=b(a,r,"nonce");var p,y=0|n._crypto_secretbox_noncebytes();r.length!==y&&v(a,"invalid nonce length"),p=h(r),a.push(p),o=b(a,o,"key");var I,C=0|n._crypto_secretbox_keybytes();o.length!==C&&v(a,"invalid key length"),I=h(o),a.push(I);var E=new f(0|c),w=E.address;if(a.push(w),0==(0|n._crypto_secretbox_open_detached(w,s,d,c,0,p,I))){var B=u(E,i);return g(a),B}m(a,"wrong secret key for the given ciphertext")}function Bt(e,t,r,o){var i=[];A(o),e=b(i,e,"ciphertext");var a,s=n._crypto_secretbox_macbytes(),c=e.length;c>>0;return g([]),t}function un(e,t){var r=[];A(t);for(var o=n._malloc(24),i=0;i<6;i++)n.setValue(o+4*i,n.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][i]]),"i32");0!=(0|n._randombytes_set_implementation(o))&&m(r,"unsupported implementation"),g(r)}function ln(e){A(e),n._randombytes_stir()}function An(e,t){var r=[];A(t),y(r,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&v(r,"upper_bound must be an unsigned integer");var o=n._randombytes_uniform(e)>>>0;return g(r),o}function fn(){var e=n._sodium_version_string(),t=n.UTF8ToString(e);return g([]),t}return f.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(n.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,t){if(!(e instanceof Uint8Array&&t instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can added");var n=e.length,r=0,o=0;if(t.length!=e.length)throw new TypeError("Arguments must have the same length");for(o=0;o>=8,r+=e[o]+t[o],e[o]=255&r},e.base64_variants=s,e.compare=function(e,t){if(!(e instanceof Uint8Array&&t instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==t.length)throw new TypeError("Only instances of identical length can be compared");for(var n=0,r=1,o=e.length;o-- >0;)n|=t[o]-e[o]>>8&r,r&=(t[o]^e[o])-1>>8;return n+n+r-1},e.from_base64=function(e,t){t=c(t);var r,o=[],i=new f(3*(e=b(o,e,"input")).length/4),a=h(e),s=p(4),d=p(4);return o.push(a),o.push(i.address),o.push(i.result_bin_len_p),o.push(i.b64_end_p),0!==n._sodium_base642bin(i.address,i.length,a,e.length,0,s,d,t)&&m(o,"invalid input"),n.getValue(d,"i32")-a!==e.length&&m(o,"incomplete input"),i.length=n.getValue(s,"i32"),r=i.to_Uint8Array(),g(o),r},e.from_hex=function(e){var t,r=[],o=new f((e=b(r,e,"input")).length/2),i=h(e),a=p(4);return r.push(i),r.push(o.address),r.push(o.hex_end_p),0!==n._sodium_hex2bin(o.address,o.length,i,e.length,0,0,a)&&m(r,"invalid input"),n.getValue(a,"i32")-i!==e.length&&m(r,"incomplete input"),t=o.to_Uint8Array(),g(r),t},e.from_string=o,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var t=256,n=0,r=e.length;n>=8,t+=e[n],e[n]=255&t},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var t=0,n=0,r=e.length;n 0");var r,o=[],i=p(4),a=1,s=0,c=0|e.length,d=new f(c+t);o.push(i),o.push(d.address);for(var u=d.address,l=d.address+c+t;u>>48|c>>>32|c>>>16|c))-1>>16);return 0!==n._sodium_pad(i,d.address,e.length,t,d.length)&&m(o,"internal error"),d.length=n.getValue(i,"i32"),r=d.to_Uint8Array(),g(o),r},e.unpad=function(e,t){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((t|=0)<=0)throw new Error("block size must be > 0");var r=[],o=h(e),i=p(4);return r.push(o),r.push(i),0!==n._sodium_unpad(i,o,e.length,t)&&m(r,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,n.getValue(i,"i32")),g(r),e},e.ready=r,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=d,e.to_hex=a,e.to_string=i,e},void 0!==(i=r.apply(t,o))&&(e.exports=i),s&&a.sodium.ready.then((function(){s(a.sodium)}))},4608:function(e,t,n){var r,o;r=function(t){"use strict";var r;void 0===(r=t)&&(r={});var o=r;"object"!=typeof o.sodium&&("object"==typeof global?o=global:"object"==typeof window&&(o=window)),"object"==typeof o.sodium&&"number"==typeof o.sodium.totalMemory&&(r.TOTAL_MEMORY=o.sodium.totalMemory);var i=r;return r.ready=new Promise((function(t,r){(a=i).onAbort=r,a.print=function(e){},a.printErr=function(e){},a.onRuntimeInitialized=function(){try{a._crypto_secretbox_keybytes(),t()}catch(e){r(e)}},a.useBackupModule=function(){return new Promise((function(t,r){(a={}).onAbort=r,a.onRuntimeInitialized=function(){Object.keys(i).forEach((function(e){"getRandomValue"!==e&&delete i[e]})),Object.keys(a).forEach((function(e){i[e]=a[e]})),t()};var o,a=void 0!==a?a:{},s={};for(o in a)a.hasOwnProperty(o)&&(s[o]=a[o]);var c=[],d=!1,u=!1,l=!1,A=!1;d="object"==typeof window,u="function"==typeof importScripts,l="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,A=!d&&!l&&!u;var f,h,p,g,m,v="";function y(e){return a.locateFile?a.locateFile(e,v):v+e}l?(v=u?n(1017).dirname(v)+"/":__dirname+"/",f=function(e,t){var r=Pe(e);return r?t?r:r.toString():(g||(g=n(7147)),m||(m=n(1017)),e=m.normalize(e),g.readFileSync(e,t?null:"utf8"))},p=function(e){var t=f(e,!0);return t.buffer||(t=new Uint8Array(t)),S(t.buffer),t},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),c=process.argv.slice(2),e.exports=a,a.inspect=function(){return"[Emscripten Module object]"}):A?("undefined"!=typeof read&&(f=function(e){var t=Pe(e);return t?Oe(t):read(e)}),p=function(e){var t;return(t=Pe(e))?t:"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(S("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?c=scriptArgs:void 0!==arguments&&(c=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(d||u)&&(u?v=self.location.href:"undefined"!=typeof document&&document.currentScript&&(v=document.currentScript.src),v=0!==v.indexOf("blob:")?v.substr(0,v.lastIndexOf("/")+1):"",f=function(e){try{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText}catch(t){var n=Pe(e);if(n)return Oe(n);throw t}},u&&(p=function(e){try{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}catch(t){var n=Pe(e);if(n)return n;throw t}}),h=function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)t(r.response);else{var o=Pe(e);o?t(o.buffer):n()}},r.onerror=n,r.send(null)}),a.print;var b,I=a.printErr||void 0;for(o in s)s.hasOwnProperty(o)&&(a[o]=s[o]);s=null,a.arguments&&(c=a.arguments),a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(b=a.wasmBinary),a.noExitRuntime&&a.noExitRuntime;var C,E={Memory:function(e){this.buffer=new ArrayBuffer(65536*e.initial)},Module:function(e){},Instance:function(e,t){this.exports=function(e){for(var t,n=new Uint8Array(123),r=25;r>=0;--r)n[48+r]=52+r,n[65+r]=r,n[97+r]=26+r;function o(e,t,r){for(var o,i,a=0,s=t,c=r.length,d=t+(3*c>>2)-("="==r[c-2])-("="==r[c-1]);a>4,s>2),s>2]=c[0|G]|c[G+1|0]<<8|c[G+2|0]<<16|c[G+3|0]<<24,s[Y+4>>2]=oe,16!=(0|(Z=Z+1|0)););for(n=q(V,e,64),G=s[(t=n)>>2],Z=s[t+4>>2],d=G,G=(oe=s[t+32>>2])+(V=s[t+128>>2])|0,t=($=s[t+36>>2])+s[t+132>>2]|0,t=G>>>0>>0?t+1|0:t,V=G,t=t+Z|0,V=t=(G=d+G|0)>>>0>>0?t+1|0:t,J=Cn((Z=G)^(c[0|(G=e- -64|0)]|c[G+1|0]<<8|c[G+2|0]<<16|c[G+3|0]<<24)^-1377402159,t^(c[G+4|0]|c[G+5|0]<<8|c[G+6|0]<<16|c[G+7|0]<<24)^1359893119,32),G=t=C,t=t+1779033703|0,d=oe^(Y=J-205731576|0),oe=t=Y>>>0<4089235720?t+1|0:t,Q=Cn(d,$^t,24),R=t=C,K=G,d=J,t=t+V|0,t=(t=(J=Q+Z|0)>>>0>>0?t+1|0:t)+(f=r=s[n+140>>2])|0,d=Cn(d^(l=Z=(G=s[n+136>>2])+J|0),(B=J>>>0>l>>>0?t+1|0:t)^K,16),t=oe+(M=C)|0,f=Cn((E=Z=Y+d|0)^Q,(V=Y>>>0>E>>>0?t+1|0:t)^R,63),h=C,Y=s[n+12>>2],Z=(Q=s[n+144>>2])+($=oe=s[n+40>>2])|0,t=(W=s[n+148>>2])+(K=s[n+44>>2])|0,t=Z>>>0<$>>>0?t+1|0:t,$=Z,t=t+Y|0,t=(Z=Z+s[n+8>>2]|0)>>>0<$>>>0?t+1|0:t,J=Cn(Z^(c[e+72|0]|c[e+73|0]<<8|c[e+74|0]<<16|c[e+75|0]<<24)^725511199,(c[e+76|0]|c[e+77|0]<<8|c[e+78|0]<<16|c[e+79|0]<<24)^t^-1694144372,32),K=Cn(u=(Y=J-2067093701|0)^oe,K^(R=(oe=C)-((J>>>0<2067093701)+1150833018|0)|0),24),p=s[n+156>>2],u=K,t=t+($=C)|0,t=(t=(K=K+Z|0)>>>0>>0?t+1|0:t)+p|0,Ae=Cn((I=Z=K+s[n+152>>2]|0)^J,(_=K>>>0>I>>>0?t+1|0:t)^oe,16),t=R+(k=C)|0,pe=Z=Y+Ae|0,J=Cn(u^Z,(Y=Y>>>0>Z>>>0?t+1|0:t)^$,63),R=C,oe=s[n+20>>2],Z=(N=s[n+160>>2])+(K=s[n+48>>2])|0,t=(se=s[n+164>>2])+(g=s[n+52>>2])|0,$=Z,t=(t=Z>>>0>>0?t+1|0:t)+oe|0,ue=Z=Z+s[n+16>>2]|0,Z=Z>>>0<$>>>0?t+1|0:t,m=Cn(ue^(c[e+80|0]|c[e+81|0]<<8|c[e+82|0]<<16|c[e+83|0]<<24)^-79577749,Z^(c[e+84|0]|c[e+85|0]<<8|c[e+86|0]<<16|c[e+87|0]<<24)^528734635,32),oe=t=C,t=t+1013904242|0,u=K^($=m-23791573|0),K=t=$>>>0<4271175723?t+1|0:t,t=Cn(u,g^t,24),p=oe,o=s[n+172>>2],u=t,A=m,m=t,ue=t+ue|0,t=(g=C)+Z|0,t=(t=m>>>0>ue>>>0?t+1|0:t)+(j=o)|0,ee=Cn(A^(w=Z=(oe=s[n+168>>2])+(m=ue)|0),(j=m>>>0>w>>>0?t+1|0:t)^p,16),t=K+(T=C)|0,g=Cn(u^(S=Z=$+ee|0),(K=S>>>0<$>>>0?t+1|0:t)^g,63),p=C,m=s[n+28>>2],$=(Z=s[n+176>>2])+(b=ue=s[n+56>>2])|0,t=(ge=s[n+180>>2])+(v=s[n+60>>2])|0,t=(t=b>>>0>$>>>0?t+1|0:t)+m|0,t=(b=$)>>>0>(P=$=b+s[n+24>>2]|0)>>>0?t+1|0:t,x=Cn(P^(c[e+88|0]|c[e+89|0]<<8|c[e+90|0]<<16|c[e+91|0]<<24)^327033209,t^(c[e+92|0]|c[e+93|0]<<8|c[e+94|0]<<16|c[e+95|0]<<24)^1541459225,32),m=Cn(A=(u=(m=x)+1595750129|0)^ue,v^(ue=($=C)-((m>>>0<2699217167)+1521486533|0)|0),24),v=ue,O=$,ue=s[n+188>>2],A=m,U=u,t=(b=C)+t|0,t=(t=(P=m+P|0)>>>0>>0?t+1|0:t)+(D=ue)|0,z=m=($=s[n+184>>2])+P|0,u=Cn(m^x,(u=O)^(O=m>>>0

>>0?t+1|0:t),16),t=(t=v)+(v=C)|0,P=m=U+u|0,x=b,b=t=m>>>0>>0?t+1|0:t,A=Cn(A^m,x^t,63),m=C,x=R,U=J,F=S,t=R+B|0,R=l=l+J|0,t=(t=l>>>0>>0?t+1|0:t)+(D=L=s[n+196>>2])|0,S=Cn((l=J=(te=s[n+192>>2])+l|0)^u,(J=R>>>0>l>>>0?t+1|0:t)^v,32),t=(t=K)+(K=C)|0,B=t=(R=F+(B=S)|0)>>>0>>0?t+1|0:t,t=Cn(U^R,t^x,24),he=s[n+204>>2],U=t,u=S,v=l,l=t,S=v+t|0,t=(v=C)+J|0,t=(t=l>>>0>S>>>0?t+1|0:t)+(D=he)|0,ie=J=(x=s[n+200>>2])+(l=S)|0,fe=Cn(u^J,(l=l>>>0>J>>>0?t+1|0:t)^K,16),t=B+(S=C)|0,D=Cn(U^(u=K=R+fe|0),(B=v)^(v=R>>>0>u>>>0?t+1|0:t),63),B=C,K=p,F=g,t=p+_|0,t=(t=(R=g+I|0)>>>0>>0?t+1|0:t)+(U=le=s[n+212>>2])|0,I=Cn((H=d)^(d=R=(J=s[n+208>>2])+(g=R)|0),(g=g>>>0>d>>>0?t+1|0:t)^M,32),t=b+(R=C)|0,K=Cn(F^(p=P+I|0),(t=p>>>0

>>0?t+1|0:t)^K,24),M=t,_=R,X=s[n+220>>2],F=K,H=p,t=(p=C)+g|0,t=(t=(b=d+K|0)>>>0>>0?t+1|0:t)+(U=X)|0,_=Cn((b=K=(R=s[n+216>>2])+(g=b)|0)^I,(P=g>>>0>b>>>0?t+1|0:t)^_,16),t=(d=C)+M|0,de=K=H+(g=_)|0,U=Cn(F^K,(g=g>>>0>K>>>0?t+1|0:t)^p,63),p=C,M=m,F=A,t=m+j|0,t=(t=(A=A+w|0)>>>0>>0?t+1|0:t)+(I=a=s[n+228>>2])|0,A=Cn((j=m=(K=s[n+224>>2])+A|0)^Ae,(m=m>>>0>>0?t+1|0:t)^k,32),t=(k=C)+V|0,E=w=E+A|0,V=Cn(F^w,(t=w>>>0>>0?t+1|0:t)^M,24),w=t,F=s[n+236>>2],I=V,t=(M=C)+m|0,t=(t=(j=j+V|0)>>>0>>0?t+1|0:t)+F|0,ce=Cn((j=V=(re=s[n+232>>2])+(m=j)|0)^A,(V=k)^(k=m>>>0>j>>>0?t+1|0:t),16),t=(t=w)+(w=C)|0,m=Cn(I^(A=V=(m=ce)+E|0),(E=m>>>0>A>>>0?t+1|0:t)^M,63),M=C,I=h,ne=f,ae=pe,t=h+O|0,t=(t=(pe=f+z|0)>>>0>>0?t+1|0:t)+(H=Ae=s[n+244>>2])|0,h=t=(f=(V=s[n+240>>2])+(h=pe)|0)>>>0>>0?t+1|0:t,ee=Cn(f^ee,t^T,32),t=(t=Y)+(Y=C)|0,z=T=ae+(O=ee)|0,I=Cn(ne^T,(t=O>>>0>T>>>0?t+1|0:t)^I,24),ne=ae=C,T=t,O=Y,me=I,t=h+ae|0,t=(t=(I=f+I|0)>>>0>>0?t+1|0:t)+(pe=s[n+252>>2])|0,I=f=(Y=s[n+248>>2])+(h=I)|0,H=Cn(f^ee,(H=O)^(O=f>>>0>>0?t+1|0:t),16),t=(t=T)+(T=C)|0,ee=Cn(me^(ae=f=(h=H)+z|0),(f=f>>>0>>0?t+1|0:t)^ne,63),ne=t=C,h=t,me=_,t=l+Ae|0,t=(t=(_=V)>>>0>(z=_+ie|0)>>>0?t+1|0:t)+h|0,z=Cn(me^(h=_=(l=z)+ee|0),(_=l>>>0>h>>>0?t+1|0:t)^d,32),t=E+(l=C)|0,A=t=(d=A+z|0)>>>0>>0?t+1|0:t,ie=ee=Cn(ee^d,ne^t,24),ne=t=C,E=t,ve=ee,t=_+le|0,t=(t=(ee=h+J|0)>>>0>>0?t+1|0:t)+E|0,ie=h=ie+(_=ee)|0,me=Cn(h^z,(E=l)^(l=h>>>0<_>>>0?t+1|0:t),16),t=A+(E=C)|0,A=t=(h=d+me|0)>>>0>>0?t+1|0:t,ee=Cn(ve^(d=h),t^ne,63),_=C,z=D,t=se+(h=B)|0,t=(t=(D=N+D|0)>>>0>>0?t+1|0:t)+P|0,N=t=(B=b+D|0)>>>0>>0?t+1|0:t,P=Cn(B^ce,t^w,32),t=(t=f)+(f=C)|0,t=(w=(b=P)+ae|0)>>>0>>0?t+1|0:t,b=h,h=t,D=Cn(z^w,b^t,24),se=t=C,b=t,z=P,t=N+L|0,t=(t=(P=B+te|0)>>>0>>0?t+1|0:t)+b|0,t=(B=(N=P)+D|0)>>>0>>0?t+1|0:t,N=B,b=t,ce=Cn(z^B,t^f,16),t=h+(P=C)|0,ae=f=w+ce|0,D=Cn(f^D,(h=f>>>0>>0?t+1|0:t)^se,63),f=C,B=p,t=p+he|0,t=(t=(w=x+U|0)>>>0>>0?t+1|0:t)+k|0,T=Cn((x=p=w+j|0)^H,(p=p>>>0>>0?t+1|0:t)^T,32),t=v+(k=C)|0,t=u>>>0>(w=u+T|0)>>>0?t+1|0:t,u=B,B=t,u=v=Cn(w^U,u^t,24),U=t=C,j=t,z=T,t=p+pe|0,t=(t=(v=(T=Y)+x|0)>>>0>>0?t+1|0:t)+j|0,H=p=u+v|0,ne=Cn(z^p,(T=k)^(k=p>>>0>>0?t+1|0:t),16),t=B+(j=C)|0,U=Cn((x=p=w+ne|0)^u,(p=p>>>0>>0?t+1|0:t)^U,63),B=C,u=m,t=(w=M)+F|0,t=(t=(T=m+re|0)>>>0>>0?t+1|0:t)+O|0,v=Cn((T=m=I+T|0)^fe,(m=m>>>0>>0?t+1|0:t)^S,32),t=(t=g)+(g=C)|0,S=Cn(u^(O=M=v+de|0),(t=M>>>0>>0?t+1|0:t)^w,24),I=M=C,w=t,z=O,O=v,v=(t=T)+(T=Z)|0,t=m+ge|0,t=(t=v>>>0>>0?t+1|0:t)+M|0,T=m=v+(u=S)|0,v=t=m>>>0>>0?t+1|0:t,O=Cn(O^m,t^g,16),t=(M=C)+w|0,z=Cn(S^(u=g=z+(m=O)|0),(m=u>>>0>>0?t+1|0:t)^I,63),g=C,w=f,S=x,I=O,t=l+r|0,t=(t=(O=G)>>>0>(x=O+ie|0)>>>0?t+1|0:t)+f|0,x=Cn(I^(f=O=x+D|0),(l=M)^(M=f>>>0>>0?t+1|0:t),32),t=(t=p)+(p=C)|0,t=(l=x)>>>0>(O=S+l|0)>>>0?t+1|0:t,I=S=Cn((l=O)^D,t^w,24),D=w=C,O=t,ie=x,t=M+a|0,t=(t=(x=f+K|0)>>>0>>0?t+1|0:t)+w|0,w=f=(M=x)+S|0,fe=Cn(ie^f,(x=f>>>0>>0?t+1|0:t)^p,16),t=(t=O)+(O=C)|0,l=f=(p=fe)+l|0,se=Cn(f^I,(S=f>>>0

>>0?t+1|0:t)^D,63),p=C,D=u,t=b+(f=B)|0,t=(t=(M=N+U|0)>>>0>>0?t+1|0:t)+(I=de=s[n+132>>2])|0,M=t=(B=(u=s[n+128>>2])+M|0)>>>0>>0?t+1|0:t,b=Cn(B^me,t^E,32),t=(t=m)+(m=C)|0,E=N=D+b|0,D=I=Cn(N^U,(t=N>>>0>>0?t+1|0:t)^f,24),U=f=C,N=t,ie=b,t=M+W|0,M=b=Q+B|0,t=(t=b>>>0>>0?t+1|0:t)+f|0,f=Cn(ie^(b=B=b+I|0),(f=m)^(m=b>>>0>>0?t+1|0:t),16),t=(t=N)+(N=C)|0,E=B=f+E|0,he=Cn(B^D,(I=B>>>0>>0?t+1|0:t)^U,63),B=C,M=g,t=k+X|0,t=(t=(U=R+H|0)>>>0>>0?t+1|0:t)+g|0,t=(k=(D=U)+z|0)>>>0>>0?t+1|0:t,D=k,g=t,U=Cn(k^ce,t^P,32),t=A+(k=C)|0,t=d>>>0>(P=d+U|0)>>>0?t+1|0:t,z=A=Cn((d=P)^z,t^M,24),ie=M=C,P=t,H=d,t=g+ue|0,t=(d=$)>>>0>(A=d+D|0)>>>0?t+1|0:t,d=A,t=t+M|0,A=k,k=t=d>>>0>(g=z+d|0)>>>0?t+1|0:t,ce=Cn((d=g)^U,A^t,16),t=(g=C)+P|0,z=Cn((P=M=H+(A=ce)|0)^z,(t=A>>>0>P>>>0?t+1|0:t)^ie,63),M=C,D=t,U=f,H=ee,t=o+(A=_)|0,t=(t=(f=oe)>>>0>(ee=f+ee|0)>>>0?t+1|0:t)+v|0,_=f=T+ee|0,v=Cn(f^ne,(v=j)^(j=f>>>0>>0?t+1|0:t),32),t=(f=C)+h|0,ie=T=v+ae|0,A=Cn(H^T,(t=T>>>0>>0?t+1|0:t)^A,24),ne=ae=C,h=t,T=f,ae=A,H=v,t=j+ne|0,t=(t=(v=A+_|0)>>>0<_>>>0?t+1|0:t)+(ee=s[n+156>>2])|0,j=_=(f=s[n+152>>2])+v|0,A=T,T=t=_>>>0>>0?t+1|0:t,H=Cn(H^_,A^t,16),t=(t=h)+(h=C)|0,A=t=(v=H)>>>0>(_=v+ie|0)>>>0?t+1|0:t,ie=Cn(ae^(v=_),t^ne,63),ae=t=C,_=t,ne=P,t=x+X|0,t=(t=(P=w+R|0)>>>0>>0?t+1|0:t)+_|0,_=w=P+ie|0,U=Cn(w^U,(x=N)^(N=w>>>0

>>0?t+1|0:t),32),t=(w=C)+D|0,x=t=(P=ne+(x=U)|0)>>>0>>0?t+1|0:t,ae=ie=Cn(ie^P,ae^t,24),ne=t=C,D=t,me=U,t=N+L|0,t=(t=(U=_+te|0)>>>0<_>>>0?t+1|0:t)+D|0,t=(_=(N=U)+ie|0)>>>0>>0?t+1|0:t,N=_,D=w,w=t,ie=Cn(me^_,D^t,16),t=x+(D=C)|0,t=(_=P+ie|0)>>>0

>>0?t+1|0:t,P=_,x=t,te=Cn(_^ae,t^ne,63),_=C,U=p,ne=se,t=p+a|0,t=m+(K>>>0>(se=K+se|0)>>>0?t+1|0:t)|0,L=p=b+se|0,se=Cn(p^ce,(m=g)^(g=p>>>0>>0?t+1|0:t),32),t=A+(p=C)|0,b=t=(m=v+se|0)>>>0>>0?t+1|0:t,U=A=Cn(ne^m,t^U,24),ce=t=C,v=t,t=g+de|0,t=(t=(A=u+L|0)>>>0>>0?t+1|0:t)+v|0,L=g=U+(u=A)|0,se=Cn(g^se,(v=g>>>0>>0?t+1|0:t)^p,16),t=b+(u=C)|0,de=g=m+se|0,A=Cn(g^U,(m=g>>>0>>0?t+1|0:t)^ce,63),g=C,t=o+(p=B)|0,t=k+((b=oe)>>>0>(U=b+he|0)>>>0?t+1|0:t)|0,b=h,h=t=d>>>0>(B=d+U|0)>>>0?t+1|0:t,U=Cn((d=B)^H,b^t,32),t=S+(B=C)|0,t=l>>>0>(k=l+U|0)>>>0?t+1|0:t,l=p,p=t,l=Cn(k^he,l^t,24),he=t=C,b=t,ne=l,t=h+W|0,t=(t=(l=Q)>>>0>(S=l+d|0)>>>0?t+1|0:t)+b|0,ce=h=ne+(l=S)|0,H=Cn(h^U,(b=h>>>0>>0?t+1|0:t)^B,16),t=p+(l=C)|0,U=h=k+H|0,S=Cn(ne^h,(B=h>>>0>>0?t+1|0:t)^he,63),h=C,t=pe+(p=M)|0,t=T+((d=(k=Y)+z|0)>>>0>>0?t+1|0:t)|0,k=t=(M=j+d|0)>>>0>>0?t+1|0:t,d=Cn(M^fe,t^O,32),t=I+(j=C)|0,O=p,p=t=E>>>0>(T=E+d|0)>>>0?t+1|0:t,E=Cn(T^z,O^t,24),z=t=C,O=t,ne=d,t=k+F|0,t=(t=(d=M+re|0)>>>0>>0?t+1|0:t)+O|0,d=Cn(ne^(O=M=d+(I=E)|0),(I=j)^(j=d>>>0>O>>>0?t+1|0:t),16),t=p+(k=C)|0,E=Cn(E^(I=M=T+d|0),(M=I>>>0>>0?t+1|0:t)^z,63),p=C,T=g,z=A,ne=d,t=w+le|0,w=d=N+J|0,t=(t=d>>>0>>0?t+1|0:t)+g|0,A=Cn(ne^(d=N=d+A|0),(g=w>>>0>d>>>0?t+1|0:t)^k,32),t=(t=B)+(B=C)|0,N=t=(k=A+U|0)>>>0>>0?t+1|0:t,U=T=Cn(z^k,t^T,24),z=t=C,w=t,t=g+Ae|0,t=(t=(d=(T=V)+d|0)>>>0>>0?t+1|0:t)+w|0,he=g=U+d|0,fe=Cn(g^A,(w=g>>>0>>0?t+1|0:t)^B,16),t=N+(T=C)|0,U=Cn((ae=g=k+fe|0)^U,(g=g>>>0>>0?t+1|0:t)^z,63),B=C,k=h,A=S,t=v+ee|0,t=(t=(S=f+L|0)>>>0>>0?t+1|0:t)+h|0,h=t=(v=S)>>>0>(N=A+v|0)>>>0?t+1|0:t,S=Cn((v=N)^ie,t^D,32),t=(t=M)+(M=C)|0,t=(d=S)>>>0>(N=d+I|0)>>>0?t+1|0:t,I=A=Cn(A^(d=N),t^k,24),N=t,D=d,d=S,S=(t=v)+(v=Z)|0,t=h+ge|0,t=(t=v>>>0>S>>>0?t+1|0:t)+(k=C)|0,t=(h=(v=S)+A|0)>>>0>>0?t+1|0:t,v=h,S=t,d=Cn(d^h,t^M,16),t=(A=C)+N|0,M=Cn((ie=h=D+d|0)^I,(h=h>>>0>>0?t+1|0:t)^k,63),k=C,N=p,D=E,t=b+ue|0,t=(t=(I=(E=$)+ce|0)>>>0>>0?t+1|0:t)+p|0,E=b=D+I|0,p=t=b>>>0>>0?t+1|0:t,I=Cn(b^se,t^u,32),t=x+(b=C)|0,x=u=P+I|0,D=u=Cn(D^u,(t=u>>>0

>>0?t+1|0:t)^N,24),L=N=C,P=t,z=x,t=p+r|0,t=(t=(u=(x=G)+E|0)>>>0>>0?t+1|0:t)+N|0,t=(p=D+u|0)>>>0>>0?t+1|0:t,x=p,u=b,b=t,ce=Cn(p^I,u^t,16),t=(t=P)+(P=C)|0,D=Cn((p=z+(N=ce)|0)^D,(t=p>>>0>>0?t+1|0:t)^L,63),N=C,E=p,I=t,t=j+(u=_)|0,_=p=O+te|0,t=(t=p>>>0>>0?t+1|0:t)+(L=s[n+204>>2])|0,_=t=(p=(z=s[n+200>>2])+p|0)>>>0<_>>>0?t+1|0:t,O=Cn(p^H,t^l,32),t=(t=m)+(m=C)|0,t=(l=O)>>>0>(j=l+de|0)>>>0?t+1|0:t,u=Cn((l=j)^te,t^u,24),H=de=C,j=t,ne=l,de=O,t=_+H|0,t=(t=(O=p+u|0)>>>0

>>0?t+1|0:t)+(te=s[n+164>>2])|0,O=p=(se=s[n+160>>2])+(_=O)|0,de=Cn(de^p,(l=p>>>0<_>>>0?t+1|0:t)^m,16),t=(t=j)+(j=C)|0,u=Cn(u^(ne=p=ne+(m=de)|0),(p=p>>>0>>0?t+1|0:t)^H,63),H=t=C,m=t,me=d,t=w+ue|0,t=(t=(d=(_=$)+he|0)>>>0<_>>>0?t+1|0:t)+m|0,A=Cn(me^(m=_=d+u|0),(_=d>>>0>m>>>0?t+1|0:t)^A,32),t=(w=C)+I|0,E=d=E+A|0,I=Cn(u^d,(t=d>>>0>>0?t+1|0:t)^H,24),H=u=C,d=t,he=E,me=A,t=_+L|0,t=(t=(A=m+z|0)>>>0>>0?t+1|0:t)+u|0,E=m=A+I|0,me=Cn(me^m,(u=w)^(w=m>>>0>>0?t+1|0:t),16),t=(u=C)+d|0,he=Cn((ve=m=he+(_=me)|0)^I,(m=m>>>0<_>>>0?t+1|0:t)^H,63),_=C,t=ee+(d=B)|0,t=(t=(A=f+U|0)>>>0>>0?t+1|0:t)+S|0,A=Cn((S=f=A+v|0)^ce,(f=f>>>0>>0?t+1|0:t)^P,32),t=(t=p)+(p=C)|0,v=t=A>>>0>(B=A+ne|0)>>>0?t+1|0:t,I=d=Cn(B^U,t^d,24),U=t=C,P=t,d=(t=S)+(S=G)|0,t=f+r|0,t=(t=d>>>0>>0?t+1|0:t)+P|0,ee=f=I+d|0,ce=Cn(f^A,(P=f>>>0>>0?t+1|0:t)^p,16),t=v+(S=C)|0,H=f=B+ce|0,d=Cn(f^I,(p=f>>>0>>0?t+1|0:t)^U,63),f=C,A=M,t=(B=k)+F|0,t=(t=(v=M+re|0)>>>0>>0?t+1|0:t)+b|0,k=t=(M=v+x|0)>>>0>>0?t+1|0:t,b=Cn(M^de,t^j,32),t=(t=g)+(g=C)|0,t=(v=b)>>>0>(j=v+ae|0)>>>0?t+1|0:t,x=Cn(A^(v=j),t^B,24),I=B=C,j=t,U=v,F=b,t=k+a|0,k=b=M+K|0,t=(t=b>>>0>>0?t+1|0:t)+B|0,de=Cn(F^(b=M=b+(A=x)|0),(v=k>>>0>b>>>0?t+1|0:t)^g,16),t=(t=j)+(j=C)|0,I=Cn(x^(A=g=U+(B=de)|0),(B=A>>>0>>0?t+1|0:t)^I,63),g=C,M=N,t=N+X|0,t=(t=(x=R+D|0)>>>0>>0?t+1|0:t)+l|0,t=(k=O+x|0)>>>0>>0?t+1|0:t,O=k,k=t,x=Cn(O^fe,t^T,32),t=(t=h)+(h=C)|0,l=M,M=t=(N=(T=x)+ie|0)>>>0>>0?t+1|0:t,D=l=Cn(N^D,l^t,24),U=t=C,T=t,F=x,x=(t=O)+(O=V)|0,t=k+Ae|0,t=(t=O>>>0>x>>>0?t+1|0:t)+T|0,T=k=(O=x)+l|0,l=Cn(F^k,(O=k>>>0>>0?t+1|0:t)^h,16),t=M+(k=C)|0,t=(h=N+l|0)>>>0>>0?t+1|0:t,N=h,x=t,D=Cn(h^D,t^U,63),h=C,M=f,U=d,F=l,t=w+W|0,t=(t=(d=(l=Q)+E|0)>>>0>>0?t+1|0:t)+f|0,f=t=d>>>0>(w=U+d|0)>>>0?t+1|0:t,l=Cn(F^w,t^k,32),t=(t=B)+(B=C)|0,t=(d=l)>>>0>(k=d+A|0)>>>0?t+1|0:t,E=A=Cn(U^(d=k),t^M,24),k=t,U=l,l=(t=w)+(w=Z)|0,t=f+ge|0,t=(t=l>>>0>>0?t+1|0:t)+(M=C)|0,w=f=l+A|0,l=t=f>>>0>>0?t+1|0:t,f=(B=fe=Cn(U^f,t^B,16))+d|0,t=(d=C)+k|0,A=f,F=Cn(k=f^E,(E=f>>>0>>0?t+1|0:t)^M,63),M=C,t=P+o|0,t=(t=(B=oe)>>>0>(k=B+ee|0)>>>0?t+1|0:t)+(f=g)|0,P=B=k+I|0,u=Cn(B^me,(g=B>>>0>>0?t+1|0:t)^u,32),t=x+(B=C)|0,t=(k=N+u|0)>>>0>>0?t+1|0:t,N=k,x=Cn(k^I,t^f,24),U=f=C,k=t,ee=N,t=g+le|0,t=(N=J)>>>0>(P=N+P|0)>>>0?t+1|0:t,N=P,t=t+f|0,P=g=P+(I=x)|0,g=Cn(g^u,(x=g>>>0>>0?t+1|0:t)^B,16),t=(N=C)+k|0,ae=f=ee+g|0,re=Cn(f^I,(B=f>>>0>>0?t+1|0:t)^U,63),k=C,U=D,t=v+te|0,t=(t=(u=b+se|0)>>>0>>0?t+1|0:t)+(f=h)|0,I=Cn((h=b=u+D|0)^ce,(b=u>>>0>h>>>0?t+1|0:t)^S,32),t=(t=m)+(m=C)|0,D=v=(S=I)+ve|0,u=Cn(U^v,(t=v>>>0>>0?t+1|0:t)^f,24),v=f=C,S=t,U=u,t=b+f|0,t=(t=(u=h+u|0)>>>0>>0?t+1|0:t)+(ee=s[n+132>>2])|0,b=h=(f=s[n+128>>2])+u|0,u=t=h>>>0>>0?t+1|0:t,ce=Cn(h^I,t^m,16),t=(t=S)+(S=C)|0,ie=Cn(U^(h=(m=ce)+D|0),(t=h>>>0>>0?t+1|0:t)^v,63),m=C,I=h,D=t,U=g,t=pe+(v=_)|0,t=(t=(h=(g=Y)+he|0)>>>0>>0?t+1|0:t)+O|0,T=Cn((h=g=h+T|0)^de,(_=h>>>0>>0?t+1|0:t)^j,32),t=(g=C)+p|0,t=(O=T)>>>0>(j=O+H|0)>>>0?t+1|0:t,v=Cn((O=j)^he,t^v,24),ne=H=C,p=t,j=g,de=T,t=_+H|0,t=(t=(T=h+v|0)>>>0>>0?t+1|0:t)+(he=s[n+196>>2])|0,T=h=(g=s[n+192>>2])+(_=T)|0,de=Cn(de^h,(H=j)^(j=h>>>0<_>>>0?t+1|0:t),16),t=(t=p)+(p=C)|0,v=Cn(v^(H=h=(_=de)+O|0),(h=h>>>0<_>>>0?t+1|0:t)^ne,63),ne=t=C,_=t,t=l+L|0,t=(t=(O=w+z|0)>>>0>>0?t+1|0:t)+_|0,t=(w=O+v|0)>>>0>>0?t+1|0:t,O=w,_=t,l=Cn(w^U,t^N,32),t=(N=C)+D|0,I=w=I+l|0,D=Cn(v^w,(t=w>>>0>>0?t+1|0:t)^ne,24),L=w=C,v=t,U=l,t=_+ee|0,t=(t=(l=f+O|0)>>>0>>0?t+1|0:t)+w|0,z=_=l+D|0,ne=Cn(U^_,(w=_>>>0>>0?t+1|0:t)^N,16),t=(t=v)+(v=C)|0,O=_=(N=ne)+I|0,L=Cn(_^D,(l=_>>>0>>0?t+1|0:t)^L,63),N=C,t=o+(_=M)|0,t=x+((I=oe)>>>0>(D=I+F|0)>>>0?t+1|0:t)|0,P=t=(M=P+D|0)>>>0

>>0?t+1|0:t,I=Cn(M^ce,t^S,32),t=(t=h)+(h=C)|0,t=(S=I)>>>0>(x=S+H|0)>>>0?t+1|0:t,S=_,_=t,D=Cn(x^F,S^t,24),F=t=C,S=t,U=I,t=P+ue|0,t=(t=(I=M+$|0)>>>0>>0?t+1|0:t)+S|0,S=t=(M=(P=I)+D|0)>>>0

>>0?t+1|0:t,ce=Cn(U^(P=M),t^h,16),t=_+(I=C)|0,H=h=x+ce|0,D=Cn(h^D,(M=h>>>0>>0?t+1|0:t)^F,63),h=C,_=k,t=k+W|0,t=u+(Q>>>0>(U=Q+re|0)>>>0?t+1|0:t)|0,u=p,p=t=b>>>0>(k=b+U|0)>>>0?t+1|0:t,U=Cn(k^de,u^t,32),t=E+(b=C)|0,u=_,_=t=A>>>0>(x=A+U|0)>>>0?t+1|0:t,E=A=Cn(x^re,u^t,24),u=t=C,t=p+te|0,t=(t=(A=k+se|0)>>>0>>0?t+1|0:t)+u|0,te=p=E+A|0,se=Cn(p^U,(k=p>>>0>>0?t+1|0:t)^b,16),t=_+(b=C)|0,re=p=x+se|0,A=Cn(p^E,(_=p>>>0>>0?t+1|0:t)^u,63),p=C,x=m,t=m+le|0,t=j+((u=J)>>>0>(E=u+ie|0)>>>0?t+1|0:t)|0,d=Cn((u=m=T+E|0)^fe,(m=u>>>0>>0?t+1|0:t)^d,32),t=(t=B)+(B=C)|0,U=x=Cn((E=j=d+ae|0)^ie,(t=d>>>0>E>>>0?t+1|0:t)^x,24),F=j=C,T=t,t=m+pe|0,t=(t=(u=(x=Y)+u|0)>>>0>>0?t+1|0:t)+j|0,j=m=U+u|0,d=Cn(m^d,(x=m>>>0>>0?t+1|0:t)^B,16),t=(t=T)+(T=C)|0,ie=m=d+E|0,U=Cn(m^U,(B=m>>>0>>0?t+1|0:t)^F,63),m=C,F=D,de=d,t=w+Ae|0,t=(t=(d=V)>>>0>(E=d+z|0)>>>0?t+1|0:t)+(u=h)|0,h=t=(d=E)>>>0>(w=d+D|0)>>>0?t+1|0:t,E=Cn(de^(d=w),t^T,32),t=(t=_)+(_=C)|0,D=w=(T=E)+re|0,F=u=Cn(F^w,(t=w>>>0>>0?t+1|0:t)^u,24),re=w=C,T=t,t=h+r|0,t=(t=(d=(u=G)+d|0)>>>0>>0?t+1|0:t)+w|0,fe=h=F+d|0,de=Cn(h^E,(u=_)^(_=h>>>0>>0?t+1|0:t),16),t=(w=C)+T|0,T=h=(u=de)+D|0,F=Cn(h^F,(u=h>>>0>>0?t+1|0:t)^re,63),h=C,D=A,t=S+X|0,S=A=R+P|0,t=(t=A>>>0

>>0?t+1|0:t)+(d=p)|0,E=Cn((A=P=D+A|0)^ne,(p=A>>>0>>0?t+1|0:t)^v,32),t=(t=B)+(B=C)|0,P=t=(v=(P=E)+ie|0)>>>0

>>0?t+1|0:t,D=d=Cn(D^v,t^d,24),re=t=C,S=t,t=p+a|0,t=(t=(d=K)>>>0>(A=d+A|0)>>>0?t+1|0:t)+S|0,S=p=D+(d=A)|0,B=Cn(p^E,(d=p>>>0>>0?t+1|0:t)^B,16),t=P+(A=C)|0,t=(p=v+B|0)>>>0>>0?t+1|0:t,v=p,P=t,re=Cn(p^D,t^re,63),p=C,E=m,z=U,t=k+ge|0,t=(t=(D=Z)>>>0>(U=D+te|0)>>>0?t+1|0:t)+m|0,t=(k=z+(D=U)|0)>>>0>>0?t+1|0:t,D=k,m=t,U=Cn(k^ce,t^I,32),t=l+(k=C)|0,l=t=(I=O+U|0)>>>0>>0?t+1|0:t,I=Cn(z^(O=I),t^E,24),z=t=C,E=t,t=m+he|0,t=(t=(D=g+D|0)>>>0>>0?t+1|0:t)+E|0,E=m=(te=I)+(I=D)|0,ie=Cn(m^U,(D=k)^(k=m>>>0>>0?t+1|0:t),16),t=l+(I=C)|0,t=(m=O+ie|0)>>>0>>0?t+1|0:t,O=m,te=Cn(m^te,t^z,63),m=C,D=t,ne=L,t=x+(l=N)|0,t=(t=(L=j+L|0)>>>0>>0?t+1|0:t)+(z=ce=s[n+156>>2])|0,j=t=(N=(U=s[n+152>>2])+(j=L)|0)>>>0>>0?t+1|0:t,x=Cn(N^se,t^b,32),t=(t=M)+(M=C)|0,L=b=x+H|0,z=l=Cn(ne^b,(t=b>>>0>>0?t+1|0:t)^l,24),H=se=C,b=t,ne=ae=s[n+236>>2],ae=L,L=x,t=j+H|0,t=(t=(l=l+N|0)>>>0>>0?t+1|0:t)+ne|0,t=(N=(x=s[n+232>>2])+l|0)>>>0>>0?t+1|0:t,l=M,M=t,se=Cn(L^N,l^t,16),t=(j=C)+b|0,z=Cn((b=l=ae+(L=se)|0)^z,(l=l>>>0>>0?t+1|0:t)^H,63),H=t=C,L=t,ae=B,t=_+W|0,t=(t=(B=Q+fe|0)>>>0>>0?t+1|0:t)+L|0,A=Cn(ae^(L=Q=B+z|0),(Q=Q>>>0>>0?t+1|0:t)^A,32),t=(B=C)+D|0,D=_=O+A|0,W=Cn(z^_,H^(t=_>>>0>>0?t+1|0:t),24),fe=_=C,O=t,z=D,H=A,t=Q+a|0,t=(t=(A=K)>>>0>(D=A+L|0)>>>0?t+1|0:t)+_|0,H=Cn(H^(_=Q=(A=D)+W|0),(A=A>>>0>_>>>0?t+1|0:t)^B,16),t=(t=O)+(O=C)|0,D=Q=z+(B=H)|0,z=Cn(Q^W,(L=Q>>>0>>0?t+1|0:t)^fe,63),B=C,Q=h,ae=F,t=h+ge|0,t=d+(Z>>>0>(F=Z+F|0)>>>0?t+1|0:t)|0,I=Cn((W=h=S+F|0)^ie,(h=h>>>0>>0?t+1|0:t)^I,32),t=l+(S=C)|0,t=(d=b+I|0)>>>0>>0?t+1|0:t,b=d,l=Q,Q=t,F=d=Cn(ae^d,l^t,24),ie=t=C,l=t,ae=d,fe=I,t=h+le|0,t=(t=(d=J)>>>0>(I=d+W|0)>>>0?t+1|0:t)+l|0,F=h=F+(d=I)|0,fe=Cn(fe^h,(l=h>>>0>>0?t+1|0:t)^S,16),t=Q+(S=C)|0,t=(h=b+fe|0)>>>0>>0?t+1|0:t,b=h,d=t,I=Cn(ae^h,t^ie,63),h=C,Q=p,t=p+ee|0,t=(t=(W=f+re|0)>>>0>>0?t+1|0:t)+k|0,t=(f=E+W|0)>>>0>>0?t+1|0:t,E=f,f=t,W=Cn(E^se,t^j,32),t=u+(p=C)|0,u=Q,Q=t=(k=T+W|0)>>>0>>0?t+1|0:t,u=T=Cn(k^re,u^t,24),re=t=C,j=t,t=f+X|0,t=(t=(T=R+E|0)>>>0>>0?t+1|0:t)+j|0,E=R=u+(f=T)|0,W=Cn(R^W,(T=p)^(p=f>>>0>R>>>0?t+1|0:t),16),t=Q+(j=C)|0,X=R=k+W|0,T=Cn(R^u,(f=R>>>0>>0?t+1|0:t)^re,63),Q=C,R=m,t=m+he|0,t=(t=(k=g+te|0)>>>0>>0?t+1|0:t)+M|0,t=(g=k+N|0)>>>0>>0?t+1|0:t,N=g,g=t,w=Cn(N^de,t^w,32),t=P+(m=C)|0,u=R,R=t=v>>>0>(M=v+w|0)>>>0?t+1|0:t,P=v=Cn(M^te,u^t,24),u=t=C,t=g+ce|0,t=(t=(N=N+U|0)>>>0>>0?t+1|0:t)+u|0,k=g=N+v|0,w=Cn(g^w,(v=m)^(m=g>>>0>>0?t+1|0:t),16),t=R+(N=C)|0,u=Cn((v=g=M+w|0)^P,(g=g>>>0>>0?t+1|0:t)^u,63),R=C,M=h,U=w,t=h+A|0,t=(w=_+I|0)>>>0<_>>>0?t+1|0:t,_=w,t=t+(P=s[n+164>>2])|0,P=Cn(U^(w=h=w+s[n+160>>2]|0),(h=h>>>0<_>>>0?t+1|0:t)^N,32),t=(t=f)+(f=C)|0,A=M,M=t=(_=(N=P)+X|0)>>>0>>0?t+1|0:t,A=Cn(_^I,A^t,24),U=t=C,N=t,t=h+ne|0,t=(t=(w=w+x|0)>>>0>>0?t+1|0:t)+N|0,re=Cn((X=h=w+A|0)^P,(h=h>>>0>>0?t+1|0:t)^f,16),t=M+(N=C)|0,M=f=_+re|0,I=Cn(f^A,(_=f>>>0<_>>>0?t+1|0:t)^U,63),f=C,A=T,x=v,t=l+ue|0,t=(t=(v=(T=$)+F|0)>>>0>>0?t+1|0:t)+(w=Q)|0,O=Cn((P=T=A+v|0)^H,(Q=v>>>0>P>>>0?t+1|0:t)^O,32),t=(t=g)+(g=C)|0,l=w,w=t=(v=O)>>>0>(T=x+v|0)>>>0?t+1|0:t,l=x=Cn(A^T,l^t,24),A=t=C,x=O,t=Q+o|0,t=(t=(O=oe)>>>0>(P=O+P|0)>>>0?t+1|0:t)+A|0,P=Cn(x^(v=Q=P+l|0),(O=v>>>0

>>0?t+1|0:t)^g,16),t=w+(x=C)|0,U=Cn((w=Q=T+P|0)^l,(T=w>>>0>>0?t+1|0:t)^A,63),Q=C,F=u,t=p+pe|0,t=(l=Y)>>>0>(u=l+E|0)>>>0?t+1|0:t,l=u,t=t+(g=R)|0,A=Cn((u=p=F+u|0)^fe,(R=u>>>0>>0?t+1|0:t)^S,32),t=L+(p=C)|0,S=g,g=t=(l=D+A|0)>>>0>>0?t+1|0:t,E=Cn(F^l,S^t,24),L=t=C,S=t,D=A,A=(t=u)+(u=V)|0,t=R+Ae|0,t=(t=u>>>0>A>>>0?t+1|0:t)+S|0,S=t=(u=A)>>>0>(R=u+E|0)>>>0?t+1|0:t,F=Cn(D^R,t^p,16),t=g+(u=C)|0,D=Cn((p=l+F|0)^E,(t=p>>>0>>0?t+1|0:t)^L,63),g=C,A=t,t=r+(l=B)|0,t=m+((E=G)>>>0>(L=E+z|0)>>>0?t+1|0:t)|0,E=B=k+L|0,L=Cn(B^W,(m=B>>>0>>0?t+1|0:t)^j,32),t=d+(B=C)|0,j=t=b>>>0>(k=b+L|0)>>>0?t+1|0:t,W=t=Cn(k^z,t^l,24),b=t,l=t+E|0,t=(d=C)+m|0,t=(t=l>>>0>>0?t+1|0:t)+(te=s[n+204>>2])|0,t=(m=l+s[n+200>>2]|0)>>>0>>0?t+1|0:t,l=B,B=t,te=Cn(m^L,l^t,16),t=j+(b=C)|0,t=(l=k+te|0)>>>0>>0?t+1|0:t,k=l,j=t,d=Cn(W^l,t^d,63),l=t=C,E=p,W=P,t=h+a|0,t=(t=(p=K)>>>0>(P=p+X|0)>>>0?t+1|0:t)+l|0,W=Cn(W^(L=h=(p=P)+d|0),(h=h>>>0

>>0?t+1|0:t)^x,32),t=(p=C)+A|0,x=t=(P=E+(x=W)|0)>>>0>>0?t+1|0:t,d=Cn(d^P,l^t,24),E=t=C,l=t,H=d,t=h+o|0,t=(t=(d=oe)>>>0>(A=d+L|0)>>>0?t+1|0:t)+l|0,W=Cn((l=h=H+(d=A)|0)^W,(d=l>>>0>>0?t+1|0:t)^p,16),t=x+(A=C)|0,t=(h=P+W|0)>>>0

>>0?t+1|0:t,P=h,x=t,h=Cn(H^h,t^E,63),p=C,E=f,H=I,t=f+r|0,t=O+((I=G)>>>0>(L=H+I|0)>>>0?t+1|0:t)|0,u=Cn((I=f=v+L|0)^F,(f=f>>>0>>0?t+1|0:t)^u,32),t=j+(v=C)|0,j=t=k>>>0>(O=k+u|0)>>>0?t+1|0:t,L=E=Cn(H^(k=O),t^E,24),X=t=C,O=t,H=E,F=u,t=f+pe|0,t=(t=(u=Y)>>>0>(E=u+I|0)>>>0?t+1|0:t)+O|0,L=f=L+(u=E)|0,F=Cn(F^f,(O=v)^(v=f>>>0>>0?t+1|0:t),16),t=j+(O=C)|0,t=(f=k+F|0)>>>0>>0?t+1|0:t,k=f,j=t,I=Cn(H^f,t^X,63),f=C,H=U,t=Ae+(u=Q)|0,t=S+((E=V)>>>0>(U=E+U|0)>>>0?t+1|0:t)|0,E=Cn((S=Q=R+U|0)^te,(Q=R>>>0>S>>>0?t+1|0:t)^b,32),t=_+(R=C)|0,t=(b=M+E|0)>>>0>>0?t+1|0:t,M=b,_=t,t=Cn(H^b,t^u,24),X=s[n+236>>2],H=t,u=S,S=t,u=u+t|0,t=(b=C)+Q|0,t=(t=u>>>0>>0?t+1|0:t)+X|0,u=t=(Q=u+s[n+232>>2]|0)>>>0>>0?t+1|0:t,X=Cn((S=Q)^E,t^R,16),t=_+(E=C)|0,U=Q=M+X|0,b=Cn(H^Q,(R=Q>>>0>>0?t+1|0:t)^b,63),Q=C,M=g,H=D,t=g+B|0,t=(t=(_=m+D|0)>>>0>>0?t+1|0:t)+(te=s[n+164>>2])|0,N=Cn((D=g=(m=_)+s[n+160>>2]|0)^re,(g=g>>>0>>0?t+1|0:t)^N,32),t=T+(m=C)|0,T=M,M=t=w>>>0>(B=w+N|0)>>>0?t+1|0:t,T=w=Cn(H^B,T^t,24),re=t=C,_=t,H=N,t=g+le|0,t=(t=(w=(N=J)+D|0)>>>0>>0?t+1|0:t)+_|0,te=g=T+w|0,w=Cn(H^g,(_=m)^(m=g>>>0>>0?t+1|0:t),16),t=M+(_=C)|0,t=(g=B+w|0)>>>0>>0?t+1|0:t,B=g,M=t,D=Cn(g^T,t^re,63),g=C,N=f,H=w,t=f+d|0,t=(t=(w=l+I|0)>>>0>>0?t+1|0:t)+(T=s[n+132>>2])|0,l=Cn(H^(T=f=w+s[n+128>>2]|0),(f=f>>>0>>0?t+1|0:t)^_,32),t=(t=R)+(R=C)|0,d=N,N=t=l>>>0>(_=l+U|0)>>>0?t+1|0:t,d=Cn(_^I,d^t,24),U=t=C,w=t,I=l,l=(t=T)+(T=$)|0,t=f+ue|0,t=(t=l>>>0>>0?t+1|0:t)+w|0,re=f=l+d|0,ee=Cn(I^f,(w=f>>>0>>0?t+1|0:t)^R,16),t=N+(T=C)|0,N=t=(R=_+ee|0)>>>0<_>>>0?t+1|0:t,I=Cn((_=R)^d,t^U,63),R=C,U=b,t=v+ge|0,v=l=(b=Z)+L|0,t=(t=l>>>0>>0?t+1|0:t)+(f=Q)|0,d=Cn((l=b=U+l|0)^W,(Q=v>>>0>l>>>0?t+1|0:t)^A,32),t=M+(b=C)|0,t=(v=B+d|0)>>>0>>0?t+1|0:t,B=v,A=f,f=t,t=Cn(U^v,A^t,24),U=s[n+156>>2],A=t,v=t,l=t+l|0,t=(M=C)+Q|0,t=(t=l>>>0>>0?t+1|0:t)+U|0,t=l>>>0>(Q=l+s[n+152>>2]|0)>>>0?t+1|0:t,l=b,b=t,L=Cn((v=Q)^d,l^t,16),t=f+(l=C)|0,d=M,M=t=(Q=B+L|0)>>>0>>0?t+1|0:t,U=Cn(A^(B=Q),d^t,63),f=C,Q=g,t=g+u|0,t=(t=(d=S+D|0)>>>0>>0?t+1|0:t)+(A=s[n+204>>2])|0,t=(g=d+s[n+200>>2]|0)>>>0>>0?t+1|0:t,d=O,O=t,d=Cn(g^F,d^t,32),t=x+(S=C)|0,t=(u=P+d|0)>>>0

>>0?t+1|0:t,P=u,A=Q,Q=t,u=Cn(u^D,A^t,24),A=t=C,F=u,t=t+O|0,t=(t=(u=g+u|0)>>>0>>0?t+1|0:t)+(D=s[n+148>>2])|0,t=(g=u+s[n+144>>2]|0)>>>0>>0?t+1|0:t,O=g,u=S,S=t,W=Cn(g^d,u^t,16),t=Q+(u=C)|0,t=(g=P+W|0)>>>0

>>0?t+1|0:t,P=g,x=t,D=Cn(F^g,A^t,63),g=C,Q=p,F=h,t=p+m|0,p=d=h+te|0,t=(t=d>>>0>>0?t+1|0:t)+(A=s[n+196>>2])|0,A=Cn((d=h=d+s[n+192>>2]|0)^X,(h=d>>>0

>>0?t+1|0:t)^E,32),t=j+(p=C)|0,Q=Cn(F^(m=k+A|0),(t=m>>>0>>0?t+1|0:t)^Q,24),k=t,X=s[n+220>>2],E=Q,H=m,t=(m=C)+h|0,h=d=d+Q|0,t=(t=d>>>0>>0?t+1|0:t)+(F=X)|0,F=Cn(Q=(d=Q=(j=s[n+216>>2])+d|0)^A,(A=h>>>0>d>>>0?t+1|0:t)^p,16),t=(t=k)+(k=C)|0,t=(h=F)>>>0>(Q=H+h|0)>>>0?t+1|0:t,h=m,m=t,t=Cn(E^Q,h^t,63),z=s[n+236>>2],H=t,p=t,E=t+re|0,t=(h=C)+w|0,t=(t=p>>>0>E>>>0?t+1|0:t)+z|0,L=Cn((E=p=(w=E)+s[n+232>>2]|0)^L,(p=p>>>0>>0?t+1|0:t)^l,32),t=x+(w=C)|0,t=(l=P+L|0)>>>0

>>0?t+1|0:t,P=l,x=h,h=t,t=Cn(H^l,x^t,24),H=L,l=t,E=t+E|0,t=(x=C)+p|0,t=X+(l>>>0>E>>>0?t+1|0:t)|0,L=p=E+j|0,X=Cn(H^p,(E=w)^(w=p>>>0>>0?t+1|0:t),16),t=h+(j=C)|0,t=(p=P+X|0)>>>0

>>0?t+1|0:t,P=p,h=x,x=t,h=Cn(l^p,h^t,63),p=C,H=I,t=ue+(l=R)|0,t=b+((I=(E=$)+I|0)>>>0>>0?t+1|0:t)|0,u=Cn((E=R=v+I|0)^W,(R=v>>>0>R>>>0?t+1|0:t)^u,32),t=m+(b=C)|0,t=(v=Q+u|0)>>>0>>0?t+1|0:t,Q=v,m=t,I=l=Cn(H^v,t^l,24),W=t=C,v=t,H=u,t=R+Ae|0,t=(t=(l=V)>>>0>(u=l+E|0)>>>0?t+1|0:t)+v|0,re=R=I+(l=u)|0,te=Cn(H^R,(u=b)^(b=l>>>0>R>>>0?t+1|0:t),16),t=m+(v=C)|0,E=Cn((m=R=Q+te|0)^I,(l=m>>>0>>0?t+1|0:t)^W,63),Q=C,R=f,t=f+a|0,t=S+((u=K)>>>0>(I=u+U|0)>>>0?t+1|0:t)|0,u=Cn((S=f=O+I|0)^F,(f=f>>>0>>0?t+1|0:t)^k,32),t=N+(k=C)|0,t=_>>>0>(O=_+u|0)>>>0?t+1|0:t,_=O,O=R,R=t,I=O=Cn(_^U,O^t,24),U=t=C,N=t,t=f+r|0,t=(t=(O=G)>>>0>(S=O+S|0)>>>0?t+1|0:t)+N|0,N=f=I+S|0,W=Cn(f^u,(O=k)^(k=f>>>0>>0?t+1|0:t),16),t=R+(O=C)|0,t=(f=_+W|0)>>>0<_>>>0?t+1|0:t,_=f,S=t,I=Cn(f^I,t^U,63),R=C,t=A+(f=g)|0,t=(t=(u=d+D|0)>>>0>>0?t+1|0:t)+(U=s[n+156>>2])|0,d=T,T=t=(g=u+s[n+152>>2]|0)>>>0>>0?t+1|0:t,A=Cn(g^ee,d^t,32),t=M+(u=C)|0,t=(d=B+A|0)>>>0>>0?t+1|0:t,B=d,M=f,f=t,d=Cn(d^D,M^t,24),D=t=C,H=d,t=T+t|0,t=(t=(d=d+g|0)>>>0>>0?t+1|0:t)+(U=s[n+204>>2])|0,F=g=d+s[n+200>>2]|0,d=Cn(g^A,(T=g>>>0>>0?t+1|0:t)^u,16),t=f+(g=C)|0,t=(u=B+d|0)>>>0>>0?t+1|0:t,B=u,M=t,D=Cn(H^u,D^t,63),f=C,U=d,t=w+o|0,t=(t=(d=oe)>>>0>(A=d+L|0)>>>0?t+1|0:t)+(u=Q)|0,Q=w=(d=A)+E|0,A=Cn(U^w,(A=g)^(g=d>>>0>w>>>0?t+1|0:t),32),t=S+(w=C)|0,t=(d=_+A|0)>>>0<_>>>0?t+1|0:t,_=d,S=t,d=Cn(d^E,t^u,24),u=t=C,E=d,t=g+t|0,t=(t=(d=d+Q|0)>>>0>>0?t+1|0:t)+(U=s[n+132>>2])|0,L=Q=d+s[n+128>>2]|0,ee=Cn(Q^A,(g=w)^(w=d>>>0>Q>>>0?t+1|0:t),16),t=S+(d=C)|0,S=t=(Q=_+ee|0)>>>0<_>>>0?t+1|0:t,U=Cn(E^(_=Q),t^u,63),Q=C,t=b+pe|0,t=(t=(u=Y)>>>0>(A=u+re|0)>>>0?t+1|0:t)+(g=R)|0,R=t=(u=A)>>>0>(b=u+I|0)>>>0?t+1|0:t,A=Cn((u=b)^X,t^j,32),t=M+(j=C)|0,t=B>>>0>(b=B+A|0)>>>0?t+1|0:t,B=b,E=g,g=t,t=Cn(b^I,E^t,24),I=s[n+164>>2],E=t,b=t,u=t+u|0,t=(M=C)+R|0,t=(t=u>>>0>>0?t+1|0:t)+I|0,t=(R=u+s[n+160>>2]|0)>>>0>>0?t+1|0:t,u=j,j=t,u=Cn((b=R)^A,u^t,16),t=g+(A=C)|0,g=M,M=t=(R=B+u|0)>>>0>>0?t+1|0:t,R=Cn(E^(B=R),g^t,63),g=C,E=f,H=D,t=f+k|0,t=(t=(I=N+D|0)>>>0>>0?t+1|0:t)+(X=s[n+196>>2])|0,D=Cn((I=f=(k=I)+s[n+192>>2]|0)^te,(f=f>>>0>>0?t+1|0:t)^v,32),t=x+(k=C)|0,v=t=(N=P+D|0)>>>0

>>0?t+1|0:t,x=Cn(H^N,t^E,24),X=t=C,P=t,H=x,t=f+ge|0,t=(t=(E=(x=Z)+I|0)>>>0>>0?t+1|0:t)+P|0,re=f=H+(x=E)|0,te=Cn(f^D,(E=k)^(k=f>>>0>>0?t+1|0:t),16),t=v+(P=C)|0,t=(f=N+te|0)>>>0>>0?t+1|0:t,N=f,E=Cn(H^f,t^X,63),f=C,v=p,x=t,H=h,t=p+T|0,t=(t=(I=h+F|0)>>>0>>0?t+1|0:t)+(D=s[n+148>>2])|0,O=Cn((I=h=(p=I)+s[n+144>>2]|0)^W,(h=h>>>0

>>0?t+1|0:t)^O,32),t=l+(p=C)|0,t=m>>>0>(T=m+O|0)>>>0?t+1|0:t,m=T,T=t,D=l=Cn(H^m,t^v,24),W=t=C,v=t,F=O,t=h+le|0,t=(t=(l=(O=J)+I|0)>>>0>>0?t+1|0:t)+v|0,v=h=D+l|0,X=Cn(F^h,(O=h>>>0>>0?t+1|0:t)^p,16),t=T+(p=C)|0,t=(h=m+X|0)>>>0>>0?t+1|0:t,m=h,T=t,l=Cn(h^D,t^W,63),I=t=C,h=t,D=N,W=u,t=w+ge|0,w=u=(N=Z)+L|0,t=(t=u>>>0>>0?t+1|0:t)+h|0,A=Cn(W^(u=N=u+l|0),(h=w>>>0>u>>>0?t+1|0:t)^A,32),t=(N=C)+x|0,x=t=(w=D+A|0)>>>0>>0?t+1|0:t,I=Cn(l^w,I^t,24),L=t=C,l=t,D=A,A=(t=u)+(u=Y)|0,t=h+pe|0,t=(t=u>>>0>A>>>0?t+1|0:t)+l|0,W=h=(u=A)+I|0,F=Cn(D^h,(l=N)^(N=h>>>0>>0?t+1|0:t),16),t=x+(l=C)|0,t=(h=w+F|0)>>>0>>0?t+1|0:t,w=h,x=t,D=Cn(h^I,t^L,63),h=C,t=Ae+(u=Q)|0,t=j+((A=V)>>>0>(I=A+U|0)>>>0?t+1|0:t)|0,P=Cn((A=Q=b+I|0)^te,(Q=A>>>0>>0?t+1|0:t)^P,32),t=T+(j=C)|0,T=t=m>>>0>(b=m+P|0)>>>0?t+1|0:t,t=Cn((m=b)^U,t^u,24),U=s[n+204>>2],I=t,L=P,P=t,u=t+A|0,t=(b=C)+Q|0,t=(t=u>>>0

>>0?t+1|0:t)+U|0,U=Q=u+s[n+200>>2]|0,L=Cn(L^Q,(A=j)^(j=Q>>>0>>0?t+1|0:t),16),t=T+(P=C)|0,T=Q=m+L|0,A=Cn(I^Q,(u=b)^(b=m>>>0>Q>>>0?t+1|0:t),63),Q=C,m=g,H=R,t=g+k|0,t=(t=(u=R+re|0)>>>0>>0?t+1|0:t)+(I=s[n+220>>2])|0,u=Cn((k=R=u+s[n+216>>2]|0)^X,(R=u>>>0>k>>>0?t+1|0:t)^p,32),t=S+(g=C)|0,S=m,m=t=(p=_+u|0)>>>0<_>>>0?t+1|0:t,t=Cn(H^p,S^t,24),X=s[n+156>>2],I=t,S=k,k=t,S=S+t|0,t=(_=C)+R|0,t=(t=k>>>0>S>>>0?t+1|0:t)+X|0,X=R=(k=S)+s[n+152>>2]|0,re=Cn(R^u,(k=R>>>0>>0?t+1|0:t)^g,16),t=m+(S=C)|0,g=Cn(I^(m=R=p+re|0),(u=_)^(_=p>>>0>m>>>0?t+1|0:t),63),p=C,R=f,t=f+O|0,t=(t=(u=v+E|0)>>>0>>0?t+1|0:t)+(I=s[n+132>>2])|0,v=t=(f=u+s[n+128>>2]|0)>>>0>>0?t+1|0:t,d=Cn(f^ee,t^d,32),t=M+(O=C)|0,t=(u=B+d|0)>>>0>>0?t+1|0:t,B=u,I=R,R=t,u=Cn(u^E,I^t,24),E=t=C,H=u,t=v+t|0,t=(t=(u=f+u|0)>>>0>>0?t+1|0:t)+(I=s[n+196>>2])|0,t=(f=u+s[n+192>>2]|0)>>>0>>0?t+1|0:t,v=f,u=O,O=t,d=Cn(f^d,u^t,16),t=R+(f=C)|0,t=(u=B+d|0)>>>0>>0?t+1|0:t,B=u,M=t,I=Cn(H^u,E^t,63),R=C,H=A,E=d,t=N+a|0,t=(t=(d=K)>>>0>(A=d+W|0)>>>0?t+1|0:t)+(u=Q)|0,Q=N=H+(d=A)|0,A=Cn(E^N,(A=f)^(f=d>>>0>N>>>0?t+1|0:t),32),t=_+(N=C)|0,E=d=m+A|0,d=Cn(H^d,(t=d>>>0>>0?t+1|0:t)^u,24),_=t,te=s[n+148>>2],W=d,t=f+(m=C)|0,t=(t=(d=d+Q|0)>>>0>>0?t+1|0:t)+(ee=te)|0,z=Cn((ee=Q=(u=s[n+144>>2])+d|0)^A,(Q=d>>>0>Q>>>0?t+1|0:t)^N,16),t=(t=_)+(_=C)|0,t=(f=(N=z)+E|0)>>>0>>0?t+1|0:t,N=f,d=t,f=Cn(W^f,t^m,63),m=C,H=g,t=(A=p)+j|0,t=(t=(E=g+U|0)>>>0>>0?t+1|0:t)+(W=s[n+236>>2])|0,l=Cn((E=g=(p=E)+s[n+232>>2]|0)^F,(g=p>>>0>g>>>0?t+1|0:t)^l,32),t=M+(p=C)|0,M=t=B>>>0>(j=B+l|0)>>>0?t+1|0:t,U=A=Cn(H^(B=j),t^A,24),W=t=C,j=t,H=l,t=g+ue|0,t=(t=(l=$)>>>0>(A=l+E|0)>>>0?t+1|0:t)+j|0,F=g=U+(l=A)|0,l=Cn(H^g,(j=g>>>0>>0?t+1|0:t)^p,16),t=M+(A=C)|0,M=g=B+l|0,U=Cn(g^U,(E=g>>>0>>0?t+1|0:t)^W,63),g=C,W=I,t=k+r|0,t=(t=(B=G)>>>0>(I=B+X|0)>>>0?t+1|0:t)+(p=R)|0,I=Cn((R=B=W+(k=I)|0)^L,(B=B>>>0>>0?t+1|0:t)^P,32),t=x+(k=C)|0,x=Cn(W^(P=w+I|0),(t=w>>>0>P>>>0?t+1|0:t)^p,24),w=t,X=s[n+164>>2],L=x,H=P,t=B+(p=C)|0,B=x=R+x|0,t=(t=x>>>0>>0?t+1|0:t)+(W=X)|0,x=k,k=t=(R=(P=s[n+160>>2])+B|0)>>>0>>0?t+1|0:t,se=Cn(R^I,x^t,16),t=(t=w)+(w=C)|0,x=t=(B=H+(x=se)|0)>>>0>>0?t+1|0:t,L=Cn(L^B,t^p,63),p=C,I=h,H=D,t=h+le|0,t=O+((D=J)>>>0>(W=H+D|0)>>>0?t+1|0:t)|0,S=Cn((D=h=v+W|0)^re,(h=h>>>0>>0?t+1|0:t)^S,32),t=b+(v=C)|0,b=t=(O=T+S|0)>>>0>>0?t+1|0:t,W=I=Cn(H^(T=O),t^I,24),re=t=C,O=t,H=S,t=h+o|0,t=(t=(I=(S=oe)+D|0)>>>0>>0?t+1|0:t)+O|0,O=h=W+I|0,D=Cn(H^h,(S=v)^(v=h>>>0>>0?t+1|0:t),16),t=b+(S=C)|0,t=(h=T+D|0)>>>0>>0?t+1|0:t,T=h,b=t,I=Cn(h^W,t^re,63),W=t=C,h=t,H=l,t=Q+le|0,Q=l=J+ee|0,t=(t=l>>>0>>0?t+1|0:t)+h|0,A=Cn(H^(l=J=l+I|0),(Q=Q>>>0>l>>>0?t+1|0:t)^A,32),t=x+(h=C)|0,le=J=B+A|0,x=t=B>>>0>J>>>0?t+1|0:t,H=J=Cn(I^J,W^t,24),t=(B=C)+Q|0,t=(t=(l=l+J|0)>>>0>>0?t+1|0:t)+te|0,W=Cn((I=J=l+u|0)^A,(l=u>>>0>I>>>0?t+1|0:t)^h,16),t=(t=x)+(x=C)|0,le=J=(Q=W)+le|0,h=Cn(H^J,(Q=Q>>>0>J>>>0?t+1|0:t)^B,63),B=C,J=m,H=f,t=m+j|0,m=u=f+F|0,t=(t=u>>>0>>0?t+1|0:t)+(A=s[n+196>>2])|0,A=Cn((u=f=u+s[n+192>>2]|0)^se,(f=u>>>0>>0?t+1|0:t)^w,32),t=b+(m=C)|0,b=J,J=t=(w=T+A|0)>>>0>>0?t+1|0:t,H=t=Cn(H^w,b^t,24),T=t,b=t+u|0,t=(j=C)+f|0,t=X+(b>>>0>>0?t+1|0:t)|0,X=f=b+P|0,F=Cn(f^A,(u=m)^(m=f>>>0

>>0?t+1|0:t),16),t=J+(T=C)|0,t=(f=w+F|0)>>>0>>0?t+1|0:t,w=f,u=j,j=t,u=Cn(H^f,u^t,63),J=C,t=ue+(f=g)|0,t=k+((b=$)>>>0>(P=b+U|0)>>>0?t+1|0:t)|0,b=g=R+P|0,P=Cn(g^D,(R=g>>>0>>0?t+1|0:t)^S,32),t=d+(g=C)|0,d=f,f=t=(k=N+P|0)>>>0>>0?t+1|0:t,d=S=Cn(k^U,d^t,24),A=t=C,S=P,P=(t=b)+(b=Z)|0,t=R+ge|0,t=(t=b>>>0>P>>>0?t+1|0:t)+A|0,N=R=(b=P)+d|0,D=Cn(S^R,(b=R>>>0>>0?t+1|0:t)^g,16),t=f+(P=C)|0,f=Cn((U=R=k+D|0)^d,(R=R>>>0>>0?t+1|0:t)^A,63),g=C,k=p,t=p+r|0,t=v+((d=(S=G)+L|0)>>>0>>0?t+1|0:t)|0,t=(p=O+d|0)>>>0>>0?t+1|0:t,O=p,p=t,S=Cn(O^z,t^_,32),t=E+(_=C)|0,t=(v=M+S|0)>>>0>>0?t+1|0:t,M=v,d=k,k=t,d=Cn(v^L,d^t,24),E=t=C,v=t,A=S,S=(t=O)+(O=oe)|0,t=p+o|0,t=(t=O>>>0>S>>>0?t+1|0:t)+v|0,L=p=S+d|0,S=Cn(A^p,(O=_)^(_=p>>>0>>0?t+1|0:t),16),t=k+(v=C)|0,t=(p=M+S|0)>>>0>>0?t+1|0:t,M=p,k=t,A=Cn(p^d,t^E,63),p=C,d=u,E=S,t=l+pe|0,t=(t=(u=(S=Y)+I|0)>>>0>>0?t+1|0:t)+(O=J)|0,S=l=d+u|0,J=t=l>>>0>>0?t+1|0:t,u=Cn(E^l,t^v,32),t=(t=R)+(R=C)|0,l=O,O=t=u>>>0>(v=u+U|0)>>>0?t+1|0:t,t=Cn(d^v,l^t,24),E=s[n+220>>2],d=t,U=u,l=S,S=t,u=l+t|0,t=(l=C)+J|0,t=(t=u>>>0>>0?t+1|0:t)+E|0,U=Cn(U^(I=J=u+s[n+216>>2]|0),(S=u>>>0>I>>>0?t+1|0:t)^R,16),t=O+(u=C)|0,O=t=v>>>0>(J=v+U|0)>>>0?t+1|0:t,J=Cn(d^(v=J),t^l,63),R=C,H=f,t=(l=g)+m|0,g=d=f+X|0,t=(t=d>>>0>>0?t+1|0:t)+(E=s[n+204>>2])|0,x=Cn((d=f=d+s[n+200>>2]|0)^W,(f=d>>>0>>0?t+1|0:t)^x,32),t=k+(g=C)|0,M=t=(m=M+x|0)>>>0>>0?t+1|0:t,E=l=Cn(H^m,t^l,24),W=t=C,k=t,H=x,t=f+Ae|0,t=(t=(l=(x=V)+d|0)>>>0>>0?t+1|0:t)+k|0,X=f=E+l|0,re=Cn(H^f,(k=f>>>0>>0?t+1|0:t)^g,16),t=M+(x=C)|0,t=(f=m+re|0)>>>0>>0?t+1|0:t,m=f,M=t,f=Cn(f^E,t^W,63),g=C,H=A,t=(l=p)+b|0,t=(A=A+N|0)>>>0>>0?t+1|0:t,N=A,t=t+(E=W=s[n+156>>2])|0,E=Cn((A=p=(d=s[n+152>>2])+A|0)^F,(p=A>>>0>>0?t+1|0:t)^T,32),t=(t=Q)+(Q=C)|0,T=t=(N=E+le|0)>>>0>>0?t+1|0:t,le=l=Cn(H^N,t^l,24),F=t=C,b=t,H=l,t=p+a|0,t=(t=(l=K)>>>0>(A=l+A|0)>>>0?t+1|0:t)+b|0,le=p=le+(l=A)|0,te=Cn(p^E,(b=p>>>0>>0?t+1|0:t)^Q,16),t=T+(p=C)|0,t=(Q=N+te|0)>>>0>>0?t+1|0:t,N=Q,T=t,E=Cn(H^Q,t^F,63),Q=C,H=h,t=(l=B)+_|0,B=A=h+L|0,t=(t=A>>>0>>0?t+1|0:t)+(F=s[n+236>>2])|0,P=Cn((A=h=A+s[n+232>>2]|0)^D,(B=A>>>0>>0?t+1|0:t)^P,32),t=j+(_=C)|0,D=h=w+P|0,h=Cn(H^h,(t=h>>>0>>0?t+1|0:t)^l,24),j=t,F=s[n+132>>2],L=h,H=D,D=P,t=(w=C)+B|0,t=(t=(l=h+A|0)>>>0>>0?t+1|0:t)+F|0,t=(h=(P=s[n+128>>2])+l|0)>>>0>>0?t+1|0:t,B=h,l=_,_=t,D=Cn(D^h,l^t,16),t=(t=j)+(j=C)|0,t=(h=H+(l=D)|0)>>>0>>0?t+1|0:t,l=h,h=w,w=t,L=t=Cn(L^l,h^t,63),A=t,I=t+I|0,t=(h=C)+S|0,t=F+(A>>>0>I>>>0?t+1|0:t)|0,I=Cn((A=S=I+P|0)^re,(P=P>>>0>A>>>0?t+1|0:t)^x,32),t=T+(x=C)|0,t=N>>>0>(S=N+I|0)>>>0?t+1|0:t,N=S,S=h,h=t,L=S=Cn(L^N,S^t,24),F=t=C,T=t,H=S,t=P+r|0,t=(t=(A=(S=G)+A|0)>>>0>>0?t+1|0:t)+T|0,L=P=L+A|0,re=Cn(P^I,(T=P>>>0>>0?t+1|0:t)^x,16),t=h+(P=C)|0,t=N>>>0>(x=N+re|0)>>>0?t+1|0:t,N=x,x=t,I=Cn(H^N,t^F,63),h=C,S=R,H=J,t=R+k|0,R=A=J+X|0,t=(t=A>>>0>>0?t+1|0:t)+(F=s[n+148>>2])|0,X=Cn((A=J=A+s[n+144>>2]|0)^te,(J=R>>>0>A>>>0?t+1|0:t)^p,32),t=w+(R=C)|0,k=t=(p=l+X|0)>>>0>>0?t+1|0:t,F=t=Cn(H^p,t^S,24),l=t,S=t+A|0,t=(w=C)+J|0,t=W+(l>>>0>S>>>0?t+1|0:t)|0,W=J=d+S|0,X=Cn(J^X,(l=d>>>0>J>>>0?t+1|0:t)^R,16),t=k+(S=C)|0,R=Cn(F^(k=J=p+X|0),(d=w)^(w=p>>>0>k>>>0?t+1|0:t),63),p=C,J=g,F=f,t=g+b|0,g=d=f+le|0,t=(t=d>>>0>>0?t+1|0:t)+(A=s[n+164>>2])|0,A=Cn((d=f=d+s[n+160>>2]|0)^D,(f=d>>>0>>0?t+1|0:t)^j,32),t=O+(g=C)|0,O=J,J=t=v>>>0>(j=v+A|0)>>>0?t+1|0:t,v=Cn(F^j,O^t,24),D=t=C,b=t,H=v,t=f+o|0,t=(t=(v=oe)>>>0>(O=v+d|0)>>>0?t+1|0:t)+b|0,le=f=H+(v=O)|0,F=Cn(f^A,(b=f>>>0>>0?t+1|0:t)^g,16),t=J+(v=C)|0,t=(f=j+F|0)>>>0>>0?t+1|0:t,j=f,O=t,f=Cn(H^f,t^D,63),g=C,J=Q,t=Q+ge|0,t=_+((d=Z)>>>0>(A=d+E|0)>>>0?t+1|0:t)|0,u=Cn((d=Q=B+A|0)^U,(Q=d>>>0>>0?t+1|0:t)^u,32),t=M+(B=C)|0,A=J,J=t=m>>>0>(_=m+u|0)>>>0?t+1|0:t,A=_=Cn((m=_)^E,A^t,24),E=t=C,D=u,t=Q+ue|0,t=(t=(u=(_=$)+d|0)>>>0<_>>>0?t+1|0:t)+E|0,M=Q=A+u|0,u=Cn(D^Q,(d=B)^(B=Q>>>0>>0?t+1|0:t),16),t=J+(_=C)|0,E=Cn((d=Q=m+u|0)^A,(Q=m>>>0>d>>>0?t+1|0:t)^E,63),J=C,m=p,D=R,U=u,t=p+T|0,t=(t=(u=R+L|0)>>>0>>0?t+1|0:t)+(A=s[n+196>>2])|0,u=Cn(U^(T=R=u+s[n+192>>2]|0),(R=u>>>0>R>>>0?t+1|0:t)^_,32),t=O+(p=C)|0,A=m,m=t=(_=j+u|0)>>>0>>0?t+1|0:t,t=Cn(D^_,A^t,24),D=s[n+204>>2],A=t,O=T,T=t,O=O+t|0,t=(j=C)+R|0,t=(t=O>>>0>>0?t+1|0:t)+D|0,U=R=O+s[n+200>>2]|0,L=Cn(R^u,(T=R>>>0>>0?t+1|0:t)^p,16),t=m+(O=C)|0,R=Cn(A^(m=R=_+L|0),(_=m>>>0<_>>>0?t+1|0:t)^j,63),p=C,j=g,D=f,H=d,t=g+l|0,t=(t=(d=f+W|0)>>>0>>0?t+1|0:t)+(A=te=s[n+212>>2])|0,d=Cn((l=f=(u=s[n+208>>2])+d|0)^re,(f=f>>>0>>0?t+1|0:t)^P,32),t=(t=Q)+(Q=C)|0,A=j,j=t=(g=H+d|0)>>>0>>0?t+1|0:t,t=Cn(D^g,A^t,24),D=s[n+220>>2],H=t,A=d,d=l,l=t,d=d+t|0,t=(P=C)+f|0,t=(t=d>>>0>>0?t+1|0:t)+D|0,W=f=d+s[n+216>>2]|0,d=Cn(A^f,(l=f>>>0>>0?t+1|0:t)^Q,16),t=j+(A=C)|0,j=Q=g+d|0,Q=Cn(H^Q,(f=P)^(P=g>>>0>Q>>>0?t+1|0:t),63),f=C,H=E,t=b+a|0,t=(t=(E=K)>>>0>(D=E+le|0)>>>0?t+1|0:t)+(g=J)|0,D=Cn((J=b=H+(E=D)|0)^X,(b=b>>>0>>0?t+1|0:t)^S,32),t=x+(S=C)|0,t=N>>>0>(E=N+D|0)>>>0?t+1|0:t,N=E,E=g,g=t,E=Cn(H^N,E^t,24),x=t=C,H=E,t=b+t|0,t=(t=(E=E+J|0)>>>0>>0?t+1|0:t)+(X=s[n+236>>2])|0,le=J=(b=E)+s[n+232>>2]|0,X=Cn(J^D,(b=b>>>0>J>>>0?t+1|0:t)^S,16),t=g+(S=C)|0,D=Cn(H^(g=J=N+X|0),(N=N>>>0>g>>>0?t+1|0:t)^x,63),J=C,x=h,H=I,t=h+Ae|0,t=B+((I=(E=V)+I|0)>>>0>>0?t+1|0:t)|0,v=Cn((E=h=M+I|0)^F,(h=h>>>0>>0?t+1|0:t)^v,32),t=w+(B=C)|0,k=t=k>>>0>(M=k+v|0)>>>0?t+1|0:t,I=x=Cn(H^M,t^x,24),F=t=C,w=t,H=v,t=h+pe|0,t=(t=(v=Y)>>>0>(x=v+E|0)>>>0?t+1|0:t)+w|0,w=h=I+(v=x)|0,E=Cn(H^h,(E=B)^(B=h>>>0>>0?t+1|0:t),16),t=k+(v=C)|0,t=(h=M+E|0)>>>0>>0?t+1|0:t,M=h,k=t,x=Cn(h^I,t^F,63),I=t=C,h=t,F=d,t=T+Ae|0,T=d=U+V|0,t=(t=d>>>0>>0?t+1|0:t)+h|0,A=Cn(F^(d=V=d+x|0),(V=T>>>0>d>>>0?t+1|0:t)^A,32),t=N+(h=C)|0,N=t=g>>>0>(T=g+A|0)>>>0?t+1|0:t,U=t=Cn(x^(g=T),I^t,24),x=t,d=t+d|0,t=(T=C)+V|0,t=te+(d>>>0>>0?t+1|0:t)|0,I=Cn((I=A)^(A=V=d+u|0),(x=u>>>0>A>>>0?t+1|0:t)^h,16),t=N+(u=C)|0,g=Cn(U^(N=V=g+I|0),(d=T)^(T=g>>>0>N>>>0?t+1|0:t),63),h=C,V=p,F=R,t=p+l|0,p=d=R+W|0,t=(t=d>>>0>>0?t+1|0:t)+(U=s[n+164>>2])|0,S=Cn((d=R=d+s[n+160>>2]|0)^X,(R=p>>>0>d>>>0?t+1|0:t)^S,32),t=k+(p=C)|0,t=(l=M+S|0)>>>0>>0?t+1|0:t,M=l,k=V,V=t,t=Cn(F^l,k^t,24),W=s[n+196>>2],F=t,U=S,l=t,S=t+d|0,t=(k=C)+R|0,t=(t=l>>>0>S>>>0?t+1|0:t)+W|0,U=Cn(U^(d=R=(l=S)+s[n+192>>2]|0),(S=p)^(p=l>>>0>d>>>0?t+1|0:t),16),t=V+(W=C)|0,t=(R=M+U|0)>>>0>>0?t+1|0:t,M=R,l=k,k=t,l=Cn(F^R,l^t,63),V=C,R=f,F=Q,t=f+b|0,t=(t=(S=Q+le|0)>>>0>>0?t+1|0:t)+(Ae=s[n+204>>2])|0,v=Cn((S=Q=(f=S)+s[n+200>>2]|0)^E,(Q=f>>>0>Q>>>0?t+1|0:t)^v,32),t=_+(f=C)|0,t=m>>>0>(b=m+v|0)>>>0?t+1|0:t,m=b,b=R,R=t,E=b=Cn(F^m,b^t,24),Ae=t=C,_=t,F=b,t=Q+pe|0,t=(t=(b=S+Y|0)>>>0>>0?t+1|0:t)+_|0,E=Cn((S=Y=E+b|0)^v,(E=f)^(f=b>>>0>S>>>0?t+1|0:t),16),t=R+(_=C)|0,b=t=m>>>0>(Y=m+E|0)>>>0?t+1|0:t,Y=Cn(F^(m=Y),t^Ae,63),Q=C,t=B+(R=J)|0,B=v=w+D|0,t=(t=v>>>0>>0?t+1|0:t)+(Ae=s[n+236>>2])|0,O=Cn((v=J=v+s[n+232>>2]|0)^L,(J=B>>>0>v>>>0?t+1|0:t)^O,32),t=P+(B=C)|0,P=R,R=t=(w=j+O|0)>>>0>>0?t+1|0:t,P=Cn(w^D,P^t,24),L=t=C,j=t,t=J+ge|0,t=(t=(v=v+Z|0)>>>0>>0?t+1|0:t)+j|0,D=Cn((j=Z=v+P|0)^O,(D=B)^(B=v>>>0>j>>>0?t+1|0:t),16),t=R+(ge=C)|0,v=t=w>>>0>(Z=w+D|0)>>>0?t+1|0:t,J=Cn(P^(w=Z),t^L,63),R=C,t=x+r|0,t=(t=(P=A+G|0)>>>0>>0?t+1|0:t)+(O=V)|0,t=P>>>0>(G=P+l|0)>>>0?t+1|0:t,P=G,G=t,t=a+t|0,K=t=(O=K+P|0)>>>0>>0?t+1|0:t,A=O,O=Cn(P^D,G^ge,32),t=b+(P=C)|0,x=Cn((b=G=m+O|0)^l,(G=m>>>0>b>>>0?t+1|0:t)^V,24),t=(l=C)+K|0,t=(m=x)>>>0>(V=A+m|0)>>>0?t+1|0:t,m=V,s[n>>2]=m,s[n+4>>2]=t,Z=t,t=Cn(m^O,t^P,16),O=V=C,s[n+120>>2]=t,s[n+124>>2]=O,K=t,b=t+b|0,t=O+G|0,s[n+80>>2]=b,t=b>>>0>>0?t+1|0:t,s[n+84>>2]=t,ye=n,be=Cn(x^b,t^l,63),s[ye+40>>2]=be,s[n+44>>2]=C,G=Q,l=Y,t=p+Q|0,t=(t=(K=d+Y|0)>>>0>>0?t+1|0:t)+(b=s[n+132>>2])|0,K=t=(Y=K+s[n+128>>2]|0)>>>0>>0?t+1|0:t,p=Cn(Y^I,t^u,32),t=v+(b=C)|0,d=G,G=t=w>>>0>(Q=w+p|0)>>>0?t+1|0:t,v=Cn(l^(w=Q),d^t,24),t=K+(O=C)|0,t=(Q=v+Y|0)>>>0>>0?t+1|0:t,Y=(K=s[n+144>>2])+Q|0,t=s[n+148>>2]+t|0,t=Y>>>0>>0?t+1|0:t,s[n+8>>2]=Y,s[n+12>>2]=t,t=Cn(p^Y,t^b,16),Q=V=C,s[n+96>>2]=t,s[n+100>>2]=Q,Y=t,K=t+w|0,t=Q+G|0,G=K,s[n+88>>2]=G,t=Y>>>0>G>>>0?t+1|0:t,s[n+92>>2]=t,ye=n,be=Cn(v^G,t^O,63),s[ye+48>>2]=be,s[n+52>>2]=C,d=$,t=f+R|0,t=(t=(Y=S+J|0)>>>0>>0?t+1|0:t)+(K=s[n+220>>2])|0,t=(V=Y+s[n+216>>2]|0)>>>0>>0?t+1|0:t,$=V,K=V,Y=d+V|0,V=t,t=t+ue|0,t=Y>>>0>>0?t+1|0:t,K=Y,Y=t,d=K,l=J,K=Cn(U^$,V^W,32),t=T+(J=C)|0,R=Cn(l^(Q=V=N+K|0),(V=N>>>0>Q>>>0?t+1|0:t)^R,24),t=(p=C)+Y|0,Y=$=d+(f=R)|0,s[n+16>>2]=Y,t=f>>>0>Y>>>0?t+1|0:t,s[n+20>>2]=t,t=Cn(Y^K,t^J,16),G=C,s[n+104>>2]=t,s[n+108>>2]=G,Y=t,$=t+Q|0,t=V+G|0,V=$,s[n+64>>2]=V,t=Y>>>0>V>>>0?t+1|0:t,s[n+68>>2]=t,ye=n,be=Cn(f^V,t^p,63),s[ye+56>>2]=be,s[n+60>>2]=C,t=h+o|0,t=(t=(Y=g+oe|0)>>>0>>0?t+1|0:t)+B|0,oe=t=j>>>0>(Y=j+Y|0)>>>0?t+1|0:t,J=Cn(Y^E,t^_,32),t=k+(Q=C)|0,G=t=M>>>0>($=M+J|0)>>>0?t+1|0:t,R=Cn($^g,h^t,24),t=oe+(f=C)|0,t=Y>>>0>(K=R+Y|0)>>>0?t+1|0:t,Y=(oe=s[n+152>>2])+K|0,t=s[n+156>>2]+t|0,t=Y>>>0>>0?t+1|0:t,s[n+24>>2]=Y,s[n+28>>2]=t,t=Cn(J^Y,t^Q,16),s[n+112>>2]=t,oe=C,s[n+116>>2]=oe,Y=t+$|0,t=G+oe|0,G=Y,s[n+72>>2]=G,t=G>>>0<$>>>0?t+1|0:t,s[n+76>>2]=t,ye=n,be=Cn(R^G,t^f,63),s[ye+32>>2]=be,s[n+36>>2]=C,t=s[n+68>>2]^(c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24)^Z,G=s[n+64>>2]^(c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24)^m,i[0|e]=G,i[e+1|0]=G>>>8,i[e+2|0]=G>>>16,i[e+3|0]=G>>>24,i[e+4|0]=t,i[e+5|0]=t>>>8,i[e+6|0]=t>>>16,i[e+7|0]=t>>>24,Z=1;t=(G=Z<<3)+e|0,V=G=n+G|0,Y=s[G>>2]^(c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24),oe=s[(G=G- -64|0)>>2],G=s[G+4>>2]^s[V+4>>2]^(c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24),V=Y^oe,i[0|t]=V,i[t+1|0]=V>>>8,i[t+2|0]=V>>>16,i[t+3|0]=V>>>24,i[t+4|0]=G,i[t+5|0]=G>>>8,i[t+6|0]=G>>>16,i[t+7|0]=G>>>24,8!=(0|(Z=Z+1|0)););y=n+256|0}function w(e,t,n,r){var o=0,i=0,a=0,c=0,d=0,u=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,y=0,b=0,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,T=0,M=0,U=0,H=0,j=0,J=0,F=0;for(function(e,t){for(var n=0,r=0,o=0,i=0,a=0;i=o=(r=n<<3)+e|0,a=Me(t+r|0),s[i>>2]=a,s[o+4>>2]=C,16!=(0|(n=n+1|0)););}(n,t),t=q(r,e,64),l=s[n>>2],h=s[n+4>>2],r=0;;){if(o=Cn(E=s[(a=t)+32>>2],f=s[a+36>>2],14),m=C,o=Cn(E,f,18)^o,b=C^m,i=l,l=Cn(E,f,41)^o,o=(C^b)+h|0,o=l>>>0>(m=i+l|0)>>>0?o+1|0:o,l=m,g=s[a+48>>2],l=(b=s[(h=34784+(F=r<<3)|0)>>2])+l|0,o=s[h+4>>2]+o|0,o=l>>>0>>0?o+1|0:o,l=(h=g^((_=s[a+40>>2])^g)&E)+l|0,o=(((i=s[a+52>>2])^(I=s[a+44>>2]))&f^i)+o|0,o=l>>>0>>0?o+1|0:o,m=(d=l)+(l=s[a+56>>2])|0,o=s[a+60>>2]+o|0,o=l>>>0>m>>>0?o+1|0:o,h=m+(b=s[a+24>>2])|0,l=o,o=o+s[a+28>>2]|0,o=h>>>0>>0?o+1|0:o,b=h,p=o,s[a+24>>2]=h,s[a+28>>2]=o,o=Cn(w=s[a>>2],h=s[a+4>>2],28),y=C,o=Cn(w,h,34)^o,c=C^y,y=m+(Cn(w,h,39)^o)|0,o=l+(C^c)|0,o=m>>>0>y>>>0?o+1|0:o,m=(d=w&((c=s[a+16>>2])|(u=s[a+8>>2]))|c&u)+y|0,o=(h&((y=s[a+20>>2])|(l=s[a+12>>2]))|l&y)+o|0,m=o=d>>>0>(A=m)>>>0?o+1|0:o,s[a+56>>2]=A,s[a+60>>2]=o,o=Cn(b,p,14),d=C,M=Cn(b,p,18)^o,d^=C,v=c,o=((f^I)&p^I)+i|0,o=(c=(E^_)&b^_)>>>0>(g=c+g|0)>>>0?o+1|0:o,i=Cn(b,p,41)^M,o=(C^d)+o|0,o=i>>>0>(g=i+g|0)>>>0?o+1|0:o,g=(d=s[(c=M=(i=(1|r)<<3)+n|0)>>2])+g|0,o=s[c+4>>2]+o|0,o=d>>>0>g>>>0?o+1|0:o,g=(c=s[(i=i+34784|0)>>2])+g|0,o=s[i+4>>2]+o|0,c=o=c>>>0>g>>>0?o+1|0:o,o=o+y|0,y=g=v+(i=d=g)|0,i=o=i>>>0>g>>>0?o+1|0:o,s[a+16>>2]=g,s[a+20>>2]=o,g=a,o=Cn(A,m,28),a=C,B=Cn(A,m,34)^o,k=C^a,a=(o=d)+(d=(u|w)&A|u&w)|0,o=((l|h)&m|l&h)+c|0,o=a>>>0>>0?o+1|0:o,c=Cn(A,m,39)^B,o=(C^k)+o|0,B=a=c+a|0,a=o=a>>>0>>0?o+1|0:o,s[g+48>>2]=B,s[g+52>>2]=o,d=g,o=Cn(y,i,14),g=C,c=Cn(y,i,18)^o,k=C^g,v=u,o=((f^p)&i^f)+I|0,o=(u=(b^E)&y^E)>>>0>(g=u+_|0)>>>0?o+1|0:o,c=Cn(y,i,41)^c,o=(C^k)+o|0,o=c>>>0>(g=c+g|0)>>>0?o+1|0:o,g=(_=s[(u=N=(c=(2|r)<<3)+n|0)>>2])+g|0,o=s[u+4>>2]+o|0,o=g>>>0<_>>>0?o+1|0:o,g=(u=s[(c=c+34784|0)>>2])+g|0,o=s[c+4>>2]+o|0,o=u>>>0>g>>>0?o+1|0:o,g=v+(c=u=g)|0,v=l,l=o,o=v+o|0,c=o=c>>>0>g>>>0?o+1|0:o,s[d+8>>2]=g,s[d+12>>2]=o,o=Cn(B,a,28),_=C,I=Cn(B,a,34)^o,_^=C,o=((h|m)&a|h&m)+l|0,o=(u=(k=(A|w)&B|A&w)+u|0)>>>0>>0?o+1|0:o,l=u,u=Cn(B,a,39)^I,o=(C^_)+o|0,_=l=l+u|0,l=o=l>>>0>>0?o+1|0:o,s[d+40>>2]=_,s[d+44>>2]=o,u=d,o=Cn(g,c,14),d=C,I=Cn(g,c,18)^o,k=C^d,v=w,o=(p^(i^p)&c)+f|0,o=(d=(w=b^(y^b)&g)+E|0)>>>0>>0?o+1|0:o,f=d,d=Cn(g,c,41)^I,o=(C^k)+o|0,o=d>>>0>(f=f+d|0)>>>0?o+1|0:o,f=(I=s[(E=w=(d=(3|r)<<3)+n|0)>>2])+f|0,o=s[E+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,f=(E=s[(d=d+34784|0)>>2])+f|0,o=s[d+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,E=f,f=v+(d=f)|0,v=h,h=o,o=v+o|0,d=o=d>>>0>f>>>0?o+1|0:o,s[u>>2]=f,s[u+4>>2]=o,o=Cn(_,l,28),I=C,k=Cn(_,l,34)^o,I^=C,o=((a|m)&l|a&m)+h|0,o=(E=(P=(A|B)&_|A&B)+E|0)>>>0

>>0?o+1|0:o,h=E,E=Cn(_,l,39)^k,o=(C^I)+o|0,o=(h=h+E|0)>>>0>>0?o+1|0:o,E=h,h=o,s[u+32>>2]=E,s[u+36>>2]=o,o=Cn(f,d,14),I=C,k=Cn(f,d,18)^o,I^=C,v=A,o=p+(i^(i^c)&d)|0,o=(A=b+(y^(g^y)&f)|0)>>>0>>0?o+1|0:o,p=Cn(f,d,41)^k,o=(C^I)+o|0,o=p>>>0>(b=p+A|0)>>>0?o+1|0:o,b=(I=s[(A=x=(p=(4|r)<<3)+n|0)>>2])+b|0,o=s[A+4>>2]+o|0,o=b>>>0>>0?o+1|0:o,b=(A=s[(p=p+34784|0)>>2])+b|0,o=s[p+4>>2]+o|0,p=m,m=o=A>>>0>b>>>0?o+1|0:o,o=p+o|0,p=o=(A=b)>>>0>(b=v+A|0)>>>0?o+1|0:o,s[u+56>>2]=b,s[u+60>>2]=o,o=Cn(E,h,28),I=C,k=Cn(E,h,34)^o,I^=C,o=((a|l)&h|a&l)+m|0,o=(A=(P=(_|B)&E|_&B)+A|0)>>>0

>>0?o+1|0:o,m=A,A=Cn(E,h,39)^k,o=(C^I)+o|0,I=m=m+A|0,m=o=A>>>0>m>>>0?o+1|0:o,s[u+24>>2]=I,s[u+28>>2]=o,o=Cn(b,p,14),A=C,k=Cn(b,p,18)^o,P=C^A,v=B,o=i+(c^(c^d)&p)|0,o=(A=y+(g^(f^g)&b)|0)>>>0>>0?o+1|0:o,i=Cn(b,p,41)^k,o=(C^P)+o|0,o=i>>>0>(y=i+A|0)>>>0?o+1|0:o,y=(k=s[(A=B=(i=(5|r)<<3)+n|0)>>2])+y|0,o=s[A+4>>2]+o|0,o=y>>>0>>0?o+1|0:o,y=(A=s[(i=i+34784|0)>>2])+y|0,o=s[i+4>>2]+o|0,o=A>>>0>y>>>0?o+1|0:o,y=v+(i=A=y)|0,v=a,a=o,o=v+o|0,i=o=i>>>0>y>>>0?o+1|0:o,s[u+48>>2]=y,s[u+52>>2]=o,o=Cn(I,m,28),k=C,P=Cn(I,m,34)^o,k^=C,o=((l|h)&m|l&h)+a|0,o=(A=(S=(E|_)&I|E&_)+A|0)>>>0>>0?o+1|0:o,a=A,A=Cn(I,m,39)^P,o=(C^k)+o|0,P=a=a+A|0,a=o=a>>>0>>0?o+1|0:o,s[u+16>>2]=P,s[u+20>>2]=o,o=Cn(y,i,14),A=C,k=Cn(y,i,18)^o,S=C^A,v=_,o=c+(d^(d^p)&i)|0,o=(A=g+(f^(f^b)&y)|0)>>>0>>0?o+1|0:o,c=Cn(y,i,41)^k,o=(C^S)+o|0,o=c>>>0>(g=c+A|0)>>>0?o+1|0:o,g=(_=s[(A=H=(c=(6|r)<<3)+n|0)>>2])+g|0,o=s[A+4>>2]+o|0,o=g>>>0<_>>>0?o+1|0:o,g=(A=s[(c=c+34784|0)>>2])+g|0,o=s[c+4>>2]+o|0,o=A>>>0>g>>>0?o+1|0:o,g=v+(c=A=g)|0,v=l,l=o,o=v+o|0,c=o=c>>>0>g>>>0?o+1|0:o,s[u+40>>2]=g,s[u+44>>2]=o,o=Cn(P,a,28),_=C,k=Cn(P,a,34)^o,_^=C,o=((h|m)&a|h&m)+l|0,o=(A=(S=(I|E)&P|I&E)+A|0)>>>0>>0?o+1|0:o,l=A,A=Cn(P,a,39)^k,o=(C^_)+o|0,S=l=l+A|0,l=o=l>>>0>>0?o+1|0:o,s[u+8>>2]=S,s[u+12>>2]=o,o=Cn(g,c,14),A=C,_=Cn(g,c,18)^o,k=C^A,v=E,o=d+(p^(i^p)&c)|0,o=(A=f+(b^(y^b)&g)|0)>>>0>>0?o+1|0:o,d=Cn(g,c,41)^_,o=(C^k)+o|0,o=d>>>0>(f=d+A|0)>>>0?o+1|0:o,f=(E=s[(A=_=(d=(7|r)<<3)+n|0)>>2])+f|0,o=s[A+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,f=(A=s[(d=d+34784|0)>>2])+f|0,o=s[d+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,f=v+(d=A=f)|0,v=h,h=o,o=v+o|0,d=o=d>>>0>f>>>0?o+1|0:o,s[u+32>>2]=f,s[u+36>>2]=o,o=Cn(S,l,28),E=C,k=Cn(S,l,34)^o,E^=C,o=((a|m)&l|a&m)+h|0,o=(A=(v=(I|P)&S|I&P)+A|0)>>>0>>0?o+1|0:o,h=A,A=Cn(S,l,39)^k,o=(C^E)+o|0,v=h=h+A|0,h=o=A>>>0>h>>>0?o+1|0:o,s[u>>2]=v,s[u+4>>2]=o,A=u,o=Cn(f,d,14),u=C,E=Cn(f,d,18)^o,k=C^u,o=p+(i^(i^c)&d)|0,o=(u=b+(y^(g^y)&f)|0)>>>0>>0?o+1|0:o,p=Cn(f,d,41)^E,o=(C^k)+o|0,o=p>>>0>(b=p+u|0)>>>0?o+1|0:o,b=(E=s[(u=k=(p=(8|r)<<3)+n|0)>>2])+b|0,o=s[u+4>>2]+o|0,o=b>>>0>>0?o+1|0:o,b=(u=s[(p=p+34784|0)>>2])+b|0,o=s[p+4>>2]+o|0,o=u>>>0>b>>>0?o+1|0:o,E=b,u=m,m=o,o=u+o|0,u=o=(p=b)>>>0>(b=p+I|0)>>>0?o+1|0:o,s[A+24>>2]=b,s[A+28>>2]=o,p=A,o=Cn(v,h,28),A=C,I=Cn(v,h,34)^o,O=C^A,A=(o=E)+(E=(S|P)&v|S&P)|0,o=((a|l)&h|a&l)+m|0,o=A>>>0>>0?o+1|0:o,m=A,A=Cn(v,h,39)^I,o=(C^O)+o|0,O=m=m+A|0,m=o=A>>>0>m>>>0?o+1|0:o,s[p+56>>2]=O,s[p+60>>2]=o,o=Cn(b,u,14),A=C,E=Cn(b,u,18)^o,I=C^A,o=i+(c^(c^d)&u)|0,o=(A=y+(g^(f^g)&b)|0)>>>0>>0?o+1|0:o,i=Cn(b,u,41)^E,o=(C^I)+o|0,o=i>>>0>(y=i+A|0)>>>0?o+1|0:o,y=(I=s[(A=E=(i=(9|r)<<3)+n|0)>>2])+y|0,o=s[A+4>>2]+o|0,o=y>>>0>>0?o+1|0:o,y=(A=s[(i=i+34784|0)>>2])+y|0,o=s[i+4>>2]+o|0,o=A>>>0>y>>>0?o+1|0:o,A=a,a=o,o=A+o|0,A=o=(i=y)>>>0>(y=i+P|0)>>>0?o+1|0:o,s[p+16>>2]=y,s[p+20>>2]=o,o=Cn(O,m,28),I=C,P=Cn(O,m,34)^o,I^=C,o=((l|h)&m|l&h)+a|0,o=(i=(Q=(v|S)&O|v&S)+i|0)>>>0>>0?o+1|0:o,a=i,i=Cn(O,m,39)^P,o=(C^I)+o|0,Q=a=a+i|0,a=o=a>>>0>>0?o+1|0:o,s[p+48>>2]=Q,s[p+52>>2]=o,o=Cn(y,A,14),i=C,I=Cn(y,A,18)^o,P=C^i,o=c+(d^(u^d)&A)|0,o=(i=g+(f^(f^b)&y)|0)>>>0>>0?o+1|0:o,c=i,i=Cn(y,A,41)^I,o=(C^P)+o|0,o=i>>>0>(g=c+i|0)>>>0?o+1|0:o,g=(I=s[(c=P=(i=(10|r)<<3)+n|0)>>2])+g|0,o=s[c+4>>2]+o|0,o=g>>>0>>0?o+1|0:o,g=(c=s[(i=i+34784|0)>>2])+g|0,o=s[i+4>>2]+o|0,o=c>>>0>g>>>0?o+1|0:o,I=g,c=l,l=o,o=c+o|0,c=o=(i=g)>>>0>(g=i+S|0)>>>0?o+1|0:o,s[p+8>>2]=g,s[p+12>>2]=o,i=p,o=Cn(Q,a,28),p=C,S=Cn(Q,a,34)^o,D=C^p,p=(o=I)+(I=(v|O)&Q|v&O)|0,o=((h|m)&a|h&m)+l|0,o=p>>>0>>0?o+1|0:o,l=p,p=Cn(Q,a,39)^S,o=(C^D)+o|0,p=o=(l=l+p|0)>>>0

>>0?o+1|0:o,s[i+40>>2]=l,s[i+44>>2]=o,o=Cn(g,c,14),I=C,S=Cn(g,c,18)^o,D=C^I,R=v,o=d+(u^(u^A)&c)|0,o=(I=f+(b^(y^b)&g)|0)>>>0>>0?o+1|0:o,d=Cn(g,c,41)^S,o=(C^D)+o|0,o=d>>>0>(f=d+I|0)>>>0?o+1|0:o,f=(v=s[(I=(d=(11|r)<<3)+n|0)>>2])+f|0,o=s[I+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,f=(S=s[(d=d+34784|0)>>2])+f|0,o=s[d+4>>2]+o|0,o=f>>>0>>0?o+1|0:o,v=f,S=h,h=o,o=S+o|0,d=o=(d=f)>>>0>(f=R+d|0)>>>0?o+1|0:o,s[i>>2]=f,s[i+4>>2]=o,S=i,o=Cn(l,p,28),i=C,D=Cn(l,p,34)^o,T=C^i,i=(o=v)+(v=(O|Q)&l|O&Q)|0,o=((a|m)&p|a&m)+h|0,o=i>>>0>>0?o+1|0:o,h=i,i=Cn(l,p,39)^D,o=(C^T)+o|0,i=o=i>>>0>(h=h+i|0)>>>0?o+1|0:o,s[S+32>>2]=h,s[S+36>>2]=o,v=S,o=Cn(f,d,14),S=C,D=Cn(f,d,18)^o,T=C^S,R=O,o=u+(A^(c^A)&d)|0,o=(S=b+(y^(g^y)&f)|0)>>>0>>0?o+1|0:o,u=Cn(f,d,41)^D,o=(C^T)+o|0,o=u>>>0>(b=u+S|0)>>>0?o+1|0:o,b=(D=s[(O=S=(u=(12|r)<<3)+n|0)>>2])+b|0,o=s[O+4>>2]+o|0,o=b>>>0>>0?o+1|0:o,b=(O=s[(u=u+34784|0)>>2])+b|0,o=s[u+4>>2]+o|0,o=b>>>0>>0?o+1|0:o,O=b,b=R+(u=b)|0,R=m,m=o,o=R+o|0,D=b,b=o=u>>>0>b>>>0?o+1|0:o,s[v+56>>2]=D,s[v+60>>2]=o,u=v,o=Cn(h,i,28),v=C,T=Cn(h,i,34)^o,R=C^v,v=(o=O)+(O=(l|Q)&h|l&Q)|0,o=((a|p)&i|a&p)+m|0,o=v>>>0>>0?o+1|0:o,m=v,v=Cn(h,i,39)^T,o=(C^R)+o|0,O=m=m+v|0,m=o=m>>>0>>0?o+1|0:o,s[u+24>>2]=O,s[u+28>>2]=o,v=u,o=Cn(D,b,14),u=C,T=Cn(D,b,18)^o,R=C^u,U=Q,o=A+(c^(c^d)&b)|0,o=(u=y+(g^(f^g)&D)|0)>>>0>>0?o+1|0:o,A=u,u=Cn(D,b,41)^T,o=(C^R)+o|0,o=u>>>0>(y=A+u|0)>>>0?o+1|0:o,u=(u=y)+(T=s[(y=(A=(13|r)<<3)+n|0)>>2])|0,o=s[y+4>>2]+o|0,o=u>>>0>>0?o+1|0:o,u=(Q=s[(A=A+34784|0)>>2])+u|0,o=s[A+4>>2]+o|0,o=u>>>0>>0?o+1|0:o,Q=u,A=u,R=a,a=o,o=R+o|0,T=u=U+u|0,u=o=u>>>0>>0?o+1|0:o,s[v+48>>2]=T,s[v+52>>2]=o,A=v,o=Cn(O,m,28),v=C,R=Cn(O,m,34)^o,U=C^v,v=(o=Q)+(Q=(l|h)&O|l&h)|0,o=((i|p)&m|i&p)+a|0,o=v>>>0>>0?o+1|0:o,a=v,v=Cn(O,m,39)^R,o=(C^U)+o|0,Q=a=a+v|0,a=o=a>>>0>>0?o+1|0:o,s[A+16>>2]=Q,s[A+20>>2]=o,o=Cn(T,u,14),v=C,R=Cn(T,u,18)^o,U=C^v,o=c+(d^(d^b)&u)|0,o=(v=g+(f^(f^D)&T)|0)>>>0>>0?o+1|0:o,c=Cn(T,u,41)^R,o=(C^U)+o|0,o=c>>>0>(g=c+v|0)>>>0?o+1|0:o,c=(c=g)+(U=s[(g=(v=(14|r)<<3)+n|0)>>2])|0,o=s[g+4>>2]+o|0,o=c>>>0>>0?o+1|0:o,c=(R=s[(v=v+34784|0)>>2])+c|0,o=s[v+4>>2]+o|0,U=c,v=o=c>>>0>>0?o+1|0:o,o=p+o|0,R=c=l+c|0,l=o=c>>>0>>0?o+1|0:o,s[A+40>>2]=c,s[A+44>>2]=o,c=A,o=Cn(Q,a,28),p=C,A=Cn(Q,a,34)^o,j=C^p,p=(o=U)+(U=(h|O)&Q|h&O)|0,o=((i|m)&a|i&m)+v|0,o=p>>>0>>0?o+1|0:o,A=Cn(Q,a,39)^A,o=(C^j)+o|0,o=A>>>0>(p=A+p|0)>>>0?o+1|0:o,A=p,p=o,s[c+8>>2]=A,s[c+12>>2]=o,o=Cn(R,l,14),c=C,U=Cn(R,l,18)^o,j=C^c,o=d+(b^(u^b)&l)|0,o=(v=f+(D^(D^T)&R)|0)>>>0>>0?o+1|0:o,b=Cn(R,l,41)^U,o=(C^j)+o|0,o=(l=b+v|0)>>>0>>0?o+1|0:o,l=(u=s[(d=b=(f=(15|r)<<3)+n|0)>>2])+l|0,o=s[d+4>>2]+o|0,o=l>>>0>>0?o+1|0:o,l=(d=s[(f=f+34784|0)>>2])+l|0,o=s[f+4>>2]+o|0,o=l>>>0>>0?o+1|0:o,f=h+(d=l)|0,l=o,o=i+o|0,s[(c=t)+32>>2]=f,s[c+36>>2]=f>>>0>>0?o+1|0:o,o=Cn(A,p,28),h=C,i=Cn(A,p,34)^o,c=C^h,o=((a|m)&p|a&m)+l|0,m=(f=(a=d)+(d=(O|Q)&A|O&Q)|0)+(a=Cn(A,p,39)^i)|0,o=(C^c)+(d>>>0>f>>>0?o+1|0:o)|0,s[(h=t)>>2]=m,s[h+4>>2]=a>>>0>m>>>0?o+1|0:o,64==(0|r)){for(;m=n=(r=J<<3)+e|0,r=(a=s[(o=t+r|0)>>2])+s[m>>2]|0,o=s[m+4>>2]+s[o+4>>2]|0,s[m>>2]=r,s[m+4>>2]=r>>>0>>0?o+1|0:o,8!=(0|(J=J+1|0)););break}p=((r=r+16|0)<<3)+n|0,O=m=s[g+4>>2],o=m>>>6|0,m=((63&m)<<26|(Q=s[g>>2])>>>6)^Cn(Q,m,19),o^=C,m=(i=Cn(Q,O,61)^m)+(a=v=s[E>>2])|0,o=(h=s[E+4>>2])+(C^o)|0,o=a>>>0>m>>>0?o+1|0:o,m=(l=s[(a=n+F|0)>>2])+m|0,o=s[a+4>>2]+o|0,m=l>>>0>(i=m)>>>0?o+1|0:o,l=a=s[M+4>>2],o=a>>>7|0,a=((127&a)<<25|(f=s[M>>2])>>>7)^Cn(f,a,1),o^=C,d=i,i=Cn(f,l,8)^a,o=(C^o)+m|0,c=a=d+i|0,a=o=a>>>0>>0?o+1|0:o,s[p>>2]=c,s[p+4>>2]=o,o=s[(p=M)+76>>2]+l|0,i=f,l=(f=s[p+72>>2])>>>0>(i=m=i+f|0)>>>0?o+1|0:o,m=f=s[b+4>>2],o=f>>>6|0,f=((63&f)<<26|(A=s[b>>2])>>>6)^Cn(A,f,19),o^=C,d=i,i=Cn(A,m,61)^f,o=(C^o)+l|0,l=i>>>0>(d=f=d+i|0)>>>0?o+1|0:o,f=i=s[p+12>>2],o=i>>>7|0,i=((127&i)<<25|(u=s[p+8>>2])>>>7)^Cn(u,i,1),o^=C,M=d,d=Cn(u,f,8)^i,o=(C^o)+l|0,o=(i=M+d|0)>>>0>>0?o+1|0:o,d=i,l=o,s[p+128>>2]=i,s[p+132>>2]=o,p=N,i=f,o=Cn(c,a,19),N=C,f=o,o=a>>>6|0,a=(a=Cn(c,a,61)^f^((63&a)<<26|c>>>6))+(c=M=s[I>>2])|0,o=(f=s[I+4>>2])+(C^o^N)|0,o=a>>>0>>0?o+1|0:o,c=a,o=o+i|0,u=a=a+u|0,a=a>>>0>>0?o+1|0:o,c=i=s[w+4>>2],o=i>>>7|0,i=((127&i)<<25|(N=s[w>>2])>>>7)^Cn(N,i,1),o^=C,R=u,u=Cn(N,c,8)^i,o=(C^o)+a|0,o=(i=R+u|0)>>>0>>0?o+1|0:o,u=i,a=o,s[p+128>>2]=i,s[p+132>>2]=o,p=(o=N)+(N=s[(i=w)+72>>2])|0,o=s[i+76>>2]+c|0,c=o=p>>>0>>0?o+1|0:o,o=Cn(d,l,19),N=C,w=p,p=o,o=l>>>6|0,p=Cn(d,l,61)^p^((63&l)<<26|d>>>6),o=(C^o^N)+c|0,N=l=w+p|0,l=l>>>0

>>0?o+1|0:o,p=c=s[i+12>>2],o=c>>>7|0,c=((127&c)<<25|(d=s[i+8>>2])>>>7)^Cn(d,c,1),o^=C,w=Cn(d,p,8)^c,o=(C^o)+l|0,o=(c=w+N|0)>>>0>>0?o+1|0:o,w=c,l=o,s[i+128>>2]=c,s[i+132>>2]=o,i=x,c=p,o=Cn(u,a,19),x=C,R=d,d=o,o=a>>>6|0,a=(a=Cn(u,a,61)^d^((63&a)<<26|u>>>6))+(d=N=s[y>>2])|0,o=(p=s[y+4>>2])+(C^o^x)|0,o=a>>>0>>0?o+1|0:o,d=a,o=o+c|0,x=a=R+a|0,a=a>>>0>>0?o+1|0:o,d=c=s[B+4>>2],o=c>>>7|0,c=((127&c)<<25|(u=s[B>>2])>>>7)^Cn(u,c,1),o^=C,R=x,x=Cn(u,d,8)^c,o=(C^o)+a|0,o=(c=R+x|0)>>>0>>0?o+1|0:o,x=c,a=o,s[i+128>>2]=c,s[i+132>>2]=o,i=(o=u)+(u=s[(c=B)+72>>2])|0,o=s[c+76>>2]+d|0,d=o=i>>>0>>0?o+1|0:o,o=Cn(w,l,19),u=C,B=i,R=o,o=(i=l)>>>6|0,i=R^((63&i)<<26|w>>>6)^Cn(w,i,61),o=(C^o^u)+d|0,l=i>>>0>(u=l=B+i|0)>>>0?o+1|0:o,o=(i=d=s[c+12>>2])>>>7|0,d=((127&i)<<25|(B=s[c+8>>2])>>>7)^Cn(B,i,1),o^=C,w=u,u=Cn(B,i,8)^d,o=(C^o)+l|0,w=d=w+u|0,l=o=u>>>0>d>>>0?o+1|0:o,s[c+128>>2]=d,s[c+132>>2]=o,c=H,d=i,o=Cn(x,a,19),H=C,i=o,o=a>>>6|0,i=Cn(x,a,61)^i^((63&a)<<26|x>>>6),o=(C^o^H)+m|0,o=(a=i+A|0)>>>0>>0?o+1|0:o,i=a,o=o+d|0,B=a=a+B|0,a=a>>>0>>0?o+1|0:o,o=(i=u=s[_+4>>2])>>>7|0,u=((127&i)<<25|(d=s[_>>2])>>>7)^Cn(d,i,1),o^=C,x=B,B=Cn(d,i,8)^u,o=(C^o)+a|0,a=o=(u=x+B|0)>>>0>>0?o+1|0:o,s[c+128>>2]=u,s[c+132>>2]=o,o=s[(c=_)+76>>2]+i|0,d=(i=d=(B=s[c+72>>2])+d|0)>>>0>>0?o+1|0:o,o=Cn(w,l,19),B=C,x=i,_=o,o=(i=l)>>>6|0,i=_^((63&i)<<26|w>>>6)^Cn(w,i,61),o=(C^o^B)+d|0,w=l=x+i|0,l=i>>>0>l>>>0?o+1|0:o,o=(i=d=s[c+12>>2])>>>7|0,d=((127&i)<<25|(B=s[c+8>>2])>>>7)^Cn(B,i,1),o^=C,x=w,w=Cn(B,i,8)^d,o=(C^o)+l|0,o=(d=x+w|0)>>>0>>0?o+1|0:o,w=d,l=o,s[c+128>>2]=d,s[c+132>>2]=o,d=i,o=Cn(u,a,19),_=C,i=o,o=a>>>6|0,a=(a=Cn(u,a,61)^i^((63&a)<<26|u>>>6))+(i=s[(c=k)+72>>2])|0,o=s[c+76>>2]+(C^o^_)|0,o=a>>>0>>0?o+1|0:o,i=a,o=o+d|0,i=o=(a=a+B|0)>>>0>>0?o+1|0:o,o=Cn(v,h,1),d=C,B=a,u=o,o=(a=h)>>>7|0,u=u^((127&a)<<25|v>>>7)^Cn(v,a,8),o=(C^o^d)+i|0,d=a=B+u|0,a=o=a>>>0>>0?o+1|0:o,s[c+128>>2]=d,s[c+132>>2]=o,o=s[(i=E)+76>>2]+h|0,h=c=(u=s[i+72>>2])+v|0,c=c>>>0>>0?o+1|0:o,o=Cn(w,l,19),u=C,v=h,h=o,o=l>>>6|0,h=Cn(w,l,61)^h^((63&l)<<26|w>>>6),o=(C^o^u)+c|0,l=(u=l=v+h|0)>>>0>>0?o+1|0:o,h=c=s[i+12>>2],o=c>>>7|0,c=((127&c)<<25|(w=s[i+8>>2])>>>7)^Cn(w,c,1),o^=C,v=u,u=Cn(w,h,8)^c,o=(C^o)+l|0,o=(c=v+u|0)>>>0>>0?o+1|0:o,u=c,l=o,s[i+128>>2]=c,s[i+132>>2]=o,c=h,o=Cn(d,a,19),B=C,i=o,o=a>>>6|0,a=(a=Cn(d,a,61)^i^((63&a)<<26|d>>>6))+(h=s[(i=P)+72>>2])|0,o=s[i+76>>2]+(C^o^B)|0,o=a>>>0>>0?o+1|0:o,h=a,o=o+c|0,h=o=(a=a+w|0)>>>0>>0?o+1|0:o,o=Cn(M,f,1),c=C,v=a,d=o,o=(a=f)>>>7|0,d=d^((127&a)<<25|M>>>7)^Cn(M,a,8),o=(C^o^c)+h|0,c=a=v+d|0,a=o=a>>>0>>0?o+1|0:o,s[i+128>>2]=c,s[i+132>>2]=o,h=(d=s[(i=I)+72>>2])+M|0,o=s[i+76>>2]+f|0,f=o=d>>>0>h>>>0?o+1|0:o,o=Cn(u,l,19),d=C,v=h,h=o,o=l>>>6|0,h=Cn(u,l,61)^h^((63&l)<<26|u>>>6),o=(C^o^d)+f|0,l=(d=l=v+h|0)>>>0>>0?o+1|0:o,h=f=s[i+12>>2],o=f>>>7|0,f=((127&f)<<25|(u=s[i+8>>2])>>>7)^Cn(u,f,1),o^=C,v=d,d=Cn(u,h,8)^f,o=(C^o)+l|0,o=d>>>0>(f=v+d|0)>>>0?o+1|0:o,d=f,l=o,s[i+128>>2]=d,s[i+132>>2]=o,i=h,o=Cn(c,a,19),M=C,h=o,o=a>>>6|0,a=(a=Cn(c,a,61)^h^((63&a)<<26|c>>>6))+(h=s[(f=S)+72>>2])|0,o=s[f+76>>2]+(C^o^M)|0,o=a>>>0>>0?o+1|0:o,h=a,o=o+i|0,h=o=(a=a+u|0)>>>0>>0?o+1|0:o,o=Cn(N,p,1),i=C,u=a,c=o,o=(a=p)>>>7|0,c=c^((127&a)<<25|N>>>7)^Cn(N,a,8),o=(C^o^i)+h|0,i=a=u+c|0,a=o=a>>>0>>0?o+1|0:o,s[f+128>>2]=i,s[f+132>>2]=o,f=(c=s[(h=y)+72>>2])+N|0,o=s[h+76>>2]+p|0,p=o=c>>>0>f>>>0?o+1|0:o,o=Cn(d,l,19),c=C,u=f,f=o,o=l>>>6|0,f=Cn(d,l,61)^f^((63&l)<<26|d>>>6),o=(C^o^c)+p|0,l=(c=l=u+f|0)>>>0>>0?o+1|0:o,p=f=s[h+12>>2],o=f>>>7|0,f=((127&f)<<25|(y=s[h+8>>2])>>>7)^Cn(y,f,1),o^=C,f=Cn(y,p,8)^f,o=(C^o)+l|0,o=f>>>0>(y=f+c|0)>>>0?o+1|0:o,f=y,l=o,s[h+128>>2]=f,s[h+132>>2]=o,y=(p=s[(h=g)+72>>2])+Q|0,o=s[h+76>>2]+O|0,g=o=p>>>0>y>>>0?o+1|0:o,o=Cn(i,a,19),p=C,d=y,c=o,o=a>>>6|0,y=Cn(i,a,61)^c^((63&a)<<26|i>>>6),o=(C^o^p)+g|0,y=o=(a=d+y|0)>>>0>>0?o+1|0:o,o=Cn(A,m,1),g=C,i=a,d=o,o=(a=m)>>>7|0,a=i+(p=d^((127&a)<<25|A>>>7)^Cn(A,a,8))|0,o=(C^o^g)+y|0,s[h+128>>2]=a,s[h+132>>2]=a>>>0

>>0?o+1|0:o,o=s[(a=b)+76>>2]+m|0,m=h=(y=s[a+72>>2])+A|0,h=h>>>0>>0?o+1|0:o,o=Cn(f,l,19),y=C,i=o,o=l>>>6|0,l=Cn(f,l,61)^i^((63&l)<<26|f>>>6),o=(C^o^y)+h|0,m=l>>>0>(g=m=l+m|0)>>>0?o+1|0:o,b=((127&(h=y=s[a+12>>2]))<<25|(l=s[a+8>>2])>>>7)^Cn(l,h,1),o=C^h>>>7,b=(y=Cn(l,h,8)^b)+g|0,o=(C^o)+m|0,s[a+128>>2]=b,s[a+132>>2]=y>>>0>b>>>0?o+1|0:o}}function B(e){var t,n,r,o,a,s,d,u,l,A,f,h,p,g,m,v,y,b,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,T=0,M=0,U=0,H=0,j=0,J=0,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0,ie=0,ae=0;g=kt(e),m=c[e+2|0]|c[e+3|0]<<8|c[e+4|0]<<16|c[e+5|0]<<24,v=kt(e+5|0),y=C,te=c[e+7|0]|c[e+8|0]<<8|c[e+9|0]<<16|c[e+10|0]<<24,ne=c[e+10|0]|c[e+11|0]<<8|c[e+12|0]<<16|c[e+13|0]<<24,b=kt(e+13|0),re=C,T=c[e+15|0]|c[e+16|0]<<8|c[e+17|0]<<16|c[e+18|0]<<24,Z=kt(e+18|0),M=C,R=kt(e+21|0),S=c[e+23|0]|c[e+24|0]<<8|c[e+25|0]<<16|c[e+26|0]<<24,_=kt(e+26|0),E=C,ee=c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,L=c[e+31|0]|c[e+32|0]<<8|c[e+33|0]<<16|c[e+34|0]<<24,W=kt(e+34|0),V=C,U=c[e+36|0]|c[e+37|0]<<8|c[e+38|0]<<16|c[e+39|0]<<24,z=kt(e+39|0),j=C,O=kt(e+42|0),B=c[e+44|0]|c[e+45|0]<<8|c[e+46|0]<<16|c[e+47|0]<<24,w=kt(e+47|0),I=2097151&((3&E)<<30|_>>>2),_=fn(t=2097151&((3&(k=C))<<30|w>>>2),0,136657,0)+I|0,E=C,E=I>>>0>_>>>0?E+1|0:E,w=fn(n=(c[e+49|0]|c[e+50|0]<<8|c[e+51|0]<<16|c[e+52|0]<<24)>>>7&2097151,0,-997805,-1),I=C+E|0,I=w>>>0>(_=w+_|0)>>>0?I+1|0:I,E=fn(r=(c[e+52|0]|c[e+53|0]<<8|c[e+54|0]<<16|c[e+55|0]<<24)>>>4&2097151,0,654183,0),w=C+I|0,w=E>>>0>(_=E+_|0)>>>0?w+1|0:w,I=_,E=kt(e+55|0),_=I+(E=fn(o=2097151&((1&(_=C))<<31|E>>>1),0,470296,0))|0,I=C+w|0,I=E>>>0>_>>>0?I+1|0:I,w=fn(a=(c[e+57|0]|c[e+58|0]<<8|c[e+59|0]<<16|c[e+60|0]<<24)>>>6&2097151,0,666643,0),E=C+I|0,N=E=w>>>0>(_=w+_|0)>>>0?E+1|0:E,w=E,Q=B>>>5&2097151,E=2097151&O,B=fn(s=(c[e+60|0]|c[e+61|0]<<8|c[e+62|0]<<16|c[e+63|0]<<24)>>>3|0,0,-683901,-1)+E|0,I=C,O=B,x=I=E>>>0>B>>>0?I+1|0:I,D=(I=B)- -1048576|0,F=B=x-((I>>>0<4293918720)-1|0)|0,I=B>>21,u=Q=(B=(2097151&B)<<11|D>>>21)+Q|0,Y=E=B>>>0>Q>>>0?I+1|0:I,I=fn(Q,E,-683901,-1),E=C+w|0,K=k=I+_|0,P=I>>>0>k>>>0?E+1|0:E,w=S>>>5&2097151,k=fn(t,0,-997805,-1)+w|0,I=C,I=w>>>0>k>>>0?I+1|0:I,E=fn(n,0,654183,0),w=C+I|0,w=E>>>0>(k=E+k|0)>>>0?w+1|0:w,I=fn(r,0,470296,0),E=C+w|0,E=I>>>0>(k=I+k|0)>>>0?E+1|0:E,w=fn(o,0,666643,0),I=C+E|0,w=w>>>0>(S=k=w+k|0)>>>0?I+1|0:I,I=2097151&R,k=fn(t,0,654183,0)+I|0,E=C,E=I>>>0>k>>>0?E+1|0:E,B=(I=k)+(k=fn(n,0,470296,0))|0,I=C+E|0,I=B>>>0>>0?I+1|0:I,k=fn(r,0,666643,0),E=C+I|0,Q=B=k+B|0,B=E=B>>>0>>0?E+1|0:E,X=(I=Q)- -1048576|0,H=k=E-((I>>>0<4293918720)-1|0)|0,w=(I=k>>>21|0)+w|0,R=w=(E=(2097151&k)<<11|X>>>21)>>>0>(S=k=E+S|0)>>>0?w+1|0:w,G=(I=S)- -1048576|0,h=_- -1048576|0,N=N-((_>>>0<4293918720)-1|0)|0,E=(I=(w=J=w-((I>>>0<4293918720)-1|0)|0)>>21)+P|0,N=(E=(_=(2097151&w)<<11|G>>>21)>>>0>(J=_+K|0)>>>0?E+1|0:E)-(((I=-2097152&h)>>>0>(_=J)>>>0)+(k=N)|0)|0,oe=(I=_-I|0)-(E=-2097152&(p=I- -1048576|0))|0,ie=N-((I>>>0>>0)+(_=N-((I>>>0<4293918720)-1|0)|0)|0)|0,E=fn(u,Y,136657,0)+S|0,I=R+C|0,I=E>>>0>>0?I+1|0:I,$=(S=E)-(E=-2097152&G)|0,K=I-((E>>>0>S>>>0)+w|0)|0,N=O-(I=-2097152&D)|0,P=x-((I>>>0>O>>>0)+F|0)|0,I=2097151&((7&j)<<29|z>>>3),w=fn(s,0,136657,0)+I|0,E=C,E=I>>>0>w>>>0?E+1|0:E,S=(I=w)+(w=fn(a,0,-683901,-1))|0,I=C+E|0,O=S,S=w>>>0>S>>>0?I+1|0:I,I=fn(o,0,-683901,-1),E=C,w=I,E=(I=U>>>6&2097151)>>>0>(w=w+I|0)>>>0?E+1|0:E,R=(I=fn(s,0,-997805,-1))+w|0,w=C+E|0,w=I>>>0>R>>>0?w+1|0:w,E=fn(a,0,136657,0),I=C+w|0,G=E=(D=I=E>>>0>(R=E+R|0)>>>0?I+1|0:I)-(((I=R)>>>0<4293918720)-1|0)|0,I=(2097151&E)<<11|(z=I- -1048576|0)>>>21,E=(E>>21)+S|0,x=E=I>>>0>(O=I+O|0)>>>0?E+1|0:E,J=(I=O)- -1048576|0,F=E=E-((I>>>0<4293918720)-1|0)|0,I=(w=E>>21)+P|0,l=S=(E=(2097151&E)<<11|J>>>21)+N|0,q=I=E>>>0>S>>>0?I+1|0:I,E=fn(S,I,-683901,-1),I=C+K|0,ae=w=E+$|0,U=E>>>0>w>>>0?I+1|0:I,P=Q,I=2097151&((7&M)<<29|Z>>>3),w=fn(t,0,470296,0)+I|0,E=C,E=I>>>0>w>>>0?E+1|0:E,I=fn(n,0,666643,0),E=C+E|0,N=w=I+w|0,w=I>>>0>w>>>0?E+1|0:E,S=T>>>6&2097151,Q=fn(t,0,666643,0)+S|0,I=C,M=S=(T=I=S>>>0>Q>>>0?I+1|0:I)-(((I=Q)>>>0<4293918720)-1|0)|0,E=(E=S>>>21|0)+w|0,j=E=(I=(2097151&S)<<11|($=I- -1048576|0)>>>21)>>>0>(S=I+N|0)>>>0?E+1|0:E,Z=E-(((I=S)>>>0<4293918720)-1|0)|0,K=I- -1048576|0,d=O-(I=-2097152&J)|0,A=w=x-((I>>>0>O>>>0)+F|0)|0,I=((N=Z)>>>21|0)+B|0,I=(O=(2097151&N)<<11|K>>>21)>>>0>(P=O+P|0)>>>0?I+1|0:I,P=(B=fn(u,Y,-997805,-1))+((O=P)-(E=-2097152&X)|0)|0,E=C+(I-((8191&H)+(E>>>0>O>>>0)|0)|0)|0,E=B>>>0>P>>>0?E+1|0:E,I=fn(l,q,136657,0),E=C+E|0,E=I>>>0>(B=I+P|0)>>>0?E+1|0:E,w=fn(d,w,-683901,-1),I=C+E|0,x=I=w>>>0>(B=w+B|0)>>>0?I+1|0:I,J=(I=B)- -1048576|0,F=w=x-((I>>>0<4293918720)-1|0)|0,E=(I=w>>21)+U|0,P=E=(w=(2097151&w)<<11|J>>>21)>>>0>(O=w+ae|0)>>>0?E+1|0:E,H=(I=w=O)- -1048576|0,I=(I=(O=U=E-((I>>>0<4293918720)-1|0)|0)>>21)+ie|0,oe=U=(E=(2097151&O)<<11|H>>>21)+oe|0,U=E>>>0>U>>>0?I+1|0:I,ie=w-(I=-2097152&H)|0,ae=P-((I>>>0>w>>>0)+O|0)|0,Z=B-(I=-2097152&J)|0,X=x-((I>>>0>B>>>0)+F|0)|0,I=fn(u,Y,654183,0),w=C+(j-((8191&N)+((E=-2097152&K)>>>0>S>>>0)|0)|0)|0,w=I>>>0>(B=I+(S-E|0)|0)>>>0?w+1|0:w,E=fn(l,q,-997805,-1),I=C+w|0,I=E>>>0>(B=E+B|0)>>>0?I+1|0:I,w=fn(d,A,136657,0),E=C+I|0,J=B=w+B|0,O=w>>>0>B>>>0?E+1|0:E,H=R-(I=-2097152&z)|0,j=D-((I>>>0>R>>>0)+G|0)|0,E=2097151&((1&V)<<31|W>>>1),B=fn(r,0,-683901,-1)+E|0,I=C,I=E>>>0>B>>>0?I+1|0:I,E=fn(o,0,136657,0),I=C+I|0,I=E>>>0>(w=E+B|0)>>>0?I+1|0:I,B=(E=w)+(w=fn(s,0,654183,0))|0,E=C+I|0,E=w>>>0>B>>>0?E+1|0:E,I=fn(a,0,-997805,-1),E=C+E|0,R=w=I+B|0,B=I>>>0>w>>>0?E+1|0:E,I=fn(n,0,-683901,-1),w=C,E=I,w=(I=L>>>4&2097151)>>>0>(E=E+I|0)>>>0?w+1|0:w,S=(I=E)+(E=fn(r,0,136657,0))|0,I=C+w|0,I=E>>>0>S>>>0?I+1|0:I,w=fn(o,0,-997805,-1),E=C+I|0,E=w>>>0>(S=w+S|0)>>>0?E+1|0:E,w=fn(s,0,470296,0),I=C+E|0,I=w>>>0>(S=w+S|0)>>>0?I+1|0:I,w=fn(a,0,654183,0),E=C+I|0,x=E=w>>>0>(S=w+S|0)>>>0?E+1|0:E,G=(I=S)- -1048576|0,F=w=E-((I>>>0<4293918720)-1|0)|0,I=(I=w>>21)+B|0,B=w=(E=(2097151&w)<<11|G>>>21)+R|0,P=I=E>>>0>w>>>0?I+1|0:I,N=(I=w)- -1048576|0,R=w=P-((I>>>0<4293918720)-1|0)|0,E=(I=w>>21)+j|0,f=D=(w=(2097151&w)<<11|N>>>21)+H|0,L=E=w>>>0>D>>>0?E+1|0:E,I=fn(D,E,-683901,-1),w=C+O|0,j=E=I+J|0,O=I>>>0>E>>>0?w+1|0:w,W=B-(I=-2097152&N)|0,V=R=P-((I>>>0>B>>>0)+R|0)|0,w=(I=fn(u,Y,470296,0))+(Q-(E=-2097152&$)|0)|0,E=C+(T-((2047&M)+(E>>>0>Q>>>0)|0)|0)|0,E=I>>>0>w>>>0?E+1|0:E,I=fn(l,q,654183,0),E=C+E|0,E=I>>>0>(w=I+w|0)>>>0?E+1|0:E,B=(I=fn(d,A,-997805,-1))+w|0,w=C+E|0,w=I>>>0>B>>>0?w+1|0:w,E=fn(D,L,136657,0),I=C+w|0,I=E>>>0>(B=E+B|0)>>>0?I+1|0:I,w=fn(W,R,-683901,-1),E=C+I|0,P=E=w>>>0>(B=w+B|0)>>>0?E+1|0:E,M=(I=B)- -1048576|0,R=w=E-((I>>>0<4293918720)-1|0)|0,I=(I=w>>21)+O|0,O=I=(E=(2097151&w)<<11|M>>>21)>>>0>(w=E+j|0)>>>0?I+1|0:I,N=(I=w)- -1048576|0,E=(I=(Q=j=O-((I>>>0<4293918720)-1|0)|0)>>21)+X|0,Z=T=(j=(2097151&Q)<<11|N>>>21)+Z|0,j=T>>>0>>0?E+1|0:E,X=w-(I=-2097152&N)|0,z=O-((I>>>0>w>>>0)+Q|0)|0,J=B-(I=-2097152&M)|0,D=P-((I>>>0>B>>>0)+R|0)|0,E=2097151&((1&re)<<31|b>>>1),B=fn(u,Y,666643,0)+E|0,I=C,I=E>>>0>B>>>0?I+1|0:I,w=fn(l,q,470296,0),E=C+I|0,E=w>>>0>(B=w+B|0)>>>0?E+1|0:E,w=fn(d,A,654183,0),I=C+E|0,I=w>>>0>(B=w+B|0)>>>0?I+1|0:I,E=fn(f,L,-997805,-1),w=C+I|0,w=E>>>0>(B=E+B|0)>>>0?w+1|0:w,I=fn(W,V,136657,0),E=C+w|0,R=B=I+B|0,Q=I>>>0>B>>>0?E+1|0:E,O=S-(I=-2097152&G)|0,S=x-((I>>>0>S>>>0)+F|0)|0,I=fn(t,0,-683901,-1),E=C,w=I,E=(I=ee>>>7&2097151)>>>0>(w=w+I|0)>>>0?E+1|0:E,B=(I=fn(n,0,136657,0))+w|0,w=C+E|0,w=I>>>0>B>>>0?w+1|0:w,E=fn(r,0,-997805,-1),I=C+w|0,I=E>>>0>(B=E+B|0)>>>0?I+1|0:I,w=fn(o,0,654183,0),E=C+I|0,E=w>>>0>(B=w+B|0)>>>0?E+1|0:E,w=fn(s,0,666643,0),I=C+E|0,I=w>>>0>(B=w+B|0)>>>0?I+1|0:I,w=fn(a,0,470296,0),E=C+I|0,I=E=w>>>0>(B=w+B|0)>>>0?E+1|0:E,E=k>>21,B=(k=(2097151&k)<<11|h>>>21)+(w=B)|0,w=I+E|0,F=w=B>>>0>>0?w+1|0:w,x=(I=B)- -1048576|0,P=w=w-((I>>>0<4293918720)-1|0)|0,I=(E=w>>21)+S|0,Y=k=(w=(2097151&w)<<11|x>>>21)+O|0,H=I=w>>>0>k>>>0?I+1|0:I,I=fn(k,I,-683901,-1),E=C+Q|0,Q=w=I+R|0,k=I>>>0>w>>>0?E+1|0:E,I=fn(l,q,666643,0),w=C,E=I,w=(I=ne>>>4&2097151)>>>0>(E=E+I|0)>>>0?w+1|0:w,S=(I=E)+(E=fn(d,A,470296,0))|0,I=C+w|0,I=E>>>0>S>>>0?I+1|0:I,w=fn(f,L,654183,0),E=C+I|0,E=w>>>0>(S=w+S|0)>>>0?E+1|0:E,I=fn(W,V,-997805,-1),E=C+E|0,E=I>>>0>(w=I+S|0)>>>0?E+1|0:E,S=(I=w)+(w=fn(Y,H,136657,0))|0,I=C+E|0,R=I=w>>>0>S>>>0?I+1|0:I,T=(I=S)- -1048576|0,O=w=R-((I>>>0<4293918720)-1|0)|0,I=(E=w>>21)+k|0,w=I=(w=(2097151&w)<<11|T>>>21)>>>0>(k=Q=w+Q|0)>>>0?I+1|0:I,M=(I=k)- -1048576|0,I=(E=(Q=N=w-((I>>>0<4293918720)-1|0)|0)>>21)+D|0,$=G=(N=(2097151&Q)<<11|M>>>21)+J|0,N=N>>>0>G>>>0?I+1|0:I,I=B-(E=-2097152&x)|0,B=F-((E>>>0>B>>>0)+P|0)|0,P=I,I=(I=_>>21)+B|0,x=I=(E=(2097151&_)<<11|p>>>21)>>>0>(B=_=P+E|0)>>>0?I+1|0:I,G=(I=B)- -1048576|0,F=_=x-((I>>>0<4293918720)-1|0)|0,D=I=_>>21,I=fn(q=(2097151&_)<<11|G>>>21,I,-683901,-1),E=C+w|0,E=I>>>0>(_=I+k|0)>>>0?E+1|0:E,K=(w=_)-(I=-2097152&M)|0,J=E-((I>>>0>w>>>0)+Q|0)|0,E=fn(q,D,136657,0)+S|0,I=R+C|0,I=E>>>0>>0?I+1|0:I,ee=(w=E)-(E=-2097152&T)|0,T=I-((E>>>0>w>>>0)+O|0)|0,I=fn(d,A,666643,0),E=C,w=I,E=(I=te>>>7&2097151)>>>0>(w=w+I|0)>>>0?E+1|0:E,_=(I=fn(f,L,470296,0))+w|0,w=C+E|0,w=I>>>0>_>>>0?w+1|0:w,E=fn(W,V,654183,0),I=C+w|0,I=E>>>0>(_=E+_|0)>>>0?I+1|0:I,E=fn(Y,H,-997805,-1),I=C+I|0,O=w=E+_|0,w=E>>>0>w>>>0?I+1|0:I,I=2097151&((3&y)<<30|v>>>2),_=fn(f,L,666643,0)+I|0,E=C,E=I>>>0>_>>>0?E+1|0:E,I=fn(W,V,470296,0),E=C+E|0,E=I>>>0>(_=I+_|0)>>>0?E+1|0:E,k=(I=_)+(_=fn(Y,H,654183,0))|0,I=C+E|0,Q=I=_>>>0>k>>>0?I+1|0:I,M=(I=_=k)- -1048576|0,I=(E=(S=k=Q-((I>>>0<4293918720)-1|0)|0)>>21)+w|0,R=O=(k=(2097151&S)<<11|M>>>21)+O|0,w=I=k>>>0>O>>>0?I+1|0:I,O=(I=O)- -1048576|0,I=(E=(k=P=w-((I>>>0<4293918720)-1|0)|0)>>21)+T|0,te=L=(P=(2097151&k)<<11|O>>>21)+ee|0,P=P>>>0>L>>>0?I+1|0:I,I=fn(q,D,-997805,-1),w=C+w|0,w=I>>>0>(E=I+R|0)>>>0?w+1|0:w,ne=E-(I=-2097152&O)|0,re=w-((I>>>0>E>>>0)+k|0)|0,I=fn(q,D,654183,0)+_|0,E=Q+C|0,E=I>>>0<_>>>0?E+1|0:E,ee=(w=I)-(I=-2097152&M)|0,L=E-((I>>>0>w>>>0)+S|0)|0,I=fn(W,V,666643,0),w=C,E=I,w=(I=m>>>5&2097151)>>>0>(E=E+I|0)>>>0?w+1|0:w,_=(I=E)+(E=fn(Y,H,470296,0))|0,I=C+w|0,S=_,w=E>>>0>_>>>0?I+1|0:I,E=2097151&g,_=fn(Y,H,666643,0)+E|0,I=C,k=_,O=_=(R=I=E>>>0>_>>>0?I+1|0:I)-(((I=_)>>>0<4293918720)-1|0)|0,w=(E=_>>21)+w|0,Q=w=(I=(2097151&_)<<11|(T=I- -1048576|0)>>>21)>>>0>(_=I+S|0)>>>0?w+1|0:w,M=(I=_)- -1048576|0,S=w=w-((I>>>0<4293918720)-1|0)|0,I=(E=w>>21)+L|0,w=I=(w=(2097151&w)<<11|M>>>21)>>>0>(H=w+ee|0)>>>0?I+1|0:I,I=fn(q,D,470296,0)+_|0,E=Q+C|0,S=(E=I>>>0<_>>>0?E+1|0:E)-(((_=-2097152&M)>>>0>(Q=I)>>>0)+S|0)|0,Q=I=I-_|0,_=(E=fn(q,D,666643,0))+(k-(I=-2097152&T)|0)|0,I=C+(R-((I>>>0>k>>>0)+O|0)|0)|0,k=_,E=(E=(I=E>>>0>_>>>0?I+1|0:I)>>21)+S|0,V=_=Q+(I=(2097151&I)<<11|_>>>21)|0,w=(I=(E=I>>>0>_>>>0?E+1|0:E)>>21)+w|0,S=_=(E=(2097151&E)<<11|_>>>21)+H|0,E=(w=E>>>0>(I=_)>>>0?w+1|0:w)>>21,w=(2097151&w)<<11|I>>>21,I=E+re|0,O=_=w+ne|0,w=(I=w>>>0>(E=_)>>>0?I+1|0:I)>>21,I=(2097151&I)<<11|E>>>21,E=w+P|0,P=_=I+te|0,I=(I=(E=I>>>0>(w=_)>>>0?E+1|0:E)>>21)+J|0,H=w=(E=(2097151&E)<<11|w>>>21)+K|0,E=(E=(I=E>>>0>w>>>0?I+1|0:I)>>21)+N|0,D=w=(I=(2097151&I)<<11|w>>>21)+$|0,I=(E=I>>>0>w>>>0?E+1|0:E)>>21,E=(2097151&E)<<11|w>>>21,w=I+z|0,T=_=E+X|0,E=(w=E>>>0>(I=_)>>>0?w+1|0:w)>>21,w=(2097151&w)<<11|I>>>21,I=E+j|0,M=_=w+Z|0,w=(I=w>>>0>(E=_)>>>0?I+1|0:I)>>21,I=(2097151&I)<<11|E>>>21,E=w+ae|0,j=_=I+ie|0,I=(I=(E=I>>>0>(w=_)>>>0?E+1|0:E)>>21)+U|0,N=w=(E=(2097151&E)<<11|w>>>21)+oe|0,E=(I=E>>>0>w>>>0?I+1|0:I)>>21,_=(2097151&I)<<11|w>>>21,I=B-(w=-2097152&G)|0,w=(x-((w>>>0>B>>>0)+F|0)|0)+E|0,F=_=_+I|0,U=(2097151&(w=I>>>0>(E=_)>>>0?w+1|0:w))<<11|E>>>21,R=I=w>>21,E=2097151&k,w=fn(U,I,666643,0)+E|0,I=C,Q=w,_=I=E>>>0>w>>>0?I+1|0:I,i[0|e]=w,i[e+1|0]=(255&I)<<24|w>>>8,I=2097151&V,w=fn(U,R,470296,0)+I|0,E=C,E=I>>>0>w>>>0?E+1|0:E,k=w,B=(2097151&(w=_))<<11|Q>>>21,w=(I=w>>21)+E|0,w=B>>>0>(x=k+B|0)>>>0?w+1|0:w,B=x,i[e+4|0]=(2047&w)<<21|B>>>11,I=E=w,w=B,i[e+3|0]=(7&I)<<29|w>>>3,w=2097151&S,S=fn(U,R,654183,0)+w|0,I=C,I=w>>>0>S>>>0?I+1|0:I,w=S,S=(2097151&E)<<11|B>>>21,E=(E>>21)+I|0,E=S>>>0>(x=w+S|0)>>>0?E+1|0:E,S=x,I=E,i[e+6|0]=(63&I)<<26|S>>>6,k=0,w=31&((65535&_)<<16|Q>>>16),E=Q=2097151&B,i[e+2|0]=w|E<<5,w=2097151&O,B=fn(U,R,-997805,-1)+w|0,E=C,w=E=w>>>0>B>>>0?E+1|0:E,w=(E=I>>21)+w|0,O=B=(I=(2097151&I)<<11|S>>>21)+B|0,w=I>>>0>B>>>0?w+1|0:w,i[e+9|0]=(511&w)<<23|B>>>9,I=E=w,w=B,i[e+8|0]=(1&I)<<31|w>>>1,B=0,w=S&=2097151,i[e+5|0]=(524287&k)<<13|Q>>>19|w<<2,w=2097151&P,k=fn(U,R,136657,0)+w|0,I=C,I=(I=w>>>0>k>>>0?I+1|0:I)+(w=E>>21)|0,Q=k=(E=(2097151&E)<<11|O>>>21)+k|0,I=E>>>0>k>>>0?I+1|0:I,E=k,i[e+12|0]=(4095&I)<<20|E>>>12,w=I,i[e+11|0]=(15&I)<<28|E>>>4,k=0,E=P=2097151&O,i[e+7|0]=(16383&B)<<18|S>>>14|E<<7,I=2097151&H,B=fn(U,R,-683901,-1)+I|0,E=C,E=I>>>0>B>>>0?E+1|0:E,E=(I=w>>21)+E|0,S=B=(w=(2097151&w)<<11|Q>>>21)+B|0,I=E=w>>>0>B>>>0?E+1|0:E,i[e+14|0]=(127&I)<<25|B>>>7,B=0,w=O=2097151&Q,i[e+10|0]=(131071&k)<<15|P>>>17|w<<4,E=I>>21,w=(I=(2097151&I)<<11|S>>>21)>>>0>(Q=I+(2097151&D)|0)>>>0?E+1|0:E,i[e+17|0]=(1023&w)<<22|Q>>>10,I=w,w=Q,i[e+16|0]=(3&I)<<30|w>>>2,w=R=2097151&S,i[e+13|0]=(1048575&B)<<12|O>>>20|w<<1,w=(2097151&I)<<11|Q>>>21,I>>=21,I=w>>>0>(S=w+(2097151&T)|0)>>>0?I+1|0:I,E=S,i[e+20|0]=(8191&I)<<19|E>>>13,i[e+19|0]=(31&I)<<27|E>>>5,E=O=2097151&Q,i[e+15|0]=(32767&k)<<17|R>>>15|E<<6,_=(2097151&I)<<11|S>>>21,I=E=I>>21,_=I=_>>>0>(R=_+(2097151&M)|0)>>>0?I+1|0:I,i[e+21|0]=R,I=S,i[e+18|0]=(262143&B)<<14|O>>>18|I<<3,I=_,i[e+22|0]=(255&I)<<24|R>>>8,w=I,I>>=21,w=(S=(k=(2097151&w)<<11|R>>>21)+(2097151&j)|0)>>>0>>0?I+1|0:I,i[(E=e)+25|0]=(2047&w)<<21|S>>>11,I=w,w=S,i[E+24|0]=(7&I)<<29|w>>>3,w=E,k=(2097151&I)<<11|S>>>21,I>>=21,E=I=k>>>0>(B=Q=k+(2097151&N)|0)>>>0?I+1|0:I,i[w+27|0]=(63&I)<<26|B>>>6,k=0,I=Q=2097151&S,i[w+23|0]=31&((65535&_)<<16|R>>>16)|I<<5,E=(I=E)>>21,E=(I=(2097151&I)<<11|B>>>21)>>>0>(_=I+(2097151&F)|0)>>>0?E+1|0:E,w=_,i[e+31|0]=(131071&E)<<15|w>>>17,I=E,i[e+30|0]=(511&I)<<23|w>>>9,i[e+29|0]=(1&I)<<31|w>>>1,E=0,B&=2097151,i[e+26|0]=(524287&k)<<13|Q>>>19|B<<2,i[e+28|0]=(16383&E)<<18|B>>>14|w<<7}function _(e){var t,n=0,r=0,o=0,i=0,a=0,u=0,l=0,f=0,h=0,p=0,g=0,m=0,v=0;y=t=y-16|0;e:{t:{n:{r:{o:{i:{a:{s:{c:{d:{u:{l:{if((e|=0)>>>0<=244){if(3&(n=(a=s[8961])>>>(r=(f=e>>>0<11?16:e+11&-8)>>>3|0)|0)){e=(i=s[35892+(n=(o=r+(1&(-1^n))|0)<<3)>>2])+8|0,(0|(r=s[i+8>>2]))!=(0|(n=n+35884|0))?(s[r+12>>2]=n,s[n+8>>2]=r):(m=35844,v=Pt(-2,o)&a,s[m>>2]=v),n=o<<3,s[i+4>>2]=3|n,s[4+(n=n+i|0)>>2]=1|s[n+4>>2];break e}if((p=s[8963])>>>0>=f>>>0)break l;if(n){r=e=(n=(0-(e=(0-(e=2<>>12&16,r|=e=(n=n>>>e|0)>>>5&8,r|=e=(n=n>>>e|0)>>>2&4,u=s[35892+(e=(r=((r|=e=(n=n>>>e|0)>>>1&2)|(e=(n=n>>>e|0)>>>1&1))+(n>>>e|0)|0)<<3)>>2],(0|(n=s[u+8>>2]))!=(0|(e=e+35884|0))?(s[n+12>>2]=e,s[e+8>>2]=n):(a=Pt(-2,r)&a,s[8961]=a),e=u+8|0,s[u+4>>2]=3|f,i=(n=r<<3)-f|0,s[4+(o=u+f|0)>>2]=1|i,s[n+u>>2]=i,p&&(r=35884+((n=p>>>3|0)<<3)|0,u=s[8966],(n=1<>2]:(s[8961]=n|a,n=r),s[r+8>>2]=u,s[n+12>>2]=u,s[u+12>>2]=r,s[u+8>>2]=n),s[8966]=o,s[8963]=i;break e}if(!(l=s[8962]))break l;for(r=e=(n=(l&0-l)-1|0)>>>12&16,r|=e=(n=n>>>e|0)>>>5&8,r|=e=(n=n>>>e|0)>>>2&4,n=s[36148+(((r|=e=(n=n>>>e|0)>>>1&2)|(e=(n=n>>>e|0)>>>1&1))+(n>>>e|0)<<2)>>2],i=(-8&s[n+4>>2])-f|0,r=n;(e=s[r+16>>2])||(e=s[r+20>>2]);)i=(o=(r=(-8&s[e+4>>2])-f|0)>>>0>>0)?r:i,n=o?e:n,r=e;if((h=n+f|0)>>>0<=n>>>0)break u;if(g=s[n+24>>2],(0|(o=s[n+12>>2]))!=(0|n)){e=s[n+8>>2],s[e+12>>2]=o,s[o+8>>2]=e;break t}if(!(e=s[(r=n+20|0)>>2])){if(!(e=s[n+16>>2]))break d;r=n+16|0}for(;u=r,o=e,(e=s[(r=e+20|0)>>2])||(r=o+16|0,e=s[o+16>>2]););s[u>>2]=0;break t}if(f=-1,!(e>>>0>4294967231)&&(f=-8&(e=e+11|0),h=s[8962])){a=31,i=0-f|0,f>>>0<=16777215&&(e=e>>>8|0,e<<=u=e+1048320>>>16&8,a=28+((e=((e<<=r=e+520192>>>16&4)<<(n=e+245760>>>16&2)>>>15|0)-(n|r|u)|0)<<1|f>>>e+21&1)|0);A:{f:{if(r=s[36148+(a<<2)>>2])for(e=0,n=f<<(31==(0|a)?0:25-(a>>>1|0)|0);;){if(!((u=(-8&s[r+4>>2])-f|0)>>>0>=i>>>0||(o=r,i=u))){i=0,e=r;break f}if(u=s[r+20>>2],r=s[16+((n>>>29&4)+r|0)>>2],e=u?(0|u)==(0|r)?e:u:e,n<<=1,!r)break}else e=0;if(!(e|o)){if(!(e=(0-(e=2<>>12&16,r|=e=(n=n>>>e|0)>>>5&8,r|=e=(n=n>>>e|0)>>>2&4,e=s[36148+(((r|=e=(n=n>>>e|0)>>>1&2)|(e=(n=n>>>e|0)>>>1&1))+(n>>>e|0)<<2)>>2]}if(!e)break A}for(;i=(r=(n=(-8&s[e+4>>2])-f|0)>>>0>>0)?n:i,o=r?e:o,e=(n=s[e+16>>2])||s[e+20>>2];);}if(!(!o|s[8963]-f>>>0<=i>>>0)){if((l=o+f|0)>>>0<=o>>>0)break u;if(a=s[o+24>>2],(0|o)!=(0|(n=s[o+12>>2]))){e=s[o+8>>2],s[e+12>>2]=n,s[n+8>>2]=e;break n}if(!(e=s[(r=o+20|0)>>2])){if(!(e=s[o+16>>2]))break c;r=o+16|0}for(;u=r,n=e,(e=s[(r=e+20|0)>>2])||(r=n+16|0,e=s[n+16>>2]););s[u>>2]=0;break n}}}if((r=s[8963])>>>0>=f>>>0){o=s[8966],(n=r-f|0)>>>0>=16?(s[8963]=n,e=o+f|0,s[8966]=e,s[e+4>>2]=1|n,s[r+o>>2]=n,s[o+4>>2]=3|f):(s[8966]=0,s[8963]=0,s[o+4>>2]=3|r,s[4+(e=r+o|0)>>2]=1|s[e+4>>2]),e=o+8|0;break e}if((l=s[8964])>>>0>f>>>0){n=l-f|0,s[8964]=n,e=(r=s[8967])+f|0,s[8967]=e,s[e+4>>2]=1|n,s[r+4>>2]=3|f,e=r+8|0;break e}if(e=0,n=h=f+47|0,s[9079]?r=s[9081]:(s[9082]=-1,s[9083]=-1,s[9080]=4096,s[9081]=4096,s[9079]=t+12&-16^1431655768,s[9084]=0,s[9072]=0,r=4096),(r=(u=n+r|0)&(i=0-r|0))>>>0<=f>>>0)break e;if((o=s[9071])&&o>>>0<(a=(n=s[9069])+r|0)>>>0|n>>>0>=a>>>0)break e;if(4&c[36288])break i;l:{A:{if(o=s[8967])for(e=36292;;){if(o>>>0<(n=s[e>>2])+s[e+4>>2]>>>0&&n>>>0<=o>>>0)break A;if(!(e=s[e+8>>2]))break}if(-1==(0|(n=tt(0))))break a;if(a=r,(e=(o=s[9080])-1|0)&n&&(a=(r-n|0)+(e+n&0-o)|0),a>>>0<=f>>>0|a>>>0>2147483646)break a;if((o=s[9071])&&o>>>0<(i=(e=s[9069])+a|0)>>>0|e>>>0>=i>>>0)break a;if((0|n)!=(0|(e=tt(a))))break l;break o}if((a=i&u-l)>>>0>2147483646)break a;if((0|(n=tt(a)))==(s[e>>2]+s[e+4>>2]|0))break s;e=n}if(!(-1==(0|e)|f+48>>>0<=a>>>0)){if((n=(n=s[9081])+(h-a|0)&0-n)>>>0>2147483646){n=e;break o}if(-1!=(0|tt(n))){a=n+a|0,n=e;break o}tt(0-a|0);break a}if(n=e,-1!=(0|e))break o;break a}A()}o=0;break t}n=0;break n}if(-1!=(0|n))break o}s[9072]=4|s[9072]}if(r>>>0>2147483646)break r;if((n=tt(r))>>>0>=(e=tt(0))>>>0|-1==(0|n)|-1==(0|e))break r;if((a=e-n|0)>>>0<=f+40>>>0)break r}e=s[9069]+a|0,s[9069]=e,e>>>0>d[9070]&&(s[9070]=e);o:{i:{a:{if(u=s[8967]){for(e=36292;;){if(((o=s[e>>2])+(r=s[e+4>>2])|0)==(0|n))break a;if(!(e=s[e+8>>2]))break}break i}for((e=s[8965])>>>0<=n>>>0&&e||(s[8965]=n),e=0,s[9074]=a,s[9073]=n,s[8969]=-1,s[8970]=s[9079],s[9076]=0;r=35884+(o=e<<3)|0,s[o+35892>>2]=r,s[o+35896>>2]=r,32!=(0|(e=e+1|0)););r=(o=a-40|0)-(e=n+8&7?-8-n&7:0)|0,s[8964]=r,e=e+n|0,s[8967]=e,s[e+4>>2]=1|r,s[4+(n+o|0)>>2]=40,s[8968]=s[9083];break o}if(!(8&c[e+12|0]|n>>>0<=u>>>0|o>>>0>u>>>0)){s[e+4>>2]=r+a,r=(e=u+8&7?-8-u&7:0)+u|0,s[8967]=r,e=(n=s[8964]+a|0)-e|0,s[8964]=e,s[r+4>>2]=1|e,s[4+(n+u|0)>>2]=40,s[8968]=s[9083];break o}}(o=s[8965])>>>0>n>>>0&&(s[8965]=n,o=0),r=n+a|0,e=36292;i:{a:{s:{c:{d:{u:{for(;;){if((0|r)!=s[e>>2]){if(e=s[e+8>>2])continue;break u}break}if(!(8&c[e+12|0]))break d}for(e=36292;;){if((r=s[e>>2])>>>0<=u>>>0&&(i=r+s[e+4>>2]|0)>>>0>u>>>0)break c;e=s[e+8>>2]}}if(s[e>>2]=n,s[e+4>>2]=s[e+4>>2]+a,s[4+(h=(n+8&7?-8-n&7:0)+n|0)>>2]=3|f,r=((a=r+(r+8&7?-8-r&7:0)|0)-h|0)-f|0,l=f+h|0,(0|a)==(0|u)){s[8967]=l,e=s[8964]+r|0,s[8964]=e,s[l+4>>2]=1|e;break a}if(s[8966]==(0|a)){s[8966]=l,e=s[8963]+r|0,s[8963]=e,s[l+4>>2]=1|e,s[e+l>>2]=e;break a}if(1==(3&(e=s[a+4>>2]))){u=-8&e;d:if(e>>>0<=255){if(o=s[a+8>>2],e=e>>>3|0,(0|(n=s[a+12>>2]))==(0|o)){m=35844,v=s[8961]&Pt(-2,e),s[m>>2]=v;break d}s[o+12>>2]=n,s[n+8>>2]=o}else{if(f=s[a+24>>2],(0|a)==(0|(n=s[a+12>>2])))if((i=s[(e=a+20|0)>>2])||(i=s[(e=a+16|0)>>2])){for(;o=e,(i=s[(e=(n=i)+20|0)>>2])||(e=n+16|0,i=s[n+16>>2]););s[o>>2]=0}else n=0;else e=s[a+8>>2],s[e+12>>2]=n,s[n+8>>2]=e;if(f){o=s[a+28>>2];u:{if(s[(e=36148+(o<<2)|0)>>2]==(0|a)){if(s[e>>2]=n,n)break u;m=35848,v=s[8962]&Pt(-2,o),s[m>>2]=v;break d}if(s[f+(s[f+16>>2]==(0|a)?16:20)>>2]=n,!n)break d}s[n+24>>2]=f,(e=s[a+16>>2])&&(s[n+16>>2]=e,s[e+24>>2]=n),(e=s[a+20>>2])&&(s[n+20>>2]=e,s[e+24>>2]=n)}}a=a+u|0,r=r+u|0}if(s[a+4>>2]=-2&s[a+4>>2],s[l+4>>2]=1|r,s[r+l>>2]=r,r>>>0<=255){n=35884+((e=r>>>3|0)<<3)|0,(r=s[8961])&(e=1<>2]:(s[8961]=e|r,e=n),s[n+8>>2]=l,s[e+12>>2]=l,s[l+12>>2]=n,s[l+8>>2]=e;break a}if(e=31,r>>>0<=16777215&&(e=r>>>8|0,e<<=i=e+1048320>>>16&8,e=28+((e=((e<<=o=e+520192>>>16&4)<<(n=e+245760>>>16&2)>>>15|0)-(n|o|i)|0)<<1|r>>>e+21&1)|0),s[l+28>>2]=e,s[l+16>>2]=0,s[l+20>>2]=0,i=36148+(e<<2)|0,(o=s[8962])&(n=1<>>1|0)|0),n=s[i>>2];;){if(o=n,(-8&s[n+4>>2])==(0|r))break s;if(n=e>>>29|0,e<<=1,!(n=s[16+(i=o+(4&n)|0)>>2]))break}s[i+16>>2]=l,s[l+24>>2]=o}else s[8962]=n|o,s[i>>2]=l,s[l+24>>2]=i;s[l+12>>2]=l,s[l+8>>2]=l;break a}for(r=(o=a-40|0)-(e=n+8&7?-8-n&7:0)|0,s[8964]=r,e=e+n|0,s[8967]=e,s[e+4>>2]=1|r,s[4+(n+o|0)>>2]=40,s[8968]=s[9083],s[(r=(e=(i+(i-39&7?39-i&7:0)|0)-47|0)>>>0>>0?u:e)+4>>2]=27,e=s[9076],s[r+16>>2]=s[9075],s[r+20>>2]=e,e=s[9074],s[r+8>>2]=s[9073],s[r+12>>2]=e,s[9075]=r+8,s[9074]=a,s[9073]=n,s[9076]=0,e=r+24|0;s[e+4>>2]=7,n=e+8|0,e=e+4|0,n>>>0>>0;);if((0|r)==(0|u))break o;if(s[r+4>>2]=-2&s[r+4>>2],i=r-u|0,s[u+4>>2]=1|i,s[r>>2]=i,i>>>0<=255){n=35884+((e=i>>>3|0)<<3)|0,(r=s[8961])&(e=1<>2]:(s[8961]=e|r,e=n),s[n+8>>2]=u,s[e+12>>2]=u,s[u+12>>2]=n,s[u+8>>2]=e;break o}if(e=31,s[u+16>>2]=0,s[u+20>>2]=0,i>>>0<=16777215&&(e=i>>>8|0,e<<=o=e+1048320>>>16&8,e=28+((e=((e<<=r=e+520192>>>16&4)<<(n=e+245760>>>16&2)>>>15|0)-(n|r|o)|0)<<1|i>>>e+21&1)|0),s[u+28>>2]=e,o=36148+(e<<2)|0,(r=s[8962])&(n=1<>>1|0)|0),n=s[o>>2];;){if(r=n,(0|i)==(-8&s[n+4>>2]))break i;if(n=e>>>29|0,e<<=1,!(n=s[16+(o=r+(4&n)|0)>>2]))break}s[o+16>>2]=u,s[u+24>>2]=r}else s[8962]=n|r,s[o>>2]=u,s[u+24>>2]=o;s[u+12>>2]=u,s[u+8>>2]=u;break o}e=s[o+8>>2],s[e+12>>2]=l,s[o+8>>2]=l,s[l+24>>2]=0,s[l+12>>2]=o,s[l+8>>2]=e}e=h+8|0;break e}e=s[r+8>>2],s[e+12>>2]=u,s[r+8>>2]=u,s[u+24>>2]=0,s[u+12>>2]=r,s[u+8>>2]=e}if(!((e=s[8964])>>>0<=f>>>0)){n=e-f|0,s[8964]=n,e=(r=s[8967])+f|0,s[8967]=e,s[e+4>>2]=1|n,s[r+4>>2]=3|f,e=r+8|0;break e}}s[8960]=48,e=0;break e}n:if(a){r=s[o+28>>2];r:{if(s[(e=36148+(r<<2)|0)>>2]==(0|o)){if(s[e>>2]=n,n)break r;h=Pt(-2,r)&h,s[8962]=h;break n}if(s[a+(s[a+16>>2]==(0|o)?16:20)>>2]=n,!n)break n}s[n+24>>2]=a,(e=s[o+16>>2])&&(s[n+16>>2]=e,s[e+24>>2]=n),(e=s[o+20>>2])&&(s[n+20>>2]=e,s[e+24>>2]=n)}n:if(i>>>0<=15)e=i+f|0,s[o+4>>2]=3|e,s[4+(e=e+o|0)>>2]=1|s[e+4>>2];else if(s[o+4>>2]=3|f,s[l+4>>2]=1|i,s[i+l>>2]=i,i>>>0<=255)n=35884+((e=i>>>3|0)<<3)|0,(r=s[8961])&(e=1<>2]:(s[8961]=e|r,e=n),s[n+8>>2]=l,s[e+12>>2]=l,s[l+12>>2]=n,s[l+8>>2]=e;else{e=31,i>>>0<=16777215&&(e=i>>>8|0,e<<=u=e+1048320>>>16&8,e=28+((e=((e<<=r=e+520192>>>16&4)<<(n=e+245760>>>16&2)>>>15|0)-(n|r|u)|0)<<1|i>>>e+21&1)|0),s[l+28>>2]=e,s[l+16>>2]=0,s[l+20>>2]=0,r=36148+(e<<2)|0;r:{if((n=1<>>1|0)|0),f=s[r>>2];;){if((-8&s[(n=f)+4>>2])==(0|i))break r;if(r=e>>>29|0,e<<=1,!(f=s[16+(r=n+(4&r)|0)>>2]))break}s[r+16>>2]=l,s[l+24>>2]=n}else s[8962]=n|h,s[r>>2]=l,s[l+24>>2]=r;s[l+12>>2]=l,s[l+8>>2]=l;break n}e=s[n+8>>2],s[e+12>>2]=l,s[n+8>>2]=l,s[l+24>>2]=0,s[l+12>>2]=n,s[l+8>>2]=e}e=o+8|0;break e}t:if(g){r=s[n+28>>2];n:{if(s[(e=36148+(r<<2)|0)>>2]==(0|n)){if(s[e>>2]=o,o)break n;m=35848,v=Pt(-2,r)&l,s[m>>2]=v;break t}if(s[(s[g+16>>2]==(0|n)?16:20)+g>>2]=o,!o)break t}s[o+24>>2]=g,(e=s[n+16>>2])&&(s[o+16>>2]=e,s[e+24>>2]=o),(e=s[n+20>>2])&&(s[o+20>>2]=e,s[e+24>>2]=o)}i>>>0<=15?(e=i+f|0,s[n+4>>2]=3|e,s[4+(e=e+n|0)>>2]=1|s[e+4>>2]):(s[n+4>>2]=3|f,s[h+4>>2]=1|i,s[i+h>>2]=i,p&&(r=35884+((e=p>>>3|0)<<3)|0,o=s[8966],(e=1<>2]:(s[8961]=e|a,e=r),s[r+8>>2]=o,s[e+12>>2]=o,s[o+12>>2]=r,s[o+8>>2]=e),s[8966]=h,s[8963]=i),e=n+8|0}return y=t+16|0,0|e}function S(e,t,n){var r,o,i,a,c,d,l,A,f,h,p,g,m,v,y,b,I,E,w,B,_,S,k,O,Q,R,P,N,x,D,T,M,U,H,j,J,F,G,L,q,Y,V,W,K,Z,z,X,$,ee,te,ne,re,oe,ie,ae=0,se=0,ce=0,de=0,ue=0,le=0,Ae=0,fe=0,he=0,pe=0,ge=0,me=0,ve=0,ye=0,be=0,Ie=0,Ce=0,Ee=0,we=0,Be=0,_e=0,Se=0,ke=0,Oe=0,Qe=0;Ae=e,r=ae=ke=s[n+4>>2],f=ae>>31,J=ae=(be=s[t+20>>2])<<1,ae=fn(r,f,ae,k=ae>>31),ce=C,se=ae,o=ae=s[n>>2],i=ae>>31,h=ae=s[t+24>>2],ue=fn(o,i,ae,a=ae>>31),ae=C+ce|0,ae=(se=se+ue|0)>>>0>>0?ae+1|0:ae,ce=se,F=se=le=s[n+8>>2],I=se>>31,p=se=s[t+16>>2],se=ce+(ue=fn(le,I,se,c=se>>31))|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,G=ae=Ce=s[n+12>>2],E=ae>>31,L=ae=(me=s[t+12>>2])<<1,ae=(ue=fn(Ce,E,ae,O=ae>>31))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=ae,z=ae=Ie=s[n+16>>2],_=ae>>31,g=ae=s[t+8>>2],ue=fn(Ie,_,ae,d=ae>>31),ae=C+se|0,ae=(ce=ce+ue|0)>>>0>>0?ae+1|0:ae,de=ce,X=se=pe=s[n+20>>2],Q=se>>31,q=se=(he=s[t+4>>2])<<1,ce=fn(pe,Q,se,R=se>>31),ae=C+ae|0,ae=(se=de+ce|0)>>>0>>0?ae+1|0:ae,ce=se,$=se=ge=s[n+24>>2],Y=se>>31,m=se=s[t>>2],ue=fn(ge,Y,se,l=se>>31),se=C+ae|0,se=(ce=ce+ue|0)>>>0>>0?se+1|0:se,Ee=s[n+28>>2],w=ae=u(Ee,19),B=ae>>31,V=ae=(ve=s[t+36>>2])<<1,ae=(ue=fn(w,B,ae,P=ae>>31))+ce|0,ce=C+se|0,ce=ae>>>0>>0?ce+1|0:ce,se=ae,ye=s[n+32>>2],we=ae=u(ye,19),Be=ae>>31,v=ae=s[t+32>>2],ue=fn(we,Be,ae,A=ae>>31),ae=C+ce|0,ae=(se=se+ue|0)>>>0>>0?ae+1|0:ae,ce=se,ee=s[n+36>>2],y=n=u(ee,19),b=n>>31,W=n=(t=s[t+28>>2])<<1,se=fn(y,b,n,N=n>>31),ae=C+ae|0,fe=n=ce+se|0,n=n>>>0>>0?ae+1|0:ae,ae=fn(p,c,r,f),se=C,be=fn(o,i,ue=be,x=ue>>31),ce=C+se|0,ce=(ae=be+ae|0)>>>0>>0?ce+1|0:ce,be=me,me=fn(le,I,me,D=me>>31),se=C+ce|0,se=(ae=me+ae|0)>>>0>>0?se+1|0:se,ce=(me=fn(g,d,Ce,E))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,me=he,ce=fn(Ie,_,he,T=he>>31),ae=C+ae|0,ae=(se=se+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(m,l,pe,Q),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=se,M=se=u(ge,19),se=ce+(ve=fn(se,S=se>>31,he=ve,U=he>>31))|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,ae=(ve=fn(v,A,w,B))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ve=t,t=(ce=fn(we,Be,t,H=t>>31))+ae|0,ae=C+se|0,ae=t>>>0>>0?ae+1|0:ae,se=fn(y,b,h,a),ae=C+ae|0,Se=t=se+t|0,t=t>>>0>>0?ae+1|0:ae,ae=fn(r,f,L,O),ce=C,se=(ge=fn(o,i,p,c))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ge=fn(g,d,le,I),ce=C+ae|0,ce=(se=ge+se|0)>>>0>>0?ce+1|0:ce,ae=(ge=fn(Ce,E,q,R))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(ge=fn(m,l,Ie,_))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,de=ce,K=se=u(pe,19),ce=fn(se,j=se>>31,V,P),ae=C+ae|0,ae=(se=de+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(v,A,M,S),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,pe=fn(w,B,W,N),ce=C+ae|0,ce=(se=pe+se|0)>>>0>>0?ce+1|0:ce,ae=(pe=fn(we,Be,h,a))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(pe=fn(y,b,J,k))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,pe=ce,ne=ae,ge=se=ce+33554432|0,re=ae=se>>>0<33554432?ae+1|0:ae,ce=Se,Se=(67108863&ae)<<6|se>>>26,ae=(ae>>26)+t|0,ae=(ce=ce+Se|0)>>>0>>0?ae+1|0:ae,oe=t=(Se=ce)+16777216|0,ae=n+(se=(ce=t>>>0<16777216?ae+1|0:ae)>>25)|0,ae=(t=(ce=(33554431&ce)<<7|t>>>25)+fe|0)>>>0>>0?ae+1|0:ae,Oe=t=(n=t)+33554432|0,t=ae=t>>>0<33554432?ae+1|0:ae,ae=-67108864&Oe,s[Ae+24>>2]=n-ae,fe=Ae,n=fn(r,f,q,R),ae=C,se=fn(o,i,g,d),ce=C+ae|0,ce=(n=se+n|0)>>>0>>0?ce+1|0:ce,se=fn(m,l,le,I),ae=C+ce|0,ae=(n=se+n|0)>>>0>>0?ae+1|0:ae,ce=n,Ae=n=u(Ce,19),se=fn(n,Ce=n>>31,V,P),ae=C+ae|0,ae=(n=ce+se|0)>>>0>>0?ae+1|0:ae,se=n,te=n=u(Ie,19),n=se+(ce=fn(v,A,n,Z=n>>31))|0,se=C+ae|0,se=n>>>0>>0?se+1|0:se,ce=fn(W,N,K,j),ae=C+se|0,ae=(n=ce+n|0)>>>0>>0?ae+1|0:ae,se=fn(h,a,M,S),ce=C+ae|0,ce=(n=se+n|0)>>>0>>0?ce+1|0:ce,se=fn(w,B,J,k),ae=C+ce|0,ae=(n=se+n|0)>>>0>>0?ae+1|0:ae,se=fn(we,Be,p,c),ae=C+ae|0,ae=(n=se+n|0)>>>0>>0?ae+1|0:ae,ce=fn(y,b,L,O),se=C+ae|0,de=n=ce+n|0,n=n>>>0>>0?se+1|0:se,ae=fn(m,l,r,f),ce=C,se=(Ie=fn(o,i,me,T))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ce=se,Ie=se=u(le,19),se=ce+(le=fn(se,_e=se>>31,he,U))|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,le=fn(v,A,Ae,Ce),ae=C+ce|0,ae=(se=le+se|0)>>>0>>0?ae+1|0:ae,ce=fn(te,Z,ve,H),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=(le=fn(h,a,K,j))+se|0,se=C+ae|0,se=ce>>>0>>0?se+1|0:se,le=fn(M,S,ue,x),ae=C+se|0,ae=(ce=le+ce|0)>>>0>>0?ae+1|0:ae,se=(le=fn(p,c,w,B))+ce|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,le=fn(we,Be,be,D),ae=C+ce|0,ae=(se=le+se|0)>>>0>>0?ae+1|0:ae,ce=fn(y,b,g,d),ae=C+ae|0,Qe=se=ce+se|0,le=se>>>0>>0?ae+1|0:ae,ae=fn(ae=u(r,19),ae>>31,V,P),se=C,ce=fn(o,i,m,l),se=C+se|0,se=(ae=ce+ae|0)>>>0>>0?se+1|0:se,ce=(ke=fn(v,A,Ie,_e))+ae|0,ae=C+se|0,se=(Ae=fn(Ae,Ce,W,N))+ce|0,ce=C+(ce>>>0>>0?ae+1|0:ae)|0,ce=se>>>0>>0?ce+1|0:ce,Ae=fn(h,a,te,Z),ae=C+ce|0,ae=(se=Ae+se|0)>>>0>>0?ae+1|0:ae,ce=fn(J,k,K,j),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=(Ae=fn(p,c,M,S))+se|0,se=C+ae|0,se=ce>>>0>>0?se+1|0:se,Ae=fn(w,B,L,O),ae=C+se|0,ae=(ce=Ae+ce|0)>>>0>>0?ae+1|0:ae,se=(Ae=fn(we,Be,g,d))+ce|0,ce=C+ae|0,ce=se>>>0>>0?ce+1|0:ce,Ae=fn(y,b,q,R),ae=C+ce|0,ae=(se=Ae+se|0)>>>0>>0?ae+1|0:ae,Ae=se,ke=ae,Ce=se=se+33554432|0,Ie=ae=se>>>0<33554432?ae+1|0:ae,_e=(67108863&ae)<<6|se>>>26,se=(ce=ae>>26)+le|0,le=ae=_e+Qe|0,ce=de,ae=ae>>>0<_e>>>0?se+1|0:se,ie=se=le+16777216|0,de=(33554431&(ae=se>>>0<16777216?ae+1|0:ae))<<7|se>>>25,ae=(ae>>25)+n|0,ae=(se=ce+de|0)>>>0>>0?ae+1|0:ae,_e=n=se+33554432|0,n=ae=n>>>0<33554432?ae+1|0:ae,ae=-67108864&_e,s[fe+8>>2]=se-ae,de=fe,ae=fn(h,a,r,f),ce=C,se=(fe=fn(o,i,ve,H))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ce=fn(F,I,ue,x),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=fn(p,c,G,E),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,fe=fn(z,_,be,D),ce=C+ae|0,ce=(se=fe+se|0)>>>0>>0?ce+1|0:ce,ae=(fe=fn(g,d,X,Q))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(fe=fn(me,T,$,Y))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,ce=fn(m,l,fe=Ee,Qe=fe>>31),ae=C+ae|0,ae=(se=se+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(we,Be,he,U),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,Ee=fn(y,b,v,A),ce=C+ae|0,ce=(se=Ee+se|0)>>>0>>0?ce+1|0:ce,ae=t>>26,t=(Ee=(67108863&t)<<6|Oe>>>26)+se|0,se=ae+ce|0,ae=se=t>>>0>>0?se+1|0:se,Oe=t=(ce=t)+16777216|0,t=ae=t>>>0<16777216?ae+1|0:ae,ae=-33554432&Oe,s[de+28>>2]=ce-ae,Ee=de,ae=fn(g,d,r,f),se=C,de=fn(o,i,be,D),ce=C+se|0,ce=(ae=de+ae|0)>>>0>>0?ce+1|0:ce,de=fn(F,I,me,T),se=C+ce|0,se=(ae=de+ae|0)>>>0>>0?se+1|0:se,ce=(de=fn(m,l,G,E))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,ce=fn(te,Z,he,U),ae=C+ae|0,ae=(se=se+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(v,A,K,j),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,de=fn(M,S,ve,H),ce=C+ae|0,ce=(se=de+se|0)>>>0>>0?ce+1|0:ce,ae=(de=fn(h,a,w,B))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(de=fn(we,Be,ue,x))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,ce=fn(y,b,p,c),ae=C+ae|0,de=se=se+ce|0,ae=(ae=se>>>0>>0?ae+1|0:ae)+(se=n>>26)|0,ae=(n=de+(ce=(67108863&n)<<6|_e>>>26)|0)>>>0>>0?ae+1|0:ae,we=n=(se=n)+16777216|0,n=ce=n>>>0<16777216?ae+1|0:ae,ae=-33554432&we,s[Ee+12>>2]=se-ae,ae=fn(r,f,W,N),ce=C,se=(de=fn(o,i,v,A))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ce=fn(h,a,F,I),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,de=fn(G,E,J,k),ce=C+ae|0,ce=(se=de+se|0)>>>0>>0?ce+1|0:ce,ae=(de=fn(p,c,z,_))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ce=(de=fn(L,O,X,Q))+ae|0,ae=C+se|0,ae=ce>>>0>>0?ae+1|0:ae,se=ce,ce=fn(g,d,$,Y),ae=C+ae|0,ae=(se=se+ce|0)>>>0>>0?ae+1|0:ae,ce=fn(fe,Qe,q,R),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ye=fn(m,l,de=ye,Be=de>>31),ce=C+ae|0,ce=(se=ye+se|0)>>>0>>0?ce+1|0:ce,ae=(ye=fn(y,b,V,P))+se|0,se=C+ce|0,se=ae>>>0>>0?se+1|0:se,ye=ae,ae=(ae=t>>25)+se|0,ae=(t=ye+(ce=(33554431&t)<<7|Oe>>>25)|0)>>>0>>0?ae+1|0:ae,ye=t=(se=t)+33554432|0,t=ae=t>>>0<33554432?ae+1|0:ae,ae=-67108864&ye,s[Ee+32>>2]=se-ae,ce=se=pe-(ae=-67108864&ge)|0,ae=(ae=ne-((ae>>>0>pe>>>0)+re|0)|0)+(se=n>>25)|0,ae=(n=ce+(pe=(33554431&n)<<7|we>>>25)|0)>>>0>>0?ae+1|0:ae,(se=n+33554432|0)>>>0<33554432&&(ae=ae+1|0),ae=(Se-(-33554432&oe)|0)+((67108863&ae)<<6|se>>>26)|0,s[e+20>>2]=ae,ae=-67108864&se,s[e+16>>2]=n-ae,ae=fn(v,A,r,f),ce=C,se=(he=fn(o,i,he,U))+ae|0,ae=C+ce|0,ae=se>>>0>>0?ae+1|0:ae,ce=(he=fn(F,I,ve,H))+se|0,se=C+ae|0,se=ce>>>0>>0?se+1|0:se,ae=(he=fn(h,a,G,E))+ce|0,ce=C+se|0,se=(ue=fn(z,_,ue,x))+ae|0,ae=C+(ae>>>0>>0?ce+1|0:ce)|0,ae=se>>>0>>0?ae+1|0:ae,ce=fn(p,c,X,Q),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=fn(be,D,$,Y),ae=C+ae|0,ae=(se=ce+se|0)>>>0>>0?ae+1|0:ae,ce=(ue=fn(g,d,fe,Qe))+se|0,se=C+ae|0,se=ce>>>0>>0?se+1|0:se,ae=(ue=fn(de,Be,me,T))+ce|0,ce=C+se|0,ce=ae>>>0>>0?ce+1|0:ce,se=(ue=fn(m,l,ee,ee>>31))+ae|0,ae=C+ce|0,n=se,ae=(ae=se>>>0>>0?ae+1|0:ae)+(se=t>>26)|0,ae=(t=n+(ce=(67108863&t)<<6|ye>>>26)|0)>>>0>>0?ae+1|0:ae,ae=(t=(n=t)+16777216|0)>>>0<16777216?ae+1|0:ae,t=-33554432&(se=t),s[e+36>>2]=n-t,ce=le-(-33554432&ie)|0,ue=Ae-(t=-67108864&Ce)|0,be=ke-((t>>>0>Ae>>>0)+Ie|0)|0,ae=fn((33554431&(t=ae))<<7|se>>>25,ae>>=25,19,0),se=C+be|0,ae=se=(t=ae+ue|0)>>>0>>0?se+1|0:se,n=((67108863&(ae=(n=t+33554432|0)>>>0<33554432?ae+1|0:ae))<<6|(se=n)>>>26)+ce|0,s[e+4>>2]=n,n=e,e=-67108864&se,s[n>>2]=t-e}function k(e,t){var n,r,o,i,a,c,d,l,A,f,h,p,g,m,v,y,b,I,E,w,B,_,S,k,O,Q,R,P,N,x,D,T,M,U,H,j,J,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0;V=e,f=G=(F=s[t+12>>2])<<1,K=F,F=fn(G,a=G>>31,F,k=F>>31),q=C,G=F,n=F=s[t+16>>2],c=F>>31,b=F=(z=s[t+8>>2])<<1,Y=fn(n,c,F,g=F>>31),F=C+q|0,F=(G=G+Y|0)>>>0>>0?F+1|0:F,q=G,m=G=(Y=s[t+20>>2])<<1,v=G>>31,d=G=(X=s[t+4>>2])<<1,L=fn(m,v,G,r=G>>31),G=C+F|0,G=(q=q+L|0)>>>0>>0?G+1|0:G,w=F=W=s[t+24>>2],h=F>>31,l=F=(re=s[t>>2])<<1,L=fn(W,h,F,o=F>>31),F=C+G|0,F=(q=L+q|0)>>>0>>0?F+1|0:F,Z=q,G=s[t+32>>2],y=q=u(G,19),O=G,q=fn(q,p=q>>31,G,B=G>>31),F=C+F|0,F=(G=Z+q|0)>>>0>>0?F+1|0:F,Z=G,ee=s[t+36>>2],A=G=u(ee,38),i=G>>31,x=t=(q=s[t+28>>2])<<1,L=fn(G,i,t,Q=t>>31),t=C+F|0,te=G=Z+L|0,$=G>>>0>>0?t+1|0:t,t=fn(d,r,n,c),F=C,G=fn(b,g,K,k),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,D=Y,L=fn(Y,_=Y>>31,l,o),G=C+F|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=fn(y,p,x,Q),F=C+G|0,F=(t=L+t|0)>>>0>>0?F+1|0:F,G=fn(A,i,W,h),F=C+F|0,Z=t=G+t|0,oe=t>>>0>>0?F+1|0:F,t=fn(d,r,f,a),G=C,F=(z=fn(L=z,I=L>>31,L,I))+t|0,t=C+G|0,t=F>>>0>>0?t+1|0:t,G=(z=fn(l,o,n,c))+F|0,F=C+t|0,F=G>>>0>>0?F+1|0:F,S=t=u(q,38),z=q,t=(q=fn(t,E=t>>31,q,R=q>>31))+G|0,G=C+F|0,G=t>>>0>>0?G+1|0:G,t=(F=t)+(q=fn(y,p,t=W<<1,t>>31))|0,F=C+G|0,F=t>>>0>>0?F+1|0:F,G=fn(A,i,m,v),F=C+F|0,P=t=G+t|0,U=F=t>>>0>>0?F+1|0:F,t=F,T=F=P+33554432|0,H=t=F>>>0<33554432?t+1|0:t,F=(F=t>>26)+oe|0,oe=t=(G=(67108863&t)<<6|T>>>26)+Z|0,G=t>>>0>>0?F+1|0:F,j=t=t+16777216|0,F=(F=(G=t>>>0<16777216?G+1|0:G)>>25)+$|0,F=(t=(G=(33554431&G)<<7|t>>>25)+te|0)>>>0>>0?F+1|0:F,G=t,t=F,Z=F=G+33554432|0,q=t=F>>>0<33554432?t+1|0:t,t=-67108864&F,s[V+24>>2]=G-t,t=fn(l,o,L,I),F=C,X=fn(d,r,V=X,ne=V>>31),G=C+F|0,G=(t=X+t|0)>>>0>>0?G+1|0:G,F=t,X=t=u(W,19),t=F+(W=fn(t,te=t>>31,W,h))|0,F=C+G|0,F=t>>>0>>0?F+1|0:F,G=(W=fn(m,v,S,E))+t|0,t=C+F|0,t=G>>>0>>0?t+1|0:t,M=F=n<<1,W=fn(y,p,F,N=F>>31),F=C+t|0,F=(G=W+G|0)>>>0>>0?F+1|0:F,t=G,G=fn(A,i,f,a),F=C+F|0,$=t=t+G|0,W=t>>>0>>0?F+1|0:F,t=fn(m,v,X,te),F=C,V=fn(l,o,V,ne),G=C+F|0,G=(t=V+t|0)>>>0>>0?G+1|0:G,V=fn(n,c,S,E),F=C+G|0,F=(t=V+t|0)>>>0>>0?F+1|0:F,G=(V=fn(y,p,f,a))+t|0,t=C+F|0,t=G>>>0>>0?t+1|0:t,V=fn(A,i,L,I),F=C+t|0,ne=G=V+G|0,V=G>>>0>>0?F+1|0:F,t=fn(t=u(Y,38),t>>31,Y,_),F=C,Y=t,G=fn(t=re,G=t>>31,t,G),F=C+F|0,F=(t=Y+G|0)>>>0>>0?F+1|0:F,Y=fn(X,te,M,N),G=C+F|0,G=(t=Y+t|0)>>>0>>0?G+1|0:G,Y=fn(f,a,S,E),F=C+G|0,F=(t=Y+t|0)>>>0>>0?F+1|0:F,G=(Y=fn(y,p,b,g))+t|0,t=C+F|0,t=G>>>0>>0?t+1|0:t,Y=fn(d,r,A,i),F=C+t|0,X=G=Y+G|0,te=F=G>>>0>>0?F+1|0:F,re=t=G+33554432|0,J=F=t>>>0<33554432?F+1|0:F,G=(t=F>>26)+V|0,V=F=(Y=(67108863&F)<<6|re>>>26)+ne|0,F=F>>>0>>0?G+1|0:G,ne=t=V+16777216|0,Y=(33554431&(F=t>>>0<16777216?F+1|0:F))<<7|t>>>25,F=(F>>25)+W|0,F=(G=Y+$|0)>>>0>>0?F+1|0:F,W=G=(t=G)+33554432|0,Y=F=G>>>0<33554432?F+1|0:F,F=-67108864&G,s[e+8>>2]=t-F,t=fn(b,g,D,_),F=C,G=fn(n,c,f,a),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=fn(d,r,w,h),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=fn(l,o,z,R),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=($=fn(A,i,O,B))+t|0,t=C+F|0,F=q>>26,q=(Z=(67108863&q)<<6|Z>>>26)+G|0,G=(t=G>>>0<$>>>0?t+1|0:t)+F|0,F=G=q>>>0>>0?G+1|0:G,Z=G=(t=q)+16777216|0,q=F=G>>>0<16777216?F+1|0:F,F=-33554432&G,s[e+28>>2]=t-F,t=fn(l,o,K,k),G=C,F=(L=fn(d,r,L,I))+t|0,t=C+G|0,t=F>>>0>>0?t+1|0:t,L=fn(w,h,S,E),G=C+t|0,G=(F=L+F|0)>>>0>>0?G+1|0:G,t=(L=fn(y,p,m,v))+F|0,F=C+G|0,F=t>>>0>>0?F+1|0:F,G=fn(A,i,n,c),F=C+F|0,F=(F=(t=G+t|0)>>>0>>0?F+1|0:F)+(G=Y>>26)|0,G=t=(Y=(67108863&Y)<<6|W>>>26)+t|0,t=F=t>>>0>>0?F+1|0:F,W=F=G+16777216|0,Y=t=F>>>0<16777216?t+1|0:t,t=-33554432&F,s[e+12>>2]=G-t,L=e,t=fn(w,h,b,g),F=C,G=fn(n,c,n,c),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=fn(f,a,m,v),F=C+F|0,F=(t=G+t|0)>>>0>>0?F+1|0:F,G=(K=fn(d,r,x,Q))+t|0,t=C+F|0,t=G>>>0>>0?t+1|0:t,F=(K=fn(l,o,O,B))+G|0,G=C+t|0,G=F>>>0>>0?G+1|0:G,t=(ee=fn(A,i,K=ee,$=K>>31))+F|0,F=C+G|0,F=t>>>0>>0?F+1|0:F,e=t,F=(t=q>>25)+F|0,F=(G=e+(q=(33554431&q)<<7|Z>>>25)|0)>>>0>>0?F+1|0:F,ee=G=(t=G)+33554432|0,q=F=G>>>0<33554432?F+1|0:F,F=-67108864&G,s[L+32>>2]=t-F,F=Y>>25,G=(Y=(33554431&Y)<<7|W>>>25)+(P-(t=-67108864&T)|0)|0,t=F+(U-((t>>>0>P>>>0)+H|0)|0)|0,F=t=G>>>0>>0?t+1|0:t,Y=t=G+33554432|0,t=((67108863&(F=t>>>0<33554432?F+1|0:F))<<6|t>>>26)+(oe=oe-(-33554432&j)|0)|0,s[L+20>>2]=t,t=-67108864&Y,s[L+16>>2]=G-t,Y=L,t=fn(f,a,w,h),G=C,F=(L=fn(D,_,M,N))+t|0,t=C+G|0,t=F>>>0>>0?t+1|0:t,G=(L=fn(b,g,z,R))+F|0,F=C+t|0,F=G>>>0>>0?F+1|0:F,t=(L=fn(d,r,O,B))+G|0,G=C+F|0,G=t>>>0>>0?G+1|0:G,L=fn(l,o,K,$),F=C+G|0,G=t=L+t|0,F=(t=t>>>0>>0?F+1|0:F)+(F=q>>26)|0,F=(G=(q=(67108863&q)<<6|ee>>>26)+G|0)>>>0>>0?F+1|0:F,q=G,t=F,t=(F=G+16777216|0)>>>0<16777216?t+1|0:t,G=-33554432&F,s[Y+36>>2]=q-G,L=fn((33554431&t)<<7|F>>>25,t>>25,19,0),F=C+(te-(((G=-67108864&re)>>>0>X>>>0)+J|0)|0)|0,G=t=L+(X-G|0)|0,t=t>>>0>>0?F+1|0:F,t=(V-(-33554432&ne)|0)+((67108863&(t=(F=G+33554432|0)>>>0<33554432?t+1|0:t))<<6|F>>>26)|0,s[Y+4>>2]=t,e=-67108864&F,s[Y>>2]=G-e}function O(e,t,n){var r,o=0,i=0,a=0,c=0,d=0,u=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,b=0,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,T=0,M=0,U=0,H=0,j=0,J=0,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0,ie=0;for(y=r=y-2048|0,Qn(r+1024|0,t),ot(r+1024|0,e),Qn(r,r+1024|0),ot(r,n),t=0;c=s[(o=h=(r+1024|0)+(64|(e=w<<7))|0)>>2],A=s[(a=f=(r+1024|0)+(96|e)|0)>>2],a=s[a+4>>2],d=c,v=s[o+4>>2],l=A,o=e+(r+1024|0)|0,u=s[(c=(r+1024|0)+(32|e)|0)>>2],A=s[c+4>>2],l=Cn(l^(E=ut(s[o>>2],s[o+4>>2],u,A)),(i=a)^(a=C),32),A=Cn(d=(m=ut(d,v,l,i=C))^u,A^(u=C),24),U=Cn((R=ut(E,d=a,A,a=C))^l,(g=C)^i,16),a=Cn(A^(H=ut(m,u,U,x=C)),(D=C)^a,63),A=C,l=s[(u=(r+1024|0)+(104|e)|0)>>2],m=s[u+4>>2],k=s[(i=E=(r+1024|0)+(72|e)|0)>>2],p=s[i+4>>2],B=Cn((B=l)^(_=ut(I=s[(i=l=(r+1024|0)+(8|e)|0)>>2],v=s[i+4>>2],N=s[(i=(r+1024|0)+(40|e)|0)>>2],d=s[i+4>>2])),(v=m)^(m=C),32),d=Cn(p=(I=ut(k,p,B,v=C))^N,d^(N=C),24),Y=Cn((T=ut(_,p=m,d,m=C))^B,(j=C)^v,16),m=Cn(d^(z=ut(I,N,Y,K=C)),(X=C)^m,63),d=C,B=s[(_=N=(r+1024|0)+(112|e)|0)>>2],I=s[_+4>>2],P=s[(_=(r+1024|0)+(80|e)|0)>>2],b=s[_+4>>2],k=B,B=(r+1024|0)+(16|e)|0,O=s[(Q=v=(r+1024|0)+(48|e)|0)>>2],Q=s[Q+4>>2],k=Cn(k^(M=ut(s[B>>2],s[B+4>>2],O,Q)),(p=I)^(I=C),32),Q=Cn(b=(p=ut(P,b,k,S=C))^O,Q^(O=C),24),te=Cn(($=ut(M,b=I,Q,I=C))^k,(ee=C)^S,16),I=Cn(Q^(V=ut(p,O,te,ne=C)),(L=C)^I,63),Q=C,k=s[(O=(r+1024|0)+(120|e)|0)>>2],S=s[O+4>>2],re=s[(p=M=(r+1024|0)+(88|e)|0)>>2],q=s[p+4>>2],F=Cn((P=k)^(W=ut(Z=s[(p=k=(r+1024|0)+(24|e)|0)>>2],b=s[p+4>>2],J=s[(e=(r+1024|0)+(56|e)|0)>>2],p=s[e+4>>2])),(b=S)^(S=C),32),p=Cn(b=(q=ut(re,q,F,G=C))^J,p^(J=C),24),P=J,F=Cn((J=ut(W,b=S,p,S=C))^F,(W=C)^G,16),S=Cn(p^(q=ut(q,P,F,G=C)),(Z=C)^S,63),p=C,P=V,b=L,V=Cn(F^(R=ut(R,g,m,d)),G^(g=C),32),m=Cn((F=ut(P,b,V,L=C))^m,(G=C)^d,24),d=ut(d=R,g,m,R=C),g=C,s[o>>2]=d,s[o+4>>2]=g,o=Cn(d^V,L^g,16),d=C,s[O>>2]=o,s[O+4>>2]=d,o=ut(F,G,o,d),d=C,s[_>>2]=o,s[_+4>>2]=d,oe=i,ie=Cn(o^m,d^R,63),s[oe>>2]=ie,s[i+4>>2]=C,g=I,d=Cn(U^(i=ut(T,j,I,Q)),x^(m=C),32),o=Cn(g^(I=ut(q,Z,d,_=C)),(o=Q)^(Q=C),24),i=ut(i,g=m,o,m=C),O=C,s[l>>2]=i,s[l+4>>2]=O,l=Cn(i^d,_^O,16),i=C,s[f>>2]=l,s[f+4>>2]=i,f=ut(I,Q,l,i),s[M>>2]=f,l=C,s[M+4>>2]=l,oe=v,ie=Cn(o^f,l^m,63),s[oe>>2]=ie,s[v+4>>2]=C,o=ut($,ee,S,p),d=ut(H,D,i=Cn(Y^o,K^(l=C),32),m=C),o=ut(o,v=l,f=Cn(d^S,(_=C)^p,24),l=C),I=v=C,s[B>>2]=o,s[B+4>>2]=I,o=Cn(o^i,m^I,16),i=C,s[u>>2]=o,s[u+4>>2]=i,o=ut(d,_,o,i),s[h>>2]=o,i=h,h=C,s[i+4>>2]=h,oe=e,ie=Cn(o^f,h^l,63),s[oe>>2]=ie,s[e+4>>2]=C,i=a,o=Cn(te^(h=ut(J,W,a,A)),ne^(f=C),32),e=Cn(i^(u=ut(z,X,o,a=C)),(e=A)^(A=C),24),h=ut(h,i=f,e,f=C),i=l=C,s[k>>2]=h,s[k+4>>2]=i,h=Cn(o^h,a^i,16),o=C,s[N>>2]=h,s[N+4>>2]=o,h=ut(u,A,h,o),s[E>>2]=h,o=C,s[E+4>>2]=o,oe=c,ie=Cn(e^h,o^f,63),s[oe>>2]=ie,s[c+4>>2]=C,8!=(0|(w=w+1|0)););for(;w=s[768+(e=(f=t<<4)+(r+1024|0)|0)>>2],h=s[e+772>>2],d=s[(o=e+512|0)>>2],l=s[o+4>>2],i=w,w=s[e+256>>2],o=s[e+260>>2],a=Cn(i^(c=ut(s[e>>2],s[e+4>>2],w,o)),(a=h)^(h=C),32),o=Cn(i=(u=ut(d,l,a,A=C))^w,o^(w=C),24),v=w,m=Cn((l=ut(c,h,o,w=C))^a,(i=C)^A,16),w=Cn(o^(N=ut(u,v,m,d=C)),(_=C)^w,63),h=C,o=s[e+780>>2],I=s[e+520>>2],g=s[e+524>>2],u=Cn((B=s[e+776>>2])^(A=ut(v=s[(c=f=(r+1024|0)+(8|f)|0)>>2],A=s[c+4>>2],c=s[e+264>>2],a=s[e+268>>2])),(v=o)^(o=C),32),a=Cn(v=(B=ut(I,g,u,E=C))^c,a^(c=C),24),g=B,I=Cn((B=ut(A,v=o,a,o=C))^u,(v=C)^E,16),o=Cn(a^(O=ut(g,c,I,Q=C)),(M=C)^o,63),c=C,a=s[e+900>>2],b=s[e+640>>2],R=s[e+644>>2],p=s[e+896>>2],A=s[e+384>>2],u=s[e+388>>2],k=Cn(p^(E=ut(s[e+128>>2],s[e+132>>2],A,u)),(g=a)^(a=C),32),u=Cn(g=(p=ut(b,R,k,S=C))^A,u^(A=C),24),b=p,p=Cn((p=k)^(k=ut(E,g=a,u,a=C)),(g=S)^(S=C),16),a=Cn(u^(g=ut(b,A,p,R=C)),(U=C)^a,63),A=C,u=s[e+908>>2],L=s[e+648>>2],K=s[e+652>>2],P=s[e+904>>2],E=s[e+392>>2],x=s[e+396>>2],D=Cn(P^(H=ut(s[e+136>>2],s[e+140>>2],E,x)),(b=u)^(u=C),32),P=x=Cn(b=(j=ut(L,K,D,T=C))^E,x^(E=C),24),D=Cn((x=ut(H,b=u,x,u=C))^D,(H=C)^T,16),u=Cn(P^(j=ut(j,E,D,T=C)),(Y=C)^u,63),E=C,P=g,b=U,g=Cn(D^(l=ut(l,i,o,c)),T^(i=C),32),o=Cn((D=ut(P,b,g,U=C))^o,(T=C)^c,24),c=ut(c=l,i,o,l=C),i=C,s[e>>2]=c,s[e+4>>2]=i,c=Cn(c^g,U^i,16),i=C,s[e+904>>2]=c,s[e+908>>2]=i,c=ut(D,T,c,i),i=C,s[e+640>>2]=c,s[e+644>>2]=i,oe=e,ie=Cn(o^c,l^i,63),s[oe+264>>2]=ie,s[e+268>>2]=C,g=a,c=ut(B,v,a,A),m=ut(j,Y,l=Cn(m^c,d^(a=C),32),i=C),c=ut(c,d=a,o=Cn(g^m,(o=A)^(A=C),24),a=C),d=C,s[f>>2]=c,s[f+4>>2]=d,f=Cn(c^l,i^d,16),c=C,s[e+768>>2]=f,s[e+772>>2]=c,f=ut(m,A,f,c),s[e+648>>2]=f,c=C,s[e+652>>2]=c,oe=e,ie=Cn(o^f,c^a,63),s[oe+384>>2]=ie,s[e+388>>2]=C,l=u,a=Cn(I^(o=ut(k,S,u,E)),Q^(c=C),32),f=Cn(l^(u=ut(N,_,a,A=C)),(i=E)^(E=C),24),o=ut(o,i=c,f,c=C),i=l=C,s[e+128>>2]=o,s[e+132>>2]=i,o=Cn(o^a,i^A,16),a=C,s[e+776>>2]=o,s[e+780>>2]=a,o=ut(u,E,o,a),s[e+512>>2]=o,a=C,s[e+516>>2]=a,oe=e,ie=Cn(o^f,c^a,63),s[oe+392>>2]=ie,s[e+396>>2]=C,f=ut(x,H,w,h),A=ut(O,M,c=Cn(p^f,R^(o=C),32),a=C),h=ut(i=f,o,w=Cn(A^w,(u=C)^h,24),f=C),o=C,s[e+136>>2]=h,s[e+140>>2]=o,h=Cn(c^h,a^o,16),o=C,s[e+896>>2]=h,s[e+900>>2]=o,h=ut(A,u,h,o),s[e+520>>2]=h,o=C,s[e+524>>2]=o,oe=e,ie=Cn(h^w,o^f,63),s[oe+256>>2]=ie,s[e+260>>2]=C,8!=(0|(t=t+1|0)););Qn(n,r),ot(n,r+1024|0),y=r+2048|0}function Q(e,t,n){var r,o=0,i=0,a=0,c=0,d=0,u=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,b=0,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,T=0,M=0,U=0,H=0,j=0,J=0,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0,ie=0;for(y=r=y-2048|0,Qn(r+1024|0,t),ot(r+1024|0,e),Qn(r,r+1024|0),t=0;c=s[(o=h=(r+1024|0)+(64|(e=w<<7))|0)>>2],A=s[(a=f=(r+1024|0)+(96|e)|0)>>2],a=s[a+4>>2],d=c,v=s[o+4>>2],l=A,o=e+(r+1024|0)|0,u=s[(c=(r+1024|0)+(32|e)|0)>>2],A=s[c+4>>2],l=Cn(l^(E=ut(s[o>>2],s[o+4>>2],u,A)),(i=a)^(a=C),32),A=Cn(d=(m=ut(d,v,l,i=C))^u,A^(u=C),24),U=Cn((R=ut(E,d=a,A,a=C))^l,(g=C)^i,16),a=Cn(A^(H=ut(m,u,U,x=C)),(D=C)^a,63),A=C,l=s[(u=(r+1024|0)+(104|e)|0)>>2],m=s[u+4>>2],k=s[(i=E=(r+1024|0)+(72|e)|0)>>2],p=s[i+4>>2],B=Cn((B=l)^(_=ut(I=s[(i=l=(r+1024|0)+(8|e)|0)>>2],v=s[i+4>>2],N=s[(i=(r+1024|0)+(40|e)|0)>>2],d=s[i+4>>2])),(v=m)^(m=C),32),d=Cn(p=(I=ut(k,p,B,v=C))^N,d^(N=C),24),Y=Cn((T=ut(_,p=m,d,m=C))^B,(j=C)^v,16),m=Cn(d^(z=ut(I,N,Y,K=C)),(X=C)^m,63),d=C,B=s[(_=N=(r+1024|0)+(112|e)|0)>>2],I=s[_+4>>2],P=s[(_=(r+1024|0)+(80|e)|0)>>2],b=s[_+4>>2],k=B,B=(r+1024|0)+(16|e)|0,O=s[(Q=v=(r+1024|0)+(48|e)|0)>>2],Q=s[Q+4>>2],k=Cn(k^(M=ut(s[B>>2],s[B+4>>2],O,Q)),(p=I)^(I=C),32),Q=Cn(b=(p=ut(P,b,k,S=C))^O,Q^(O=C),24),te=Cn(($=ut(M,b=I,Q,I=C))^k,(ee=C)^S,16),I=Cn(Q^(V=ut(p,O,te,ne=C)),(L=C)^I,63),Q=C,k=s[(O=(r+1024|0)+(120|e)|0)>>2],S=s[O+4>>2],re=s[(p=M=(r+1024|0)+(88|e)|0)>>2],q=s[p+4>>2],F=Cn((P=k)^(W=ut(Z=s[(p=k=(r+1024|0)+(24|e)|0)>>2],b=s[p+4>>2],J=s[(e=(r+1024|0)+(56|e)|0)>>2],p=s[e+4>>2])),(b=S)^(S=C),32),p=Cn(b=(q=ut(re,q,F,G=C))^J,p^(J=C),24),P=J,F=Cn((J=ut(W,b=S,p,S=C))^F,(W=C)^G,16),S=Cn(p^(q=ut(q,P,F,G=C)),(Z=C)^S,63),p=C,P=V,b=L,V=Cn(F^(R=ut(R,g,m,d)),G^(g=C),32),m=Cn((F=ut(P,b,V,L=C))^m,(G=C)^d,24),d=ut(d=R,g,m,R=C),g=C,s[o>>2]=d,s[o+4>>2]=g,o=Cn(d^V,L^g,16),d=C,s[O>>2]=o,s[O+4>>2]=d,o=ut(F,G,o,d),d=C,s[_>>2]=o,s[_+4>>2]=d,oe=i,ie=Cn(o^m,d^R,63),s[oe>>2]=ie,s[i+4>>2]=C,g=I,d=Cn(U^(i=ut(T,j,I,Q)),x^(m=C),32),o=Cn(g^(I=ut(q,Z,d,_=C)),(o=Q)^(Q=C),24),i=ut(i,g=m,o,m=C),O=C,s[l>>2]=i,s[l+4>>2]=O,l=Cn(i^d,_^O,16),i=C,s[f>>2]=l,s[f+4>>2]=i,f=ut(I,Q,l,i),s[M>>2]=f,l=C,s[M+4>>2]=l,oe=v,ie=Cn(o^f,l^m,63),s[oe>>2]=ie,s[v+4>>2]=C,o=ut($,ee,S,p),d=ut(H,D,i=Cn(Y^o,K^(l=C),32),m=C),o=ut(o,v=l,f=Cn(d^S,(_=C)^p,24),l=C),I=v=C,s[B>>2]=o,s[B+4>>2]=I,o=Cn(o^i,m^I,16),i=C,s[u>>2]=o,s[u+4>>2]=i,o=ut(d,_,o,i),s[h>>2]=o,i=h,h=C,s[i+4>>2]=h,oe=e,ie=Cn(o^f,h^l,63),s[oe>>2]=ie,s[e+4>>2]=C,i=a,o=Cn(te^(h=ut(J,W,a,A)),ne^(f=C),32),e=Cn(i^(u=ut(z,X,o,a=C)),(e=A)^(A=C),24),h=ut(h,i=f,e,f=C),i=l=C,s[k>>2]=h,s[k+4>>2]=i,h=Cn(o^h,a^i,16),o=C,s[N>>2]=h,s[N+4>>2]=o,h=ut(u,A,h,o),s[E>>2]=h,o=C,s[E+4>>2]=o,oe=c,ie=Cn(e^h,o^f,63),s[oe>>2]=ie,s[c+4>>2]=C,8!=(0|(w=w+1|0)););for(;w=s[768+(e=(f=t<<4)+(r+1024|0)|0)>>2],h=s[e+772>>2],d=s[(o=e+512|0)>>2],l=s[o+4>>2],i=w,w=s[e+256>>2],o=s[e+260>>2],a=Cn(i^(c=ut(s[e>>2],s[e+4>>2],w,o)),(a=h)^(h=C),32),o=Cn(i=(u=ut(d,l,a,A=C))^w,o^(w=C),24),v=w,m=Cn((l=ut(c,h,o,w=C))^a,(i=C)^A,16),w=Cn(o^(N=ut(u,v,m,d=C)),(_=C)^w,63),h=C,o=s[e+780>>2],I=s[e+520>>2],g=s[e+524>>2],u=Cn((B=s[e+776>>2])^(A=ut(v=s[(c=f=(r+1024|0)+(8|f)|0)>>2],A=s[c+4>>2],c=s[e+264>>2],a=s[e+268>>2])),(v=o)^(o=C),32),a=Cn(v=(B=ut(I,g,u,E=C))^c,a^(c=C),24),g=B,I=Cn((B=ut(A,v=o,a,o=C))^u,(v=C)^E,16),o=Cn(a^(O=ut(g,c,I,Q=C)),(M=C)^o,63),c=C,a=s[e+900>>2],b=s[e+640>>2],R=s[e+644>>2],p=s[e+896>>2],A=s[e+384>>2],u=s[e+388>>2],k=Cn(p^(E=ut(s[e+128>>2],s[e+132>>2],A,u)),(g=a)^(a=C),32),u=Cn(g=(p=ut(b,R,k,S=C))^A,u^(A=C),24),b=p,p=Cn((p=k)^(k=ut(E,g=a,u,a=C)),(g=S)^(S=C),16),a=Cn(u^(g=ut(b,A,p,R=C)),(U=C)^a,63),A=C,u=s[e+908>>2],L=s[e+648>>2],K=s[e+652>>2],P=s[e+904>>2],E=s[e+392>>2],x=s[e+396>>2],D=Cn(P^(H=ut(s[e+136>>2],s[e+140>>2],E,x)),(b=u)^(u=C),32),P=x=Cn(b=(j=ut(L,K,D,T=C))^E,x^(E=C),24),D=Cn((x=ut(H,b=u,x,u=C))^D,(H=C)^T,16),u=Cn(P^(j=ut(j,E,D,T=C)),(Y=C)^u,63),E=C,P=g,b=U,g=Cn(D^(l=ut(l,i,o,c)),T^(i=C),32),o=Cn((D=ut(P,b,g,U=C))^o,(T=C)^c,24),c=ut(c=l,i,o,l=C),i=C,s[e>>2]=c,s[e+4>>2]=i,c=Cn(c^g,U^i,16),i=C,s[e+904>>2]=c,s[e+908>>2]=i,c=ut(D,T,c,i),i=C,s[e+640>>2]=c,s[e+644>>2]=i,oe=e,ie=Cn(o^c,l^i,63),s[oe+264>>2]=ie,s[e+268>>2]=C,g=a,c=ut(B,v,a,A),m=ut(j,Y,l=Cn(m^c,d^(a=C),32),i=C),c=ut(c,d=a,o=Cn(g^m,(o=A)^(A=C),24),a=C),d=C,s[f>>2]=c,s[f+4>>2]=d,f=Cn(c^l,i^d,16),c=C,s[e+768>>2]=f,s[e+772>>2]=c,f=ut(m,A,f,c),s[e+648>>2]=f,c=C,s[e+652>>2]=c,oe=e,ie=Cn(o^f,c^a,63),s[oe+384>>2]=ie,s[e+388>>2]=C,l=u,a=Cn(I^(o=ut(k,S,u,E)),Q^(c=C),32),f=Cn(l^(u=ut(N,_,a,A=C)),(i=E)^(E=C),24),o=ut(o,i=c,f,c=C),i=l=C,s[e+128>>2]=o,s[e+132>>2]=i,o=Cn(o^a,i^A,16),a=C,s[e+776>>2]=o,s[e+780>>2]=a,o=ut(u,E,o,a),s[e+512>>2]=o,a=C,s[e+516>>2]=a,oe=e,ie=Cn(o^f,c^a,63),s[oe+392>>2]=ie,s[e+396>>2]=C,f=ut(x,H,w,h),A=ut(O,M,c=Cn(p^f,R^(o=C),32),a=C),h=ut(i=f,o,w=Cn(A^w,(u=C)^h,24),f=C),o=C,s[e+136>>2]=h,s[e+140>>2]=o,h=Cn(c^h,a^o,16),o=C,s[e+896>>2]=h,s[e+900>>2]=o,h=ut(A,u,h,o),s[e+520>>2]=h,o=C,s[e+524>>2]=o,oe=e,ie=Cn(h^w,o^f,63),s[oe+256>>2]=ie,s[e+260>>2]=C,8!=(0|(t=t+1|0)););Qn(n,r),ot(n,r+1024|0),y=r+2048|0}function R(e){var t=0,n=0,r=0,o=0,i=0,a=0,c=0,u=0,l=0;e:if(e|=0){i=(r=e-8|0)+(e=-8&(t=s[e-4>>2]))|0;t:if(!(1&t)){if(!(3&t))break e;if((r=r-(t=s[r>>2])|0)>>>0>2])))return s[8963]=e,s[i+4>>2]=-2&t,s[r+4>>2]=1|e,void(s[e+r>>2]=e)}else{if(t>>>0<=255){if(o=s[r+8>>2],t=t>>>3|0,(0|(n=s[r+12>>2]))==(0|o)){u=35844,l=s[8961]&Pt(-2,t),s[u>>2]=l;break t}s[o+12>>2]=n,s[n+8>>2]=o;break t}if(c=s[r+24>>2],(0|r)==(0|(t=s[r+12>>2])))if((n=s[(o=r+20|0)>>2])||(n=s[(o=r+16|0)>>2])){for(;a=o,(n=s[(o=(t=n)+20|0)>>2])||(o=t+16|0,n=s[t+16>>2]););s[a>>2]=0}else t=0;else n=s[r+8>>2],s[n+12>>2]=t,s[t+8>>2]=n;if(!c)break t;o=s[r+28>>2];n:{if(s[(n=36148+(o<<2)|0)>>2]==(0|r)){if(s[n>>2]=t,t)break n;u=35848,l=s[8962]&Pt(-2,o),s[u>>2]=l;break t}if(s[c+(s[c+16>>2]==(0|r)?16:20)>>2]=t,!t)break t}if(s[t+24>>2]=c,(n=s[r+16>>2])&&(s[t+16>>2]=n,s[n+24>>2]=t),!(n=s[r+20>>2]))break t;s[t+20>>2]=n,s[n+24>>2]=t}}if(!(r>>>0>=i>>>0)&&1&(t=s[i+4>>2])){t:{if(!(2&t)){if(s[8967]==(0|i)){if(s[8967]=r,e=s[8964]+e|0,s[8964]=e,s[r+4>>2]=1|e,s[8966]!=(0|r))break e;return s[8963]=0,void(s[8966]=0)}if(s[8966]==(0|i))return s[8966]=r,e=s[8963]+e|0,s[8963]=e,s[r+4>>2]=1|e,void(s[e+r>>2]=e);e=(-8&t)+e|0;n:if(t>>>0<=255){if(t=t>>>3|0,(0|(n=s[i+8>>2]))==(0|(o=s[i+12>>2]))){u=35844,l=s[8961]&Pt(-2,t),s[u>>2]=l;break n}s[n+12>>2]=o,s[o+8>>2]=n}else{if(c=s[i+24>>2],(0|i)==(0|(t=s[i+12>>2])))if((n=s[(o=i+20|0)>>2])||(n=s[(o=i+16|0)>>2])){for(;a=o,(n=s[(o=(t=n)+20|0)>>2])||(o=t+16|0,n=s[t+16>>2]););s[a>>2]=0}else t=0;else n=s[i+8>>2],s[n+12>>2]=t,s[t+8>>2]=n;if(c){o=s[i+28>>2];r:{if(s[(n=36148+(o<<2)|0)>>2]==(0|i)){if(s[n>>2]=t,t)break r;u=35848,l=s[8962]&Pt(-2,o),s[u>>2]=l;break n}if(s[c+(s[c+16>>2]==(0|i)?16:20)>>2]=t,!t)break n}s[t+24>>2]=c,(n=s[i+16>>2])&&(s[t+16>>2]=n,s[n+24>>2]=t),(n=s[i+20>>2])&&(s[t+20>>2]=n,s[n+24>>2]=t)}}if(s[r+4>>2]=1|e,s[e+r>>2]=e,s[8966]!=(0|r))break t;return void(s[8963]=e)}s[i+4>>2]=-2&t,s[r+4>>2]=1|e,s[e+r>>2]=e}if(e>>>0<=255)return t=35884+((e=e>>>3|0)<<3)|0,(n=s[8961])&(e=1<>2]:(s[8961]=e|n,e=t),s[t+8>>2]=r,s[e+12>>2]=r,s[r+12>>2]=t,void(s[r+8>>2]=e);o=31,s[r+16>>2]=0,s[r+20>>2]=0,e>>>0<=16777215&&(t=e>>>8|0,t<<=a=t+1048320>>>16&8,o=28+((t=((t<<=o=t+520192>>>16&4)<<(n=t+245760>>>16&2)>>>15|0)-(n|o|a)|0)<<1|e>>>t+21&1)|0),s[r+28>>2]=o,a=36148+(o<<2)|0;t:{n:{if((n=s[8962])&(t=1<>>1|0)|0),t=s[a>>2];;){if(n=t,(-8&s[t+4>>2])==(0|e))break n;if(t=o>>>29|0,o<<=1,!(t=s[16+(a=n+(4&t)|0)>>2]))break}s[a+16>>2]=r,s[r+24>>2]=n}else s[8962]=t|n,s[a>>2]=r,s[r+24>>2]=a;s[r+12>>2]=r,s[r+8>>2]=r;break t}e=s[n+8>>2],s[e+12>>2]=r,s[n+8>>2]=r,s[r+24>>2]=0,s[r+12>>2]=n,s[r+8>>2]=e}e=s[8969]-1|0,s[8969]=e||-1}}}function P(e,t){var n,r=0,o=0,i=0,a=0,c=0,d=0,u=0;n=e+t|0;e:{t:if(!(1&(r=s[e+4>>2]))){if(!(3&r))break e;if(t=(r=s[e>>2])+t|0,(0|(e=e-r|0))==s[8966]){if(3==(3&(r=s[n+4>>2])))return s[8963]=t,s[n+4>>2]=-2&r,s[e+4>>2]=1|t,void(s[n>>2]=t)}else{if(r>>>0<=255){if(i=s[e+8>>2],r=r>>>3|0,(0|(o=s[e+12>>2]))==(0|i)){d=35844,u=s[8961]&Pt(-2,r),s[d>>2]=u;break t}s[i+12>>2]=o,s[o+8>>2]=i;break t}if(c=s[e+24>>2],(0|(r=s[e+12>>2]))==(0|e))if((o=s[(i=e+20|0)>>2])||(o=s[(i=e+16|0)>>2])){for(;a=i,(o=s[(i=(r=o)+20|0)>>2])||(i=r+16|0,o=s[r+16>>2]););s[a>>2]=0}else r=0;else o=s[e+8>>2],s[o+12>>2]=r,s[r+8>>2]=o;if(!c)break t;i=s[e+28>>2];n:{if(s[(o=36148+(i<<2)|0)>>2]==(0|e)){if(s[o>>2]=r,r)break n;d=35848,u=s[8962]&Pt(-2,i),s[d>>2]=u;break t}if(s[c+(s[c+16>>2]==(0|e)?16:20)>>2]=r,!r)break t}if(s[r+24>>2]=c,(o=s[e+16>>2])&&(s[r+16>>2]=o,s[o+24>>2]=r),!(o=s[e+20>>2]))break t;s[r+20>>2]=o,s[o+24>>2]=r}}t:{if(!(2&(r=s[n+4>>2]))){if(s[8967]==(0|n)){if(s[8967]=e,t=s[8964]+t|0,s[8964]=t,s[e+4>>2]=1|t,s[8966]!=(0|e))break e;return s[8963]=0,void(s[8966]=0)}if(s[8966]==(0|n))return s[8966]=e,t=s[8963]+t|0,s[8963]=t,s[e+4>>2]=1|t,void(s[e+t>>2]=t);t=(-8&r)+t|0;n:if(r>>>0<=255){if(i=s[n+8>>2],r=r>>>3|0,(0|(o=s[n+12>>2]))==(0|i)){d=35844,u=s[8961]&Pt(-2,r),s[d>>2]=u;break n}s[i+12>>2]=o,s[o+8>>2]=i}else{if(c=s[n+24>>2],(0|n)==(0|(r=s[n+12>>2])))if((i=s[(o=n+20|0)>>2])||(i=s[(o=n+16|0)>>2])){for(;a=o,(i=s[(o=(r=i)+20|0)>>2])||(o=r+16|0,i=s[r+16>>2]););s[a>>2]=0}else r=0;else o=s[n+8>>2],s[o+12>>2]=r,s[r+8>>2]=o;if(c){i=s[n+28>>2];r:{if(s[(o=36148+(i<<2)|0)>>2]==(0|n)){if(s[o>>2]=r,r)break r;d=35848,u=s[8962]&Pt(-2,i),s[d>>2]=u;break n}if(s[c+(s[c+16>>2]==(0|n)?16:20)>>2]=r,!r)break n}s[r+24>>2]=c,(o=s[n+16>>2])&&(s[r+16>>2]=o,s[o+24>>2]=r),(o=s[n+20>>2])&&(s[r+20>>2]=o,s[o+24>>2]=r)}}if(s[e+4>>2]=1|t,s[e+t>>2]=t,s[8966]!=(0|e))break t;return void(s[8963]=t)}s[n+4>>2]=-2&r,s[e+4>>2]=1|t,s[e+t>>2]=t}if(t>>>0<=255)return r=35884+((t=t>>>3|0)<<3)|0,(o=s[8961])&(t=1<>2]:(s[8961]=t|o,t=r),s[r+8>>2]=e,s[t+12>>2]=e,s[e+12>>2]=r,void(s[e+8>>2]=t);i=31,s[e+16>>2]=0,s[e+20>>2]=0,t>>>0<=16777215&&(r=t>>>8|0,r<<=a=r+1048320>>>16&8,i=28+((r=((r<<=i=r+520192>>>16&4)<<(o=r+245760>>>16&2)>>>15|0)-(o|i|a)|0)<<1|t>>>r+21&1)|0),s[e+28>>2]=i,a=36148+(i<<2)|0;t:{if((o=s[8962])&(r=1<>>1|0)|0),r=s[a>>2];;){if(o=r,(-8&s[r+4>>2])==(0|t))break t;if(r=i>>>29|0,i<<=1,!(r=s[16+(a=o+(4&r)|0)>>2]))break}s[a+16>>2]=e,s[e+24>>2]=o}else s[8962]=r|o,s[a>>2]=e,s[e+24>>2]=a;return s[e+12>>2]=e,void(s[e+8>>2]=e)}t=s[o+8>>2],s[t+12>>2]=e,s[o+8>>2]=e,s[e+24>>2]=0,s[e+12>>2]=o,s[e+8>>2]=t}}function N(e,t,n,r,o){var a,d,u,l,A,f,h,p,g,m,v,b,I,C,E,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0,N=0,x=0,D=0,T=0,M=0,U=0,H=0,j=0,J=0,F=0,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0;for(y=a=y+-64|0,d=s[e+60>>2],u=s[e+56>>2],G=s[e+52>>2],J=s[e+48>>2],l=s[e+44>>2],A=s[e+40>>2],f=s[e+36>>2],h=s[e+32>>2],p=s[e+28>>2],g=s[e+24>>2],m=s[e+20>>2],v=s[e+16>>2],b=s[e+12>>2],I=s[e+8>>2],C=s[e+4>>2],E=s[e>>2];;){if(!o&r>>>0>63|o)_=n;else{if(S=0,_=w=ae(a,0,64),r|o)for(;i[w+S|0]=c[t+S|0],!o&(S=S+1|0)>>>0>>0|o;);t=_,Y=n}for(L=20,R=E,P=C,N=I,x=b,S=v,w=m,n=g,D=p,k=h,O=f,T=A,M=d,U=u,B=G,H=J,F=l;Q=S,R=On((S=S+R|0)^H,16),H=On(Q^(k=R+k|0),12),Q=k,k=On((k=R)^(R=S+H|0),8),S=On(H^(j=Q+k|0),7),Q=w,P=On((w=w+P|0)^B,16),B=On(Q^(O=P+O|0),12),Q=O,O=On((O=P)^(P=w+B|0),8),w=On(B^(q=Q+O|0),7),B=n,N=On((n=n+N|0)^U,16),Q=U=On(B^(T=N+T|0),12),U=On((B=N)^(N=n+U|0),8),n=On(Q^(T=U+T|0),7),B=D,x=On((D=D+x|0)^M,16),F=B=On(B^(M=x+F|0),12),Q=M,M=On((M=x)^(x=D+B|0),8),D=On(F^(B=Q+M|0),7),Q=T,T=On((R=w+R|0)^M,16),w=On((H=Q+T|0)^w,12),M=On(T^(R=w+R|0),8),w=On(w^(T=H+M|0),7),k=On((P=n+P|0)^k,16),n=On((B=k+B|0)^n,12),H=On(k^(P=n+P|0),8),n=On(n^(F=B+H|0),7),k=On((N=D+N|0)^O,16),D=On((O=k+j|0)^D,12),B=On(k^(N=D+N|0),8),D=On(D^(k=O+B|0),7),O=On((x=S+x|0)^U,16),S=On((j=O+q|0)^S,12),U=On(O^(x=S+x|0),8),S=On(S^(O=j+U|0),7),L=L-2|0;);if(L=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,j=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,q=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,V=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,W=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,K=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,Z=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,z=c[t+32|0]|c[t+33|0]<<8|c[t+34|0]<<16|c[t+35|0]<<24,X=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24,$=c[t+40|0]|c[t+41|0]<<8|c[t+42|0]<<16|c[t+43|0]<<24,ee=c[t+44|0]|c[t+45|0]<<8|c[t+46|0]<<16|c[t+47|0]<<24,te=c[t+48|0]|c[t+49|0]<<8|c[t+50|0]<<16|c[t+51|0]<<24,ne=c[t+52|0]|c[t+53|0]<<8|c[t+54|0]<<16|c[t+55|0]<<24,re=c[t+56|0]|c[t+57|0]<<8|c[t+58|0]<<16|c[t+59|0]<<24,Q=c[t+60|0]|c[t+61|0]<<8|c[t+62|0]<<16|c[t+63|0]<<24,Jt(_,R+E^(c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24)),Jt(_+4|0,P+C^L),Jt(_+8|0,N+I^j),Jt(_+12|0,x+b^q),Jt(_+16|0,S+v^V),Jt(_+20|0,w+m^W),Jt(_+24|0,n+g^K),Jt(_+28|0,D+p^Z),Jt(_+32|0,k+h^z),Jt(_+36|0,O+f^X),Jt(_+40|0,$^T+A),Jt(_+44|0,ee^F+l),Jt(_+48|0,te^H+J),Jt(_+52|0,ne^B+G),Jt(_+56|0,re^U+u),Jt(_+60|0,Q^M+d),G=((J=(n=J)+1|0)>>>0>>0)+G|0,!o&r>>>0<=64){if(!(!r|!o&r>>>0>63|0!=(0|o)))for(w=0;i[w+Y|0]=c[_+w|0],(0|r)!=(0|(w=w+1|0)););s[e+52>>2]=G,s[e+48>>2]=J,y=a- -64|0;break}t=t- -64|0,n=_- -64|0,o=o-1|0,o=(r=r+-64|0)>>>0<4294967232?o+1|0:o}}function x(e,t,n,r){var o=0,i=0,a=0,d=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,y=0,b=0,I=0,E=0,w=0,B=0,_=0,S=0,k=0,O=0,Q=0,R=0,P=0;if(p=s[e+36>>2],d=s[e+32>>2],a=s[e+28>>2],i=s[e+24>>2],l=s[e+20>>2],!r&n>>>0>=16|r)for(k=!c[e+80|0]<<24,m=s[e+4>>2],O=u(m,5),b=s[e+8>>2],S=u(b,5),B=s[e+12>>2],_=u(B,5),o=s[e+16>>2],I=u(o,5),Q=o,v=s[e>>2];o=fn(A=((c[t+3|0]|c[t+4|0]<<8|c[t+5|0]<<16|c[t+6|0]<<24)>>>2&67108863)+i|0,0,B,0),f=C,i=(g=fn(l=(67108863&(c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24))+l|0,0,Q,0))+o|0,o=C+f|0,o=i>>>0>>0?o+1|0:o,h=i,i=fn(f=((c[t+6|0]|c[t+7|0]<<8|c[t+8|0]<<16|c[t+9|0]<<24)>>>4&67108863)+a|0,0,b,0),o=C+o|0,o=i>>>0>(a=h+i|0)>>>0?o+1|0:o,i=a,a=fn(g=((c[t+9|0]|c[t+10|0]<<8|c[t+11|0]<<16|c[t+12|0]<<24)>>>6|0)+d|0,0,m,0),o=C+o|0,o=a>>>0>(d=i+a|0)>>>0?o+1|0:o,i=d,d=fn(y=p+k+((c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24)>>>8)|0,0,v,0),o=C+o|0,R=p=i+d|0,p=d>>>0>p>>>0?o+1|0:o,o=fn(A,0,b,0),a=C,d=(i=fn(l,0,B,0))+o|0,o=C+a|0,o=i>>>0>d>>>0?o+1|0:o,a=fn(f,0,m,0),o=C+o|0,o=a>>>0>(d=a+d|0)>>>0?o+1|0:o,a=fn(g,0,v,0),o=C+o|0,o=a>>>0>(d=a+d|0)>>>0?o+1|0:o,a=fn(y,0,I,0),o=C+o|0,P=d=a+d|0,d=a>>>0>d>>>0?o+1|0:o,o=fn(A,0,m,0),i=C,a=(E=fn(l,0,b,0))+o|0,o=C+i|0,o=a>>>0>>0?o+1|0:o,i=fn(f,0,v,0),o=C+o|0,o=i>>>0>(a=i+a|0)>>>0?o+1|0:o,i=fn(g,0,I,0),o=C+o|0,o=i>>>0>(a=i+a|0)>>>0?o+1|0:o,i=fn(y,0,_,0),o=C+o|0,E=a=i+a|0,a=i>>>0>a>>>0?o+1|0:o,o=fn(A,0,v,0),h=C,i=(w=fn(l,0,m,0))+o|0,o=C+h|0,o=i>>>0>>0?o+1|0:o,h=fn(f,0,I,0),o=C+o|0,o=(i=h+i|0)>>>0>>0?o+1|0:o,h=fn(g,0,_,0),o=C+o|0,o=(i=h+i|0)>>>0>>0?o+1|0:o,h=fn(y,0,S,0),o=C+o|0,o=(i=h+i|0)>>>0>>0?o+1|0:o,h=i,i=o,o=fn(A,0,I,0),w=C,A=(l=fn(l,0,v,0))+o|0,o=C+w|0,o=A>>>0>>0?o+1|0:o,l=fn(f,0,_,0),o=C+o|0,o=(A=l+A|0)>>>0>>0?o+1|0:o,l=fn(g,0,S,0),o=C+o|0,o=(A=l+A|0)>>>0>>0?o+1|0:o,l=fn(y,0,O,0),o=C+o|0,o=(A=l+A|0)>>>0>>0?o+1|0:o,l=A,f=(67108863&o)<<6|A>>>26,o=i,f=(67108863&(o=(A=f+h|0)>>>0>>0?o+1|0:o))<<6|(i=A)>>>26,o=a,o=(i=f+E|0)>>>0>>0?o+1|0:o,f=i,i=(67108863&o)<<6|i>>>26,o=d,g=a=i+P|0,a=(67108863&(o=i>>>0>a>>>0?o+1|0:o))<<6|a>>>26,o=p,p=d=a+R|0,i=(67108863&A)+((o=u((67108863&(o=a>>>0>d>>>0?o+1|0:o))<<6|d>>>26,5)+(67108863&l)|0)>>>26|0)|0,a=67108863&f,d=67108863&g,p&=67108863,l=67108863&o,t=t+16|0,!(r=r-(n>>>0<16)|0)&(n=n-16|0)>>>0>15|r;);s[e+20>>2]=l,s[e+36>>2]=p,s[e+32>>2]=d,s[e+28>>2]=a,s[e+24>>2]=i}function D(e,t,n){var r,o,a,s,d=0,u=0,l=0,A=0,f=0;return y=a=y-160|0,Rt(t,n,32,0),i[0|t]=248&c[0|t],i[t+31|0]=63&c[t+31|0]|64,ie(a,t),ct(e,a),u=c[(o=n)+8|0]|c[o+9|0]<<8|c[o+10|0]<<16|c[o+11|0]<<24,d=c[o+12|0]|c[o+13|0]<<8|c[o+14|0]<<16|c[o+15|0]<<24,l=c[o+16|0]|c[o+17|0]<<8|c[o+18|0]<<16|c[o+19|0]<<24,A=c[o+20|0]|c[o+21|0]<<8|c[o+22|0]<<16|c[o+23|0]<<24,f=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,n=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,r=t,s=c[o+28|0]|c[o+29|0]<<8|c[o+30|0]<<16|c[o+31|0]<<24,t=c[o+24|0]|c[o+25|0]<<8|c[o+26|0]<<16|c[o+27|0]<<24,i[r+24|0]=t,i[r+25|0]=t>>>8,i[r+26|0]=t>>>16,i[r+27|0]=t>>>24,i[r+28|0]=s,i[r+29|0]=s>>>8,i[r+30|0]=s>>>16,i[r+31|0]=s>>>24,i[r+16|0]=l,i[r+17|0]=l>>>8,i[r+18|0]=l>>>16,i[r+19|0]=l>>>24,i[r+20|0]=A,i[r+21|0]=A>>>8,i[r+22|0]=A>>>16,i[r+23|0]=A>>>24,i[r+8|0]=u,i[r+9|0]=u>>>8,i[r+10|0]=u>>>16,i[r+11|0]=u>>>24,i[r+12|0]=d,i[r+13|0]=d>>>8,i[r+14|0]=d>>>16,i[r+15|0]=d>>>24,i[0|r]=f,i[r+1|0]=f>>>8,i[r+2|0]=f>>>16,i[r+3|0]=f>>>24,i[r+4|0]=n,i[r+5|0]=n>>>8,i[r+6|0]=n>>>16,i[r+7|0]=n>>>24,l=c[(d=e)+8|0]|c[d+9|0]<<8|c[d+10|0]<<16|c[d+11|0]<<24,A=c[d+12|0]|c[d+13|0]<<8|c[d+14|0]<<16|c[d+15|0]<<24,f=c[d+16|0]|c[d+17|0]<<8|c[d+18|0]<<16|c[d+19|0]<<24,n=c[d+20|0]|c[d+21|0]<<8|c[d+22|0]<<16|c[d+23|0]<<24,t=c[0|d]|c[d+1|0]<<8|c[d+2|0]<<16|c[d+3|0]<<24,e=c[d+4|0]|c[d+5|0]<<8|c[d+6|0]<<16|c[d+7|0]<<24,u=c[d+28|0]|c[d+29|0]<<8|c[d+30|0]<<16|c[d+31|0]<<24,d=c[d+24|0]|c[d+25|0]<<8|c[d+26|0]<<16|c[d+27|0]<<24,i[r+56|0]=d,i[r+57|0]=d>>>8,i[r+58|0]=d>>>16,i[r+59|0]=d>>>24,i[r+60|0]=u,i[r+61|0]=u>>>8,i[r+62|0]=u>>>16,i[r+63|0]=u>>>24,i[r+48|0]=f,i[r+49|0]=f>>>8,i[r+50|0]=f>>>16,i[r+51|0]=f>>>24,i[r+52|0]=n,i[r+53|0]=n>>>8,i[r+54|0]=n>>>16,i[r+55|0]=n>>>24,i[r+40|0]=l,i[r+41|0]=l>>>8,i[r+42|0]=l>>>16,i[r+43|0]=l>>>24,i[r+44|0]=A,i[r+45|0]=A>>>8,i[r+46|0]=A>>>16,i[r+47|0]=A>>>24,i[r+32|0]=t,i[r+33|0]=t>>>8,i[r+34|0]=t>>>16,i[r+35|0]=t>>>24,i[r+36|0]=e,i[r+37|0]=e>>>8,i[r+38|0]=e>>>16,i[r+39|0]=e>>>24,y=a+160|0,0}function T(e,t,n){var r,o=0,a=0,s=0;y=r=y+-64|0;e:{if(!(!n|n>>>0>=65)){if(o=-1,!(c[e+80|0]|c[e+81|0]<<8|c[e+82|0]<<16|c[e+83|0]<<24|c[e+84|0]|c[e+85|0]<<8|c[e+86|0]<<16|c[e+87|0]<<24)){if(a=e,(o=c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)>>>0>=129){if(se(e,128),E(e,s=e+96|0),o=(c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)-128|0,i[e+352|0]=o,i[e+353|0]=o>>>8,i[e+354|0]=o>>>16,i[e+355|0]=o>>>24,o>>>0>=129)break e;q(s,e+224|0,o),o=c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24}se(a,o),c[e+356|0]&&(i[e+88|0]=255,i[e+89|0]=255,i[e+90|0]=255,i[e+91|0]=255,i[e+92|0]=255,i[e+93|0]=255,i[e+94|0]=255,i[e+95|0]=255),i[e+80|0]=255,i[e+81|0]=255,i[e+82|0]=255,i[e+83|0]=255,i[e+84|0]=255,i[e+85|0]=255,i[e+86|0]=255,i[e+87|0]=255,ae((o=e+96|0)+(a=c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)|0,0,256-a|0),E(e,o),ft(r,c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24),ft(8|r,c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24),ft(r+16|0,c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24),ft(r+24|0,c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24,c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24),ft(r+32|0,c[e+32|0]|c[e+33|0]<<8|c[e+34|0]<<16|c[e+35|0]<<24,c[e+36|0]|c[e+37|0]<<8|c[e+38|0]<<16|c[e+39|0]<<24),ft(r+40|0,c[e+40|0]|c[e+41|0]<<8|c[e+42|0]<<16|c[e+43|0]<<24,c[e+44|0]|c[e+45|0]<<8|c[e+46|0]<<16|c[e+47|0]<<24),ft(r+48|0,c[e+48|0]|c[e+49|0]<<8|c[e+50|0]<<16|c[e+51|0]<<24,c[e+52|0]|c[e+53|0]<<8|c[e+54|0]<<16|c[e+55|0]<<24),ft(r+56|0,c[e+56|0]|c[e+57|0]<<8|c[e+58|0]<<16|c[e+59|0]<<24,c[e+60|0]|c[e+61|0]<<8|c[e+62|0]<<16|c[e+63|0]<<24),q(t,r,n),ht(e,64),ht(o,256),o=0}return y=r- -64|0,o}zt(),A()}f(1854,1886,306,1931),A()}function M(e,t){var n,r,o,i,a,d,u,l,A,f=0,h=0,p=0,g=0,m=0,v=0,y=0,b=0,I=0,E=0,w=0;n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,I=kt(t+4|0),f=C,y=kt(t+7|0),p=C,b=kt(t+10|0),h=C,r=kt(t+13|0),m=C,g=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,o=kt(t+20|0),E=C,i=kt(t+23|0),a=C,d=kt(t+26|0),u=C,l=kt(t+29|0),t=h<<3|b>>>29,w=h=b<<3,b=h=h+16777216|0,h=t=h>>>0<16777216?t+1|0:t,p=t=p<<5|y>>>27,A=v=y<<5,f=t=f<<6|(y=I)>>>26,I=t=16777216+(y<<=6)|0,v=t,t=(t=(f=t>>>0<16777216?f+1|0:f)>>25)+p|0,t=(f=A+(v=(33554431&f)<<7|v>>>25)|0)>>>0>>0?t+1|0:t,(p=f+33554432|0)>>>0<33554432&&(t=t+1|0),t=(w-(-33554432&b)|0)+((67108863&t)<<6|p>>>26)|0,s[e+12>>2]=t,t=-67108864&p,s[e+8>>2]=f-t,t=0,v=g=(p=g)+16777216|0,g=t=g>>>0<16777216?1:t,w=p-(-33554432&v)|0,t=m<<2|(p=r)>>>30,m=p<<2,p=t,t=(t=h>>25)+p|0,f=t=(h=(f=m)+(m=(33554431&h)<<7|b>>>25)|0)>>>0>>0?t+1|0:t,p=t=h+33554432|0,t=((67108863&(f=t>>>0<33554432?f+1|0:f))<<6|t>>>26)+w|0,s[e+20>>2]=t,t=-67108864&p,s[e+16>>2]=h-t,m=(f=o)<<7,t=(t=E<<7|f>>>25)+(f=g>>25)|0,t=(g=m+(p=(33554431&g)<<7|v>>>25)|0)>>>0

>>0?t+1|0:t,g=f=g,p=f=f+33554432|0,f=t=f>>>0<33554432?t+1|0:t,t=-67108864&p,s[(h=e)+24>>2]=g-t,g=h,t=a<<5|(h=i)>>>27,E=h<<=5,m=h=h+16777216|0,h=t=h>>>0<16777216?t+1|0:t,t=(E-(-33554432&m)|0)+((67108863&f)<<6|p>>>26)|0,s[g+28>>2]=t,p=(f=d)<<4,f=t=u<<4|f>>>28,t=(t=h>>25)+f|0,t=(h=(v=p)+(p=(33554431&h)<<7|m>>>25)|0)>>>0

>>0?t+1|0:t,h=f=h,p=f=f+33554432|0,f=t=f>>>0<33554432?t+1|0:t,t=-67108864&p,s[g+32>>2]=h-t,t=0,h=g=(g=l)<<2&33554428,t=(g=g+16777216|0)>>>0<16777216?t+1|0:t,f=(h-(33554432&g)|0)+((67108863&f)<<6|p>>>26)|0,s[e+36>>2]=f,g=fn((33554431&t)<<7|g>>>25,t>>>25|0,19,0),t=C,t=(f=g+n|0)>>>0>>0?t+1|0:t,(h=f+33554432|0)>>>0<33554432&&(t=t+1|0),t=(y-(-33554432&I)|0)+((67108863&t)<<6|h>>>26)|0,s[e+4>>2]=t,t=e,e=-67108864&h,s[t>>2]=f-e}function U(e,t){var n,r,o,i,a,c,d,u,l,A=0,f=0,h=0,p=0,g=0,m=0,v=0,y=0,b=0,I=0,E=0,w=0,B=0,_=0;E=f=s[(A=t)+4>>2],b=f>>31,w=f=s[A+8>>2],r=f>>31,v=f=s[A+12>>2],I=f>>31,B=f=s[A+16>>2],o=f>>31,y=f=s[A+20>>2],m=f>>31,_=f=s[A+24>>2],i=f>>31,a=f=s[A>>2],c=f>>31,p=f=fn(A=s[A+36>>2],A>>31,121666,0),A=C,n=f=f+16777216|0,f=A=f>>>0<16777216?A+1|0:A,d=p-(-33554432&n)|0,h=fn(A=s[t+32>>2],A>>31,121666,0),u=C,p=fn(t=s[t+28>>2],t>>31,121666,0),A=C,g=h,l=t=p+16777216|0,h=t,t=(t=(A=t>>>0<16777216?A+1|0:A)>>25)+u|0,t=(A=g+(h=(33554431&A)<<7|h>>>25)|0)>>>0>>0?t+1|0:t,h=A,A=t,g=t=h+33554432|0,t=((67108863&(A=t>>>0<33554432?A+1|0:A))<<6|t>>>26)+d|0,s[e+36>>2]=t,t=-67108864&g,s[e+32>>2]=h-t,g=p-(-33554432&l)|0,A=fn(_,i,121666,0),_=C,p=fn(y,m,121666,0),t=C,h=A,y=A=p+16777216|0,m=A,A=(A=(t=A>>>0<16777216?t+1|0:t)>>25)+_|0,A=(t=h+(m=(33554431&t)<<7|m>>>25)|0)>>>0>>0?A+1|0:A,(h=t+33554432|0)>>>0<33554432&&(A=A+1|0),A=g+((67108863&A)<<6|h>>>26)|0,s[e+28>>2]=A,A=-67108864&h,s[e+24>>2]=t-A,y=p-(-33554432&y)|0,t=fn(B,o,121666,0),B=C,p=fn(v,I,121666,0),A=C,g=t,v=t=p+16777216|0,I=(33554431&(A=t>>>0<16777216?A+1|0:A))<<7|t>>>25,A=(A>>25)+B|0,t=A=(h=g+I|0)>>>0>>0?A+1|0:A,t=((67108863&(t=(A=h+33554432|0)>>>0<33554432?t+1|0:t))<<6|A>>>26)+y|0,s[e+20>>2]=t,t=-67108864&A,s[e+16>>2]=h-t,v=p-(-33554432&v)|0,A=fn(w,r,121666,0),w=C,p=fn(E,b,121666,0),t=C,g=A,E=A=p+16777216|0,b=(33554431&(t=A>>>0<16777216?t+1|0:t))<<7|A>>>25,t=(t>>25)+w|0,A=t=(h=g+b|0)>>>0>>0?t+1|0:t,g=t=h+33554432|0,t=((67108863&(A=t>>>0<33554432?A+1|0:A))<<6|t>>>26)+v|0,s[e+12>>2]=t,t=-67108864&g,s[e+8>>2]=h-t,t=fn((33554431&f)<<7|n>>>25,f>>25,19,0),A=C,g=p-(-33554432&E)|0,f=fn(a,c,121666,0),A=C+A|0,A=(t=f+t|0)>>>0>>0?A+1|0:A,(f=t+33554432|0)>>>0<33554432&&(A=A+1|0),A=g+((67108863&A)<<6|f>>>26)|0,s[e+4>>2]=A,A=e,e=-67108864&f,s[A>>2]=t-e}function H(e,t,n,r){var o,a=0,d=0;y=o=y-16|0,a=-31;e:{t:{n:{r:switch(r-1|0){case 1:if(t>>>0<13)break t;r=c[35660]|c[35661]<<8|c[35662]<<16|c[35663]<<24,a=c[35656]|c[35657]<<8|c[35658]<<16|c[35659]<<24,i[0|e]=a,i[e+1|0]=a>>>8,i[e+2|0]=a>>>16,i[e+3|0]=a>>>24,i[e+4|0]=r,i[e+5|0]=r>>>8,i[e+6|0]=r>>>16,i[e+7|0]=r>>>24,r=c[35665]|c[35666]<<8|c[35667]<<16|c[35668]<<24,a=c[35661]|c[35662]<<8|c[35663]<<16|c[35664]<<24,i[e+5|0]=a,i[e+6|0]=a>>>8,i[e+7|0]=a>>>16,i[e+8|0]=a>>>24,i[e+9|0]=r,i[e+10|0]=r>>>8,i[e+11|0]=r>>>16,i[e+12|0]=r>>>24,d=-12,r=12;break n;case 0:break r;default:break e}if(t>>>0<12)break t;r=c[35673]|c[35674]<<8|c[35675]<<16|c[35676]<<24,a=c[35669]|c[35670]<<8|c[35671]<<16|c[35672]<<24,i[0|e]=a,i[e+1|0]=a>>>8,i[e+2|0]=a>>>16,i[e+3|0]=a>>>24,i[e+4|0]=r,i[e+5|0]=r>>>8,i[e+6|0]=r>>>16,i[e+7|0]=r>>>24,r=c[35677]|c[35678]<<8|c[35679]<<16|c[35680]<<24,i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,d=-11,r=11}if(a=le(n))break e;if(Le(o+5|0,19),!((a=t+d|0)>>>0<=(t=Oe(o+5|0))>>>0)&&(e=q(e+r|0,o+5|0,t+1|0),!((r=a-t|0)>>>0<4)&&(i[0|(e=e+t|0)]=36,i[e+1|0]=109,i[e+2|0]=61,i[e+3|0]=0,Le(o+5|0,s[n+44>>2]),!((r=r-3|0)>>>0<=(t=Oe(o+5|0))>>>0)&&(e=q(e+3|0,o+5|0,t+1|0),!((r=r-t|0)>>>0<4)&&(i[0|(e=e+t|0)]=44,i[e+1|0]=116,i[e+2|0]=61,i[e+3|0]=0,Le(o+5|0,s[n+40>>2]),!((r=r-3|0)>>>0<=(t=Oe(o+5|0))>>>0)&&(e=q(e+3|0,o+5|0,t+1|0),!((r=r-t|0)>>>0<4)&&(i[0|(e=e+t|0)]=44,i[e+1|0]=112,i[e+2|0]=61,i[e+3|0]=0,Le(o+5|0,s[n+48>>2]),!((r=r-3|0)>>>0<=(t=Oe(o+5|0))>>>0)&&(e=q(e+3|0,o+5|0,t+1|0),!((r=r-t|0)>>>0<2)&&(i[0|(e=e+t|0)]=36,i[e+1|0]=0,z(e=e+1|0,t=r-1|0,s[n+16>>2],s[n+20>>2],3)))))))))){if(a=-31,(r=(r=t)-(t=Oe(e))|0)>>>0<2)break e;return i[0|(e=e+t|0)]=36,i[e+1|0]=0,e=z(e+1|0,r-1|0,s[n>>2],s[n+4>>2],3),y=o+16|0,e?0:-31}}a=-31}return y=o+16|0,a}function j(e,t,n,r){var o,a=0;o=a=y,y=a=a-576&-64,s[a+188>>2]=0,Jt(a+188|0,t);e:if(t>>>0<=64){if((0|st(a+192|0,0,0,t))<0)break e;if((0|bn(a+192|0,a+188|0,4,0))<0)break e;if((0|bn(a+192|0,n,r,0))<0)break e;Mt(a+192|0,e,t)}else if(!((0|st(a+192|0,0,0,64))<0||(0|bn(a+192|0,a+188|0,4,0))<0||(0|bn(a+192|0,n,r,0))<0||(0|Mt(a+192|0,a+112|0,64))<0)){if(n=s[a+116>>2],r=s[a+112>>2],i[0|e]=r,i[e+1|0]=r>>>8,i[e+2|0]=r>>>16,i[e+3|0]=r>>>24,i[e+4|0]=n,i[e+5|0]=n>>>8,i[e+6|0]=n>>>16,i[e+7|0]=n>>>24,n=s[a+124>>2],r=s[a+120>>2],i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,i[e+12|0]=n,i[e+13|0]=n>>>8,i[e+14|0]=n>>>16,i[e+15|0]=n>>>24,n=s[a+140>>2],r=s[a+136>>2],i[e+24|0]=r,i[e+25|0]=r>>>8,i[e+26|0]=r>>>16,i[e+27|0]=r>>>24,i[e+28|0]=n,i[e+29|0]=n>>>8,i[e+30|0]=n>>>16,i[e+31|0]=n>>>24,n=s[a+132>>2],r=s[a+128>>2],i[e+16|0]=r,i[e+17|0]=r>>>8,i[e+18|0]=r>>>16,i[e+19|0]=r>>>24,i[e+20|0]=n,i[e+21|0]=n>>>8,i[e+22|0]=n>>>16,i[e+23|0]=n>>>24,e=e+32|0,(t=t-32|0)>>>0>=65)for(;;){if(q(a+48|0,a+112|0,64),(0|Bt(a+112|0,64,a+48|0,64,0,0,0))<0)break e;if(n=s[a+116>>2],r=s[a+112>>2],i[0|e]=r,i[e+1|0]=r>>>8,i[e+2|0]=r>>>16,i[e+3|0]=r>>>24,i[e+4|0]=n,i[e+5|0]=n>>>8,i[e+6|0]=n>>>16,i[e+7|0]=n>>>24,n=s[a+124>>2],r=s[a+120>>2],i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,i[e+12|0]=n,i[e+13|0]=n>>>8,i[e+14|0]=n>>>16,i[e+15|0]=n>>>24,n=s[a+140>>2],r=s[a+136>>2],i[e+24|0]=r,i[e+25|0]=r>>>8,i[e+26|0]=r>>>16,i[e+27|0]=r>>>24,i[e+28|0]=n,i[e+29|0]=n>>>8,i[e+30|0]=n>>>16,i[e+31|0]=n>>>24,n=s[a+132>>2],r=s[a+128>>2],i[e+16|0]=r,i[e+17|0]=r>>>8,i[e+18|0]=r>>>16,i[e+19|0]=r>>>24,i[e+20|0]=n,i[e+21|0]=n>>>8,i[e+22|0]=n>>>16,i[e+23|0]=n>>>24,e=e+32|0,!((t=t-32|0)>>>0>64))break}q(a+48|0,a+112|0,64),(0|Bt(a+112|0,t,a+48|0,64,0,0,0))<0||q(e,a+112|0,t)}ht(a+192|0,384),y=o}function J(e,t,n){var r=0,o=0,i=0,a=0,s=0,d=0,u=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,y=0,b=0,I=0,C=0;for(i=2036477234,A=857760878,f=1634760805,a=1797285236,l=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,r=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,o=c[n+8|0]|c[n+9|0]<<8|c[n+10|0]<<16|c[n+11|0]<<24,d=c[n+12|0]|c[n+13|0]<<8|c[n+14|0]<<16|c[n+15|0]<<24,p=c[n+16|0]|c[n+17|0]<<8|c[n+18|0]<<16|c[n+19|0]<<24,g=c[n+20|0]|c[n+21|0]<<8|c[n+22|0]<<16|c[n+23|0]<<24,v=c[n+24|0]|c[n+25|0]<<8|c[n+26|0]<<16|c[n+27|0]<<24,y=c[n+28|0]|c[n+29|0]<<8|c[n+30|0]<<16|c[n+31|0]<<24,n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,h=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,s=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,t=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24;u=l,f=On((m=n)^(n=l+f|0),16),u=p=On(u^(l=f+p|0),12),p=On((m=f)^(f=n+p|0),8),l=On(u^(b=p+l|0),7),u=r,A=On((n=r+A|0)^h,16),u=h=On(u^(r=A+g|0),12),h=On((m=A)^(A=n+h|0),8),n=On(u^(g=h+r|0),7),u=o,r=On((i=i+o|0)^s,16),u=s=On(u^(o=r+v|0),12),m=On(r^(s=i+s|0),8),i=On(u^(r=m+o|0),7),a=On((o=t)^(t=a+d|0),16),d=On((o=a+y|0)^d,12),t=On(a^(I=t+d|0),8),a=On(d^(o=t+o|0),7),u=r,r=On((r=t)^(t=n+f|0),16),n=On((d=u+r|0)^n,12),t=On(r^(f=t+n|0),8),r=On(n^(v=d+t|0),7),u=o,o=On((n=i+A|0)^p,16),i=On((d=u+o|0)^i,12),n=On(o^(A=n+i|0),8),o=On(i^(y=d+n|0),7),d=On((i=a+s|0)^h,16),a=On((s=d+b|0)^a,12),h=On(d^(i=i+a|0),8),d=On(a^(p=s+h|0),7),s=On((a=l+I|0)^m,16),l=On((g=s+g|0)^l,12),s=On(s^(a=a+l|0),8),l=On(l^(g=g+s|0),7),10!=(0|(C=C+1|0)););Jt(e,f),Jt(e+4|0,A),Jt(e+8|0,i),Jt(e+12|0,a),Jt(e+16|0,n),Jt(e+20|0,h),Jt(e+24|0,s),Jt(e+28|0,t)}function F(e){var t,n=0,r=0;y=t=y-48|0,n=c[28+(e|=0)|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,s[t+24>>2]=c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24,s[t+28>>2]=n,n=c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24,s[t+16>>2]=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,s[t+20>>2]=n,n=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,s[t>>2]=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,s[t+4>>2]=n,n=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,s[t+8>>2]=c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,s[t+12>>2]=n,n=c[e+40|0]|c[e+41|0]<<8|c[e+42|0]<<16|c[e+43|0]<<24,s[t+32>>2]=c[e+36|0]|c[e+37|0]<<8|c[e+38|0]<<16|c[e+39|0]<<24,s[t+36>>2]=n,Vn[s[8957]](t,t,40,0,e+32|0,0,e),n=s[t+28>>2],r=s[t+24>>2],i[e+24|0]=r,i[e+25|0]=r>>>8,i[e+26|0]=r>>>16,i[e+27|0]=r>>>24,i[e+28|0]=n,i[e+29|0]=n>>>8,i[e+30|0]=n>>>16,i[e+31|0]=n>>>24,n=s[t+20>>2],r=s[t+16>>2],i[e+16|0]=r,i[e+17|0]=r>>>8,i[e+18|0]=r>>>16,i[e+19|0]=r>>>24,i[e+20|0]=n,i[e+21|0]=n>>>8,i[e+22|0]=n>>>16,i[e+23|0]=n>>>24,n=s[t+12>>2],r=s[t+8>>2],i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,i[e+12|0]=n,i[e+13|0]=n>>>8,i[e+14|0]=n>>>16,i[e+15|0]=n>>>24,n=s[t+4>>2],r=s[t>>2],i[0|e]=r,i[e+1|0]=r>>>8,i[e+2|0]=r>>>16,i[e+3|0]=r>>>24,i[e+4|0]=n,i[e+5|0]=n>>>8,i[e+6|0]=n>>>16,i[e+7|0]=n>>>24,n=s[t+36>>2],r=s[t+32>>2],i[e+36|0]=r,i[e+37|0]=r>>>8,i[e+38|0]=r>>>16,i[e+39|0]=r>>>24,i[e+40|0]=n,i[e+41|0]=n>>>8,i[e+42|0]=n>>>16,i[e+43|0]=n>>>24,qt(e),y=t+48|0}function G(e,t,n){var r=0,o=0,i=0,a=0,s=0,d=0,u=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,y=0,b=0,I=0,C=0,E=0,w=0;for(o=2036477234,i=857760878,a=1634760805,s=1797285236,v=20,l=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,m=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,y=c[n+8|0]|c[n+9|0]<<8|c[n+10|0]<<16|c[n+11|0]<<24,p=c[n+12|0]|c[n+13|0]<<8|c[n+14|0]<<16|c[n+15|0]<<24,A=c[n+16|0]|c[n+17|0]<<8|c[n+18|0]<<16|c[n+19|0]<<24,d=c[n+20|0]|c[n+21|0]<<8|c[n+22|0]<<16|c[n+23|0]<<24,f=c[n+24|0]|c[n+25|0]<<8|c[n+26|0]<<16|c[n+27|0]<<24,h=c[n+28|0]|c[n+29|0]<<8|c[n+30|0]<<16|c[n+31|0]<<24,n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,u=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,r=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,t=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24;b=r,r=On(a+d|0,7)^p,g=b^On(r+a|0,9),I=On(r+g|0,13)^d,p=On(g+I|0,18),t=On(i+l|0,7)^t,f=On(t+i|0,9)^f,l=On(t+f|0,13)^l,E=On(f+l|0,18),h=On(n+o|0,7)^h,d=On(h+o|0,9)^m,C=On(d+h|0,13)^n,w=On(d+C|0,18),n=On(s+A|0,7)^y,u=On(n+s|0,9)^u,A=On(n+u|0,13)^A,b=On(u+A|0,18),l=On((a^=p)+n|0,7)^l,m=On(l+a|0,9)^d,y=On(l+m|0,13)^n,a=On(m+y|0,18)^a,n=On((i^=E)+r|0,7)^C,u=On(n+i|0,9)^u,p=On(n+u|0,13)^r,i=On(u+p|0,18)^i,A=On((o^=w)+t|0,7)^A,r=On(A+o|0,9)^g,t=On(r+A|0,13)^t,o=On(t+r|0,18)^o,d=On((s^=b)+h|0,7)^I,f=On(d+s|0,9)^f,h=On(d+f|0,13)^h,s=On(f+h|0,18)^s,g=v>>>0>2,v=v-2|0,g;);return Jt(e,a),Jt(e+4|0,i),Jt(e+8|0,o),Jt(e+12|0,s),Jt(e+16|0,n),Jt(e+20|0,u),Jt(e+24|0,r),Jt(e+28|0,t),0}function L(e,t,n,r,o,a,d){var u,l,A,f,h,p,g,m=0;return y=u=y-560|0,cn(u+352|0,d),Rt(u+288|0,a,32,0),Y(u+352|0,u+320|0,32,0),Y(u+352|0,n,r,o),Nt(u+352|0,u+224|0),l=c[(m=a)+32|0]|c[m+33|0]<<8|c[m+34|0]<<16|c[m+35|0]<<24,A=c[m+36|0]|c[m+37|0]<<8|c[m+38|0]<<16|c[m+39|0]<<24,f=c[m+40|0]|c[m+41|0]<<8|c[m+42|0]<<16|c[m+43|0]<<24,h=c[m+44|0]|c[m+45|0]<<8|c[m+46|0]<<16|c[m+47|0]<<24,p=c[m+48|0]|c[m+49|0]<<8|c[m+50|0]<<16|c[m+51|0]<<24,a=c[m+52|0]|c[m+53|0]<<8|c[m+54|0]<<16|c[m+55|0]<<24,g=c[m+60|0]|c[m+61|0]<<8|c[m+62|0]<<16|c[m+63|0]<<24,m=c[m+56|0]|c[m+57|0]<<8|c[m+58|0]<<16|c[m+59|0]<<24,i[e+56|0]=m,i[e+57|0]=m>>>8,i[e+58|0]=m>>>16,i[e+59|0]=m>>>24,i[e+60|0]=g,i[e+61|0]=g>>>8,i[e+62|0]=g>>>16,i[e+63|0]=g>>>24,i[e+48|0]=p,i[e+49|0]=p>>>8,i[e+50|0]=p>>>16,i[e+51|0]=p>>>24,i[e+52|0]=a,i[e+53|0]=a>>>8,i[e+54|0]=a>>>16,i[e+55|0]=a>>>24,i[e+40|0]=f,i[e+41|0]=f>>>8,i[e+42|0]=f>>>16,i[e+43|0]=f>>>24,i[e+44|0]=h,i[e+45|0]=h>>>8,i[e+46|0]=h>>>16,i[e+47|0]=h>>>24,i[0|(a=e+32|0)]=l,i[a+1|0]=l>>>8,i[a+2|0]=l>>>16,i[a+3|0]=l>>>24,i[a+4|0]=A,i[a+5|0]=A>>>8,i[a+6|0]=A>>>16,i[a+7|0]=A>>>24,B(u+224|0),ie(u,u+224|0),ct(e,u),cn(u+352|0,d),Y(u+352|0,e,64,0),Y(u+352|0,n,r,o),Nt(u+352|0,u+160|0),B(u+160|0),i[u+288|0]=248&c[u+288|0],i[u+319|0]=63&c[u+319|0]|64,function(e,t,n,r){var o,a,s,d,u,l,A,f,h,p,g,m,v,y,b,I,E,w,B,_,S,k,O,Q,R,P,N,x,D,T,M,U,H,j,J,F,G,L,q,Y,V,W,K,Z,z,X,$,ee,te=0,ne=0,re=0,oe=0,ie=0,ae=0,se=0,ce=0,de=0,ue=0,le=0,Ae=0,fe=0,he=0,pe=0,ge=0,me=0,ve=0,ye=0,be=0,Ie=0,Ce=0,Ee=0,we=0,Be=0,_e=0,Se=0,ke=0,Oe=0,Qe=0,Re=0,Pe=0,Ne=0,xe=0,De=0,Te=0,Me=0,Ue=0,He=0,je=0,Je=0,Fe=0,Ge=0,Le=0,qe=0,Ye=0,Ve=0,We=0,Ke=0,Ze=0,ze=0;He=kt(t),me=c[t+2|0]|c[t+3|0]<<8|c[t+4|0]<<16|c[t+5|0]<<24,Ve=kt(t+5|0),Oe=C,ve=c[t+7|0]|c[t+8|0]<<8|c[t+9|0]<<16|c[t+10|0]<<24,ye=c[t+10|0]|c[t+11|0]<<8|c[t+12|0]<<16|c[t+13|0]<<24,Re=kt(t+13|0),le=C,fe=c[t+15|0]|c[t+16|0]<<8|c[t+17|0]<<16|c[t+18|0]<<24,Ge=kt(t+18|0),he=C,Qe=kt(t+21|0),se=c[t+23|0]|c[t+24|0]<<8|c[t+25|0]<<16|c[t+26|0]<<24,de=kt(t+26|0),oe=C,re=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,De=kt(n),Ce=c[(t=n)+2|0]|c[t+3|0]<<8|c[t+4|0]<<16|c[t+5|0]<<24,qe=kt(t+5|0),ue=C,pe=c[t+7|0]|c[t+8|0]<<8|c[t+9|0]<<16|c[t+10|0]<<24,ge=c[t+10|0]|c[t+11|0]<<8|c[t+12|0]<<16|c[t+13|0]<<24,Ye=kt(t+13|0),Ae=C,ie=c[t+15|0]|c[t+16|0]<<8|c[t+17|0]<<16|c[t+18|0]<<24,Le=kt(t+18|0),ne=C,je=kt(t+21|0),te=c[t+23|0]|c[t+24|0]<<8|c[t+25|0]<<16|c[t+26|0]<<24,ce=kt(t+26|0),n=C,t=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,Z=kt(r),z=c[r+2|0]|c[r+3|0]<<8|c[r+4|0]<<16|c[r+5|0]<<24,X=kt(r+5|0),$=C,Te=c[r+7|0]|c[r+8|0]<<8|c[r+9|0]<<16|c[r+10|0]<<24,Je=c[r+10|0]|c[r+11|0]<<8|c[r+12|0]<<16|c[r+13|0]<<24,Fe=kt(r+13|0),xe=C,Pe=c[r+15|0]|c[r+16|0]<<8|c[r+17|0]<<16|c[r+18|0]<<24,We=kt(r+18|0),Se=C,we=kt(r+21|0),t=fn(o=t>>>7|0,0,a=2097151&((3&oe)<<30|de>>>2),0),ae=C,oe=t,t=fn(s=2097151&((3&n)<<30|ce>>>2),0,d=re>>>7|0,0),n=C+ae|0,ae=re=oe+t|0,re=t>>>0>re>>>0?n+1|0:n,t=fn(a,0,s,0),oe=C,te=(n=fn(u=te>>>5&2097151,0,d,0))+t|0,t=C+oe|0,n=t=n>>>0>te>>>0?t+1|0:t,t=fn(o,0,l=se>>>5&2097151,0),n=C+n|0,se=te=t+te|0,Ee=n=t>>>0>te>>>0?n+1|0:n,be=(t=te)- -1048576|0,Ie=n=n-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+re|0,de=t=(n=(2097151&n)<<11|be>>>21)>>>0>(re=oe=n+ae|0)>>>0?t+1|0:t,Be=(t=re)- -1048576|0,ce=ae=de-((t>>>0<4293918720)-1|0)|0,oe=fn(o,0,d,0),n=ke=(Ue=C)-(((t=oe)>>>0<4293918720)-1|0)|0,te=ae>>21,ke=(2097151&ae)<<11|Be>>>21,oe=t-(ae=-2097152&(Me=t- -1048576|0))|0,t=(Ue-((t>>>0>>0)+n|0)|0)+te|0,U=t=oe>>>0>(P=ke+oe|0)>>>0?t+1|0:t,ae=fn(P,t,-683901,-1),oe=C,H=t=n>>21,t=fn(x=(2097151&n)<<11|Me>>>21,t,136657,0),te=C+oe|0,ke=n=t+ae|0,ae=t>>>0>n>>>0?te+1|0:te,t=fn(A=2097151&((1&Ae)<<31|Ye>>>1),0,a,0),n=C,te=t,t=fn(f=ge>>>4&2097151,0,d,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,t=fn(h=ie>>>6&2097151,0,l,0),n=C+n|0,n=t>>>0>(te=t+te|0)>>>0?n+1|0:n,R=t=0,oe=te,te=fn(p=2097151&je,t,g=2097151&((7&he)<<29|Ge>>>3),0),t=C+n|0,t=te>>>0>(oe=oe+te|0)>>>0?t+1|0:t,te=fn(m=2097151&((7&ne)<<29|Le>>>3),0,v=2097151&Qe,0),n=C+t|0,n=te>>>0>(oe=te+oe|0)>>>0?n+1|0:n,t=fn(u,0,y=fe>>>6&2097151,0),te=C+n|0,te=t>>>0>(oe=t+oe|0)>>>0?te+1|0:te,n=fn(s,0,b=2097151&((1&le)<<31|Re>>>1),0),t=C+te|0,n=n>>>0>(te=oe=n+oe|0)>>>0?t+1|0:t,t=fn(o,0,I=ye>>>4&2097151,0),n=C+n|0,he=te=t+te|0,oe=t>>>0>te>>>0?n+1|0:n,t=fn(a,0,f,0),n=C,ne=(te=t)+(t=fn(E=pe>>>7&2097151,0,d,0))|0,te=C+n|0,te=t>>>0>ne>>>0?te+1|0:te,n=fn(l,0,A,0),t=C+te|0,t=n>>>0>(ne=n+ne|0)>>>0?t+1|0:t,te=fn(h,0,v,0),n=C+t|0,n=te>>>0>(ne=te+ne|0)>>>0?n+1|0:n,t=fn(p,R,y,0),n=C+n|0,n=t>>>0>(te=t+ne|0)>>>0?n+1|0:n,ne=(t=te)+(te=fn(g,0,m,0))|0,t=C+n|0,t=te>>>0>ne>>>0?t+1|0:t,n=fn(u,0,b,0),te=C+t|0,te=n>>>0>(ne=n+ne|0)>>>0?te+1|0:te,n=fn(s,0,I,0),t=C+te|0,n=n>>>0>(te=ne=n+ne|0)>>>0?t+1|0:t,t=fn(o,0,w=ve>>>7&2097151,0),n=C+n|0,ge=te=t+te|0,ie=n=t>>>0>te>>>0?n+1|0:n,Ae=(t=te)- -1048576|0,ne=n=n-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+oe|0,n=t=(n=(2097151&n)<<11|Ae>>>21)>>>0>(pe=n+he|0)>>>0?t+1|0:t,t=t+ae|0,t=(te=oe=pe)>>>0>(pe=te+ke|0)>>>0?t+1|0:t,ae=(ae=n)-(((n=oe)>>>0<4293918720)-1|0)|0,le=n- -1048576|0,fe=(n=te=pe)-(te=-2097152&le)|0,he=t-((oe=ae)+(n>>>0>>0)|0)|0,D=re-(t=-2097152&Be)|0,j=n=de-((t>>>0>re>>>0)+ce|0)|0,t=fn(x,H,-997805,-1),te=C+ie|0,te=t>>>0>(re=t+ge|0)>>>0?te+1|0:te,ie=(t=re)+(re=fn(P,U,136657,0))|0,t=C+te|0,n=fn(D,n,-683901,-1),t=C+(re>>>0>ie>>>0?t+1|0:t)|0,t=n>>>0>(te=n+ie|0)>>>0?t+1|0:t,ae=te-(n=-2097152&Ae)|0,ie=t-((n>>>0>te>>>0)+ne|0)|0,t=fn(a,0,E,0),te=C,re=(n=fn(B=2097151&((3&ue)<<30|qe>>>2),0,d,0))+t|0,t=C+te|0,t=n>>>0>re>>>0?t+1|0:t,te=fn(l,0,f,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,t=fn(A,0,v,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,n=fn(h,0,g,0),t=C+te|0,t=n>>>0>(re=n+re|0)>>>0?t+1|0:t,te=fn(p,R,b,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,te=fn(m,0,y,0),t=C+n|0,t=te>>>0>(re=te+re|0)>>>0?t+1|0:t,te=fn(u,0,I,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,t=fn(s,0,w,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,n=fn(o,0,_=2097151&((3&Oe)<<30|Ve>>>2),0),t=C+te|0,re=n>>>0>(ne=re=n+re|0)>>>0?t+1|0:t,t=fn(a,0,B,0),n=C,te=t,t=fn(S=Ce>>>5&2097151,0,d,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,ce=(t=fn(l,0,E,0))+te|0,te=C+n|0,te=t>>>0>ce>>>0?te+1|0:te,n=fn(f,0,v,0),t=C+te|0,t=n>>>0>(ce=n+ce|0)>>>0?t+1|0:t,n=fn(A,0,g,0),t=C+t|0,t=n>>>0>(te=n+ce|0)>>>0?t+1|0:t,ce=(n=te)+(te=fn(h,0,y,0))|0,n=C+t|0,n=te>>>0>ce>>>0?n+1|0:n,t=fn(p,R,I,0),n=C+n|0,n=t>>>0>(te=t+ce|0)>>>0?n+1|0:n,ce=(t=fn(m,0,b,0))+te|0,te=C+n|0,te=t>>>0>ce>>>0?te+1|0:te,n=fn(u,0,w,0),t=C+te|0,t=n>>>0>(ce=n+ce|0)>>>0?t+1|0:t,n=fn(s,0,_,0),t=C+t|0,n=t=n>>>0>(te=n+ce|0)>>>0?t+1|0:t,t=fn(o,0,k=me>>>5&2097151,0),n=C+n|0,pe=te=t+te|0,qe=n=t>>>0>te>>>0?n+1|0:n,ee=(t=te)- -1048576|0,Ye=te=n-((t>>>0<4293918720)-1|0)|0,t=(t=te>>21)+re|0,ge=te=(n=(2097151&te)<<11|ee>>>21)+ne|0,Le=t=n>>>0>te>>>0?t+1|0:t,Ve=(t=te)- -1048576|0,je=te=Le-((t>>>0<4293918720)-1|0)|0,n=(t=te>>21)+ie|0,Ae=re=(te=(2097151&te)<<11|Ve>>>21)+ae|0,Ue=n=te>>>0>re>>>0?n+1|0:n,Re=(t=re)- -1048576|0,ke=te=n-((t>>>0<4293918720)-1|0)|0,t=(t=te>>21)+he|0,ie=te=(n=(2097151&te)<<11|Re>>>21)+fe|0,me=te=(Be=t=n>>>0>te>>>0?t+1|0:t)-(((t=te)>>>0<4293918720)-1|0)|0,de=(2097151&te)<<11|(Qe=t- -1048576|0)>>>21,ne=te>>21,t=fn(a,0,h,0),n=C,te=t,t=fn(d,0,A,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,t=fn(p,R,v,0),n=C+n|0,n=t>>>0>(te=t+te|0)>>>0?n+1|0:n,re=(t=te)+(te=fn(l,0,m,0))|0,t=C+n|0,t=te>>>0>re>>>0?t+1|0:t,n=fn(u,0,g,0),te=C+t|0,te=n>>>0>(re=n+re|0)>>>0?te+1|0:te,n=fn(s,0,y,0),t=C+te|0,t=n>>>0>(re=n+re|0)>>>0?t+1|0:t,te=fn(o,0,b,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,te=fn(x,H,-683901,-1),n=(t=n)+C|0,n=te>>>0>(ae=re+te|0)>>>0?n+1|0:n,te=ae,ae=(ae=t)-(((t=re)>>>0<4293918720)-1|0)|0,Ce=t- -1048576|0,ce=(t=te)-(te=-2097152&Ce)|0,te=n-((re=ae)+(t>>>0>>0)|0)|0,t=(t=oe>>21)+te|0,t=(n=(2097151&oe)<<11|le>>>21)>>>0>(oe=n+ce|0)>>>0?t+1|0:t,ae=(n=oe)-(te=-2097152&(ue=n- -1048576|0))|0,te=(t-((n>>>0>>0)+(oe=ce=t-((n>>>0<4293918720)-1|0)|0)|0)|0)+ne|0,J=de=ae+de|0,F=te=ae>>>0>de>>>0?te+1|0:te,ce=fn(de,te,-683901,-1),ae=C,n=fn(l,0,p,R),t=C,te=n,n=fn(d,0,h,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ne=(n=te)+(te=fn(a,0,m,0))|0,n=C+t|0,n=te>>>0>ne>>>0?n+1|0:n,te=fn(u,0,v,0),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,te=fn(s,0,g,0),n=C+t|0,n=te>>>0>(ne=te+ne|0)>>>0?n+1|0:n,t=fn(o,0,y,0),te=C+n|0,te=t>>>0>(ne=t+ne|0)>>>0?te+1|0:te,t=(t=re>>21)+te|0,ve=ne=(t=(n=(2097151&re)<<11|Ce>>>21)>>>0>(re=n+ne|0)>>>0?t+1|0:t)-(((n=re)>>>0<4293918720)-1|0)|0,re=n-(te=-2097152&(Ne=n- -1048576|0))|0,te=(t-((n>>>0>>0)+ne|0)|0)+(oe>>21)|0,G=re=(t=(2097151&oe)<<11|ue>>>21)+re|0,L=te=t>>>0>re>>>0?te+1|0:te,n=fn(re,te,136657,0),t=C+ae|0,Ge=te=n+ce|0,ye=n>>>0>te>>>0?t+1|0:t,n=fn(v,0,S,0),t=C,te=n,n=fn(O=2097151&De,0,l,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,re=(n=te)+(te=fn(g,0,B,0))|0,n=C+t|0,n=te>>>0>re>>>0?n+1|0:n,t=fn(y,0,E,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,n=fn(f,0,b,0),t=C+te|0,t=n>>>0>(re=n+re|0)>>>0?t+1|0:t,te=fn(A,0,I,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,te=fn(h,0,w,0),t=C+n|0,t=te>>>0>(re=te+re|0)>>>0?t+1|0:t,te=fn(p,R,k,0),n=C+t|0,n=te>>>0>(re=te+re|0)>>>0?n+1|0:n,t=fn(m,0,_,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,n=fn(u,0,Q=2097151&He,0),t=C+te|0,t=n>>>0>(re=n+re|0)>>>0?t+1|0:t,oe=re=(te=(c[r+23|0]|c[r+24|0]<<8|c[r+25|0]<<16|c[r+26|0]<<24)>>>5&2097151)+re|0,re=te>>>0>re>>>0?t+1|0:t,t=fn(g,0,S,0),n=C,te=t,t=fn(v,0,O,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,ne=(t=fn(y,0,B,0))+te|0,te=C+n|0,te=t>>>0>ne>>>0?te+1|0:te,n=fn(b,0,E,0),t=C+te|0,t=n>>>0>(ne=n+ne|0)>>>0?t+1|0:t,n=fn(f,0,I,0),t=C+t|0,t=n>>>0>(te=n+ne|0)>>>0?t+1|0:t,ne=(n=te)+(te=fn(A,0,w,0))|0,n=C+t|0,n=te>>>0>ne>>>0?n+1|0:n,t=fn(h,0,_,0),n=C+n|0,n=t>>>0>(te=t+ne|0)>>>0?n+1|0:n,ne=(t=fn(p,R,Q,0))+te|0,te=C+n|0,te=t>>>0>ne>>>0?te+1|0:te,n=fn(m,0,k,0),t=C+te|0,t=n>>>0>(ne=n+ne|0)>>>0?t+1|0:t,ne=te=(n=2097151&we)+ne|0,fe=te=(le=t=n>>>0>te>>>0?t+1|0:t)-(((t=te)>>>0<4293918720)-1|0)|0,t=(2097151&te)<<11|(Oe=t- -1048576|0)>>>21,te=(te>>>21|0)+re|0,ue=te=t>>>0>(oe=t+oe|0)>>>0?te+1|0:te,De=se-(t=-2097152&be)|0,we=Ee-((t>>>0>se>>>0)+Ie|0)|0,n=fn(a,0,u,0),t=C,te=n,n=fn(d,0,p,R),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,re=(n=te)+(te=fn(s,0,l,0))|0,n=C+t|0,n=te>>>0>re>>>0?n+1|0:n,t=fn(o,0,v,0),te=C+n|0,te=t>>>0>(re=t+re|0)>>>0?te+1|0:te,ae=re,t=fn(d,0,m,0),n=C,re=t,t=fn(a,0,p,R),n=C+n|0,n=t>>>0>(re=re+t|0)>>>0?n+1|0:n,se=(t=re)+(re=fn(l,0,u,0))|0,t=C+n|0,t=re>>>0>se>>>0?t+1|0:t,n=fn(s,0,v,0),t=C+t|0,t=n>>>0>(re=n+se|0)>>>0?t+1|0:t,se=(n=re)+(re=fn(o,0,g,0))|0,n=C+t|0,de=n=re>>>0>se>>>0?n+1|0:n,Ee=(t=re=se)- -1048576|0,ce=se=n-((t>>>0<4293918720)-1|0)|0,n=(t=se>>21)+te|0,ae=n=(te=ae=(se=(2097151&se)<<11|Ee>>>21)+ae|0)>>>0>>0?n+1|0:n,Ie=(t=te)- -1048576|0,n=(t=(se=be=n-((t>>>0<4293918720)-1|0)|0)>>21)+we|0,q=n=(be=(2097151&se)<<11|Ie>>>21)>>>0>(N=De=be+De|0)>>>0?n+1|0:n,we=fn(N,n,470296,0),be=C,T=te-(n=-2097152&Ie)|0,Me=t=ae-((n>>>0>te>>>0)+se|0)|0,n=fn(D,j,666643,0),te=C+be|0,te=n>>>0>(se=n+we|0)>>>0?te+1|0:te,n=fn(T,t,654183,0),t=C+te|0,n=n>>>0>(ae=se=n+se|0)>>>0?t+1|0:t,t=re-(te=-2097152&Ee)|0,te=(ve>>21)+(se=de-((te>>>0>re>>>0)+ce|0)|0)|0,Y=ce=(re=(2097151&ve)<<11|Ne>>>21)+t|0,He=te=re>>>0>ce>>>0?te+1|0:te,Ke=oe- -1048576|0,re=se=ue-((oe>>>0<4293918720)-1|0)|0,t=fn(ce,te,-997805,-1),n=C+n|0,t=(n=t>>>0>(te=t+ae|0)>>>0?n+1|0:n)+ue|0,t=te>>>0>(oe=te+oe|0)>>>0?t+1|0:t,we=(te=oe)-(n=-2097152&Ke)|0,be=t-((n>>>0>te>>>0)+re|0)|0,t=fn(T,Me,470296,0),n=C,oe=(te=t)+(t=fn(N,q,666643,0))|0,te=C+n|0,te=t>>>0>oe>>>0?te+1|0:te,n=fn(ce,He,654183,0),t=C+te|0,n=le+(n>>>0>(oe=n+oe|0)>>>0?t+1|0:t)|0,ue=(te=ne+oe|0)-(t=-2097152&Oe)|0,se=(n=te>>>0>>0?n+1|0:n)-((t>>>0>te>>>0)+fe|0)|0,n=fn(y,0,S,0),t=C,te=n,n=fn(g,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,n=fn(b,0,B,0),t=C+t|0,t=n>>>0>(te=n+te|0)>>>0?t+1|0:t,oe=(n=te)+(te=fn(I,0,E,0))|0,n=C+t|0,n=te>>>0>oe>>>0?n+1|0:n,t=fn(f,0,w,0),te=C+n|0,te=t>>>0>(oe=t+oe|0)>>>0?te+1|0:te,t=fn(A,0,_,0),n=C+te|0,n=t>>>0>(oe=t+oe|0)>>>0?n+1|0:n,te=fn(h,0,k,0),t=C+n|0,t=te>>>0>(oe=te+oe|0)>>>0?t+1|0:t,n=fn(m,0,Q,0),t=C+t|0,t=n>>>0>(te=n+oe|0)>>>0?t+1|0:t,n=te,oe=(te=2097151&((7&Se)<<29|We>>>3))>>>0>(ne=oe=n+te|0)>>>0?t+1|0:t,t=fn(b,0,S,0),n=C,ae=(te=t)+(t=fn(y,0,O,0))|0,te=C+n|0,te=t>>>0>ae>>>0?te+1|0:te,n=fn(I,0,B,0),t=C+te|0,t=n>>>0>(ae=n+ae|0)>>>0?t+1|0:t,te=fn(w,0,E,0),n=C+t|0,n=te>>>0>(ae=te+ae|0)>>>0?n+1|0:n,te=fn(f,0,_,0),t=C+n|0,t=te>>>0>(ae=te+ae|0)>>>0?t+1|0:t,te=fn(A,0,k,0),n=C+t|0,n=te>>>0>(ae=te+ae|0)>>>0?n+1|0:n,t=fn(h,0,Q,0),te=C+n|0,t=t>>>0>(n=ae=t+ae|0)>>>0?te+1|0:te,Ee=te=ae+(n=Pe>>>6&2097151)|0,he=te=(de=t=n>>>0>te>>>0?t+1|0:t)-(((t=te)>>>0<4293918720)-1|0)|0,t=(2097151&te)<<11|(Ie=t- -1048576|0)>>>21,te=(te>>>21|0)+oe|0,ce=te=t>>>0>(ne=t+ne|0)>>>0?te+1|0:te,ve=(t=ne)- -1048576|0,ae=te=te-((t>>>0<4293918720)-1|0)|0,t=(n=te>>>21|0)+se|0,le=oe=(te=(2097151&te)<<11|ve>>>21)+ue|0,Ce=te=(se=t=te>>>0>oe>>>0?t+1|0:t)-(((t=oe)>>>0<4293918720)-1|0)|0,t=(2097151&te)<<11|(fe=t- -1048576|0)>>>21,te=(te>>21)+be|0,t=(n=te=t>>>0>(oe=t+we|0)>>>0?te+1|0:te)+ye|0,ue=(ue=n)-(((n=oe)>>>0<4293918720)-1|0)|0,Ze=n- -1048576|0,ze=(n=te=Se=oe+Ge|0)-(te=-2097152&Ze)|0,_e=(t=oe>>>0>Se>>>0?t+1|0:t)-((oe=ue)+(n>>>0>>0)|0)|0,t=fn(G,L,-997805,-1),n=C+se|0,Ne=te=t+le|0,ue=t>>>0>te>>>0?n+1|0:n,n=fn(Y,He,470296,0),t=C,te=n,n=fn(T,Me,666643,0),t=C+t|0,t=(t=n>>>0>(te=te+n|0)>>>0?t+1|0:t)+ce|0,t=(n=te+ne|0)>>>0>>0?t+1|0:t,ve=(te=n)-(n=-2097152&ve)|0,ye=t-((n>>>0>te>>>0)+ae|0)|0,t=fn(Y,He,666643,0),n=C+de|0,le=te=t+Ee|0,se=t>>>0>te>>>0?n+1|0:n,n=fn(I,0,S,0),t=C,te=n,n=fn(b,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,n=fn(w,0,B,0),t=C+t|0,t=n>>>0>(te=n+te|0)>>>0?t+1|0:t,ne=(n=te)+(te=fn(_,0,E,0))|0,n=C+t|0,n=te>>>0>ne>>>0?n+1|0:n,t=fn(f,0,k,0),te=C+n|0,te=t>>>0>(ne=t+ne|0)>>>0?te+1|0:te,t=fn(A,0,Q,0),n=C+te|0,t=n=t>>>0>(ne=t+ne|0)>>>0?n+1|0:n,ae=ne=(te=2097151&((1&xe)<<31|Fe>>>1))+ne|0,ne=te>>>0>ne>>>0?t+1|0:t,n=fn(w,0,S,0),t=C,te=n,n=fn(I,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ce=(n=te)+(te=fn(_,0,B,0))|0,n=C+t|0,n=te>>>0>ce>>>0?n+1|0:n,t=fn(k,0,E,0),n=C+n|0,n=t>>>0>(te=t+ce|0)>>>0?n+1|0:n,ce=(t=fn(f,0,Q,0))+te|0,te=C+n|0,t=t>>>0>(n=ce)>>>0?te+1|0:te,de=te=ce+(n=Je>>>4&2097151)|0,Je=te=(Oe=t=n>>>0>te>>>0?t+1|0:t)-(((t=te)>>>0<4293918720)-1|0)|0,t=(2097151&te)<<11|(We=t- -1048576|0)>>>21,te=(te>>>21|0)+ne|0,ce=ae=t+ae|0,xe=te=t>>>0>ae>>>0?te+1|0:te,Ge=(t=ae)- -1048576|0,Pe=te=te-((t>>>0<4293918720)-1|0)|0,t=(n=te>>>21|0)+se|0,Ee=te=(Se=(te=(te=(2097151&te)<<11|Ge>>>21)>>>0>(n=ne=te+le|0)>>>0?t+1|0:t)-(((t=-2097152&Ie)>>>0>n>>>0)+he|0)|0)-(((t=ae=n-t|0)>>>0<4293918720)-1|0)|0,n=(n=te>>21)+ye|0,we=te=(t=(2097151&te)<<11|(De=t- -1048576|0)>>>21)+ve|0,Ie=n=t>>>0>te>>>0?n+1|0:n,be=(t=te)- -1048576|0,ve=ne=n-((t>>>0<4293918720)-1|0)|0,M=ie-(t=-2097152&Qe)|0,Fe=te=Be-((t>>>0>ie>>>0)+me|0)|0,t=(n=ne>>21)+ue|0,t=(ne=(2097151&ne)<<11|be>>>21)>>>0>(ie=ne+Ne|0)>>>0?t+1|0:t,se=(ne=fn(J,F,136657,0))+(ie-(n=-2097152&fe)|0)|0,n=C+(t-((n>>>0>ie>>>0)+Ce|0)|0)|0,n=ne>>>0>se>>>0?n+1|0:n,te=fn(M,te,-683901,-1),t=C+n|0,se=ne=te+se|0,le=te=(ye=t=te>>>0>ne>>>0?t+1|0:t)-(((t=ne)>>>0<4293918720)-1|0)|0,n=(n=te>>21)+_e|0,ie=te=(t=(2097151&te)<<11|(Qe=t- -1048576|0)>>>21)+ze|0,fe=n=t>>>0>te>>>0?n+1|0:n,he=te=n-(((t=te)>>>0<4293918720)-1|0)|0,Ne=(2097151&te)<<11|(Be=t- -1048576|0)>>>21,Ce=te>>21,n=fn(l,0,S,0),t=C,te=n,n=fn(a,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ne=(n=fn(v,0,B,0))+te|0,te=C+t|0,te=n>>>0>ne>>>0?te+1|0:te,t=fn(g,0,E,0),n=C+te|0,n=t>>>0>(ne=t+ne|0)>>>0?n+1|0:n,te=fn(f,0,y,0),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,te=fn(A,0,b,0),n=C+t|0,n=te>>>0>(ne=te+ne|0)>>>0?n+1|0:n,te=fn(h,0,I,0),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,n=fn(p,R,_,0),te=C+t|0,te=n>>>0>(ne=n+ne|0)>>>0?te+1|0:te,t=fn(m,0,w,0),n=C+te|0,n=t>>>0>(ne=t+ne|0)>>>0?n+1|0:n,te=fn(u,0,k,0),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,te=fn(s,0,Q,0),n=C+t|0,n=te>>>0>(ne=te+ne|0)>>>0?n+1|0:n,t=kt(r+26|0),te=2097151&((3&(te=C))<<30|t>>>2),t=n,me=ne=te+ne|0,ne=t=te>>>0>ne>>>0?t+1|0:t,t=fn(D,j,470296,0),n=C,_e=(te=t)+(t=fn(P,U,666643,0))|0,te=C+n|0,te=t>>>0>_e>>>0?te+1|0:te,t=fn(N,q,654183,0),n=C+te|0,n=t>>>0>(_e=t+_e|0)>>>0?n+1|0:n,t=fn(T,Me,-997805,-1),n=C+n|0,n=t>>>0>(te=t+_e|0)>>>0?n+1|0:n,_e=(t=te)+(te=fn(Y,He,136657,0))|0,t=C+n|0,t=(t=te>>>0>_e>>>0?t+1|0:t)+ne|0,t=(n=_e)>>>0>(te=n+me|0)>>>0?t+1|0:t,n=te,te=t,V=(t=me)- -1048576|0,ne=ue=ne-((t>>>0<4293918720)-1|0)|0,ue=n,te=(n=re>>21)+te|0,te=(t=(2097151&re)<<11|Ke>>>21)>>>0>(re=ue+t|0)>>>0?te+1|0:te,n=re-(t=-2097152&V)|0,me=fn(G,L,-683901,-1),t=(re=te-((t>>>0>re>>>0)+ne|0)|0)+C|0,te=t=me>>>0>(_e=n+me|0)>>>0?t+1|0:t,ue=re-(((t=n)>>>0<4293918720)-1|0)|0,W=t- -1048576|0,te=(n=oe>>21)+te|0,te=(t=(2097151&oe)<<11|Ze>>>21)>>>0>(oe=t+(me=_e)|0)>>>0?te+1|0:te,me=n=oe-(t=-2097152&W)|0,t=(oe=te-((t>>>0>oe>>>0)+(re=ue)|0)|0)+Ce|0,K=n- -1048576|0,ue=oe-((n>>>0<4293918720)-1|0)|0,Ke=(n=te=Ne=n+Ne|0)-(te=-2097152&K)|0,Ze=(me>>>0>n>>>0?t+1|0:t)-((n>>>0>>0)+(oe=ue)|0)|0,ze=ie-(t=-2097152&Be)|0,_e=fe-((t>>>0>ie>>>0)+he|0)|0,Ne=se-(t=-2097152&Qe)|0,Qe=ye-((t>>>0>se>>>0)+le|0)|0,n=fn(G,L,654183,0),t=C+Ie|0,t=n>>>0>(te=n+we|0)>>>0?t+1|0:t,se=((ie=te)-(n=-2097152&be)|0)+(te=fn(J,F,-997805,-1))|0,n=C+(t-((n>>>0>ie>>>0)+ve|0)|0)|0,n=te>>>0>se>>>0?n+1|0:n,te=fn(M,Fe,136657,0),t=C+n|0,Be=ie=te+se|0,se=te>>>0>ie>>>0?t+1|0:t,me=Ae-(t=-2097152&Re)|0,ye=Ue-((t>>>0>Ae>>>0)+ke|0)|0,t=fn(P,U,-997805,-1),n=C,te=t,t=fn(x,H,654183,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,t=fn(D,j,136657,0),n=C+n|0,n=t>>>0>(te=t+te|0)>>>0?n+1|0:n,ie=(t=te)+(te=fn(N,q,-683901,-1))|0,t=C+n|0,te=Le+(te>>>0>ie>>>0?t+1|0:t)|0,le=(n=ie+ge|0)-(t=-2097152&Ve)|0,fe=(te=n>>>0>>0?te+1|0:te)-((t>>>0>n>>>0)+je|0)|0,t=fn(P,U,654183,0),n=C,te=t,t=fn(x,H,470296,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,ie=(t=te)+(te=fn(D,j,-997805,-1))|0,t=C+n|0,n=ie+pe|0,te=qe+(te>>>0>ie>>>0?t+1|0:t)|0,ie=(t=fn(N,q,136657,0))+n|0,n=C+(n>>>0>>0?te+1|0:te)|0,n=t>>>0>ie>>>0?n+1|0:n,te=fn(T,Me,-683901,-1),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,ge=(te=ie)-(n=-2097152&ee)|0,Ae=t-((n>>>0>te>>>0)+Ye|0)|0,n=fn(a,0,S,0),t=C,te=n,n=fn(d,0,O,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ie=(n=te)+(te=fn(l,0,B,0))|0,n=C+t|0,n=te>>>0>ie>>>0?n+1|0:n,te=fn(v,0,E,0),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,n=fn(f,0,g,0),te=C+t|0,te=n>>>0>(ie=n+ie|0)>>>0?te+1|0:te,t=fn(A,0,y,0),n=C+te|0,n=t>>>0>(ie=t+ie|0)>>>0?n+1|0:n,te=fn(h,0,b,0),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,te=fn(p,R,w,0),n=C+t|0,n=te>>>0>(ie=te+ie|0)>>>0?n+1|0:n,te=fn(m,0,I,0),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,n=fn(u,0,_,0),te=C+t|0,te=n>>>0>(ie=n+ie|0)>>>0?te+1|0:te,t=fn(o,0,Q,0),n=C+te|0,n=t>>>0>(ie=t+ie|0)>>>0?n+1|0:n,te=fn(s,0,k,0),t=C+n|0,t=te>>>0>(ie=te+ie|0)>>>0?t+1|0:t,n=(r=(c[r+28|0]|c[r+29|0]<<8|c[r+30|0]<<16|c[r+31|0]<<24)>>>7|0)>>>0>(te=r+ie|0)>>>0?t+1|0:t,t=te,te=ne>>21,ne=t+(r=(2097151&ne)<<11|V>>>21)|0,t=n+te|0,ie=ne,he=t=r>>>0>ne>>>0?t+1|0:t,Ie=(t=ne)- -1048576|0,Ce=n=he-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+Ae|0,ne=r=(n=(2097151&n)<<11|Ie>>>21)+ge|0,ue=t=n>>>0>r>>>0?t+1|0:t,ve=(t=r)- -1048576|0,pe=n=ue-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+fe|0,ge=t=(n=(2097151&n)<<11|ve>>>21)>>>0>(r=n+le|0)>>>0?t+1|0:t,fe=(t=r)- -1048576|0,Ae=n=ge-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+ye|0,Re=le=(n=(2097151&n)<<11|fe>>>21)+me|0,ke=t=n>>>0>le>>>0?t+1|0:t,t=fn(le,t,-683901,-1),n=C+se|0,le=te=t+Be|0,se=t>>>0>te>>>0?n+1|0:n,we=r-(t=-2097152&fe)|0,Be=Ae=ge-((t>>>0>r>>>0)+Ae|0)|0,n=fn(G,L,470296,0)+ae|0,t=Se+C|0,t=n>>>0>>0?t+1|0:t,ae=((te=n)-(r=-2097152&De)|0)+(n=fn(J,F,654183,0))|0,te=C+(t-((r>>>0>te>>>0)+Ee|0)|0)|0,t=fn(M,Fe,-997805,-1),n=C+(n>>>0>ae>>>0?te+1|0:te)|0,n=t>>>0>(r=t+ae|0)>>>0?n+1|0:n,te=(t=r)+(r=fn(Re,ke,136657,0))|0,t=C+n|0,t=r>>>0>te>>>0?t+1|0:t,r=fn(we,Ae,-683901,-1),n=C+t|0,ge=n=r>>>0>(te=r+te|0)>>>0?n+1|0:n,ye=(t=te)- -1048576|0,Ae=r=n-((t>>>0<4293918720)-1|0)|0,t=(t=r>>21)+se|0,ae=t=(n=(2097151&r)<<11|ye>>>21)>>>0>(r=n+le|0)>>>0?t+1|0:t,fe=(t=r)- -1048576|0,n=(t=(se=le=ae-((t>>>0<4293918720)-1|0)|0)>>21)+Qe|0,Qe=Ee=(le=(2097151&se)<<11|fe>>>21)+Ne|0,le=le>>>0>Ee>>>0?n+1|0:n,qe=r-(t=-2097152&fe)|0,Ye=ae-((t>>>0>r>>>0)+se|0)|0,je=te-(t=-2097152&ye)|0,Ue=ge-((t>>>0>te>>>0)+Ae|0)|0,t=fn(G,L,666643,0),te=C+(xe-(((n=-2097152&Ge)>>>0>ce>>>0)+Pe|0)|0)|0,te=t>>>0>(r=t+(ce-n|0)|0)>>>0?te+1|0:te,t=fn(J,F,470296,0),n=C+te|0,n=t>>>0>(r=t+r|0)>>>0?n+1|0:n,te=(t=r)+(r=fn(M,Fe,654183,0))|0,t=C+n|0,Ae=te,r=r>>>0>te>>>0?t+1|0:t,ce=ne-(t=-2097152&ve)|0,se=ue-((t>>>0>ne>>>0)+pe|0)|0,n=fn(P,U,470296,0),t=C,te=n,n=fn(x,H,666643,0),t=C+t|0,t=n>>>0>(te=te+n|0)>>>0?t+1|0:t,ne=(n=te)+(te=fn(D,j,654183,0))|0,n=C+t|0,n=te>>>0>ne>>>0?n+1|0:n,te=fn(N,q,-997805,-1),t=C+n|0,t=te>>>0>(ne=te+ne|0)>>>0?t+1|0:t,n=fn(T,Me,136657,0),te=C+t|0,te=n>>>0>(ne=n+ne|0)>>>0?te+1|0:te,t=fn(Y,He,-683901,-1),n=C+te|0,t=he+(t>>>0>(ne=t+ne|0)>>>0?n+1|0:n)|0,t=(te=ne+ie|0)>>>0>>0?t+1|0:t,n=(ne=te)-(te=-2097152&Ie)|0,te=t-((te>>>0>ne>>>0)+Ce|0)|0,t=(t=re>>21)+te|0,ae=re=(ne=n)+(n=(2097151&re)<<11|W>>>21)|0,pe=te=(ue=t=n>>>0>re>>>0?t+1|0:t)-(((t=re)>>>0<4293918720)-1|0)|0,n=(2097151&te)<<11|(Se=t- -1048576|0)>>>21,te=(te>>21)+se|0,be=re=n+ce|0,me=te=n>>>0>re>>>0?te+1|0:te,t=fn(re,te,-683901,-1),n=C+r|0,n=t>>>0>(te=t+Ae|0)>>>0?n+1|0:n,r=fn(Re,ke,-997805,-1),t=C+n|0,t=r>>>0>(te=r+te|0)>>>0?t+1|0:t,r=fn(we,Be,136657,0),n=C+t|0,ce=te=r+te|0,ne=r>>>0>te>>>0?n+1|0:n,n=fn(_,0,S,0),t=C,r=n,n=fn(w,0,O,0),t=C+t|0,t=n>>>0>(r=r+n|0)>>>0?t+1|0:t,n=fn(k,0,B,0),te=C+t|0,te=n>>>0>(r=n+r|0)>>>0?te+1|0:te,t=fn(Q,0,E,0),n=C+te|0,t=n=t>>>0>(r=t+r|0)>>>0?n+1|0:n,ie=r=(n=Te>>>7&2097151)+r|0,r=n>>>0>r>>>0?t+1|0:t,t=fn(k,0,S,0),n=C,te=t,t=fn(_,0,O,0),n=C+n|0,n=t>>>0>(te=te+t|0)>>>0?n+1|0:n,t=fn(Q,0,B,0),n=C+n|0,n=t>>>0>(te=t+te|0)>>>0?n+1|0:n,re=(t=te)+(te=2097151&((3&$)<<30|X>>>2))|0,t=n,se=re,fe=te=(re=t=te>>>0>re>>>0?t+1|0:t)-(((t=se)>>>0<4293918720)-1|0)|0,n=(n=te>>>21|0)+r|0,ie=te=(t=(2097151&te)<<11|(Pe=t- -1048576|0)>>>21)+ie|0,he=n=t>>>0>te>>>0?n+1|0:n,Ee=(t=te)- -1048576|0,ge=r=n-((t>>>0<4293918720)-1|0)|0,t=(n=r>>>21|0)+Oe|0,t=(r=de+((2097151&r)<<11|Ee>>>21)|0)>>>0>>0?t+1|0:t,de=((te=r)-(n=-2097152&We)|0)+(r=fn(J,F,666643,0))|0,n=C+(t-((n>>>0>te>>>0)+Je|0)|0)|0,n=r>>>0>de>>>0?n+1|0:n,t=fn(M,Fe,470296,0),n=C+n|0,n=t>>>0>(r=t+de|0)>>>0?n+1|0:n,te=(t=r)+(r=fn(be,me,136657,0))|0,t=C+n|0,t=r>>>0>te>>>0?t+1|0:t,n=fn(Re,ke,654183,0),t=C+t|0,t=n>>>0>(r=n+te|0)>>>0?t+1|0:t,n=fn(we,Be,-997805,-1),te=C+t|0,Ie=r=n+r|0,Ae=te=n>>>0>r>>>0?te+1|0:te,ve=(t=r)- -1048576|0,de=r=te-((t>>>0<4293918720)-1|0)|0,n=(t=r>>21)+ne|0,ne=te=(r=(2097151&r)<<11|ve>>>21)+ce|0,r=n=r>>>0>te>>>0?n+1|0:n,ce=te=n-(((t=te)>>>0<4293918720)-1|0)|0,n=(2097151&te)<<11|(ye=t- -1048576|0)>>>21,te=(te>>21)+Ue|0,Le=Ce=n+je|0,Ce=n>>>0>Ce>>>0?te+1|0:te,te=oe>>21,oe=(t=(2097151&oe)<<11|K>>>21)+(ae-(n=-2097152&Se)|0)|0,n=te+(ue-((n>>>0>ae>>>0)+pe|0)|0)|0,ue=n=t>>>0>oe>>>0?n+1|0:n,pe=n=n-(((t=oe)>>>0<4293918720)-1|0)|0,xe=te=n>>21,n=fn(Te=(2097151&n)<<11|(Se=t- -1048576|0)>>>21,te,-683901,-1),t=C+r|0,t=n>>>0>(te=n+ne|0)>>>0?t+1|0:t,je=te-(n=-2097152&ye)|0,Ue=t-((n>>>0>te>>>0)+ce|0)|0,t=fn(Te,xe,136657,0),n=C+Ae|0,n=t>>>0>(r=t+Ie|0)>>>0?n+1|0:n,Oe=r-(t=-2097152&ve)|0,Je=n-((t>>>0>r>>>0)+de|0)|0,r=(t=fn(M,Fe,666643,0))+(ie-(n=-2097152&Ee)|0)|0,n=C+(he-((n>>>0>ie>>>0)+ge|0)|0)|0,n=t>>>0>r>>>0?n+1|0:n,te=(t=r)+(r=fn(be,me,-997805,-1))|0,t=C+n|0,t=r>>>0>te>>>0?t+1|0:t,r=(n=fn(Re,ke,470296,0))+te|0,te=C+t|0,te=n>>>0>r>>>0?te+1|0:te,t=fn(we,Be,654183,0),n=C+te|0,he=r=t+r|0,ae=t>>>0>r>>>0?n+1|0:n,ne=re,n=fn(Q,0,S,0),t=C,r=n,n=fn(k,0,O,0),t=C+t|0,t=n>>>0>(r=r+n|0)>>>0?t+1|0:t,n=r,n=(r=z>>>5&2097151)>>>0>(te=n+r|0)>>>0?t+1|0:t,r=2097151&Z,re=fn(Q,0,O,0)+r|0,t=C,Ae=r=(ge=t=r>>>0>re>>>0?t+1|0:t)-(((t=re)>>>0<4293918720)-1|0)|0,ie=te,n=n+(te=r>>>21|0)|0,de=n=(t=(2097151&r)<<11|(Ee=t- -1048576|0)>>>21)>>>0>(r=ie+t|0)>>>0?n+1|0:n,Ie=(t=r)- -1048576|0,ce=n=n-((t>>>0<4293918720)-1|0)|0,t=(te=n>>>21|0)+ne|0,t=(n=(2097151&n)<<11|Ie>>>21)>>>0>(ie=n+se|0)>>>0?t+1|0:t,ie=(te=fn(be,me,654183,0))+((ne=ie)-(n=-2097152&Pe)|0)|0,n=C+(t-((16383&fe)+(n>>>0>ne>>>0)|0)|0)|0,t=fn(Re,ke,666643,0),te=C+(te>>>0>ie>>>0?n+1|0:n)|0,te=t>>>0>(ne=t+ie|0)>>>0?te+1|0:te,n=fn(we,Be,470296,0),t=C+te|0,ve=ne=n+ne|0,se=t=n>>>0>ne>>>0?t+1|0:t,ye=(t=ne)- -1048576|0,ie=n=se-((t>>>0<4293918720)-1|0)|0,t=(te=n>>21)+ae|0,fe=ne=(n=(2097151&n)<<11|ye>>>21)+he|0,n=t=n>>>0>ne>>>0?t+1|0:t,he=(t=ne)- -1048576|0,t=(te=(ne=ae=n-((t>>>0<4293918720)-1|0)|0)>>21)+Je|0,ae=(ae=(2097151&ne)<<11|he>>>21)>>>0>(Oe=Pe=ae+Oe|0)>>>0?t+1|0:t,t=fn(Te,xe,-997805,-1);n=C+n|0,n=t>>>0>(te=t+fe|0)>>>0?n+1|0:n,Je=te-(t=-2097152&he)|0,Pe=n-((t>>>0>te>>>0)+ne|0)|0,t=fn(Te,xe,654183,0),n=C+se|0,n=t>>>0>(te=t+ve|0)>>>0?n+1|0:n,fe=te-(t=-2097152&ye)|0,he=n-((t>>>0>te>>>0)+ie|0)|0,te=(n=fn(be,me,470296,0))+(r-(t=-2097152&Ie)|0)|0,t=C+(de-((16383&ce)+(t>>>0>r>>>0)|0)|0)|0,t=n>>>0>te>>>0?t+1|0:t,r=(n=fn(we,Be,666643,0))+te|0,te=C+t|0,te=n>>>0>r>>>0?te+1|0:te,ne=r,r=(t=fn(be,me,666643,0))+(re-(n=-2097152&Ee)|0)|0,n=C+(ge-((4095&Ae)+(n>>>0>re>>>0)|0)|0)|0,se=n=t>>>0>r>>>0?n+1|0:n,Ae=(t=r)- -1048576|0,ie=re=n-((t>>>0<4293918720)-1|0)|0,te=(t=re>>21)+te|0,de=re=(n=(2097151&re)<<11|Ae>>>21)+ne|0,ne=te=n>>>0>re>>>0?te+1|0:te,ce=(t=re)- -1048576|0,re=te=te-((t>>>0<4293918720)-1|0)|0,n=(t=te>>21)+he|0,te=n=(te=(2097151&te)<<11|ce>>>21)>>>0>(ge=te+fe|0)>>>0?n+1|0:n,n=fn(Te,xe,470296,0),t=C+ne|0,t=n>>>0>(de=n+de|0)>>>0?t+1|0:t,n=de-(ne=-2097152&ce)|0,ne=t-((ne>>>0>de>>>0)+re|0)|0,ce=n,re=(t=fn(Te,xe,666643,0))+(r-(n=-2097152&Ae)|0)|0,n=C+(se-((n>>>0>r>>>0)+ie|0)|0)|0,t=(t=(n=t>>>0>re>>>0?n+1|0:n)>>21)+ne|0,ie=r=ce+(n=(2097151&n)<<11|(r=re)>>>21)|0,te=(n=(t=n>>>0>r>>>0?t+1|0:t)>>21)+te|0,ne=r=(t=(2097151&t)<<11|r>>>21)+ge|0,r=(2097151&(te=t>>>0>(n=r)>>>0?te+1|0:te))<<11|n>>>21,n=(t=te>>21)+Pe|0,de=te=r+Je|0,te=(n=r>>>0>(t=te)>>>0?n+1|0:n)>>21,n=(2097151&n)<<11|t>>>21,t=te+ae|0,Ie=r=n+Oe|0,n=(n=(t=n>>>0>r>>>0?t+1|0:t)>>21)+Ue|0,ve=r=(t=(2097151&t)<<11|r>>>21)+je|0,t=(t=(n=t>>>0>r>>>0?n+1|0:n)>>21)+Ce|0,ye=r=(n=(2097151&n)<<11|r>>>21)+Le|0,te=(n=(t=n>>>0>r>>>0?t+1|0:t)>>21)+Ye|0,fe=r=(t=(2097151&t)<<11|r>>>21)+qe|0,r=(2097151&(te=t>>>0>(n=r)>>>0?te+1|0:te))<<11|n>>>21,n=(t=te>>21)+le|0,he=te=r+Qe|0,te=(n=r>>>0>(t=te)>>>0?n+1|0:n)>>21,n=(2097151&n)<<11|t>>>21,t=te+_e|0,Ce=r=n+ze|0,n=(n=(t=n>>>0>r>>>0?t+1|0:t)>>21)+Ze|0,ge=r=(t=(2097151&t)<<11|r>>>21)+Ke|0,t=(n=t>>>0>r>>>0?n+1|0:n)>>21,se=(te=(2097151&n)<<11|r>>>21)+(n=oe-(r=-2097152&Se)|0)|0,te=(ue-((r>>>0>oe>>>0)+pe|0)|0)+t|0,Ae=se,pe=(2097151&(te=n>>>0>(t=se)>>>0?te+1|0:te))<<11|t>>>21,ae=n=te>>21,t=2097151&re,r=fn(pe,n,666643,0)+t|0,n=C,se=r,r=n=t>>>0>r>>>0?n+1|0:n,i[0|e]=se,i[e+1|0]=(255&n)<<24|se>>>8,re=e,n=2097151&ie,te=fn(pe,ae,470296,0)+n|0,t=C,t=n>>>0>te>>>0?t+1|0:t,ie=te,oe=(2097151&(te=r))<<11|se>>>21,te=t+(n=te>>21)|0,te=oe>>>0>(ie=ie+oe|0)>>>0?te+1|0:te,oe=ie,i[re+4|0]=(2047&te)<<21|oe>>>11,t=te,te=oe,i[re+3|0]=(7&t)<<29|te>>>3,te=2097151&ne,ne=fn(pe,ae,654183,0)+te|0,n=C,n=te>>>0>ne>>>0?n+1|0:n,te=ne,ne=(2097151&t)<<11|oe>>>21,t=(t>>21)+n|0,n=t=ne>>>0>(ie=te+ne|0)>>>0?t+1|0:t,i[re+6|0]=(63&t)<<26|ie>>>6,ne=0,t=ce=2097151&oe,i[re+2|0]=31&((65535&r)<<16|se>>>16)|t<<5,r=2097151&de,te=fn(pe,ae,-997805,-1)+r|0,t=C,r=t=r>>>0>te>>>0?t+1|0:t,t=n>>21,oe=(n=(2097151&n)<<11|ie>>>21)+te|0,te=t+r|0,se=oe,te=n>>>0>oe>>>0?te+1|0:te,i[re+9|0]=(511&te)<<23|oe>>>9,t=te,i[re+8|0]=(1&t)<<31|oe>>>1,oe=0,r=de=2097151&ie,i[re+5|0]=(524287&ne)<<13|ce>>>19|r<<2,r=2097151&Ie,te=fn(pe,ae,136657,0)+r|0,n=C,n=r>>>0>te>>>0?n+1|0:n,r=te,n=n+(te=t>>21)|0,ie=r=r+(t=(2097151&t)<<11|se>>>21)|0,n=t>>>0>r>>>0?n+1|0:n,i[re+12|0]=(4095&n)<<20|r>>>12,r=n,t=n,n=ie,i[re+11|0]=(15&t)<<28|n>>>4,re=0,n=ce=2097151&se,i[e+7|0]=(16383&oe)<<18|de>>>14|n<<7,te=e,n=2097151&ve,oe=fn(pe,ae,-683901,-1)+n|0,t=C,t=(t=n>>>0>oe>>>0?t+1|0:t)+(n=r>>21)|0,n=t=(r=(2097151&r)<<11|ie>>>21)>>>0>(ne=oe=r+oe|0)>>>0?t+1|0:t,i[te+14|0]=(127&t)<<25|ne>>>7,oe=0,r=se=2097151&ie,i[te+10|0]=(131071&re)<<15|ce>>>17|r<<4,r=te,t>>=21,te=(n=(2097151&n)<<11|ne>>>21)>>>0>(ie=n+(2097151&ye)|0)>>>0?t+1|0:t,i[r+17|0]=(1023&te)<<22|ie>>>10,t=te,i[r+16|0]=(3&t)<<30|ie>>>2,r=ae=2097151&ne,i[e+13|0]=(1048575&oe)<<12|se>>>20|r<<1,n=t,t>>=21,n=(te=(2097151&n)<<11|ie>>>21)>>>0>(ne=te+(2097151&fe)|0)>>>0?t+1|0:t,i[(r=e)+20|0]=(8191&n)<<19|ne>>>13,t=n,n=ne,i[r+19|0]=(31&t)<<27|n>>>5,n=se=2097151&ie,i[r+15|0]=(32767&re)<<17|ae>>>15|n<<6,n=t,t>>=21,n=(r=(2097151&n)<<11|ne>>>21)>>>0>(ae=r+(2097151&he)|0)>>>0?t+1|0:t,i[e+21|0]=ae,t=ne,i[e+18|0]=(262143&oe)<<14|se>>>18|t<<3,r=n,t=n,n=ae,i[e+22|0]=(255&t)<<24|n>>>8,n=t>>21,te=(t=(2097151&t)<<11|ae>>>21)>>>0>(ne=t+(2097151&Ce)|0)>>>0?n+1|0:n,i[e+25|0]=(2047&te)<<21|ne>>>11,t=te,te=ne,i[e+24|0]=(7&t)<<29|te>>>3,n=t>>21,n=(re=(2097151&t)<<11|ne>>>21)>>>0>(ie=re+(2097151&ge)|0)>>>0?n+1|0:n,re=ie,t=n,i[(te=e)+27|0]=(63&t)<<26|re>>>6,te=0,n=ie=2097151&ne,i[e+23|0]=31&((65535&r)<<16|ae>>>16)|n<<5,n=t,t>>=21,t=(n=(2097151&n)<<11|re>>>21)>>>0>(oe=n+(2097151&Ae)|0)>>>0?t+1|0:t,r=oe,i[e+31|0]=(131071&t)<<15|r>>>17,i[e+30|0]=(511&t)<<23|r>>>9,i[e+29|0]=(1&t)<<31|r>>>1,t=0,ne=re&=2097151,i[e+26|0]=(524287&te)<<13|ie>>>19|ne<<2,i[e+28|0]=(16383&t)<<18|ne>>>14|r<<7}(a,u+160|0,u+288|0,u+224|0),ht(u+288|0,64),ht(u+224|0,64),t&&(s[t>>2]=64,s[t+4>>2]=0),y=u+560|0,0}function q(e,t,n){var r,o=0,a=0;if(n>>>0>=512)return m(0|e,0|t,0|n),e;r=e+n|0;e:if(3&(e^t))if(r>>>0<4)n=e;else if((o=r-4|0)>>>0>>0)n=e;else for(n=e;i[0|n]=c[0|t],i[n+1|0]=c[t+1|0],i[n+2|0]=c[t+2|0],i[n+3|0]=c[t+3|0],t=t+4|0,o>>>0>=(n=n+4|0)>>>0;);else{t:if((0|n)<1)n=e;else if(3&e)for(n=e;;){if(i[0|n]=c[0|t],t=t+1|0,r>>>0<=(n=n+1|0)>>>0)break t;if(!(3&n))break}else n=e;if(!((o=-4&r)>>>0<64||(a=o+-64|0)>>>0>>0))for(;s[n>>2]=s[t>>2],s[n+4>>2]=s[t+4>>2],s[n+8>>2]=s[t+8>>2],s[n+12>>2]=s[t+12>>2],s[n+16>>2]=s[t+16>>2],s[n+20>>2]=s[t+20>>2],s[n+24>>2]=s[t+24>>2],s[n+28>>2]=s[t+28>>2],s[n+32>>2]=s[t+32>>2],s[n+36>>2]=s[t+36>>2],s[n+40>>2]=s[t+40>>2],s[n+44>>2]=s[t+44>>2],s[n+48>>2]=s[t+48>>2],s[n+52>>2]=s[t+52>>2],s[n+56>>2]=s[t+56>>2],s[n+60>>2]=s[t+60>>2],t=t- -64|0,a>>>0>=(n=n- -64|0)>>>0;);if(n>>>0>=o>>>0)break e;for(;s[n>>2]=s[t>>2],t=t+4|0,o>>>0>(n=n+4|0)>>>0;);}if(n>>>0>>0)for(;i[0|n]=c[0|t],t=t+1|0,(0|r)!=(0|(n=n+1|0)););return e}function Y(e,t,n,r){var o,a=0,d=0,u=0,l=0,A=0,f=0,h=0;if(y=o=y-704|0,n|r)if(a=r<<3|n>>>29,u=(h=s[(d=e)+72>>2])+(A=n<<3)|0,a=a+(l=s[d+76>>2])|0,f=u,s[d+72>>2]=u,a=u>>>0>>0?a+1|0:a,s[d+76>>2]=a,f=(A=(0|a)==(0|l)&h>>>0>f>>>0|a>>>0>>0)+s[(d=u=d- -64|0)>>2]|0,a=s[d+4>>2],a=A>>>0>f>>>0?a+1|0:a,u=(A=r>>>29|0)+f|0,s[d>>2]=u,s[d+4>>2]=u>>>0>>0?a+1|0:a,(0|(a=r))==(0|(f=0-((l=127&((7&l)<<29|h>>>3))>>>0>128)|0))&n>>>0>=(u=128-l|0)>>>0|a>>>0>f>>>0){for(d=0,a=0;i[80+(e+(A=d+l|0)|0)|0]=c[t+d|0],(0|u)!=(0|(d=d+1|0))|(0|(a=d>>>0<1?a+1|0:a))!=(0|f););if(w(e,e+80|0,o,a=o+640|0),t=t+u|0,!(r=r-((n>>>0>>0)+f|0)|0)&(n=n-u|0)>>>0>127|r)for(;w(e,t,o,a),t=t+128|0,!(r=r-(n>>>0<128)|0)&(n=n-128|0)>>>0>127|r;);if(n|r)for(d=0,a=0;i[80+(e+d|0)|0]=c[t+d|0],(0|n)!=(0|(d=l=d+1|0))|(0|r)!=(0|(a=l>>>0<1?a+1|0:a)););ht(o,704)}else for(d=n,u=(n=!r&n>>>0>1|0!=(0|r))?d:1,h=n?r:0,d=0,a=0;i[80+(e+(r=d+l|0)|0)|0]=c[t+d|0],(0|u)!=(0|(d=n=d+1|0))|(0|(a=n>>>0<1?a+1|0:a))!=(0|h););return y=o+704|0,0}function V(e,t,n,r,o,a,c,d){e|=0,t|=0,n|=0,r|=0,o|=0,a|=0,c|=0,d|=0;var u,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,b=0;y=u=y-16|0,s[u+12>>2]=0,En(d);e:{if(r){v=4&d;t:{n:{r:{for(;;){l=h;o:{i:{for(;;){if(g=i[n+l|0],255!=(0|(f=v?Fe(g):Ge(g))))break i;if(!o)break o;if(!nn(o,g))break r;if(!((l=l+1|0)>>>0>>0))break}e=h+1|0,s[u+12>>2]=e>>>0>>0?r:e;break n}if(m=(m<<6)+f|0,(f=A+6|0)>>>0<8)A=f;else{if(A=A-2|0,t>>>0<=p>>>0){s[u+12>>2]=l,s[8960]=68,l=1;break t}i[e+p|0]=m>>>A,p=p+1|0}if((h=l+1|0)>>>0>>0)continue}break}s[u+12>>2]=h;break n}s[u+12>>2]=l}l=0}if(!(A>>>0<=4)){e=-1;break e}}if(e=-1,!((-1<>2];;){n:{if(t>>>0<=a>>>0)s[8960]=68;else{if(61==(0|(c=i[e+a|0]))){o=o-1|0;break n}if(r&&nn(r,c))break n;s[8960]=28}d=-1;break t}if(a=a+1|0,s[n>>2]=a,!o)break}return d}(n,r,u+12|0,o,A>>>1|0)))){e=0;t:if(o&&!((l=s[u+12>>2])>>>0>=r>>>0)){n:{for(;;){if(!nn(o,i[n+l|0]))break n;if((0|(l=l+1|0))==(0|r))break}s[u+12>>2]=r;break t}s[u+12>>2]=l}b=p}}return t=s[u+12>>2],c?s[c>>2]=t+n:(0|t)!=(0|r)&&(s[8960]=28,e=-1),a&&(s[a>>2]=b),y=u+16|0,0|e}function W(e,t,n){var r,o,i,a=0;y=r=y-16|0,o=s[e+20>>2],s[e+20>>2]=0,i=s[e+4>>2],s[e+4>>2]=0,a=-26;e:{t:{n:switch(n-1|0){case 1:if(a=-32,qe(t,35621,9))break e;t=t+9|0;break t;case 0:break n;default:break e}if(a=-32,qe(t,35631,8))break e;t=t+8|0}if(!qe(t,35640,3)&&(t=Qe(t+3|0,r+12|0))){if(a=-26,19!=s[r+12>>2])break e;if(!qe(t,35644,3)&&(t=Qe(t+3|0,r+12|0))&&(s[e+44>>2]=s[r+12>>2],!qe(t,35648,3)&&(t=Qe(t+3|0,r+12|0))&&(s[e+40>>2]=s[r+12>>2],!qe(t,35652,3)&&(t=Qe(t+3|0,r+12|0))&&(n=s[r+12>>2],s[e+48>>2]=n,s[e+52>>2]=n,36==(0|(n=c[0|t]))&&(s[r+12>>2]=o,t=36==(0|n)?t+1|0:t,!V(s[e+16>>2],o,t,Oe(t),0,r+12|0,r+8|0,3)&&(s[e+20>>2]=s[r+12>>2],t=s[r+8>>2],36==(0|(n=c[0|t]))&&(s[r+12>>2]=i,t=36==(0|n)?t+1|0:t,!V(s[e>>2],i,t,Oe(t),0,r+12|0,r+8|0,3)))))))){if(s[e+4>>2]=s[r+12>>2],t=s[r+8>>2],a=le(e))break e;return y=r+16|0,c[0|t]?-32:0}}a=-32}return y=r+16|0,a}function K(e,t){var n;for(y=n=y-192|0,k(n+144|0,t),k(n+96|0,n+144|0),k(n+96|0,n+96|0),S(n+96|0,t,n+96|0),S(n+144|0,n+144|0,n+96|0),k(n+48|0,n+144|0),S(n+96|0,n+96|0,n+48|0),k(n+48|0,n+96|0),t=1;k(n+48|0,n+48|0),5!=(0|(t=t+1|0)););for(S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),t=1;k(n+48|0,n+48|0),10!=(0|(t=t+1|0)););for(S(n+48|0,n+48|0,n+96|0),k(n,n+48|0),t=1;k(n,n),20!=(0|(t=t+1|0)););for(S(n+48|0,n,n+48|0),t=1;k(n+48|0,n+48|0),11!=(0|(t=t+1|0)););for(S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),t=1;k(n+48|0,n+48|0),50!=(0|(t=t+1|0)););for(S(n+48|0,n+48|0,n+96|0),k(n,n+48|0),t=1;k(n,n),100!=(0|(t=t+1|0)););for(S(n+48|0,n,n+48|0),t=1;k(n+48|0,n+48|0),51!=(0|(t=t+1|0)););for(S(n+96|0,n+48|0,n+96|0),t=1;k(n+96|0,n+96|0),6!=(0|(t=t+1|0)););S(e,n+96|0,n+144|0),y=n+192|0}function Z(e,t){var n,r,o,a,c,d,l,A,f,h,p=0,g=0,m=0,v=0,y=0,b=0,I=0;(g=m=s[e+60>>2])|(p=s[e+56>>2])&&(m=p,i[(v=p+e|0)- -64|0]=1,!(g=(p=p+1|0)>>>0<1?g+1|0:g)&p>>>0<=15&&ae(v+65|0,0,15-m|0),i[e+80|0]=1,x(e,e- -64|0,16,0)),f=s[e+52>>2],h=s[e+48>>2],m=s[e+44>>2],I=s[e+24>>2],y=s[e+28>>2]+(I>>>26|0)|0,p=s[e+32>>2]+(y>>>26|0)|0,A=(n=(a=(-67108864|(o=s[e+36>>2]+(p>>>26|0)|0))+((l=(d=67108863&p)+((y=(b=67108863&y)+((g=(p=(67108863&I)+((g=s[e+20>>2]+u(o>>>26|0,5)|0)>>>26|0)|0)+((c=5+(v=67108863&g)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>31)&p|(r=67108863&(I=(a>>>31|0)-1|0))&g,g=0,g=(p=v&n|r&c|A<<26)>>>0>(v=p+s[e+40>>2]|0)>>>0?1:g,Jt(t,v),y=(p=(b=b&n|y&r)<<20|A>>>6)+m|0,m=0,m=p>>>0>y>>>0?1:m,p=g,g=m,g=p>>>0>(y=p+y|0)>>>0?g+1|0:g,Jt(t+4|0,y),m=0,m=(p=(v=n&d|r&l)<<14|b>>>12)>>>0>(b=p+h|0)>>>0?1:m,p=g,g=m,g=p>>>0>(b=p+b|0)>>>0?g+1|0:g,Jt(t+8|0,b),Jt(m=t+12|0,g=g+(v=(t=(I&a|n&o)<<8|v>>>18)+f|0)|0),ht(e,88)}function z(e,t,n,r,o){e|=0,t|=0,n|=0,r|=0;var a=0,s=0,d=0,l=0,h=0,p=0,g=0,m=0,v=0;En(o|=0),s=(a=(r>>>0)/3|0)<<2,(a=u(a,-3)+r|0)&&(s=2&o?(2|s)+(a>>>1|0)|0:s+4|0);e:{t:{n:{r:{if(t>>>0>s>>>0){if(!(4&o)){if(d=0,!r)break n;o=0,a=0;break r}if(d=0,!r)break n;for(o=0,a=0;;){for(h=c[n+l|0]|h<<8,o=o+8|0;p=a,g=o,m=e+a|0,v=it(h>>>(o=o-6|0)&63),i[0|m]=v,a=a+1|0,o>>>0>5;);if((0|(l=l+1|0))==(0|r))break}if(d=a,!o)break n;m=e+a|0,v=it(h<<12-g&63),i[0|m]=v,d=p+2|0;break n}zt(),A()}for(;;){for(h=c[n+l|0]|h<<8,o=o+8|0;p=a,g=o,m=e+a|0,v=at(h>>>(o=o-6|0)&63),i[0|m]=v,a=a+1|0,o>>>0>5;);if((0|(l=l+1|0))==(0|r))break}d=a,o&&(m=e+a|0,v=at(h<<12-g&63),i[0|m]=v,d=p+2|0)}if((a=d)>>>0<=s>>>0){if(a>>>0>>0)break t;s=a;break e}f(35568,35587,230,35603),A()}ae(e+a|0,61,s-a|0)}return ae(e+s|0,0,(t>>>0>(n=s+1|0)>>>0?t:n)-s|0),0|e}function X(e,t,n,r){var o=0,a=0,d=0,u=0,l=0,A=0;e:{if((o=s[e+56>>2])|(a=s[e+60>>2])){if(A=e,l=d=16-o|0,l=(d=(0|(u=0-((o>>>0>16)+a|0)|0))==(0|r)&n>>>0>>0|r>>>0>>0)?n:l,(d=u=d?r:u)|l){if(i[(e+o|0)- -64|0]=c[0|t],a=1,o=0,1!=(0|l)|d)for(;u=a+s[e+56>>2]|0,i[(e+u|0)- -64|0]=c[t+a|0],(0|l)!=(0|(a=a+1|0))|(0|(o=a>>>0<1?o+1|0:o))!=(0|d););o=s[e+56>>2],a=s[e+60>>2]}if(u=o+l|0,o=a+d|0,a=u,s[A+56>>2]=a,o=a>>>0>>0?o+1|0:o,s[A+60>>2]=o,!o&a>>>0<16)break e;x(e,e- -64|0,16,0),s[e+56>>2]=0,s[e+60>>2]=0,n=(o=n)-(a=l)|0,r=r-((o>>>0>>0)+d|0)|0,t=t+a|0}if(!r&n>>>0>=16|r&&(x(e,t,o=-16&n,r),n&=15,r=0,t=t+o|0),n|r){for(a=0,o=0;A=a+s[e+56>>2]|0,i[(e+A|0)- -64|0]=c[t+a|0],(0|n)!=(0|(a=a+1|0))|(0|r)!=(0|(o=a>>>0<1?o+1|0:o)););t=e,o=n+s[e+56>>2]|0,e=r+s[e+60>>2]|0,s[t+56>>2]=o,s[t+60>>2]=n>>>0>o>>>0?e+1|0:e}}}function $(e,t){var n=0,r=0,o=0,i=0,a=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0;e:if(e&&(2!=s[e+36>>2]||(o=s[t>>2],c[t+8|0]<2&&!o)?(function(e,t,n){var r,o=0,i=0,a=0;if(y=r=y-4096|0,Nn(r+3072|0),Nn(r+2048|0),!(!e|!t)&&(s[r+2048>>2]=s[t>>2],s[r+2052>>2]=0,s[r+2056>>2]=s[t+4>>2],s[r+2060>>2]=0,s[r+2064>>2]=c[t+8|0],s[r+2068>>2]=0,s[r+2072>>2]=s[e+16>>2],s[r+2076>>2]=0,s[r+2080>>2]=s[e+8>>2],s[r+2084>>2]=0,s[r+2088>>2]=s[e+36>>2],s[r+2092>>2]=0,s[e+20>>2]))for(t=0;(a=127&t)||(o=s[r+2100>>2],o=(i=s[r+2096>>2]+1|0)>>>0<1?o+1|0:o,s[r+2096>>2]=i,s[r+2100>>2]=o,Nn(r),Nn(r+1024|0),O(r+3072|0,r+2048|0,r),O(r+3072|0,r,r+1024|0)),a=s[4+(i=(r+1024|0)+(a<<3)|0)>>2],s[(o=(t<<3)+n|0)>>2]=s[i>>2],s[o+4>>2]=a,(t=t+1|0)>>>0>2];);y=r+4096|0}(e,t,f=s[e+4>>2]),o=s[t>>2],r=0):(f=s[e+4>>2],r=1),p=r,!((a=!((r=c[t+8|0])|o)<<1)>>>0>=(n=s[e+20>>2])>>>0)))for(i=s[e+24>>2],n=(o=(u(i,s[t+4>>2])+a|0)+u(n,r)|0)+((o>>>0)%(i>>>0)|0?-1:i-1|0)|0;;){if(h=1==((o>>>0)%(i>>>0)|0)?o-1|0:n,p?(l=s[e>>2],n=s[l+4>>2]+(h<<10)|0):(l=s[e>>2],n=(a<<3)+f|0),r=s[n+4>>2],g=s[n>>2],n=s[e+28>>2],s[t+12>>2]=a,r=(r>>>0)%(n>>>0)|0,A=s[t+4>>2],n=c[t+8|0]?r:A,l=s[l+4>>2],m=i,v=r,i=s[t>>2],A=(l+(u(m,n=(r=i)?v:n)<<10)|0)+(we(e,t,g,!0&(0|n)==(0|A))<<10)|0,r=l+(h<<10)|0,n=l+(o<<10)|0,i?O(r,A,n):Q(r,A,n),(a=a+1|0)>>>0>=d[e+20>>2])break e;o=o+1|0,n=h+1|0,i=s[e+24>>2]}}function ee(e,t,n){var r,o,i,a,c,d,u,l,A,f,h,p,g=0,m=0,v=0,y=0,b=0,I=0,C=0,E=0,w=0;r=s[t+4>>2],o=s[e+4>>2],i=s[t+8>>2],m=s[e+8>>2],a=s[t+12>>2],v=s[e+12>>2],c=s[t+16>>2],y=s[e+16>>2],d=s[t+20>>2],b=s[e+20>>2],u=s[t+24>>2],I=s[e+24>>2],l=s[t+28>>2],C=s[e+28>>2],A=s[t+32>>2],E=s[e+32>>2],f=s[t+36>>2],w=s[e+36>>2],p=(n=0-n|0)&((h=s[t>>2])^(g=s[e>>2])),s[e>>2]=p^g,g=w,w=n&(w^f),s[e+36>>2]=g^w,g=E,E=n&(E^A),s[e+32>>2]=g^E,g=C,C=n&(C^l),s[e+28>>2]=g^C,g=I,I=n&(I^u),s[e+24>>2]=g^I,g=b,b=n&(b^d),s[e+20>>2]=g^b,g=y,y=n&(y^c),s[e+16>>2]=g^y,g=v,v=n&(v^a),s[e+12>>2]=g^v,g=m,m=n&(m^i),s[e+8>>2]=g^m,g=e,e=n&(r^o),s[g+4>>2]=e^o,s[t+36>>2]=w^f,s[t+32>>2]=E^A,s[t+28>>2]=C^l,s[t+24>>2]=I^u,s[t+20>>2]=b^d,s[t+16>>2]=y^c,s[t+12>>2]=v^a,s[t+8>>2]=m^i,s[t+4>>2]=e^r,s[t>>2]=h^p}function te(e,t){var n;s[e>>2]=67108863&(c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24),s[e+4>>2]=(c[t+3|0]|c[t+4|0]<<8|c[t+5|0]<<16|c[t+6|0]<<24)>>>2&67108611,s[e+8>>2]=(c[t+6|0]|c[t+7|0]<<8|c[t+8|0]<<16|c[t+9|0]<<24)>>>4&67092735,s[e+12>>2]=(c[t+9|0]|c[t+10|0]<<8|c[t+11|0]<<16|c[t+12|0]<<24)>>>6&66076671,n=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,s[e+20>>2]=0,s[e+24>>2]=0,s[e+28>>2]=0,s[e+32>>2]=0,s[e+36>>2]=0,s[e+16>>2]=n>>>8&1048575,s[e+40>>2]=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,s[e+44>>2]=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,s[e+48>>2]=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,t=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,i[e+80|0]=0,s[e+56>>2]=0,s[e+60>>2]=0,s[e+52>>2]=t}function ne(e,t,n){var r=0;e:if((0|e)!=(0|t)){if((t-e|0)-n>>>0<=0-(n<<1)>>>0)return q(e,t,n);if(r=3&(e^t),e>>>0>>0){if(r)r=e;else{if(3&e)for(r=e;;){if(!n)break e;if(i[0|r]=c[0|t],t=t+1|0,n=n-1|0,!(3&(r=r+1|0)))break}else r=e;if(!(n>>>0<=3))for(;s[r>>2]=s[t>>2],t=t+4|0,r=r+4|0,(n=n-4|0)>>>0>3;);}if(n)for(;i[0|r]=c[0|t],r=r+1|0,t=t+1|0,n=n-1|0;);}else{if(!r){if(e+n&3)for(;;){if(!n)break e;if(i[0|(r=(n=n-1|0)+e|0)]=c[t+n|0],!(3&r))break}if(!(n>>>0<=3))for(;s[(n=n-4|0)+e>>2]=s[t+n>>2],n>>>0>3;);}if(!n)break e;for(;i[(n=n-1|0)+e|0]=c[t+n|0],n;);}}return e}function re(e,t){var n,r=0;y=n=y-48|0,function(e,t){var n,r,o,i,a,c,d,l,A=0;r=s[t+28>>2],o=s[t+24>>2],i=s[t+20>>2],a=s[t+16>>2],c=s[t+12>>2],d=s[t+8>>2],l=s[t+4>>2],A=s[t>>2],n=s[t+36>>2],t=s[t+32>>2],A=u(((r+(o+(i+(a+(c+(d+(l+(A+(u(n,19)+16777216>>>25|0)>>26)>>25)>>26)>>25)>>26)>>25)>>26)>>25)+t>>26)+n>>25,19)+A|0,s[e>>2]=67108863&A,A=l+(A>>26)|0,s[e+4>>2]=33554431&A,A=d+(A>>25)|0,s[e+8>>2]=67108863&A,A=c+(A>>26)|0,s[e+12>>2]=33554431&A,A=a+(A>>25)|0,s[e+16>>2]=67108863&A,A=i+(A>>26)|0,s[e+20>>2]=33554431&A,A=o+(A>>25)|0,s[e+24>>2]=67108863&A,A=r+(A>>26)|0,s[e+28>>2]=33554431&A,t=t+(A>>25)|0,s[e+32>>2]=67108863&t,s[e+36>>2]=n+(t>>26)&33554431}(n,t),t=s[n>>2],i[0|e]=t,i[e+2|0]=t>>>16,i[e+1|0]=t>>>8,r=s[n+4>>2],i[e+5|0]=r>>>14,i[e+4|0]=r>>>6,i[e+3|0]=r<<2|t>>>24,t=s[n+8>>2],i[e+8|0]=t>>>13,i[e+7|0]=t>>>5,i[e+6|0]=t<<3|r>>>22,r=s[n+12>>2],i[e+11|0]=r>>>11,i[e+10|0]=r>>>3,i[e+9|0]=r<<5|t>>>21,t=s[n+16>>2],i[e+15|0]=t>>>18,i[e+14|0]=t>>>10,i[e+13|0]=t>>>2,i[e+12|0]=t<<6|r>>>19,t=s[n+20>>2],i[e+16|0]=t,i[e+18|0]=t>>>16,i[e+17|0]=t>>>8,r=s[n+24>>2],i[e+21|0]=r>>>15,i[e+20|0]=r>>>7,i[e+19|0]=r<<1|t>>>24,t=s[n+28>>2],i[e+24|0]=t>>>13,i[e+23|0]=t>>>5,i[e+22|0]=t<<3|r>>>23,r=s[n+32>>2],i[e+27|0]=r>>>12,i[e+26|0]=r>>>4,i[e+25|0]=r<<4|t>>>21,t=s[n+36>>2],i[e+31|0]=t>>>18,i[e+30|0]=t>>>10,i[e+29|0]=t>>>2,i[e+28|0]=t<<6|r>>>20,y=n+48|0}function oe(e,t,n,r){var o=0,a=0,s=0,d=0,u=0,l=0;e:if(n|r)for(l=e+224|0,s=e+96|0,o=c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24;;){if(d=96+(e+o|0)|0,u=a=256-o|0,!r&n>>>0<=a>>>0){q(d,t,n),t=n+(c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)|0,i[e+352|0]=t,i[e+353|0]=t>>>8,i[e+354|0]=t>>>16,i[e+355|0]=t>>>24;break e}if(q(d,t,a),o=(c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)+a|0,i[e+352|0]=o,i[e+353|0]=o>>>8,i[e+354|0]=o>>>16,i[e+355|0]=o>>>24,se(e,128),E(e,s),q(s,l,128),o=(c[e+352|0]|c[e+353|0]<<8|c[e+354|0]<<16|c[e+355|0]<<24)-128|0,i[e+352|0]=o,i[e+353|0]=o>>>8,i[e+354|0]=o>>>16,i[e+355|0]=o>>>24,t=t+a|0,!((n=(a=n)-u|0)|(r=r-(a>>>0>>0)|0)))break}return 0}function ie(e,t){var n,r=0,o=0,a=0,s=0;for(y=n=y-464|0;o=r<<1,s=c[t+r|0],i[o+(n+400|0)|0]=15&s,i[(n+400|0)+(1|o)|0]=s>>>4,32!=(0|(r=r+1|0)););for(r=0;t=((o=(t=r)+c[0|(r=(n+400|0)+a|0)]|0)<<24)- -134217728|0,i[0|r]=o-(t>>24&240),r=t>>28,63!=(0|(a=a+1|0)););for(i[n+463|0]=c[n+463|0]+r,Xt(e),r=1;pn(n,r>>>1|0,i[(n+400|0)+r|0]),ze(n+240|0,e,n),bt(e,n+240|0),t=r>>>0<62,r=r+2|0,t;);for(jt(n+240|0,e),St(n+120|0,n+240|0),et(n+240|0,n+120|0),St(n+120|0,n+240|0),et(n+240|0,n+120|0),St(n+120|0,n+240|0),et(n+240|0,n+120|0),bt(e,n+240|0),r=0;pn(n,r>>>1|0,i[(n+400|0)+r|0]),ze(n+240|0,e,n),bt(e,n+240|0),t=r>>>0<62,r=r+2|0,t;);y=n+464|0}function ae(e,t,n){var r=0,o=0,a=0,c=0;if(n&&(i[(r=e+n|0)-1|0]=t,i[0|e]=t,!(n>>>0<3||(i[r-2|0]=t,i[e+1|0]=t,i[r-3|0]=t,i[e+2|0]=t,n>>>0<7||(i[r-4|0]=t,i[e+3|0]=t,n>>>0<9||(o=(r=0-e&3)+e|0,t=u(255&t,16843009),s[o>>2]=t,s[(r=(n=n-r&-4)+o|0)-4>>2]=t,n>>>0<9||(s[o+8>>2]=t,s[o+4>>2]=t,s[r-8>>2]=t,s[r-12>>2]=t,n>>>0<25||(s[o+24>>2]=t,s[o+20>>2]=t,s[o+16>>2]=t,s[o+12>>2]=t,s[r-16>>2]=t,s[r-20>>2]=t,s[r-24>>2]=t,s[r-28>>2]=t,(n=n-(c=4&o|24)|0)>>>0<32))))))))for(r=t,a=t,t=o+c|0;s[t+24>>2]=a,s[t+28>>2]=r,s[t+16>>2]=a,s[t+20>>2]=r,s[t+8>>2]=a,s[t+12>>2]=r,s[t>>2]=a,s[t+4>>2]=r,t=t+32|0,(n=n-32|0)>>>0>31;);return e}function se(e,t){var n,r,o,a=0,s=0;s=a=e- -64|0,r=1+(n=c[a+4|0]|c[a+5|0]<<8|c[a+6|0]<<16|c[a+7|0]<<24)|0,a=(t=t+(a=o=c[0|a]|c[a+1|0]<<8|c[a+2|0]<<16|c[a+3|0]<<24)|0)>>>0>>0?r:n,i[0|s]=t,i[s+1|0]=t>>>8,i[s+2|0]=t>>>16,i[s+3|0]=t>>>24,i[s+4|0]=a,i[s+5|0]=a>>>8,i[s+6|0]=a>>>16,i[s+7|0]=a>>>24,t=(a=(0|a)==(0|n)&t>>>0>>0|a>>>0>>0)+(c[e+72|0]|c[e+73|0]<<8|c[e+74|0]<<16|c[e+75|0]<<24)|0,s=c[e+76|0]|c[e+77|0]<<8|c[e+78|0]<<16|c[e+79|0]<<24,a=t>>>0>>0?s+1|0:s,i[e+72|0]=t,i[e+73|0]=t>>>8,i[e+74|0]=t>>>16,i[e+75|0]=t>>>24,i[e+76|0]=a,i[e+77|0]=a>>>8,i[e+78|0]=a>>>16,i[e+79|0]=a>>>24}function ce(e,t,n,r,o,i,a){var c,d,u,l,A=0;return y=c=y-352|0,G(c,i,a),!o&r>>>0<=n-e>>>0|e>>>0>=n>>>0&&!(!o&r>>>0>e-n>>>0|o&&e>>>0>n>>>0)||(n=ne(e,n,r)),s[c+56>>2]=0,s[c+60>>2]=0,s[c+48>>2]=0,s[c+52>>2]=0,s[c+40>>2]=0,s[c+44>>2]=0,s[c+32>>2]=0,s[c+36>>2]=0,(d=!((a=(A=!o&r>>>0>32|0!=(0|o))?32:r)|(A=A?0:o)))||q(c- -64|0,n,a),l=i+16|0,$t(c+32|0,c+32|0,u=a+32|0,i=u>>>0<32?A+1|0:A,l,c),wn(c+96|0,c+32|0),d||q(e,c- -64|0,a),ht(c+32|0,64),!o&r>>>0>=33|o&&en(e+a|0,i=n+a|0,(n=r)-a|0,o-(A+(n>>>0>>0)|0)|0,l,c),ht(c,32),mn(c+96|0,e,r,o),Bn(c+96|0,t),ht(c+96|0,256),y=c+352|0,0}function de(e,t){s[e>>2]=1634760805,s[e+4>>2]=857760878,s[e+8>>2]=2036477234,s[e+12>>2]=1797285236,s[e+16>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,s[e+20>>2]=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,s[e+24>>2]=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,s[e+28>>2]=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,s[e+32>>2]=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,s[e+36>>2]=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,s[e+40>>2]=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,s[e+44>>2]=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24}function ue(e,t,n,r,o,i,a){var c,d,u=0,l=0;y=c=y-96|0,G(c,i,a),d=i+16|0,Vn[s[8952]](c+32|0,32,0,d,c),i=-1;e:{if(!(0|Vn[s[8946]](n,t,r,o,c+32|0))){if(i=0,!e)break e;!o&r>>>0<=e-t>>>0|e>>>0<=t>>>0&&!(!o&r>>>0>t-e>>>0|o&&e>>>0>>0)||(t=ne(e,t,r)),n=(i=!o&r>>>0>32|0!=(0|o))?32:r,a=i=i?0:o,n|i?(l=q(c- -64|0,t,n),i=a,$t(c+32|0,c+32|0,u=n+32|0,i=u>>>0<32?i+1|0:i,d,c),q(e,l,n)):(i=a,$t(c+32|0,c+32|0,u=n+32|0,i=u>>>0<32?i+1|0:i,d,c)),i=0,!o&r>>>0<33||en((u=e)+(e=n)|0,e+t|0,r-e|0,o-(a+(e>>>0>r>>>0)|0)|0,d,c)}ht(c,32)}return y=c+96|0,i}function le(e){var t=0,n=0,r=0;if(!e)return-25;if(!s[e>>2])return-1;e:{t:{if(t=-2,!(d[e+4>>2]<16)&&(s[e+8>>2]||(t=-18,!s[e+12>>2]))){if(n=s[e+20>>2],!s[e+16>>2])break t;if(t=-6,!(n>>>0<8)&&(s[e+24>>2]||(t=-20,!s[e+28>>2]))&&(s[e+32>>2]||(t=-21,!s[e+36>>2]))){if(!(n=s[e+48>>2]))return-16;if(t=-17,!(n>>>0>16777215||(t=-14,(r=s[e+44>>2])>>>0<8||(t=-15,r>>>0>2097152||(t=-14,n<<3>>>0>r>>>0))))){if(!s[e+40>>2])return-12;if(e=s[e+52>>2])break e;t=-28}}}return t}return n?-19:-6}return e>>>0>16777215?-29:0}function Ae(e,t,n){var r,o,i,a,c,d,u,l,A,f,h,p,g,m,v,y,b,I,C,E;h=s[t+4>>2],r=s[e+4>>2],p=s[t+8>>2],o=s[e+8>>2],g=s[t+12>>2],i=s[e+12>>2],m=s[t+16>>2],a=s[e+16>>2],v=s[t+20>>2],c=s[e+20>>2],y=s[t+24>>2],d=s[e+24>>2],b=s[t+28>>2],u=s[e+28>>2],I=s[t+32>>2],l=s[e+32>>2],C=s[t+36>>2],A=s[e+36>>2],f=s[e>>2],E=s[t>>2]^f,t=0-n|0,s[e>>2]=f^E&t,s[e+36>>2]=t&(A^C)^A,s[e+32>>2]=t&(l^I)^l,s[e+28>>2]=t&(u^b)^u,s[e+24>>2]=t&(d^y)^d,s[e+20>>2]=t&(c^v)^c,s[e+16>>2]=t&(a^m)^a,s[e+12>>2]=t&(i^g)^i,s[e+8>>2]=t&(o^p)^o,s[e+4>>2]=t&(r^h)^r}function fe(e,t){for(var n=0,r=0,o=0,a=0,s=0,d=0,u=0,l=0;i[e+n|0]=c[(n>>>3|0)+t|0]>>>(7&n)&1,256!=(0|(n=n+1|0)););for(;;){d=(t=d)+1|0;e:if(c[0|(s=e+t|0)]&&(n=d,o=1,!(t>>>0>254)))for(;;){t:if(a=i[0|(r=e+n|0)])if((0|(l=(u=i[0|s])+(a<<=o)|0))<=15)i[0|s]=l,i[0|r]=0;else{if((0|(r=u-a|0))<-15)break e;for(i[0|s]=r;;){if(!c[0|(r=e+n|0)]){i[0|r]=1;break t}if(i[0|r]=0,r=n>>>0<255,n=n+1|0,!r)break}}if(o>>>0>5)break e;if(!((n=t+(o=o+1|0)|0)>>>0<256))break}if(256==(0|d))break}}function he(e,t,n,r){var o,i,a,c,d=0;y=o=y+-64|0,ae(o+8|0,0,52),d=Oe(e),s[o+20>>2]=d,s[o+36>>2]=d,s[o+4>>2]=d,i=_(d),s[o+32>>2]=i,a=_(d),s[o+16>>2]=a,c=_(d),s[o>>2]=c;e:if(!c|!i|!a||!(d=_(d)))R(i),R(a),R(c),e=-22;else{if(e=W(o,e,r)){R(s[o+32>>2]),R(s[o+16>>2]),R(s[o>>2]),R(d);break e}e=0,t=Ce(s[o+40>>2],s[o+44>>2],s[o+52>>2],t,n,s[o+16>>2],s[o+20>>2],d,s[o+4>>2],0,0,r),R(s[o+32>>2]),R(s[o+16>>2]),(t||Xe(d,s[o>>2],s[o+4>>2]))&&(e=-35),R(d),R(s[o>>2])}return y=o- -64|0,e}function pe(e,t){var n,r,o=0;y=n=y-288|0,M(r=e+40|0,t),yn(o=e+80|0),k(n+240|0,r),S(n+192|0,n+240|0,2128),ge(n+240|0,n+240|0,o),me(n+192|0,n+192|0,o),k(n+144|0,n+192|0),S(n+144|0,n+144|0,n+192|0),k(e,n+144|0),S(e,e,n+192|0),S(e,e,n+240|0),function(e,t){var n,r=0;for(y=n=y-144|0,k(n+96|0,t),k(n+48|0,n+96|0),k(n+48|0,n+48|0),S(n+48|0,t,n+48|0),S(n+96|0,n+96|0,n+48|0),k(n+96|0,n+96|0),S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),r=1;k(n+48|0,n+48|0),5!=(0|(r=r+1|0)););for(S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),r=1;k(n+48|0,n+48|0),10!=(0|(r=r+1|0)););for(S(n+48|0,n+48|0,n+96|0),k(n,n+48|0),r=1;k(n,n),20!=(0|(r=r+1|0)););for(S(n+48|0,n,n+48|0),r=1;k(n+48|0,n+48|0),11!=(0|(r=r+1|0)););for(S(n+96|0,n+48|0,n+96|0),k(n+48|0,n+96|0),r=1;k(n+48|0,n+48|0),50!=(0|(r=r+1|0)););for(S(n+48|0,n+48|0,n+96|0),k(n,n+48|0),r=1;k(n,n),100!=(0|(r=r+1|0)););for(S(n+48|0,n,n+48|0),r=1;k(n+48|0,n+48|0),51!=(0|(r=r+1|0)););S(n+96|0,n+48|0,n+96|0),k(n+96|0,n+96|0),k(n+96|0,n+96|0),S(e,n+96|0,t),y=n+144|0}(e,e),S(e,e,n+144|0),S(e,e,n+240|0),k(n+96|0,e),S(n+96|0,n+96|0,n+192|0),ge(n+48|0,n+96|0,n+240|0);e:{if(!Ht(n+48|0)){if(me(n,n+96|0,n+240|0),o=-1,!Ht(n))break e;S(e,e,2176)}(0|Gt(e))==(c[t+31|0]>>>7|0)&&Re(e,e),S(e+120|0,e,r),o=0}return y=n+288|0,o}function ge(e,t,n){var r,o,i,a,c,d,u,l,A,f,h,p,g,m,v,y,b,I;r=s[n+4>>2],o=s[t+4>>2],i=s[n+8>>2],a=s[t+8>>2],c=s[n+12>>2],d=s[t+12>>2],u=s[n+16>>2],l=s[t+16>>2],A=s[n+20>>2],f=s[t+20>>2],h=s[n+24>>2],p=s[t+24>>2],g=s[n+28>>2],m=s[t+28>>2],v=s[n+32>>2],y=s[t+32>>2],b=s[n+36>>2],I=s[t+36>>2],s[e>>2]=s[t>>2]-s[n>>2],s[e+36>>2]=I-b,s[e+32>>2]=y-v,s[e+28>>2]=m-g,s[e+24>>2]=p-h,s[e+20>>2]=f-A,s[e+16>>2]=l-u,s[e+12>>2]=d-c,s[e+8>>2]=a-i,s[e+4>>2]=o-r}function me(e,t,n){var r,o,i,a,c,d,u,l,A,f,h,p,g,m,v,y,b,I;r=s[n+4>>2],o=s[t+4>>2],i=s[n+8>>2],a=s[t+8>>2],c=s[n+12>>2],d=s[t+12>>2],u=s[n+16>>2],l=s[t+16>>2],A=s[n+20>>2],f=s[t+20>>2],h=s[n+24>>2],p=s[t+24>>2],g=s[n+28>>2],m=s[t+28>>2],v=s[n+32>>2],y=s[t+32>>2],b=s[n+36>>2],I=s[t+36>>2],s[e>>2]=s[n>>2]+s[t>>2],s[e+36>>2]=b+I,s[e+32>>2]=v+y,s[e+28>>2]=g+m,s[e+24>>2]=h+p,s[e+20>>2]=A+f,s[e+16>>2]=u+l,s[e+12>>2]=c+d,s[e+8>>2]=i+a,s[e+4>>2]=r+o}function ve(e){var t,n=0,r=0,o=0,a=0;for(i[11+(t=y-16|0)|0]=0,i[t+12|0]=0,i[t+13|0]=0,i[t+14|0]=0,s[t+8>>2]=0;;){for(o=c[e+r|0],n=0;i[0|(a=(t+8|0)+n|0)]=c[0|a]|o^c[(3232+(n<<5)|0)+r|0],7!=(0|(n=n+1|0)););if(31==(0|(r=r+1|0)))break}for(r=127&c[e+31|0],e=0,n=0;i[0|(o=(t+8|0)+n|0)]=c[0|o]|r^c[3263+(n<<5)|0],7!=(0|(n=n+1|0)););for(n=0;n=c[(t+8|0)+e|0]-1|n,7!=(0|(e=e+1|0)););return n>>>8&1}function ye(e,t){var n=0,r=0,o=0,a=0,s=0;for(ae(q(e,1952,64)- -64|0,0,293);o=r=(n=a<<3)+e|0,n=t+n|0,s=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24,r=(c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24)^(c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24),n=(c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24)^s,i[0|o]=n,i[o+1|0]=n>>>8,i[o+2|0]=n>>>16,i[o+3|0]=n>>>24,i[o+4|0]=r,i[o+5|0]=r>>>8,i[o+6|0]=r>>>16,i[o+7|0]=r>>>24,8!=(0|(a=a+1|0)););}function be(e,t,n,r,o){var i,a=0;y=i=y+-64|0;e:{t:{if(a=!n,(n=Oe(e))>>>0<128&&a){if(s[i+56>>2]=0,s[i+48>>2]=0,s[i+52>>2]=0,s[i+40>>2]=0,s[i+44>>2]=0,a=function(e){var t=0,n=0;return t=0,e&&(n=e,t=e,(1|e)>>>0<65536||(t=n)),n=t,!(e=_(t))|!(3&c[e-4|0])||ae(e,0,n),e}(n))break t}else s[8960]=28;e=-1;break e}s[i+32>>2]=0,s[i+36>>2]=0,s[i+8>>2]=a,s[i+16>>2]=a,s[i+20>>2]=n,s[i>>2]=a,s[i+12>>2]=n,s[i+24>>2]=0,s[i+28>>2]=0,s[i+4>>2]=n,W(i,e,o)?(s[8960]=28,e=-1):(e=1,(0|t)==s[i+40>>2]&&(e=s[i+44>>2]!=(r>>>10|0))),R(a)}return y=i- -64|0,e}function Ie(e,t){var n,r=0,o=0,a=0,l=0;if(y=n=y-48|0,!((r=le(e))||(r=-26,t-1>>>0>1||(a=s[e+44>>2],r=s[e+48>>2],s[n>>2]=0,o=s[e+40>>2],s[n+28>>2]=r,s[n+12>>2]=-1,s[n+8>>2]=o,r=((o=a>>>0<(o=r<<3)>>>0?o:a)>>>0)/((a=r<<2)>>>0)|0,s[n+20>>2]=r,s[n+24>>2]=r<<2,s[n+16>>2]=u(r,a),r=s[e+52>>2],s[n+36>>2]=t,s[n+32>>2]=r,r=function(e,t){var n,r=0;return y=n=y-80|0,r=-25,!e|!t||(r=_(s[e+20>>2]<<3),s[e+4>>2]=r,r?(r=function(e,t){var n,r=0,o=0;y=n=y-16|0,o=-22;e:if(!(!e|!t)&&1024==(((r=t<<10)>>>0)/(t>>>0)|0)&&(t=_(12),s[e>>2]=t,t)){s[t>>2]=0,s[t+4>>2]=0,t=function(e,t){if(t>>>0>4294967168)e=48;else{if(!(t=function(e){var t=0,n=0,r=0,o=0,i=0,a=0;return e>>>0>=4294967168?(s[8960]=48,0):(e=_(76+(r=e>>>0<11?16:e+11&-8)|0))?(t=e-8|0,63&e?(o=(-8&(a=s[(i=e-4|0)>>2]))-(n=(e=(e=(e+63&-64)-8|0)-t>>>0>15?e:e- -64|0)-t|0)|0,3&a?(s[e+4>>2]=o|1&s[e+4>>2]|2,s[4+(o=e+o|0)>>2]=1|s[o+4>>2],s[i>>2]=n|1&s[i>>2]|2,s[e+4>>2]=1|s[e+4>>2],P(t,n)):(t=s[t>>2],s[e+4>>2]=o,s[e>>2]=t+n)):e=t,3&(t=s[e+4>>2])&&((n=-8&t)>>>0<=r+16>>>0||(s[e+4>>2]=r|1&t|2,t=e+r|0,r=n-r|0,s[t+4>>2]=3|r,s[4+(n=e+n|0)>>2]=1|s[n+4>>2],P(t,r))),e+8|0):0}(t)))return 48;s[e>>2]=t,e=0}return e}(n+12|0,r),s[8960]=t;t:{if(t)s[n+12>>2]=0;else if(t=s[n+12>>2])break t;R(s[e>>2]),s[e>>2]=0;break e}s[s[e>>2]>>2]=t,s[s[e>>2]+4>>2]=t,s[s[e>>2]+8>>2]=r,o=0}return y=n+16|0,o}(e,s[e+16>>2]))?At(e,s[t+56>>2]):(function(e,t,n){var r,o=0;r=o=y,y=o=o-448&-64,!e|!t||(st(o- -64|0,0,0,64),Jt(o+60|0,s[t+48>>2]),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,s[t+4>>2]),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,s[t+44>>2]),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,s[t+40>>2]),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,19),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,n),bn(o- -64|0,o+60|0,4,0),Jt(o+60|0,s[t+12>>2]),bn(o- -64|0,o+60|0,4,0),(n=s[t+8>>2])&&(bn(o- -64|0,n,s[t+12>>2],0),1&i[t+56|0]&&(ht(s[t+8>>2],s[t+12>>2]),s[t+12>>2]=0)),Jt(o+60|0,s[t+20>>2]),bn(o- -64|0,o+60|0,4,0),(n=s[t+16>>2])&&bn(o- -64|0,n,s[t+20>>2],0),Jt(o+60|0,s[t+28>>2]),bn(o- -64|0,o+60|0,4,0),(n=s[t+24>>2])&&(bn(o- -64|0,n,s[t+28>>2],0),2&c[t+56|0]&&(ht(s[t+24>>2],s[t+28>>2]),s[t+28>>2]=0)),Jt(o+60|0,s[t+36>>2]),bn(o- -64|0,o+60|0,4,0),(n=s[t+32>>2])&&bn(o- -64|0,n,s[t+36>>2],0),Mt(o- -64|0,e,64)),y=r}(n,t,s[e+36>>2]),ht(n- -64|0,8),function(e,t){var n,r=0,o=0,i=0;if(y=n=y-1024|0,s[t+28>>2])for(i=e+68|0,o=e- -64|0;Jt(o,0),Jt(i,r),j(n,1024,e,72),We(s[s[t>>2]+4>>2]+(u(s[t+24>>2],r)<<10)|0,n),Jt(o,1),j(n,1024,e,72),We(1024+(s[s[t>>2]+4>>2]+(u(s[t+24>>2],r)<<10)|0)|0,n),(r=r+1|0)>>>0>2];);ht(n,1024),y=n+1024|0}(n,e),ht(n,72),r=0):r=-22),y=n+80|0,r}(n,e))))){if(s[n+8>>2])for(;_e(n,l),(l=l+1|0)>>>0>2];);!function(e,t){var n,r=0,o=0;if(y=n=y-2048|0,!(!e|!t)){if(Qn(n+1024|0,(s[s[t>>2]+4>>2]+(s[t+24>>2]<<10)|0)-1024|0),d[t+28>>2]>=2)for(r=1;o=s[t+24>>2],ot(n+1024|0,(s[s[t>>2]+4>>2]+(o+u(r,o)<<10)|0)-1024|0),(r=r+1|0)>>>0>2];);!function(e,t){for(var n=0,r=0;ft((n=r<<3)+e|0,s[(n=t+n|0)>>2],s[n+4>>2]),128!=(0|(r=r+1|0)););}(n,n+1024|0),j(s[e>>2],s[e+4>>2],n,1024),ht(n+1024|0,1024),ht(n,1024),At(t,s[e+56>>2])}y=n+2048|0}(e,n),r=0}return y=n+48|0,r}function Ce(e,t,n,r,o,i,a,c,d,u,l,A){var f,h;return y=f=y+-64|0,(h=_(d))?(s[f+32>>2]=0,s[f+36>>2]=0,s[f+24>>2]=0,s[f+28>>2]=0,s[f+20>>2]=a,s[f+16>>2]=i,s[f+12>>2]=o,s[f+8>>2]=r,s[f+4>>2]=d,s[f>>2]=h,s[f+56>>2]=0,s[f+52>>2]=n,s[f+48>>2]=n,s[f+44>>2]=t,s[f+40>>2]=e,(n=Ie(f,A))?ht(h,d):!u|!l||!H(u,l,f,A)?(c&&q(c,h,d),ht(h,d),n=0):(ht(h,d),ht(u,l),n=-31),R(h)):n=-22,y=f- -64|0,n}function Ee(e,t,n,r,o,a){var s,d,l=0,A=0,f=0;return y=s=y-592|0,l=-1,function(e){var t=0,n=0,r=0,o=0,i=0;for(t=32,n=1;i=(r=c[(t=t-1|0)+e|0])-(o=c[t+3456|0])>>8&n|255&i,n&=65535+(r^o)>>>8,t;);return 0!=(0|i)}(d=e+32|0)&&(ve(e)||function(e){var t=0,n=0;for(n=127&(-1^c[e+31|0]),t=30;n=-1^c[e+t|0]|n,t=t-1|0;);return 1&(((255&n)-1&236-c[0|e])>>>8^-1)}(o)&&(ve(o)||pe(s+128|0,o)||(cn(s+384|0,a),Y(s+384|0,e,32,0),Y(s+384|0,o,32,0),Y(s+384|0,t,n,r),Nt(s+384|0,s+320|0),B(s+320|0),function(e,t,n,r){var o;y=o=y-2272|0,fe(o+2016|0,t),fe(o+1760|0,r),wt(o+480|0,n),jt(o+320|0,n),bt(o,o+320|0),Ye(o+320|0,o,o+480|0),bt(o+160|0,o+320|0),wt(t=o+640|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+800|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+960|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+1120|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+1280|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(t=o+1440|0,o+160|0),Ye(o+320|0,o,t),bt(o+160|0,o+320|0),wt(o+1600|0,o+160|0),xn(e),yn(e+40|0),yn(e+80|0),r=255;e:{for(;;){if(!(c[(n=r)+(o+2016|0)|0]|c[(o+1760|0)+n|0])){if(r=n-1|0,n)continue;break e}break}if(!((0|n)<0))for(;et(o+320|0,e),(0|(n=i[(t=n)+(o+2016|0)|0]))>=1?(bt(o+160|0,o+320|0),Ye(o+320|0,o+160|0,(o+480|0)+u((254&n)>>>1|0,160)|0)):(0|n)>-1||(bt(o+160|0,o+320|0),Ve(o+320|0,o+160|0,(o+480|0)+u((0-n&254)>>>1|0,160)|0)),(0|(n=i[t+(o+1760|0)|0]))>=1?(bt(o+160|0,o+320|0),ze(o+320|0,o+160|0,u((254&n)>>>1|0,120)+2272|0)):(0|n)>-1||(bt(o+160|0,o+320|0),Ze(o+320|0,o+160|0,u((0-n&254)>>>1|0,120)+2272|0)),St(e,o+320|0),n=t-1|0,(0|t)>0;);}y=o+2272|0}(s+8|0,s+320|0,s+128|0,d),ct(s+288|0,s+8|0),A=-1,f=_n(s+288|0,e),l=((s+288|0)==(0|e)?A:f)|Xe(e,s+288|0,32)))),y=s+592|0,l}function we(e,t,n,r){var o=0,i=0;e:if(s[t>>2])i=s[e+24>>2],o=s[e+20>>2],r=r?s[t+12>>2]+(i+(-1^o)|0)|0:(i-o|0)-!s[t+12>>2]|0,i=0,3!=(0|(t=c[t+8|0]))&&(i=u(o,t+1|0));else{if(!(o=c[t+8|0])){r=s[t+12>>2]-1|0,i=0;break e}if(o=u(o,s[e+20>>2]),t=s[t+12>>2],r){r=(t+o|0)-1|0,i=0;break e}r=o-!t|0,i=0}return t=i+(o=r-1|0)|0,fn(n,0,n,0),fn(r,0,C,0),function(e,t,n){var r=0,o=0,i=0,a=0,s=0,c=0,d=0,A=0,f=0;e:{t:{n:{r:{o:{i:{a:{s:{c:{if(o=t){if(!(r=n))break c;break s}return b=e-u((e>>>0)/(n>>>0)|0,n)|0,I=0,void(C=0)}if(!e)break a;break i}if(!((a=r-1|0)&r))break o;s=0-(a=(l(r)+33|0)-l(o)|0)|0;break n}return b=0,I=o,void(C=0)}if((r=32-l(o)|0)>>>0<31)break r;break t}if(b=e&a,I=0,1==(0|r))break e;return n=31&(e=r?31-l(r-1^r)|0:32),void(C=(63&e)>>>0>=32?0:t>>>n|0)}a=r+1|0,s=63-r|0}if(r=t,i=31&(o=63&a),o>>>0>=32?(o=0,i=r>>>i|0):(o=r>>>i|0,i=((1<>>i),r=31&(s&=63),s>>>0>=32?(t=e<>>32-r|t<>>31)-(A=n&(c=s-((o=o<<1|i>>>31)+(r>>>0>>0)|0)>>31))|0,o=o-(d>>>0>>0)|0,t=t<<1|e>>>31,e=f|e<<1,f=1&c,a=a-1|0;);return b=i,I=o,void(C=t<<1|e>>>31)}b=e,I=t,t=0}C=t}(t-(n=C)|0,(t>>>0>>0)-(t>>>0>>0)|0,s[e+24>>2]),C=I,b}function Be(e,t,n,r,o,i,a,s,c,d){var u;return y=u=y-352|0,kn(u+32|0,64,c,d),wn(u+96|0,u+32|0),ht(u+32|0,64),mn(u+96|0,i,a,s),mn(u+96|0,34688,0-a&15,0),mn(u+96|0,t,n,r),mn(u+96|0,34688,0-n&15,0),ft(u+24|0,a,s),mn(u+96|0,u+24|0,8,0),ft(u+24|0,n,r),mn(u+96|0,u+24|0,8,0),Bn(u+96|0,u),ht(u+96|0,256),o=Sn(u,o),ht(u,16),e&&(o?(ae(e,0,n),o=-1):(rt(e,t,n,r,c,1,d),o=0)),y=u+352|0,o}function _e(e,t){var n,r=0,o=0,a=0;if(y=n=y-32|0,!(!e|!s[e+28>>2]))for(s[n+16>>2]=t,r=1;;){if(i[n+24|0]=o,t=0,a=0,r)for(;s[n+28>>2]=0,r=s[n+28>>2],s[n+8>>2]=s[n+24>>2],s[n+12>>2]=r,s[n+20>>2]=t,r=s[n+20>>2],s[n>>2]=s[n+16>>2],s[n+4>>2]=r,$(e,n),(t=t+1|0)>>>0<(a=s[e+28>>2])>>>0;);if(r=a,4==(0|(o=o+1|0)))break}y=n+32|0}function Se(e,t,n,r,o,i,a,c,d,u,l){var A;return y=A=y-336|0,kn(A+16|0,64,u,l),wn(A+80|0,A+16|0),ht(A+16|0,64),mn(A+80|0,a,c,d),mn(A+80|0,34688,0-c&15,0),rt(e,r,o,i,u,1,l),mn(A+80|0,e,o,i),mn(A+80|0,34688,0-o&15,0),ft(A+8|0,c,d),mn(A+80|0,A+8|0,8,0),ft(A+8|0,o,i),mn(A+80|0,A+8|0,8,0),Bn(A+80|0,t),ht(A+80|0,256),n&&(s[n>>2]=16,s[n+4>>2]=0),y=A+336|0,0}function ke(e,t,n,r,o,i,a,s,c,d){var u;return y=u=y-352|0,An(u+32|0,c,d),wn(u+96|0,u+32|0),ht(u+32|0,64),mn(u+96|0,i,a,s),ft(u+24|0,a,s),mn(u+96|0,u+24|0,8,0),mn(u+96|0,t,n,r),ft(u+24|0,n,r),mn(u+96|0,u+24|0,8,0),Bn(u+96|0,u),ht(u+96|0,256),o=Sn(u,o),ht(u,16),e&&(o?(ae(e,0,n),o=-1):(Dt(e,t,n,r,c,d),o=0)),y=u+352|0,o}function Oe(e){var t=0,n=0,r=0;e:{t:if(3&(t=e)){if(!c[0|e])return 0;for(;;){if(!(3&(t=t+1|0)))break t;if(!c[0|t])break}break e}for(;n=t,t=t+4|0,!((-1^(r=s[n>>2]))&r-16843009&-2139062144););if(!(255&r))return n-e|0;for(;r=c[n+1|0],n=t=n+1|0,r;);}return t-e|0}function Qe(e,t){var n,r=0,o=0,i=0,a=0,d=0;e:if(!(((n=c[0|e])-48&255)>>>0>9)){for(o=n,r=e;;){if(a=r,i>>>0>429496729)break e;if((o=(255&o)-48|0)>>>0>(-1^(r=u(i,10)))>>>0)break e;if(i=r+o|0,!(((o=c[0|(r=a+1|0)])-48&255)>>>0<10))break}(0|e)==(0|r)|(48==(0|n)?(0|e)!=(0|a):0)||(s[t>>2]=i,d=r)}return d}function Re(e,t){var n,r,o,i,a,c,d,u,l;n=s[t+4>>2],r=s[t+8>>2],o=s[t+12>>2],i=s[t+16>>2],a=s[t+20>>2],c=s[t+24>>2],d=s[t+28>>2],u=s[t+32>>2],l=s[t+36>>2],s[e>>2]=0-s[t>>2],s[e+36>>2]=0-l,s[e+32>>2]=0-u,s[e+28>>2]=0-d,s[e+24>>2]=0-c,s[e+20>>2]=0-a,s[e+16>>2]=0-i,s[e+12>>2]=0-o,s[e+8>>2]=0-r,s[e+4>>2]=0-n}function Pe(e,t,n){var r=0;r=t<<8&16711680|t<<24,r|=255&(n<<8|t>>>24)|65280&(n<<24|t>>>8),t=-16777216&((255&n)<<24|t>>>8)|16711680&((16777215&n)<<8|t>>>24)|n>>>8&65280|n>>>24|0,i[0|e]=t,i[e+1|0]=t>>>8,i[e+2|0]=t>>>16,i[e+3|0]=t>>>24,t=r,i[e+4|0]=t,i[e+5|0]=t>>>8,i[e+6|0]=t>>>16,i[e+7|0]=t>>>24}function Ne(e,t,n){var r;r=e,n?(s[e+48>>2]=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,n=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24):(s[e+48>>2]=0,n=0),s[r+52>>2]=n,s[e+56>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,s[e+60>>2]=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24}function xe(e,t){var n,r,o,i,a,c,d,u,l;n=s[t+8>>2],r=s[t+12>>2],o=s[t+16>>2],i=s[t+20>>2],a=s[t+24>>2],c=s[t+28>>2],d=s[t>>2],u=s[t+4>>2],l=s[t+36>>2],s[e+32>>2]=s[t+32>>2],s[e+36>>2]=l,s[e+24>>2]=a,s[e+28>>2]=c,s[e+16>>2]=o,s[e+20>>2]=i,s[e+8>>2]=n,s[e+12>>2]=r,s[e>>2]=d,s[e+4>>2]=u}function De(e,t,n,r,o,i,a,d,u,l,A){var f;return y=f=y-48|0,s[f+8>>2]=0,s[f>>2]=0,s[f+4>>2]=0,J(f+16|0,l,A),A=c[l+16|0]|c[l+17|0]<<8|c[l+18|0]<<16|c[l+19|0]<<24,l=c[l+20|0]|c[l+21|0]<<8|c[l+22|0]<<16|c[l+23|0]<<24,s[f+4>>2]=A,s[f+8>>2]=l,function(e,t,n,r,o,i,a,c,d,u,l){var A;y=A=y-336|0,ln(A+16|0,64,u,l),wn(A+80|0,A+16|0),ht(A+16|0,64),mn(A+80|0,a,c,d),mn(A+80|0,34704,0-c&15,0),xt(e,r,o,i,u,1,l),mn(A+80|0,e,o,i),mn(A+80|0,34704,0-o&15,0),ft(A+8|0,c,d),mn(A+80|0,A+8|0,8,0),ft(A+8|0,o,i),mn(A+80|0,A+8|0,8,0),Bn(A+80|0,t),ht(A+80|0,256),n&&(s[n>>2]=16,s[n+4>>2]=0),y=A+336|0}(e,t,n,r,o,i,a,d,u,f,f+16|0),ht(f+16|0,32),y=f+48|0,0}function Te(e,t,n,r,o,i,a,d,u,l){var A;return y=A=y-48|0,s[A+8>>2]=0,s[A>>2]=0,s[A+4>>2]=0,J(A+16|0,u,l),l=c[u+16|0]|c[u+17|0]<<8|c[u+18|0]<<16|c[u+19|0]<<24,u=c[u+20|0]|c[u+21|0]<<8|c[u+22|0]<<16|c[u+23|0]<<24,s[A+4>>2]=l,s[A+8>>2]=u,e=function(e,t,n,r,o,i,a,s,c,d){var u;return y=u=y-352|0,ln(u+32|0,64,c,d),wn(u+96|0,u+32|0),ht(u+32|0,64),mn(u+96|0,i,a,s),mn(u+96|0,34704,0-a&15,0),mn(u+96|0,t,n,r),mn(u+96|0,34704,0-n&15,0),ft(u+24|0,a,s),mn(u+96|0,u+24|0,8,0),ft(u+24|0,n,r),mn(u+96|0,u+24|0,8,0),Bn(u+96|0,u),ht(u+96|0,256),o=Sn(u,o),ht(u,16),e&&(o?(ae(e,0,n),o=-1):(xt(e,t,n,r,c,1,d),o=0)),y=u+352|0,o}(e,t,n,r,o,i,a,d,A,A+16|0),ht(A+16|0,32),y=A+48|0,e}function Me(e){var t;return t=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,e=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,C=65280&(e<<24|t>>>8)|255&(e<<8|t>>>24)|t<<8&16711680|t<<24,-16777216&((255&e)<<24|t>>>8)|16711680&((16777215&e)<<8|t>>>24)|e>>>8&65280|e>>>24|0}function Ue(e,t,n,r,o,i,a,c,d,u,l){var A;return y=A=y-336|0,An(A+16|0,u,l),wn(A+80|0,A+16|0),ht(A+16|0,64),mn(A+80|0,a,c,d),ft(A+8|0,c,d),mn(A+80|0,A+8|0,8,0),Dt(e,r,o,i,u,l),mn(A+80|0,e,o,i),ft(A+8|0,o,i),mn(A+80|0,A+8|0,8,0),Bn(A+80|0,t),ht(A+80|0,256),n&&(s[n>>2]=16,s[n+4>>2]=0),y=A+336|0,0}function He(e,t,n,r){var o;if(y=o=y-192|0,!(!n|(t-1&255)>>>0>=64|(r-1&255)>>>0>=64))return a[o+130>>1]=257,i[o+129|0]=r,i[o+128|0]=t,Vt(o+128|4),ft(o+128|8,0,0),ae(o+144|0,0,48),ye(e,o+128|0),ae(r+o|0,0,128-r|0),oe(t=e,e=q(o,n,r),128,0),ht(e,128),y=e+192|0,0;zt(),A()}function je(e,t,n){s[e+48>>2]=n?c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24:0,s[e+52>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,s[e+56>>2]=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,s[e+60>>2]=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24}function Je(e,t,n,r,o,i,a){var c;return y=c=y-16|0,e=ae(e,0,128),a>>>0<2147483649&&!(r|i)?a>>>0>8191&&o|i?(pt(c,16),e=Ce(o,a>>>10|0,1,t,n,c,16,0,32,e,128,2)?-1:0):(s[8960]=28,e=-1):(s[8960]=22,e=-1),y=c+16|0,e}function Fe(e){var t=0;return(0-(t=e+4&(e+65488>>>8^-1)&(57-e>>>8^-1)&255|((t=e-65|0)>>>8^-1)&t&(90-e>>>8^-1)&255|e+185&(e+65439>>>8^-1)&(122-e>>>8^-1)&255|63&(1+(16288^e)>>>8^-1)|62&(1+(16338^e)>>>8^-1))>>>8^-1)&1+(65470^e)>>>8&255|t}function Ge(e){var t=0;return(0-(t=e+4&(e+65488>>>8^-1)&(57-e>>>8^-1)&255|((t=e-65|0)>>>8^-1)&t&(90-e>>>8^-1)&255|e+185&(e+65439>>>8^-1)&(122-e>>>8^-1)&255|63&(1+(16336^e)>>>8^-1)|62&(1+(16340^e)>>>8^-1))>>>8^-1)&1+(65470^e)>>>8&255|t}function Le(e,t){var n,r,o=0,a=0,s=0,c=0;for(y=n=y-16|0,o=10;c=o,s=(t>>>0)/10|0,i[0|(a=(o=o-1|0)+(n+6|0)|0)]=t-u(s,10)|48,!(t>>>0<10)&&(t=s,o););r=q(t=e,a,e=11-c|0)+e|0,i[0|r]=0,y=n+16|0}function qe(e,t,n){var r=0,o=0,i=0;if(!n)return 0;e:if(r=c[0|e]){for(;;){if((0|(o=c[0|t]))==(0|r)&&!(!(n=n-1|0)|!o)){if(t=t+1|0,r=c[e+1|0],e=e+1|0,r)continue;break e}break}i=r}return(255&i)-c[0|t]|0}function Ye(e,t,n){var r,o,i,a=0;y=o=y-48|0,me(e,a=t+40|0,t),ge(r=e+40|0,a,t),S(a=e+80|0,e,n),S(r,r,n+40|0),S(i=e+120|0,n+120|0,t+120|0),S(e,t+80|0,n+80|0),me(o,e,e),ge(e,a,r),me(r,a,r),me(a,o,i),ge(i,o,i),y=o+48|0}function Ve(e,t,n){var r,o,i,a=0;y=o=y-48|0,me(e,a=t+40|0,t),ge(r=e+40|0,a,t),S(a=e+80|0,e,n+40|0),S(r,r,n),S(i=e+120|0,n+120|0,t+120|0),S(e,t+80|0,n+80|0),me(o,e,e),ge(e,a,r),me(r,a,r),ge(a,o,i),me(i,o,i),y=o+48|0}function We(e,t){for(var n=0,r=0,o=0,i=0;o=(n=r<<3)+e|0,i=c[0|(n=t+n|0)]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,n=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,s[o>>2]=i,s[o+4>>2]=n,128!=(0|(r=r+1|0)););}function Ke(e,t,n){var r;if(s[12+(r=y-16|0)>>2]=e,s[r+8>>2]=t,t=0,s[r+4>>2]=0,(0|n)>=1)for(;s[r+4>>2]=s[r+4>>2]|c[s[r+8>>2]+t|0]^c[s[r+12>>2]+t|0],(0|n)!=(0|(t=t+1|0)););return(s[r+4>>2]-1>>>8&1)-1|0}function Ze(e,t,n){var r,o,i,a=0;y=o=y-48|0,me(e,a=t+40|0,t),ge(r=e+40|0,a,t),S(a=e+80|0,e,n+40|0),S(r,r,n),S(i=e+120|0,n+80|0,t+120|0),me(o,t=t+80|0,t),ge(e,a,r),me(r,a,r),ge(a,o,i),me(i,o,i),y=o+48|0}function ze(e,t,n){var r,o,i,a=0;y=o=y-48|0,me(e,a=t+40|0,t),ge(r=e+40|0,a,t),S(a=e+80|0,e,n),S(r,r,n+40|0),S(i=e+120|0,n+80|0,t+120|0),me(o,t=t+80|0,t),ge(e,a,r),me(r,a,r),me(a,o,i),ge(i,o,i),y=o+48|0}function Xe(e,t,n){var r;if(s[12+(r=y-16|0)>>2]=e,s[r+8>>2]=t,t=0,i[r+7|0]=0,n)for(;i[r+7|0]=c[r+7|0]|c[s[r+8>>2]+t|0]^c[s[r+12>>2]+t|0],(0|n)!=(0|(t=t+1|0)););return(c[r+7|0]-1>>>8&1)-1|0}function $e(e,t,n){var r,o=0,a=0;if(y=r=y-16|0,i[r+15|0]=0,a=-1,!(0|Vn[s[8950]](e,t,n))){for(;i[r+15|0]=c[e+o|0]|c[r+15|0],32!=(0|(o=o+1|0)););a=0-(c[r+15|0]-1>>>8&1)|0}return y=r+16|0,a}function et(e,t){var n,r,o,i,a;y=r=y-48|0,k(e,t),k(n=e+80|0,a=t+40|0),function(e,t){var n,r,o,i,a,c,d,l,A,f,h,p,g,m,v,y,b,I,E,w,B,_,S,k,O,Q,R,P,N,x,D,T,M,U,H,j,J,F,G=0,L=0,q=0,Y=0,V=0,W=0,K=0,Z=0,z=0,X=0,$=0,ee=0,te=0,ne=0,re=0,oe=0,ie=0,ae=0,se=0,ce=0;a=G=(V=s[t+12>>2])<<1,c=G>>31,d=G=(z=s[t+4>>2])<<1,G=fn(a,c,G,n=G>>31),q=C,L=G,_=G=ne=s[t+8>>2],Y=fn(G,X=G>>31,G,X),G=C+q|0,G=(L=L+Y|0)>>>0>>0?G+1|0:G,Y=L,r=L=re=s[t+16>>2],l=L>>31,A=L=(oe=s[t>>2])<<1,q=fn(r,l,L,o=L>>31),G=C+G|0,G=(L=Y+q|0)>>>0>>0?G+1|0:G,K=L,q=s[t+28>>2],E=L=u(q,38),N=q,Y=fn(L,y=L>>31,q,S=q>>31),G=C+G|0,G=(L=K+Y|0)>>>0>>0?G+1|0:G,W=L,K=s[t+32>>2],Z=fn(h=L=u(K,19),p=L>>31,L=(Y=s[t+24>>2])<<1,L>>31),L=C+G|0,L=Z>>>0>($=W+Z|0)>>>0?L+1|0:L,W=$,te=s[t+36>>2],f=G=u(te,38),i=G>>31,b=t=($=s[t+20>>2])<<1,Z=fn(G,i,t,m=t>>31),t=C+L|0,k=(G=W+Z|0)<<1,U=G=(G>>>0>>0?t+1|0:t)<<1|G>>>31,x=t=k+33554432|0,H=G=t>>>0<33554432?G+1|0:G,t=G>>26,G=(67108863&G)<<6|x>>>26,L=fn(d,n,r,l),Z=C,W=G,I=G=ne<<1,ie=V,V=fn(G,v=G>>31,V,O=V>>31),G=C+Z|0,G=(L=V+L|0)>>>0>>0?G+1|0:G,ne=$,V=(Z=fn($,w=$>>31,A,o))+L|0,L=C+G|0,L=V>>>0>>0?L+1|0:L,re=V,D=G=q<<1,V=fn(h,p,G,Q=G>>31),G=C+L|0,G=(q=re+V|0)>>>0>>0?G+1|0:G,L=q,V=Y,q=fn(f,i,Y,g=Y>>31),G=C+G|0,G=(L=L+q|0)>>>0>>0?G+1|0:G,q=L,t=t+(L=G<<1|L>>>31)|0,ae=G=W+(q<<=1)|0,G=G>>>0>>0?t+1|0:t,j=t=ae+16777216|0,t=(33554431&(G=t>>>0<16777216?G+1|0:G))<<7|t>>>25,q=G>>25,G=fn(a,c,ie,O),L=C,W=t,t=(Z=fn(r,l,I,v))+G|0,G=C+L|0,G=t>>>0>>0?G+1|0:G,L=fn(d,n,b,m),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(Z=fn(A,o,Y,g))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,Z=K,K=fn(h,p,K,B=K>>31),G=C+t|0,G=(L=K+L|0)>>>0>>0?G+1|0:G,t=(K=fn(f,i,D,Q))+L|0,L=C+G|0,t=((G=t)>>>0>>0?L+1|0:L)<<1|G>>>31,K=G<<1,G=t+q|0,G=(L=W+K|0)>>>0>>0?G+1|0:G,se=L=(t=L)+33554432|0,q=G=L>>>0<33554432?G+1|0:G,G=-67108864&L,s[e+24>>2]=t-G,K=e,t=fn(t=u($,38),t>>31,$,w),G=C,W=t,$=fn(t=oe,L=t>>31,t,L),L=C+G|0,L=(t=W+$|0)>>>0<$>>>0?L+1|0:L,G=t,ee=t=u(Y,19),R=t>>31,T=t=r<<1,t=G+(Y=fn(ee,R,t,P=t>>31))|0,G=C+L|0,G=t>>>0>>0?G+1|0:G,L=fn(a,c,E,y),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(Y=fn(h,p,I,v))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,Y=fn(d,n,f,i),G=C+t|0,J=G=((t=L=Y+L|0)>>>0>>0?G+1|0:G)<<1|t>>>31,oe=t=33554432+($=t<<1)|0,re=L=t>>>0<33554432?G+1|0:G,t=(67108863&L)<<6|t>>>26,Y=L>>26,G=fn(ee,R,b,m),L=C,ce=t,t=(z=fn(A,o,W=z,M=W>>31))+G|0,G=C+L|0,G=t>>>0>>0?G+1|0:G,L=(z=fn(r,l,E,y))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,z=fn(h,p,a,c),G=C+t|0,G=(L=z+L|0)>>>0>>0?G+1|0:G,t=(z=fn(f,i,_,X))+L|0,L=C+G|0,t=((G=t)>>>0>>0?L+1|0:L)<<1|G>>>31,z=G<<1,G=t+Y|0,G=(L=ce+z|0)>>>0>>0?G+1|0:G,z=L,(t=L+16777216|0)>>>0<16777216&&(G=G+1|0),ce=t,L=t,t=G>>25,G=(33554431&G)<<7|L>>>25,Y=t,t=fn(A,o,_,X),L=C,F=G,W=fn(d,n,W,M),G=C+L|0,G=(t=W+t|0)>>>0>>0?G+1|0:G,W=fn(ee,R,V,g),L=C+G|0,L=(t=W+t|0)>>>0>>0?L+1|0:L,W=fn(b,m,E,y),G=C+L|0,G=(t=W+t|0)>>>0>>0?G+1|0:G,L=fn(h,p,T,P),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(W=fn(f,i,a,c))+t|0,t=C+G|0,G=(G=(t=L>>>0>>0?t+1|0:t)<<1|L>>>31)+Y|0,L=G=(t=F+(L<<=1)|0)>>>0>>0?G+1|0:G,W=G=t+33554432|0,Y=L=G>>>0<33554432?L+1|0:L,G&=-67108864,s[K+8>>2]=t-G,t=fn(I,v,ne,w),L=C,G=(ee=fn(r,l,a,c))+t|0,t=C+L|0,t=G>>>0>>0?t+1|0:t,L=(ee=fn(d,n,V,g))+G|0,G=C+t|0,G=L>>>0>>0?G+1|0:G,t=(ee=fn(A,o,N,S))+L|0,L=C+G|0,L=t>>>0>>0?L+1|0:L,ee=fn(f,i,Z,B),G=C+L|0,G=(G=(G=(t=ee+t|0)>>>0>>0?G+1|0:G)<<1|t>>>31)+(L=q>>26)|0,L=t=(q=(67108863&q)<<6|se>>>26)+(t<<1)|0,t=G=t>>>0>>0?G+1|0:G,se=G=L+16777216|0,q=t=G>>>0<16777216?t+1|0:t,t=-33554432&G,s[K+28>>2]=L-t,t=fn(A,o,ie,O),G=C,L=fn(d,n,_,X),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=fn(V,g,E,y),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(X=fn(h,p,b,m))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,G=(X=fn(f,i,r,l))+L|0,L=C+t|0,t=G,G=(G>>>0>>0?L+1|0:L)<<1|G>>>31,L=t<<1,G=(t=Y>>26)+G|0,G=(L=L+(Y=(67108863&Y)<<6|W>>>26)|0)>>>0>>0?G+1|0:G,ie=L=(t=L)+16777216|0,Y=G=L>>>0<16777216?G+1|0:G,G=-33554432&L,s[K+12>>2]=t-G,X=e,t=fn(V,g,I,v),G=C,L=fn(r,l,r,l),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=fn(a,c,b,m),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=fn(d,n,D,Q),G=C+G|0,G=(t=L+t|0)>>>0>>0?G+1|0:G,L=(K=fn(A,o,Z,B))+t|0,t=C+G|0,t=L>>>0>>0?t+1|0:t,G=(te=fn(f,i,K=te,W=K>>31))+L|0,L=C+t|0,e=(t=G)<<1,G=(t=q>>25)+(G=(G>>>0>>0?L+1|0:L)<<1|G>>>31)|0,G=(L=e+(q=(33554431&q)<<7|se>>>25)|0)>>>0>>0?G+1|0:G,te=L=(t=L)+33554432|0,q=G=L>>>0<33554432?G+1|0:G,G=-67108864&L,s[X+32>>2]=t-G,G=Y>>25,L=(Y=(33554431&Y)<<7|ie>>>25)+(k-(t=-67108864&x)|0)|0,t=G+(U-((t>>>0>k>>>0)+H|0)|0)|0,G=t=L>>>0>>0?t+1|0:t,Y=t=L+33554432|0,t=((67108863&(G=t>>>0<33554432?G+1|0:G))<<6|t>>>26)+(ae=ae-(-33554432&j)|0)|0,s[X+20>>2]=t,t=-67108864&Y,s[X+16>>2]=L-t,t=fn(a,c,V,g),L=C,G=(V=fn(ne,w,T,P))+t|0,t=C+L|0,t=G>>>0>>0?t+1|0:t,L=(V=fn(I,v,N,S))+G|0,G=C+t|0,G=L>>>0>>0?G+1|0:G,t=(V=fn(d,n,Z,B))+L|0,L=C+G|0,L=t>>>0>>0?L+1|0:L,V=fn(A,o,K,W),G=C+L|0,G=(G=(G=(t=V+t|0)>>>0>>0?G+1|0:G)<<1|t>>>31)+(L=q>>26)|0,G=(t=(q=(67108863&q)<<6|te>>>26)+(t<<1)|0)>>>0>>0?G+1|0:G,L=t,q=t,t=G,t=(G=L+16777216|0)>>>0<16777216?t+1|0:t,L=-33554432&G,s[X+36>>2]=q-L,Y=z-(-33554432&ce)|0,t=(G=fn((33554431&t)<<7|G>>>25,t>>25,19,0))+($-(L=-67108864&oe)|0)|0,L=C+(J-((L>>>0>$>>>0)+re|0)|0)|0,L=t>>>0>>0?L+1|0:L,G=t,t=L,t=((67108863&(t=(L=G+33554432|0)>>>0<33554432?t+1|0:t))<<6|L>>>26)+Y|0,s[X+4>>2]=t,e=-67108864&L,s[X>>2]=G-e}(i=e+120|0,t+80|0),me(o=e+40|0,t,a),k(r,o),me(o,n,e),ge(n,n,e),ge(e,r,o),ge(i,i,n),y=r+48|0}function tt(e){var t,n;return(e=(t=s[8943])+(n=e+3&-4)|0)>>>0<=t>>>0&&(0|n)>=1||e>>>0>Wn()<<16>>>0&&!(0|v(0|e))?(s[8960]=48,-1):(s[8943]=e,t)}function nt(e,t){var n;return y=n=y+-64|0,(t-1&255)>>>0>=64&&(zt(),A()),i[n+3|0]=1,i[n+1|0]=0,i[n+2|0]=1,i[0|n]=t,Vt(4|n),ft(8|n,0,0),ae(n+16|0,0,48),ye(e,n),y=n- -64|0,0}function rt(e,t,n,r,o,i,a){var s=0,c=0;s=r,1==(((s=(c=n+63|0)>>>0<63?s+1|0:s)>>>6|0)+(0!=(0|(s=(63&s)<<26|c>>>6)))|0)&(c=0-s|0)>>>0>>0&&(zt(),A()),xt(e,t,n,r,o,i,a)}function ot(e,t){for(var n=0,r=0,o=0,i=0;r=(n=o<<3)+e|0,i=s[(n=t+n|0)>>2],n=s[r+4>>2]^s[n+4>>2],s[r>>2]=s[r>>2]^i,s[r+4>>2]=n,128!=(0|(o=o+1|0)););}function it(e){var t,n;return 95&(1+(32704^e)>>>8^-1)|45&(1+(16321^e)>>>8^-1)|(t=e+65510>>>8&255)&e+65|(n=e+65484>>>8|0)&e+71&(255^t)|e+252&e+65474>>>8&(-1^n)&255}function at(e){var t,n;return 47&(1+(16320^e)>>>8^-1)|43&(1+(16321^e)>>>8^-1)|(t=e+65510>>>8&255)&e+65|(n=e+65484>>>8|0)&e+71&(255^t)|e+252&e+65474>>>8&(-1^n)&255}function st(e,t,n,r){var o=0;o=-1;e:if(!(n>>>0>64|r-1>>>0>63)){t:{if(!n||!t){if(!nt(e,255&r))break t;break e}if(He(e,255&r,t,255&n))break e}o=0}return o}function ct(e,t){var n,r,o;y=n=y-144|0,K(n+96|0,t+80|0),S(n+48|0,t,n+96|0),S(n,t+40|0,n+96|0),re(e,n),r=e,o=Gt(n+48|0)<<7^c[e+31|0],i[r+31|0]=o,y=n+144|0}function dt(e,t){var n,r=0;if(i[15+(n=y-16|0)|0]=0,t)for(;i[n+15|0]=c[e+r|0]|c[n+15|0],(0|(r=r+1|0))!=(0|t););return c[n+15|0]-1>>>8&1}function ut(e,t,n,r){var o;return r=t+r|0,r=(o=e+n|0)>>>0>>0?r+1|0:r,n=fn(e<<1&-2,1&(t=t<<1|e>>>31),n,0),e=C+r|0,C=e=(t=n+o|0)>>>0>>0?e+1|0:e,t}function lt(e,t,n){var r,o=0;if(r=n>>>3|0)for(n=0;Pe((o=n<<3)+e|0,s[(o=t+o|0)>>2],s[o+4>>2]),(0|r)!=(0|(n=n+1|0)););}function At(e,t){var n=0;!function(e,t){t&&((t=s[e>>2])&&ht(s[t+4>>2],s[e+16>>2]<<10),(t=s[e+4>>2])&&ht(t,s[e+20>>2]<<3))}(e,4&t),R(s[e+4>>2]),s[e+4>>2]=0,(t=s[e>>2])&&(n=s[t>>2])&&R(n),R(t),s[e>>2]=0}function ft(e,t,n){i[0|e]=t,i[e+1|0]=t>>>8,i[e+2|0]=t>>>16,i[e+3|0]=t>>>24,i[e+4|0]=n,i[e+5|0]=n>>>8,i[e+6|0]=n>>>16,i[e+7|0]=n>>>24}function ht(e,t){var n;if(s[12+(n=y-16|0)>>2]=e,t)for(e=0;i[s[n+12>>2]+e|0]=0,(0|t)!=(0|(e=e+1|0)););}function pt(e,t){e|=0;var n=0,r=0,o=0;if(t|=0)for(;r=e+n|0,o=Ot(),i[0|r]=o,(0|(n=n+1|0))!=(0|t););}function gt(e,t,n,r,o){var i,a;return e|=0,t|=0,n|=0,r|=0,y=i=(a=y)-128&-64,te(i,o|=0),X(i,t,n,r),Z(i,e),y=a,0}function mt(e){var t=0,n=0,r=0;for(t=1;t=c[0|(r=e+n|0)]+t|0,i[0|r]=t,t=t>>>8|0,4!=(0|(n=n+1|0)););}function vt(e,t,n,r,o,i,a,s){var c,d=0;return y=c=y-32|0,d=-1,Kt(c,a,s)||(d=on(e,t,n,r,o,i,c),ht(c,32)),y=c+32|0,d}function yt(e,t,n,r,o,i,a,s){var c,d=0;return y=c=y-32|0,d=-1,Kt(c,a,s)||(d=an(e,t,n,r,o,i,c),ht(c,32)),y=c+32|0,d}function bt(e,t){var n,r,o;S(e,t,n=t+120|0),S(e+40|0,r=t+40|0,o=t+80|0),S(e+80|0,o,n),S(e+120|0,t,r)}function It(e,t,n,r,o,i,a){return!r&n>>>0>=16|r?yt(e,t+16|0,t,n-16|0,r-(n>>>0<16)|0,o,i,a):-1}function Ct(e,t){for(var n=0,r=0;i[0|(r=e+n|0)]=c[0|r]^c[t+n|0],8!=(0|(n=n+1|0)););}function Et(e,t,n){var r,o;y=r=(o=y)-384&-64,Lt(r,0,0,24),vn(r,t,32,0),vn(r,n,32,0),Wt(r,e,24),y=o}function wt(e,t){var n;me(e,n=t+40|0,t),ge(e+40|0,n,t),xe(e+80|0,t+80|0),S(e+120|0,t+120|0,2224)}function Bt(e,t,n,r,o,i,a){return t-1>>>0>63|a>>>0>64?-1:function(e,t,n,r,o,i,a){var s,c=0;if(s=c=y,y=c=c-384&-64,!(!e|(r-1&255)>>>0>=64|(o|i?!t:0)|a>>>0>=65|(a?!n:0)))return a?He(c,r,n,a):nt(c,r),oe(c,t,o,i),T(c,e,r),y=s,0;zt(),A()}(e,n,i,255&t,r,o,255&a)}function _t(e,t,n,r,o,i,a){return!r&n>>>0>=4294967280|r&&(zt(),A()),vt(e+16|0,e,t,n,r,o,i,a)}function St(e,t){var n;S(e,t,n=t+120|0),S(e+40|0,t+40|0,t=t+80|0),S(e+80|0,t,n)}function kt(e){var t;return t=c[0|e]|c[e+1|0]<<8,e=c[e+2|0],C=e>>>16|0,t|e<<16}function Ot(){var e,t;return y=e=y-16|0,i[e+15|0]=0,t=0|h(1024,e+15|0,0),y=e+16|0,0|t}function Qt(e,t,n,r,o){var a;return y=a=y-416|0,function(e,t){var n,r=0,o=0;for(y=n=y-192|0,Tt(e),ae(n- -64|0,54,128),i[n+64|0]=54^c[0|t],r=1;i[0|(o=(n- -64|0)+r|0)]=c[0|o]^c[t+r|0],32!=(0|(r=r+1|0)););for(Y(e,n- -64|0,128,0),Tt(e=e+208|0),ae(n- -64|0,92,128),i[n+64|0]=92^c[0|t],r=1;i[0|(o=(n- -64|0)+r|0)]=c[0|o]^c[t+r|0],32!=(0|(r=r+1|0)););Y(e,n- -64|0,128,0),ht(n- -64|0,128),ht(n,64),y=n+192|0}(a,o),Y(a,t,n,r),function(e,t){var n,r=0;y=n=y+-64|0,function(e,t){var n;y=n=y+-64|0,Nt(e,n),Y(e=e+208|0,n,64,0),Nt(e,t),ht(n,64),y=n- -64|0}(e,n),r=s[n+28>>2],e=s[n+24>>2],i[t+24|0]=e,i[t+25|0]=e>>>8,i[t+26|0]=e>>>16,i[t+27|0]=e>>>24,i[t+28|0]=r,i[t+29|0]=r>>>8,i[t+30|0]=r>>>16,i[t+31|0]=r>>>24,r=s[n+20>>2],e=s[n+16>>2],i[t+16|0]=e,i[t+17|0]=e>>>8,i[t+18|0]=e>>>16,i[t+19|0]=e>>>24,i[t+20|0]=r,i[t+21|0]=r>>>8,i[t+22|0]=r>>>16,i[t+23|0]=r>>>24,r=s[n+12>>2],e=s[n+8>>2],i[t+8|0]=e,i[t+9|0]=e>>>8,i[t+10|0]=e>>>16,i[t+11|0]=e>>>24,i[t+12|0]=r,i[t+13|0]=r>>>8,i[t+14|0]=r>>>16,i[t+15|0]=r>>>24,r=s[n+4>>2],e=s[n>>2],i[0|t]=e,i[t+1|0]=e>>>8,i[t+2|0]=e>>>16,i[t+3|0]=e>>>24,i[t+4|0]=r,i[t+5|0]=r>>>8,i[t+6|0]=r>>>16,i[t+7|0]=r>>>24,y=n- -64|0}(a,e),y=a+416|0,0}function Rt(e,t,n,r){var o;return y=o=y-208|0,Tt(o),Y(o,t,n,r),Nt(o,e),y=o+208|0,0}function Pt(e,t){var n=0;return(-1>>>(n=31&t)&e)<>>e}function Nt(e,t){var n;y=n=y-704|0,function(e,t){var n,r=0;(n=s[e+72>>2]>>>3&127)>>>0<=111?q(80+(e+n|0)|0,35424,112-n|0):(q((r=e+80|0)+n|0,35424,128-n|0),w(e,r,t,t+640|0),ae(r,0,112)),lt(e+192|0,e- -64|0,16),w(e,e+80|0,t,t+640|0)}(e,n),lt(t,e,64),ht(n,704),ht(e,208),y=n+704|0}function xt(e,t,n,r,o,i,a){1==(0|r)|r>>>0>1&&(zt(),A()),Vn[s[8957]](e,t,n,r,o,i,a)}function Dt(e,t,n,r,o,i){1==(0|r)|r>>>0>1&&(zt(),A()),Vn[s[8956]](e,t,n,r,o,1,0,i)}function Tt(e){s[e+64>>2]=0,s[e+68>>2]=0,s[e+72>>2]=0,s[e+76>>2]=0,q(e,34720,64)}function Mt(e,t,n){return n>>>0>=256&&(f(2016,2036,107,2089),A()),T(e,t,255&n)}function Ut(){var e;y=e=y-16|0,i[e+15|0]=0,h(1062,e+15|0,0),y=e+16|0}function Ht(e){var t;return y=t=y-32|0,re(t,e),e=dt(t,32),y=t+32|0,e}function jt(e,t){var n;y=n=y-128|0,function(e,t){xe(e,t),xe(e+40|0,t+40|0),xe(e+80|0,t+80|0)}(n+8|0,t),et(e,n+8|0),y=n+128|0}function Jt(e,t){i[0|e]=t,i[e+1|0]=t>>>8,i[e+2|0]=t>>>16,i[e+3|0]=t>>>24}function Ft(e,t,n){Ae(e,t,n),Ae(e+40|0,t+40|0,n),Ae(e+80|0,t+80|0,n)}function Gt(e){var t;return y=t=y-32|0,re(t,e),y=t+32|0,1&i[0|t]}function Lt(e,t,n,r){return 0|st(e|=0,t|=0,n|=0,r|=0)}function qt(e){i[e+32|0]=1,i[e+33|0]=0,i[e+34|0]=0,i[e+35|0]=0}function Yt(e){s[e>>2]=0,s[e+4>>2]=0,s[e+8>>2]=0,s[e+12>>2]=0}function Vt(e){i[0|e]=0,i[e+1|0]=0,i[e+2|0]=0,i[e+3|0]=0}function Wt(e,t,n){return 0|Mt(e|=0,t|=0,n|=0)}function Kt(e,t,n){return 0|function(e,t,n){var r,o=0;return y=r=y-32|0,o=-1,$e(r,n,t)||(o=G(e,35552,r)),y=r+32|0,o}(e|=0,t|=0,n|=0)}function Zt(e,t,n){return 0|$e(e|=0,t|=0,n|=0)}function zt(){var e;(e=s[9105])&&Vn[0|e](),p(),A()}function Xt(e){xn(e),yn(e+40|0),yn(e+80|0),xn(e+120|0)}function $t(e,t,n,r,o,i){Vn[s[8953]](e,t,n,r,o,0,0,i)}function en(e,t,n,r,o,i){Vn[s[8953]](e,t,n,r,o,1,0,i)}function tn(e,t){return e|=0,pt(t|=0,32),0|gn(e,t)}function nn(e,t){return e=function(e,t){var n=0,r=0;e:{if(r=255&t){if(3&e)for(;;){if(!(n=c[0|e])|(0|n)==(255&t))break e;if(!(3&(e=e+1|0)))break}t:if(!((-1^(n=s[e>>2]))&n-16843009&-2139062144))for(r=u(r,16843009);;){if((-1^(n^=r))&n-16843009&-2139062144)break t;if(n=s[e+4>>2],e=e+4|0,n-16843009&(-1^n)&-2139062144)break}for(;(r=c[0|(n=e)])&&(e=n+1|0,(0|r)!=(255&t)););return n}return Oe(e)+e|0}return e}(e,t),c[0|e]==(255&t)?e:0}function rn(e,t,n,r,o,i){return L(e,t,n,r,o,i,0),0}function on(e,t,n,r,o,i,a){return ce(e,t,n,r,o,i,a)}function an(e,t,n,r,o,i,a){return ue(e,t,n,r,o,i,a)}function sn(e,t,n,r,o,i,a){return Bt(e,t,n,r,o,i,a)}function cn(e,t){Tt(e),t&&Y(e,35728,34,0)}function dn(e,t,n,r,o){return Ee(e,t,n,r,o,0)}function un(e,t){return 0|gn(e|=0,t|=0)}function ln(e,t,n,r){Vn[s[8955]](e,t,0,n,r)}function An(e,t,n){Vn[s[8954]](e,64,0,t,n)}function fn(e,t,n,r){return function(e,t,n,r){var o,i,a,s,c=0,d=0;return s=u(c=n>>>16|0,d=e>>>16|0),c=(65535&(d=((a=u(o=65535&n,i=65535&e))>>>16|0)+u(d,o)|0))+u(c,i)|0,e=(u(t,n)+s|0)+u(e,r)+(d>>>16)+(c>>>16)|0,C=e,65535&a|c<<16}(e,t,n,r)}function hn(e,t){return(255&(e^t))-1>>>31|0}function pn(e,t,n){!function(e,t,n){var r,o;y=r=y-128|0,yn(e),yn(e+40|0),xn(e+80|0),Ft(e,t,hn(n=n-((0-(o=(128&n)>>>7|0)&n)<<1)<<24>>24,1)),Ft(e,t+120|0,hn(n,2)),Ft(e,t+240|0,hn(n,3)),Ft(e,t+360|0,hn(n,4)),Ft(e,t+480|0,hn(n,5)),Ft(e,t+600|0,hn(n,6)),Ft(e,t+720|0,hn(n,7)),Ft(e,t+840|0,hn(n,8)),xe(r+8|0,e+40|0),xe(r+48|0,e),Re(r+88|0,e+80|0),Ft(e,r+8|0,o),y=r+128|0}(e,u(t,960)+3488|0,n)}function gn(e,t){return 0|Vn[s[8951]](e,t)}function mn(e,t,n,r){Vn[s[8948]](e,t,n,r)}function vn(e,t,n,r){return bn(e,t,n,r)}function yn(e){s[e>>2]=1,ae(e+4|0,0,36)}function bn(e,t,n,r){return oe(e,t,n,r)}function In(e,t,n){return function(e,t,n){var r=0,o=0,i=0,a=0;return r=31&(i=a=63&n),i>>>0>=32?r=-1>>>r|0:(o=-1>>>r|0,r=(1<>>r),i=r&e,r=t&o,o=31&a,a>>>0>=32?(r=i<>>32-o|r<>>0>=32?(r=-1<>>32-n|-1<>>0>=32?(n=0,e=r>>>t|0):(n=r>>>t|0,e=((1<>>t),C=n|i,e|a}(e,t,n)}function Cn(e,t,n){return function(e,t,n){var r=0,o=0,i=0,a=0,s=0;return r=31&(a=63&n),a>>>0>=32?(o=-1<>>32-r|-1<>>0>=32?(o=0,a=r>>>i|0):(o=r>>>i|0,a=((1<>>i),s=o,i=31&(r=0-n&63),r>>>0>=32?(o=0,n=-1>>>i|0):(o=-1>>>i|0,n=(1<>>i),e&=n,t&=o,o=31&r,r>>>0>=32?(n=e<>>32-o|t<>>0<18,N=N+2|0,O;);Jt(e,n+1634760805|0),Jt(e+4|0,y+r|0),Jt(e+8|0,b+o|0),Jt(e+12|0,Q+i|0),Jt(e+16|0,I+a|0),Jt(e+20|0,k+857760878|0),Jt(e+24|0,C+A|0),Jt(e+28|0,E+f|0),Jt(e+32|0,w+h|0),Jt(e+36|0,S+p|0),Jt(e+40|0,t+2036477234|0),Jt(e+44|0,m+s|0),Jt(e+48|0,g+d|0),Jt(e+52|0,v+u|0),Jt(e+56|0,_+l|0),Jt(e+60|0,B+1797285236|0)}(e,t,n)}function Nn(e){ae(e,0,1024)}function xn(e){ae(e,0,40)}function Dn(){return 16}function Tn(){return 32}function Mn(){return 24}function Un(){return-17}function Hn(){return 64}function jn(){return 1}function Jn(){return 2}function Fn(){return 8}function Gn(){return 0}function Ln(){return-1}function qn(){return 3}o(t=c,1024,"InsgcmV0dXJuIE1vZHVsZS5nZXRSYW5kb21WYWx1ZSgpOyB9IgB7IGlmIChNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPT09IHVuZGVmaW5lZCkgeyB0cnkgeyB2YXIgd2luZG93XyA9ICdvYmplY3QnID09PSB0eXBlb2Ygd2luZG93ID8gd2luZG93IDogc2VsZjsgdmFyIGNyeXB0b18gPSB0eXBlb2Ygd2luZG93Xy5jcnlwdG8gIT09ICd1bmRlZmluZWQnID8gd2luZG93Xy5jcnlwdG8gOiB3aW5kb3dfLm1zQ3J5cHRvOyB2YXIgcmFuZG9tVmFsdWVzU3RhbmRhcmQgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IG5ldyBVaW50MzJBcnJheSgxKTsgY3J5cHRvXy5nZXRSYW5kb21WYWx1ZXMoYnVmKTsgcmV0dXJuIGJ1ZlswXSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVzU3RhbmRhcmQoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVzU3RhbmRhcmQ7IH0gY2F0Y2ggKGUpIHsgdHJ5IHsgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOyB2YXIgcmFuZG9tVmFsdWVOb2RlSlMgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IGNyeXB0b1sncmFuZG9tQnl0ZXMnXSg0KTsgcmV0dXJuIChidWZbMF0gPDwgMjQgfCBidWZbMV0gPDwgMTYgfCBidWZbMl0gPDwgOCB8IGJ1ZlszXSkgPj4+IDA7IH07IHJhbmRvbVZhbHVlTm9kZUpTKCk7IE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9IHJhbmRvbVZhbHVlTm9kZUpTOyB9IGNhdGNoIChlKSB7IHRocm93ICdObyBzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm91bmQnOyB9IH0gfSB9AExpYnNvZGl1bURSR2J1Zl9sZW4gPD0gU0laRV9NQVgAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwByYW5kb21ieXRlcwBTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGJsYWtlMmJfZmluYWwAAAAAAAAAAAjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FtvdXRsZW4gPD0gVUlOVDhfTUFYAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAAAAAAAAAtnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu"),o(t,2224,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),o(t,2272,"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/"),o(t,3264,"AQ=="),o(t,3296,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),o(t,3487,"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"),o(t,34460,"AQ=="),o(t,34496,"AQ=="),o(t,34528,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw=="),o(t,34720,"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA"),o(t,35568,"YjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJA=="),o(t,35728,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMBADEuMC4xOA=="),o(t,35772,"UI5QAABAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAAN");var Yn,Vn=((Yn=[null,gt,function(e,t,n,r,o){var i;return e|=0,y=i=y-16|0,gt(i,t|=0,n|=0,r|=0,o|=0),e=Sn(e,i),y=i+16|0,0|e},function(e,t){return te(e|=0,t|=0),0},function(e,t,n,r){return X(e|=0,t|=0,n|=0,r|=0),0},function(e,t){return Z(e|=0,t|=0),0},function(e,t,n){e|=0,t|=0;var r,o=0,a=0;if(y=r=y-336|0,o=-1,!function(e){var t,n=0,r=0,o=0,a=0;for(i[11+(t=y-16|0)|0]=0,i[t+12|0]=0,i[t+13|0]=0,i[t+14|0]=0,s[t+8>>2]=0;;){for(o=c[e+r|0],n=0;i[0|(a=(t+8|0)+n|0)]=c[0|a]|o^c[(34464+(n<<5)|0)+r|0],7!=(0|(n=n+1|0)););if(31==(0|(r=r+1|0)))break}for(r=127&c[e+31|0],e=0,n=0;i[0|(o=(t+8|0)+n|0)]=c[0|o]|r^c[34495+(n<<5)|0],7!=(0|(n=n+1|0)););for(n=0;n=c[(t+8|0)+e|0]-1|n,7!=(0|(e=e+1|0)););return n>>>8&1}(n|=0)){for(o=0;i[e+o|0]=c[t+o|0],32!=(0|(o=o+1|0)););for(i[0|e]=248&c[0|e],i[e+31|0]=63&c[e+31|0]|64,M(r+288|0,n),yn(r+240|0),xn(r+192|0),xe(r+144|0,r+288|0),yn(r+96|0),n=254,t=0;o=t,a=n,ee(r+240|0,r+144|0,o^=t=c[(n>>>3|0)+e|0]>>>(7&n)&1),ee(r+192|0,r+96|0,o),n=n-1|0,ge(r+48|0,r+144|0,r+96|0),ge(r,r+240|0,r+192|0),me(r+240|0,r+240|0,r+192|0),me(r+192|0,r+144|0,r+96|0),S(r+96|0,r+48|0,r+240|0),S(r+192|0,r+192|0,r),k(r+48|0,r),k(r,r+240|0),me(r+144|0,r+96|0,r+192|0),ge(r+192|0,r+96|0,r+192|0),S(r+240|0,r,r+48|0),ge(r,r,r+48|0),k(r+192|0,r+192|0),U(r+96|0,r),k(r+144|0,r+144|0),me(r+48|0,r+48|0,r+96|0),S(r+96|0,r+288|0,r+192|0),S(r+192|0,r,r+48|0),a;);ee(r+240|0,r+144|0,t),ee(r+192|0,r+96|0,t),K(r+192|0,r+192|0),S(r+240|0,r+240|0,r+192|0),re(e,r+240|0),o=0}return y=r+336|0,0|o},function(e,t){e|=0,t|=0;var n,r=0;for(y=n=y-208|0;i[e+r|0]=c[t+r|0],32!=(0|(r=r+1|0)););return i[0|e]=248&c[0|e],i[e+31|0]=63&c[e+31|0]|64,ie(n+48|0,e),function(e,t,n){var r;y=r=y-96|0,me(r+48|0,n,t),ge(r,n,t),K(r,r),S(e,r+48|0,r),y=r+96|0}(n,n+88|0,n+128|0),re(e,n),y=n+208|0,0},function(e,t,n,r,o){e|=0,r|=0,o|=0;var a,d=0;if(y=a=y-112|0,(t|=0)|(n|=0)){d=c[o+28|0]|c[o+29|0]<<8|c[o+30|0]<<16|c[o+31|0]<<24,s[a+24>>2]=c[o+24|0]|c[o+25|0]<<8|c[o+26|0]<<16|c[o+27|0]<<24,s[a+28>>2]=d,d=c[o+20|0]|c[o+21|0]<<8|c[o+22|0]<<16|c[o+23|0]<<24,s[a+16>>2]=c[o+16|0]|c[o+17|0]<<8|c[o+18|0]<<16|c[o+19|0]<<24,s[a+20>>2]=d,d=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,s[a>>2]=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,s[a+4>>2]=d,d=c[o+12|0]|c[o+13|0]<<8|c[o+14|0]<<16|c[o+15|0]<<24,s[a+8>>2]=c[o+8|0]|c[o+9|0]<<8|c[o+10|0]<<16|c[o+11|0]<<24,s[a+12>>2]=d,o=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24,r=c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24,s[a+104>>2]=0,s[a+108>>2]=0,s[a+96>>2]=o,s[a+100>>2]=r;e:{if(!n&t>>>0>=64|n){for(;;){for(Pn(e,a+96|0,a),o=8,r=1;r=c[0|(d=(a+96|0)+o|0)]+r|0,i[0|d]=r,r=r>>>8|0,16!=(0|(o=o+1|0)););if(e=e- -64|0,n=n-1|0,!(!(n=(t=t+-64|0)>>>0<4294967232?n+1|0:n)&t>>>0>63|n))break}if(!(t|n))break e}for(o=0,Pn(a+32|0,a+96|0,a);i[e+o|0]=c[(a+32|0)+o|0],(0|t)!=(0|(o=o+1|0)););}ht(a+32|0,64),ht(a,32)}return y=a+112|0,0},function(e,t,n,r,o,a,d,u){e|=0,t|=0,o|=0,a|=0,d|=0,u|=0;var l,A=0,f=0;if(y=l=y-112|0,(n|=0)|(r|=0)){for(A=c[u+28|0]|c[u+29|0]<<8|c[u+30|0]<<16|c[u+31|0]<<24,s[l+24>>2]=c[u+24|0]|c[u+25|0]<<8|c[u+26|0]<<16|c[u+27|0]<<24,s[l+28>>2]=A,A=c[u+20|0]|c[u+21|0]<<8|c[u+22|0]<<16|c[u+23|0]<<24,s[l+16>>2]=c[u+16|0]|c[u+17|0]<<8|c[u+18|0]<<16|c[u+19|0]<<24,s[l+20>>2]=A,A=c[u+4|0]|c[u+5|0]<<8|c[u+6|0]<<16|c[u+7|0]<<24,s[l>>2]=c[0|u]|c[u+1|0]<<8|c[u+2|0]<<16|c[u+3|0]<<24,s[l+4>>2]=A,A=8,f=c[u+12|0]|c[u+13|0]<<8|c[u+14|0]<<16|c[u+15|0]<<24,s[l+8>>2]=c[u+8|0]|c[u+9|0]<<8|c[u+10|0]<<16|c[u+11|0]<<24,s[l+12>>2]=f,u=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,s[l+96>>2]=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,s[l+100>>2]=u;i[(l+96|0)+A|0]=a,a=(255&d)<<24|a>>>8,d=d>>>8|0,16!=(0|(A=A+1|0)););if(!r&n>>>0>63|r)for(;;){for(A=0,Pn(l+32|0,l+96|0,l);i[e+A|0]=c[(l+32|0)+A|0]^c[t+A|0],u=1,64!=(0|(A=A+1|0)););for(A=8;o=c[0|(a=(l+96|0)+A|0)]+u|0,i[0|a]=o,u=o>>>8|0,16!=(0|(A=A+1|0)););if(t=t- -64|0,e=e- -64|0,r=r-1|0,!(!(r=(n=n+-64|0)>>>0<4294967232?r+1|0:r)&n>>>0>63|r))break}if(n|r)for(A=0,Pn(l+32|0,l+96|0,l);i[e+A|0]=c[(l+32|0)+A|0]^c[t+A|0],(0|n)!=(0|(A=A+1|0)););ht(l+32|0,64),ht(l,32)}return y=l+112|0,0},function(e,t,n,r,o){var i;return e|=0,r|=0,y=i=y+-64|0,(t|=0)|(n|=0)&&(de(i,o|=0),Ne(i,r,0),N(i,e=ae(e,0,t),e,t,n),ht(i,64)),y=i- -64|0,0},function(e,t,n,r,o){var i;return e|=0,r|=0,y=i=y+-64|0,(t|=0)|(n|=0)&&(de(i,o|=0),je(i,r,0),N(i,e=ae(e,0,t),e,t,n),ht(i,64)),y=i- -64|0,0},function(e,t,n,r,o,i,a,s){var c;return e|=0,t|=0,o|=0,a|=0,s|=0,y=c=y-80|0,(n|=0)|(r|=0)&&(Jt(c+8|0,i|=0),Jt(c+12|0,a),de(c+16|0,s),Ne(c+16|0,o,c+8|0),N(c+16|0,t,e,n,r),ht(c+16|0,64)),y=c+80|0,0},function(e,t,n,r,o,i,a){var s;return e|=0,t|=0,o|=0,a|=0,y=s=y-80|0,(n|=0)|(r|=0)&&(Jt(s+12|0,i|=0),de(s+16|0,a),je(s+16|0,o,s+12|0),N(s+16|0,t,e,n,r),ht(s+16|0,64)),y=s+80|0,0}]).grow=function(e){var t=this.length;return this.length=this.length+e,t},Yn.set=function(e,t){this[e]=t},Yn.get=function(e){return this[e]},Yn);function Wn(){return r.byteLength/65536|0}return{h:Vn,i:function(){},j:function(e,t,n,r,o,i,a,s,c,d,u,l){return 0|Ue(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,u|=0,l|=0)},k:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){if(!o&r>>>0<4294967280)return Ue(e,e+r|0,0,n,r,o,i,a,c,d,u),t&&(o=(e=r+16|0)>>>0<16?o+1|0:o,s[t>>2]=e,s[t+4>>2]=o),0;zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0,u|=0,l|=0)},l:function(e,t,n,r,o,i,a,s,c,d,u,l){return 0|Se(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,u|=0,l|=0)},m:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){if(!o&r>>>0<4294967280)return Se(e,e+r|0,0,n,r,o,i,a,c,d,u),t&&(o=(e=r+16|0)>>>0<16?o+1|0:o,s[t>>2]=e,s[t+4>>2]=o),0;zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0,u|=0,l|=0)},n:function(e,t,n,r,o,i,a,s,c,d,u){return 0|ke(e|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,d|=0,u|=0)},o:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){var l=0;return l=-1,!o&r>>>0>=16|o&&(l=ke(e,n,r-16|0,o-(r>>>0<16)|0,(n+r|0)-16|0,i,a,c,d,u)),t&&(s[t>>2]=l?0:r-16|0,s[t+4>>2]=l?0:o-(r>>>0<16)|0),l}(e|=0,t|=0,r|=0,o|=0,i|=0,a|=0,c|=0,d|=0,u|=0,l|=0)},p:function(e,t,n,r,o,i,a,s,c,d,u){return 0|Be(e|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,d|=0,u|=0)},q:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){var l=0;return l=-1,!o&r>>>0>=16|o&&(l=Be(e,n,r-16|0,o-(r>>>0<16)|0,(n+r|0)-16|0,i,a,c,d,u)),t&&(s[t>>2]=l?0:r-16|0,s[t+4>>2]=l?0:o-(r>>>0<16)|0),l}(e|=0,t|=0,r|=0,o|=0,i|=0,a|=0,c|=0,d|=0,u|=0,l|=0)},r:Tn,s:function(){return 12},t:Gn,u:Dn,v:Un,w:Rn,x:Tn,y:Fn,z:Gn,A:Dn,B:Un,C:Rn,D:function(e,t,n,r,o,i,a,s,c,d,u,l){return 0|De(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,u|=0,l|=0)},E:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){if(!o&r>>>0<4294967280)return De(e,e+r|0,0,n,r,o,i,a,c,d,u),t&&(o=(e=r+16|0)>>>0<16?o+1|0:o,s[t>>2]=e,s[t+4>>2]=o),0;zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0,u|=0,l|=0)},F:function(e,t,n,r,o,i,a,s,c,d,u){return 0|Te(e|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0,c|=0,d|=0,u|=0)},G:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u){var l=0;return l=-1,!o&r>>>0>=16|o&&(l=Te(e,n,r-16|0,o-(r>>>0<16)|0,(n+r|0)-16|0,i,a,c,d,u)),t&&(s[t>>2]=l?0:r-16|0,s[t+4>>2]=l?0:o-(r>>>0<16)|0),l}(e|=0,t|=0,r|=0,o|=0,i|=0,a|=0,c|=0,d|=0,u|=0,l|=0)},H:Tn,I:Mn,J:Gn,K:Dn,L:Un,M:Rn,N:Tn,O:Tn,P:function(e,t,n,r,o){return 0|Qt(e|=0,t|=0,n|=0,r|=0,o|=0)},Q:function(e,t,n,r,o){return 0|function(e,t,n,r,o){var i;return y=i=y-32|0,Qt(i,t,n,r,o),t=_n(e,i),n=Xe(i,e,32),y=i+32|0,n|((0|e)==(0|i)?-1:t)}(e|=0,t|=0,n|=0,r|=0,o|=0)},R:Rn,S:Tn,T:Tn,U:Tn,V:Tn,W:Mn,X:Dn,Y:Un,Z:function(e,t,n){return 0|function(e,t,n){var r,o=0;return y=r=y+-64|0,Rt(r,n,32,0),n=s[r+28>>2],o=s[r+24>>2],i[t+24|0]=o,i[t+25|0]=o>>>8,i[t+26|0]=o>>>16,i[t+27|0]=o>>>24,i[t+28|0]=n,i[t+29|0]=n>>>8,i[t+30|0]=n>>>16,i[t+31|0]=n>>>24,n=s[r+20>>2],o=s[r+16>>2],i[t+16|0]=o,i[t+17|0]=o>>>8,i[t+18|0]=o>>>16,i[t+19|0]=o>>>24,i[t+20|0]=n,i[t+21|0]=n>>>8,i[t+22|0]=n>>>16,i[t+23|0]=n>>>24,n=s[r+12>>2],o=s[r+8>>2],i[t+8|0]=o,i[t+9|0]=o>>>8,i[t+10|0]=o>>>16,i[t+11|0]=o>>>24,i[t+12|0]=n,i[t+13|0]=n>>>8,i[t+14|0]=n>>>16,i[t+15|0]=n>>>24,n=s[r+4>>2],o=s[r>>2],i[0|t]=o,i[t+1|0]=o>>>8,i[t+2|0]=o>>>16,i[t+3|0]=o>>>24,i[t+4|0]=n,i[t+5|0]=n>>>8,i[t+6|0]=n>>>16,i[t+7|0]=n>>>24,ht(r,64),e=gn(e,t),y=r- -64|0,e}(e|=0,t|=0,n|=0)},_:tn,$:Kt,aa:function(e,t,n,r,o,i,a){return 0|on(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},ba:function(e,t,n,r,o,i,a,s){return 0|vt(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0)},ca:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){return!r&n>>>0>=4294967280|r&&(zt(),A()),on(e+16|0,e,t,n,r,o,i)}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},da:function(e,t,n,r,o,i,a){return 0|_t(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},ea:function(e,t,n,r,o,i,a){return 0|an(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},fa:function(e,t,n,r,o,i,a,s){return 0|yt(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,s|=0)},ga:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){return!r&n>>>0>=16|r?an(e,t+16|0,t,n-16|0,r-(n>>>0<16)|0,o,i):-1}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},ha:function(e,t,n,r,o,i,a){return 0|It(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},ia:function(e,t,n,r,o){return 0|function(e,t,n,r,o){var a,c=0;return y=a=y-96|0,c=-1,tn(a+32|0,a)||(Et(a- -64|0,a+32|0,o),c=_t(e+32|0,t,n,r,a- -64|0,o,a),t=s[a+60>>2],n=s[a+56>>2],i[e+24|0]=n,i[e+25|0]=n>>>8,i[e+26|0]=n>>>16,i[e+27|0]=n>>>24,i[e+28|0]=t,i[e+29|0]=t>>>8,i[e+30|0]=t>>>16,i[e+31|0]=t>>>24,t=s[a+52>>2],n=s[a+48>>2],i[e+16|0]=n,i[e+17|0]=n>>>8,i[e+18|0]=n>>>16,i[e+19|0]=n>>>24,i[e+20|0]=t,i[e+21|0]=t>>>8,i[e+22|0]=t>>>16,i[e+23|0]=t>>>24,t=s[a+44>>2],n=s[a+40>>2],i[e+8|0]=n,i[e+9|0]=n>>>8,i[e+10|0]=n>>>16,i[e+11|0]=n>>>24,i[e+12|0]=t,i[e+13|0]=t>>>8,i[e+14|0]=t>>>16,i[e+15|0]=t>>>24,t=s[a+36>>2],n=s[a+32>>2],i[0|e]=n,i[e+1|0]=n>>>8,i[e+2|0]=n>>>16,i[e+3|0]=n>>>24,i[e+4|0]=t,i[e+5|0]=t>>>8,i[e+6|0]=t>>>16,i[e+7|0]=t>>>24,ht(a,32),ht(a+32|0,32),ht(a- -64|0,24)),y=a+96|0,c}(e|=0,t|=0,n|=0,r|=0,o|=0)},ja:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){var a,s=0;return y=a=y-32|0,s=-1,!r&n>>>0>=48|r&&(Et(a,t,o),s=It(e,t+32|0,n-32|0,r-(n>>>0<32)|0,a,t,i)),y=a+32|0,s}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},ka:function(){return 48},la:Dn,ma:Hn,na:Tn,oa:Dn,pa:Hn,qa:Tn,ra:function(){return 384},sa:function(e,t,n,r,o,i,a){return 0|sn(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},ta:Lt,ua:function(e,t,n,r){return 0|vn(e|=0,t|=0,n|=0,r|=0)},va:Wt,wa:Rn,xa:Hn,ya:function(e,t,n,r){return 0|Rt(e|=0,t|=0,n|=0,r|=0)},za:Dn,Aa:Hn,Ba:Fn,Ca:Tn,Da:function(e,t,n,r,o,d){return 0|function(e,t,n,r,o,d){var u,l;return y=u=y-32|0,l=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,o=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,s[u+24>>2]=0,s[u+28>>2]=0,s[u+16>>2]=l,s[u+20>>2]=o,ft(u,n,r),s[u+8>>2]=0,s[u+12>>2]=0,t-16>>>0>=49?(s[8960]=28,e=-1):(n=u+16|0,e=t-1>>>0>63?-1:function(e,t,n,r,o){var d,u=0;if(d=u=y,y=u=u-384&-64,!(!t|!e|(n-1&255)>>>0>=64))return function(e,t,n,r,o){var d;if(y=d=y-192|0,!(!n|(t-1&255)>>>0>=64))return a[d+130>>1]=257,i[d+129|0]=32,i[d+128|0]=t,Vt(d+128|4),ft(d+128|8,0,0),s[d+152>>2]=0,s[d+156>>2]=0,s[d+144>>2]=0,s[d+148>>2]=0,r?function(e,t){var n,r=0;r=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,i[e+32|0]=n,i[e+33|0]=n>>>8,i[e+34|0]=n>>>16,i[e+35|0]=n>>>24,i[e+36|0]=r,i[e+37|0]=r>>>8,i[e+38|0]=r>>>16,i[e+39|0]=r>>>24,r=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,t=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,i[e+40|0]=t,i[e+41|0]=t>>>8,i[e+42|0]=t>>>16,i[e+43|0]=t>>>24,i[e+44|0]=r,i[e+45|0]=r>>>8,i[e+46|0]=r>>>16,i[e+47|0]=r>>>24}(d+128|0,r):(s[d+168>>2]=0,s[d+172>>2]=0,s[d+160>>2]=0,s[d+164>>2]=0),o?function(e,t){var n,r=0;r=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,n=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,i[e+48|0]=n,i[e+49|0]=n>>>8,i[e+50|0]=n>>>16,i[e+51|0]=n>>>24,i[e+52|0]=r,i[e+53|0]=r>>>8,i[e+54|0]=r>>>16,i[e+55|0]=r>>>24,r=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,t=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,i[e+56|0]=t,i[e+57|0]=t>>>8,i[e+58|0]=t>>>16,i[e+59|0]=t>>>24,i[e+60|0]=r,i[e+61|0]=r>>>8,i[e+62|0]=r>>>16,i[e+63|0]=r>>>24}(d+128|0,o):(s[d+184>>2]=0,s[d+188>>2]=0,s[d+176>>2]=0,s[d+180>>2]=0),ye(e,d+128|0),ae(d+32|0,0,96),oe(t=e,e=q(d,n,32),128,0),ht(e,128),void(y=e+192|0);zt(),A()}(u,n,t,r,o),oe(u,0,0,0),T(u,e,n),y=d,0;zt(),A()}(e,d,255&t,u,n)),y=u+32|0,e}(e|=0,t|=0,n|=0,r|=0,o|=0,d|=0)},Ea:Rn,Fa:function(e,t,n){return e|=0,sn(t|=0,32,n|=0,32,0,0,0),0|un(e,t)},Ga:function(e,t){return e|=0,pt(t|=0,32),0|un(e,t)},Ha:function(e,t,n,r,o){t|=0,n|=0,o|=0;var a,s,d=0;if(s=d=y,y=d=d-512&-64,a=(e|=0)||t){if(e=-1,!Zt(d+96|0,r|=0,o)){for(t=t||a,e=0,Lt(d+128|0,0,0,64),vn(d+128|0,d+96|0,32,0),ht(d+96|0,32),vn(d+128|0,n,32,0),vn(d+128|0,o,32,0),Wt(d+128|0,d+32|0,64),ht(d+128|0,384);n=(d+32|0)+e|0,i[e+a|0]=c[0|n],i[e+t|0]=c[n+32|0],32!=(0|(e=e+1|0)););ht(d+32|0,64),e=0}return y=s,0|e}zt(),A()},Ia:function(e,t,n,r,o){t|=0,n|=0,o|=0;var a,s,d=0;if(s=d=y,y=d=d-512&-64,a=(e|=0)||t){if(e=-1,!Zt(d+96|0,r|=0,o)){for(t=t||a,e=0,Lt(d+128|0,0,0,64),vn(d+128|0,d+96|0,32,0),ht(d+96|0,32),vn(d+128|0,o,32,0),vn(d+128|0,n,32,0),Wt(d+128|0,d+32|0,64),ht(d+128|0,384);n=(d+32|0)+e|0,i[e+t|0]=c[0|n],i[e+a|0]=c[n+32|0],32!=(0|(e=e+1|0)););ht(d+32|0,64),e=0}return y=s,0|e}zt(),A()},Ja:Tn,Ka:Tn,La:Tn,Ma:Tn,Na:jn,Oa:Jn,Pa:Jn,Qa:Dn,Ra:Ln,Sa:Gn,Ta:Ln,Ua:Dn,Va:function(){return 128},Wa:function(){return 35681},Xa:jn,Ya:Ln,Za:function(){return 8192},_a:function(){return-2147483648},$a:Jn,ab:function(){return 67108864},bb:qn,cb:function(){return 268435456},db:function(){return 4},eb:function(){return 1073741824},fb:function(e,t,n,r,o,i,a,c,d,u,l){return 0|function(e,t,n,r,o,i,a,c,d,u,l){switch(l-1|0){case 0:return function(e,t,n,r,o,i,a,c,d,u){var l,A;A=t,l=ae(e,0,t),e=22;e:if(!n){if(!(!n&t>>>0<16)){if(i|d|u>>>0>2147483648)break e;if(!(!d&c>>>0<3|u>>>0<8192)){if(e=28,(0|r)==(0|l))break e;return Ce(c,u>>>10|0,1,r,o,a,16,l,A,0,0,1)?-1:0}}e=28}return s[8960]=e,-1}(e,t,n,r,o,i,a,c,d,u);case 1:return function(e,t,n,r,o,i,a,c,d,u){var l,A;A=t,l=ae(e,0,t),e=22;e:if(!n){if(!(!n&t>>>0<16)){if(i|d|u>>>0>2147483648)break e;if(!(!(c|d)|u>>>0<8192)){if(e=28,(0|r)==(0|l))break e;return Ce(c,u>>>10|0,1,r,o,a,16,l,A,0,0,2)?-1:0}}e=28}return s[8960]=e,-1}(e,t,n,r,o,i,a,c,d,u)}return s[8960]=28,-1}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0,d|=0,u|=0,l|=0)},gb:function(e,t,n,r,o,i,a){return 0|Je(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0)},hb:function(e,t,n,r,o,i,a,c){return 0|function(e,t,n,r,o,i,a,c){switch(c-1|0){case 1:return Je(e,t,n,r,o,i,a);default:zt(),A();case 0:}return function(e,t,n,r,o,i,a){var c;return y=c=y-16|0,e=ae(e,0,128),a>>>0<2147483649&&!(r|i)?a>>>0>8191&&!i&o>>>0>=3|0!=(0|i)?(pt(c,16),e=Ce(o,a>>>10|0,1,t,n,c,16,0,32,e,128,1)?-1:0):(s[8960]=28,e=-1):(s[8960]=22,e=-1),y=c+16|0,e}(e,t,n,r,o,i,a)}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0,a|=0,c|=0)},ib:function(e,t,n,r){return 0|function(e,t,n,r){return qe(e,35681,10)?qe(e,35692,9)?(s[8960]=28,-1):function(e,t,n,r){e:{if(1==(0|r)|r>>>0>1)s[8960]=22;else{if(!(e=he(e,t,n,1)))break e;-35==(0|e)&&(s[8960]=28)}e=-1}return e}(e,t,n,r):function(e,t,n,r){e:{if(1==(0|r)|r>>>0>1)s[8960]=22;else{if(!(e=he(e,t,n,2)))break e;-35==(0|e)&&(s[8960]=28)}e=-1}return e}(e,t,n,r)}(e|=0,t|=0,n|=0,r|=0)},jb:function(e,t,n,r){return 0|function(e,t,n,r){return qe(e,35681,10)?qe(e,35692,9)?(s[8960]=28,-1):be(e,t,n,r,1):be(e,t,n,r,2)}(e|=0,t|=0,n|=0,r|=0)},kb:un,lb:Zt,mb:Tn,nb:Tn,ob:Tn,pb:Mn,qb:Dn,rb:Un,sb:Rn,tb:on,ub:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){return!r&n>>>0>=4294967280|r&&(zt(),A()),ce(e+16|0,e,t,n,r,o,i),0}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},vb:an,wb:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){return!r&n>>>0>=16|r?ue(e,t+16|0,t,n-16|0,r-(n>>>0<16)|0,o,i):-1}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},xb:Rn,yb:function(e,t,n){return e|=0,n|=0,pt(t|=0,24),J(e,t,n),qt(e),n=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,t=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,i[e+44|0]=0,i[e+45|0]=0,i[e+46|0]=0,i[e+47|0]=0,i[e+48|0]=0,i[e+49|0]=0,i[e+50|0]=0,i[e+51|0]=0,i[e+36|0]=n,i[e+37|0]=n>>>8,i[e+38|0]=n>>>16,i[e+39|0]=n>>>24,i[e+40|0]=t,i[e+41|0]=t>>>8,i[e+42|0]=t>>>16,i[e+43|0]=t>>>24,0},zb:function(e,t,n){return J(e|=0,t|=0,n|=0),qt(e),n=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,t=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,i[e+44|0]=0,i[e+45|0]=0,i[e+46|0]=0,i[e+47|0]=0,i[e+48|0]=0,i[e+49|0]=0,i[e+50|0]=0,i[e+51|0]=0,i[e+36|0]=n,i[e+37|0]=n>>>8,i[e+38|0]=n>>>16,i[e+39|0]=n>>>24,i[e+40|0]=t,i[e+41|0]=t>>>8,i[e+42|0]=t>>>16,i[e+43|0]=t>>>24,0},Ab:F,Bb:function(e,t,n,r,o,a,d,u,l,f){return 0|function(e,t,n,r,o,a,d,u,l,f){var h,p=0;if(y=h=y-336|0,n&&(s[n>>2]=0,s[n+4>>2]=0),!a&o>>>0<4294967279)return kn(h+16|0,64,p=e+32|0,e),wn(h+80|0,h+16|0),ht(h+16|0,64),mn(h+80|0,d,u,l),mn(h+80|0,35712,0-u&15,0),ae(h+16|0,0,64),i[h+16|0]=f,rt(h+16|0,h+16|0,64,0,p,1,e),mn(h+80|0,h+16|0,64,0),i[0|t]=c[h+16|0],rt(d=t+1|0,r,o,a,p,2,e),mn(h+80|0,d,o,a),mn(h+80|0,35712,15&o,0),ft(h+8|0,u,l),mn(h+80|0,h+8|0,8,0),ft(h+8|0,o- -64|0,a-((o>>>0<4294967232)-1|0)|0),mn(h+80|0,h+8|0,8,0),Bn(h+80|0,t=o+d|0),ht(h+80|0,256),Ct(e+36|0,t),mt(p),(2&f||dt(p,4))&&F(e),n&&(a=(e=o+17|0)>>>0<17?a+1|0:a,s[n>>2]=e,s[n+4>>2]=a),y=h+336|0,0;zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,a|=0,d|=0,u|=0,l|=0,f|=0)},Cb:function(e,t,n,r,o,a,d,u,l,f){return 0|function(e,t,n,r,o,a,d,u,l,f){var h,p=0,g=0,m=0,v=0,b=0;y=h=y-352|0,n&&(s[n>>2]=0,s[n+4>>2]=0),r&&(i[0|r]=255),v=-1;e:{if(!(!d&a>>>0<17)){if(!(p=d-(a>>>0<17)|0)&(g=a-17|0)>>>0>=4294967279|p)break e;kn(h+32|0,64,m=e+32|0,e),wn(h+96|0,h+32|0),ht(h+32|0,64),mn(h+96|0,u,l,f),mn(h+96|0,35712,0-l&15,0),ae(h+32|0,0,64),i[h+32|0]=c[0|o],rt(h+32|0,h+32|0,64,0,m,1,e),b=c[h+32|0],i[h+32|0]=c[0|o],mn(h+96|0,h+32|0,64,0),mn(h+96|0,u=o+1|0,g,p),mn(h+96|0,35712,a-1&15,0),ft(h+24|0,l,f),mn(h+96|0,h+24|0,8,0),ft(h+24|0,o=a+47|0,d=o>>>0<47?d+1|0:d),mn(h+96|0,h+24|0,8,0),Bn(h+96|0,h),ht(h+96|0,256),Xe(h,u+g|0,16)?ht(h,16):(rt(t,u,g,p,m,2,e),Ct(e+36|0,h),mt(m),(2&b||dt(m,4))&&F(e),n&&(s[n>>2]=g,s[n+4>>2]=p),v=0,r&&(i[0|r]=b))}return y=h+352|0,v}zt(),A()}(e|=0,t|=0,n|=0,r|=0,o|=0,a|=0,d|=0,u|=0,l|=0,f|=0)},Db:function(){return 52},Eb:function(){return 17},Fb:Mn,Gb:Tn,Hb:function(){return-18},Ib:Gn,Jb:jn,Kb:Jn,Lb:qn,Mb:Fn,Nb:Dn,Ob:function(e,t,n,r,o){return 0|function(e,t,n,r){var o=0,i=0,a=0,s=0,d=0,u=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,y=0,b=0;if(o=1886610805^(a=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24),s=1936682341^(i=c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24),d=1852142177^a,l=1819895653^i,a=1852075885^(f=c[r+8|0]|c[r+9|0]<<8|c[r+10|0]<<16|c[r+11|0]<<24),i=1685025377^(r=c[r+12|0]|c[r+13|0]<<8|c[r+14|0]<<16|c[r+15|0]<<24),f^=2037671283,u=1952801890^r,(0|(r=(t+n|0)-(g=7&n)|0))!=(0|t)){for(;A=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,h=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,p=In(a,i,13),m=C,v=1+(i=i+s|0)|0,s=i,y=In(i=o+a|0,s=i>>>0>>0?v:s,32),v=C,u=o=u^h,a=In(f^=A,o,16),o=d+f|0,d=l+u|0,f=l=(d=o>>>0>>0?d+1|0:d)^C,l=In(a^=o,l,21),u=C,p=In(i^=p,s^=m,17),b=C,s=d+s|0,d=o,s=In(o=o+i|0,i=d>>>0>o>>>0?s+1|0:s,32),d=C,m=In(p^=o,i^=b,13),b=C,v=1+(o=f+v|0)|0,f=o,a=(o=a+y|0)>>>0>>0?v:f,p=f=o+p|0,i=a+i|0,i=In(f,y=o>>>0>f>>>0?i+1|0:i,32),f=C,l=In(o^=l,a^=u,16),a=d+a|0,a=(o=o+s|0)>>>0>>0?a+1|0:a,s=i+(d=o^l)|0,i=(u=f)+(f=a^C)|0,f=In(d,f,21)^s,u=(v=s>>>0>>0?i+1|0:i)^C,d=i=y^b,i=In(l=p^m,i,17),a=a+d|0,l=(d=o+l|0)>>>0>>0?a+1|0:a,a=i^d,i=l^C,o=s^A,s=h^v,d=In(d,l,32),l=C,(0|r)!=(0|(t=t+8|0)););t=r}switch(r=n<<24,n=0,g-1|0){case 6:r|=c[t+6|0]<<16;case 5:r|=c[t+5|0]<<8;case 4:r|=c[t+4|0];case 3:A=(n=c[t+3|0])>>>8|0,n<<=24,r|=A;case 2:n|=(A=c[t+2|0])<<16,r|=h=A>>>16|0;case 1:n|=(A=c[t+1|0])<<8,r|=h=A>>>24|0;case 0:n=c[0|t]|n}return A=In(a,i,13),h=C,t=i+s|0,g=In(a=o+a|0,i=a>>>0>>0?t+1|0:t,32),p=C,s=o=r^u,o=In(t=n^f,o,16),s=s+l|0,l=d=(s=(u=t)>>>0>(t=t+d|0)>>>0?s+1|0:s)^C,d=In(o^=t,d,21),f=C,A=In(a^=A,i^=h,17),h=C,i=s+i|0,u=t,i=In(t=t+a|0,a=u>>>0>t>>>0?i+1|0:i,32),s=C,A=In(u=t^A,a^=h,13),h=C,m=1+(t=l+p|0)|0,l=t,a=(o=(t=o+g|0)>>>0>>0?m:l)+a|0,a=In(u=l=t+u|0,l=t>>>0>l>>>0?a+1|0:a,32),g=C,d=In(t^=d,o^=f,16),o=s+o|0,o=(t=t+i|0)>>>0>>0?o+1|0:o,i=t^d,d=s=o^C,s=In(i,s,21),f=C,h=l^=h,l=In(u^=A,l,17),A=C,o=o+h|0,m=t,u=In(t=t+u|0,o=m>>>0>t>>>0?o+1|0:o,32),h=C,A=In(t^=l,l=o^A,13),p=C,m=t,d=1+(t=d+g|0)|0,o=t,r=l+(r^(o=(t=a+i|0)>>>0>>0?d:o))|0,n=In(i=a=m+(n^=t)|0,a=n>>>0>a>>>0?r+1|0:r,32),d=C,s=In(t^=s,r=o^f,16),r=r+h|0,r=(o=t)>>>0>(t=t+(255^u)|0)>>>0?r+1|0:r,o=t^s,l=s=r^C,s=In(o,s,21),f=C,u=a^=p,a=In(i^=A,a,17),A=C,r=r+u|0,u=t,i=In(t=t+i|0,r=u>>>0>t>>>0?r+1|0:r,32),u=C,h=In(a^=t,A^=r,13),g=C,l=1+(t=d+l|0)|0,r=t,o=(r=(t=n+o|0)>>>0>>0?l:r)+A|0,d=o=t>>>0>(n=t+a|0)>>>0?o+1|0:o,o=In(n,o,32),l=C,s=In(t^=s,r^=f,16),r=r+u|0,u=t,a=(t=t+i|0)^s,s=i=(r=u>>>0>t>>>0?r+1|0:r)^C,i=In(a,i,21),f=C,u=d^=g,d=In(n^=h,d,17),A=C,r=r+u|0,u=t,u=In(t=t+n|0,n=u>>>0>t>>>0?r+1|0:r,32),h=C,g=In(d^=t,A^=n,13),p=C,r=1+(t=s+l|0)|0,n=t,o=(r=(t=o+a|0)>>>0>>0?r:n)+A|0,s=o=t>>>0>(n=t+d|0)>>>0?o+1|0:o,o=In(n,o,32),d=C,i=In(t^=i,r^=f,16),r=r+h|0,l=t,a=(t=t+u|0)^i,l=i=(r=l>>>0>t>>>0?r+1|0:r)^C,i=In(a,i,21),f=C,u=s^=p,s=In(n^=g,s,17),A=C,r=r+u|0,u=t,r=In(t=t+n|0,n=u>>>0>t>>>0?r+1|0:r,32),u=C,A=n^=A,h=In(s^=t,n,13),g=C,l=1+(t=d+l|0)|0,n=t,d=a=f^(o=(t=o+a|0)>>>0>>0?l:n),a=In(n=t^i,a,16),i=d+u|0,u=n,a=In((n=n+r|0)^a,(r=u>>>0>n>>>0?i+1|0:i)^C,21),i=C,o=o+A|0,l=1+(r=r+(o=((u=t)>>>0>(t=t+s|0)>>>0?o+1|0:o)^g)|0)|0,u=r,n=(t=n+(r=t^h)|0)>>>0>>0?l:u,r=In(r,o,17)^t^a,o=C^n^i,ft(e,In(t,n,32)^r,C^o),0}(e|=0,t|=0,n|=0,o|=0)},Pb:function(e){pt(e|=0,16)},Qb:function(){return 208},Rb:Hn,Sb:Tn,Tb:Tn,Ub:Hn,Vb:function(){return-65},Wb:function(e,t,n){return 0|D(e|=0,t|=0,n|=0)},Xb:function(e,t){return 0|function(e,t){var n;return y=n=y-32|0,pt(n,32),D(e,t,n),ht(n,32),y=n+32|0,0}(e|=0,t|=0)},Yb:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){var a,c;return y=a=y-16|0,c=n,n=r,rn(e,a+8|0,ne(e- -64|0,c,r),r,o,i),64!=s[a+8>>2]|s[a+12>>2]?(t&&(s[t>>2]=0,s[t+4>>2]=0),ae(e,0,n- -64|0),e=-1):(e=0,t&&(s[t>>2]=r- -64,s[t+4>>2]=o-((r>>>0<4294967232)-1|0))),y=a+16|0,e}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},Zb:function(e,t,n,r,o,i){return 0|function(e,t,n,r,o,i){var a=0;e:{t:{if(!(!o&r>>>0<64||(o=o-1|0,!(o=(r=r+-64|0)>>>0<4294967232?o+1|0:o)&r>>>0>4294967231|o))){if(!dn(n,a=n- -64|0,r,o,i))break t;e&&ae(e,0,r)}if(n=-1,!t)break e;return s[t>>2]=0,s[t+4>>2]=0,-1}t&&(s[t>>2]=r,s[t+4>>2]=o),n=0,e&&ne(e,a,r)}return n}(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},_b:function(e,t,n,r,o,i){return 0|rn(e|=0,t|=0,n|=0,r|=0,o|=0,i|=0)},$b:function(e,t,n,r,o){return 0|dn(e|=0,t|=0,n|=0,r|=0,o|=0)},ac:function(e){return Tt(e|=0),0},bc:function(e,t,n,r){return 0|Y(e|=0,t|=0,n|=0,r|=0)},cc:function(e,t,n,r){return 0|function(e,t,n,r){var o;return y=o=y+-64|0,Nt(e,o),e=L(t,n,o,64,0,r,1),y=o- -64|0,e}(e|=0,t|=0,n|=0,r|=0)},dc:function(e,t,n){return 0|function(e,t,n){var r;return y=r=y+-64|0,Nt(e,r),e=Ee(t,r,64,0,n,1),y=r- -64|0,e}(e|=0,t|=0,n|=0)},ec:function(e,t){e|=0;var n,r=0;return y=n=y-256|0,r=-1,ve(t|=0)||pe(n+96|0,t)||function(e){var t;return y=t=y-160|0,function(e,t){var n,r=0;for(y=n=y-1760|0,wt(n+480|0,t),jt(n+320|0,t),bt(n,n+320|0),Ye(n+320|0,n,n+480|0),bt(n+160|0,n+320|0),wt(t=n+640|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+800|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+960|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+1120|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+1280|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(t=n+1440|0,n+160|0),Ye(n+320|0,n,t),bt(n+160|0,n+320|0),wt(n+1600|0,n+160|0),Xt(e),t=252;jt(n+320|0,e),r=t,(0|(t=i[t+34208|0]))>=1?(bt(n+160|0,n+320|0),Ye(n+320|0,n+160|0,(n+480|0)+u((254&t)>>>1|0,160)|0)):(0|t)>-1||(bt(n+160|0,n+320|0),Ve(n+320|0,n+160|0,(n+480|0)+u((0-t&254)>>>1|0,160)|0)),bt(e,n+320|0),t=r-1|0,r;);y=n+1760|0}(t,e),e=Ht(t),y=t+160|0,e}(n+96|0)&&(yn(n),ge(n,n,t=n+136|0),yn(n+48|0),me(n+48|0,n+48|0,t),K(n,n),S(n+48|0,n+48|0,n),re(e,n+48|0),r=0),y=n+256|0,0|r},fc:function(e,t){e|=0;var n,r=0;return y=n=y+-64|0,Rt(n,t|=0,32,0),i[0|n]=248&c[0|n],i[n+31|0]=63&c[n+31|0]|64,t=s[n+20>>2],r=s[n+16>>2],i[e+16|0]=r,i[e+17|0]=r>>>8,i[e+18|0]=r>>>16,i[e+19|0]=r>>>24,i[e+20|0]=t,i[e+21|0]=t>>>8,i[e+22|0]=t>>>16,i[e+23|0]=t>>>24,t=s[n+12>>2],r=s[n+8>>2],i[e+8|0]=r,i[e+9|0]=r>>>8,i[e+10|0]=r>>>16,i[e+11|0]=r>>>24,i[e+12|0]=t,i[e+13|0]=t>>>8,i[e+14|0]=t>>>16,i[e+15|0]=t>>>24,t=s[n+4>>2],r=s[n>>2],i[0|e]=r,i[e+1|0]=r>>>8,i[e+2|0]=r>>>16,i[e+3|0]=r>>>24,i[e+4|0]=t,i[e+5|0]=t>>>8,i[e+6|0]=t>>>16,i[e+7|0]=t>>>24,t=s[n+28>>2],r=s[n+24>>2],i[e+24|0]=r,i[e+25|0]=r>>>8,i[e+26|0]=r>>>16,i[e+27|0]=r>>>24,i[e+28|0]=t,i[e+29|0]=t>>>8,i[e+30|0]=t>>>16,i[e+31|0]=t>>>24,ht(n,64),y=n- -64|0,0},gc:Ot,hc:Ut,ic:function(e){var t=0,n=0;if((e|=0)>>>0>=2){for(n=(0-e>>>0)%(e>>>0)|0;(t=Ot())>>>0>>0;);e=(t>>>0)%(e>>>0)|0}else e=0;return 0|e},jc:pt,kc:function(e,t,n){kn(e|=0,t|=0,1784,n|=0)},lc:Tn,mc:function(){var e=0,t=0;return(e=s[9097])&&(e=s[e+20>>2])&&(t=0|Vn[0|e]()),0|t},nc:function(e,t,n){!function(e,t,n){1==(0|n)|n>>>0>1&&(f(1796,1816,197,1842),A()),pt(e,t)}(e|=0,t|=0,n|=0)},oc:function(e,t,n,r){e|=0,n|=0;var o=0,a=0,s=0;if(!((r|=0)>>>0>2147483646|r<<1>>>0>=(t|=0)>>>0)){if(t=0,r){for(;o=t<<1,a=(s=c[t+n|0])>>>4|0,i[o+e|0]=87+(a+(a+65526>>>8&217)|0),a=(1|o)+e|0,o=15&s,i[0|a]=22272+((o<<8)+(o+65526&55552)|0)>>>8,(0|r)!=(0|(t=t+1|0)););t=r<<1}else t=0;return i[t+e|0]=0,0|e}zt(),A()},pc:function(e,t,n,r,o,a,d){e|=0,t|=0,n|=0,o|=0,a|=0,d|=0;var u=0,l=0,A=0,f=0,h=0,p=0,g=0,m=0,v=0,y=0,b=0;e:if(r|=0){t:{n:{r:for(;;){for(l=u;;){o:{if(!(255&((v=(65526+(g=(223&(p=c[n+l|0]))-55&255)^g+65520)>>>8|0)|(A=65526+(y=48^p)>>>8|0)))){if(A=1,!o|255&h)break n;if(nn(o,p))break o;u=l;break e}if(t>>>0<=f>>>0){s[8960]=68,A=0;break n}if(u=g&v|A&y,255&h?(i[e+f|0]=u|b,f=f+1|0):b=u<<4,h^=-1,A=1,(u=l+1|0)>>>0>>0)continue r;break t}if(h=0,!((l=l+1|0)>>>0>>0))break}break}u=(e=u+1|0)>>>0>>0?r:e;break e}u=l}255&h?(s[8960]=28,m=-1,u=u-1|0,f=0):A||(f=0,m=-1)}return d?s[d>>2]=n+u:(0|r)!=(0|u)&&(s[8960]=28,m=-1),a&&(s[a>>2]=f),0|m},qc:function(e,t){var n;return e|=0,En(t|=0),e=u(n=(e>>>0)/3|0,-3)+e|0,u(4-(3-e&0-(t>>>1&1))|0,1&(e|e>>>1))+(n<<2|1)|0},rc:z,sc:V,tc:function(){var e=0;return s[9104]?e=1:(s[9086]=0,function(){var e;y=e=y-16|0,Yt(e),s[e>>2]&&(Yt(e),ae(36348,0,40)),y=e+16|0}(),s[9085]=1,Ut(),function(){var e=0;(0|(e=0|g(30)))>=1?s[8944]=e:e=s[8944],e>>>0<=15&&(zt(),A()),pt(36400,16)}(),s[9104]=1,e=0),0|e},uc:function(e,t,n,r,o){e|=0,t|=0,n|=0,o|=0;var a,d=0,u=0,l=0;y=a=y-16|0;e:{if(r|=0){if(l=-1,(d=(d=r-1|0)-(u=d&r?(n>>>0)%(r>>>0)|0:n&d)|0)>>>0>=(-1^n)>>>0)break e;if(!((n=n+d|0)>>>0>=o>>>0))for(e&&(s[e>>2]=n+1),e=t+n|0,l=0,i[a+15|0]=0,t=r>>>0>1?r:1,r=0;o=n=e-r|0,u=c[0|n]&c[a+15|0],n=(r^d)-1>>>24|0,i[0|o]=u|128&n,i[a+15|0]=n|c[a+15|0],(0|t)!=(0|(r=r+1|0)););}else l=-1;return y=a+16|0,0|l}zt(),A()},vc:function(e,t,n,r){e|=0,t|=0,n|=0,r|=0;var o,i=0,a=0,d=0,u=0,l=0;if(s[12+(o=y-16|0)>>2]=0,r-1>>>0>>0){for(l=(i=n-1|0)+t|0,n=0,t=0;u=((128^(a=c[l-n|0]))-1&s[o+12>>2]-1&d-1)>>>8&1,s[o+12>>2]=s[o+12>>2]|0-u&n,t|=u,d|=a,(0|r)!=(0|(n=n+1|0)););s[e>>2]=i-s[o+12>>2],e=t-1|0}else e=-1;return 0|e},wc:function(){return 35762},xc:function(){return 10},yc:qn,zc:jn,Ac:function(){return 35840},Bc:_,Cc:R}}(e)}(xe)},instantiate:function(e,t){return{then:function(t){var n=new E.Module(e);t({instance:new E.Instance(n)})}}},RuntimeError:Error};function w(e,t,n,r){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":O[e>>0]=t;break;case"i16":R[e>>1]=t;break;case"i32":P[e>>2]=t;break;case"i64":ue=[t>>>0,(de=t,+Math.abs(de)>=1?de>0?(0|Math.min(+Math.floor(de/4294967296),4294967295))>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],P[e>>2]=ue[0],P[e+4>>2]=ue[1];break;case"float":N[e>>2]=t;break;case"double":x[e>>3]=t;break;default:re("invalid type for setValue: "+n)}}function B(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return O[e>>0];case"i16":return R[e>>1];case"i32":case"i64":return P[e>>2];case"float":return N[e>>2];case"double":return x[e>>3];default:re("invalid type for getValue: "+t)}return null}b=[],"object"!=typeof E&&re("no native wasm support detected");var _=!1;function S(e,t){e||re("Assertion failed: "+t)}var k,O,Q,R,P,N,x,D="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function T(e,t,n){for(var r=t+n,o=t;e[o]&&!(o>=r);)++o;if(o-t>16&&e.subarray&&D)return D.decode(e.subarray(t,o));for(var i="";t>10,56320|1023&d)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function M(e,t){return e?T(Q,e,t):""}function U(e,t){return e%t>0&&(e+=t-e%t),e}function H(e){k=e,a.HEAP8=O=new Int8Array(e),a.HEAP16=R=new Int16Array(e),a.HEAP32=P=new Int32Array(e),a.HEAPU8=Q=new Uint8Array(e),a.HEAPU16=new Uint16Array(e),a.HEAPU32=new Uint32Array(e),a.HEAPF32=N=new Float32Array(e),a.HEAPF64=x=new Float64Array(e)}var j,J=a.INITIAL_MEMORY||16777216;(C=a.wasmMemory?a.wasmMemory:new E.Memory({initial:J/65536,maximum:32768}))&&(k=C.buffer),J=k.byteLength,H(k);var F=[],G=[],L=[],q=[];function Y(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Z(a.preRun.shift());ge(F)}function V(){ge(G)}function W(){ge(L)}function K(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)z(a.postRun.shift());ge(q)}function Z(e){F.unshift(e)}function z(e){q.unshift(e)}G.push({func:function(){De()}});var X=0,$=null,ee=null;function te(e){X++,a.monitorRunDependencies&&a.monitorRunDependencies(X)}function ne(e){if(X--,a.monitorRunDependencies&&a.monitorRunDependencies(X),0==X&&(null!==$&&(clearInterval($),$=null),ee)){var t=ee;ee=null,t()}}function re(e){throw a.onAbort&&a.onAbort(e),I(e+=""),_=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new E.RuntimeError(e)}function oe(e,t){return String.prototype.startsWith?e.startsWith(t):0===e.indexOf(t)}a.preloadedImages={},a.preloadedAudios={};var ie="data:application/octet-stream;base64,";function ae(e){return oe(e,ie)}var se="file://";function ce(e){return oe(e,se)}var de,ue,le="<<< WASM_BINARY_FILE >>>";function Ae(e){try{if(e==le&&b)return new Uint8Array(b);var t=Pe(e);if(t)return t;if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){re(e)}}function fe(){if(!b&&(d||u)){if("function"==typeof fetch&&!ce(le))return fetch(le,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+le+"'";return e.arrayBuffer()})).catch((function(){return Ae(le)}));if(h)return new Promise((function(e,t){h(le,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return Ae(le)}))}function he(){var e={a:xe};function t(e,t){var n=e.exports;a.asm=n,j=a.asm.h,ne()}function n(e){t(e.instance)}function r(t){return fe().then((function(t){return E.instantiate(t,e)})).then(t,(function(e){I("failed to asynchronously prepare wasm: "+e),re(e)}))}if(te(),a.instantiateWasm)try{return a.instantiateWasm(e,t)}catch(e){return I("Module.instantiateWasm callback failed with error: "+e),!1}return b||"function"!=typeof E.instantiateStreaming||ae(le)||ce(le)||"function"!=typeof fetch?r(n):fetch(le,{credentials:"same-origin"}).then((function(t){return E.instantiateStreaming(t,e).then(n,(function(e){return I("wasm streaming compile failed: "+e),I("falling back to ArrayBuffer instantiation"),r(n)}))})),{}}ae(le)||(le=y(le));var pe={1024:function(){return a.getRandomValue()},1062:function(){if(void 0===a.getRandomValue)try{var e="object"==typeof window?window:self,t=void 0!==e.crypto?e.crypto:e.msCrypto,r=function(){var e=new Uint32Array(1);return t.getRandomValues(e),e[0]>>>0};r(),a.getRandomValue=r}catch(e){try{var o=n(6113),i=function(){var e=o.randomBytes(4);return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0};i(),a.getRandomValue=i}catch(e){throw"No secure random number generator found"}}}};function ge(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?j.get(n)():j.get(n)(t.arg):n(void 0===t.arg?null:t.arg)}else t(a)}}function me(e,t,n,r){re("Assertion failed: "+M(e)+", at: "+[t?M(t):"unknown filename",n,r?M(r):"unknown function"])}function ve(){re()}function ye(e,t,n){var r=Se(t,n);return pe[e].apply(null,r)}function be(e,t,n){Q.copyWithin(e,t,t+n)}function Ie(){return Q.length}function Ce(e){try{return C.grow(e-k.byteLength+65535>>>16),H(C.buffer),1}catch(e){}}function Ee(e){e>>>=0;var t=Ie(),n=2147483648;if(e>n)return!1;for(var r=1;r<=4;r*=2){var o=t*(1+.2/r);if(o=Math.min(o,e+100663296),Ce(Math.min(n,U(Math.max(16777216,e,o),65536))))return!0}return!1}function we(e){return P[Te()>>2]=e,e}function Be(e){switch(e){case 30:case 75:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return we(28),-1}var _e=[];function Se(e,t){var n;for(_e.length=0,t>>=2;n=Q[e++];){var r=n<105;r&&1&t&&t++,_e.push(r?x[t++>>1]:P[t]),++t}return _e}var ke=!1;function Oe(e){for(var t=[],n=0;n255&&(ke&&S(!1,"Character code "+r+" ("+String.fromCharCode(r)+") at offset "+n+" not in 0x00-0xFF."),r&=255),t.push(String.fromCharCode(r))}return t.join("")}var Qe="function"==typeof atob?atob:function(e){var t,n,r,o,i,a,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",d=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=s.indexOf(e.charAt(d++))<<2|(o=s.indexOf(e.charAt(d++)))>>4,n=(15&o)<<4|(i=s.indexOf(e.charAt(d++)))>>2,r=(3&i)<<6|(a=s.indexOf(e.charAt(d++))),c+=String.fromCharCode(t),64!==i&&(c+=String.fromCharCode(n)),64!==a&&(c+=String.fromCharCode(r))}while(d0||(Y(),X>0||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),t()}),1)):t()))}if(a._malloc=function(){return(a._malloc=a.asm.Bc).apply(null,arguments)},a._free=function(){return(a._free=a.asm.Cc).apply(null,arguments)},a.setValue=w,a.getValue=B,a.UTF8ToString=M,ee=function e(){Ne||Me(),Ne||(ee=e)},a.run=Me,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();Me()}))};var o,a=void 0!==a?a:{},s={};for(o in a)a.hasOwnProperty(o)&&(s[o]=a[o]);var c=[],d=!1,u=!1,l=!1,A=!1;d="object"==typeof window,u="function"==typeof importScripts,l="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,A=!d&&!l&&!u;var f,h,p,g,m,v="";function y(e){return a.locateFile?a.locateFile(e,v):v+e}l?(v=u?n(1017).dirname(v)+"/":__dirname+"/",f=function(e,t){var r=Qe(e);return r?t?r:r.toString():(g||(g=n(7147)),m||(m=n(1017)),e=m.normalize(e),g.readFileSync(e,t?null:"utf8"))},p=function(e){var t=f(e,!0);return t.buffer||(t=new Uint8Array(t)),_(t.buffer),t},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),c=process.argv.slice(2),e.exports=a,a.inspect=function(){return"[Emscripten Module object]"}):A?("undefined"!=typeof read&&(f=function(e){var t=Qe(e);return t?Se(t):read(e)}),p=function(e){var t;return(t=Qe(e))?t:"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(_("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?c=scriptArgs:void 0!==arguments&&(c=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(d||u)&&(u?v=self.location.href:"undefined"!=typeof document&&document.currentScript&&(v=document.currentScript.src),v=0!==v.indexOf("blob:")?v.substr(0,v.lastIndexOf("/")+1):"",f=function(e){try{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText}catch(t){var n=Qe(e);if(n)return Se(n);throw t}},u&&(p=function(e){try{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}catch(t){var n=Qe(e);if(n)return n;throw t}}),h=function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){if(200==r.status||0==r.status&&r.response)t(r.response);else{var o=Qe(e);o?t(o.buffer):n()}},r.onerror=n,r.send(null)}),a.print;var b,I,C=a.printErr||void 0;for(o in s)s.hasOwnProperty(o)&&(a[o]=s[o]);function E(e,t,n,r){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":k[e>>0]=t;break;case"i16":Q[e>>1]=t;break;case"i32":R[e>>2]=t;break;case"i64":ce=[t>>>0,(se=t,+Math.abs(se)>=1?se>0?(0|Math.min(+Math.floor(se/4294967296),4294967295))>>>0:~~+Math.ceil((se-+(~~se>>>0))/4294967296)>>>0:0)],R[e>>2]=ce[0],R[e+4>>2]=ce[1];break;case"float":P[e>>2]=t;break;case"double":N[e>>3]=t;break;default:te("invalid type for setValue: "+n)}}function w(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return k[e>>0];case"i16":return Q[e>>1];case"i32":case"i64":return R[e>>2];case"float":return P[e>>2];case"double":return N[e>>3];default:te("invalid type for getValue: "+t)}return null}s=null,a.arguments&&(c=a.arguments),a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(b=a.wasmBinary),a.noExitRuntime&&a.noExitRuntime,"object"!=typeof WebAssembly&&te("no native wasm support detected");var B=!1;function _(e,t){e||te("Assertion failed: "+t)}var S,k,O,Q,R,P,N,x="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function D(e,t,n){for(var r=t+n,o=t;e[o]&&!(o>=r);)++o;if(o-t>16&&e.subarray&&x)return x.decode(e.subarray(t,o));for(var i="";t>10,56320|1023&d)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function T(e,t){return e?D(O,e,t):""}function M(e,t){return e%t>0&&(e+=t-e%t),e}function U(e){S=e,a.HEAP8=k=new Int8Array(e),a.HEAP16=Q=new Int16Array(e),a.HEAP32=R=new Int32Array(e),a.HEAPU8=O=new Uint8Array(e),a.HEAPU16=new Uint16Array(e),a.HEAPU32=new Uint32Array(e),a.HEAPF32=P=new Float32Array(e),a.HEAPF64=N=new Float64Array(e)}a.INITIAL_MEMORY;var H,j=[],J=[],F=[],G=[];function L(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)W(a.preRun.shift());he(j)}function q(){he(J)}function Y(){he(F)}function V(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)K(a.postRun.shift());he(G)}function W(e){j.unshift(e)}function K(e){G.unshift(e)}J.push({func:function(){Ne()}});var Z=0,z=null,X=null;function $(e){Z++,a.monitorRunDependencies&&a.monitorRunDependencies(Z)}function ee(e){if(Z--,a.monitorRunDependencies&&a.monitorRunDependencies(Z),0==Z&&(null!==z&&(clearInterval(z),z=null),X)){var t=X;X=null,t()}}function te(e){throw a.onAbort&&a.onAbort(e),C(e+=""),B=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}function ne(e,t){return String.prototype.startsWith?e.startsWith(t):0===e.indexOf(t)}a.preloadedImages={},a.preloadedAudios={};var re="data:application/octet-stream;base64,";function oe(e){return ne(e,re)}var ie="file://";function ae(e){return ne(e,ie)}var se,ce,de="data:application/octet-stream;base64,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CiASfnwgCSALfnwiEUKAgIAQfCIUQhqHfCIiQoCAgAh8IiNCGYd8IhkgGUKAgIAQfCIZQoCAgOAPg30+AgggACASIBh+IA0gDn58IAkgEH58IAwgHH58IAsgF358IBNCGod8IhMgE0KAgIAIfCITQoCAgPAPg30+AhwgACAMIBp+IAkgFX58IBAgFn58IAogD358IAsgDX58IBlCGod8IgogCkKAgIAIfCIKQoCAgPAPg30+AgwgACAQIBJ+IA0gDX58IA4gD358IAkgG358IAwgF358IAsgA6wiDX58IBNCGYd8IgsgC0KAgIAQfCILQoCAgOAPg30+AiAgACAgICFCgICA8A+DfSAeIB9CgICAYIN9IApCGYd8IgpCgICAEHwiD0IaiHw+AhQgACAKIA9CgICA4A+DfT4CECAAIA4gEH4gGCAdfnwgEiAcfnwgCSAXfnwgDCANfnwgC0Iah3wiCSAJQoCAgAh8IglCgICA8A+DfT4CJCAAICIgI0KAgIDwD4N9IBEgFEKAgIBgg30gCUIZh0ITfnwiCUKAgIAQfCIMQhqIfD4CBCAAIAkgDEKAgIDgD4N9PgIACxAAIAAzAAAgADEAAkIQhoQL8wICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACwkAIAAgATcAAAuCBAEDfyACQYAETwRAIAAgASACEAQaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvsAQESfyACKAIEIQMgASgCBCEEIAIoAgghBSABKAIIIQYgAigCDCEHIAEoAgwhCCACKAIQIQkgASgCECEKIAIoAhQhCyABKAIUIQwgAigCGCENIAEoAhghDiACKAIcIQ8gASgCHCEQIAIoAiAhESABKAIgIRIgAigCJCETIAEoAiQhFCAAIAIoAgAgASgCAGo2AgAgACATIBRqNgIkIAAgESASajYCICAAIA8gEGo2AhwgACANIA5qNgIYIAAgCyAMajYCFCAAIAkgCmo2AhAgACAHIAhqNgIMIAAgBSAGajYCCCAAIAMgBGo2AgQLGAEBf0HEnAIoAgAiAARAIAARDgALEAIAC0ABA38gACABIAFB+ABqIgIQCyAAQShqIAFBKGoiAyABQdAAaiIEEAsgAEHQAGogBCACEAsgAEH4AGogASADEAsL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREg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czYCFCABIAUgEHM2AhAgASAEIA9zNgIMIAEgAyANczYCCCABIAAgC3M2AgQgASAWIBdzNgIACykBAX8jAEGAAWsiAiQAIAJBCGogARDoAiAAIAJBCGoQOSACQYABaiQACzIBAX8gACABIAFB+ABqIgIQCyAAQShqIAFBKGogAUHQAGoiARALIABB0ABqIAEgAhALC68CARN/IAEoAgQhDCAAKAIEIQMgASgCCCENIAAoAgghBCABKAIMIQ4gACgCDCEFIAEoAhAhDyAAKAIQIQYgASgCFCEQIAAoAhQhByABKAIYIREgACgCGCEIIAEoAhwhEiAAKAIcIQkgASgCICETIAAoAiAhCiABKAIkIRQgACgCJCELIABBACACayICIAAoAgAiFSABKAIAc3EgFXM2AgAgACALIAsgFHMgAnFzNgIkIAAgCiAKIBNzIAJxczYCICAAIAkgCSAScyACcXM2AhwgACAIIAggEXMgAnFzNgIYIAAgByAHIBBzIAJxczYCFCAAIAYgBiAPcyACcXM2AhAgACAFIAUgDnMgAnFzNgIMIAAgBCAEIA1zIAJxczYCCCAAIAMgAyAMcyACcXM2AgQLJAEBfyMAQSBrIgEkACABIAAQLSABQSAQZSEAIAFBIGokACAAC6YEAgp/Dn4gACgCJCEEIAAoAiAhBSAAKAIcIQYgACgCGCEHIAAoAhQhAyACQhBaBEAgAC0AUEVBGHQhCCAAKAIEIglBBWytIRkgACgCCCIKQQVsrSEXIAAoAgwiC0EFbK0hFSAAKAIQIgxBBWytIRMgDK0hGiALrSEYIAqtIRYgCa0hFCAANQIAIRIDQCABKAADQQJ2Qf///x9xIAdqrSINIBh+IAEoAABB////H3EgA2qtIg4gGn58IAEoAAZBBHZB////H3EgBmqtIg8gFn58IAEoAAlBBnYgBWqtIhAgFH58IAQgCGogASgADEEIdmqtIhEgEn58IA0gFn4gDiAYfnwgDyAUfnwgECASfnwgESATfnwgDSAUfiAOIBZ+fCAPIBJ+fCAQIBN+fCARIBV+fCANIBJ+IA4gFH58IA8gE358IBAgFX58IBEgF358IA0gE34gDiASfnwgDyAVfnwgECAXfnwgESAZfnwiDUIaiEL/////D4N8Ig5CGohC/////w+DfCIPQhqIQv////8Pg3wiEEIaiEL/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aiAFIAYQDCAJQQhqIAYQESAJQdAAaiAJQQhqQggQDCAAIAMgBCAHIAgQogEgCUHQAGogACAEEAwgCUEIaiAEEBEgCUHQAGogCUEIakIIEAwgCUHQAGogARAjIAlB0ABqQYACEAkgAgRAIAJCEDcDAAsgCUHQAmokAEEACygAIAJCgICAgBBaBEAQFAALIAAgASACIANCASAEQfCXAigCABEVABoLFgAgAELAACABIAJB6JcCKAIAEREAGgsyACAAIAIEfyACKAAABUEACzYCMCAAIAEoAAA2AjQgACABKAAENgI4IAAgASgACDYCPAs9ACAAAn8gAgRAIAAgAigAADYCMCACKAAEDAELIABBADYCMEEACzYCNCAAIAEoAAA2AjggACABKAAENgI8CxkAIAAgASACIANCASAEQeSXAigCABEVABoLKAEBfyMAQRBrIgAkACAAQQA6AA9BpgggAEEPakEAEAEaIABBEGokAAtqAQN/IwBBEGsiAyQAIANBADoAD0F/IQUgACABIAJB2JcCKAIAEQMARQRAA0AgAyAAIARqLQAAIAMtAA9yOgAPIARBAWoiBEEgRw0AC0EAIAMtAA9BAWtBCHZBAXFrIQULIANBEGokACAFCxMAIAAgAUHAB2xBoBtqIAIQ5gILEAAgAEIANwIAIABCADcCCAsdACAAEDggAEEoahAdIABB0ABqEB0gAEH4AGoQOAuAAgEIfwNAIAAgAmogASACQQN2ai0AACACQQdxdkEBcToAACACQQFqIgJBgAJHDQALA0AgBCIBQQFqIQQCQCAAIAFqIgYtAABFDQAgBCECQQEhBSABQf4BSw0AA0ACQCAAIAJqIgMsAAAiB0UNACAHIAV0IgcgBiwAACIIaiIJQQ9MBEAgBiAJOgAAIANBADoAAAwBCyAIIAdrIgNBcUgNAiAGIAM6AAADQCAAIAJqIgMtAABFBEAgA0EBOgAADAILIANBADoAACACQf8BSSEDIAJBAWohAiADDQALCyAFQQVLDQEgBUEBaiIFIAFqIgJBgAJJDQALCyAEQYACRw0ACwuVAQEEfyMAQTBrIgUkACAAIAFBKGoiAyABEBMgAEEoaiIEIAMgARAWIABB0ABqIgMgACACQShqEAsgBCAEIAIQCyAAQfgAaiIGIAJB+ABqIAFB+ABqEAsgACABQdAAaiACQdAA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CSACQYAIaiQAC/ADAQJ/IwAiAyEEIANBwANrQUBxIgMkACAARSABRXJFBEAgA0FAa0EAQQBBwAAQPhogA0E8aiABKAIwEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIEEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIsEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIoEAogA0FAayADQTxqQgQQGBogA0E8akETEAogA0FAayADQTxqQgQQGBogA0E8aiACEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIMEAogA0FAayADQTxqQgQQGBoCQCABKAIIIgJFDQAgA0FAayACIAE1AgwQGBogAS0AOEEBcUUNACABKAIIIAEoAgwQCSABQQA2AgwLIANBPGogASgCFBAKIANBQGsgA0E8akIEEBgaIAEoAhAiAgRAIANBQGsgAiABNQIUEBgaCyADQTxqIAEoAhwQCiADQUBrIANBPGpCBBAYGgJAIAEoAhgiAkUNACADQUBrIAIgATUCHBAYGiABLQA4QQJxRQ0AIAEoAhggASgCHBAJIAFBADYCHAsgA0E8aiABKAIkEAogA0FAayADQTxqQgQQGBogASgCICICBEAgA0FAayACIAE1AiQQGBoLIANBQGsgAEHAABA9GgsgBCQAC68BAQN/IwBBEGsiAiQAQWohAwJAIABFIAFFcg0AIAFBCnQiBCABbkGACEcNACAAQQwQICIBNgIAIAFFDQAgAUIANwIAQYCYAiACQQxqIAQQsgEiATYCAAJAAkAgAQRAIAJBADYCDAwBCyACKAIMIgENAQsgACgCABAZIABBADYCAAwBCyAAKAIAIAE2AgAgACgCACABNgIEIAAoAgAgBDYCCEEAIQMLIAJBEGokACADC4cBAQJ/IwBB0ABrIgMkAEFnIQICQCAARSABRXINACAAIAAoAhRBA3QQICICNgIEIAJFBEBBaiECDAELIAAgACgCEBC8ASICBEAgACABKAI4EIMBDAELIAMgASAAKAIkELsBIANBQGtBCBAJIAMgABC6ASADQcgAEAlBACECCyADQdAAaiQAIAILkwEBBH8jAEEgayICJAACQCAARQ0AIAAoAhxFDQAgAiABNgIQQQEhBANAIAIgAzoAGEEAIQFBACEFIAQEQANAIAJBADYCHCACIAIpAxg3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ACAAIAEgAiADrSAErUIghoQgBSAGEGoLFwAgACABIAKtIAOtQiCGhCAEIAUQuwILFgAgACABKQAANwAwIAAgASkACDcAOAsYACAAIAEgAiADrSAErUIghoQgBSAGEGsLEwAgACABrSACrUIghoQgAxCSAgsTACAAIAEgAq0gA61CIIaEEJMCCyEAIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYgBxCUAgsfACAAIAEgAq0gA61CIIaEIAStIAWtQiCGhCAGEIwBCy0AIAAgAa0gAq1CIIaEIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChCVAgsXACAAIAEgAq0gA61CIIaEIAQgBRCzAgsSACAAIAEgAq0gA61CIIaEEDQLEgAgACABIAKtIAOtQiCGhBAlCxkAIAAgASACIAOtIAStQiCGhCAFIAYQlAELFgAgACABKQAANwAgIAAgASkACDcAKAsXACAAIAEgAq0gA61CIIaEIAQgBRC1AgsVACAAIAEgAq0gA61CIIaEIAQQtgILGQAgACABIAKtIAOtQiCGhCAEIAUgBhCVAQsXACAAIAEgAq0gA61CIIaEIAQgBRC4AgsbACAAIAEgAiADrSAErUIghoQgBSAGIAcQlgELGAAgACABIAIgA60gBK1CIIaEIAUgBhBoCxkAIAAgASACrSADrUIghoQgBCAFIAYQlwELFwAgACABIAKtIAOtQiCGhCAEIAUQuQILGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJgBCxgAIAAgASACIAOtIAStQiCGhCAFIAYQaQsVACAAIAEgAq0gA61CIIaEIAQQwAILFQAgACABIAKtIAOtQiCGhCAEEJoBCyUAIAAgASADIAStIAWtQiCGhCAGIAetIAitQiCGhCAJIAoQyQILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCcAQslACAAIAEgAiADrSAErUIghoQgBSAGrSAHrUIghoQgCSAKEMsCCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxCdAQslACAAIAEgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCSAKEM8CCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQngELJQAgACABIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChDQAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEJ8BCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0QILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKABCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0gILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKEBCwQAQQoLBgBBspcCCwsAIAAgASACEIICCw0AIAAgASACIAMQgwILCAAgABA1QQALCQAgACABEIgCCwsAIAAgASACEIoBCwUAQb9/CwUAQdABCywBAX8jAEFAaiIDJAAgACADECcgASADQsAAIAJBARCHASEAIANBQGskACAACy4BAX8jAEFAaiIEJAAgACAEECcgASACIARCwAAgA0EBEIkBIQAgBEFAayQAIAALewEBfwJAAkACQCADQsAAVA0AIANCQHwiA0K/////D1YNACACIAJBQGsiBSADIAQQhgFFDQEgAEUNACAAQQAgA6cQEBoLQX8hAiABRQ0BIAFCADcDAEF/DwsgAQRAIAEgAzcDAAtBACECIABFDQAgACAFIAOnEEcaCyACC3MBAX8jAEEQayIFJAAgACAFQQhqIABBQGsgAiADpyICEEcgAyAEEIgBGgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQEBpBfyEADAELQQAhACABRQ0AIAEgA0JAfTcDAAsgBUEQaiQAIAALbQEBfyMAQUBqIgIkACACIAFCIBA0GiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQCSACQUBrJABBAAuGAQECfyMAQYACayICJABBfyEDAkAgARB1DQAgAkHgAGogARCuAQ0AIAJB4ABqEOUCRQ0AIAIQHSACIAIgAkGIAWoiARAWIAJBMGoQHSACQTBqIAJBMGogARATIAIgAhA6IAJBMGogAkEwaiACEAsgACACQTBqEC1BACEDCyACQYACaiQAIAMLLAEBfyMAQSBrIgIkACACQSAQHyAAIAEg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ASACQhB9IAMgBBBqBSAFCwslACACQvD///8PWgRAEBQACyAAQRBqIAAgASACIAMgBBBrGkEACwsAIAAgASACEL8CCy8AIAFCgICAgBBaBEBBACIAQYQOaiAAQZgOakHFASAAQbIOahAAAAsgACABpxAfCzMBAn8jAEEgayIDJABBfyEEIAMgAiABEKgBRQRAIABB4JUCIAMQbSEECyADQSBqJAAgBAtWAQF/IwBBQGoiAyQAIAMgAkIgEDQaIAEgAykDGDcAGCABIAMpAxA3ABAgASADKQMINwAIIAEgAykDADcAACADQcAAEAkgACABEHIhACADQUBrJAAgAAtAAQF/IwBBIGsiBCQAIAQgASACIAMQmgEaIAAgBBCAASEBIAQgAEEgEEUhAyAEQSBqJAAgA0F/IAEgACAERhtyC0MBAX8jAEFAaiICJAAgACACEMICIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACACQUBrJAALNwEBfyMAQUBqIgIkACAAIAIQJyAAQdABaiIAIAJCwAAQHBogACABECcgAkHAABAJIAJBQGskAAvhAQEDfyMAQcABayICJAAgABA1IAJBQGtBNkGAARAQGiACIAEtAABBNnM6AEBBASEDA0AgAkFAayADaiIEIAQtAAAgASADai0AAHM6AAAgA0EBaiIDQSBHDQALIAAgAkFAa0KAARAcGiAAQdABaiIAEDUgAkFAa0HcAEGAARAQGiACIAEtAABB3ABzOgBAQQEhAwNAIAJBQGsgA2oiBCAELQAAIAEgA2otAABzOgAAIANBAWoiA0EgRw0ACyAAIAJBQGtCgAEQHBogAkFAa0GAARAJIAJBwAAQCSACQcABaiQAC2YBAX4gACkAACIBQjiGIAFCKIZCgICAgICAwP8Ag4QgAUIYhkKAgICAgOA/gyABQgiGQoCAgIDwH4OEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhAsmAQJ/AkBBpJwCKAIAIgBFDQAgACgCFCIARQ0AIAARAQAhAQsgAQtkACAAIAFCKIZCgICAgICAwP8AgyABQjiGhCABQhiGQoCAgICA4D+DIAFCCIZCgICAgPAfg4SEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4D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BiADakENEAggDXMiDSAGakESEAggBXMhBSAaQRJJIRAgGkECaiEaIBANAAsgACACQeXwwYsGahAKIABBBGogByASahAKIABBCGogCCATahAKIABBDGogESAUahAKIABBEGogCSAVahAKIABBFGogDkHuyIGZA2oQCiAAQRhqIAogG2oQCiAAQRxqIAsgHGoQCiAAQSBqIAwgHWoQCiAAQSRqIA8gHmoQCiAAQShqIAFBstqIywdqEAogAEEsaiAEIBZqEAogAEEwaiADIBdqEAogAEE0aiAGIBhqEAogAEE4aiANIBlqEAogAEE8aiAFQfTKgdkGahAKCzoBAX8jAEHgAGsiAyQAIANBMGogAiABEBMgAyACIAEQFiADIAMQOiAAIANBMGogAxALIANB4ABqJAALdgECfyMAQdABayICJAADQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyACQTBqIAAQdiACIAJB2ABqIAJBgAFqENwCIAAgAhAtIAJB0AFqJABBAAu9AwEMfiABNAIEIQIgATQCCCEDIAE0AgwhBCABNAIQIQUgATQCFCEGIAE0AhghByABNAIAIQsgACABNAIkQsK2B34iCCAIQoCAgAh8IghCgICA8A+DfSABNAIgQsK2B34gATQCHELCtgd+IglCgICACHwiCkIZh3wiDEKAgIAQfCINQhqIfD4CJCAAIAwgDUKAgIDgD4N9PgIgIAAgCSAKQoCAgPAPg30gB0LCtgd+IAZCwrYHfiIGQoCAgAh8IgdCGYd8IglCgICAEHwiCkIaiHw+AhwgACAJIApCgICA4A+DfT4CGCAAIAYgB0KAgIDwD4N9IAVCwrYHfiAEQsK2B34iBEKAgIAIfCIFQhmHfCIGQoCAgBB8IgdCGoh8PgIUIAAgBiAHQoCAgOAPg30+AhAgACAEIAVCgICA8A+DfSADQsK2B34gAkLCtgd+IgJCgICACHwiA0IZh3wiBEKAgIAQfCIFQhqIfD4CDCAAIAQgBUKAgIDgD4N9PgIIIAAgAiADQoCAgPAPg30gCEIZh0ITfiALQsK2B358IgJCgICAEHwiA0IaiHw+AgQgACACIANCgICA4A+DfT4CAAvcAQEFfyMAQRBrIgNBADYACyADQQA2AggDQCAAIAJqLQAAIQRBACEBA0AgA0EIaiABaiIFIAUtAAAgAUEFdEGgjQJqIAJqLQAAIARzcjoAACABQQFqIgFBB0cNAAsgAkEBaiICQR9HDQALIAAtAB9B/wBxIQJBACEAQQAhAQNAIANBCGogAWoiBCAELQAAIAIgAUEFdEG/jQJqLQAAc3I6AAAgAUEBaiIBQQdHDQALQQAhAQNAIANBCGogAGotAABBAWsgAXIhASAAQQFqIgBBB0cNAAsgAUEIdkEBcQvcBAEDfyMAQdACayIDJABBfyEEIAIQ3wJFBEBBACEEA0AgACAEaiABIARqLQAAOgAAIARBAWoiBEEgRw0ACyAAIAAtAABB+AFxOgAAIAAgAC0AH0E/cUHAAHI6AB8gA0GgAmogAhB7IANB8AFqEB0gA0HAAWoQOCADQZABaiADQaACahAsIANB4ABqEB1B/gEhAkEAIQQDQCADQfABaiADQZABaiAAIAIiBUEDdmotAAAgAkEHcXZBAXEiASAEcyIEEE4gA0HAAWogA0HgAGogBBBOIAJBAWshAiADQTBqIANBkAFqIANB4ABqEBYgAyADQfABaiADQcABahAWIANB8AFqIANB8AFqIANBwAFqEBMgA0HAAWogA0GQAWogA0HgAGoQEyADQeAAaiADQTBqIANB8AFqEAsgA0HAAWogA0HAAWogAxALIANBMGogAxAOIAMgA0HwAWoQDiADQZABaiADQeAAaiADQcABahATIANBwAFqIANB4ABqIANBwAFqEBYgA0HwAWogAyADQTBqEAsgAyADIANBMGoQFiADQcABaiADQcABahAOIANB4ABqIAMQ3gIgA0GQAWogA0GQAWoQDiADQTBqIANBMGogA0HgAGoQEyADQeAAaiADQaACaiADQcABahALIANBwAFqIAMgA0EwahALIAEhBCAFDQALIANB8AFqIANBkAFqIAEQTiADQcABaiADQeAAaiABEE4gA0HAAWogA0HAAWoQOiADQfABaiADQfABaiADQcABahALIAAgA0HwAWoQLUEAIQQLIANB0AJqJAAgBAtUAQV/QSAhAUEBIQIDQCAAIAFBAWsiAWotAAAiBCABQYAbai0AACIFa0EIdSACcSADQf8BcXIhAyAEIAVzQf//A2pBCHYgAnEhAiABDQALIANBAEcL6B4BOn4gARAPIRIg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CiAAIAtC////AIMgBEIVh3wiBkIKiDwAESAAIAZCAog8ABAgACAEQv///wCDIgdCAYYgBUIUiIQ8AA0gACAMQv///wCDIAZCFYd8IgRCDYg8ABQgACAEQgWIPAATIAAgBkL///8AgyIFQgaGIAdCD4iEPAAPIAAgDkL///8AgyAEQhWHfCIGPAAVIAAgBEIDhiAFQhKIhDwAEiAAIAZCCIg8ABYgACAPQv///wCDIAZCFYd8IgRCC4g8ABkgACAEQgOIPAAYIAAgEEL///8AgyAEQhWHfCIFQgaIPAAbIAAgBkIQiEIfgyAEQv///wCDIgRCBYaEPAAXIAAgDUL///8AgyAFQhWHfCIGQhGIPAAfIAAgBkIJiDwAHiAAIAZCAYg8AB0gACAFQv///wCDIgVCAoYgBEITiIQ8ABogACAGQgeGIAVCDoiEPAAcC1IBA38gAC0AH0F/c0H/AHEhAUEeIQIDQCABIAAgAmotAABBf3NyIQEgAkEBayIDIQIgAw0ACyABQf8BcUEBa0HsASAALQAAa3FBCHZBf3NBAXELjAQBAn8jAEHgDWsiAiQAIAJB4ANqIAEQGyACQcACaiABEE8gAiACQcACahAVIAJBwAJqIAIgAkHgA2oQGiACQaABaiACQcACahAVIAJBgAVqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAZqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAdqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJB4AhqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBgApqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAtqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAxqIAJBoAFqEBsgABCrAUH8ASEBA0AgAkHAAmogABBPAkAgASIDQaCLAmosAAAiAUEBTgRAIAJBoAFqIAJBwAJqEBUgAkHAAmogAkGgAWogAkHgA2ogAUH+AXFBAXZBoAFsahAaDAELIAFBf0oNACACQaABaiACQcACahAVIAJBwAJqIAJBoAFqIAJB4ANqQQAgAWtB/gFx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/////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBnxsL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4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ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBnI0CCwEBAEHAjQILAQEAQeCNAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQaCPAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB8JUCC4UBYjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJABBkJcCCyhTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAMS4wLjE4AEG8lwILOVCOUAAAQAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ==";function ue(e){try{if(e==de&&b)return new Uint8Array(b);var t=Qe(e);if(t)return t;if(p)return p(e);throw"both async and sync fetching of the wasm failed"}catch(e){te(e)}}function le(){if(!b&&(d||u)){if("function"==typeof fetch&&!ae(de))return fetch(de,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+de+"'";return e.arrayBuffer()})).catch((function(){return ue(de)}));if(h)return new Promise((function(e,t){h(de,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return ue(de)}))}function Ae(){var e={a:Pe};function t(e,t){var n=e.exports;a.asm=n,U((I=a.asm.g).buffer),H=a.asm.h,ee()}function n(e){t(e.instance)}function r(t){return le().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){C("failed to asynchronously prepare wasm: "+e),te(e)}))}if($(),a.instantiateWasm)try{return a.instantiateWasm(e,t)}catch(e){return C("Module.instantiateWasm callback failed with error: "+e),!1}return b||"function"!=typeof WebAssembly.instantiateStreaming||oe(de)||ae(de)||"function"!=typeof fetch?r(n):fetch(de,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(n,(function(e){return C("wasm streaming compile failed: "+e),C("falling back to ArrayBuffer instantiation"),r(n)}))})),{}}oe(de)||(de=y(de));var fe={1024:function(){return a.getRandomValue()},1062:function(){if(void 0===a.getRandomValue)try{var e="object"==typeof window?window:self,t=void 0!==e.crypto?e.crypto:e.msCrypto,r=function(){var e=new Uint32Array(1);return t.getRandomValues(e),e[0]>>>0};r(),a.getRandomValue=r}catch(e){try{var o=n(6113),i=function(){var e=o.randomBytes(4);return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0};i(),a.getRandomValue=i}catch(e){throw"No secure random number generator found"}}}};function he(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?H.get(n)():H.get(n)(t.arg):n(void 0===t.arg?null:t.arg)}else t(a)}}function pe(e,t,n,r){te("Assertion failed: "+T(e)+", at: "+[t?T(t):"unknown filename",n,r?T(r):"unknown function"])}function ge(){te()}function me(e,t,n){var r=Be(t,n);return fe[e].apply(null,r)}function ve(e,t,n){O.copyWithin(e,t,t+n)}function ye(){return O.length}function be(e){try{return I.grow(e-S.byteLength+65535>>>16),U(I.buffer),1}catch(e){}}function Ie(e){e>>>=0;var t=ye(),n=2147483648;if(e>n)return!1;for(var r=1;r<=4;r*=2){var o=t*(1+.2/r);if(o=Math.min(o,e+100663296),be(Math.min(n,M(Math.max(16777216,e,o),65536))))return!0}return!1}function Ce(e){return R[xe()>>2]=e,e}function Ee(e){switch(e){case 30:case 75:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return Ce(28),-1}var we=[];function Be(e,t){var n;for(we.length=0,t>>=2;n=O[e++];){var r=n<105;r&&1&t&&t++,we.push(r?N[t++>>1]:R[t]),++t}return we}var _e=!1;function Se(e){for(var t=[],n=0;n255&&(_e&&_(!1,"Character code "+r+" ("+String.fromCharCode(r)+") at offset "+n+" not in 0x00-0xFF."),r&=255),t.push(String.fromCharCode(r))}return t.join("")}var ke="function"==typeof atob?atob:function(e){var t,n,r,o,i,a,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",d=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=s.indexOf(e.charAt(d++))<<2|(o=s.indexOf(e.charAt(d++)))>>4,n=(15&o)<<4|(i=s.indexOf(e.charAt(d++)))>>2,r=(3&i)<<6|(a=s.indexOf(e.charAt(d++))),c+=String.fromCharCode(t),64!==i&&(c+=String.fromCharCode(n)),64!==a&&(c+=String.fromCharCode(r))}while(d0||(L(),Z>0||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),t()}),1)):t()))}if(a._malloc=function(){return(a._malloc=a.asm.Bc).apply(null,arguments)},a._free=function(){return(a._free=a.asm.Cc).apply(null,arguments)},a.setValue=E,a.getValue=w,a.UTF8ToString=T,X=function e(){Re||De(),Re||(X=e)},a.run=De,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();De()})).catch((function(){return i.useBackupModule()})),r},void 0===(o=r.apply(t,[t]))||(e.exports=o)},3720:e=>{e.exports=n;var t=null;try{t=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function n(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function r(e){return!0===(e&&e.__isLong__)}n.prototype.__isLong__,Object.defineProperty(n.prototype,"__isLong__",{value:!0}),n.isLong=r;var o={},i={};function a(e,t){var n,r,a;return t?(a=0<=(e>>>=0)&&e<256)&&(r=i[e])?r:(n=c(e,(0|e)<0?-1:0,!0),a&&(i[e]=n),n):(a=-128<=(e|=0)&&e<128)&&(r=o[e])?r:(n=c(e,e<0?-1:0,!1),a&&(o[e]=n),n)}function s(e,t){if(isNaN(e))return t?m:g;if(t){if(e<0)return m;if(e>=f)return C}else{if(e<=-h)return E;if(e+1>=h)return I}return e<0?s(-e,t).neg():c(e%A|0,e/A|0,t)}function c(e,t,r){return new n(e,t,r)}n.fromInt=a,n.fromNumber=s,n.fromBits=c;var d=Math.pow;function u(e,t,n){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return g;if("number"==typeof t?(n=t,t=!1):t=!!t,(n=n||10)<2||360)throw Error("interior hyphen");if(0===r)return u(e.substring(1),t,n).neg();for(var o=s(d(n,8)),i=g,a=0;a>>0:this.low},w.toNumber=function(){return this.unsigned?(this.high>>>0)*A+(this.low>>>0):this.high*A+(this.low>>>0)},w.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=c).isZero())return u+a;for(;u.length<6;)u="0"+u;a=""+u+a}},w.getHighBits=function(){return this.high},w.getHighBitsUnsigned=function(){return this.high>>>0},w.getLowBits=function(){return this.low},w.getLowBitsUnsigned=function(){return this.low>>>0},w.getNumBitsAbs=function(){if(this.isNegative())return this.eq(E)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},w.isOdd=function(){return 1==(1&this.low)},w.isEven=function(){return 0==(1&this.low)},w.equals=function(e){return r(e)||(e=l(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},w.eq=w.equals,w.notEquals=function(e){return!this.eq(e)},w.neq=w.notEquals,w.ne=w.notEquals,w.lessThan=function(e){return this.comp(e)<0},w.lt=w.lessThan,w.lessThanOrEqual=function(e){return this.comp(e)<=0},w.lte=w.lessThanOrEqual,w.le=w.lessThanOrEqual,w.greaterThan=function(e){return this.comp(e)>0},w.gt=w.greaterThan,w.greaterThanOrEqual=function(e){return this.comp(e)>=0},w.gte=w.greaterThanOrEqual,w.ge=w.greaterThanOrEqual,w.compare=function(e){if(r(e)||(e=l(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},w.comp=w.compare,w.negate=function(){return!this.unsigned&&this.eq(E)?E:this.not().add(v)},w.neg=w.negate,w.add=function(e){r(e)||(e=l(e));var t=this.high>>>16,n=65535&this.high,o=this.low>>>16,i=65535&this.low,a=e.high>>>16,s=65535&e.high,d=e.low>>>16,u=0,A=0,f=0,h=0;return f+=(h+=i+(65535&e.low))>>>16,A+=(f+=o+d)>>>16,u+=(A+=n+s)>>>16,u+=t+a,c((f&=65535)<<16|(h&=65535),(u&=65535)<<16|(A&=65535),this.unsigned)},w.subtract=function(e){return r(e)||(e=l(e)),this.add(e.neg())},w.sub=w.subtract,w.multiply=function(e){if(this.isZero())return g;if(r(e)||(e=l(e)),t)return c(t.mul(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned);if(e.isZero())return g;if(this.eq(E))return e.isOdd()?E:g;if(e.eq(E))return this.isOdd()?E:g;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(p)&&e.lt(p))return s(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,o=65535&this.high,i=this.low>>>16,a=65535&this.low,d=e.high>>>16,u=65535&e.high,A=e.low>>>16,f=65535&e.low,h=0,m=0,v=0,y=0;return v+=(y+=a*f)>>>16,m+=(v+=i*f)>>>16,v&=65535,m+=(v+=a*A)>>>16,h+=(m+=o*f)>>>16,m&=65535,h+=(m+=i*A)>>>16,m&=65535,h+=(m+=a*u)>>>16,h+=n*f+o*A+i*u+a*d,c((v&=65535)<<16|(y&=65535),(h&=65535)<<16|(m&=65535),this.unsigned)},w.mul=w.multiply,w.divide=function(e){if(r(e)||(e=l(e)),e.isZero())throw Error("division by zero");var n,o,i;if(t)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?c((this.unsigned?t.div_u:t.div_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?m:g;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return m;if(e.gt(this.shru(1)))return y;i=m}else{if(this.eq(E))return e.eq(v)||e.eq(b)?E:e.eq(E)?v:(n=this.shr(1).div(e).shl(1)).eq(g)?e.isNegative()?v:b:(o=this.sub(e.mul(n)),i=n.add(o.div(e)));if(e.eq(E))return this.unsigned?m:g;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=g}for(o=this;o.gte(e);){n=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:d(2,a-48),A=s(n),f=A.mul(e);f.isNegative()||f.gt(o);)f=(A=s(n-=u,this.unsigned)).mul(e);A.isZero()&&(A=v),i=i.add(A),o=o.sub(f)}return i},w.div=w.divide,w.modulo=function(e){return r(e)||(e=l(e)),t?c((this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},w.mod=w.modulo,w.rem=w.modulo,w.not=function(){return c(~this.low,~this.high,this.unsigned)},w.and=function(e){return r(e)||(e=l(e)),c(this.low&e.low,this.high&e.high,this.unsigned)},w.or=function(e){return r(e)||(e=l(e)),c(this.low|e.low,this.high|e.high,this.unsigned)},w.xor=function(e){return r(e)||(e=l(e)),c(this.low^e.low,this.high^e.high,this.unsigned)},w.shiftLeft=function(e){return r(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?c(this.low<>>32-e,this.unsigned):c(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):c(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},w.shr=w.shiftRight,w.shiftRightUnsigned=function(e){if(r(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return e<32?c(this.low>>>e|t<<32-e,t>>>e,this.unsigned):c(32===e?t:t>>>e-32,0,this.unsigned)},w.shru=w.shiftRightUnsigned,w.shr_u=w.shiftRightUnsigned,w.toSigned=function(){return this.unsigned?c(this.low,this.high,!1):this},w.toUnsigned=function(){return this.unsigned?this:c(this.low,this.high,!0)},w.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},w.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},w.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},n.fromBytes=function(e,t,r){return r?n.fromBytesLE(e,t):n.fromBytesBE(e,t)},n.fromBytesLE=function(e,t){return new n(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},n.fromBytesBE=function(e,t){return new n(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},9593:(e,t,n)=>{"use strict";const r=n(4411),o=Symbol("max"),i=Symbol("length"),a=Symbol("lengthCalculator"),s=Symbol("allowStale"),c=Symbol("maxAge"),d=Symbol("dispose"),u=Symbol("noDisposeOnSet"),l=Symbol("lruList"),A=Symbol("cache"),f=Symbol("updateAgeOnGet"),h=()=>1,p=(e,t,n)=>{const r=e[A].get(t);if(r){const t=r.value;if(g(e,t)){if(v(e,r),!e[s])return}else n&&(e[f]&&(r.value.now=Date.now()),e[l].unshiftNode(r));return t.value}},g=(e,t)=>{if(!t||!t.maxAge&&!e[c])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[c]&&n>e[c]},m=e=>{if(e[i]>e[o])for(let t=e[l].tail;e[i]>e[o]&&null!==t;){const n=t.prev;v(e,t),t=n}},v=(e,t)=>{if(t){const n=t.value;e[d]&&e[d](n.key,n.value),e[i]-=n.length,e[A].delete(n.key),e[l].removeNode(t)}};class y{constructor(e,t,n,r,o){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=o||0}}const b=(e,t,n,r)=>{let o=n.value;g(e,o)&&(v(e,n),e[s]||(o=void 0)),o&&t.call(r,o.value,o.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[o]=e.max||1/0;const t=e.length||h;if(this[a]="function"!=typeof t?h:t,this[s]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[c]=e.maxAge||0,this[d]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[f]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[o]=e||1/0,m(this)}get max(){return this[o]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[c]=e,m(this)}get maxAge(){return this[c]}set lengthCalculator(e){"function"!=typeof e&&(e=h),e!==this[a]&&(this[a]=e,this[i]=0,this[l].forEach((e=>{e.length=this[a](e.value,e.key),this[i]+=e.length}))),m(this)}get lengthCalculator(){return this[a]}get length(){return this[i]}get itemCount(){return this[l].length}rforEach(e,t){t=t||this;for(let n=this[l].tail;null!==n;){const r=n.prev;b(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[l].head;null!==n;){const r=n.next;b(this,e,n,t),n=r}}keys(){return this[l].toArray().map((e=>e.key))}values(){return this[l].toArray().map((e=>e.value))}reset(){this[d]&&this[l]&&this[l].length&&this[l].forEach((e=>this[d](e.key,e.value))),this[A]=new Map,this[l]=new r,this[i]=0}dump(){return this[l].map((e=>!g(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[l]}set(e,t,n){if((n=n||this[c])&&"number"!=typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[a](t,e);if(this[A].has(e)){if(s>this[o])return v(this,this[A].get(e)),!1;const a=this[A].get(e).value;return this[d]&&(this[u]||this[d](e,a.value)),a.now=r,a.maxAge=n,a.value=t,this[i]+=s-a.length,a.length=s,this.get(e),m(this),!0}const f=new y(e,t,s,r,n);return f.length>this[o]?(this[d]&&this[d](e,t),!1):(this[i]+=f.length,this[l].unshift(f),this[A].set(e,this[l].head),m(this),!0)}has(e){if(!this[A].has(e))return!1;const t=this[A].get(e).value;return!g(this,t)}get(e){return p(this,e,!0)}peek(e){return p(this,e,!1)}pop(){const e=this[l].tail;return e?(v(this,e),e.value):null}del(e){v(this,this[A].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],o=r.e||0;if(0===o)this.set(r.k,r.v);else{const e=o-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[A].forEach(((e,t)=>p(this,t,!1)))}}},9746:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},4504:(e,t)=>{"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function o(e){for(var t="",n=0;n>8,a=255&o;i?n.push(i,a):n.push(a)}return n},n.zero2=r,n.toHex=o,n.encode=function(e,t){return"hex"===t?o(e):e}},7824:e=>{var t=1e3,n=60*t,r=60*n,o=24*r;function i(e,t,n,r){var o=t>=1.5*n;return Math.round(e/n)+" "+r+(o?"s":"")}e.exports=function(e,a){a=a||{};var s,c,d=typeof e;if("string"===d&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var i=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(i){var a=parseFloat(i[1]);switch((i[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return 6048e5*a;case"days":case"day":case"d":return a*o;case"hours":case"hour":case"hrs":case"hr":case"h":return a*r;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(e);if("number"===d&&isFinite(e))return a.long?(s=e,(c=Math.abs(s))>=o?i(s,c,o,"day"):c>=r?i(s,c,r,"hour"):c>=n?i(s,c,n,"minute"):c>=t?i(s,c,t,"second"):s+" ms"):function(e){var i=Math.abs(e);return i>=o?Math.round(e/o)+"d":i>=r?Math.round(e/r)+"h":i>=n?Math.round(e/n)+"m":i>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},9516:(e,t,n)=>{var r=n(7147),o=n(1017),i=n(2037),a=require,s=process.config&&process.config.variables||{},c=!!process.env.PREBUILDS_ONLY,d=process.versions.modules,u=process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE||"undefined"!=typeof window&&window.process&&"renderer"===window.process.type?"electron":"node",l=i.arch(),A=i.platform(),f=process.env.LIBC||(function(e){return"linux"===e&&r.existsSync("/etc/alpine-release")}(A)?"musl":"glibc"),h=process.env.ARM_VERSION||("arm64"===l?"8":s.arm_version)||"",p=(process.versions.uv||"").split(".")[0];function g(e){return a(g.path(e))}function m(e){try{return r.readdirSync(e)}catch(e){return[]}}function v(e,t){var n=m(e).filter(t);return n[0]&&o.join(e,n[0])}function y(e){return/\.node$/.test(e)}function b(e){var t=e.split("-");if(2===t.length){var n=t[0],r=t[1].split("+");if(n&&r.length&&r.every(Boolean))return{name:e,platform:n,architectures:r}}}function I(e,t){return function(n){return null!=n&&n.platform===e&&n.architectures.includes(t)}}function C(e,t){return e.architectures.length-t.architectures.length}function E(e){var t=e.split("."),n={file:e,specificity:0};if("node"===t.pop()){for(var r=0;rn.specificity?-1:1:0}}e.exports=g,g.path=function(e){e=o.resolve(e||".");try{var t=a(o.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[t+"_PREBUILD"]&&(e=process.env[t+"_PREBUILD"])}catch(e){}if(!c){var n=v(o.join(e,"build/Release"),y);if(n)return n;var r=v(o.join(e,"build/Debug"),y);if(r)return r}var i=_(e);if(i)return i;var s=_(o.dirname(process.execPath));if(s)return s;var g=["platform="+A,"arch="+l,"runtime="+u,"abi="+d,"uv="+p,h?"armv="+h:"","libc="+f,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"","webpack=true"].filter(Boolean).join(" ");throw new Error("No native build was found for "+g+"\n loaded from: "+e+"\n");function _(e){var t=m(o.join(e,"prebuilds")).map(b).filter(I(A,l)).sort(C)[0];if(t){var n=o.join(e,"prebuilds",t.name),r=m(n).map(E).filter(w(u,d)).sort(B(u))[0];return r?o.join(n,r.file):void 0}}},g.parseTags=E,g.matchTags=w,g.compareTags=B,g.parseTuple=b,g.matchTuple=I,g.compareTuples=C},8987:(e,t,n)=>{"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,a=n(1414),s=Object.prototype.propertyIsEnumerable,c=!s.call({toString:null},"toString"),d=s.call((function(){}),"prototype"),u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],l=function(e){var t=e.constructor;return t&&t.prototype===e},A={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!A["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{l(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===i.call(e),r=a(e),s=t&&"[object String]"===i.call(e),A=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var h=d&&n;if(s&&e.length>0&&!o.call(e,0))for(var p=0;p0)for(var g=0;g{"use strict";var r=Array.prototype.slice,o=n(1414),i=Object.keys,a=i?function(e){return i(e)}:n(8987),s=Object.keys;a.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?s(r.call(e)):s(e)})}else Object.keys=a;return Object.keys||a},e.exports=a},1414:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},9591:(e,t,n)=>{"use strict";const{Deflate:r,deflate:o,deflateRaw:i,gzip:a}=n(4555),{Inflate:s,inflate:c,inflateRaw:d,ungzip:u}=n(8843),l=n(1619);e.exports.Deflate=r,e.exports.deflate=o,e.exports.deflateRaw=i,e.exports.gzip=a,e.exports.Inflate=s,e.exports.inflate=c,e.exports.inflateRaw=d,e.exports.ungzip=u,e.exports.constants=l},4555:(e,t,n)=>{"use strict";const r=n(405),o=n(4236),i=n(9373),a=n(8898),s=n(2292),c=Object.prototype.toString,{Z_NO_FLUSH:d,Z_SYNC_FLUSH:u,Z_FULL_FLUSH:l,Z_FINISH:A,Z_OK:f,Z_STREAM_END:h,Z_DEFAULT_COMPRESSION:p,Z_DEFAULT_STRATEGY:g,Z_DEFLATED:m}=n(1619);function v(e){this.options=o.assign({level:p,method:m,chunkSize:16384,windowBits:15,memLevel:8,strategy:g},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==f)throw new Error(a[n]);if(t.header&&r.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?i.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,n=r.deflateSetDictionary(this.strm,e),n!==f)throw new Error(a[n]);this._dict_set=!0}}function y(e,t){const n=new v(t);if(n.push(e,!0),n.err)throw n.msg||a[n.err];return n.result}v.prototype.push=function(e,t){const n=this.strm,o=this.options.chunkSize;let a,s;if(this.ended)return!1;for(s=t===~~t?t:!0===t?A:d,"string"==typeof e?n.input=i.string2buf(e):"[object ArrayBuffer]"===c.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(o),n.next_out=0,n.avail_out=o),(s===u||s===l)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(a=r.deflate(n,s),a===h)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),a=r.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===f;if(0!==n.avail_out){if(s>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},v.prototype.onData=function(e){this.chunks.push(e)},v.prototype.onEnd=function(e){e===f&&(this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Deflate=v,e.exports.deflate=y,e.exports.deflateRaw=function(e,t){return(t=t||{}).raw=!0,y(e,t)},e.exports.gzip=function(e,t){return(t=t||{}).gzip=!0,y(e,t)},e.exports.constants=n(1619)},8843:(e,t,n)=>{"use strict";const r=n(7948),o=n(4236),i=n(9373),a=n(8898),s=n(2292),c=n(2401),d=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:l,Z_OK:A,Z_STREAM_END:f,Z_NEED_DICT:h,Z_STREAM_ERROR:p,Z_DATA_ERROR:g,Z_MEM_ERROR:m}=n(1619);function v(e){this.options=o.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let n=r.inflateInit2(this.strm,t.windowBits);if(n!==A)throw new Error(a[n]);if(this.header=new c,r.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=i.string2buf(t.dictionary):"[object ArrayBuffer]"===d.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=r.inflateSetDictionary(this.strm,t.dictionary),n!==A)))throw new Error(a[n])}function y(e,t){const n=new v(t);if(n.push(e),n.err)throw n.msg||a[n.err];return n.result}v.prototype.push=function(e,t){const n=this.strm,o=this.options.chunkSize,a=this.options.dictionary;let s,c,v;if(this.ended)return!1;for(c=t===~~t?t:!0===t?l:u,"[object ArrayBuffer]"===d.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(o),n.next_out=0,n.avail_out=o),s=r.inflate(n,c),s===h&&a&&(s=r.inflateSetDictionary(n,a),s===A?s=r.inflate(n,c):s===g&&(s=h));n.avail_in>0&&s===f&&n.state.wrap>0&&0!==e[n.next_in];)r.inflateReset(n),s=r.inflate(n,c);switch(s){case p:case g:case h:case m:return this.onEnd(s),this.ended=!0,!1}if(v=n.avail_out,n.next_out&&(0===n.avail_out||s===f))if("string"===this.options.to){let e=i.utf8border(n.output,n.next_out),t=n.next_out-e,r=i.buf2string(n.output,e);n.next_out=t,n.avail_out=o-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(r)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(s!==A||0!==v){if(s===f)return s=r.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},v.prototype.onData=function(e){this.chunks.push(e)},v.prototype.onEnd=function(e){e===A&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Inflate=v,e.exports.inflate=y,e.exports.inflateRaw=function(e,t){return(t=t||{}).raw=!0,y(e,t)},e.exports.ungzip=y,e.exports.constants=n(1619)},4236:e=>{"use strict";const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const n=Array.prototype.slice.call(arguments,1);for(;n.length;){const r=n.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(const n in r)t(r,n)&&(e[n]=r[n])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let n=0,r=e.length;n{"use strict";let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const n=new Uint8Array(256);for(let e=0;e<256;e++)n[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;n[254]=n[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,n,r,o,i,a=e.length,s=0;for(o=0;o>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},e.exports.buf2string=(e,r)=>{const o=r||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,r));let i,a;const s=new Array(2*o);for(a=0,i=0;i4)s[a++]=65533,i+=r-1;else{for(t&=2===r?31:3===r?15:7;r>1&&i1?s[a++]=65533:t<65536?s[a++]=t:(t-=65536,s[a++]=55296|t>>10&1023,s[a++]=56320|1023&t)}}return((e,n)=>{if(n<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===n?e:e.subarray(0,n));let r="";for(let t=0;t{(t=t||e.length)>e.length&&(t=e.length);let r=t-1;for(;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+n[e[r]]>t?r:t}},6069:e=>{"use strict";e.exports=(e,t,n,r)=>{let o=65535&e|0,i=e>>>16&65535|0,a=0;for(;0!==n;){a=n>2e3?2e3:n,n-=a;do{o=o+t[r++]|0,i=i+o|0}while(--a);o%=65521,i%=65521}return o|i<<16|0}},1619:e=>{"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},2869:e=>{"use strict";const t=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());e.exports=(e,n,r,o)=>{const i=t,a=o+r;e^=-1;for(let t=o;t>>8^i[255&(e^n[t])];return-1^e}},405:(e,t,n)=>{"use strict";const{_tr_init:r,_tr_stored_block:o,_tr_flush_block:i,_tr_tally:a,_tr_align:s}=n(342),c=n(6069),d=n(2869),u=n(8898),{Z_NO_FLUSH:l,Z_PARTIAL_FLUSH:A,Z_FULL_FLUSH:f,Z_FINISH:h,Z_BLOCK:p,Z_OK:g,Z_STREAM_END:m,Z_STREAM_ERROR:v,Z_DATA_ERROR:y,Z_BUF_ERROR:b,Z_DEFAULT_COMPRESSION:I,Z_FILTERED:C,Z_HUFFMAN_ONLY:E,Z_RLE:w,Z_FIXED:B,Z_DEFAULT_STRATEGY:_,Z_UNKNOWN:S,Z_DEFLATED:k}=n(1619),O=258,Q=262,R=103,P=113,N=666,x=(e,t)=>(e.msg=u[t],t),D=e=>(e<<1)-(e>4?9:0),T=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let M=(e,t,n)=>(t<{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))},H=(e,t)=>{i(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,U(e.strm)},j=(e,t)=>{e.pending_buf[e.pending++]=t},J=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},F=(e,t,n,r)=>{let o=e.avail_in;return o>r&&(o=r),0===o?0:(e.avail_in-=o,t.set(e.input.subarray(e.next_in,e.next_in+o),n),1===e.state.wrap?e.adler=c(e.adler,t,o,n):2===e.state.wrap&&(e.adler=d(e.adler,t,o,n)),e.next_in+=o,e.total_in+=o,o)},G=(e,t)=>{let n,r,o=e.max_chain_length,i=e.strstart,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-Q?e.strstart-(e.w_size-Q):0,d=e.window,u=e.w_mask,l=e.prev,A=e.strstart+O;let f=d[i+a-1],h=d[i+a];e.prev_length>=e.good_match&&(o>>=2),s>e.lookahead&&(s=e.lookahead);do{if(n=t,d[n+a]===h&&d[n+a-1]===f&&d[n]===d[i]&&d[++n]===d[i+1]){i+=2,n++;do{}while(d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&d[++i]===d[++n]&&ia){if(e.match_start=t,a=r,r>=s)break;f=d[i+a-1],h=d[i+a]}}}while((t=l[t&u])>c&&0!=--o);return a<=e.lookahead?a:e.lookahead},L=e=>{const t=e.w_size;let n,r,o,i,a;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Q)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do{o=e.head[--n],e.head[n]=o>=t?o-t:0}while(--r);r=t,n=r;do{o=e.prev[--n],e.prev[n]=o>=t?o-t:0}while(--r);i+=t}if(0===e.strm.avail_in)break;if(r=F(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=r,e.lookahead+e.insert>=3)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=M(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=M(e,e.ins_h,e.window[a+3-1]),e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let n,r;for(;;){if(e.lookahead=3&&(e.ins_h=M(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-Q&&(e.match_length=G(e,n)),e.match_length>=3)if(r=a(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=M(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=M(e,e.ins_h,e.window[e.strstart+1]);else r=a(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(H(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===h?(H(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(H(e,!1),0===e.strm.avail_out)?1:2},Y=(e,t)=>{let n,r,o;for(;;){if(e.lookahead=3&&(e.ins_h=M(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==n&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){o=e.strstart+e.lookahead-3,r=a(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=o&&(e.ins_h=M(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(H(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(r=a(e,0,e.window[e.strstart-1]),r&&H(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=a(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===h?(H(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(H(e,!1),0===e.strm.avail_out)?1:2};function V(e,t,n,r,o){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=o}const W=[new V(0,0,0,0,((e,t)=>{let n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(L(e),0===e.lookahead&&t===l)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,H(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-Q&&(H(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===h?(H(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(H(e,!1),e.strm.avail_out),1)})),new V(4,4,8,4,q),new V(4,5,16,8,q),new V(4,6,32,32,q),new V(4,4,16,16,Y),new V(8,16,32,32,Y),new V(8,16,128,128,Y),new V(8,32,128,256,Y),new V(32,128,258,1024,Y),new V(32,258,258,4096,Y)];function K(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=k,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),T(this.dyn_ltree),T(this.dyn_dtree),T(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),T(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),T(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Z=e=>{if(!e||!e.state)return x(e,v);e.total_in=e.total_out=0,e.data_type=S;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:P,e.adler=2===t.wrap?0:1,t.last_flush=l,r(t),g},z=e=>{const t=Z(e);var n;return t===g&&((n=e.state).window_size=2*n.w_size,T(n.head),n.max_lazy_match=W[n.level].max_lazy,n.good_match=W[n.level].good_length,n.nice_match=W[n.level].nice_length,n.max_chain_length=W[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0),t},X=(e,t,n,r,o,i)=>{if(!e)return v;let a=1;if(t===I&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),o<1||o>9||n!==k||r<8||r>15||t<0||t>9||i<0||i>B)return x(e,v);8===r&&(r=9);const s=new K;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=r,s.w_size=1<X(e,t,k,15,8,_),e.exports.deflateInit2=X,e.exports.deflateReset=z,e.exports.deflateResetKeep=Z,e.exports.deflateSetHeader=(e,t)=>e&&e.state?2!==e.state.wrap?v:(e.state.gzhead=t,g):v,e.exports.deflate=(e,t)=>{let n,r;if(!e||!e.state||t>p||t<0)return e?x(e,v):v;const i=e.state;if(!e.output||!e.input&&0!==e.avail_in||i.status===N&&t!==h)return x(e,0===e.avail_out?b:v);i.strm=e;const c=i.last_flush;if(i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,j(i,31),j(i,139),j(i,8),i.gzhead?(j(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),j(i,255&i.gzhead.time),j(i,i.gzhead.time>>8&255),j(i,i.gzhead.time>>16&255),j(i,i.gzhead.time>>24&255),j(i,9===i.level?2:i.strategy>=E||i.level<2?4:0),j(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(j(i,255&i.gzhead.extra.length),j(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=d(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(j(i,0),j(i,0),j(i,0),j(i,0),j(i,0),j(i,9===i.level?2:i.strategy>=E||i.level<2?4:0),j(i,3),i.status=P);else{let t=k+(i.w_bits-8<<4)<<8,n=-1;n=i.strategy>=E||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=n<<6,0!==i.strstart&&(t|=32),t+=31-t%31,i.status=P,J(i,t),0!==i.strstart&&(J(i,e.adler>>>16),J(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),U(e),n=i.pending,i.pending!==i.pending_buf_size));)j(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),U(e),n=i.pending,i.pending===i.pending_buf_size)){r=1;break}r=i.gzindexn&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),0===r&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),U(e),n=i.pending,i.pending===i.pending_buf_size)){r=1;break}r=i.gzindexn&&(e.adler=d(e.adler,i.pending_buf,i.pending-n,n)),0===r&&(i.status=R)}else i.status=R;if(i.status===R&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&U(e),i.pending+2<=i.pending_buf_size&&(j(i,255&e.adler),j(i,e.adler>>8&255),e.adler=0,i.status=P)):i.status=P),0!==i.pending){if(U(e),0===e.avail_out)return i.last_flush=-1,g}else if(0===e.avail_in&&D(t)<=D(c)&&t!==h)return x(e,b);if(i.status===N&&0!==e.avail_in)return x(e,b);if(0!==e.avail_in||0!==i.lookahead||t!==l&&i.status!==N){let n=i.strategy===E?((e,t)=>{let n;for(;;){if(0===e.lookahead&&(L(e),0===e.lookahead)){if(t===l)return 1;break}if(e.match_length=0,n=a(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(H(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===h?(H(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(H(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===w?((e,t)=>{let n,r,o,i;const s=e.window;for(;;){if(e.lookahead<=O){if(L(e),e.lookahead<=O&&t===l)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(o=e.strstart-1,r=s[o],r===s[++o]&&r===s[++o]&&r===s[++o])){i=e.strstart+O;do{}while(r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&oe.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=a(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(H(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===h?(H(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(H(e,!1),0===e.strm.avail_out)?1:2})(i,t):W[i.level].func(i,t);if(3!==n&&4!==n||(i.status=N),1===n||3===n)return 0===e.avail_out&&(i.last_flush=-1),g;if(2===n&&(t===A?s(i):t!==p&&(o(i,0,0,!1),t===f&&(T(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),U(e),0===e.avail_out))return i.last_flush=-1,g}return t!==h?g:i.wrap<=0?m:(2===i.wrap?(j(i,255&e.adler),j(i,e.adler>>8&255),j(i,e.adler>>16&255),j(i,e.adler>>24&255),j(i,255&e.total_in),j(i,e.total_in>>8&255),j(i,e.total_in>>16&255),j(i,e.total_in>>24&255)):(J(i,e.adler>>>16),J(i,65535&e.adler)),U(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?g:m)},e.exports.deflateEnd=e=>{if(!e||!e.state)return v;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&t!==R&&t!==P&&t!==N?x(e,v):(e.state=null,t===P?x(e,y):g)},e.exports.deflateSetDictionary=(e,t)=>{let n=t.length;if(!e||!e.state)return v;const r=e.state,o=r.wrap;if(2===o||1===o&&42!==r.status||r.lookahead)return v;if(1===o&&(e.adler=c(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){0===o&&(T(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(n-r.w_size,n),0),t=e,n=r.w_size}const i=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,L(r);r.lookahead>=3;){let e=r.strstart,t=r.lookahead-2;do{r.ins_h=M(r,r.ins_h,r.window[e+3-1]),r.prev[e&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=e,e++}while(--t);r.strstart=e,r.lookahead=2,L(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=i,r.wrap=o,g},e.exports.deflateInfo="pako deflate (from Nodeca project)"},2401:e=>{"use strict";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},4264:e=>{"use strict";e.exports=function(e,t){let n,r,o,i,a,s,c,d,u,l,A,f,h,p,g,m,v,y,b,I,C,E,w,B;const _=e.state;n=e.next_in,w=e.input,r=n+(e.avail_in-5),o=e.next_out,B=e.output,i=o-(t-e.avail_out),a=o+(e.avail_out-257),s=_.dmax,c=_.wsize,d=_.whave,u=_.wnext,l=_.window,A=_.hold,f=_.bits,h=_.lencode,p=_.distcode,g=(1<<_.lenbits)-1,m=(1<<_.distbits)-1;e:do{f<15&&(A+=w[n++]<>>24,A>>>=y,f-=y,y=v>>>16&255,0===y)B[o++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=h[(65535&v)+(A&(1<>>=y,f-=y),f<15&&(A+=w[n++]<>>24,A>>>=y,f-=y,y=v>>>16&255,!(16&y)){if(0==(64&y)){v=p[(65535&v)+(A&(1<s){e.msg="invalid distance too far back",_.mode=30;break e}if(A>>>=y,f-=y,y=o-i,I>y){if(y=I-y,y>d&&_.sane){e.msg="invalid distance too far back",_.mode=30;break e}if(C=0,E=l,0===u){if(C+=c-y,y2;)B[o++]=E[C++],B[o++]=E[C++],B[o++]=E[C++],b-=3;b&&(B[o++]=E[C++],b>1&&(B[o++]=E[C++]))}else{C=o-I;do{B[o++]=B[C++],B[o++]=B[C++],B[o++]=B[C++],b-=3}while(b>2);b&&(B[o++]=B[C++],b>1&&(B[o++]=B[C++]))}break}}break}}while(n>3,n-=b,f-=b<<3,A&=(1<{"use strict";const r=n(6069),o=n(2869),i=n(4264),a=n(9241),{Z_FINISH:s,Z_BLOCK:c,Z_TREES:d,Z_OK:u,Z_STREAM_END:l,Z_NEED_DICT:A,Z_STREAM_ERROR:f,Z_DATA_ERROR:h,Z_MEM_ERROR:p,Z_BUF_ERROR:g,Z_DEFLATED:m}=n(1619),v=12,y=30,b=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function I(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const C=e=>{if(!e||!e.state)return f;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},E=e=>{if(!e||!e.state)return f;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,C(e)},w=(e,t)=>{let n;if(!e||!e.state)return f;const r=e.state;return t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?f:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,E(e))},B=(e,t)=>{if(!e)return f;const n=new I;e.state=n,n.window=null;const r=w(e,t);return r!==u&&(e.state=null),r};let _,S,k=!0;const O=e=>{if(k){_=new Int32Array(512),S=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(a(1,e.lens,0,288,_,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a(2,e.lens,0,32,S,0,e.work,{bits:5}),k=!1}e.lencode=_,e.lenbits=9,e.distcode=S,e.distbits=5},Q=(e,t,n,r)=>{let o;const i=e.state;return null===i.window&&(i.wsize=1<=i.wsize?(i.window.set(t.subarray(n-i.wsize,n),0),i.wnext=0,i.whave=i.wsize):(o=i.wsize-i.wnext,o>r&&(o=r),i.window.set(t.subarray(n-r,n-r+o),i.wnext),(r-=o)?(i.window.set(t.subarray(n-r,n),0),i.wnext=r,i.whave=i.wsize):(i.wnext+=o,i.wnext===i.wsize&&(i.wnext=0),i.whaveB(e,15),e.exports.inflateInit2=B,e.exports.inflate=(e,t)=>{let n,I,C,E,w,B,_,S,k,R,P,N,x,D,T,M,U,H,j,J,F,G,L=0;const q=new Uint8Array(4);let Y,V;const W=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return f;n=e.state,n.mode===v&&(n.mode=13),w=e.next_out,C=e.output,_=e.avail_out,E=e.next_in,I=e.input,B=e.avail_in,S=n.hold,k=n.bits,R=B,P=_,G=u;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;k<16;){if(0===B)break e;B--,S+=I[E++]<>>8&255,n.check=o(n.check,q,2,0),S=0,k=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&S)<<8)+(S>>8))%31){e.msg="incorrect header check",n.mode=y;break}if((15&S)!==m){e.msg="unknown compression method",n.mode=y;break}if(S>>>=4,k-=4,F=8+(15&S),0===n.wbits)n.wbits=F;else if(F>n.wbits){e.msg="invalid window size",n.mode=y;break}n.dmax=1<>8&1),512&n.flags&&(q[0]=255&S,q[1]=S>>>8&255,n.check=o(n.check,q,2,0)),S=0,k=0,n.mode=3;case 3:for(;k<32;){if(0===B)break e;B--,S+=I[E++]<>>8&255,q[2]=S>>>16&255,q[3]=S>>>24&255,n.check=o(n.check,q,4,0)),S=0,k=0,n.mode=4;case 4:for(;k<16;){if(0===B)break e;B--,S+=I[E++]<>8),512&n.flags&&(q[0]=255&S,q[1]=S>>>8&255,n.check=o(n.check,q,2,0)),S=0,k=0,n.mode=5;case 5:if(1024&n.flags){for(;k<16;){if(0===B)break e;B--,S+=I[E++]<>>8&255,n.check=o(n.check,q,2,0)),S=0,k=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(N=n.length,N>B&&(N=B),N&&(n.head&&(F=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(I.subarray(E,E+N),F)),512&n.flags&&(n.check=o(n.check,I,N,E)),B-=N,E+=N,n.length-=N),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===B)break e;N=0;do{F=I[E+N++],n.head&&F&&n.length<65536&&(n.head.name+=String.fromCharCode(F))}while(F&&N>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=v;break;case 10:for(;k<32;){if(0===B)break e;B--,S+=I[E++]<>>=7&k,k-=7&k,n.mode=27;break}for(;k<3;){if(0===B)break e;B--,S+=I[E++]<>>=1,k-=1,3&S){case 0:n.mode=14;break;case 1:if(O(n),n.mode=20,t===d){S>>>=2,k-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=y}S>>>=2,k-=2;break;case 14:for(S>>>=7&k,k-=7&k;k<32;){if(0===B)break e;B--,S+=I[E++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=y;break}if(n.length=65535&S,S=0,k=0,n.mode=15,t===d)break e;case 15:n.mode=16;case 16:if(N=n.length,N){if(N>B&&(N=B),N>_&&(N=_),0===N)break e;C.set(I.subarray(E,E+N),w),B-=N,E+=N,_-=N,w+=N,n.length-=N;break}n.mode=v;break;case 17:for(;k<14;){if(0===B)break e;B--,S+=I[E++]<>>=5,k-=5,n.ndist=1+(31&S),S>>>=5,k-=5,n.ncode=4+(15&S),S>>>=4,k-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=y;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,k-=3}for(;n.have<19;)n.lens[W[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,Y={bits:n.lenbits},G=a(0,n.lens,0,19,n.lencode,0,n.work,Y),n.lenbits=Y.bits,G){e.msg="invalid code lengths set",n.mode=y;break}n.have=0,n.mode=19;case 19:for(;n.have>>24,M=L>>>16&255,U=65535&L,!(T<=k);){if(0===B)break e;B--,S+=I[E++]<>>=T,k-=T,n.lens[n.have++]=U;else{if(16===U){for(V=T+2;k>>=T,k-=T,0===n.have){e.msg="invalid bit length repeat",n.mode=y;break}F=n.lens[n.have-1],N=3+(3&S),S>>>=2,k-=2}else if(17===U){for(V=T+3;k>>=T,k-=T,F=0,N=3+(7&S),S>>>=3,k-=3}else{for(V=T+7;k>>=T,k-=T,F=0,N=11+(127&S),S>>>=7,k-=7}if(n.have+N>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=y;break}for(;N--;)n.lens[n.have++]=F}}if(n.mode===y)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=y;break}if(n.lenbits=9,Y={bits:n.lenbits},G=a(1,n.lens,0,n.nlen,n.lencode,0,n.work,Y),n.lenbits=Y.bits,G){e.msg="invalid literal/lengths set",n.mode=y;break}if(n.distbits=6,n.distcode=n.distdyn,Y={bits:n.distbits},G=a(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,Y),n.distbits=Y.bits,G){e.msg="invalid distances set",n.mode=y;break}if(n.mode=20,t===d)break e;case 20:n.mode=21;case 21:if(B>=6&&_>=258){e.next_out=w,e.avail_out=_,e.next_in=E,e.avail_in=B,n.hold=S,n.bits=k,i(e,P),w=e.next_out,C=e.output,_=e.avail_out,E=e.next_in,I=e.input,B=e.avail_in,S=n.hold,k=n.bits,n.mode===v&&(n.back=-1);break}for(n.back=0;L=n.lencode[S&(1<>>24,M=L>>>16&255,U=65535&L,!(T<=k);){if(0===B)break e;B--,S+=I[E++]<>H)],T=L>>>24,M=L>>>16&255,U=65535&L,!(H+T<=k);){if(0===B)break e;B--,S+=I[E++]<>>=H,k-=H,n.back+=H}if(S>>>=T,k-=T,n.back+=T,n.length=U,0===M){n.mode=26;break}if(32&M){n.back=-1,n.mode=v;break}if(64&M){e.msg="invalid literal/length code",n.mode=y;break}n.extra=15&M,n.mode=22;case 22:if(n.extra){for(V=n.extra;k>>=n.extra,k-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;L=n.distcode[S&(1<>>24,M=L>>>16&255,U=65535&L,!(T<=k);){if(0===B)break e;B--,S+=I[E++]<>H)],T=L>>>24,M=L>>>16&255,U=65535&L,!(H+T<=k);){if(0===B)break e;B--,S+=I[E++]<>>=H,k-=H,n.back+=H}if(S>>>=T,k-=T,n.back+=T,64&M){e.msg="invalid distance code",n.mode=y;break}n.offset=U,n.extra=15&M,n.mode=24;case 24:if(n.extra){for(V=n.extra;k>>=n.extra,k-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=y;break}n.mode=25;case 25:if(0===_)break e;if(N=P-_,n.offset>N){if(N=n.offset-N,N>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=y;break}N>n.wnext?(N-=n.wnext,x=n.wsize-N):x=n.wnext-N,N>n.length&&(N=n.length),D=n.window}else D=C,x=w-n.offset,N=n.length;N>_&&(N=_),_-=N,n.length-=N;do{C[w++]=D[x++]}while(--N);0===n.length&&(n.mode=21);break;case 26:if(0===_)break e;C[w++]=n.length,_--,n.mode=21;break;case 27:if(n.wrap){for(;k<32;){if(0===B)break e;B--,S|=I[E++]<{if(!e||!e.state)return f;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(!e||!e.state)return f;const n=e.state;return 0==(2&n.wrap)?f:(n.head=t,t.done=!1,u)},e.exports.inflateSetDictionary=(e,t)=>{const n=t.length;let o,i,a;return e&&e.state?(o=e.state,0!==o.wrap&&11!==o.mode?f:11===o.mode&&(i=1,i=r(i,t,n,0),i!==o.check)?h:(a=Q(e,t,n,n),a?(o.mode=31,p):(o.havedict=1,u))):f},e.exports.inflateInfo="pako inflate (from Nodeca project)"},9241:e=>{"use strict";const t=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),r=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,a,s,c,d,u,l)=>{const A=l.bits;let f,h,p,g,m,v,y=0,b=0,I=0,C=0,E=0,w=0,B=0,_=0,S=0,k=0,O=null,Q=0;const R=new Uint16Array(16),P=new Uint16Array(16);let N,x,D,T=null,M=0;for(y=0;y<=15;y++)R[y]=0;for(b=0;b=1&&0===R[C];C--);if(E>C&&(E=C),0===C)return c[d++]=20971520,c[d++]=20971520,l.bits=1,0;for(I=1;I0&&(0===e||1!==C))return-1;for(P[1]=0,y=1;y<15;y++)P[y+1]=P[y]+R[y];for(b=0;b852||2===e&&S>592)return 1;for(;;){N=y-B,u[b]v?(x=T[M+u[b]],D=O[Q+u[b]]):(x=96,D=0),f=1<>B)+h]=N<<24|x<<16|D|0}while(0!==h);for(f=1<>=1;if(0!==f?(k&=f-1,k+=f):k=0,b++,0==--R[y]){if(y===C)break;y=i[a+u[b]]}if(y>E&&(k&g)!==p){for(0===B&&(B=E),m+=I,w=y-B,_=1<852||2===e&&S>592)return 1;p=k&g,c[p]=E<<24|w<<16|m-d|0}}return 0!==k&&(c[m+k]=y-B<<24|64<<16|0),l.bits=E,0}},8898:e=>{"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},342:e=>{"use strict";function t(e){let t=e.length;for(;--t>=0;)e[t]=0}const n=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),r=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),o=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=new Array(576);t(a);const s=new Array(60);t(s);const c=new Array(512);t(c);const d=new Array(256);t(d);const u=new Array(29);t(u);const l=new Array(30);function A(e,t,n,r,o){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=o,this.has_stree=e&&e.length}let f,h,p;function g(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(l);const m=e=>e<256?c[e]:c[256+(e>>>7)],v=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},y=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<{y(e,n[2*t],n[2*t+1])},I=(e,t)=>{let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1},C=(e,t,n)=>{const r=new Array(16);let o,i,a=0;for(o=1;o<=15;o++)r[o]=a=a+n[o-1]<<1;for(i=0;i<=t;i++){let t=e[2*i+1];0!==t&&(e[2*i]=I(r[t]++,t))}},E=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},w=e=>{e.bi_valid>8?v(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},B=(e,t,n,r)=>{const o=2*t,i=2*n;return e[o]{const r=e.heap[n];let o=n<<1;for(;o<=e.heap_len&&(o{let i,a,s,c,A=0;if(0!==e.last_lit)do{i=e.pending_buf[e.d_buf+2*A]<<8|e.pending_buf[e.d_buf+2*A+1],a=e.pending_buf[e.l_buf+A],A++,0===i?b(e,a,t):(s=d[a],b(e,s+256+1,t),c=n[s],0!==c&&(a-=u[s],y(e,a,c)),i--,s=m(i),b(e,s,o),c=r[s],0!==c&&(i-=l[s],y(e,i,c)))}while(A{const n=t.dyn_tree,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,i=t.stat_desc.elems;let a,s,c,d=-1;for(e.heap_len=0,e.heap_max=573,a=0;a>1;a>=1;a--)_(e,n,a);c=i;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],_(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[2*c]=n[2*a]+n[2*s],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[2*a+1]=n[2*s+1]=c,e.heap[1]=c++,_(e,n,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const n=t.dyn_tree,r=t.max_code,o=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let d,u,l,A,f,h,p=0;for(A=0;A<=15;A++)e.bl_count[A]=0;for(n[2*e.heap[e.heap_max]+1]=0,d=e.heap_max+1;d<573;d++)u=e.heap[d],A=n[2*n[2*u+1]+1]+1,A>c&&(A=c,p++),n[2*u+1]=A,u>r||(e.bl_count[A]++,f=0,u>=s&&(f=a[u-s]),h=n[2*u],e.opt_len+=h*(A+f),i&&(e.static_len+=h*(o[2*u+1]+f)));if(0!==p){do{for(A=c-1;0===e.bl_count[A];)A--;e.bl_count[A]--,e.bl_count[A+1]+=2,e.bl_count[c]--,p-=2}while(p>0);for(A=c;0!==A;A--)for(u=e.bl_count[A];0!==u;)l=e.heap[--d],l>r||(n[2*l+1]!==A&&(e.opt_len+=(A-n[2*l+1])*n[2*l],n[2*l+1]=A),u--)}})(e,t),C(n,d,e.bl_count)},O=(e,t,n)=>{let r,o,i=-1,a=t[1],s=0,c=7,d=4;for(0===a&&(c=138,d=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)o=a,a=t[2*(r+1)+1],++s{let r,o,i=-1,a=t[1],s=0,c=7,d=4;for(0===a&&(c=138,d=3),r=0;r<=n;r++)if(o=a,a=t[2*(r+1)+1],!(++s{y(e,0+(r?1:0),3),((e,t,n,r)=>{w(e),v(e,n),v(e,~n),e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n})(e,t,n)};e.exports._tr_init=e=>{R||((()=>{let e,t,i,g,m;const v=new Array(16);for(i=0,g=0;g<28;g++)for(u[g]=i,e=0;e<1<>=7;g<30;g++)for(l[g]=m<<7,e=0;e<1<{let o,c,d=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),k(e,e.l_desc),k(e,e.d_desc),d=(e=>{let t;for(O(e,e.dyn_ltree,e.l_desc.max_code),O(e,e.dyn_dtree,e.d_desc.max_code),k(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*i[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),o=e.opt_len+3+7>>>3,c=e.static_len+3+7>>>3,c<=o&&(o=c)):o=c=n+5,n+4<=o&&-1!==t?P(e,t,n,r):4===e.strategy||c===o?(y(e,2+(r?1:0),3),S(e,a,s)):(y(e,4+(r?1:0),3),((e,t,n,r)=>{let o;for(y(e,t-257,5),y(e,n-1,5),y(e,r-4,4),o=0;o(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(d[n]+256+1)]++,e.dyn_dtree[2*m(t)]++),e.last_lit===e.lit_bufsize-1),e.exports._tr_align=e=>{y(e,2,3),b(e,256,a),(e=>{16===e.bi_valid?(v(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},2292:e=>{"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},4012:e=>{"use strict";const t={};function n(e,n,r){r||(r=Error);class o extends r{constructor(e,t,r){super(function(e,t,r){return"string"==typeof n?n:n(e,t,r)}(e,t,r))}}o.prototype.name=r.name,o.prototype.code=e,t[e]=o}function r(e,t){if(Array.isArray(e)){const n=e.length;return e=e.map((e=>String(e))),n>2?`one of ${t} ${e.slice(0,n-1).join(", ")}, or `+e[n-1]:2===n?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}return`of ${t} ${String(e)}`}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){let o;var i;let a;if("string"==typeof t&&(i="not ",t.substr(0,i.length)===i)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))a=`The ${e} ${o} ${r(t,"type")}`;else{a=`The "${e}" ${"number"!=typeof c&&(c=0),c+".".length>(s=e).length||-1===s.indexOf(".",c)?"argument":"property"} ${o} ${r(t,"type")}`}var s,c;return a+=". Received type "+typeof n,a}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},6753:(e,t,n)=>{"use strict";var r=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=d;var o=n(9481),i=n(4229);n(4378)(d,o);for(var a=r(i.prototype),s=0;s{"use strict";e.exports=o;var r=n(4605);function o(e){if(!(this instanceof o))return new o(e);r.call(this,e)}n(4378)(o,r),o.prototype._transform=function(e,t,n){n(null,e)}},9481:(e,t,n)=>{"use strict";var r;e.exports=w,w.ReadableState=E,n(2361).EventEmitter;var o,i=function(e,t){return e.listeners(t).length},a=n(9740),s=n(4300).Buffer,c=global.Uint8Array||function(){},d=n(3837);o=d&&d.debuglog?d.debuglog("stream"):function(){};var u,l,A,f=n(7327),h=n(1195),p=n(2457).getHighWaterMark,g=n(4012).q,m=g.ERR_INVALID_ARG_TYPE,v=g.ERR_STREAM_PUSH_AFTER_EOF,y=g.ERR_METHOD_NOT_IMPLEMENTED,b=g.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(4378)(w,a);var I=h.errorOrDestroy,C=["error","close","destroy","pause","resume"];function E(e,t,o){r=r||n(6753),e=e||{},"boolean"!=typeof o&&(o=t instanceof r),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=p(this,e,"readableHighWaterMark",o),this.buffer=new f,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&&(u||(u=n(2553).s),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function w(e){if(r=r||n(6753),!(this instanceof w))return new w(e);var t=this instanceof r;this._readableState=new E(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 B(e,t,n,r,i){o("readableAddChunk",t);var a,d=e._readableState;if(null===t)d.reading=!1,function(e,t){if(o("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?O(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,Q(e)))}}(e,d);else if(i||(a=function(e,t){var n,r;return r=t,s.isBuffer(r)||r instanceof c||"string"==typeof t||void 0===t||e.objectMode||(n=new m("chunk",["string","Buffer","Uint8Array"],t)),n}(d,t)),a)I(e,a);else if(d.objectMode||t&&t.length>0)if("string"==typeof t||d.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),r)d.endEmitted?I(e,new b):_(e,d,t,!0);else if(d.ended)I(e,new v);else{if(d.destroyed)return!1;d.reading=!1,d.decoder&&!n?(t=d.decoder.write(t),d.objectMode||0!==t.length?_(e,d,t,!1):R(e,d)):_(e,d,t,!1)}else r||(d.reading=!1,R(e,d));return!d.ended&&(d.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=S?e=S:(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 O(e){var t=e._readableState;o("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(o("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(Q,e))}function Q(e){var t=e._readableState;o("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,T(e)}function R(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(P,e,t))}function P(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function x(e){o("readable nexttick read 0"),e.read(0)}function D(e,t){o("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),T(e),t.flowing&&!t.reading&&e.read(0)}function T(e){var t=e._readableState;for(o("flow",t.flowing);t.flowing&&null!==e.read(););}function M(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function U(e){var t=e._readableState;o("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(H,t,e))}function H(e,t){if(o("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function j(e,t){for(var n=0,r=e.length;n=t.highWaterMark:t.length>0)||t.ended))return o("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?U(this):O(this),null;if(0===(e=k(e,t))&&t.ended)return 0===t.length&&U(this),null;var r,i=t.needReadable;return o("need readable",i),(0===t.length||t.length-e0?M(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),n!==e&&t.ended&&U(this)),null!==r&&this.emit("data",r),r},w.prototype._read=function(e){I(this,new y("_read()"))},w.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,o("pipe count=%d opts=%j",r.pipesCount,t);var a=t&&!1===t.end||e===process.stdout||e===process.stderr?h:s;function s(){o("onend"),e.end()}r.endEmitted?process.nextTick(a):n.once("end",a),e.on("unpipe",(function t(i,a){o("onunpipe"),i===n&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,o("cleanup"),e.removeListener("close",A),e.removeListener("finish",f),e.removeListener("drain",c),e.removeListener("error",l),e.removeListener("unpipe",t),n.removeListener("end",s),n.removeListener("end",h),n.removeListener("data",u),d=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}));var c=function(e){return function(){var t=e._readableState;o("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&i(e,"data")&&(t.flowing=!0,T(e))}}(n);e.on("drain",c);var d=!1;function u(t){o("ondata");var i=e.write(t);o("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==j(r.pipes,e))&&!d&&(o("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function l(t){o("onerror",t),h(),e.removeListener("error",l),0===i(e,"error")&&I(e,t)}function A(){e.removeListener("finish",f),h()}function f(){o("onfinish"),e.removeListener("close",A),h()}function h(){o("unpipe"),n.unpipe(e)}return n.on("data",u),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events.error?Array.isArray(e._events.error)?e._events.error.unshift(n):e._events.error=[n,e._events.error]:e.on(t,n)}(e,"error",l),e.once("close",A),e.once("finish",f),e.emit("pipe",n),r.flowing||(o("pipe resume"),n.resume()),e},w.prototype.unpipe=function(e){var t=this._readableState,n={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,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,o("on readable",r.length,r.reading),r.length?O(this):r.reading||process.nextTick(x,this))),n},w.prototype.addListener=w.prototype.on,w.prototype.removeListener=function(e,t){var n=a.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(N,this),n},w.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(N,this),t},w.prototype.resume=function(){var e=this._readableState;return e.flowing||(o("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(D,e,t))}(this,e)),e.paused=!1,this},w.prototype.pause=function(){return o("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(o("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},w.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",(function(){if(o("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){o("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!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 a=0;a{"use strict";e.exports=u;var r=n(4012).q,o=r.ERR_METHOD_NOT_IMPLEMENTED,i=r.ERR_MULTIPLE_CALLBACK,a=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=r.ERR_TRANSFORM_WITH_LENGTH_0,c=n(6753);function d(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new i);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length{"use strict";function r(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;for(e.entry=null;r;){var o=r.callback;t.pendingcb--,o(undefined),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}var o;e.exports=w,w.WritableState=E;var i,a={deprecate:n(1159)},s=n(9740),c=n(4300).Buffer,d=global.Uint8Array||function(){},u=n(1195),l=n(2457).getHighWaterMark,A=n(4012).q,f=A.ERR_INVALID_ARG_TYPE,h=A.ERR_METHOD_NOT_IMPLEMENTED,p=A.ERR_MULTIPLE_CALLBACK,g=A.ERR_STREAM_CANNOT_PIPE,m=A.ERR_STREAM_DESTROYED,v=A.ERR_STREAM_NULL_VALUES,y=A.ERR_STREAM_WRITE_AFTER_END,b=A.ERR_UNKNOWN_ENCODING,I=u.errorOrDestroy;function C(){}function E(e,t,i){o=o||n(6753),e=e||{},"boolean"!=typeof i&&(i=t instanceof o),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",i),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===e.decodeStrings;this.decodeStrings=!a,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 n=e._writableState,r=n.sync,o=n.writecb;if("function"!=typeof o)throw new p;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(process.nextTick(o,r),process.nextTick(Q,e,t),e._writableState.errorEmitted=!0,I(e,r)):(o(r),e._writableState.errorEmitted=!0,I(e,r),Q(e,t))}(e,n,r,t,o);else{var i=k(n)||e.destroyed;i||n.corked||n.bufferProcessing||!n.bufferedRequest||S(e,n),r?process.nextTick(_,e,n,i,o):_(e,n,i,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new r(this)}function w(e){var t=this instanceof(o=o||n(6753));if(!t&&!i.call(w,this))return new w(e);this._writableState=new E(e,this,t),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)),s.call(this)}function B(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new m("write")):n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function _(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),Q(e,t)}function S(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var o=t.bufferedRequestCount,i=new Array(o),a=t.corkedRequestsFree;a.entry=n;for(var s=0,c=!0;n;)i[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;i.allBuffers=c,B(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new r(t),t.bufferedRequestCount=0}else{for(;n;){var d=n.chunk,u=n.encoding,l=n.callback;if(B(e,t,!1,t.objectMode?1:d.length,d,u,l),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function k(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function O(e,t){e._final((function(n){t.pendingcb--,n&&I(e,n),t.prefinished=!0,e.emit("prefinish"),Q(e,t)}))}function Q(e,t){var n=k(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(O,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(4378)(w,s),E.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(E.prototype,"buffer",{get:a.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]?(i=Function.prototype[Symbol.hasInstance],Object.defineProperty(w,Symbol.hasInstance,{value:function(e){return!!i.call(this,e)||this===w&&e&&e._writableState instanceof E}})):i=function(e){return e instanceof this},w.prototype.pipe=function(){I(this,new g)},w.prototype.write=function(e,t,n){var r,o=this._writableState,i=!1,a=!o.objectMode&&(r=e,c.isBuffer(r)||r instanceof d);return a&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=C),o.ending?function(e,t){var n=new y;I(e,n),process.nextTick(t,n)}(this,n):(a||function(e,t,n,r){var o;return null===n?o=new v:"string"==typeof n||t.objectMode||(o=new f("chunk",["string","Buffer"],n)),!o||(I(e,o),process.nextTick(r,o),!1)}(this,o,e,n))&&(o.pendingcb++,i=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,n)),t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var d=t.length-1))throw new b(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(w.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(w.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),w.prototype._write=function(e,t,n){n(new h("_write()"))},w.prototype._writev=null,w.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,Q(e,t),n&&(t.finished?process.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(w.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(w.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),w.prototype.destroy=u.destroy,w.prototype._undestroy=u.undestroy,w.prototype._destroy=function(e,t){t(e)}},1086:(e,t,n)=>{"use strict";var r;function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i=n(8610),a=Symbol("lastResolve"),s=Symbol("lastReject"),c=Symbol("error"),d=Symbol("ended"),u=Symbol("lastPromise"),l=Symbol("handlePromise"),A=Symbol("stream");function f(e,t){return{value:e,done:t}}function h(e){var t=e[a];if(null!==t){var n=e[A].read();null!==n&&(e[u]=null,e[a]=null,e[s]=null,t(f(n,!1)))}}function p(e){process.nextTick(h,e)}var g=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((o(r={get stream(){return this[A]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[d])return Promise.resolve(f(void 0,!0));if(this[A].destroyed)return new Promise((function(t,n){process.nextTick((function(){e[c]?n(e[c]):t(f(void 0,!0))}))}));var n,r=this[u];if(r)n=new Promise(function(e,t){return function(n,r){e.then((function(){t[d]?n(f(void 0,!0)):t[l](n,r)}),r)}}(r,this));else{var o=this[A].read();if(null!==o)return Promise.resolve(f(o,!1));n=new Promise(this[l])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),o(r,"return",(function(){var e=this;return new Promise((function(t,n){e[A].destroy(null,(function(e){e?n(e):t(f(void 0,!0))}))}))})),r),g);e.exports=function(e){var t,n=Object.create(m,(o(t={},A,{value:e,writable:!0}),o(t,a,{value:null,writable:!0}),o(t,s,{value:null,writable:!0}),o(t,c,{value:null,writable:!0}),o(t,d,{value:e._readableState.endEmitted,writable:!0}),o(t,l,{value:function(e,t){var r=n[A].read();r?(n[u]=null,n[a]=null,n[s]=null,e(f(r,!1))):(n[a]=e,n[s]=t)},writable:!0}),t));return n[u]=null,i(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[s];return null!==t&&(n[u]=null,n[a]=null,n[s]=null,t(e)),void(n[c]=e)}var r=n[a];null!==r&&(n[u]=null,n[a]=null,n[s]=null,r(f(void 0,!0))),n[d]=!0})),e.on("readable",p.bind(null,n)),n}},7327:(e,t,n)=>{"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){for(var n=0;n0?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,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return a.alloc(0);for(var t,n,r,o=a.allocUnsafe(e>>>0),i=this.head,s=0;i;)t=i.data,n=o,r=s,a.prototype.copy.call(t,n,r),s+=i.data.length,i=i.next;return o}},{key:"consume",value:function(e,t){var n;return eo.length?o.length:e;if(i===o.length?r+=o:r+=o.slice(0,e),0==(e-=i)){i===o.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=o.slice(i));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=a.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var o=n.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),0==(e-=i)){i===o.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(i));break}++r}return this.length-=r,t}},{key:c,value:function(e,t){return s(this,function(e){for(var t=1;t{"use strict";function t(e,t){r(e,t),n(e)}function n(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function r(e,t){e.emit("error",t)}e.exports={destroy:function(e,o){var i=this,a=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return a||s?(o?o(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(r,this,e)):process.nextTick(r,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!o&&e?i._writableState?i._writableState.errorEmitted?process.nextTick(n,i):(i._writableState.errorEmitted=!0,process.nextTick(t,i,e)):process.nextTick(t,i,e):o?(process.nextTick(n,i),o(e)):process.nextTick(n,i)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}}},8610:(e,t,n)=>{"use strict";var r=n(4012).q.ERR_STREAM_PREMATURE_CLOSE;function o(){}e.exports=function e(t,n,i){if("function"==typeof n)return e(t,null,n);n||(n={}),i=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),o=0;o{"use strict";function r(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var a=e.apply(t,n);function s(e){r(a,o,i,s,c,"next",e)}function c(e){r(a,o,i,s,c,"throw",e)}s(void 0)}))}}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(4012).q.ERR_INVALID_ARG_TYPE;e.exports=function(e,t,n){var r;if(t&&"function"==typeof t.next)r=t;else if(t&&t[Symbol.asyncIterator])r=t[Symbol.asyncIterator]();else{if(!t||!t[Symbol.iterator])throw new s("iterable",["Iterable"],t);r=t[Symbol.iterator]()}var c=new e(function(e){for(var t=1;t{"use strict";var r,o=n(4012).q,i=o.ERR_MISSING_ARGS,a=o.ERR_STREAM_DESTROYED;function s(e){if(e)throw e}function c(e,t,o,i){i=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(i);var s=!1;e.on("close",(function(){s=!0})),void 0===r&&(r=n(8610)),r(e,{readable:t,writable:o},(function(e){if(e)return i(e);s=!0,i()}));var c=!1;return function(t){if(!s&&!c)return c=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new a("pipe"))}}function d(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?s:e.pop():s}e.exports=function(){for(var e=arguments.length,t=new Array(e),n=0;n0,(function(e){r||(r=e),e&&a.forEach(d),i||(a.forEach(d),o(r))}))}));return t.reduce(u)}},2457:(e,t,n)=>{"use strict";var r=n(4012).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,o){var i=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,o,n);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new r(o?n:"highWaterMark",i);return Math.floor(i)}return e.objectMode?16:16384}}},9740:(e,t,n)=>{e.exports=n(2781)},1451:(e,t,n)=>{var r=n(2781);"disable"===process.env.READABLE_STREAM&&r?(e.exports=r.Readable,Object.assign(e.exports,r),e.exports.Stream=r):((t=e.exports=n(9481)).Stream=r||t,t.Readable=t,t.Writable=n(4229),t.Duplex=n(6753),t.Transform=n(4605),t.PassThrough=n(2725),t.finished=n(8610),t.pipeline=n(9946))},5666:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function d(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,i=Object.create(o.prototype),a=new k(r||[]);return i._invoke=function(e,t,n){var r=l;return function(o,i){if(r===f)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return Q()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var s=B(a,n);if(s){if(s===p)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var c=u(e,t,n);if("normal"===c.type){if(r=n.done?h:A,c.arg===p)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=h,n.method="throw",n.arg=c.arg)}}}(e,n,a),i}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=d;var l="suspendedStart",A="suspendedYield",f="executing",h="completed",p={};function g(){}function m(){}function v(){}var y={};c(y,i,(function(){return this}));var b=Object.getPrototypeOf,I=b&&b(b(O([])));I&&I!==n&&r.call(I,i)&&(y=I);var C=v.prototype=g.prototype=Object.create(y);function E(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function n(o,i,a,s){var c=u(e[o],e,i);if("throw"!==c.type){var d=c.arg,l=d.value;return l&&"object"==typeof l&&r.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(l).then((function(e){d.value=e,a(d)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function B(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,B(e,n),"throw"===n.method))return p;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var o=u(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,p;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function _(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 S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function O(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),d=r.call(a,"finallyLoc");if(c&&d){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;S(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:O(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),p}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},9785:(e,t,n)=>{"use strict";var r=n(4300).Buffer,o=n(4378),i=n(3349),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],c=[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],d=[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],u=[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],l=[0,1518500249,1859775393,2400959708,2840853838],A=[1352829926,1548603684,1836072691,2053994217,0];function f(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function h(e,t){return e<>>32-t}function p(e,t,n,r,o,i,a,s){return h(e+(t^n^r)+i+a|0,s)+o|0}function g(e,t,n,r,o,i,a,s){return h(e+(t&n|~t&r)+i+a|0,s)+o|0}function m(e,t,n,r,o,i,a,s){return h(e+((t|~n)^r)+i+a|0,s)+o|0}function v(e,t,n,r,o,i,a,s){return h(e+(t&r|n&~r)+i+a|0,s)+o|0}function y(e,t,n,r,o,i,a,s){return h(e+(t^(n|~r))+i+a|0,s)+o|0}o(f,i),f.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,o=0|this._c,i=0|this._d,f=0|this._e,b=0|this._a,I=0|this._b,C=0|this._c,E=0|this._d,w=0|this._e,B=0;B<80;B+=1){var _,S;B<16?(_=p(n,r,o,i,f,e[s[B]],l[0],d[B]),S=y(b,I,C,E,w,e[c[B]],A[0],u[B])):B<32?(_=g(n,r,o,i,f,e[s[B]],l[1],d[B]),S=v(b,I,C,E,w,e[c[B]],A[1],u[B])):B<48?(_=m(n,r,o,i,f,e[s[B]],l[2],d[B]),S=m(b,I,C,E,w,e[c[B]],A[2],u[B])):B<64?(_=v(n,r,o,i,f,e[s[B]],l[3],d[B]),S=g(b,I,C,E,w,e[c[B]],A[3],u[B])):(_=y(n,r,o,i,f,e[s[B]],l[4],d[B]),S=p(b,I,C,E,w,e[c[B]],A[4],u[B])),n=f,f=i,i=h(o,10),o=r,r=_,b=w,w=E,E=h(C,10),C=I,I=S}var k=this._b+o+E|0;this._b=this._c+i+w|0,this._c=this._d+f+b|0,this._d=this._e+n+I|0,this._e=this._a+r+C|0,this._a=k},f.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=r.alloc?r.alloc(20):new r(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=f},9509:(e,t,n)=>{var r=n(4300),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),a.prototype=Object.create(o.prototype),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},2257:(e,t,n)=>{const r=Symbol("SemVer ANY");class o{static get ANY(){return r}constructor(e,t){if(t=i(t),e instanceof o){if(e.loose===!!t.loose)return e;e=e.value}d("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,d("comp",this)}parse(e){const t=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new u(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(d("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new u(e,this.options)}catch(e){return!1}return c(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof o))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new l(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new l(this.value,t).test(e.semver);const n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),r=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),i=this.semver.version===e.semver.version,a=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),s=c(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),d=c(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||r||i&&a||s||d}}e.exports=o;const i=n(2893),{re:a,t:s}=n(5765),c=n(7539),d=n(4225),u=n(6376),l=n(6902)},6902:(e,t,n)=>{class r{constructor(e,t){if(t=i(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof a)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!h(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&p(e[0])){this.set=[e];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();const t=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=o.get(t);if(n)return n;const r=this.options.loose,i=r?d[u.HYPHENRANGELOOSE]:d[u.HYPHENRANGE];e=e.replace(i,S(this.options.includePrerelease)),s("hyphen replace",e),e=e.replace(d[u.COMPARATORTRIM],l),s("comparator trim",e,d[u.COMPARATORTRIM]),e=(e=(e=e.replace(d[u.TILDETRIM],A)).replace(d[u.CARETTRIM],f)).split(/\s+/).join(" ");const c=r?d[u.COMPARATORLOOSE]:d[u.COMPARATOR],p=e.split(" ").map((e=>m(e,this.options))).join(" ").split(/\s+/).map((e=>_(e,this.options))).filter(this.options.loose?e=>!!e.match(c):()=>!0).map((e=>new a(e,this.options))),g=(p.length,new Map);for(const e of p){if(h(e))return[e];g.set(e.value,e)}g.size>1&&g.has("")&&g.delete("");const v=[...g.values()];return o.set(t,v),v}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some((n=>g(n,t)&&e.set.some((e=>g(e,t)&&n.every((n=>e.every((e=>n.intersects(e,t)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new c(e,this.options)}catch(e){return!1}for(let t=0;t"<0.0.0-0"===e.value,p=e=>""===e.value,g=(e,t)=>{let n=!0;const r=e.slice();let o=r.pop();for(;n&&r.length;)n=r.every((e=>o.intersects(e,t))),o=r.pop();return n},m=(e,t)=>(s("comp",e,t),e=I(e,t),s("caret",e),e=y(e,t),s("tildes",e),e=E(e,t),s("xrange",e),e=B(e,t),s("stars",e),e),v=e=>!e||"x"===e.toLowerCase()||"*"===e,y=(e,t)=>e.trim().split(/\s+/).map((e=>b(e,t))).join(" "),b=(e,t)=>{const n=t.loose?d[u.TILDELOOSE]:d[u.TILDE];return e.replace(n,((t,n,r,o,i)=>{let a;return s("tilde",e,t,n,r,o,i),v(n)?a="":v(r)?a=`>=${n}.0.0 <${+n+1}.0.0-0`:v(o)?a=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:i?(s("replaceTilde pr",i),a=`>=${n}.${r}.${o}-${i} <${n}.${+r+1}.0-0`):a=`>=${n}.${r}.${o} <${n}.${+r+1}.0-0`,s("tilde return",a),a}))},I=(e,t)=>e.trim().split(/\s+/).map((e=>C(e,t))).join(" "),C=(e,t)=>{s("caret",e,t);const n=t.loose?d[u.CARETLOOSE]:d[u.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,o,i,a)=>{let c;return s("caret",e,t,n,o,i,a),v(n)?c="":v(o)?c=`>=${n}.0.0${r} <${+n+1}.0.0-0`:v(i)?c="0"===n?`>=${n}.${o}.0${r} <${n}.${+o+1}.0-0`:`>=${n}.${o}.0${r} <${+n+1}.0.0-0`:a?(s("replaceCaret pr",a),c="0"===n?"0"===o?`>=${n}.${o}.${i}-${a} <${n}.${o}.${+i+1}-0`:`>=${n}.${o}.${i}-${a} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${i}-${a} <${+n+1}.0.0-0`):(s("no pr"),c="0"===n?"0"===o?`>=${n}.${o}.${i}${r} <${n}.${o}.${+i+1}-0`:`>=${n}.${o}.${i}${r} <${n}.${+o+1}.0-0`:`>=${n}.${o}.${i} <${+n+1}.0.0-0`),s("caret return",c),c}))},E=(e,t)=>(s("replaceXRanges",e,t),e.split(/\s+/).map((e=>w(e,t))).join(" ")),w=(e,t)=>{e=e.trim();const n=t.loose?d[u.XRANGELOOSE]:d[u.XRANGE];return e.replace(n,((n,r,o,i,a,c)=>{s("xRange",e,n,r,o,i,a,c);const d=v(o),u=d||v(i),l=u||v(a),A=l;return"="===r&&A&&(r=""),c=t.includePrerelease?"-0":"",d?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&A?(u&&(i=0),a=0,">"===r?(r=">=",u?(o=+o+1,i=0,a=0):(i=+i+1,a=0)):"<="===r&&(r="<",u?o=+o+1:i=+i+1),"<"===r&&(c="-0"),n=`${r+o}.${i}.${a}${c}`):u?n=`>=${o}.0.0${c} <${+o+1}.0.0-0`:l&&(n=`>=${o}.${i}.0${c} <${o}.${+i+1}.0-0`),s("xRange return",n),n}))},B=(e,t)=>(s("replaceStars",e,t),e.trim().replace(d[u.STAR],"")),_=(e,t)=>(s("replaceGTE0",e,t),e.trim().replace(d[t.includePrerelease?u.GTE0PRE:u.GTE0],"")),S=e=>(t,n,r,o,i,a,s,c,d,u,l,A,f)=>`${n=v(r)?"":v(o)?`>=${r}.0.0${e?"-0":""}`:v(i)?`>=${r}.${o}.0${e?"-0":""}`:a?`>=${n}`:`>=${n}${e?"-0":""}`} ${c=v(d)?"":v(u)?`<${+d+1}.0.0-0`:v(l)?`<${d}.${+u+1}.0-0`:A?`<=${d}.${u}.${l}-${A}`:e?`<${d}.${u}.${+l+1}-0`:`<=${c}`}`.trim(),k=(e,t,n)=>{for(let n=0;n0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},6376:(e,t,n)=>{const r=n(4225),{MAX_LENGTH:o,MAX_SAFE_INTEGER:i}=n(3295),{re:a,t:s}=n(5765),c=n(2893),{compareIdentifiers:d}=n(6742);class u{constructor(e,t){if(t=c(t),e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>o)throw new TypeError(`version is longer than ${o} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?a[s.LOOSE]:a[s.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}e.exports=u},3507:(e,t,n)=>{const r=n(3959);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},7539:(e,t,n)=>{const r=n(8718),o=n(1194),i=n(1312),a=n(5903),s=n(1544),c=n(2056);e.exports=(e,t,n,d)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,d);case"!=":return o(e,n,d);case">":return i(e,n,d);case">=":return a(e,n,d);case"<":return s(e,n,d);case"<=":return c(e,n,d);default:throw new TypeError(`Invalid operator: ${t}`)}}},9038:(e,t,n)=>{const r=n(6376),o=n(3959),{re:i,t:a}=n(5765);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){let t;for(;(t=i[a.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&t.index+t[0].length===n.index+n[0].length||(n=t),i[a.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;i[a.COERCERTL].lastIndex=-1}else n=e.match(i[a.COERCE]);return null===n?null:o(`${n[2]}.${n[3]||"0"}.${n[4]||"0"}`,t)}},8880:(e,t,n)=>{const r=n(6376);e.exports=(e,t,n)=>{const o=new r(e,n),i=new r(t,n);return o.compare(i)||o.compareBuild(i)}},7880:(e,t,n)=>{const r=n(6269);e.exports=(e,t)=>r(e,t,!0)},6269:(e,t,n)=>{const r=n(6376);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},2378:(e,t,n)=>{const r=n(3959),o=n(8718);e.exports=(e,t)=>{if(o(e,t))return null;{const n=r(e),o=r(t),i=n.prerelease.length||o.prerelease.length,a=i?"pre":"",s=i?"prerelease":"";for(const e in n)if(("major"===e||"minor"===e||"patch"===e)&&n[e]!==o[e])return a+e;return s}}},8718:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>0===r(e,t,n)},1312:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(e,t,n)>0},5903:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(e,t,n)>=0},253:(e,t,n)=>{const r=n(6376);e.exports=(e,t,n,o)=>{"string"==typeof n&&(o=n,n=void 0);try{return new r(e,n).inc(t,o).version}catch(e){return null}}},1544:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(e,t,n)<0},2056:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(e,t,n)<=0},8679:(e,t,n)=>{const r=n(6376);e.exports=(e,t)=>new r(e,t).major},7789:(e,t,n)=>{const r=n(6376);e.exports=(e,t)=>new r(e,t).minor},1194:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>0!==r(e,t,n)},3959:(e,t,n)=>{const{MAX_LENGTH:r}=n(3295),{re:o,t:i}=n(5765),a=n(6376),s=n(2893);e.exports=(e,t)=>{if(t=s(t),e instanceof a)return e;if("string"!=typeof e)return null;if(e.length>r)return null;if(!(t.loose?o[i.LOOSE]:o[i.FULL]).test(e))return null;try{return new a(e,t)}catch(e){return null}}},2358:(e,t,n)=>{const r=n(6376);e.exports=(e,t)=>new r(e,t).patch},7559:(e,t,n)=>{const r=n(3959);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},9795:(e,t,n)=>{const r=n(6269);e.exports=(e,t,n)=>r(t,e,n)},3657:(e,t,n)=>{const r=n(8880);e.exports=(e,t)=>e.sort(((e,n)=>r(n,e,t)))},5712:(e,t,n)=>{const r=n(6902);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},1100:(e,t,n)=>{const r=n(8880);e.exports=(e,t)=>e.sort(((e,n)=>r(e,n,t)))},6397:(e,t,n)=>{const r=n(3959);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},1249:(e,t,n)=>{const r=n(5765);e.exports={re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:n(3295).SEMVER_SPEC_VERSION,SemVer:n(6376),compareIdentifiers:n(6742).compareIdentifiers,rcompareIdentifiers:n(6742).rcompareIdentifiers,parse:n(3959),valid:n(6397),clean:n(3507),inc:n(253),diff:n(2378),major:n(8679),minor:n(7789),patch:n(2358),prerelease:n(7559),compare:n(6269),rcompare:n(9795),compareLoose:n(7880),compareBuild:n(8880),sort:n(1100),rsort:n(3657),gt:n(1312),lt:n(1544),eq:n(8718),neq:n(1194),gte:n(5903),lte:n(2056),cmp:n(7539),coerce:n(9038),Comparator:n(2257),Range:n(6902),satisfies:n(5712),toComparators:n(1042),maxSatisfying:n(5775),minSatisfying:n(1657),minVersion:n(5316),validRange:n(9042),outside:n(6826),gtr:n(9118),ltr:n(32),intersects:n(2937),simplifyRange:n(7908),subset:n(2691)}},3295:e=>{const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},4225:e=>{const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},6742:e=>{const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),o=t.test(n);return r&&o&&(e=+e,n=+n),e===n?0:r&&!o?-1:o&&!r?1:en(t,e)}},2893:e=>{const t=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:t.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{}},5765:(e,t,n)=>{const{MAX_SAFE_COMPONENT_LENGTH:r}=n(3295),o=n(4225),i=(t=e.exports={}).re=[],a=t.src=[],s=t.t={};let c=0;const d=(e,t,n)=>{const r=c++;o(r,t),s[e]=r,a[r]=t,i[r]=new RegExp(t,n?"g":void 0)};d("NUMERICIDENTIFIER","0|[1-9]\\d*"),d("NUMERICIDENTIFIERLOOSE","[0-9]+"),d("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),d("MAINVERSION",`(${a[s.NUMERICIDENTIFIER]})\\.(${a[s.NUMERICIDENTIFIER]})\\.(${a[s.NUMERICIDENTIFIER]})`),d("MAINVERSIONLOOSE",`(${a[s.NUMERICIDENTIFIERLOOSE]})\\.(${a[s.NUMERICIDENTIFIERLOOSE]})\\.(${a[s.NUMERICIDENTIFIERLOOSE]})`),d("PRERELEASEIDENTIFIER",`(?:${a[s.NUMERICIDENTIFIER]}|${a[s.NONNUMERICIDENTIFIER]})`),d("PRERELEASEIDENTIFIERLOOSE",`(?:${a[s.NUMERICIDENTIFIERLOOSE]}|${a[s.NONNUMERICIDENTIFIER]})`),d("PRERELEASE",`(?:-(${a[s.PRERELEASEIDENTIFIER]}(?:\\.${a[s.PRERELEASEIDENTIFIER]})*))`),d("PRERELEASELOOSE",`(?:-?(${a[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[s.PRERELEASEIDENTIFIERLOOSE]})*))`),d("BUILDIDENTIFIER","[0-9A-Za-z-]+"),d("BUILD",`(?:\\+(${a[s.BUILDIDENTIFIER]}(?:\\.${a[s.BUILDIDENTIFIER]})*))`),d("FULLPLAIN",`v?${a[s.MAINVERSION]}${a[s.PRERELEASE]}?${a[s.BUILD]}?`),d("FULL",`^${a[s.FULLPLAIN]}$`),d("LOOSEPLAIN",`[v=\\s]*${a[s.MAINVERSIONLOOSE]}${a[s.PRERELEASELOOSE]}?${a[s.BUILD]}?`),d("LOOSE",`^${a[s.LOOSEPLAIN]}$`),d("GTLT","((?:<|>)?=?)"),d("XRANGEIDENTIFIERLOOSE",`${a[s.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),d("XRANGEIDENTIFIER",`${a[s.NUMERICIDENTIFIER]}|x|X|\\*`),d("XRANGEPLAIN",`[v=\\s]*(${a[s.XRANGEIDENTIFIER]})(?:\\.(${a[s.XRANGEIDENTIFIER]})(?:\\.(${a[s.XRANGEIDENTIFIER]})(?:${a[s.PRERELEASE]})?${a[s.BUILD]}?)?)?`),d("XRANGEPLAINLOOSE",`[v=\\s]*(${a[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[s.XRANGEIDENTIFIERLOOSE]})(?:${a[s.PRERELEASELOOSE]})?${a[s.BUILD]}?)?)?`),d("XRANGE",`^${a[s.GTLT]}\\s*${a[s.XRANGEPLAIN]}$`),d("XRANGELOOSE",`^${a[s.GTLT]}\\s*${a[s.XRANGEPLAINLOOSE]}$`),d("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),d("COERCERTL",a[s.COERCE],!0),d("LONETILDE","(?:~>?)"),d("TILDETRIM",`(\\s*)${a[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",d("TILDE",`^${a[s.LONETILDE]}${a[s.XRANGEPLAIN]}$`),d("TILDELOOSE",`^${a[s.LONETILDE]}${a[s.XRANGEPLAINLOOSE]}$`),d("LONECARET","(?:\\^)"),d("CARETTRIM",`(\\s*)${a[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",d("CARET",`^${a[s.LONECARET]}${a[s.XRANGEPLAIN]}$`),d("CARETLOOSE",`^${a[s.LONECARET]}${a[s.XRANGEPLAINLOOSE]}$`),d("COMPARATORLOOSE",`^${a[s.GTLT]}\\s*(${a[s.LOOSEPLAIN]})$|^$`),d("COMPARATOR",`^${a[s.GTLT]}\\s*(${a[s.FULLPLAIN]})$|^$`),d("COMPARATORTRIM",`(\\s*)${a[s.GTLT]}\\s*(${a[s.LOOSEPLAIN]}|${a[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",d("HYPHENRANGE",`^\\s*(${a[s.XRANGEPLAIN]})\\s+-\\s+(${a[s.XRANGEPLAIN]})\\s*$`),d("HYPHENRANGELOOSE",`^\\s*(${a[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[s.XRANGEPLAINLOOSE]})\\s*$`),d("STAR","(<|>)?=?\\s*\\*"),d("GTE0","^\\s*>=\\s*0.0.0\\s*$"),d("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},9118:(e,t,n)=>{const r=n(6826);e.exports=(e,t,n)=>r(e,t,">",n)},2937:(e,t,n)=>{const r=n(6902);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t))},32:(e,t,n)=>{const r=n(6826);e.exports=(e,t,n)=>r(e,t,"<",n)},5775:(e,t,n)=>{const r=n(6376),o=n(6902);e.exports=(e,t,n)=>{let i=null,a=null,s=null;try{s=new o(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(i&&-1!==a.compare(e)||(i=e,a=new r(i,n)))})),i}},1657:(e,t,n)=>{const r=n(6376),o=n(6902);e.exports=(e,t,n)=>{let i=null,a=null,s=null;try{s=new o(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(i&&1!==a.compare(e)||(i=e,a=new r(i,n)))})),i}},5316:(e,t,n)=>{const r=n(6376),o=n(6902),i=n(1312);e.exports=(e,t)=>{e=new o(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":a&&!i(t,a)||(a=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!a||n&&!i(n,a)||(n=a)}return n&&e.test(n)?n:null}},6826:(e,t,n)=>{const r=n(6376),o=n(2257),{ANY:i}=o,a=n(6902),s=n(5712),c=n(1312),d=n(1544),u=n(2056),l=n(5903);e.exports=(e,t,n,A)=>{let f,h,p,g,m;switch(e=new r(e,A),t=new a(t,A),n){case">":f=c,h=u,p=d,g=">",m=">=";break;case"<":f=d,h=l,p=c,g="<",m="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(s(e,t,A))return!1;for(let n=0;n{e.semver===i&&(e=new o(">=0.0.0")),a=a||e,s=s||e,f(e.semver,a.semver,A)?a=e:p(e.semver,s.semver,A)&&(s=e)})),a.operator===g||a.operator===m)return!1;if((!s.operator||s.operator===g)&&h(e,s.semver))return!1;if(s.operator===m&&p(e,s.semver))return!1}return!0}},7908:(e,t,n)=>{const r=n(5712),o=n(6269);e.exports=(e,t,n)=>{const i=[];let a=null,s=null;const c=e.sort(((e,t)=>o(e,t,n)));for(const e of c)r(e,t,n)?(s=e,a||(a=e)):(s&&i.push([a,s]),s=null,a=null);a&&i.push([a,null]);const d=[];for(const[e,t]of i)e===t?d.push(e):t||e!==c[0]?t?e===c[0]?d.push(`<=${t}`):d.push(`${e} - ${t}`):d.push(`>=${e}`):d.push("*");const u=d.join(" || "),l="string"==typeof t.raw?t.raw:String(t);return u.length{const r=n(6902),o=n(2257),{ANY:i}=o,a=n(5712),s=n(6269),c=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===i){if(1===t.length&&t[0].semver===i)return!0;e=n.includePrerelease?[new o(">=0.0.0-0")]:[new o(">=0.0.0")]}if(1===t.length&&t[0].semver===i){if(n.includePrerelease)return!0;t=[new o(">=0.0.0")]}const r=new Set;let c,l,A,f,h,p,g;for(const t of e)">"===t.operator||">="===t.operator?c=d(c,t,n):"<"===t.operator||"<="===t.operator?l=u(l,t,n):r.add(t.semver);if(r.size>1)return null;if(c&&l){if(A=s(c.semver,l.semver,n),A>0)return null;if(0===A&&(">="!==c.operator||"<="!==l.operator))return null}for(const e of r){if(c&&!a(e,String(c),n))return null;if(l&&!a(e,String(l),n))return null;for(const r of t)if(!a(e,String(r),n))return!1;return!0}let m=!(!l||n.includePrerelease||!l.semver.prerelease.length)&&l.semver,v=!(!c||n.includePrerelease||!c.semver.prerelease.length)&&c.semver;m&&1===m.prerelease.length&&"<"===l.operator&&0===m.prerelease[0]&&(m=!1);for(const e of t){if(g=g||">"===e.operator||">="===e.operator,p=p||"<"===e.operator||"<="===e.operator,c)if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),">"===e.operator||">="===e.operator){if(f=d(c,e,n),f===e&&f!==c)return!1}else if(">="===c.operator&&!a(c.semver,String(e),n))return!1;if(l)if(m&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===m.major&&e.semver.minor===m.minor&&e.semver.patch===m.patch&&(m=!1),"<"===e.operator||"<="===e.operator){if(h=u(l,e,n),h===e&&h!==l)return!1}else if("<="===l.operator&&!a(l.semver,String(e),n))return!1;if(!e.operator&&(l||c)&&0!==A)return!1}return!(c&&p&&!l&&0!==A||l&&g&&!c&&0!==A||v||m)},d=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},u=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let o=!1;e:for(const r of e.set){for(const e of t.set){const t=c(r,e,n);if(o=o||null!==t,t)continue e}if(o)return!1}return!0}},1042:(e,t,n)=>{const r=n(6902);e.exports=(e,t)=>new r(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")))},9042:(e,t,n)=>{const r=n(6902);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}},2553:(e,t,n)=>{"use strict";var r=n(9509).Buffer,o=r.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 i(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&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=d,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=u,this.end=l,t=3;break;default:return this.write=A,void(this.end=f)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.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,n=function(e,t,n){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!==n?n: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 c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function d(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?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-n))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function A(e){return e.toString(this.encoding)}function f(e){return e&&e.length?this.write(e):""}t.s=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(o>0&&(e.lastNeed=o-1),o):--r=0?(o>0&&(e.lastNeed=o-2),o):--r=0?(o>0&&(2===o?o=0:e.lastNeed=o-3),o):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.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}},2130:(e,t,n)=>{"use strict";const r=n(2037),o=n(6224),i=n(6560),{env:a}=process;let s;function c(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function d(e,t){if(0===s)return 0;if(i("color=16m")||i("color=full")||i("color=truecolor"))return 3;if(i("color=256"))return 2;if(e&&!t&&void 0===s)return 0;const n=s||0;if("dumb"===a.TERM)return n;if("win32"===process.platform){const e=r.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in a)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in a))||"codeship"===a.CI_NAME?1:n;if("TEAMCITY_VERSION"in a)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(a.TEAMCITY_VERSION)?1:0;if("truecolor"===a.COLORTERM)return 3;if("TERM_PROGRAM"in a){const e=parseInt((a.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(a.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(a.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(a.TERM)||"COLORTERM"in a?1:n}i("no-color")||i("no-colors")||i("color=false")||i("color=never")?s=0:(i("color")||i("colors")||i("color=true")||i("color=always"))&&(s=1),"FORCE_COLOR"in a&&(s="true"===a.FORCE_COLOR?1:"false"===a.FORCE_COLOR?0:0===a.FORCE_COLOR.length?1:Math.min(parseInt(a.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return c(d(e,e&&e.isTTY))},stdout:c(d(!0,o.isatty(1))),stderr:c(d(!0,o.isatty(2)))}},1839:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.Symbol;if("function"==typeof n)if(n.observable)t=n.observable;else{t=n.for("https://github.com/benlesh/symbol-observable");try{n.observable=t}catch(e){}}else t="@@observable";return t}},868:(e,t,n)=>{e.exports=n(1839)},6910:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serializeSignDoc=t.Secp256k1Wallet=t.Secp256k1HdWallet=t.rawSecp256k1PubkeyToRawAddress=t.pubkeyType=t.pubkeyToRawAddress=t.pubkeyToAddress=t.parseCoins=t.makeStdTx=t.makeSignDoc=t.makeCosmoshubPath=t.isStdTx=t.isSinglePubkey=t.isSecp256k1Pubkey=t.encodeSecp256k1Signature=t.encodeSecp256k1Pubkey=t.encodeBech32Pubkey=t.encodeAminoPubkey=t.decodeSignature=t.decodeBech32Pubkey=t.decodeAminoPubkey=t.coins=t.coin=void 0;var r=n(3359);Object.defineProperty(t,"coin",{enumerable:!0,get:function(){return r.coin}}),Object.defineProperty(t,"coins",{enumerable:!0,get:function(){return r.coins}}),Object.defineProperty(t,"decodeAminoPubkey",{enumerable:!0,get:function(){return r.decodeAminoPubkey}}),Object.defineProperty(t,"decodeBech32Pubkey",{enumerable:!0,get:function(){return r.decodeBech32Pubkey}}),Object.defineProperty(t,"decodeSignature",{enumerable:!0,get:function(){return r.decodeSignature}}),Object.defineProperty(t,"encodeAminoPubkey",{enumerable:!0,get:function(){return r.encodeAminoPubkey}}),Object.defineProperty(t,"encodeBech32Pubkey",{enumerable:!0,get:function(){return r.encodeBech32Pubkey}}),Object.defineProperty(t,"encodeSecp256k1Pubkey",{enumerable:!0,get:function(){return r.encodeSecp256k1Pubkey}}),Object.defineProperty(t,"encodeSecp256k1Signature",{enumerable:!0,get:function(){return r.encodeSecp256k1Signature}}),Object.defineProperty(t,"isSecp256k1Pubkey",{enumerable:!0,get:function(){return r.isSecp256k1Pubkey}}),Object.defineProperty(t,"isSinglePubkey",{enumerable:!0,get:function(){return r.isSinglePubkey}}),Object.defineProperty(t,"isStdTx",{enumerable:!0,get:function(){return r.isStdTx}}),Object.defineProperty(t,"makeCosmoshubPath",{enumerable:!0,get:function(){return r.makeCosmoshubPath}}),Object.defineProperty(t,"makeSignDoc",{enumerable:!0,get:function(){return r.makeSignDoc}}),Object.defineProperty(t,"makeStdTx",{enumerable:!0,get:function(){return r.makeStdTx}}),Object.defineProperty(t,"parseCoins",{enumerable:!0,get:function(){return r.parseCoins}}),Object.defineProperty(t,"pubkeyToAddress",{enumerable:!0,get:function(){return r.pubkeyToAddress}}),Object.defineProperty(t,"pubkeyToRawAddress",{enumerable:!0,get:function(){return r.pubkeyToRawAddress}}),Object.defineProperty(t,"pubkeyType",{enumerable:!0,get:function(){return r.pubkeyType}}),Object.defineProperty(t,"rawSecp256k1PubkeyToRawAddress",{enumerable:!0,get:function(){return r.rawSecp256k1PubkeyToRawAddress}}),Object.defineProperty(t,"Secp256k1HdWallet",{enumerable:!0,get:function(){return r.Secp256k1HdWallet}}),Object.defineProperty(t,"Secp256k1Wallet",{enumerable:!0,get:function(){return r.Secp256k1Wallet}}),Object.defineProperty(t,"serializeSignDoc",{enumerable:!0,get:function(){return r.serializeSignDoc}})},3685:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toBinary=t.SigningCosmWasmClient=t.fromBinary=t.CosmWasmClient=void 0;var r=n(4926);Object.defineProperty(t,"CosmWasmClient",{enumerable:!0,get:function(){return r.CosmWasmClient}}),Object.defineProperty(t,"fromBinary",{enumerable:!0,get:function(){return r.fromBinary}}),Object.defineProperty(t,"SigningCosmWasmClient",{enumerable:!0,get:function(){return r.SigningCosmWasmClient}}),Object.defineProperty(t,"toBinary",{enumerable:!0,get:function(){return r.toBinary}})},8010:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Random=t.pathToString=t.Bip39=void 0;var r=n(9562);Object.defineProperty(t,"Bip39",{enumerable:!0,get:function(){return r.Bip39}}),Object.defineProperty(t,"pathToString",{enumerable:!0,get:function(){return r.pathToString}}),Object.defineProperty(t,"Random",{enumerable:!0,get:function(){return r.Random}})},1558:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUtf8=t.toRfc3339=t.toHex=t.toBech32=t.toBase64=t.toAscii=t.fromUtf8=t.fromRfc3339=t.fromHex=t.fromBech32=t.fromBase64=t.fromAscii=t.Bech32=void 0;var r=n(8972);Object.defineProperty(t,"Bech32",{enumerable:!0,get:function(){return r.Bech32}}),Object.defineProperty(t,"fromAscii",{enumerable:!0,get:function(){return r.fromAscii}}),Object.defineProperty(t,"fromBase64",{enumerable:!0,get:function(){return r.fromBase64}}),Object.defineProperty(t,"fromBech32",{enumerable:!0,get:function(){return r.fromBech32}}),Object.defineProperty(t,"fromHex",{enumerable:!0,get:function(){return r.fromHex}}),Object.defineProperty(t,"fromRfc3339",{enumerable:!0,get:function(){return r.fromRfc3339}}),Object.defineProperty(t,"fromUtf8",{enumerable:!0,get:function(){return r.fromUtf8}}),Object.defineProperty(t,"toAscii",{enumerable:!0,get:function(){return r.toAscii}}),Object.defineProperty(t,"toBase64",{enumerable:!0,get:function(){return r.toBase64}}),Object.defineProperty(t,"toBech32",{enumerable:!0,get:function(){return r.toBech32}}),Object.defineProperty(t,"toHex",{enumerable:!0,get:function(){return r.toHex}}),Object.defineProperty(t,"toRfc3339",{enumerable:!0,get:function(){return r.toRfc3339}}),Object.defineProperty(t,"toUtf8",{enumerable:!0,get:function(){return r.toUtf8}})},5237:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaucetClient=void 0;var r=n(1467);Object.defineProperty(t,"FaucetClient",{enumerable:!0,get:function(){return r.FaucetClient}})},372:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupNodeLedger=t.setupNodeLocal=t.setupWebLedger=t.setupWebKeplr=void 0;const r=n(6910),o=n(3685),i=n(6780),a=n(2126);t.setupWebKeplr=async function(e){if(!window.keplr)throw new Error("Keplr is not supported or installed on this browser!");await window.keplr.enable(e.chainId).catch((()=>{throw new Error("Keplr can't connect to this chainId!")}));const{prefix:t,gasPrice:n}=e,r=await window.getOfflineSignerAuto(e.chainId);return await o.SigningCosmWasmClient.connectWithSigner(e.rpcEndpoint,r,{prefix:t,gasPrice:n})},t.setupWebLedger=async function(e,t){const{prefix:n,gasPrice:a}=e,s=12e4,c=await t.create(s,s),d=new i.LedgerSigner(c,{hdPaths:[(0,r.makeCosmoshubPath)(0)],prefix:n}),u=await o.SigningCosmWasmClient.connectWithSigner(e.rpcEndpoint,d,{prefix:n,gasPrice:a});if(await u.getChainId()!==e.chainId)throw Error("Given ChainId doesn't match the clients ChainID!");return u},t.setupNodeLocal=async function(e,t){const{prefix:n,gasPrice:r}=e,i=await a.DirectSecp256k1HdWallet.fromMnemonic(t,{prefix:n}),s=await o.SigningCosmWasmClient.connectWithSigner(e.rpcEndpoint,i,{prefix:n,gasPrice:r});if(await s.getChainId()!==e.chainId)throw Error("Given ChainId doesn't match the clients ChainID!");return s},t.setupNodeLedger=async function(e,t){const{prefix:n,gasPrice:a}=e,s=12e4,c=await t.create(s,s),d=new i.LedgerSigner(c,{hdPaths:[(0,r.makeCosmoshubPath)(0)],prefix:n}),u=await o.SigningCosmWasmClient.connectWithSigner(e.rpcEndpoint,d,{prefix:n,gasPrice:a});if(await u.getChainId()!==e.chainId)throw Error("Given ChainId doesn't match the clients ChainID!");return u}},3607:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.setupWebLedger=t.setupWebKeplr=t.setupNodeLocal=t.setupNodeLedger=void 0,o(n(6910),t),o(n(3685),t),o(n(8010),t),o(n(1558),t),o(n(5237),t),o(n(6780),t),o(n(6490),t),o(n(2126),t),o(n(8099),t),o(n(8120),t);var i=n(372);Object.defineProperty(t,"setupNodeLedger",{enumerable:!0,get:function(){return i.setupNodeLedger}}),Object.defineProperty(t,"setupNodeLocal",{enumerable:!0,get:function(){return i.setupNodeLocal}}),Object.defineProperty(t,"setupWebKeplr",{enumerable:!0,get:function(){return i.setupWebKeplr}}),Object.defineProperty(t,"setupWebLedger",{enumerable:!0,get:function(){return i.setupWebLedger}})},6780:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LedgerSigner=void 0;var r=n(8121);Object.defineProperty(t,"LedgerSigner",{enumerable:!0,get:function(){return r.LedgerSigner}})},6490:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Decimal=void 0;var r=n(6961);Object.defineProperty(t,"Decimal",{enumerable:!0,get:function(){return r.Decimal}})},2126:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Registry=t.DirectSecp256k1HdWallet=void 0;var r=n(4087);Object.defineProperty(t,"DirectSecp256k1HdWallet",{enumerable:!0,get:function(){return r.DirectSecp256k1HdWallet}}),Object.defineProperty(t,"Registry",{enumerable:!0,get:function(){return r.Registry}})},8099:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setupTxExtension=t.setupStakingExtension=t.setupMintExtension=t.setupIbcExtension=t.setupGovExtension=t.setupDistributionExtension=t.setupBankExtension=t.setupAuthExtension=t.createPagination=t.calculateFee=t.QueryClient=t.GasPrice=void 0;var r=n(4658);Object.defineProperty(t,"GasPrice",{enumerable:!0,get:function(){return r.GasPrice}}),Object.defineProperty(t,"QueryClient",{enumerable:!0,get:function(){return r.QueryClient}});var o=n(4658);Object.defineProperty(t,"calculateFee",{enumerable:!0,get:function(){return o.calculateFee}}),Object.defineProperty(t,"createPagination",{enumerable:!0,get:function(){return o.createPagination}}),Object.defineProperty(t,"setupAuthExtension",{enumerable:!0,get:function(){return o.setupAuthExtension}}),Object.defineProperty(t,"setupBankExtension",{enumerable:!0,get:function(){return o.setupBankExtension}}),Object.defineProperty(t,"setupDistributionExtension",{enumerable:!0,get:function(){return o.setupDistributionExtension}}),Object.defineProperty(t,"setupGovExtension",{enumerable:!0,get:function(){return o.setupGovExtension}}),Object.defineProperty(t,"setupIbcExtension",{enumerable:!0,get:function(){return o.setupIbcExtension}}),Object.defineProperty(t,"setupMintExtension",{enumerable:!0,get:function(){return o.setupMintExtension}}),Object.defineProperty(t,"setupStakingExtension",{enumerable:!0,get:function(){return o.setupStakingExtension}}),Object.defineProperty(t,"setupTxExtension",{enumerable:!0,get:function(){return o.setupTxExtension}})},8120:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNonNullObject=void 0;var r=n(5553);Object.defineProperty(t,"isNonNullObject",{enumerable:!0,get:function(){return r.isNonNullObject}})},137:e=>{"use strict";e.exports=function(e){const t=e.length;let n=0;for(;n=t||128!=(192&e[n+1])||128!=(192&e[n+2])||224===e[n]&&128==(224&e[n+1])||237===e[n]&&160==(224&e[n+1]))return!1;n+=3}else{if(240!=(248&e[n]))return!1;if(n+3>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||128!=(192&e[n+3])||240===e[n]&&128==(240&e[n+1])||244===e[n]&&e[n+1]>143||e[n]>244)return!1;n+=4}return!0}},311:(e,t,n)=>{"use strict";try{e.exports=n(9516)(__dirname)}catch(t){e.exports=n(137)}},1159:(e,t,n)=>{e.exports=n(3837).deprecate},8777:(e,t,n)=>{"use strict";const r=n(8762);r.createWebSocketStream=n(404),r.Server=n(9284),r.Receiver=n(2957),r.Sender=n(7330),e.exports=r},977:(e,t,n)=>{"use strict";const{EMPTY_BUFFER:r}=n(1872);function o(e,t){if(0===e.length)return r;if(1===e.length)return e[0];const n=Buffer.allocUnsafe(t);let o=0;for(let t=0;t{"use strict";e.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}},62:e=>{"use strict";class t{constructor(e,t){this.target=t,this.type=e}}class n extends t{constructor(e,t){super("message",t),this.data=e}}class r extends t{constructor(e,t,n){super("close",n),this.wasClean=n._closeFrameReceived&&n._closeFrameSent,this.reason=t,this.code=e}}class o extends t{constructor(e){super("open",e)}}class i extends t{constructor(e,t){super("error",t),this.message=e.message,this.error=e}}const a={addEventListener(e,t,a){if("function"!=typeof t)return;function s(e){t.call(this,new n(e,this))}function c(e,n){t.call(this,new r(e,n,this))}function d(e){t.call(this,new i(e,this))}function u(){t.call(this,new o(this))}const l=a&&a.once?"once":"on";"message"===e?(s._listener=t,this[l](e,s)):"close"===e?(c._listener=t,this[l](e,c)):"error"===e?(d._listener=t,this[l](e,d)):"open"===e?(u._listener=t,this[l](e,u)):this[l](e,t)},removeEventListener(e,t){const n=this.listeners(e);for(let r=0;r{"use strict";const t=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function n(e,t,n){void 0===e[t]?e[t]=[n]:e[t].push(n)}e.exports={format:function(e){return Object.keys(e).map((t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map((e=>[t].concat(Object.keys(e).map((t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map((e=>!0===e?t:`${t}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")},parse:function(e){const r=Object.create(null);if(void 0===e||""===e)return r;let o,i,a=Object.create(null),s=!1,c=!1,d=!1,u=-1,l=-1,A=0;for(;A{"use strict";const t=Symbol("kDone"),n=Symbol("kRun");e.exports=class{constructor(e){this[t]=()=>{this.pending--,this[n]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[n]()}[n](){if(this.pending!==this.concurrency&&this.jobs.length){const e=this.jobs.shift();this.pending++,e(this[t])}}}},5196:(e,t,n)=>{"use strict";const r=n(9796),o=n(977),i=n(305),{kStatusCode:a,NOOP:s}=n(1872),c=Buffer.from([0,0,255,255]),d=Symbol("permessage-deflate"),u=Symbol("total-length"),l=Symbol("callback"),A=Symbol("buffers"),f=Symbol("error");let h;function p(e){this[A].push(e),this[u]+=e.length}function g(e){this[u]+=e.length,this[d]._maxPayload<1||this[u]<=this[d]._maxPayload?this[A].push(e):(this[f]=new RangeError("Max payload size exceeded"),this[f].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[f][a]=1009,this.removeListener("data",g),this.reset())}function m(e){this[d]._inflate=null,e[a]=1007,this[l](e)}e.exports=class{constructor(e,t,n){if(this._maxPayload=0|n,this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!h){const e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10;h=new i(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){const e=this._deflate[l];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){const t=this._options,n=e.find((e=>!(!1===t.serverNoContextTakeover&&e.server_no_context_takeover||e.server_max_window_bits&&(!1===t.serverMaxWindowBits||"number"==typeof t.serverMaxWindowBits&&t.serverMaxWindowBits>e.server_max_window_bits)||"number"==typeof t.clientMaxWindowBits&&!e.client_max_window_bits)));if(!n)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(n.server_no_context_takeover=!0),t.clientNoContextTakeover&&(n.client_no_context_takeover=!0),"number"==typeof t.serverMaxWindowBits&&(n.server_max_window_bits=t.serverMaxWindowBits),"number"==typeof t.clientMaxWindowBits?n.client_max_window_bits=t.clientMaxWindowBits:!0!==n.client_max_window_bits&&!1!==t.clientMaxWindowBits||delete n.client_max_window_bits,n}acceptAsClient(e){const t=e[0];if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(t.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(t.client_max_window_bits=this._options.clientMaxWindowBits);return t}normalizeParams(e){return e.forEach((e=>{Object.keys(e).forEach((t=>{let n=e[t];if(n.length>1)throw new Error(`Parameter "${t}" must have only a single value`);if(n=n[0],"client_max_window_bits"===t){if(!0!==n){const e=+n;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${t}": ${n}`)}else if("server_max_window_bits"===t){const e=+n;if(!Number.isInteger(e)||e<8||e>15)throw new TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else{if("client_no_context_takeover"!==t&&"server_no_context_takeover"!==t)throw new Error(`Unknown parameter "${t}"`);if(!0!==n)throw new TypeError(`Invalid value for parameter "${t}": ${n}`)}e[t]=n}))})),e}decompress(e,t,n){h.add((r=>{this._decompress(e,t,((e,t)=>{r(),n(e,t)}))}))}compress(e,t,n){h.add((r=>{this._compress(e,t,((e,t)=>{r(),n(e,t)}))}))}_decompress(e,t,n){const i=this._isServer?"client":"server";if(!this._inflate){const e=`${i}_max_window_bits`,t="number"!=typeof this.params[e]?r.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=r.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[d]=this,this._inflate[u]=0,this._inflate[A]=[],this._inflate.on("error",m),this._inflate.on("data",g)}this._inflate[l]=n,this._inflate.write(e),t&&this._inflate.write(c),this._inflate.flush((()=>{const e=this._inflate[f];if(e)return this._inflate.close(),this._inflate=null,void n(e);const r=o.concat(this._inflate[A],this._inflate[u]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[u]=0,this._inflate[A]=[],t&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),n(null,r)}))}_compress(e,t,n){const i=this._isServer?"server":"client";if(!this._deflate){const e=`${i}_max_window_bits`,t="number"!=typeof this.params[e]?r.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=r.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[u]=0,this._deflate[A]=[],this._deflate.on("error",s),this._deflate.on("data",p)}this._deflate[l]=n,this._deflate.write(e),this._deflate.flush(r.Z_SYNC_FLUSH,(()=>{if(!this._deflate)return;let e=o.concat(this._deflate[A],this._deflate[u]);t&&(e=e.slice(0,e.length-4)),this._deflate[l]=null,this._deflate[u]=0,this._deflate[A]=[],t&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),n(null,e)}))}}},2957:(e,t,n)=>{"use strict";const{Writable:r}=n(2781),o=n(5196),{BINARY_TYPES:i,EMPTY_BUFFER:a,kStatusCode:s,kWebSocket:c}=n(1872),{concat:d,toArrayBuffer:u,unmask:l}=n(977),{isValidStatusCode:A,isValidUTF8:f}=n(6746);function h(e,t,n,r,o){const i=new e(n?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(i,h),i.code=o,i[s]=r,i}e.exports=class extends r{constructor(e,t,n,r){super(),this._binaryType=e||i[0],this[c]=void 0,this._extensions=t||{},this._isServer=!!n,this._maxPayload=0|r,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=0,this._loop=!1}_write(e,t,n){if(8===this._opcode&&0==this._state)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=n.length?t.set(this._buffers.shift(),r):(t.set(new Uint8Array(n.buffer,n.byteOffset,e),r),this._buffers[0]=n.slice(e)),e-=n.length}while(e>0);return t}startLoop(e){let t;this._loop=!0;do{switch(this._state){case 0:t=this.getInfo();break;case 1:t=this.getPayloadLength16();break;case 2:t=this.getPayloadLength64();break;case 3:this.getMask();break;case 4:t=this.getData(e);break;default:return void(this._loop=!1)}}while(this._loop);e(t)}getInfo(){if(this._bufferedBytes<2)return void(this._loop=!1);const e=this.consume(2);if(0!=(48&e[0]))return this._loop=!1,h(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");const t=64==(64&e[0]);if(t&&!this._extensions[o.extensionName])return this._loop=!1,h(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._fin=128==(128&e[0]),this._opcode=15&e[0],this._payloadLength=127&e[1],0===this._opcode){if(t)return this._loop=!1,h(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(!this._fragmented)return this._loop=!1,h(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return this._loop=!1,h(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");this._compressed=t}else{if(!(this._opcode>7&&this._opcode<11))return this._loop=!1,h(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");if(!this._fin)return this._loop=!1,h(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");if(t)return this._loop=!1,h(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");if(this._payloadLength>125)return this._loop=!1,h(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH")}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=128==(128&e[1]),this._isServer){if(!this._masked)return this._loop=!1,h(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK")}else if(this._masked)return this._loop=!1,h(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");if(126===this._payloadLength)this._state=1;else{if(127!==this._payloadLength)return this.haveLength();this._state=2}}getPayloadLength16(){if(!(this._bufferedBytes<2))return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength();this._loop=!1}getPayloadLength64(){if(this._bufferedBytes<8)return void(this._loop=!1);const e=this.consume(8),t=e.readUInt32BE(0);return t>Math.pow(2,21)-1?(this._loop=!1,h(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=t*Math.pow(2,32)+e.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,h(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");this._masked?this._state=3:this._state=4}getMask(){this._bufferedBytes<4?this._loop=!1:(this._mask=this.consume(4),this._state=4)}getData(e){let t=a;if(this._payloadLength){if(this._bufferedBytes7?this.controlMessage(t):this._compressed?(this._state=5,void this.decompress(t,e)):(t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage())}decompress(e,t){this._extensions[o.extensionName].decompress(e,this._fin,((e,n)=>{if(e)return t(e);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return t(h(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"));this._fragments.push(n)}const r=this.dataMessage();if(r)return t(r);this.startLoop(t)}))}dataMessage(){if(this._fin){const e=this._messageLength,t=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let n;n="nodebuffer"===this._binaryType?d(t,e):"arraybuffer"===this._binaryType?u(d(t,e)):t,this.emit("message",n)}else{const n=d(t,e);if(!f(n))return this._loop=!1,h(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("message",n.toString())}}this._state=0}controlMessage(e){if(8===this._opcode)if(this._loop=!1,0===e.length)this.emit("conclude",1005,""),this.end();else{if(1===e.length)return h(RangeError,"invalid payload length 1",!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");{const t=e.readUInt16BE(0);if(!A(t))return h(RangeError,`invalid status code ${t}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");const n=e.slice(2);if(!f(n))return h(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");this.emit("conclude",t,n.toString()),this.end()}}else 9===this._opcode?this.emit("ping",e):this.emit("pong",e);this._state=0}}},7330:(e,t,n)=>{"use strict";n(1808),n(4404);const{randomFillSync:r}=n(6113),o=n(5196),{EMPTY_BUFFER:i}=n(1872),{isValidStatusCode:a}=n(6746),{mask:s,toBuffer:c}=n(977),d=Buffer.alloc(4);class u{constructor(e,t){this._extensions=t||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,t){const n=t.mask&&t.readOnly;let o=t.mask?6:2,i=e.length;e.length>=65536?(o+=8,i=127):e.length>125&&(o+=2,i=126);const a=Buffer.allocUnsafe(n?e.length+o:o);return a[0]=t.fin?128|t.opcode:t.opcode,t.rsv1&&(a[0]|=64),a[1]=i,126===i?a.writeUInt16BE(e.length,2):127===i&&(a.writeUInt32BE(0,2),a.writeUInt32BE(e.length,6)),t.mask?(r(d,0,4),a[1]|=128,a[o-4]=d[0],a[o-3]=d[1],a[o-2]=d[2],a[o-1]=d[3],n?(s(e,d,a,o,e.length),[a]):(s(e,d,e,0,e.length),[a,e])):[a,e]}close(e,t,n,r){let o;if(void 0===e)o=i;else{if("number"!=typeof e||!a(e))throw new TypeError("First argument must be a valid error code number");if(void 0===t||""===t)o=Buffer.allocUnsafe(2),o.writeUInt16BE(e,0);else{const n=Buffer.byteLength(t);if(n>123)throw new RangeError("The message must not be greater than 123 bytes");o=Buffer.allocUnsafe(2+n),o.writeUInt16BE(e,0),o.write(t,2)}}this._deflating?this.enqueue([this.doClose,o,n,r]):this.doClose(o,n,r)}doClose(e,t,n){this.sendFrame(u.frame(e,{fin:!0,rsv1:!1,opcode:8,mask:t,readOnly:!1}),n)}ping(e,t,n){const r=c(e);if(r.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,r,t,c.readOnly,n]):this.doPing(r,t,c.readOnly,n)}doPing(e,t,n,r){this.sendFrame(u.frame(e,{fin:!0,rsv1:!1,opcode:9,mask:t,readOnly:n}),r)}pong(e,t,n){const r=c(e);if(r.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,r,t,c.readOnly,n]):this.doPong(r,t,c.readOnly,n)}doPong(e,t,n,r){this.sendFrame(u.frame(e,{fin:!0,rsv1:!1,opcode:10,mask:t,readOnly:n}),r)}send(e,t,n){const r=c(e),i=this._extensions[o.extensionName];let a=t.binary?2:1,s=t.compress;if(this._firstFragment?(this._firstFragment=!1,s&&i&&(s=r.length>=i._threshold),this._compress=s):(s=!1,a=0),t.fin&&(this._firstFragment=!0),i){const e={fin:t.fin,rsv1:s,opcode:a,mask:t.mask,readOnly:c.readOnly};this._deflating?this.enqueue([this.dispatch,r,this._compress,e,n]):this.dispatch(r,this._compress,e,n)}else this.sendFrame(u.frame(r,{fin:t.fin,rsv1:!1,opcode:a,mask:t.mask,readOnly:c.readOnly}),n)}dispatch(e,t,n,r){if(!t)return void this.sendFrame(u.frame(e,n),r);const i=this._extensions[o.extensionName];this._bufferedBytes+=e.length,this._deflating=!0,i.compress(e,n.fin,((t,o)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");"function"==typeof r&&r(e);for(let t=0;t{"use strict";const{Duplex:r}=n(2781);function o(e){e.emit("close")}function i(){!this.destroyed&&this._writableState.finished&&this.destroy()}function a(e){this.removeListener("error",a),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}e.exports=function(e,t){let n=!0,s=!0;function c(){n&&e._socket.resume()}e.readyState===e.CONNECTING?e.once("open",(function(){e._receiver.removeAllListeners("drain"),e._receiver.on("drain",c)})):(e._receiver.removeAllListeners("drain"),e._receiver.on("drain",c));const d=new r({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",(function(t){d.push(t)||(n=!1,e._socket.pause())})),e.once("error",(function(e){d.destroyed||(s=!1,d.destroy(e))})),e.once("close",(function(){d.destroyed||d.push(null)})),d._destroy=function(t,n){if(e.readyState===e.CLOSED)return n(t),void process.nextTick(o,d);let r=!1;e.once("error",(function(e){r=!0,n(e)})),e.once("close",(function(){r||n(t),process.nextTick(o,d)})),s&&e.terminate()},d._final=function(t){e.readyState!==e.CONNECTING?null!==e._socket&&(e._socket._writableState.finished?(t(),d._readableState.endEmitted&&d.destroy()):(e._socket.once("finish",(function(){t()})),e.close())):e.once("open",(function(){d._final(t)}))},d._read=function(){e.readyState!==e.OPEN&&e.readyState!==e.CLOSING||n||(n=!0,e._receiver._writableState.needDrain||e._socket.resume())},d._write=function(t,n,r){e.readyState!==e.CONNECTING?e.send(t,r):e.once("open",(function(){d._write(t,n,r)}))},d.on("end",i),d.on("error",a),d}},6746:(e,t,n)=>{"use strict";function r(e){return e>=1e3&&e<=1014&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999}function o(e){const t=e.length;let n=0;for(;n=t||128!=(192&e[n+1])||128!=(192&e[n+2])||224===e[n]&&128==(224&e[n+1])||237===e[n]&&160==(224&e[n+1]))return!1;n+=3}else{if(240!=(248&e[n]))return!1;if(n+3>=t||128!=(192&e[n+1])||128!=(192&e[n+2])||128!=(192&e[n+3])||240===e[n]&&128==(240&e[n+1])||244===e[n]&&e[n+1]>143||e[n]>244)return!1;n+=4}return!0}try{let t=n(311);"object"==typeof t&&(t=t.Validation.isValidUTF8),e.exports={isValidStatusCode:r,isValidUTF8:e=>e.length<150?o(e):t(e)}}catch(t){e.exports={isValidStatusCode:r,isValidUTF8:o}}},9284:(e,t,n)=>{"use strict";const r=n(2361),o=n(2181),{createHash:i}=(n(5687),n(1808),n(4404),n(6113)),a=n(5196),s=n(8762),{format:c,parse:d}=n(1503),{GUID:u,kWebSocket:l}=n(1872),A=/^[+/0-9A-Za-z]{22}==$/;function f(e){e._state=2,e.emit("close")}function h(){this.destroy()}function p(e,t,n,r){e.writable&&(n=n||o.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(n),...r},e.write(`HTTP/1.1 ${t} ${o.STATUS_CODES[t]}\r\n`+Object.keys(r).map((e=>`${e}: ${r[e]}`)).join("\r\n")+"\r\n\r\n"+n)),e.removeListener("error",h),e.destroy()}function g(e){return e.trim()}e.exports=class extends r{constructor(e,t){if(super(),null==(e={maxPayload:104857600,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...e}).port&&!e.server&&!e.noServer||null!=e.port&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=e.port?(this._server=o.createServer(((e,t)=>{const n=o.STATUS_CODES[426];t.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"}),t.end(n)})),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=function(e,t){for(const n of Object.keys(t))e.on(n,t[n]);return function(){for(const n of Object.keys(t))e.removeListener(n,t[n])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,n,r)=>{this.handleUpgrade(t,n,r,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set),this.options=e,this._state=0}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(e&&this.once("close",e),2===this._state)return void process.nextTick(f,this);if(1===this._state)return;if(this._state=1,this.clients)for(const e of this.clients)e.terminate();const t=this._server;t&&(this._removeListeners(),this._removeListeners=this._server=null,null!=this.options.port)?t.close(f.bind(void 0,this)):process.nextTick(f,this)}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?");if((-1!==t?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,n,r){t.on("error",h);const o=void 0!==e.headers["sec-websocket-key"]&&e.headers["sec-websocket-key"].trim(),i=+e.headers["sec-websocket-version"],s={};if("GET"!==e.method||"websocket"!==e.headers.upgrade.toLowerCase()||!o||!A.test(o)||8!==i&&13!==i||!this.shouldHandle(e))return p(t,400);if(this.options.perMessageDeflate){const n=new a(this.options.perMessageDeflate,!0,this.options.maxPayload);try{const t=d(e.headers["sec-websocket-extensions"]);t[a.extensionName]&&(n.accept(t[a.extensionName]),s[a.extensionName]=n)}catch(e){return p(t,400)}}if(this.options.verifyClient){const a={origin:e.headers[8===i?"sec-websocket-origin":"origin"],secure:!(!e.socket.authorized&&!e.socket.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(a,((i,a,c,d)=>{if(!i)return p(t,a||401,c,d);this.completeUpgrade(o,s,e,t,n,r)}));if(!this.options.verifyClient(a))return p(t,401)}this.completeUpgrade(o,s,e,t,n,r)}completeUpgrade(e,t,n,r,o,d){if(!r.readable||!r.writable)return r.destroy();if(r[l])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return p(r,503);const A=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${i("sha1").update(e+u).digest("base64")}`],f=new s(null);let m=n.headers["sec-websocket-protocol"];if(m&&(m=m.split(",").map(g),m=this.options.handleProtocols?this.options.handleProtocols(m,n):m[0],m&&(A.push(`Sec-WebSocket-Protocol: ${m}`),f._protocol=m)),t[a.extensionName]){const e=t[a.extensionName].params,n=c({[a.extensionName]:[e]});A.push(`Sec-WebSocket-Extensions: ${n}`),f._extensions=t}this.emit("headers",A,n),r.write(A.concat("\r\n").join("\r\n")),r.removeListener("error",h),f.setSocket(r,o,this.options.maxPayload),this.clients&&(this.clients.add(f),f.on("close",(()=>this.clients.delete(f)))),d(f,n)}}},8762:(e,t,n)=>{"use strict";const r=n(2361),o=n(5687),i=n(2181),a=n(1808),s=n(4404),{randomBytes:c,createHash:d}=n(6113),{Readable:u}=n(2781),{URL:l}=n(5034),A=n(5196),f=n(2957),h=n(7330),{BINARY_TYPES:p,EMPTY_BUFFER:g,GUID:m,kStatusCode:v,kWebSocket:y,NOOP:b}=n(1872),{addEventListener:I,removeEventListener:C}=n(62),{format:E,parse:w}=n(1503),{toBuffer:B}=n(977),_=["CONNECTING","OPEN","CLOSING","CLOSED"],S=[8,13];class k extends r{constructor(e,t,n){super(),this._binaryType=p[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=k.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==e?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(t)?t=t.join(", "):"object"==typeof t&&null!==t&&(n=t,t=void 0),O(this,e,t,n)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(e){p.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get onclose(){}set onclose(e){}get onerror(){}set onerror(e){}get onopen(){}set onopen(e){}get onmessage(){}set onmessage(e){}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,n){const r=new f(this.binaryType,this._extensions,this._isServer,n);this._sender=new h(e,this._extensions),this._receiver=r,this._socket=e,r[y]=this,e[y]=this,r.on("conclude",D),r.on("drain",T),r.on("error",M),r.on("message",H),r.on("ping",j),r.on("pong",J),e.setTimeout(0),e.setNoDelay(),t.length>0&&e.unshift(t),e.on("close",G),e.on("data",L),e.on("end",q),e.on("error",Y),this._readyState=k.OPEN,this.emit("open")}emitClose(){if(!this._socket)return this._readyState=k.CLOSED,void this.emit("close",this._closeCode,this._closeMessage);this._extensions[A.extensionName]&&this._extensions[A.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=k.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState!==k.CLOSED){if(this.readyState===k.CONNECTING){const e="WebSocket was closed before the connection was established";return N(this,this._req,e)}this.readyState!==k.CLOSING?(this._readyState=k.CLOSING,this._sender.close(e,t,!this._isServer,(e=>{e||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())})),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),3e4)):this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end()}}ping(e,t,n){if(this.readyState===k.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof e?(n=e,e=t=void 0):"function"==typeof t&&(n=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===k.OPEN?(void 0===t&&(t=!this._isServer),this._sender.ping(e||g,t,n)):x(this,e,n)}pong(e,t,n){if(this.readyState===k.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof e?(n=e,e=t=void 0):"function"==typeof t&&(n=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===k.OPEN?(void 0===t&&(t=!this._isServer),this._sender.pong(e||g,t,n)):x(this,e,n)}send(e,t,n){if(this.readyState===k.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof t&&(n=t,t={}),"number"==typeof e&&(e=e.toString()),this.readyState!==k.OPEN)return void x(this,e,n);const r={binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[A.extensionName]||(r.compress=!1),this._sender.send(e||g,r,n)}terminate(){if(this.readyState!==k.CLOSED){if(this.readyState===k.CONNECTING){const e="WebSocket was closed before the connection was established";return N(this,this._req,e)}this._socket&&(this._readyState=k.CLOSING,this._socket.destroy())}}}function O(e,t,n,r){const a={protocolVersion:S[1],maxPayload:104857600,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,createConnection:void 0,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:void 0,host:void 0,path:void 0,port:void 0};if(!S.includes(a.protocolVersion))throw new RangeError(`Unsupported protocol version: ${a.protocolVersion} (supported versions: ${S.join(", ")})`);let s;t instanceof l?(s=t,e._url=t.href):(s=new l(t),e._url=t);const u="ws+unix:"===s.protocol;if(!(s.host||u&&s.pathname)){const t=new Error(`Invalid URL: ${e.url}`);if(0===e._redirects)throw t;return void Q(e,t)}const f="wss:"===s.protocol||"https:"===s.protocol,h=f?443:80,p=c(16).toString("base64"),g=f?o.get:i.get;let v;if(a.createConnection=f?P:R,a.defaultPort=a.defaultPort||h,a.port=s.port||h,a.host=s.hostname.startsWith("[")?s.hostname.slice(1,-1):s.hostname,a.headers={"Sec-WebSocket-Version":a.protocolVersion,"Sec-WebSocket-Key":p,Connection:"Upgrade",Upgrade:"websocket",...a.headers},a.path=s.pathname+s.search,a.timeout=a.handshakeTimeout,a.perMessageDeflate&&(v=new A(!0!==a.perMessageDeflate?a.perMessageDeflate:{},!1,a.maxPayload),a.headers["Sec-WebSocket-Extensions"]=E({[A.extensionName]:v.offer()})),n&&(a.headers["Sec-WebSocket-Protocol"]=n),a.origin&&(a.protocolVersion<13?a.headers["Sec-WebSocket-Origin"]=a.origin:a.headers.Origin=a.origin),(s.username||s.password)&&(a.auth=`${s.username}:${s.password}`),u){const e=a.path.split(":");a.socketPath=e[0],a.path=e[1]}let y=e._req=g(a);a.timeout&&y.on("timeout",(()=>{N(e,y,"Opening handshake has timed out")})),y.on("error",(t=>{null===y||y.aborted||(y=e._req=null,Q(e,t))})),y.on("response",(o=>{const i=o.headers.location,s=o.statusCode;if(i&&a.followRedirects&&s>=300&&s<400){if(++e._redirects>a.maxRedirects)return void N(e,y,"Maximum redirects exceeded");let o;y.abort();try{o=new l(i,t)}catch(t){return void Q(e,t)}O(e,o,n,r)}else e.emit("unexpected-response",y,o)||N(e,y,`Unexpected server response: ${o.statusCode}`)})),y.on("upgrade",((t,r,o)=>{if(e.emit("upgrade",t),e.readyState!==k.CONNECTING)return;y=e._req=null;const i=d("sha1").update(p+m).digest("base64");if(t.headers["sec-websocket-accept"]!==i)return void N(e,r,"Invalid Sec-WebSocket-Accept header");const s=t.headers["sec-websocket-protocol"],c=(n||"").split(/, */);let u;if(!n&&s?u="Server sent a subprotocol but none was requested":n&&!s?u="Server sent no subprotocol":s&&!c.includes(s)&&(u="Server sent an invalid subprotocol"),u)return void N(e,r,u);s&&(e._protocol=s);const l=t.headers["sec-websocket-extensions"];if(void 0!==l){if(!v)return void N(e,r,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");let t;try{t=w(l)}catch(t){return void N(e,r,"Invalid Sec-WebSocket-Extensions header")}const n=Object.keys(t);if(n.length){if(1!==n.length||n[0]!==A.extensionName)return void N(e,r,"Server indicated an extension that was not requested");try{v.accept(t[A.extensionName])}catch(t){return void N(e,r,"Invalid Sec-WebSocket-Extensions header")}e._extensions[A.extensionName]=v}}e.setSocket(r,o,a.maxPayload)}))}function Q(e,t){e._readyState=k.CLOSING,e.emit("error",t),e.emitClose()}function R(e){return e.path=e.socketPath,a.connect(e)}function P(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=a.isIP(e.host)?"":e.host),s.connect(e)}function N(e,t,n){e._readyState=k.CLOSING;const r=new Error(n);Error.captureStackTrace(r,N),t.setHeader?(t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),t.once("abort",e.emitClose.bind(e)),e.emit("error",r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function x(e,t,n){if(t){const n=B(t).length;e._socket?e._sender._bufferedBytes+=n:e._bufferedAmount+=n}n&&n(new Error(`WebSocket is not open: readyState ${e.readyState} (${_[e.readyState]})`))}function D(e,t){const n=this[y];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,void 0!==n._socket[y]&&(n._socket.removeListener("data",L),process.nextTick(F,n._socket),1005===e?n.close():n.close(e,t))}function T(){this[y]._socket.resume()}function M(e){const t=this[y];void 0!==t._socket[y]&&(t._socket.removeListener("data",L),process.nextTick(F,t._socket),t.close(e[v])),t.emit("error",e)}function U(){this[y].emitClose()}function H(e){this[y].emit("message",e)}function j(e){const t=this[y];t.pong(e,!t._isServer,b),t.emit("ping",e)}function J(e){this[y].emit("pong",e)}function F(e){e.resume()}function G(){const e=this[y];let t;this.removeListener("close",G),this.removeListener("data",L),this.removeListener("end",q),e._readyState=k.CLOSING,this._readableState.endEmitted||e._closeFrameReceived||e._receiver._writableState.errorEmitted||null===(t=e._socket.read())||e._receiver.write(t),e._receiver.end(),this[y]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",U),e._receiver.on("finish",U))}function L(e){this[y]._receiver.write(e)||this.pause()}function q(){const e=this[y];e._readyState=k.CLOSING,e._receiver.end(),this.end()}function Y(){const e=this[y];this.removeListener("error",Y),this.on("error",b),e&&(e._readyState=k.CLOSING,this.destroy())}Object.defineProperty(k,"CONNECTING",{enumerable:!0,value:_.indexOf("CONNECTING")}),Object.defineProperty(k.prototype,"CONNECTING",{enumerable:!0,value:_.indexOf("CONNECTING")}),Object.defineProperty(k,"OPEN",{enumerable:!0,value:_.indexOf("OPEN")}),Object.defineProperty(k.prototype,"OPEN",{enumerable:!0,value:_.indexOf("OPEN")}),Object.defineProperty(k,"CLOSING",{enumerable:!0,value:_.indexOf("CLOSING")}),Object.defineProperty(k.prototype,"CLOSING",{enumerable:!0,value:_.indexOf("CLOSING")}),Object.defineProperty(k,"CLOSED",{enumerable:!0,value:_.indexOf("CLOSED")}),Object.defineProperty(k.prototype,"CLOSED",{enumerable:!0,value:_.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach((e=>{Object.defineProperty(k.prototype,e,{enumerable:!0})})),["open","error","close","message"].forEach((e=>{Object.defineProperty(k.prototype,`on${e}`,{enumerable:!0,get(){const t=this.listeners(e);for(let e=0;e=this.max&&t._n(e)},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),B=function(){function e(e,t){this.out=e,this.op=t}return e.prototype._n=function(){this.op.end()},e.prototype._e=function(e){this.out._e(e)},e.prototype._c=function(){this.op.end()},e}(),_=function(){function e(e,t){this.type="endWhen",this.ins=t,this.out=c,this.o=e,this.oil=A}return e.prototype._start=function(e){this.out=e,this.o._add(this.oil=new B(e,this)),this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.o._remove(this.oil),this.out=c,this.oil=A},e.prototype.end=function(){var e=this.out;e!==c&&e._c()},e.prototype._n=function(e){var t=this.out;t!==c&&t._n(e)},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){this.end()},e}(),S=function(){function e(e,t){this.type="filter",this.ins=t,this.out=c,this.f=e}return e.prototype._start=function(e){this.out=e,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=l(this,e,t);n!==c&&n&&t._n(e)}},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),k=function(){function e(e,t){this.out=e,this.op=t}return e.prototype._n=function(e){this.out._n(e)},e.prototype._e=function(e){this.out._e(e)},e.prototype._c=function(){this.op.inner=c,this.op.less()},e}(),O=function(){function e(e){this.type="flatten",this.ins=e,this.out=c,this.open=!0,this.inner=c,this.il=A}return e.prototype._start=function(e){this.out=e,this.open=!0,this.inner=c,this.il=A,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.inner!==c&&this.inner._remove(this.il),this.out=c,this.open=!0,this.inner=c,this.il=A},e.prototype.less=function(){var e=this.out;e!==c&&(this.open||this.inner!==c||e._c())},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=this.inner,r=this.il;n!==c&&r!==A&&n._remove(r),(this.inner=e)._add(this.il=new k(t,this))}},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){this.open=!1,this.less()},e}(),Q=function(){function e(e,t,n){var r=this;this.type="fold",this.ins=n,this.out=c,this.f=function(t){return e(r.acc,t)},this.acc=this.seed=t}return e.prototype._start=function(e){this.out=e,this.acc=this.seed,e._n(this.acc),this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c,this.acc=this.seed},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=l(this,e,t);n!==c&&t._n(this.acc=n)}},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),R=function(){function e(e){this.type="last",this.ins=e,this.out=c,this.has=!1,this.val=c}return e.prototype._start=function(e){this.out=e,this.has=!1,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c,this.val=c},e.prototype._n=function(e){this.has=!0,this.val=e},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&(this.has?(e._n(this.val),e._c()):e._e(new Error("last() failed because input stream completed")))},e}(),P=function(){function e(e,t){this.type="map",this.ins=t,this.out=c,this.f=e}return e.prototype._start=function(e){this.out=e,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=l(this,e,t);n!==c&&t._n(n)}},e.prototype._e=function(e){var t=this.out;t!==c&&t._e(e)},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),N=function(){function e(e){this.type="remember",this.ins=e,this.out=c}return e.prototype._start=function(e){this.out=e,this.ins._add(e)},e.prototype._stop=function(){this.ins._remove(this.out),this.out=c},e}(),x=function(){function e(e,t){this.type="replaceError",this.ins=t,this.out=c,this.f=e}return e.prototype._start=function(e){this.out=e,this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c},e.prototype._n=function(e){var t=this.out;t!==c&&t._n(e)},e.prototype._e=function(e){var t=this.out;if(t!==c)try{this.ins._remove(this),(this.ins=this.f(e))._add(this)}catch(e){t._e(e)}},e.prototype._c=function(){var e=this.out;e!==c&&e._c()},e}(),D=function(){function e(e,t){this.type="startWith",this.ins=e,this.out=c,this.val=t}return e.prototype._start=function(e){this.out=e,this.out._n(this.val),this.ins._add(e)},e.prototype._stop=function(){this.ins._remove(this.out),this.out=c},e}(),T=function(){function e(e,t){this.type="take",this.ins=t,this.out=c,this.max=e,this.taken=0}return e.prototype._start=function(e){this.out=e,this.taken=0,this.max<=0?e._c():this.ins._add(this)},e.prototype._stop=function(){this.ins._remove(this),this.out=c},e.prototype._n=function(e){var t=this.out;if(t!==c){var n=++this.taken;n1))if(this._stopID!==c)clearTimeout(this._stopID),this._stopID=c;else{var r=this._prod;r!==c&&r._start(this)}},e.prototype._remove=function(e){var t=this,n=this._target;if(n)return n._remove(e);var r=this._ils,o=r.indexOf(e);o>-1&&(r.splice(o,1),this._prod!==c&&r.length<=0?(this._err=c,this._stopID=setTimeout((function(){return t._stopNow()}))):1===r.length&&this._pruneCycles())},e.prototype._pruneCycles=function(){this._hasNoSinks(this,[])&&this._remove(this._ils[0])},e.prototype._hasNoSinks=function(e,t){if(-1!==t.indexOf(e))return!0;if(e.out===this)return!0;if(e.out&&e.out!==c)return this._hasNoSinks(e.out,t.concat(e));if(e._ils){for(var n=0,r=e._ils.length;n1)this._has&&e._n(this._v);else if(this._stopID!==c)this._has&&e._n(this._v),clearTimeout(this._stopID),this._stopID=c;else if(this._has)e._n(this._v);else{var r=this._prod;r!==c&&r._start(this)}},t.prototype._stopNow=function(){this._has=!1,e.prototype._stopNow.call(this)},t.prototype._x=function(){this._has=!1,e.prototype._x.call(this)},t.prototype.map=function(e){return this._map(e)},t.prototype.mapTo=function(t){return e.prototype.mapTo.call(this,t)},t.prototype.take=function(t){return e.prototype.take.call(this,t)},t.prototype.endWhen=function(t){return e.prototype.endWhen.call(this,t)},t.prototype.replaceError=function(t){return e.prototype.replaceError.call(this,t)},t.prototype.remember=function(){return this},t.prototype.debug=function(t){return e.prototype.debug.call(this,t)},t}(M);t.MemoryStream=U;var H=M;t.default=H},9602:e=>{"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},4411:(e,t,n)=>{"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,o=arguments.length;n1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var o=0;null!==r;o++)n=e(n,r.value,o),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var o=this.length-1;null!==r;o--)n=e(n,r.value,o),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(tthis.length&&(t=this.length);for(var o=0,i=this.head;null!==i&&othis.length&&(t=this.length);for(var o=this.length,i=this.tail;null!==i&&o>t;o--)i=i.prev;for(;null!==i&&o>e;o--,i=i.prev)n.push(i.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,i=this.head;null!==i&&r{"use strict";e.exports=require("assert")},4300:e=>{"use strict";e.exports=require("buffer")},6113:e=>{"use strict";e.exports=require("crypto")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},2181:e=>{"use strict";e.exports=require("http")},5687:e=>{"use strict";e.exports=require("https")},1808:e=>{"use strict";e.exports=require("net")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},2781:e=>{"use strict";e.exports=require("stream")},4404:e=>{"use strict";e.exports=require("tls")},6224:e=>{"use strict";e.exports=require("tty")},5034:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},9796:e=>{"use strict";e.exports=require("zlib")},8593:e=>{"use strict";e.exports=JSON.parse('{"name":"axios","version":"0.21.4","description":"Promise based HTTP client for the browser and node.js","main":"index.js","scripts":{"test":"grunt test","start":"node ./sandbox/server.js","build":"NODE_ENV=production grunt build","preversion":"npm test","version":"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json","postversion":"git push && git push --tags","examples":"node ./examples/server.js","coveralls":"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js","fix":"eslint --fix lib/**/*.js"},"repository":{"type":"git","url":"https://github.com/axios/axios.git"},"keywords":["xhr","http","ajax","promise","node"],"author":"Matt Zabriskie","license":"MIT","bugs":{"url":"https://github.com/axios/axios/issues"},"homepage":"https://axios-http.com","devDependencies":{"coveralls":"^3.0.0","es6-promise":"^4.2.4","grunt":"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1","karma":"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2","minimist":"^1.2.0","mocha":"^8.2.1","sinon":"^4.5.0","terser-webpack-plugin":"^4.2.3","typescript":"^4.0.5","url-search-params":"^0.10.0","webpack":"^4.44.2","webpack-dev-server":"^3.11.0"},"browser":{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},"jsdelivr":"dist/axios.min.js","unpkg":"dist/axios.min.js","typings":"./index.d.ts","dependencies":{"follow-redirects":"^1.14.0"},"bundlesize":[{"path":"./dist/axios.min.js","threshold":"5kB"}]}')},8597:e=>{"use strict";e.exports={i8:"6.5.4"}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var __webpack_exports__=__webpack_require__(3607),__webpack_export_target__=exports;for(var i in __webpack_exports__)__webpack_export_target__[i]=__webpack_exports__[i];__webpack_exports__.__esModule&&Object.defineProperty(__webpack_export_target__,"__esModule",{value:!0})})(); +//# sourceMappingURL=bundle.node.js.map \ No newline at end of file diff --git a/dist/bundle.node.js.map b/dist/bundle.node.js.map new file mode 100644 index 0000000..5345d88 --- /dev/null +++ b/dist/bundle.node.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.node.js","mappings":"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AI9K,OAAQyd,GAC3FjV,GAAU,EAAI0O,EAAgB/T,aAAaqa,EAAaF,EAAevS,EAASE,IAChF,UAAEvC,EAAS,OAAEM,SAAiB9kB,KAAKk0B,OAAOmE,WAAWhU,EAAeC,GAC1E,OAAO8O,EAAK2E,MAAMtC,YAAY,CAC1B0D,UAAWrU,EAAOqU,UAClBC,cAAetU,EAAOsU,cACtB/R,WAAY,EAAC,EAAItM,EAAWM,YAAYmJ,EAAUA,eAI9D3kB,EAAQyxB,sBAAwBA,+BC1VhCnwB,OAAOC,eAAevB,EAAS,aAAc,CAAEN,OAAO,IACtDM,EAAQ4iB,MAAQ5iB,EAAQ2iB,gBAAkB3iB,EAAQ25B,kBAAoB35B,EAAQ45B,uBAAoB,EAClG,MAAM1e,EAAa,EAAQ,MACrB2e,EAAW,EAAQ,MACnBC,EAAQ,EAAQ,MAChBC,EAAW,CACb,UACA,UACA,OACA,QACA,QACA,SACA,SACA,WACA,SACA,QACA,SACA,WACA,UACA,SACA,UACA,OACA,WACA,UACA,SACA,MACA,SACA,QACA,UACA,SACA,QACA,MACA,SACA,UACA,SACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,SACA,QACA,MACA,QACA,QACA,QACA,MACA,MACA,UACA,QACA,QACA,QACA,UACA,QACA,QACA,MACA,QACA,QACA,SACA,QACA,QACA,UACA,OACA,QACA,SACA,UACA,UACA,QACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,QACA,SACA,QACA,WACA,SACA,UACA,SACA,UACA,UACA,UACA,MACA,QACA,UACA,SACA,QACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,MACA,QACA,QACA,OACA,SACA,UACA,SACA,SACA,QACA,MACA,WACA,SACA,UACA,MACA,SACA,UACA,QACA,SACA,SACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,QACA,SACA,OACA,SACA,OACA,SACA,UACA,UACA,QACA,QACA,QACA,OACA,UACA,QACA,UACA,OACA,OACA,WACA,QACA,QACA,MACA,UACA,UACA,OACA,SACA,SACA,SACA,MACA,SACA,UACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,SACA,UACA,SACA,OACA,SACA,QACA,SACA,SACA,UACA,QACA,OACA,QACA,UACA,OACA,SACA,SACA,UACA,SACA,UACA,MACA,OACA,OACA,UACA,OACA,QACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,SACA,MACA,MACA,UACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,WACA,SACA,SACA,QACA,UACA,QACA,QACA,SACA,QACA,SACA,UACA,QACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,MACA,WACA,OACA,SACA,QACA,OACA,UACA,QACA,QACA,SACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,UACA,UACA,UACA,MACA,SACA,OACA,QACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,SACA,MACA,UACA,QACA,WACA,SACA,SACA,QACA,UACA,OACA,UACA,SACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,WACA,SACA,QACA,UACA,SACA,QACA,OACA,QACA,QACA,SACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,SACA,SACA,UACA,UACA,QACA,QACA,QACA,WACA,SACA,UACA,OACA,QACA,QACA,OACA,UACA,OACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,UACA,SACA,QACA,QACA,UACA,OACA,SACA,OACA,OACA,UACA,QACA,SACA,UACA,OACA,UACA,QACA,SACA,UACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,OACA,SACA,QACA,UACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,UACA,QACA,QACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,SACA,UACA,SACA,QACA,MACA,UACA,OACA,UACA,MACA,WACA,UACA,UACA,UACA,QACA,UACA,SACA,OACA,QACA,MACA,SACA,OACA,QACA,SACA,SACA,OACA,WACA,OACA,MACA,OACA,SACA,SACA,SACA,WACA,SACA,UACA,WACA,WACA,OACA,UACA,SACA,OACA,SACA,QACA,UACA,SACA,SACA,SACA,UACA,OACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,SACA,SACA,OACA,UACA,UACA,SACA,SACA,UACA,SACA,SACA,UACA,OACA,UACA,QACA,OACA,SACA,OACA,SACA,UACA,UACA,UACA,SACA,WACA,SACA,OACA,WACA,WACA,UACA,OACA,UACA,WACA,UACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,MACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,OACA,SACA,OACA,QACA,SACA,QACA,UACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,SACA,OACA,QACA,OACA,QACA,UACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,OACA,OACA,UACA,UACA,OACA,OACA,UACA,SACA,MACA,QACA,SACA,QACA,QACA,WACA,UACA,UACA,WACA,WACA,QACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,QACA,SACA,QACA,MACA,UACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,WACA,UACA,QACA,QACA,MACA,QACA,QACA,UACA,QACA,QACA,SACA,QACA,UACA,SACA,UACA,SACA,WACA,OACA,QACA,SACA,QACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,QACA,QACA,OACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,QACA,MACA,UACA,SACA,OACA,UACA,OACA,QACA,QACA,OACA,QACA,OACA,SACA,SACA,MACA,QACA,UACA,OACA,UACA,MACA,QACA,SACA,UACA,QACA,WACA,UACA,WACA,UACA,MACA,OACA,OACA,SACA,QACA,WACA,QACA,QACA,MACA,QACA,UACA,QACA,SACA,OACA,OACA,SACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,QACA,SACA,OACA,MACA,UACA,MACA,OACA,QACA,QACA,OACA,SACA,OACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,MACA,OACA,QACA,MACA,OACA,OACA,SACA,OACA,OACA,QACA,SACA,SACA,OACA,UACA,QACA,UACA,SACA,SACA,QACA,MACA,UACA,QACA,WACA,QACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,OACA,MACA,QACA,UACA,OACA,SACA,SACA,OACA,SACA,UACA,OACA,MACA,SACA,UACA,SACA,SACA,UACA,MACA,OACA,OACA,SACA,QACA,OACA,UACA,SACA,QACA,SACA,UACA,UACA,QACA,QACA,OACA,SACA,SACA,UACA,OACA,OACA,OACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,UACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,MACA,MACA,QACA,OACA,OACA,SACA,UACA,OACA,QACA,SACA,OACA,QACA,UACA,MACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,WACA,SACA,QACA,SACA,OACA,MACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,UACA,QACA,SACA,OACA,OACA,UACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,QACA,WACA,OACA,QACA,OACA,QACA,MACA,OACA,QACA,SACA,QACA,UACA,SACA,OACA,SACA,QACA,OACA,UACA,SACA,MACA,OACA,OACA,WACA,OACA,SACA,MACA,UACA,UACA,QACA,UACA,UACA,SACA,SACA,SACA,UACA,UACA,OACA,UACA,SACA,WACA,QACA,WACA,SACA,WACA,SACA,UACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,QACA,WACA,QACA,UACA,SACA,SACA,SACA,UACA,UACA,SACA,WACA,OACA,SACA,SACA,UACA,OACA,SACA,UACA,QACA,OACA,QACA,SACA,SACA,MACA,OACA,UACA,QACA,QACA,QACA,MACA,OACA,OACA,UACA,MACA,QACA,QACA,OACA,SACA,SACA,OACA,OACA,WACA,OACA,OACA,UACA,MACA,OACA,MACA,SACA,OACA,UACA,OACA,MACA,UACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,MACA,QACA,QACA,SACA,OACA,OACA,OACA,WACA,SACA,QACA,QACA,QACA,QACA,UACA,OACA,MACA,OACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,UACA,OACA,MACA,QACA,SACA,UACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,UACA,UACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,OACA,UACA,QACA,OACA,QACA,SACA,OACA,OACA,UACA,OACA,SACA,OACA,QACA,QACA,UACA,SACA,QACA,QACA,SACA,SACA,UACA,MACA,QACA,SACA,OACA,OACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,QACA,UACA,SACA,QACA,SACA,QACA,SACA,SACA,SACA,WACA,OACA,OACA,SACA,QACA,WACA,OACA,SACA,SACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,QACA,QACA,SACA,OACA,SACA,SACA,UACA,OACA,QACA,QACA,QACA,QACA,OACA,UACA,QACA,SACA,SACA,WACA,OACA,UACA,QACA,OACA,UACA,QACA,SACA,UACA,SACA,SACA,OACA,UACA,MACA,QACA,UACA,SACA,QACA,SACA,MACA,SACA,UACA,SACA,UACA,QACA,OACA,QACA,OACA,UACA,WACA,SACA,SACA,QACA,WACA,QACA,OACA,QACA,OACA,SACA,OACA,WACA,SACA,SACA,WACA,QACA,OACA,SACA,SACA,UACA,OACA,QACA,OACA,SACA,SACA,QACA,SACA,SACA,OACA,OACA,OACA,WACA,UACA,UACA,SACA,QACA,OACA,MACA,UACA,UACA,QACA,OACA,OACA,OACA,QACA,QACA,QACA,UACA,SACA,SACA,QACA,OACA,UACA,OACA,UACA,SACA,QACA,MACA,UACA,SACA,QACA,MACA,MACA,OACA,SACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,OACA,MACA,QACA,SACA,QACA,MACA,OACA,MACA,QACA,UACA,OACA,OACA,MACA,QACA,SACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,QACA,SACA,WACA,SACA,UACA,QACA,UACA,QACA,SACA,UACA,OACA,OACA,OACA,MACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,SACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,SACA,OACA,SACA,QACA,OACA,QACA,OACA,UACA,SACA,UACA,QACA,OACA,UACA,QACA,SACA,OACA,UACA,UACA,MACA,UACA,SACA,SACA,SACA,UACA,SACA,SACA,MACA,QACA,QACA,SACA,WACA,QACA,SACA,UACA,QACA,MACA,SACA,OACA,QACA,OACA,UACA,OACA,SACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,OACA,OACA,UACA,UACA,WACA,WACA,OACA,SACA,UACA,UACA,SACA,QACA,WACA,SACA,UACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,UACA,UACA,UACA,SACA,UACA,UACA,UACA,QACA,WACA,UACA,UACA,QACA,UACA,SACA,UACA,OACA,OACA,QACA,UACA,QACA,QACA,QACA,WACA,SACA,UACA,QACA,OACA,MACA,SACA,UACA,UACA,UACA,UACA,WACA,QACA,OACA,OACA,QACA,SACA,UACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,SACA,QACA,MACA,QACA,QACA,OACA,SACA,QACA,UACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,OACA,SACA,WACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,WACA,SACA,WACA,WACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,MACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,SACA,UACA,OACA,SACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,MACA,SACA,UACA,OACA,OACA,QACA,SACA,QACA,OACA,SACA,OACA,SACA,OACA,UACA,UACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,UACA,QACA,SACA,SACA,UACA,WACA,WACA,QACA,QACA,SACA,SACA,QACA,MACA,SACA,SACA,OACA,SACA,SACA,UACA,WACA,OACA,OACA,UACA,SACA,OACA,UACA,SACA,QACA,WACA,SACA,UACA,UACA,SACA,QACA,QACA,SACA,QACA,UACA,QACA,OACA,QACA,UACA,SACA,QACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,QACA,WACA,QACA,SACA,QACA,UACA,MACA,UACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,QACA,SACA,UACA,SACA,QACA,OACA,QACA,SACA,UACA,MACA,OACA,QACA,SACA,MACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,UACA,QACA,QACA,SACA,OACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,OACA,QACA,UACA,QACA,WACA,QACA,UACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,UACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,SACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,SACA,SACA,MACA,SACA,UACA,WACA,SACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,WACA,SACA,SACA,SACA,WACA,UACA,QACA,UACA,QACA,UACA,SACA,SACA,UACA,OACA,SACA,SACA,QACA,UACA,OACA,SACA,MACA,QACA,SACA,QACA,SACA,UACA,OACA,UACA,QACA,WACA,WACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,SACA,UACA,QACA,SACA,QACA,SACA,MACA,OACA,SACA,OACA,OACA,OACA,SACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,MACA,SACA,SACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,UACA,QACA,SACA,QACA,QACA,UACA,SACA,OACA,QACA,OACA,SACA,OACA,OACA,MACA,QACA,SACA,QACA,QACA,UACA,QACA,UACA,MACA,WACA,SACA,QACA,SACA,WACA,OACA,SACA,UACA,OACA,QACA,MACA,QACA,SACA,QACA,UACA,WACA,OACA,QACA,UACA,SACA,QACA,OACA,MACA,QACA,QACA,UACA,SACA,QACA,WACA,OACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,UACA,OACA,OACA,SACA,UACA,QACA,OACA,QACA,UACA,QACA,QACA,MACA,OACA,UACA,SACA,OACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,OACA,QACA,MACA,OACA,UACA,OACA,WACA,SACA,UACA,QACA,UACA,QACA,OACA,SACA,SACA,UACA,UACA,SACA,OACA,WACA,UACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,MACA,OACA,SACA,UACA,QACA,UACA,SACA,SACA,QACA,QACA,SACA,QACA,MACA,SACA,QACA,UACA,OACA,QACA,UACA,SACA,SACA,UACA,QACA,OACA,SACA,UACA,OACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,UACA,UACA,SACA,UACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,UACA,SACA,OACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,OACA,UACA,OACA,UACA,OACA,OACA,QACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,UACA,MACA,UACA,UACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,QACA,OACA,QACA,OACA,UACA,OACA,QACA,OACA,OACA,OACA,MACA,SACA,OACA,OACA,OACA,SACA,SACA,OACA,SACA,OACA,OACA,UACA,OACA,QACA,SACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,QACA,UACA,QACA,QACA,QACA,OACA,OACA,SACA,MACA,QACA,QACA,QACA,OACA,OACA,OAEJ,SAASC,EAAiBn0B,GACtB,OAAOe,MAAMsJ,KAAKrK,GACbvC,KAAK22B,GAASA,EAAKnmB,SAAS,GAAGomB,SAAS,EAAG,OA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EF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINN,IAAK,CACHhzC,IAAK,EACLszC,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,oEA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mE,EAAE0mE,EAAE,EAAE,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,IAAI0kG,GAAGzkG,EAAE,GAAG,EAAE3mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,IAAI0kG,GAAGzkG,EAAE,GAAG,EAAE3mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,IAAI0kG,GAAGzkG,EAAE,GAAG,EAAE3mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,IAAI0kG,GAAGzkG,EAAE,GAAG,EAAE3mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,EAAE1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI,GAAG1mE,EAAE0mE,EAAE,GAAG,GAAG1mE,EAAE0mE,EAAE,GAAG,IAAI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","sources":["webpack://cosmwasm/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://cosmwasm/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://cosmwasm/./node_modules/@babel/runtime/helpers/createClass.js","webpack://cosmwasm/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://cosmwasm/./node_modules/@babel/runtime/helpers/typeof.js","webpack://cosmwasm/./node_modules/@babel/runtime/regenerator/index.js","webpack://cosmwasm/./node_modules/@confio/ics23/build/compress.js","webpack://cosmwasm/./node_modules/@confio/ics23/build/generated/codecimpl.js","webpack://cosmwasm/./node_modules/@confio/ics23/build/ics23.js","webpack://cosmwasm/./node_modules/@confio/ics23/build/index.js","webpack://cosmwasm/./node_modules/@confio/ics23/build/ops.js","webpack://cosmwasm/./node_modules/@confio/ics23/build/proofs.js","webpack://cosmwasm/./node_modules/@confio/ics23/build/specs.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/minimal.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/index-minimal.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/reader.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/reader_buffer.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/roots.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/rpc.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/rpc/service.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/util/longbits.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/util/minimal.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/writer.js","webpack://cosmwasm/./node_modules/@confio/ics23/node_modules/protobufjs/src/writer_buffer.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/addresses.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/coins.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/encoding.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/multisig.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/paths.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/pubkeys.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/secp256k1hdwallet.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/secp256k1wallet.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/signature.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/signdoc.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/stdtx.js","webpack://cosmwasm/./node_modules/@cosmjs/amino/build/wallet.js","webpack://cosmwasm/./node_modules/@cosmjs/cosmwasm-stargate/build/aminotypes.js","webpack://cosmwasm/./node_modules/@cosmjs/cosmwasm-stargate/build/cosmwasmclient.js","webpack://cosmwasm/./node_modules/@cosmjs/cosmwasm-stargate/build/encodeobjects.js","webpack://cosmwasm/./node_modules/@cosmjs/cosmwasm-stargate/build/encoding.js","webpack://cosmwasm/./node_modules/@cosmjs/cosmwasm-stargate/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/cosmwasm-stargate/build/queries/index.js","webpack://cosmwasm/./node_modules/@cosmjs/cosmwasm-stargate/build/queries/wasm.js","webpack://cosmwasm/./node_modules/@cosmjs/cosmwasm-stargate/build/signingcosmwasmclient.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/bip39.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/hmac.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/keccak.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/libsodium.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/pbkdf2.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/random.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/ripemd.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/secp256k1.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/secp256k1signature.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/sha.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/slip10.js","webpack://cosmwasm/./node_modules/@cosmjs/crypto/build/utils.js","webpack://cosmwasm/./node_modules/@cosmjs/encoding/build/ascii.js","webpack://cosmwasm/./node_modules/@cosmjs/encoding/build/base64.js","webpack://cosmwasm/./node_modules/@cosmjs/encoding/build/bech32.js","webpack://cosmwasm/./node_modules/@cosmjs/encoding/build/hex.js","webpack://cosmwasm/./node_modules/@cosmjs/encoding/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/encoding/build/rfc3339.js","webpack://cosmwasm/./node_modules/@cosmjs/encoding/build/utf8.js","webpack://cosmwasm/./node_modules/@cosmjs/faucet-client/build/faucetclient.js","webpack://cosmwasm/./node_modules/@cosmjs/faucet-client/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/json-rpc/build/compatibility.js","webpack://cosmwasm/./node_modules/@cosmjs/json-rpc/build/id.js","webpack://cosmwasm/./node_modules/@cosmjs/json-rpc/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/json-rpc/build/jsonrpcclient.js","webpack://cosmwasm/./node_modules/@cosmjs/json-rpc/build/parse.js","webpack://cosmwasm/./node_modules/@cosmjs/json-rpc/build/types.js","webpack://cosmwasm/./node_modules/@cosmjs/ledger-amino/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/ledger-amino/build/ledgerconnector.js","webpack://cosmwasm/./node_modules/@cosmjs/ledger-amino/build/ledgersigner.js","webpack://cosmwasm/./node_modules/@cosmjs/math/build/decimal.js","webpack://cosmwasm/./node_modules/@cosmjs/math/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/math/build/integers.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/coins.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/decode.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/directsecp256k1hdwallet.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/directsecp256k1wallet.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/paths.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/pubkey.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/registry.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/signer.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/signing.js","webpack://cosmwasm/./node_modules/@cosmjs/proto-signing/build/wallet.js","webpack://cosmwasm/./node_modules/@cosmjs/socket/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/socket/build/queueingstreamingsocket.js","webpack://cosmwasm/./node_modules/@cosmjs/socket/build/reconnectingsocket.js","webpack://cosmwasm/./node_modules/@cosmjs/socket/build/socketwrapper.js","webpack://cosmwasm/./node_modules/@cosmjs/socket/build/streamingsocket.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/accounts.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/aminomsgs.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/aminotypes.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/encodeobjects.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/fee.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/logs.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/multisignature.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/auth.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/bank.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/distribution.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/gov.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/ibc.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/index.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/mint.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/queryclient.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/slashing.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/staking.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/tx.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/queries/utils.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/search.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/signingstargateclient.js","webpack://cosmwasm/./node_modules/@cosmjs/stargate/build/stargateclient.js","webpack://cosmwasm/./node_modules/@cosmjs/stream/build/concat.js","webpack://cosmwasm/./node_modules/@cosmjs/stream/build/defaultvalueproducer.js","webpack://cosmwasm/./node_modules/@cosmjs/stream/build/dropduplicates.js","webpack://cosmwasm/./node_modules/@cosmjs/stream/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/stream/build/promise.js","webpack://cosmwasm/./node_modules/@cosmjs/stream/build/reducer.js","webpack://cosmwasm/./node_modules/@cosmjs/stream/build/valueandupdates.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/addresses.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/dates.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/jsonrpc.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/httpclient.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/index.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/rpcclient.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/rpcclients/websocketclient.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/index.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/requests.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/adaptor/responses.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/encodings.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/hasher.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/index.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/requests.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/responses.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/tendermint34/tendermint34client.js","webpack://cosmwasm/./node_modules/@cosmjs/tendermint-rpc/build/types.js","webpack://cosmwasm/./node_modules/@cosmjs/utils/build/arrays.js","webpack://cosmwasm/./node_modules/@cosmjs/utils/build/assert.js","webpack://cosmwasm/./node_modules/@cosmjs/utils/build/index.js","webpack://cosmwasm/./node_modules/@cosmjs/utils/build/sleep.js","webpack://cosmwasm/./node_modules/@cosmjs/utils/build/typechecks.js","webpack://cosmwasm/./node_modules/@noble/hashes/_sha2.js","webpack://cosmwasm/./node_modules/@noble/hashes/_u64.js","webpack://cosmwasm/./node_modules/@noble/hashes/crypto.js","webpack://cosmwasm/./node_modules/@noble/hashes/hmac.js","webpack://cosmwasm/./node_modules/@noble/hashes/pbkdf2.js","webpack://cosmwasm/./node_modules/@noble/hashes/ripemd160.js","webpack://cosmwasm/./node_modules/@noble/hashes/sha256.js","webpack://cosmwasm/./node_modules/@noble/hashes/sha3.js","webpack://cosmwasm/./node_modules/@noble/hashes/sha512.js","webpack://cosmwasm/./node_modules/@noble/hashes/utils.js","webpack://cosmwasm/./node_modules/@protobufjs/aspromise/index.js","webpack://cosmwasm/./node_modules/@protobufjs/base64/index.js","webpack://cosmwasm/./node_modules/@protobufjs/eventemitter/index.js","webpack://cosmwasm/./node_modules/@protobufjs/float/index.js","webpack://cosmwasm/./node_modules/@protobufjs/inquire/index.js","webpack://cosmwasm/./node_modules/@protobufjs/pool/index.js","webpack://cosmwasm/./node_modules/@protobufjs/utf8/index.js","webpack://cosmwasm/./node_modules/axios/index.js","webpack://cosmwasm/./node_modules/axios/lib/adapters/http.js","webpack://cosmwasm/./node_modules/axios/lib/adapters/xhr.js","webpack://cosmwasm/./node_modules/axios/lib/axios.js","webpack://cosmwasm/./node_modules/axios/lib/cancel/Cancel.js","webpack://cosmwasm/./node_modules/axios/lib/cancel/CancelToken.js","webpack://cosmwasm/./node_modules/axios/lib/cancel/isCancel.js","webpack://cosmwasm/./node_modules/axios/lib/core/Axios.js","webpack://cosmwasm/./node_modules/axios/lib/core/InterceptorManager.js","webpack://cosmwasm/./node_modules/axios/lib/core/buildFullPath.js","webpack://cosmwasm/./node_modules/axios/lib/core/createError.js","webpack://cosmwasm/./node_modules/axios/lib/core/dispatchRequest.js","webpack://cosmwasm/./node_modules/axios/lib/core/enhanceError.js","webpack://cosmwasm/./node_modules/axios/lib/core/mergeConfig.js","webpack://cosmwasm/./node_modules/axios/lib/core/settle.js","webpack://cosmwasm/./node_modules/axios/lib/core/transformData.js","webpack://cosmwasm/./node_modules/axios/lib/defaults.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/bind.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/buildURL.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/combineURLs.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/cookies.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/spread.js","webpack://cosmwasm/./node_modules/axios/lib/helpers/validator.js","webpack://cosmwasm/./node_modules/axios/lib/utils.js","webpack://cosmwasm/./node_modules/base64-js/index.js","webpack://cosmwasm/./node_modules/bech32/index.js","webpack://cosmwasm/./node_modules/bn.js/lib/bn.js","webpack://cosmwasm/./node_modules/brorand/index.js","webpack://cosmwasm/./node_modules/bufferutil/fallback.js","webpack://cosmwasm/./node_modules/bufferutil/index.js","webpack://cosmwasm/./node_modules/cosmjs-types/confio/proofs.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/auth/v1beta1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/authz/v1beta1/authz.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/authz/v1beta1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/bank/v1beta1/bank.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/bank/v1beta1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/bank/v1beta1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/base/abci/v1beta1/abci.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/base/query/v1beta1/pagination.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/base/v1beta1/coin.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/crypto/multisig/keys.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/crypto/secp256k1/keys.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/distribution.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/distribution/v1beta1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/feegrant/v1beta1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/gov/v1beta1/gov.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/gov/v1beta1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/gov/v1beta1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/mint/v1beta1/mint.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/mint/v1beta1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/slashing/v1beta1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/slashing/v1beta1/slashing.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/staking/v1beta1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/staking/v1beta1/staking.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/staking/v1beta1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/tx/signing/v1beta1/signing.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/tx/v1beta1/service.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/tx/v1beta1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmos/vesting/v1beta1/vesting.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmwasm/wasm/v1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmwasm/wasm/v1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/cosmwasm/wasm/v1/types.js","webpack://cosmwasm/./node_modules/cosmjs-types/google/protobuf/any.js","webpack://cosmwasm/./node_modules/cosmjs-types/google/protobuf/duration.js","webpack://cosmwasm/./node_modules/cosmjs-types/google/protobuf/timestamp.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/applications/transfer/v1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/applications/transfer/v1/transfer.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/applications/transfer/v1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/channel/v1/channel.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/channel/v1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/channel/v1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/client/v1/client.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/client/v1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/client/v1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/commitment/v1/commitment.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/connection/v1/connection.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/connection/v1/query.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/core/connection/v1/tx.js","webpack://cosmwasm/./node_modules/cosmjs-types/ibc/lightclients/tendermint/v1/tendermint.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/minimal.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/index-minimal.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/reader.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/reader_buffer.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/roots.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/rpc.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/rpc/service.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/util/longbits.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/util/minimal.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/writer.js","webpack://cosmwasm/./node_modules/cosmjs-types/node_modules/protobufjs/src/writer_buffer.js","webpack://cosmwasm/./node_modules/cosmjs-types/tendermint/abci/types.js","webpack://cosmwasm/./node_modules/cosmjs-types/tendermint/crypto/keys.js","webpack://cosmwasm/./node_modules/cosmjs-types/tendermint/crypto/proof.js","webpack://cosmwasm/./node_modules/cosmjs-types/tendermint/types/params.js","webpack://cosmwasm/./node_modules/cosmjs-types/tendermint/types/types.js","webpack://cosmwasm/./node_modules/cosmjs-types/tendermint/types/validator.js","webpack://cosmwasm/./node_modules/cosmjs-types/tendermint/version/types.js","webpack://cosmwasm/./node_modules/debug/src/browser.js","webpack://cosmwasm/./node_modules/debug/src/common.js","webpack://cosmwasm/./node_modules/debug/src/index.js","webpack://cosmwasm/./node_modules/debug/src/node.js","webpack://cosmwasm/./node_modules/define-properties/index.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/curve/base.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/curve/index.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/curve/short.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/curves.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/ec/index.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/ec/key.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack://cosmwasm/./node_modules/elliptic/lib/elliptic/utils.js","webpack://cosmwasm/./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack://cosmwasm/./node_modules/follow-redirects/debug.js","webpack://cosmwasm/./node_modules/follow-redirects/index.js","webpack://cosmwasm/./node_modules/globalthis/implementation.js","webpack://cosmwasm/./node_modules/globalthis/index.js","webpack://cosmwasm/./node_modules/globalthis/polyfill.js","webpack://cosmwasm/./node_modules/globalthis/shim.js","webpack://cosmwasm/./node_modules/has-flag/index.js","webpack://cosmwasm/./node_modules/hash-base/index.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/common.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/hmac.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/ripemd.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/sha.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/sha/1.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/sha/224.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/sha/256.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/sha/384.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/sha/512.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/sha/common.js","webpack://cosmwasm/./node_modules/hash.js/lib/hash/utils.js","webpack://cosmwasm/./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack://cosmwasm/./node_modules/inherits/inherits.js","webpack://cosmwasm/./node_modules/inherits/inherits_browser.js","webpack://cosmwasm/./node_modules/isomorphic-ws/node.js","webpack://cosmwasm/./node_modules/ledger-cosmos-js/dist/common.js","webpack://cosmwasm/./node_modules/ledger-cosmos-js/dist/helperV1.js","webpack://cosmwasm/./node_modules/ledger-cosmos-js/dist/helperV2.js","webpack://cosmwasm/./node_modules/ledger-cosmos-js/dist/index.js","webpack://cosmwasm/./node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js","webpack://cosmwasm/./node_modules/libsodium/dist/modules/libsodium.js","webpack://cosmwasm/./node_modules/long/src/long.js","webpack://cosmwasm/./node_modules/lru-cache/index.js","webpack://cosmwasm/./node_modules/minimalistic-assert/index.js","webpack://cosmwasm/./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack://cosmwasm/./node_modules/ms/index.js","webpack://cosmwasm/./node_modules/node-gyp-build/index.js","webpack://cosmwasm/./node_modules/object-keys/implementation.js","webpack://cosmwasm/./node_modules/object-keys/index.js","webpack://cosmwasm/./node_modules/object-keys/isArguments.js","webpack://cosmwasm/./node_modules/pako/index.js","webpack://cosmwasm/./node_modules/pako/lib/deflate.js","webpack://cosmwasm/./node_modules/pako/lib/inflate.js","webpack://cosmwasm/./node_modules/pako/lib/utils/common.js","webpack://cosmwasm/./node_modules/pako/lib/utils/strings.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/adler32.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/constants.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/crc32.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/deflate.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/gzheader.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/inffast.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/inflate.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/inftrees.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/messages.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/trees.js","webpack://cosmwasm/./node_modules/pako/lib/zlib/zstream.js","webpack://cosmwasm/./node_modules/readable-stream/errors.js","webpack://cosmwasm/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://cosmwasm/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://cosmwasm/./node_modules/readable-stream/lib/_stream_readable.js","webpack://cosmwasm/./node_modules/readable-stream/lib/_stream_transform.js","webpack://cosmwasm/./node_modules/readable-stream/lib/_stream_writable.js","webpack://cosmwasm/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://cosmwasm/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://cosmwasm/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://cosmwasm/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://cosmwasm/./node_modules/readable-stream/lib/internal/streams/from.js","webpack://cosmwasm/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://cosmwasm/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://cosmwasm/./node_modules/readable-stream/lib/internal/streams/stream.js","webpack://cosmwasm/./node_modules/readable-stream/readable.js","webpack://cosmwasm/./node_modules/regenerator-runtime/runtime.js","webpack://cosmwasm/./node_modules/ripemd160/index.js","webpack://cosmwasm/./node_modules/safe-buffer/index.js","webpack://cosmwasm/./node_modules/semver/classes/comparator.js","webpack://cosmwasm/./node_modules/semver/classes/range.js","webpack://cosmwasm/./node_modules/semver/classes/semver.js","webpack://cosmwasm/./node_modules/semver/functions/clean.js","webpack://cosmwasm/./node_modules/semver/functions/cmp.js","webpack://cosmwasm/./node_modules/semver/functions/coerce.js","webpack://cosmwasm/./node_modules/semver/functions/compare-build.js","webpack://cosmwasm/./node_modules/semver/functions/compare-loose.js","webpack://cosmwasm/./node_modules/semver/functions/compare.js","webpack://cosmwasm/./node_modules/semver/functions/diff.js","webpack://cosmwasm/./node_modules/semver/functions/eq.js","webpack://cosmwasm/./node_modules/semver/functions/gt.js","webpack://cosmwasm/./node_modules/semver/functions/gte.js","webpack://cosmwasm/./node_modules/semver/functions/inc.js","webpack://cosmwasm/./node_modules/semver/functions/lt.js","webpack://cosmwasm/./node_modules/semver/functions/lte.js","webpack://cosmwasm/./node_modules/semver/functions/major.js","webpack://cosmwasm/./node_modules/semver/functions/minor.js","webpack://cosmwasm/./node_modules/semver/functions/neq.js","webpack://cosmwasm/./node_modules/semver/functions/parse.js","webpack://cosmwasm/./node_modules/semver/functions/patch.js","webpack://cosmwasm/./node_modules/semver/functions/prerelease.js","webpack://cosmwasm/./node_modules/semver/functions/rcompare.js","webpack://cosmwasm/./node_modules/semver/functions/rsort.js","webpack://cosmwasm/./node_modules/semver/functions/satisfies.js","webpack://cosmwasm/./node_modules/semver/functions/sort.js","webpack://cosmwasm/./node_modules/semver/functions/valid.js","webpack://cosmwasm/./node_modules/semver/index.js","webpack://cosmwasm/./node_modules/semver/internal/constants.js","webpack://cosmwasm/./node_modules/semver/internal/debug.js","webpack://cosmwasm/./node_modules/semver/internal/identifiers.js","webpack://cosmwasm/./node_modules/semver/internal/parse-options.js","webpack://cosmwasm/./node_modules/semver/internal/re.js","webpack://cosmwasm/./node_modules/semver/ranges/gtr.js","webpack://cosmwasm/./node_modules/semver/ranges/intersects.js","webpack://cosmwasm/./node_modules/semver/ranges/ltr.js","webpack://cosmwasm/./node_modules/semver/ranges/max-satisfying.js","webpack://cosmwasm/./node_modules/semver/ranges/min-satisfying.js","webpack://cosmwasm/./node_modules/semver/ranges/min-version.js","webpack://cosmwasm/./node_modules/semver/ranges/outside.js","webpack://cosmwasm/./node_modules/semver/ranges/simplify.js","webpack://cosmwasm/./node_modules/semver/ranges/subset.js","webpack://cosmwasm/./node_modules/semver/ranges/to-comparators.js","webpack://cosmwasm/./node_modules/semver/ranges/valid.js","webpack://cosmwasm/./node_modules/string_decoder/lib/string_decoder.js","webpack://cosmwasm/./node_modules/supports-color/index.js","webpack://cosmwasm/./node_modules/symbol-observable/lib/ponyfill.js","webpack://cosmwasm/./node_modules/symbol-observable/ponyfill.js","webpack://cosmwasm/./src/amino.ts","webpack://cosmwasm/./src/cosmwasm-stargate.ts","webpack://cosmwasm/./src/crypto.ts","webpack://cosmwasm/./src/encoding.ts","webpack://cosmwasm/./src/faucet-client.ts","webpack://cosmwasm/./src/helpers/setup.ts","webpack://cosmwasm/./src/index.ts","webpack://cosmwasm/./src/ledger-amino.ts","webpack://cosmwasm/./src/math.ts","webpack://cosmwasm/./src/proto-signing.ts","webpack://cosmwasm/./src/stargate.ts","webpack://cosmwasm/./src/utils.ts","webpack://cosmwasm/./node_modules/utf-8-validate/fallback.js","webpack://cosmwasm/./node_modules/utf-8-validate/index.js","webpack://cosmwasm/./node_modules/util-deprecate/node.js","webpack://cosmwasm/./node_modules/ws/index.js","webpack://cosmwasm/./node_modules/ws/lib/buffer-util.js","webpack://cosmwasm/./node_modules/ws/lib/constants.js","webpack://cosmwasm/./node_modules/ws/lib/event-target.js","webpack://cosmwasm/./node_modules/ws/lib/extension.js","webpack://cosmwasm/./node_modules/ws/lib/limiter.js","webpack://cosmwasm/./node_modules/ws/lib/permessage-deflate.js","webpack://cosmwasm/./node_modules/ws/lib/receiver.js","webpack://cosmwasm/./node_modules/ws/lib/sender.js","webpack://cosmwasm/./node_modules/ws/lib/stream.js","webpack://cosmwasm/./node_modules/ws/lib/validation.js","webpack://cosmwasm/./node_modules/ws/lib/websocket-server.js","webpack://cosmwasm/./node_modules/ws/lib/websocket.js","webpack://cosmwasm/./node_modules/xstream/index.js","webpack://cosmwasm/./node_modules/yallist/iterator.js","webpack://cosmwasm/./node_modules/yallist/yallist.js","webpack://cosmwasm/external node-commonjs \"assert\"","webpack://cosmwasm/external node-commonjs \"buffer\"","webpack://cosmwasm/external node-commonjs \"crypto\"","webpack://cosmwasm/external node-commonjs \"events\"","webpack://cosmwasm/external node-commonjs \"fs\"","webpack://cosmwasm/external node-commonjs \"http\"","webpack://cosmwasm/external node-commonjs \"https\"","webpack://cosmwasm/external node-commonjs \"net\"","webpack://cosmwasm/external node-commonjs \"os\"","webpack://cosmwasm/external node-commonjs \"path\"","webpack://cosmwasm/external node-commonjs \"stream\"","webpack://cosmwasm/external node-commonjs \"tls\"","webpack://cosmwasm/external node-commonjs \"tty\"","webpack://cosmwasm/external node-commonjs \"url\"","webpack://cosmwasm/external node-commonjs \"util\"","webpack://cosmwasm/external node-commonjs \"zlib\"","webpack://cosmwasm/webpack/bootstrap","webpack://cosmwasm/webpack/runtime/node module decorator","webpack://cosmwasm/webpack/startup"],"sourcesContent":["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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require(\"regenerator-runtime\");\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decompress = exports.compress = void 0;\nconst codecimpl_1 = require(\"./generated/codecimpl\");\nfunction compress(proof) {\n if (!proof.batch) {\n return proof;\n }\n return { compressed: compressBatch(proof.batch) };\n}\nexports.compress = compress;\nfunction decompress(proof) {\n if (!proof.compressed) {\n return proof;\n }\n return { batch: decompressBatch(proof.compressed) };\n}\nexports.decompress = decompress;\nfunction compressBatch(proof) {\n const centries = [];\n const lookup = [];\n const registry = new Map();\n for (const entry of proof.entries) {\n if (entry.exist) {\n const centry = { exist: compressExist(entry.exist, lookup, registry) };\n centries.push(centry);\n }\n else if (entry.nonexist) {\n const non = entry.nonexist;\n const centry = {\n nonexist: {\n key: non.key,\n left: compressExist(non.left, lookup, registry),\n right: compressExist(non.right, lookup, registry),\n },\n };\n centries.push(centry);\n }\n else {\n throw new Error(\"Unexpected batch entry during compress\");\n }\n }\n return {\n entries: centries,\n lookupInners: lookup,\n };\n}\nfunction compressExist(exist, lookup, registry) {\n if (!exist) {\n return undefined;\n }\n const path = exist.path.map((inner) => {\n const sig = codecimpl_1.ics23.InnerOp.encode(inner).finish();\n let idx = registry.get(sig);\n if (idx === undefined) {\n idx = lookup.length;\n lookup.push(inner);\n registry.set(sig, idx);\n }\n return idx;\n });\n return {\n key: exist.key,\n value: exist.value,\n leaf: exist.leaf,\n path,\n };\n}\nfunction decompressBatch(proof) {\n const lookup = proof.lookupInners;\n const entries = proof.entries.map((comp) => {\n if (comp.exist) {\n return { exist: decompressExist(comp.exist, lookup) };\n }\n else if (comp.nonexist) {\n const non = comp.nonexist;\n return {\n nonexist: {\n key: non.key,\n left: decompressExist(non.left, lookup),\n right: decompressExist(non.right, lookup),\n },\n };\n }\n else {\n throw new Error(\"Unexpected batch entry during compress\");\n }\n });\n return {\n entries,\n };\n}\nfunction decompressExist(exist, lookup) {\n if (!exist) {\n return undefined;\n }\n const { key, value, leaf, path } = exist;\n const newPath = (path || []).map((idx) => lookup[idx]);\n return { key, value, leaf, path: newPath };\n}\n//# sourceMappingURL=compress.js.map","/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.ics23 = (function() {\n\n /**\n * Namespace ics23.\n * @exports ics23\n * @namespace\n */\n var ics23 = {};\n\n /**\n * HashOp enum.\n * @name ics23.HashOp\n * @enum {string}\n * @property {number} NO_HASH=0 NO_HASH value\n * @property {number} SHA256=1 SHA256 value\n * @property {number} SHA512=2 SHA512 value\n * @property {number} KECCAK=3 KECCAK value\n * @property {number} RIPEMD160=4 RIPEMD160 value\n * @property {number} BITCOIN=5 BITCOIN value\n * @property {number} SHA512_256=6 SHA512_256 value\n */\n ics23.HashOp = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"NO_HASH\"] = 0;\n values[valuesById[1] = \"SHA256\"] = 1;\n values[valuesById[2] = \"SHA512\"] = 2;\n values[valuesById[3] = \"KECCAK\"] = 3;\n values[valuesById[4] = \"RIPEMD160\"] = 4;\n values[valuesById[5] = \"BITCOIN\"] = 5;\n values[valuesById[6] = \"SHA512_256\"] = 6;\n return values;\n })();\n\n /**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n * @name ics23.LengthOp\n * @enum {string}\n * @property {number} NO_PREFIX=0 NO_PREFIX value\n * @property {number} VAR_PROTO=1 VAR_PROTO value\n * @property {number} VAR_RLP=2 VAR_RLP value\n * @property {number} FIXED32_BIG=3 FIXED32_BIG value\n * @property {number} FIXED32_LITTLE=4 FIXED32_LITTLE value\n * @property {number} FIXED64_BIG=5 FIXED64_BIG value\n * @property {number} FIXED64_LITTLE=6 FIXED64_LITTLE value\n * @property {number} REQUIRE_32_BYTES=7 REQUIRE_32_BYTES value\n * @property {number} REQUIRE_64_BYTES=8 REQUIRE_64_BYTES value\n */\n ics23.LengthOp = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"NO_PREFIX\"] = 0;\n values[valuesById[1] = \"VAR_PROTO\"] = 1;\n values[valuesById[2] = \"VAR_RLP\"] = 2;\n values[valuesById[3] = \"FIXED32_BIG\"] = 3;\n values[valuesById[4] = \"FIXED32_LITTLE\"] = 4;\n values[valuesById[5] = \"FIXED64_BIG\"] = 5;\n values[valuesById[6] = \"FIXED64_LITTLE\"] = 6;\n values[valuesById[7] = \"REQUIRE_32_BYTES\"] = 7;\n values[valuesById[8] = \"REQUIRE_64_BYTES\"] = 8;\n return values;\n })();\n\n ics23.ExistenceProof = (function() {\n\n /**\n * Properties of an ExistenceProof.\n * @memberof ics23\n * @interface IExistenceProof\n * @property {Uint8Array|null} [key] ExistenceProof key\n * @property {Uint8Array|null} [value] ExistenceProof value\n * @property {ics23.ILeafOp|null} [leaf] ExistenceProof leaf\n * @property {Array.|null} [path] ExistenceProof path\n */\n\n /**\n * Constructs a new ExistenceProof.\n * @memberof ics23\n * @classdesc ExistenceProof takes a key and a value and a set of steps to perform on it.\n * The result of peforming all these steps will provide a \"root hash\", which can\n * be compared to the value in a header.\n * \n * Since it is computationally infeasible to produce a hash collission for any of the used\n * cryptographic hash functions, if someone can provide a series of operations to transform\n * a given key and value into a root hash that matches some trusted root, these key and values\n * must be in the referenced merkle tree.\n * \n * The only possible issue is maliablity in LeafOp, such as providing extra prefix data,\n * which should be controlled by a spec. Eg. with lengthOp as NONE,\n * prefix = FOO, key = BAR, value = CHOICE\n * and\n * prefix = F, key = OOBAR, value = CHOICE\n * would produce the same value.\n * \n * With LengthOp this is tricker but not impossible. Which is why the \"leafPrefixEqual\" field\n * in the ProofSpec is valuable to prevent this mutability. And why all trees should\n * length-prefix the data before hashing it.\n * @implements IExistenceProof\n * @constructor\n * @param {ics23.IExistenceProof=} [properties] Properties to set\n */\n function ExistenceProof(properties) {\n this.path = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * ExistenceProof value.\n * @member {Uint8Array} value\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.value = $util.newBuffer([]);\n\n /**\n * ExistenceProof leaf.\n * @member {ics23.ILeafOp|null|undefined} leaf\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.leaf = null;\n\n /**\n * ExistenceProof path.\n * @member {Array.} path\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.path = $util.emptyArray;\n\n /**\n * Creates a new ExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof=} [properties] Properties to set\n * @returns {ics23.ExistenceProof} ExistenceProof instance\n */\n ExistenceProof.create = function create(properties) {\n return new ExistenceProof(properties);\n };\n\n /**\n * Encodes the specified ExistenceProof message. Does not implicitly {@link ics23.ExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof} message ExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.value != null && message.hasOwnProperty(\"value\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value);\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n $root.ics23.LeafOp.encode(message.leaf, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.path != null && message.path.length)\n for (var i = 0; i < message.path.length; ++i)\n $root.ics23.InnerOp.encode(message.path[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ExistenceProof message, length delimited. Does not implicitly {@link ics23.ExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof} message ExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an ExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.ExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.ExistenceProof} ExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.ExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if (!(message.path && message.path.length))\n message.path = [];\n message.path.push($root.ics23.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an ExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.ExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.ExistenceProof} ExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an ExistenceProof message.\n * @function verify\n * @memberof ics23.ExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.value != null && message.hasOwnProperty(\"value\"))\n if (!(message.value && typeof message.value.length === \"number\" || $util.isString(message.value)))\n return \"value: buffer expected\";\n if (message.leaf != null && message.hasOwnProperty(\"leaf\")) {\n var error = $root.ics23.LeafOp.verify(message.leaf);\n if (error)\n return \"leaf.\" + error;\n }\n if (message.path != null && message.hasOwnProperty(\"path\")) {\n if (!Array.isArray(message.path))\n return \"path: array expected\";\n for (var i = 0; i < message.path.length; ++i) {\n var error = $root.ics23.InnerOp.verify(message.path[i]);\n if (error)\n return \"path.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an ExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.ExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.ExistenceProof} ExistenceProof\n */\n ExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.ExistenceProof)\n return object;\n var message = new $root.ics23.ExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.value != null)\n if (typeof object.value === \"string\")\n $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0);\n else if (object.value.length)\n message.value = object.value;\n if (object.leaf != null) {\n if (typeof object.leaf !== \"object\")\n throw TypeError(\".ics23.ExistenceProof.leaf: object expected\");\n message.leaf = $root.ics23.LeafOp.fromObject(object.leaf);\n }\n if (object.path) {\n if (!Array.isArray(object.path))\n throw TypeError(\".ics23.ExistenceProof.path: array expected\");\n message.path = [];\n for (var i = 0; i < object.path.length; ++i) {\n if (typeof object.path[i] !== \"object\")\n throw TypeError(\".ics23.ExistenceProof.path: object expected\");\n message.path[i] = $root.ics23.InnerOp.fromObject(object.path[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an ExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.ExistenceProof} message ExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n ExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.path = [];\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n if (options.bytes === String)\n object.value = \"\";\n else {\n object.value = [];\n if (options.bytes !== Array)\n object.value = $util.newBuffer(object.value);\n }\n object.leaf = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.value != null && message.hasOwnProperty(\"value\"))\n object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value;\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n object.leaf = $root.ics23.LeafOp.toObject(message.leaf, options);\n if (message.path && message.path.length) {\n object.path = [];\n for (var j = 0; j < message.path.length; ++j)\n object.path[j] = $root.ics23.InnerOp.toObject(message.path[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.ExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n ExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ExistenceProof;\n })();\n\n ics23.NonExistenceProof = (function() {\n\n /**\n * Properties of a NonExistenceProof.\n * @memberof ics23\n * @interface INonExistenceProof\n * @property {Uint8Array|null} [key] NonExistenceProof key\n * @property {ics23.IExistenceProof|null} [left] NonExistenceProof left\n * @property {ics23.IExistenceProof|null} [right] NonExistenceProof right\n */\n\n /**\n * Constructs a new NonExistenceProof.\n * @memberof ics23\n * @classdesc Represents a NonExistenceProof.\n * @implements INonExistenceProof\n * @constructor\n * @param {ics23.INonExistenceProof=} [properties] Properties to set\n */\n function NonExistenceProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * NonExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * NonExistenceProof left.\n * @member {ics23.IExistenceProof|null|undefined} left\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.left = null;\n\n /**\n * NonExistenceProof right.\n * @member {ics23.IExistenceProof|null|undefined} right\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.right = null;\n\n /**\n * Creates a new NonExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof=} [properties] Properties to set\n * @returns {ics23.NonExistenceProof} NonExistenceProof instance\n */\n NonExistenceProof.create = function create(properties) {\n return new NonExistenceProof(properties);\n };\n\n /**\n * Encodes the specified NonExistenceProof message. Does not implicitly {@link ics23.NonExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof} message NonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NonExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.left != null && message.hasOwnProperty(\"left\"))\n $root.ics23.ExistenceProof.encode(message.left, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.right != null && message.hasOwnProperty(\"right\"))\n $root.ics23.ExistenceProof.encode(message.right, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified NonExistenceProof message, length delimited. Does not implicitly {@link ics23.NonExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof} message NonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NonExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a NonExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NonExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.NonExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a NonExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NonExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a NonExistenceProof message.\n * @function verify\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n NonExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.left != null && message.hasOwnProperty(\"left\")) {\n var error = $root.ics23.ExistenceProof.verify(message.left);\n if (error)\n return \"left.\" + error;\n }\n if (message.right != null && message.hasOwnProperty(\"right\")) {\n var error = $root.ics23.ExistenceProof.verify(message.right);\n if (error)\n return \"right.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a NonExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n */\n NonExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.NonExistenceProof)\n return object;\n var message = new $root.ics23.NonExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.left != null) {\n if (typeof object.left !== \"object\")\n throw TypeError(\".ics23.NonExistenceProof.left: object expected\");\n message.left = $root.ics23.ExistenceProof.fromObject(object.left);\n }\n if (object.right != null) {\n if (typeof object.right !== \"object\")\n throw TypeError(\".ics23.NonExistenceProof.right: object expected\");\n message.right = $root.ics23.ExistenceProof.fromObject(object.right);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a NonExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.NonExistenceProof} message NonExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n NonExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n object.left = null;\n object.right = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.left != null && message.hasOwnProperty(\"left\"))\n object.left = $root.ics23.ExistenceProof.toObject(message.left, options);\n if (message.right != null && message.hasOwnProperty(\"right\"))\n object.right = $root.ics23.ExistenceProof.toObject(message.right, options);\n return object;\n };\n\n /**\n * Converts this NonExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.NonExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n NonExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return NonExistenceProof;\n })();\n\n ics23.CommitmentProof = (function() {\n\n /**\n * Properties of a CommitmentProof.\n * @memberof ics23\n * @interface ICommitmentProof\n * @property {ics23.IExistenceProof|null} [exist] CommitmentProof exist\n * @property {ics23.INonExistenceProof|null} [nonexist] CommitmentProof nonexist\n * @property {ics23.IBatchProof|null} [batch] CommitmentProof batch\n * @property {ics23.ICompressedBatchProof|null} [compressed] CommitmentProof compressed\n */\n\n /**\n * Constructs a new CommitmentProof.\n * @memberof ics23\n * @classdesc Represents a CommitmentProof.\n * @implements ICommitmentProof\n * @constructor\n * @param {ics23.ICommitmentProof=} [properties] Properties to set\n */\n function CommitmentProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CommitmentProof exist.\n * @member {ics23.IExistenceProof|null|undefined} exist\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.exist = null;\n\n /**\n * CommitmentProof nonexist.\n * @member {ics23.INonExistenceProof|null|undefined} nonexist\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.nonexist = null;\n\n /**\n * CommitmentProof batch.\n * @member {ics23.IBatchProof|null|undefined} batch\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.batch = null;\n\n /**\n * CommitmentProof compressed.\n * @member {ics23.ICompressedBatchProof|null|undefined} compressed\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.compressed = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * CommitmentProof proof.\n * @member {\"exist\"|\"nonexist\"|\"batch\"|\"compressed\"|undefined} proof\n * @memberof ics23.CommitmentProof\n * @instance\n */\n Object.defineProperty(CommitmentProof.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\", \"batch\", \"compressed\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new CommitmentProof instance using the specified properties.\n * @function create\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof=} [properties] Properties to set\n * @returns {ics23.CommitmentProof} CommitmentProof instance\n */\n CommitmentProof.create = function create(properties) {\n return new CommitmentProof(properties);\n };\n\n /**\n * Encodes the specified CommitmentProof message. Does not implicitly {@link ics23.CommitmentProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof} message CommitmentProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CommitmentProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.ExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.NonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.batch != null && message.hasOwnProperty(\"batch\"))\n $root.ics23.BatchProof.encode(message.batch, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.compressed != null && message.hasOwnProperty(\"compressed\"))\n $root.ics23.CompressedBatchProof.encode(message.compressed, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CommitmentProof message, length delimited. Does not implicitly {@link ics23.CommitmentProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof} message CommitmentProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CommitmentProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CommitmentProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CommitmentProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CommitmentProof} CommitmentProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CommitmentProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CommitmentProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = $root.ics23.BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = $root.ics23.CompressedBatchProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CommitmentProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CommitmentProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CommitmentProof} CommitmentProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CommitmentProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CommitmentProof message.\n * @function verify\n * @memberof ics23.CommitmentProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CommitmentProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.ExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.NonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n if (message.batch != null && message.hasOwnProperty(\"batch\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.BatchProof.verify(message.batch);\n if (error)\n return \"batch.\" + error;\n }\n }\n if (message.compressed != null && message.hasOwnProperty(\"compressed\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedBatchProof.verify(message.compressed);\n if (error)\n return \"compressed.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CommitmentProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CommitmentProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CommitmentProof} CommitmentProof\n */\n CommitmentProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CommitmentProof)\n return object;\n var message = new $root.ics23.CommitmentProof();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.exist: object expected\");\n message.exist = $root.ics23.ExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.nonexist: object expected\");\n message.nonexist = $root.ics23.NonExistenceProof.fromObject(object.nonexist);\n }\n if (object.batch != null) {\n if (typeof object.batch !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.batch: object expected\");\n message.batch = $root.ics23.BatchProof.fromObject(object.batch);\n }\n if (object.compressed != null) {\n if (typeof object.compressed !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.compressed: object expected\");\n message.compressed = $root.ics23.CompressedBatchProof.fromObject(object.compressed);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CommitmentProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.CommitmentProof} message CommitmentProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CommitmentProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.ExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.NonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n if (message.batch != null && message.hasOwnProperty(\"batch\")) {\n object.batch = $root.ics23.BatchProof.toObject(message.batch, options);\n if (options.oneofs)\n object.proof = \"batch\";\n }\n if (message.compressed != null && message.hasOwnProperty(\"compressed\")) {\n object.compressed = $root.ics23.CompressedBatchProof.toObject(message.compressed, options);\n if (options.oneofs)\n object.proof = \"compressed\";\n }\n return object;\n };\n\n /**\n * Converts this CommitmentProof to JSON.\n * @function toJSON\n * @memberof ics23.CommitmentProof\n * @instance\n * @returns {Object.} JSON object\n */\n CommitmentProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CommitmentProof;\n })();\n\n ics23.LeafOp = (function() {\n\n /**\n * Properties of a LeafOp.\n * @memberof ics23\n * @interface ILeafOp\n * @property {ics23.HashOp|null} [hash] LeafOp hash\n * @property {ics23.HashOp|null} [prehashKey] LeafOp prehashKey\n * @property {ics23.HashOp|null} [prehashValue] LeafOp prehashValue\n * @property {ics23.LengthOp|null} [length] LeafOp length\n * @property {Uint8Array|null} [prefix] LeafOp prefix\n */\n\n /**\n * Constructs a new LeafOp.\n * @memberof ics23\n * @classdesc LeafOp represents the raw key-value data we wish to prove, and\n * must be flexible to represent the internal transformation from\n * the original key-value pairs into the basis hash, for many existing\n * merkle trees.\n * \n * key and value are passed in. So that the signature of this operation is:\n * leafOp(key, value) -> output\n * \n * To process this, first prehash the keys and values if needed (ANY means no hash in this case):\n * hkey = prehashKey(key)\n * hvalue = prehashValue(value)\n * \n * Then combine the bytes, and hash it\n * output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)\n * @implements ILeafOp\n * @constructor\n * @param {ics23.ILeafOp=} [properties] Properties to set\n */\n function LeafOp(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * LeafOp hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.hash = 0;\n\n /**\n * LeafOp prehashKey.\n * @member {ics23.HashOp} prehashKey\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prehashKey = 0;\n\n /**\n * LeafOp prehashValue.\n * @member {ics23.HashOp} prehashValue\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prehashValue = 0;\n\n /**\n * LeafOp length.\n * @member {ics23.LengthOp} length\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.length = 0;\n\n /**\n * LeafOp prefix.\n * @member {Uint8Array} prefix\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prefix = $util.newBuffer([]);\n\n /**\n * Creates a new LeafOp instance using the specified properties.\n * @function create\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp=} [properties] Properties to set\n * @returns {ics23.LeafOp} LeafOp instance\n */\n LeafOp.create = function create(properties) {\n return new LeafOp(properties);\n };\n\n /**\n * Encodes the specified LeafOp message. Does not implicitly {@link ics23.LeafOp.verify|verify} messages.\n * @function encode\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp} message LeafOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n LeafOp.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.hash);\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.prehashKey);\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.prehashValue);\n if (message.length != null && message.hasOwnProperty(\"length\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.length);\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.prefix);\n return writer;\n };\n\n /**\n * Encodes the specified LeafOp message, length delimited. Does not implicitly {@link ics23.LeafOp.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp} message LeafOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n LeafOp.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a LeafOp message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.LeafOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.LeafOp} LeafOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n LeafOp.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.LeafOp();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prehashKey = reader.int32();\n break;\n case 3:\n message.prehashValue = reader.int32();\n break;\n case 4:\n message.length = reader.int32();\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a LeafOp message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.LeafOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.LeafOp} LeafOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n LeafOp.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a LeafOp message.\n * @function verify\n * @memberof ics23.LeafOp\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n LeafOp.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n switch (message.prehashKey) {\n default:\n return \"prehashKey: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n switch (message.prehashValue) {\n default:\n return \"prehashValue: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.length != null && message.hasOwnProperty(\"length\"))\n switch (message.length) {\n default:\n return \"length: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n break;\n }\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n if (!(message.prefix && typeof message.prefix.length === \"number\" || $util.isString(message.prefix)))\n return \"prefix: buffer expected\";\n return null;\n };\n\n /**\n * Creates a LeafOp message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.LeafOp\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.LeafOp} LeafOp\n */\n LeafOp.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.LeafOp)\n return object;\n var message = new $root.ics23.LeafOp();\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n switch (object.prehashKey) {\n case \"NO_HASH\":\n case 0:\n message.prehashKey = 0;\n break;\n case \"SHA256\":\n case 1:\n message.prehashKey = 1;\n break;\n case \"SHA512\":\n case 2:\n message.prehashKey = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.prehashKey = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.prehashKey = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.prehashKey = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.prehashKey = 6;\n break;\n }\n switch (object.prehashValue) {\n case \"NO_HASH\":\n case 0:\n message.prehashValue = 0;\n break;\n case \"SHA256\":\n case 1:\n message.prehashValue = 1;\n break;\n case \"SHA512\":\n case 2:\n message.prehashValue = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.prehashValue = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.prehashValue = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.prehashValue = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.prehashValue = 6;\n break;\n }\n switch (object.length) {\n case \"NO_PREFIX\":\n case 0:\n message.length = 0;\n break;\n case \"VAR_PROTO\":\n case 1:\n message.length = 1;\n break;\n case \"VAR_RLP\":\n case 2:\n message.length = 2;\n break;\n case \"FIXED32_BIG\":\n case 3:\n message.length = 3;\n break;\n case \"FIXED32_LITTLE\":\n case 4:\n message.length = 4;\n break;\n case \"FIXED64_BIG\":\n case 5:\n message.length = 5;\n break;\n case \"FIXED64_LITTLE\":\n case 6:\n message.length = 6;\n break;\n case \"REQUIRE_32_BYTES\":\n case 7:\n message.length = 7;\n break;\n case \"REQUIRE_64_BYTES\":\n case 8:\n message.length = 8;\n break;\n }\n if (object.prefix != null)\n if (typeof object.prefix === \"string\")\n $util.base64.decode(object.prefix, message.prefix = $util.newBuffer($util.base64.length(object.prefix)), 0);\n else if (object.prefix.length)\n message.prefix = object.prefix;\n return message;\n };\n\n /**\n * Creates a plain object from a LeafOp message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.LeafOp} message LeafOp\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n LeafOp.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n object.prehashKey = options.enums === String ? \"NO_HASH\" : 0;\n object.prehashValue = options.enums === String ? \"NO_HASH\" : 0;\n object.length = options.enums === String ? \"NO_PREFIX\" : 0;\n if (options.bytes === String)\n object.prefix = \"\";\n else {\n object.prefix = [];\n if (options.bytes !== Array)\n object.prefix = $util.newBuffer(object.prefix);\n }\n }\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n object.prehashKey = options.enums === String ? $root.ics23.HashOp[message.prehashKey] : message.prehashKey;\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n object.prehashValue = options.enums === String ? $root.ics23.HashOp[message.prehashValue] : message.prehashValue;\n if (message.length != null && message.hasOwnProperty(\"length\"))\n object.length = options.enums === String ? $root.ics23.LengthOp[message.length] : message.length;\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n object.prefix = options.bytes === String ? $util.base64.encode(message.prefix, 0, message.prefix.length) : options.bytes === Array ? Array.prototype.slice.call(message.prefix) : message.prefix;\n return object;\n };\n\n /**\n * Converts this LeafOp to JSON.\n * @function toJSON\n * @memberof ics23.LeafOp\n * @instance\n * @returns {Object.} JSON object\n */\n LeafOp.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return LeafOp;\n })();\n\n ics23.InnerOp = (function() {\n\n /**\n * Properties of an InnerOp.\n * @memberof ics23\n * @interface IInnerOp\n * @property {ics23.HashOp|null} [hash] InnerOp hash\n * @property {Uint8Array|null} [prefix] InnerOp prefix\n * @property {Uint8Array|null} [suffix] InnerOp suffix\n */\n\n /**\n * Constructs a new InnerOp.\n * @memberof ics23\n * @classdesc InnerOp represents a merkle-proof step that is not a leaf.\n * It represents concatenating two children and hashing them to provide the next result.\n * \n * The result of the previous step is passed in, so the signature of this op is:\n * innerOp(child) -> output\n * \n * The result of applying InnerOp should be:\n * output = op.hash(op.prefix || child || op.suffix)\n * \n * where the || operator is concatenation of binary data,\n * and child is the result of hashing all the tree below this step.\n * \n * Any special data, like prepending child with the length, or prepending the entire operation with\n * some value to differentiate from leaf nodes, should be included in prefix and suffix.\n * If either of prefix or suffix is empty, we just treat it as an empty string\n * @implements IInnerOp\n * @constructor\n * @param {ics23.IInnerOp=} [properties] Properties to set\n */\n function InnerOp(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InnerOp hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.hash = 0;\n\n /**\n * InnerOp prefix.\n * @member {Uint8Array} prefix\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.prefix = $util.newBuffer([]);\n\n /**\n * InnerOp suffix.\n * @member {Uint8Array} suffix\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.suffix = $util.newBuffer([]);\n\n /**\n * Creates a new InnerOp instance using the specified properties.\n * @function create\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp=} [properties] Properties to set\n * @returns {ics23.InnerOp} InnerOp instance\n */\n InnerOp.create = function create(properties) {\n return new InnerOp(properties);\n };\n\n /**\n * Encodes the specified InnerOp message. Does not implicitly {@link ics23.InnerOp.verify|verify} messages.\n * @function encode\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp} message InnerOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerOp.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.hash);\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.prefix);\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.suffix);\n return writer;\n };\n\n /**\n * Encodes the specified InnerOp message, length delimited. Does not implicitly {@link ics23.InnerOp.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp} message InnerOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerOp.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InnerOp message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.InnerOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.InnerOp} InnerOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerOp.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.InnerOp();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InnerOp message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.InnerOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.InnerOp} InnerOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerOp.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InnerOp message.\n * @function verify\n * @memberof ics23.InnerOp\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InnerOp.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n if (!(message.prefix && typeof message.prefix.length === \"number\" || $util.isString(message.prefix)))\n return \"prefix: buffer expected\";\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n if (!(message.suffix && typeof message.suffix.length === \"number\" || $util.isString(message.suffix)))\n return \"suffix: buffer expected\";\n return null;\n };\n\n /**\n * Creates an InnerOp message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.InnerOp\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.InnerOp} InnerOp\n */\n InnerOp.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.InnerOp)\n return object;\n var message = new $root.ics23.InnerOp();\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n if (object.prefix != null)\n if (typeof object.prefix === \"string\")\n $util.base64.decode(object.prefix, message.prefix = $util.newBuffer($util.base64.length(object.prefix)), 0);\n else if (object.prefix.length)\n message.prefix = object.prefix;\n if (object.suffix != null)\n if (typeof object.suffix === \"string\")\n $util.base64.decode(object.suffix, message.suffix = $util.newBuffer($util.base64.length(object.suffix)), 0);\n else if (object.suffix.length)\n message.suffix = object.suffix;\n return message;\n };\n\n /**\n * Creates a plain object from an InnerOp message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.InnerOp} message InnerOp\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n InnerOp.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n if (options.bytes === String)\n object.prefix = \"\";\n else {\n object.prefix = [];\n if (options.bytes !== Array)\n object.prefix = $util.newBuffer(object.prefix);\n }\n if (options.bytes === String)\n object.suffix = \"\";\n else {\n object.suffix = [];\n if (options.bytes !== Array)\n object.suffix = $util.newBuffer(object.suffix);\n }\n }\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n object.prefix = options.bytes === String ? $util.base64.encode(message.prefix, 0, message.prefix.length) : options.bytes === Array ? Array.prototype.slice.call(message.prefix) : message.prefix;\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n object.suffix = options.bytes === String ? $util.base64.encode(message.suffix, 0, message.suffix.length) : options.bytes === Array ? Array.prototype.slice.call(message.suffix) : message.suffix;\n return object;\n };\n\n /**\n * Converts this InnerOp to JSON.\n * @function toJSON\n * @memberof ics23.InnerOp\n * @instance\n * @returns {Object.} JSON object\n */\n InnerOp.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InnerOp;\n })();\n\n ics23.ProofSpec = (function() {\n\n /**\n * Properties of a ProofSpec.\n * @memberof ics23\n * @interface IProofSpec\n * @property {ics23.ILeafOp|null} [leafSpec] ProofSpec leafSpec\n * @property {ics23.IInnerSpec|null} [innerSpec] ProofSpec innerSpec\n * @property {number|null} [maxDepth] ProofSpec maxDepth\n * @property {number|null} [minDepth] ProofSpec minDepth\n */\n\n /**\n * Constructs a new ProofSpec.\n * @memberof ics23\n * @classdesc ProofSpec defines what the expected parameters are for a given proof type.\n * This can be stored in the client and used to validate any incoming proofs.\n * \n * verify(ProofSpec, Proof) -> Proof | Error\n * \n * As demonstrated in tests, if we don't fix the algorithm used to calculate the\n * LeafHash for a given tree, there are many possible key-value pairs that can\n * generate a given hash (by interpretting the preimage differently).\n * We need this for proper security, requires client knows a priori what\n * tree format server uses. But not in code, rather a configuration object.\n * @implements IProofSpec\n * @constructor\n * @param {ics23.IProofSpec=} [properties] Properties to set\n */\n function ProofSpec(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProofSpec leafSpec.\n * @member {ics23.ILeafOp|null|undefined} leafSpec\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.leafSpec = null;\n\n /**\n * ProofSpec innerSpec.\n * @member {ics23.IInnerSpec|null|undefined} innerSpec\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.innerSpec = null;\n\n /**\n * ProofSpec maxDepth.\n * @member {number} maxDepth\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.maxDepth = 0;\n\n /**\n * ProofSpec minDepth.\n * @member {number} minDepth\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.minDepth = 0;\n\n /**\n * Creates a new ProofSpec instance using the specified properties.\n * @function create\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec=} [properties] Properties to set\n * @returns {ics23.ProofSpec} ProofSpec instance\n */\n ProofSpec.create = function create(properties) {\n return new ProofSpec(properties);\n };\n\n /**\n * Encodes the specified ProofSpec message. Does not implicitly {@link ics23.ProofSpec.verify|verify} messages.\n * @function encode\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec} message ProofSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProofSpec.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\"))\n $root.ics23.LeafOp.encode(message.leafSpec, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\"))\n $root.ics23.InnerSpec.encode(message.innerSpec, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.maxDepth);\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.minDepth);\n return writer;\n };\n\n /**\n * Encodes the specified ProofSpec message, length delimited. Does not implicitly {@link ics23.ProofSpec.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec} message ProofSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProofSpec.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProofSpec message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.ProofSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.ProofSpec} ProofSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProofSpec.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.ProofSpec();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leafSpec = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.innerSpec = $root.ics23.InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxDepth = reader.int32();\n break;\n case 4:\n message.minDepth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProofSpec message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.ProofSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.ProofSpec} ProofSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProofSpec.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProofSpec message.\n * @function verify\n * @memberof ics23.ProofSpec\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProofSpec.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\")) {\n var error = $root.ics23.LeafOp.verify(message.leafSpec);\n if (error)\n return \"leafSpec.\" + error;\n }\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\")) {\n var error = $root.ics23.InnerSpec.verify(message.innerSpec);\n if (error)\n return \"innerSpec.\" + error;\n }\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n if (!$util.isInteger(message.maxDepth))\n return \"maxDepth: integer expected\";\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n if (!$util.isInteger(message.minDepth))\n return \"minDepth: integer expected\";\n return null;\n };\n\n /**\n * Creates a ProofSpec message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.ProofSpec\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.ProofSpec} ProofSpec\n */\n ProofSpec.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.ProofSpec)\n return object;\n var message = new $root.ics23.ProofSpec();\n if (object.leafSpec != null) {\n if (typeof object.leafSpec !== \"object\")\n throw TypeError(\".ics23.ProofSpec.leafSpec: object expected\");\n message.leafSpec = $root.ics23.LeafOp.fromObject(object.leafSpec);\n }\n if (object.innerSpec != null) {\n if (typeof object.innerSpec !== \"object\")\n throw TypeError(\".ics23.ProofSpec.innerSpec: object expected\");\n message.innerSpec = $root.ics23.InnerSpec.fromObject(object.innerSpec);\n }\n if (object.maxDepth != null)\n message.maxDepth = object.maxDepth | 0;\n if (object.minDepth != null)\n message.minDepth = object.minDepth | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a ProofSpec message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.ProofSpec} message ProofSpec\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n ProofSpec.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.leafSpec = null;\n object.innerSpec = null;\n object.maxDepth = 0;\n object.minDepth = 0;\n }\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\"))\n object.leafSpec = $root.ics23.LeafOp.toObject(message.leafSpec, options);\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\"))\n object.innerSpec = $root.ics23.InnerSpec.toObject(message.innerSpec, options);\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n object.maxDepth = message.maxDepth;\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n object.minDepth = message.minDepth;\n return object;\n };\n\n /**\n * Converts this ProofSpec to JSON.\n * @function toJSON\n * @memberof ics23.ProofSpec\n * @instance\n * @returns {Object.} JSON object\n */\n ProofSpec.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProofSpec;\n })();\n\n ics23.InnerSpec = (function() {\n\n /**\n * Properties of an InnerSpec.\n * @memberof ics23\n * @interface IInnerSpec\n * @property {Array.|null} [childOrder] InnerSpec childOrder\n * @property {number|null} [childSize] InnerSpec childSize\n * @property {number|null} [minPrefixLength] InnerSpec minPrefixLength\n * @property {number|null} [maxPrefixLength] InnerSpec maxPrefixLength\n * @property {Uint8Array|null} [emptyChild] InnerSpec emptyChild\n * @property {ics23.HashOp|null} [hash] InnerSpec hash\n */\n\n /**\n * Constructs a new InnerSpec.\n * @memberof ics23\n * @classdesc Represents an InnerSpec.\n * @implements IInnerSpec\n * @constructor\n * @param {ics23.IInnerSpec=} [properties] Properties to set\n */\n function InnerSpec(properties) {\n this.childOrder = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InnerSpec childOrder.\n * @member {Array.} childOrder\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.childOrder = $util.emptyArray;\n\n /**\n * InnerSpec childSize.\n * @member {number} childSize\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.childSize = 0;\n\n /**\n * InnerSpec minPrefixLength.\n * @member {number} minPrefixLength\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.minPrefixLength = 0;\n\n /**\n * InnerSpec maxPrefixLength.\n * @member {number} maxPrefixLength\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.maxPrefixLength = 0;\n\n /**\n * InnerSpec emptyChild.\n * @member {Uint8Array} emptyChild\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.emptyChild = $util.newBuffer([]);\n\n /**\n * InnerSpec hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.hash = 0;\n\n /**\n * Creates a new InnerSpec instance using the specified properties.\n * @function create\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec=} [properties] Properties to set\n * @returns {ics23.InnerSpec} InnerSpec instance\n */\n InnerSpec.create = function create(properties) {\n return new InnerSpec(properties);\n };\n\n /**\n * Encodes the specified InnerSpec message. Does not implicitly {@link ics23.InnerSpec.verify|verify} messages.\n * @function encode\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec} message InnerSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerSpec.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.childOrder != null && message.childOrder.length) {\n writer.uint32(/* id 1, wireType 2 =*/10).fork();\n for (var i = 0; i < message.childOrder.length; ++i)\n writer.int32(message.childOrder[i]);\n writer.ldelim();\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.childSize);\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.minPrefixLength);\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.maxPrefixLength);\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.emptyChild);\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 6, wireType 0 =*/48).int32(message.hash);\n return writer;\n };\n\n /**\n * Encodes the specified InnerSpec message, length delimited. Does not implicitly {@link ics23.InnerSpec.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec} message InnerSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerSpec.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InnerSpec message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.InnerSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.InnerSpec} InnerSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerSpec.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.InnerSpec();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.childOrder && message.childOrder.length))\n message.childOrder = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.childOrder.push(reader.int32());\n } else\n message.childOrder.push(reader.int32());\n break;\n case 2:\n message.childSize = reader.int32();\n break;\n case 3:\n message.minPrefixLength = reader.int32();\n break;\n case 4:\n message.maxPrefixLength = reader.int32();\n break;\n case 5:\n message.emptyChild = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InnerSpec message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.InnerSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.InnerSpec} InnerSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerSpec.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InnerSpec message.\n * @function verify\n * @memberof ics23.InnerSpec\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InnerSpec.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.childOrder != null && message.hasOwnProperty(\"childOrder\")) {\n if (!Array.isArray(message.childOrder))\n return \"childOrder: array expected\";\n for (var i = 0; i < message.childOrder.length; ++i)\n if (!$util.isInteger(message.childOrder[i]))\n return \"childOrder: integer[] expected\";\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n if (!$util.isInteger(message.childSize))\n return \"childSize: integer expected\";\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n if (!$util.isInteger(message.minPrefixLength))\n return \"minPrefixLength: integer expected\";\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n if (!$util.isInteger(message.maxPrefixLength))\n return \"maxPrefixLength: integer expected\";\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n if (!(message.emptyChild && typeof message.emptyChild.length === \"number\" || $util.isString(message.emptyChild)))\n return \"emptyChild: buffer expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n return null;\n };\n\n /**\n * Creates an InnerSpec message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.InnerSpec\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.InnerSpec} InnerSpec\n */\n InnerSpec.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.InnerSpec)\n return object;\n var message = new $root.ics23.InnerSpec();\n if (object.childOrder) {\n if (!Array.isArray(object.childOrder))\n throw TypeError(\".ics23.InnerSpec.childOrder: array expected\");\n message.childOrder = [];\n for (var i = 0; i < object.childOrder.length; ++i)\n message.childOrder[i] = object.childOrder[i] | 0;\n }\n if (object.childSize != null)\n message.childSize = object.childSize | 0;\n if (object.minPrefixLength != null)\n message.minPrefixLength = object.minPrefixLength | 0;\n if (object.maxPrefixLength != null)\n message.maxPrefixLength = object.maxPrefixLength | 0;\n if (object.emptyChild != null)\n if (typeof object.emptyChild === \"string\")\n $util.base64.decode(object.emptyChild, message.emptyChild = $util.newBuffer($util.base64.length(object.emptyChild)), 0);\n else if (object.emptyChild.length)\n message.emptyChild = object.emptyChild;\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n return message;\n };\n\n /**\n * Creates a plain object from an InnerSpec message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.InnerSpec} message InnerSpec\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n InnerSpec.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.childOrder = [];\n if (options.defaults) {\n object.childSize = 0;\n object.minPrefixLength = 0;\n object.maxPrefixLength = 0;\n if (options.bytes === String)\n object.emptyChild = \"\";\n else {\n object.emptyChild = [];\n if (options.bytes !== Array)\n object.emptyChild = $util.newBuffer(object.emptyChild);\n }\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n }\n if (message.childOrder && message.childOrder.length) {\n object.childOrder = [];\n for (var j = 0; j < message.childOrder.length; ++j)\n object.childOrder[j] = message.childOrder[j];\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n object.childSize = message.childSize;\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n object.minPrefixLength = message.minPrefixLength;\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n object.maxPrefixLength = message.maxPrefixLength;\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n object.emptyChild = options.bytes === String ? $util.base64.encode(message.emptyChild, 0, message.emptyChild.length) : options.bytes === Array ? Array.prototype.slice.call(message.emptyChild) : message.emptyChild;\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n return object;\n };\n\n /**\n * Converts this InnerSpec to JSON.\n * @function toJSON\n * @memberof ics23.InnerSpec\n * @instance\n * @returns {Object.} JSON object\n */\n InnerSpec.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InnerSpec;\n })();\n\n ics23.BatchProof = (function() {\n\n /**\n * Properties of a BatchProof.\n * @memberof ics23\n * @interface IBatchProof\n * @property {Array.|null} [entries] BatchProof entries\n */\n\n /**\n * Constructs a new BatchProof.\n * @memberof ics23\n * @classdesc Represents a BatchProof.\n * @implements IBatchProof\n * @constructor\n * @param {ics23.IBatchProof=} [properties] Properties to set\n */\n function BatchProof(properties) {\n this.entries = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BatchProof entries.\n * @member {Array.} entries\n * @memberof ics23.BatchProof\n * @instance\n */\n BatchProof.prototype.entries = $util.emptyArray;\n\n /**\n * Creates a new BatchProof instance using the specified properties.\n * @function create\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof=} [properties] Properties to set\n * @returns {ics23.BatchProof} BatchProof instance\n */\n BatchProof.create = function create(properties) {\n return new BatchProof(properties);\n };\n\n /**\n * Encodes the specified BatchProof message. Does not implicitly {@link ics23.BatchProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof} message BatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.entries != null && message.entries.length)\n for (var i = 0; i < message.entries.length; ++i)\n $root.ics23.BatchEntry.encode(message.entries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified BatchProof message, length delimited. Does not implicitly {@link ics23.BatchProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof} message BatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BatchProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.BatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.BatchProof} BatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.BatchProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.entries && message.entries.length))\n message.entries = [];\n message.entries.push($root.ics23.BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BatchProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.BatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.BatchProof} BatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BatchProof message.\n * @function verify\n * @memberof ics23.BatchProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BatchProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.entries != null && message.hasOwnProperty(\"entries\")) {\n if (!Array.isArray(message.entries))\n return \"entries: array expected\";\n for (var i = 0; i < message.entries.length; ++i) {\n var error = $root.ics23.BatchEntry.verify(message.entries[i]);\n if (error)\n return \"entries.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a BatchProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.BatchProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.BatchProof} BatchProof\n */\n BatchProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.BatchProof)\n return object;\n var message = new $root.ics23.BatchProof();\n if (object.entries) {\n if (!Array.isArray(object.entries))\n throw TypeError(\".ics23.BatchProof.entries: array expected\");\n message.entries = [];\n for (var i = 0; i < object.entries.length; ++i) {\n if (typeof object.entries[i] !== \"object\")\n throw TypeError(\".ics23.BatchProof.entries: object expected\");\n message.entries[i] = $root.ics23.BatchEntry.fromObject(object.entries[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a BatchProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.BatchProof} message BatchProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n BatchProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.entries = [];\n if (message.entries && message.entries.length) {\n object.entries = [];\n for (var j = 0; j < message.entries.length; ++j)\n object.entries[j] = $root.ics23.BatchEntry.toObject(message.entries[j], options);\n }\n return object;\n };\n\n /**\n * Converts this BatchProof to JSON.\n * @function toJSON\n * @memberof ics23.BatchProof\n * @instance\n * @returns {Object.} JSON object\n */\n BatchProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BatchProof;\n })();\n\n ics23.BatchEntry = (function() {\n\n /**\n * Properties of a BatchEntry.\n * @memberof ics23\n * @interface IBatchEntry\n * @property {ics23.IExistenceProof|null} [exist] BatchEntry exist\n * @property {ics23.INonExistenceProof|null} [nonexist] BatchEntry nonexist\n */\n\n /**\n * Constructs a new BatchEntry.\n * @memberof ics23\n * @classdesc Represents a BatchEntry.\n * @implements IBatchEntry\n * @constructor\n * @param {ics23.IBatchEntry=} [properties] Properties to set\n */\n function BatchEntry(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BatchEntry exist.\n * @member {ics23.IExistenceProof|null|undefined} exist\n * @memberof ics23.BatchEntry\n * @instance\n */\n BatchEntry.prototype.exist = null;\n\n /**\n * BatchEntry nonexist.\n * @member {ics23.INonExistenceProof|null|undefined} nonexist\n * @memberof ics23.BatchEntry\n * @instance\n */\n BatchEntry.prototype.nonexist = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * BatchEntry proof.\n * @member {\"exist\"|\"nonexist\"|undefined} proof\n * @memberof ics23.BatchEntry\n * @instance\n */\n Object.defineProperty(BatchEntry.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new BatchEntry instance using the specified properties.\n * @function create\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry=} [properties] Properties to set\n * @returns {ics23.BatchEntry} BatchEntry instance\n */\n BatchEntry.create = function create(properties) {\n return new BatchEntry(properties);\n };\n\n /**\n * Encodes the specified BatchEntry message. Does not implicitly {@link ics23.BatchEntry.verify|verify} messages.\n * @function encode\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry} message BatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchEntry.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.ExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.NonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified BatchEntry message, length delimited. Does not implicitly {@link ics23.BatchEntry.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry} message BatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchEntry.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BatchEntry message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.BatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.BatchEntry} BatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchEntry.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.BatchEntry();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BatchEntry message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.BatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.BatchEntry} BatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchEntry.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BatchEntry message.\n * @function verify\n * @memberof ics23.BatchEntry\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BatchEntry.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.ExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.NonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a BatchEntry message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.BatchEntry\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.BatchEntry} BatchEntry\n */\n BatchEntry.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.BatchEntry)\n return object;\n var message = new $root.ics23.BatchEntry();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.BatchEntry.exist: object expected\");\n message.exist = $root.ics23.ExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.BatchEntry.nonexist: object expected\");\n message.nonexist = $root.ics23.NonExistenceProof.fromObject(object.nonexist);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a BatchEntry message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.BatchEntry} message BatchEntry\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n BatchEntry.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.ExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.NonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n return object;\n };\n\n /**\n * Converts this BatchEntry to JSON.\n * @function toJSON\n * @memberof ics23.BatchEntry\n * @instance\n * @returns {Object.} JSON object\n */\n BatchEntry.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BatchEntry;\n })();\n\n ics23.CompressedBatchProof = (function() {\n\n /**\n * Properties of a CompressedBatchProof.\n * @memberof ics23\n * @interface ICompressedBatchProof\n * @property {Array.|null} [entries] CompressedBatchProof entries\n * @property {Array.|null} [lookupInners] CompressedBatchProof lookupInners\n */\n\n /**\n * Constructs a new CompressedBatchProof.\n * @memberof ics23\n * @classdesc Represents a CompressedBatchProof.\n * @implements ICompressedBatchProof\n * @constructor\n * @param {ics23.ICompressedBatchProof=} [properties] Properties to set\n */\n function CompressedBatchProof(properties) {\n this.entries = [];\n this.lookupInners = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedBatchProof entries.\n * @member {Array.} entries\n * @memberof ics23.CompressedBatchProof\n * @instance\n */\n CompressedBatchProof.prototype.entries = $util.emptyArray;\n\n /**\n * CompressedBatchProof lookupInners.\n * @member {Array.} lookupInners\n * @memberof ics23.CompressedBatchProof\n * @instance\n */\n CompressedBatchProof.prototype.lookupInners = $util.emptyArray;\n\n /**\n * Creates a new CompressedBatchProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof=} [properties] Properties to set\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof instance\n */\n CompressedBatchProof.create = function create(properties) {\n return new CompressedBatchProof(properties);\n };\n\n /**\n * Encodes the specified CompressedBatchProof message. Does not implicitly {@link ics23.CompressedBatchProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof} message CompressedBatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.entries != null && message.entries.length)\n for (var i = 0; i < message.entries.length; ++i)\n $root.ics23.CompressedBatchEntry.encode(message.entries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.lookupInners != null && message.lookupInners.length)\n for (var i = 0; i < message.lookupInners.length; ++i)\n $root.ics23.InnerOp.encode(message.lookupInners[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedBatchProof message, length delimited. Does not implicitly {@link ics23.CompressedBatchProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof} message CompressedBatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedBatchProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedBatchProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.entries && message.entries.length))\n message.entries = [];\n message.entries.push($root.ics23.CompressedBatchEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.lookupInners && message.lookupInners.length))\n message.lookupInners = [];\n message.lookupInners.push($root.ics23.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedBatchProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedBatchProof message.\n * @function verify\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedBatchProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.entries != null && message.hasOwnProperty(\"entries\")) {\n if (!Array.isArray(message.entries))\n return \"entries: array expected\";\n for (var i = 0; i < message.entries.length; ++i) {\n var error = $root.ics23.CompressedBatchEntry.verify(message.entries[i]);\n if (error)\n return \"entries.\" + error;\n }\n }\n if (message.lookupInners != null && message.hasOwnProperty(\"lookupInners\")) {\n if (!Array.isArray(message.lookupInners))\n return \"lookupInners: array expected\";\n for (var i = 0; i < message.lookupInners.length; ++i) {\n var error = $root.ics23.InnerOp.verify(message.lookupInners[i]);\n if (error)\n return \"lookupInners.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CompressedBatchProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n */\n CompressedBatchProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedBatchProof)\n return object;\n var message = new $root.ics23.CompressedBatchProof();\n if (object.entries) {\n if (!Array.isArray(object.entries))\n throw TypeError(\".ics23.CompressedBatchProof.entries: array expected\");\n message.entries = [];\n for (var i = 0; i < object.entries.length; ++i) {\n if (typeof object.entries[i] !== \"object\")\n throw TypeError(\".ics23.CompressedBatchProof.entries: object expected\");\n message.entries[i] = $root.ics23.CompressedBatchEntry.fromObject(object.entries[i]);\n }\n }\n if (object.lookupInners) {\n if (!Array.isArray(object.lookupInners))\n throw TypeError(\".ics23.CompressedBatchProof.lookupInners: array expected\");\n message.lookupInners = [];\n for (var i = 0; i < object.lookupInners.length; ++i) {\n if (typeof object.lookupInners[i] !== \"object\")\n throw TypeError(\".ics23.CompressedBatchProof.lookupInners: object expected\");\n message.lookupInners[i] = $root.ics23.InnerOp.fromObject(object.lookupInners[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedBatchProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.CompressedBatchProof} message CompressedBatchProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedBatchProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.entries = [];\n object.lookupInners = [];\n }\n if (message.entries && message.entries.length) {\n object.entries = [];\n for (var j = 0; j < message.entries.length; ++j)\n object.entries[j] = $root.ics23.CompressedBatchEntry.toObject(message.entries[j], options);\n }\n if (message.lookupInners && message.lookupInners.length) {\n object.lookupInners = [];\n for (var j = 0; j < message.lookupInners.length; ++j)\n object.lookupInners[j] = $root.ics23.InnerOp.toObject(message.lookupInners[j], options);\n }\n return object;\n };\n\n /**\n * Converts this CompressedBatchProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedBatchProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedBatchProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedBatchProof;\n })();\n\n ics23.CompressedBatchEntry = (function() {\n\n /**\n * Properties of a CompressedBatchEntry.\n * @memberof ics23\n * @interface ICompressedBatchEntry\n * @property {ics23.ICompressedExistenceProof|null} [exist] CompressedBatchEntry exist\n * @property {ics23.ICompressedNonExistenceProof|null} [nonexist] CompressedBatchEntry nonexist\n */\n\n /**\n * Constructs a new CompressedBatchEntry.\n * @memberof ics23\n * @classdesc Represents a CompressedBatchEntry.\n * @implements ICompressedBatchEntry\n * @constructor\n * @param {ics23.ICompressedBatchEntry=} [properties] Properties to set\n */\n function CompressedBatchEntry(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedBatchEntry exist.\n * @member {ics23.ICompressedExistenceProof|null|undefined} exist\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n CompressedBatchEntry.prototype.exist = null;\n\n /**\n * CompressedBatchEntry nonexist.\n * @member {ics23.ICompressedNonExistenceProof|null|undefined} nonexist\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n CompressedBatchEntry.prototype.nonexist = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * CompressedBatchEntry proof.\n * @member {\"exist\"|\"nonexist\"|undefined} proof\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n Object.defineProperty(CompressedBatchEntry.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new CompressedBatchEntry instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry=} [properties] Properties to set\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry instance\n */\n CompressedBatchEntry.create = function create(properties) {\n return new CompressedBatchEntry(properties);\n };\n\n /**\n * Encodes the specified CompressedBatchEntry message. Does not implicitly {@link ics23.CompressedBatchEntry.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry} message CompressedBatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchEntry.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.CompressedExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedBatchEntry message, length delimited. Does not implicitly {@link ics23.CompressedBatchEntry.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry} message CompressedBatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchEntry.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedBatchEntry message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchEntry.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedBatchEntry();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.CompressedNonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedBatchEntry message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchEntry.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedBatchEntry message.\n * @function verify\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedBatchEntry.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedNonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CompressedBatchEntry message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n */\n CompressedBatchEntry.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedBatchEntry)\n return object;\n var message = new $root.ics23.CompressedBatchEntry();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.CompressedBatchEntry.exist: object expected\");\n message.exist = $root.ics23.CompressedExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.CompressedBatchEntry.nonexist: object expected\");\n message.nonexist = $root.ics23.CompressedNonExistenceProof.fromObject(object.nonexist);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedBatchEntry message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.CompressedBatchEntry} message CompressedBatchEntry\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedBatchEntry.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.CompressedExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.CompressedNonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n return object;\n };\n\n /**\n * Converts this CompressedBatchEntry to JSON.\n * @function toJSON\n * @memberof ics23.CompressedBatchEntry\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedBatchEntry.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedBatchEntry;\n })();\n\n ics23.CompressedExistenceProof = (function() {\n\n /**\n * Properties of a CompressedExistenceProof.\n * @memberof ics23\n * @interface ICompressedExistenceProof\n * @property {Uint8Array|null} [key] CompressedExistenceProof key\n * @property {Uint8Array|null} [value] CompressedExistenceProof value\n * @property {ics23.ILeafOp|null} [leaf] CompressedExistenceProof leaf\n * @property {Array.|null} [path] CompressedExistenceProof path\n */\n\n /**\n * Constructs a new CompressedExistenceProof.\n * @memberof ics23\n * @classdesc Represents a CompressedExistenceProof.\n * @implements ICompressedExistenceProof\n * @constructor\n * @param {ics23.ICompressedExistenceProof=} [properties] Properties to set\n */\n function CompressedExistenceProof(properties) {\n this.path = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * CompressedExistenceProof value.\n * @member {Uint8Array} value\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.value = $util.newBuffer([]);\n\n /**\n * CompressedExistenceProof leaf.\n * @member {ics23.ILeafOp|null|undefined} leaf\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.leaf = null;\n\n /**\n * CompressedExistenceProof path.\n * @member {Array.} path\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.path = $util.emptyArray;\n\n /**\n * Creates a new CompressedExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof=} [properties] Properties to set\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof instance\n */\n CompressedExistenceProof.create = function create(properties) {\n return new CompressedExistenceProof(properties);\n };\n\n /**\n * Encodes the specified CompressedExistenceProof message. Does not implicitly {@link ics23.CompressedExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof} message CompressedExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.value != null && message.hasOwnProperty(\"value\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value);\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n $root.ics23.LeafOp.encode(message.leaf, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.path != null && message.path.length) {\n writer.uint32(/* id 4, wireType 2 =*/34).fork();\n for (var i = 0; i < message.path.length; ++i)\n writer.int32(message.path[i]);\n writer.ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified CompressedExistenceProof message, length delimited. Does not implicitly {@link ics23.CompressedExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof} message CompressedExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if (!(message.path && message.path.length))\n message.path = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.path.push(reader.int32());\n } else\n message.path.push(reader.int32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedExistenceProof message.\n * @function verify\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.value != null && message.hasOwnProperty(\"value\"))\n if (!(message.value && typeof message.value.length === \"number\" || $util.isString(message.value)))\n return \"value: buffer expected\";\n if (message.leaf != null && message.hasOwnProperty(\"leaf\")) {\n var error = $root.ics23.LeafOp.verify(message.leaf);\n if (error)\n return \"leaf.\" + error;\n }\n if (message.path != null && message.hasOwnProperty(\"path\")) {\n if (!Array.isArray(message.path))\n return \"path: array expected\";\n for (var i = 0; i < message.path.length; ++i)\n if (!$util.isInteger(message.path[i]))\n return \"path: integer[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a CompressedExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n */\n CompressedExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedExistenceProof)\n return object;\n var message = new $root.ics23.CompressedExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.value != null)\n if (typeof object.value === \"string\")\n $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0);\n else if (object.value.length)\n message.value = object.value;\n if (object.leaf != null) {\n if (typeof object.leaf !== \"object\")\n throw TypeError(\".ics23.CompressedExistenceProof.leaf: object expected\");\n message.leaf = $root.ics23.LeafOp.fromObject(object.leaf);\n }\n if (object.path) {\n if (!Array.isArray(object.path))\n throw TypeError(\".ics23.CompressedExistenceProof.path: array expected\");\n message.path = [];\n for (var i = 0; i < object.path.length; ++i)\n message.path[i] = object.path[i] | 0;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.CompressedExistenceProof} message CompressedExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.path = [];\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n if (options.bytes === String)\n object.value = \"\";\n else {\n object.value = [];\n if (options.bytes !== Array)\n object.value = $util.newBuffer(object.value);\n }\n object.leaf = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.value != null && message.hasOwnProperty(\"value\"))\n object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value;\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n object.leaf = $root.ics23.LeafOp.toObject(message.leaf, options);\n if (message.path && message.path.length) {\n object.path = [];\n for (var j = 0; j < message.path.length; ++j)\n object.path[j] = message.path[j];\n }\n return object;\n };\n\n /**\n * Converts this CompressedExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedExistenceProof;\n })();\n\n ics23.CompressedNonExistenceProof = (function() {\n\n /**\n * Properties of a CompressedNonExistenceProof.\n * @memberof ics23\n * @interface ICompressedNonExistenceProof\n * @property {Uint8Array|null} [key] CompressedNonExistenceProof key\n * @property {ics23.ICompressedExistenceProof|null} [left] CompressedNonExistenceProof left\n * @property {ics23.ICompressedExistenceProof|null} [right] CompressedNonExistenceProof right\n */\n\n /**\n * Constructs a new CompressedNonExistenceProof.\n * @memberof ics23\n * @classdesc Represents a CompressedNonExistenceProof.\n * @implements ICompressedNonExistenceProof\n * @constructor\n * @param {ics23.ICompressedNonExistenceProof=} [properties] Properties to set\n */\n function CompressedNonExistenceProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedNonExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * CompressedNonExistenceProof left.\n * @member {ics23.ICompressedExistenceProof|null|undefined} left\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.left = null;\n\n /**\n * CompressedNonExistenceProof right.\n * @member {ics23.ICompressedExistenceProof|null|undefined} right\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.right = null;\n\n /**\n * Creates a new CompressedNonExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof=} [properties] Properties to set\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof instance\n */\n CompressedNonExistenceProof.create = function create(properties) {\n return new CompressedNonExistenceProof(properties);\n };\n\n /**\n * Encodes the specified CompressedNonExistenceProof message. Does not implicitly {@link ics23.CompressedNonExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof} message CompressedNonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedNonExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.left != null && message.hasOwnProperty(\"left\"))\n $root.ics23.CompressedExistenceProof.encode(message.left, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.right != null && message.hasOwnProperty(\"right\"))\n $root.ics23.CompressedExistenceProof.encode(message.right, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedNonExistenceProof message, length delimited. Does not implicitly {@link ics23.CompressedNonExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof} message CompressedNonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedNonExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedNonExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedNonExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedNonExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedNonExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedNonExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedNonExistenceProof message.\n * @function verify\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedNonExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.left != null && message.hasOwnProperty(\"left\")) {\n var error = $root.ics23.CompressedExistenceProof.verify(message.left);\n if (error)\n return \"left.\" + error;\n }\n if (message.right != null && message.hasOwnProperty(\"right\")) {\n var error = $root.ics23.CompressedExistenceProof.verify(message.right);\n if (error)\n return \"right.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a CompressedNonExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n */\n CompressedNonExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedNonExistenceProof)\n return object;\n var message = new $root.ics23.CompressedNonExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.left != null) {\n if (typeof object.left !== \"object\")\n throw TypeError(\".ics23.CompressedNonExistenceProof.left: object expected\");\n message.left = $root.ics23.CompressedExistenceProof.fromObject(object.left);\n }\n if (object.right != null) {\n if (typeof object.right !== \"object\")\n throw TypeError(\".ics23.CompressedNonExistenceProof.right: object expected\");\n message.right = $root.ics23.CompressedExistenceProof.fromObject(object.right);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedNonExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.CompressedNonExistenceProof} message CompressedNonExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedNonExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n object.left = null;\n object.right = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.left != null && message.hasOwnProperty(\"left\"))\n object.left = $root.ics23.CompressedExistenceProof.toObject(message.left, options);\n if (message.right != null && message.hasOwnProperty(\"right\"))\n object.right = $root.ics23.CompressedExistenceProof.toObject(message.right, options);\n return object;\n };\n\n /**\n * Converts this CompressedNonExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedNonExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedNonExistenceProof;\n })();\n\n return ics23;\n})();\n\nmodule.exports = $root;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.batchVerifyNonMembership = exports.batchVerifyMembership = exports.verifyNonMembership = exports.verifyMembership = void 0;\nconst compress_1 = require(\"./compress\");\nconst proofs_1 = require(\"./proofs\");\nconst specs_1 = require(\"./specs\");\n/*\nThis implements the client side functions as specified in\nhttps://github.com/cosmos/ics/tree/master/spec/ics-023-vector-commitments\n\nIn particular:\n\n // Assumes ExistenceProof\n type verifyMembership = (root: CommitmentRoot, proof: CommitmentProof, key: Key, value: Value) => boolean\n\n // Assumes NonExistenceProof\n type verifyNonMembership = (root: CommitmentRoot, proof: CommitmentProof, key: Key) => boolean\n\n // Assumes BatchProof - required ExistenceProofs may be a subset of all items proven\n type batchVerifyMembership = (root: CommitmentRoot, proof: CommitmentProof, items: Map) => boolean\n\n // Assumes BatchProof - required NonExistenceProofs may be a subset of all items proven\n type batchVerifyNonMembership = (root: CommitmentRoot, proof: CommitmentProof, keys: Set) => boolean\n\nWe make an adjustment to accept a Spec to ensure the provided proof is in the format of the expected merkle store.\nThis can avoid an range of attacks on fake preimages, as we need to be careful on how to map key, value -> leaf\nand determine neighbors\n*/\n/**\n * verifyMembership ensures proof is (contains) a valid existence proof for the given\n */\nfunction verifyMembership(proof, spec, root, key, value) {\n const norm = (0, compress_1.decompress)(proof);\n const exist = getExistForKey(norm, key);\n if (!exist) {\n return false;\n }\n try {\n (0, proofs_1.verifyExistence)(exist, spec, root, key, value);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nexports.verifyMembership = verifyMembership;\n/**\n * verifyNonMembership ensures proof is (contains) a valid non-existence proof for the given key\n */\nfunction verifyNonMembership(proof, spec, root, key) {\n const norm = (0, compress_1.decompress)(proof);\n const nonexist = getNonExistForKey(norm, key);\n if (!nonexist) {\n return false;\n }\n try {\n (0, proofs_1.verifyNonExistence)(nonexist, spec, root, key);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nexports.verifyNonMembership = verifyNonMembership;\n/**\n * batchVerifyMembership ensures proof is (contains) a valid existence proof for the given\n */\nfunction batchVerifyMembership(proof, spec, root, items) {\n const norm = (0, compress_1.decompress)(proof);\n for (const [key, value] of items.entries()) {\n if (!verifyMembership(norm, spec, root, key, value)) {\n return false;\n }\n }\n return true;\n}\nexports.batchVerifyMembership = batchVerifyMembership;\n/**\n * batchVerifyNonMembership ensures proof is (contains) a valid existence proof for the given\n */\nfunction batchVerifyNonMembership(proof, spec, root, keys) {\n const norm = (0, compress_1.decompress)(proof);\n for (const key of keys) {\n if (!verifyNonMembership(norm, spec, root, key)) {\n return false;\n }\n }\n return true;\n}\nexports.batchVerifyNonMembership = batchVerifyNonMembership;\nfunction getExistForKey(proof, key) {\n const match = (p) => !!p && (0, specs_1.bytesEqual)(key, p.key);\n if (match(proof.exist)) {\n return proof.exist;\n }\n else if (proof.batch) {\n return proof.batch.entries.map((x) => x.exist || null).find(match);\n }\n return undefined;\n}\nfunction getNonExistForKey(proof, key) {\n const match = (p) => {\n return (!!p &&\n (!p.left || (0, specs_1.bytesBefore)(p.left.key, key)) &&\n (!p.right || (0, specs_1.bytesBefore)(key, p.right.key)));\n };\n if (match(proof.nonexist)) {\n return proof.nonexist;\n }\n else if (proof.batch) {\n return proof.batch.entries.map((x) => x.nonexist || null).find(match);\n }\n return undefined;\n}\n//# sourceMappingURL=ics23.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.verifyNonExistence = exports.verifyExistence = exports.tendermintSpec = exports.iavlSpec = exports.calculateExistenceRoot = exports.verifyNonMembership = exports.verifyMembership = exports.ics23 = void 0;\nvar codecimpl_1 = require(\"./generated/codecimpl\");\nObject.defineProperty(exports, \"ics23\", { enumerable: true, get: function () { return codecimpl_1.ics23; } });\nvar ics23_1 = require(\"./ics23\");\nObject.defineProperty(exports, \"verifyMembership\", { enumerable: true, get: function () { return ics23_1.verifyMembership; } });\nObject.defineProperty(exports, \"verifyNonMembership\", { enumerable: true, get: function () { return ics23_1.verifyNonMembership; } });\nvar proofs_1 = require(\"./proofs\");\nObject.defineProperty(exports, \"calculateExistenceRoot\", { enumerable: true, get: function () { return proofs_1.calculateExistenceRoot; } });\nObject.defineProperty(exports, \"iavlSpec\", { enumerable: true, get: function () { return proofs_1.iavlSpec; } });\nObject.defineProperty(exports, \"tendermintSpec\", { enumerable: true, get: function () { return proofs_1.tendermintSpec; } });\nObject.defineProperty(exports, \"verifyExistence\", { enumerable: true, get: function () { return proofs_1.verifyExistence; } });\nObject.defineProperty(exports, \"verifyNonExistence\", { enumerable: true, get: function () { return proofs_1.verifyNonExistence; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.doHash = exports.applyInner = exports.applyLeaf = void 0;\nconst ripemd160_1 = require(\"@noble/hashes/ripemd160\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst codecimpl_1 = require(\"./generated/codecimpl\");\nfunction applyLeaf(leaf, key, value) {\n if (key.length === 0) {\n throw new Error(\"Missing key\");\n }\n if (value.length === 0) {\n throw new Error(\"Missing value\");\n }\n const pkey = prepareLeafData(ensureHash(leaf.prehashKey), ensureLength(leaf.length), key);\n const pvalue = prepareLeafData(ensureHash(leaf.prehashValue), ensureLength(leaf.length), value);\n const data = new Uint8Array([\n ...ensureBytes(leaf.prefix),\n ...pkey,\n ...pvalue,\n ]);\n return doHash(ensureHash(leaf.hash), data);\n}\nexports.applyLeaf = applyLeaf;\nfunction applyInner(inner, child) {\n if (child.length === 0) {\n throw new Error(\"Inner op needs child value\");\n }\n const preimage = new Uint8Array([\n ...ensureBytes(inner.prefix),\n ...child,\n ...ensureBytes(inner.suffix),\n ]);\n return doHash(ensureHash(inner.hash), preimage);\n}\nexports.applyInner = applyInner;\nfunction ensure(maybe, value) {\n return maybe === undefined || maybe === null ? value : maybe;\n}\nconst ensureHash = (h) => ensure(h, codecimpl_1.ics23.HashOp.NO_HASH);\nconst ensureLength = (l) => ensure(l, codecimpl_1.ics23.LengthOp.NO_PREFIX);\nconst ensureBytes = (b) => ensure(b, new Uint8Array([]));\nfunction prepareLeafData(hashOp, lengthOp, data) {\n const h = doHashOrNoop(hashOp, data);\n return doLengthOp(lengthOp, h);\n}\n// doHashOrNoop will return the preimage untouched if hashOp == NONE,\n// otherwise, perform doHash\nfunction doHashOrNoop(hashOp, preimage) {\n if (hashOp === codecimpl_1.ics23.HashOp.NO_HASH) {\n return preimage;\n }\n return doHash(hashOp, preimage);\n}\n// doHash will preform the specified hash on the preimage.\n// if hashOp == NONE, it will return an error (use doHashOrNoop if you want different behavior)\nfunction doHash(hashOp, preimage) {\n switch (hashOp) {\n case codecimpl_1.ics23.HashOp.SHA256:\n return (0, sha256_1.sha256)(preimage);\n case codecimpl_1.ics23.HashOp.SHA512:\n return (0, sha512_1.sha512)(preimage);\n case codecimpl_1.ics23.HashOp.RIPEMD160:\n return (0, ripemd160_1.ripemd160)(preimage);\n case codecimpl_1.ics23.HashOp.BITCOIN:\n return (0, ripemd160_1.ripemd160)((0, sha256_1.sha256)(preimage));\n case codecimpl_1.ics23.HashOp.SHA512_256:\n return (0, sha512_1.sha512_256)(preimage);\n }\n throw new Error(`Unsupported hashop: ${hashOp}`);\n}\nexports.doHash = doHash;\n// doLengthOp will calculate the proper prefix and return it prepended\n// doLengthOp(op, data) -> length(data) || data\nfunction doLengthOp(lengthOp, data) {\n switch (lengthOp) {\n case codecimpl_1.ics23.LengthOp.NO_PREFIX:\n return data;\n case codecimpl_1.ics23.LengthOp.VAR_PROTO:\n return new Uint8Array([...encodeVarintProto(data.length), ...data]);\n case codecimpl_1.ics23.LengthOp.REQUIRE_32_BYTES:\n if (data.length !== 32) {\n throw new Error(`Length is ${data.length}, not 32 bytes`);\n }\n return data;\n case codecimpl_1.ics23.LengthOp.REQUIRE_64_BYTES:\n if (data.length !== 64) {\n throw new Error(`Length is ${data.length}, not 64 bytes`);\n }\n return data;\n case codecimpl_1.ics23.LengthOp.FIXED32_LITTLE:\n return new Uint8Array([...encodeFixed32Le(data.length), ...data]);\n // TODO\n // case LengthOp_VAR_RLP:\n // case LengthOp_FIXED32_BIG:\n // case LengthOp_FIXED64_BIG:\n // case LengthOp_FIXED64_LITTLE:\n }\n throw new Error(`Unsupported lengthop: ${lengthOp}`);\n}\nfunction encodeVarintProto(n) {\n let enc = [];\n let l = n;\n while (l >= 128) {\n const b = (l % 128) + 128;\n enc = [...enc, b];\n l = l / 128;\n }\n enc = [...enc, l];\n return new Uint8Array(enc);\n}\nfunction encodeFixed32Le(n) {\n const enc = new Uint8Array(4);\n let l = n;\n for (let i = enc.length; i > 0; i--) {\n enc[Math.abs(i - enc.length)] = l % 256;\n l = Math.floor(l / 256);\n }\n return enc;\n}\n//# sourceMappingURL=ops.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ensureLeftNeighbor = exports.ensureSpec = exports.calculateExistenceRoot = exports.verifyNonExistence = exports.verifyExistence = exports.smtSpec = exports.tendermintSpec = exports.iavlSpec = void 0;\nconst codecimpl_1 = require(\"./generated/codecimpl\");\nconst ops_1 = require(\"./ops\");\nconst specs_1 = require(\"./specs\");\nexports.iavlSpec = {\n leafSpec: {\n prefix: Uint8Array.from([0]),\n hash: codecimpl_1.ics23.HashOp.SHA256,\n prehashValue: codecimpl_1.ics23.HashOp.SHA256,\n prehashKey: codecimpl_1.ics23.HashOp.NO_HASH,\n length: codecimpl_1.ics23.LengthOp.VAR_PROTO,\n },\n innerSpec: {\n childOrder: [0, 1],\n minPrefixLength: 4,\n maxPrefixLength: 12,\n childSize: 33,\n hash: codecimpl_1.ics23.HashOp.SHA256,\n },\n};\nexports.tendermintSpec = {\n leafSpec: {\n prefix: Uint8Array.from([0]),\n hash: codecimpl_1.ics23.HashOp.SHA256,\n prehashValue: codecimpl_1.ics23.HashOp.SHA256,\n prehashKey: codecimpl_1.ics23.HashOp.NO_HASH,\n length: codecimpl_1.ics23.LengthOp.VAR_PROTO,\n },\n innerSpec: {\n childOrder: [0, 1],\n minPrefixLength: 1,\n maxPrefixLength: 1,\n childSize: 32,\n hash: codecimpl_1.ics23.HashOp.SHA256,\n },\n};\nexports.smtSpec = {\n leafSpec: {\n hash: codecimpl_1.ics23.HashOp.SHA256,\n prehashKey: codecimpl_1.ics23.HashOp.NO_HASH,\n prehashValue: codecimpl_1.ics23.HashOp.SHA256,\n length: codecimpl_1.ics23.LengthOp.NO_PREFIX,\n prefix: Uint8Array.from([0]),\n },\n innerSpec: {\n childOrder: [0, 1],\n childSize: 32,\n minPrefixLength: 1,\n maxPrefixLength: 1,\n emptyChild: new Uint8Array(32),\n hash: codecimpl_1.ics23.HashOp.SHA256,\n },\n maxDepth: 256,\n};\n// verifyExistence will throw an error if the proof doesn't link key, value -> root\n// or if it doesn't fulfill the spec\nfunction verifyExistence(proof, spec, root, key, value) {\n ensureSpec(proof, spec);\n const calc = calculateExistenceRoot(proof);\n (0, specs_1.ensureBytesEqual)(calc, root);\n (0, specs_1.ensureBytesEqual)(key, proof.key);\n (0, specs_1.ensureBytesEqual)(value, proof.value);\n}\nexports.verifyExistence = verifyExistence;\n// Verify does all checks to ensure the proof has valid non-existence proofs,\n// and they ensure the given key is not in the CommitmentState,\n// throwing an error if there is an issue\nfunction verifyNonExistence(proof, spec, root, key) {\n let leftKey;\n let rightKey;\n if (proof.left) {\n verifyExistence(proof.left, spec, root, proof.left.key, proof.left.value);\n leftKey = proof.left.key;\n }\n if (proof.right) {\n verifyExistence(proof.right, spec, root, proof.right.key, proof.right.value);\n rightKey = proof.right.key;\n }\n if (!leftKey && !rightKey) {\n throw new Error(\"neither left nor right proof defined\");\n }\n if (leftKey) {\n (0, specs_1.ensureBytesBefore)(leftKey, key);\n }\n if (rightKey) {\n (0, specs_1.ensureBytesBefore)(key, rightKey);\n }\n if (!spec.innerSpec) {\n throw new Error(\"no inner spec\");\n }\n if (!leftKey) {\n ensureLeftMost(spec.innerSpec, proof.right.path);\n }\n else if (!rightKey) {\n ensureRightMost(spec.innerSpec, proof.left.path);\n }\n else {\n ensureLeftNeighbor(spec.innerSpec, proof.left.path, proof.right.path);\n }\n return;\n}\nexports.verifyNonExistence = verifyNonExistence;\n// Calculate determines the root hash that matches the given proof.\n// You must validate the result is what you have in a header.\n// Returns error if the calculations cannot be performed.\nfunction calculateExistenceRoot(proof) {\n if (!proof.key || !proof.value) {\n throw new Error(\"Existence proof needs key and value set\");\n }\n if (!proof.leaf) {\n throw new Error(\"Existence proof must start with a leaf operation\");\n }\n const path = proof.path || [];\n let res = (0, ops_1.applyLeaf)(proof.leaf, proof.key, proof.value);\n for (const inner of path) {\n res = (0, ops_1.applyInner)(inner, res);\n }\n return res;\n}\nexports.calculateExistenceRoot = calculateExistenceRoot;\n// ensureSpec throws an Error if proof doesn't fulfill spec\nfunction ensureSpec(proof, spec) {\n if (!proof.leaf) {\n throw new Error(\"Existence proof must start with a leaf operation\");\n }\n if (!spec.leafSpec) {\n throw new Error(\"Spec must include leafSpec\");\n }\n if (!spec.innerSpec) {\n throw new Error(\"Spec must include innerSpec\");\n }\n (0, specs_1.ensureLeaf)(proof.leaf, spec.leafSpec);\n const path = proof.path || [];\n if (spec.minDepth && path.length < spec.minDepth) {\n throw new Error(`Too few inner nodes ${path.length}`);\n }\n if (spec.maxDepth && path.length > spec.maxDepth) {\n throw new Error(`Too many inner nodes ${path.length}`);\n }\n for (const inner of path) {\n (0, specs_1.ensureInner)(inner, spec.leafSpec.prefix, spec.innerSpec);\n }\n}\nexports.ensureSpec = ensureSpec;\nfunction ensureLeftMost(spec, path) {\n const { minPrefix, maxPrefix, suffix } = getPadding(spec, 0);\n // ensure every step has a prefix and suffix defined to be leftmost\n for (const step of path) {\n if (!hasPadding(step, minPrefix, maxPrefix, suffix)) {\n throw new Error(\"Step not leftmost\");\n }\n }\n}\nfunction ensureRightMost(spec, path) {\n const len = spec.childOrder.length - 1;\n const { minPrefix, maxPrefix, suffix } = getPadding(spec, len);\n // ensure every step has a prefix and suffix defined to be leftmost\n for (const step of path) {\n if (!hasPadding(step, minPrefix, maxPrefix, suffix)) {\n throw new Error(\"Step not leftmost\");\n }\n }\n}\nfunction ensureLeftNeighbor(spec, left, right) {\n const mutleft = [...left];\n const mutright = [...right];\n let topleft = mutleft.pop();\n let topright = mutright.pop();\n while ((0, specs_1.bytesEqual)(topleft.prefix, topright.prefix) &&\n (0, specs_1.bytesEqual)(topleft.suffix, topright.suffix)) {\n topleft = mutleft.pop();\n topright = mutright.pop();\n }\n // now topleft and topright are the first divergent nodes\n // make sure they are left and right of each other\n if (!isLeftStep(spec, topleft, topright)) {\n throw new Error(`Not left neightbor at first divergent step`);\n }\n // make sure the paths are left and right most possibilities respectively\n ensureRightMost(spec, mutleft);\n ensureLeftMost(spec, mutright);\n}\nexports.ensureLeftNeighbor = ensureLeftNeighbor;\n// isLeftStep assumes left and right have common parents\n// checks if left is exactly one slot to the left of right\nfunction isLeftStep(spec, left, right) {\n const leftidx = orderFromPadding(spec, left);\n const rightidx = orderFromPadding(spec, right);\n return rightidx === leftidx + 1;\n}\nfunction orderFromPadding(spec, inner) {\n for (let branch = 0; branch < spec.childOrder.length; branch++) {\n const { minPrefix, maxPrefix, suffix } = getPadding(spec, branch);\n if (hasPadding(inner, minPrefix, maxPrefix, suffix)) {\n return branch;\n }\n }\n throw new Error(`Cannot find any valid spacing for this node`);\n}\nfunction hasPadding(op, minPrefix, maxPrefix, suffix) {\n if ((op.prefix || []).length < minPrefix) {\n return false;\n }\n if ((op.prefix || []).length > maxPrefix) {\n return false;\n }\n return (op.suffix || []).length === suffix;\n}\nfunction getPadding(spec, branch) {\n const idx = getPosition(spec.childOrder, branch);\n // count how many children are in the prefix\n const prefix = idx * spec.childSize;\n const minPrefix = prefix + spec.minPrefixLength;\n const maxPrefix = prefix + spec.maxPrefixLength;\n // count how many children are in the suffix\n const suffix = (spec.childOrder.length - 1 - idx) * spec.childSize;\n return { minPrefix, maxPrefix, suffix };\n}\nfunction getPosition(order, branch) {\n if (branch < 0 || branch >= order.length) {\n throw new Error(`Invalid branch: ${branch}`);\n }\n return order.findIndex((val) => val === branch);\n}\n//# sourceMappingURL=proofs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytesBefore = exports.ensureBytesBefore = exports.bytesEqual = exports.ensureBytesEqual = exports.ensureInner = exports.ensureLeaf = void 0;\nfunction ensureLeaf(leaf, spec) {\n if (leaf.hash !== spec.hash) {\n throw new Error(`Unexpected hashOp: ${leaf.hash}`);\n }\n if (leaf.prehashKey !== spec.prehashKey) {\n throw new Error(`Unexpected prehashKey: ${leaf.prehashKey}`);\n }\n if (leaf.prehashValue !== spec.prehashValue) {\n throw new Error(`Unexpected prehashValue: ${leaf.prehashValue}`);\n }\n if (leaf.length !== spec.length) {\n throw new Error(`Unexpected length op: ${leaf.length}`);\n }\n ensurePrefix(leaf.prefix, spec.prefix);\n}\nexports.ensureLeaf = ensureLeaf;\nfunction ensureInner(inner, prefix, spec) {\n if (inner.hash !== spec.hash) {\n throw new Error(`Unexpected hashOp: ${inner.hash}`);\n }\n if (!inner.prefix) {\n throw new Error(\"No prefix set for inner node\");\n }\n if (hasPrefix(inner.prefix, prefix)) {\n throw new Error(`Inner node has leaf prefix`);\n }\n if (inner.prefix.length < (spec.minPrefixLength || 0)) {\n throw new Error(`Prefix too short: ${inner.prefix.length} bytes`);\n }\n const maxLeftChildBytes = (spec.childOrder.length - 1) * spec.childSize;\n if (inner.prefix.length > (spec.maxPrefixLength || 0) + maxLeftChildBytes) {\n throw new Error(`Prefix too long: ${inner.prefix.length} bytes`);\n }\n}\nexports.ensureInner = ensureInner;\nfunction ensurePrefix(check, prefix) {\n // no prefix supplied, means everything passes\n if (!prefix || prefix.length === 0) {\n return;\n }\n if (!check) {\n throw new Error(`Target bytes missing`);\n }\n ensureBytesEqual(prefix, check.slice(0, prefix.length));\n}\n// ensureBytesEqual throws an error if the arrays are different\nfunction ensureBytesEqual(a, b) {\n if (a.length !== b.length) {\n throw new Error(`Different lengths ${a.length} vs ${b.length}`);\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n throw new Error(`Arrays differ at index ${i}: ${a[i]} vs ${b[i]}`);\n }\n }\n}\nexports.ensureBytesEqual = ensureBytesEqual;\nfunction bytesEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\nexports.bytesEqual = bytesEqual;\nfunction hasPrefix(check, prefix) {\n // no prefix supplied, means everything passes\n if (!prefix || prefix.length === 0) {\n return false;\n }\n if (!check) {\n return false;\n }\n if (check.length <= prefix.length) {\n return false;\n }\n for (let i = 0; i < prefix.length; i++) {\n if (check[i] !== prefix[i]) {\n return false;\n }\n }\n throw true;\n}\n// ensureBytesBefore throws an error if first >= last\n// we compare byte by byte\nfunction ensureBytesBefore(first, last) {\n if (!bytesBefore(first, last)) {\n throw new Error(\"first is after last\");\n }\n}\nexports.ensureBytesBefore = ensureBytesBefore;\nfunction bytesBefore(first, last) {\n const min = first.length < last.length ? first.length : last.length;\n for (let i = 0; i < min; i++) {\n if (first[i] < last[i]) {\n return true;\n }\n if (first[i] > last[i]) {\n return false;\n }\n // if they are equal, continue to next step\n }\n // if they match, ensure that last is longer than first..\n return first.length < last.length;\n}\nexports.bytesBefore = bytesBefore;\n//# sourceMappingURL=specs.js.map","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\n// See https://github.com/tendermint/tendermint/blob/f2ada0a604b4c0763bda2f64fac53d506d3beca7/docs/spec/blockchain/encoding.md#public-key-cryptography\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pubkeyToAddress = exports.pubkeyToRawAddress = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\n// For secp256k1 this assumes we already have a compressed pubkey.\nfunction pubkeyToRawAddress(pubkey) {\n if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawSecp256k1PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n const pubkeyData = (0, encoding_1.fromBase64)(pubkey.value);\n return rawEd25519PubkeyToRawAddress(pubkeyData);\n }\n else if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n // https://github.com/tendermint/tendermint/blob/38b401657e4ad7a7eeb3c30a3cbf512037df3740/crypto/multisig/threshold_pubkey.go#L71-L74\n const pubkeyData = (0, encoding_2.encodeAminoPubkey)(pubkey);\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n }\n else {\n throw new Error(\"Unsupported public key type\");\n }\n}\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nfunction pubkeyToAddress(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, pubkeyToRawAddress(pubkey));\n}\nexports.pubkeyToAddress = pubkeyToAddress;\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseCoins = exports.coins = exports.coin = void 0;\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * Creates a coin.\n *\n * If your values do not exceed the safe integer range of JS numbers (53 bit),\n * you can use the number type here. This is the case for all typical Cosmos SDK\n * chains that use the default 6 decimals.\n *\n * In case you need to supportr larger values, use unsigned integer strings instead.\n */\nfunction coin(amount, denom) {\n let outAmount;\n if (typeof amount === \"number\") {\n try {\n outAmount = new math_1.Uint53(amount).toString();\n }\n catch (_err) {\n throw new Error(\"Given amount is not a safe integer. Consider using a string instead to overcome the limitations of JS numbers.\");\n }\n }\n else {\n if (!amount.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid unsigned integer string format\");\n }\n outAmount = amount.replace(/^0*/, \"\") || \"0\";\n }\n return {\n amount: outAmount,\n denom: denom,\n };\n}\nexports.coin = coin;\n/**\n * Creates a list of coins with one element.\n */\nfunction coins(amount, denom) {\n return [coin(amount, denom)];\n}\nexports.coins = coins;\n/**\n * Takes a coins list like \"819966000ucosm,700000000ustake\" and parses it.\n *\n * A Stargate-ready variant of this function is available via:\n *\n * ```\n * import { parseCoins } from \"@cosmjs/proto-signing\";\n * // or\n * import { parseCoins } from \"@cosmjs/stargate\";\n * ```\n */\nfunction parseCoins(input) {\n return input\n .replace(/\\s/g, \"\")\n .split(\",\")\n .filter(Boolean)\n .map((part) => {\n const match = part.match(/^([0-9]+)([a-zA-Z]+)/);\n if (!match)\n throw new Error(\"Got an invalid coin string\");\n return {\n amount: math_1.Uint64.fromString(match[1]).toString(),\n denom: match[2],\n };\n });\n}\nexports.parseCoins = parseCoins;\n//# sourceMappingURL=coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.encodeSecp256k1Pubkey = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pubkeys_1 = require(\"./pubkeys\");\nfunction encodeSecp256k1Pubkey(pubkey) {\n if (pubkey.length !== 33 || (pubkey[0] !== 0x02 && pubkey[0] !== 0x03)) {\n throw new Error(\"Public key must be compressed secp256k1, i.e. 33 bytes starting with 0x02 or 0x03\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(pubkey),\n };\n}\nexports.encodeSecp256k1Pubkey = encodeSecp256k1Pubkey;\n// As discussed in https://github.com/binance-chain/javascript-sdk/issues/163\n// Prefixes listed here: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/docs/spec/blockchain/encoding.md#public-key-cryptography\n// Last bytes is varint-encoded length prefix\nconst pubkeyAminoPrefixSecp256k1 = (0, encoding_1.fromHex)(\"eb5ae987\" + \"21\" /* fixed length */);\nconst pubkeyAminoPrefixEd25519 = (0, encoding_1.fromHex)(\"1624de64\" + \"20\" /* fixed length */);\nconst pubkeyAminoPrefixSr25519 = (0, encoding_1.fromHex)(\"0dfb1005\" + \"20\" /* fixed length */);\n/** See https://github.com/tendermint/tendermint/commit/38b401657e4ad7a7eeb3c30a3cbf512037df3740 */\nconst pubkeyAminoPrefixMultisigThreshold = (0, encoding_1.fromHex)(\"22c1f7e2\" /* variable length not included */);\n/**\n * Decodes a pubkey in the Amino binary format to a type/value object.\n */\nfunction decodeAminoPubkey(data) {\n if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSecp256k1)) {\n const rest = data.slice(pubkeyAminoPrefixSecp256k1.length);\n if (rest.length !== 33) {\n throw new Error(\"Invalid rest data length. Expected 33 bytes (compressed secp256k1 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.secp256k1,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixEd25519)) {\n const rest = data.slice(pubkeyAminoPrefixEd25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Ed25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.ed25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixSr25519)) {\n const rest = data.slice(pubkeyAminoPrefixSr25519.length);\n if (rest.length !== 32) {\n throw new Error(\"Invalid rest data length. Expected 32 bytes (Sr25519 pubkey).\");\n }\n return {\n type: pubkeys_1.pubkeyType.sr25519,\n value: (0, encoding_1.toBase64)(rest),\n };\n }\n else if ((0, utils_1.arrayContentStartsWith)(data, pubkeyAminoPrefixMultisigThreshold)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return decodeMultisigPubkey(data);\n }\n else {\n throw new Error(\"Unsupported public key type. Amino data starts with: \" + (0, encoding_1.toHex)(data.slice(0, 5)));\n }\n}\nexports.decodeAminoPubkey = decodeAminoPubkey;\n/**\n * Decodes a bech32 pubkey to Amino binary, which is then decoded to a type/value object.\n * The bech32 prefix is ignored and discareded.\n *\n * @param bechEncoded the bech32 encoded pubkey\n */\nfunction decodeBech32Pubkey(bechEncoded) {\n const { data } = (0, encoding_1.fromBech32)(bechEncoded);\n return decodeAminoPubkey(data);\n}\nexports.decodeBech32Pubkey = decodeBech32Pubkey;\n/**\n * Uvarint decoder for Amino.\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/decoder.go#L64-76\n * @returns varint as number, and bytes count occupied by varaint\n */\nfunction decodeUvarint(reader) {\n if (reader.length < 1) {\n throw new Error(\"Can't decode varint. EOF\");\n }\n if (reader[0] > 127) {\n throw new Error(\"Decoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.Varint implementation from the Go standard library and write some tests.\");\n }\n return [reader[0], 1];\n}\n/**\n * Decodes a multisig pubkey to type object.\n * Pubkey structure [ prefix + const + threshold + loop:(const + pubkeyLength + pubkey ) ]\n * [ 4b + 1b + varint + loop:(1b + varint + pubkeyLength bytes) ]\n * @param data encoded pubkey\n */\nfunction decodeMultisigPubkey(data) {\n const reader = Array.from(data);\n // remove multisig amino prefix;\n const prefixFromReader = reader.splice(0, pubkeyAminoPrefixMultisigThreshold.length);\n if (!(0, utils_1.arrayContentStartsWith)(prefixFromReader, pubkeyAminoPrefixMultisigThreshold)) {\n throw new Error(\"Invalid multisig prefix.\");\n }\n // remove 0x08 threshold prefix;\n if (reader.shift() != 0x08) {\n throw new Error(\"Invalid multisig data. Expecting 0x08 prefix before threshold.\");\n }\n // read threshold\n const [threshold, thresholdBytesLength] = decodeUvarint(reader);\n reader.splice(0, thresholdBytesLength);\n // read participants pubkeys\n const pubkeys = [];\n while (reader.length > 0) {\n // remove 0x12 threshold prefix;\n if (reader.shift() != 0x12) {\n throw new Error(\"Invalid multisig data. Expecting 0x12 prefix before participant pubkey length.\");\n }\n // read pubkey length\n const [pubkeyLength, pubkeyLengthBytesSize] = decodeUvarint(reader);\n reader.splice(0, pubkeyLengthBytesSize);\n // verify that we can read pubkey\n if (reader.length < pubkeyLength) {\n throw new Error(\"Invalid multisig data length.\");\n }\n // read and decode participant pubkey\n const encodedPubkey = reader.splice(0, pubkeyLength);\n const pubkey = decodeAminoPubkey(Uint8Array.from(encodedPubkey));\n pubkeys.push(pubkey);\n }\n return {\n type: pubkeys_1.pubkeyType.multisigThreshold,\n value: {\n threshold: threshold.toString(),\n pubkeys: pubkeys,\n },\n };\n}\n/**\n * Uvarint encoder for Amino. This is the same encoding as `binary.PutUvarint` from the Go\n * standard library.\n *\n * @see https://github.com/tendermint/go-amino/blob/8e779b71f40d175/encoder.go#L77-L85\n */\nfunction encodeUvarint(value) {\n const checked = math_1.Uint53.fromString(value.toString()).toNumber();\n if (checked > 127) {\n throw new Error(\"Encoding numbers > 127 is not supported here. Please tell those lazy CosmJS maintainers to port the binary.PutUvarint implementation from the Go standard library and write some tests.\");\n }\n return [checked];\n}\n/**\n * Encodes a public key to binary Amino.\n */\nfunction encodeAminoPubkey(pubkey) {\n if ((0, pubkeys_1.isMultisigThresholdPubkey)(pubkey)) {\n const out = Array.from(pubkeyAminoPrefixMultisigThreshold);\n out.push(0x08); // TODO: What is this?\n out.push(...encodeUvarint(pubkey.value.threshold));\n for (const pubkeyData of pubkey.value.pubkeys.map((p) => encodeAminoPubkey(p))) {\n out.push(0x12); // TODO: What is this?\n out.push(...encodeUvarint(pubkeyData.length));\n out.push(...pubkeyData);\n }\n return new Uint8Array(out);\n }\n else if ((0, pubkeys_1.isEd25519Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixEd25519, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else if ((0, pubkeys_1.isSecp256k1Pubkey)(pubkey)) {\n return new Uint8Array([...pubkeyAminoPrefixSecp256k1, ...(0, encoding_1.fromBase64)(pubkey.value)]);\n }\n else {\n throw new Error(\"Unsupported pubkey type\");\n }\n}\nexports.encodeAminoPubkey = encodeAminoPubkey;\n/**\n * Encodes a public key to binary Amino and then to bech32.\n *\n * @param pubkey the public key to encode\n * @param prefix the bech32 prefix (human readable part)\n */\nfunction encodeBech32Pubkey(pubkey, prefix) {\n return (0, encoding_1.toBech32)(prefix, encodeAminoPubkey(pubkey));\n}\nexports.encodeBech32Pubkey = encodeBech32Pubkey;\n//# sourceMappingURL=encoding.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.executeKdf = exports.makeStdTx = exports.isStdTx = exports.serializeSignDoc = exports.makeSignDoc = exports.encodeSecp256k1Signature = exports.decodeSignature = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.extractKdfConfiguration = exports.pubkeyType = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.isMultisigThresholdPubkey = exports.isEd25519Pubkey = exports.makeCosmoshubPath = exports.createMultisigThresholdPubkey = exports.encodeSecp256k1Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.parseCoins = exports.coins = exports.coin = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar coins_1 = require(\"./coins\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return coins_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return coins_1.coins; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return coins_1.parseCoins; } });\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"decodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.decodeAminoPubkey; } });\nObject.defineProperty(exports, \"decodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.decodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeAminoPubkey\", { enumerable: true, get: function () { return encoding_1.encodeAminoPubkey; } });\nObject.defineProperty(exports, \"encodeBech32Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Pubkey\", { enumerable: true, get: function () { return encoding_1.encodeSecp256k1Pubkey; } });\nvar multisig_1 = require(\"./multisig\");\nObject.defineProperty(exports, \"createMultisigThresholdPubkey\", { enumerable: true, get: function () { return multisig_1.createMultisigThresholdPubkey; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkeys_1 = require(\"./pubkeys\");\nObject.defineProperty(exports, \"isEd25519Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isEd25519Pubkey; } });\nObject.defineProperty(exports, \"isMultisigThresholdPubkey\", { enumerable: true, get: function () { return pubkeys_1.isMultisigThresholdPubkey; } });\nObject.defineProperty(exports, \"isSecp256k1Pubkey\", { enumerable: true, get: function () { return pubkeys_1.isSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"isSinglePubkey\", { enumerable: true, get: function () { return pubkeys_1.isSinglePubkey; } });\nObject.defineProperty(exports, \"pubkeyType\", { enumerable: true, get: function () { return pubkeys_1.pubkeyType; } });\nvar secp256k1hdwallet_1 = require(\"./secp256k1hdwallet\");\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return secp256k1hdwallet_1.extractKdfConfiguration; } });\nObject.defineProperty(exports, \"Secp256k1HdWallet\", { enumerable: true, get: function () { return secp256k1hdwallet_1.Secp256k1HdWallet; } });\nvar secp256k1wallet_1 = require(\"./secp256k1wallet\");\nObject.defineProperty(exports, \"Secp256k1Wallet\", { enumerable: true, get: function () { return secp256k1wallet_1.Secp256k1Wallet; } });\nvar signature_1 = require(\"./signature\");\nObject.defineProperty(exports, \"decodeSignature\", { enumerable: true, get: function () { return signature_1.decodeSignature; } });\nObject.defineProperty(exports, \"encodeSecp256k1Signature\", { enumerable: true, get: function () { return signature_1.encodeSecp256k1Signature; } });\nvar signdoc_1 = require(\"./signdoc\");\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signdoc_1.makeSignDoc; } });\nObject.defineProperty(exports, \"serializeSignDoc\", { enumerable: true, get: function () { return signdoc_1.serializeSignDoc; } });\nvar stdtx_1 = require(\"./stdtx\");\nObject.defineProperty(exports, \"isStdTx\", { enumerable: true, get: function () { return stdtx_1.isStdTx; } });\nObject.defineProperty(exports, \"makeStdTx\", { enumerable: true, get: function () { return stdtx_1.makeStdTx; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMultisigThresholdPubkey = exports.compareArrays = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst addresses_1 = require(\"./addresses\");\n/**\n * Compare arrays lexicographically.\n *\n * Returns value < 0 if `a < b`.\n * Returns value > 0 if `a > b`.\n * Returns 0 if `a === b`.\n */\nfunction compareArrays(a, b) {\n const aHex = (0, encoding_1.toHex)(a);\n const bHex = (0, encoding_1.toHex)(b);\n return aHex === bHex ? 0 : aHex < bHex ? -1 : 1;\n}\nexports.compareArrays = compareArrays;\nfunction createMultisigThresholdPubkey(pubkeys, threshold, nosort = false) {\n const uintThreshold = new math_1.Uint53(threshold);\n if (uintThreshold.toNumber() > pubkeys.length) {\n throw new Error(`Threshold k = ${uintThreshold.toNumber()} exceeds number of keys n = ${pubkeys.length}`);\n }\n const outPubkeys = nosort\n ? pubkeys\n : Array.from(pubkeys).sort((lhs, rhs) => {\n // https://github.com/cosmos/cosmos-sdk/blob/v0.42.2/client/keys/add.go#L172-L174\n const addressLhs = (0, addresses_1.pubkeyToRawAddress)(lhs);\n const addressRhs = (0, addresses_1.pubkeyToRawAddress)(rhs);\n return compareArrays(addressLhs, addressRhs);\n });\n return {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: uintThreshold.toString(),\n pubkeys: outPubkeys,\n },\n };\n}\nexports.createMultisigThresholdPubkey = createMultisigThresholdPubkey;\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\nexports.makeCosmoshubPath = makeCosmoshubPath;\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMultisigThresholdPubkey = exports.isSinglePubkey = exports.pubkeyType = exports.isSecp256k1Pubkey = exports.isEd25519Pubkey = void 0;\nfunction isEd25519Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyEd25519\";\n}\nexports.isEd25519Pubkey = isEd25519Pubkey;\nfunction isSecp256k1Pubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeySecp256k1\";\n}\nexports.isSecp256k1Pubkey = isSecp256k1Pubkey;\nexports.pubkeyType = {\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/ed25519/ed25519.go#L22 */\n secp256k1: \"tendermint/PubKeySecp256k1\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/secp256k1/secp256k1.go#L23 */\n ed25519: \"tendermint/PubKeyEd25519\",\n /** @see https://github.com/tendermint/tendermint/blob/v0.33.0/crypto/sr25519/codec.go#L12 */\n sr25519: \"tendermint/PubKeySr25519\",\n multisigThreshold: \"tendermint/PubKeyMultisigThreshold\",\n};\nfunction isSinglePubkey(pubkey) {\n const singPubkeyTypes = [exports.pubkeyType.ed25519, exports.pubkeyType.secp256k1, exports.pubkeyType.sr25519];\n return singPubkeyTypes.includes(pubkey.type);\n}\nexports.isSinglePubkey = isSinglePubkey;\nfunction isMultisigThresholdPubkey(pubkey) {\n return pubkey.type === \"tendermint/PubKeyMultisigThreshold\";\n}\nexports.isMultisigThresholdPubkey = isMultisigThresholdPubkey;\n//# sourceMappingURL=pubkeys.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1HdWallet = exports.extractKdfConfiguration = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst addresses_1 = require(\"./addresses\");\nconst paths_1 = require(\"./paths\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"secp256k1wallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, paths_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\nclass Secp256k1HdWallet {\n constructor(mnemonic, options) {\n var _a, _b;\n const hdPaths = (_a = options.hdPaths) !== null && _a !== void 0 ? _a : defaultOptions.hdPaths;\n const prefix = (_b = options.prefix) !== null && _b !== void 0 ? _b : defaultOptions.prefix;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix,\n }));\n }\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new Secp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `Secp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return Secp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return Secp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return Secp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return Secp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signAmino(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const message = (0, crypto_1.sha256)((0, signdoc_1.serializeSignDoc)(signDoc));\n const signature = await crypto_1.Secp256k1.createSignature(message, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(pubkey, signatureBytes),\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.Secp256k1HdWallet = Secp256k1HdWallet;\n//# sourceMappingURL=secp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1Wallet = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst addresses_1 = require(\"./addresses\");\nconst signature_1 = require(\"./signature\");\nconst signdoc_1 = require(\"./signdoc\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use Secp256k1HdWallet.\n */\nclass Secp256k1Wallet {\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n /**\n * Creates a Secp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new Secp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, addresses_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signAmino(signerAddress, signDoc) {\n if (signerAddress !== this.address) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const message = new crypto_1.Sha256((0, signdoc_1.serializeSignDoc)(signDoc)).digest();\n const signature = await crypto_1.Secp256k1.createSignature(message, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n return {\n signed: signDoc,\n signature: (0, signature_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes),\n };\n }\n}\nexports.Secp256k1Wallet = Secp256k1Wallet;\n//# sourceMappingURL=secp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeSignature = exports.encodeSecp256k1Signature = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst encoding_2 = require(\"./encoding\");\nconst pubkeys_1 = require(\"./pubkeys\");\n/**\n * Takes a binary pubkey and signature to create a signature object\n *\n * @param pubkey a compressed secp256k1 public key\n * @param signature a 64 byte fixed length representation of secp256k1 signature components r and s\n */\nfunction encodeSecp256k1Signature(pubkey, signature) {\n if (signature.length !== 64) {\n throw new Error(\"Signature must be 64 bytes long. Cosmos SDK uses a 2x32 byte fixed length encoding for the secp256k1 signature integers r and s.\");\n }\n return {\n pub_key: (0, encoding_2.encodeSecp256k1Pubkey)(pubkey),\n signature: (0, encoding_1.toBase64)(signature),\n };\n}\nexports.encodeSecp256k1Signature = encodeSecp256k1Signature;\nfunction decodeSignature(signature) {\n switch (signature.pub_key.type) {\n // Note: please don't add cases here without writing additional unit tests\n case pubkeys_1.pubkeyType.secp256k1:\n return {\n pubkey: (0, encoding_1.fromBase64)(signature.pub_key.value),\n signature: (0, encoding_1.fromBase64)(signature.signature),\n };\n default:\n throw new Error(\"Unsupported pubkey type\");\n }\n}\nexports.decodeSignature = decodeSignature;\n//# sourceMappingURL=signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeSignDoc = exports.makeSignDoc = exports.sortedJsonStringify = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction sortedObject(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(sortedObject);\n }\n const sortedKeys = Object.keys(obj).sort();\n const result = {};\n // NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code\n sortedKeys.forEach((key) => {\n result[key] = sortedObject(obj[key]);\n });\n return result;\n}\n/** Returns a JSON string with objects sorted by key */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction sortedJsonStringify(obj) {\n return JSON.stringify(sortedObject(obj));\n}\nexports.sortedJsonStringify = sortedJsonStringify;\nfunction makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence) {\n return {\n chain_id: chainId,\n account_number: math_1.Uint53.fromString(accountNumber.toString()).toString(),\n sequence: math_1.Uint53.fromString(sequence.toString()).toString(),\n fee: fee,\n msgs: msgs,\n memo: memo || \"\",\n };\n}\nexports.makeSignDoc = makeSignDoc;\nfunction serializeSignDoc(signDoc) {\n return (0, encoding_1.toUtf8)(sortedJsonStringify(signDoc));\n}\nexports.serializeSignDoc = serializeSignDoc;\n//# sourceMappingURL=signdoc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeStdTx = exports.isStdTx = void 0;\nfunction isStdTx(txValue) {\n const { memo, msg, fee, signatures } = txValue;\n return (typeof memo === \"string\" && Array.isArray(msg) && typeof fee === \"object\" && Array.isArray(signatures));\n}\nexports.isStdTx = isStdTx;\nfunction makeStdTx(content, signatures) {\n return {\n msg: content.msgs,\n fee: content.fee,\n memo: content.memo,\n signatures: Array.isArray(signatures) ? signatures : [signatures],\n };\n}\nexports.makeStdTx = makeStdTx;\n//# sourceMappingURL=stdtx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = exports.supportedAlgorithms = exports.executeKdf = exports.cosmjsSalt = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.executeKdf = executeKdf;\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\nexports.encrypt = encrypt;\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\nexports.decrypt = decrypt;\n//# sourceMappingURL=wallet.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cosmWasmTypes = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst long_1 = __importDefault(require(\"long\"));\nexports.cosmWasmTypes = {\n \"/cosmwasm.wasm.v1.MsgStoreCode\": {\n aminoType: \"wasm/MsgStoreCode\",\n toAmino: ({ sender, wasmByteCode }) => ({\n sender: sender,\n wasm_byte_code: (0, encoding_1.toBase64)(wasmByteCode),\n }),\n fromAmino: ({ sender, wasm_byte_code }) => ({\n sender: sender,\n wasmByteCode: (0, encoding_1.fromBase64)(wasm_byte_code),\n instantiatePermission: undefined,\n }),\n },\n \"/cosmwasm.wasm.v1.MsgInstantiateContract\": {\n aminoType: \"wasm/MsgInstantiateContract\",\n toAmino: ({ sender, codeId, label, msg, funds, admin, }) => ({\n sender: sender,\n code_id: codeId.toString(),\n label: label,\n msg: JSON.parse((0, encoding_1.fromUtf8)(msg)),\n funds: funds,\n admin: admin || undefined,\n }),\n fromAmino: ({ sender, code_id, label, msg, funds, admin, }) => ({\n sender: sender,\n codeId: long_1.default.fromString(code_id),\n label: label,\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n funds: [...funds],\n admin: admin !== null && admin !== void 0 ? admin : \"\",\n }),\n },\n \"/cosmwasm.wasm.v1.MsgUpdateAdmin\": {\n aminoType: \"wasm/MsgUpdateAdmin\",\n toAmino: ({ sender, newAdmin, contract }) => ({\n sender: sender,\n new_admin: newAdmin,\n contract: contract,\n }),\n fromAmino: ({ sender, new_admin, contract }) => ({\n sender: sender,\n newAdmin: new_admin,\n contract: contract,\n }),\n },\n \"/cosmwasm.wasm.v1.MsgClearAdmin\": {\n aminoType: \"wasm/MsgClearAdmin\",\n toAmino: ({ sender, contract }) => ({\n sender: sender,\n contract: contract,\n }),\n fromAmino: ({ sender, contract }) => ({\n sender: sender,\n contract: contract,\n }),\n },\n \"/cosmwasm.wasm.v1.MsgExecuteContract\": {\n aminoType: \"wasm/MsgExecuteContract\",\n toAmino: ({ sender, contract, msg, funds }) => ({\n sender: sender,\n contract: contract,\n msg: JSON.parse((0, encoding_1.fromUtf8)(msg)),\n funds: funds,\n }),\n fromAmino: ({ sender, contract, msg, funds }) => ({\n sender: sender,\n contract: contract,\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n funds: [...funds],\n }),\n },\n \"/cosmwasm.wasm.v1.MsgMigrateContract\": {\n aminoType: \"wasm/MsgMigrateContract\",\n toAmino: ({ sender, contract, codeId, msg }) => ({\n sender: sender,\n contract: contract,\n code_id: codeId.toString(),\n msg: JSON.parse((0, encoding_1.fromUtf8)(msg)),\n }),\n fromAmino: ({ sender, contract, code_id, msg, }) => ({\n sender: sender,\n contract: contract,\n codeId: long_1.default.fromString(code_id),\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n }),\n },\n};\n//# sourceMappingURL=aminotypes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CosmWasmClient = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst stargate_1 = require(\"@cosmjs/stargate\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst types_1 = require(\"cosmjs-types/cosmwasm/wasm/v1/types\");\nconst queries_1 = require(\"./queries\");\nclass CosmWasmClient {\n constructor(tmClient) {\n this.codesCache = new Map();\n if (tmClient) {\n this.tmClient = tmClient;\n this.queryClient = stargate_1.QueryClient.withExtensions(tmClient, stargate_1.setupAuthExtension, stargate_1.setupBankExtension, queries_1.setupWasmExtension, stargate_1.setupTxExtension);\n }\n }\n static async connect(endpoint) {\n const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint);\n return new CosmWasmClient(tmClient);\n }\n getTmClient() {\n return this.tmClient;\n }\n forceGetTmClient() {\n if (!this.tmClient) {\n throw new Error(\"Tendermint client not available. You cannot use online functionality in offline mode.\");\n }\n return this.tmClient;\n }\n getQueryClient() {\n return this.queryClient;\n }\n forceGetQueryClient() {\n if (!this.queryClient) {\n throw new Error(\"Query client not available. You cannot use online functionality in offline mode.\");\n }\n return this.queryClient;\n }\n async getChainId() {\n if (!this.chainId) {\n const response = await this.forceGetTmClient().status();\n const chainId = response.nodeInfo.network;\n if (!chainId)\n throw new Error(\"Chain ID must not be empty\");\n this.chainId = chainId;\n }\n return this.chainId;\n }\n async getHeight() {\n const status = await this.forceGetTmClient().status();\n return status.syncInfo.latestBlockHeight;\n }\n async getAccount(searchAddress) {\n try {\n const account = await this.forceGetQueryClient().auth.account(searchAddress);\n return account ? (0, stargate_1.accountFromAny)(account) : null;\n }\n catch (error) {\n if (/rpc error: code = NotFound/i.test(error.toString())) {\n return null;\n }\n throw error;\n }\n }\n async getSequence(address) {\n const account = await this.getAccount(address);\n if (!account) {\n throw new Error(\"Account does not exist on chain. Send some tokens there before trying to query sequence.\");\n }\n return {\n accountNumber: account.accountNumber,\n sequence: account.sequence,\n };\n }\n async getBlock(height) {\n const response = await this.forceGetTmClient().block(height);\n return {\n id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(),\n header: {\n version: {\n block: new math_1.Uint53(response.block.header.version.block).toString(),\n app: new math_1.Uint53(response.block.header.version.app).toString(),\n },\n height: response.block.header.height,\n chainId: response.block.header.chainId,\n time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time),\n },\n txs: response.block.txs,\n };\n }\n async getBalance(address, searchDenom) {\n return this.forceGetQueryClient().bank.balance(address, searchDenom);\n }\n async getTx(id) {\n var _a;\n const results = await this.txsQuery(`tx.hash='${id}'`);\n return (_a = results[0]) !== null && _a !== void 0 ? _a : null;\n }\n async searchTx(query, filter = {}) {\n const minHeight = filter.minHeight || 0;\n const maxHeight = filter.maxHeight || Number.MAX_SAFE_INTEGER;\n if (maxHeight < minHeight)\n return []; // optional optimization\n function withFilters(originalQuery) {\n return `${originalQuery} AND tx.height>=${minHeight} AND tx.height<=${maxHeight}`;\n }\n let txs;\n if ((0, stargate_1.isSearchByHeightQuery)(query)) {\n txs =\n query.height >= minHeight && query.height <= maxHeight\n ? await this.txsQuery(`tx.height=${query.height}`)\n : [];\n }\n else if ((0, stargate_1.isSearchBySentFromOrToQuery)(query)) {\n const sentQuery = withFilters(`message.module='bank' AND transfer.sender='${query.sentFromOrTo}'`);\n const receivedQuery = withFilters(`message.module='bank' AND transfer.recipient='${query.sentFromOrTo}'`);\n const [sent, received] = await Promise.all([sentQuery, receivedQuery].map((rawQuery) => this.txsQuery(rawQuery)));\n const sentHashes = sent.map((t) => t.hash);\n txs = [...sent, ...received.filter((t) => !sentHashes.includes(t.hash))];\n }\n else if ((0, stargate_1.isSearchByTagsQuery)(query)) {\n const rawQuery = withFilters(query.tags.map((t) => `${t.key}='${t.value}'`).join(\" AND \"));\n txs = await this.txsQuery(rawQuery);\n }\n else {\n throw new Error(\"Unknown query type\");\n }\n const filtered = txs.filter((tx) => tx.height >= minHeight && tx.height <= maxHeight);\n return filtered;\n }\n disconnect() {\n if (this.tmClient)\n this.tmClient.disconnect();\n }\n /**\n * Broadcasts a signed transaction to the network and monitors its inclusion in a block.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`.\n *\n * If the transaction is included in a block, a `DeliverTxResponse` is returned. The caller then\n * usually needs to check for execution success or failure.\n */\n // NOTE: This method is tested against slow chains and timeouts in the @cosmjs/stargate package.\n // Make sure it is kept in sync!\n async broadcastTx(tx, timeoutMs = 60000, pollIntervalMs = 3000) {\n let timedOut = false;\n const txPollTimeout = setTimeout(() => {\n timedOut = true;\n }, timeoutMs);\n const pollForTx = async (txId) => {\n if (timedOut) {\n throw new stargate_1.TimeoutError(`Transaction with ID ${txId} was submitted but was not yet found on the chain. You might want to check later.`, txId);\n }\n await (0, utils_1.sleep)(pollIntervalMs);\n const result = await this.getTx(txId);\n return result\n ? {\n code: result.code,\n height: result.height,\n rawLog: result.rawLog,\n transactionHash: txId,\n gasUsed: result.gasUsed,\n gasWanted: result.gasWanted,\n }\n : pollForTx(txId);\n };\n const broadcasted = await this.forceGetTmClient().broadcastTxSync({ tx });\n if (broadcasted.code) {\n throw new Error(`Broadcasting transaction failed with code ${broadcasted.code} (codespace: ${broadcasted.codeSpace}). Log: ${broadcasted.log}`);\n }\n const transactionId = (0, encoding_1.toHex)(broadcasted.hash).toUpperCase();\n return new Promise((resolve, reject) => pollForTx(transactionId).then((value) => {\n clearTimeout(txPollTimeout);\n resolve(value);\n }, (error) => {\n clearTimeout(txPollTimeout);\n reject(error);\n }));\n }\n async getCodes() {\n const { codeInfos } = await this.forceGetQueryClient().wasm.listCodeInfo();\n return (codeInfos || []).map((entry) => {\n (0, utils_1.assert)(entry.creator && entry.codeId && entry.dataHash, \"entry incomplete\");\n return {\n id: entry.codeId.toNumber(),\n creator: entry.creator,\n checksum: (0, encoding_1.toHex)(entry.dataHash),\n };\n });\n }\n async getCodeDetails(codeId) {\n const cached = this.codesCache.get(codeId);\n if (cached)\n return cached;\n const { codeInfo, data } = await this.forceGetQueryClient().wasm.getCode(codeId);\n (0, utils_1.assert)(codeInfo && codeInfo.codeId && codeInfo.creator && codeInfo.dataHash && data, \"codeInfo missing or incomplete\");\n const codeDetails = {\n id: codeInfo.codeId.toNumber(),\n creator: codeInfo.creator,\n checksum: (0, encoding_1.toHex)(codeInfo.dataHash),\n data: data,\n };\n this.codesCache.set(codeId, codeDetails);\n return codeDetails;\n }\n async getContracts(codeId) {\n // TODO: handle pagination - accept as arg or auto-loop\n const { contracts } = await this.forceGetQueryClient().wasm.listContractsByCodeId(codeId);\n return contracts;\n }\n /**\n * Throws an error if no contract was found at the address\n */\n async getContract(address) {\n const { address: retrievedAddress, contractInfo } = await this.forceGetQueryClient().wasm.getContractInfo(address);\n if (!contractInfo)\n throw new Error(`No contract found at address \"${address}\"`);\n (0, utils_1.assert)(retrievedAddress, \"address missing\");\n (0, utils_1.assert)(contractInfo.codeId && contractInfo.creator && contractInfo.label, \"contractInfo incomplete\");\n return {\n address: retrievedAddress,\n codeId: contractInfo.codeId.toNumber(),\n creator: contractInfo.creator,\n admin: contractInfo.admin || undefined,\n label: contractInfo.label,\n ibcPortId: contractInfo.ibcPortId || undefined,\n };\n }\n /**\n * Throws an error if no contract was found at the address\n */\n async getContractCodeHistory(address) {\n const result = await this.forceGetQueryClient().wasm.getContractCodeHistory(address);\n if (!result)\n throw new Error(`No contract history found for address \"${address}\"`);\n const operations = {\n [types_1.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT]: \"Init\",\n [types_1.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS]: \"Genesis\",\n [types_1.ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE]: \"Migrate\",\n };\n return (result.entries || []).map((entry) => {\n (0, utils_1.assert)(entry.operation && entry.codeId && entry.msg);\n return {\n operation: operations[entry.operation],\n codeId: entry.codeId.toNumber(),\n msg: JSON.parse((0, encoding_1.fromAscii)(entry.msg)),\n };\n });\n }\n /**\n * Returns the data at the key if present (raw contract dependent storage data)\n * or null if no data at this key.\n *\n * Promise is rejected when contract does not exist.\n */\n async queryContractRaw(address, key) {\n // just test contract existence\n await this.getContract(address);\n const { data } = await this.forceGetQueryClient().wasm.queryContractRaw(address, key);\n return data !== null && data !== void 0 ? data : null;\n }\n /**\n * Makes a smart query on the contract, returns the parsed JSON document.\n *\n * Promise is rejected when contract does not exist.\n * Promise is rejected for invalid query format.\n * Promise is rejected for invalid response format.\n */\n async queryContractSmart(address, queryMsg) {\n try {\n return await this.forceGetQueryClient().wasm.queryContractSmart(address, queryMsg);\n }\n catch (error) {\n if (error instanceof Error) {\n if (error.message.startsWith(\"not found: contract\")) {\n throw new Error(`No contract found at address \"${address}\"`);\n }\n else {\n throw error;\n }\n }\n else {\n throw error;\n }\n }\n }\n async txsQuery(query) {\n const results = await this.forceGetTmClient().txSearchAll({ query: query });\n return results.txs.map((tx) => {\n return {\n height: tx.height,\n hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(),\n code: tx.result.code,\n rawLog: tx.result.log || \"\",\n tx: tx.tx,\n gasUsed: tx.result.gasUsed,\n gasWanted: tx.result.gasWanted,\n };\n });\n }\n}\nexports.CosmWasmClient = CosmWasmClient;\n//# sourceMappingURL=cosmwasmclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsgExecuteEncodeObject = exports.isMsgMigrateEncodeObject = exports.isMsgClearAdminEncodeObject = exports.isMsgUpdateAdminEncodeObject = exports.isMsgInstantiateContractEncodeObject = exports.isMsgStoreCodeEncodeObject = void 0;\nfunction isMsgStoreCodeEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgStoreCode\";\n}\nexports.isMsgStoreCodeEncodeObject = isMsgStoreCodeEncodeObject;\nfunction isMsgInstantiateContractEncodeObject(encodeObject) {\n return (encodeObject.typeUrl ===\n \"/cosmwasm.wasm.v1.MsgInstantiateContract\");\n}\nexports.isMsgInstantiateContractEncodeObject = isMsgInstantiateContractEncodeObject;\nfunction isMsgUpdateAdminEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgUpdateAdmin\";\n}\nexports.isMsgUpdateAdminEncodeObject = isMsgUpdateAdminEncodeObject;\nfunction isMsgClearAdminEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgClearAdmin\";\n}\nexports.isMsgClearAdminEncodeObject = isMsgClearAdminEncodeObject;\nfunction isMsgMigrateEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgMigrateContract\";\n}\nexports.isMsgMigrateEncodeObject = isMsgMigrateEncodeObject;\nfunction isMsgExecuteEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmwasm.wasm.v1.MsgExecuteContract\";\n}\nexports.isMsgExecuteEncodeObject = isMsgExecuteEncodeObject;\n//# sourceMappingURL=encodeobjects.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBinary = exports.toBinary = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * Takes a value, serializes it to JSON and encodes it as base64.\n *\n * This can be used for creating values of fields that have the CosmWasm Binary type.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction toBinary(obj) {\n return (0, encoding_1.toBase64)((0, encoding_1.toUtf8)(JSON.stringify(obj)));\n}\nexports.toBinary = toBinary;\n/**\n * Takes a base64 string, decodes it and parses the content from JSON to an object.\n *\n * This can be used for parsing the values of a CosmWasm Binary field.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction fromBinary(base64) {\n return JSON.parse((0, encoding_1.fromUtf8)((0, encoding_1.fromBase64)(base64)));\n}\nexports.fromBinary = fromBinary;\n//# sourceMappingURL=encoding.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningCosmWasmClient = exports.setupWasmExtension = exports.toBinary = exports.fromBinary = exports.isMsgUpdateAdminEncodeObject = exports.isMsgStoreCodeEncodeObject = exports.isMsgMigrateEncodeObject = exports.isMsgInstantiateContractEncodeObject = exports.isMsgExecuteEncodeObject = exports.isMsgClearAdminEncodeObject = exports.CosmWasmClient = exports.cosmWasmTypes = void 0;\nvar aminotypes_1 = require(\"./aminotypes\");\nObject.defineProperty(exports, \"cosmWasmTypes\", { enumerable: true, get: function () { return aminotypes_1.cosmWasmTypes; } });\nvar cosmwasmclient_1 = require(\"./cosmwasmclient\");\nObject.defineProperty(exports, \"CosmWasmClient\", { enumerable: true, get: function () { return cosmwasmclient_1.CosmWasmClient; } });\nvar encodeobjects_1 = require(\"./encodeobjects\");\nObject.defineProperty(exports, \"isMsgClearAdminEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgClearAdminEncodeObject; } });\nObject.defineProperty(exports, \"isMsgExecuteEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgExecuteEncodeObject; } });\nObject.defineProperty(exports, \"isMsgInstantiateContractEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgInstantiateContractEncodeObject; } });\nObject.defineProperty(exports, \"isMsgMigrateEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgMigrateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgStoreCodeEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgStoreCodeEncodeObject; } });\nObject.defineProperty(exports, \"isMsgUpdateAdminEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgUpdateAdminEncodeObject; } });\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"fromBinary\", { enumerable: true, get: function () { return encoding_1.fromBinary; } });\nObject.defineProperty(exports, \"toBinary\", { enumerable: true, get: function () { return encoding_1.toBinary; } });\nvar queries_1 = require(\"./queries\");\nObject.defineProperty(exports, \"setupWasmExtension\", { enumerable: true, get: function () { return queries_1.setupWasmExtension; } });\nvar signingcosmwasmclient_1 = require(\"./signingcosmwasmclient\");\nObject.defineProperty(exports, \"SigningCosmWasmClient\", { enumerable: true, get: function () { return signingcosmwasmclient_1.SigningCosmWasmClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupWasmExtension = void 0;\nvar wasm_1 = require(\"./wasm\");\nObject.defineProperty(exports, \"setupWasmExtension\", { enumerable: true, get: function () { return wasm_1.setupWasmExtension; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupWasmExtension = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst stargate_1 = require(\"@cosmjs/stargate\");\nconst query_1 = require(\"cosmjs-types/cosmwasm/wasm/v1/query\");\nconst long_1 = __importDefault(require(\"long\"));\nfunction setupWasmExtension(base) {\n const rpc = (0, stargate_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n wasm: {\n listCodeInfo: async (paginationKey) => {\n const request = {\n pagination: (0, stargate_1.createPagination)(paginationKey),\n };\n return queryService.Codes(request);\n },\n getCode: async (id) => {\n const request = { codeId: long_1.default.fromNumber(id) };\n return queryService.Code(request);\n },\n listContractsByCodeId: async (id, paginationKey) => {\n const request = {\n codeId: long_1.default.fromNumber(id),\n pagination: (0, stargate_1.createPagination)(paginationKey),\n };\n return queryService.ContractsByCode(request);\n },\n getContractInfo: async (address) => {\n const request = { address: address };\n return queryService.ContractInfo(request);\n },\n getContractCodeHistory: async (address, paginationKey) => {\n const request = {\n address: address,\n pagination: (0, stargate_1.createPagination)(paginationKey),\n };\n return queryService.ContractHistory(request);\n },\n getAllContractState: async (address, paginationKey) => {\n const request = {\n address: address,\n pagination: (0, stargate_1.createPagination)(paginationKey),\n };\n return queryService.AllContractState(request);\n },\n queryContractRaw: async (address, key) => {\n const request = { address: address, queryData: key };\n return queryService.RawContractState(request);\n },\n queryContractSmart: async (address, query) => {\n const request = { address: address, queryData: (0, encoding_1.toAscii)(JSON.stringify(query)) };\n const { data } = await queryService.SmartContractState(request);\n // By convention, smart queries must return a valid JSON document (see https://github.com/CosmWasm/cosmwasm/issues/144)\n let responseText;\n try {\n responseText = (0, encoding_1.fromUtf8)(data);\n }\n catch (error) {\n throw new Error(`Could not UTF-8 decode smart query response from contract: ${error}`);\n }\n try {\n return JSON.parse(responseText);\n }\n catch (error) {\n throw new Error(`Could not JSON parse smart query response from contract: ${error}`);\n }\n },\n },\n };\n}\nexports.setupWasmExtension = setupWasmExtension;\n//# sourceMappingURL=wasm.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningCosmWasmClient = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst stargate_1 = require(\"@cosmjs/stargate\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst tx_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/staking/v1beta1/tx\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_3 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_4 = require(\"cosmjs-types/cosmwasm/wasm/v1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\nconst pako_1 = __importDefault(require(\"pako\"));\nconst aminotypes_1 = require(\"./aminotypes\");\nconst cosmwasmclient_1 = require(\"./cosmwasmclient\");\nfunction createDeliverTxResponseErrorMessage(result) {\n return `Error when broadcasting tx ${result.transactionHash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`;\n}\nfunction createDefaultRegistry() {\n const registry = new proto_signing_1.Registry(stargate_1.defaultRegistryTypes);\n registry.register(\"/cosmwasm.wasm.v1.MsgClearAdmin\", tx_4.MsgClearAdmin);\n registry.register(\"/cosmwasm.wasm.v1.MsgExecuteContract\", tx_4.MsgExecuteContract);\n registry.register(\"/cosmwasm.wasm.v1.MsgMigrateContract\", tx_4.MsgMigrateContract);\n registry.register(\"/cosmwasm.wasm.v1.MsgStoreCode\", tx_4.MsgStoreCode);\n registry.register(\"/cosmwasm.wasm.v1.MsgInstantiateContract\", tx_4.MsgInstantiateContract);\n registry.register(\"/cosmwasm.wasm.v1.MsgUpdateAdmin\", tx_4.MsgUpdateAdmin);\n return registry;\n}\nclass SigningCosmWasmClient extends cosmwasmclient_1.CosmWasmClient {\n constructor(tmClient, signer, options) {\n var _a;\n super(tmClient);\n // TODO: do we really want to set a default here? Ideally we could get it from the signer such that users only have to set it once.\n const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : \"cosmos\";\n const { registry = createDefaultRegistry(), aminoTypes = new stargate_1.AminoTypes({ prefix, additions: aminotypes_1.cosmWasmTypes }), } = options;\n this.registry = registry;\n this.aminoTypes = aminoTypes;\n this.signer = signer;\n this.broadcastTimeoutMs = options.broadcastTimeoutMs;\n this.broadcastPollIntervalMs = options.broadcastPollIntervalMs;\n this.gasPrice = options.gasPrice;\n }\n static async connectWithSigner(endpoint, signer, options = {}) {\n const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint);\n return new SigningCosmWasmClient(tmClient, signer, options);\n }\n /**\n * Creates a client in offline mode.\n *\n * This should only be used in niche cases where you know exactly what you're doing,\n * e.g. when building an offline signing application.\n *\n * When you try to use online functionality with such a signer, an\n * exception will be raised.\n */\n static async offline(signer, options = {}) {\n return new SigningCosmWasmClient(undefined, signer, options);\n }\n async simulate(signerAddress, messages, memo) {\n const anyMsgs = messages.map((m) => this.registry.encodeAsAny(m));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey);\n const { sequence } = await this.getSequence(signerAddress);\n const { gasInfo } = await this.forceGetQueryClient().tx.simulate(anyMsgs, memo, pubkey, sequence);\n (0, utils_1.assertDefined)(gasInfo);\n return math_1.Uint53.fromString(gasInfo.gasUsed.toString()).toNumber();\n }\n /** Uploads code and returns a receipt, including the code ID */\n async upload(senderAddress, wasmCode, fee, memo = \"\") {\n const compressed = pako_1.default.gzip(wasmCode, { level: 9 });\n const storeCodeMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgStoreCode\",\n value: tx_4.MsgStoreCode.fromPartial({\n sender: senderAddress,\n wasmByteCode: compressed,\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [storeCodeMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n const parsedLogs = stargate_1.logs.parseRawLog(result.rawLog);\n const codeIdAttr = stargate_1.logs.findAttribute(parsedLogs, \"store_code\", \"code_id\");\n return {\n originalSize: wasmCode.length,\n originalChecksum: (0, encoding_1.toHex)((0, crypto_1.sha256)(wasmCode)),\n compressedSize: compressed.length,\n compressedChecksum: (0, encoding_1.toHex)((0, crypto_1.sha256)(compressed)),\n codeId: Number.parseInt(codeIdAttr.value, 10),\n logs: parsedLogs,\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async instantiate(senderAddress, codeId, msg, label, fee, options = {}) {\n const instantiateContractMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgInstantiateContract\",\n value: tx_4.MsgInstantiateContract.fromPartial({\n sender: senderAddress,\n codeId: long_1.default.fromString(new math_1.Uint53(codeId).toString()),\n label: label,\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n funds: [...(options.funds || [])],\n admin: options.admin,\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [instantiateContractMsg], fee, options.memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n const parsedLogs = stargate_1.logs.parseRawLog(result.rawLog);\n const contractAddressAttr = stargate_1.logs.findAttribute(parsedLogs, \"instantiate\", \"_contract_address\");\n return {\n contractAddress: contractAddressAttr.value,\n logs: parsedLogs,\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async updateAdmin(senderAddress, contractAddress, newAdmin, fee, memo = \"\") {\n const updateAdminMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgUpdateAdmin\",\n value: tx_4.MsgUpdateAdmin.fromPartial({\n sender: senderAddress,\n contract: contractAddress,\n newAdmin: newAdmin,\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [updateAdminMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n return {\n logs: stargate_1.logs.parseRawLog(result.rawLog),\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async clearAdmin(senderAddress, contractAddress, fee, memo = \"\") {\n const clearAdminMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgClearAdmin\",\n value: tx_4.MsgClearAdmin.fromPartial({\n sender: senderAddress,\n contract: contractAddress,\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [clearAdminMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n return {\n logs: stargate_1.logs.parseRawLog(result.rawLog),\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async migrate(senderAddress, contractAddress, codeId, migrateMsg, fee, memo = \"\") {\n const migrateContractMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgMigrateContract\",\n value: tx_4.MsgMigrateContract.fromPartial({\n sender: senderAddress,\n contract: contractAddress,\n codeId: long_1.default.fromString(new math_1.Uint53(codeId).toString()),\n msg: (0, encoding_1.toUtf8)(JSON.stringify(migrateMsg)),\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [migrateContractMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n return {\n logs: stargate_1.logs.parseRawLog(result.rawLog),\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async execute(senderAddress, contractAddress, msg, fee, memo = \"\", funds) {\n const executeContractMsg = {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: tx_4.MsgExecuteContract.fromPartial({\n sender: senderAddress,\n contract: contractAddress,\n msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),\n funds: [...(funds || [])],\n }),\n };\n const result = await this.signAndBroadcast(senderAddress, [executeContractMsg], fee, memo);\n if ((0, stargate_1.isDeliverTxFailure)(result)) {\n throw new Error(createDeliverTxResponseErrorMessage(result));\n }\n return {\n logs: stargate_1.logs.parseRawLog(result.rawLog),\n height: result.height,\n transactionHash: result.transactionHash,\n gasWanted: result.gasWanted,\n gasUsed: result.gasUsed,\n };\n }\n async sendTokens(senderAddress, recipientAddress, amount, fee, memo = \"\") {\n const sendMsg = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSend\",\n value: {\n fromAddress: senderAddress,\n toAddress: recipientAddress,\n amount: [...amount],\n },\n };\n return this.signAndBroadcast(senderAddress, [sendMsg], fee, memo);\n }\n async delegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const delegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegate\",\n value: tx_2.MsgDelegate.fromPartial({ delegatorAddress: delegatorAddress, validatorAddress, amount }),\n };\n return this.signAndBroadcast(delegatorAddress, [delegateMsg], fee, memo);\n }\n async undelegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const undelegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegate\",\n value: tx_2.MsgUndelegate.fromPartial({ delegatorAddress: delegatorAddress, validatorAddress, amount }),\n };\n return this.signAndBroadcast(delegatorAddress, [undelegateMsg], fee, memo);\n }\n async withdrawRewards(delegatorAddress, validatorAddress, fee, memo = \"\") {\n const withdrawDelegatorRewardMsg = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n value: tx_1.MsgWithdrawDelegatorReward.fromPartial({ delegatorAddress: delegatorAddress, validatorAddress }),\n };\n return this.signAndBroadcast(delegatorAddress, [withdrawDelegatorRewardMsg], fee, memo);\n }\n /**\n * Creates a transaction with the given messages, fee and memo. Then signs and broadcasts the transaction.\n *\n * @param signerAddress The address that will sign transactions using this instance. The signer must be able to sign with this address.\n * @param messages\n * @param fee\n * @param memo\n */\n async signAndBroadcast(signerAddress, messages, fee, memo = \"\") {\n let usedFee;\n if (fee == \"auto\" || typeof fee === \"number\") {\n (0, utils_1.assertDefined)(this.gasPrice, \"Gas price must be set in the client options when auto gas is used.\");\n const gasEstimation = await this.simulate(signerAddress, messages, memo);\n const muliplier = typeof fee === \"number\" ? fee : 1.3;\n usedFee = (0, stargate_1.calculateFee)(Math.round(gasEstimation * muliplier), this.gasPrice);\n }\n else {\n usedFee = fee;\n }\n const txRaw = await this.sign(signerAddress, messages, usedFee, memo);\n const txBytes = tx_3.TxRaw.encode(txRaw).finish();\n return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs);\n }\n async sign(signerAddress, messages, fee, memo, explicitSignerData) {\n let signerData;\n if (explicitSignerData) {\n signerData = explicitSignerData;\n }\n else {\n const { accountNumber, sequence } = await this.getSequence(signerAddress);\n const chainId = await this.getChainId();\n signerData = {\n accountNumber: accountNumber,\n sequence: sequence,\n chainId: chainId,\n };\n }\n return (0, proto_signing_1.isOfflineDirectSigner)(this.signer)\n ? this.signDirect(signerAddress, messages, fee, memo, signerData)\n : this.signAmino(signerAddress, messages, fee, memo, signerData);\n }\n async signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {\n (0, utils_1.assert)(!(0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg));\n const signDoc = (0, amino_1.makeSignDoc)(msgs, fee, chainId, memo, accountNumber, sequence);\n const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc);\n const signedTxBody = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)),\n memo: signed.memo,\n },\n };\n const signedTxBodyBytes = this.registry.encode(signedTxBody);\n const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber();\n const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber();\n const signedAuthInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signMode);\n return tx_3.TxRaw.fromPartial({\n bodyBytes: signedTxBodyBytes,\n authInfoBytes: signedAuthInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n async signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {\n (0, utils_1.assert)((0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const txBody = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: messages,\n memo: memo,\n },\n };\n const txBodyBytes = this.registry.encode(txBody);\n const gasLimit = math_1.Int53.fromString(fee.gas).toNumber();\n const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence }], fee.amount, gasLimit);\n const signDoc = (0, proto_signing_1.makeSignDoc)(txBodyBytes, authInfoBytes, chainId, accountNumber);\n const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc);\n return tx_3.TxRaw.fromPartial({\n bodyBytes: signed.bodyBytes,\n authInfoBytes: signed.authInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n}\nexports.SigningCosmWasmClient = SigningCosmWasmClient;\n//# sourceMappingURL=signingcosmwasmclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bip39 = exports.EnglishMnemonic = exports.mnemonicToEntropy = exports.entropyToMnemonic = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst pbkdf2_1 = require(\"./pbkdf2\");\nconst sha_1 = require(\"./sha\");\nconst wordlist = [\n \"abandon\",\n \"ability\",\n \"able\",\n \"about\",\n \"above\",\n \"absent\",\n \"absorb\",\n \"abstract\",\n \"absurd\",\n \"abuse\",\n \"access\",\n \"accident\",\n \"account\",\n \"accuse\",\n \"achieve\",\n \"acid\",\n \"acoustic\",\n \"acquire\",\n \"across\",\n \"act\",\n \"action\",\n \"actor\",\n \"actress\",\n \"actual\",\n \"adapt\",\n \"add\",\n \"addict\",\n \"address\",\n \"adjust\",\n \"admit\",\n \"adult\",\n \"advance\",\n \"advice\",\n \"aerobic\",\n \"affair\",\n \"afford\",\n \"afraid\",\n \"again\",\n \"age\",\n \"agent\",\n \"agree\",\n \"ahead\",\n \"aim\",\n \"air\",\n \"airport\",\n \"aisle\",\n \"alarm\",\n \"album\",\n \"alcohol\",\n \"alert\",\n \"alien\",\n \"all\",\n \"alley\",\n \"allow\",\n \"almost\",\n \"alone\",\n \"alpha\",\n \"already\",\n \"also\",\n \"alter\",\n \"always\",\n \"amateur\",\n \"amazing\",\n \"among\",\n \"amount\",\n \"amused\",\n \"analyst\",\n \"anchor\",\n \"ancient\",\n \"anger\",\n \"angle\",\n \"angry\",\n \"animal\",\n \"ankle\",\n \"announce\",\n \"annual\",\n \"another\",\n \"answer\",\n \"antenna\",\n \"antique\",\n \"anxiety\",\n \"any\",\n \"apart\",\n \"apology\",\n \"appear\",\n \"apple\",\n \"approve\",\n \"april\",\n \"arch\",\n \"arctic\",\n \"area\",\n \"arena\",\n \"argue\",\n \"arm\",\n \"armed\",\n \"armor\",\n \"army\",\n \"around\",\n \"arrange\",\n \"arrest\",\n \"arrive\",\n \"arrow\",\n \"art\",\n \"artefact\",\n \"artist\",\n \"artwork\",\n \"ask\",\n \"aspect\",\n \"assault\",\n \"asset\",\n \"assist\",\n \"assume\",\n \"asthma\",\n \"athlete\",\n \"atom\",\n \"attack\",\n \"attend\",\n \"attitude\",\n \"attract\",\n \"auction\",\n \"audit\",\n \"august\",\n \"aunt\",\n \"author\",\n \"auto\",\n \"autumn\",\n \"average\",\n \"avocado\",\n \"avoid\",\n \"awake\",\n \"aware\",\n \"away\",\n \"awesome\",\n \"awful\",\n \"awkward\",\n \"axis\",\n \"baby\",\n \"bachelor\",\n \"bacon\",\n \"badge\",\n \"bag\",\n \"balance\",\n \"balcony\",\n \"ball\",\n \"bamboo\",\n \"banana\",\n \"banner\",\n \"bar\",\n \"barely\",\n \"bargain\",\n \"barrel\",\n \"base\",\n \"basic\",\n \"basket\",\n \"battle\",\n \"beach\",\n \"bean\",\n \"beauty\",\n \"because\",\n \"become\",\n \"beef\",\n \"before\",\n \"begin\",\n \"behave\",\n \"behind\",\n \"believe\",\n \"below\",\n \"belt\",\n \"bench\",\n \"benefit\",\n \"best\",\n \"betray\",\n \"better\",\n \"between\",\n \"beyond\",\n \"bicycle\",\n \"bid\",\n \"bike\",\n \"bind\",\n \"biology\",\n \"bird\",\n \"birth\",\n \"bitter\",\n \"black\",\n \"blade\",\n \"blame\",\n \"blanket\",\n \"blast\",\n \"bleak\",\n \"bless\",\n \"blind\",\n \"blood\",\n \"blossom\",\n \"blouse\",\n \"blue\",\n \"blur\",\n \"blush\",\n \"board\",\n \"boat\",\n \"body\",\n \"boil\",\n \"bomb\",\n \"bone\",\n \"bonus\",\n \"book\",\n \"boost\",\n \"border\",\n \"boring\",\n \"borrow\",\n \"boss\",\n \"bottom\",\n \"bounce\",\n \"box\",\n \"boy\",\n \"bracket\",\n \"brain\",\n \"brand\",\n \"brass\",\n \"brave\",\n \"bread\",\n \"breeze\",\n \"brick\",\n \"bridge\",\n \"brief\",\n \"bright\",\n \"bring\",\n \"brisk\",\n \"broccoli\",\n \"broken\",\n \"bronze\",\n \"broom\",\n \"brother\",\n \"brown\",\n \"brush\",\n \"bubble\",\n \"buddy\",\n \"budget\",\n \"buffalo\",\n \"build\",\n \"bulb\",\n \"bulk\",\n \"bullet\",\n \"bundle\",\n \"bunker\",\n \"burden\",\n \"burger\",\n \"burst\",\n \"bus\",\n \"business\",\n \"busy\",\n \"butter\",\n \"buyer\",\n \"buzz\",\n \"cabbage\",\n \"cabin\",\n \"cable\",\n \"cactus\",\n \"cage\",\n \"cake\",\n \"call\",\n \"calm\",\n \"camera\",\n \"camp\",\n \"can\",\n \"canal\",\n \"cancel\",\n \"candy\",\n \"cannon\",\n \"canoe\",\n \"canvas\",\n \"canyon\",\n \"capable\",\n \"capital\",\n \"captain\",\n \"car\",\n \"carbon\",\n \"card\",\n \"cargo\",\n \"carpet\",\n \"carry\",\n \"cart\",\n \"case\",\n \"cash\",\n \"casino\",\n \"castle\",\n \"casual\",\n \"cat\",\n \"catalog\",\n \"catch\",\n \"category\",\n \"cattle\",\n \"caught\",\n \"cause\",\n \"caution\",\n \"cave\",\n \"ceiling\",\n \"celery\",\n \"cement\",\n \"census\",\n \"century\",\n \"cereal\",\n \"certain\",\n \"chair\",\n \"chalk\",\n \"champion\",\n \"change\",\n \"chaos\",\n \"chapter\",\n \"charge\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"check\",\n \"cheese\",\n \"chef\",\n \"cherry\",\n \"chest\",\n \"chicken\",\n \"chief\",\n \"child\",\n \"chimney\",\n \"choice\",\n \"choose\",\n \"chronic\",\n \"chuckle\",\n \"chunk\",\n \"churn\",\n \"cigar\",\n \"cinnamon\",\n \"circle\",\n \"citizen\",\n \"city\",\n \"civil\",\n \"claim\",\n \"clap\",\n \"clarify\",\n \"claw\",\n \"clay\",\n \"clean\",\n \"clerk\",\n \"clever\",\n \"click\",\n \"client\",\n \"cliff\",\n \"climb\",\n \"clinic\",\n \"clip\",\n \"clock\",\n \"clog\",\n \"close\",\n \"cloth\",\n \"cloud\",\n \"clown\",\n \"club\",\n \"clump\",\n \"cluster\",\n \"clutch\",\n \"coach\",\n \"coast\",\n \"coconut\",\n \"code\",\n \"coffee\",\n \"coil\",\n \"coin\",\n \"collect\",\n \"color\",\n \"column\",\n \"combine\",\n \"come\",\n \"comfort\",\n \"comic\",\n \"common\",\n \"company\",\n \"concert\",\n \"conduct\",\n \"confirm\",\n \"congress\",\n \"connect\",\n \"consider\",\n \"control\",\n \"convince\",\n \"cook\",\n \"cool\",\n \"copper\",\n \"copy\",\n \"coral\",\n \"core\",\n \"corn\",\n \"correct\",\n \"cost\",\n \"cotton\",\n \"couch\",\n \"country\",\n \"couple\",\n \"course\",\n \"cousin\",\n \"cover\",\n \"coyote\",\n \"crack\",\n \"cradle\",\n \"craft\",\n \"cram\",\n \"crane\",\n \"crash\",\n \"crater\",\n \"crawl\",\n \"crazy\",\n \"cream\",\n \"credit\",\n \"creek\",\n \"crew\",\n \"cricket\",\n \"crime\",\n \"crisp\",\n \"critic\",\n \"crop\",\n \"cross\",\n \"crouch\",\n \"crowd\",\n \"crucial\",\n \"cruel\",\n \"cruise\",\n \"crumble\",\n \"crunch\",\n \"crush\",\n \"cry\",\n \"crystal\",\n \"cube\",\n \"culture\",\n \"cup\",\n \"cupboard\",\n \"curious\",\n \"current\",\n \"curtain\",\n \"curve\",\n \"cushion\",\n \"custom\",\n \"cute\",\n \"cycle\",\n \"dad\",\n \"damage\",\n \"damp\",\n \"dance\",\n \"danger\",\n \"daring\",\n \"dash\",\n \"daughter\",\n \"dawn\",\n \"day\",\n \"deal\",\n \"debate\",\n \"debris\",\n \"decade\",\n \"december\",\n \"decide\",\n \"decline\",\n \"decorate\",\n \"decrease\",\n \"deer\",\n \"defense\",\n \"define\",\n \"defy\",\n \"degree\",\n \"delay\",\n \"deliver\",\n \"demand\",\n \"demise\",\n \"denial\",\n \"dentist\",\n \"deny\",\n \"depart\",\n \"depend\",\n \"deposit\",\n \"depth\",\n \"deputy\",\n \"derive\",\n \"describe\",\n \"desert\",\n \"design\",\n \"desk\",\n \"despair\",\n \"destroy\",\n \"detail\",\n \"detect\",\n \"develop\",\n \"device\",\n \"devote\",\n \"diagram\",\n \"dial\",\n \"diamond\",\n \"diary\",\n \"dice\",\n \"diesel\",\n \"diet\",\n \"differ\",\n \"digital\",\n \"dignity\",\n \"dilemma\",\n \"dinner\",\n \"dinosaur\",\n \"direct\",\n \"dirt\",\n \"disagree\",\n \"discover\",\n \"disease\",\n \"dish\",\n \"dismiss\",\n \"disorder\",\n \"display\",\n \"distance\",\n \"divert\",\n \"divide\",\n \"divorce\",\n \"dizzy\",\n \"doctor\",\n \"document\",\n \"dog\",\n \"doll\",\n \"dolphin\",\n \"domain\",\n \"donate\",\n \"donkey\",\n \"donor\",\n \"door\",\n \"dose\",\n \"double\",\n \"dove\",\n \"draft\",\n \"dragon\",\n \"drama\",\n \"drastic\",\n \"draw\",\n \"dream\",\n \"dress\",\n \"drift\",\n \"drill\",\n \"drink\",\n \"drip\",\n \"drive\",\n \"drop\",\n \"drum\",\n \"dry\",\n \"duck\",\n \"dumb\",\n \"dune\",\n \"during\",\n \"dust\",\n \"dutch\",\n \"duty\",\n \"dwarf\",\n \"dynamic\",\n \"eager\",\n \"eagle\",\n \"early\",\n \"earn\",\n \"earth\",\n \"easily\",\n \"east\",\n \"easy\",\n \"echo\",\n \"ecology\",\n \"economy\",\n \"edge\",\n \"edit\",\n \"educate\",\n \"effort\",\n \"egg\",\n \"eight\",\n \"either\",\n \"elbow\",\n \"elder\",\n \"electric\",\n \"elegant\",\n \"element\",\n \"elephant\",\n \"elevator\",\n \"elite\",\n \"else\",\n \"embark\",\n \"embody\",\n \"embrace\",\n \"emerge\",\n \"emotion\",\n \"employ\",\n \"empower\",\n \"empty\",\n \"enable\",\n \"enact\",\n \"end\",\n \"endless\",\n \"endorse\",\n \"enemy\",\n \"energy\",\n \"enforce\",\n \"engage\",\n \"engine\",\n \"enhance\",\n \"enjoy\",\n \"enlist\",\n \"enough\",\n \"enrich\",\n \"enroll\",\n \"ensure\",\n \"enter\",\n \"entire\",\n \"entry\",\n \"envelope\",\n \"episode\",\n \"equal\",\n \"equip\",\n \"era\",\n \"erase\",\n \"erode\",\n \"erosion\",\n \"error\",\n \"erupt\",\n \"escape\",\n \"essay\",\n \"essence\",\n \"estate\",\n \"eternal\",\n \"ethics\",\n \"evidence\",\n \"evil\",\n \"evoke\",\n \"evolve\",\n \"exact\",\n \"example\",\n \"excess\",\n \"exchange\",\n \"excite\",\n \"exclude\",\n \"excuse\",\n \"execute\",\n \"exercise\",\n \"exhaust\",\n \"exhibit\",\n \"exile\",\n \"exist\",\n \"exit\",\n \"exotic\",\n \"expand\",\n \"expect\",\n \"expire\",\n \"explain\",\n \"expose\",\n \"express\",\n \"extend\",\n \"extra\",\n \"eye\",\n \"eyebrow\",\n \"fabric\",\n \"face\",\n \"faculty\",\n \"fade\",\n \"faint\",\n \"faith\",\n \"fall\",\n \"false\",\n \"fame\",\n \"family\",\n \"famous\",\n \"fan\",\n \"fancy\",\n \"fantasy\",\n \"farm\",\n \"fashion\",\n \"fat\",\n \"fatal\",\n \"father\",\n \"fatigue\",\n \"fault\",\n \"favorite\",\n \"feature\",\n \"february\",\n \"federal\",\n \"fee\",\n \"feed\",\n \"feel\",\n \"female\",\n \"fence\",\n \"festival\",\n \"fetch\",\n \"fever\",\n \"few\",\n \"fiber\",\n \"fiction\",\n \"field\",\n \"figure\",\n \"file\",\n \"film\",\n \"filter\",\n \"final\",\n \"find\",\n \"fine\",\n \"finger\",\n \"finish\",\n \"fire\",\n \"firm\",\n \"first\",\n \"fiscal\",\n \"fish\",\n \"fit\",\n \"fitness\",\n \"fix\",\n \"flag\",\n \"flame\",\n \"flash\",\n \"flat\",\n \"flavor\",\n \"flee\",\n \"flight\",\n \"flip\",\n \"float\",\n \"flock\",\n \"floor\",\n \"flower\",\n \"fluid\",\n \"flush\",\n \"fly\",\n \"foam\",\n \"focus\",\n \"fog\",\n \"foil\",\n \"fold\",\n \"follow\",\n \"food\",\n \"foot\",\n \"force\",\n \"forest\",\n \"forget\",\n \"fork\",\n \"fortune\",\n \"forum\",\n \"forward\",\n \"fossil\",\n \"foster\",\n \"found\",\n \"fox\",\n \"fragile\",\n \"frame\",\n \"frequent\",\n \"fresh\",\n \"friend\",\n \"fringe\",\n \"frog\",\n \"front\",\n \"frost\",\n \"frown\",\n \"frozen\",\n \"fruit\",\n \"fuel\",\n \"fun\",\n \"funny\",\n \"furnace\",\n \"fury\",\n \"future\",\n \"gadget\",\n \"gain\",\n \"galaxy\",\n \"gallery\",\n \"game\",\n \"gap\",\n \"garage\",\n \"garbage\",\n \"garden\",\n \"garlic\",\n \"garment\",\n \"gas\",\n \"gasp\",\n \"gate\",\n \"gather\",\n \"gauge\",\n \"gaze\",\n \"general\",\n \"genius\",\n \"genre\",\n \"gentle\",\n \"genuine\",\n \"gesture\",\n \"ghost\",\n \"giant\",\n \"gift\",\n \"giggle\",\n \"ginger\",\n \"giraffe\",\n \"girl\",\n \"give\",\n \"glad\",\n \"glance\",\n \"glare\",\n \"glass\",\n \"glide\",\n \"glimpse\",\n \"globe\",\n \"gloom\",\n \"glory\",\n \"glove\",\n \"glow\",\n \"glue\",\n \"goat\",\n \"goddess\",\n \"gold\",\n \"good\",\n \"goose\",\n \"gorilla\",\n \"gospel\",\n \"gossip\",\n \"govern\",\n \"gown\",\n \"grab\",\n \"grace\",\n \"grain\",\n \"grant\",\n \"grape\",\n \"grass\",\n \"gravity\",\n \"great\",\n \"green\",\n \"grid\",\n \"grief\",\n \"grit\",\n \"grocery\",\n \"group\",\n \"grow\",\n \"grunt\",\n \"guard\",\n \"guess\",\n \"guide\",\n \"guilt\",\n \"guitar\",\n \"gun\",\n \"gym\",\n \"habit\",\n \"hair\",\n \"half\",\n \"hammer\",\n \"hamster\",\n \"hand\",\n \"happy\",\n \"harbor\",\n \"hard\",\n \"harsh\",\n \"harvest\",\n \"hat\",\n \"have\",\n \"hawk\",\n \"hazard\",\n \"head\",\n \"health\",\n \"heart\",\n \"heavy\",\n \"hedgehog\",\n \"height\",\n \"hello\",\n \"helmet\",\n \"help\",\n \"hen\",\n \"hero\",\n \"hidden\",\n \"high\",\n \"hill\",\n \"hint\",\n \"hip\",\n \"hire\",\n \"history\",\n \"hobby\",\n \"hockey\",\n \"hold\",\n \"hole\",\n \"holiday\",\n \"hollow\",\n \"home\",\n \"honey\",\n \"hood\",\n \"hope\",\n \"horn\",\n \"horror\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hotel\",\n \"hour\",\n \"hover\",\n \"hub\",\n \"huge\",\n \"human\",\n \"humble\",\n \"humor\",\n \"hundred\",\n \"hungry\",\n \"hunt\",\n \"hurdle\",\n \"hurry\",\n \"hurt\",\n \"husband\",\n \"hybrid\",\n \"ice\",\n \"icon\",\n \"idea\",\n \"identify\",\n \"idle\",\n \"ignore\",\n \"ill\",\n \"illegal\",\n \"illness\",\n \"image\",\n \"imitate\",\n \"immense\",\n \"immune\",\n \"impact\",\n \"impose\",\n \"improve\",\n \"impulse\",\n \"inch\",\n \"include\",\n \"income\",\n \"increase\",\n \"index\",\n \"indicate\",\n \"indoor\",\n \"industry\",\n \"infant\",\n \"inflict\",\n \"inform\",\n \"inhale\",\n \"inherit\",\n \"initial\",\n \"inject\",\n \"injury\",\n \"inmate\",\n \"inner\",\n \"innocent\",\n \"input\",\n \"inquiry\",\n \"insane\",\n \"insect\",\n \"inside\",\n \"inspire\",\n \"install\",\n \"intact\",\n \"interest\",\n \"into\",\n \"invest\",\n \"invite\",\n \"involve\",\n \"iron\",\n \"island\",\n \"isolate\",\n \"issue\",\n \"item\",\n \"ivory\",\n \"jacket\",\n \"jaguar\",\n \"jar\",\n \"jazz\",\n \"jealous\",\n \"jeans\",\n \"jelly\",\n \"jewel\",\n \"job\",\n \"join\",\n \"joke\",\n \"journey\",\n \"joy\",\n \"judge\",\n \"juice\",\n \"jump\",\n \"jungle\",\n \"junior\",\n \"junk\",\n \"just\",\n \"kangaroo\",\n \"keen\",\n \"keep\",\n \"ketchup\",\n \"key\",\n \"kick\",\n \"kid\",\n \"kidney\",\n \"kind\",\n \"kingdom\",\n \"kiss\",\n \"kit\",\n \"kitchen\",\n \"kite\",\n \"kitten\",\n \"kiwi\",\n \"knee\",\n \"knife\",\n \"knock\",\n \"know\",\n \"lab\",\n \"label\",\n \"labor\",\n \"ladder\",\n \"lady\",\n \"lake\",\n \"lamp\",\n \"language\",\n \"laptop\",\n \"large\",\n \"later\",\n \"latin\",\n \"laugh\",\n \"laundry\",\n \"lava\",\n \"law\",\n \"lawn\",\n \"lawsuit\",\n \"layer\",\n \"lazy\",\n \"leader\",\n \"leaf\",\n \"learn\",\n \"leave\",\n \"lecture\",\n \"left\",\n \"leg\",\n \"legal\",\n \"legend\",\n \"leisure\",\n \"lemon\",\n \"lend\",\n \"length\",\n \"lens\",\n \"leopard\",\n \"lesson\",\n \"letter\",\n \"level\",\n \"liar\",\n \"liberty\",\n \"library\",\n \"license\",\n \"life\",\n \"lift\",\n \"light\",\n \"like\",\n \"limb\",\n \"limit\",\n \"link\",\n \"lion\",\n \"liquid\",\n \"list\",\n \"little\",\n \"live\",\n \"lizard\",\n \"load\",\n \"loan\",\n \"lobster\",\n \"local\",\n \"lock\",\n \"logic\",\n \"lonely\",\n \"long\",\n \"loop\",\n \"lottery\",\n \"loud\",\n \"lounge\",\n \"love\",\n \"loyal\",\n \"lucky\",\n \"luggage\",\n \"lumber\",\n \"lunar\",\n \"lunch\",\n \"luxury\",\n \"lyrics\",\n \"machine\",\n \"mad\",\n \"magic\",\n \"magnet\",\n \"maid\",\n \"mail\",\n \"main\",\n \"major\",\n \"make\",\n \"mammal\",\n \"man\",\n \"manage\",\n \"mandate\",\n \"mango\",\n \"mansion\",\n \"manual\",\n \"maple\",\n \"marble\",\n \"march\",\n \"margin\",\n \"marine\",\n \"market\",\n \"marriage\",\n \"mask\",\n \"mass\",\n \"master\",\n \"match\",\n \"material\",\n \"math\",\n \"matrix\",\n \"matter\",\n \"maximum\",\n \"maze\",\n \"meadow\",\n \"mean\",\n \"measure\",\n \"meat\",\n \"mechanic\",\n \"medal\",\n \"media\",\n \"melody\",\n \"melt\",\n \"member\",\n \"memory\",\n \"mention\",\n \"menu\",\n \"mercy\",\n \"merge\",\n \"merit\",\n \"merry\",\n \"mesh\",\n \"message\",\n \"metal\",\n \"method\",\n \"middle\",\n \"midnight\",\n \"milk\",\n \"million\",\n \"mimic\",\n \"mind\",\n \"minimum\",\n \"minor\",\n \"minute\",\n \"miracle\",\n \"mirror\",\n \"misery\",\n \"miss\",\n \"mistake\",\n \"mix\",\n \"mixed\",\n \"mixture\",\n \"mobile\",\n \"model\",\n \"modify\",\n \"mom\",\n \"moment\",\n \"monitor\",\n \"monkey\",\n \"monster\",\n \"month\",\n \"moon\",\n \"moral\",\n \"more\",\n \"morning\",\n \"mosquito\",\n \"mother\",\n \"motion\",\n \"motor\",\n \"mountain\",\n \"mouse\",\n \"move\",\n \"movie\",\n \"much\",\n \"muffin\",\n \"mule\",\n \"multiply\",\n \"muscle\",\n \"museum\",\n \"mushroom\",\n \"music\",\n \"must\",\n \"mutual\",\n \"myself\",\n \"mystery\",\n \"myth\",\n \"naive\",\n \"name\",\n \"napkin\",\n \"narrow\",\n \"nasty\",\n \"nation\",\n \"nature\",\n \"near\",\n \"neck\",\n \"need\",\n \"negative\",\n \"neglect\",\n \"neither\",\n \"nephew\",\n \"nerve\",\n \"nest\",\n \"net\",\n \"network\",\n \"neutral\",\n \"never\",\n \"news\",\n \"next\",\n \"nice\",\n \"night\",\n \"noble\",\n \"noise\",\n \"nominee\",\n \"noodle\",\n \"normal\",\n \"north\",\n \"nose\",\n \"notable\",\n \"note\",\n \"nothing\",\n \"notice\",\n \"novel\",\n \"now\",\n \"nuclear\",\n \"number\",\n \"nurse\",\n \"nut\",\n \"oak\",\n \"obey\",\n \"object\",\n \"oblige\",\n \"obscure\",\n \"observe\",\n \"obtain\",\n \"obvious\",\n \"occur\",\n \"ocean\",\n \"october\",\n \"odor\",\n \"off\",\n \"offer\",\n \"office\",\n \"often\",\n \"oil\",\n \"okay\",\n \"old\",\n \"olive\",\n \"olympic\",\n \"omit\",\n \"once\",\n \"one\",\n \"onion\",\n \"online\",\n \"only\",\n \"open\",\n \"opera\",\n \"opinion\",\n \"oppose\",\n \"option\",\n \"orange\",\n \"orbit\",\n \"orchard\",\n \"order\",\n \"ordinary\",\n \"organ\",\n \"orient\",\n \"original\",\n \"orphan\",\n \"ostrich\",\n \"other\",\n \"outdoor\",\n \"outer\",\n \"output\",\n \"outside\",\n \"oval\",\n \"oven\",\n \"over\",\n \"own\",\n \"owner\",\n \"oxygen\",\n \"oyster\",\n \"ozone\",\n \"pact\",\n \"paddle\",\n \"page\",\n \"pair\",\n \"palace\",\n \"palm\",\n \"panda\",\n \"panel\",\n \"panic\",\n \"panther\",\n \"paper\",\n \"parade\",\n \"parent\",\n \"park\",\n \"parrot\",\n \"party\",\n \"pass\",\n \"patch\",\n \"path\",\n \"patient\",\n \"patrol\",\n \"pattern\",\n \"pause\",\n \"pave\",\n \"payment\",\n \"peace\",\n \"peanut\",\n \"pear\",\n \"peasant\",\n \"pelican\",\n \"pen\",\n \"penalty\",\n \"pencil\",\n \"people\",\n \"pepper\",\n \"perfect\",\n \"permit\",\n \"person\",\n \"pet\",\n \"phone\",\n \"photo\",\n \"phrase\",\n \"physical\",\n \"piano\",\n \"picnic\",\n \"picture\",\n \"piece\",\n \"pig\",\n \"pigeon\",\n \"pill\",\n \"pilot\",\n \"pink\",\n \"pioneer\",\n \"pipe\",\n \"pistol\",\n \"pitch\",\n \"pizza\",\n \"place\",\n \"planet\",\n \"plastic\",\n \"plate\",\n \"play\",\n \"please\",\n \"pledge\",\n \"pluck\",\n \"plug\",\n \"plunge\",\n \"poem\",\n \"poet\",\n \"point\",\n \"polar\",\n \"pole\",\n \"police\",\n \"pond\",\n \"pony\",\n \"pool\",\n \"popular\",\n \"portion\",\n \"position\",\n \"possible\",\n \"post\",\n \"potato\",\n \"pottery\",\n \"poverty\",\n \"powder\",\n \"power\",\n \"practice\",\n \"praise\",\n \"predict\",\n \"prefer\",\n \"prepare\",\n \"present\",\n \"pretty\",\n \"prevent\",\n \"price\",\n \"pride\",\n \"primary\",\n \"print\",\n \"priority\",\n \"prison\",\n \"private\",\n \"prize\",\n \"problem\",\n \"process\",\n \"produce\",\n \"profit\",\n \"program\",\n \"project\",\n \"promote\",\n \"proof\",\n \"property\",\n \"prosper\",\n \"protect\",\n \"proud\",\n \"provide\",\n \"public\",\n \"pudding\",\n \"pull\",\n \"pulp\",\n \"pulse\",\n \"pumpkin\",\n \"punch\",\n \"pupil\",\n \"puppy\",\n \"purchase\",\n \"purity\",\n \"purpose\",\n \"purse\",\n \"push\",\n \"put\",\n \"puzzle\",\n \"pyramid\",\n \"quality\",\n \"quantum\",\n \"quarter\",\n \"question\",\n \"quick\",\n \"quit\",\n \"quiz\",\n \"quote\",\n \"rabbit\",\n \"raccoon\",\n \"race\",\n \"rack\",\n \"radar\",\n \"radio\",\n \"rail\",\n \"rain\",\n \"raise\",\n \"rally\",\n \"ramp\",\n \"ranch\",\n \"random\",\n \"range\",\n \"rapid\",\n \"rare\",\n \"rate\",\n \"rather\",\n \"raven\",\n \"raw\",\n \"razor\",\n \"ready\",\n \"real\",\n \"reason\",\n \"rebel\",\n \"rebuild\",\n \"recall\",\n \"receive\",\n \"recipe\",\n \"record\",\n \"recycle\",\n \"reduce\",\n \"reflect\",\n \"reform\",\n \"refuse\",\n \"region\",\n \"regret\",\n \"regular\",\n \"reject\",\n \"relax\",\n \"release\",\n \"relief\",\n \"rely\",\n \"remain\",\n \"remember\",\n \"remind\",\n \"remove\",\n \"render\",\n \"renew\",\n \"rent\",\n \"reopen\",\n \"repair\",\n \"repeat\",\n \"replace\",\n \"report\",\n \"require\",\n \"rescue\",\n \"resemble\",\n \"resist\",\n \"resource\",\n \"response\",\n \"result\",\n \"retire\",\n \"retreat\",\n \"return\",\n \"reunion\",\n \"reveal\",\n \"review\",\n \"reward\",\n \"rhythm\",\n \"rib\",\n \"ribbon\",\n \"rice\",\n \"rich\",\n \"ride\",\n \"ridge\",\n \"rifle\",\n \"right\",\n \"rigid\",\n \"ring\",\n \"riot\",\n \"ripple\",\n \"risk\",\n \"ritual\",\n \"rival\",\n \"river\",\n \"road\",\n \"roast\",\n \"robot\",\n \"robust\",\n \"rocket\",\n \"romance\",\n \"roof\",\n \"rookie\",\n \"room\",\n \"rose\",\n \"rotate\",\n \"rough\",\n \"round\",\n \"route\",\n \"royal\",\n \"rubber\",\n \"rude\",\n \"rug\",\n \"rule\",\n \"run\",\n \"runway\",\n \"rural\",\n \"sad\",\n \"saddle\",\n \"sadness\",\n \"safe\",\n \"sail\",\n \"salad\",\n \"salmon\",\n \"salon\",\n \"salt\",\n \"salute\",\n \"same\",\n \"sample\",\n \"sand\",\n \"satisfy\",\n \"satoshi\",\n \"sauce\",\n \"sausage\",\n \"save\",\n \"say\",\n \"scale\",\n \"scan\",\n \"scare\",\n \"scatter\",\n \"scene\",\n \"scheme\",\n \"school\",\n \"science\",\n \"scissors\",\n \"scorpion\",\n \"scout\",\n \"scrap\",\n \"screen\",\n \"script\",\n \"scrub\",\n \"sea\",\n \"search\",\n \"season\",\n \"seat\",\n \"second\",\n \"secret\",\n \"section\",\n \"security\",\n \"seed\",\n \"seek\",\n \"segment\",\n \"select\",\n \"sell\",\n \"seminar\",\n \"senior\",\n \"sense\",\n \"sentence\",\n \"series\",\n \"service\",\n \"session\",\n \"settle\",\n \"setup\",\n \"seven\",\n \"shadow\",\n \"shaft\",\n \"shallow\",\n \"share\",\n \"shed\",\n \"shell\",\n \"sheriff\",\n \"shield\",\n \"shift\",\n \"shine\",\n \"ship\",\n \"shiver\",\n \"shock\",\n \"shoe\",\n \"shoot\",\n \"shop\",\n \"short\",\n \"shoulder\",\n \"shove\",\n \"shrimp\",\n \"shrug\",\n \"shuffle\",\n \"shy\",\n \"sibling\",\n \"sick\",\n \"side\",\n \"siege\",\n \"sight\",\n \"sign\",\n \"silent\",\n \"silk\",\n \"silly\",\n \"silver\",\n \"similar\",\n \"simple\",\n \"since\",\n \"sing\",\n \"siren\",\n \"sister\",\n \"situate\",\n \"six\",\n \"size\",\n \"skate\",\n \"sketch\",\n \"ski\",\n \"skill\",\n \"skin\",\n \"skirt\",\n \"skull\",\n \"slab\",\n \"slam\",\n \"sleep\",\n \"slender\",\n \"slice\",\n \"slide\",\n \"slight\",\n \"slim\",\n \"slogan\",\n \"slot\",\n \"slow\",\n \"slush\",\n \"small\",\n \"smart\",\n \"smile\",\n \"smoke\",\n \"smooth\",\n \"snack\",\n \"snake\",\n \"snap\",\n \"sniff\",\n \"snow\",\n \"soap\",\n \"soccer\",\n \"social\",\n \"sock\",\n \"soda\",\n \"soft\",\n \"solar\",\n \"soldier\",\n \"solid\",\n \"solution\",\n \"solve\",\n \"someone\",\n \"song\",\n \"soon\",\n \"sorry\",\n \"sort\",\n \"soul\",\n \"sound\",\n \"soup\",\n \"source\",\n \"south\",\n \"space\",\n \"spare\",\n \"spatial\",\n \"spawn\",\n \"speak\",\n \"special\",\n \"speed\",\n \"spell\",\n \"spend\",\n \"sphere\",\n \"spice\",\n \"spider\",\n \"spike\",\n \"spin\",\n \"spirit\",\n \"split\",\n \"spoil\",\n \"sponsor\",\n \"spoon\",\n \"sport\",\n \"spot\",\n \"spray\",\n \"spread\",\n \"spring\",\n \"spy\",\n \"square\",\n \"squeeze\",\n \"squirrel\",\n \"stable\",\n \"stadium\",\n \"staff\",\n \"stage\",\n \"stairs\",\n \"stamp\",\n \"stand\",\n \"start\",\n \"state\",\n \"stay\",\n \"steak\",\n \"steel\",\n \"stem\",\n \"step\",\n \"stereo\",\n \"stick\",\n \"still\",\n \"sting\",\n \"stock\",\n \"stomach\",\n \"stone\",\n \"stool\",\n \"story\",\n \"stove\",\n \"strategy\",\n \"street\",\n \"strike\",\n \"strong\",\n \"struggle\",\n \"student\",\n \"stuff\",\n \"stumble\",\n \"style\",\n \"subject\",\n \"submit\",\n \"subway\",\n \"success\",\n \"such\",\n \"sudden\",\n \"suffer\",\n \"sugar\",\n \"suggest\",\n \"suit\",\n \"summer\",\n \"sun\",\n \"sunny\",\n \"sunset\",\n \"super\",\n \"supply\",\n \"supreme\",\n \"sure\",\n \"surface\",\n \"surge\",\n \"surprise\",\n \"surround\",\n \"survey\",\n \"suspect\",\n \"sustain\",\n \"swallow\",\n \"swamp\",\n \"swap\",\n \"swarm\",\n \"swear\",\n \"sweet\",\n \"swift\",\n \"swim\",\n \"swing\",\n \"switch\",\n \"sword\",\n \"symbol\",\n \"symptom\",\n \"syrup\",\n \"system\",\n \"table\",\n \"tackle\",\n \"tag\",\n \"tail\",\n \"talent\",\n \"talk\",\n \"tank\",\n \"tape\",\n \"target\",\n \"task\",\n \"taste\",\n \"tattoo\",\n \"taxi\",\n \"teach\",\n \"team\",\n \"tell\",\n \"ten\",\n \"tenant\",\n \"tennis\",\n \"tent\",\n \"term\",\n \"test\",\n \"text\",\n \"thank\",\n \"that\",\n \"theme\",\n \"then\",\n \"theory\",\n \"there\",\n \"they\",\n \"thing\",\n \"this\",\n \"thought\",\n \"three\",\n \"thrive\",\n \"throw\",\n \"thumb\",\n \"thunder\",\n \"ticket\",\n \"tide\",\n \"tiger\",\n \"tilt\",\n \"timber\",\n \"time\",\n \"tiny\",\n \"tip\",\n \"tired\",\n \"tissue\",\n \"title\",\n \"toast\",\n \"tobacco\",\n \"today\",\n \"toddler\",\n \"toe\",\n \"together\",\n \"toilet\",\n \"token\",\n \"tomato\",\n \"tomorrow\",\n \"tone\",\n \"tongue\",\n \"tonight\",\n \"tool\",\n \"tooth\",\n \"top\",\n \"topic\",\n \"topple\",\n \"torch\",\n \"tornado\",\n \"tortoise\",\n \"toss\",\n \"total\",\n \"tourist\",\n \"toward\",\n \"tower\",\n \"town\",\n \"toy\",\n \"track\",\n \"trade\",\n \"traffic\",\n \"tragic\",\n \"train\",\n \"transfer\",\n \"trap\",\n \"trash\",\n \"travel\",\n \"tray\",\n \"treat\",\n \"tree\",\n \"trend\",\n \"trial\",\n \"tribe\",\n \"trick\",\n \"trigger\",\n \"trim\",\n \"trip\",\n \"trophy\",\n \"trouble\",\n \"truck\",\n \"true\",\n \"truly\",\n \"trumpet\",\n \"trust\",\n \"truth\",\n \"try\",\n \"tube\",\n \"tuition\",\n \"tumble\",\n \"tuna\",\n \"tunnel\",\n \"turkey\",\n \"turn\",\n \"turtle\",\n \"twelve\",\n \"twenty\",\n \"twice\",\n \"twin\",\n \"twist\",\n \"two\",\n \"type\",\n \"typical\",\n \"ugly\",\n \"umbrella\",\n \"unable\",\n \"unaware\",\n \"uncle\",\n \"uncover\",\n \"under\",\n \"undo\",\n \"unfair\",\n \"unfold\",\n \"unhappy\",\n \"uniform\",\n \"unique\",\n \"unit\",\n \"universe\",\n \"unknown\",\n \"unlock\",\n \"until\",\n \"unusual\",\n \"unveil\",\n \"update\",\n \"upgrade\",\n \"uphold\",\n \"upon\",\n \"upper\",\n \"upset\",\n \"urban\",\n \"urge\",\n \"usage\",\n \"use\",\n \"used\",\n \"useful\",\n \"useless\",\n \"usual\",\n \"utility\",\n \"vacant\",\n \"vacuum\",\n \"vague\",\n \"valid\",\n \"valley\",\n \"valve\",\n \"van\",\n \"vanish\",\n \"vapor\",\n \"various\",\n \"vast\",\n \"vault\",\n \"vehicle\",\n \"velvet\",\n \"vendor\",\n \"venture\",\n \"venue\",\n \"verb\",\n \"verify\",\n \"version\",\n \"very\",\n \"vessel\",\n \"veteran\",\n \"viable\",\n \"vibrant\",\n \"vicious\",\n \"victory\",\n \"video\",\n \"view\",\n \"village\",\n \"vintage\",\n \"violin\",\n \"virtual\",\n \"virus\",\n \"visa\",\n \"visit\",\n \"visual\",\n \"vital\",\n \"vivid\",\n \"vocal\",\n \"voice\",\n \"void\",\n \"volcano\",\n \"volume\",\n \"vote\",\n \"voyage\",\n \"wage\",\n \"wagon\",\n \"wait\",\n \"walk\",\n \"wall\",\n \"walnut\",\n \"want\",\n \"warfare\",\n \"warm\",\n \"warrior\",\n \"wash\",\n \"wasp\",\n \"waste\",\n \"water\",\n \"wave\",\n \"way\",\n \"wealth\",\n \"weapon\",\n \"wear\",\n \"weasel\",\n \"weather\",\n \"web\",\n \"wedding\",\n \"weekend\",\n \"weird\",\n \"welcome\",\n \"west\",\n \"wet\",\n \"whale\",\n \"what\",\n \"wheat\",\n \"wheel\",\n \"when\",\n \"where\",\n \"whip\",\n \"whisper\",\n \"wide\",\n \"width\",\n \"wife\",\n \"wild\",\n \"will\",\n \"win\",\n \"window\",\n \"wine\",\n \"wing\",\n \"wink\",\n \"winner\",\n \"winter\",\n \"wire\",\n \"wisdom\",\n \"wise\",\n \"wish\",\n \"witness\",\n \"wolf\",\n \"woman\",\n \"wonder\",\n \"wood\",\n \"wool\",\n \"word\",\n \"work\",\n \"world\",\n \"worry\",\n \"worth\",\n \"wrap\",\n \"wreck\",\n \"wrestle\",\n \"wrist\",\n \"write\",\n \"wrong\",\n \"yard\",\n \"year\",\n \"yellow\",\n \"you\",\n \"young\",\n \"youth\",\n \"zebra\",\n \"zero\",\n \"zone\",\n \"zoo\",\n];\nfunction bytesToBitstring(bytes) {\n return Array.from(bytes)\n .map((byte) => byte.toString(2).padStart(8, \"0\"))\n .join(\"\");\n}\nfunction deriveChecksumBits(entropy) {\n const entropyLengthBits = entropy.length * 8; // \"ENT\" (in bits)\n const checksumLengthBits = entropyLengthBits / 32; // \"CS\" (in bits)\n const hash = (0, sha_1.sha256)(entropy);\n return bytesToBitstring(hash).slice(0, checksumLengthBits);\n}\nfunction bitstringToByte(bin) {\n return parseInt(bin, 2);\n}\nconst allowedEntropyLengths = [16, 20, 24, 28, 32];\nconst allowedWordLengths = [12, 15, 18, 21, 24];\nfunction entropyToMnemonic(entropy) {\n if (allowedEntropyLengths.indexOf(entropy.length) === -1) {\n throw new Error(\"invalid input length\");\n }\n const entropyBits = bytesToBitstring(entropy);\n const checksumBits = deriveChecksumBits(entropy);\n const bits = entropyBits + checksumBits;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const chunks = bits.match(/(.{11})/g);\n const words = chunks.map((binary) => {\n const index = bitstringToByte(binary);\n return wordlist[index];\n });\n return words.join(\" \");\n}\nexports.entropyToMnemonic = entropyToMnemonic;\nconst invalidNumberOfWorks = \"Invalid number of words\";\nconst wordNotInWordlist = \"Found word that is not in the wordlist\";\nconst invalidEntropy = \"Invalid entropy\";\nconst invalidChecksum = \"Invalid mnemonic checksum\";\nfunction normalize(str) {\n return str.normalize(\"NFKD\");\n}\nfunction mnemonicToEntropy(mnemonic) {\n const words = normalize(mnemonic).split(\" \");\n if (!allowedWordLengths.includes(words.length)) {\n throw new Error(invalidNumberOfWorks);\n }\n // convert word indices to 11 bit binary strings\n const bits = words\n .map((word) => {\n const index = wordlist.indexOf(word);\n if (index === -1) {\n throw new Error(wordNotInWordlist);\n }\n return index.toString(2).padStart(11, \"0\");\n })\n .join(\"\");\n // split the binary string into ENT/CS\n const dividerIndex = Math.floor(bits.length / 33) * 32;\n const entropyBits = bits.slice(0, dividerIndex);\n const checksumBits = bits.slice(dividerIndex);\n // calculate the checksum and compare\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const entropyBytes = entropyBits.match(/(.{1,8})/g).map(bitstringToByte);\n if (entropyBytes.length < 16 || entropyBytes.length > 32 || entropyBytes.length % 4 !== 0) {\n throw new Error(invalidEntropy);\n }\n const entropy = Uint8Array.from(entropyBytes);\n const newChecksum = deriveChecksumBits(entropy);\n if (newChecksum !== checksumBits) {\n throw new Error(invalidChecksum);\n }\n return entropy;\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\nclass EnglishMnemonic {\n constructor(mnemonic) {\n if (!EnglishMnemonic.mnemonicMatcher.test(mnemonic)) {\n throw new Error(\"Invalid mnemonic format\");\n }\n const words = mnemonic.split(\" \");\n const allowedWordsLengths = [12, 15, 18, 21, 24];\n if (allowedWordsLengths.indexOf(words.length) === -1) {\n throw new Error(`Invalid word count in mnemonic (allowed: ${allowedWordsLengths} got: ${words.length})`);\n }\n for (const word of words) {\n if (EnglishMnemonic.wordlist.indexOf(word) === -1) {\n throw new Error(\"Mnemonic contains invalid word\");\n }\n }\n // Throws with informative error message if mnemonic is not valid\n mnemonicToEntropy(mnemonic);\n this.data = mnemonic;\n }\n toString() {\n return this.data;\n }\n}\nexports.EnglishMnemonic = EnglishMnemonic;\nEnglishMnemonic.wordlist = wordlist;\n// list of space separated lower case words (1 or more)\nEnglishMnemonic.mnemonicMatcher = /^[a-z]+( [a-z]+)*$/;\nclass Bip39 {\n /**\n * Encodes raw entropy of length 16, 20, 24, 28 or 32 bytes as an English mnemonic between 12 and 24 words.\n *\n * | Entropy | Words |\n * |--------------------|-------|\n * | 128 bit (16 bytes) | 12 |\n * | 160 bit (20 bytes) | 15 |\n * | 192 bit (24 bytes) | 18 |\n * | 224 bit (28 bytes) | 21 |\n * | 256 bit (32 bytes) | 24 |\n *\n *\n * @see https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#generating-the-mnemonic\n * @param entropy The entropy to be encoded. This must be cryptographically secure.\n */\n static encode(entropy) {\n return new EnglishMnemonic(entropyToMnemonic(entropy));\n }\n static decode(mnemonic) {\n return mnemonicToEntropy(mnemonic.toString());\n }\n static async mnemonicToSeed(mnemonic, password) {\n const mnemonicBytes = (0, encoding_1.toUtf8)(normalize(mnemonic.toString()));\n const salt = \"mnemonic\" + (password ? normalize(password) : \"\");\n const saltBytes = (0, encoding_1.toUtf8)(salt);\n return (0, pbkdf2_1.pbkdf2Sha512)(mnemonicBytes, saltBytes, 2048, 64);\n }\n}\nexports.Bip39 = Bip39;\n//# sourceMappingURL=bip39.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hmac = void 0;\nclass Hmac {\n constructor(hashFunctionConstructor, originalKey) {\n // This implementation is based on https://en.wikipedia.org/wiki/HMAC#Implementation\n // with the addition of incremental hashing support. Thus part of the algorithm\n // is in the constructor and the rest in digest().\n const blockSize = new hashFunctionConstructor().blockSize;\n this.hash = (data) => new hashFunctionConstructor().update(data).digest();\n let key = originalKey;\n if (key.length > blockSize) {\n key = this.hash(key);\n }\n if (key.length < blockSize) {\n const zeroPadding = new Uint8Array(blockSize - key.length);\n key = new Uint8Array([...key, ...zeroPadding]);\n }\n // eslint-disable-next-line no-bitwise\n this.oKeyPad = key.map((keyByte) => keyByte ^ 0x5c);\n // eslint-disable-next-line no-bitwise\n this.iKeyPad = key.map((keyByte) => keyByte ^ 0x36);\n this.messageHasher = new hashFunctionConstructor();\n this.blockSize = blockSize;\n this.update(this.iKeyPad);\n }\n update(data) {\n this.messageHasher.update(data);\n return this;\n }\n digest() {\n const innerHash = this.messageHasher.digest();\n return this.hash(new Uint8Array([...this.oKeyPad, ...innerHash]));\n }\n}\nexports.Hmac = Hmac;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringToPath = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = exports.Slip10 = exports.pathToString = exports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = exports.Secp256k1Signature = exports.ExtendedSecp256k1Signature = exports.Secp256k1 = exports.ripemd160 = exports.Ripemd160 = exports.Random = exports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.isArgon2idOptions = exports.Ed25519Keypair = exports.Ed25519 = exports.Argon2id = exports.keccak256 = exports.Keccak256 = exports.Hmac = exports.EnglishMnemonic = exports.Bip39 = void 0;\nvar bip39_1 = require(\"./bip39\");\nObject.defineProperty(exports, \"Bip39\", { enumerable: true, get: function () { return bip39_1.Bip39; } });\nObject.defineProperty(exports, \"EnglishMnemonic\", { enumerable: true, get: function () { return bip39_1.EnglishMnemonic; } });\nvar hmac_1 = require(\"./hmac\");\nObject.defineProperty(exports, \"Hmac\", { enumerable: true, get: function () { return hmac_1.Hmac; } });\nvar keccak_1 = require(\"./keccak\");\nObject.defineProperty(exports, \"Keccak256\", { enumerable: true, get: function () { return keccak_1.Keccak256; } });\nObject.defineProperty(exports, \"keccak256\", { enumerable: true, get: function () { return keccak_1.keccak256; } });\nvar libsodium_1 = require(\"./libsodium\");\nObject.defineProperty(exports, \"Argon2id\", { enumerable: true, get: function () { return libsodium_1.Argon2id; } });\nObject.defineProperty(exports, \"Ed25519\", { enumerable: true, get: function () { return libsodium_1.Ed25519; } });\nObject.defineProperty(exports, \"Ed25519Keypair\", { enumerable: true, get: function () { return libsodium_1.Ed25519Keypair; } });\nObject.defineProperty(exports, \"isArgon2idOptions\", { enumerable: true, get: function () { return libsodium_1.isArgon2idOptions; } });\nObject.defineProperty(exports, \"xchacha20NonceLength\", { enumerable: true, get: function () { return libsodium_1.xchacha20NonceLength; } });\nObject.defineProperty(exports, \"Xchacha20poly1305Ietf\", { enumerable: true, get: function () { return libsodium_1.Xchacha20poly1305Ietf; } });\nvar random_1 = require(\"./random\");\nObject.defineProperty(exports, \"Random\", { enumerable: true, get: function () { return random_1.Random; } });\nvar ripemd_1 = require(\"./ripemd\");\nObject.defineProperty(exports, \"Ripemd160\", { enumerable: true, get: function () { return ripemd_1.Ripemd160; } });\nObject.defineProperty(exports, \"ripemd160\", { enumerable: true, get: function () { return ripemd_1.ripemd160; } });\nvar secp256k1_1 = require(\"./secp256k1\");\nObject.defineProperty(exports, \"Secp256k1\", { enumerable: true, get: function () { return secp256k1_1.Secp256k1; } });\nvar secp256k1signature_1 = require(\"./secp256k1signature\");\nObject.defineProperty(exports, \"ExtendedSecp256k1Signature\", { enumerable: true, get: function () { return secp256k1signature_1.ExtendedSecp256k1Signature; } });\nObject.defineProperty(exports, \"Secp256k1Signature\", { enumerable: true, get: function () { return secp256k1signature_1.Secp256k1Signature; } });\nvar sha_1 = require(\"./sha\");\nObject.defineProperty(exports, \"Sha256\", { enumerable: true, get: function () { return sha_1.Sha256; } });\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha_1.sha256; } });\nObject.defineProperty(exports, \"Sha512\", { enumerable: true, get: function () { return sha_1.Sha512; } });\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha_1.sha512; } });\nvar slip10_1 = require(\"./slip10\");\nObject.defineProperty(exports, \"pathToString\", { enumerable: true, get: function () { return slip10_1.pathToString; } });\nObject.defineProperty(exports, \"Slip10\", { enumerable: true, get: function () { return slip10_1.Slip10; } });\nObject.defineProperty(exports, \"Slip10Curve\", { enumerable: true, get: function () { return slip10_1.Slip10Curve; } });\nObject.defineProperty(exports, \"slip10CurveFromString\", { enumerable: true, get: function () { return slip10_1.slip10CurveFromString; } });\nObject.defineProperty(exports, \"Slip10RawIndex\", { enumerable: true, get: function () { return slip10_1.Slip10RawIndex; } });\nObject.defineProperty(exports, \"stringToPath\", { enumerable: true, get: function () { return slip10_1.stringToPath; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keccak256 = exports.Keccak256 = void 0;\nconst sha3_1 = require(\"@noble/hashes/sha3\");\nconst utils_1 = require(\"./utils\");\nclass Keccak256 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = sha3_1.keccak_256.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Keccak256 = Keccak256;\n/** Convenience function equivalent to `new Keccak256(data).digest()` */\nfunction keccak256(data) {\n return new Keccak256(data).digest();\n}\nexports.keccak256 = keccak256;\n//# sourceMappingURL=keccak.js.map","\"use strict\";\n// Keep all classes requiring libsodium-js in one file as having multiple\n// requiring of the libsodium-wrappers module currently crashes browsers\n//\n// libsodium.js API: https://gist.github.com/webmaster128/b2dbe6d54d36dd168c9fabf441b9b09c\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Xchacha20poly1305Ietf = exports.xchacha20NonceLength = exports.Ed25519 = exports.Ed25519Keypair = exports.Argon2id = exports.isArgon2idOptions = void 0;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst libsodium_wrappers_1 = __importDefault(require(\"libsodium-wrappers\"));\nfunction isArgon2idOptions(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.outputLength !== \"number\")\n return false;\n if (typeof thing.opsLimit !== \"number\")\n return false;\n if (typeof thing.memLimitKib !== \"number\")\n return false;\n return true;\n}\nexports.isArgon2idOptions = isArgon2idOptions;\nclass Argon2id {\n static async execute(password, salt, options) {\n await libsodium_wrappers_1.default.ready;\n return libsodium_wrappers_1.default.crypto_pwhash(options.outputLength, password, salt, // libsodium only supports 16 byte salts and will throw when you don't respect that\n options.opsLimit, options.memLimitKib * 1024, libsodium_wrappers_1.default.crypto_pwhash_ALG_ARGON2ID13);\n }\n}\nexports.Argon2id = Argon2id;\nclass Ed25519Keypair {\n constructor(privkey, pubkey) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n }\n // a libsodium privkey has the format ` + `\n static fromLibsodiumPrivkey(libsodiumPrivkey) {\n if (libsodiumPrivkey.length !== 64) {\n throw new Error(`Unexpected key length ${libsodiumPrivkey.length}. Must be 64.`);\n }\n return new Ed25519Keypair(libsodiumPrivkey.slice(0, 32), libsodiumPrivkey.slice(32, 64));\n }\n toLibsodiumPrivkey() {\n return new Uint8Array([...this.privkey, ...this.pubkey]);\n }\n}\nexports.Ed25519Keypair = Ed25519Keypair;\nclass Ed25519 {\n /**\n * Generates a keypair deterministically from a given 32 bytes seed.\n *\n * This seed equals the Ed25519 private key.\n * For implementation details see crypto_sign_seed_keypair in\n * https://download.libsodium.org/doc/public-key_cryptography/public-key_signatures.html\n * and diagram on https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n static async makeKeypair(seed) {\n await libsodium_wrappers_1.default.ready;\n const keypair = libsodium_wrappers_1.default.crypto_sign_seed_keypair(seed);\n return Ed25519Keypair.fromLibsodiumPrivkey(keypair.privateKey);\n }\n static async createSignature(message, keyPair) {\n await libsodium_wrappers_1.default.ready;\n return libsodium_wrappers_1.default.crypto_sign_detached(message, keyPair.toLibsodiumPrivkey());\n }\n static async verifySignature(signature, message, pubkey) {\n await libsodium_wrappers_1.default.ready;\n return libsodium_wrappers_1.default.crypto_sign_verify_detached(signature, message, pubkey);\n }\n}\nexports.Ed25519 = Ed25519;\n/**\n * Nonce length in bytes for all flavours of XChaCha20.\n *\n * @see https://libsodium.gitbook.io/doc/advanced/stream_ciphers/xchacha20#notes\n */\nexports.xchacha20NonceLength = 24;\nclass Xchacha20poly1305Ietf {\n static async encrypt(message, key, nonce) {\n await libsodium_wrappers_1.default.ready;\n const additionalData = null;\n return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_encrypt(message, additionalData, null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction)\n nonce, key);\n }\n static async decrypt(ciphertext, key, nonce) {\n await libsodium_wrappers_1.default.ready;\n const additionalData = null;\n return libsodium_wrappers_1.default.crypto_aead_xchacha20poly1305_ietf_decrypt(null, // secret nonce: unused and should be null (https://download.libsodium.org/doc/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction)\n ciphertext, additionalData, nonce, key);\n }\n}\nexports.Xchacha20poly1305Ietf = Xchacha20poly1305Ietf;\n//# sourceMappingURL=libsodium.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2Sha512 = exports.pbkdf2Sha512Noble = exports.pbkdf2Sha512Crypto = exports.pbkdf2Sha512Subtle = exports.getSubtle = exports.getCryptoModule = void 0;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst pbkdf2_1 = require(\"@noble/hashes/pbkdf2\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\n/**\n * Returns the Node.js crypto module when available and `undefined`\n * otherwise.\n *\n * Detects an unimplemented fallback module from Webpack 5 and returns\n * `undefined` in that case.\n */\nasync function getCryptoModule() {\n try {\n const crypto = await Promise.resolve().then(() => __importStar(require(\"crypto\")));\n // We get `Object{default: Object{}}` as a fallback when using\n // `crypto: false` in Webpack 5, which we interprete as unavailable.\n if (typeof crypto === \"object\" && Object.keys(crypto).length <= 1) {\n return undefined;\n }\n return crypto;\n }\n catch (_a) {\n return undefined;\n }\n}\nexports.getCryptoModule = getCryptoModule;\nasync function getSubtle() {\n const g = globalThis;\n let subtle = g.crypto && g.crypto.subtle;\n if (!subtle) {\n const crypto = await getCryptoModule();\n if (crypto && crypto.webcrypto && crypto.webcrypto.subtle) {\n subtle = crypto.webcrypto.subtle;\n }\n }\n return subtle;\n}\nexports.getSubtle = getSubtle;\nasync function pbkdf2Sha512Subtle(\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nsubtle, secret, salt, iterations, keylen) {\n (0, utils_1.assert)(subtle, \"Argument subtle is falsy\");\n (0, utils_1.assert)(typeof subtle === \"object\", \"Argument subtle is not of type object\");\n (0, utils_1.assert)(typeof subtle.importKey === \"function\", \"subtle.importKey is not a function\");\n (0, utils_1.assert)(typeof subtle.deriveBits === \"function\", \"subtle.deriveBits is not a function\");\n return subtle.importKey(\"raw\", secret, { name: \"PBKDF2\" }, false, [\"deriveBits\"]).then((key) => subtle\n .deriveBits({\n name: \"PBKDF2\",\n salt: salt,\n iterations: iterations,\n hash: { name: \"SHA-512\" },\n }, key, keylen * 8)\n .then((buffer) => new Uint8Array(buffer)));\n}\nexports.pbkdf2Sha512Subtle = pbkdf2Sha512Subtle;\nasync function pbkdf2Sha512Crypto(\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\ncrypto, secret, salt, iterations, keylen) {\n (0, utils_1.assert)(crypto, \"Argument crypto is falsy\");\n (0, utils_1.assert)(typeof crypto === \"object\", \"Argument crypto is not of type object\");\n (0, utils_1.assert)(typeof crypto.pbkdf2 === \"function\", \"crypto.pbkdf2 is not a function\");\n return new Promise((resolve, reject) => {\n crypto.pbkdf2(secret, salt, iterations, keylen, \"sha512\", (error, result) => {\n if (error) {\n reject(error);\n }\n else {\n resolve(Uint8Array.from(result));\n }\n });\n });\n}\nexports.pbkdf2Sha512Crypto = pbkdf2Sha512Crypto;\nasync function pbkdf2Sha512Noble(secret, salt, iterations, keylen) {\n return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, secret, salt, { c: iterations, dkLen: keylen });\n}\nexports.pbkdf2Sha512Noble = pbkdf2Sha512Noble;\n/**\n * A pbkdf2 implementation for BIP39. This is not exported at package level and thus a private API.\n */\nasync function pbkdf2Sha512(secret, salt, iterations, keylen) {\n const subtle = await getSubtle();\n if (subtle) {\n return pbkdf2Sha512Subtle(subtle, secret, salt, iterations, keylen);\n }\n else {\n const crypto = await getCryptoModule();\n if (crypto) {\n return pbkdf2Sha512Crypto(crypto, secret, salt, iterations, keylen);\n }\n else {\n return pbkdf2Sha512Noble(secret, salt, iterations, keylen);\n }\n }\n}\nexports.pbkdf2Sha512 = pbkdf2Sha512;\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = void 0;\nclass Random {\n /**\n * Returns `count` cryptographically secure random bytes\n */\n static getBytes(count) {\n try {\n const globalObject = typeof window === \"object\" ? window : self;\n const cryptoApi = typeof globalObject.crypto !== \"undefined\" ? globalObject.crypto : globalObject.msCrypto;\n const out = new Uint8Array(count);\n cryptoApi.getRandomValues(out);\n return out;\n }\n catch (_a) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const crypto = require(\"crypto\");\n return new Uint8Array([...crypto.randomBytes(count)]);\n }\n catch (_b) {\n throw new Error(\"No secure random number generator found\");\n }\n }\n }\n}\nexports.Random = Random;\n//# sourceMappingURL=random.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.Ripemd160 = void 0;\nconst ripemd160_1 = require(\"@noble/hashes/ripemd160\");\nconst utils_1 = require(\"./utils\");\nclass Ripemd160 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = ripemd160_1.ripemd160.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Ripemd160 = Ripemd160;\n/** Convenience function equivalent to `new Ripemd160(data).digest()` */\nfunction ripemd160(data) {\n return new Ripemd160(data).digest();\n}\nexports.ripemd160 = ripemd160;\n//# sourceMappingURL=ripemd.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Secp256k1 = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst elliptic_1 = __importDefault(require(\"elliptic\"));\nconst secp256k1signature_1 = require(\"./secp256k1signature\");\nconst secp256k1 = new elliptic_1.default.ec(\"secp256k1\");\nconst secp256k1N = new bn_js_1.default(\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", \"hex\");\nclass Secp256k1 {\n /**\n * Takes a 32 byte private key and returns a privkey/pubkey pair.\n *\n * The resulting pubkey is uncompressed. For the use in Cosmos it should\n * be compressed first using `Secp256k1.compressPubkey`.\n */\n static async makeKeypair(privkey) {\n if (privkey.length !== 32) {\n // is this check missing in secp256k1.validatePrivateKey?\n // https://github.com/bitjson/bitcoin-ts/issues/4\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n const keypair = secp256k1.keyFromPrivate(privkey);\n if (keypair.validate().result !== true) {\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n // range test that is not part of the elliptic implementation\n const privkeyAsBigInteger = new bn_js_1.default(privkey);\n if (privkeyAsBigInteger.gte(secp256k1N)) {\n // not strictly smaller than N\n throw new Error(\"input data is not a valid secp256k1 private key\");\n }\n const out = {\n privkey: (0, encoding_1.fromHex)(keypair.getPrivate(\"hex\")),\n // encodes uncompressed as\n // - 1-byte prefix \"04\"\n // - 32-byte x coordinate\n // - 32-byte y coordinate\n pubkey: Uint8Array.from(keypair.getPublic(\"array\")),\n };\n return out;\n }\n /**\n * Creates a signature that is\n * - deterministic (RFC 6979)\n * - lowS signature\n * - DER encoded\n */\n static async createSignature(messageHash, privkey) {\n if (messageHash.length === 0) {\n throw new Error(\"Message hash must not be empty\");\n }\n if (messageHash.length > 32) {\n throw new Error(\"Message hash length must not exceed 32 bytes\");\n }\n const keypair = secp256k1.keyFromPrivate(privkey);\n // the `canonical` option ensures creation of lowS signature representations\n const { r, s, recoveryParam } = keypair.sign(messageHash, { canonical: true });\n if (typeof recoveryParam !== \"number\")\n throw new Error(\"Recovery param missing\");\n return new secp256k1signature_1.ExtendedSecp256k1Signature(Uint8Array.from(r.toArray()), Uint8Array.from(s.toArray()), recoveryParam);\n }\n static async verifySignature(signature, messageHash, pubkey) {\n if (messageHash.length === 0) {\n throw new Error(\"Message hash must not be empty\");\n }\n if (messageHash.length > 32) {\n throw new Error(\"Message hash length must not exceed 32 bytes\");\n }\n const keypair = secp256k1.keyFromPublic(pubkey);\n // From https://github.com/indutny/elliptic:\n //\n // Sign the message's hash (input must be an array, or a hex-string)\n //\n // Signature MUST be either:\n // 1) DER-encoded signature as hex-string; or\n // 2) DER-encoded signature as buffer; or\n // 3) object with two hex-string properties (r and s); or\n // 4) object with two buffer properties (r and s)\n //\n // Uint8Array is not a Buffer, but elliptic seems to be happy with the interface\n // common to both types. Uint8Array is not an array of ints but the interface is\n // similar\n try {\n return keypair.verify(messageHash, signature.toDer());\n }\n catch (error) {\n return false;\n }\n }\n static recoverPubkey(signature, messageHash) {\n const signatureForElliptic = { r: (0, encoding_1.toHex)(signature.r()), s: (0, encoding_1.toHex)(signature.s()) };\n const point = secp256k1.recoverPubKey(messageHash, signatureForElliptic, signature.recovery);\n const keypair = secp256k1.keyFromPublic(point);\n return (0, encoding_1.fromHex)(keypair.getPublic(false, \"hex\"));\n }\n /**\n * Takes a compressed or uncompressed pubkey and return a compressed one.\n *\n * This function is idempotent.\n */\n static compressPubkey(pubkey) {\n switch (pubkey.length) {\n case 33:\n return pubkey;\n case 65:\n return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(true, \"array\"));\n default:\n throw new Error(\"Invalid pubkey length\");\n }\n }\n /**\n * Takes a compressed or uncompressed pubkey and returns an uncompressed one.\n *\n * This function is idempotent.\n */\n static uncompressPubkey(pubkey) {\n switch (pubkey.length) {\n case 33:\n return Uint8Array.from(secp256k1.keyFromPublic(pubkey).getPublic(false, \"array\"));\n case 65:\n return pubkey;\n default:\n throw new Error(\"Invalid pubkey length\");\n }\n }\n static trimRecoveryByte(signature) {\n switch (signature.length) {\n case 64:\n return signature;\n case 65:\n return signature.slice(0, 64);\n default:\n throw new Error(\"Invalid signature length\");\n }\n }\n}\nexports.Secp256k1 = Secp256k1;\n//# sourceMappingURL=secp256k1.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExtendedSecp256k1Signature = exports.Secp256k1Signature = void 0;\nfunction trimLeadingNullBytes(inData) {\n let numberOfLeadingNullBytes = 0;\n for (const byte of inData) {\n if (byte === 0x00) {\n numberOfLeadingNullBytes++;\n }\n else {\n break;\n }\n }\n return inData.slice(numberOfLeadingNullBytes);\n}\nconst derTagInteger = 0x02;\nclass Secp256k1Signature {\n constructor(r, s) {\n if (r.length > 32 || r.length === 0 || r[0] === 0x00) {\n throw new Error(\"Unsigned integer r must be encoded as unpadded big endian.\");\n }\n if (s.length > 32 || s.length === 0 || s[0] === 0x00) {\n throw new Error(\"Unsigned integer s must be encoded as unpadded big endian.\");\n }\n this.data = {\n r: r,\n s: s,\n };\n }\n /**\n * Takes the pair of integers (r, s) as 2x32 byte of binary data.\n *\n * Note: This is the format Cosmos SDK uses natively.\n *\n * @param data a 64 byte value containing integers r and s.\n */\n static fromFixedLength(data) {\n if (data.length !== 64) {\n throw new Error(`Got invalid data length: ${data.length}. Expected 2x 32 bytes for the pair (r, s)`);\n }\n return new Secp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)));\n }\n static fromDer(data) {\n let pos = 0;\n if (data[pos++] !== 0x30) {\n throw new Error(\"Prefix 0x30 expected\");\n }\n const bodyLength = data[pos++];\n if (data.length - pos !== bodyLength) {\n throw new Error(\"Data length mismatch detected\");\n }\n // r\n const rTag = data[pos++];\n if (rTag !== derTagInteger) {\n throw new Error(\"INTEGER tag expected\");\n }\n const rLength = data[pos++];\n if (rLength >= 0x80) {\n throw new Error(\"Decoding length values above 127 not supported\");\n }\n const rData = data.slice(pos, pos + rLength);\n pos += rLength;\n // s\n const sTag = data[pos++];\n if (sTag !== derTagInteger) {\n throw new Error(\"INTEGER tag expected\");\n }\n const sLength = data[pos++];\n if (sLength >= 0x80) {\n throw new Error(\"Decoding length values above 127 not supported\");\n }\n const sData = data.slice(pos, pos + sLength);\n pos += sLength;\n return new Secp256k1Signature(\n // r/s data can contain leading 0 bytes to express integers being non-negative in DER\n trimLeadingNullBytes(rData), trimLeadingNullBytes(sData));\n }\n r(length) {\n if (length === undefined) {\n return this.data.r;\n }\n else {\n const paddingLength = length - this.data.r.length;\n if (paddingLength < 0) {\n throw new Error(\"Length too small to hold parameter r\");\n }\n const padding = new Uint8Array(paddingLength);\n return new Uint8Array([...padding, ...this.data.r]);\n }\n }\n s(length) {\n if (length === undefined) {\n return this.data.s;\n }\n else {\n const paddingLength = length - this.data.s.length;\n if (paddingLength < 0) {\n throw new Error(\"Length too small to hold parameter s\");\n }\n const padding = new Uint8Array(paddingLength);\n return new Uint8Array([...padding, ...this.data.s]);\n }\n }\n toFixedLength() {\n return new Uint8Array([...this.r(32), ...this.s(32)]);\n }\n toDer() {\n // DER supports negative integers but our data is unsigned. Thus we need to prepend\n // a leading 0 byte when the higest bit is set to differentiate nagative values\n const rEncoded = this.data.r[0] >= 0x80 ? new Uint8Array([0, ...this.data.r]) : this.data.r;\n const sEncoded = this.data.s[0] >= 0x80 ? new Uint8Array([0, ...this.data.s]) : this.data.s;\n const rLength = rEncoded.length;\n const sLength = sEncoded.length;\n const data = new Uint8Array([derTagInteger, rLength, ...rEncoded, derTagInteger, sLength, ...sEncoded]);\n return new Uint8Array([0x30, data.length, ...data]);\n }\n}\nexports.Secp256k1Signature = Secp256k1Signature;\n/**\n * A Secp256k1Signature plus the recovery parameter\n */\nclass ExtendedSecp256k1Signature extends Secp256k1Signature {\n constructor(r, s, recovery) {\n super(r, s);\n if (!Number.isInteger(recovery)) {\n throw new Error(\"The recovery parameter must be an integer.\");\n }\n if (recovery < 0 || recovery > 4) {\n throw new Error(\"The recovery parameter must be one of 0, 1, 2, 3.\");\n }\n this.recovery = recovery;\n }\n /**\n * Decode extended signature from the simple fixed length encoding\n * described in toFixedLength().\n */\n static fromFixedLength(data) {\n if (data.length !== 65) {\n throw new Error(`Got invalid data length ${data.length}. Expected 32 + 32 + 1`);\n }\n return new ExtendedSecp256k1Signature(trimLeadingNullBytes(data.slice(0, 32)), trimLeadingNullBytes(data.slice(32, 64)), data[64]);\n }\n /**\n * A simple custom encoding that encodes the extended signature as\n * r (32 bytes) | s (32 bytes) | recovery param (1 byte)\n * where | denotes concatenation of bonary data.\n */\n toFixedLength() {\n return new Uint8Array([...this.r(32), ...this.s(32), this.recovery]);\n }\n}\nexports.ExtendedSecp256k1Signature = ExtendedSecp256k1Signature;\n//# sourceMappingURL=secp256k1signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha512 = exports.Sha512 = exports.sha256 = exports.Sha256 = void 0;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst utils_1 = require(\"./utils\");\nclass Sha256 {\n constructor(firstData) {\n this.blockSize = 512 / 8;\n this.impl = sha256_1.sha256.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Sha256 = Sha256;\n/** Convenience function equivalent to `new Sha256(data).digest()` */\nfunction sha256(data) {\n return new Sha256(data).digest();\n}\nexports.sha256 = sha256;\nclass Sha512 {\n constructor(firstData) {\n this.blockSize = 1024 / 8;\n this.impl = sha512_1.sha512.create();\n if (firstData) {\n this.update(firstData);\n }\n }\n update(data) {\n this.impl.update((0, utils_1.toRealUint8Array)(data));\n return this;\n }\n digest() {\n return this.impl.digest();\n }\n}\nexports.Sha512 = Sha512;\n/** Convenience function equivalent to `new Sha512(data).digest()` */\nfunction sha512(data) {\n return new Sha512(data).digest();\n}\nexports.sha512 = sha512;\n//# sourceMappingURL=sha.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringToPath = exports.pathToString = exports.Slip10 = exports.Slip10RawIndex = exports.slip10CurveFromString = exports.Slip10Curve = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst elliptic_1 = __importDefault(require(\"elliptic\"));\nconst hmac_1 = require(\"./hmac\");\nconst sha_1 = require(\"./sha\");\n/**\n * Raw values must match the curve string in SLIP-0010 master key generation\n *\n * @see https://github.com/satoshilabs/slips/blob/master/slip-0010.md#master-key-generation\n */\nvar Slip10Curve;\n(function (Slip10Curve) {\n Slip10Curve[\"Secp256k1\"] = \"Bitcoin seed\";\n Slip10Curve[\"Ed25519\"] = \"ed25519 seed\";\n})(Slip10Curve = exports.Slip10Curve || (exports.Slip10Curve = {}));\n/**\n * Reverse mapping of Slip10Curve\n */\nfunction slip10CurveFromString(curveString) {\n switch (curveString) {\n case Slip10Curve.Ed25519:\n return Slip10Curve.Ed25519;\n case Slip10Curve.Secp256k1:\n return Slip10Curve.Secp256k1;\n default:\n throw new Error(`Unknown curve string: '${curveString}'`);\n }\n}\nexports.slip10CurveFromString = slip10CurveFromString;\nclass Slip10RawIndex extends math_1.Uint32 {\n static hardened(hardenedIndex) {\n return new Slip10RawIndex(hardenedIndex + 2 ** 31);\n }\n static normal(normalIndex) {\n return new Slip10RawIndex(normalIndex);\n }\n isHardened() {\n return this.data >= 2 ** 31;\n }\n}\nexports.Slip10RawIndex = Slip10RawIndex;\nconst secp256k1 = new elliptic_1.default.ec(\"secp256k1\");\n// Universal private key derivation accoring to\n// https://github.com/satoshilabs/slips/blob/master/slip-0010.md\nclass Slip10 {\n static derivePath(curve, seed, path) {\n let result = this.master(curve, seed);\n for (const rawIndex of path) {\n result = this.child(curve, result.privkey, result.chainCode, rawIndex);\n }\n return result;\n }\n static master(curve, seed) {\n const i = new hmac_1.Hmac(sha_1.Sha512, (0, encoding_1.toAscii)(curve)).update(seed).digest();\n const il = i.slice(0, 32);\n const ir = i.slice(32, 64);\n if (curve !== Slip10Curve.Ed25519 && (this.isZero(il) || this.isGteN(curve, il))) {\n return this.master(curve, i);\n }\n return {\n chainCode: ir,\n privkey: il,\n };\n }\n static child(curve, parentPrivkey, parentChainCode, rawIndex) {\n let i;\n if (rawIndex.isHardened()) {\n const payload = new Uint8Array([0x00, ...parentPrivkey, ...rawIndex.toBytesBigEndian()]);\n i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(payload).digest();\n }\n else {\n if (curve === Slip10Curve.Ed25519) {\n throw new Error(\"Normal keys are not allowed with ed25519\");\n }\n else {\n // Step 1 of https://github.com/satoshilabs/slips/blob/master/slip-0010.md#private-parent-key--private-child-key\n // Calculate I = HMAC-SHA512(Key = c_par, Data = ser_P(point(k_par)) || ser_32(i)).\n // where the functions point() and ser_p() are defined in BIP-0032\n const data = new Uint8Array([\n ...Slip10.serializedPoint(curve, new bn_js_1.default(parentPrivkey)),\n ...rawIndex.toBytesBigEndian(),\n ]);\n i = new hmac_1.Hmac(sha_1.Sha512, parentChainCode).update(data).digest();\n }\n }\n return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i);\n }\n /**\n * Implementation of ser_P(point(k_par)) from BIP-0032\n *\n * @see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n */\n static serializedPoint(curve, p) {\n switch (curve) {\n case Slip10Curve.Secp256k1:\n return (0, encoding_1.fromHex)(secp256k1.g.mul(p).encodeCompressed(\"hex\"));\n default:\n throw new Error(\"curve not supported\");\n }\n }\n static childImpl(curve, parentPrivkey, parentChainCode, rawIndex, i) {\n // step 2 (of the Private parent key → private child key algorithm)\n const il = i.slice(0, 32);\n const ir = i.slice(32, 64);\n // step 3\n const returnChainCode = ir;\n // step 4\n if (curve === Slip10Curve.Ed25519) {\n return {\n chainCode: returnChainCode,\n privkey: il,\n };\n }\n // step 5\n const n = this.n(curve);\n const returnChildKeyAsNumber = new bn_js_1.default(il).add(new bn_js_1.default(parentPrivkey)).mod(n);\n const returnChildKey = Uint8Array.from(returnChildKeyAsNumber.toArray(\"be\", 32));\n // step 6\n if (this.isGteN(curve, il) || this.isZero(returnChildKey)) {\n const newI = new hmac_1.Hmac(sha_1.Sha512, parentChainCode)\n .update(new Uint8Array([0x01, ...ir, ...rawIndex.toBytesBigEndian()]))\n .digest();\n return this.childImpl(curve, parentPrivkey, parentChainCode, rawIndex, newI);\n }\n // step 7\n return {\n chainCode: returnChainCode,\n privkey: returnChildKey,\n };\n }\n static isZero(privkey) {\n return privkey.every((byte) => byte === 0);\n }\n static isGteN(curve, privkey) {\n const keyAsNumber = new bn_js_1.default(privkey);\n return keyAsNumber.gte(this.n(curve));\n }\n static n(curve) {\n switch (curve) {\n case Slip10Curve.Secp256k1:\n return new bn_js_1.default(\"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", 16);\n default:\n throw new Error(\"curve not supported\");\n }\n }\n}\nexports.Slip10 = Slip10;\nfunction pathToString(path) {\n return path.reduce((current, component) => {\n const componentString = component.isHardened()\n ? `${component.toNumber() - 2 ** 31}'`\n : component.toString();\n return current + \"/\" + componentString;\n }, \"m\");\n}\nexports.pathToString = pathToString;\nfunction stringToPath(input) {\n if (!input.startsWith(\"m\"))\n throw new Error(\"Path string must start with 'm'\");\n let rest = input.slice(1);\n const out = new Array();\n while (rest) {\n const match = rest.match(/^\\/([0-9]+)('?)/);\n if (!match)\n throw new Error(\"Syntax error while reading path component\");\n const [fullMatch, numberString, apostrophe] = match;\n const value = math_1.Uint53.fromString(numberString).toNumber();\n if (value >= 2 ** 31)\n throw new Error(\"Component value too high. Must not exceed 2**31-1.\");\n if (apostrophe)\n out.push(Slip10RawIndex.hardened(value));\n else\n out.push(Slip10RawIndex.normal(value));\n rest = rest.slice(fullMatch.length);\n }\n return out;\n}\nexports.stringToPath = stringToPath;\n//# sourceMappingURL=slip10.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toRealUint8Array = void 0;\n// See https://github.com/paulmillr/noble-hashes/issues/25 for why this is needed\nfunction toRealUint8Array(data) {\n if (data instanceof Uint8Array)\n return data;\n else\n return Uint8Array.from(data);\n}\nexports.toRealUint8Array = toRealUint8Array;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromAscii = exports.toAscii = void 0;\nfunction toAscii(input) {\n const toNums = (str) => str.split(\"\").map((x) => {\n const charCode = x.charCodeAt(0);\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (charCode < 0x20 || charCode > 0x7e) {\n throw new Error(\"Cannot encode character that is out of printable ASCII range: \" + charCode);\n }\n return charCode;\n });\n return Uint8Array.from(toNums(input));\n}\nexports.toAscii = toAscii;\nfunction fromAscii(data) {\n const fromNums = (listOfNumbers) => listOfNumbers.map((x) => {\n // 0x00–0x1F control characters\n // 0x20–0x7E printable characters\n // 0x7F delete character\n // 0x80–0xFF out of 7 bit ascii range\n if (x < 0x20 || x > 0x7e) {\n throw new Error(\"Cannot decode character that is out of printable ASCII range: \" + x);\n }\n return String.fromCharCode(x);\n });\n return fromNums(Array.from(data)).join(\"\");\n}\nexports.fromAscii = fromAscii;\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromBase64 = exports.toBase64 = void 0;\nconst base64js = __importStar(require(\"base64-js\"));\nfunction toBase64(data) {\n return base64js.fromByteArray(data);\n}\nexports.toBase64 = toBase64;\nfunction fromBase64(base64String) {\n if (!base64String.match(/^[a-zA-Z0-9+/]*={0,2}$/)) {\n throw new Error(\"Invalid base64 string format\");\n }\n return base64js.toByteArray(base64String);\n}\nexports.fromBase64 = fromBase64;\n//# sourceMappingURL=base64.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bech32 = exports.fromBech32 = exports.toBech32 = void 0;\nconst bech32 = __importStar(require(\"bech32\"));\nfunction toBech32(prefix, data, limit) {\n const address = bech32.encode(prefix, bech32.toWords(data), limit);\n return address;\n}\nexports.toBech32 = toBech32;\nfunction fromBech32(address, limit = Infinity) {\n const decodedAddress = bech32.decode(address, limit);\n return {\n prefix: decodedAddress.prefix,\n data: new Uint8Array(bech32.fromWords(decodedAddress.words)),\n };\n}\nexports.fromBech32 = fromBech32;\n/**\n * @deprecated This class is deprecated and will be removed soon. Please use fromBech32() and toBech32() instead. For more details please refer to https://github.com/cosmos/cosmjs/issues/1053.\n */\nclass Bech32 {\n /**\n * @deprecated This class is deprecated and will be removed soon. Please use fromBech32() and toBech32() instead. For more details please refer to https://github.com/cosmos/cosmjs/issues/1053.\n */\n static encode(prefix, data, limit) {\n return toBech32(prefix, data, limit);\n }\n /**\n * @deprecated This class is deprecated and will be removed soon. Please use fromBech32() and toBech32() instead. For more details please refer to https://github.com/cosmos/cosmjs/issues/1053.\n */\n static decode(address, limit = Infinity) {\n return fromBech32(address, limit);\n }\n}\nexports.Bech32 = Bech32;\n//# sourceMappingURL=bech32.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromHex = exports.toHex = void 0;\nfunction toHex(data) {\n let out = \"\";\n for (const byte of data) {\n out += (\"0\" + byte.toString(16)).slice(-2);\n }\n return out;\n}\nexports.toHex = toHex;\nfunction fromHex(hexstring) {\n if (hexstring.length % 2 !== 0) {\n throw new Error(\"hex string length must be a multiple of 2\");\n }\n const out = new Uint8Array(hexstring.length / 2);\n for (let i = 0; i < out.length; i++) {\n const j = 2 * i;\n const hexByteAsString = hexstring.slice(j, j + 2);\n if (!hexByteAsString.match(/[0-9a-f]{2}/i)) {\n throw new Error(\"hex string contains invalid characters\");\n }\n out[i] = parseInt(hexByteAsString, 16);\n }\n return out;\n}\nexports.fromHex = fromHex;\n//# sourceMappingURL=hex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = exports.toRfc3339 = exports.fromRfc3339 = exports.toHex = exports.fromHex = exports.toBech32 = exports.fromBech32 = exports.Bech32 = exports.toBase64 = exports.fromBase64 = exports.toAscii = exports.fromAscii = void 0;\nvar ascii_1 = require(\"./ascii\");\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return ascii_1.fromAscii; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return ascii_1.toAscii; } });\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return base64_1.fromBase64; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return base64_1.toBase64; } });\nvar bech32_1 = require(\"./bech32\");\nObject.defineProperty(exports, \"Bech32\", { enumerable: true, get: function () { return bech32_1.Bech32; } });\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return bech32_1.fromBech32; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return bech32_1.toBech32; } });\nvar hex_1 = require(\"./hex\");\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return hex_1.fromHex; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return hex_1.toHex; } });\nvar rfc3339_1 = require(\"./rfc3339\");\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return rfc3339_1.fromRfc3339; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return rfc3339_1.toRfc3339; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return utf8_1.fromUtf8; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return utf8_1.toUtf8; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toRfc3339 = exports.fromRfc3339 = void 0;\nconst rfc3339Matcher = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{1,9})?((?:[+-]\\d{2}:\\d{2})|Z)$/;\nfunction padded(integer, length = 2) {\n const filled = \"00000\" + integer.toString();\n return filled.substring(filled.length - length);\n}\nfunction fromRfc3339(str) {\n const matches = rfc3339Matcher.exec(str);\n if (!matches) {\n throw new Error(\"Date string is not in RFC3339 format\");\n }\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n const hour = +matches[4];\n const minute = +matches[5];\n const second = +matches[6];\n // fractional seconds match either undefined or a string like \".1\", \".123456789\"\n const milliSeconds = matches[7] ? Math.floor(+matches[7] * 1000) : 0;\n let tzOffsetSign;\n let tzOffsetHours;\n let tzOffsetMinutes;\n // if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n if (matches[8] === \"Z\") {\n tzOffsetSign = 1;\n tzOffsetHours = 0;\n tzOffsetMinutes = 0;\n }\n else {\n tzOffsetSign = matches[8].substring(0, 1) === \"-\" ? -1 : 1;\n tzOffsetHours = +matches[8].substring(1, 3);\n tzOffsetMinutes = +matches[8].substring(4, 6);\n }\n const tzOffset = tzOffsetSign * (tzOffsetHours * 60 + tzOffsetMinutes) * 60; // seconds\n const timestamp = Date.UTC(year, month - 1, day, hour, minute, second, milliSeconds) - tzOffset * 1000;\n return new Date(timestamp);\n}\nexports.fromRfc3339 = fromRfc3339;\nfunction toRfc3339(date) {\n const year = date.getUTCFullYear();\n const month = padded(date.getUTCMonth() + 1);\n const day = padded(date.getUTCDate());\n const hour = padded(date.getUTCHours());\n const minute = padded(date.getUTCMinutes());\n const second = padded(date.getUTCSeconds());\n const ms = padded(date.getUTCMilliseconds(), 3);\n return `${year}-${month}-${day}T${hour}:${minute}:${second}.${ms}Z`;\n}\nexports.toRfc3339 = toRfc3339;\n//# sourceMappingURL=rfc3339.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromUtf8 = exports.toUtf8 = void 0;\nfunction toUtf8(str) {\n return new TextEncoder().encode(str);\n}\nexports.toUtf8 = toUtf8;\nfunction fromUtf8(data) {\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(data);\n}\nexports.fromUtf8 = fromUtf8;\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FaucetClient = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nclass FaucetClient {\n constructor(baseUrl) {\n if (!baseUrl.match(/^https?:\\/\\//)) {\n throw new Error(\"Expected base url to start with http:// or https://\");\n }\n // Strip trailing /\n const strippedBaseUrl = baseUrl.replace(/(\\/+)$/, \"\");\n this.baseUrl = strippedBaseUrl;\n }\n async credit(address, denom) {\n const body = {\n address: address,\n denom: denom,\n };\n try {\n await axios_1.default.post(this.baseUrl + \"/credit\", body);\n }\n catch (error) {\n if (error.response) {\n // append response body to error message\n throw new Error(`${error}; response body: ${JSON.stringify(error.response.data)}`);\n }\n else {\n throw error;\n }\n }\n }\n}\nexports.FaucetClient = FaucetClient;\n//# sourceMappingURL=faucetclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FaucetClient = void 0;\nvar faucetclient_1 = require(\"./faucetclient\");\nObject.defineProperty(exports, \"FaucetClient\", { enumerable: true, get: function () { return faucetclient_1.FaucetClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJsonCompatibleDictionary = exports.isJsonCompatibleArray = exports.isJsonCompatibleValue = void 0;\nfunction isJsonCompatibleValue(value) {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n value === null ||\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n isJsonCompatibleArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n isJsonCompatibleDictionary(value)) {\n return true;\n }\n else {\n return false;\n }\n}\nexports.isJsonCompatibleValue = isJsonCompatibleValue;\nfunction isJsonCompatibleArray(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n for (const item of value) {\n if (!isJsonCompatibleValue(item)) {\n return false;\n }\n }\n // all items okay\n return true;\n}\nexports.isJsonCompatibleArray = isJsonCompatibleArray;\nfunction isJsonCompatibleDictionary(data) {\n if (typeof data !== \"object\" || data === null) {\n // data must be a non-null object\n return false;\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(data) !== \"[object Object]\") {\n return false;\n }\n return Object.values(data).every(isJsonCompatibleValue);\n}\nexports.isJsonCompatibleDictionary = isJsonCompatibleDictionary;\n//# sourceMappingURL=compatibility.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeJsonRpcId = void 0;\n// Start with 10001 to avoid possible collisions with all hand-selected values like e.g. 1,2,3,42,100\nlet counter = 10000;\n/**\n * Creates a new ID to be used for creating a JSON-RPC request.\n *\n * Multiple calls of this produce unique values.\n *\n * The output may be any value compatible to JSON-RPC request IDs with an undefined output format and generation logic.\n */\nfunction makeJsonRpcId() {\n return (counter += 1);\n}\nexports.makeJsonRpcId = makeJsonRpcId;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = exports.parseJsonRpcErrorResponse = exports.JsonRpcClient = exports.makeJsonRpcId = void 0;\nvar id_1 = require(\"./id\");\nObject.defineProperty(exports, \"makeJsonRpcId\", { enumerable: true, get: function () { return id_1.makeJsonRpcId; } });\nvar jsonrpcclient_1 = require(\"./jsonrpcclient\");\nObject.defineProperty(exports, \"JsonRpcClient\", { enumerable: true, get: function () { return jsonrpcclient_1.JsonRpcClient; } });\nvar parse_1 = require(\"./parse\");\nObject.defineProperty(exports, \"parseJsonRpcErrorResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcErrorResponse; } });\nObject.defineProperty(exports, \"parseJsonRpcId\", { enumerable: true, get: function () { return parse_1.parseJsonRpcId; } });\nObject.defineProperty(exports, \"parseJsonRpcRequest\", { enumerable: true, get: function () { return parse_1.parseJsonRpcRequest; } });\nObject.defineProperty(exports, \"parseJsonRpcResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcResponse; } });\nObject.defineProperty(exports, \"parseJsonRpcSuccessResponse\", { enumerable: true, get: function () { return parse_1.parseJsonRpcSuccessResponse; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"isJsonRpcErrorResponse\", { enumerable: true, get: function () { return types_1.isJsonRpcErrorResponse; } });\nObject.defineProperty(exports, \"isJsonRpcSuccessResponse\", { enumerable: true, get: function () { return types_1.isJsonRpcSuccessResponse; } });\nObject.defineProperty(exports, \"jsonRpcCode\", { enumerable: true, get: function () { return types_1.jsonRpcCode; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcClient = void 0;\nconst stream_1 = require(\"@cosmjs/stream\");\nconst types_1 = require(\"./types\");\n/**\n * A thin wrapper that is used to bring together requests and responses by ID.\n *\n * Using this class is only advised for continous communication channels like\n * WebSockets or WebWorker messaging.\n */\nclass JsonRpcClient {\n constructor(connection) {\n this.connection = connection;\n }\n async run(request) {\n const filteredStream = this.connection.responseStream.filter((r) => r.id === request.id);\n const pendingResponses = (0, stream_1.firstEvent)(filteredStream);\n this.connection.sendRequest(request);\n const response = await pendingResponses;\n if ((0, types_1.isJsonRpcErrorResponse)(response)) {\n const error = response.error;\n throw new Error(`JSON RPC error: code=${error.code}; message='${error.message}'`);\n }\n return response;\n }\n}\nexports.JsonRpcClient = JsonRpcClient;\n//# sourceMappingURL=jsonrpcclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseJsonRpcResponse = exports.parseJsonRpcSuccessResponse = exports.parseJsonRpcErrorResponse = exports.parseJsonRpcRequest = exports.parseJsonRpcId = void 0;\nconst compatibility_1 = require(\"./compatibility\");\n/**\n * Extracts ID field from request or response object.\n *\n * Returns `null` when no valid ID was found.\n */\nfunction parseJsonRpcId(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\") {\n return null;\n }\n return id;\n}\nexports.parseJsonRpcId = parseJsonRpcId;\nfunction parseJsonRpcRequest(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${data.jsonrpc}`);\n }\n const id = parseJsonRpcId(data);\n if (id === null) {\n throw new Error(\"Invalid id field\");\n }\n const method = data.method;\n if (typeof method !== \"string\") {\n throw new Error(\"Invalid method field\");\n }\n if (!(0, compatibility_1.isJsonCompatibleArray)(data.params) && !(0, compatibility_1.isJsonCompatibleDictionary)(data.params)) {\n throw new Error(\"Invalid params field\");\n }\n return {\n jsonrpc: \"2.0\",\n id: id,\n method: method,\n params: data.params,\n };\n}\nexports.parseJsonRpcRequest = parseJsonRpcRequest;\nfunction parseError(error) {\n if (typeof error.code !== \"number\") {\n throw new Error(\"Error property 'code' is not a number\");\n }\n if (typeof error.message !== \"string\") {\n throw new Error(\"Error property 'message' is not a string\");\n }\n let maybeUndefinedData;\n if (error.data === undefined) {\n maybeUndefinedData = undefined;\n }\n else if ((0, compatibility_1.isJsonCompatibleValue)(error.data)) {\n maybeUndefinedData = error.data;\n }\n else {\n throw new Error(\"Error property 'data' is defined but not a JSON compatible value.\");\n }\n return {\n code: error.code,\n message: error.message,\n ...(maybeUndefinedData !== undefined ? { data: maybeUndefinedData } : {}),\n };\n}\n/** Throws if data is not a JsonRpcErrorResponse */\nfunction parseJsonRpcErrorResponse(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`);\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\" && id !== null) {\n throw new Error(\"Invalid id field\");\n }\n if (typeof data.error === \"undefined\" || !(0, compatibility_1.isJsonCompatibleDictionary)(data.error)) {\n throw new Error(\"Invalid error field\");\n }\n return {\n jsonrpc: \"2.0\",\n id: id,\n error: parseError(data.error),\n };\n}\nexports.parseJsonRpcErrorResponse = parseJsonRpcErrorResponse;\n/** Throws if data is not a JsonRpcSuccessResponse */\nfunction parseJsonRpcSuccessResponse(data) {\n if (!(0, compatibility_1.isJsonCompatibleDictionary)(data)) {\n throw new Error(\"Data must be JSON compatible dictionary\");\n }\n if (data.jsonrpc !== \"2.0\") {\n throw new Error(`Got unexpected jsonrpc version: ${JSON.stringify(data)}`);\n }\n const id = data.id;\n if (typeof id !== \"number\" && typeof id !== \"string\") {\n throw new Error(\"Invalid id field\");\n }\n if (typeof data.result === \"undefined\") {\n throw new Error(\"Invalid result field\");\n }\n const result = data.result;\n return {\n jsonrpc: \"2.0\",\n id: id,\n result: result,\n };\n}\nexports.parseJsonRpcSuccessResponse = parseJsonRpcSuccessResponse;\n/**\n * Returns a JsonRpcErrorResponse if input can be parsed as a JSON-RPC error. Otherwise parses\n * input as JsonRpcSuccessResponse. Throws if input is neither a valid error nor success response.\n */\nfunction parseJsonRpcResponse(data) {\n let response;\n try {\n response = parseJsonRpcErrorResponse(data);\n }\n catch (_) {\n response = parseJsonRpcSuccessResponse(data);\n }\n return response;\n}\nexports.parseJsonRpcResponse = parseJsonRpcResponse;\n//# sourceMappingURL=parse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.jsonRpcCode = exports.isJsonRpcSuccessResponse = exports.isJsonRpcErrorResponse = void 0;\nfunction isJsonRpcErrorResponse(response) {\n return typeof response.error === \"object\";\n}\nexports.isJsonRpcErrorResponse = isJsonRpcErrorResponse;\nfunction isJsonRpcSuccessResponse(response) {\n return !isJsonRpcErrorResponse(response);\n}\nexports.isJsonRpcSuccessResponse = isJsonRpcSuccessResponse;\n/**\n * Error codes as specified in JSON-RPC 2.0\n *\n * @see https://www.jsonrpc.org/specification#error_object\n */\nexports.jsonRpcCode = {\n parseError: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internalError: -32603,\n // server error (Reserved for implementation-defined server-errors.):\n // -32000 to -32099\n serverError: {\n default: -32000,\n },\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LedgerSigner = exports.LedgerConnector = void 0;\nvar ledgerconnector_1 = require(\"./ledgerconnector\");\nObject.defineProperty(exports, \"LedgerConnector\", { enumerable: true, get: function () { return ledgerconnector_1.LedgerConnector; } });\nvar ledgersigner_1 = require(\"./ledgersigner\");\nObject.defineProperty(exports, \"LedgerSigner\", { enumerable: true, get: function () { return ledgersigner_1.LedgerSigner; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LedgerConnector = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst ledger_cosmos_js_1 = __importDefault(require(\"ledger-cosmos-js\"));\nconst semver_1 = __importDefault(require(\"semver\"));\n/* eslint-enable */\nfunction unharden(hdPath) {\n return hdPath.map((n) => (n.isHardened() ? n.toNumber() - 2 ** 31 : n.toNumber()));\n}\nconst cosmosHdPath = (0, amino_1.makeCosmoshubPath)(0);\nconst cosmosBech32Prefix = \"cosmos\";\nconst cosmosLedgerAppName = \"Cosmos\";\nconst requiredCosmosAppVersion = \"1.5.3\";\nclass LedgerConnector {\n constructor(transport, options = {}) {\n var _a, _b, _c, _d, _e;\n const defaultOptions = {\n hdPaths: [cosmosHdPath],\n prefix: cosmosBech32Prefix,\n testModeAllowed: false,\n ledgerAppName: cosmosLedgerAppName,\n requiredLedgerAppVersion: requiredCosmosAppVersion,\n };\n this.testModeAllowed = (_a = options.testModeAllowed) !== null && _a !== void 0 ? _a : defaultOptions.testModeAllowed;\n this.hdPaths = (_b = options.hdPaths) !== null && _b !== void 0 ? _b : defaultOptions.hdPaths;\n this.prefix = (_c = options.prefix) !== null && _c !== void 0 ? _c : defaultOptions.prefix;\n this.ledgerAppName = (_d = options.ledgerAppName) !== null && _d !== void 0 ? _d : defaultOptions.ledgerAppName;\n this.minLedgerAppVersion = (_e = options.minLedgerAppVersion) !== null && _e !== void 0 ? _e : defaultOptions.requiredLedgerAppVersion;\n this.app = new ledger_cosmos_js_1.default(transport);\n }\n async getCosmosAppVersion() {\n await this.verifyCosmosAppIsOpen();\n (0, utils_1.assert)(this.app, `${this.ledgerAppName} Ledger App is not connected`);\n const response = await this.app.getVersion();\n this.handleLedgerErrors(response);\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { major, minor, patch, test_mode: testMode } = response;\n this.verifyAppMode(testMode);\n return `${major}.${minor}.${patch}`;\n }\n async getPubkey(hdPath) {\n await this.verifyDeviceIsReady();\n (0, utils_1.assert)(this.app, `${this.ledgerAppName} Ledger App is not connected`);\n const hdPathToUse = hdPath || this.hdPaths[0];\n // ledger-cosmos-js hardens the first three indices\n const response = await this.app.publicKey(unharden(hdPathToUse));\n this.handleLedgerErrors(response);\n return Uint8Array.from(response.compressed_pk);\n }\n async getPubkeys() {\n return this.hdPaths.reduce((promise, hdPath) => promise.then(async (pubkeys) => [...pubkeys, await this.getPubkey(hdPath)]), Promise.resolve([]));\n }\n async getCosmosAddress(pubkey) {\n const pubkeyToUse = pubkey || (await this.getPubkey());\n return (0, amino_1.pubkeyToAddress)((0, amino_1.encodeSecp256k1Pubkey)(pubkeyToUse), this.prefix);\n }\n async sign(message, hdPath) {\n await this.verifyDeviceIsReady();\n (0, utils_1.assert)(this.app, `${this.ledgerAppName} Ledger App is not connected`);\n const hdPathToUse = hdPath || this.hdPaths[0];\n // ledger-cosmos-js hardens the first three indices\n const response = await this.app.sign(unharden(hdPathToUse), (0, encoding_1.fromUtf8)(message));\n this.handleLedgerErrors(response, \"Transaction signing request was rejected by the user\");\n return crypto_1.Secp256k1Signature.fromDer(response.signature).toFixedLength();\n }\n verifyAppMode(testMode) {\n if (testMode && !this.testModeAllowed) {\n throw new Error(`DANGER: The ${this.ledgerAppName} Ledger app is in test mode and should not be used on mainnet!`);\n }\n }\n async getOpenAppName() {\n (0, utils_1.assert)(this.app, `${this.ledgerAppName} Ledger App is not connected`);\n const response = await this.app.appInfo();\n this.handleLedgerErrors(response);\n return response.appName;\n }\n async verifyAppVersion() {\n const version = await this.getCosmosAppVersion();\n if (!semver_1.default.gte(version, this.minLedgerAppVersion)) {\n throw new Error(`Outdated version: Please update ${this.ledgerAppName} Ledger App to the latest version.`);\n }\n }\n async verifyCosmosAppIsOpen() {\n const appName = await this.getOpenAppName();\n if (appName.toLowerCase() === `dashboard`) {\n throw new Error(`Please open the ${this.ledgerAppName} Ledger app on your Ledger device.`);\n }\n if (appName.toLowerCase() !== this.ledgerAppName.toLowerCase()) {\n throw new Error(`Please close ${appName} and open the ${this.ledgerAppName} Ledger app on your Ledger device.`);\n }\n }\n async verifyDeviceIsReady() {\n await this.verifyAppVersion();\n await this.verifyCosmosAppIsOpen();\n }\n /**\n * Shows the user's address in the device and returns an address/pubkey pair.\n *\n * The address will be shown with the native prefix of the app (e.g. cosmos, persistence, desmos)\n * and does not support the usage of other address prefixes.\n *\n * @param path The HD path to show the address for. If unset, this is the first account.\n */\n async showAddress(hdPath) {\n await this.verifyDeviceIsReady();\n const hdPathToUse = hdPath || this.hdPaths[0];\n // ledger-cosmos-js hardens the first three indices\n const response = await this.app.showAddressAndPubKey(unharden(hdPathToUse), this.prefix);\n this.handleLedgerErrors(response);\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { address, compressed_pk } = response;\n return {\n address: address,\n pubkey: (0, amino_1.encodeSecp256k1Pubkey)(compressed_pk),\n };\n }\n handleLedgerErrors(\n /* eslint-disable @typescript-eslint/naming-convention */\n { error_message: errorMessage = \"No errors\", device_locked: deviceLocked = false, }, \n /* eslint-enable */\n rejectionMessage = \"Request was rejected by the user\") {\n if (deviceLocked) {\n throw new Error(\"Ledger’s screensaver mode is on\");\n }\n switch (errorMessage) {\n case \"U2F: Timeout\":\n throw new Error(\"Connection timed out. Please try again.\");\n case \"Cosmos app does not seem to be open\":\n throw new Error(`${this.ledgerAppName} app is not open`);\n case \"Command not allowed\":\n throw new Error(\"Transaction rejected\");\n case \"Transaction rejected\":\n throw new Error(rejectionMessage);\n case \"Unknown Status Code: 26628\":\n throw new Error(\"Ledger’s screensaver mode is on\");\n case \"Instruction not supported\":\n throw new Error(`Your ${this.ledgerAppName} Ledger App is not up to date. Please update to version ${this.minLedgerAppVersion} or newer.`);\n case \"No errors\":\n break;\n default:\n throw new Error(`Ledger Native Error: ${errorMessage}`);\n }\n }\n}\nexports.LedgerConnector = LedgerConnector;\n//# sourceMappingURL=ledgerconnector.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LedgerSigner = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst ledgerconnector_1 = require(\"./ledgerconnector\");\nclass LedgerSigner {\n constructor(transport, options = {}) {\n this.hdPaths = options.hdPaths || [(0, amino_1.makeCosmoshubPath)(0)];\n this.connector = new ledgerconnector_1.LedgerConnector(transport, options);\n }\n async getAccounts() {\n if (!this.accounts) {\n const pubkeys = await this.connector.getPubkeys();\n this.accounts = await Promise.all(pubkeys.map(async (pubkey) => ({\n algo: \"secp256k1\",\n address: await this.connector.getCosmosAddress(pubkey),\n pubkey: pubkey,\n })));\n }\n return this.accounts;\n }\n /**\n * Shows the user's address in the device and returns an address/pubkey pair.\n *\n * The address will be shown with the native prefix of the app (e.g. cosmos, persistence, desmos)\n * and does not support the usage of other address prefixes.\n *\n * @param path The HD path to show the address for. If unset, this is the first account.\n */\n async showAddress(path) {\n return this.connector.showAddress(path);\n }\n async signAmino(signerAddress, signDoc) {\n const accounts = this.accounts || (await this.getAccounts());\n const accountIndex = accounts.findIndex((account) => account.address === signerAddress);\n if (accountIndex === -1) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const message = (0, amino_1.serializeSignDoc)(signDoc);\n const accountForAddress = accounts[accountIndex];\n const hdPath = this.hdPaths[accountIndex];\n const signature = await this.connector.sign(message, hdPath);\n return {\n signed: signDoc,\n signature: (0, amino_1.encodeSecp256k1Signature)(accountForAddress.pubkey, signature),\n };\n }\n}\nexports.LedgerSigner = LedgerSigner;\n//# sourceMappingURL=ledgersigner.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Too large values lead to massive memory usage. Limit to something sensible.\n// The largest value we need is 18 (Ether).\nconst maxFractionalDigits = 100;\n/**\n * A type for arbitrary precision, non-negative decimals.\n *\n * Instances of this class are immutable.\n */\nclass Decimal {\n constructor(atomics, fractionalDigits) {\n this.data = {\n atomics: new bn_js_1.default(atomics),\n fractionalDigits: fractionalDigits,\n };\n }\n static fromUserInput(input, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n const badCharacter = input.match(/[^0-9.]/);\n if (badCharacter) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new Error(`Invalid character at position ${badCharacter.index + 1}`);\n }\n let whole;\n let fractional;\n if (input.search(/\\./) === -1) {\n // integer format, no separator\n whole = input;\n fractional = \"\";\n }\n else {\n const parts = input.split(\".\");\n switch (parts.length) {\n case 0:\n case 1:\n throw new Error(\"Fewer than two elements in split result. This must not happen here.\");\n case 2:\n if (!parts[1])\n throw new Error(\"Fractional part missing\");\n whole = parts[0];\n fractional = parts[1].replace(/0+$/, \"\");\n break;\n default:\n throw new Error(\"More than one separator found\");\n }\n }\n if (fractional.length > fractionalDigits) {\n throw new Error(\"Got more fractional digits than supported\");\n }\n const quantity = `${whole}${fractional.padEnd(fractionalDigits, \"0\")}`;\n return new Decimal(quantity, fractionalDigits);\n }\n static fromAtomics(atomics, fractionalDigits) {\n Decimal.verifyFractionalDigits(fractionalDigits);\n return new Decimal(atomics, fractionalDigits);\n }\n static verifyFractionalDigits(fractionalDigits) {\n if (!Number.isInteger(fractionalDigits))\n throw new Error(\"Fractional digits is not an integer\");\n if (fractionalDigits < 0)\n throw new Error(\"Fractional digits must not be negative\");\n if (fractionalDigits > maxFractionalDigits) {\n throw new Error(`Fractional digits must not exceed ${maxFractionalDigits}`);\n }\n }\n static compare(a, b) {\n if (a.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n return a.data.atomics.cmp(new bn_js_1.default(b.atomics));\n }\n get atomics() {\n return this.data.atomics.toString();\n }\n get fractionalDigits() {\n return this.data.fractionalDigits;\n }\n toString() {\n const factor = new bn_js_1.default(10).pow(new bn_js_1.default(this.data.fractionalDigits));\n const whole = this.data.atomics.div(factor);\n const fractional = this.data.atomics.mod(factor);\n if (fractional.isZero()) {\n return whole.toString();\n }\n else {\n const fullFractionalPart = fractional.toString().padStart(this.data.fractionalDigits, \"0\");\n const trimmedFractionalPart = fullFractionalPart.replace(/0+$/, \"\");\n return `${whole.toString()}.${trimmedFractionalPart}`;\n }\n }\n /**\n * Returns an approximation as a float type. Only use this if no\n * exact calculation is required.\n */\n toFloatApproximation() {\n const out = Number(this.toString());\n if (Number.isNaN(out))\n throw new Error(\"Conversion to number failed\");\n return out;\n }\n /**\n * a.plus(b) returns a+b.\n *\n * Both values need to have the same fractional digits.\n */\n plus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const sum = this.data.atomics.add(new bn_js_1.default(b.atomics));\n return new Decimal(sum.toString(), this.fractionalDigits);\n }\n /**\n * a.minus(b) returns a-b.\n *\n * Both values need to have the same fractional digits.\n * The resulting difference needs to be non-negative.\n */\n minus(b) {\n if (this.fractionalDigits !== b.fractionalDigits)\n throw new Error(\"Fractional digits do not match\");\n const difference = this.data.atomics.sub(new bn_js_1.default(b.atomics));\n if (difference.ltn(0))\n throw new Error(\"Difference must not be negative\");\n return new Decimal(difference.toString(), this.fractionalDigits);\n }\n /**\n * a.multiply(b) returns a*b.\n *\n * We only allow multiplication by unsigned integers to avoid rounding errors.\n */\n multiply(b) {\n const product = this.data.atomics.mul(new bn_js_1.default(b.toString()));\n return new Decimal(product.toString(), this.fractionalDigits);\n }\n equals(b) {\n return Decimal.compare(this, b) === 0;\n }\n isLessThan(b) {\n return Decimal.compare(this, b) < 0;\n }\n isLessThanOrEqual(b) {\n return Decimal.compare(this, b) <= 0;\n }\n isGreaterThan(b) {\n return Decimal.compare(this, b) > 0;\n }\n isGreaterThanOrEqual(b) {\n return Decimal.compare(this, b) >= 0;\n }\n}\nexports.Decimal = Decimal;\n//# sourceMappingURL=decimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Uint32 = exports.Int53 = exports.Decimal = void 0;\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return decimal_1.Decimal; } });\nvar integers_1 = require(\"./integers\");\nObject.defineProperty(exports, \"Int53\", { enumerable: true, get: function () { return integers_1.Int53; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return integers_1.Uint32; } });\nObject.defineProperty(exports, \"Uint53\", { enumerable: true, get: function () { return integers_1.Uint53; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return integers_1.Uint64; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64 = exports.Uint53 = exports.Int53 = exports.Uint32 = void 0;\n/* eslint-disable no-bitwise */\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst uint64MaxValue = new bn_js_1.default(\"18446744073709551615\", 10, \"be\");\nclass Uint32 {\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < 0 || input > 4294967295) {\n throw new Error(\"Input not in uint32 range: \" + input.toString());\n }\n this.data = input;\n }\n /** @deprecated use Uint32.fromBytes */\n static fromBigEndianBytes(bytes) {\n return Uint32.fromBytes(bytes);\n }\n /**\n * Creates a Uint32 from a fixed length byte array.\n *\n * @param bytes a list of exactly 4 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 4) {\n throw new Error(\"Invalid input length. Expected 4 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? bytes : Array.from(bytes).reverse();\n // Use mulitiplication instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint32(beBytes[0] * 2 ** 24 + beBytes[1] * 2 ** 16 + beBytes[2] * 2 ** 8 + beBytes[3]);\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint32(Number.parseInt(str, 10));\n }\n toBytesBigEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 24) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 0) & 0xff,\n ]);\n }\n toBytesLittleEndian() {\n // Use division instead of shifting since bitwise operators are defined\n // on SIGNED int32 in JavaScript and we don't want to risk surprises\n return new Uint8Array([\n Math.floor(this.data / 2 ** 0) & 0xff,\n Math.floor(this.data / 2 ** 8) & 0xff,\n Math.floor(this.data / 2 ** 16) & 0xff,\n Math.floor(this.data / 2 ** 24) & 0xff,\n ]);\n }\n toNumber() {\n return this.data;\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint32 = Uint32;\nclass Int53 {\n constructor(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n if (input < Number.MIN_SAFE_INTEGER || input > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Input not in int53 range: \" + input.toString());\n }\n this.data = input;\n }\n static fromString(str) {\n if (!str.match(/^-?[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Int53(Number.parseInt(str, 10));\n }\n toNumber() {\n return this.data;\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Int53 = Int53;\nclass Uint53 {\n constructor(input) {\n const signed = new Int53(input);\n if (signed.toNumber() < 0) {\n throw new Error(\"Input is negative\");\n }\n this.data = signed;\n }\n static fromString(str) {\n const signed = Int53.fromString(str);\n return new Uint53(signed.toNumber());\n }\n toNumber() {\n return this.data.toNumber();\n }\n toString() {\n return this.data.toString();\n }\n}\nexports.Uint53 = Uint53;\nclass Uint64 {\n constructor(data) {\n if (data.isNeg()) {\n throw new Error(\"Input is negative\");\n }\n if (data.gt(uint64MaxValue)) {\n throw new Error(\"Input exceeds uint64 range\");\n }\n this.data = data;\n }\n /** @deprecated use Uint64.fromBytes */\n static fromBytesBigEndian(bytes) {\n return Uint64.fromBytes(bytes);\n }\n /**\n * Creates a Uint64 from a fixed length byte array.\n *\n * @param bytes a list of exactly 8 bytes\n * @param endianess defaults to big endian\n */\n static fromBytes(bytes, endianess = \"be\") {\n if (bytes.length !== 8) {\n throw new Error(\"Invalid input length. Expected 8 bytes.\");\n }\n for (let i = 0; i < bytes.length; ++i) {\n if (!Number.isInteger(bytes[i]) || bytes[i] > 255 || bytes[i] < 0) {\n throw new Error(\"Invalid value in byte. Found: \" + bytes[i]);\n }\n }\n const beBytes = endianess === \"be\" ? Array.from(bytes) : Array.from(bytes).reverse();\n return new Uint64(new bn_js_1.default(beBytes));\n }\n static fromString(str) {\n if (!str.match(/^[0-9]+$/)) {\n throw new Error(\"Invalid string format\");\n }\n return new Uint64(new bn_js_1.default(str, 10, \"be\"));\n }\n static fromNumber(input) {\n if (Number.isNaN(input)) {\n throw new Error(\"Input is not a number\");\n }\n if (!Number.isInteger(input)) {\n throw new Error(\"Input is not an integer\");\n }\n let bigint;\n try {\n bigint = new bn_js_1.default(input);\n }\n catch (_a) {\n throw new Error(\"Input is not a safe integer\");\n }\n return new Uint64(bigint);\n }\n toBytesBigEndian() {\n return Uint8Array.from(this.data.toArray(\"be\", 8));\n }\n toBytesLittleEndian() {\n return Uint8Array.from(this.data.toArray(\"le\", 8));\n }\n toString() {\n return this.data.toString(10);\n }\n toNumber() {\n return this.data.toNumber();\n }\n}\nexports.Uint64 = Uint64;\n// Assign classes to unused variables in order to verify static interface conformance at compile time.\n// Workaround for https://github.com/microsoft/TypeScript/issues/33892\nconst _int53Class = Int53;\nconst _uint53Class = Uint53;\nconst _uint32Class = Uint32;\nconst _uint64Class = Uint64;\n//# sourceMappingURL=integers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseCoins = void 0;\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * Takes a coins list like \"819966000ucosm,700000000ustake\" and parses it.\n *\n * This is a Stargate ready version of parseCoins from @cosmjs/amino.\n * It supports more denoms.\n */\nfunction parseCoins(input) {\n return input\n .replace(/\\s/g, \"\")\n .split(\",\")\n .filter(Boolean)\n .map((part) => {\n // Denom regex from Stargate (https://github.com/cosmos/cosmos-sdk/blob/v0.42.7/types/coin.go#L599-L601)\n const match = part.match(/^([0-9]+)([a-zA-Z][a-zA-Z0-9/]{2,127})$/);\n if (!match)\n throw new Error(\"Got an invalid coin string\");\n return {\n amount: math_1.Uint64.fromString(match[1]).toString(),\n denom: match[2],\n };\n });\n}\nexports.parseCoins = parseCoins;\n//# sourceMappingURL=coins.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeTxRaw = void 0;\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\n/**\n * Takes a serialized TxRaw (the bytes stored in Tendermint) and decodes it into something usable.\n */\nfunction decodeTxRaw(tx) {\n const txRaw = tx_1.TxRaw.decode(tx);\n return {\n authInfo: tx_1.AuthInfo.decode(txRaw.authInfoBytes),\n body: tx_1.TxBody.decode(txRaw.bodyBytes),\n signatures: txRaw.signatures,\n };\n}\nexports.decodeTxRaw = decodeTxRaw;\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSecp256k1HdWallet = exports.extractKdfConfiguration = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst signing_1 = require(\"./signing\");\nconst wallet_1 = require(\"./wallet\");\nconst serializationTypeV1 = \"directsecp256k1hdwallet-v1\";\n/**\n * A KDF configuration that is not very strong but can be used on the main thread.\n * It takes about 1 second in Node.js 16.0.0 and should have similar runtimes in other modern Wasm hosts.\n */\nconst basicPasswordHashingOptions = {\n algorithm: \"argon2id\",\n params: {\n outputLength: 32,\n opsLimit: 24,\n memLimitKib: 12 * 1024,\n },\n};\nfunction isDerivationJson(thing) {\n if (!(0, utils_1.isNonNullObject)(thing))\n return false;\n if (typeof thing.hdPath !== \"string\")\n return false;\n if (typeof thing.prefix !== \"string\")\n return false;\n return true;\n}\nfunction extractKdfConfigurationV1(doc) {\n return doc.kdf;\n}\nfunction extractKdfConfiguration(serialization) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return extractKdfConfigurationV1(root);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n}\nexports.extractKdfConfiguration = extractKdfConfiguration;\nconst defaultOptions = {\n bip39Password: \"\",\n hdPaths: [(0, amino_1.makeCosmoshubPath)(0)],\n prefix: \"cosmos\",\n};\n/** A wallet for protobuf based signing using SIGN_MODE_DIRECT */\nclass DirectSecp256k1HdWallet {\n constructor(mnemonic, options) {\n var _a, _b;\n const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : defaultOptions.prefix;\n const hdPaths = (_b = options.hdPaths) !== null && _b !== void 0 ? _b : defaultOptions.hdPaths;\n this.secret = mnemonic;\n this.seed = options.seed;\n this.accounts = hdPaths.map((hdPath) => ({\n hdPath: hdPath,\n prefix: prefix,\n }));\n }\n /**\n * Restores a wallet from the given BIP39 mnemonic.\n *\n * @param mnemonic Any valid English mnemonic.\n * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const mnemonicChecked = new crypto_1.EnglishMnemonic(mnemonic);\n const seed = await crypto_1.Bip39.mnemonicToSeed(mnemonicChecked, options.bip39Password);\n return new DirectSecp256k1HdWallet(mnemonicChecked, {\n ...options,\n seed: seed,\n });\n }\n /**\n * Generates a new wallet with a BIP39 mnemonic of the given length.\n *\n * @param length The number of words in the mnemonic (12, 15, 18, 21 or 24).\n * @param options An optional `DirectSecp256k1HdWalletOptions` object optionally containing a bip39Password, hdPaths, and prefix.\n */\n static async generate(length = 12, options = {}) {\n const entropyLength = 4 * Math.floor((11 * length) / 33);\n const entropy = crypto_1.Random.getBytes(entropyLength);\n const mnemonic = crypto_1.Bip39.encode(entropy);\n return DirectSecp256k1HdWallet.fromMnemonic(mnemonic.toString(), options);\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n */\n static async deserialize(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n switch (root.type) {\n case serializationTypeV1:\n return DirectSecp256k1HdWallet.deserializeTypeV1(serialization, password);\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n /**\n * Restores a wallet from an encrypted serialization.\n *\n * This is an advanced alternative to calling `deserialize(serialization, password)` directly, which allows\n * you to offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF configuration. This can be\n * done using `extractKdfConfiguration(serialization)` and `executeKdf(password, kdfConfiguration)` from this package.\n */\n static async deserializeWithEncryptionKey(serialization, encryptionKey) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const untypedRoot = root;\n switch (untypedRoot.type) {\n case serializationTypeV1: {\n const decryptedBytes = await (0, wallet_1.decrypt)((0, encoding_1.fromBase64)(untypedRoot.data), encryptionKey, untypedRoot.encryption);\n const decryptedDocument = JSON.parse((0, encoding_1.fromUtf8)(decryptedBytes));\n const { mnemonic, accounts } = decryptedDocument;\n (0, utils_1.assert)(typeof mnemonic === \"string\");\n if (!Array.isArray(accounts))\n throw new Error(\"Property 'accounts' is not an array\");\n if (!accounts.every((account) => isDerivationJson(account))) {\n throw new Error(\"Account is not in the correct format.\");\n }\n const firstPrefix = accounts[0].prefix;\n if (!accounts.every(({ prefix }) => prefix === firstPrefix)) {\n throw new Error(\"Accounts do not all have the same prefix\");\n }\n const hdPaths = accounts.map(({ hdPath }) => (0, crypto_1.stringToPath)(hdPath));\n return DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {\n hdPaths: hdPaths,\n prefix: firstPrefix,\n });\n }\n default:\n throw new Error(\"Unsupported serialization type\");\n }\n }\n static async deserializeTypeV1(serialization, password) {\n const root = JSON.parse(serialization);\n if (!(0, utils_1.isNonNullObject)(root))\n throw new Error(\"Root document is not an object.\");\n const encryptionKey = await (0, wallet_1.executeKdf)(password, root.kdf);\n return DirectSecp256k1HdWallet.deserializeWithEncryptionKey(serialization, encryptionKey);\n }\n get mnemonic() {\n return this.secret.toString();\n }\n async getAccounts() {\n const accountsWithPrivkeys = await this.getAccountsWithPrivkeys();\n return accountsWithPrivkeys.map(({ algo, pubkey, address }) => ({\n algo: algo,\n pubkey: pubkey,\n address: address,\n }));\n }\n async signDirect(signerAddress, signDoc) {\n const accounts = await this.getAccountsWithPrivkeys();\n const account = accounts.find(({ address }) => address === signerAddress);\n if (account === undefined) {\n throw new Error(`Address ${signerAddress} not found in wallet`);\n }\n const { privkey, pubkey } = account;\n const signBytes = (0, signing_1.makeSignBytes)(signDoc);\n const hashedMessage = (0, crypto_1.sha256)(signBytes);\n const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n const stdSignature = (0, amino_1.encodeSecp256k1Signature)(pubkey, signatureBytes);\n return {\n signed: signDoc,\n signature: stdSignature,\n };\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * @param password The user provided password used to generate an encryption key via a KDF.\n * This is not normalized internally (see \"Unicode normalization\" to learn more).\n */\n async serialize(password) {\n const kdfConfiguration = basicPasswordHashingOptions;\n const encryptionKey = await (0, wallet_1.executeKdf)(password, kdfConfiguration);\n return this.serializeWithEncryptionKey(encryptionKey, kdfConfiguration);\n }\n /**\n * Generates an encrypted serialization of this wallet.\n *\n * This is an advanced alternative to calling `serialize(password)` directly, which allows you to\n * offload the KDF execution to a non-UI thread (e.g. in a WebWorker).\n *\n * The caller is responsible for ensuring the key was derived with the given KDF options. If this\n * is not the case, the wallet cannot be restored with the original password.\n */\n async serializeWithEncryptionKey(encryptionKey, kdfConfiguration) {\n const dataToEncrypt = {\n mnemonic: this.mnemonic,\n accounts: this.accounts.map(({ hdPath, prefix }) => ({\n hdPath: (0, crypto_1.pathToString)(hdPath),\n prefix: prefix,\n })),\n };\n const dataToEncryptRaw = (0, encoding_1.toUtf8)(JSON.stringify(dataToEncrypt));\n const encryptionConfiguration = {\n algorithm: wallet_1.supportedAlgorithms.xchacha20poly1305Ietf,\n };\n const encryptedData = await (0, wallet_1.encrypt)(dataToEncryptRaw, encryptionKey, encryptionConfiguration);\n const out = {\n type: serializationTypeV1,\n kdf: kdfConfiguration,\n encryption: encryptionConfiguration,\n data: (0, encoding_1.toBase64)(encryptedData),\n };\n return JSON.stringify(out);\n }\n async getKeyPair(hdPath) {\n const { privkey } = crypto_1.Slip10.derivePath(crypto_1.Slip10Curve.Secp256k1, this.seed, hdPath);\n const { pubkey } = await crypto_1.Secp256k1.makeKeypair(privkey);\n return {\n privkey: privkey,\n pubkey: crypto_1.Secp256k1.compressPubkey(pubkey),\n };\n }\n async getAccountsWithPrivkeys() {\n return Promise.all(this.accounts.map(async ({ hdPath, prefix }) => {\n const { privkey, pubkey } = await this.getKeyPair(hdPath);\n const address = (0, encoding_1.toBech32)(prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(pubkey));\n return {\n algo: \"secp256k1\",\n privkey: privkey,\n pubkey: pubkey,\n address: address,\n };\n }));\n }\n}\nexports.DirectSecp256k1HdWallet = DirectSecp256k1HdWallet;\n//# sourceMappingURL=directsecp256k1hdwallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectSecp256k1Wallet = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst signing_1 = require(\"./signing\");\n/**\n * A wallet that holds a single secp256k1 keypair.\n *\n * If you want to work with BIP39 mnemonics and multiple accounts, use DirectSecp256k1HdWallet.\n */\nclass DirectSecp256k1Wallet {\n constructor(privkey, pubkey, prefix) {\n this.privkey = privkey;\n this.pubkey = pubkey;\n this.prefix = prefix;\n }\n /**\n * Creates a DirectSecp256k1Wallet from the given private key\n *\n * @param privkey The private key.\n * @param prefix The bech32 address prefix (human readable part). Defaults to \"cosmos\".\n */\n static async fromKey(privkey, prefix = \"cosmos\") {\n const uncompressed = (await crypto_1.Secp256k1.makeKeypair(privkey)).pubkey;\n return new DirectSecp256k1Wallet(privkey, crypto_1.Secp256k1.compressPubkey(uncompressed), prefix);\n }\n get address() {\n return (0, encoding_1.toBech32)(this.prefix, (0, amino_1.rawSecp256k1PubkeyToRawAddress)(this.pubkey));\n }\n async getAccounts() {\n return [\n {\n algo: \"secp256k1\",\n address: this.address,\n pubkey: this.pubkey,\n },\n ];\n }\n async signDirect(address, signDoc) {\n const signBytes = (0, signing_1.makeSignBytes)(signDoc);\n if (address !== this.address) {\n throw new Error(`Address ${address} not found in wallet`);\n }\n const hashedMessage = (0, crypto_1.sha256)(signBytes);\n const signature = await crypto_1.Secp256k1.createSignature(hashedMessage, this.privkey);\n const signatureBytes = new Uint8Array([...signature.r(32), ...signature.s(32)]);\n const stdSignature = (0, amino_1.encodeSecp256k1Signature)(this.pubkey, signatureBytes);\n return {\n signed: signDoc,\n signature: stdSignature,\n };\n }\n}\nexports.DirectSecp256k1Wallet = DirectSecp256k1Wallet;\n//# sourceMappingURL=directsecp256k1wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coins = exports.coin = exports.executeKdf = exports.makeSignDoc = exports.makeSignBytes = exports.makeAuthInfoBytes = exports.isOfflineDirectSigner = exports.Registry = exports.isTxBodyEncodeObject = exports.isTsProtoGeneratedType = exports.isPbjsGeneratedType = exports.encodePubkey = exports.decodePubkey = exports.makeCosmoshubPath = exports.DirectSecp256k1Wallet = exports.extractKdfConfiguration = exports.DirectSecp256k1HdWallet = exports.decodeTxRaw = exports.parseCoins = void 0;\n// This type happens to be shared between Amino and Direct sign modes\nvar coins_1 = require(\"./coins\");\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return coins_1.parseCoins; } });\nvar decode_1 = require(\"./decode\");\nObject.defineProperty(exports, \"decodeTxRaw\", { enumerable: true, get: function () { return decode_1.decodeTxRaw; } });\nvar directsecp256k1hdwallet_1 = require(\"./directsecp256k1hdwallet\");\nObject.defineProperty(exports, \"DirectSecp256k1HdWallet\", { enumerable: true, get: function () { return directsecp256k1hdwallet_1.DirectSecp256k1HdWallet; } });\nObject.defineProperty(exports, \"extractKdfConfiguration\", { enumerable: true, get: function () { return directsecp256k1hdwallet_1.extractKdfConfiguration; } });\nvar directsecp256k1wallet_1 = require(\"./directsecp256k1wallet\");\nObject.defineProperty(exports, \"DirectSecp256k1Wallet\", { enumerable: true, get: function () { return directsecp256k1wallet_1.DirectSecp256k1Wallet; } });\nvar paths_1 = require(\"./paths\");\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return paths_1.makeCosmoshubPath; } });\nvar pubkey_1 = require(\"./pubkey\");\nObject.defineProperty(exports, \"decodePubkey\", { enumerable: true, get: function () { return pubkey_1.decodePubkey; } });\nObject.defineProperty(exports, \"encodePubkey\", { enumerable: true, get: function () { return pubkey_1.encodePubkey; } });\nvar registry_1 = require(\"./registry\");\nObject.defineProperty(exports, \"isPbjsGeneratedType\", { enumerable: true, get: function () { return registry_1.isPbjsGeneratedType; } });\nObject.defineProperty(exports, \"isTsProtoGeneratedType\", { enumerable: true, get: function () { return registry_1.isTsProtoGeneratedType; } });\nObject.defineProperty(exports, \"isTxBodyEncodeObject\", { enumerable: true, get: function () { return registry_1.isTxBodyEncodeObject; } });\nObject.defineProperty(exports, \"Registry\", { enumerable: true, get: function () { return registry_1.Registry; } });\nvar signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"isOfflineDirectSigner\", { enumerable: true, get: function () { return signer_1.isOfflineDirectSigner; } });\nvar signing_1 = require(\"./signing\");\nObject.defineProperty(exports, \"makeAuthInfoBytes\", { enumerable: true, get: function () { return signing_1.makeAuthInfoBytes; } });\nObject.defineProperty(exports, \"makeSignBytes\", { enumerable: true, get: function () { return signing_1.makeSignBytes; } });\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return signing_1.makeSignDoc; } });\nvar wallet_1 = require(\"./wallet\");\nObject.defineProperty(exports, \"executeKdf\", { enumerable: true, get: function () { return wallet_1.executeKdf; } });\nvar amino_1 = require(\"@cosmjs/amino\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return amino_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return amino_1.coins; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeCosmoshubPath = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\n/**\n * The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`\n * with 0-based account index `a`.\n */\nfunction makeCosmoshubPath(a) {\n return [\n crypto_1.Slip10RawIndex.hardened(44),\n crypto_1.Slip10RawIndex.hardened(118),\n crypto_1.Slip10RawIndex.hardened(0),\n crypto_1.Slip10RawIndex.normal(0),\n crypto_1.Slip10RawIndex.normal(a),\n ];\n}\nexports.makeCosmoshubPath = makeCosmoshubPath;\n//# sourceMappingURL=paths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodePubkey = exports.encodePubkey = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst keys_1 = require(\"cosmjs-types/cosmos/crypto/multisig/keys\");\nconst keys_2 = require(\"cosmjs-types/cosmos/crypto/secp256k1/keys\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nfunction encodePubkey(pubkey) {\n if ((0, amino_1.isSecp256k1Pubkey)(pubkey)) {\n const pubkeyProto = keys_2.PubKey.fromPartial({\n key: (0, encoding_1.fromBase64)(pubkey.value),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.secp256k1.PubKey\",\n value: Uint8Array.from(keys_2.PubKey.encode(pubkeyProto).finish()),\n });\n }\n else if ((0, amino_1.isMultisigThresholdPubkey)(pubkey)) {\n const pubkeyProto = keys_1.LegacyAminoPubKey.fromPartial({\n threshold: math_1.Uint53.fromString(pubkey.value.threshold).toNumber(),\n publicKeys: pubkey.value.pubkeys.map(encodePubkey),\n });\n return any_1.Any.fromPartial({\n typeUrl: \"/cosmos.crypto.multisig.LegacyAminoPubKey\",\n value: Uint8Array.from(keys_1.LegacyAminoPubKey.encode(pubkeyProto).finish()),\n });\n }\n else {\n throw new Error(`Pubkey type ${pubkey.type} not recognized`);\n }\n}\nexports.encodePubkey = encodePubkey;\nfunction decodeSinglePubkey(pubkey) {\n switch (pubkey.typeUrl) {\n case \"/cosmos.crypto.secp256k1.PubKey\": {\n const { key } = keys_2.PubKey.decode(pubkey.value);\n return (0, amino_1.encodeSecp256k1Pubkey)(key);\n }\n default:\n throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized as single public key type`);\n }\n}\nfunction decodePubkey(pubkey) {\n if (!pubkey || !pubkey.value) {\n return null;\n }\n switch (pubkey.typeUrl) {\n case \"/cosmos.crypto.secp256k1.PubKey\": {\n return decodeSinglePubkey(pubkey);\n }\n case \"/cosmos.crypto.multisig.LegacyAminoPubKey\": {\n const { threshold, publicKeys } = keys_1.LegacyAminoPubKey.decode(pubkey.value);\n const out = {\n type: \"tendermint/PubKeyMultisigThreshold\",\n value: {\n threshold: threshold.toString(),\n pubkeys: publicKeys.map(decodeSinglePubkey),\n },\n };\n return out;\n }\n default:\n throw new Error(`Pubkey type_url ${pubkey.typeUrl} not recognized`);\n }\n}\nexports.decodePubkey = decodePubkey;\n//# sourceMappingURL=pubkey.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Registry = exports.isTxBodyEncodeObject = exports.isPbjsGeneratedType = exports.isTsProtoGeneratedType = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst tx_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/tx\");\nconst coin_1 = require(\"cosmjs-types/cosmos/base/v1beta1/coin\");\nconst tx_2 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nfunction isTsProtoGeneratedType(type) {\n return typeof type.fromPartial === \"function\";\n}\nexports.isTsProtoGeneratedType = isTsProtoGeneratedType;\nfunction isPbjsGeneratedType(type) {\n return !isTsProtoGeneratedType(type);\n}\nexports.isPbjsGeneratedType = isPbjsGeneratedType;\nconst defaultTypeUrls = {\n cosmosCoin: \"/cosmos.base.v1beta1.Coin\",\n cosmosMsgSend: \"/cosmos.bank.v1beta1.MsgSend\",\n cosmosTxBody: \"/cosmos.tx.v1beta1.TxBody\",\n googleAny: \"/google.protobuf.Any\",\n};\nfunction isTxBodyEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.tx.v1beta1.TxBody\";\n}\nexports.isTxBodyEncodeObject = isTxBodyEncodeObject;\nclass Registry {\n /**\n * Creates a new Registry for mapping protobuf type identifiers/type URLs to\n * actual implementations. Those implementations are typically generated with ts-proto\n * but we also support protobuf.js as a type generator.\n *\n * If there is no parameter given, a `new Registry()` adds the types `Coin` and `MsgSend`\n * for historic reasons. Those can be overriden by customTypes.\n *\n * There are currently two methods for adding new types:\n * 1. Passing types to the constructor.\n * 2. Using the `register()` method\n */\n constructor(customTypes) {\n const { cosmosCoin, cosmosMsgSend } = defaultTypeUrls;\n this.types = customTypes\n ? new Map([...customTypes])\n : new Map([\n [cosmosCoin, coin_1.Coin],\n [cosmosMsgSend, tx_1.MsgSend],\n ]);\n }\n register(typeUrl, type) {\n this.types.set(typeUrl, type);\n }\n /**\n * Looks up a type that was previously added to the registry.\n *\n * The generator information (ts-proto or pbjs) gets lost along the way.\n * If you need to work with the result type in TypeScript, you can use:\n *\n * ```\n * import { assert } from \"@cosmjs/utils\";\n *\n * const Coin = registry.lookupType(\"/cosmos.base.v1beta1.Coin\");\n * assert(Coin); // Ensures not unset\n * assert(isTsProtoGeneratedType(Coin)); // Ensures this is the type we expect\n *\n * // Coin is typed TsProtoGeneratedType now.\n * ```\n */\n lookupType(typeUrl) {\n return this.types.get(typeUrl);\n }\n lookupTypeWithError(typeUrl) {\n const type = this.lookupType(typeUrl);\n if (!type) {\n throw new Error(`Unregistered type url: ${typeUrl}`);\n }\n return type;\n }\n /**\n * Takes a typeUrl/value pair and encodes the value to protobuf if\n * the given type was previously registered.\n *\n * If the value has to be wrapped in an Any, this needs to be done\n * manually after this call. Or use `encodeAsAny` instead.\n */\n encode(encodeObject) {\n const { value, typeUrl } = encodeObject;\n if (isTxBodyEncodeObject(encodeObject)) {\n return this.encodeTxBody(value);\n }\n const type = this.lookupTypeWithError(typeUrl);\n const instance = isTsProtoGeneratedType(type) ? type.fromPartial(value) : type.create(value);\n return type.encode(instance).finish();\n }\n /**\n * Takes a typeUrl/value pair and encodes the value to an Any if\n * the given type was previously registered.\n */\n encodeAsAny(encodeObject) {\n const binaryValue = this.encode(encodeObject);\n return any_1.Any.fromPartial({\n typeUrl: encodeObject.typeUrl,\n value: binaryValue,\n });\n }\n encodeTxBody(txBodyFields) {\n const wrappedMessages = txBodyFields.messages.map((message) => this.encodeAsAny(message));\n const txBody = tx_2.TxBody.fromPartial({\n ...txBodyFields,\n messages: wrappedMessages,\n });\n return tx_2.TxBody.encode(txBody).finish();\n }\n decode({ typeUrl, value }) {\n if (typeUrl === defaultTypeUrls.cosmosTxBody) {\n return this.decodeTxBody(value);\n }\n const type = this.lookupTypeWithError(typeUrl);\n const decoded = type.decode(value);\n Object.entries(decoded).forEach(([key, val]) => {\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\" && Buffer.isBuffer(val)) {\n decoded[key] = Uint8Array.from(val);\n }\n });\n return decoded;\n }\n decodeTxBody(txBody) {\n const decodedTxBody = tx_2.TxBody.decode(txBody);\n return {\n ...decodedTxBody,\n messages: decodedTxBody.messages.map(({ typeUrl: typeUrl, value }) => {\n if (!typeUrl) {\n throw new Error(\"Missing type_url in Any\");\n }\n if (!value) {\n throw new Error(\"Missing value in Any\");\n }\n return this.decode({ typeUrl, value });\n }),\n };\n }\n}\nexports.Registry = Registry;\n//# sourceMappingURL=registry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isOfflineDirectSigner = void 0;\nfunction isOfflineDirectSigner(signer) {\n return signer.signDirect !== undefined;\n}\nexports.isOfflineDirectSigner = isOfflineDirectSigner;\n//# sourceMappingURL=signer.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeSignBytes = exports.makeSignDoc = exports.makeAuthInfoBytes = void 0;\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\n/**\n * Create signer infos from the provided signers.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeSignerInfos(signers, signMode) {\n return signers.map(({ pubkey, sequence }) => ({\n publicKey: pubkey,\n modeInfo: {\n single: { mode: signMode },\n },\n sequence: long_1.default.fromNumber(sequence),\n }));\n}\n/**\n * Creates and serializes an AuthInfo document.\n *\n * This implementation does not support different signing modes for the different signers.\n */\nfunction makeAuthInfoBytes(signers, feeAmount, gasLimit, signMode = signing_1.SignMode.SIGN_MODE_DIRECT) {\n const authInfo = {\n signerInfos: makeSignerInfos(signers, signMode),\n fee: {\n amount: [...feeAmount],\n gasLimit: long_1.default.fromNumber(gasLimit),\n },\n };\n return tx_1.AuthInfo.encode(tx_1.AuthInfo.fromPartial(authInfo)).finish();\n}\nexports.makeAuthInfoBytes = makeAuthInfoBytes;\nfunction makeSignDoc(bodyBytes, authInfoBytes, chainId, accountNumber) {\n return {\n bodyBytes: bodyBytes,\n authInfoBytes: authInfoBytes,\n chainId: chainId,\n accountNumber: long_1.default.fromNumber(accountNumber),\n };\n}\nexports.makeSignDoc = makeSignDoc;\nfunction makeSignBytes({ accountNumber, authInfoBytes, bodyBytes, chainId }) {\n const signDoc = tx_1.SignDoc.fromPartial({\n accountNumber: accountNumber,\n authInfoBytes: authInfoBytes,\n bodyBytes: bodyBytes,\n chainId: chainId,\n });\n return tx_1.SignDoc.encode(signDoc).finish();\n}\nexports.makeSignBytes = makeSignBytes;\n//# sourceMappingURL=signing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = exports.supportedAlgorithms = exports.executeKdf = exports.cosmjsSalt = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\n/**\n * A fixed salt is chosen to archive a deterministic password to key derivation.\n * This reduces the scope of a potential rainbow attack to all CosmJS users.\n * Must be 16 bytes due to implementation limitations.\n */\nexports.cosmjsSalt = (0, encoding_1.toAscii)(\"The CosmJS salt.\");\nasync function executeKdf(password, configuration) {\n switch (configuration.algorithm) {\n case \"argon2id\": {\n const options = configuration.params;\n if (!(0, crypto_1.isArgon2idOptions)(options))\n throw new Error(\"Invalid format of argon2id params\");\n return crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options);\n }\n default:\n throw new Error(\"Unsupported KDF algorithm\");\n }\n}\nexports.executeKdf = executeKdf;\nexports.supportedAlgorithms = {\n xchacha20poly1305Ietf: \"xchacha20poly1305-ietf\",\n};\nasync function encrypt(plaintext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);\n // Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api\n return new Uint8Array([\n ...nonce,\n ...(await crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)),\n ]);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\nexports.encrypt = encrypt;\nasync function decrypt(ciphertext, encryptionKey, config) {\n switch (config.algorithm) {\n case exports.supportedAlgorithms.xchacha20poly1305Ietf: {\n const nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);\n return crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce);\n }\n default:\n throw new Error(`Unsupported encryption algorithm: '${config.algorithm}'`);\n }\n}\nexports.decrypt = decrypt;\n//# sourceMappingURL=wallet.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingSocket = exports.SocketWrapper = exports.ReconnectingSocket = exports.QueueingStreamingSocket = exports.ConnectionStatus = void 0;\nvar queueingstreamingsocket_1 = require(\"./queueingstreamingsocket\");\nObject.defineProperty(exports, \"ConnectionStatus\", { enumerable: true, get: function () { return queueingstreamingsocket_1.ConnectionStatus; } });\nObject.defineProperty(exports, \"QueueingStreamingSocket\", { enumerable: true, get: function () { return queueingstreamingsocket_1.QueueingStreamingSocket; } });\nvar reconnectingsocket_1 = require(\"./reconnectingsocket\");\nObject.defineProperty(exports, \"ReconnectingSocket\", { enumerable: true, get: function () { return reconnectingsocket_1.ReconnectingSocket; } });\nvar socketwrapper_1 = require(\"./socketwrapper\");\nObject.defineProperty(exports, \"SocketWrapper\", { enumerable: true, get: function () { return socketwrapper_1.SocketWrapper; } });\nvar streamingsocket_1 = require(\"./streamingsocket\");\nObject.defineProperty(exports, \"StreamingSocket\", { enumerable: true, get: function () { return streamingsocket_1.StreamingSocket; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueueingStreamingSocket = exports.ConnectionStatus = void 0;\nconst stream_1 = require(\"@cosmjs/stream\");\nconst xstream_1 = require(\"xstream\");\nconst streamingsocket_1 = require(\"./streamingsocket\");\nvar ConnectionStatus;\n(function (ConnectionStatus) {\n ConnectionStatus[ConnectionStatus[\"Unconnected\"] = 0] = \"Unconnected\";\n ConnectionStatus[ConnectionStatus[\"Connecting\"] = 1] = \"Connecting\";\n ConnectionStatus[ConnectionStatus[\"Connected\"] = 2] = \"Connected\";\n ConnectionStatus[ConnectionStatus[\"Disconnected\"] = 3] = \"Disconnected\";\n})(ConnectionStatus = exports.ConnectionStatus || (exports.ConnectionStatus = {}));\n/**\n * A wrapper around StreamingSocket that can queue requests.\n */\nclass QueueingStreamingSocket {\n constructor(url, timeout = 10000, reconnectedHandler) {\n this.queue = [];\n this.isProcessingQueue = false;\n this.url = url;\n this.timeout = timeout;\n this.reconnectedHandler = reconnectedHandler;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n this.connectionStatusProducer = new stream_1.DefaultValueProducer(ConnectionStatus.Unconnected);\n this.connectionStatus = new stream_1.ValueAndUpdates(this.connectionStatusProducer);\n this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout);\n this.socket.events.subscribe({\n next: (event) => {\n if (!this.eventProducerListener)\n throw new Error(\"No event producer listener set\");\n this.eventProducerListener.next(event);\n },\n error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected),\n });\n }\n connect() {\n this.connectionStatusProducer.update(ConnectionStatus.Connecting);\n this.socket.connected.then(async () => {\n this.connectionStatusProducer.update(ConnectionStatus.Connected);\n return this.processQueue();\n }, () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected));\n this.socket.connect();\n }\n disconnect() {\n this.connectionStatusProducer.update(ConnectionStatus.Disconnected);\n this.socket.disconnect();\n }\n reconnect() {\n this.socket = new streamingsocket_1.StreamingSocket(this.url, this.timeout);\n this.socket.events.subscribe({\n next: (event) => {\n if (!this.eventProducerListener)\n throw new Error(\"No event producer listener set\");\n this.eventProducerListener.next(event);\n },\n error: () => this.connectionStatusProducer.update(ConnectionStatus.Disconnected),\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.socket.connected.then(() => {\n if (this.reconnectedHandler) {\n this.reconnectedHandler();\n }\n });\n this.connect();\n }\n getQueueLength() {\n return this.queue.length;\n }\n queueRequest(request) {\n this.queue.push(request);\n // We don’t need to wait for the queue to be processed.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.processQueue();\n }\n async processQueue() {\n if (this.isProcessingQueue || this.connectionStatus.value !== ConnectionStatus.Connected) {\n return;\n }\n this.isProcessingQueue = true;\n let request;\n while ((request = this.queue.shift())) {\n try {\n await this.socket.send(request);\n this.isProcessingQueue = false;\n }\n catch (error) {\n // Probably the connection is down; will try again automatically when reconnected.\n this.queue.unshift(request);\n this.isProcessingQueue = false;\n return;\n }\n }\n }\n}\nexports.QueueingStreamingSocket = QueueingStreamingSocket;\n//# sourceMappingURL=queueingstreamingsocket.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReconnectingSocket = void 0;\nconst xstream_1 = require(\"xstream\");\nconst queueingstreamingsocket_1 = require(\"./queueingstreamingsocket\");\n/**\n * A wrapper around QueueingStreamingSocket that reconnects automatically.\n */\nclass ReconnectingSocket {\n constructor(url, timeout = 10000, reconnectedHandler) {\n this.unconnected = true;\n this.disconnected = false;\n this.timeoutIndex = 0;\n this.reconnectTimeout = null;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n this.socket = new queueingstreamingsocket_1.QueueingStreamingSocket(url, timeout, reconnectedHandler);\n this.socket.events.subscribe({\n next: (event) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.next(event);\n }\n },\n error: (error) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.error(error);\n }\n },\n });\n this.connectionStatus = this.socket.connectionStatus;\n this.connectionStatus.updates.subscribe({\n next: (status) => {\n if (status === queueingstreamingsocket_1.ConnectionStatus.Connected) {\n this.timeoutIndex = 0;\n }\n if (status === queueingstreamingsocket_1.ConnectionStatus.Disconnected) {\n if (this.reconnectTimeout) {\n clearTimeout(this.reconnectTimeout);\n this.reconnectTimeout = null;\n }\n this.reconnectTimeout = setTimeout(() => this.socket.reconnect(), ReconnectingSocket.calculateTimeout(this.timeoutIndex++));\n }\n },\n });\n }\n /** Starts with a 0.1 second timeout, then doubles every attempt with a maximum timeout of 5 seconds. */\n static calculateTimeout(index) {\n return Math.min(2 ** index * 100, 5000);\n }\n connect() {\n if (!this.unconnected) {\n throw new Error(\"Cannot connect: socket has already connected\");\n }\n this.socket.connect();\n this.unconnected = false;\n }\n disconnect() {\n if (this.unconnected) {\n throw new Error(\"Cannot disconnect: socket has not yet connected\");\n }\n this.socket.disconnect();\n if (this.eventProducerListener) {\n this.eventProducerListener.complete();\n }\n this.disconnected = true;\n }\n queueRequest(request) {\n if (this.disconnected) {\n throw new Error(\"Cannot queue request: socket has disconnected\");\n }\n this.socket.queueRequest(request);\n }\n}\nexports.ReconnectingSocket = ReconnectingSocket;\n//# sourceMappingURL=reconnectingsocket.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SocketWrapper = void 0;\nconst isomorphic_ws_1 = __importDefault(require(\"isomorphic-ws\"));\nfunction environmentIsNodeJs() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\n/**\n * A thin wrapper around isomorphic-ws' WebSocket class that adds\n * - constant message/error/open/close handlers\n * - explict connection via a connect() method\n * - type support for events\n * - handling of corner cases in the open and close behaviour\n */\nclass SocketWrapper {\n constructor(url, messageHandler, errorHandler, openHandler, closeHandler, timeout = 10000) {\n this.closed = false;\n this.connected = new Promise((resolve, reject) => {\n this.connectedResolver = resolve;\n this.connectedRejecter = reject;\n });\n this.url = url;\n this.messageHandler = messageHandler;\n this.errorHandler = errorHandler;\n this.openHandler = openHandler;\n this.closeHandler = closeHandler;\n this.timeout = timeout;\n }\n /**\n * returns a promise that resolves when connection is open\n */\n connect() {\n const socket = new isomorphic_ws_1.default(this.url);\n socket.onerror = (error) => {\n this.clearTimeout();\n if (this.errorHandler) {\n this.errorHandler(error);\n }\n };\n socket.onmessage = (messageEvent) => {\n this.messageHandler({\n type: messageEvent.type,\n data: messageEvent.data,\n });\n };\n socket.onopen = (_) => {\n this.clearTimeout();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.connectedResolver();\n if (this.openHandler) {\n this.openHandler();\n }\n };\n socket.onclose = (closeEvent) => {\n this.closed = true;\n if (this.closeHandler) {\n this.closeHandler(closeEvent);\n }\n };\n const started = Date.now();\n this.timeoutId = setTimeout(() => {\n socket.onmessage = () => 0;\n socket.onerror = () => 0;\n socket.onopen = () => 0;\n socket.onclose = () => 0;\n socket.close();\n this.socket = undefined;\n const elapsed = Math.floor(Date.now() - started);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.connectedRejecter(`Connection attempt timed out after ${elapsed} ms`);\n }, this.timeout);\n this.socket = socket;\n }\n /**\n * Closes an established connection and aborts other connection states\n */\n disconnect() {\n if (!this.socket) {\n throw new Error(\"Socket undefined. This must be called after connecting.\");\n }\n this.clearTimeout();\n switch (this.socket.readyState) {\n case isomorphic_ws_1.default.OPEN:\n this.socket.close(1000 /* Normal Closure */);\n break;\n case isomorphic_ws_1.default.CLOSED:\n // nothing to be done\n break;\n case isomorphic_ws_1.default.CONNECTING:\n // imitate missing abort API\n this.socket.onopen = () => 0;\n this.socket.onclose = () => 0;\n this.socket.onerror = () => 0;\n this.socket.onmessage = () => 0;\n this.socket = undefined;\n if (this.closeHandler) {\n this.closeHandler({ wasClean: false, code: 4001 });\n }\n break;\n case isomorphic_ws_1.default.CLOSING:\n // already closing. Let it proceed\n break;\n default:\n throw new Error(`Unknown readyState: ${this.socket.readyState}`);\n }\n }\n async send(data) {\n return new Promise((resolve, reject) => {\n if (!this.socket) {\n throw new Error(\"Socket undefined. This must be called after connecting.\");\n }\n if (this.closed) {\n throw new Error(\"Socket was closed, so no data can be sent anymore.\");\n }\n // this exception should be thrown by send() automatically according to\n // https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers\n if (this.socket.readyState !== isomorphic_ws_1.default.OPEN) {\n throw new Error(\"Websocket is not open\");\n }\n if (environmentIsNodeJs()) {\n this.socket.send(data, (err) => (err ? reject(err) : resolve()));\n }\n else {\n // Browser websocket send method does not accept a callback\n this.socket.send(data);\n resolve();\n }\n });\n }\n /**\n * Clears the timeout function, such that no timeout error will be raised anymore. This should be\n * called when the connection is established, a connection error occurred or the socket is disconnected.\n *\n * This method must not be called before `connect()`.\n * This method is idempotent.\n */\n clearTimeout() {\n if (!this.timeoutId) {\n throw new Error(\"Timeout ID not set. This should not happen and usually means connect() was not called.\");\n }\n // Note: do not unset this.timeoutId to allow multiple calls to this function\n clearTimeout(this.timeoutId);\n }\n}\nexports.SocketWrapper = SocketWrapper;\n//# sourceMappingURL=socketwrapper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingSocket = void 0;\nconst xstream_1 = require(\"xstream\");\nconst socketwrapper_1 = require(\"./socketwrapper\");\n/**\n * A WebSocket wrapper that exposes all events as a stream.\n *\n * This underlying socket will not be closed when the stream has no listeners\n */\nclass StreamingSocket {\n constructor(url, timeout = 10000) {\n this.socket = new socketwrapper_1.SocketWrapper(url, (event) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.next(event);\n }\n }, (errorEvent) => {\n if (this.eventProducerListener) {\n this.eventProducerListener.error(errorEvent);\n }\n }, () => {\n // socket opened\n }, (closeEvent) => {\n if (this.eventProducerListener) {\n if (closeEvent.wasClean) {\n this.eventProducerListener.complete();\n }\n else {\n this.eventProducerListener.error(\"Socket was closed unclean\");\n }\n }\n }, timeout);\n this.connected = this.socket.connected;\n const eventProducer = {\n start: (listener) => (this.eventProducerListener = listener),\n stop: () => (this.eventProducerListener = undefined),\n };\n this.events = xstream_1.Stream.create(eventProducer);\n }\n connect() {\n this.socket.connect();\n }\n disconnect() {\n this.socket.disconnect();\n }\n async send(data) {\n return this.socket.send(data);\n }\n}\nexports.StreamingSocket = StreamingSocket;\n//# sourceMappingURL=streamingsocket.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.accountFromAny = void 0;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst auth_1 = require(\"cosmjs-types/cosmos/auth/v1beta1/auth\");\nconst vesting_1 = require(\"cosmjs-types/cosmos/vesting/v1beta1/vesting\");\nfunction uint64FromProto(input) {\n return math_1.Uint64.fromString(input.toString());\n}\nfunction accountFromBaseAccount(input) {\n const { address, pubKey, accountNumber, sequence } = input;\n const pubkey = (0, proto_signing_1.decodePubkey)(pubKey);\n return {\n address: address,\n pubkey: pubkey,\n accountNumber: uint64FromProto(accountNumber).toNumber(),\n sequence: uint64FromProto(sequence).toNumber(),\n };\n}\n/**\n * Takes an `Any` encoded account from the chain and extracts some common\n * `Account` information from it. This is supposed to support the most relevant\n * common Cosmos SDK account types. If you need support for exotic account types,\n * you'll need to write your own account decoder.\n */\nfunction accountFromAny(input) {\n var _a, _b, _c, _d, _e, _f, _g;\n const { typeUrl, value } = input;\n switch (typeUrl) {\n // auth\n case \"/cosmos.auth.v1beta1.BaseAccount\":\n return accountFromBaseAccount(auth_1.BaseAccount.decode(value));\n case \"/cosmos.auth.v1beta1.ModuleAccount\": {\n const baseAccount = auth_1.ModuleAccount.decode(value).baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n // vesting\n case \"/cosmos.vesting.v1beta1.BaseVestingAccount\": {\n const baseAccount = (_a = vesting_1.BaseVestingAccount.decode(value)) === null || _a === void 0 ? void 0 : _a.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.ContinuousVestingAccount\": {\n const baseAccount = (_c = (_b = vesting_1.ContinuousVestingAccount.decode(value)) === null || _b === void 0 ? void 0 : _b.baseVestingAccount) === null || _c === void 0 ? void 0 : _c.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.DelayedVestingAccount\": {\n const baseAccount = (_e = (_d = vesting_1.DelayedVestingAccount.decode(value)) === null || _d === void 0 ? void 0 : _d.baseVestingAccount) === null || _e === void 0 ? void 0 : _e.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n case \"/cosmos.vesting.v1beta1.PeriodicVestingAccount\": {\n const baseAccount = (_g = (_f = vesting_1.PeriodicVestingAccount.decode(value)) === null || _f === void 0 ? void 0 : _f.baseVestingAccount) === null || _g === void 0 ? void 0 : _g.baseAccount;\n (0, utils_1.assert)(baseAccount);\n return accountFromBaseAccount(baseAccount);\n }\n default:\n throw new Error(`Unsupported type: '${typeUrl}'`);\n }\n}\nexports.accountFromAny = accountFromAny;\n//# sourceMappingURL=accounts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAminoMsgTransfer = exports.isAminoMsgUndelegate = exports.isAminoMsgBeginRedelegate = exports.isAminoMsgDelegate = exports.isAminoMsgEditValidator = exports.isAminoMsgCreateValidator = exports.isAminoMsgUnjail = exports.isAminoMsgDeposit = exports.isAminoMsgVote = exports.isAminoMsgSubmitProposal = exports.isAminoMsgSubmitEvidence = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgVerifyInvariant = exports.isAminoMsgMultiSend = exports.isAminoMsgSend = void 0;\nfunction isAminoMsgSend(msg) {\n return msg.type === \"cosmos-sdk/MsgSend\";\n}\nexports.isAminoMsgSend = isAminoMsgSend;\nfunction isAminoMsgMultiSend(msg) {\n return msg.type === \"cosmos-sdk/MsgMultiSend\";\n}\nexports.isAminoMsgMultiSend = isAminoMsgMultiSend;\nfunction isAminoMsgVerifyInvariant(msg) {\n return msg.type === \"cosmos-sdk/MsgVerifyInvariant\";\n}\nexports.isAminoMsgVerifyInvariant = isAminoMsgVerifyInvariant;\nfunction isAminoMsgSetWithdrawAddress(msg) {\n // NOTE: Type string and names diverge here!\n return msg.type === \"cosmos-sdk/MsgModifyWithdrawAddress\";\n}\nexports.isAminoMsgSetWithdrawAddress = isAminoMsgSetWithdrawAddress;\nfunction isAminoMsgWithdrawDelegatorReward(msg) {\n // NOTE: Type string and names diverge here!\n return msg.type === \"cosmos-sdk/MsgWithdrawDelegationReward\";\n}\nexports.isAminoMsgWithdrawDelegatorReward = isAminoMsgWithdrawDelegatorReward;\nfunction isAminoMsgWithdrawValidatorCommission(msg) {\n return msg.type === \"cosmos-sdk/MsgWithdrawValidatorCommission\";\n}\nexports.isAminoMsgWithdrawValidatorCommission = isAminoMsgWithdrawValidatorCommission;\nfunction isAminoMsgFundCommunityPool(msg) {\n return msg.type === \"cosmos-sdk/MsgFundCommunityPool\";\n}\nexports.isAminoMsgFundCommunityPool = isAminoMsgFundCommunityPool;\nfunction isAminoMsgSubmitEvidence(msg) {\n return msg.type === \"cosmos-sdk/MsgSubmitEvidence\";\n}\nexports.isAminoMsgSubmitEvidence = isAminoMsgSubmitEvidence;\nfunction isAminoMsgSubmitProposal(msg) {\n return msg.type === \"cosmos-sdk/MsgSubmitProposal\";\n}\nexports.isAminoMsgSubmitProposal = isAminoMsgSubmitProposal;\nfunction isAminoMsgVote(msg) {\n return msg.type === \"cosmos-sdk/MsgVote\";\n}\nexports.isAminoMsgVote = isAminoMsgVote;\nfunction isAminoMsgDeposit(msg) {\n return msg.type === \"cosmos-sdk/MsgDeposit\";\n}\nexports.isAminoMsgDeposit = isAminoMsgDeposit;\nfunction isAminoMsgUnjail(msg) {\n return msg.type === \"cosmos-sdk/MsgUnjail\";\n}\nexports.isAminoMsgUnjail = isAminoMsgUnjail;\nfunction isAminoMsgCreateValidator(msg) {\n return msg.type === \"cosmos-sdk/MsgCreateValidator\";\n}\nexports.isAminoMsgCreateValidator = isAminoMsgCreateValidator;\nfunction isAminoMsgEditValidator(msg) {\n return msg.type === \"cosmos-sdk/MsgEditValidator\";\n}\nexports.isAminoMsgEditValidator = isAminoMsgEditValidator;\nfunction isAminoMsgDelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgDelegate\";\n}\nexports.isAminoMsgDelegate = isAminoMsgDelegate;\nfunction isAminoMsgBeginRedelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgBeginRedelegate\";\n}\nexports.isAminoMsgBeginRedelegate = isAminoMsgBeginRedelegate;\nfunction isAminoMsgUndelegate(msg) {\n return msg.type === \"cosmos-sdk/MsgUndelegate\";\n}\nexports.isAminoMsgUndelegate = isAminoMsgUndelegate;\nfunction isAminoMsgTransfer(msg) {\n return msg.type === \"cosmos-sdk/MsgTransfer\";\n}\nexports.isAminoMsgTransfer = isAminoMsgTransfer;\n//# sourceMappingURL=aminomsgs.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AminoTypes = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst gov_1 = require(\"cosmjs-types/cosmos/gov/v1beta1/gov\");\nconst any_1 = require(\"cosmjs-types/google/protobuf/any\");\nconst long_1 = __importDefault(require(\"long\"));\nfunction omitDefault(input) {\n if (typeof input === \"string\") {\n return input === \"\" ? undefined : input;\n }\n if (typeof input === \"number\") {\n return input === 0 ? undefined : input;\n }\n if (long_1.default.isLong(input)) {\n return input.isZero() ? undefined : input;\n }\n throw new Error(`Got unsupported type '${typeof input}'`);\n}\nfunction createDefaultTypes(prefix) {\n return {\n // authz\n \"/cosmos.authz.v1beta1.MsgGrant\": \"not_supported_by_chain\",\n \"/cosmos.authz.v1beta1.MsgExec\": \"not_supported_by_chain\",\n \"/cosmos.authz.v1beta1.MsgRevoke\": \"not_supported_by_chain\",\n // bank\n \"/cosmos.bank.v1beta1.MsgSend\": {\n aminoType: \"cosmos-sdk/MsgSend\",\n toAmino: ({ fromAddress, toAddress, amount }) => ({\n from_address: fromAddress,\n to_address: toAddress,\n amount: [...amount],\n }),\n fromAmino: ({ from_address, to_address, amount }) => ({\n fromAddress: from_address,\n toAddress: to_address,\n amount: [...amount],\n }),\n },\n \"/cosmos.bank.v1beta1.MsgMultiSend\": {\n aminoType: \"cosmos-sdk/MsgMultiSend\",\n toAmino: ({ inputs, outputs }) => ({\n inputs: inputs.map((input) => ({\n address: input.address,\n coins: [...input.coins],\n })),\n outputs: outputs.map((output) => ({\n address: output.address,\n coins: [...output.coins],\n })),\n }),\n fromAmino: ({ inputs, outputs }) => ({\n inputs: inputs.map((input) => ({\n address: input.address,\n coins: [...input.coins],\n })),\n outputs: outputs.map((output) => ({\n address: output.address,\n coins: [...output.coins],\n })),\n }),\n },\n // distribution\n \"/cosmos.distribution.v1beta1.MsgFundCommunityPool\": {\n aminoType: \"cosmos-sdk/MsgFundCommunityPool\",\n toAmino: ({ amount, depositor }) => ({\n amount: [...amount],\n depositor: depositor,\n }),\n fromAmino: ({ amount, depositor }) => ({\n amount: [...amount],\n depositor: depositor,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\": {\n aminoType: \"cosmos-sdk/MsgModifyWithdrawAddress\",\n toAmino: ({ delegatorAddress, withdrawAddress, }) => ({\n delegator_address: delegatorAddress,\n withdraw_address: withdrawAddress,\n }),\n fromAmino: ({ delegator_address, withdraw_address, }) => ({\n delegatorAddress: delegator_address,\n withdrawAddress: withdraw_address,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\": {\n aminoType: \"cosmos-sdk/MsgWithdrawDelegationReward\",\n toAmino: ({ delegatorAddress, validatorAddress, }) => ({\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n }),\n fromAmino: ({ delegator_address, validator_address, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n }),\n },\n \"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\": {\n aminoType: \"cosmos-sdk/MsgWithdrawValidatorCommission\",\n toAmino: ({ validatorAddress, }) => ({\n validator_address: validatorAddress,\n }),\n fromAmino: ({ validator_address, }) => ({\n validatorAddress: validator_address,\n }),\n },\n // gov\n \"/cosmos.gov.v1beta1.MsgDeposit\": {\n aminoType: \"cosmos-sdk/MsgDeposit\",\n toAmino: ({ amount, depositor, proposalId }) => {\n return {\n amount,\n depositor,\n proposal_id: proposalId.toString(),\n };\n },\n fromAmino: ({ amount, depositor, proposal_id }) => {\n return {\n amount: Array.from(amount),\n depositor,\n proposalId: long_1.default.fromString(proposal_id),\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgVote\": {\n aminoType: \"cosmos-sdk/MsgVote\",\n toAmino: ({ option, proposalId, voter }) => {\n return {\n option: option,\n proposal_id: proposalId.toString(),\n voter: voter,\n };\n },\n fromAmino: ({ option, proposal_id, voter }) => {\n return {\n option: (0, gov_1.voteOptionFromJSON)(option),\n proposalId: long_1.default.fromString(proposal_id),\n voter: voter,\n };\n },\n },\n \"/cosmos.gov.v1beta1.MsgSubmitProposal\": {\n aminoType: \"cosmos-sdk/MsgSubmitProposal\",\n toAmino: ({ initialDeposit, proposer, content, }) => {\n (0, utils_1.assertDefinedAndNotNull)(content);\n let proposal;\n switch (content.typeUrl) {\n case \"/cosmos.gov.v1beta1.TextProposal\": {\n const textProposal = gov_1.TextProposal.decode(content.value);\n proposal = {\n type: \"cosmos-sdk/TextProposal\",\n value: {\n description: textProposal.description,\n title: textProposal.title,\n },\n };\n break;\n }\n default:\n throw new Error(`Unsupported proposal type: '${content.typeUrl}'`);\n }\n return {\n initial_deposit: initialDeposit,\n proposer: proposer,\n content: proposal,\n };\n },\n fromAmino: ({ initial_deposit, proposer, content, }) => {\n let any_content;\n switch (content.type) {\n case \"cosmos-sdk/TextProposal\": {\n const { value } = content;\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(value));\n const { title, description } = value;\n (0, utils_1.assert)(typeof title === \"string\");\n (0, utils_1.assert)(typeof description === \"string\");\n any_content = any_1.Any.fromPartial({\n typeUrl: \"/cosmos.gov.v1beta1.TextProposal\",\n value: gov_1.TextProposal.encode(gov_1.TextProposal.fromPartial({\n title: title,\n description: description,\n })).finish(),\n });\n break;\n }\n default:\n throw new Error(`Unsupported proposal type: '${content.type}'`);\n }\n return {\n initialDeposit: Array.from(initial_deposit),\n proposer: proposer,\n content: any_content,\n };\n },\n },\n // staking\n \"/cosmos.staking.v1beta1.MsgBeginRedelegate\": {\n aminoType: \"cosmos-sdk/MsgBeginRedelegate\",\n toAmino: ({ delegatorAddress, validatorSrcAddress, validatorDstAddress, amount, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_src_address: validatorSrcAddress,\n validator_dst_address: validatorDstAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_src_address, validator_dst_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorSrcAddress: validator_src_address,\n validatorDstAddress: validator_dst_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgCreateValidator\": {\n aminoType: \"cosmos-sdk/MsgCreateValidator\",\n toAmino: ({ description, commission, minSelfDelegation, delegatorAddress, validatorAddress, pubkey, value, }) => {\n (0, utils_1.assertDefinedAndNotNull)(description, \"missing description\");\n (0, utils_1.assertDefinedAndNotNull)(commission, \"missing commission\");\n (0, utils_1.assertDefinedAndNotNull)(pubkey, \"missing pubkey\");\n (0, utils_1.assertDefinedAndNotNull)(value, \"missing value\");\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n security_contact: description.securityContact,\n details: description.details,\n },\n commission: {\n rate: commission.rate,\n max_rate: commission.maxRate,\n max_change_rate: commission.maxChangeRate,\n },\n min_self_delegation: minSelfDelegation,\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n pubkey: (0, amino_1.encodeBech32Pubkey)({\n type: \"tendermint/PubKeySecp256k1\",\n value: (0, encoding_1.toBase64)(pubkey.value),\n }, prefix),\n value: value,\n };\n },\n fromAmino: ({ description, commission, min_self_delegation, delegator_address, validator_address, pubkey, value, }) => {\n const decodedPubkey = (0, amino_1.decodeBech32Pubkey)(pubkey);\n if (decodedPubkey.type !== \"tendermint/PubKeySecp256k1\") {\n throw new Error(\"Only Secp256k1 public keys are supported\");\n }\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n securityContact: description.security_contact,\n details: description.details,\n },\n commission: {\n rate: commission.rate,\n maxRate: commission.max_rate,\n maxChangeRate: commission.max_change_rate,\n },\n minSelfDelegation: min_self_delegation,\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n pubkey: {\n typeUrl: \"/cosmos.crypto.secp256k1.PubKey\",\n value: (0, encoding_1.fromBase64)(decodedPubkey.value),\n },\n value: value,\n };\n },\n },\n \"/cosmos.staking.v1beta1.MsgDelegate\": {\n aminoType: \"cosmos-sdk/MsgDelegate\",\n toAmino: ({ delegatorAddress, validatorAddress, amount }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgEditValidator\": {\n aminoType: \"cosmos-sdk/MsgEditValidator\",\n toAmino: ({ description, commissionRate, minSelfDelegation, validatorAddress, }) => {\n (0, utils_1.assertDefinedAndNotNull)(description, \"missing description\");\n return {\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n security_contact: description.securityContact,\n details: description.details,\n },\n commission_rate: commissionRate,\n min_self_delegation: minSelfDelegation,\n validator_address: validatorAddress,\n };\n },\n fromAmino: ({ description, commission_rate, min_self_delegation, validator_address, }) => ({\n description: {\n moniker: description.moniker,\n identity: description.identity,\n website: description.website,\n securityContact: description.security_contact,\n details: description.details,\n },\n commissionRate: commission_rate,\n minSelfDelegation: min_self_delegation,\n validatorAddress: validator_address,\n }),\n },\n \"/cosmos.staking.v1beta1.MsgUndelegate\": {\n aminoType: \"cosmos-sdk/MsgUndelegate\",\n toAmino: ({ delegatorAddress, validatorAddress, amount, }) => {\n (0, utils_1.assertDefinedAndNotNull)(amount, \"missing amount\");\n return {\n delegator_address: delegatorAddress,\n validator_address: validatorAddress,\n amount: amount,\n };\n },\n fromAmino: ({ delegator_address, validator_address, amount, }) => ({\n delegatorAddress: delegator_address,\n validatorAddress: validator_address,\n amount: amount,\n }),\n },\n // ibc\n \"/ibc.applications.transfer.v1.MsgTransfer\": {\n aminoType: \"cosmos-sdk/MsgTransfer\",\n toAmino: ({ sourcePort, sourceChannel, token, sender, receiver, timeoutHeight, timeoutTimestamp, }) => {\n var _a, _b, _c;\n return ({\n source_port: sourcePort,\n source_channel: sourceChannel,\n token: token,\n sender: sender,\n receiver: receiver,\n timeout_height: timeoutHeight\n ? {\n revision_height: (_a = omitDefault(timeoutHeight.revisionHeight)) === null || _a === void 0 ? void 0 : _a.toString(),\n revision_number: (_b = omitDefault(timeoutHeight.revisionNumber)) === null || _b === void 0 ? void 0 : _b.toString(),\n }\n : {},\n timeout_timestamp: (_c = omitDefault(timeoutTimestamp)) === null || _c === void 0 ? void 0 : _c.toString(),\n });\n },\n fromAmino: ({ source_port, source_channel, token, sender, receiver, timeout_height, timeout_timestamp, }) => ({\n sourcePort: source_port,\n sourceChannel: source_channel,\n token: token,\n sender: sender,\n receiver: receiver,\n timeoutHeight: timeout_height\n ? {\n revisionHeight: long_1.default.fromString(timeout_height.revision_height || \"0\", true),\n revisionNumber: long_1.default.fromString(timeout_height.revision_number || \"0\", true),\n }\n : undefined,\n timeoutTimestamp: long_1.default.fromString(timeout_timestamp || \"0\", true),\n }),\n },\n \"/cosmos.feegrant.v1beta1.MsgGrantAllowance\": \"not_supported_by_chain\",\n \"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\": \"not_supported_by_chain\",\n };\n}\nfunction isAminoConverter(converter) {\n return typeof converter[1] !== \"string\";\n}\n/**\n * A map from Stargate message types as used in the messages's `Any` type\n * to Amino types.\n */\nclass AminoTypes {\n constructor({ prefix, additions = {} }) {\n const defaultTypes = createDefaultTypes(prefix);\n this.register = { ...defaultTypes, ...additions };\n }\n toAmino({ typeUrl, value }) {\n const converter = this.register[typeUrl];\n if (converter === \"not_supported_by_chain\") {\n throw new Error(`The message type '${typeUrl}' cannot be signed using the Amino JSON sign mode because this is not supported by chain.`);\n }\n if (!converter) {\n throw new Error(`Type URL '${typeUrl}' does not exist in the Amino message type register. ` +\n \"If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. \" +\n \"If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.\");\n }\n return {\n type: converter.aminoType,\n value: converter.toAmino(value),\n };\n }\n fromAmino({ type, value }) {\n const matches = Object.entries(this.register)\n .filter(isAminoConverter)\n .filter(([_typeUrl, { aminoType }]) => aminoType === type);\n switch (matches.length) {\n case 0: {\n throw new Error(`Amino type identifier '${type}' does not exist in the Amino message type register. ` +\n \"If you need support for this message type, you can pass in additional entries to the AminoTypes constructor. \" +\n \"If you think this message type should be included by default, please open an issue at https://github.com/cosmos/cosmjs/issues.\");\n }\n case 1: {\n const [typeUrl, converter] = matches[0];\n return {\n typeUrl: typeUrl,\n value: converter.fromAmino(value),\n };\n }\n default:\n throw new Error(`Multiple types are registered with Amino type identifier '${type}': '` +\n matches\n .map(([key, _value]) => key)\n .sort()\n .join(\"', '\") +\n \"'. Thus fromAmino cannot be performed.\");\n }\n }\n}\nexports.AminoTypes = AminoTypes;\n//# sourceMappingURL=aminotypes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsgVoteEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgDepositEncodeObject = exports.isMsgTransferEncodeObject = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.isMsgUndelegateEncodeObject = exports.isMsgDelegateEncodeObject = exports.isMsgSendEncodeObject = void 0;\nfunction isMsgSendEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.bank.v1beta1.MsgSend\";\n}\nexports.isMsgSendEncodeObject = isMsgSendEncodeObject;\nfunction isMsgDelegateEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.staking.v1beta1.MsgDelegate\";\n}\nexports.isMsgDelegateEncodeObject = isMsgDelegateEncodeObject;\nfunction isMsgUndelegateEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.staking.v1beta1.MsgUndelegate\";\n}\nexports.isMsgUndelegateEncodeObject = isMsgUndelegateEncodeObject;\nfunction isMsgWithdrawDelegatorRewardEncodeObject(encodeObject) {\n return (encodeObject.typeUrl ===\n \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\");\n}\nexports.isMsgWithdrawDelegatorRewardEncodeObject = isMsgWithdrawDelegatorRewardEncodeObject;\nfunction isMsgTransferEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/ibc.applications.transfer.v1.MsgTransfer\";\n}\nexports.isMsgTransferEncodeObject = isMsgTransferEncodeObject;\nfunction isMsgDepositEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.gov.v1beta1.MsgDeposit\";\n}\nexports.isMsgDepositEncodeObject = isMsgDepositEncodeObject;\nfunction isMsgSubmitProposalEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.gov.v1beta1.MsgSubmitProposal\";\n}\nexports.isMsgSubmitProposalEncodeObject = isMsgSubmitProposalEncodeObject;\nfunction isMsgVoteEncodeObject(encodeObject) {\n return encodeObject.typeUrl === \"/cosmos.gov.v1beta1.MsgVote\";\n}\nexports.isMsgVoteEncodeObject = isMsgVoteEncodeObject;\n//# sourceMappingURL=encodeobjects.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateFee = exports.GasPrice = void 0;\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\n/**\n * Denom checker for the Cosmos SDK 0.42 denom pattern\n * (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601).\n *\n * This is like a regexp but with helpful error messages.\n */\nfunction checkDenom(denom) {\n if (denom.length < 3 || denom.length > 128) {\n throw new Error(\"Denom must be between 3 and 128 characters\");\n }\n}\n/**\n * A gas price, i.e. the price of a single unit of gas. This is typically a fraction of\n * the smallest fee token unit, such as 0.012utoken.\n */\nclass GasPrice {\n constructor(amount, denom) {\n this.amount = amount;\n this.denom = denom;\n }\n /**\n * Parses a gas price formatted as ``, e.g. `GasPrice.fromString(\"0.012utoken\")`.\n *\n * The denom must match the Cosmos SDK 0.42 pattern (https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/types/coin.go#L599-L601).\n * See `GasPrice` in @cosmjs/stargate for a more generic matcher.\n *\n * Separators are not yet supported.\n */\n static fromString(gasPrice) {\n // Use Decimal.fromUserInput and checkDenom for detailed checks and helpful error messages\n const matchResult = gasPrice.match(/^([0-9.]+)([a-z][a-z0-9]*)$/i);\n if (!matchResult) {\n throw new Error(\"Invalid gas price string\");\n }\n const [_, amount, denom] = matchResult;\n checkDenom(denom);\n const fractionalDigits = 18;\n const decimalAmount = math_1.Decimal.fromUserInput(amount, fractionalDigits);\n return new GasPrice(decimalAmount, denom);\n }\n /**\n * Returns a string representation of this gas price, e.g. \"0.025uatom\".\n * This can be used as an input to `GasPrice.fromString`.\n */\n toString() {\n return this.amount.toString() + this.denom;\n }\n}\nexports.GasPrice = GasPrice;\nfunction calculateFee(gasLimit, gasPrice) {\n const processedGasPrice = typeof gasPrice === \"string\" ? GasPrice.fromString(gasPrice) : gasPrice;\n const { denom, amount: gasPriceAmount } = processedGasPrice;\n const amount = Math.ceil(gasPriceAmount.multiply(new math_1.Uint53(gasLimit)).toFloatApproximation());\n return {\n amount: (0, proto_signing_1.coins)(amount, denom),\n gas: gasLimit.toString(),\n };\n}\nexports.calculateFee = calculateFee;\n//# sourceMappingURL=fee.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertIsDeliverTxSuccess = exports.assertIsDeliverTxFailure = exports.SigningStargateClient = exports.defaultRegistryTypes = exports.isSearchByTagsQuery = exports.isSearchBySentFromOrToQuery = exports.isSearchByHeightQuery = exports.setupTxExtension = exports.setupStakingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthExtension = exports.QueryClient = exports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.makeMultisignedTx = exports.logs = exports.GasPrice = exports.calculateFee = exports.isMsgWithdrawDelegatorRewardEncodeObject = exports.isMsgVoteEncodeObject = exports.isMsgUndelegateEncodeObject = exports.isMsgTransferEncodeObject = exports.isMsgSubmitProposalEncodeObject = exports.isMsgSendEncodeObject = exports.isMsgDepositEncodeObject = exports.isMsgDelegateEncodeObject = exports.AminoTypes = exports.isAminoMsgWithdrawValidatorCommission = exports.isAminoMsgWithdrawDelegatorReward = exports.isAminoMsgVote = exports.isAminoMsgVerifyInvariant = exports.isAminoMsgUnjail = exports.isAminoMsgUndelegate = exports.isAminoMsgSubmitProposal = exports.isAminoMsgSubmitEvidence = exports.isAminoMsgSetWithdrawAddress = exports.isAminoMsgSend = exports.isAminoMsgMultiSend = exports.isAminoMsgFundCommunityPool = exports.isAminoMsgEditValidator = exports.isAminoMsgDeposit = exports.isAminoMsgDelegate = exports.isAminoMsgCreateValidator = exports.isAminoMsgBeginRedelegate = exports.accountFromAny = void 0;\nexports.parseCoins = exports.makeCosmoshubPath = exports.coins = exports.coin = exports.TimeoutError = exports.StargateClient = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = void 0;\nvar accounts_1 = require(\"./accounts\");\nObject.defineProperty(exports, \"accountFromAny\", { enumerable: true, get: function () { return accounts_1.accountFromAny; } });\nvar aminomsgs_1 = require(\"./aminomsgs\");\nObject.defineProperty(exports, \"isAminoMsgBeginRedelegate\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgBeginRedelegate; } });\nObject.defineProperty(exports, \"isAminoMsgCreateValidator\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgCreateValidator; } });\nObject.defineProperty(exports, \"isAminoMsgDelegate\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgDelegate; } });\nObject.defineProperty(exports, \"isAminoMsgDeposit\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgDeposit; } });\nObject.defineProperty(exports, \"isAminoMsgEditValidator\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgEditValidator; } });\nObject.defineProperty(exports, \"isAminoMsgFundCommunityPool\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgFundCommunityPool; } });\nObject.defineProperty(exports, \"isAminoMsgMultiSend\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgMultiSend; } });\nObject.defineProperty(exports, \"isAminoMsgSend\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgSend; } });\nObject.defineProperty(exports, \"isAminoMsgSetWithdrawAddress\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgSetWithdrawAddress; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitEvidence\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgSubmitEvidence; } });\nObject.defineProperty(exports, \"isAminoMsgSubmitProposal\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgSubmitProposal; } });\nObject.defineProperty(exports, \"isAminoMsgUndelegate\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgUndelegate; } });\nObject.defineProperty(exports, \"isAminoMsgUnjail\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgUnjail; } });\nObject.defineProperty(exports, \"isAminoMsgVerifyInvariant\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgVerifyInvariant; } });\nObject.defineProperty(exports, \"isAminoMsgVote\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgVote; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawDelegatorReward\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgWithdrawDelegatorReward; } });\nObject.defineProperty(exports, \"isAminoMsgWithdrawValidatorCommission\", { enumerable: true, get: function () { return aminomsgs_1.isAminoMsgWithdrawValidatorCommission; } });\nvar aminotypes_1 = require(\"./aminotypes\");\nObject.defineProperty(exports, \"AminoTypes\", { enumerable: true, get: function () { return aminotypes_1.AminoTypes; } });\nvar encodeobjects_1 = require(\"./encodeobjects\");\nObject.defineProperty(exports, \"isMsgDelegateEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgDelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgDepositEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgDepositEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSendEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgSendEncodeObject; } });\nObject.defineProperty(exports, \"isMsgSubmitProposalEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgSubmitProposalEncodeObject; } });\nObject.defineProperty(exports, \"isMsgTransferEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgTransferEncodeObject; } });\nObject.defineProperty(exports, \"isMsgUndelegateEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgUndelegateEncodeObject; } });\nObject.defineProperty(exports, \"isMsgVoteEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgVoteEncodeObject; } });\nObject.defineProperty(exports, \"isMsgWithdrawDelegatorRewardEncodeObject\", { enumerable: true, get: function () { return encodeobjects_1.isMsgWithdrawDelegatorRewardEncodeObject; } });\nvar fee_1 = require(\"./fee\");\nObject.defineProperty(exports, \"calculateFee\", { enumerable: true, get: function () { return fee_1.calculateFee; } });\nObject.defineProperty(exports, \"GasPrice\", { enumerable: true, get: function () { return fee_1.GasPrice; } });\nexports.logs = __importStar(require(\"./logs\"));\nvar multisignature_1 = require(\"./multisignature\");\nObject.defineProperty(exports, \"makeMultisignedTx\", { enumerable: true, get: function () { return multisignature_1.makeMultisignedTx; } });\nvar queries_1 = require(\"./queries\");\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return queries_1.createPagination; } });\nObject.defineProperty(exports, \"createProtobufRpcClient\", { enumerable: true, get: function () { return queries_1.createProtobufRpcClient; } });\nObject.defineProperty(exports, \"decodeCosmosSdkDecFromProto\", { enumerable: true, get: function () { return queries_1.decodeCosmosSdkDecFromProto; } });\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return queries_1.QueryClient; } });\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return queries_1.setupAuthExtension; } });\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return queries_1.setupBankExtension; } });\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return queries_1.setupDistributionExtension; } });\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return queries_1.setupGovExtension; } });\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return queries_1.setupIbcExtension; } });\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return queries_1.setupMintExtension; } });\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return queries_1.setupStakingExtension; } });\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return queries_1.setupTxExtension; } });\nvar search_1 = require(\"./search\");\nObject.defineProperty(exports, \"isSearchByHeightQuery\", { enumerable: true, get: function () { return search_1.isSearchByHeightQuery; } });\nObject.defineProperty(exports, \"isSearchBySentFromOrToQuery\", { enumerable: true, get: function () { return search_1.isSearchBySentFromOrToQuery; } });\nObject.defineProperty(exports, \"isSearchByTagsQuery\", { enumerable: true, get: function () { return search_1.isSearchByTagsQuery; } });\nvar signingstargateclient_1 = require(\"./signingstargateclient\");\nObject.defineProperty(exports, \"defaultRegistryTypes\", { enumerable: true, get: function () { return signingstargateclient_1.defaultRegistryTypes; } });\nObject.defineProperty(exports, \"SigningStargateClient\", { enumerable: true, get: function () { return signingstargateclient_1.SigningStargateClient; } });\nvar stargateclient_1 = require(\"./stargateclient\");\nObject.defineProperty(exports, \"assertIsDeliverTxFailure\", { enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxFailure; } });\nObject.defineProperty(exports, \"assertIsDeliverTxSuccess\", { enumerable: true, get: function () { return stargateclient_1.assertIsDeliverTxSuccess; } });\nObject.defineProperty(exports, \"isDeliverTxFailure\", { enumerable: true, get: function () { return stargateclient_1.isDeliverTxFailure; } });\nObject.defineProperty(exports, \"isDeliverTxSuccess\", { enumerable: true, get: function () { return stargateclient_1.isDeliverTxSuccess; } });\nObject.defineProperty(exports, \"StargateClient\", { enumerable: true, get: function () { return stargateclient_1.StargateClient; } });\nObject.defineProperty(exports, \"TimeoutError\", { enumerable: true, get: function () { return stargateclient_1.TimeoutError; } });\nvar proto_signing_1 = require(\"@cosmjs/proto-signing\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return proto_signing_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return proto_signing_1.coins; } });\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return proto_signing_1.makeCosmoshubPath; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return proto_signing_1.parseCoins; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAttribute = exports.parseRawLog = exports.parseLogs = exports.parseLog = exports.parseEvent = exports.parseAttribute = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nfunction parseAttribute(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Attribute must be a non-null object\");\n const { key, value } = input;\n if (typeof key !== \"string\" || !key)\n throw new Error(\"Attribute's key must be a non-empty string\");\n if (typeof value !== \"string\" && typeof value !== \"undefined\") {\n throw new Error(\"Attribute's value must be a string or unset\");\n }\n return {\n key: key,\n value: value || \"\",\n };\n}\nexports.parseAttribute = parseAttribute;\nfunction parseEvent(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Event must be a non-null object\");\n const { type, attributes } = input;\n if (typeof type !== \"string\" || type === \"\") {\n throw new Error(`Event type must be a non-empty string`);\n }\n if (!Array.isArray(attributes))\n throw new Error(\"Event's attributes must be an array\");\n return {\n type: type,\n attributes: attributes.map(parseAttribute),\n };\n}\nexports.parseEvent = parseEvent;\nfunction parseLog(input) {\n if (!(0, utils_1.isNonNullObject)(input))\n throw new Error(\"Log must be a non-null object\");\n const { msg_index, log, events } = input;\n if (typeof msg_index !== \"number\")\n throw new Error(\"Log's msg_index must be a number\");\n if (typeof log !== \"string\")\n throw new Error(\"Log's log must be a string\");\n if (!Array.isArray(events))\n throw new Error(\"Log's events must be an array\");\n return {\n msg_index: msg_index,\n log: log,\n events: events.map(parseEvent),\n };\n}\nexports.parseLog = parseLog;\nfunction parseLogs(input) {\n if (!Array.isArray(input))\n throw new Error(\"Logs must be an array\");\n return input.map(parseLog);\n}\nexports.parseLogs = parseLogs;\nfunction parseRawLog(input = \"[]\") {\n const logsToParse = JSON.parse(input).map(({ events }, i) => ({\n msg_index: i,\n events,\n log: \"\",\n }));\n return parseLogs(logsToParse);\n}\nexports.parseRawLog = parseRawLog;\n/**\n * Searches in logs for the first event of the given event type and in that event\n * for the first first attribute with the given attribute key.\n *\n * Throws if the attribute was not found.\n */\nfunction findAttribute(logs, eventType, attrKey) {\n var _a;\n const firstLogs = logs.find(() => true);\n const out = (_a = firstLogs === null || firstLogs === void 0 ? void 0 : firstLogs.events.find((event) => event.type === eventType)) === null || _a === void 0 ? void 0 : _a.attributes.find((attr) => attr.key === attrKey);\n if (!out) {\n throw new Error(`Could not find attribute '${attrKey}' in first event of type '${eventType}' in first log.`);\n }\n return out;\n}\nexports.findAttribute = findAttribute;\n//# sourceMappingURL=logs.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeMultisignedTx = exports.makeCompactBitArray = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst multisig_1 = require(\"cosmjs-types/cosmos/crypto/multisig/v1beta1/multisig\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\nfunction makeCompactBitArray(bits) {\n const byteCount = Math.ceil(bits.length / 8);\n const extraBits = bits.length - Math.floor(bits.length / 8) * 8;\n const bytes = new Uint8Array(byteCount); // zero-filled\n bits.forEach((value, index) => {\n const bytePos = Math.floor(index / 8);\n const bitPos = index % 8;\n // eslint-disable-next-line no-bitwise\n if (value)\n bytes[bytePos] |= 0b1 << (8 - 1 - bitPos);\n });\n return multisig_1.CompactBitArray.fromPartial({ elems: bytes, extraBitsStored: extraBits });\n}\nexports.makeCompactBitArray = makeCompactBitArray;\nfunction makeMultisignedTx(multisigPubkey, sequence, fee, bodyBytes, signatures) {\n const addresses = Array.from(signatures.keys());\n const prefix = (0, encoding_1.fromBech32)(addresses[0]).prefix;\n const signers = Array(multisigPubkey.value.pubkeys.length).fill(false);\n const signaturesList = new Array();\n for (let i = 0; i < multisigPubkey.value.pubkeys.length; i++) {\n const signerAddress = (0, amino_1.pubkeyToAddress)(multisigPubkey.value.pubkeys[i], prefix);\n const signature = signatures.get(signerAddress);\n if (signature) {\n signers[i] = true;\n signaturesList.push(signature);\n }\n }\n const signerInfo = {\n publicKey: (0, proto_signing_1.encodePubkey)(multisigPubkey),\n modeInfo: {\n multi: {\n bitarray: makeCompactBitArray(signers),\n modeInfos: signaturesList.map((_) => ({ single: { mode: signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON } })),\n },\n },\n sequence: long_1.default.fromNumber(sequence),\n };\n const authInfo = tx_1.AuthInfo.fromPartial({\n signerInfos: [signerInfo],\n fee: {\n amount: [...fee.amount],\n gasLimit: long_1.default.fromString(fee.gas),\n },\n });\n const authInfoBytes = tx_1.AuthInfo.encode(authInfo).finish();\n const signedTx = tx_2.TxRaw.fromPartial({\n bodyBytes: bodyBytes,\n authInfoBytes: authInfoBytes,\n signatures: [multisig_1.MultiSignature.encode(multisig_1.MultiSignature.fromPartial({ signatures: signaturesList })).finish()],\n });\n return signedTx;\n}\nexports.makeMultisignedTx = makeMultisignedTx;\n//# sourceMappingURL=multisignature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupAuthExtension = void 0;\nconst query_1 = require(\"cosmjs-types/cosmos/auth/v1beta1/query\");\nconst utils_1 = require(\"./utils\");\nfunction setupAuthExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n auth: {\n account: async (address) => {\n const { account } = await queryService.Account({ address: address });\n return account !== null && account !== void 0 ? account : null;\n },\n },\n };\n}\nexports.setupAuthExtension = setupAuthExtension;\n//# sourceMappingURL=auth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupBankExtension = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst utils_1 = require(\"@cosmjs/utils\");\nconst query_1 = require(\"cosmjs-types/cosmos/bank/v1beta1/query\");\nconst utils_2 = require(\"./utils\");\nfunction setupBankExtension(base) {\n const rpc = (0, utils_2.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n bank: {\n balance: async (address, denom) => {\n const { balance } = await queryService.Balance({ address: address, denom: denom });\n (0, utils_1.assert)(balance);\n return balance;\n },\n allBalances: async (address) => {\n const { balances } = await queryService.AllBalances({ address: address });\n return balances;\n },\n totalSupply: async () => {\n const { supply } = await queryService.TotalSupply({});\n return supply;\n },\n supplyOf: async (denom) => {\n const { amount } = await queryService.SupplyOf({ denom: denom });\n (0, utils_1.assert)(amount);\n return amount;\n },\n denomMetadata: async (denom) => {\n const { metadata } = await queryService.DenomMetadata({ denom });\n (0, utils_1.assert)(metadata);\n return metadata;\n },\n denomsMetadata: async () => {\n const { metadatas } = await queryService.DenomsMetadata({\n pagination: undefined, // Not implemented\n });\n return metadatas;\n },\n },\n };\n}\nexports.setupBankExtension = setupBankExtension;\n//# sourceMappingURL=bank.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupDistributionExtension = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst query_1 = require(\"cosmjs-types/cosmos/distribution/v1beta1/query\");\nconst long_1 = __importDefault(require(\"long\"));\nconst utils_1 = require(\"./utils\");\nfunction setupDistributionExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n distribution: {\n communityPool: async () => {\n const response = await queryService.CommunityPool({});\n return response;\n },\n delegationRewards: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.DelegationRewards({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n });\n return response;\n },\n delegationTotalRewards: async (delegatorAddress) => {\n const response = await queryService.DelegationTotalRewards({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n delegatorValidators: async (delegatorAddress) => {\n const response = await queryService.DelegatorValidators({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n delegatorWithdrawAddress: async (delegatorAddress) => {\n const response = await queryService.DelegatorWithdrawAddress({\n delegatorAddress: delegatorAddress,\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n validatorCommission: async (validatorAddress) => {\n const response = await queryService.ValidatorCommission({\n validatorAddress: validatorAddress,\n });\n return response;\n },\n validatorOutstandingRewards: async (validatorAddress) => {\n const response = await queryService.ValidatorOutstandingRewards({\n validatorAddress: validatorAddress,\n });\n return response;\n },\n validatorSlashes: async (validatorAddress, startingHeight, endingHeight, paginationKey) => {\n const response = await queryService.ValidatorSlashes({\n validatorAddress: validatorAddress,\n startingHeight: long_1.default.fromNumber(startingHeight, true),\n endingHeight: long_1.default.fromNumber(endingHeight, true),\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\nexports.setupDistributionExtension = setupDistributionExtension;\n//# sourceMappingURL=distribution.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupGovExtension = void 0;\nconst query_1 = require(\"cosmjs-types/cosmos/gov/v1beta1/query\");\nconst utils_1 = require(\"./utils\");\nfunction setupGovExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n gov: {\n params: async (parametersType) => {\n const response = await queryService.Params({ paramsType: parametersType });\n return response;\n },\n proposals: async (proposalStatus, depositorAddress, voterAddress, paginationKey) => {\n const response = await queryService.Proposals({\n proposalStatus,\n depositor: depositorAddress,\n voter: voterAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n proposal: async (proposalId) => {\n const response = await queryService.Proposal({ proposalId: (0, utils_1.longify)(proposalId) });\n return response;\n },\n deposits: async (proposalId, paginationKey) => {\n const response = await queryService.Deposits({\n proposalId: (0, utils_1.longify)(proposalId),\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n deposit: async (proposalId, depositorAddress) => {\n const response = await queryService.Deposit({\n proposalId: (0, utils_1.longify)(proposalId),\n depositor: depositorAddress,\n });\n return response;\n },\n tally: async (proposalId) => {\n const response = await queryService.TallyResult({\n proposalId: (0, utils_1.longify)(proposalId),\n });\n return response;\n },\n votes: async (proposalId, paginationKey) => {\n const response = await queryService.Votes({\n proposalId: (0, utils_1.longify)(proposalId),\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n vote: async (proposalId, voterAddress) => {\n const response = await queryService.Vote({\n proposalId: (0, utils_1.longify)(proposalId),\n voter: voterAddress,\n });\n return response;\n },\n },\n };\n}\nexports.setupGovExtension = setupGovExtension;\n//# sourceMappingURL=gov.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupIbcExtension = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst query_1 = require(\"cosmjs-types/ibc/applications/transfer/v1/query\");\nconst channel_1 = require(\"cosmjs-types/ibc/core/channel/v1/channel\");\nconst query_2 = require(\"cosmjs-types/ibc/core/channel/v1/query\");\nconst query_3 = require(\"cosmjs-types/ibc/core/client/v1/query\");\nconst query_4 = require(\"cosmjs-types/ibc/core/connection/v1/query\");\nconst tendermint_1 = require(\"cosmjs-types/ibc/lightclients/tendermint/v1/tendermint\");\nconst long_1 = __importDefault(require(\"long\"));\nconst utils_1 = require(\"./utils\");\nfunction decodeTendermintClientStateAny(clientState) {\n if ((clientState === null || clientState === void 0 ? void 0 : clientState.typeUrl) !== \"/ibc.lightclients.tendermint.v1.ClientState\") {\n throw new Error(`Unexpected client state type: ${clientState === null || clientState === void 0 ? void 0 : clientState.typeUrl}`);\n }\n return tendermint_1.ClientState.decode(clientState.value);\n}\nfunction decodeTendermintConsensusStateAny(clientState) {\n if ((clientState === null || clientState === void 0 ? void 0 : clientState.typeUrl) !== \"/ibc.lightclients.tendermint.v1.ConsensusState\") {\n throw new Error(`Unexpected client state type: ${clientState === null || clientState === void 0 ? void 0 : clientState.typeUrl}`);\n }\n return tendermint_1.ConsensusState.decode(clientState.value);\n}\nfunction setupIbcExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n // Use these services to get easy typed access to query methods\n // These cannot be used for proof verification\n const channelQueryService = new query_2.QueryClientImpl(rpc);\n const clientQueryService = new query_3.QueryClientImpl(rpc);\n const connectionQueryService = new query_4.QueryClientImpl(rpc);\n const transferQueryService = new query_1.QueryClientImpl(rpc);\n return {\n ibc: {\n channel: {\n channel: async (portId, channelId) => channelQueryService.Channel({\n portId: portId,\n channelId: channelId,\n }),\n channels: async (paginationKey) => channelQueryService.Channels({\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allChannels: async () => {\n var _a;\n const channels = [];\n let response;\n let key;\n do {\n response = await channelQueryService.Channels({\n pagination: (0, utils_1.createPagination)(key),\n });\n channels.push(...response.channels);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n channels: channels,\n height: response.height,\n };\n },\n connectionChannels: async (connection, paginationKey) => channelQueryService.ConnectionChannels({\n connection: connection,\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allConnectionChannels: async (connection) => {\n var _a;\n const channels = [];\n let response;\n let key;\n do {\n response = await channelQueryService.ConnectionChannels({\n connection: connection,\n pagination: (0, utils_1.createPagination)(key),\n });\n channels.push(...response.channels);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n channels: channels,\n height: response.height,\n };\n },\n clientState: async (portId, channelId) => channelQueryService.ChannelClientState({\n portId: portId,\n channelId: channelId,\n }),\n consensusState: async (portId, channelId, revisionNumber, revisionHeight) => channelQueryService.ChannelConsensusState({\n portId: portId,\n channelId: channelId,\n revisionNumber: long_1.default.fromNumber(revisionNumber, true),\n revisionHeight: long_1.default.fromNumber(revisionHeight, true),\n }),\n packetCommitment: async (portId, channelId, sequence) => channelQueryService.PacketCommitment({\n portId: portId,\n channelId: channelId,\n sequence: sequence,\n }),\n packetCommitments: async (portId, channelId, paginationKey) => channelQueryService.PacketCommitments({\n channelId: channelId,\n portId: portId,\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allPacketCommitments: async (portId, channelId) => {\n var _a;\n const commitments = [];\n let response;\n let key;\n do {\n response = await channelQueryService.PacketCommitments({\n channelId: channelId,\n portId: portId,\n pagination: (0, utils_1.createPagination)(key),\n });\n commitments.push(...response.commitments);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n commitments: commitments,\n height: response.height,\n };\n },\n packetReceipt: async (portId, channelId, sequence) => channelQueryService.PacketReceipt({\n portId: portId,\n channelId: channelId,\n sequence: long_1.default.fromNumber(sequence, true),\n }),\n packetAcknowledgement: async (portId, channelId, sequence) => channelQueryService.PacketAcknowledgement({\n portId: portId,\n channelId: channelId,\n sequence: long_1.default.fromNumber(sequence, true),\n }),\n packetAcknowledgements: async (portId, channelId, paginationKey) => channelQueryService.PacketAcknowledgements({\n portId: portId,\n channelId: channelId,\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allPacketAcknowledgements: async (portId, channelId) => {\n var _a;\n const acknowledgements = [];\n let response;\n let key;\n do {\n response = await channelQueryService.PacketAcknowledgements({\n channelId: channelId,\n portId: portId,\n pagination: (0, utils_1.createPagination)(key),\n });\n acknowledgements.push(...response.acknowledgements);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n acknowledgements: acknowledgements,\n height: response.height,\n };\n },\n unreceivedPackets: async (portId, channelId, packetCommitmentSequences) => channelQueryService.UnreceivedPackets({\n portId: portId,\n channelId: channelId,\n packetCommitmentSequences: packetCommitmentSequences.map((s) => long_1.default.fromNumber(s, true)),\n }),\n unreceivedAcks: async (portId, channelId, packetAckSequences) => channelQueryService.UnreceivedAcks({\n portId: portId,\n channelId: channelId,\n packetAckSequences: packetAckSequences.map((s) => long_1.default.fromNumber(s, true)),\n }),\n nextSequenceReceive: async (portId, channelId) => channelQueryService.NextSequenceReceive({\n portId: portId,\n channelId: channelId,\n }),\n },\n client: {\n state: async (clientId) => clientQueryService.ClientState({ clientId }),\n states: async (paginationKey) => clientQueryService.ClientStates({\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allStates: async () => {\n var _a;\n const clientStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ClientStates({\n pagination: (0, utils_1.createPagination)(key),\n });\n clientStates.push(...response.clientStates);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n clientStates: clientStates,\n };\n },\n consensusState: async (clientId, consensusHeight) => clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({\n clientId: clientId,\n revisionHeight: consensusHeight !== undefined ? long_1.default.fromNumber(consensusHeight, true) : undefined,\n latestHeight: consensusHeight === undefined,\n })),\n consensusStates: async (clientId, paginationKey) => clientQueryService.ConsensusStates({\n clientId: clientId,\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allConsensusStates: async (clientId) => {\n var _a;\n const consensusStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ConsensusStates({\n clientId: clientId,\n pagination: (0, utils_1.createPagination)(key),\n });\n consensusStates.push(...response.consensusStates);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n consensusStates: consensusStates,\n };\n },\n params: async () => clientQueryService.ClientParams({}),\n stateTm: async (clientId) => {\n const response = await clientQueryService.ClientState({ clientId });\n return decodeTendermintClientStateAny(response.clientState);\n },\n statesTm: async (paginationKey) => {\n const { clientStates } = await clientQueryService.ClientStates({\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState));\n },\n allStatesTm: async () => {\n var _a;\n const clientStates = [];\n let response;\n let key;\n do {\n response = await clientQueryService.ClientStates({\n pagination: (0, utils_1.createPagination)(key),\n });\n clientStates.push(...response.clientStates);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return clientStates.map(({ clientState }) => decodeTendermintClientStateAny(clientState));\n },\n consensusStateTm: async (clientId, consensusHeight) => {\n const response = await clientQueryService.ConsensusState(query_3.QueryConsensusStateRequest.fromPartial({\n clientId: clientId,\n revisionHeight: consensusHeight === null || consensusHeight === void 0 ? void 0 : consensusHeight.revisionHeight,\n revisionNumber: consensusHeight === null || consensusHeight === void 0 ? void 0 : consensusHeight.revisionNumber,\n latestHeight: consensusHeight === undefined,\n }));\n return decodeTendermintConsensusStateAny(response.consensusState);\n },\n },\n connection: {\n connection: async (connectionId) => connectionQueryService.Connection({\n connectionId: connectionId,\n }),\n connections: async (paginationKey) => connectionQueryService.Connections({\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allConnections: async () => {\n var _a;\n const connections = [];\n let response;\n let key;\n do {\n response = await connectionQueryService.Connections({\n pagination: (0, utils_1.createPagination)(key),\n });\n connections.push(...response.connections);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n connections: connections,\n height: response.height,\n };\n },\n clientConnections: async (clientId) => connectionQueryService.ClientConnections({\n clientId: clientId,\n }),\n clientState: async (connectionId) => connectionQueryService.ConnectionClientState({\n connectionId: connectionId,\n }),\n consensusState: async (connectionId, revisionHeight) => connectionQueryService.ConnectionConsensusState(query_4.QueryConnectionConsensusStateRequest.fromPartial({\n connectionId: connectionId,\n revisionHeight: long_1.default.fromNumber(revisionHeight, true),\n })),\n },\n transfer: {\n denomTrace: async (hash) => transferQueryService.DenomTrace({ hash: hash }),\n denomTraces: async (paginationKey) => transferQueryService.DenomTraces({\n pagination: (0, utils_1.createPagination)(paginationKey),\n }),\n allDenomTraces: async () => {\n var _a;\n const denomTraces = [];\n let response;\n let key;\n do {\n response = await transferQueryService.DenomTraces({\n pagination: (0, utils_1.createPagination)(key),\n });\n denomTraces.push(...response.denomTraces);\n key = (_a = response.pagination) === null || _a === void 0 ? void 0 : _a.nextKey;\n } while (key && key.length);\n return {\n denomTraces: denomTraces,\n };\n },\n params: async () => transferQueryService.Params({}),\n },\n verified: {\n channel: {\n channel: async (portId, channelId) => {\n // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L55-L65\n // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L117-L120\n const key = (0, encoding_1.toAscii)(`channelEnds/ports/${portId}/channels/${channelId}`);\n const responseData = await base.queryVerified(\"ibc\", key);\n return responseData.length ? channel_1.Channel.decode(responseData) : null;\n },\n packetCommitment: async (portId, channelId, sequence) => {\n // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L128-L133\n // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L183-L185\n const key = (0, encoding_1.toAscii)(`commitments/ports/${portId}/channels/${channelId}/packets/${sequence}`);\n const responseData = await base.queryVerified(\"ibc\", key);\n // keeper code doesn't parse, but returns raw\n return responseData;\n },\n packetAcknowledgement: async (portId, channelId, sequence) => {\n // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L159-L166\n // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L153-L156\n const key = (0, encoding_1.toAscii)(`acks/ports/${portId}/channels/${channelId}/acknowledgements/${sequence}`);\n const responseData = await base.queryVerified(\"ibc\", key);\n // keeper code doesn't parse, but returns raw\n return responseData;\n },\n nextSequenceReceive: async (portId, channelId) => {\n // keeper: https://github.com/cosmos/cosmos-sdk/blob/3bafd8255a502e5a9cee07391cf8261538245dfd/x/ibc/04-channel/keeper/keeper.go#L92-L101\n // key: https://github.com/cosmos/cosmos-sdk/blob/ef0a7344af345882729598bc2958a21143930a6b/x/ibc/24-host/keys.go#L133-L136\n const key = (0, encoding_1.toAscii)(`seqAcks/ports/${portId}/channels/${channelId}/nextSequenceAck`);\n const responseData = await base.queryVerified(\"ibc\", key);\n return responseData.length ? math_1.Uint64.fromBytes(responseData).toNumber() : null;\n },\n },\n },\n },\n };\n}\nexports.setupIbcExtension = setupIbcExtension;\n//# sourceMappingURL=ibc.js.map","\"use strict\";\n// Base symbols\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeCosmosSdkDecFromProto = exports.createProtobufRpcClient = exports.createPagination = exports.setupTxExtension = exports.setupStakingExtension = exports.setupSlashingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthExtension = exports.QueryClient = void 0;\nvar queryclient_1 = require(\"./queryclient\");\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return queryclient_1.QueryClient; } });\n// Extensions\nvar auth_1 = require(\"./auth\");\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return auth_1.setupAuthExtension; } });\nvar bank_1 = require(\"./bank\");\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return bank_1.setupBankExtension; } });\nvar distribution_1 = require(\"./distribution\");\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return distribution_1.setupDistributionExtension; } });\nvar gov_1 = require(\"./gov\");\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return gov_1.setupGovExtension; } });\nvar ibc_1 = require(\"./ibc\");\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return ibc_1.setupIbcExtension; } });\nvar mint_1 = require(\"./mint\");\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return mint_1.setupMintExtension; } });\nvar slashing_1 = require(\"./slashing\");\nObject.defineProperty(exports, \"setupSlashingExtension\", { enumerable: true, get: function () { return slashing_1.setupSlashingExtension; } });\nvar staking_1 = require(\"./staking\");\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return staking_1.setupStakingExtension; } });\nvar tx_1 = require(\"./tx\");\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return tx_1.setupTxExtension; } });\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return utils_1.createPagination; } });\nObject.defineProperty(exports, \"createProtobufRpcClient\", { enumerable: true, get: function () { return utils_1.createProtobufRpcClient; } });\nObject.defineProperty(exports, \"decodeCosmosSdkDecFromProto\", { enumerable: true, get: function () { return utils_1.decodeCosmosSdkDecFromProto; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupMintExtension = void 0;\nconst utils_1 = require(\"@cosmjs/utils\");\nconst query_1 = require(\"cosmjs-types/cosmos/mint/v1beta1/query\");\nconst __1 = require(\"../\");\nconst utils_2 = require(\"./utils\");\nfunction setupMintExtension(base) {\n const rpc = (0, __1.createProtobufRpcClient)(base);\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n mint: {\n params: async () => {\n const { params } = await queryService.Params({});\n (0, utils_1.assert)(params);\n return {\n blocksPerYear: params.blocksPerYear,\n goalBonded: (0, utils_2.decodeCosmosSdkDecFromProto)(params.goalBonded),\n inflationMin: (0, utils_2.decodeCosmosSdkDecFromProto)(params.inflationMin),\n inflationMax: (0, utils_2.decodeCosmosSdkDecFromProto)(params.inflationMax),\n inflationRateChange: (0, utils_2.decodeCosmosSdkDecFromProto)(params.inflationRateChange),\n mintDenom: params.mintDenom,\n };\n },\n inflation: async () => {\n const { inflation } = await queryService.Inflation({});\n return (0, utils_2.decodeCosmosSdkDecFromProto)(inflation);\n },\n annualProvisions: async () => {\n const { annualProvisions } = await queryService.AnnualProvisions({});\n return (0, utils_2.decodeCosmosSdkDecFromProto)(annualProvisions);\n },\n },\n };\n}\nexports.setupMintExtension = setupMintExtension;\n//# sourceMappingURL=mint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClient = void 0;\n/* eslint-disable no-dupe-class-members, @typescript-eslint/ban-types, @typescript-eslint/naming-convention */\nconst ics23_1 = require(\"@confio/ics23\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst stream_1 = require(\"@cosmjs/stream\");\nconst utils_1 = require(\"@cosmjs/utils\");\nfunction checkAndParseOp(op, kind, key) {\n if (op.type !== kind) {\n throw new Error(`Op expected to be ${kind}, got \"${op.type}`);\n }\n if (!(0, utils_1.arrayContentEquals)(key, op.key)) {\n throw new Error(`Proven key different than queried key.\\nQuery: ${(0, encoding_1.toHex)(key)}\\nProven: ${(0, encoding_1.toHex)(op.key)}`);\n }\n return ics23_1.ics23.CommitmentProof.decode(op.data);\n}\nclass QueryClient {\n constructor(tmClient) {\n this.tmClient = tmClient;\n }\n static withExtensions(tmClient, ...extensionSetups) {\n const client = new QueryClient(tmClient);\n const extensions = extensionSetups.map((setupExtension) => setupExtension(client));\n for (const extension of extensions) {\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(extension), `Extension must be a non-null object`);\n for (const [moduleKey, moduleValue] of Object.entries(extension)) {\n (0, utils_1.assert)((0, utils_1.isNonNullObject)(moduleValue), `Module must be a non-null object. Found type ${typeof moduleValue} for module \"${moduleKey}\".`);\n const current = client[moduleKey] || {};\n client[moduleKey] = {\n ...current,\n ...moduleValue,\n };\n }\n }\n return client;\n }\n async queryVerified(store, key, desiredHeight) {\n const { height, proof, value } = await this.queryRawProof(store, key, desiredHeight);\n const subProof = checkAndParseOp(proof.ops[0], \"ics23:iavl\", key);\n const storeProof = checkAndParseOp(proof.ops[1], \"ics23:simple\", (0, encoding_1.toAscii)(store));\n // this must always be existence, if the store is not a typo\n (0, utils_1.assert)(storeProof.exist);\n (0, utils_1.assert)(storeProof.exist.value);\n // this may be exist or non-exist, depends on response\n if (!value || value.length === 0) {\n // non-existence check\n (0, utils_1.assert)(subProof.nonexist);\n // the subproof must map the desired key to the \"value\" of the storeProof\n (0, ics23_1.verifyNonExistence)(subProof.nonexist, ics23_1.iavlSpec, storeProof.exist.value, key);\n }\n else {\n // existence check\n (0, utils_1.assert)(subProof.exist);\n (0, utils_1.assert)(subProof.exist.value);\n // the subproof must map the desired key to the \"value\" of the storeProof\n (0, ics23_1.verifyExistence)(subProof.exist, ics23_1.iavlSpec, storeProof.exist.value, key, value);\n }\n // the store proof must map its declared value (root of subProof) to the appHash of the next block\n const header = await this.getNextHeader(height);\n (0, ics23_1.verifyExistence)(storeProof.exist, ics23_1.tendermintSpec, header.appHash, (0, encoding_1.toAscii)(store), storeProof.exist.value);\n return value;\n }\n async queryRawProof(store, queryKey, desiredHeight) {\n var _a;\n const { key, value, height, proof, code, log } = await this.tmClient.abciQuery({\n // we need the StoreKey for the module, not the module name\n // https://github.com/cosmos/cosmos-sdk/blob/8cab43c8120fec5200c3459cbf4a92017bb6f287/x/auth/types/keys.go#L12\n path: `/store/${store}/key`,\n data: queryKey,\n prove: true,\n height: desiredHeight,\n });\n if (code) {\n throw new Error(`Query failed with (${code}): ${log}`);\n }\n if (!(0, utils_1.arrayContentEquals)(queryKey, key)) {\n throw new Error(`Response key ${(0, encoding_1.toHex)(key)} doesn't match query key ${(0, encoding_1.toHex)(queryKey)}`);\n }\n if (!height) {\n throw new Error(\"No query height returned\");\n }\n if (!proof || proof.ops.length !== 2) {\n throw new Error(`Expected 2 proof ops, got ${(_a = proof === null || proof === void 0 ? void 0 : proof.ops.length) !== null && _a !== void 0 ? _a : 0}. Are you using stargate?`);\n }\n // we don't need the results, but we can ensure the data is the proper format\n checkAndParseOp(proof.ops[0], \"ics23:iavl\", key);\n checkAndParseOp(proof.ops[1], \"ics23:simple\", (0, encoding_1.toAscii)(store));\n return {\n key: key,\n value: value,\n height: height,\n // need to clone this: readonly input / writeable output\n proof: {\n ops: [...proof.ops],\n },\n };\n }\n async queryUnverified(path, request) {\n const response = await this.tmClient.abciQuery({\n path: path,\n data: request,\n prove: false,\n });\n if (response.code) {\n throw new Error(`Query failed with (${response.code}): ${response.log}`);\n }\n return response.value;\n }\n // this must return the header for height+1\n // throws an error if height is 0 or undefined\n async getNextHeader(height) {\n (0, utils_1.assertDefined)(height);\n if (height === 0) {\n throw new Error(\"Query returned height 0, cannot prove it\");\n }\n const searchHeight = height + 1;\n let nextHeader;\n let headersSubscription;\n try {\n headersSubscription = this.tmClient.subscribeNewBlockHeader();\n }\n catch (_a) {\n // Ignore exception caused by non-WebSocket Tendermint clients\n }\n if (headersSubscription) {\n const firstHeader = await (0, stream_1.firstEvent)(headersSubscription);\n // The first header we get might not be n+1 but n+2 or even higher. In such cases we fall back on a query.\n if (firstHeader.height === searchHeight) {\n nextHeader = firstHeader;\n }\n }\n while (!nextHeader) {\n // start from current height to avoid backend error for minHeight in the future\n const correctHeader = (await this.tmClient.blockchain(height, searchHeight)).blockMetas\n .map((meta) => meta.header)\n .find((h) => h.height === searchHeight);\n if (correctHeader) {\n nextHeader = correctHeader;\n }\n else {\n await (0, utils_1.sleep)(1000);\n }\n }\n (0, utils_1.assert)(nextHeader.height === searchHeight, \"Got wrong header. This is a bug in the logic above.\");\n return nextHeader;\n }\n}\nexports.QueryClient = QueryClient;\n//# sourceMappingURL=queryclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupSlashingExtension = void 0;\nconst query_1 = require(\"cosmjs-types/cosmos/slashing/v1beta1/query\");\nconst utils_1 = require(\"./utils\");\nfunction setupSlashingExtension(base) {\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n slashing: {\n signingInfo: async (consAddress) => {\n const response = await queryService.SigningInfo({\n consAddress: consAddress,\n });\n return response;\n },\n signingInfos: async (paginationKey) => {\n const response = await queryService.SigningInfos({\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n },\n };\n}\nexports.setupSlashingExtension = setupSlashingExtension;\n//# sourceMappingURL=slashing.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupStakingExtension = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst query_1 = require(\"cosmjs-types/cosmos/staking/v1beta1/query\");\nconst long_1 = __importDefault(require(\"long\"));\nconst utils_1 = require(\"./utils\");\nfunction setupStakingExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n const queryService = new query_1.QueryClientImpl(rpc);\n return {\n staking: {\n delegation: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.Delegation({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n delegatorDelegations: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorDelegations({\n delegatorAddr: delegatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n delegatorUnbondingDelegations: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorUnbondingDelegations({\n delegatorAddr: delegatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n delegatorValidator: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.DelegatorValidator({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n delegatorValidators: async (delegatorAddress, paginationKey) => {\n const response = await queryService.DelegatorValidators({\n delegatorAddr: delegatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n historicalInfo: async (height) => {\n const response = await queryService.HistoricalInfo({\n height: long_1.default.fromNumber(height, true),\n });\n return response;\n },\n params: async () => {\n const response = await queryService.Params({});\n return response;\n },\n pool: async () => {\n const response = await queryService.Pool({});\n return response;\n },\n redelegations: async (delegatorAddress, sourceValidatorAddress, destinationValidatorAddress, paginationKey) => {\n const response = await queryService.Redelegations({\n delegatorAddr: delegatorAddress,\n srcValidatorAddr: sourceValidatorAddress,\n dstValidatorAddr: destinationValidatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n unbondingDelegation: async (delegatorAddress, validatorAddress) => {\n const response = await queryService.UnbondingDelegation({\n delegatorAddr: delegatorAddress,\n validatorAddr: validatorAddress,\n });\n return response;\n },\n validator: async (validatorAddress) => {\n const response = await queryService.Validator({ validatorAddr: validatorAddress });\n return response;\n },\n validatorDelegations: async (validatorAddress, paginationKey) => {\n const response = await queryService.ValidatorDelegations({\n validatorAddr: validatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n validators: async (status, paginationKey) => {\n const response = await queryService.Validators({\n status: status,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n validatorUnbondingDelegations: async (validatorAddress, paginationKey) => {\n const response = await queryService.ValidatorUnbondingDelegations({\n validatorAddr: validatorAddress,\n pagination: (0, utils_1.createPagination)(paginationKey),\n });\n return response;\n },\n },\n };\n}\nexports.setupStakingExtension = setupStakingExtension;\n//# sourceMappingURL=staking.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupTxExtension = void 0;\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst service_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/service\");\nconst tx_1 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\nconst utils_1 = require(\"./utils\");\nfunction setupTxExtension(base) {\n // Use this service to get easy typed access to query methods\n // This cannot be used for proof verification\n const rpc = (0, utils_1.createProtobufRpcClient)(base);\n const queryService = new service_1.ServiceClientImpl(rpc);\n return {\n tx: {\n getTx: async (txId) => {\n const request = {\n hash: txId,\n };\n const response = await queryService.GetTx(request);\n return response;\n },\n simulate: async (messages, memo, signer, sequence) => {\n const request = service_1.SimulateRequest.fromPartial({\n tx: tx_1.Tx.fromPartial({\n authInfo: tx_1.AuthInfo.fromPartial({\n fee: tx_1.Fee.fromPartial({}),\n signerInfos: [\n {\n publicKey: (0, proto_signing_1.encodePubkey)(signer),\n sequence: long_1.default.fromNumber(sequence, true),\n modeInfo: { single: { mode: signing_1.SignMode.SIGN_MODE_UNSPECIFIED } },\n },\n ],\n }),\n body: tx_1.TxBody.fromPartial({\n messages: Array.from(messages),\n memo: memo,\n }),\n signatures: [new Uint8Array()],\n }),\n // Sending serialized `txBytes` is the future. But\n // this is not available in Comsos SDK 0.42.\n txBytes: undefined,\n });\n const response = await queryService.Simulate(request);\n return response;\n },\n },\n };\n}\nexports.setupTxExtension = setupTxExtension;\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeCosmosSdkDecFromProto = exports.longify = exports.createProtobufRpcClient = exports.createPagination = exports.toAccAddress = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst pagination_1 = require(\"cosmjs-types/cosmos/base/query/v1beta1/pagination\");\nconst long_1 = __importDefault(require(\"long\"));\n/**\n * Takes a bech32 encoded address and returns the data part. The prefix is ignored and discarded.\n * This is called AccAddress in Cosmos SDK, which is basically an alias for raw binary data.\n * The result is typically 20 bytes long but not restricted to that.\n */\nfunction toAccAddress(address) {\n return (0, encoding_1.fromBech32)(address).data;\n}\nexports.toAccAddress = toAccAddress;\n/**\n * If paginationKey is set, return a `PageRequest` with the given key.\n * If paginationKey is unset, return `undefined`.\n *\n * Use this with a query response's pagination next key to\n * request the next page.\n */\nfunction createPagination(paginationKey) {\n return paginationKey\n ? pagination_1.PageRequest.fromPartial({\n key: paginationKey,\n offset: long_1.default.fromNumber(0, true),\n limit: long_1.default.fromNumber(0, true),\n countTotal: false,\n })\n : undefined;\n}\nexports.createPagination = createPagination;\nfunction createProtobufRpcClient(base) {\n return {\n request: (service, method, data) => {\n const path = `/${service}/${method}`;\n return base.queryUnverified(path, data);\n },\n };\n}\nexports.createProtobufRpcClient = createProtobufRpcClient;\n/**\n * Takes a uint64 value as string, number, Long or Uint64 and returns an unsigned Long instance\n * of it.\n */\nfunction longify(value) {\n const checkedValue = math_1.Uint64.fromString(value.toString());\n return long_1.default.fromBytesBE([...checkedValue.toBytesBigEndian()], true);\n}\nexports.longify = longify;\n/**\n * Takes a string or binary encoded `github.com/cosmos/cosmos-sdk/types.Dec` from the\n * protobuf API and converts it into a `Decimal` with 18 fractional digits.\n *\n * See https://github.com/cosmos/cosmos-sdk/issues/10863 for more context why this is needed.\n */\nfunction decodeCosmosSdkDecFromProto(input) {\n const asString = typeof input === \"string\" ? input : (0, encoding_1.fromAscii)(input);\n return math_1.Decimal.fromAtomics(asString, 18);\n}\nexports.decodeCosmosSdkDecFromProto = decodeCosmosSdkDecFromProto;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSearchByTagsQuery = exports.isSearchBySentFromOrToQuery = exports.isSearchByHeightQuery = void 0;\nfunction isSearchByHeightQuery(query) {\n return query.height !== undefined;\n}\nexports.isSearchByHeightQuery = isSearchByHeightQuery;\nfunction isSearchBySentFromOrToQuery(query) {\n return query.sentFromOrTo !== undefined;\n}\nexports.isSearchBySentFromOrToQuery = isSearchBySentFromOrToQuery;\nfunction isSearchByTagsQuery(query) {\n return query.tags !== undefined;\n}\nexports.isSearchByTagsQuery = isSearchByTagsQuery;\n//# sourceMappingURL=search.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningStargateClient = exports.defaultRegistryTypes = void 0;\nconst amino_1 = require(\"@cosmjs/amino\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst proto_signing_1 = require(\"@cosmjs/proto-signing\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst tx_1 = require(\"cosmjs-types/cosmos/authz/v1beta1/tx\");\nconst tx_2 = require(\"cosmjs-types/cosmos/bank/v1beta1/tx\");\nconst coin_1 = require(\"cosmjs-types/cosmos/base/v1beta1/coin\");\nconst tx_3 = require(\"cosmjs-types/cosmos/distribution/v1beta1/tx\");\nconst tx_4 = require(\"cosmjs-types/cosmos/feegrant/v1beta1/tx\");\nconst tx_5 = require(\"cosmjs-types/cosmos/gov/v1beta1/tx\");\nconst tx_6 = require(\"cosmjs-types/cosmos/staking/v1beta1/tx\");\nconst signing_1 = require(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing\");\nconst tx_7 = require(\"cosmjs-types/cosmos/tx/v1beta1/tx\");\nconst tx_8 = require(\"cosmjs-types/ibc/applications/transfer/v1/tx\");\nconst tx_9 = require(\"cosmjs-types/ibc/core/channel/v1/tx\");\nconst tx_10 = require(\"cosmjs-types/ibc/core/client/v1/tx\");\nconst tx_11 = require(\"cosmjs-types/ibc/core/connection/v1/tx\");\nconst long_1 = __importDefault(require(\"long\"));\nconst aminotypes_1 = require(\"./aminotypes\");\nconst fee_1 = require(\"./fee\");\nconst stargateclient_1 = require(\"./stargateclient\");\nexports.defaultRegistryTypes = [\n [\"/cosmos.authz.v1beta1.MsgExec\", tx_1.MsgExec],\n [\"/cosmos.authz.v1beta1.MsgGrant\", tx_1.MsgGrant],\n [\"/cosmos.authz.v1beta1.MsgRevoke\", tx_1.MsgRevoke],\n [\"/cosmos.bank.v1beta1.MsgMultiSend\", tx_2.MsgMultiSend],\n [\"/cosmos.bank.v1beta1.MsgSend\", tx_2.MsgSend],\n [\"/cosmos.base.v1beta1.Coin\", coin_1.Coin],\n [\"/cosmos.distribution.v1beta1.MsgFundCommunityPool\", tx_3.MsgFundCommunityPool],\n [\"/cosmos.distribution.v1beta1.MsgSetWithdrawAddress\", tx_3.MsgSetWithdrawAddress],\n [\"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\", tx_3.MsgWithdrawDelegatorReward],\n [\"/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission\", tx_3.MsgWithdrawValidatorCommission],\n [\"/cosmos.feegrant.v1beta1.MsgGrantAllowance\", tx_4.MsgGrantAllowance],\n [\"/cosmos.feegrant.v1beta1.MsgRevokeAllowance\", tx_4.MsgRevokeAllowance],\n [\"/cosmos.gov.v1beta1.MsgDeposit\", tx_5.MsgDeposit],\n [\"/cosmos.gov.v1beta1.MsgSubmitProposal\", tx_5.MsgSubmitProposal],\n [\"/cosmos.gov.v1beta1.MsgVote\", tx_5.MsgVote],\n [\"/cosmos.staking.v1beta1.MsgBeginRedelegate\", tx_6.MsgBeginRedelegate],\n [\"/cosmos.staking.v1beta1.MsgCreateValidator\", tx_6.MsgCreateValidator],\n [\"/cosmos.staking.v1beta1.MsgDelegate\", tx_6.MsgDelegate],\n [\"/cosmos.staking.v1beta1.MsgEditValidator\", tx_6.MsgEditValidator],\n [\"/cosmos.staking.v1beta1.MsgUndelegate\", tx_6.MsgUndelegate],\n [\"/ibc.applications.transfer.v1.MsgTransfer\", tx_8.MsgTransfer],\n [\"/ibc.core.channel.v1.MsgAcknowledgement\", tx_9.MsgAcknowledgement],\n [\"/ibc.core.channel.v1.MsgChannelCloseConfirm\", tx_9.MsgChannelCloseConfirm],\n [\"/ibc.core.channel.v1.MsgChannelCloseInit\", tx_9.MsgChannelCloseInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenAck\", tx_9.MsgChannelOpenAck],\n [\"/ibc.core.channel.v1.MsgChannelOpenConfirm\", tx_9.MsgChannelOpenConfirm],\n [\"/ibc.core.channel.v1.MsgChannelOpenInit\", tx_9.MsgChannelOpenInit],\n [\"/ibc.core.channel.v1.MsgChannelOpenTry\", tx_9.MsgChannelOpenTry],\n [\"/ibc.core.channel.v1.MsgRecvPacket\", tx_9.MsgRecvPacket],\n [\"/ibc.core.channel.v1.MsgTimeout\", tx_9.MsgTimeout],\n [\"/ibc.core.channel.v1.MsgTimeoutOnClose\", tx_9.MsgTimeoutOnClose],\n [\"/ibc.core.client.v1.MsgCreateClient\", tx_10.MsgCreateClient],\n [\"/ibc.core.client.v1.MsgSubmitMisbehaviour\", tx_10.MsgSubmitMisbehaviour],\n [\"/ibc.core.client.v1.MsgUpdateClient\", tx_10.MsgUpdateClient],\n [\"/ibc.core.client.v1.MsgUpgradeClient\", tx_10.MsgUpgradeClient],\n [\"/ibc.core.connection.v1.MsgConnectionOpenAck\", tx_11.MsgConnectionOpenAck],\n [\"/ibc.core.connection.v1.MsgConnectionOpenConfirm\", tx_11.MsgConnectionOpenConfirm],\n [\"/ibc.core.connection.v1.MsgConnectionOpenInit\", tx_11.MsgConnectionOpenInit],\n [\"/ibc.core.connection.v1.MsgConnectionOpenTry\", tx_11.MsgConnectionOpenTry],\n];\nfunction createDefaultRegistry() {\n return new proto_signing_1.Registry(exports.defaultRegistryTypes);\n}\nclass SigningStargateClient extends stargateclient_1.StargateClient {\n constructor(tmClient, signer, options) {\n var _a;\n super(tmClient);\n // TODO: do we really want to set a default here? Ideally we could get it from the signer such that users only have to set it once.\n const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : \"cosmos\";\n const { registry = createDefaultRegistry(), aminoTypes = new aminotypes_1.AminoTypes({ prefix }) } = options;\n this.registry = registry;\n this.aminoTypes = aminoTypes;\n this.signer = signer;\n this.broadcastTimeoutMs = options.broadcastTimeoutMs;\n this.broadcastPollIntervalMs = options.broadcastPollIntervalMs;\n this.gasPrice = options.gasPrice;\n }\n static async connectWithSigner(endpoint, signer, options = {}) {\n const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint);\n return new SigningStargateClient(tmClient, signer, options);\n }\n /**\n * Creates a client in offline mode.\n *\n * This should only be used in niche cases where you know exactly what you're doing,\n * e.g. when building an offline signing application.\n *\n * When you try to use online functionality with such a signer, an\n * exception will be raised.\n */\n static async offline(signer, options = {}) {\n return new SigningStargateClient(undefined, signer, options);\n }\n async simulate(signerAddress, messages, memo) {\n const anyMsgs = messages.map((m) => this.registry.encodeAsAny(m));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey);\n const { sequence } = await this.getSequence(signerAddress);\n const { gasInfo } = await this.forceGetQueryClient().tx.simulate(anyMsgs, memo, pubkey, sequence);\n (0, utils_1.assertDefined)(gasInfo);\n return math_1.Uint53.fromString(gasInfo.gasUsed.toString()).toNumber();\n }\n async sendTokens(senderAddress, recipientAddress, amount, fee, memo = \"\") {\n const sendMsg = {\n typeUrl: \"/cosmos.bank.v1beta1.MsgSend\",\n value: {\n fromAddress: senderAddress,\n toAddress: recipientAddress,\n amount: [...amount],\n },\n };\n return this.signAndBroadcast(senderAddress, [sendMsg], fee, memo);\n }\n async delegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const delegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgDelegate\",\n value: tx_6.MsgDelegate.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [delegateMsg], fee, memo);\n }\n async undelegateTokens(delegatorAddress, validatorAddress, amount, fee, memo = \"\") {\n const undelegateMsg = {\n typeUrl: \"/cosmos.staking.v1beta1.MsgUndelegate\",\n value: tx_6.MsgUndelegate.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n amount: amount,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [undelegateMsg], fee, memo);\n }\n async withdrawRewards(delegatorAddress, validatorAddress, fee, memo = \"\") {\n const withdrawMsg = {\n typeUrl: \"/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward\",\n value: tx_3.MsgWithdrawDelegatorReward.fromPartial({\n delegatorAddress: delegatorAddress,\n validatorAddress: validatorAddress,\n }),\n };\n return this.signAndBroadcast(delegatorAddress, [withdrawMsg], fee, memo);\n }\n async sendIbcTokens(senderAddress, recipientAddress, transferAmount, sourcePort, sourceChannel, timeoutHeight, \n /** timeout in seconds */\n timeoutTimestamp, fee, memo = \"\") {\n const timeoutTimestampNanoseconds = timeoutTimestamp\n ? long_1.default.fromNumber(timeoutTimestamp).multiply(1000000000)\n : undefined;\n const transferMsg = {\n typeUrl: \"/ibc.applications.transfer.v1.MsgTransfer\",\n value: tx_8.MsgTransfer.fromPartial({\n sourcePort: sourcePort,\n sourceChannel: sourceChannel,\n sender: senderAddress,\n receiver: recipientAddress,\n token: transferAmount,\n timeoutHeight: timeoutHeight,\n timeoutTimestamp: timeoutTimestampNanoseconds,\n }),\n };\n return this.signAndBroadcast(senderAddress, [transferMsg], fee, memo);\n }\n async signAndBroadcast(signerAddress, messages, fee, memo = \"\") {\n let usedFee;\n if (fee == \"auto\" || typeof fee === \"number\") {\n (0, utils_1.assertDefined)(this.gasPrice, \"Gas price must be set in the client options when auto gas is used.\");\n const gasEstimation = await this.simulate(signerAddress, messages, memo);\n const muliplier = typeof fee === \"number\" ? fee : 1.3;\n usedFee = (0, fee_1.calculateFee)(Math.round(gasEstimation * muliplier), this.gasPrice);\n }\n else {\n usedFee = fee;\n }\n const txRaw = await this.sign(signerAddress, messages, usedFee, memo);\n const txBytes = tx_7.TxRaw.encode(txRaw).finish();\n return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs);\n }\n /**\n * Gets account number and sequence from the API, creates a sign doc,\n * creates a single signature and assembles the signed transaction.\n *\n * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer.\n *\n * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them\n * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing\n * (See the SigningStargateClient.offline constructor).\n */\n async sign(signerAddress, messages, fee, memo, explicitSignerData) {\n let signerData;\n if (explicitSignerData) {\n signerData = explicitSignerData;\n }\n else {\n const { accountNumber, sequence } = await this.getSequence(signerAddress);\n const chainId = await this.getChainId();\n signerData = {\n accountNumber: accountNumber,\n sequence: sequence,\n chainId: chainId,\n };\n }\n return (0, proto_signing_1.isOfflineDirectSigner)(this.signer)\n ? this.signDirect(signerAddress, messages, fee, memo, signerData)\n : this.signAmino(signerAddress, messages, fee, memo, signerData);\n }\n async signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {\n (0, utils_1.assert)(!(0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg));\n const signDoc = (0, amino_1.makeSignDoc)(msgs, fee, chainId, memo, accountNumber, sequence);\n const { signature, signed } = await this.signer.signAmino(signerAddress, signDoc);\n const signedTxBody = {\n messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)),\n memo: signed.memo,\n };\n const signedTxBodyEncodeObject = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: signedTxBody,\n };\n const signedTxBodyBytes = this.registry.encode(signedTxBodyEncodeObject);\n const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber();\n const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber();\n const signedAuthInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signMode);\n return tx_7.TxRaw.fromPartial({\n bodyBytes: signedTxBodyBytes,\n authInfoBytes: signedAuthInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n async signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId }) {\n (0, utils_1.assert)((0, proto_signing_1.isOfflineDirectSigner)(this.signer));\n const accountFromSigner = (await this.signer.getAccounts()).find((account) => account.address === signerAddress);\n if (!accountFromSigner) {\n throw new Error(\"Failed to retrieve account from signer\");\n }\n const pubkey = (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(accountFromSigner.pubkey));\n const txBodyEncodeObject = {\n typeUrl: \"/cosmos.tx.v1beta1.TxBody\",\n value: {\n messages: messages,\n memo: memo,\n },\n };\n const txBodyBytes = this.registry.encode(txBodyEncodeObject);\n const gasLimit = math_1.Int53.fromString(fee.gas).toNumber();\n const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence }], fee.amount, gasLimit);\n const signDoc = (0, proto_signing_1.makeSignDoc)(txBodyBytes, authInfoBytes, chainId, accountNumber);\n const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc);\n return tx_7.TxRaw.fromPartial({\n bodyBytes: signed.bodyBytes,\n authInfoBytes: signed.authInfoBytes,\n signatures: [(0, encoding_1.fromBase64)(signature.signature)],\n });\n }\n}\nexports.SigningStargateClient = SigningStargateClient;\n//# sourceMappingURL=signingstargateclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StargateClient = exports.assertIsDeliverTxFailure = exports.assertIsDeliverTxSuccess = exports.isDeliverTxSuccess = exports.isDeliverTxFailure = exports.TimeoutError = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nconst tendermint_rpc_1 = require(\"@cosmjs/tendermint-rpc\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst accounts_1 = require(\"./accounts\");\nconst queries_1 = require(\"./queries\");\nconst search_1 = require(\"./search\");\nclass TimeoutError extends Error {\n constructor(message, txId) {\n super(message);\n this.txId = txId;\n }\n}\nexports.TimeoutError = TimeoutError;\nfunction isDeliverTxFailure(result) {\n return !!result.code;\n}\nexports.isDeliverTxFailure = isDeliverTxFailure;\nfunction isDeliverTxSuccess(result) {\n return !isDeliverTxFailure(result);\n}\nexports.isDeliverTxSuccess = isDeliverTxSuccess;\n/**\n * Ensures the given result is a success. Throws a detailed error message otherwise.\n */\nfunction assertIsDeliverTxSuccess(result) {\n if (isDeliverTxFailure(result)) {\n throw new Error(`Error when broadcasting tx ${result.transactionHash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`);\n }\n}\nexports.assertIsDeliverTxSuccess = assertIsDeliverTxSuccess;\n/**\n * Ensures the given result is a failure. Throws a detailed error message otherwise.\n */\nfunction assertIsDeliverTxFailure(result) {\n if (isDeliverTxSuccess(result)) {\n throw new Error(`Transaction ${result.transactionHash} did not fail at height ${result.height}. Code: ${result.code}; Raw log: ${result.rawLog}`);\n }\n}\nexports.assertIsDeliverTxFailure = assertIsDeliverTxFailure;\nclass StargateClient {\n constructor(tmClient) {\n if (tmClient) {\n this.tmClient = tmClient;\n this.queryClient = queries_1.QueryClient.withExtensions(tmClient, queries_1.setupAuthExtension, queries_1.setupBankExtension, queries_1.setupStakingExtension, queries_1.setupTxExtension);\n }\n }\n static async connect(endpoint) {\n const tmClient = await tendermint_rpc_1.Tendermint34Client.connect(endpoint);\n return new StargateClient(tmClient);\n }\n getTmClient() {\n return this.tmClient;\n }\n forceGetTmClient() {\n if (!this.tmClient) {\n throw new Error(\"Tendermint client not available. You cannot use online functionality in offline mode.\");\n }\n return this.tmClient;\n }\n getQueryClient() {\n return this.queryClient;\n }\n forceGetQueryClient() {\n if (!this.queryClient) {\n throw new Error(\"Query client not available. You cannot use online functionality in offline mode.\");\n }\n return this.queryClient;\n }\n async getChainId() {\n if (!this.chainId) {\n const response = await this.forceGetTmClient().status();\n const chainId = response.nodeInfo.network;\n if (!chainId)\n throw new Error(\"Chain ID must not be empty\");\n this.chainId = chainId;\n }\n return this.chainId;\n }\n async getHeight() {\n const status = await this.forceGetTmClient().status();\n return status.syncInfo.latestBlockHeight;\n }\n async getAccount(searchAddress) {\n try {\n const account = await this.forceGetQueryClient().auth.account(searchAddress);\n return account ? (0, accounts_1.accountFromAny)(account) : null;\n }\n catch (error) {\n if (/rpc error: code = NotFound/i.test(error.toString())) {\n return null;\n }\n throw error;\n }\n }\n async getSequence(address) {\n const account = await this.getAccount(address);\n if (!account) {\n throw new Error(\"Account does not exist on chain. Send some tokens there before trying to query sequence.\");\n }\n return {\n accountNumber: account.accountNumber,\n sequence: account.sequence,\n };\n }\n async getBlock(height) {\n const response = await this.forceGetTmClient().block(height);\n return {\n id: (0, encoding_1.toHex)(response.blockId.hash).toUpperCase(),\n header: {\n version: {\n block: new math_1.Uint53(response.block.header.version.block).toString(),\n app: new math_1.Uint53(response.block.header.version.app).toString(),\n },\n height: response.block.header.height,\n chainId: response.block.header.chainId,\n time: (0, tendermint_rpc_1.toRfc3339WithNanoseconds)(response.block.header.time),\n },\n txs: response.block.txs,\n };\n }\n async getBalance(address, searchDenom) {\n return this.forceGetQueryClient().bank.balance(address, searchDenom);\n }\n /**\n * Queries all balances for all denoms that belong to this address.\n *\n * Uses the grpc queries (which iterates over the store internally), and we cannot get\n * proofs from such a method.\n */\n async getAllBalances(address) {\n return this.forceGetQueryClient().bank.allBalances(address);\n }\n async getDelegation(delegatorAddress, validatorAddress) {\n var _a;\n let delegatedAmount;\n try {\n delegatedAmount = (_a = (await this.forceGetQueryClient().staking.delegation(delegatorAddress, validatorAddress)).delegationResponse) === null || _a === void 0 ? void 0 : _a.balance;\n }\n catch (e) {\n if (e.toString().includes(\"key not found\")) {\n // ignore, `delegatedAmount` remains undefined\n }\n else {\n throw e;\n }\n }\n return delegatedAmount || null;\n }\n async getTx(id) {\n var _a;\n const results = await this.txsQuery(`tx.hash='${id}'`);\n return (_a = results[0]) !== null && _a !== void 0 ? _a : null;\n }\n async searchTx(query, filter = {}) {\n const minHeight = filter.minHeight || 0;\n const maxHeight = filter.maxHeight || Number.MAX_SAFE_INTEGER;\n if (maxHeight < minHeight)\n return []; // optional optimization\n function withFilters(originalQuery) {\n return `${originalQuery} AND tx.height>=${minHeight} AND tx.height<=${maxHeight}`;\n }\n let txs;\n if ((0, search_1.isSearchByHeightQuery)(query)) {\n txs =\n query.height >= minHeight && query.height <= maxHeight\n ? await this.txsQuery(`tx.height=${query.height}`)\n : [];\n }\n else if ((0, search_1.isSearchBySentFromOrToQuery)(query)) {\n const sentQuery = withFilters(`message.module='bank' AND transfer.sender='${query.sentFromOrTo}'`);\n const receivedQuery = withFilters(`message.module='bank' AND transfer.recipient='${query.sentFromOrTo}'`);\n const [sent, received] = await Promise.all([sentQuery, receivedQuery].map((rawQuery) => this.txsQuery(rawQuery)));\n const sentHashes = sent.map((t) => t.hash);\n txs = [...sent, ...received.filter((t) => !sentHashes.includes(t.hash))];\n }\n else if ((0, search_1.isSearchByTagsQuery)(query)) {\n const rawQuery = withFilters(query.tags.map((t) => `${t.key}='${t.value}'`).join(\" AND \"));\n txs = await this.txsQuery(rawQuery);\n }\n else {\n throw new Error(\"Unknown query type\");\n }\n const filtered = txs.filter((tx) => tx.height >= minHeight && tx.height <= maxHeight);\n return filtered;\n }\n disconnect() {\n if (this.tmClient)\n this.tmClient.disconnect();\n }\n /**\n * Broadcasts a signed transaction to the network and monitors its inclusion in a block.\n *\n * If broadcasting is rejected by the node for some reason (e.g. because of a CheckTx failure),\n * an error is thrown.\n *\n * If the transaction is not included in a block before the provided timeout, this errors with a `TimeoutError`.\n *\n * If the transaction is included in a block, a `DeliverTxResponse` is returned. The caller then\n * usually needs to check for execution success or failure.\n */\n async broadcastTx(tx, timeoutMs = 60000, pollIntervalMs = 3000) {\n let timedOut = false;\n const txPollTimeout = setTimeout(() => {\n timedOut = true;\n }, timeoutMs);\n const pollForTx = async (txId) => {\n if (timedOut) {\n throw new TimeoutError(`Transaction with ID ${txId} was submitted but was not yet found on the chain. You might want to check later.`, txId);\n }\n await (0, utils_1.sleep)(pollIntervalMs);\n const result = await this.getTx(txId);\n return result\n ? {\n code: result.code,\n height: result.height,\n rawLog: result.rawLog,\n transactionHash: txId,\n gasUsed: result.gasUsed,\n gasWanted: result.gasWanted,\n }\n : pollForTx(txId);\n };\n const broadcasted = await this.forceGetTmClient().broadcastTxSync({ tx });\n if (broadcasted.code) {\n throw new Error(`Broadcasting transaction failed with code ${broadcasted.code} (codespace: ${broadcasted.codeSpace}). Log: ${broadcasted.log}`);\n }\n const transactionId = (0, encoding_1.toHex)(broadcasted.hash).toUpperCase();\n return new Promise((resolve, reject) => pollForTx(transactionId).then((value) => {\n clearTimeout(txPollTimeout);\n resolve(value);\n }, (error) => {\n clearTimeout(txPollTimeout);\n reject(error);\n }));\n }\n async txsQuery(query) {\n const results = await this.forceGetTmClient().txSearchAll({ query: query });\n return results.txs.map((tx) => {\n return {\n height: tx.height,\n hash: (0, encoding_1.toHex)(tx.hash).toUpperCase(),\n code: tx.result.code,\n rawLog: tx.result.log || \"\",\n tx: tx.tx,\n gasUsed: tx.result.gasUsed,\n gasWanted: tx.result.gasWanted,\n };\n });\n }\n}\nexports.StargateClient = StargateClient;\n//# sourceMappingURL=stargateclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concat = void 0;\nconst xstream_1 = require(\"xstream\");\n/**\n * An implementation of concat that buffers all source stream events\n *\n * Marble diagram:\n *\n * ```text\n * --1--2---3---4-|\n * -a--b-c--d-|\n * --------X---------Y---------Z-\n * concat\n * --1--2---3---4-abcdXY-------Z-\n * ```\n *\n * This is inspired by RxJS's concat as documented at http://rxmarbles.com/#concat and behaves\n * differently than xstream's concat as discussed in https://github.com/staltz/xstream/issues/170.\n *\n */\nfunction concat(...streams) {\n const subscriptions = new Array();\n const queues = new Array(); // one queue per stream\n const completedStreams = new Set();\n let activeStreamIndex = 0;\n function reset() {\n while (subscriptions.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const subscription = subscriptions.shift();\n subscription.unsubscribe();\n }\n queues.length = 0;\n completedStreams.clear();\n activeStreamIndex = 0;\n }\n const producer = {\n start: (listener) => {\n streams.forEach((_) => queues.push([]));\n function emitAllQueuesEvents(streamIndex) {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const element = queues[streamIndex].shift();\n if (element === undefined) {\n return;\n }\n listener.next(element);\n }\n }\n function isDone() {\n return activeStreamIndex >= streams.length;\n }\n if (isDone()) {\n listener.complete();\n return;\n }\n streams.forEach((stream, index) => {\n subscriptions.push(stream.subscribe({\n next: (value) => {\n if (index === activeStreamIndex) {\n listener.next(value);\n }\n else {\n queues[index].push(value);\n }\n },\n complete: () => {\n completedStreams.add(index);\n while (completedStreams.has(activeStreamIndex)) {\n // this stream completed: emit all and move on\n emitAllQueuesEvents(activeStreamIndex);\n activeStreamIndex++;\n }\n if (isDone()) {\n listener.complete();\n }\n else {\n // now active stream can have some events queued but did not yet complete\n emitAllQueuesEvents(activeStreamIndex);\n }\n },\n error: (error) => {\n listener.error(error);\n reset();\n },\n }));\n });\n },\n stop: () => {\n reset();\n },\n };\n return xstream_1.Stream.create(producer);\n}\nexports.concat = concat;\n//# sourceMappingURL=concat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultValueProducer = void 0;\n// allows pre-producing values before anyone is listening\nclass DefaultValueProducer {\n constructor(value, callbacks) {\n this.callbacks = callbacks;\n this.internalValue = value;\n }\n get value() {\n return this.internalValue;\n }\n /**\n * Update the current value.\n *\n * If producer is active (i.e. someone is listening), this emits an event.\n * If not, just the current value is updated.\n */\n update(value) {\n this.internalValue = value;\n if (this.listener) {\n this.listener.next(value);\n }\n }\n /**\n * Produce an error\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n error(error) {\n if (this.listener) {\n this.listener.error(error);\n }\n }\n /**\n * Called by the stream. Do not call this directly.\n */\n start(listener) {\n this.listener = listener;\n listener.next(this.internalValue);\n if (this.callbacks) {\n this.callbacks.onStarted();\n }\n }\n /**\n * Called by the stream. Do not call this directly.\n */\n stop() {\n if (this.callbacks) {\n this.callbacks.onStop();\n }\n this.listener = undefined;\n }\n}\nexports.DefaultValueProducer = DefaultValueProducer;\n//# sourceMappingURL=defaultvalueproducer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dropDuplicates = void 0;\n/**\n * Drops duplicate values in a stream.\n *\n * Marble diagram:\n *\n * ```text\n * -1-1-1-2-4-3-3-4--\n * dropDuplicates\n * -1-----2-4-3------\n * ```\n *\n * Each value must be uniquely identified by a string given by\n * valueToKey(value).\n *\n * Internally this maintains a set of keys that have been processed already,\n * i.e. memory consumption and Set lookup times should be considered when\n * using this function.\n */\nfunction dropDuplicates(valueToKey) {\n const operand = (instream) => {\n const emittedKeys = new Set();\n const deduplicatedStream = instream\n .filter((value) => !emittedKeys.has(valueToKey(value)))\n .debug((value) => emittedKeys.add(valueToKey(value)));\n return deduplicatedStream;\n };\n return operand;\n}\nexports.dropDuplicates = dropDuplicates;\n//# sourceMappingURL=dropduplicates.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueAndUpdates = exports.toListPromise = exports.fromListPromise = exports.firstEvent = exports.dropDuplicates = exports.DefaultValueProducer = exports.concat = void 0;\nvar concat_1 = require(\"./concat\");\nObject.defineProperty(exports, \"concat\", { enumerable: true, get: function () { return concat_1.concat; } });\nvar defaultvalueproducer_1 = require(\"./defaultvalueproducer\");\nObject.defineProperty(exports, \"DefaultValueProducer\", { enumerable: true, get: function () { return defaultvalueproducer_1.DefaultValueProducer; } });\nvar dropduplicates_1 = require(\"./dropduplicates\");\nObject.defineProperty(exports, \"dropDuplicates\", { enumerable: true, get: function () { return dropduplicates_1.dropDuplicates; } });\nvar promise_1 = require(\"./promise\");\nObject.defineProperty(exports, \"firstEvent\", { enumerable: true, get: function () { return promise_1.firstEvent; } });\nObject.defineProperty(exports, \"fromListPromise\", { enumerable: true, get: function () { return promise_1.fromListPromise; } });\nObject.defineProperty(exports, \"toListPromise\", { enumerable: true, get: function () { return promise_1.toListPromise; } });\n__exportStar(require(\"./reducer\"), exports);\nvar valueandupdates_1 = require(\"./valueandupdates\");\nObject.defineProperty(exports, \"ValueAndUpdates\", { enumerable: true, get: function () { return valueandupdates_1.ValueAndUpdates; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.firstEvent = exports.toListPromise = exports.fromListPromise = void 0;\nconst xstream_1 = require(\"xstream\");\n/**\n * Emits one event for each list element as soon as the promise resolves\n */\nfunction fromListPromise(promise) {\n const producer = {\n start: (listener) => {\n // the code in `start` runs as soon as anyone listens to the stream\n promise\n .then((iterable) => {\n for (const element of iterable) {\n listener.next(element);\n }\n listener.complete();\n })\n .catch((error) => listener.error(error));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n stop: () => { },\n };\n return xstream_1.Stream.create(producer);\n}\nexports.fromListPromise = fromListPromise;\n/**\n * Listens to stream and collects events. When `count` events are collected,\n * the promise resolves with an array of events.\n *\n * Rejects if stream completes before `count` events are collected.\n */\nasync function toListPromise(stream, count) {\n return new Promise((resolve, reject) => {\n if (count === 0) {\n resolve([]);\n return;\n }\n const events = new Array();\n // take() unsubscribes from source stream automatically\n stream.take(count).subscribe({\n next: (event) => {\n events.push(event);\n if (events.length === count) {\n resolve(events);\n }\n },\n complete: () => {\n reject(`Stream completed before all events could be collected. ` +\n `Collected ${events.length}, expected ${count}`);\n },\n error: (error) => reject(error),\n });\n });\n}\nexports.toListPromise = toListPromise;\n/**\n * Listens to stream, collects one event and revolves.\n *\n * Rejects if stream completes before one event was fired.\n */\nasync function firstEvent(stream) {\n return (await toListPromise(stream, 1))[0];\n}\nexports.firstEvent = firstEvent;\n//# sourceMappingURL=promise.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lastValue = exports.asArray = exports.countStream = exports.Reducer = void 0;\n// Reducer takes a stream of events T and a ReducerFunc, that\n// materializes a state of type U.\nclass Reducer {\n constructor(stream, reducer, initState) {\n this.stream = stream;\n this.reducer = reducer;\n this.state = initState;\n this.completed = new Promise((resolve, reject) => {\n const subscription = this.stream.subscribe({\n next: (evt) => {\n this.state = this.reducer(this.state, evt);\n },\n complete: () => {\n resolve();\n // this must happen after resolve, to ensure stream.subscribe() has finished\n subscription.unsubscribe();\n },\n error: (err) => {\n reject(err);\n // the stream already closed on error, but unsubscribe to be safe\n subscription.unsubscribe();\n },\n });\n });\n }\n // value returns current materialized state\n value() {\n return this.state;\n }\n // finished resolves on completed stream, rejects on stream error\n async finished() {\n return this.completed;\n }\n}\nexports.Reducer = Reducer;\nfunction increment(sum, _) {\n return sum + 1;\n}\n// countStream returns a reducer that contains current count\n// of events on the stream\nfunction countStream(stream) {\n return new Reducer(stream, increment, 0);\n}\nexports.countStream = countStream;\nfunction append(list, evt) {\n return [...list, evt];\n}\n// asArray maintains an array containing all events that have\n// occurred on the stream\nfunction asArray(stream) {\n return new Reducer(stream, append, []);\n}\nexports.asArray = asArray;\nfunction last(_, event) {\n return event;\n}\n// lastValue returns the last value read from the stream, or undefined if no values sent\nfunction lastValue(stream) {\n return new Reducer(stream, last, undefined);\n}\nexports.lastValue = lastValue;\n//# sourceMappingURL=reducer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueAndUpdates = void 0;\nconst xstream_1 = require(\"xstream\");\n/**\n * A read only wrapper around DefaultValueProducer that allows\n * to synchronously get the current value using the .value property\n * and listen to to updates by suscribing to the .updates stream\n */\nclass ValueAndUpdates {\n constructor(producer) {\n this.producer = producer;\n this.updates = xstream_1.MemoryStream.createWithMemory(this.producer);\n }\n get value() {\n return this.producer.value;\n }\n /**\n * Resolves as soon as search value is found.\n *\n * @param search either a value or a function that must return true when found\n * @returns the value of the update that caused the search match\n */\n async waitFor(search) {\n const searchImplementation = typeof search === \"function\" ? search : (value) => value === search;\n return new Promise((resolve, reject) => {\n const subscription = this.updates.subscribe({\n next: (newValue) => {\n if (searchImplementation(newValue)) {\n resolve(newValue);\n // MemoryStream.subscribe() calls next with the last value.\n // Make async to ensure the subscription exists\n setTimeout(() => subscription.unsubscribe(), 0);\n }\n },\n complete: () => {\n subscription.unsubscribe();\n reject(\"Update stream completed without expected value\");\n },\n error: (error) => {\n reject(error);\n },\n });\n });\n }\n}\nexports.ValueAndUpdates = ValueAndUpdates;\n//# sourceMappingURL=valueandupdates.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pubkeyToAddress = exports.pubkeyToRawAddress = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encoding_1 = require(\"@cosmjs/encoding\");\nfunction rawEd25519PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 32) {\n throw new Error(`Invalid Ed25519 pubkey length: ${pubkeyData.length}`);\n }\n return (0, crypto_1.sha256)(pubkeyData).slice(0, 20);\n}\nexports.rawEd25519PubkeyToRawAddress = rawEd25519PubkeyToRawAddress;\nfunction rawSecp256k1PubkeyToRawAddress(pubkeyData) {\n if (pubkeyData.length !== 33) {\n throw new Error(`Invalid Secp256k1 pubkey length (compressed): ${pubkeyData.length}`);\n }\n return (0, crypto_1.ripemd160)((0, crypto_1.sha256)(pubkeyData));\n}\nexports.rawSecp256k1PubkeyToRawAddress = rawSecp256k1PubkeyToRawAddress;\n// For secp256k1 this assumes we already have a compressed pubkey.\nfunction pubkeyToRawAddress(type, data) {\n switch (type) {\n case \"ed25519\":\n return rawEd25519PubkeyToRawAddress(data);\n case \"secp256k1\":\n return rawSecp256k1PubkeyToRawAddress(data);\n default:\n // Keep this case here to guard against new types being added but not handled\n throw new Error(`Pubkey type ${type} not supported`);\n }\n}\nexports.pubkeyToRawAddress = pubkeyToRawAddress;\nfunction pubkeyToAddress(type, data) {\n return (0, encoding_1.toHex)(pubkeyToRawAddress(type, data)).toUpperCase();\n}\nexports.pubkeyToAddress = pubkeyToAddress;\n//# sourceMappingURL=addresses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateTime = exports.toSeconds = exports.fromSeconds = exports.toRfc3339WithNanoseconds = exports.fromRfc3339WithNanoseconds = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\nfunction fromRfc3339WithNanoseconds(dateTimeString) {\n const out = (0, encoding_1.fromRfc3339)(dateTimeString);\n const nanosecondsMatch = dateTimeString.match(/\\.(\\d+)Z$/);\n const nanoseconds = nanosecondsMatch ? nanosecondsMatch[1].slice(3) : \"\";\n out.nanoseconds = parseInt(nanoseconds.padEnd(6, \"0\"), 10);\n return out;\n}\nexports.fromRfc3339WithNanoseconds = fromRfc3339WithNanoseconds;\nfunction toRfc3339WithNanoseconds(dateTime) {\n var _a, _b;\n const millisecondIso = dateTime.toISOString();\n const nanoseconds = (_b = (_a = dateTime.nanoseconds) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"\";\n return `${millisecondIso.slice(0, -1)}${nanoseconds.padStart(6, \"0\")}Z`;\n}\nexports.toRfc3339WithNanoseconds = toRfc3339WithNanoseconds;\nfunction fromSeconds(seconds, nanos = 0) {\n const checkedNanos = new math_1.Uint32(nanos).toNumber();\n if (checkedNanos > 999999999) {\n throw new Error(\"Nano seconds must not exceed 999999999\");\n }\n const out = new Date(seconds * 1000 + Math.floor(checkedNanos / 1000000));\n out.nanoseconds = checkedNanos % 1000000;\n return out;\n}\nexports.fromSeconds = fromSeconds;\n/**\n * Calculates the UNIX timestamp in seconds as well as the nanoseconds after the given second.\n *\n * This is useful when dealing with external systems like the protobuf type\n * [.google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp)\n * or any other system that does not use millisecond precision.\n */\nfunction toSeconds(date) {\n var _a;\n return {\n seconds: Math.floor(date.getTime() / 1000),\n nanos: (date.getTime() % 1000) * 1000000 + ((_a = date.nanoseconds) !== null && _a !== void 0 ? _a : 0),\n };\n}\nexports.toSeconds = toSeconds;\n/** @deprecated Use fromRfc3339WithNanoseconds/toRfc3339WithNanoseconds instead */\nclass DateTime {\n /** @deprecated Use fromRfc3339WithNanoseconds instead */\n static decode(dateTimeString) {\n return fromRfc3339WithNanoseconds(dateTimeString);\n }\n /** @deprecated Use toRfc3339WithNanoseconds instead */\n static encode(dateTime) {\n return toRfc3339WithNanoseconds(dateTime);\n }\n}\nexports.DateTime = DateTime;\n//# sourceMappingURL=dates.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockIdFlag = exports.Tendermint34Client = exports.tendermint34 = exports.VoteType = exports.SubscriptionEventType = exports.Method = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.WebsocketClient = exports.HttpClient = exports.toSeconds = exports.toRfc3339WithNanoseconds = exports.fromSeconds = exports.fromRfc3339WithNanoseconds = exports.DateTime = exports.rawSecp256k1PubkeyToRawAddress = exports.rawEd25519PubkeyToRawAddress = exports.pubkeyToRawAddress = exports.pubkeyToAddress = void 0;\nvar addresses_1 = require(\"./addresses\");\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawEd25519PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawEd25519PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return addresses_1.rawSecp256k1PubkeyToRawAddress; } });\nvar dates_1 = require(\"./dates\");\nObject.defineProperty(exports, \"DateTime\", { enumerable: true, get: function () { return dates_1.DateTime; } });\nObject.defineProperty(exports, \"fromRfc3339WithNanoseconds\", { enumerable: true, get: function () { return dates_1.fromRfc3339WithNanoseconds; } });\nObject.defineProperty(exports, \"fromSeconds\", { enumerable: true, get: function () { return dates_1.fromSeconds; } });\nObject.defineProperty(exports, \"toRfc3339WithNanoseconds\", { enumerable: true, get: function () { return dates_1.toRfc3339WithNanoseconds; } });\nObject.defineProperty(exports, \"toSeconds\", { enumerable: true, get: function () { return dates_1.toSeconds; } });\nvar rpcclients_1 = require(\"./rpcclients\"); // TODO: Why do we export those outside of this package?\nObject.defineProperty(exports, \"HttpClient\", { enumerable: true, get: function () { return rpcclients_1.HttpClient; } });\nObject.defineProperty(exports, \"WebsocketClient\", { enumerable: true, get: function () { return rpcclients_1.WebsocketClient; } });\nvar tendermint34_1 = require(\"./tendermint34\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return tendermint34_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return tendermint34_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return tendermint34_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return tendermint34_1.SubscriptionEventType; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return tendermint34_1.VoteType; } });\nexports.tendermint34 = __importStar(require(\"./tendermint34\"));\nvar tendermint34_2 = require(\"./tendermint34\");\nObject.defineProperty(exports, \"Tendermint34Client\", { enumerable: true, get: function () { return tendermint34_2.Tendermint34Client; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"BlockIdFlag\", { enumerable: true, get: function () { return types_1.BlockIdFlag; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createJsonRpcRequest = void 0;\nconst numbersWithoutZero = \"123456789\";\n/** generates a random numeric character */\nfunction randomNumericChar() {\n return numbersWithoutZero[Math.floor(Math.random() * numbersWithoutZero.length)];\n}\n/**\n * An (absolutely not cryptographically secure) random integer > 0.\n */\nfunction randomId() {\n return parseInt(Array.from({ length: 12 })\n .map(() => randomNumericChar())\n .join(\"\"), 10);\n}\n/** Creates a JSON-RPC request with random ID */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction createJsonRpcRequest(method, params) {\n const paramsCopy = params ? { ...params } : {};\n return {\n jsonrpc: \"2.0\",\n id: randomId(),\n method: method,\n params: paramsCopy,\n };\n}\nexports.createJsonRpcRequest = createJsonRpcRequest;\n//# sourceMappingURL=jsonrpc.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.http = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst axios_1 = __importDefault(require(\"axios\"));\nconst rpcclient_1 = require(\"./rpcclient\");\nfunction filterBadStatus(res) {\n if (res.status >= 400) {\n throw new Error(`Bad status on response: ${res.status}`);\n }\n return res;\n}\n/**\n * Helper to work around missing CORS support in Tendermint (https://github.com/tendermint/tendermint/pull/2800)\n *\n * For some reason, fetch does not complain about missing server-side CORS support.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nasync function http(method, url, request) {\n if (typeof fetch !== \"undefined\") {\n const body = request ? JSON.stringify(request) : undefined;\n return fetch(url, { method: method, body: body })\n .then(filterBadStatus)\n .then((res) => res.json());\n }\n else {\n return axios_1.default.request({ url: url, method: method, data: request }).then((res) => res.data);\n }\n}\nexports.http = http;\nclass HttpClient {\n constructor(url) {\n // accept host.name:port and assume http protocol\n this.url = (0, rpcclient_1.hasProtocol)(url) ? url : \"http://\" + url;\n }\n disconnect() {\n // nothing to be done\n }\n async execute(request) {\n const response = (0, json_rpc_1.parseJsonRpcResponse)(await http(\"POST\", this.url, request));\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n throw new Error(JSON.stringify(response.error));\n }\n return response;\n }\n}\nexports.HttpClient = HttpClient;\n//# sourceMappingURL=httpclient.js.map","\"use strict\";\n// This folder contains Tendermint-specific RPC clients\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClient = exports.instanceOfRpcStreamingClient = exports.HttpClient = void 0;\nvar httpclient_1 = require(\"./httpclient\");\nObject.defineProperty(exports, \"HttpClient\", { enumerable: true, get: function () { return httpclient_1.HttpClient; } });\nvar rpcclient_1 = require(\"./rpcclient\");\nObject.defineProperty(exports, \"instanceOfRpcStreamingClient\", { enumerable: true, get: function () { return rpcclient_1.instanceOfRpcStreamingClient; } });\nvar websocketclient_1 = require(\"./websocketclient\");\nObject.defineProperty(exports, \"WebsocketClient\", { enumerable: true, get: function () { return websocketclient_1.WebsocketClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasProtocol = exports.instanceOfRpcStreamingClient = void 0;\nfunction instanceOfRpcStreamingClient(client) {\n return typeof client.listen === \"function\";\n}\nexports.instanceOfRpcStreamingClient = instanceOfRpcStreamingClient;\n// Helpers for all RPC clients\nfunction hasProtocol(url) {\n return url.search(\"://\") !== -1;\n}\nexports.hasProtocol = hasProtocol;\n//# sourceMappingURL=rpcclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketClient = void 0;\nconst json_rpc_1 = require(\"@cosmjs/json-rpc\");\nconst socket_1 = require(\"@cosmjs/socket\");\nconst stream_1 = require(\"@cosmjs/stream\");\nconst xstream_1 = require(\"xstream\");\nconst rpcclient_1 = require(\"./rpcclient\");\nfunction defaultErrorHandler(error) {\n throw error;\n}\nfunction toJsonRpcResponse(message) {\n // this should never happen, but I want an alert if it does\n if (message.type !== \"message\") {\n throw new Error(`Unexcepted message type on websocket: ${message.type}`);\n }\n const jsonRpcEvent = (0, json_rpc_1.parseJsonRpcResponse)(JSON.parse(message.data));\n return jsonRpcEvent;\n}\nclass RpcEventProducer {\n constructor(request, socket) {\n this.running = false;\n this.subscriptions = [];\n this.request = request;\n this.socket = socket;\n }\n /**\n * Implementation of Producer.start\n */\n start(listener) {\n if (this.running) {\n throw Error(\"Already started. Please stop first before restarting.\");\n }\n this.running = true;\n this.connectToClient(listener);\n this.socket.queueRequest(JSON.stringify(this.request));\n }\n /**\n * Implementation of Producer.stop\n *\n * Called by the stream when the stream's last listener stopped listening\n * or when the producer completed.\n */\n stop() {\n this.running = false;\n // Tell the server we are done in order to save resources. We cannot wait for the result.\n // This may fail when socket connection is not open, thus ignore errors in queueRequest\n const endRequest = { ...this.request, method: \"unsubscribe\" };\n try {\n this.socket.queueRequest(JSON.stringify(endRequest));\n }\n catch (error) {\n if (error instanceof Error && error.message.match(/socket has disconnected/i)) {\n // ignore\n }\n else {\n throw error;\n }\n }\n }\n connectToClient(listener) {\n const responseStream = this.socket.events.map(toJsonRpcResponse);\n // this should unsubscribe itself, so doesn't need to be removed explicitly\n const idSubscription = responseStream\n .filter((response) => response.id === this.request.id)\n .subscribe({\n next: (response) => {\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n this.closeSubscriptions();\n listener.error(JSON.stringify(response.error));\n }\n idSubscription.unsubscribe();\n },\n });\n // this will fire on a response (success or error)\n // Tendermint adds an \"#event\" suffix for events that follow a previous subscription\n // https://github.com/tendermint/tendermint/blob/v0.23.0/rpc/core/events.go#L107\n const idEventSubscription = responseStream\n .filter((response) => response.id === this.request.id)\n .subscribe({\n next: (response) => {\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n this.closeSubscriptions();\n listener.error(JSON.stringify(response.error));\n }\n else {\n listener.next(response.result);\n }\n },\n });\n // this will fire in case the websocket disconnects cleanly\n const nonResponseSubscription = responseStream.subscribe({\n error: (error) => {\n this.closeSubscriptions();\n listener.error(error);\n },\n complete: () => {\n this.closeSubscriptions();\n listener.complete();\n },\n });\n this.subscriptions.push(idSubscription, idEventSubscription, nonResponseSubscription);\n }\n closeSubscriptions() {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n // clear unused subscriptions\n this.subscriptions = [];\n }\n}\nclass WebsocketClient {\n constructor(baseUrl, onError = defaultErrorHandler) {\n // Lazily create streams and use the same stream when listening to the same query twice.\n //\n // Creating streams is cheap since producer is not started as long as nobody listens to events. Thus this\n // map is never cleared and there is no need to do so. But unsubscribe all the subscriptions!\n this.subscriptionStreams = new Map();\n // accept host.name:port and assume ws protocol\n // make sure we don't end up with ...//websocket\n const path = baseUrl.endsWith(\"/\") ? \"websocket\" : \"/websocket\";\n const cleanBaseUrl = (0, rpcclient_1.hasProtocol)(baseUrl) ? baseUrl : \"ws://\" + baseUrl;\n this.url = cleanBaseUrl + path;\n this.socket = new socket_1.ReconnectingSocket(this.url);\n const errorSubscription = this.socket.events.subscribe({\n error: (error) => {\n onError(error);\n errorSubscription.unsubscribe();\n },\n });\n this.jsonRpcResponseStream = this.socket.events.map(toJsonRpcResponse);\n this.socket.connect();\n }\n async execute(request) {\n const pendingResponse = this.responseForRequestId(request.id);\n this.socket.queueRequest(JSON.stringify(request));\n const response = await pendingResponse;\n if ((0, json_rpc_1.isJsonRpcErrorResponse)(response)) {\n throw new Error(JSON.stringify(response.error));\n }\n return response;\n }\n listen(request) {\n if (request.method !== \"subscribe\") {\n throw new Error(`Request method must be \"subscribe\" to start event listening`);\n }\n const query = request.params.query;\n if (typeof query !== \"string\") {\n throw new Error(\"request.params.query must be a string\");\n }\n if (!this.subscriptionStreams.has(query)) {\n const producer = new RpcEventProducer(request, this.socket);\n const stream = xstream_1.Stream.create(producer);\n this.subscriptionStreams.set(query, stream);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.subscriptionStreams.get(query).filter((response) => response.query !== undefined);\n }\n /**\n * Resolves as soon as websocket is connected. execute() queues requests automatically,\n * so this should be required for testing purposes only.\n */\n async connected() {\n await this.socket.connectionStatus.waitFor(socket_1.ConnectionStatus.Connected);\n }\n disconnect() {\n this.socket.disconnect();\n }\n async responseForRequestId(id) {\n return (0, stream_1.firstEvent)(this.jsonRpcResponseStream.filter((r) => r.id === id));\n }\n}\nexports.WebsocketClient = WebsocketClient;\n//# sourceMappingURL=websocketclient.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.adaptor34 = void 0;\nconst hasher_1 = require(\"../hasher\");\nconst requests_1 = require(\"./requests\");\nconst responses_1 = require(\"./responses\");\nexports.adaptor34 = {\n params: requests_1.Params,\n responses: responses_1.Responses,\n hashTx: hasher_1.hashTx,\n hashBlock: hasher_1.hashBlock,\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst jsonrpc_1 = require(\"../../jsonrpc\");\nconst encodings_1 = require(\"../encodings\");\nconst requests = __importStar(require(\"../requests\"));\nfunction encodeHeightParam(param) {\n return {\n height: (0, encodings_1.may)(encodings_1.Integer.encode, param.height),\n };\n}\nfunction encodeBlockchainRequestParams(param) {\n return {\n minHeight: (0, encodings_1.may)(encodings_1.Integer.encode, param.minHeight),\n maxHeight: (0, encodings_1.may)(encodings_1.Integer.encode, param.maxHeight),\n };\n}\nfunction encodeBlockSearchParams(params) {\n return {\n query: params.query,\n page: (0, encodings_1.may)(encodings_1.Integer.encode, params.page),\n per_page: (0, encodings_1.may)(encodings_1.Integer.encode, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeAbciQueryParams(params) {\n return {\n path: (0, encodings_1.assertNotEmpty)(params.path),\n data: (0, encoding_1.toHex)(params.data),\n height: (0, encodings_1.may)(encodings_1.Integer.encode, params.height),\n prove: params.prove,\n };\n}\nfunction encodeBroadcastTxParams(params) {\n return {\n tx: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.tx)),\n };\n}\nfunction encodeTxParams(params) {\n return {\n hash: (0, encoding_1.toBase64)((0, encodings_1.assertNotEmpty)(params.hash)),\n prove: params.prove,\n };\n}\nfunction encodeTxSearchParams(params) {\n return {\n query: params.query,\n prove: params.prove,\n page: (0, encodings_1.may)(encodings_1.Integer.encode, params.page),\n per_page: (0, encodings_1.may)(encodings_1.Integer.encode, params.per_page),\n order_by: params.order_by,\n };\n}\nfunction encodeValidatorsParams(params) {\n return {\n height: (0, encodings_1.may)(encodings_1.Integer.encode, params.height),\n page: (0, encodings_1.may)(encodings_1.Integer.encode, params.page),\n per_page: (0, encodings_1.may)(encodings_1.Integer.encode, params.per_page),\n };\n}\nclass Params {\n static encodeAbciInfo(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeAbciQuery(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeAbciQueryParams(req.params));\n }\n static encodeBlock(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockchain(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockchainRequestParams(req.params));\n }\n static encodeBlockResults(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeBlockSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBlockSearchParams(req.params));\n }\n static encodeBroadcastTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeBroadcastTxParams(req.params));\n }\n static encodeCommit(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeHeightParam(req.params));\n }\n static encodeGenesis(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeHealth(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeStatus(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method);\n }\n static encodeSubscribe(req) {\n const eventTag = { key: \"tm.event\", value: req.query.type };\n const query = requests.buildQuery({ tags: [eventTag], raw: req.query.raw });\n return (0, jsonrpc_1.createJsonRpcRequest)(\"subscribe\", { query: query });\n }\n static encodeTx(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxParams(req.params));\n }\n // TODO: encode params for query string???\n static encodeTxSearch(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeTxSearchParams(req.params));\n }\n static encodeValidators(req) {\n return (0, jsonrpc_1.createJsonRpcRequest)(req.method, encodeValidatorsParams(req.params));\n }\n}\nexports.Params = Params;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Responses = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst utils_1 = require(\"@cosmjs/utils\");\nconst dates_1 = require(\"../../dates\");\nconst types_1 = require(\"../../types\");\nconst encodings_1 = require(\"../encodings\");\nconst hasher_1 = require(\"../hasher\");\nfunction decodeAbciInfo(data) {\n return {\n data: data.data,\n lastBlockHeight: (0, encodings_1.may)(encodings_1.Integer.parse, data.last_block_height),\n lastBlockAppHash: (0, encodings_1.may)(encoding_1.fromBase64, data.last_block_app_hash),\n };\n}\nfunction decodeQueryProof(data) {\n return {\n ops: data.ops.map((op) => ({\n type: op.type,\n key: (0, encoding_1.fromBase64)(op.key),\n data: (0, encoding_1.fromBase64)(op.data),\n })),\n };\n}\nfunction decodeAbciQuery(data) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.optional)(data.key, \"\")),\n value: (0, encoding_1.fromBase64)((0, encodings_1.optional)(data.value, \"\")),\n proof: (0, encodings_1.may)(decodeQueryProof, data.proofOps),\n height: (0, encodings_1.may)(encodings_1.Integer.parse, data.height),\n code: (0, encodings_1.may)(encodings_1.Integer.parse, data.code),\n index: (0, encodings_1.may)(encodings_1.Integer.parse, data.index),\n log: data.log,\n };\n}\nfunction decodeAttribute(attribute) {\n return {\n key: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(attribute.key)),\n value: (0, encoding_1.fromBase64)((0, encodings_1.optional)(attribute.value, \"\")),\n };\n}\nfunction decodeAttributes(attributes) {\n return (0, encodings_1.assertArray)(attributes).map(decodeAttribute);\n}\nfunction decodeEvent(event) {\n return {\n type: event.type,\n attributes: decodeAttributes(event.attributes),\n };\n}\nfunction decodeEvents(events) {\n return (0, encodings_1.assertArray)(events).map(decodeEvent);\n}\nfunction decodeTxData(data) {\n return {\n code: encodings_1.Integer.parse((0, encodings_1.assertNumber)((0, encodings_1.optional)(data.code, 0))),\n codeSpace: data.codespace,\n log: data.log,\n data: (0, encodings_1.may)(encoding_1.fromBase64, data.data),\n events: data.events ? decodeEvents(data.events) : [],\n gasWanted: encodings_1.Integer.parse((0, encodings_1.optional)(data.gas_wanted, \"0\")),\n gasUsed: encodings_1.Integer.parse((0, encodings_1.optional)(data.gas_used, \"0\")),\n };\n}\nfunction decodePubkey(data) {\n switch (data.type) {\n // go-amino special code\n case \"tendermint/PubKeyEd25519\":\n return {\n algorithm: \"ed25519\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n case \"tendermint/PubKeySecp256k1\":\n return {\n algorithm: \"secp256k1\",\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.value)),\n };\n default:\n throw new Error(`unknown pubkey type: ${data.type}`);\n }\n}\nfunction decodeValidatorUpdate(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n proposerPriority: encodings_1.Integer.parse(data.proposer_priority),\n };\n}\n/**\n * Note: we do not parse block.time_iota_ms for now because of this CHANGELOG entry\n *\n * > Add time_iota_ms to block's consensus parameters (not exposed to the application)\n * https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#v0310\n */\nfunction decodeBlockParams(data) {\n return {\n maxBytes: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.max_bytes)),\n maxGas: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.max_gas)),\n };\n}\nfunction decodeEvidenceParams(data) {\n return {\n maxAgeNumBlocks: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.max_age_num_blocks)),\n maxAgeDuration: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.max_age_duration)),\n };\n}\nfunction decodeConsensusParams(data) {\n return {\n block: decodeBlockParams((0, encodings_1.assertObject)(data.block)),\n evidence: decodeEvidenceParams((0, encodings_1.assertObject)(data.evidence)),\n };\n}\nfunction decodeBlockResults(data) {\n return {\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n results: (data.txs_results || []).map(decodeTxData),\n validatorUpdates: (data.validator_updates || []).map(decodeValidatorUpdate),\n consensusUpdates: (0, encodings_1.may)(decodeConsensusParams, data.consensus_param_updates),\n beginBlockEvents: decodeEvents(data.begin_block_events || []),\n endBlockEvents: decodeEvents(data.end_block_events || []),\n };\n}\nfunction decodeBlockId(data) {\n return {\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n parts: {\n total: (0, encodings_1.assertNotEmpty)(data.parts.total),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.parts.hash)),\n },\n };\n}\nfunction decodeBlockVersion(data) {\n var _a;\n return {\n block: encodings_1.Integer.parse(data.block),\n app: encodings_1.Integer.parse((_a = data.app) !== null && _a !== void 0 ? _a : 0),\n };\n}\nfunction decodeHeader(data) {\n return {\n version: decodeBlockVersion(data.version),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n time: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.time)),\n // When there is no last block ID (i.e. this block's height is 1), we get an empty structure like this:\n // { hash: '', parts: { total: 0, hash: '' } }\n lastBlockId: data.last_block_id.hash ? decodeBlockId(data.last_block_id) : null,\n lastCommitHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_commit_hash)),\n dataHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.data_hash)),\n validatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.validators_hash)),\n nextValidatorsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.next_validators_hash)),\n consensusHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.consensus_hash)),\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n lastResultsHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.last_results_hash)),\n evidenceHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.evidence_hash)),\n proposerAddress: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.proposer_address)),\n };\n}\nfunction decodeBlockMeta(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n blockSize: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.block_size)),\n header: decodeHeader(data.header),\n numTxs: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.num_txs)),\n };\n}\nfunction decodeBlockchain(data) {\n return {\n lastHeight: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.last_height)),\n blockMetas: (0, encodings_1.assertArray)(data.block_metas).map(decodeBlockMeta),\n };\n}\nfunction decodeBroadcastTxSync(data) {\n return {\n ...decodeTxData(data),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n };\n}\nfunction decodeBroadcastTxCommit(data) {\n return {\n height: encodings_1.Integer.parse(data.height),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n checkTx: decodeTxData((0, encodings_1.assertObject)(data.check_tx)),\n deliverTx: (0, encodings_1.may)(decodeTxData, data.deliver_tx),\n };\n}\nfunction decodeBlockIdFlag(blockIdFlag) {\n (0, utils_1.assert)(blockIdFlag in types_1.BlockIdFlag);\n return blockIdFlag;\n}\n/**\n * In some cases a timestamp is optional and set to the value 0 in Go.\n * This can lead to strings like \"0001-01-01T00:00:00Z\" (see https://github.com/cosmos/cosmjs/issues/704#issuecomment-797122415).\n * This decoder tries to clean up such encoding from the API and turn them\n * into undefined values.\n */\nfunction decodeOptionalTime(timestamp) {\n const nonZeroTime = timestamp && !timestamp.startsWith(\"0001-01-01\");\n return nonZeroTime ? (0, dates_1.fromRfc3339WithNanoseconds)(timestamp) : undefined;\n}\nfunction decodeCommitSignature(data) {\n return {\n blockIdFlag: decodeBlockIdFlag(data.block_id_flag),\n validatorAddress: data.validator_address ? (0, encoding_1.fromHex)(data.validator_address) : undefined,\n timestamp: decodeOptionalTime(data.timestamp),\n signature: data.signature ? (0, encoding_1.fromBase64)(data.signature) : undefined,\n };\n}\nfunction decodeCommit(data) {\n return {\n blockId: decodeBlockId((0, encodings_1.assertObject)(data.block_id)),\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n round: encodings_1.Integer.parse(data.round),\n signatures: (0, encodings_1.assertArray)(data.signatures).map(decodeCommitSignature),\n };\n}\nfunction decodeCommitResponse(data) {\n return {\n canonical: (0, encodings_1.assertBoolean)(data.canonical),\n header: decodeHeader(data.signed_header.header),\n commit: decodeCommit(data.signed_header.commit),\n };\n}\nfunction decodeValidatorGenesis(data) {\n return {\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.power)),\n };\n}\nfunction decodeGenesis(data) {\n return {\n genesisTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.genesis_time)),\n chainId: (0, encodings_1.assertNotEmpty)(data.chain_id),\n consensusParams: decodeConsensusParams(data.consensus_params),\n validators: data.validators ? (0, encodings_1.assertArray)(data.validators).map(decodeValidatorGenesis) : [],\n appHash: (0, encoding_1.fromHex)((0, encodings_1.assertSet)(data.app_hash)),\n appState: data.app_state,\n };\n}\nfunction decodeValidatorInfo(data) {\n return {\n pubkey: decodePubkey((0, encodings_1.assertObject)(data.pub_key)),\n votingPower: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.voting_power)),\n address: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.address)),\n };\n}\nfunction decodeNodeInfo(data) {\n return {\n id: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.id)),\n listenAddr: (0, encodings_1.assertNotEmpty)(data.listen_addr),\n network: (0, encodings_1.assertNotEmpty)(data.network),\n version: (0, encodings_1.assertString)(data.version),\n channels: (0, encodings_1.assertNotEmpty)(data.channels),\n moniker: (0, encodings_1.assertNotEmpty)(data.moniker),\n other: (0, encodings_1.dictionaryToStringMap)(data.other),\n protocolVersion: {\n app: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.protocol_version.app)),\n block: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.protocol_version.block)),\n p2p: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.protocol_version.p2p)),\n },\n };\n}\nfunction decodeSyncInfo(data) {\n return {\n latestBlockHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_block_hash)),\n latestAppHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.latest_app_hash)),\n latestBlockTime: (0, dates_1.fromRfc3339WithNanoseconds)((0, encodings_1.assertNotEmpty)(data.latest_block_time)),\n latestBlockHeight: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.latest_block_height)),\n catchingUp: (0, encodings_1.assertBoolean)(data.catching_up),\n };\n}\nfunction decodeStatus(data) {\n return {\n nodeInfo: decodeNodeInfo(data.node_info),\n syncInfo: decodeSyncInfo(data.sync_info),\n validatorInfo: decodeValidatorInfo(data.validator_info),\n };\n}\nfunction decodeTxProof(data) {\n return {\n data: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.data)),\n rootHash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.root_hash)),\n proof: {\n total: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.proof.total)),\n index: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.proof.index)),\n leafHash: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.proof.leaf_hash)),\n aunts: (0, encodings_1.assertArray)(data.proof.aunts).map(encoding_1.fromBase64),\n },\n };\n}\nfunction decodeTxResponse(data) {\n return {\n tx: (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx)),\n result: decodeTxData((0, encodings_1.assertObject)(data.tx_result)),\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n index: encodings_1.Integer.parse((0, encodings_1.assertNumber)(data.index)),\n hash: (0, encoding_1.fromHex)((0, encodings_1.assertNotEmpty)(data.hash)),\n proof: (0, encodings_1.may)(decodeTxProof, data.proof),\n };\n}\nfunction decodeTxSearch(data) {\n return {\n totalCount: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.total_count)),\n txs: (0, encodings_1.assertArray)(data.txs).map(decodeTxResponse),\n };\n}\nfunction decodeTxEvent(data) {\n const tx = (0, encoding_1.fromBase64)((0, encodings_1.assertNotEmpty)(data.tx));\n return {\n tx: tx,\n hash: (0, hasher_1.hashTx)(tx),\n result: decodeTxData(data.result),\n height: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.height)),\n index: (0, encodings_1.may)(encodings_1.Integer.parse, data.index),\n };\n}\nfunction decodeValidators(data) {\n return {\n blockHeight: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.block_height)),\n validators: (0, encodings_1.assertArray)(data.validators).map(decodeValidatorUpdate),\n count: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.count)),\n total: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.total)),\n };\n}\nfunction decodeBlock(data) {\n var _a, _b;\n return {\n header: decodeHeader((0, encodings_1.assertObject)(data.header)),\n // For the block at height 1, last commit is not set. This is represented in an empty object like this:\n // { height: '0', round: 0, block_id: { hash: '', parts: [Object] }, signatures: [] }\n lastCommit: data.last_commit.block_id.hash ? decodeCommit((0, encodings_1.assertObject)(data.last_commit)) : null,\n txs: data.data.txs ? (0, encodings_1.assertArray)(data.data.txs).map(encoding_1.fromBase64) : [],\n // Lift up .evidence.evidence to just .evidence\n // See https://github.com/tendermint/tendermint/issues/7697\n evidence: (_b = (_a = data.evidence) === null || _a === void 0 ? void 0 : _a.evidence) !== null && _b !== void 0 ? _b : [],\n };\n}\nfunction decodeBlockResponse(data) {\n return {\n blockId: decodeBlockId(data.block_id),\n block: decodeBlock(data.block),\n };\n}\nfunction decodeBlockSearch(data) {\n return {\n totalCount: encodings_1.Integer.parse((0, encodings_1.assertNotEmpty)(data.total_count)),\n blocks: (0, encodings_1.assertArray)(data.blocks).map(decodeBlockResponse),\n };\n}\nclass Responses {\n static decodeAbciInfo(response) {\n return decodeAbciInfo((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeAbciQuery(response) {\n return decodeAbciQuery((0, encodings_1.assertObject)(response.result.response));\n }\n static decodeBlock(response) {\n return decodeBlockResponse(response.result);\n }\n static decodeBlockResults(response) {\n return decodeBlockResults(response.result);\n }\n static decodeBlockSearch(response) {\n return decodeBlockSearch(response.result);\n }\n static decodeBlockchain(response) {\n return decodeBlockchain(response.result);\n }\n static decodeBroadcastTxSync(response) {\n return decodeBroadcastTxSync(response.result);\n }\n static decodeBroadcastTxAsync(response) {\n return Responses.decodeBroadcastTxSync(response);\n }\n static decodeBroadcastTxCommit(response) {\n return decodeBroadcastTxCommit(response.result);\n }\n static decodeCommit(response) {\n return decodeCommitResponse(response.result);\n }\n static decodeGenesis(response) {\n return decodeGenesis((0, encodings_1.assertObject)(response.result.genesis));\n }\n static decodeHealth() {\n return null;\n }\n static decodeStatus(response) {\n return decodeStatus(response.result);\n }\n static decodeNewBlockEvent(event) {\n return decodeBlock(event.data.value.block);\n }\n static decodeNewBlockHeaderEvent(event) {\n return decodeHeader(event.data.value.header);\n }\n static decodeTxEvent(event) {\n return decodeTxEvent(event.data.value.TxResult);\n }\n static decodeTx(response) {\n return decodeTxResponse(response.result);\n }\n static decodeTxSearch(response) {\n return decodeTxSearch(response.result);\n }\n static decodeValidators(response) {\n return decodeValidators(response.result);\n }\n}\nexports.Responses = Responses;\n//# sourceMappingURL=responses.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeBlockId = exports.encodeVersion = exports.encodeBytes = exports.encodeTime = exports.encodeInt = exports.encodeString = exports.Integer = exports.dictionaryToStringMap = exports.may = exports.optional = exports.assertNotEmpty = exports.assertObject = exports.assertArray = exports.assertNumber = exports.assertString = exports.assertBoolean = exports.assertSet = void 0;\nconst encoding_1 = require(\"@cosmjs/encoding\");\nconst math_1 = require(\"@cosmjs/math\");\n/**\n * A runtime checker that ensures a given value is set (i.e. not undefined or null)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n */\nfunction assertSet(value) {\n if (value === undefined) {\n throw new Error(\"Value must not be undefined\");\n }\n if (value === null) {\n throw new Error(\"Value must not be null\");\n }\n return value;\n}\nexports.assertSet = assertSet;\n/**\n * A runtime checker that ensures a given value is a boolean\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertBoolean(value) {\n assertSet(value);\n if (typeof value !== \"boolean\") {\n throw new Error(\"Value must be a boolean\");\n }\n return value;\n}\nexports.assertBoolean = assertBoolean;\n/**\n * A runtime checker that ensures a given value is a string.\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertString(value) {\n assertSet(value);\n if (typeof value !== \"string\") {\n throw new Error(\"Value must be a string\");\n }\n return value;\n}\nexports.assertString = assertString;\n/**\n * A runtime checker that ensures a given value is a number\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertNumber(value) {\n assertSet(value);\n if (typeof value !== \"number\") {\n throw new Error(\"Value must be a number\");\n }\n return value;\n}\nexports.assertNumber = assertNumber;\n/**\n * A runtime checker that ensures a given value is an array\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertArray(value) {\n assertSet(value);\n if (!Array.isArray(value)) {\n throw new Error(\"Value must be a an array\");\n }\n return value;\n}\nexports.assertArray = assertArray;\n/**\n * A runtime checker that ensures a given value is an object in the sense of JSON\n * (an unordered collection of key–value pairs where the keys are strings)\n *\n * This is used when you want to verify that data at runtime matches the expected type.\n * This implies assertSet.\n */\nfunction assertObject(value) {\n assertSet(value);\n if (typeof value !== \"object\") {\n throw new Error(\"Value must be an object\");\n }\n // Exclude special kind of objects like Array, Date or Uint8Array\n // Object.prototype.toString() returns a specified value:\n // http://www.ecma-international.org/ecma-262/7.0/index.html#sec-object.prototype.tostring\n if (Object.prototype.toString.call(value) !== \"[object Object]\") {\n throw new Error(\"Value must be a simple object\");\n }\n return value;\n}\nexports.assertObject = assertObject;\n/**\n * Throws an error if value matches the empty value for the\n * given type (array/string of length 0, number of value 0, ...)\n *\n * Otherwise returns the value.\n *\n * This implies assertSet\n */\nfunction assertNotEmpty(value) {\n assertSet(value);\n if (typeof value === \"number\" && value === 0) {\n throw new Error(\"must provide a non-zero value\");\n }\n else if (value.length === 0) {\n throw new Error(\"must provide a non-empty value\");\n }\n return value;\n}\nexports.assertNotEmpty = assertNotEmpty;\n// optional uses the value or provides a default\nfunction optional(value, fallback) {\n return value === undefined || value === null ? fallback : value;\n}\nexports.optional = optional;\n// may will run the transform if value is defined, otherwise returns undefined\nfunction may(transform, value) {\n return value === undefined || value === null ? undefined : transform(value);\n}\nexports.may = may;\nfunction dictionaryToStringMap(obj) {\n const out = new Map();\n for (const key of Object.keys(obj)) {\n const value = obj[key];\n if (typeof value !== \"string\") {\n throw new Error(\"Found dictionary value of type other than string\");\n }\n out.set(key, value);\n }\n return out;\n}\nexports.dictionaryToStringMap = dictionaryToStringMap;\nclass Integer {\n static parse(input) {\n const asInt = typeof input === \"number\" ? new math_1.Int53(input) : math_1.Int53.fromString(input);\n return asInt.toNumber();\n }\n static encode(num) {\n return new math_1.Int53(num).toString();\n }\n}\nexports.Integer = Integer;\n// Encodings needed for hashing block headers\n// Several of these functions are inspired by https://github.com/nomic-io/js-tendermint/blob/tendermint-0.30/src/\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L193-L195\nfunction encodeString(s) {\n const utf8 = (0, encoding_1.toUtf8)(s);\n return Uint8Array.from([utf8.length, ...utf8]);\n}\nexports.encodeString = encodeString;\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L79-L87\nfunction encodeInt(n) {\n // eslint-disable-next-line no-bitwise\n return n >= 0x80 ? Uint8Array.from([(n & 0xff) | 0x80, ...encodeInt(n >> 7)]) : Uint8Array.from([n & 0xff]);\n}\nexports.encodeInt = encodeInt;\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L134-L178\nfunction encodeTime(time) {\n const milliseconds = time.getTime();\n const seconds = Math.floor(milliseconds / 1000);\n const secondsArray = seconds ? [0x08, ...encodeInt(seconds)] : new Uint8Array();\n const nanoseconds = (time.nanoseconds || 0) + (milliseconds % 1000) * 1e6;\n const nanosecondsArray = nanoseconds ? [0x10, ...encodeInt(nanoseconds)] : new Uint8Array();\n return Uint8Array.from([...secondsArray, ...nanosecondsArray]);\n}\nexports.encodeTime = encodeTime;\n// See https://github.com/tendermint/go-amino/blob/v0.15.0/encoder.go#L180-L187\nfunction encodeBytes(bytes) {\n // Since we're only dealing with short byte arrays we don't need a full VarBuffer implementation yet\n if (bytes.length >= 0x80)\n throw new Error(\"Not implemented for byte arrays of length 128 or more\");\n return bytes.length ? Uint8Array.from([bytes.length, ...bytes]) : new Uint8Array();\n}\nexports.encodeBytes = encodeBytes;\nfunction encodeVersion(version) {\n const blockArray = version.block ? Uint8Array.from([0x08, ...encodeInt(version.block)]) : new Uint8Array();\n const appArray = version.app ? Uint8Array.from([0x10, ...encodeInt(version.app)]) : new Uint8Array();\n return Uint8Array.from([...blockArray, ...appArray]);\n}\nexports.encodeVersion = encodeVersion;\nfunction encodeBlockId(blockId) {\n return Uint8Array.from([\n 0x0a,\n blockId.hash.length,\n ...blockId.hash,\n 0x12,\n blockId.parts.hash.length + 4,\n 0x08,\n blockId.parts.total,\n 0x12,\n blockId.parts.hash.length,\n ...blockId.parts.hash,\n ]);\n}\nexports.encodeBlockId = encodeBlockId;\n//# sourceMappingURL=encodings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashBlock = exports.hashTx = void 0;\nconst crypto_1 = require(\"@cosmjs/crypto\");\nconst encodings_1 = require(\"./encodings\");\n// hash is sha256\n// https://github.com/tendermint/tendermint/blob/master/UPGRADING.md#v0260\nfunction hashTx(tx) {\n return (0, crypto_1.sha256)(tx);\n}\nexports.hashTx = hashTx;\nfunction getSplitPoint(n) {\n if (n < 1)\n throw new Error(\"Cannot split an empty tree\");\n const largestPowerOf2 = 2 ** Math.floor(Math.log2(n));\n return largestPowerOf2 < n ? largestPowerOf2 : largestPowerOf2 / 2;\n}\nfunction hashLeaf(leaf) {\n const hash = new crypto_1.Sha256(Uint8Array.from([0]));\n hash.update(leaf);\n return hash.digest();\n}\nfunction hashInner(left, right) {\n const hash = new crypto_1.Sha256(Uint8Array.from([1]));\n hash.update(left);\n hash.update(right);\n return hash.digest();\n}\n// See https://github.com/tendermint/tendermint/blob/v0.31.8/docs/spec/blockchain/encoding.md#merkleroot\n// Note: the hashes input may not actually be hashes, especially before a recursive call\nfunction hashTree(hashes) {\n switch (hashes.length) {\n case 0:\n throw new Error(\"Cannot hash empty tree\");\n case 1:\n return hashLeaf(hashes[0]);\n default: {\n const slicePoint = getSplitPoint(hashes.length);\n const left = hashTree(hashes.slice(0, slicePoint));\n const right = hashTree(hashes.slice(slicePoint));\n return hashInner(left, right);\n }\n }\n}\nfunction hashBlock(header) {\n if (!header.lastBlockId) {\n throw new Error(\"Hashing a block header with no last block ID (i.e. header at height 1) is not supported. If you need this, contributions are welcome. Please add documentation and test vectors for this case.\");\n }\n const encodedFields = [\n (0, encodings_1.encodeVersion)(header.version),\n (0, encodings_1.encodeString)(header.chainId),\n (0, encodings_1.encodeInt)(header.height),\n (0, encodings_1.encodeTime)(header.time),\n (0, encodings_1.encodeBlockId)(header.lastBlockId),\n (0, encodings_1.encodeBytes)(header.lastCommitHash),\n (0, encodings_1.encodeBytes)(header.dataHash),\n (0, encodings_1.encodeBytes)(header.validatorsHash),\n (0, encodings_1.encodeBytes)(header.nextValidatorsHash),\n (0, encodings_1.encodeBytes)(header.consensusHash),\n (0, encodings_1.encodeBytes)(header.appHash),\n (0, encodings_1.encodeBytes)(header.lastResultsHash),\n (0, encodings_1.encodeBytes)(header.evidenceHash),\n (0, encodings_1.encodeBytes)(header.proposerAddress),\n ];\n return hashTree(encodedFields);\n}\nexports.hashBlock = hashBlock;\n//# sourceMappingURL=hasher.js.map","\"use strict\";\n// Note: all exports in this module are publicly available via\n// `import { tendermint34 } from \"@cosmjs/tendermint-rpc\"`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint34Client = exports.VoteType = exports.broadcastTxSyncSuccess = exports.broadcastTxCommitSuccess = exports.SubscriptionEventType = exports.Method = void 0;\nvar requests_1 = require(\"./requests\");\nObject.defineProperty(exports, \"Method\", { enumerable: true, get: function () { return requests_1.Method; } });\nObject.defineProperty(exports, \"SubscriptionEventType\", { enumerable: true, get: function () { return requests_1.SubscriptionEventType; } });\nvar responses_1 = require(\"./responses\");\nObject.defineProperty(exports, \"broadcastTxCommitSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxCommitSuccess; } });\nObject.defineProperty(exports, \"broadcastTxSyncSuccess\", { enumerable: true, get: function () { return responses_1.broadcastTxSyncSuccess; } });\nObject.defineProperty(exports, \"VoteType\", { enumerable: true, get: function () { return responses_1.VoteType; } });\nvar tendermint34client_1 = require(\"./tendermint34client\");\nObject.defineProperty(exports, \"Tendermint34Client\", { enumerable: true, get: function () { return tendermint34client_1.Tendermint34Client; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/naming-convention */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildQuery = exports.SubscriptionEventType = exports.Method = void 0;\n/**\n * RPC methods as documented in https://docs.tendermint.com/master/rpc/\n *\n * Enum raw value must match the spelling in the \"shell\" example call (snake_case)\n */\nvar Method;\n(function (Method) {\n Method[\"AbciInfo\"] = \"abci_info\";\n Method[\"AbciQuery\"] = \"abci_query\";\n Method[\"Block\"] = \"block\";\n /** Get block headers for minHeight <= height <= maxHeight. */\n Method[\"Blockchain\"] = \"blockchain\";\n Method[\"BlockResults\"] = \"block_results\";\n Method[\"BlockSearch\"] = \"block_search\";\n Method[\"BroadcastTxAsync\"] = \"broadcast_tx_async\";\n Method[\"BroadcastTxSync\"] = \"broadcast_tx_sync\";\n Method[\"BroadcastTxCommit\"] = \"broadcast_tx_commit\";\n Method[\"Commit\"] = \"commit\";\n Method[\"Genesis\"] = \"genesis\";\n Method[\"Health\"] = \"health\";\n Method[\"Status\"] = \"status\";\n Method[\"Subscribe\"] = \"subscribe\";\n Method[\"Tx\"] = \"tx\";\n Method[\"TxSearch\"] = \"tx_search\";\n Method[\"Validators\"] = \"validators\";\n Method[\"Unsubscribe\"] = \"unsubscribe\";\n})(Method = exports.Method || (exports.Method = {}));\n/**\n * Raw values must match the tendermint event name\n *\n * @see https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants\n */\nvar SubscriptionEventType;\n(function (SubscriptionEventType) {\n SubscriptionEventType[\"NewBlock\"] = \"NewBlock\";\n SubscriptionEventType[\"NewBlockHeader\"] = \"NewBlockHeader\";\n SubscriptionEventType[\"Tx\"] = \"Tx\";\n})(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {}));\nfunction buildQuery(components) {\n const tags = components.tags ? components.tags : [];\n const tagComponents = tags.map((tag) => `${tag.key}='${tag.value}'`);\n const rawComponents = components.raw ? [components.raw] : [];\n return [...tagComponents, ...rawComponents].join(\" AND \");\n}\nexports.buildQuery = buildQuery;\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VoteType = exports.broadcastTxCommitSuccess = exports.broadcastTxSyncSuccess = void 0;\n/**\n * Returns true iff transaction made it successfully into the transaction pool\n */\nfunction broadcastTxSyncSuccess(res) {\n // code must be 0 on success\n return res.code === 0;\n}\nexports.broadcastTxSyncSuccess = broadcastTxSyncSuccess;\n/**\n * Returns true iff transaction made it successfully into a block\n * (i.e. success in `check_tx` and `deliver_tx` field)\n */\nfunction broadcastTxCommitSuccess(response) {\n // code must be 0 on success\n // deliverTx may be present but empty on failure\n return response.checkTx.code === 0 && !!response.deliverTx && response.deliverTx.code === 0;\n}\nexports.broadcastTxCommitSuccess = broadcastTxCommitSuccess;\n/**\n * raw values from https://github.com/tendermint/tendermint/blob/dfa9a9a30a666132425b29454e90a472aa579a48/types/vote.go#L44\n */\nvar VoteType;\n(function (VoteType) {\n VoteType[VoteType[\"PreVote\"] = 1] = \"PreVote\";\n VoteType[VoteType[\"PreCommit\"] = 2] = \"PreCommit\";\n})(VoteType = exports.VoteType || (exports.VoteType = {}));\n//# sourceMappingURL=responses.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Tendermint34Client = void 0;\nconst jsonrpc_1 = require(\"../jsonrpc\");\nconst rpcclients_1 = require(\"../rpcclients\");\nconst adaptor_1 = require(\"./adaptor\");\nconst requests = __importStar(require(\"./requests\"));\nclass Tendermint34Client {\n /**\n * Use `Tendermint34Client.connect` or `Tendermint34Client.create` to create an instance.\n */\n constructor(client) {\n this.client = client;\n this.p = adaptor_1.adaptor34.params;\n this.r = adaptor_1.adaptor34.responses;\n }\n /**\n * Creates a new Tendermint client for the given endpoint.\n *\n * Uses HTTP when the URL schema is http or https. Uses WebSockets otherwise.\n */\n static async connect(url) {\n const useHttp = url.startsWith(\"http://\") || url.startsWith(\"https://\");\n const rpcClient = useHttp ? new rpcclients_1.HttpClient(url) : new rpcclients_1.WebsocketClient(url);\n return Tendermint34Client.create(rpcClient);\n }\n /**\n * Creates a new Tendermint client given an RPC client.\n */\n static async create(rpcClient) {\n // For some very strange reason I don't understand, tests start to fail on some systems\n // (our CI) when skipping the status call before doing other queries. Sleeping a little\n // while did not help. Thus we query the version as a way to say \"hi\" to the backend,\n // even in cases where we don't use the result.\n const _version = await this.detectVersion(rpcClient);\n return new Tendermint34Client(rpcClient);\n }\n static async detectVersion(client) {\n const req = (0, jsonrpc_1.createJsonRpcRequest)(requests.Method.Status);\n const response = await client.execute(req);\n const result = response.result;\n if (!result || !result.node_info) {\n throw new Error(\"Unrecognized format for status response\");\n }\n const version = result.node_info.version;\n if (typeof version !== \"string\") {\n throw new Error(\"Unrecognized version format: must be string\");\n }\n return version;\n }\n disconnect() {\n this.client.disconnect();\n }\n async abciInfo() {\n const query = { method: requests.Method.AbciInfo };\n return this.doCall(query, this.p.encodeAbciInfo, this.r.decodeAbciInfo);\n }\n async abciQuery(params) {\n const query = { params: params, method: requests.Method.AbciQuery };\n return this.doCall(query, this.p.encodeAbciQuery, this.r.decodeAbciQuery);\n }\n async block(height) {\n const query = { method: requests.Method.Block, params: { height: height } };\n return this.doCall(query, this.p.encodeBlock, this.r.decodeBlock);\n }\n async blockResults(height) {\n const query = {\n method: requests.Method.BlockResults,\n params: { height: height },\n };\n return this.doCall(query, this.p.encodeBlockResults, this.r.decodeBlockResults);\n }\n /**\n * Search for events that are in a block.\n *\n * NOTE\n * This method will error on any node that is running a Tendermint version lower than 0.34.9.\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/block_search\n */\n async blockSearch(params) {\n const query = { params: params, method: requests.Method.BlockSearch };\n const resp = await this.doCall(query, this.p.encodeBlockSearch, this.r.decodeBlockSearch);\n return {\n ...resp,\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n blocks: [...resp.blocks].sort((a, b) => a.block.header.height - b.block.header.height),\n };\n }\n // this should paginate through all blockSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n //\n // NOTE\n // This method will error on any node that is running a Tendermint version lower than 0.34.9.\n async blockSearchAll(params) {\n let page = params.page || 1;\n const blocks = [];\n let done = false;\n while (!done) {\n const resp = await this.blockSearch({ ...params, page: page });\n blocks.push(...resp.blocks);\n if (blocks.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n // make sure we sort by height, as tendermint may be sorting by string value of the height\n // and the earlier items may be in a higher page than the later items\n blocks.sort((a, b) => a.block.header.height - b.block.header.height);\n return {\n totalCount: blocks.length,\n blocks: blocks,\n };\n }\n /**\n * Queries block headers filtered by minHeight <= height <= maxHeight.\n *\n * @param minHeight The minimum height to be included in the result. Defaults to 0.\n * @param maxHeight The maximum height to be included in the result. Defaults to infinity.\n */\n async blockchain(minHeight, maxHeight) {\n const query = {\n method: requests.Method.Blockchain,\n params: {\n minHeight: minHeight,\n maxHeight: maxHeight,\n },\n };\n return this.doCall(query, this.p.encodeBlockchain, this.r.decodeBlockchain);\n }\n /**\n * Broadcast transaction to mempool and wait for response\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_sync\n */\n async broadcastTxSync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxSync };\n return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxSync);\n }\n /**\n * Broadcast transaction to mempool and do not wait for result\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_async\n */\n async broadcastTxAsync(params) {\n const query = { params: params, method: requests.Method.BroadcastTxAsync };\n return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxAsync);\n }\n /**\n * Broadcast transaction to mempool and wait for block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Tx/broadcast_tx_commit\n */\n async broadcastTxCommit(params) {\n const query = { params: params, method: requests.Method.BroadcastTxCommit };\n return this.doCall(query, this.p.encodeBroadcastTx, this.r.decodeBroadcastTxCommit);\n }\n async commit(height) {\n const query = { method: requests.Method.Commit, params: { height: height } };\n return this.doCall(query, this.p.encodeCommit, this.r.decodeCommit);\n }\n async genesis() {\n const query = { method: requests.Method.Genesis };\n return this.doCall(query, this.p.encodeGenesis, this.r.decodeGenesis);\n }\n async health() {\n const query = { method: requests.Method.Health };\n return this.doCall(query, this.p.encodeHealth, this.r.decodeHealth);\n }\n async status() {\n const query = { method: requests.Method.Status };\n return this.doCall(query, this.p.encodeStatus, this.r.decodeStatus);\n }\n subscribeNewBlock() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlock },\n };\n return this.subscribe(request, this.r.decodeNewBlockEvent);\n }\n subscribeNewBlockHeader() {\n const request = {\n method: requests.Method.Subscribe,\n query: { type: requests.SubscriptionEventType.NewBlockHeader },\n };\n return this.subscribe(request, this.r.decodeNewBlockHeaderEvent);\n }\n subscribeTx(query) {\n const request = {\n method: requests.Method.Subscribe,\n query: {\n type: requests.SubscriptionEventType.Tx,\n raw: query,\n },\n };\n return this.subscribe(request, this.r.decodeTxEvent);\n }\n /**\n * Get a single transaction by hash\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx\n */\n async tx(params) {\n const query = { params: params, method: requests.Method.Tx };\n return this.doCall(query, this.p.encodeTx, this.r.decodeTx);\n }\n /**\n * Search for transactions that are in a block\n *\n * @see https://docs.tendermint.com/master/rpc/#/Info/tx_search\n */\n async txSearch(params) {\n const query = { params: params, method: requests.Method.TxSearch };\n return this.doCall(query, this.p.encodeTxSearch, this.r.decodeTxSearch);\n }\n // this should paginate through all txSearch options to ensure it returns all results.\n // starts with page 1 or whatever was provided (eg. to start on page 7)\n async txSearchAll(params) {\n let page = params.page || 1;\n const txs = [];\n let done = false;\n while (!done) {\n const resp = await this.txSearch({ ...params, page: page });\n txs.push(...resp.txs);\n if (txs.length < resp.totalCount) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n totalCount: txs.length,\n txs: txs,\n };\n }\n async validators(params) {\n const query = {\n method: requests.Method.Validators,\n params: params,\n };\n return this.doCall(query, this.p.encodeValidators, this.r.decodeValidators);\n }\n async validatorsAll(height) {\n const validators = [];\n let page = 1;\n let done = false;\n let blockHeight = height;\n while (!done) {\n const response = await this.validators({\n per_page: 50,\n height: blockHeight,\n page: page,\n });\n validators.push(...response.validators);\n blockHeight = blockHeight || response.blockHeight;\n if (validators.length < response.total) {\n page++;\n }\n else {\n done = true;\n }\n }\n return {\n // NOTE: Default value is for type safety but this should always be set\n blockHeight: blockHeight !== null && blockHeight !== void 0 ? blockHeight : 0,\n count: validators.length,\n total: validators.length,\n validators: validators,\n };\n }\n // doCall is a helper to handle the encode/call/decode logic\n async doCall(request, encode, decode) {\n const req = encode(request);\n const result = await this.client.execute(req);\n return decode(result);\n }\n subscribe(request, decode) {\n if (!(0, rpcclients_1.instanceOfRpcStreamingClient)(this.client)) {\n throw new Error(\"This RPC client type cannot subscribe to events\");\n }\n const req = this.p.encodeSubscribe(request);\n const eventStream = this.client.listen(req);\n return eventStream.map((event) => {\n return decode(event);\n });\n }\n}\nexports.Tendermint34Client = Tendermint34Client;\n//# sourceMappingURL=tendermint34client.js.map","\"use strict\";\n// Types in this file are exported outside of the @cosmjs/tendermint-rpc package,\n// e.g. as part of a request or response\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockIdFlag = void 0;\nvar BlockIdFlag;\n(function (BlockIdFlag) {\n BlockIdFlag[BlockIdFlag[\"Unknown\"] = 0] = \"Unknown\";\n BlockIdFlag[BlockIdFlag[\"Absent\"] = 1] = \"Absent\";\n BlockIdFlag[BlockIdFlag[\"Commit\"] = 2] = \"Commit\";\n BlockIdFlag[BlockIdFlag[\"Nil\"] = 3] = \"Nil\";\n BlockIdFlag[BlockIdFlag[\"Unrecognized\"] = -1] = \"Unrecognized\";\n})(BlockIdFlag = exports.BlockIdFlag || (exports.BlockIdFlag = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\n/**\n * Compares the content of two arrays-like objects for equality.\n *\n * Equality is defined as having equal length and element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentEquals(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\nexports.arrayContentEquals = arrayContentEquals;\n/**\n * Checks if `a` starts with the contents of `b`.\n *\n * This requires equality of the element values, where element equality means `===` returning `true`.\n *\n * This allows you to compare the content of a Buffer, Uint8Array or number[], ignoring the specific type.\n * As a consequence, this returns different results than Jasmine's `toEqual`, which ensures elements have the same type.\n */\nfunction arrayContentStartsWith(a, b) {\n if (a.length < b.length)\n return false;\n for (let i = 0; i < b.length; ++i) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\nexports.arrayContentStartsWith = arrayContentStartsWith;\n//# sourceMappingURL=arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = void 0;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || \"condition is not truthy\");\n }\n}\nexports.assert = assert;\nfunction assertDefined(value, msg) {\n if (value === undefined) {\n throw new Error(msg !== null && msg !== void 0 ? msg : \"value is undefined\");\n }\n}\nexports.assertDefined = assertDefined;\nfunction assertDefinedAndNotNull(value, msg) {\n if (value === undefined || value === null) {\n throw new Error(msg !== null && msg !== void 0 ? msg : \"value is undefined or null\");\n }\n}\nexports.assertDefinedAndNotNull = assertDefinedAndNotNull;\n//# sourceMappingURL=assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = exports.sleep = exports.assertDefinedAndNotNull = exports.assertDefined = exports.assert = exports.arrayContentStartsWith = exports.arrayContentEquals = void 0;\nvar arrays_1 = require(\"./arrays\");\nObject.defineProperty(exports, \"arrayContentEquals\", { enumerable: true, get: function () { return arrays_1.arrayContentEquals; } });\nObject.defineProperty(exports, \"arrayContentStartsWith\", { enumerable: true, get: function () { return arrays_1.arrayContentStartsWith; } });\nvar assert_1 = require(\"./assert\");\nObject.defineProperty(exports, \"assert\", { enumerable: true, get: function () { return assert_1.assert; } });\nObject.defineProperty(exports, \"assertDefined\", { enumerable: true, get: function () { return assert_1.assertDefined; } });\nObject.defineProperty(exports, \"assertDefinedAndNotNull\", { enumerable: true, get: function () { return assert_1.assertDefinedAndNotNull; } });\nvar sleep_1 = require(\"./sleep\");\nObject.defineProperty(exports, \"sleep\", { enumerable: true, get: function () { return sleep_1.sleep; } });\nvar typechecks_1 = require(\"./typechecks\");\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return typechecks_1.isNonNullObject; } });\nObject.defineProperty(exports, \"isUint8Array\", { enumerable: true, get: function () { return typechecks_1.isUint8Array; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = void 0;\nasync function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nexports.sleep = sleep;\n//# sourceMappingURL=sleep.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUint8Array = exports.isNonNullObject = void 0;\n/**\n * Checks if data is a non-null object (i.e. matches the TypeScript object type).\n *\n * Note: this returns true for arrays, which are objects in JavaScript\n * even though array and object are different types in JSON.\n *\n * @see https://www.typescriptlang.org/docs/handbook/basic-types.html#object\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNonNullObject(data) {\n return typeof data === \"object\" && data !== null;\n}\nexports.isNonNullObject = isNonNullObject;\n/**\n * Checks if data is an Uint8Array. Note: Buffer is treated as not a Uint8Array\n */\nfunction isUint8Array(data) {\n if (!isNonNullObject(data))\n return false;\n // Avoid instanceof check which is unreliable in some JS environments\n // https://medium.com/@simonwarta/limitations-of-the-instanceof-operator-f4bcdbe7a400\n // Use check that was discussed in https://github.com/crypto-browserify/pbkdf2/pull/81\n if (Object.prototype.toString.call(data) !== \"[object Uint8Array]\")\n return false;\n if (typeof Buffer !== \"undefined\" && typeof Buffer.isBuffer !== \"undefined\") {\n // Buffer.isBuffer is available at runtime\n if (Buffer.isBuffer(data))\n return false;\n }\n return true;\n}\nexports.isUint8Array = isUint8Array;\n//# sourceMappingURL=typechecks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n const { view, buffer, blockLen, finished } = this;\n if (finished)\n throw new Error('digest() was already called');\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length < this.outputLen)\n throw new Error('_Sha2: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // NOTE: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64bit of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add5H = exports.add5L = exports.add4H = exports.add4L = exports.add3H = exports.add3L = exports.add = exports.rotlBL = exports.rotlBH = exports.rotlSL = exports.rotlSH = exports.rotr32L = exports.rotr32H = exports.rotrBL = exports.rotrBH = exports.rotrSL = exports.rotrSH = exports.shrSL = exports.shrSH = exports.toBig = exports.split = exports.fromBig = void 0;\nconst U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexports.fromBig = fromBig;\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexports.split = split;\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\nexports.add = add;\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nconst crypto_1 = __importDefault(require(\"crypto\"));\nexports.crypto = {\n node: crypto_1.default,\n web: undefined,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = void 0;\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, utils_js_1.assertHash)(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (!(this.iHash instanceof utils_js_1.Hash))\n throw new TypeError('Expected instance of class which extends utils.Hash');\n const blockLen = (this.blockLen = this.iHash.blockLen);\n this.outputLen = this.iHash.outputLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > this.iHash.blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length !== this.outputLen)\n throw new Error('HMAC: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2Async = exports.pbkdf2 = void 0;\nconst hmac_js_1 = require(\"./hmac.js\");\n// prettier-ignore\nconst utils_js_1 = require(\"./utils.js\");\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n (0, utils_js_1.assertHash)(hash);\n const opts = (0, utils_js_1.checkOpts)({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n (0, utils_js_1.assertNumber)(c);\n (0, utils_js_1.assertNumber)(dkLen);\n (0, utils_js_1.assertNumber)(asyncTick);\n if (c < 1)\n throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = (0, utils_js_1.toBytes)(_password);\n const salt = (0, utils_js_1.toBytes)(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac_js_1.hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n u.fill(0);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nfunction pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_js_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexports.pbkdf2 = pbkdf2;\nasync function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_js_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await (0, utils_js_1.asyncLoop)(c - 1, asyncTick, (i) => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexports.pbkdf2Async = pbkdf2Async;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);\nconst Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = new Uint32Array(16);\nclass RIPEMD160 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\nexports.RIPEMD160 = RIPEMD160;\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexports.ripemd160 = (0, utils_js_1.wrapConstructor)(() => new RIPEMD160());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\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 // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = exports.keccakP = void 0;\nconst u64 = __importStar(require(\"./_u64.js\"));\nconst utils_js_1 = require(\"./utils.js\");\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n// Same as keccakf1600, but allows to skip some rounds\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexports.keccakP = keccakP;\nclass Keccak extends utils_js_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n (0, utils_js_1.assertNumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_js_1.u32)(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (this.finished)\n throw new Error('digest() was already called');\n const { blockLen, state } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array))\n throw new Error('Keccak: invalid output buffer');\n this.finish();\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= this.blockLen)\n this.keccak();\n const take = Math.min(this.blockLen - this.posOut, len - pos);\n out.set(this.state.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, utils_js_1.assertNumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n if (out.length < this.outputLen)\n throw new Error('Keccak: invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finish();\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapConstructor)(() => new Keccak(blockLen, suffix, outputLen));\nexports.sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexports.sha3_256 = gen(0x06, 136, 256 / 8);\nexports.sha3_384 = gen(0x06, 104, 384 / 8);\nexports.sha3_512 = gen(0x06, 72, 512 / 8);\nexports.keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexports.keccak_256 = gen(0x01, 136, 256 / 8);\nexports.keccak_384 = gen(0x01, 104, 384 / 8);\nexports.keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapConstructorWithOpts)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen !== undefined ? opts.dkLen : outputLen, true));\nexports.shake128 = genShake(0x1f, 168, 128 / 8);\nexports.shake256 = genShake(0x1f, 136, 256 / 8);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha384 = exports.sha512_256 = exports.sha512 = exports.SHA512 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst u64 = __importStar(require(\"./_u64.js\"));\nconst utils_js_1 = require(\"./utils.js\");\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nclass SHA512 extends _sha2_js_1.SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexports.SHA512 = SHA512;\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexports.sha512 = (0, utils_js_1.wrapConstructor)(() => new SHA512());\nexports.sha512_256 = (0, utils_js_1.wrapConstructor)(() => new SHA512_256());\nexports.sha384 = (0, utils_js_1.wrapConstructor)(() => new SHA384());\n","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.assertHash = exports.assertBytes = exports.assertBool = exports.assertNumber = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianess.\n// So, just to be sure not to corrupt anything.\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nfunction bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\n/**\n * @example hexToBytes('deadbeef')\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte))\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// Currently avoid insertion of polyfills with packers (browserify/webpack/etc)\n// But setTimeout is pretty slow, maybe worth to investigate howto do minimal polyfill here\nexports.nextTick = (() => {\n const nodeRequire = typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n try {\n if (nodeRequire) {\n const { setImmediate } = nodeRequire('timers');\n return () => new Promise((resolve) => setImmediate(resolve));\n }\n }\n catch (e) { }\n return () => new Promise((resolve) => setTimeout(resolve, 0));\n})();\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexports.concatBytes = concatBytes;\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.assertNumber = assertNumber;\nfunction assertBool(b) {\n if (typeof b !== 'boolean') {\n throw new Error(`Expected boolean, not ${b}`);\n }\n}\nexports.assertBool = assertBool;\nfunction assertBytes(bytes, ...lengths) {\n if (bytes instanceof Uint8Array && (!lengths.length || lengths.includes(bytes.length))) {\n return;\n }\n throw new TypeError(`Expected ${lengths} bytes, not ${typeof bytes} with length=${bytes.length}`);\n}\nexports.assertBytes = assertBytes;\nfunction assertHash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n assertNumber(hash.outputLen);\n assertNumber(hash.blockLen);\n}\nexports.assertHash = assertHash;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nfunction checkOpts(def, _opts) {\n if (_opts !== undefined && (typeof _opts !== 'object' || !isPlainObject(_opts)))\n throw new TypeError('Options should be object or undefined');\n const opts = Object.assign(def, _opts);\n return opts;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\n/**\n * Secure PRNG\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto.web) {\n return crypto_1.crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto_1.crypto.node) {\n return new Uint8Array(crypto_1.crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\nexports.randomBytes = randomBytes;\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildFullPath = require('../core/buildFullPath');\nvar buildURL = require('./../helpers/buildURL');\nvar http = require('http');\nvar https = require('https');\nvar httpFollow = require('follow-redirects').http;\nvar httpsFollow = require('follow-redirects').https;\nvar url = require('url');\nvar zlib = require('zlib');\nvar pkg = require('./../../package.json');\nvar createError = require('../core/createError');\nvar enhanceError = require('../core/enhanceError');\n\nvar isHttps = /https:?/;\n\n/**\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} proxy\n * @param {string} location\n */\nfunction setProxy(options, proxy, location) {\n options.hostname = proxy.host;\n options.host = proxy.host;\n options.port = proxy.port;\n options.path = location;\n\n // Basic proxy authorization\n if (proxy.auth) {\n var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // If a proxy is used, any redirects must also pass through the proxy\n options.beforeRedirect = function beforeRedirect(redirection) {\n redirection.headers.host = redirection.host;\n setProxy(redirection, proxy, redirection.href);\n };\n}\n\n/*eslint consistent-return:0*/\nmodule.exports = function httpAdapter(config) {\n return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {\n var resolve = function resolve(value) {\n resolvePromise(value);\n };\n var reject = function reject(value) {\n rejectPromise(value);\n };\n var data = config.data;\n var headers = config.headers;\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n if ('User-Agent' in headers || 'user-agent' in headers) {\n // User-Agent is specified; handle case where no UA header is desired\n if (!headers['User-Agent'] && !headers['user-agent']) {\n delete headers['User-Agent'];\n delete headers['user-agent'];\n }\n // Otherwise, use specified value\n } else {\n // Only set header if it hasn't been set in config\n headers['User-Agent'] = 'axios/' + pkg.version;\n }\n\n if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(createError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers['Content-Length'] = data.length;\n }\n\n // HTTP basic authentication\n var auth = undefined;\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n // Parse url\n var fullPath = buildFullPath(config.baseURL, config.url);\n var parsed = url.parse(fullPath);\n var protocol = parsed.protocol || 'http:';\n\n if (!auth && parsed.auth) {\n var urlAuth = parsed.auth.split(':');\n var urlUsername = urlAuth[0] || '';\n var urlPassword = urlAuth[1] || '';\n auth = urlUsername + ':' + urlPassword;\n }\n\n if (auth) {\n delete headers.Authorization;\n }\n\n var isHttpsRequest = isHttps.test(protocol);\n var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n var options = {\n path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\\?/, ''),\n method: config.method.toUpperCase(),\n headers: headers,\n agent: agent,\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth: auth\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n }\n\n var proxy = config.proxy;\n if (!proxy && proxy !== false) {\n var proxyEnv = protocol.slice(0, -1) + '_proxy';\n var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];\n if (proxyUrl) {\n var parsedProxyUrl = url.parse(proxyUrl);\n var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;\n var shouldProxy = true;\n\n if (noProxyEnv) {\n var noProxy = noProxyEnv.split(',').map(function trim(s) {\n return s.trim();\n });\n\n shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {\n if (!proxyElement) {\n return false;\n }\n if (proxyElement === '*') {\n return true;\n }\n if (proxyElement[0] === '.' &&\n parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {\n return true;\n }\n\n return parsed.hostname === proxyElement;\n });\n }\n\n if (shouldProxy) {\n proxy = {\n host: parsedProxyUrl.hostname,\n port: parsedProxyUrl.port,\n protocol: parsedProxyUrl.protocol\n };\n\n if (parsedProxyUrl.auth) {\n var proxyUrlAuth = parsedProxyUrl.auth.split(':');\n proxy.auth = {\n username: proxyUrlAuth[0],\n password: proxyUrlAuth[1]\n };\n }\n }\n }\n }\n\n if (proxy) {\n options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n var transport;\n var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsProxy ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n transport = isHttpsProxy ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n }\n\n // Create the request\n var req = transport.request(options, function handleResponse(res) {\n if (req.aborted) return;\n\n // uncompress the response body transparently if required\n var stream = res;\n\n // return the last request in case of redirects\n var lastRequest = res.req || req;\n\n\n // if no content, is HEAD request or decompress disabled we should not decompress\n if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {\n switch (res.headers['content-encoding']) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'compress':\n case 'deflate':\n // add the unzipper to the body stream processing pipeline\n stream = stream.pipe(zlib.createUnzip());\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n }\n }\n\n var response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: res.headers,\n config: config,\n request: lastRequest\n };\n\n if (config.responseType === 'stream') {\n response.data = stream;\n settle(resolve, reject, response);\n } else {\n var responseBuffer = [];\n var totalResponseBytes = 0;\n stream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n stream.destroy();\n reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n config, null, lastRequest));\n }\n });\n\n stream.on('error', function handleStreamError(err) {\n if (req.aborted) return;\n reject(enhanceError(err, config, null, lastRequest));\n });\n\n stream.on('end', function handleStreamEnd() {\n var responseData = Buffer.concat(responseBuffer);\n if (config.responseType !== 'arraybuffer') {\n responseData = responseData.toString(config.responseEncoding);\n if (!config.responseEncoding || config.responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n\n response.data = responseData;\n settle(resolve, reject, response);\n });\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;\n reject(enhanceError(err, config, null, req));\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n var timeout = parseInt(config.timeout, 10);\n\n if (isNaN(timeout)) {\n reject(createError(\n 'error trying to parse `config.timeout` to int',\n config,\n 'ERR_PARSE_TIMEOUT',\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devoring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n req.abort();\n reject(createError(\n 'timeout of ' + timeout + 'ms exceeded',\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n req\n ));\n });\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (req.aborted) return;\n\n req.abort();\n reject(cancel);\n });\n }\n\n // Send the request\n if (utils.isStream(data)) {\n data.on('error', function handleStreamError(err) {\n reject(enhanceError(err, config, null, req));\n }).pipe(req);\n } else {\n req.end(data);\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\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","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\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 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 // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\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 b = 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 b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\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 function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\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 // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n 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.modrn(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, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\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 var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\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] >>> wbit) & 0x01;\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 // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(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 var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 isNegNum ? this.ineg() : 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.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(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.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 this._strip();\n return isNegNum ? this.ineg() : this;\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 a BN v4 instance\n r.strip();\n } else {\n // r is a 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\n move(a, a.umod(this.m)._forceRed(this));\n return a;\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 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\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nconst mask = (source, mask, output, offset, length) => {\n for (var i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n};\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nconst unmask = (buffer, mask) => {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (var i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n};\n\nmodule.exports = { mask, unmask };\n","'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompressedNonExistenceProof = exports.CompressedExistenceProof = exports.CompressedBatchEntry = exports.CompressedBatchProof = exports.BatchEntry = exports.BatchProof = exports.InnerSpec = exports.ProofSpec = exports.InnerOp = exports.LeafOp = exports.CommitmentProof = exports.NonExistenceProof = exports.ExistenceProof = exports.lengthOpToJSON = exports.lengthOpFromJSON = exports.LengthOp = exports.hashOpToJSON = exports.hashOpFromJSON = exports.HashOp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"ics23\";\nvar HashOp;\n(function (HashOp) {\n /** NO_HASH - NO_HASH is the default if no data passed. Note this is an illegal argument some places. */\n HashOp[HashOp[\"NO_HASH\"] = 0] = \"NO_HASH\";\n HashOp[HashOp[\"SHA256\"] = 1] = \"SHA256\";\n HashOp[HashOp[\"SHA512\"] = 2] = \"SHA512\";\n HashOp[HashOp[\"KECCAK\"] = 3] = \"KECCAK\";\n HashOp[HashOp[\"RIPEMD160\"] = 4] = \"RIPEMD160\";\n /** BITCOIN - ripemd160(sha256(x)) */\n HashOp[HashOp[\"BITCOIN\"] = 5] = \"BITCOIN\";\n HashOp[HashOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(HashOp = exports.HashOp || (exports.HashOp = {}));\nfunction hashOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_HASH\":\n return HashOp.NO_HASH;\n case 1:\n case \"SHA256\":\n return HashOp.SHA256;\n case 2:\n case \"SHA512\":\n return HashOp.SHA512;\n case 3:\n case \"KECCAK\":\n return HashOp.KECCAK;\n case 4:\n case \"RIPEMD160\":\n return HashOp.RIPEMD160;\n case 5:\n case \"BITCOIN\":\n return HashOp.BITCOIN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return HashOp.UNRECOGNIZED;\n }\n}\nexports.hashOpFromJSON = hashOpFromJSON;\nfunction hashOpToJSON(object) {\n switch (object) {\n case HashOp.NO_HASH:\n return \"NO_HASH\";\n case HashOp.SHA256:\n return \"SHA256\";\n case HashOp.SHA512:\n return \"SHA512\";\n case HashOp.KECCAK:\n return \"KECCAK\";\n case HashOp.RIPEMD160:\n return \"RIPEMD160\";\n case HashOp.BITCOIN:\n return \"BITCOIN\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.hashOpToJSON = hashOpToJSON;\n/**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n */\nvar LengthOp;\n(function (LengthOp) {\n /** NO_PREFIX - NO_PREFIX don't include any length info */\n LengthOp[LengthOp[\"NO_PREFIX\"] = 0] = \"NO_PREFIX\";\n /** VAR_PROTO - VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */\n LengthOp[LengthOp[\"VAR_PROTO\"] = 1] = \"VAR_PROTO\";\n /** VAR_RLP - VAR_RLP uses rlp int encoding of the length */\n LengthOp[LengthOp[\"VAR_RLP\"] = 2] = \"VAR_RLP\";\n /** FIXED32_BIG - FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_BIG\"] = 3] = \"FIXED32_BIG\";\n /** FIXED32_LITTLE - FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */\n LengthOp[LengthOp[\"FIXED32_LITTLE\"] = 4] = \"FIXED32_LITTLE\";\n /** FIXED64_BIG - FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_BIG\"] = 5] = \"FIXED64_BIG\";\n /** FIXED64_LITTLE - FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */\n LengthOp[LengthOp[\"FIXED64_LITTLE\"] = 6] = \"FIXED64_LITTLE\";\n /** REQUIRE_32_BYTES - REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */\n LengthOp[LengthOp[\"REQUIRE_32_BYTES\"] = 7] = \"REQUIRE_32_BYTES\";\n /** REQUIRE_64_BYTES - REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */\n LengthOp[LengthOp[\"REQUIRE_64_BYTES\"] = 8] = \"REQUIRE_64_BYTES\";\n LengthOp[LengthOp[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(LengthOp = exports.LengthOp || (exports.LengthOp = {}));\nfunction lengthOpFromJSON(object) {\n switch (object) {\n case 0:\n case \"NO_PREFIX\":\n return LengthOp.NO_PREFIX;\n case 1:\n case \"VAR_PROTO\":\n return LengthOp.VAR_PROTO;\n case 2:\n case \"VAR_RLP\":\n return LengthOp.VAR_RLP;\n case 3:\n case \"FIXED32_BIG\":\n return LengthOp.FIXED32_BIG;\n case 4:\n case \"FIXED32_LITTLE\":\n return LengthOp.FIXED32_LITTLE;\n case 5:\n case \"FIXED64_BIG\":\n return LengthOp.FIXED64_BIG;\n case 6:\n case \"FIXED64_LITTLE\":\n return LengthOp.FIXED64_LITTLE;\n case 7:\n case \"REQUIRE_32_BYTES\":\n return LengthOp.REQUIRE_32_BYTES;\n case 8:\n case \"REQUIRE_64_BYTES\":\n return LengthOp.REQUIRE_64_BYTES;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return LengthOp.UNRECOGNIZED;\n }\n}\nexports.lengthOpFromJSON = lengthOpFromJSON;\nfunction lengthOpToJSON(object) {\n switch (object) {\n case LengthOp.NO_PREFIX:\n return \"NO_PREFIX\";\n case LengthOp.VAR_PROTO:\n return \"VAR_PROTO\";\n case LengthOp.VAR_RLP:\n return \"VAR_RLP\";\n case LengthOp.FIXED32_BIG:\n return \"FIXED32_BIG\";\n case LengthOp.FIXED32_LITTLE:\n return \"FIXED32_LITTLE\";\n case LengthOp.FIXED64_BIG:\n return \"FIXED64_BIG\";\n case LengthOp.FIXED64_LITTLE:\n return \"FIXED64_LITTLE\";\n case LengthOp.REQUIRE_32_BYTES:\n return \"REQUIRE_32_BYTES\";\n case LengthOp.REQUIRE_64_BYTES:\n return \"REQUIRE_64_BYTES\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.lengthOpToJSON = lengthOpToJSON;\nconst baseExistenceProof = {};\nexports.ExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.path) {\n exports.InnerOp.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseExistenceProof);\n message.path = [];\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n message.path.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseExistenceProof);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromJSON(object.leaf) : undefined;\n message.path = ((_a = object.path) !== null && _a !== void 0 ? _a : []).map((e) => exports.InnerOp.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseExistenceProof);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromPartial(object.leaf) : undefined;\n message.path = ((_c = object.path) === null || _c === void 0 ? void 0 : _c.map((e) => exports.InnerOp.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseNonExistenceProof = {};\nexports.NonExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.ExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.ExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseNonExistenceProof);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseNonExistenceProof);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null ? exports.ExistenceProof.fromJSON(object.left) : undefined;\n message.right =\n object.right !== undefined && object.right !== null ? exports.ExistenceProof.fromJSON(object.right) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined && (obj.left = message.left ? exports.ExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.ExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseNonExistenceProof);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null ? exports.ExistenceProof.fromPartial(object.left) : undefined;\n message.right =\n object.right !== undefined && object.right !== null\n ? exports.ExistenceProof.fromPartial(object.right)\n : undefined;\n return message;\n },\n};\nconst baseCommitmentProof = {};\nexports.CommitmentProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n if (message.batch !== undefined) {\n exports.BatchProof.encode(message.batch, writer.uint32(26).fork()).ldelim();\n }\n if (message.compressed !== undefined) {\n exports.CompressedBatchProof.encode(message.compressed, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommitmentProof);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = exports.BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = exports.CompressedBatchProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommitmentProof);\n message.exist =\n object.exist !== undefined && object.exist !== null ? exports.ExistenceProof.fromJSON(object.exist) : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.NonExistenceProof.fromJSON(object.nonexist)\n : undefined;\n message.batch =\n object.batch !== undefined && object.batch !== null ? exports.BatchProof.fromJSON(object.batch) : undefined;\n message.compressed =\n object.compressed !== undefined && object.compressed !== null\n ? exports.CompressedBatchProof.fromJSON(object.compressed)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n message.batch !== undefined && (obj.batch = message.batch ? exports.BatchProof.toJSON(message.batch) : undefined);\n message.compressed !== undefined &&\n (obj.compressed = message.compressed ? exports.CompressedBatchProof.toJSON(message.compressed) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommitmentProof);\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? exports.ExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.NonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n message.batch =\n object.batch !== undefined && object.batch !== null ? exports.BatchProof.fromPartial(object.batch) : undefined;\n message.compressed =\n object.compressed !== undefined && object.compressed !== null\n ? exports.CompressedBatchProof.fromPartial(object.compressed)\n : undefined;\n return message;\n },\n};\nconst baseLeafOp = { hash: 0, prehashKey: 0, prehashValue: 0, length: 0 };\nexports.LeafOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prehashKey !== 0) {\n writer.uint32(16).int32(message.prehashKey);\n }\n if (message.prehashValue !== 0) {\n writer.uint32(24).int32(message.prehashValue);\n }\n if (message.length !== 0) {\n writer.uint32(32).int32(message.length);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(42).bytes(message.prefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLeafOp);\n message.prefix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prehashKey = reader.int32();\n break;\n case 3:\n message.prehashValue = reader.int32();\n break;\n case 4:\n message.length = reader.int32();\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLeafOp);\n message.hash = object.hash !== undefined && object.hash !== null ? hashOpFromJSON(object.hash) : 0;\n message.prehashKey =\n object.prehashKey !== undefined && object.prehashKey !== null ? hashOpFromJSON(object.prehashKey) : 0;\n message.prehashValue =\n object.prehashValue !== undefined && object.prehashValue !== null\n ? hashOpFromJSON(object.prehashValue)\n : 0;\n message.length =\n object.length !== undefined && object.length !== null ? lengthOpFromJSON(object.length) : 0;\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? bytesFromBase64(object.prefix)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prehashKey !== undefined && (obj.prehashKey = hashOpToJSON(message.prehashKey));\n message.prehashValue !== undefined && (obj.prehashValue = hashOpToJSON(message.prehashValue));\n message.length !== undefined && (obj.length = lengthOpToJSON(message.length));\n message.prefix !== undefined &&\n (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseLeafOp);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : 0;\n message.prehashKey = (_b = object.prehashKey) !== null && _b !== void 0 ? _b : 0;\n message.prehashValue = (_c = object.prehashValue) !== null && _c !== void 0 ? _c : 0;\n message.length = (_d = object.length) !== null && _d !== void 0 ? _d : 0;\n message.prefix = (_e = object.prefix) !== null && _e !== void 0 ? _e : new Uint8Array();\n return message;\n },\n};\nconst baseInnerOp = { hash: 0 };\nexports.InnerOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== 0) {\n writer.uint32(8).int32(message.hash);\n }\n if (message.prefix.length !== 0) {\n writer.uint32(18).bytes(message.prefix);\n }\n if (message.suffix.length !== 0) {\n writer.uint32(26).bytes(message.suffix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInnerOp);\n message.prefix = new Uint8Array();\n message.suffix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseInnerOp);\n message.hash = object.hash !== undefined && object.hash !== null ? hashOpFromJSON(object.hash) : 0;\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? bytesFromBase64(object.prefix)\n : new Uint8Array();\n message.suffix =\n object.suffix !== undefined && object.suffix !== null\n ? bytesFromBase64(object.suffix)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n message.prefix !== undefined &&\n (obj.prefix = base64FromBytes(message.prefix !== undefined ? message.prefix : new Uint8Array()));\n message.suffix !== undefined &&\n (obj.suffix = base64FromBytes(message.suffix !== undefined ? message.suffix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseInnerOp);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : 0;\n message.prefix = (_b = object.prefix) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.suffix = (_c = object.suffix) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseProofSpec = { maxDepth: 0, minDepth: 0 };\nexports.ProofSpec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.leafSpec !== undefined) {\n exports.LeafOp.encode(message.leafSpec, writer.uint32(10).fork()).ldelim();\n }\n if (message.innerSpec !== undefined) {\n exports.InnerSpec.encode(message.innerSpec, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxDepth !== 0) {\n writer.uint32(24).int32(message.maxDepth);\n }\n if (message.minDepth !== 0) {\n writer.uint32(32).int32(message.minDepth);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofSpec);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leafSpec = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.innerSpec = exports.InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxDepth = reader.int32();\n break;\n case 4:\n message.minDepth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofSpec);\n message.leafSpec =\n object.leafSpec !== undefined && object.leafSpec !== null\n ? exports.LeafOp.fromJSON(object.leafSpec)\n : undefined;\n message.innerSpec =\n object.innerSpec !== undefined && object.innerSpec !== null\n ? exports.InnerSpec.fromJSON(object.innerSpec)\n : undefined;\n message.maxDepth =\n object.maxDepth !== undefined && object.maxDepth !== null ? Number(object.maxDepth) : 0;\n message.minDepth =\n object.minDepth !== undefined && object.minDepth !== null ? Number(object.minDepth) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.leafSpec !== undefined &&\n (obj.leafSpec = message.leafSpec ? exports.LeafOp.toJSON(message.leafSpec) : undefined);\n message.innerSpec !== undefined &&\n (obj.innerSpec = message.innerSpec ? exports.InnerSpec.toJSON(message.innerSpec) : undefined);\n message.maxDepth !== undefined && (obj.maxDepth = message.maxDepth);\n message.minDepth !== undefined && (obj.minDepth = message.minDepth);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseProofSpec);\n message.leafSpec =\n object.leafSpec !== undefined && object.leafSpec !== null\n ? exports.LeafOp.fromPartial(object.leafSpec)\n : undefined;\n message.innerSpec =\n object.innerSpec !== undefined && object.innerSpec !== null\n ? exports.InnerSpec.fromPartial(object.innerSpec)\n : undefined;\n message.maxDepth = (_a = object.maxDepth) !== null && _a !== void 0 ? _a : 0;\n message.minDepth = (_b = object.minDepth) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseInnerSpec = {\n childOrder: 0,\n childSize: 0,\n minPrefixLength: 0,\n maxPrefixLength: 0,\n hash: 0,\n};\nexports.InnerSpec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n writer.uint32(10).fork();\n for (const v of message.childOrder) {\n writer.int32(v);\n }\n writer.ldelim();\n if (message.childSize !== 0) {\n writer.uint32(16).int32(message.childSize);\n }\n if (message.minPrefixLength !== 0) {\n writer.uint32(24).int32(message.minPrefixLength);\n }\n if (message.maxPrefixLength !== 0) {\n writer.uint32(32).int32(message.maxPrefixLength);\n }\n if (message.emptyChild.length !== 0) {\n writer.uint32(42).bytes(message.emptyChild);\n }\n if (message.hash !== 0) {\n writer.uint32(48).int32(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = [];\n message.emptyChild = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.childOrder.push(reader.int32());\n }\n }\n else {\n message.childOrder.push(reader.int32());\n }\n break;\n case 2:\n message.childSize = reader.int32();\n break;\n case 3:\n message.minPrefixLength = reader.int32();\n break;\n case 4:\n message.maxPrefixLength = reader.int32();\n break;\n case 5:\n message.emptyChild = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = ((_a = object.childOrder) !== null && _a !== void 0 ? _a : []).map((e) => Number(e));\n message.childSize =\n object.childSize !== undefined && object.childSize !== null ? Number(object.childSize) : 0;\n message.minPrefixLength =\n object.minPrefixLength !== undefined && object.minPrefixLength !== null\n ? Number(object.minPrefixLength)\n : 0;\n message.maxPrefixLength =\n object.maxPrefixLength !== undefined && object.maxPrefixLength !== null\n ? Number(object.maxPrefixLength)\n : 0;\n message.emptyChild =\n object.emptyChild !== undefined && object.emptyChild !== null\n ? bytesFromBase64(object.emptyChild)\n : new Uint8Array();\n message.hash = object.hash !== undefined && object.hash !== null ? hashOpFromJSON(object.hash) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.childOrder) {\n obj.childOrder = message.childOrder.map((e) => e);\n }\n else {\n obj.childOrder = [];\n }\n message.childSize !== undefined && (obj.childSize = message.childSize);\n message.minPrefixLength !== undefined && (obj.minPrefixLength = message.minPrefixLength);\n message.maxPrefixLength !== undefined && (obj.maxPrefixLength = message.maxPrefixLength);\n message.emptyChild !== undefined &&\n (obj.emptyChild = base64FromBytes(message.emptyChild !== undefined ? message.emptyChild : new Uint8Array()));\n message.hash !== undefined && (obj.hash = hashOpToJSON(message.hash));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseInnerSpec);\n message.childOrder = ((_a = object.childOrder) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n message.childSize = (_b = object.childSize) !== null && _b !== void 0 ? _b : 0;\n message.minPrefixLength = (_c = object.minPrefixLength) !== null && _c !== void 0 ? _c : 0;\n message.maxPrefixLength = (_d = object.maxPrefixLength) !== null && _d !== void 0 ? _d : 0;\n message.emptyChild = (_e = object.emptyChild) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.hash = (_f = object.hash) !== null && _f !== void 0 ? _f : 0;\n return message;\n },\n};\nconst baseBatchProof = {};\nexports.BatchProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.entries) {\n exports.BatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBatchProof);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseBatchProof);\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.BatchEntry.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.BatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseBatchProof);\n message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map((e) => exports.BatchEntry.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseBatchEntry = {};\nexports.BatchEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.ExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.NonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBatchEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBatchEntry);\n message.exist =\n object.exist !== undefined && object.exist !== null ? exports.ExistenceProof.fromJSON(object.exist) : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.NonExistenceProof.fromJSON(object.nonexist)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.ExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.NonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBatchEntry);\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? exports.ExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.NonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n return message;\n },\n};\nconst baseCompressedBatchProof = {};\nexports.CompressedBatchProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.entries) {\n exports.CompressedBatchEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.lookupInners) {\n exports.InnerOp.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = [];\n message.lookupInners = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(exports.CompressedBatchEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n message.lookupInners.push(exports.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.CompressedBatchEntry.fromJSON(e));\n message.lookupInners = ((_b = object.lookupInners) !== null && _b !== void 0 ? _b : []).map((e) => exports.InnerOp.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.CompressedBatchEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n if (message.lookupInners) {\n obj.lookupInners = message.lookupInners.map((e) => (e ? exports.InnerOp.toJSON(e) : undefined));\n }\n else {\n obj.lookupInners = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCompressedBatchProof);\n message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map((e) => exports.CompressedBatchEntry.fromPartial(e))) || [];\n message.lookupInners = ((_b = object.lookupInners) === null || _b === void 0 ? void 0 : _b.map((e) => exports.InnerOp.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCompressedBatchEntry = {};\nexports.CompressedBatchEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exist !== undefined) {\n exports.CompressedExistenceProof.encode(message.exist, writer.uint32(10).fork()).ldelim();\n }\n if (message.nonexist !== undefined) {\n exports.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedBatchEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = exports.CompressedNonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompressedBatchEntry);\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? exports.CompressedExistenceProof.fromJSON(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.CompressedNonExistenceProof.fromJSON(object.nonexist)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exist !== undefined &&\n (obj.exist = message.exist ? exports.CompressedExistenceProof.toJSON(message.exist) : undefined);\n message.nonexist !== undefined &&\n (obj.nonexist = message.nonexist ? exports.CompressedNonExistenceProof.toJSON(message.nonexist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCompressedBatchEntry);\n message.exist =\n object.exist !== undefined && object.exist !== null\n ? exports.CompressedExistenceProof.fromPartial(object.exist)\n : undefined;\n message.nonexist =\n object.nonexist !== undefined && object.nonexist !== null\n ? exports.CompressedNonExistenceProof.fromPartial(object.nonexist)\n : undefined;\n return message;\n },\n};\nconst baseCompressedExistenceProof = { path: 0 };\nexports.CompressedExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.leaf !== undefined) {\n exports.LeafOp.encode(message.leaf, writer.uint32(26).fork()).ldelim();\n }\n writer.uint32(34).fork();\n for (const v of message.path) {\n writer.int32(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.path = [];\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = exports.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.path.push(reader.int32());\n }\n }\n else {\n message.path.push(reader.int32());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromJSON(object.leaf) : undefined;\n message.path = ((_a = object.path) !== null && _a !== void 0 ? _a : []).map((e) => Number(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.leaf !== undefined && (obj.leaf = message.leaf ? exports.LeafOp.toJSON(message.leaf) : undefined);\n if (message.path) {\n obj.path = message.path.map((e) => e);\n }\n else {\n obj.path = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseCompressedExistenceProof);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.leaf =\n object.leaf !== undefined && object.leaf !== null ? exports.LeafOp.fromPartial(object.leaf) : undefined;\n message.path = ((_c = object.path) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n return message;\n },\n};\nconst baseCompressedNonExistenceProof = {};\nexports.CompressedNonExistenceProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.left !== undefined) {\n exports.CompressedExistenceProof.encode(message.left, writer.uint32(18).fork()).ldelim();\n }\n if (message.right !== undefined) {\n exports.CompressedExistenceProof.encode(message.right, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = exports.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null\n ? exports.CompressedExistenceProof.fromJSON(object.left)\n : undefined;\n message.right =\n object.right !== undefined && object.right !== null\n ? exports.CompressedExistenceProof.fromJSON(object.right)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.left !== undefined &&\n (obj.left = message.left ? exports.CompressedExistenceProof.toJSON(message.left) : undefined);\n message.right !== undefined &&\n (obj.right = message.right ? exports.CompressedExistenceProof.toJSON(message.right) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseCompressedNonExistenceProof);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.left =\n object.left !== undefined && object.left !== null\n ? exports.CompressedExistenceProof.fromPartial(object.left)\n : undefined;\n message.right =\n object.right !== undefined && object.right !== null\n ? exports.CompressedExistenceProof.fromPartial(object.right)\n : undefined;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=proofs.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ModuleAccount = exports.BaseAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nconst baseBaseAccount = { address: \"\", accountNumber: long_1.default.UZERO, sequence: long_1.default.UZERO };\nexports.BaseAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pubKey !== undefined) {\n any_1.Any.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (!message.accountNumber.isZero()) {\n writer.uint32(24).uint64(message.accountNumber);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(32).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBaseAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pubKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.accountNumber = reader.uint64();\n break;\n case 4:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBaseAccount);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? any_1.Any.fromJSON(object.pubKey) : undefined;\n message.accountNumber =\n object.accountNumber !== undefined && object.accountNumber !== null\n ? long_1.default.fromString(object.accountNumber)\n : long_1.default.UZERO;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pubKey !== undefined && (obj.pubKey = message.pubKey ? any_1.Any.toJSON(message.pubKey) : undefined);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString());\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseBaseAccount);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? any_1.Any.fromPartial(object.pubKey) : undefined;\n message.accountNumber =\n object.accountNumber !== undefined && object.accountNumber !== null\n ? long_1.default.fromValue(object.accountNumber)\n : long_1.default.UZERO;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseModuleAccount = { name: \"\", permissions: \"\" };\nexports.ModuleAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseAccount !== undefined) {\n exports.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n if (message.name !== \"\") {\n writer.uint32(18).string(message.name);\n }\n for (const v of message.permissions) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModuleAccount);\n message.permissions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = exports.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.name = reader.string();\n break;\n case 3:\n message.permissions.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseModuleAccount);\n message.baseAccount =\n object.baseAccount !== undefined && object.baseAccount !== null\n ? exports.BaseAccount.fromJSON(object.baseAccount)\n : undefined;\n message.name = object.name !== undefined && object.name !== null ? String(object.name) : \"\";\n message.permissions = ((_a = object.permissions) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? exports.BaseAccount.toJSON(message.baseAccount) : undefined);\n message.name !== undefined && (obj.name = message.name);\n if (message.permissions) {\n obj.permissions = message.permissions.map((e) => e);\n }\n else {\n obj.permissions = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseModuleAccount);\n message.baseAccount =\n object.baseAccount !== undefined && object.baseAccount !== null\n ? exports.BaseAccount.fromPartial(object.baseAccount)\n : undefined;\n message.name = (_a = object.name) !== null && _a !== void 0 ? _a : \"\";\n message.permissions = ((_b = object.permissions) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n return message;\n },\n};\nconst baseParams = {\n maxMemoCharacters: long_1.default.UZERO,\n txSigLimit: long_1.default.UZERO,\n txSizeCostPerByte: long_1.default.UZERO,\n sigVerifyCostEd25519: long_1.default.UZERO,\n sigVerifyCostSecp256k1: long_1.default.UZERO,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxMemoCharacters.isZero()) {\n writer.uint32(8).uint64(message.maxMemoCharacters);\n }\n if (!message.txSigLimit.isZero()) {\n writer.uint32(16).uint64(message.txSigLimit);\n }\n if (!message.txSizeCostPerByte.isZero()) {\n writer.uint32(24).uint64(message.txSizeCostPerByte);\n }\n if (!message.sigVerifyCostEd25519.isZero()) {\n writer.uint32(32).uint64(message.sigVerifyCostEd25519);\n }\n if (!message.sigVerifyCostSecp256k1.isZero()) {\n writer.uint32(40).uint64(message.sigVerifyCostSecp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxMemoCharacters = reader.uint64();\n break;\n case 2:\n message.txSigLimit = reader.uint64();\n break;\n case 3:\n message.txSizeCostPerByte = reader.uint64();\n break;\n case 4:\n message.sigVerifyCostEd25519 = reader.uint64();\n break;\n case 5:\n message.sigVerifyCostSecp256k1 = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.maxMemoCharacters =\n object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null\n ? long_1.default.fromString(object.maxMemoCharacters)\n : long_1.default.UZERO;\n message.txSigLimit =\n object.txSigLimit !== undefined && object.txSigLimit !== null\n ? long_1.default.fromString(object.txSigLimit)\n : long_1.default.UZERO;\n message.txSizeCostPerByte =\n object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null\n ? long_1.default.fromString(object.txSizeCostPerByte)\n : long_1.default.UZERO;\n message.sigVerifyCostEd25519 =\n object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null\n ? long_1.default.fromString(object.sigVerifyCostEd25519)\n : long_1.default.UZERO;\n message.sigVerifyCostSecp256k1 =\n object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null\n ? long_1.default.fromString(object.sigVerifyCostSecp256k1)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxMemoCharacters !== undefined &&\n (obj.maxMemoCharacters = (message.maxMemoCharacters || long_1.default.UZERO).toString());\n message.txSigLimit !== undefined && (obj.txSigLimit = (message.txSigLimit || long_1.default.UZERO).toString());\n message.txSizeCostPerByte !== undefined &&\n (obj.txSizeCostPerByte = (message.txSizeCostPerByte || long_1.default.UZERO).toString());\n message.sigVerifyCostEd25519 !== undefined &&\n (obj.sigVerifyCostEd25519 = (message.sigVerifyCostEd25519 || long_1.default.UZERO).toString());\n message.sigVerifyCostSecp256k1 !== undefined &&\n (obj.sigVerifyCostSecp256k1 = (message.sigVerifyCostSecp256k1 || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseParams);\n message.maxMemoCharacters =\n object.maxMemoCharacters !== undefined && object.maxMemoCharacters !== null\n ? long_1.default.fromValue(object.maxMemoCharacters)\n : long_1.default.UZERO;\n message.txSigLimit =\n object.txSigLimit !== undefined && object.txSigLimit !== null\n ? long_1.default.fromValue(object.txSigLimit)\n : long_1.default.UZERO;\n message.txSizeCostPerByte =\n object.txSizeCostPerByte !== undefined && object.txSizeCostPerByte !== null\n ? long_1.default.fromValue(object.txSizeCostPerByte)\n : long_1.default.UZERO;\n message.sigVerifyCostEd25519 =\n object.sigVerifyCostEd25519 !== undefined && object.sigVerifyCostEd25519 !== null\n ? long_1.default.fromValue(object.sigVerifyCostEd25519)\n : long_1.default.UZERO;\n message.sigVerifyCostSecp256k1 =\n object.sigVerifyCostSecp256k1 !== undefined && object.sigVerifyCostSecp256k1 !== null\n ? long_1.default.fromValue(object.sigVerifyCostSecp256k1)\n : long_1.default.UZERO;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=auth.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryAccountResponse = exports.QueryAccountRequest = exports.QueryAccountsResponse = exports.QueryAccountsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst auth_1 = require(\"../../../cosmos/auth/v1beta1/auth\");\nexports.protobufPackage = \"cosmos.auth.v1beta1\";\nconst baseQueryAccountsRequest = {};\nexports.QueryAccountsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAccountsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAccountsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryAccountsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAccountsResponse = {};\nexports.QueryAccountsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.accounts) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAccountsResponse);\n message.accounts = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.accounts.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryAccountsResponse);\n message.accounts = ((_a = object.accounts) !== null && _a !== void 0 ? _a : []).map((e) => any_1.Any.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.accounts) {\n obj.accounts = message.accounts.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.accounts = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAccountsResponse);\n message.accounts = ((_a = object.accounts) === null || _a === void 0 ? void 0 : _a.map((e) => any_1.Any.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAccountRequest = { address: \"\" };\nexports.QueryAccountRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAccountRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAccountRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAccountRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryAccountResponse = {};\nexports.QueryAccountResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.account !== undefined) {\n any_1.Any.encode(message.account, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAccountResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.account = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAccountResponse);\n message.account =\n object.account !== undefined && object.account !== null ? any_1.Any.fromJSON(object.account) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.account !== undefined &&\n (obj.account = message.account ? any_1.Any.toJSON(message.account) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryAccountResponse);\n message.account =\n object.account !== undefined && object.account !== null ? any_1.Any.fromPartial(object.account) : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n auth_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = auth_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? auth_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? auth_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? auth_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Accounts = this.Accounts.bind(this);\n this.Account = this.Account.bind(this);\n this.Params = this.Params.bind(this);\n }\n Accounts(request) {\n const data = exports.QueryAccountsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Accounts\", data);\n return promise.then((data) => exports.QueryAccountsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Account(request) {\n const data = exports.QueryAccountRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Account\", data);\n return promise.then((data) => exports.QueryAccountResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.auth.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grant = exports.GenericAuthorization = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nconst baseGenericAuthorization = { msg: \"\" };\nexports.GenericAuthorization = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msg !== \"\") {\n writer.uint32(10).string(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGenericAuthorization);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msg = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGenericAuthorization);\n message.msg = object.msg !== undefined && object.msg !== null ? String(object.msg) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msg !== undefined && (obj.msg = message.msg);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseGenericAuthorization);\n message.msg = (_a = object.msg) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseGrant = {};\nexports.Grant = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.authorization !== undefined) {\n any_1.Any.encode(message.authorization, writer.uint32(10).fork()).ldelim();\n }\n if (message.expiration !== undefined) {\n timestamp_1.Timestamp.encode(message.expiration, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGrant);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.authorization = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.expiration = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGrant);\n message.authorization =\n object.authorization !== undefined && object.authorization !== null\n ? any_1.Any.fromJSON(object.authorization)\n : undefined;\n message.expiration =\n object.expiration !== undefined && object.expiration !== null\n ? fromJsonTimestamp(object.expiration)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.authorization !== undefined &&\n (obj.authorization = message.authorization ? any_1.Any.toJSON(message.authorization) : undefined);\n message.expiration !== undefined && (obj.expiration = fromTimestamp(message.expiration).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGrant);\n message.authorization =\n object.authorization !== undefined && object.authorization !== null\n ? any_1.Any.fromPartial(object.authorization)\n : undefined;\n message.expiration =\n object.expiration !== undefined && object.expiration !== null\n ? timestamp_1.Timestamp.fromPartial(object.expiration)\n : undefined;\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=authz.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgRevokeResponse = exports.MsgRevoke = exports.MsgGrantResponse = exports.MsgExec = exports.MsgExecResponse = exports.MsgGrant = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst authz_1 = require(\"../../../cosmos/authz/v1beta1/authz\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.authz.v1beta1\";\nconst baseMsgGrant = { granter: \"\", grantee: \"\" };\nexports.MsgGrant = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.grant !== undefined) {\n authz_1.Grant.encode(message.grant, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrant);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.grant = authz_1.Grant.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgGrant);\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n message.grant =\n object.grant !== undefined && object.grant !== null ? authz_1.Grant.fromJSON(object.grant) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.grant !== undefined && (obj.grant = message.grant ? authz_1.Grant.toJSON(message.grant) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgGrant);\n message.granter = (_a = object.granter) !== null && _a !== void 0 ? _a : \"\";\n message.grantee = (_b = object.grantee) !== null && _b !== void 0 ? _b : \"\";\n message.grant =\n object.grant !== undefined && object.grant !== null ? authz_1.Grant.fromPartial(object.grant) : undefined;\n return message;\n },\n};\nconst baseMsgExecResponse = {};\nexports.MsgExecResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.results) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.results.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = ((_a = object.results) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.results) {\n obj.results = message.results.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.results = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgExecResponse);\n message.results = ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseMsgExec = { grantee: \"\" };\nexports.MsgExec = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.grantee !== \"\") {\n writer.uint32(10).string(message.grantee);\n }\n for (const v of message.msgs) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExec);\n message.msgs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.grantee = reader.string();\n break;\n case 2:\n message.msgs.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgExec);\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n message.msgs = ((_a = object.msgs) !== null && _a !== void 0 ? _a : []).map((e) => any_1.Any.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.grantee !== undefined && (obj.grantee = message.grantee);\n if (message.msgs) {\n obj.msgs = message.msgs.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.msgs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgExec);\n message.grantee = (_a = object.grantee) !== null && _a !== void 0 ? _a : \"\";\n message.msgs = ((_b = object.msgs) === null || _b === void 0 ? void 0 : _b.map((e) => any_1.Any.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgGrantResponse = {};\nexports.MsgGrantResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgGrantResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgGrantResponse);\n return message;\n },\n};\nconst baseMsgRevoke = { granter: \"\", grantee: \"\", msgTypeUrl: \"\" };\nexports.MsgRevoke = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.msgTypeUrl !== \"\") {\n writer.uint32(26).string(message.msgTypeUrl);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevoke);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.msgTypeUrl = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRevoke);\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n message.msgTypeUrl =\n object.msgTypeUrl !== undefined && object.msgTypeUrl !== null ? String(object.msgTypeUrl) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.msgTypeUrl !== undefined && (obj.msgTypeUrl = message.msgTypeUrl);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgRevoke);\n message.granter = (_a = object.granter) !== null && _a !== void 0 ? _a : \"\";\n message.grantee = (_b = object.grantee) !== null && _b !== void 0 ? _b : \"\";\n message.msgTypeUrl = (_c = object.msgTypeUrl) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgRevokeResponse = {};\nexports.MsgRevokeResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgRevokeResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRevokeResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Grant = this.Grant.bind(this);\n this.Exec = this.Exec.bind(this);\n this.Revoke = this.Revoke.bind(this);\n }\n Grant(request) {\n const data = exports.MsgGrant.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Grant\", data);\n return promise.then((data) => exports.MsgGrantResponse.decode(new minimal_1.default.Reader(data)));\n }\n Exec(request) {\n const data = exports.MsgExec.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Exec\", data);\n return promise.then((data) => exports.MsgExecResponse.decode(new minimal_1.default.Reader(data)));\n }\n Revoke(request) {\n const data = exports.MsgRevoke.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.authz.v1beta1.Msg\", \"Revoke\", data);\n return promise.then((data) => exports.MsgRevokeResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Metadata = exports.DenomUnit = exports.Supply = exports.Output = exports.Input = exports.SendEnabled = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseParams = { defaultSendEnabled: false };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.sendEnabled) {\n exports.SendEnabled.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.defaultSendEnabled === true) {\n writer.uint32(16).bool(message.defaultSendEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled.push(exports.SendEnabled.decode(reader, reader.uint32()));\n break;\n case 2:\n message.defaultSendEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = ((_a = object.sendEnabled) !== null && _a !== void 0 ? _a : []).map((e) => exports.SendEnabled.fromJSON(e));\n message.defaultSendEnabled =\n object.defaultSendEnabled !== undefined && object.defaultSendEnabled !== null\n ? Boolean(object.defaultSendEnabled)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.sendEnabled) {\n obj.sendEnabled = message.sendEnabled.map((e) => (e ? exports.SendEnabled.toJSON(e) : undefined));\n }\n else {\n obj.sendEnabled = [];\n }\n message.defaultSendEnabled !== undefined && (obj.defaultSendEnabled = message.defaultSendEnabled);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = ((_a = object.sendEnabled) === null || _a === void 0 ? void 0 : _a.map((e) => exports.SendEnabled.fromPartial(e))) || [];\n message.defaultSendEnabled = (_b = object.defaultSendEnabled) !== null && _b !== void 0 ? _b : false;\n return message;\n },\n};\nconst baseSendEnabled = { denom: \"\", enabled: false };\nexports.SendEnabled = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.enabled === true) {\n writer.uint32(16).bool(message.enabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSendEnabled);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSendEnabled);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.enabled =\n object.enabled !== undefined && object.enabled !== null ? Boolean(object.enabled) : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.enabled !== undefined && (obj.enabled = message.enabled);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseSendEnabled);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.enabled = (_b = object.enabled) !== null && _b !== void 0 ? _b : false;\n return message;\n },\n};\nconst baseInput = { address: \"\" };\nexports.Input = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseInput);\n message.coins = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseInput);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.coins = ((_a = object.coins) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseInput);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.coins = ((_b = object.coins) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseOutput = { address: \"\" };\nexports.Output = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n for (const v of message.coins) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseOutput);\n message.coins = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.coins.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseOutput);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.coins = ((_a = object.coins) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n if (message.coins) {\n obj.coins = message.coins.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.coins = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseOutput);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.coins = ((_b = object.coins) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseSupply = {};\nexports.Supply = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.total) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSupply);\n message.total = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseSupply);\n message.total = ((_a = object.total) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSupply);\n message.total = ((_a = object.total) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDenomUnit = { denom: \"\", exponent: 0, aliases: \"\" };\nexports.DenomUnit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.exponent !== 0) {\n writer.uint32(16).uint32(message.exponent);\n }\n for (const v of message.aliases) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDenomUnit);\n message.aliases = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.exponent = reader.uint32();\n break;\n case 3:\n message.aliases.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDenomUnit);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.exponent =\n object.exponent !== undefined && object.exponent !== null ? Number(object.exponent) : 0;\n message.aliases = ((_a = object.aliases) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.exponent !== undefined && (obj.exponent = message.exponent);\n if (message.aliases) {\n obj.aliases = message.aliases.map((e) => e);\n }\n else {\n obj.aliases = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseDenomUnit);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.exponent = (_b = object.exponent) !== null && _b !== void 0 ? _b : 0;\n message.aliases = ((_c = object.aliases) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n return message;\n },\n};\nconst baseMetadata = { description: \"\", base: \"\", display: \"\", name: \"\", symbol: \"\" };\nexports.Metadata = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== \"\") {\n writer.uint32(10).string(message.description);\n }\n for (const v of message.denomUnits) {\n exports.DenomUnit.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.base !== \"\") {\n writer.uint32(26).string(message.base);\n }\n if (message.display !== \"\") {\n writer.uint32(34).string(message.display);\n }\n if (message.name !== \"\") {\n writer.uint32(42).string(message.name);\n }\n if (message.symbol !== \"\") {\n writer.uint32(50).string(message.symbol);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMetadata);\n message.denomUnits = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = reader.string();\n break;\n case 2:\n message.denomUnits.push(exports.DenomUnit.decode(reader, reader.uint32()));\n break;\n case 3:\n message.base = reader.string();\n break;\n case 4:\n message.display = reader.string();\n break;\n case 5:\n message.name = reader.string();\n break;\n case 6:\n message.symbol = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMetadata);\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n message.denomUnits = ((_a = object.denomUnits) !== null && _a !== void 0 ? _a : []).map((e) => exports.DenomUnit.fromJSON(e));\n message.base = object.base !== undefined && object.base !== null ? String(object.base) : \"\";\n message.display = object.display !== undefined && object.display !== null ? String(object.display) : \"\";\n message.name = object.name !== undefined && object.name !== null ? String(object.name) : \"\";\n message.symbol = object.symbol !== undefined && object.symbol !== null ? String(object.symbol) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined && (obj.description = message.description);\n if (message.denomUnits) {\n obj.denomUnits = message.denomUnits.map((e) => (e ? exports.DenomUnit.toJSON(e) : undefined));\n }\n else {\n obj.denomUnits = [];\n }\n message.base !== undefined && (obj.base = message.base);\n message.display !== undefined && (obj.display = message.display);\n message.name !== undefined && (obj.name = message.name);\n message.symbol !== undefined && (obj.symbol = message.symbol);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseMetadata);\n message.description = (_a = object.description) !== null && _a !== void 0 ? _a : \"\";\n message.denomUnits = ((_b = object.denomUnits) === null || _b === void 0 ? void 0 : _b.map((e) => exports.DenomUnit.fromPartial(e))) || [];\n message.base = (_c = object.base) !== null && _c !== void 0 ? _c : \"\";\n message.display = (_d = object.display) !== null && _d !== void 0 ? _d : \"\";\n message.name = (_e = object.name) !== null && _e !== void 0 ? _e : \"\";\n message.symbol = (_f = object.symbol) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=bank.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryDenomMetadataResponse = exports.QueryDenomMetadataRequest = exports.QueryDenomsMetadataResponse = exports.QueryDenomsMetadataRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QuerySupplyOfResponse = exports.QuerySupplyOfRequest = exports.QueryTotalSupplyResponse = exports.QueryTotalSupplyRequest = exports.QueryAllBalancesResponse = exports.QueryAllBalancesRequest = exports.QueryBalanceResponse = exports.QueryBalanceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst bank_1 = require(\"../../../cosmos/bank/v1beta1/bank\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseQueryBalanceRequest = { address: \"\", denom: \"\" };\nexports.QueryBalanceRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.denom !== \"\") {\n writer.uint32(18).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryBalanceRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryBalanceRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryBalanceRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.denom = (_b = object.denom) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryBalanceResponse = {};\nexports.QueryBalanceResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryBalanceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryBalanceResponse);\n message.balance =\n object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromJSON(object.balance) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryBalanceResponse);\n message.balance =\n object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromPartial(object.balance) : undefined;\n return message;\n },\n};\nconst baseQueryAllBalancesRequest = { address: \"\" };\nexports.QueryAllBalancesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAllBalancesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAllBalancesRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllBalancesRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAllBalancesResponse = {};\nexports.QueryAllBalancesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.balances) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAllBalancesResponse);\n message.balances = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.balances.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllBalancesResponse);\n message.balances = ((_a = object.balances) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.balances) {\n obj.balances = message.balances.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.balances = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllBalancesResponse);\n message.balances = ((_a = object.balances) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryTotalSupplyRequest = {};\nexports.QueryTotalSupplyRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryTotalSupplyRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryTotalSupplyRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryTotalSupplyRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryTotalSupplyResponse = {};\nexports.QueryTotalSupplyResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.supply) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryTotalSupplyResponse);\n message.supply = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.supply.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryTotalSupplyResponse);\n message.supply = ((_a = object.supply) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.supply) {\n obj.supply = message.supply.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.supply = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryTotalSupplyResponse);\n message.supply = ((_a = object.supply) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQuerySupplyOfRequest = { denom: \"\" };\nexports.QuerySupplyOfRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySupplyOfRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySupplyOfRequest);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQuerySupplyOfRequest);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQuerySupplyOfResponse = {};\nexports.QuerySupplyOfResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySupplyOfResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySupplyOfResponse);\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromJSON(object.amount) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQuerySupplyOfResponse);\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n bank_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = bank_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? bank_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? bank_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? bank_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nconst baseQueryDenomsMetadataRequest = {};\nexports.QueryDenomsMetadataRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomsMetadataRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomsMetadataRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDenomsMetadataRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDenomsMetadataResponse = {};\nexports.QueryDenomsMetadataResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.metadatas) {\n bank_1.Metadata.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomsMetadataResponse);\n message.metadatas = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadatas.push(bank_1.Metadata.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomsMetadataResponse);\n message.metadatas = ((_a = object.metadatas) !== null && _a !== void 0 ? _a : []).map((e) => bank_1.Metadata.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.metadatas) {\n obj.metadatas = message.metadatas.map((e) => (e ? bank_1.Metadata.toJSON(e) : undefined));\n }\n else {\n obj.metadatas = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomsMetadataResponse);\n message.metadatas = ((_a = object.metadatas) === null || _a === void 0 ? void 0 : _a.map((e) => bank_1.Metadata.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDenomMetadataRequest = { denom: \"\" };\nexports.QueryDenomMetadataRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomMetadataRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomMetadataRequest);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomMetadataRequest);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDenomMetadataResponse = {};\nexports.QueryDenomMetadataResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.metadata !== undefined) {\n bank_1.Metadata.encode(message.metadata, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomMetadataResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadata = bank_1.Metadata.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomMetadataResponse);\n message.metadata =\n object.metadata !== undefined && object.metadata !== null\n ? bank_1.Metadata.fromJSON(object.metadata)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.metadata !== undefined &&\n (obj.metadata = message.metadata ? bank_1.Metadata.toJSON(message.metadata) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDenomMetadataResponse);\n message.metadata =\n object.metadata !== undefined && object.metadata !== null\n ? bank_1.Metadata.fromPartial(object.metadata)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Balance = this.Balance.bind(this);\n this.AllBalances = this.AllBalances.bind(this);\n this.TotalSupply = this.TotalSupply.bind(this);\n this.SupplyOf = this.SupplyOf.bind(this);\n this.Params = this.Params.bind(this);\n this.DenomMetadata = this.DenomMetadata.bind(this);\n this.DenomsMetadata = this.DenomsMetadata.bind(this);\n }\n Balance(request) {\n const data = exports.QueryBalanceRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"Balance\", data);\n return promise.then((data) => exports.QueryBalanceResponse.decode(new minimal_1.default.Reader(data)));\n }\n AllBalances(request) {\n const data = exports.QueryAllBalancesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"AllBalances\", data);\n return promise.then((data) => exports.QueryAllBalancesResponse.decode(new minimal_1.default.Reader(data)));\n }\n TotalSupply(request) {\n const data = exports.QueryTotalSupplyRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"TotalSupply\", data);\n return promise.then((data) => exports.QueryTotalSupplyResponse.decode(new minimal_1.default.Reader(data)));\n }\n SupplyOf(request) {\n const data = exports.QuerySupplyOfRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"SupplyOf\", data);\n return promise.then((data) => exports.QuerySupplyOfResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DenomMetadata(request) {\n const data = exports.QueryDenomMetadataRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomMetadata\", data);\n return promise.then((data) => exports.QueryDenomMetadataResponse.decode(new minimal_1.default.Reader(data)));\n }\n DenomsMetadata(request) {\n const data = exports.QueryDenomsMetadataRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Query\", \"DenomsMetadata\", data);\n return promise.then((data) => exports.QueryDenomsMetadataResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgMultiSendResponse = exports.MsgMultiSend = exports.MsgSendResponse = exports.MsgSend = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst bank_1 = require(\"../../../cosmos/bank/v1beta1/bank\");\nexports.protobufPackage = \"cosmos.bank.v1beta1\";\nconst baseMsgSend = { fromAddress: \"\", toAddress: \"\" };\nexports.MsgSend = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.fromAddress !== \"\") {\n writer.uint32(10).string(message.fromAddress);\n }\n if (message.toAddress !== \"\") {\n writer.uint32(18).string(message.toAddress);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSend);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fromAddress = reader.string();\n break;\n case 2:\n message.toAddress = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgSend);\n message.fromAddress =\n object.fromAddress !== undefined && object.fromAddress !== null ? String(object.fromAddress) : \"\";\n message.toAddress =\n object.toAddress !== undefined && object.toAddress !== null ? String(object.toAddress) : \"\";\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.fromAddress !== undefined && (obj.fromAddress = message.fromAddress);\n message.toAddress !== undefined && (obj.toAddress = message.toAddress);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgSend);\n message.fromAddress = (_a = object.fromAddress) !== null && _a !== void 0 ? _a : \"\";\n message.toAddress = (_b = object.toAddress) !== null && _b !== void 0 ? _b : \"\";\n message.amount = ((_c = object.amount) === null || _c === void 0 ? void 0 : _c.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgSendResponse = {};\nexports.MsgSendResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSendResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSendResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSendResponse);\n return message;\n },\n};\nconst baseMsgMultiSend = {};\nexports.MsgMultiSend = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.inputs) {\n bank_1.Input.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.outputs) {\n bank_1.Output.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = [];\n message.outputs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inputs.push(bank_1.Input.decode(reader, reader.uint32()));\n break;\n case 2:\n message.outputs.push(bank_1.Output.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = ((_a = object.inputs) !== null && _a !== void 0 ? _a : []).map((e) => bank_1.Input.fromJSON(e));\n message.outputs = ((_b = object.outputs) !== null && _b !== void 0 ? _b : []).map((e) => bank_1.Output.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.inputs) {\n obj.inputs = message.inputs.map((e) => (e ? bank_1.Input.toJSON(e) : undefined));\n }\n else {\n obj.inputs = [];\n }\n if (message.outputs) {\n obj.outputs = message.outputs.map((e) => (e ? bank_1.Output.toJSON(e) : undefined));\n }\n else {\n obj.outputs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgMultiSend);\n message.inputs = ((_a = object.inputs) === null || _a === void 0 ? void 0 : _a.map((e) => bank_1.Input.fromPartial(e))) || [];\n message.outputs = ((_b = object.outputs) === null || _b === void 0 ? void 0 : _b.map((e) => bank_1.Output.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgMultiSendResponse = {};\nexports.MsgMultiSendResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMultiSendResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgMultiSendResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgMultiSendResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Send = this.Send.bind(this);\n this.MultiSend = this.MultiSend.bind(this);\n }\n Send(request) {\n const data = exports.MsgSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"Send\", data);\n return promise.then((data) => exports.MsgSendResponse.decode(new minimal_1.default.Reader(data)));\n }\n MultiSend(request) {\n const data = exports.MsgMultiSend.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.bank.v1beta1.Msg\", \"MultiSend\", data);\n return promise.then((data) => exports.MsgMultiSendResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchTxsResult = exports.TxMsgData = exports.MsgData = exports.SimulationResponse = exports.Result = exports.GasInfo = exports.Attribute = exports.StringEvent = exports.ABCIMessageLog = exports.TxResponse = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst types_1 = require(\"../../../../tendermint/abci/types\");\nexports.protobufPackage = \"cosmos.base.abci.v1beta1\";\nconst baseTxResponse = {\n height: long_1.default.ZERO,\n txhash: \"\",\n codespace: \"\",\n code: 0,\n data: \"\",\n rawLog: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n timestamp: \"\",\n};\nexports.TxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.txhash !== \"\") {\n writer.uint32(18).string(message.txhash);\n }\n if (message.codespace !== \"\") {\n writer.uint32(26).string(message.codespace);\n }\n if (message.code !== 0) {\n writer.uint32(32).uint32(message.code);\n }\n if (message.data !== \"\") {\n writer.uint32(42).string(message.data);\n }\n if (message.rawLog !== \"\") {\n writer.uint32(50).string(message.rawLog);\n }\n for (const v of message.logs) {\n exports.ABCIMessageLog.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.info !== \"\") {\n writer.uint32(66).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(72).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(80).int64(message.gasUsed);\n }\n if (message.tx !== undefined) {\n any_1.Any.encode(message.tx, writer.uint32(90).fork()).ldelim();\n }\n if (message.timestamp !== \"\") {\n writer.uint32(98).string(message.timestamp);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(106).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxResponse);\n message.logs = [];\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.txhash = reader.string();\n break;\n case 3:\n message.codespace = reader.string();\n break;\n case 4:\n message.code = reader.uint32();\n break;\n case 5:\n message.data = reader.string();\n break;\n case 6:\n message.rawLog = reader.string();\n break;\n case 7:\n message.logs.push(exports.ABCIMessageLog.decode(reader, reader.uint32()));\n break;\n case 8:\n message.info = reader.string();\n break;\n case 9:\n message.gasWanted = reader.int64();\n break;\n case 10:\n message.gasUsed = reader.int64();\n break;\n case 11:\n message.tx = any_1.Any.decode(reader, reader.uint32());\n break;\n case 12:\n message.timestamp = reader.string();\n break;\n case 13:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseTxResponse);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.txhash = object.txhash !== undefined && object.txhash !== null ? String(object.txhash) : \"\";\n message.codespace =\n object.codespace !== undefined && object.codespace !== null ? String(object.codespace) : \"\";\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.data = object.data !== undefined && object.data !== null ? String(object.data) : \"\";\n message.rawLog = object.rawLog !== undefined && object.rawLog !== null ? String(object.rawLog) : \"\";\n message.logs = ((_a = object.logs) !== null && _a !== void 0 ? _a : []).map((e) => exports.ABCIMessageLog.fromJSON(e));\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromString(object.gasWanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromString(object.gasUsed) : long_1.default.ZERO;\n message.tx = object.tx !== undefined && object.tx !== null ? any_1.Any.fromJSON(object.tx) : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null ? String(object.timestamp) : \"\";\n message.events = ((_b = object.events) !== null && _b !== void 0 ? _b : []).map((e) => types_1.Event.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.txhash !== undefined && (obj.txhash = message.txhash);\n message.codespace !== undefined && (obj.codespace = message.codespace);\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined && (obj.data = message.data);\n message.rawLog !== undefined && (obj.rawLog = message.rawLog);\n if (message.logs) {\n obj.logs = message.logs.map((e) => (e ? exports.ABCIMessageLog.toJSON(e) : undefined));\n }\n else {\n obj.logs = [];\n }\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.ZERO).toString());\n message.tx !== undefined && (obj.tx = message.tx ? any_1.Any.toJSON(message.tx) : undefined);\n message.timestamp !== undefined && (obj.timestamp = message.timestamp);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const message = Object.assign({}, baseTxResponse);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.txhash = (_a = object.txhash) !== null && _a !== void 0 ? _a : \"\";\n message.codespace = (_b = object.codespace) !== null && _b !== void 0 ? _b : \"\";\n message.code = (_c = object.code) !== null && _c !== void 0 ? _c : 0;\n message.data = (_d = object.data) !== null && _d !== void 0 ? _d : \"\";\n message.rawLog = (_e = object.rawLog) !== null && _e !== void 0 ? _e : \"\";\n message.logs = ((_f = object.logs) === null || _f === void 0 ? void 0 : _f.map((e) => exports.ABCIMessageLog.fromPartial(e))) || [];\n message.info = (_g = object.info) !== null && _g !== void 0 ? _g : \"\";\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromValue(object.gasWanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromValue(object.gasUsed) : long_1.default.ZERO;\n message.tx = object.tx !== undefined && object.tx !== null ? any_1.Any.fromPartial(object.tx) : undefined;\n message.timestamp = (_h = object.timestamp) !== null && _h !== void 0 ? _h : \"\";\n message.events = ((_j = object.events) === null || _j === void 0 ? void 0 : _j.map((e) => types_1.Event.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseABCIMessageLog = { msgIndex: 0, log: \"\" };\nexports.ABCIMessageLog = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msgIndex !== 0) {\n writer.uint32(8).uint32(message.msgIndex);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n exports.StringEvent.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseABCIMessageLog);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgIndex = reader.uint32();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(exports.StringEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseABCIMessageLog);\n message.msgIndex =\n object.msgIndex !== undefined && object.msgIndex !== null ? Number(object.msgIndex) : 0;\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => exports.StringEvent.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msgIndex !== undefined && (obj.msgIndex = message.msgIndex);\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.StringEvent.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseABCIMessageLog);\n message.msgIndex = (_a = object.msgIndex) !== null && _a !== void 0 ? _a : 0;\n message.log = (_b = object.log) !== null && _b !== void 0 ? _b : \"\";\n message.events = ((_c = object.events) === null || _c === void 0 ? void 0 : _c.map((e) => exports.StringEvent.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseStringEvent = { type: \"\" };\nexports.StringEvent = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.Attribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseStringEvent);\n message.attributes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.Attribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseStringEvent);\n message.type = object.type !== undefined && object.type !== null ? String(object.type) : \"\";\n message.attributes = ((_a = object.attributes) !== null && _a !== void 0 ? _a : []).map((e) => exports.Attribute.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.Attribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseStringEvent);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : \"\";\n message.attributes = ((_b = object.attributes) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Attribute.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseAttribute = { key: \"\", value: \"\" };\nexports.Attribute = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAttribute);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAttribute);\n message.key = object.key !== undefined && object.key !== null ? String(object.key) : \"\";\n message.value = object.value !== undefined && object.value !== null ? String(object.value) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseAttribute);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : \"\";\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseGasInfo = { gasWanted: long_1.default.UZERO, gasUsed: long_1.default.UZERO };\nexports.GasInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.gasWanted.isZero()) {\n writer.uint32(8).uint64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(16).uint64(message.gasUsed);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGasInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasWanted = reader.uint64();\n break;\n case 2:\n message.gasUsed = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGasInfo);\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromString(object.gasWanted)\n : long_1.default.UZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromString(object.gasUsed) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasWanted !== undefined && (obj.gasWanted = (message.gasWanted || long_1.default.UZERO).toString());\n message.gasUsed !== undefined && (obj.gasUsed = (message.gasUsed || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGasInfo);\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromValue(object.gasWanted)\n : long_1.default.UZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromValue(object.gasUsed) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseResult = { log: \"\" };\nexports.Result = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(18).string(message.log);\n }\n for (const v of message.events) {\n types_1.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResult);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.log = reader.string();\n break;\n case 3:\n message.events.push(types_1.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResult);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => types_1.Event.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? types_1.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseResult);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.log = (_b = object.log) !== null && _b !== void 0 ? _b : \"\";\n message.events = ((_c = object.events) === null || _c === void 0 ? void 0 : _c.map((e) => types_1.Event.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseSimulationResponse = {};\nexports.SimulationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.gasInfo !== undefined) {\n exports.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n exports.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = exports.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = exports.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulationResponse);\n message.gasInfo =\n object.gasInfo !== undefined && object.gasInfo !== null ? exports.GasInfo.fromJSON(object.gasInfo) : undefined;\n message.result =\n object.result !== undefined && object.result !== null ? exports.Result.fromJSON(object.result) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? exports.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? exports.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimulationResponse);\n message.gasInfo =\n object.gasInfo !== undefined && object.gasInfo !== null\n ? exports.GasInfo.fromPartial(object.gasInfo)\n : undefined;\n message.result =\n object.result !== undefined && object.result !== null ? exports.Result.fromPartial(object.result) : undefined;\n return message;\n },\n};\nconst baseMsgData = { msgType: \"\" };\nexports.MsgData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.msgType !== \"\") {\n writer.uint32(10).string(message.msgType);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgData);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.msgType = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgData);\n message.msgType = object.msgType !== undefined && object.msgType !== null ? String(object.msgType) : \"\";\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.msgType !== undefined && (obj.msgType = message.msgType);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgData);\n message.msgType = (_a = object.msgType) !== null && _a !== void 0 ? _a : \"\";\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseTxMsgData = {};\nexports.TxMsgData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.data) {\n exports.MsgData.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxMsgData);\n message.data = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data.push(exports.MsgData.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseTxMsgData);\n message.data = ((_a = object.data) !== null && _a !== void 0 ? _a : []).map((e) => exports.MsgData.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.data) {\n obj.data = message.data.map((e) => (e ? exports.MsgData.toJSON(e) : undefined));\n }\n else {\n obj.data = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseTxMsgData);\n message.data = ((_a = object.data) === null || _a === void 0 ? void 0 : _a.map((e) => exports.MsgData.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseSearchTxsResult = {\n totalCount: long_1.default.UZERO,\n count: long_1.default.UZERO,\n pageNumber: long_1.default.UZERO,\n pageTotal: long_1.default.UZERO,\n limit: long_1.default.UZERO,\n};\nexports.SearchTxsResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.totalCount.isZero()) {\n writer.uint32(8).uint64(message.totalCount);\n }\n if (!message.count.isZero()) {\n writer.uint32(16).uint64(message.count);\n }\n if (!message.pageNumber.isZero()) {\n writer.uint32(24).uint64(message.pageNumber);\n }\n if (!message.pageTotal.isZero()) {\n writer.uint32(32).uint64(message.pageTotal);\n }\n if (!message.limit.isZero()) {\n writer.uint32(40).uint64(message.limit);\n }\n for (const v of message.txs) {\n exports.TxResponse.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSearchTxsResult);\n message.txs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalCount = reader.uint64();\n break;\n case 2:\n message.count = reader.uint64();\n break;\n case 3:\n message.pageNumber = reader.uint64();\n break;\n case 4:\n message.pageTotal = reader.uint64();\n break;\n case 5:\n message.limit = reader.uint64();\n break;\n case 6:\n message.txs.push(exports.TxResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseSearchTxsResult);\n message.totalCount =\n object.totalCount !== undefined && object.totalCount !== null\n ? long_1.default.fromString(object.totalCount)\n : long_1.default.UZERO;\n message.count =\n object.count !== undefined && object.count !== null ? long_1.default.fromString(object.count) : long_1.default.UZERO;\n message.pageNumber =\n object.pageNumber !== undefined && object.pageNumber !== null\n ? long_1.default.fromString(object.pageNumber)\n : long_1.default.UZERO;\n message.pageTotal =\n object.pageTotal !== undefined && object.pageTotal !== null\n ? long_1.default.fromString(object.pageTotal)\n : long_1.default.UZERO;\n message.limit =\n object.limit !== undefined && object.limit !== null ? long_1.default.fromString(object.limit) : long_1.default.UZERO;\n message.txs = ((_a = object.txs) !== null && _a !== void 0 ? _a : []).map((e) => exports.TxResponse.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.totalCount !== undefined && (obj.totalCount = (message.totalCount || long_1.default.UZERO).toString());\n message.count !== undefined && (obj.count = (message.count || long_1.default.UZERO).toString());\n message.pageNumber !== undefined && (obj.pageNumber = (message.pageNumber || long_1.default.UZERO).toString());\n message.pageTotal !== undefined && (obj.pageTotal = (message.pageTotal || long_1.default.UZERO).toString());\n message.limit !== undefined && (obj.limit = (message.limit || long_1.default.UZERO).toString());\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? exports.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSearchTxsResult);\n message.totalCount =\n object.totalCount !== undefined && object.totalCount !== null\n ? long_1.default.fromValue(object.totalCount)\n : long_1.default.UZERO;\n message.count =\n object.count !== undefined && object.count !== null ? long_1.default.fromValue(object.count) : long_1.default.UZERO;\n message.pageNumber =\n object.pageNumber !== undefined && object.pageNumber !== null\n ? long_1.default.fromValue(object.pageNumber)\n : long_1.default.UZERO;\n message.pageTotal =\n object.pageTotal !== undefined && object.pageTotal !== null\n ? long_1.default.fromValue(object.pageTotal)\n : long_1.default.UZERO;\n message.limit =\n object.limit !== undefined && object.limit !== null ? long_1.default.fromValue(object.limit) : long_1.default.UZERO;\n message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map((e) => exports.TxResponse.fromPartial(e))) || [];\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=abci.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PageResponse = exports.PageRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.base.query.v1beta1\";\nconst basePageRequest = { offset: long_1.default.UZERO, limit: long_1.default.UZERO, countTotal: false, reverse: false };\nexports.PageRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (!message.offset.isZero()) {\n writer.uint32(16).uint64(message.offset);\n }\n if (!message.limit.isZero()) {\n writer.uint32(24).uint64(message.limit);\n }\n if (message.countTotal === true) {\n writer.uint32(32).bool(message.countTotal);\n }\n if (message.reverse === true) {\n writer.uint32(40).bool(message.reverse);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePageRequest);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.offset = reader.uint64();\n break;\n case 3:\n message.limit = reader.uint64();\n break;\n case 4:\n message.countTotal = reader.bool();\n break;\n case 5:\n message.reverse = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePageRequest);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.offset =\n object.offset !== undefined && object.offset !== null ? long_1.default.fromString(object.offset) : long_1.default.UZERO;\n message.limit =\n object.limit !== undefined && object.limit !== null ? long_1.default.fromString(object.limit) : long_1.default.UZERO;\n message.countTotal =\n object.countTotal !== undefined && object.countTotal !== null ? Boolean(object.countTotal) : false;\n message.reverse =\n object.reverse !== undefined && object.reverse !== null ? Boolean(object.reverse) : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.offset !== undefined && (obj.offset = (message.offset || long_1.default.UZERO).toString());\n message.limit !== undefined && (obj.limit = (message.limit || long_1.default.UZERO).toString());\n message.countTotal !== undefined && (obj.countTotal = message.countTotal);\n message.reverse !== undefined && (obj.reverse = message.reverse);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, basePageRequest);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.offset =\n object.offset !== undefined && object.offset !== null ? long_1.default.fromValue(object.offset) : long_1.default.UZERO;\n message.limit =\n object.limit !== undefined && object.limit !== null ? long_1.default.fromValue(object.limit) : long_1.default.UZERO;\n message.countTotal = (_b = object.countTotal) !== null && _b !== void 0 ? _b : false;\n message.reverse = (_c = object.reverse) !== null && _c !== void 0 ? _c : false;\n return message;\n },\n};\nconst basePageResponse = { total: long_1.default.UZERO };\nexports.PageResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.nextKey.length !== 0) {\n writer.uint32(10).bytes(message.nextKey);\n }\n if (!message.total.isZero()) {\n writer.uint32(16).uint64(message.total);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePageResponse);\n message.nextKey = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextKey = reader.bytes();\n break;\n case 2:\n message.total = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePageResponse);\n message.nextKey =\n object.nextKey !== undefined && object.nextKey !== null\n ? bytesFromBase64(object.nextKey)\n : new Uint8Array();\n message.total =\n object.total !== undefined && object.total !== null ? long_1.default.fromString(object.total) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.nextKey !== undefined &&\n (obj.nextKey = base64FromBytes(message.nextKey !== undefined ? message.nextKey : new Uint8Array()));\n message.total !== undefined && (obj.total = (message.total || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePageResponse);\n message.nextKey = (_a = object.nextKey) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.total =\n object.total !== undefined && object.total !== null ? long_1.default.fromValue(object.total) : long_1.default.UZERO;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=pagination.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecProto = exports.IntProto = exports.DecCoin = exports.Coin = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.base.v1beta1\";\nconst baseCoin = { denom: \"\", amount: \"\" };\nexports.Coin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCoin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCoin);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.amount = object.amount !== undefined && object.amount !== null ? String(object.amount) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCoin);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseDecCoin = { denom: \"\", amount: \"\" };\nexports.DecCoin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (message.amount !== \"\") {\n writer.uint32(18).string(message.amount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDecCoin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDecCoin);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.amount = object.amount !== undefined && object.amount !== null ? String(object.amount) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = message.amount);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDecCoin);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.amount = (_b = object.amount) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseIntProto = { int: \"\" };\nexports.IntProto = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.int !== \"\") {\n writer.uint32(10).string(message.int);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIntProto);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.int = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIntProto);\n message.int = object.int !== undefined && object.int !== null ? String(object.int) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.int !== undefined && (obj.int = message.int);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseIntProto);\n message.int = (_a = object.int) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseDecProto = { dec: \"\" };\nexports.DecProto = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.dec !== \"\") {\n writer.uint32(10).string(message.dec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDecProto);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dec = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDecProto);\n message.dec = object.dec !== undefined && object.dec !== null ? String(object.dec) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.dec !== undefined && (obj.dec = message.dec);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDecProto);\n message.dec = (_a = object.dec) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=coin.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LegacyAminoPubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.crypto.multisig\";\nconst baseLegacyAminoPubKey = { threshold: 0 };\nexports.LegacyAminoPubKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.threshold !== 0) {\n writer.uint32(8).uint32(message.threshold);\n }\n for (const v of message.publicKeys) {\n any_1.Any.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.publicKeys = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.threshold = reader.uint32();\n break;\n case 2:\n message.publicKeys.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.threshold =\n object.threshold !== undefined && object.threshold !== null ? Number(object.threshold) : 0;\n message.publicKeys = ((_a = object.publicKeys) !== null && _a !== void 0 ? _a : []).map((e) => any_1.Any.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.threshold !== undefined && (obj.threshold = message.threshold);\n if (message.publicKeys) {\n obj.publicKeys = message.publicKeys.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.publicKeys = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseLegacyAminoPubKey);\n message.threshold = (_a = object.threshold) !== null && _a !== void 0 ? _a : 0;\n message.publicKeys = ((_b = object.publicKeys) === null || _b === void 0 ? void 0 : _b.map((e) => any_1.Any.fromPartial(e))) || [];\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CompactBitArray = exports.MultiSignature = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.crypto.multisig.v1beta1\";\nconst baseMultiSignature = {};\nexports.MultiSignature = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signatures) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMultiSignature);\n message.signatures = ((_a = object.signatures) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseCompactBitArray = { extraBitsStored: 0 };\nexports.CompactBitArray = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.extraBitsStored !== 0) {\n writer.uint32(8).uint32(message.extraBitsStored);\n }\n if (message.elems.length !== 0) {\n writer.uint32(18).bytes(message.elems);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCompactBitArray);\n message.elems = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.extraBitsStored = reader.uint32();\n break;\n case 2:\n message.elems = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCompactBitArray);\n message.extraBitsStored =\n object.extraBitsStored !== undefined && object.extraBitsStored !== null\n ? Number(object.extraBitsStored)\n : 0;\n message.elems =\n object.elems !== undefined && object.elems !== null ? bytesFromBase64(object.elems) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.extraBitsStored !== undefined && (obj.extraBitsStored = message.extraBitsStored);\n message.elems !== undefined &&\n (obj.elems = base64FromBytes(message.elems !== undefined ? message.elems : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCompactBitArray);\n message.extraBitsStored = (_a = object.extraBitsStored) !== null && _a !== void 0 ? _a : 0;\n message.elems = (_b = object.elems) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=multisig.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrivKey = exports.PubKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.crypto.secp256k1\";\nconst basePubKey = {};\nexports.PubKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePubKey);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePubKey);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePubKey);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst basePrivKey = {};\nexports.PrivKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePrivKey);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePrivKey);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePrivKey);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommunityPoolSpendProposalWithDeposit = exports.DelegationDelegatorReward = exports.DelegatorStartingInfo = exports.CommunityPoolSpendProposal = exports.FeePool = exports.ValidatorSlashEvents = exports.ValidatorSlashEvent = exports.ValidatorOutstandingRewards = exports.ValidatorAccumulatedCommission = exports.ValidatorCurrentRewards = exports.ValidatorHistoricalRewards = exports.Params = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseParams = {\n communityTax: \"\",\n baseProposerReward: \"\",\n bonusProposerReward: \"\",\n withdrawAddrEnabled: false,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.communityTax !== \"\") {\n writer.uint32(10).string(message.communityTax);\n }\n if (message.baseProposerReward !== \"\") {\n writer.uint32(18).string(message.baseProposerReward);\n }\n if (message.bonusProposerReward !== \"\") {\n writer.uint32(26).string(message.bonusProposerReward);\n }\n if (message.withdrawAddrEnabled === true) {\n writer.uint32(32).bool(message.withdrawAddrEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityTax = reader.string();\n break;\n case 2:\n message.baseProposerReward = reader.string();\n break;\n case 3:\n message.bonusProposerReward = reader.string();\n break;\n case 4:\n message.withdrawAddrEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.communityTax =\n object.communityTax !== undefined && object.communityTax !== null ? String(object.communityTax) : \"\";\n message.baseProposerReward =\n object.baseProposerReward !== undefined && object.baseProposerReward !== null\n ? String(object.baseProposerReward)\n : \"\";\n message.bonusProposerReward =\n object.bonusProposerReward !== undefined && object.bonusProposerReward !== null\n ? String(object.bonusProposerReward)\n : \"\";\n message.withdrawAddrEnabled =\n object.withdrawAddrEnabled !== undefined && object.withdrawAddrEnabled !== null\n ? Boolean(object.withdrawAddrEnabled)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.communityTax !== undefined && (obj.communityTax = message.communityTax);\n message.baseProposerReward !== undefined && (obj.baseProposerReward = message.baseProposerReward);\n message.bonusProposerReward !== undefined && (obj.bonusProposerReward = message.bonusProposerReward);\n message.withdrawAddrEnabled !== undefined && (obj.withdrawAddrEnabled = message.withdrawAddrEnabled);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseParams);\n message.communityTax = (_a = object.communityTax) !== null && _a !== void 0 ? _a : \"\";\n message.baseProposerReward = (_b = object.baseProposerReward) !== null && _b !== void 0 ? _b : \"\";\n message.bonusProposerReward = (_c = object.bonusProposerReward) !== null && _c !== void 0 ? _c : \"\";\n message.withdrawAddrEnabled = (_d = object.withdrawAddrEnabled) !== null && _d !== void 0 ? _d : false;\n return message;\n },\n};\nconst baseValidatorHistoricalRewards = { referenceCount: 0 };\nexports.ValidatorHistoricalRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.cumulativeRewardRatio) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.referenceCount !== 0) {\n writer.uint32(16).uint32(message.referenceCount);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.cumulativeRewardRatio.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.referenceCount = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = ((_a = object.cumulativeRewardRatio) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n message.referenceCount =\n object.referenceCount !== undefined && object.referenceCount !== null\n ? Number(object.referenceCount)\n : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.cumulativeRewardRatio) {\n obj.cumulativeRewardRatio = message.cumulativeRewardRatio.map((e) => e ? coin_1.DecCoin.toJSON(e) : undefined);\n }\n else {\n obj.cumulativeRewardRatio = [];\n }\n message.referenceCount !== undefined && (obj.referenceCount = message.referenceCount);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseValidatorHistoricalRewards);\n message.cumulativeRewardRatio = ((_a = object.cumulativeRewardRatio) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n message.referenceCount = (_b = object.referenceCount) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseValidatorCurrentRewards = { period: long_1.default.UZERO };\nexports.ValidatorCurrentRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (!message.period.isZero()) {\n writer.uint32(16).uint64(message.period);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.period = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = ((_a = object.rewards) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n message.period =\n object.period !== undefined && object.period !== null ? long_1.default.fromString(object.period) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n message.period !== undefined && (obj.period = (message.period || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorCurrentRewards);\n message.rewards = ((_a = object.rewards) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n message.period =\n object.period !== undefined && object.period !== null ? long_1.default.fromValue(object.period) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseValidatorAccumulatedCommission = {};\nexports.ValidatorAccumulatedCommission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.commission) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = ((_a = object.commission) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.commission) {\n obj.commission = message.commission.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.commission = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorAccumulatedCommission);\n message.commission = ((_a = object.commission) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseValidatorOutstandingRewards = {};\nexports.ValidatorOutstandingRewards = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = ((_a = object.rewards) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorOutstandingRewards);\n message.rewards = ((_a = object.rewards) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseValidatorSlashEvent = { validatorPeriod: long_1.default.UZERO, fraction: \"\" };\nexports.ValidatorSlashEvent = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.validatorPeriod.isZero()) {\n writer.uint32(8).uint64(message.validatorPeriod);\n }\n if (message.fraction !== \"\") {\n writer.uint32(18).string(message.fraction);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSlashEvent);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorPeriod = reader.uint64();\n break;\n case 2:\n message.fraction = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorSlashEvent);\n message.validatorPeriod =\n object.validatorPeriod !== undefined && object.validatorPeriod !== null\n ? long_1.default.fromString(object.validatorPeriod)\n : long_1.default.UZERO;\n message.fraction =\n object.fraction !== undefined && object.fraction !== null ? String(object.fraction) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorPeriod !== undefined &&\n (obj.validatorPeriod = (message.validatorPeriod || long_1.default.UZERO).toString());\n message.fraction !== undefined && (obj.fraction = message.fraction);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSlashEvent);\n message.validatorPeriod =\n object.validatorPeriod !== undefined && object.validatorPeriod !== null\n ? long_1.default.fromValue(object.validatorPeriod)\n : long_1.default.UZERO;\n message.fraction = (_a = object.fraction) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseValidatorSlashEvents = {};\nexports.ValidatorSlashEvents = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validatorSlashEvents) {\n exports.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorSlashEvents.push(exports.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents = ((_a = object.validatorSlashEvents) !== null && _a !== void 0 ? _a : []).map((e) => exports.ValidatorSlashEvent.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorSlashEvents) {\n obj.validatorSlashEvents = message.validatorSlashEvents.map((e) => e ? exports.ValidatorSlashEvent.toJSON(e) : undefined);\n }\n else {\n obj.validatorSlashEvents = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSlashEvents);\n message.validatorSlashEvents =\n ((_a = object.validatorSlashEvents) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ValidatorSlashEvent.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseFeePool = {};\nexports.FeePool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.communityPool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFeePool);\n message.communityPool = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.communityPool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseFeePool);\n message.communityPool = ((_a = object.communityPool) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.communityPool) {\n obj.communityPool = message.communityPool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.communityPool = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseFeePool);\n message.communityPool = ((_a = object.communityPool) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCommunityPoolSpendProposal = { title: \"\", description: \"\", recipient: \"\" };\nexports.CommunityPoolSpendProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.title = object.title !== undefined && object.title !== null ? String(object.title) : \"\";\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n message.recipient =\n object.recipient !== undefined && object.recipient !== null ? String(object.recipient) : \"\";\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseCommunityPoolSpendProposal);\n message.title = (_a = object.title) !== null && _a !== void 0 ? _a : \"\";\n message.description = (_b = object.description) !== null && _b !== void 0 ? _b : \"\";\n message.recipient = (_c = object.recipient) !== null && _c !== void 0 ? _c : \"\";\n message.amount = ((_d = object.amount) === null || _d === void 0 ? void 0 : _d.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDelegatorStartingInfo = { previousPeriod: long_1.default.UZERO, stake: \"\", height: long_1.default.UZERO };\nexports.DelegatorStartingInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.previousPeriod.isZero()) {\n writer.uint32(8).uint64(message.previousPeriod);\n }\n if (message.stake !== \"\") {\n writer.uint32(18).string(message.stake);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).uint64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegatorStartingInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.previousPeriod = reader.uint64();\n break;\n case 2:\n message.stake = reader.string();\n break;\n case 3:\n message.height = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegatorStartingInfo);\n message.previousPeriod =\n object.previousPeriod !== undefined && object.previousPeriod !== null\n ? long_1.default.fromString(object.previousPeriod)\n : long_1.default.UZERO;\n message.stake = object.stake !== undefined && object.stake !== null ? String(object.stake) : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.previousPeriod !== undefined &&\n (obj.previousPeriod = (message.previousPeriod || long_1.default.UZERO).toString());\n message.stake !== undefined && (obj.stake = message.stake);\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDelegatorStartingInfo);\n message.previousPeriod =\n object.previousPeriod !== undefined && object.previousPeriod !== null\n ? long_1.default.fromValue(object.previousPeriod)\n : long_1.default.UZERO;\n message.stake = (_a = object.stake) !== null && _a !== void 0 ? _a : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseDelegationDelegatorReward = { validatorAddress: \"\" };\nexports.DelegationDelegatorReward = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n for (const v of message.reward) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.reward = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.reward.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.reward = ((_a = object.reward) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.reward) {\n obj.reward = message.reward.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.reward = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDelegationDelegatorReward);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.reward = ((_b = object.reward) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCommunityPoolSpendProposalWithDeposit = {\n title: \"\",\n description: \"\",\n recipient: \"\",\n amount: \"\",\n deposit: \"\",\n};\nexports.CommunityPoolSpendProposalWithDeposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.recipient !== \"\") {\n writer.uint32(26).string(message.recipient);\n }\n if (message.amount !== \"\") {\n writer.uint32(34).string(message.amount);\n }\n if (message.deposit !== \"\") {\n writer.uint32(42).string(message.deposit);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.recipient = reader.string();\n break;\n case 4:\n message.amount = reader.string();\n break;\n case 5:\n message.deposit = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n message.title = object.title !== undefined && object.title !== null ? String(object.title) : \"\";\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n message.recipient =\n object.recipient !== undefined && object.recipient !== null ? String(object.recipient) : \"\";\n message.amount = object.amount !== undefined && object.amount !== null ? String(object.amount) : \"\";\n message.deposit = object.deposit !== undefined && object.deposit !== null ? String(object.deposit) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.recipient !== undefined && (obj.recipient = message.recipient);\n message.amount !== undefined && (obj.amount = message.amount);\n message.deposit !== undefined && (obj.deposit = message.deposit);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseCommunityPoolSpendProposalWithDeposit);\n message.title = (_a = object.title) !== null && _a !== void 0 ? _a : \"\";\n message.description = (_b = object.description) !== null && _b !== void 0 ? _b : \"\";\n message.recipient = (_c = object.recipient) !== null && _c !== void 0 ? _c : \"\";\n message.amount = (_d = object.amount) !== null && _d !== void 0 ? _d : \"\";\n message.deposit = (_e = object.deposit) !== null && _e !== void 0 ? _e : \"\";\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=distribution.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryCommunityPoolResponse = exports.QueryCommunityPoolRequest = exports.QueryDelegatorWithdrawAddressResponse = exports.QueryDelegatorWithdrawAddressRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryDelegationTotalRewardsResponse = exports.QueryDelegationTotalRewardsRequest = exports.QueryDelegationRewardsResponse = exports.QueryDelegationRewardsRequest = exports.QueryValidatorSlashesResponse = exports.QueryValidatorSlashesRequest = exports.QueryValidatorCommissionResponse = exports.QueryValidatorCommissionRequest = exports.QueryValidatorOutstandingRewardsResponse = exports.QueryValidatorOutstandingRewardsRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst distribution_1 = require(\"../../../cosmos/distribution/v1beta1/distribution\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n distribution_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = distribution_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? distribution_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? distribution_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nconst baseQueryValidatorOutstandingRewardsRequest = { validatorAddress: \"\" };\nexports.QueryValidatorOutstandingRewardsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsRequest);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsRequest);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryValidatorOutstandingRewardsResponse = {};\nexports.QueryValidatorOutstandingRewardsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rewards !== undefined) {\n distribution_1.ValidatorOutstandingRewards.encode(message.rewards, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards = distribution_1.ValidatorOutstandingRewards.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsResponse);\n message.rewards =\n object.rewards !== undefined && object.rewards !== null\n ? distribution_1.ValidatorOutstandingRewards.fromJSON(object.rewards)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rewards !== undefined &&\n (obj.rewards = message.rewards ? distribution_1.ValidatorOutstandingRewards.toJSON(message.rewards) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryValidatorOutstandingRewardsResponse);\n message.rewards =\n object.rewards !== undefined && object.rewards !== null\n ? distribution_1.ValidatorOutstandingRewards.fromPartial(object.rewards)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorCommissionRequest = { validatorAddress: \"\" };\nexports.QueryValidatorCommissionRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorCommissionRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorCommissionRequest);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorCommissionRequest);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryValidatorCommissionResponse = {};\nexports.QueryValidatorCommissionResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.commission !== undefined) {\n distribution_1.ValidatorAccumulatedCommission.encode(message.commission, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorCommissionResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commission = distribution_1.ValidatorAccumulatedCommission.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorCommissionResponse);\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? distribution_1.ValidatorAccumulatedCommission.fromJSON(object.commission)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.commission !== undefined &&\n (obj.commission = message.commission\n ? distribution_1.ValidatorAccumulatedCommission.toJSON(message.commission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryValidatorCommissionResponse);\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? distribution_1.ValidatorAccumulatedCommission.fromPartial(object.commission)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorSlashesRequest = {\n validatorAddress: \"\",\n startingHeight: long_1.default.UZERO,\n endingHeight: long_1.default.UZERO,\n};\nexports.QueryValidatorSlashesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n if (!message.startingHeight.isZero()) {\n writer.uint32(16).uint64(message.startingHeight);\n }\n if (!message.endingHeight.isZero()) {\n writer.uint32(24).uint64(message.endingHeight);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorSlashesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n case 2:\n message.startingHeight = reader.uint64();\n break;\n case 3:\n message.endingHeight = reader.uint64();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorSlashesRequest);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.startingHeight =\n object.startingHeight !== undefined && object.startingHeight !== null\n ? long_1.default.fromString(object.startingHeight)\n : long_1.default.UZERO;\n message.endingHeight =\n object.endingHeight !== undefined && object.endingHeight !== null\n ? long_1.default.fromString(object.endingHeight)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.startingHeight !== undefined &&\n (obj.startingHeight = (message.startingHeight || long_1.default.UZERO).toString());\n message.endingHeight !== undefined &&\n (obj.endingHeight = (message.endingHeight || long_1.default.UZERO).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorSlashesRequest);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.startingHeight =\n object.startingHeight !== undefined && object.startingHeight !== null\n ? long_1.default.fromValue(object.startingHeight)\n : long_1.default.UZERO;\n message.endingHeight =\n object.endingHeight !== undefined && object.endingHeight !== null\n ? long_1.default.fromValue(object.endingHeight)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorSlashesResponse = {};\nexports.QueryValidatorSlashesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.slashes) {\n distribution_1.ValidatorSlashEvent.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorSlashesResponse);\n message.slashes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.slashes.push(distribution_1.ValidatorSlashEvent.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorSlashesResponse);\n message.slashes = ((_a = object.slashes) !== null && _a !== void 0 ? _a : []).map((e) => distribution_1.ValidatorSlashEvent.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.slashes) {\n obj.slashes = message.slashes.map((e) => (e ? distribution_1.ValidatorSlashEvent.toJSON(e) : undefined));\n }\n else {\n obj.slashes = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorSlashesResponse);\n message.slashes = ((_a = object.slashes) === null || _a === void 0 ? void 0 : _a.map((e) => distribution_1.ValidatorSlashEvent.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegationRewardsRequest = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.QueryDelegationRewardsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationRewardsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegationRewardsRequest);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegationRewardsRequest);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryDelegationRewardsResponse = {};\nexports.QueryDelegationRewardsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationRewardsResponse);\n message.rewards = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegationRewardsResponse);\n message.rewards = ((_a = object.rewards) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegationRewardsResponse);\n message.rewards = ((_a = object.rewards) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseQueryDelegationTotalRewardsRequest = { delegatorAddress: \"\" };\nexports.QueryDelegationTotalRewardsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegationTotalRewardsRequest);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsRequest);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDelegationTotalRewardsResponse = {};\nexports.QueryDelegationTotalRewardsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.rewards) {\n distribution_1.DelegationDelegatorReward.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.total) {\n coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsResponse);\n message.rewards = [];\n message.total = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rewards.push(distribution_1.DelegationDelegatorReward.decode(reader, reader.uint32()));\n break;\n case 2:\n message.total.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsResponse);\n message.rewards = ((_a = object.rewards) !== null && _a !== void 0 ? _a : []).map((e) => distribution_1.DelegationDelegatorReward.fromJSON(e));\n message.total = ((_b = object.total) !== null && _b !== void 0 ? _b : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.rewards) {\n obj.rewards = message.rewards.map((e) => (e ? distribution_1.DelegationDelegatorReward.toJSON(e) : undefined));\n }\n else {\n obj.rewards = [];\n }\n if (message.total) {\n obj.total = message.total.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.total = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegationTotalRewardsResponse);\n message.rewards = ((_a = object.rewards) === null || _a === void 0 ? void 0 : _a.map((e) => distribution_1.DelegationDelegatorReward.fromPartial(e))) || [];\n message.total = ((_b = object.total) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseQueryDelegatorValidatorsRequest = { delegatorAddress: \"\" };\nexports.QueryDelegatorValidatorsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDelegatorValidatorsResponse = { validators: \"\" };\nexports.QueryDelegatorValidatorsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => e);\n }\n else {\n obj.validators = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseQueryDelegatorWithdrawAddressRequest = { delegatorAddress: \"\" };\nexports.QueryDelegatorWithdrawAddressRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressRequest);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressRequest);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDelegatorWithdrawAddressResponse = { withdrawAddress: \"\" };\nexports.QueryDelegatorWithdrawAddressResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.withdrawAddress !== \"\") {\n writer.uint32(10).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressResponse);\n message.withdrawAddress =\n object.withdrawAddress !== undefined && object.withdrawAddress !== null\n ? String(object.withdrawAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorWithdrawAddressResponse);\n message.withdrawAddress = (_a = object.withdrawAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryCommunityPoolRequest = {};\nexports.QueryCommunityPoolRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCommunityPoolRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryCommunityPoolRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryCommunityPoolRequest);\n return message;\n },\n};\nconst baseQueryCommunityPoolResponse = {};\nexports.QueryCommunityPoolResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pool) {\n coin_1.DecCoin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCommunityPoolResponse);\n message.pool = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pool.push(coin_1.DecCoin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryCommunityPoolResponse);\n message.pool = ((_a = object.pool) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.DecCoin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pool) {\n obj.pool = message.pool.map((e) => (e ? coin_1.DecCoin.toJSON(e) : undefined));\n }\n else {\n obj.pool = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryCommunityPoolResponse);\n message.pool = ((_a = object.pool) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.DecCoin.fromPartial(e))) || [];\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.ValidatorOutstandingRewards = this.ValidatorOutstandingRewards.bind(this);\n this.ValidatorCommission = this.ValidatorCommission.bind(this);\n this.ValidatorSlashes = this.ValidatorSlashes.bind(this);\n this.DelegationRewards = this.DelegationRewards.bind(this);\n this.DelegationTotalRewards = this.DelegationTotalRewards.bind(this);\n this.DelegatorValidators = this.DelegatorValidators.bind(this);\n this.DelegatorWithdrawAddress = this.DelegatorWithdrawAddress.bind(this);\n this.CommunityPool = this.CommunityPool.bind(this);\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorOutstandingRewards(request) {\n const data = exports.QueryValidatorOutstandingRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorOutstandingRewards\", data);\n return promise.then((data) => exports.QueryValidatorOutstandingRewardsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorCommission(request) {\n const data = exports.QueryValidatorCommissionRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorCommission\", data);\n return promise.then((data) => exports.QueryValidatorCommissionResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorSlashes(request) {\n const data = exports.QueryValidatorSlashesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"ValidatorSlashes\", data);\n return promise.then((data) => exports.QueryValidatorSlashesResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegationRewards(request) {\n const data = exports.QueryDelegationRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegationRewards\", data);\n return promise.then((data) => exports.QueryDelegationRewardsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegationTotalRewards(request) {\n const data = exports.QueryDelegationTotalRewardsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegationTotalRewards\", data);\n return promise.then((data) => exports.QueryDelegationTotalRewardsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorValidators(request) {\n const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegatorValidators\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorWithdrawAddress(request) {\n const data = exports.QueryDelegatorWithdrawAddressRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"DelegatorWithdrawAddress\", data);\n return promise.then((data) => exports.QueryDelegatorWithdrawAddressResponse.decode(new minimal_1.default.Reader(data)));\n }\n CommunityPool(request) {\n const data = exports.QueryCommunityPoolRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Query\", \"CommunityPool\", data);\n return promise.then((data) => exports.QueryCommunityPoolResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgFundCommunityPoolResponse = exports.MsgFundCommunityPool = exports.MsgWithdrawValidatorCommissionResponse = exports.MsgWithdrawValidatorCommission = exports.MsgWithdrawDelegatorRewardResponse = exports.MsgWithdrawDelegatorReward = exports.MsgSetWithdrawAddressResponse = exports.MsgSetWithdrawAddress = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.distribution.v1beta1\";\nconst baseMsgSetWithdrawAddress = { delegatorAddress: \"\", withdrawAddress: \"\" };\nexports.MsgSetWithdrawAddress = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.withdrawAddress !== \"\") {\n writer.uint32(18).string(message.withdrawAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.withdrawAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.withdrawAddress =\n object.withdrawAddress !== undefined && object.withdrawAddress !== null\n ? String(object.withdrawAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgSetWithdrawAddress);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.withdrawAddress = (_b = object.withdrawAddress) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgSetWithdrawAddressResponse = {};\nexports.MsgSetWithdrawAddressResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSetWithdrawAddressResponse);\n return message;\n },\n};\nconst baseMsgWithdrawDelegatorReward = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgWithdrawDelegatorReward = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgWithdrawDelegatorReward);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgWithdrawDelegatorRewardResponse = {};\nexports.MsgWithdrawDelegatorRewardResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgWithdrawDelegatorRewardResponse);\n return message;\n },\n};\nconst baseMsgWithdrawValidatorCommission = { validatorAddress: \"\" };\nexports.MsgWithdrawValidatorCommission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddress !== \"\") {\n writer.uint32(10).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommission);\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseMsgWithdrawValidatorCommissionResponse = {};\nexports.MsgWithdrawValidatorCommissionResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgWithdrawValidatorCommissionResponse);\n return message;\n },\n};\nconst baseMsgFundCommunityPool = { depositor: \"\" };\nexports.MsgFundCommunityPool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgFundCommunityPool);\n message.amount = ((_a = object.amount) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.depositor = (_b = object.depositor) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgFundCommunityPoolResponse = {};\nexports.MsgFundCommunityPoolResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgFundCommunityPoolResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SetWithdrawAddress = this.SetWithdrawAddress.bind(this);\n this.WithdrawDelegatorReward = this.WithdrawDelegatorReward.bind(this);\n this.WithdrawValidatorCommission = this.WithdrawValidatorCommission.bind(this);\n this.FundCommunityPool = this.FundCommunityPool.bind(this);\n }\n SetWithdrawAddress(request) {\n const data = exports.MsgSetWithdrawAddress.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"SetWithdrawAddress\", data);\n return promise.then((data) => exports.MsgSetWithdrawAddressResponse.decode(new minimal_1.default.Reader(data)));\n }\n WithdrawDelegatorReward(request) {\n const data = exports.MsgWithdrawDelegatorReward.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawDelegatorReward\", data);\n return promise.then((data) => exports.MsgWithdrawDelegatorRewardResponse.decode(new minimal_1.default.Reader(data)));\n }\n WithdrawValidatorCommission(request) {\n const data = exports.MsgWithdrawValidatorCommission.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"WithdrawValidatorCommission\", data);\n return promise.then((data) => exports.MsgWithdrawValidatorCommissionResponse.decode(new minimal_1.default.Reader(data)));\n }\n FundCommunityPool(request) {\n const data = exports.MsgFundCommunityPool.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.distribution.v1beta1.Msg\", \"FundCommunityPool\", data);\n return promise.then((data) => exports.MsgFundCommunityPoolResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgRevokeAllowanceResponse = exports.MsgRevokeAllowance = exports.MsgGrantAllowanceResponse = exports.MsgGrantAllowance = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmos.feegrant.v1beta1\";\nconst baseMsgGrantAllowance = { granter: \"\", grantee: \"\" };\nexports.MsgGrantAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n if (message.allowance !== undefined) {\n any_1.Any.encode(message.allowance, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantAllowance);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n case 3:\n message.allowance = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgGrantAllowance);\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n message.allowance =\n object.allowance !== undefined && object.allowance !== null\n ? any_1.Any.fromJSON(object.allowance)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n message.allowance !== undefined &&\n (obj.allowance = message.allowance ? any_1.Any.toJSON(message.allowance) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgGrantAllowance);\n message.granter = (_a = object.granter) !== null && _a !== void 0 ? _a : \"\";\n message.grantee = (_b = object.grantee) !== null && _b !== void 0 ? _b : \"\";\n message.allowance =\n object.allowance !== undefined && object.allowance !== null\n ? any_1.Any.fromPartial(object.allowance)\n : undefined;\n return message;\n },\n};\nconst baseMsgGrantAllowanceResponse = {};\nexports.MsgGrantAllowanceResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgGrantAllowanceResponse);\n return message;\n },\n};\nconst baseMsgRevokeAllowance = { granter: \"\", grantee: \"\" };\nexports.MsgRevokeAllowance = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.granter !== \"\") {\n writer.uint32(10).string(message.granter);\n }\n if (message.grantee !== \"\") {\n writer.uint32(18).string(message.grantee);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeAllowance);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.granter = reader.string();\n break;\n case 2:\n message.grantee = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRevokeAllowance);\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n message.grantee = object.grantee !== undefined && object.grantee !== null ? String(object.grantee) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.granter !== undefined && (obj.granter = message.granter);\n message.grantee !== undefined && (obj.grantee = message.grantee);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgRevokeAllowance);\n message.granter = (_a = object.granter) !== null && _a !== void 0 ? _a : \"\";\n message.grantee = (_b = object.grantee) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgRevokeAllowanceResponse = {};\nexports.MsgRevokeAllowanceResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRevokeAllowanceResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.GrantAllowance = this.GrantAllowance.bind(this);\n this.RevokeAllowance = this.RevokeAllowance.bind(this);\n }\n GrantAllowance(request) {\n const data = exports.MsgGrantAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"GrantAllowance\", data);\n return promise.then((data) => exports.MsgGrantAllowanceResponse.decode(new minimal_1.default.Reader(data)));\n }\n RevokeAllowance(request) {\n const data = exports.MsgRevokeAllowance.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.feegrant.v1beta1.Msg\", \"RevokeAllowance\", data);\n return promise.then((data) => exports.MsgRevokeAllowanceResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TallyParams = exports.VotingParams = exports.DepositParams = exports.Vote = exports.TallyResult = exports.Proposal = exports.Deposit = exports.TextProposal = exports.WeightedVoteOption = exports.proposalStatusToJSON = exports.proposalStatusFromJSON = exports.ProposalStatus = exports.voteOptionToJSON = exports.voteOptionFromJSON = exports.VoteOption = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\n/** VoteOption enumerates the valid vote options for a given governance proposal. */\nvar VoteOption;\n(function (VoteOption) {\n /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_UNSPECIFIED\"] = 0] = \"VOTE_OPTION_UNSPECIFIED\";\n /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_YES\"] = 1] = \"VOTE_OPTION_YES\";\n /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_ABSTAIN\"] = 2] = \"VOTE_OPTION_ABSTAIN\";\n /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO\"] = 3] = \"VOTE_OPTION_NO\";\n /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */\n VoteOption[VoteOption[\"VOTE_OPTION_NO_WITH_VETO\"] = 4] = \"VOTE_OPTION_NO_WITH_VETO\";\n VoteOption[VoteOption[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(VoteOption = exports.VoteOption || (exports.VoteOption = {}));\nfunction voteOptionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VOTE_OPTION_UNSPECIFIED\":\n return VoteOption.VOTE_OPTION_UNSPECIFIED;\n case 1:\n case \"VOTE_OPTION_YES\":\n return VoteOption.VOTE_OPTION_YES;\n case 2:\n case \"VOTE_OPTION_ABSTAIN\":\n return VoteOption.VOTE_OPTION_ABSTAIN;\n case 3:\n case \"VOTE_OPTION_NO\":\n return VoteOption.VOTE_OPTION_NO;\n case 4:\n case \"VOTE_OPTION_NO_WITH_VETO\":\n return VoteOption.VOTE_OPTION_NO_WITH_VETO;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return VoteOption.UNRECOGNIZED;\n }\n}\nexports.voteOptionFromJSON = voteOptionFromJSON;\nfunction voteOptionToJSON(object) {\n switch (object) {\n case VoteOption.VOTE_OPTION_UNSPECIFIED:\n return \"VOTE_OPTION_UNSPECIFIED\";\n case VoteOption.VOTE_OPTION_YES:\n return \"VOTE_OPTION_YES\";\n case VoteOption.VOTE_OPTION_ABSTAIN:\n return \"VOTE_OPTION_ABSTAIN\";\n case VoteOption.VOTE_OPTION_NO:\n return \"VOTE_OPTION_NO\";\n case VoteOption.VOTE_OPTION_NO_WITH_VETO:\n return \"VOTE_OPTION_NO_WITH_VETO\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.voteOptionToJSON = voteOptionToJSON;\n/** ProposalStatus enumerates the valid statuses of a proposal. */\nvar ProposalStatus;\n(function (ProposalStatus) {\n /** PROPOSAL_STATUS_UNSPECIFIED - PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_UNSPECIFIED\"] = 0] = \"PROPOSAL_STATUS_UNSPECIFIED\";\n /**\n * PROPOSAL_STATUS_DEPOSIT_PERIOD - PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_DEPOSIT_PERIOD\"] = 1] = \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n /**\n * PROPOSAL_STATUS_VOTING_PERIOD - PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting\n * period.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_VOTING_PERIOD\"] = 2] = \"PROPOSAL_STATUS_VOTING_PERIOD\";\n /**\n * PROPOSAL_STATUS_PASSED - PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has\n * passed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_PASSED\"] = 3] = \"PROPOSAL_STATUS_PASSED\";\n /**\n * PROPOSAL_STATUS_REJECTED - PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has\n * been rejected.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_REJECTED\"] = 4] = \"PROPOSAL_STATUS_REJECTED\";\n /**\n * PROPOSAL_STATUS_FAILED - PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has\n * failed.\n */\n ProposalStatus[ProposalStatus[\"PROPOSAL_STATUS_FAILED\"] = 5] = \"PROPOSAL_STATUS_FAILED\";\n ProposalStatus[ProposalStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProposalStatus = exports.ProposalStatus || (exports.ProposalStatus = {}));\nfunction proposalStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"PROPOSAL_STATUS_UNSPECIFIED\":\n return ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED;\n case 1:\n case \"PROPOSAL_STATUS_DEPOSIT_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD;\n case 2:\n case \"PROPOSAL_STATUS_VOTING_PERIOD\":\n return ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD;\n case 3:\n case \"PROPOSAL_STATUS_PASSED\":\n return ProposalStatus.PROPOSAL_STATUS_PASSED;\n case 4:\n case \"PROPOSAL_STATUS_REJECTED\":\n return ProposalStatus.PROPOSAL_STATUS_REJECTED;\n case 5:\n case \"PROPOSAL_STATUS_FAILED\":\n return ProposalStatus.PROPOSAL_STATUS_FAILED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProposalStatus.UNRECOGNIZED;\n }\n}\nexports.proposalStatusFromJSON = proposalStatusFromJSON;\nfunction proposalStatusToJSON(object) {\n switch (object) {\n case ProposalStatus.PROPOSAL_STATUS_UNSPECIFIED:\n return \"PROPOSAL_STATUS_UNSPECIFIED\";\n case ProposalStatus.PROPOSAL_STATUS_DEPOSIT_PERIOD:\n return \"PROPOSAL_STATUS_DEPOSIT_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_VOTING_PERIOD:\n return \"PROPOSAL_STATUS_VOTING_PERIOD\";\n case ProposalStatus.PROPOSAL_STATUS_PASSED:\n return \"PROPOSAL_STATUS_PASSED\";\n case ProposalStatus.PROPOSAL_STATUS_REJECTED:\n return \"PROPOSAL_STATUS_REJECTED\";\n case ProposalStatus.PROPOSAL_STATUS_FAILED:\n return \"PROPOSAL_STATUS_FAILED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.proposalStatusToJSON = proposalStatusToJSON;\nconst baseWeightedVoteOption = { option: 0, weight: \"\" };\nexports.WeightedVoteOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.option !== 0) {\n writer.uint32(8).int32(message.option);\n }\n if (message.weight !== \"\") {\n writer.uint32(18).string(message.weight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseWeightedVoteOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.option = reader.int32();\n break;\n case 2:\n message.weight = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseWeightedVoteOption);\n message.option =\n object.option !== undefined && object.option !== null ? voteOptionFromJSON(object.option) : 0;\n message.weight = object.weight !== undefined && object.weight !== null ? String(object.weight) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n message.weight !== undefined && (obj.weight = message.weight);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseWeightedVoteOption);\n message.option = (_a = object.option) !== null && _a !== void 0 ? _a : 0;\n message.weight = (_b = object.weight) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseTextProposal = { title: \"\", description: \"\" };\nexports.TextProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTextProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTextProposal);\n message.title = object.title !== undefined && object.title !== null ? String(object.title) : \"\";\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseTextProposal);\n message.title = (_a = object.title) !== null && _a !== void 0 ? _a : \"\";\n message.description = (_b = object.description) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseDeposit = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.Deposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDeposit);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDeposit);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDeposit);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.depositor = (_a = object.depositor) !== null && _a !== void 0 ? _a : \"\";\n message.amount = ((_b = object.amount) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseProposal = { proposalId: long_1.default.UZERO, status: 0 };\nexports.Proposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(18).fork()).ldelim();\n }\n if (message.status !== 0) {\n writer.uint32(24).int32(message.status);\n }\n if (message.finalTallyResult !== undefined) {\n exports.TallyResult.encode(message.finalTallyResult, writer.uint32(34).fork()).ldelim();\n }\n if (message.submitTime !== undefined) {\n timestamp_1.Timestamp.encode(message.submitTime, writer.uint32(42).fork()).ldelim();\n }\n if (message.depositEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.depositEndTime, writer.uint32(50).fork()).ldelim();\n }\n for (const v of message.totalDeposit) {\n coin_1.Coin.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.votingStartTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingStartTime, writer.uint32(66).fork()).ldelim();\n }\n if (message.votingEndTime !== undefined) {\n timestamp_1.Timestamp.encode(message.votingEndTime, writer.uint32(74).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProposal);\n message.totalDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.status = reader.int32();\n break;\n case 4:\n message.finalTallyResult = exports.TallyResult.decode(reader, reader.uint32());\n break;\n case 5:\n message.submitTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.depositEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.totalDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 8:\n message.votingStartTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 9:\n message.votingEndTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseProposal);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.content =\n object.content !== undefined && object.content !== null ? any_1.Any.fromJSON(object.content) : undefined;\n message.status =\n object.status !== undefined && object.status !== null ? proposalStatusFromJSON(object.status) : 0;\n message.finalTallyResult =\n object.finalTallyResult !== undefined && object.finalTallyResult !== null\n ? exports.TallyResult.fromJSON(object.finalTallyResult)\n : undefined;\n message.submitTime =\n object.submitTime !== undefined && object.submitTime !== null\n ? fromJsonTimestamp(object.submitTime)\n : undefined;\n message.depositEndTime =\n object.depositEndTime !== undefined && object.depositEndTime !== null\n ? fromJsonTimestamp(object.depositEndTime)\n : undefined;\n message.totalDeposit = ((_a = object.totalDeposit) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.votingStartTime =\n object.votingStartTime !== undefined && object.votingStartTime !== null\n ? fromJsonTimestamp(object.votingStartTime)\n : undefined;\n message.votingEndTime =\n object.votingEndTime !== undefined && object.votingEndTime !== null\n ? fromJsonTimestamp(object.votingEndTime)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n message.status !== undefined && (obj.status = proposalStatusToJSON(message.status));\n message.finalTallyResult !== undefined &&\n (obj.finalTallyResult = message.finalTallyResult\n ? exports.TallyResult.toJSON(message.finalTallyResult)\n : undefined);\n message.submitTime !== undefined && (obj.submitTime = fromTimestamp(message.submitTime).toISOString());\n message.depositEndTime !== undefined &&\n (obj.depositEndTime = fromTimestamp(message.depositEndTime).toISOString());\n if (message.totalDeposit) {\n obj.totalDeposit = message.totalDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.totalDeposit = [];\n }\n message.votingStartTime !== undefined &&\n (obj.votingStartTime = fromTimestamp(message.votingStartTime).toISOString());\n message.votingEndTime !== undefined &&\n (obj.votingEndTime = fromTimestamp(message.votingEndTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseProposal);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.content =\n object.content !== undefined && object.content !== null ? any_1.Any.fromPartial(object.content) : undefined;\n message.status = (_a = object.status) !== null && _a !== void 0 ? _a : 0;\n message.finalTallyResult =\n object.finalTallyResult !== undefined && object.finalTallyResult !== null\n ? exports.TallyResult.fromPartial(object.finalTallyResult)\n : undefined;\n message.submitTime =\n object.submitTime !== undefined && object.submitTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.submitTime)\n : undefined;\n message.depositEndTime =\n object.depositEndTime !== undefined && object.depositEndTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.depositEndTime)\n : undefined;\n message.totalDeposit = ((_b = object.totalDeposit) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.votingStartTime =\n object.votingStartTime !== undefined && object.votingStartTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.votingStartTime)\n : undefined;\n message.votingEndTime =\n object.votingEndTime !== undefined && object.votingEndTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.votingEndTime)\n : undefined;\n return message;\n },\n};\nconst baseTallyResult = { yes: \"\", abstain: \"\", no: \"\", noWithVeto: \"\" };\nexports.TallyResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.yes !== \"\") {\n writer.uint32(10).string(message.yes);\n }\n if (message.abstain !== \"\") {\n writer.uint32(18).string(message.abstain);\n }\n if (message.no !== \"\") {\n writer.uint32(26).string(message.no);\n }\n if (message.noWithVeto !== \"\") {\n writer.uint32(34).string(message.noWithVeto);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTallyResult);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.yes = reader.string();\n break;\n case 2:\n message.abstain = reader.string();\n break;\n case 3:\n message.no = reader.string();\n break;\n case 4:\n message.noWithVeto = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTallyResult);\n message.yes = object.yes !== undefined && object.yes !== null ? String(object.yes) : \"\";\n message.abstain = object.abstain !== undefined && object.abstain !== null ? String(object.abstain) : \"\";\n message.no = object.no !== undefined && object.no !== null ? String(object.no) : \"\";\n message.noWithVeto =\n object.noWithVeto !== undefined && object.noWithVeto !== null ? String(object.noWithVeto) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.yes !== undefined && (obj.yes = message.yes);\n message.abstain !== undefined && (obj.abstain = message.abstain);\n message.no !== undefined && (obj.no = message.no);\n message.noWithVeto !== undefined && (obj.noWithVeto = message.noWithVeto);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseTallyResult);\n message.yes = (_a = object.yes) !== null && _a !== void 0 ? _a : \"\";\n message.abstain = (_b = object.abstain) !== null && _b !== void 0 ? _b : \"\";\n message.no = (_c = object.no) !== null && _c !== void 0 ? _c : \"\";\n message.noWithVeto = (_d = object.noWithVeto) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseVote = { proposalId: long_1.default.UZERO, voter: \"\", option: 0 };\nexports.Vote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n for (const v of message.options) {\n exports.WeightedVoteOption.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVote);\n message.options = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n case 4:\n message.options.push(exports.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseVote);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n message.option =\n object.option !== undefined && object.option !== null ? voteOptionFromJSON(object.option) : 0;\n message.options = ((_a = object.options) !== null && _a !== void 0 ? _a : []).map((e) => exports.WeightedVoteOption.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = voteOptionToJSON(message.option));\n if (message.options) {\n obj.options = message.options.map((e) => (e ? exports.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseVote);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : \"\";\n message.option = (_b = object.option) !== null && _b !== void 0 ? _b : 0;\n message.options = ((_c = object.options) === null || _c === void 0 ? void 0 : _c.map((e) => exports.WeightedVoteOption.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDepositParams = {};\nexports.DepositParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.minDeposit) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxDepositPeriod !== undefined) {\n duration_1.Duration.encode(message.maxDepositPeriod, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.minDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.maxDepositPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = ((_a = object.minDeposit) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.maxDepositPeriod =\n object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null\n ? duration_1.Duration.fromJSON(object.maxDepositPeriod)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.minDeposit) {\n obj.minDeposit = message.minDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.minDeposit = [];\n }\n message.maxDepositPeriod !== undefined &&\n (obj.maxDepositPeriod = message.maxDepositPeriod\n ? duration_1.Duration.toJSON(message.maxDepositPeriod)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDepositParams);\n message.minDeposit = ((_a = object.minDeposit) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.maxDepositPeriod =\n object.maxDepositPeriod !== undefined && object.maxDepositPeriod !== null\n ? duration_1.Duration.fromPartial(object.maxDepositPeriod)\n : undefined;\n return message;\n },\n};\nconst baseVotingParams = {};\nexports.VotingParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.votingPeriod !== undefined) {\n duration_1.Duration.encode(message.votingPeriod, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVotingParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVotingParams);\n message.votingPeriod =\n object.votingPeriod !== undefined && object.votingPeriod !== null\n ? duration_1.Duration.fromJSON(object.votingPeriod)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.votingPeriod !== undefined &&\n (obj.votingPeriod = message.votingPeriod ? duration_1.Duration.toJSON(message.votingPeriod) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVotingParams);\n message.votingPeriod =\n object.votingPeriod !== undefined && object.votingPeriod !== null\n ? duration_1.Duration.fromPartial(object.votingPeriod)\n : undefined;\n return message;\n },\n};\nconst baseTallyParams = {};\nexports.TallyParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.quorum.length !== 0) {\n writer.uint32(10).bytes(message.quorum);\n }\n if (message.threshold.length !== 0) {\n writer.uint32(18).bytes(message.threshold);\n }\n if (message.vetoThreshold.length !== 0) {\n writer.uint32(26).bytes(message.vetoThreshold);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTallyParams);\n message.quorum = new Uint8Array();\n message.threshold = new Uint8Array();\n message.vetoThreshold = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.quorum = reader.bytes();\n break;\n case 2:\n message.threshold = reader.bytes();\n break;\n case 3:\n message.vetoThreshold = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTallyParams);\n message.quorum =\n object.quorum !== undefined && object.quorum !== null\n ? bytesFromBase64(object.quorum)\n : new Uint8Array();\n message.threshold =\n object.threshold !== undefined && object.threshold !== null\n ? bytesFromBase64(object.threshold)\n : new Uint8Array();\n message.vetoThreshold =\n object.vetoThreshold !== undefined && object.vetoThreshold !== null\n ? bytesFromBase64(object.vetoThreshold)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.quorum !== undefined &&\n (obj.quorum = base64FromBytes(message.quorum !== undefined ? message.quorum : new Uint8Array()));\n message.threshold !== undefined &&\n (obj.threshold = base64FromBytes(message.threshold !== undefined ? message.threshold : new Uint8Array()));\n message.vetoThreshold !== undefined &&\n (obj.vetoThreshold = base64FromBytes(message.vetoThreshold !== undefined ? message.vetoThreshold : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseTallyParams);\n message.quorum = (_a = object.quorum) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.threshold = (_b = object.threshold) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.vetoThreshold = (_c = object.vetoThreshold) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=gov.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryTallyResultResponse = exports.QueryTallyResultRequest = exports.QueryDepositsResponse = exports.QueryDepositsRequest = exports.QueryDepositResponse = exports.QueryDepositRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryVotesResponse = exports.QueryVotesRequest = exports.QueryVoteResponse = exports.QueryVoteRequest = exports.QueryProposalsResponse = exports.QueryProposalsRequest = exports.QueryProposalResponse = exports.QueryProposalRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst gov_1 = require(\"../../../cosmos/gov/v1beta1/gov\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nconst baseQueryProposalRequest = { proposalId: long_1.default.UZERO };\nexports.QueryProposalRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryProposalRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryProposalRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryProposalRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryProposalResponse = {};\nexports.QueryProposalResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.proposal !== undefined) {\n gov_1.Proposal.encode(message.proposal, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryProposalResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposal = gov_1.Proposal.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryProposalResponse);\n message.proposal =\n object.proposal !== undefined && object.proposal !== null\n ? gov_1.Proposal.fromJSON(object.proposal)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposal !== undefined &&\n (obj.proposal = message.proposal ? gov_1.Proposal.toJSON(message.proposal) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryProposalResponse);\n message.proposal =\n object.proposal !== undefined && object.proposal !== null\n ? gov_1.Proposal.fromPartial(object.proposal)\n : undefined;\n return message;\n },\n};\nconst baseQueryProposalsRequest = { proposalStatus: 0, voter: \"\", depositor: \"\" };\nexports.QueryProposalsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.proposalStatus !== 0) {\n writer.uint32(8).int32(message.proposalStatus);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.depositor !== \"\") {\n writer.uint32(26).string(message.depositor);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryProposalsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalStatus = reader.int32();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.depositor = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryProposalsRequest);\n message.proposalStatus =\n object.proposalStatus !== undefined && object.proposalStatus !== null\n ? gov_1.proposalStatusFromJSON(object.proposalStatus)\n : 0;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalStatus !== undefined &&\n (obj.proposalStatus = gov_1.proposalStatusToJSON(message.proposalStatus));\n message.voter !== undefined && (obj.voter = message.voter);\n message.depositor !== undefined && (obj.depositor = message.depositor);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseQueryProposalsRequest);\n message.proposalStatus = (_a = object.proposalStatus) !== null && _a !== void 0 ? _a : 0;\n message.voter = (_b = object.voter) !== null && _b !== void 0 ? _b : \"\";\n message.depositor = (_c = object.depositor) !== null && _c !== void 0 ? _c : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryProposalsResponse = {};\nexports.QueryProposalsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.proposals) {\n gov_1.Proposal.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryProposalsResponse);\n message.proposals = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposals.push(gov_1.Proposal.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryProposalsResponse);\n message.proposals = ((_a = object.proposals) !== null && _a !== void 0 ? _a : []).map((e) => gov_1.Proposal.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.proposals) {\n obj.proposals = message.proposals.map((e) => (e ? gov_1.Proposal.toJSON(e) : undefined));\n }\n else {\n obj.proposals = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryProposalsResponse);\n message.proposals = ((_a = object.proposals) === null || _a === void 0 ? void 0 : _a.map((e) => gov_1.Proposal.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryVoteRequest = { proposalId: long_1.default.UZERO, voter: \"\" };\nexports.QueryVoteRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryVoteRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryVoteRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryVoteRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryVoteResponse = {};\nexports.QueryVoteResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.vote !== undefined) {\n gov_1.Vote.encode(message.vote, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryVoteResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.vote = gov_1.Vote.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryVoteResponse);\n message.vote = object.vote !== undefined && object.vote !== null ? gov_1.Vote.fromJSON(object.vote) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.vote !== undefined && (obj.vote = message.vote ? gov_1.Vote.toJSON(message.vote) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryVoteResponse);\n message.vote =\n object.vote !== undefined && object.vote !== null ? gov_1.Vote.fromPartial(object.vote) : undefined;\n return message;\n },\n};\nconst baseQueryVotesRequest = { proposalId: long_1.default.UZERO };\nexports.QueryVotesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryVotesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryVotesRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryVotesRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryVotesResponse = {};\nexports.QueryVotesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.votes) {\n gov_1.Vote.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryVotesResponse);\n message.votes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votes.push(gov_1.Vote.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryVotesResponse);\n message.votes = ((_a = object.votes) !== null && _a !== void 0 ? _a : []).map((e) => gov_1.Vote.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? gov_1.Vote.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryVotesResponse);\n message.votes = ((_a = object.votes) === null || _a === void 0 ? void 0 : _a.map((e) => gov_1.Vote.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = { paramsType: \"\" };\nexports.QueryParamsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.paramsType !== \"\") {\n writer.uint32(10).string(message.paramsType);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paramsType = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsRequest);\n message.paramsType =\n object.paramsType !== undefined && object.paramsType !== null ? String(object.paramsType) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.paramsType !== undefined && (obj.paramsType = message.paramsType);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryParamsRequest);\n message.paramsType = (_a = object.paramsType) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.votingParams !== undefined) {\n gov_1.VotingParams.encode(message.votingParams, writer.uint32(10).fork()).ldelim();\n }\n if (message.depositParams !== undefined) {\n gov_1.DepositParams.encode(message.depositParams, writer.uint32(18).fork()).ldelim();\n }\n if (message.tallyParams !== undefined) {\n gov_1.TallyParams.encode(message.tallyParams, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.votingParams = gov_1.VotingParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.depositParams = gov_1.DepositParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.tallyParams = gov_1.TallyParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.votingParams =\n object.votingParams !== undefined && object.votingParams !== null\n ? gov_1.VotingParams.fromJSON(object.votingParams)\n : undefined;\n message.depositParams =\n object.depositParams !== undefined && object.depositParams !== null\n ? gov_1.DepositParams.fromJSON(object.depositParams)\n : undefined;\n message.tallyParams =\n object.tallyParams !== undefined && object.tallyParams !== null\n ? gov_1.TallyParams.fromJSON(object.tallyParams)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.votingParams !== undefined &&\n (obj.votingParams = message.votingParams ? gov_1.VotingParams.toJSON(message.votingParams) : undefined);\n message.depositParams !== undefined &&\n (obj.depositParams = message.depositParams ? gov_1.DepositParams.toJSON(message.depositParams) : undefined);\n message.tallyParams !== undefined &&\n (obj.tallyParams = message.tallyParams ? gov_1.TallyParams.toJSON(message.tallyParams) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.votingParams =\n object.votingParams !== undefined && object.votingParams !== null\n ? gov_1.VotingParams.fromPartial(object.votingParams)\n : undefined;\n message.depositParams =\n object.depositParams !== undefined && object.depositParams !== null\n ? gov_1.DepositParams.fromPartial(object.depositParams)\n : undefined;\n message.tallyParams =\n object.tallyParams !== undefined && object.tallyParams !== null\n ? gov_1.TallyParams.fromPartial(object.tallyParams)\n : undefined;\n return message;\n },\n};\nconst baseQueryDepositRequest = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.QueryDepositRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDepositRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDepositRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDepositRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.depositor = (_a = object.depositor) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDepositResponse = {};\nexports.QueryDepositResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.deposit !== undefined) {\n gov_1.Deposit.encode(message.deposit, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDepositResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.deposit = gov_1.Deposit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDepositResponse);\n message.deposit =\n object.deposit !== undefined && object.deposit !== null ? gov_1.Deposit.fromJSON(object.deposit) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.deposit !== undefined &&\n (obj.deposit = message.deposit ? gov_1.Deposit.toJSON(message.deposit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDepositResponse);\n message.deposit =\n object.deposit !== undefined && object.deposit !== null\n ? gov_1.Deposit.fromPartial(object.deposit)\n : undefined;\n return message;\n },\n};\nconst baseQueryDepositsRequest = { proposalId: long_1.default.UZERO };\nexports.QueryDepositsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDepositsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDepositsRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDepositsRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDepositsResponse = {};\nexports.QueryDepositsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.deposits) {\n gov_1.Deposit.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDepositsResponse);\n message.deposits = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.deposits.push(gov_1.Deposit.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDepositsResponse);\n message.deposits = ((_a = object.deposits) !== null && _a !== void 0 ? _a : []).map((e) => gov_1.Deposit.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.deposits) {\n obj.deposits = message.deposits.map((e) => (e ? gov_1.Deposit.toJSON(e) : undefined));\n }\n else {\n obj.deposits = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDepositsResponse);\n message.deposits = ((_a = object.deposits) === null || _a === void 0 ? void 0 : _a.map((e) => gov_1.Deposit.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryTallyResultRequest = { proposalId: long_1.default.UZERO };\nexports.QueryTallyResultRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryTallyResultRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryTallyResultRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryTallyResultRequest);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryTallyResultResponse = {};\nexports.QueryTallyResultResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tally !== undefined) {\n gov_1.TallyResult.encode(message.tally, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryTallyResultResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tally = gov_1.TallyResult.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryTallyResultResponse);\n message.tally =\n object.tally !== undefined && object.tally !== null ? gov_1.TallyResult.fromJSON(object.tally) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tally !== undefined &&\n (obj.tally = message.tally ? gov_1.TallyResult.toJSON(message.tally) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryTallyResultResponse);\n message.tally =\n object.tally !== undefined && object.tally !== null ? gov_1.TallyResult.fromPartial(object.tally) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Proposal = this.Proposal.bind(this);\n this.Proposals = this.Proposals.bind(this);\n this.Vote = this.Vote.bind(this);\n this.Votes = this.Votes.bind(this);\n this.Params = this.Params.bind(this);\n this.Deposit = this.Deposit.bind(this);\n this.Deposits = this.Deposits.bind(this);\n this.TallyResult = this.TallyResult.bind(this);\n }\n Proposal(request) {\n const data = exports.QueryProposalRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Proposal\", data);\n return promise.then((data) => exports.QueryProposalResponse.decode(new minimal_1.default.Reader(data)));\n }\n Proposals(request) {\n const data = exports.QueryProposalsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Proposals\", data);\n return promise.then((data) => exports.QueryProposalsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Vote(request) {\n const data = exports.QueryVoteRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Vote\", data);\n return promise.then((data) => exports.QueryVoteResponse.decode(new minimal_1.default.Reader(data)));\n }\n Votes(request) {\n const data = exports.QueryVotesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Votes\", data);\n return promise.then((data) => exports.QueryVotesResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Deposit(request) {\n const data = exports.QueryDepositRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Deposit\", data);\n return promise.then((data) => exports.QueryDepositResponse.decode(new minimal_1.default.Reader(data)));\n }\n Deposits(request) {\n const data = exports.QueryDepositsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"Deposits\", data);\n return promise.then((data) => exports.QueryDepositsResponse.decode(new minimal_1.default.Reader(data)));\n }\n TallyResult(request) {\n const data = exports.QueryTallyResultRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Query\", \"TallyResult\", data);\n return promise.then((data) => exports.QueryTallyResultResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgDepositResponse = exports.MsgDeposit = exports.MsgVoteWeightedResponse = exports.MsgVoteWeighted = exports.MsgVoteResponse = exports.MsgVote = exports.MsgSubmitProposalResponse = exports.MsgSubmitProposal = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst gov_1 = require(\"../../../cosmos/gov/v1beta1/gov\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.gov.v1beta1\";\nconst baseMsgSubmitProposal = { proposer: \"\" };\nexports.MsgSubmitProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.content !== undefined) {\n any_1.Any.encode(message.content, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.initialDeposit) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.proposer !== \"\") {\n writer.uint32(26).string(message.proposer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.initialDeposit = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.content = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.initialDeposit.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.proposer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.content =\n object.content !== undefined && object.content !== null ? any_1.Any.fromJSON(object.content) : undefined;\n message.initialDeposit = ((_a = object.initialDeposit) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.proposer =\n object.proposer !== undefined && object.proposer !== null ? String(object.proposer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.content !== undefined &&\n (obj.content = message.content ? any_1.Any.toJSON(message.content) : undefined);\n if (message.initialDeposit) {\n obj.initialDeposit = message.initialDeposit.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.initialDeposit = [];\n }\n message.proposer !== undefined && (obj.proposer = message.proposer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgSubmitProposal);\n message.content =\n object.content !== undefined && object.content !== null ? any_1.Any.fromPartial(object.content) : undefined;\n message.initialDeposit = ((_a = object.initialDeposit) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.proposer = (_b = object.proposer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgSubmitProposalResponse = { proposalId: long_1.default.UZERO };\nexports.MsgSubmitProposalResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgSubmitProposalResponse);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseMsgVote = { proposalId: long_1.default.UZERO, voter: \"\", option: 0 };\nexports.MsgVote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n if (message.option !== 0) {\n writer.uint32(24).int32(message.option);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVote);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.option = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgVote);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n message.option =\n object.option !== undefined && object.option !== null ? gov_1.voteOptionFromJSON(object.option) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n message.option !== undefined && (obj.option = gov_1.voteOptionToJSON(message.option));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgVote);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : \"\";\n message.option = (_b = object.option) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseMsgVoteResponse = {};\nexports.MsgVoteResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgVoteResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgVoteResponse);\n return message;\n },\n};\nconst baseMsgVoteWeighted = { proposalId: long_1.default.UZERO, voter: \"\" };\nexports.MsgVoteWeighted = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.voter !== \"\") {\n writer.uint32(18).string(message.voter);\n }\n for (const v of message.options) {\n gov_1.WeightedVoteOption.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.options = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.voter = reader.string();\n break;\n case 3:\n message.options.push(gov_1.WeightedVoteOption.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.voter = object.voter !== undefined && object.voter !== null ? String(object.voter) : \"\";\n message.options = ((_a = object.options) !== null && _a !== void 0 ? _a : []).map((e) => gov_1.WeightedVoteOption.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.voter !== undefined && (obj.voter = message.voter);\n if (message.options) {\n obj.options = message.options.map((e) => (e ? gov_1.WeightedVoteOption.toJSON(e) : undefined));\n }\n else {\n obj.options = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgVoteWeighted);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.voter = (_a = object.voter) !== null && _a !== void 0 ? _a : \"\";\n message.options = ((_b = object.options) === null || _b === void 0 ? void 0 : _b.map((e) => gov_1.WeightedVoteOption.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgVoteWeightedResponse = {};\nexports.MsgVoteWeightedResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgVoteWeightedResponse);\n return message;\n },\n};\nconst baseMsgDeposit = { proposalId: long_1.default.UZERO, depositor: \"\" };\nexports.MsgDeposit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.proposalId.isZero()) {\n writer.uint32(8).uint64(message.proposalId);\n }\n if (message.depositor !== \"\") {\n writer.uint32(18).string(message.depositor);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDeposit);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proposalId = reader.uint64();\n break;\n case 2:\n message.depositor = reader.string();\n break;\n case 3:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgDeposit);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromString(object.proposalId)\n : long_1.default.UZERO;\n message.depositor =\n object.depositor !== undefined && object.depositor !== null ? String(object.depositor) : \"\";\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.proposalId !== undefined && (obj.proposalId = (message.proposalId || long_1.default.UZERO).toString());\n message.depositor !== undefined && (obj.depositor = message.depositor);\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgDeposit);\n message.proposalId =\n object.proposalId !== undefined && object.proposalId !== null\n ? long_1.default.fromValue(object.proposalId)\n : long_1.default.UZERO;\n message.depositor = (_a = object.depositor) !== null && _a !== void 0 ? _a : \"\";\n message.amount = ((_b = object.amount) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgDepositResponse = {};\nexports.MsgDepositResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDepositResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgDepositResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgDepositResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.SubmitProposal = this.SubmitProposal.bind(this);\n this.Vote = this.Vote.bind(this);\n this.VoteWeighted = this.VoteWeighted.bind(this);\n this.Deposit = this.Deposit.bind(this);\n }\n SubmitProposal(request) {\n const data = exports.MsgSubmitProposal.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"SubmitProposal\", data);\n return promise.then((data) => exports.MsgSubmitProposalResponse.decode(new minimal_1.default.Reader(data)));\n }\n Vote(request) {\n const data = exports.MsgVote.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Vote\", data);\n return promise.then((data) => exports.MsgVoteResponse.decode(new minimal_1.default.Reader(data)));\n }\n VoteWeighted(request) {\n const data = exports.MsgVoteWeighted.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"VoteWeighted\", data);\n return promise.then((data) => exports.MsgVoteWeightedResponse.decode(new minimal_1.default.Reader(data)));\n }\n Deposit(request) {\n const data = exports.MsgDeposit.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.gov.v1beta1.Msg\", \"Deposit\", data);\n return promise.then((data) => exports.MsgDepositResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Minter = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"cosmos.mint.v1beta1\";\nconst baseMinter = { inflation: \"\", annualProvisions: \"\" };\nexports.Minter = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.inflation !== \"\") {\n writer.uint32(10).string(message.inflation);\n }\n if (message.annualProvisions !== \"\") {\n writer.uint32(18).string(message.annualProvisions);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMinter);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inflation = reader.string();\n break;\n case 2:\n message.annualProvisions = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMinter);\n message.inflation =\n object.inflation !== undefined && object.inflation !== null ? String(object.inflation) : \"\";\n message.annualProvisions =\n object.annualProvisions !== undefined && object.annualProvisions !== null\n ? String(object.annualProvisions)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.inflation !== undefined && (obj.inflation = message.inflation);\n message.annualProvisions !== undefined && (obj.annualProvisions = message.annualProvisions);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMinter);\n message.inflation = (_a = object.inflation) !== null && _a !== void 0 ? _a : \"\";\n message.annualProvisions = (_b = object.annualProvisions) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseParams = {\n mintDenom: \"\",\n inflationRateChange: \"\",\n inflationMax: \"\",\n inflationMin: \"\",\n goalBonded: \"\",\n blocksPerYear: long_1.default.UZERO,\n};\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mintDenom !== \"\") {\n writer.uint32(10).string(message.mintDenom);\n }\n if (message.inflationRateChange !== \"\") {\n writer.uint32(18).string(message.inflationRateChange);\n }\n if (message.inflationMax !== \"\") {\n writer.uint32(26).string(message.inflationMax);\n }\n if (message.inflationMin !== \"\") {\n writer.uint32(34).string(message.inflationMin);\n }\n if (message.goalBonded !== \"\") {\n writer.uint32(42).string(message.goalBonded);\n }\n if (!message.blocksPerYear.isZero()) {\n writer.uint32(48).uint64(message.blocksPerYear);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mintDenom = reader.string();\n break;\n case 2:\n message.inflationRateChange = reader.string();\n break;\n case 3:\n message.inflationMax = reader.string();\n break;\n case 4:\n message.inflationMin = reader.string();\n break;\n case 5:\n message.goalBonded = reader.string();\n break;\n case 6:\n message.blocksPerYear = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.mintDenom =\n object.mintDenom !== undefined && object.mintDenom !== null ? String(object.mintDenom) : \"\";\n message.inflationRateChange =\n object.inflationRateChange !== undefined && object.inflationRateChange !== null\n ? String(object.inflationRateChange)\n : \"\";\n message.inflationMax =\n object.inflationMax !== undefined && object.inflationMax !== null ? String(object.inflationMax) : \"\";\n message.inflationMin =\n object.inflationMin !== undefined && object.inflationMin !== null ? String(object.inflationMin) : \"\";\n message.goalBonded =\n object.goalBonded !== undefined && object.goalBonded !== null ? String(object.goalBonded) : \"\";\n message.blocksPerYear =\n object.blocksPerYear !== undefined && object.blocksPerYear !== null\n ? long_1.default.fromString(object.blocksPerYear)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mintDenom !== undefined && (obj.mintDenom = message.mintDenom);\n message.inflationRateChange !== undefined && (obj.inflationRateChange = message.inflationRateChange);\n message.inflationMax !== undefined && (obj.inflationMax = message.inflationMax);\n message.inflationMin !== undefined && (obj.inflationMin = message.inflationMin);\n message.goalBonded !== undefined && (obj.goalBonded = message.goalBonded);\n message.blocksPerYear !== undefined &&\n (obj.blocksPerYear = (message.blocksPerYear || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseParams);\n message.mintDenom = (_a = object.mintDenom) !== null && _a !== void 0 ? _a : \"\";\n message.inflationRateChange = (_b = object.inflationRateChange) !== null && _b !== void 0 ? _b : \"\";\n message.inflationMax = (_c = object.inflationMax) !== null && _c !== void 0 ? _c : \"\";\n message.inflationMin = (_d = object.inflationMin) !== null && _d !== void 0 ? _d : \"\";\n message.goalBonded = (_e = object.goalBonded) !== null && _e !== void 0 ? _e : \"\";\n message.blocksPerYear =\n object.blocksPerYear !== undefined && object.blocksPerYear !== null\n ? long_1.default.fromValue(object.blocksPerYear)\n : long_1.default.UZERO;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=mint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryAnnualProvisionsResponse = exports.QueryAnnualProvisionsRequest = exports.QueryInflationResponse = exports.QueryInflationRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst mint_1 = require(\"../../../cosmos/mint/v1beta1/mint\");\nexports.protobufPackage = \"cosmos.mint.v1beta1\";\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n mint_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = mint_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? mint_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? mint_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? mint_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nconst baseQueryInflationRequest = {};\nexports.QueryInflationRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryInflationRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryInflationRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryInflationRequest);\n return message;\n },\n};\nconst baseQueryInflationResponse = {};\nexports.QueryInflationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.inflation.length !== 0) {\n writer.uint32(10).bytes(message.inflation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryInflationResponse);\n message.inflation = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inflation = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryInflationResponse);\n message.inflation =\n object.inflation !== undefined && object.inflation !== null\n ? bytesFromBase64(object.inflation)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.inflation !== undefined &&\n (obj.inflation = base64FromBytes(message.inflation !== undefined ? message.inflation : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryInflationResponse);\n message.inflation = (_a = object.inflation) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseQueryAnnualProvisionsRequest = {};\nexports.QueryAnnualProvisionsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAnnualProvisionsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryAnnualProvisionsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryAnnualProvisionsRequest);\n return message;\n },\n};\nconst baseQueryAnnualProvisionsResponse = {};\nexports.QueryAnnualProvisionsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.annualProvisions.length !== 0) {\n writer.uint32(10).bytes(message.annualProvisions);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAnnualProvisionsResponse);\n message.annualProvisions = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.annualProvisions = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAnnualProvisionsResponse);\n message.annualProvisions =\n object.annualProvisions !== undefined && object.annualProvisions !== null\n ? bytesFromBase64(object.annualProvisions)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.annualProvisions !== undefined &&\n (obj.annualProvisions = base64FromBytes(message.annualProvisions !== undefined ? message.annualProvisions : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAnnualProvisionsResponse);\n message.annualProvisions = (_a = object.annualProvisions) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.Inflation = this.Inflation.bind(this);\n this.AnnualProvisions = this.AnnualProvisions.bind(this);\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Inflation(request) {\n const data = exports.QueryInflationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"Inflation\", data);\n return promise.then((data) => exports.QueryInflationResponse.decode(new minimal_1.default.Reader(data)));\n }\n AnnualProvisions(request) {\n const data = exports.QueryAnnualProvisionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.mint.v1beta1.Query\", \"AnnualProvisions\", data);\n return promise.then((data) => exports.QueryAnnualProvisionsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QuerySigningInfosResponse = exports.QuerySigningInfosRequest = exports.QuerySigningInfoResponse = exports.QuerySigningInfoRequest = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst slashing_1 = require(\"../../../cosmos/slashing/v1beta1/slashing\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n slashing_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = slashing_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? slashing_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? slashing_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? slashing_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nconst baseQuerySigningInfoRequest = { consAddress: \"\" };\nexports.QuerySigningInfoRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consAddress !== \"\") {\n writer.uint32(10).string(message.consAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySigningInfoRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySigningInfoRequest);\n message.consAddress =\n object.consAddress !== undefined && object.consAddress !== null ? String(object.consAddress) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consAddress !== undefined && (obj.consAddress = message.consAddress);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQuerySigningInfoRequest);\n message.consAddress = (_a = object.consAddress) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQuerySigningInfoResponse = {};\nexports.QuerySigningInfoResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.valSigningInfo !== undefined) {\n slashing_1.ValidatorSigningInfo.encode(message.valSigningInfo, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySigningInfoResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.valSigningInfo = slashing_1.ValidatorSigningInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySigningInfoResponse);\n message.valSigningInfo =\n object.valSigningInfo !== undefined && object.valSigningInfo !== null\n ? slashing_1.ValidatorSigningInfo.fromJSON(object.valSigningInfo)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.valSigningInfo !== undefined &&\n (obj.valSigningInfo = message.valSigningInfo\n ? slashing_1.ValidatorSigningInfo.toJSON(message.valSigningInfo)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQuerySigningInfoResponse);\n message.valSigningInfo =\n object.valSigningInfo !== undefined && object.valSigningInfo !== null\n ? slashing_1.ValidatorSigningInfo.fromPartial(object.valSigningInfo)\n : undefined;\n return message;\n },\n};\nconst baseQuerySigningInfosRequest = {};\nexports.QuerySigningInfosRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySigningInfosRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySigningInfosRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQuerySigningInfosRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQuerySigningInfosResponse = {};\nexports.QuerySigningInfosResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.info) {\n slashing_1.ValidatorSigningInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySigningInfosResponse);\n message.info = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.info.push(slashing_1.ValidatorSigningInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQuerySigningInfosResponse);\n message.info = ((_a = object.info) !== null && _a !== void 0 ? _a : []).map((e) => slashing_1.ValidatorSigningInfo.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.info) {\n obj.info = message.info.map((e) => (e ? slashing_1.ValidatorSigningInfo.toJSON(e) : undefined));\n }\n else {\n obj.info = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQuerySigningInfosResponse);\n message.info = ((_a = object.info) === null || _a === void 0 ? void 0 : _a.map((e) => slashing_1.ValidatorSigningInfo.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Params = this.Params.bind(this);\n this.SigningInfo = this.SigningInfo.bind(this);\n this.SigningInfos = this.SigningInfos.bind(this);\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n SigningInfo(request) {\n const data = exports.QuerySigningInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"SigningInfo\", data);\n return promise.then((data) => exports.QuerySigningInfoResponse.decode(new minimal_1.default.Reader(data)));\n }\n SigningInfos(request) {\n const data = exports.QuerySigningInfosRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.slashing.v1beta1.Query\", \"SigningInfos\", data);\n return promise.then((data) => exports.QuerySigningInfosResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.ValidatorSigningInfo = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nexports.protobufPackage = \"cosmos.slashing.v1beta1\";\nconst baseValidatorSigningInfo = {\n address: \"\",\n startHeight: long_1.default.ZERO,\n indexOffset: long_1.default.ZERO,\n tombstoned: false,\n missedBlocksCounter: long_1.default.ZERO,\n};\nexports.ValidatorSigningInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (!message.startHeight.isZero()) {\n writer.uint32(16).int64(message.startHeight);\n }\n if (!message.indexOffset.isZero()) {\n writer.uint32(24).int64(message.indexOffset);\n }\n if (message.jailedUntil !== undefined) {\n timestamp_1.Timestamp.encode(message.jailedUntil, writer.uint32(34).fork()).ldelim();\n }\n if (message.tombstoned === true) {\n writer.uint32(40).bool(message.tombstoned);\n }\n if (!message.missedBlocksCounter.isZero()) {\n writer.uint32(48).int64(message.missedBlocksCounter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSigningInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.startHeight = reader.int64();\n break;\n case 3:\n message.indexOffset = reader.int64();\n break;\n case 4:\n message.jailedUntil = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.tombstoned = reader.bool();\n break;\n case 6:\n message.missedBlocksCounter = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorSigningInfo);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.startHeight =\n object.startHeight !== undefined && object.startHeight !== null\n ? long_1.default.fromString(object.startHeight)\n : long_1.default.ZERO;\n message.indexOffset =\n object.indexOffset !== undefined && object.indexOffset !== null\n ? long_1.default.fromString(object.indexOffset)\n : long_1.default.ZERO;\n message.jailedUntil =\n object.jailedUntil !== undefined && object.jailedUntil !== null\n ? fromJsonTimestamp(object.jailedUntil)\n : undefined;\n message.tombstoned =\n object.tombstoned !== undefined && object.tombstoned !== null ? Boolean(object.tombstoned) : false;\n message.missedBlocksCounter =\n object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null\n ? long_1.default.fromString(object.missedBlocksCounter)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.startHeight !== undefined && (obj.startHeight = (message.startHeight || long_1.default.ZERO).toString());\n message.indexOffset !== undefined && (obj.indexOffset = (message.indexOffset || long_1.default.ZERO).toString());\n message.jailedUntil !== undefined && (obj.jailedUntil = fromTimestamp(message.jailedUntil).toISOString());\n message.tombstoned !== undefined && (obj.tombstoned = message.tombstoned);\n message.missedBlocksCounter !== undefined &&\n (obj.missedBlocksCounter = (message.missedBlocksCounter || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseValidatorSigningInfo);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.startHeight =\n object.startHeight !== undefined && object.startHeight !== null\n ? long_1.default.fromValue(object.startHeight)\n : long_1.default.ZERO;\n message.indexOffset =\n object.indexOffset !== undefined && object.indexOffset !== null\n ? long_1.default.fromValue(object.indexOffset)\n : long_1.default.ZERO;\n message.jailedUntil =\n object.jailedUntil !== undefined && object.jailedUntil !== null\n ? timestamp_1.Timestamp.fromPartial(object.jailedUntil)\n : undefined;\n message.tombstoned = (_b = object.tombstoned) !== null && _b !== void 0 ? _b : false;\n message.missedBlocksCounter =\n object.missedBlocksCounter !== undefined && object.missedBlocksCounter !== null\n ? long_1.default.fromValue(object.missedBlocksCounter)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseParams = { signedBlocksWindow: long_1.default.ZERO };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.signedBlocksWindow.isZero()) {\n writer.uint32(8).int64(message.signedBlocksWindow);\n }\n if (message.minSignedPerWindow.length !== 0) {\n writer.uint32(18).bytes(message.minSignedPerWindow);\n }\n if (message.downtimeJailDuration !== undefined) {\n duration_1.Duration.encode(message.downtimeJailDuration, writer.uint32(26).fork()).ldelim();\n }\n if (message.slashFractionDoubleSign.length !== 0) {\n writer.uint32(34).bytes(message.slashFractionDoubleSign);\n }\n if (message.slashFractionDowntime.length !== 0) {\n writer.uint32(42).bytes(message.slashFractionDowntime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.minSignedPerWindow = new Uint8Array();\n message.slashFractionDoubleSign = new Uint8Array();\n message.slashFractionDowntime = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedBlocksWindow = reader.int64();\n break;\n case 2:\n message.minSignedPerWindow = reader.bytes();\n break;\n case 3:\n message.downtimeJailDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.slashFractionDoubleSign = reader.bytes();\n break;\n case 5:\n message.slashFractionDowntime = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.signedBlocksWindow =\n object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null\n ? long_1.default.fromString(object.signedBlocksWindow)\n : long_1.default.ZERO;\n message.minSignedPerWindow =\n object.minSignedPerWindow !== undefined && object.minSignedPerWindow !== null\n ? bytesFromBase64(object.minSignedPerWindow)\n : new Uint8Array();\n message.downtimeJailDuration =\n object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null\n ? duration_1.Duration.fromJSON(object.downtimeJailDuration)\n : undefined;\n message.slashFractionDoubleSign =\n object.slashFractionDoubleSign !== undefined && object.slashFractionDoubleSign !== null\n ? bytesFromBase64(object.slashFractionDoubleSign)\n : new Uint8Array();\n message.slashFractionDowntime =\n object.slashFractionDowntime !== undefined && object.slashFractionDowntime !== null\n ? bytesFromBase64(object.slashFractionDowntime)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedBlocksWindow !== undefined &&\n (obj.signedBlocksWindow = (message.signedBlocksWindow || long_1.default.ZERO).toString());\n message.minSignedPerWindow !== undefined &&\n (obj.minSignedPerWindow = base64FromBytes(message.minSignedPerWindow !== undefined ? message.minSignedPerWindow : new Uint8Array()));\n message.downtimeJailDuration !== undefined &&\n (obj.downtimeJailDuration = message.downtimeJailDuration\n ? duration_1.Duration.toJSON(message.downtimeJailDuration)\n : undefined);\n message.slashFractionDoubleSign !== undefined &&\n (obj.slashFractionDoubleSign = base64FromBytes(message.slashFractionDoubleSign !== undefined ? message.slashFractionDoubleSign : new Uint8Array()));\n message.slashFractionDowntime !== undefined &&\n (obj.slashFractionDowntime = base64FromBytes(message.slashFractionDowntime !== undefined ? message.slashFractionDowntime : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseParams);\n message.signedBlocksWindow =\n object.signedBlocksWindow !== undefined && object.signedBlocksWindow !== null\n ? long_1.default.fromValue(object.signedBlocksWindow)\n : long_1.default.ZERO;\n message.minSignedPerWindow = (_a = object.minSignedPerWindow) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.downtimeJailDuration =\n object.downtimeJailDuration !== undefined && object.downtimeJailDuration !== null\n ? duration_1.Duration.fromPartial(object.downtimeJailDuration)\n : undefined;\n message.slashFractionDoubleSign = (_b = object.slashFractionDoubleSign) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.slashFractionDowntime = (_c = object.slashFractionDowntime) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=slashing.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryPoolResponse = exports.QueryPoolRequest = exports.QueryHistoricalInfoResponse = exports.QueryHistoricalInfoRequest = exports.QueryDelegatorValidatorResponse = exports.QueryDelegatorValidatorRequest = exports.QueryDelegatorValidatorsResponse = exports.QueryDelegatorValidatorsRequest = exports.QueryRedelegationsResponse = exports.QueryRedelegationsRequest = exports.QueryDelegatorUnbondingDelegationsResponse = exports.QueryDelegatorUnbondingDelegationsRequest = exports.QueryDelegatorDelegationsResponse = exports.QueryDelegatorDelegationsRequest = exports.QueryUnbondingDelegationResponse = exports.QueryUnbondingDelegationRequest = exports.QueryDelegationResponse = exports.QueryDelegationRequest = exports.QueryValidatorUnbondingDelegationsResponse = exports.QueryValidatorUnbondingDelegationsRequest = exports.QueryValidatorDelegationsResponse = exports.QueryValidatorDelegationsRequest = exports.QueryValidatorResponse = exports.QueryValidatorRequest = exports.QueryValidatorsResponse = exports.QueryValidatorsRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst staking_1 = require(\"../../../cosmos/staking/v1beta1/staking\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nconst baseQueryValidatorsRequest = { status: \"\" };\nexports.QueryValidatorsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.status !== \"\") {\n writer.uint32(10).string(message.status);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.status = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorsRequest);\n message.status = object.status !== undefined && object.status !== null ? String(object.status) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.status !== undefined && (obj.status = message.status);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorsRequest);\n message.status = (_a = object.status) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorsResponse = {};\nexports.QueryValidatorsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorsResponse);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(staking_1.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorsResponse);\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.Validator.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? staking_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorsResponse);\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.Validator.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorRequest = { validatorAddr: \"\" };\nexports.QueryValidatorRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorRequest);\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorRequest);\n message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryValidatorResponse = {};\nexports.QueryValidatorResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validator !== undefined) {\n staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = staking_1.Validator.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorResponse);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? staking_1.Validator.fromJSON(object.validator)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? staking_1.Validator.toJSON(message.validator) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryValidatorResponse);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? staking_1.Validator.fromPartial(object.validator)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorDelegationsRequest = { validatorAddr: \"\" };\nexports.QueryValidatorDelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorDelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorDelegationsRequest);\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorDelegationsRequest);\n message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorDelegationsResponse = {};\nexports.QueryValidatorDelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.delegationResponses) {\n staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorDelegationsResponse);\n message.delegationResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorDelegationsResponse);\n message.delegationResponses = ((_a = object.delegationResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.DelegationResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.delegationResponses) {\n obj.delegationResponses = message.delegationResponses.map((e) => e ? staking_1.DelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.delegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorDelegationsResponse);\n message.delegationResponses =\n ((_a = object.delegationResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.DelegationResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorUnbondingDelegationsRequest = { validatorAddr: \"\" };\nexports.QueryValidatorUnbondingDelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validatorAddr !== \"\") {\n writer.uint32(10).string(message.validatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsRequest);\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsRequest);\n message.validatorAddr = (_a = object.validatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryValidatorUnbondingDelegationsResponse = {};\nexports.QueryValidatorUnbondingDelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.unbondingResponses) {\n staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsResponse);\n message.unbondingResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsResponse);\n message.unbondingResponses = ((_a = object.unbondingResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.UnbondingDelegation.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.unbondingResponses) {\n obj.unbondingResponses = message.unbondingResponses.map((e) => e ? staking_1.UnbondingDelegation.toJSON(e) : undefined);\n }\n else {\n obj.unbondingResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryValidatorUnbondingDelegationsResponse);\n message.unbondingResponses =\n ((_a = object.unbondingResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.UnbondingDelegation.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegationRequest = { delegatorAddr: \"\", validatorAddr: \"\" };\nexports.QueryDelegationRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegationRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegationRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryDelegationResponse = {};\nexports.QueryDelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegationResponse !== undefined) {\n staking_1.DelegationResponse.encode(message.delegationResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponse = staking_1.DelegationResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegationResponse);\n message.delegationResponse =\n object.delegationResponse !== undefined && object.delegationResponse !== null\n ? staking_1.DelegationResponse.fromJSON(object.delegationResponse)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegationResponse !== undefined &&\n (obj.delegationResponse = message.delegationResponse\n ? staking_1.DelegationResponse.toJSON(message.delegationResponse)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDelegationResponse);\n message.delegationResponse =\n object.delegationResponse !== undefined && object.delegationResponse !== null\n ? staking_1.DelegationResponse.fromPartial(object.delegationResponse)\n : undefined;\n return message;\n },\n};\nconst baseQueryUnbondingDelegationRequest = { delegatorAddr: \"\", validatorAddr: \"\" };\nexports.QueryUnbondingDelegationRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnbondingDelegationRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryUnbondingDelegationRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryUnbondingDelegationRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryUnbondingDelegationResponse = {};\nexports.QueryUnbondingDelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.unbond !== undefined) {\n staking_1.UnbondingDelegation.encode(message.unbond, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnbondingDelegationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbond = staking_1.UnbondingDelegation.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryUnbondingDelegationResponse);\n message.unbond =\n object.unbond !== undefined && object.unbond !== null\n ? staking_1.UnbondingDelegation.fromJSON(object.unbond)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.unbond !== undefined &&\n (obj.unbond = message.unbond ? staking_1.UnbondingDelegation.toJSON(message.unbond) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryUnbondingDelegationResponse);\n message.unbond =\n object.unbond !== undefined && object.unbond !== null\n ? staking_1.UnbondingDelegation.fromPartial(object.unbond)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorDelegationsRequest = { delegatorAddr: \"\" };\nexports.QueryDelegatorDelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorDelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorDelegationsRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorDelegationsRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorDelegationsResponse = {};\nexports.QueryDelegatorDelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.delegationResponses) {\n staking_1.DelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorDelegationsResponse);\n message.delegationResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegationResponses.push(staking_1.DelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorDelegationsResponse);\n message.delegationResponses = ((_a = object.delegationResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.DelegationResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.delegationResponses) {\n obj.delegationResponses = message.delegationResponses.map((e) => e ? staking_1.DelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.delegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorDelegationsResponse);\n message.delegationResponses =\n ((_a = object.delegationResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.DelegationResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorUnbondingDelegationsRequest = { delegatorAddr: \"\" };\nexports.QueryDelegatorUnbondingDelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorUnbondingDelegationsResponse = {};\nexports.QueryDelegatorUnbondingDelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.unbondingResponses) {\n staking_1.UnbondingDelegation.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsResponse);\n message.unbondingResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingResponses.push(staking_1.UnbondingDelegation.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsResponse);\n message.unbondingResponses = ((_a = object.unbondingResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.UnbondingDelegation.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.unbondingResponses) {\n obj.unbondingResponses = message.unbondingResponses.map((e) => e ? staking_1.UnbondingDelegation.toJSON(e) : undefined);\n }\n else {\n obj.unbondingResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorUnbondingDelegationsResponse);\n message.unbondingResponses =\n ((_a = object.unbondingResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.UnbondingDelegation.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryRedelegationsRequest = {\n delegatorAddr: \"\",\n srcValidatorAddr: \"\",\n dstValidatorAddr: \"\",\n};\nexports.QueryRedelegationsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.srcValidatorAddr !== \"\") {\n writer.uint32(18).string(message.srcValidatorAddr);\n }\n if (message.dstValidatorAddr !== \"\") {\n writer.uint32(26).string(message.dstValidatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryRedelegationsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.srcValidatorAddr = reader.string();\n break;\n case 3:\n message.dstValidatorAddr = reader.string();\n break;\n case 4:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryRedelegationsRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.srcValidatorAddr =\n object.srcValidatorAddr !== undefined && object.srcValidatorAddr !== null\n ? String(object.srcValidatorAddr)\n : \"\";\n message.dstValidatorAddr =\n object.dstValidatorAddr !== undefined && object.dstValidatorAddr !== null\n ? String(object.dstValidatorAddr)\n : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.srcValidatorAddr !== undefined && (obj.srcValidatorAddr = message.srcValidatorAddr);\n message.dstValidatorAddr !== undefined && (obj.dstValidatorAddr = message.dstValidatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseQueryRedelegationsRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.srcValidatorAddr = (_b = object.srcValidatorAddr) !== null && _b !== void 0 ? _b : \"\";\n message.dstValidatorAddr = (_c = object.dstValidatorAddr) !== null && _c !== void 0 ? _c : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryRedelegationsResponse = {};\nexports.QueryRedelegationsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.redelegationResponses) {\n staking_1.RedelegationResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryRedelegationsResponse);\n message.redelegationResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationResponses.push(staking_1.RedelegationResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryRedelegationsResponse);\n message.redelegationResponses = ((_a = object.redelegationResponses) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.RedelegationResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.redelegationResponses) {\n obj.redelegationResponses = message.redelegationResponses.map((e) => e ? staking_1.RedelegationResponse.toJSON(e) : undefined);\n }\n else {\n obj.redelegationResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryRedelegationsResponse);\n message.redelegationResponses =\n ((_a = object.redelegationResponses) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.RedelegationResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorValidatorsRequest = { delegatorAddr: \"\" };\nexports.QueryDelegatorValidatorsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorValidatorsResponse = {};\nexports.QueryDelegatorValidatorsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n staking_1.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(staking_1.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => staking_1.Validator.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? staking_1.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDelegatorValidatorsResponse);\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => staking_1.Validator.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDelegatorValidatorRequest = { delegatorAddr: \"\", validatorAddr: \"\" };\nexports.QueryDelegatorValidatorRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddr !== \"\") {\n writer.uint32(10).string(message.delegatorAddr);\n }\n if (message.validatorAddr !== \"\") {\n writer.uint32(18).string(message.validatorAddr);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddr = reader.string();\n break;\n case 2:\n message.validatorAddr = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorRequest);\n message.delegatorAddr =\n object.delegatorAddr !== undefined && object.delegatorAddr !== null ? String(object.delegatorAddr) : \"\";\n message.validatorAddr =\n object.validatorAddr !== undefined && object.validatorAddr !== null ? String(object.validatorAddr) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddr !== undefined && (obj.delegatorAddr = message.delegatorAddr);\n message.validatorAddr !== undefined && (obj.validatorAddr = message.validatorAddr);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryDelegatorValidatorRequest);\n message.delegatorAddr = (_a = object.delegatorAddr) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddr = (_b = object.validatorAddr) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryDelegatorValidatorResponse = {};\nexports.QueryDelegatorValidatorResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validator !== undefined) {\n staking_1.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDelegatorValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = staking_1.Validator.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorResponse);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? staking_1.Validator.fromJSON(object.validator)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? staking_1.Validator.toJSON(message.validator) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDelegatorValidatorResponse);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? staking_1.Validator.fromPartial(object.validator)\n : undefined;\n return message;\n },\n};\nconst baseQueryHistoricalInfoRequest = { height: long_1.default.ZERO };\nexports.QueryHistoricalInfoRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryHistoricalInfoRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryHistoricalInfoRequest);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryHistoricalInfoRequest);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseQueryHistoricalInfoResponse = {};\nexports.QueryHistoricalInfoResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hist !== undefined) {\n staking_1.HistoricalInfo.encode(message.hist, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryHistoricalInfoResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hist = staking_1.HistoricalInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryHistoricalInfoResponse);\n message.hist =\n object.hist !== undefined && object.hist !== null ? staking_1.HistoricalInfo.fromJSON(object.hist) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hist !== undefined && (obj.hist = message.hist ? staking_1.HistoricalInfo.toJSON(message.hist) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryHistoricalInfoResponse);\n message.hist =\n object.hist !== undefined && object.hist !== null ? staking_1.HistoricalInfo.fromPartial(object.hist) : undefined;\n return message;\n },\n};\nconst baseQueryPoolRequest = {};\nexports.QueryPoolRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPoolRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryPoolRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryPoolRequest);\n return message;\n },\n};\nconst baseQueryPoolResponse = {};\nexports.QueryPoolResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pool !== undefined) {\n staking_1.Pool.encode(message.pool, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPoolResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pool = staking_1.Pool.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPoolResponse);\n message.pool = object.pool !== undefined && object.pool !== null ? staking_1.Pool.fromJSON(object.pool) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pool !== undefined && (obj.pool = message.pool ? staking_1.Pool.toJSON(message.pool) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryPoolResponse);\n message.pool =\n object.pool !== undefined && object.pool !== null ? staking_1.Pool.fromPartial(object.pool) : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n staking_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = staking_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? staking_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? staking_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? staking_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Validators = this.Validators.bind(this);\n this.Validator = this.Validator.bind(this);\n this.ValidatorDelegations = this.ValidatorDelegations.bind(this);\n this.ValidatorUnbondingDelegations = this.ValidatorUnbondingDelegations.bind(this);\n this.Delegation = this.Delegation.bind(this);\n this.UnbondingDelegation = this.UnbondingDelegation.bind(this);\n this.DelegatorDelegations = this.DelegatorDelegations.bind(this);\n this.DelegatorUnbondingDelegations = this.DelegatorUnbondingDelegations.bind(this);\n this.Redelegations = this.Redelegations.bind(this);\n this.DelegatorValidators = this.DelegatorValidators.bind(this);\n this.DelegatorValidator = this.DelegatorValidator.bind(this);\n this.HistoricalInfo = this.HistoricalInfo.bind(this);\n this.Pool = this.Pool.bind(this);\n this.Params = this.Params.bind(this);\n }\n Validators(request) {\n const data = exports.QueryValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Validators\", data);\n return promise.then((data) => exports.QueryValidatorsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Validator(request) {\n const data = exports.QueryValidatorRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Validator\", data);\n return promise.then((data) => exports.QueryValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorDelegations(request) {\n const data = exports.QueryValidatorDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"ValidatorDelegations\", data);\n return promise.then((data) => exports.QueryValidatorDelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ValidatorUnbondingDelegations(request) {\n const data = exports.QueryValidatorUnbondingDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"ValidatorUnbondingDelegations\", data);\n return promise.then((data) => exports.QueryValidatorUnbondingDelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Delegation(request) {\n const data = exports.QueryDelegationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Delegation\", data);\n return promise.then((data) => exports.QueryDelegationResponse.decode(new minimal_1.default.Reader(data)));\n }\n UnbondingDelegation(request) {\n const data = exports.QueryUnbondingDelegationRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"UnbondingDelegation\", data);\n return promise.then((data) => exports.QueryUnbondingDelegationResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorDelegations(request) {\n const data = exports.QueryDelegatorDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorDelegations\", data);\n return promise.then((data) => exports.QueryDelegatorDelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorUnbondingDelegations(request) {\n const data = exports.QueryDelegatorUnbondingDelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorUnbondingDelegations\", data);\n return promise.then((data) => exports.QueryDelegatorUnbondingDelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n Redelegations(request) {\n const data = exports.QueryRedelegationsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Redelegations\", data);\n return promise.then((data) => exports.QueryRedelegationsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorValidators(request) {\n const data = exports.QueryDelegatorValidatorsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorValidators\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorsResponse.decode(new minimal_1.default.Reader(data)));\n }\n DelegatorValidator(request) {\n const data = exports.QueryDelegatorValidatorRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"DelegatorValidator\", data);\n return promise.then((data) => exports.QueryDelegatorValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n HistoricalInfo(request) {\n const data = exports.QueryHistoricalInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"HistoricalInfo\", data);\n return promise.then((data) => exports.QueryHistoricalInfoResponse.decode(new minimal_1.default.Reader(data)));\n }\n Pool(request) {\n const data = exports.QueryPoolRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Pool\", data);\n return promise.then((data) => exports.QueryPoolResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Pool = exports.RedelegationResponse = exports.RedelegationEntryResponse = exports.DelegationResponse = exports.Params = exports.Redelegation = exports.RedelegationEntry = exports.UnbondingDelegationEntry = exports.UnbondingDelegation = exports.Delegation = exports.DVVTriplets = exports.DVVTriplet = exports.DVPairs = exports.DVPair = exports.ValAddresses = exports.Validator = exports.Description = exports.Commission = exports.CommissionRates = exports.HistoricalInfo = exports.bondStatusToJSON = exports.bondStatusFromJSON = exports.BondStatus = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../tendermint/types/types\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst duration_1 = require(\"../../../google/protobuf/duration\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\n/** BondStatus is the status of a validator. */\nvar BondStatus;\n(function (BondStatus) {\n /** BOND_STATUS_UNSPECIFIED - UNSPECIFIED defines an invalid validator status. */\n BondStatus[BondStatus[\"BOND_STATUS_UNSPECIFIED\"] = 0] = \"BOND_STATUS_UNSPECIFIED\";\n /** BOND_STATUS_UNBONDED - UNBONDED defines a validator that is not bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDED\"] = 1] = \"BOND_STATUS_UNBONDED\";\n /** BOND_STATUS_UNBONDING - UNBONDING defines a validator that is unbonding. */\n BondStatus[BondStatus[\"BOND_STATUS_UNBONDING\"] = 2] = \"BOND_STATUS_UNBONDING\";\n /** BOND_STATUS_BONDED - BONDED defines a validator that is bonded. */\n BondStatus[BondStatus[\"BOND_STATUS_BONDED\"] = 3] = \"BOND_STATUS_BONDED\";\n BondStatus[BondStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BondStatus = exports.BondStatus || (exports.BondStatus = {}));\nfunction bondStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"BOND_STATUS_UNSPECIFIED\":\n return BondStatus.BOND_STATUS_UNSPECIFIED;\n case 1:\n case \"BOND_STATUS_UNBONDED\":\n return BondStatus.BOND_STATUS_UNBONDED;\n case 2:\n case \"BOND_STATUS_UNBONDING\":\n return BondStatus.BOND_STATUS_UNBONDING;\n case 3:\n case \"BOND_STATUS_BONDED\":\n return BondStatus.BOND_STATUS_BONDED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BondStatus.UNRECOGNIZED;\n }\n}\nexports.bondStatusFromJSON = bondStatusFromJSON;\nfunction bondStatusToJSON(object) {\n switch (object) {\n case BondStatus.BOND_STATUS_UNSPECIFIED:\n return \"BOND_STATUS_UNSPECIFIED\";\n case BondStatus.BOND_STATUS_UNBONDED:\n return \"BOND_STATUS_UNBONDED\";\n case BondStatus.BOND_STATUS_UNBONDING:\n return \"BOND_STATUS_UNBONDING\";\n case BondStatus.BOND_STATUS_BONDED:\n return \"BOND_STATUS_BONDED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.bondStatusToJSON = bondStatusToJSON;\nconst baseHistoricalInfo = {};\nexports.HistoricalInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.valset) {\n exports.Validator.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHistoricalInfo);\n message.valset = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.valset.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseHistoricalInfo);\n message.header =\n object.header !== undefined && object.header !== null ? types_1.Header.fromJSON(object.header) : undefined;\n message.valset = ((_a = object.valset) !== null && _a !== void 0 ? _a : []).map((e) => exports.Validator.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n if (message.valset) {\n obj.valset = message.valset.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.valset = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseHistoricalInfo);\n message.header =\n object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined;\n message.valset = ((_a = object.valset) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Validator.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCommissionRates = { rate: \"\", maxRate: \"\", maxChangeRate: \"\" };\nexports.CommissionRates = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rate !== \"\") {\n writer.uint32(10).string(message.rate);\n }\n if (message.maxRate !== \"\") {\n writer.uint32(18).string(message.maxRate);\n }\n if (message.maxChangeRate !== \"\") {\n writer.uint32(26).string(message.maxChangeRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommissionRates);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rate = reader.string();\n break;\n case 2:\n message.maxRate = reader.string();\n break;\n case 3:\n message.maxChangeRate = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommissionRates);\n message.rate = object.rate !== undefined && object.rate !== null ? String(object.rate) : \"\";\n message.maxRate = object.maxRate !== undefined && object.maxRate !== null ? String(object.maxRate) : \"\";\n message.maxChangeRate =\n object.maxChangeRate !== undefined && object.maxChangeRate !== null ? String(object.maxChangeRate) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rate !== undefined && (obj.rate = message.rate);\n message.maxRate !== undefined && (obj.maxRate = message.maxRate);\n message.maxChangeRate !== undefined && (obj.maxChangeRate = message.maxChangeRate);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseCommissionRates);\n message.rate = (_a = object.rate) !== null && _a !== void 0 ? _a : \"\";\n message.maxRate = (_b = object.maxRate) !== null && _b !== void 0 ? _b : \"\";\n message.maxChangeRate = (_c = object.maxChangeRate) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseCommission = {};\nexports.Commission = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.commissionRates !== undefined) {\n exports.CommissionRates.encode(message.commissionRates, writer.uint32(10).fork()).ldelim();\n }\n if (message.updateTime !== undefined) {\n timestamp_1.Timestamp.encode(message.updateTime, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommission);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commissionRates = exports.CommissionRates.decode(reader, reader.uint32());\n break;\n case 2:\n message.updateTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommission);\n message.commissionRates =\n object.commissionRates !== undefined && object.commissionRates !== null\n ? exports.CommissionRates.fromJSON(object.commissionRates)\n : undefined;\n message.updateTime =\n object.updateTime !== undefined && object.updateTime !== null\n ? fromJsonTimestamp(object.updateTime)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.commissionRates !== undefined &&\n (obj.commissionRates = message.commissionRates\n ? exports.CommissionRates.toJSON(message.commissionRates)\n : undefined);\n message.updateTime !== undefined && (obj.updateTime = fromTimestamp(message.updateTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseCommission);\n message.commissionRates =\n object.commissionRates !== undefined && object.commissionRates !== null\n ? exports.CommissionRates.fromPartial(object.commissionRates)\n : undefined;\n message.updateTime =\n object.updateTime !== undefined && object.updateTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.updateTime)\n : undefined;\n return message;\n },\n};\nconst baseDescription = { moniker: \"\", identity: \"\", website: \"\", securityContact: \"\", details: \"\" };\nexports.Description = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.moniker !== \"\") {\n writer.uint32(10).string(message.moniker);\n }\n if (message.identity !== \"\") {\n writer.uint32(18).string(message.identity);\n }\n if (message.website !== \"\") {\n writer.uint32(26).string(message.website);\n }\n if (message.securityContact !== \"\") {\n writer.uint32(34).string(message.securityContact);\n }\n if (message.details !== \"\") {\n writer.uint32(42).string(message.details);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDescription);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.moniker = reader.string();\n break;\n case 2:\n message.identity = reader.string();\n break;\n case 3:\n message.website = reader.string();\n break;\n case 4:\n message.securityContact = reader.string();\n break;\n case 5:\n message.details = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDescription);\n message.moniker = object.moniker !== undefined && object.moniker !== null ? String(object.moniker) : \"\";\n message.identity =\n object.identity !== undefined && object.identity !== null ? String(object.identity) : \"\";\n message.website = object.website !== undefined && object.website !== null ? String(object.website) : \"\";\n message.securityContact =\n object.securityContact !== undefined && object.securityContact !== null\n ? String(object.securityContact)\n : \"\";\n message.details = object.details !== undefined && object.details !== null ? String(object.details) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.moniker !== undefined && (obj.moniker = message.moniker);\n message.identity !== undefined && (obj.identity = message.identity);\n message.website !== undefined && (obj.website = message.website);\n message.securityContact !== undefined && (obj.securityContact = message.securityContact);\n message.details !== undefined && (obj.details = message.details);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseDescription);\n message.moniker = (_a = object.moniker) !== null && _a !== void 0 ? _a : \"\";\n message.identity = (_b = object.identity) !== null && _b !== void 0 ? _b : \"\";\n message.website = (_c = object.website) !== null && _c !== void 0 ? _c : \"\";\n message.securityContact = (_d = object.securityContact) !== null && _d !== void 0 ? _d : \"\";\n message.details = (_e = object.details) !== null && _e !== void 0 ? _e : \"\";\n return message;\n },\n};\nconst baseValidator = {\n operatorAddress: \"\",\n jailed: false,\n status: 0,\n tokens: \"\",\n delegatorShares: \"\",\n unbondingHeight: long_1.default.ZERO,\n minSelfDelegation: \"\",\n};\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.operatorAddress !== \"\") {\n writer.uint32(10).string(message.operatorAddress);\n }\n if (message.consensusPubkey !== undefined) {\n any_1.Any.encode(message.consensusPubkey, writer.uint32(18).fork()).ldelim();\n }\n if (message.jailed === true) {\n writer.uint32(24).bool(message.jailed);\n }\n if (message.status !== 0) {\n writer.uint32(32).int32(message.status);\n }\n if (message.tokens !== \"\") {\n writer.uint32(42).string(message.tokens);\n }\n if (message.delegatorShares !== \"\") {\n writer.uint32(50).string(message.delegatorShares);\n }\n if (message.description !== undefined) {\n exports.Description.encode(message.description, writer.uint32(58).fork()).ldelim();\n }\n if (!message.unbondingHeight.isZero()) {\n writer.uint32(64).int64(message.unbondingHeight);\n }\n if (message.unbondingTime !== undefined) {\n timestamp_1.Timestamp.encode(message.unbondingTime, writer.uint32(74).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n exports.Commission.encode(message.commission, writer.uint32(82).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(90).string(message.minSelfDelegation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operatorAddress = reader.string();\n break;\n case 2:\n message.consensusPubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.jailed = reader.bool();\n break;\n case 4:\n message.status = reader.int32();\n break;\n case 5:\n message.tokens = reader.string();\n break;\n case 6:\n message.delegatorShares = reader.string();\n break;\n case 7:\n message.description = exports.Description.decode(reader, reader.uint32());\n break;\n case 8:\n message.unbondingHeight = reader.int64();\n break;\n case 9:\n message.unbondingTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 10:\n message.commission = exports.Commission.decode(reader, reader.uint32());\n break;\n case 11:\n message.minSelfDelegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.operatorAddress =\n object.operatorAddress !== undefined && object.operatorAddress !== null\n ? String(object.operatorAddress)\n : \"\";\n message.consensusPubkey =\n object.consensusPubkey !== undefined && object.consensusPubkey !== null\n ? any_1.Any.fromJSON(object.consensusPubkey)\n : undefined;\n message.jailed = object.jailed !== undefined && object.jailed !== null ? Boolean(object.jailed) : false;\n message.status =\n object.status !== undefined && object.status !== null ? bondStatusFromJSON(object.status) : 0;\n message.tokens = object.tokens !== undefined && object.tokens !== null ? String(object.tokens) : \"\";\n message.delegatorShares =\n object.delegatorShares !== undefined && object.delegatorShares !== null\n ? String(object.delegatorShares)\n : \"\";\n message.description =\n object.description !== undefined && object.description !== null\n ? exports.Description.fromJSON(object.description)\n : undefined;\n message.unbondingHeight =\n object.unbondingHeight !== undefined && object.unbondingHeight !== null\n ? long_1.default.fromString(object.unbondingHeight)\n : long_1.default.ZERO;\n message.unbondingTime =\n object.unbondingTime !== undefined && object.unbondingTime !== null\n ? fromJsonTimestamp(object.unbondingTime)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? exports.Commission.fromJSON(object.commission)\n : undefined;\n message.minSelfDelegation =\n object.minSelfDelegation !== undefined && object.minSelfDelegation !== null\n ? String(object.minSelfDelegation)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.operatorAddress !== undefined && (obj.operatorAddress = message.operatorAddress);\n message.consensusPubkey !== undefined &&\n (obj.consensusPubkey = message.consensusPubkey ? any_1.Any.toJSON(message.consensusPubkey) : undefined);\n message.jailed !== undefined && (obj.jailed = message.jailed);\n message.status !== undefined && (obj.status = bondStatusToJSON(message.status));\n message.tokens !== undefined && (obj.tokens = message.tokens);\n message.delegatorShares !== undefined && (obj.delegatorShares = message.delegatorShares);\n message.description !== undefined &&\n (obj.description = message.description ? exports.Description.toJSON(message.description) : undefined);\n message.unbondingHeight !== undefined &&\n (obj.unbondingHeight = (message.unbondingHeight || long_1.default.ZERO).toString());\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = fromTimestamp(message.unbondingTime).toISOString());\n message.commission !== undefined &&\n (obj.commission = message.commission ? exports.Commission.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseValidator);\n message.operatorAddress = (_a = object.operatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.consensusPubkey =\n object.consensusPubkey !== undefined && object.consensusPubkey !== null\n ? any_1.Any.fromPartial(object.consensusPubkey)\n : undefined;\n message.jailed = (_b = object.jailed) !== null && _b !== void 0 ? _b : false;\n message.status = (_c = object.status) !== null && _c !== void 0 ? _c : 0;\n message.tokens = (_d = object.tokens) !== null && _d !== void 0 ? _d : \"\";\n message.delegatorShares = (_e = object.delegatorShares) !== null && _e !== void 0 ? _e : \"\";\n message.description =\n object.description !== undefined && object.description !== null\n ? exports.Description.fromPartial(object.description)\n : undefined;\n message.unbondingHeight =\n object.unbondingHeight !== undefined && object.unbondingHeight !== null\n ? long_1.default.fromValue(object.unbondingHeight)\n : long_1.default.ZERO;\n message.unbondingTime =\n object.unbondingTime !== undefined && object.unbondingTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.unbondingTime)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? exports.Commission.fromPartial(object.commission)\n : undefined;\n message.minSelfDelegation = (_f = object.minSelfDelegation) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseValAddresses = { addresses: \"\" };\nexports.ValAddresses = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.addresses) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValAddresses);\n message.addresses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.addresses.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValAddresses);\n message.addresses = ((_a = object.addresses) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.addresses) {\n obj.addresses = message.addresses.map((e) => e);\n }\n else {\n obj.addresses = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValAddresses);\n message.addresses = ((_a = object.addresses) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseDVPair = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.DVPair = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVPair);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDVPair);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDVPair);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseDVPairs = {};\nexports.DVPairs = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pairs) {\n exports.DVPair.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVPairs);\n message.pairs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pairs.push(exports.DVPair.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDVPairs);\n message.pairs = ((_a = object.pairs) !== null && _a !== void 0 ? _a : []).map((e) => exports.DVPair.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pairs) {\n obj.pairs = message.pairs.map((e) => (e ? exports.DVPair.toJSON(e) : undefined));\n }\n else {\n obj.pairs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDVPairs);\n message.pairs = ((_a = object.pairs) === null || _a === void 0 ? void 0 : _a.map((e) => exports.DVPair.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDVVTriplet = { delegatorAddress: \"\", validatorSrcAddress: \"\", validatorDstAddress: \"\" };\nexports.DVVTriplet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVVTriplet);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDVVTriplet);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorSrcAddress =\n object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null\n ? String(object.validatorSrcAddress)\n : \"\";\n message.validatorDstAddress =\n object.validatorDstAddress !== undefined && object.validatorDstAddress !== null\n ? String(object.validatorDstAddress)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseDVVTriplet);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : \"\";\n message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseDVVTriplets = {};\nexports.DVVTriplets = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.triplets) {\n exports.DVVTriplet.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.triplets.push(exports.DVVTriplet.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = ((_a = object.triplets) !== null && _a !== void 0 ? _a : []).map((e) => exports.DVVTriplet.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.triplets) {\n obj.triplets = message.triplets.map((e) => (e ? exports.DVVTriplet.toJSON(e) : undefined));\n }\n else {\n obj.triplets = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDVVTriplets);\n message.triplets = ((_a = object.triplets) === null || _a === void 0 ? void 0 : _a.map((e) => exports.DVVTriplet.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseDelegation = { delegatorAddress: \"\", validatorAddress: \"\", shares: \"\" };\nexports.Delegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.shares !== \"\") {\n writer.uint32(26).string(message.shares);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegation);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.shares = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegation);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.shares = object.shares !== undefined && object.shares !== null ? String(object.shares) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.shares !== undefined && (obj.shares = message.shares);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseDelegation);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.shares = (_c = object.shares) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseUnbondingDelegation = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.UnbondingDelegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n for (const v of message.entries) {\n exports.UnbondingDelegationEntry.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUnbondingDelegation);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.entries.push(exports.UnbondingDelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseUnbondingDelegation);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.UnbondingDelegationEntry.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.UnbondingDelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseUnbondingDelegation);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.entries = ((_c = object.entries) === null || _c === void 0 ? void 0 : _c.map((e) => exports.UnbondingDelegationEntry.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseUnbondingDelegationEntry = { creationHeight: long_1.default.ZERO, initialBalance: \"\", balance: \"\" };\nexports.UnbondingDelegationEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.creationHeight.isZero()) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n message.creationHeight =\n object.creationHeight !== undefined && object.creationHeight !== null\n ? long_1.default.fromString(object.creationHeight)\n : long_1.default.ZERO;\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? fromJsonTimestamp(object.completionTime)\n : undefined;\n message.initialBalance =\n object.initialBalance !== undefined && object.initialBalance !== null\n ? String(object.initialBalance)\n : \"\";\n message.balance = object.balance !== undefined && object.balance !== null ? String(object.balance) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || long_1.default.ZERO).toString());\n message.completionTime !== undefined &&\n (obj.completionTime = fromTimestamp(message.completionTime).toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseUnbondingDelegationEntry);\n message.creationHeight =\n object.creationHeight !== undefined && object.creationHeight !== null\n ? long_1.default.fromValue(object.creationHeight)\n : long_1.default.ZERO;\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.completionTime)\n : undefined;\n message.initialBalance = (_a = object.initialBalance) !== null && _a !== void 0 ? _a : \"\";\n message.balance = (_b = object.balance) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseRedelegationEntry = { creationHeight: long_1.default.ZERO, initialBalance: \"\", sharesDst: \"\" };\nexports.RedelegationEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.creationHeight.isZero()) {\n writer.uint32(8).int64(message.creationHeight);\n }\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(18).fork()).ldelim();\n }\n if (message.initialBalance !== \"\") {\n writer.uint32(26).string(message.initialBalance);\n }\n if (message.sharesDst !== \"\") {\n writer.uint32(34).string(message.sharesDst);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationEntry);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.creationHeight = reader.int64();\n break;\n case 2:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.initialBalance = reader.string();\n break;\n case 4:\n message.sharesDst = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRedelegationEntry);\n message.creationHeight =\n object.creationHeight !== undefined && object.creationHeight !== null\n ? long_1.default.fromString(object.creationHeight)\n : long_1.default.ZERO;\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? fromJsonTimestamp(object.completionTime)\n : undefined;\n message.initialBalance =\n object.initialBalance !== undefined && object.initialBalance !== null\n ? String(object.initialBalance)\n : \"\";\n message.sharesDst =\n object.sharesDst !== undefined && object.sharesDst !== null ? String(object.sharesDst) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.creationHeight !== undefined &&\n (obj.creationHeight = (message.creationHeight || long_1.default.ZERO).toString());\n message.completionTime !== undefined &&\n (obj.completionTime = fromTimestamp(message.completionTime).toISOString());\n message.initialBalance !== undefined && (obj.initialBalance = message.initialBalance);\n message.sharesDst !== undefined && (obj.sharesDst = message.sharesDst);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRedelegationEntry);\n message.creationHeight =\n object.creationHeight !== undefined && object.creationHeight !== null\n ? long_1.default.fromValue(object.creationHeight)\n : long_1.default.ZERO;\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.completionTime)\n : undefined;\n message.initialBalance = (_a = object.initialBalance) !== null && _a !== void 0 ? _a : \"\";\n message.sharesDst = (_b = object.sharesDst) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseRedelegation = { delegatorAddress: \"\", validatorSrcAddress: \"\", validatorDstAddress: \"\" };\nexports.Redelegation = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n for (const v of message.entries) {\n exports.RedelegationEntry.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegation);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.entries.push(exports.RedelegationEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseRedelegation);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorSrcAddress =\n object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null\n ? String(object.validatorSrcAddress)\n : \"\";\n message.validatorDstAddress =\n object.validatorDstAddress !== undefined && object.validatorDstAddress !== null\n ? String(object.validatorDstAddress)\n : \"\";\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.RedelegationEntry.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseRedelegation);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : \"\";\n message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : \"\";\n message.entries = ((_d = object.entries) === null || _d === void 0 ? void 0 : _d.map((e) => exports.RedelegationEntry.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseParams = { maxValidators: 0, maxEntries: 0, historicalEntries: 0, bondDenom: \"\" };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.unbondingTime !== undefined) {\n duration_1.Duration.encode(message.unbondingTime, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxValidators !== 0) {\n writer.uint32(16).uint32(message.maxValidators);\n }\n if (message.maxEntries !== 0) {\n writer.uint32(24).uint32(message.maxEntries);\n }\n if (message.historicalEntries !== 0) {\n writer.uint32(32).uint32(message.historicalEntries);\n }\n if (message.bondDenom !== \"\") {\n writer.uint32(42).string(message.bondDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.unbondingTime = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 2:\n message.maxValidators = reader.uint32();\n break;\n case 3:\n message.maxEntries = reader.uint32();\n break;\n case 4:\n message.historicalEntries = reader.uint32();\n break;\n case 5:\n message.bondDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.unbondingTime =\n object.unbondingTime !== undefined && object.unbondingTime !== null\n ? duration_1.Duration.fromJSON(object.unbondingTime)\n : undefined;\n message.maxValidators =\n object.maxValidators !== undefined && object.maxValidators !== null ? Number(object.maxValidators) : 0;\n message.maxEntries =\n object.maxEntries !== undefined && object.maxEntries !== null ? Number(object.maxEntries) : 0;\n message.historicalEntries =\n object.historicalEntries !== undefined && object.historicalEntries !== null\n ? Number(object.historicalEntries)\n : 0;\n message.bondDenom =\n object.bondDenom !== undefined && object.bondDenom !== null ? String(object.bondDenom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.unbondingTime !== undefined &&\n (obj.unbondingTime = message.unbondingTime ? duration_1.Duration.toJSON(message.unbondingTime) : undefined);\n message.maxValidators !== undefined && (obj.maxValidators = message.maxValidators);\n message.maxEntries !== undefined && (obj.maxEntries = message.maxEntries);\n message.historicalEntries !== undefined && (obj.historicalEntries = message.historicalEntries);\n message.bondDenom !== undefined && (obj.bondDenom = message.bondDenom);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseParams);\n message.unbondingTime =\n object.unbondingTime !== undefined && object.unbondingTime !== null\n ? duration_1.Duration.fromPartial(object.unbondingTime)\n : undefined;\n message.maxValidators = (_a = object.maxValidators) !== null && _a !== void 0 ? _a : 0;\n message.maxEntries = (_b = object.maxEntries) !== null && _b !== void 0 ? _b : 0;\n message.historicalEntries = (_c = object.historicalEntries) !== null && _c !== void 0 ? _c : 0;\n message.bondDenom = (_d = object.bondDenom) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseDelegationResponse = {};\nexports.DelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegation !== undefined) {\n exports.Delegation.encode(message.delegation, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== undefined) {\n coin_1.Coin.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelegationResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegation = exports.Delegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.balance = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelegationResponse);\n message.delegation =\n object.delegation !== undefined && object.delegation !== null\n ? exports.Delegation.fromJSON(object.delegation)\n : undefined;\n message.balance =\n object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromJSON(object.balance) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegation !== undefined &&\n (obj.delegation = message.delegation ? exports.Delegation.toJSON(message.delegation) : undefined);\n message.balance !== undefined &&\n (obj.balance = message.balance ? coin_1.Coin.toJSON(message.balance) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelegationResponse);\n message.delegation =\n object.delegation !== undefined && object.delegation !== null\n ? exports.Delegation.fromPartial(object.delegation)\n : undefined;\n message.balance =\n object.balance !== undefined && object.balance !== null ? coin_1.Coin.fromPartial(object.balance) : undefined;\n return message;\n },\n};\nconst baseRedelegationEntryResponse = { balance: \"\" };\nexports.RedelegationEntryResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.redelegationEntry !== undefined) {\n exports.RedelegationEntry.encode(message.redelegationEntry, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== \"\") {\n writer.uint32(34).string(message.balance);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationEntryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegationEntry = exports.RedelegationEntry.decode(reader, reader.uint32());\n break;\n case 4:\n message.balance = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRedelegationEntryResponse);\n message.redelegationEntry =\n object.redelegationEntry !== undefined && object.redelegationEntry !== null\n ? exports.RedelegationEntry.fromJSON(object.redelegationEntry)\n : undefined;\n message.balance = object.balance !== undefined && object.balance !== null ? String(object.balance) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.redelegationEntry !== undefined &&\n (obj.redelegationEntry = message.redelegationEntry\n ? exports.RedelegationEntry.toJSON(message.redelegationEntry)\n : undefined);\n message.balance !== undefined && (obj.balance = message.balance);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRedelegationEntryResponse);\n message.redelegationEntry =\n object.redelegationEntry !== undefined && object.redelegationEntry !== null\n ? exports.RedelegationEntry.fromPartial(object.redelegationEntry)\n : undefined;\n message.balance = (_a = object.balance) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseRedelegationResponse = {};\nexports.RedelegationResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.redelegation !== undefined) {\n exports.Redelegation.encode(message.redelegation, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.entries) {\n exports.RedelegationEntryResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRedelegationResponse);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.redelegation = exports.Redelegation.decode(reader, reader.uint32());\n break;\n case 2:\n message.entries.push(exports.RedelegationEntryResponse.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseRedelegationResponse);\n message.redelegation =\n object.redelegation !== undefined && object.redelegation !== null\n ? exports.Redelegation.fromJSON(object.redelegation)\n : undefined;\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => exports.RedelegationEntryResponse.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.redelegation !== undefined &&\n (obj.redelegation = message.redelegation ? exports.Redelegation.toJSON(message.redelegation) : undefined);\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? exports.RedelegationEntryResponse.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRedelegationResponse);\n message.redelegation =\n object.redelegation !== undefined && object.redelegation !== null\n ? exports.Redelegation.fromPartial(object.redelegation)\n : undefined;\n message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map((e) => exports.RedelegationEntryResponse.fromPartial(e))) || [];\n return message;\n },\n};\nconst basePool = { notBondedTokens: \"\", bondedTokens: \"\" };\nexports.Pool = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.notBondedTokens !== \"\") {\n writer.uint32(10).string(message.notBondedTokens);\n }\n if (message.bondedTokens !== \"\") {\n writer.uint32(18).string(message.bondedTokens);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePool);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.notBondedTokens = reader.string();\n break;\n case 2:\n message.bondedTokens = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePool);\n message.notBondedTokens =\n object.notBondedTokens !== undefined && object.notBondedTokens !== null\n ? String(object.notBondedTokens)\n : \"\";\n message.bondedTokens =\n object.bondedTokens !== undefined && object.bondedTokens !== null ? String(object.bondedTokens) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.notBondedTokens !== undefined && (obj.notBondedTokens = message.notBondedTokens);\n message.bondedTokens !== undefined && (obj.bondedTokens = message.bondedTokens);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, basePool);\n message.notBondedTokens = (_a = object.notBondedTokens) !== null && _a !== void 0 ? _a : \"\";\n message.bondedTokens = (_b = object.bondedTokens) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=staking.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgUndelegateResponse = exports.MsgUndelegate = exports.MsgBeginRedelegateResponse = exports.MsgBeginRedelegate = exports.MsgDelegateResponse = exports.MsgDelegate = exports.MsgEditValidatorResponse = exports.MsgEditValidator = exports.MsgCreateValidatorResponse = exports.MsgCreateValidator = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst staking_1 = require(\"../../../cosmos/staking/v1beta1/staking\");\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nconst timestamp_1 = require(\"../../../google/protobuf/timestamp\");\nexports.protobufPackage = \"cosmos.staking.v1beta1\";\nconst baseMsgCreateValidator = { minSelfDelegation: \"\", delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgCreateValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.commission !== undefined) {\n staking_1.CommissionRates.encode(message.commission, writer.uint32(18).fork()).ldelim();\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(26).string(message.minSelfDelegation);\n }\n if (message.delegatorAddress !== \"\") {\n writer.uint32(34).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(42).string(message.validatorAddress);\n }\n if (message.pubkey !== undefined) {\n any_1.Any.encode(message.pubkey, writer.uint32(50).fork()).ldelim();\n }\n if (message.value !== undefined) {\n coin_1.Coin.encode(message.value, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.commission = staking_1.CommissionRates.decode(reader, reader.uint32());\n break;\n case 3:\n message.minSelfDelegation = reader.string();\n break;\n case 4:\n message.delegatorAddress = reader.string();\n break;\n case 5:\n message.validatorAddress = reader.string();\n break;\n case 6:\n message.pubkey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 7:\n message.value = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgCreateValidator);\n message.description =\n object.description !== undefined && object.description !== null\n ? staking_1.Description.fromJSON(object.description)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? staking_1.CommissionRates.fromJSON(object.commission)\n : undefined;\n message.minSelfDelegation =\n object.minSelfDelegation !== undefined && object.minSelfDelegation !== null\n ? String(object.minSelfDelegation)\n : \"\";\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.pubkey =\n object.pubkey !== undefined && object.pubkey !== null ? any_1.Any.fromJSON(object.pubkey) : undefined;\n message.value =\n object.value !== undefined && object.value !== null ? coin_1.Coin.fromJSON(object.value) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.commission !== undefined &&\n (obj.commission = message.commission ? staking_1.CommissionRates.toJSON(message.commission) : undefined);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.pubkey !== undefined && (obj.pubkey = message.pubkey ? any_1.Any.toJSON(message.pubkey) : undefined);\n message.value !== undefined && (obj.value = message.value ? coin_1.Coin.toJSON(message.value) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgCreateValidator);\n message.description =\n object.description !== undefined && object.description !== null\n ? staking_1.Description.fromPartial(object.description)\n : undefined;\n message.commission =\n object.commission !== undefined && object.commission !== null\n ? staking_1.CommissionRates.fromPartial(object.commission)\n : undefined;\n message.minSelfDelegation = (_a = object.minSelfDelegation) !== null && _a !== void 0 ? _a : \"\";\n message.delegatorAddress = (_b = object.delegatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.validatorAddress = (_c = object.validatorAddress) !== null && _c !== void 0 ? _c : \"\";\n message.pubkey =\n object.pubkey !== undefined && object.pubkey !== null ? any_1.Any.fromPartial(object.pubkey) : undefined;\n message.value =\n object.value !== undefined && object.value !== null ? coin_1.Coin.fromPartial(object.value) : undefined;\n return message;\n },\n};\nconst baseMsgCreateValidatorResponse = {};\nexports.MsgCreateValidatorResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgCreateValidatorResponse);\n return message;\n },\n};\nconst baseMsgEditValidator = { validatorAddress: \"\", commissionRate: \"\", minSelfDelegation: \"\" };\nexports.MsgEditValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.description !== undefined) {\n staking_1.Description.encode(message.description, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.commissionRate !== \"\") {\n writer.uint32(26).string(message.commissionRate);\n }\n if (message.minSelfDelegation !== \"\") {\n writer.uint32(34).string(message.minSelfDelegation);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgEditValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.description = staking_1.Description.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.commissionRate = reader.string();\n break;\n case 4:\n message.minSelfDelegation = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgEditValidator);\n message.description =\n object.description !== undefined && object.description !== null\n ? staking_1.Description.fromJSON(object.description)\n : undefined;\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.commissionRate =\n object.commissionRate !== undefined && object.commissionRate !== null\n ? String(object.commissionRate)\n : \"\";\n message.minSelfDelegation =\n object.minSelfDelegation !== undefined && object.minSelfDelegation !== null\n ? String(object.minSelfDelegation)\n : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.description !== undefined &&\n (obj.description = message.description ? staking_1.Description.toJSON(message.description) : undefined);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.commissionRate !== undefined && (obj.commissionRate = message.commissionRate);\n message.minSelfDelegation !== undefined && (obj.minSelfDelegation = message.minSelfDelegation);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgEditValidator);\n message.description =\n object.description !== undefined && object.description !== null\n ? staking_1.Description.fromPartial(object.description)\n : undefined;\n message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.commissionRate = (_b = object.commissionRate) !== null && _b !== void 0 ? _b : \"\";\n message.minSelfDelegation = (_c = object.minSelfDelegation) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgEditValidatorResponse = {};\nexports.MsgEditValidatorResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgEditValidatorResponse);\n return message;\n },\n};\nconst baseMsgDelegate = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgDelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgDelegate);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromJSON(object.amount) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgDelegate);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined;\n return message;\n },\n};\nconst baseMsgDelegateResponse = {};\nexports.MsgDelegateResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgDelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgDelegateResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgDelegateResponse);\n return message;\n },\n};\nconst baseMsgBeginRedelegate = {\n delegatorAddress: \"\",\n validatorSrcAddress: \"\",\n validatorDstAddress: \"\",\n};\nexports.MsgBeginRedelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorSrcAddress !== \"\") {\n writer.uint32(18).string(message.validatorSrcAddress);\n }\n if (message.validatorDstAddress !== \"\") {\n writer.uint32(26).string(message.validatorDstAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgBeginRedelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorSrcAddress = reader.string();\n break;\n case 3:\n message.validatorDstAddress = reader.string();\n break;\n case 4:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgBeginRedelegate);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorSrcAddress =\n object.validatorSrcAddress !== undefined && object.validatorSrcAddress !== null\n ? String(object.validatorSrcAddress)\n : \"\";\n message.validatorDstAddress =\n object.validatorDstAddress !== undefined && object.validatorDstAddress !== null\n ? String(object.validatorDstAddress)\n : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromJSON(object.amount) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorSrcAddress !== undefined && (obj.validatorSrcAddress = message.validatorSrcAddress);\n message.validatorDstAddress !== undefined && (obj.validatorDstAddress = message.validatorDstAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgBeginRedelegate);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorSrcAddress = (_b = object.validatorSrcAddress) !== null && _b !== void 0 ? _b : \"\";\n message.validatorDstAddress = (_c = object.validatorDstAddress) !== null && _c !== void 0 ? _c : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined;\n return message;\n },\n};\nconst baseMsgBeginRedelegateResponse = {};\nexports.MsgBeginRedelegateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? fromJsonTimestamp(object.completionTime)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined &&\n (obj.completionTime = fromTimestamp(message.completionTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgBeginRedelegateResponse);\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.completionTime)\n : undefined;\n return message;\n },\n};\nconst baseMsgUndelegate = { delegatorAddress: \"\", validatorAddress: \"\" };\nexports.MsgUndelegate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.delegatorAddress !== \"\") {\n writer.uint32(10).string(message.delegatorAddress);\n }\n if (message.validatorAddress !== \"\") {\n writer.uint32(18).string(message.validatorAddress);\n }\n if (message.amount !== undefined) {\n coin_1.Coin.encode(message.amount, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUndelegate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.delegatorAddress = reader.string();\n break;\n case 2:\n message.validatorAddress = reader.string();\n break;\n case 3:\n message.amount = coin_1.Coin.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUndelegate);\n message.delegatorAddress =\n object.delegatorAddress !== undefined && object.delegatorAddress !== null\n ? String(object.delegatorAddress)\n : \"\";\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? String(object.validatorAddress)\n : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromJSON(object.amount) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);\n message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);\n message.amount !== undefined && (obj.amount = message.amount ? coin_1.Coin.toJSON(message.amount) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgUndelegate);\n message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : \"\";\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? coin_1.Coin.fromPartial(object.amount) : undefined;\n return message;\n },\n};\nconst baseMsgUndelegateResponse = {};\nexports.MsgUndelegateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.completionTime !== undefined) {\n timestamp_1.Timestamp.encode(message.completionTime, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUndelegateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.completionTime = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUndelegateResponse);\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? fromJsonTimestamp(object.completionTime)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.completionTime !== undefined &&\n (obj.completionTime = fromTimestamp(message.completionTime).toISOString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgUndelegateResponse);\n message.completionTime =\n object.completionTime !== undefined && object.completionTime !== null\n ? timestamp_1.Timestamp.fromPartial(object.completionTime)\n : undefined;\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateValidator = this.CreateValidator.bind(this);\n this.EditValidator = this.EditValidator.bind(this);\n this.Delegate = this.Delegate.bind(this);\n this.BeginRedelegate = this.BeginRedelegate.bind(this);\n this.Undelegate = this.Undelegate.bind(this);\n }\n CreateValidator(request) {\n const data = exports.MsgCreateValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"CreateValidator\", data);\n return promise.then((data) => exports.MsgCreateValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n EditValidator(request) {\n const data = exports.MsgEditValidator.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"EditValidator\", data);\n return promise.then((data) => exports.MsgEditValidatorResponse.decode(new minimal_1.default.Reader(data)));\n }\n Delegate(request) {\n const data = exports.MsgDelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Delegate\", data);\n return promise.then((data) => exports.MsgDelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n BeginRedelegate(request) {\n const data = exports.MsgBeginRedelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"BeginRedelegate\", data);\n return promise.then((data) => exports.MsgBeginRedelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n Undelegate(request) {\n const data = exports.MsgUndelegate.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.staking.v1beta1.Msg\", \"Undelegate\", data);\n return promise.then((data) => exports.MsgUndelegateResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureDescriptor_Data_Multi = exports.SignatureDescriptor_Data_Single = exports.SignatureDescriptor_Data = exports.SignatureDescriptor = exports.SignatureDescriptors = exports.signModeToJSON = exports.signModeFromJSON = exports.SignMode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst multisig_1 = require(\"../../../../cosmos/crypto/multisig/v1beta1/multisig\");\nexports.protobufPackage = \"cosmos.tx.signing.v1beta1\";\n/** SignMode represents a signing mode with its own security guarantees. */\nvar SignMode;\n(function (SignMode) {\n /**\n * SIGN_MODE_UNSPECIFIED - SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be\n * rejected\n */\n SignMode[SignMode[\"SIGN_MODE_UNSPECIFIED\"] = 0] = \"SIGN_MODE_UNSPECIFIED\";\n /**\n * SIGN_MODE_DIRECT - SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is\n * verified with raw bytes from Tx\n */\n SignMode[SignMode[\"SIGN_MODE_DIRECT\"] = 1] = \"SIGN_MODE_DIRECT\";\n /**\n * SIGN_MODE_TEXTUAL - SIGN_MODE_TEXTUAL is a future signing mode that will verify some\n * human-readable textual representation on top of the binary representation\n * from SIGN_MODE_DIRECT\n */\n SignMode[SignMode[\"SIGN_MODE_TEXTUAL\"] = 2] = \"SIGN_MODE_TEXTUAL\";\n /**\n * SIGN_MODE_LEGACY_AMINO_JSON - SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses\n * Amino JSON and will be removed in the future\n */\n SignMode[SignMode[\"SIGN_MODE_LEGACY_AMINO_JSON\"] = 127] = \"SIGN_MODE_LEGACY_AMINO_JSON\";\n SignMode[SignMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignMode = exports.SignMode || (exports.SignMode = {}));\nfunction signModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGN_MODE_UNSPECIFIED\":\n return SignMode.SIGN_MODE_UNSPECIFIED;\n case 1:\n case \"SIGN_MODE_DIRECT\":\n return SignMode.SIGN_MODE_DIRECT;\n case 2:\n case \"SIGN_MODE_TEXTUAL\":\n return SignMode.SIGN_MODE_TEXTUAL;\n case 127:\n case \"SIGN_MODE_LEGACY_AMINO_JSON\":\n return SignMode.SIGN_MODE_LEGACY_AMINO_JSON;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignMode.UNRECOGNIZED;\n }\n}\nexports.signModeFromJSON = signModeFromJSON;\nfunction signModeToJSON(object) {\n switch (object) {\n case SignMode.SIGN_MODE_UNSPECIFIED:\n return \"SIGN_MODE_UNSPECIFIED\";\n case SignMode.SIGN_MODE_DIRECT:\n return \"SIGN_MODE_DIRECT\";\n case SignMode.SIGN_MODE_TEXTUAL:\n return \"SIGN_MODE_TEXTUAL\";\n case SignMode.SIGN_MODE_LEGACY_AMINO_JSON:\n return \"SIGN_MODE_LEGACY_AMINO_JSON\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.signModeToJSON = signModeToJSON;\nconst baseSignatureDescriptors = {};\nexports.SignatureDescriptors = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signatures) {\n exports.SignatureDescriptor.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signatures.push(exports.SignatureDescriptor.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => exports.SignatureDescriptor.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSignatureDescriptors);\n message.signatures = ((_a = object.signatures) === null || _a === void 0 ? void 0 : _a.map((e) => exports.SignatureDescriptor.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseSignatureDescriptor = { sequence: long_1.default.UZERO };\nexports.SignatureDescriptor = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.data !== undefined) {\n exports.SignatureDescriptor_Data.encode(message.data, writer.uint32(18).fork()).ldelim();\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = exports.SignatureDescriptor_Data.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor);\n message.publicKey =\n object.publicKey !== undefined && object.publicKey !== null\n ? any_1.Any.fromJSON(object.publicKey)\n : undefined;\n message.data =\n object.data !== undefined && object.data !== null\n ? exports.SignatureDescriptor_Data.fromJSON(object.data)\n : undefined;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.data !== undefined &&\n (obj.data = message.data ? exports.SignatureDescriptor_Data.toJSON(message.data) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor);\n message.publicKey =\n object.publicKey !== undefined && object.publicKey !== null\n ? any_1.Any.fromPartial(object.publicKey)\n : undefined;\n message.data =\n object.data !== undefined && object.data !== null\n ? exports.SignatureDescriptor_Data.fromPartial(object.data)\n : undefined;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseSignatureDescriptor_Data = {};\nexports.SignatureDescriptor_Data = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.single !== undefined) {\n exports.SignatureDescriptor_Data_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.SignatureDescriptor_Data_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.SignatureDescriptor_Data_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.SignatureDescriptor_Data_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n message.single =\n object.single !== undefined && object.single !== null\n ? exports.SignatureDescriptor_Data_Single.fromJSON(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null\n ? exports.SignatureDescriptor_Data_Multi.fromJSON(object.multi)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.SignatureDescriptor_Data_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.SignatureDescriptor_Data_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data);\n message.single =\n object.single !== undefined && object.single !== null\n ? exports.SignatureDescriptor_Data_Single.fromPartial(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null\n ? exports.SignatureDescriptor_Data_Multi.fromPartial(object.multi)\n : undefined;\n return message;\n },\n};\nconst baseSignatureDescriptor_Data_Single = { mode: 0 };\nexports.SignatureDescriptor_Data_Single = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n if (message.signature.length !== 0) {\n writer.uint32(18).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n case 2:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.mode = object.mode !== undefined && object.mode !== null ? signModeFromJSON(object.mode) : 0;\n message.signature =\n object.signature !== undefined && object.signature !== null\n ? bytesFromBase64(object.signature)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signModeToJSON(message.mode));\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Single);\n message.mode = (_a = object.mode) !== null && _a !== void 0 ? _a : 0;\n message.signature = (_b = object.signature) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseSignatureDescriptor_Data_Multi = {};\nexports.SignatureDescriptor_Data_Multi = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.SignatureDescriptor_Data.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.signatures.push(exports.SignatureDescriptor_Data.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? multisig_1.CompactBitArray.fromJSON(object.bitarray)\n : undefined;\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => exports.SignatureDescriptor_Data.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.SignatureDescriptor_Data.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSignatureDescriptor_Data_Multi);\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? multisig_1.CompactBitArray.fromPartial(object.bitarray)\n : undefined;\n message.signatures = ((_a = object.signatures) === null || _a === void 0 ? void 0 : _a.map((e) => exports.SignatureDescriptor_Data.fromPartial(e))) || [];\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=signing.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceClientImpl = exports.GetTxResponse = exports.GetTxRequest = exports.SimulateResponse = exports.SimulateRequest = exports.BroadcastTxResponse = exports.BroadcastTxRequest = exports.GetTxsEventResponse = exports.GetTxsEventRequest = exports.broadcastModeToJSON = exports.broadcastModeFromJSON = exports.BroadcastMode = exports.orderByToJSON = exports.orderByFromJSON = exports.OrderBy = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nconst abci_1 = require(\"../../../cosmos/base/abci/v1beta1/abci\");\nconst tx_1 = require(\"../../../cosmos/tx/v1beta1/tx\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\n/** OrderBy defines the sorting order */\nvar OrderBy;\n(function (OrderBy) {\n /** ORDER_BY_UNSPECIFIED - ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. */\n OrderBy[OrderBy[\"ORDER_BY_UNSPECIFIED\"] = 0] = \"ORDER_BY_UNSPECIFIED\";\n /** ORDER_BY_ASC - ORDER_BY_ASC defines ascending order */\n OrderBy[OrderBy[\"ORDER_BY_ASC\"] = 1] = \"ORDER_BY_ASC\";\n /** ORDER_BY_DESC - ORDER_BY_DESC defines descending order */\n OrderBy[OrderBy[\"ORDER_BY_DESC\"] = 2] = \"ORDER_BY_DESC\";\n OrderBy[OrderBy[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(OrderBy = exports.OrderBy || (exports.OrderBy = {}));\nfunction orderByFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_BY_UNSPECIFIED\":\n return OrderBy.ORDER_BY_UNSPECIFIED;\n case 1:\n case \"ORDER_BY_ASC\":\n return OrderBy.ORDER_BY_ASC;\n case 2:\n case \"ORDER_BY_DESC\":\n return OrderBy.ORDER_BY_DESC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return OrderBy.UNRECOGNIZED;\n }\n}\nexports.orderByFromJSON = orderByFromJSON;\nfunction orderByToJSON(object) {\n switch (object) {\n case OrderBy.ORDER_BY_UNSPECIFIED:\n return \"ORDER_BY_UNSPECIFIED\";\n case OrderBy.ORDER_BY_ASC:\n return \"ORDER_BY_ASC\";\n case OrderBy.ORDER_BY_DESC:\n return \"ORDER_BY_DESC\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.orderByToJSON = orderByToJSON;\n/** BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. */\nvar BroadcastMode;\n(function (BroadcastMode) {\n /** BROADCAST_MODE_UNSPECIFIED - zero-value for mode ordering */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_UNSPECIFIED\"] = 0] = \"BROADCAST_MODE_UNSPECIFIED\";\n /**\n * BROADCAST_MODE_BLOCK - BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for\n * the tx to be committed in a block.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_BLOCK\"] = 1] = \"BROADCAST_MODE_BLOCK\";\n /**\n * BROADCAST_MODE_SYNC - BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for\n * a CheckTx execution response only.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_SYNC\"] = 2] = \"BROADCAST_MODE_SYNC\";\n /**\n * BROADCAST_MODE_ASYNC - BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns\n * immediately.\n */\n BroadcastMode[BroadcastMode[\"BROADCAST_MODE_ASYNC\"] = 3] = \"BROADCAST_MODE_ASYNC\";\n BroadcastMode[BroadcastMode[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BroadcastMode = exports.BroadcastMode || (exports.BroadcastMode = {}));\nfunction broadcastModeFromJSON(object) {\n switch (object) {\n case 0:\n case \"BROADCAST_MODE_UNSPECIFIED\":\n return BroadcastMode.BROADCAST_MODE_UNSPECIFIED;\n case 1:\n case \"BROADCAST_MODE_BLOCK\":\n return BroadcastMode.BROADCAST_MODE_BLOCK;\n case 2:\n case \"BROADCAST_MODE_SYNC\":\n return BroadcastMode.BROADCAST_MODE_SYNC;\n case 3:\n case \"BROADCAST_MODE_ASYNC\":\n return BroadcastMode.BROADCAST_MODE_ASYNC;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BroadcastMode.UNRECOGNIZED;\n }\n}\nexports.broadcastModeFromJSON = broadcastModeFromJSON;\nfunction broadcastModeToJSON(object) {\n switch (object) {\n case BroadcastMode.BROADCAST_MODE_UNSPECIFIED:\n return \"BROADCAST_MODE_UNSPECIFIED\";\n case BroadcastMode.BROADCAST_MODE_BLOCK:\n return \"BROADCAST_MODE_BLOCK\";\n case BroadcastMode.BROADCAST_MODE_SYNC:\n return \"BROADCAST_MODE_SYNC\";\n case BroadcastMode.BROADCAST_MODE_ASYNC:\n return \"BROADCAST_MODE_ASYNC\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.broadcastModeToJSON = broadcastModeToJSON;\nconst baseGetTxsEventRequest = { events: \"\", orderBy: 0 };\nexports.GetTxsEventRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.events) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.orderBy !== 0) {\n writer.uint32(24).int32(message.orderBy);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(reader.string());\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n case 3:\n message.orderBy = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n message.orderBy =\n object.orderBy !== undefined && object.orderBy !== null ? orderByFromJSON(object.orderBy) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => e);\n }\n else {\n obj.events = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n message.orderBy !== undefined && (obj.orderBy = orderByToJSON(message.orderBy));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseGetTxsEventRequest);\n message.events = ((_a = object.events) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n message.orderBy = (_b = object.orderBy) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseGetTxsEventResponse = {};\nexports.GetTxsEventResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.txs) {\n tx_1.Tx.encode(v, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.txResponses) {\n abci_1.TxResponse.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = [];\n message.txResponses = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(tx_1.Tx.decode(reader, reader.uint32()));\n break;\n case 2:\n message.txResponses.push(abci_1.TxResponse.decode(reader, reader.uint32()));\n break;\n case 3:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = ((_a = object.txs) !== null && _a !== void 0 ? _a : []).map((e) => tx_1.Tx.fromJSON(e));\n message.txResponses = ((_b = object.txResponses) !== null && _b !== void 0 ? _b : []).map((e) => abci_1.TxResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => (e ? tx_1.Tx.toJSON(e) : undefined));\n }\n else {\n obj.txs = [];\n }\n if (message.txResponses) {\n obj.txResponses = message.txResponses.map((e) => (e ? abci_1.TxResponse.toJSON(e) : undefined));\n }\n else {\n obj.txResponses = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseGetTxsEventResponse);\n message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map((e) => tx_1.Tx.fromPartial(e))) || [];\n message.txResponses = ((_b = object.txResponses) === null || _b === void 0 ? void 0 : _b.map((e) => abci_1.TxResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseBroadcastTxRequest = { mode: 0 };\nexports.BroadcastTxRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.txBytes.length !== 0) {\n writer.uint32(10).bytes(message.txBytes);\n }\n if (message.mode !== 0) {\n writer.uint32(16).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBroadcastTxRequest);\n message.txBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txBytes = reader.bytes();\n break;\n case 2:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBroadcastTxRequest);\n message.txBytes =\n object.txBytes !== undefined && object.txBytes !== null\n ? bytesFromBase64(object.txBytes)\n : new Uint8Array();\n message.mode = object.mode !== undefined && object.mode !== null ? broadcastModeFromJSON(object.mode) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.txBytes !== undefined &&\n (obj.txBytes = base64FromBytes(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n message.mode !== undefined && (obj.mode = broadcastModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseBroadcastTxRequest);\n message.txBytes = (_a = object.txBytes) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.mode = (_b = object.mode) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseBroadcastTxResponse = {};\nexports.BroadcastTxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBroadcastTxResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBroadcastTxResponse);\n message.txResponse =\n object.txResponse !== undefined && object.txResponse !== null\n ? abci_1.TxResponse.fromJSON(object.txResponse)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBroadcastTxResponse);\n message.txResponse =\n object.txResponse !== undefined && object.txResponse !== null\n ? abci_1.TxResponse.fromPartial(object.txResponse)\n : undefined;\n return message;\n },\n};\nconst baseSimulateRequest = {};\nexports.SimulateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txBytes.length !== 0) {\n writer.uint32(18).bytes(message.txBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulateRequest);\n message.txBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulateRequest);\n message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromJSON(object.tx) : undefined;\n message.txBytes =\n object.txBytes !== undefined && object.txBytes !== null\n ? bytesFromBase64(object.txBytes)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txBytes !== undefined &&\n (obj.txBytes = base64FromBytes(message.txBytes !== undefined ? message.txBytes : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseSimulateRequest);\n message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromPartial(object.tx) : undefined;\n message.txBytes = (_a = object.txBytes) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseSimulateResponse = {};\nexports.SimulateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.gasInfo !== undefined) {\n abci_1.GasInfo.encode(message.gasInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.result !== undefined) {\n abci_1.Result.encode(message.result, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimulateResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gasInfo = abci_1.GasInfo.decode(reader, reader.uint32());\n break;\n case 2:\n message.result = abci_1.Result.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimulateResponse);\n message.gasInfo =\n object.gasInfo !== undefined && object.gasInfo !== null ? abci_1.GasInfo.fromJSON(object.gasInfo) : undefined;\n message.result =\n object.result !== undefined && object.result !== null ? abci_1.Result.fromJSON(object.result) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.gasInfo !== undefined &&\n (obj.gasInfo = message.gasInfo ? abci_1.GasInfo.toJSON(message.gasInfo) : undefined);\n message.result !== undefined && (obj.result = message.result ? abci_1.Result.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimulateResponse);\n message.gasInfo =\n object.gasInfo !== undefined && object.gasInfo !== null\n ? abci_1.GasInfo.fromPartial(object.gasInfo)\n : undefined;\n message.result =\n object.result !== undefined && object.result !== null ? abci_1.Result.fromPartial(object.result) : undefined;\n return message;\n },\n};\nconst baseGetTxRequest = { hash: \"\" };\nexports.GetTxRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGetTxRequest);\n message.hash = object.hash !== undefined && object.hash !== null ? String(object.hash) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseGetTxRequest);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseGetTxResponse = {};\nexports.GetTxResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx !== undefined) {\n tx_1.Tx.encode(message.tx, writer.uint32(10).fork()).ldelim();\n }\n if (message.txResponse !== undefined) {\n abci_1.TxResponse.encode(message.txResponse, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseGetTxResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = tx_1.Tx.decode(reader, reader.uint32());\n break;\n case 2:\n message.txResponse = abci_1.TxResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseGetTxResponse);\n message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromJSON(object.tx) : undefined;\n message.txResponse =\n object.txResponse !== undefined && object.txResponse !== null\n ? abci_1.TxResponse.fromJSON(object.txResponse)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined && (obj.tx = message.tx ? tx_1.Tx.toJSON(message.tx) : undefined);\n message.txResponse !== undefined &&\n (obj.txResponse = message.txResponse ? abci_1.TxResponse.toJSON(message.txResponse) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseGetTxResponse);\n message.tx = object.tx !== undefined && object.tx !== null ? tx_1.Tx.fromPartial(object.tx) : undefined;\n message.txResponse =\n object.txResponse !== undefined && object.txResponse !== null\n ? abci_1.TxResponse.fromPartial(object.txResponse)\n : undefined;\n return message;\n },\n};\nclass ServiceClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Simulate = this.Simulate.bind(this);\n this.GetTx = this.GetTx.bind(this);\n this.BroadcastTx = this.BroadcastTx.bind(this);\n this.GetTxsEvent = this.GetTxsEvent.bind(this);\n }\n Simulate(request) {\n const data = exports.SimulateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"Simulate\", data);\n return promise.then((data) => exports.SimulateResponse.decode(new minimal_1.default.Reader(data)));\n }\n GetTx(request) {\n const data = exports.GetTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTx\", data);\n return promise.then((data) => exports.GetTxResponse.decode(new minimal_1.default.Reader(data)));\n }\n BroadcastTx(request) {\n const data = exports.BroadcastTxRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"BroadcastTx\", data);\n return promise.then((data) => exports.BroadcastTxResponse.decode(new minimal_1.default.Reader(data)));\n }\n GetTxsEvent(request) {\n const data = exports.GetTxsEventRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmos.tx.v1beta1.Service\", \"GetTxsEvent\", data);\n return promise.then((data) => exports.GetTxsEventResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.ServiceClientImpl = ServiceClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=service.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fee = exports.ModeInfo_Multi = exports.ModeInfo_Single = exports.ModeInfo = exports.SignerInfo = exports.AuthInfo = exports.TxBody = exports.SignDoc = exports.TxRaw = exports.Tx = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nconst signing_1 = require(\"../../../cosmos/tx/signing/v1beta1/signing\");\nconst multisig_1 = require(\"../../../cosmos/crypto/multisig/v1beta1/multisig\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.tx.v1beta1\";\nconst baseTx = {};\nexports.Tx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.body !== undefined) {\n exports.TxBody.encode(message.body, writer.uint32(10).fork()).ldelim();\n }\n if (message.authInfo !== undefined) {\n exports.AuthInfo.encode(message.authInfo, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTx);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.body = exports.TxBody.decode(reader, reader.uint32());\n break;\n case 2:\n message.authInfo = exports.AuthInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseTx);\n message.body =\n object.body !== undefined && object.body !== null ? exports.TxBody.fromJSON(object.body) : undefined;\n message.authInfo =\n object.authInfo !== undefined && object.authInfo !== null\n ? exports.AuthInfo.fromJSON(object.authInfo)\n : undefined;\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.body !== undefined && (obj.body = message.body ? exports.TxBody.toJSON(message.body) : undefined);\n message.authInfo !== undefined &&\n (obj.authInfo = message.authInfo ? exports.AuthInfo.toJSON(message.authInfo) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseTx);\n message.body =\n object.body !== undefined && object.body !== null ? exports.TxBody.fromPartial(object.body) : undefined;\n message.authInfo =\n object.authInfo !== undefined && object.authInfo !== null\n ? exports.AuthInfo.fromPartial(object.authInfo)\n : undefined;\n message.signatures = ((_a = object.signatures) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseTxRaw = {};\nexports.TxRaw = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n for (const v of message.signatures) {\n writer.uint32(26).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxRaw);\n message.signatures = [];\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.signatures.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseTxRaw);\n message.bodyBytes =\n object.bodyBytes !== undefined && object.bodyBytes !== null\n ? bytesFromBase64(object.bodyBytes)\n : new Uint8Array();\n message.authInfoBytes =\n object.authInfoBytes !== undefined && object.authInfoBytes !== null\n ? bytesFromBase64(object.authInfoBytes)\n : new Uint8Array();\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseTxRaw);\n message.bodyBytes = (_a = object.bodyBytes) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.authInfoBytes = (_b = object.authInfoBytes) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.signatures = ((_c = object.signatures) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n return message;\n },\n};\nconst baseSignDoc = { chainId: \"\", accountNumber: long_1.default.UZERO };\nexports.SignDoc = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bodyBytes.length !== 0) {\n writer.uint32(10).bytes(message.bodyBytes);\n }\n if (message.authInfoBytes.length !== 0) {\n writer.uint32(18).bytes(message.authInfoBytes);\n }\n if (message.chainId !== \"\") {\n writer.uint32(26).string(message.chainId);\n }\n if (!message.accountNumber.isZero()) {\n writer.uint32(32).uint64(message.accountNumber);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes = new Uint8Array();\n message.authInfoBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bodyBytes = reader.bytes();\n break;\n case 2:\n message.authInfoBytes = reader.bytes();\n break;\n case 3:\n message.chainId = reader.string();\n break;\n case 4:\n message.accountNumber = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes =\n object.bodyBytes !== undefined && object.bodyBytes !== null\n ? bytesFromBase64(object.bodyBytes)\n : new Uint8Array();\n message.authInfoBytes =\n object.authInfoBytes !== undefined && object.authInfoBytes !== null\n ? bytesFromBase64(object.authInfoBytes)\n : new Uint8Array();\n message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : \"\";\n message.accountNumber =\n object.accountNumber !== undefined && object.accountNumber !== null\n ? long_1.default.fromString(object.accountNumber)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bodyBytes !== undefined &&\n (obj.bodyBytes = base64FromBytes(message.bodyBytes !== undefined ? message.bodyBytes : new Uint8Array()));\n message.authInfoBytes !== undefined &&\n (obj.authInfoBytes = base64FromBytes(message.authInfoBytes !== undefined ? message.authInfoBytes : new Uint8Array()));\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.accountNumber !== undefined &&\n (obj.accountNumber = (message.accountNumber || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseSignDoc);\n message.bodyBytes = (_a = object.bodyBytes) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.authInfoBytes = (_b = object.authInfoBytes) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.chainId = (_c = object.chainId) !== null && _c !== void 0 ? _c : \"\";\n message.accountNumber =\n object.accountNumber !== undefined && object.accountNumber !== null\n ? long_1.default.fromValue(object.accountNumber)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseTxBody = { memo: \"\", timeoutHeight: long_1.default.UZERO };\nexports.TxBody = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.messages) {\n any_1.Any.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.memo !== \"\") {\n writer.uint32(18).string(message.memo);\n }\n if (!message.timeoutHeight.isZero()) {\n writer.uint32(24).uint64(message.timeoutHeight);\n }\n for (const v of message.extensionOptions) {\n any_1.Any.encode(v, writer.uint32(8186).fork()).ldelim();\n }\n for (const v of message.nonCriticalExtensionOptions) {\n any_1.Any.encode(v, writer.uint32(16378).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxBody);\n message.messages = [];\n message.extensionOptions = [];\n message.nonCriticalExtensionOptions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messages.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memo = reader.string();\n break;\n case 3:\n message.timeoutHeight = reader.uint64();\n break;\n case 1023:\n message.extensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n case 2047:\n message.nonCriticalExtensionOptions.push(any_1.Any.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseTxBody);\n message.messages = ((_a = object.messages) !== null && _a !== void 0 ? _a : []).map((e) => any_1.Any.fromJSON(e));\n message.memo = object.memo !== undefined && object.memo !== null ? String(object.memo) : \"\";\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? long_1.default.fromString(object.timeoutHeight)\n : long_1.default.UZERO;\n message.extensionOptions = ((_b = object.extensionOptions) !== null && _b !== void 0 ? _b : []).map((e) => any_1.Any.fromJSON(e));\n message.nonCriticalExtensionOptions = ((_c = object.nonCriticalExtensionOptions) !== null && _c !== void 0 ? _c : []).map((e) => any_1.Any.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.messages) {\n obj.messages = message.messages.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.messages = [];\n }\n message.memo !== undefined && (obj.memo = message.memo);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = (message.timeoutHeight || long_1.default.UZERO).toString());\n if (message.extensionOptions) {\n obj.extensionOptions = message.extensionOptions.map((e) => (e ? any_1.Any.toJSON(e) : undefined));\n }\n else {\n obj.extensionOptions = [];\n }\n if (message.nonCriticalExtensionOptions) {\n obj.nonCriticalExtensionOptions = message.nonCriticalExtensionOptions.map((e) => e ? any_1.Any.toJSON(e) : undefined);\n }\n else {\n obj.nonCriticalExtensionOptions = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseTxBody);\n message.messages = ((_a = object.messages) === null || _a === void 0 ? void 0 : _a.map((e) => any_1.Any.fromPartial(e))) || [];\n message.memo = (_b = object.memo) !== null && _b !== void 0 ? _b : \"\";\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? long_1.default.fromValue(object.timeoutHeight)\n : long_1.default.UZERO;\n message.extensionOptions = ((_c = object.extensionOptions) === null || _c === void 0 ? void 0 : _c.map((e) => any_1.Any.fromPartial(e))) || [];\n message.nonCriticalExtensionOptions =\n ((_d = object.nonCriticalExtensionOptions) === null || _d === void 0 ? void 0 : _d.map((e) => any_1.Any.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseAuthInfo = {};\nexports.AuthInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.signerInfos) {\n exports.SignerInfo.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.fee !== undefined) {\n exports.Fee.encode(message.fee, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signerInfos.push(exports.SignerInfo.decode(reader, reader.uint32()));\n break;\n case 2:\n message.fee = exports.Fee.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = ((_a = object.signerInfos) !== null && _a !== void 0 ? _a : []).map((e) => exports.SignerInfo.fromJSON(e));\n message.fee = object.fee !== undefined && object.fee !== null ? exports.Fee.fromJSON(object.fee) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.signerInfos) {\n obj.signerInfos = message.signerInfos.map((e) => (e ? exports.SignerInfo.toJSON(e) : undefined));\n }\n else {\n obj.signerInfos = [];\n }\n message.fee !== undefined && (obj.fee = message.fee ? exports.Fee.toJSON(message.fee) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseAuthInfo);\n message.signerInfos = ((_a = object.signerInfos) === null || _a === void 0 ? void 0 : _a.map((e) => exports.SignerInfo.fromPartial(e))) || [];\n message.fee = object.fee !== undefined && object.fee !== null ? exports.Fee.fromPartial(object.fee) : undefined;\n return message;\n },\n};\nconst baseSignerInfo = { sequence: long_1.default.UZERO };\nexports.SignerInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.publicKey !== undefined) {\n any_1.Any.encode(message.publicKey, writer.uint32(10).fork()).ldelim();\n }\n if (message.modeInfo !== undefined) {\n exports.ModeInfo.encode(message.modeInfo, writer.uint32(18).fork()).ldelim();\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignerInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.publicKey = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfo = exports.ModeInfo.decode(reader, reader.uint32());\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignerInfo);\n message.publicKey =\n object.publicKey !== undefined && object.publicKey !== null\n ? any_1.Any.fromJSON(object.publicKey)\n : undefined;\n message.modeInfo =\n object.modeInfo !== undefined && object.modeInfo !== null\n ? exports.ModeInfo.fromJSON(object.modeInfo)\n : undefined;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.publicKey !== undefined &&\n (obj.publicKey = message.publicKey ? any_1.Any.toJSON(message.publicKey) : undefined);\n message.modeInfo !== undefined &&\n (obj.modeInfo = message.modeInfo ? exports.ModeInfo.toJSON(message.modeInfo) : undefined);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignerInfo);\n message.publicKey =\n object.publicKey !== undefined && object.publicKey !== null\n ? any_1.Any.fromPartial(object.publicKey)\n : undefined;\n message.modeInfo =\n object.modeInfo !== undefined && object.modeInfo !== null\n ? exports.ModeInfo.fromPartial(object.modeInfo)\n : undefined;\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseModeInfo = {};\nexports.ModeInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.single !== undefined) {\n exports.ModeInfo_Single.encode(message.single, writer.uint32(10).fork()).ldelim();\n }\n if (message.multi !== undefined) {\n exports.ModeInfo_Multi.encode(message.multi, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.single = exports.ModeInfo_Single.decode(reader, reader.uint32());\n break;\n case 2:\n message.multi = exports.ModeInfo_Multi.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo);\n message.single =\n object.single !== undefined && object.single !== null\n ? exports.ModeInfo_Single.fromJSON(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null ? exports.ModeInfo_Multi.fromJSON(object.multi) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.single !== undefined &&\n (obj.single = message.single ? exports.ModeInfo_Single.toJSON(message.single) : undefined);\n message.multi !== undefined &&\n (obj.multi = message.multi ? exports.ModeInfo_Multi.toJSON(message.multi) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseModeInfo);\n message.single =\n object.single !== undefined && object.single !== null\n ? exports.ModeInfo_Single.fromPartial(object.single)\n : undefined;\n message.multi =\n object.multi !== undefined && object.multi !== null\n ? exports.ModeInfo_Multi.fromPartial(object.multi)\n : undefined;\n return message;\n },\n};\nconst baseModeInfo_Single = { mode: 0 };\nexports.ModeInfo_Single = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.mode !== 0) {\n writer.uint32(8).int32(message.mode);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo_Single);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mode = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModeInfo_Single);\n message.mode = object.mode !== undefined && object.mode !== null ? signing_1.signModeFromJSON(object.mode) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.mode !== undefined && (obj.mode = signing_1.signModeToJSON(message.mode));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseModeInfo_Single);\n message.mode = (_a = object.mode) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nconst baseModeInfo_Multi = {};\nexports.ModeInfo_Multi = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.bitarray !== undefined) {\n multisig_1.CompactBitArray.encode(message.bitarray, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.modeInfos) {\n exports.ModeInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModeInfo_Multi);\n message.modeInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bitarray = multisig_1.CompactBitArray.decode(reader, reader.uint32());\n break;\n case 2:\n message.modeInfos.push(exports.ModeInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseModeInfo_Multi);\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? multisig_1.CompactBitArray.fromJSON(object.bitarray)\n : undefined;\n message.modeInfos = ((_a = object.modeInfos) !== null && _a !== void 0 ? _a : []).map((e) => exports.ModeInfo.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.bitarray !== undefined &&\n (obj.bitarray = message.bitarray ? multisig_1.CompactBitArray.toJSON(message.bitarray) : undefined);\n if (message.modeInfos) {\n obj.modeInfos = message.modeInfos.map((e) => (e ? exports.ModeInfo.toJSON(e) : undefined));\n }\n else {\n obj.modeInfos = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseModeInfo_Multi);\n message.bitarray =\n object.bitarray !== undefined && object.bitarray !== null\n ? multisig_1.CompactBitArray.fromPartial(object.bitarray)\n : undefined;\n message.modeInfos = ((_a = object.modeInfos) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ModeInfo.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseFee = { gasLimit: long_1.default.UZERO, payer: \"\", granter: \"\" };\nexports.Fee = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (!message.gasLimit.isZero()) {\n writer.uint32(16).uint64(message.gasLimit);\n }\n if (message.payer !== \"\") {\n writer.uint32(26).string(message.payer);\n }\n if (message.granter !== \"\") {\n writer.uint32(34).string(message.granter);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFee);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 2:\n message.gasLimit = reader.uint64();\n break;\n case 3:\n message.payer = reader.string();\n break;\n case 4:\n message.granter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseFee);\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.gasLimit =\n object.gasLimit !== undefined && object.gasLimit !== null\n ? long_1.default.fromString(object.gasLimit)\n : long_1.default.UZERO;\n message.payer = object.payer !== undefined && object.payer !== null ? String(object.payer) : \"\";\n message.granter = object.granter !== undefined && object.granter !== null ? String(object.granter) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n message.gasLimit !== undefined && (obj.gasLimit = (message.gasLimit || long_1.default.UZERO).toString());\n message.payer !== undefined && (obj.payer = message.payer);\n message.granter !== undefined && (obj.granter = message.granter);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseFee);\n message.amount = ((_a = object.amount) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.gasLimit =\n object.gasLimit !== undefined && object.gasLimit !== null\n ? long_1.default.fromValue(object.gasLimit)\n : long_1.default.UZERO;\n message.payer = (_b = object.payer) !== null && _b !== void 0 ? _b : \"\";\n message.granter = (_c = object.granter) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PermanentLockedAccount = exports.PeriodicVestingAccount = exports.Period = exports.DelayedVestingAccount = exports.ContinuousVestingAccount = exports.BaseVestingAccount = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst auth_1 = require(\"../../../cosmos/auth/v1beta1/auth\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmos.vesting.v1beta1\";\nconst baseBaseVestingAccount = { endTime: long_1.default.ZERO };\nexports.BaseVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseAccount !== undefined) {\n auth_1.BaseAccount.encode(message.baseAccount, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.originalVesting) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.delegatedFree) {\n coin_1.Coin.encode(v, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.delegatedVesting) {\n coin_1.Coin.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (!message.endTime.isZero()) {\n writer.uint32(40).int64(message.endTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBaseVestingAccount);\n message.originalVesting = [];\n message.delegatedFree = [];\n message.delegatedVesting = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseAccount = auth_1.BaseAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.originalVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 3:\n message.delegatedFree.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 4:\n message.delegatedVesting.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n case 5:\n message.endTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseBaseVestingAccount);\n message.baseAccount =\n object.baseAccount !== undefined && object.baseAccount !== null\n ? auth_1.BaseAccount.fromJSON(object.baseAccount)\n : undefined;\n message.originalVesting = ((_a = object.originalVesting) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n message.delegatedFree = ((_b = object.delegatedFree) !== null && _b !== void 0 ? _b : []).map((e) => coin_1.Coin.fromJSON(e));\n message.delegatedVesting = ((_c = object.delegatedVesting) !== null && _c !== void 0 ? _c : []).map((e) => coin_1.Coin.fromJSON(e));\n message.endTime =\n object.endTime !== undefined && object.endTime !== null ? long_1.default.fromString(object.endTime) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseAccount !== undefined &&\n (obj.baseAccount = message.baseAccount ? auth_1.BaseAccount.toJSON(message.baseAccount) : undefined);\n if (message.originalVesting) {\n obj.originalVesting = message.originalVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.originalVesting = [];\n }\n if (message.delegatedFree) {\n obj.delegatedFree = message.delegatedFree.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedFree = [];\n }\n if (message.delegatedVesting) {\n obj.delegatedVesting = message.delegatedVesting.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.delegatedVesting = [];\n }\n message.endTime !== undefined && (obj.endTime = (message.endTime || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseBaseVestingAccount);\n message.baseAccount =\n object.baseAccount !== undefined && object.baseAccount !== null\n ? auth_1.BaseAccount.fromPartial(object.baseAccount)\n : undefined;\n message.originalVesting = ((_a = object.originalVesting) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.delegatedFree = ((_b = object.delegatedFree) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.delegatedVesting = ((_c = object.delegatedVesting) === null || _c === void 0 ? void 0 : _c.map((e) => coin_1.Coin.fromPartial(e))) || [];\n message.endTime =\n object.endTime !== undefined && object.endTime !== null ? long_1.default.fromValue(object.endTime) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseContinuousVestingAccount = { startTime: long_1.default.ZERO };\nexports.ContinuousVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (!message.startTime.isZero()) {\n writer.uint32(16).int64(message.startTime);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContinuousVestingAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContinuousVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount)\n : undefined;\n message.startTime =\n object.startTime !== undefined && object.startTime !== null\n ? long_1.default.fromString(object.startTime)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseContinuousVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount)\n : undefined;\n message.startTime =\n object.startTime !== undefined && object.startTime !== null\n ? long_1.default.fromValue(object.startTime)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseDelayedVestingAccount = {};\nexports.DelayedVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDelayedVestingAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDelayedVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseDelayedVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount)\n : undefined;\n return message;\n },\n};\nconst basePeriod = { length: long_1.default.ZERO };\nexports.Period = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.length.isZero()) {\n writer.uint32(8).int64(message.length);\n }\n for (const v of message.amount) {\n coin_1.Coin.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePeriod);\n message.amount = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.length = reader.int64();\n break;\n case 2:\n message.amount.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, basePeriod);\n message.length =\n object.length !== undefined && object.length !== null ? long_1.default.fromString(object.length) : long_1.default.ZERO;\n message.amount = ((_a = object.amount) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.length !== undefined && (obj.length = (message.length || long_1.default.ZERO).toString());\n if (message.amount) {\n obj.amount = message.amount.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.amount = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePeriod);\n message.length =\n object.length !== undefined && object.length !== null ? long_1.default.fromValue(object.length) : long_1.default.ZERO;\n message.amount = ((_a = object.amount) === null || _a === void 0 ? void 0 : _a.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst basePeriodicVestingAccount = { startTime: long_1.default.ZERO };\nexports.PeriodicVestingAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n if (!message.startTime.isZero()) {\n writer.uint32(16).int64(message.startTime);\n }\n for (const v of message.vestingPeriods) {\n exports.Period.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.vestingPeriods = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n case 2:\n message.startTime = reader.int64();\n break;\n case 3:\n message.vestingPeriods.push(exports.Period.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount)\n : undefined;\n message.startTime =\n object.startTime !== undefined && object.startTime !== null\n ? long_1.default.fromString(object.startTime)\n : long_1.default.ZERO;\n message.vestingPeriods = ((_a = object.vestingPeriods) !== null && _a !== void 0 ? _a : []).map((e) => exports.Period.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n message.startTime !== undefined && (obj.startTime = (message.startTime || long_1.default.ZERO).toString());\n if (message.vestingPeriods) {\n obj.vestingPeriods = message.vestingPeriods.map((e) => (e ? exports.Period.toJSON(e) : undefined));\n }\n else {\n obj.vestingPeriods = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, basePeriodicVestingAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount)\n : undefined;\n message.startTime =\n object.startTime !== undefined && object.startTime !== null\n ? long_1.default.fromValue(object.startTime)\n : long_1.default.ZERO;\n message.vestingPeriods = ((_a = object.vestingPeriods) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Period.fromPartial(e))) || [];\n return message;\n },\n};\nconst basePermanentLockedAccount = {};\nexports.PermanentLockedAccount = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.baseVestingAccount !== undefined) {\n exports.BaseVestingAccount.encode(message.baseVestingAccount, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePermanentLockedAccount);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.baseVestingAccount = exports.BaseVestingAccount.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePermanentLockedAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromJSON(object.baseVestingAccount)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.baseVestingAccount !== undefined &&\n (obj.baseVestingAccount = message.baseVestingAccount\n ? exports.BaseVestingAccount.toJSON(message.baseVestingAccount)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, basePermanentLockedAccount);\n message.baseVestingAccount =\n object.baseVestingAccount !== undefined && object.baseVestingAccount !== null\n ? exports.BaseVestingAccount.fromPartial(object.baseVestingAccount)\n : undefined;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=vesting.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryCodesResponse = exports.QueryCodesRequest = exports.QueryCodeResponse = exports.CodeInfoResponse = exports.QueryCodeRequest = exports.QuerySmartContractStateResponse = exports.QuerySmartContractStateRequest = exports.QueryRawContractStateResponse = exports.QueryRawContractStateRequest = exports.QueryAllContractStateResponse = exports.QueryAllContractStateRequest = exports.QueryContractsByCodeResponse = exports.QueryContractsByCodeRequest = exports.QueryContractHistoryResponse = exports.QueryContractHistoryRequest = exports.QueryContractInfoResponse = exports.QueryContractInfoRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../cosmwasm/wasm/v1/types\");\nconst pagination_1 = require(\"../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\nconst baseQueryContractInfoRequest = { address: \"\" };\nexports.QueryContractInfoRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractInfoRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryContractInfoRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractInfoRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryContractInfoResponse = { address: \"\" };\nexports.QueryContractInfoResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.contractInfo !== undefined) {\n types_1.ContractInfo.encode(message.contractInfo, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractInfoResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.contractInfo = types_1.ContractInfo.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryContractInfoResponse);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.contractInfo =\n object.contractInfo !== undefined && object.contractInfo !== null\n ? types_1.ContractInfo.fromJSON(object.contractInfo)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.contractInfo !== undefined &&\n (obj.contractInfo = message.contractInfo ? types_1.ContractInfo.toJSON(message.contractInfo) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractInfoResponse);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.contractInfo =\n object.contractInfo !== undefined && object.contractInfo !== null\n ? types_1.ContractInfo.fromPartial(object.contractInfo)\n : undefined;\n return message;\n },\n};\nconst baseQueryContractHistoryRequest = { address: \"\" };\nexports.QueryContractHistoryRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractHistoryRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryContractHistoryRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractHistoryRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryContractHistoryResponse = {};\nexports.QueryContractHistoryResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.entries) {\n types_1.ContractCodeHistoryEntry.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractHistoryResponse);\n message.entries = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.entries.push(types_1.ContractCodeHistoryEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractHistoryResponse);\n message.entries = ((_a = object.entries) !== null && _a !== void 0 ? _a : []).map((e) => types_1.ContractCodeHistoryEntry.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.entries) {\n obj.entries = message.entries.map((e) => (e ? types_1.ContractCodeHistoryEntry.toJSON(e) : undefined));\n }\n else {\n obj.entries = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractHistoryResponse);\n message.entries = ((_a = object.entries) === null || _a === void 0 ? void 0 : _a.map((e) => types_1.ContractCodeHistoryEntry.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryContractsByCodeRequest = { codeId: long_1.default.UZERO };\nexports.QueryContractsByCodeRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractsByCodeRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryContractsByCodeRequest);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryContractsByCodeRequest);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryContractsByCodeResponse = { contracts: \"\" };\nexports.QueryContractsByCodeResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.contracts) {\n writer.uint32(10).string(v);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryContractsByCodeResponse);\n message.contracts = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.contracts.push(reader.string());\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractsByCodeResponse);\n message.contracts = ((_a = object.contracts) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.contracts) {\n obj.contracts = message.contracts.map((e) => e);\n }\n else {\n obj.contracts = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryContractsByCodeResponse);\n message.contracts = ((_a = object.contracts) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAllContractStateRequest = { address: \"\" };\nexports.QueryAllContractStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAllContractStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryAllContractStateRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllContractStateRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryAllContractStateResponse = {};\nexports.QueryAllContractStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.models) {\n types_1.Model.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryAllContractStateResponse);\n message.models = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.models.push(types_1.Model.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllContractStateResponse);\n message.models = ((_a = object.models) !== null && _a !== void 0 ? _a : []).map((e) => types_1.Model.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.models) {\n obj.models = message.models.map((e) => (e ? types_1.Model.toJSON(e) : undefined));\n }\n else {\n obj.models = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryAllContractStateResponse);\n message.models = ((_a = object.models) === null || _a === void 0 ? void 0 : _a.map((e) => types_1.Model.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryRawContractStateRequest = { address: \"\" };\nexports.QueryRawContractStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.queryData.length !== 0) {\n writer.uint32(18).bytes(message.queryData);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryRawContractStateRequest);\n message.queryData = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.queryData = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryRawContractStateRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.queryData =\n object.queryData !== undefined && object.queryData !== null\n ? bytesFromBase64(object.queryData)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.queryData !== undefined &&\n (obj.queryData = base64FromBytes(message.queryData !== undefined ? message.queryData : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryRawContractStateRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.queryData = (_b = object.queryData) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseQueryRawContractStateResponse = {};\nexports.QueryRawContractStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryRawContractStateResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryRawContractStateResponse);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryRawContractStateResponse);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseQuerySmartContractStateRequest = { address: \"\" };\nexports.QuerySmartContractStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.queryData.length !== 0) {\n writer.uint32(18).bytes(message.queryData);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySmartContractStateRequest);\n message.queryData = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.queryData = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySmartContractStateRequest);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.queryData =\n object.queryData !== undefined && object.queryData !== null\n ? bytesFromBase64(object.queryData)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.queryData !== undefined &&\n (obj.queryData = base64FromBytes(message.queryData !== undefined ? message.queryData : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQuerySmartContractStateRequest);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.queryData = (_b = object.queryData) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseQuerySmartContractStateResponse = {};\nexports.QuerySmartContractStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQuerySmartContractStateResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQuerySmartContractStateResponse);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQuerySmartContractStateResponse);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseQueryCodeRequest = { codeId: long_1.default.UZERO };\nexports.QueryCodeRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCodeRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryCodeRequest);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryCodeRequest);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseCodeInfoResponse = { codeId: long_1.default.UZERO, creator: \"\" };\nexports.CodeInfoResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.creator !== \"\") {\n writer.uint32(18).string(message.creator);\n }\n if (message.dataHash.length !== 0) {\n writer.uint32(26).bytes(message.dataHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCodeInfoResponse);\n message.dataHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.creator = reader.string();\n break;\n case 3:\n message.dataHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCodeInfoResponse);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.creator = object.creator !== undefined && object.creator !== null ? String(object.creator) : \"\";\n message.dataHash =\n object.dataHash !== undefined && object.dataHash !== null\n ? bytesFromBase64(object.dataHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.creator !== undefined && (obj.creator = message.creator);\n message.dataHash !== undefined &&\n (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCodeInfoResponse);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.creator = (_a = object.creator) !== null && _a !== void 0 ? _a : \"\";\n message.dataHash = (_b = object.dataHash) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseQueryCodeResponse = {};\nexports.QueryCodeResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.codeInfo !== undefined) {\n exports.CodeInfoResponse.encode(message.codeInfo, writer.uint32(10).fork()).ldelim();\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCodeResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeInfo = exports.CodeInfoResponse.decode(reader, reader.uint32());\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryCodeResponse);\n message.codeInfo =\n object.codeInfo !== undefined && object.codeInfo !== null\n ? exports.CodeInfoResponse.fromJSON(object.codeInfo)\n : undefined;\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeInfo !== undefined &&\n (obj.codeInfo = message.codeInfo ? exports.CodeInfoResponse.toJSON(message.codeInfo) : undefined);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryCodeResponse);\n message.codeInfo =\n object.codeInfo !== undefined && object.codeInfo !== null\n ? exports.CodeInfoResponse.fromPartial(object.codeInfo)\n : undefined;\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseQueryCodesRequest = {};\nexports.QueryCodesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCodesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryCodesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryCodesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryCodesResponse = {};\nexports.QueryCodesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.codeInfos) {\n exports.CodeInfoResponse.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryCodesResponse);\n message.codeInfos = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeInfos.push(exports.CodeInfoResponse.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryCodesResponse);\n message.codeInfos = ((_a = object.codeInfos) !== null && _a !== void 0 ? _a : []).map((e) => exports.CodeInfoResponse.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.codeInfos) {\n obj.codeInfos = message.codeInfos.map((e) => (e ? exports.CodeInfoResponse.toJSON(e) : undefined));\n }\n else {\n obj.codeInfos = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryCodesResponse);\n message.codeInfos = ((_a = object.codeInfos) === null || _a === void 0 ? void 0 : _a.map((e) => exports.CodeInfoResponse.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ContractInfo = this.ContractInfo.bind(this);\n this.ContractHistory = this.ContractHistory.bind(this);\n this.ContractsByCode = this.ContractsByCode.bind(this);\n this.AllContractState = this.AllContractState.bind(this);\n this.RawContractState = this.RawContractState.bind(this);\n this.SmartContractState = this.SmartContractState.bind(this);\n this.Code = this.Code.bind(this);\n this.Codes = this.Codes.bind(this);\n }\n ContractInfo(request) {\n const data = exports.QueryContractInfoRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"ContractInfo\", data);\n return promise.then((data) => exports.QueryContractInfoResponse.decode(new minimal_1.default.Reader(data)));\n }\n ContractHistory(request) {\n const data = exports.QueryContractHistoryRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"ContractHistory\", data);\n return promise.then((data) => exports.QueryContractHistoryResponse.decode(new minimal_1.default.Reader(data)));\n }\n ContractsByCode(request) {\n const data = exports.QueryContractsByCodeRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"ContractsByCode\", data);\n return promise.then((data) => exports.QueryContractsByCodeResponse.decode(new minimal_1.default.Reader(data)));\n }\n AllContractState(request) {\n const data = exports.QueryAllContractStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"AllContractState\", data);\n return promise.then((data) => exports.QueryAllContractStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n RawContractState(request) {\n const data = exports.QueryRawContractStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"RawContractState\", data);\n return promise.then((data) => exports.QueryRawContractStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n SmartContractState(request) {\n const data = exports.QuerySmartContractStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"SmartContractState\", data);\n return promise.then((data) => exports.QuerySmartContractStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n Code(request) {\n const data = exports.QueryCodeRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"Code\", data);\n return promise.then((data) => exports.QueryCodeResponse.decode(new minimal_1.default.Reader(data)));\n }\n Codes(request) {\n const data = exports.QueryCodesRequest.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Query\", \"Codes\", data);\n return promise.then((data) => exports.QueryCodesResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgClearAdminResponse = exports.MsgClearAdmin = exports.MsgUpdateAdminResponse = exports.MsgUpdateAdmin = exports.MsgMigrateContractResponse = exports.MsgMigrateContract = exports.MsgExecuteContractResponse = exports.MsgExecuteContract = exports.MsgInstantiateContractResponse = exports.MsgInstantiateContract = exports.MsgStoreCodeResponse = exports.MsgStoreCode = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst types_1 = require(\"../../../cosmwasm/wasm/v1/types\");\nconst coin_1 = require(\"../../../cosmos/base/v1beta1/coin\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\nconst baseMsgStoreCode = { sender: \"\" };\nexports.MsgStoreCode = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.wasmByteCode.length !== 0) {\n writer.uint32(18).bytes(message.wasmByteCode);\n }\n if (message.instantiatePermission !== undefined) {\n types_1.AccessConfig.encode(message.instantiatePermission, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgStoreCode);\n message.wasmByteCode = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.wasmByteCode = reader.bytes();\n break;\n case 5:\n message.instantiatePermission = types_1.AccessConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgStoreCode);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.wasmByteCode =\n object.wasmByteCode !== undefined && object.wasmByteCode !== null\n ? bytesFromBase64(object.wasmByteCode)\n : new Uint8Array();\n message.instantiatePermission =\n object.instantiatePermission !== undefined && object.instantiatePermission !== null\n ? types_1.AccessConfig.fromJSON(object.instantiatePermission)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.wasmByteCode !== undefined &&\n (obj.wasmByteCode = base64FromBytes(message.wasmByteCode !== undefined ? message.wasmByteCode : new Uint8Array()));\n message.instantiatePermission !== undefined &&\n (obj.instantiatePermission = message.instantiatePermission\n ? types_1.AccessConfig.toJSON(message.instantiatePermission)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgStoreCode);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.wasmByteCode = (_b = object.wasmByteCode) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.instantiatePermission =\n object.instantiatePermission !== undefined && object.instantiatePermission !== null\n ? types_1.AccessConfig.fromPartial(object.instantiatePermission)\n : undefined;\n return message;\n },\n};\nconst baseMsgStoreCodeResponse = { codeId: long_1.default.UZERO };\nexports.MsgStoreCodeResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseMsgStoreCodeResponse);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseMsgInstantiateContract = { sender: \"\", admin: \"\", codeId: long_1.default.UZERO, label: \"\" };\nexports.MsgInstantiateContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.admin !== \"\") {\n writer.uint32(18).string(message.admin);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(24).uint64(message.codeId);\n }\n if (message.label !== \"\") {\n writer.uint32(34).string(message.label);\n }\n if (message.msg.length !== 0) {\n writer.uint32(42).bytes(message.msg);\n }\n for (const v of message.funds) {\n coin_1.Coin.encode(v, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.funds = [];\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.admin = reader.string();\n break;\n case 3:\n message.codeId = reader.uint64();\n break;\n case 4:\n message.label = reader.string();\n break;\n case 5:\n message.msg = reader.bytes();\n break;\n case 6:\n message.funds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.admin = object.admin !== undefined && object.admin !== null ? String(object.admin) : \"\";\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.label = object.label !== undefined && object.label !== null ? String(object.label) : \"\";\n message.msg =\n object.msg !== undefined && object.msg !== null ? bytesFromBase64(object.msg) : new Uint8Array();\n message.funds = ((_a = object.funds) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.admin !== undefined && (obj.admin = message.admin);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.label !== undefined && (obj.label = message.label);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n if (message.funds) {\n obj.funds = message.funds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.funds = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseMsgInstantiateContract);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.admin = (_b = object.admin) !== null && _b !== void 0 ? _b : \"\";\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.label = (_c = object.label) !== null && _c !== void 0 ? _c : \"\";\n message.msg = (_d = object.msg) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.funds = ((_e = object.funds) === null || _e === void 0 ? void 0 : _e.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgInstantiateContractResponse = { address: \"\" };\nexports.MsgInstantiateContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address !== \"\") {\n writer.uint32(10).string(message.address);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.string();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined && (obj.address = message.address);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgInstantiateContractResponse);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : \"\";\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseMsgExecuteContract = { sender: \"\", contract: \"\" };\nexports.MsgExecuteContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n if (message.msg.length !== 0) {\n writer.uint32(26).bytes(message.msg);\n }\n for (const v of message.funds) {\n coin_1.Coin.encode(v, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecuteContract);\n message.funds = [];\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n case 3:\n message.msg = reader.bytes();\n break;\n case 5:\n message.funds.push(coin_1.Coin.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgExecuteContract);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.contract =\n object.contract !== undefined && object.contract !== null ? String(object.contract) : \"\";\n message.msg =\n object.msg !== undefined && object.msg !== null ? bytesFromBase64(object.msg) : new Uint8Array();\n message.funds = ((_a = object.funds) !== null && _a !== void 0 ? _a : []).map((e) => coin_1.Coin.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n if (message.funds) {\n obj.funds = message.funds.map((e) => (e ? coin_1.Coin.toJSON(e) : undefined));\n }\n else {\n obj.funds = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgExecuteContract);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.contract = (_b = object.contract) !== null && _b !== void 0 ? _b : \"\";\n message.msg = (_c = object.msg) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.funds = ((_d = object.funds) === null || _d === void 0 ? void 0 : _d.map((e) => coin_1.Coin.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseMsgExecuteContractResponse = {};\nexports.MsgExecuteContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgExecuteContractResponse);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMsgMigrateContract = { sender: \"\", contract: \"\", codeId: long_1.default.UZERO };\nexports.MsgMigrateContract = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(18).string(message.contract);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(24).uint64(message.codeId);\n }\n if (message.msg.length !== 0) {\n writer.uint32(34).bytes(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateContract);\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.contract = reader.string();\n break;\n case 3:\n message.codeId = reader.uint64();\n break;\n case 4:\n message.msg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateContract);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.contract =\n object.contract !== undefined && object.contract !== null ? String(object.contract) : \"\";\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.msg =\n object.msg !== undefined && object.msg !== null ? bytesFromBase64(object.msg) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgMigrateContract);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.contract = (_b = object.contract) !== null && _b !== void 0 ? _b : \"\";\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.msg = (_c = object.msg) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseMsgMigrateContractResponse = {};\nexports.MsgMigrateContractResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgMigrateContractResponse);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMsgUpdateAdmin = { sender: \"\", newAdmin: \"\", contract: \"\" };\nexports.MsgUpdateAdmin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.newAdmin !== \"\") {\n writer.uint32(18).string(message.newAdmin);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateAdmin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 2:\n message.newAdmin = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpdateAdmin);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.newAdmin =\n object.newAdmin !== undefined && object.newAdmin !== null ? String(object.newAdmin) : \"\";\n message.contract =\n object.contract !== undefined && object.contract !== null ? String(object.contract) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.newAdmin !== undefined && (obj.newAdmin = message.newAdmin);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgUpdateAdmin);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.newAdmin = (_b = object.newAdmin) !== null && _b !== void 0 ? _b : \"\";\n message.contract = (_c = object.contract) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgUpdateAdminResponse = {};\nexports.MsgUpdateAdminResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpdateAdminResponse);\n return message;\n },\n};\nconst baseMsgClearAdmin = { sender: \"\", contract: \"\" };\nexports.MsgClearAdmin = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sender !== \"\") {\n writer.uint32(10).string(message.sender);\n }\n if (message.contract !== \"\") {\n writer.uint32(26).string(message.contract);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgClearAdmin);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sender = reader.string();\n break;\n case 3:\n message.contract = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgClearAdmin);\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.contract =\n object.contract !== undefined && object.contract !== null ? String(object.contract) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sender !== undefined && (obj.sender = message.sender);\n message.contract !== undefined && (obj.contract = message.contract);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgClearAdmin);\n message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : \"\";\n message.contract = (_b = object.contract) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgClearAdminResponse = {};\nexports.MsgClearAdminResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgClearAdminResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgClearAdminResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgClearAdminResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.StoreCode = this.StoreCode.bind(this);\n this.InstantiateContract = this.InstantiateContract.bind(this);\n this.ExecuteContract = this.ExecuteContract.bind(this);\n this.MigrateContract = this.MigrateContract.bind(this);\n this.UpdateAdmin = this.UpdateAdmin.bind(this);\n this.ClearAdmin = this.ClearAdmin.bind(this);\n }\n StoreCode(request) {\n const data = exports.MsgStoreCode.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"StoreCode\", data);\n return promise.then((data) => exports.MsgStoreCodeResponse.decode(new minimal_1.default.Reader(data)));\n }\n InstantiateContract(request) {\n const data = exports.MsgInstantiateContract.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"InstantiateContract\", data);\n return promise.then((data) => exports.MsgInstantiateContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n ExecuteContract(request) {\n const data = exports.MsgExecuteContract.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"ExecuteContract\", data);\n return promise.then((data) => exports.MsgExecuteContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n MigrateContract(request) {\n const data = exports.MsgMigrateContract.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"MigrateContract\", data);\n return promise.then((data) => exports.MsgMigrateContractResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpdateAdmin(request) {\n const data = exports.MsgUpdateAdmin.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"UpdateAdmin\", data);\n return promise.then((data) => exports.MsgUpdateAdminResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClearAdmin(request) {\n const data = exports.MsgClearAdmin.encode(request).finish();\n const promise = this.rpc.request(\"cosmwasm.wasm.v1.Msg\", \"ClearAdmin\", data);\n return promise.then((data) => exports.MsgClearAdminResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Model = exports.AbsoluteTxPosition = exports.ContractCodeHistoryEntry = exports.ContractInfo = exports.CodeInfo = exports.Params = exports.AccessConfig = exports.AccessTypeParam = exports.contractCodeHistoryOperationTypeToJSON = exports.contractCodeHistoryOperationTypeFromJSON = exports.ContractCodeHistoryOperationType = exports.accessTypeToJSON = exports.accessTypeFromJSON = exports.AccessType = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../google/protobuf/any\");\nexports.protobufPackage = \"cosmwasm.wasm.v1\";\n/** AccessType permission types */\nvar AccessType;\n(function (AccessType) {\n /** ACCESS_TYPE_UNSPECIFIED - AccessTypeUnspecified placeholder for empty value */\n AccessType[AccessType[\"ACCESS_TYPE_UNSPECIFIED\"] = 0] = \"ACCESS_TYPE_UNSPECIFIED\";\n /** ACCESS_TYPE_NOBODY - AccessTypeNobody forbidden */\n AccessType[AccessType[\"ACCESS_TYPE_NOBODY\"] = 1] = \"ACCESS_TYPE_NOBODY\";\n /** ACCESS_TYPE_ONLY_ADDRESS - AccessTypeOnlyAddress restricted to an address */\n AccessType[AccessType[\"ACCESS_TYPE_ONLY_ADDRESS\"] = 2] = \"ACCESS_TYPE_ONLY_ADDRESS\";\n /** ACCESS_TYPE_EVERYBODY - AccessTypeEverybody unrestricted */\n AccessType[AccessType[\"ACCESS_TYPE_EVERYBODY\"] = 3] = \"ACCESS_TYPE_EVERYBODY\";\n AccessType[AccessType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(AccessType = exports.AccessType || (exports.AccessType = {}));\nfunction accessTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"ACCESS_TYPE_UNSPECIFIED\":\n return AccessType.ACCESS_TYPE_UNSPECIFIED;\n case 1:\n case \"ACCESS_TYPE_NOBODY\":\n return AccessType.ACCESS_TYPE_NOBODY;\n case 2:\n case \"ACCESS_TYPE_ONLY_ADDRESS\":\n return AccessType.ACCESS_TYPE_ONLY_ADDRESS;\n case 3:\n case \"ACCESS_TYPE_EVERYBODY\":\n return AccessType.ACCESS_TYPE_EVERYBODY;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return AccessType.UNRECOGNIZED;\n }\n}\nexports.accessTypeFromJSON = accessTypeFromJSON;\nfunction accessTypeToJSON(object) {\n switch (object) {\n case AccessType.ACCESS_TYPE_UNSPECIFIED:\n return \"ACCESS_TYPE_UNSPECIFIED\";\n case AccessType.ACCESS_TYPE_NOBODY:\n return \"ACCESS_TYPE_NOBODY\";\n case AccessType.ACCESS_TYPE_ONLY_ADDRESS:\n return \"ACCESS_TYPE_ONLY_ADDRESS\";\n case AccessType.ACCESS_TYPE_EVERYBODY:\n return \"ACCESS_TYPE_EVERYBODY\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.accessTypeToJSON = accessTypeToJSON;\n/** ContractCodeHistoryOperationType actions that caused a code change */\nvar ContractCodeHistoryOperationType;\n(function (ContractCodeHistoryOperationType) {\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED - ContractCodeHistoryOperationTypeUnspecified placeholder for empty value */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\"] = 0] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT - ContractCodeHistoryOperationTypeInit on chain contract instantiation */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\"] = 1] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE - ContractCodeHistoryOperationTypeMigrate code migration */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\"] = 2] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\";\n /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS - ContractCodeHistoryOperationTypeGenesis based on genesis data */\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\"] = 3] = \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\";\n ContractCodeHistoryOperationType[ContractCodeHistoryOperationType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ContractCodeHistoryOperationType = exports.ContractCodeHistoryOperationType || (exports.ContractCodeHistoryOperationType = {}));\nfunction contractCodeHistoryOperationTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;\n case 1:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;\n case 2:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;\n case 3:\n case \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\":\n return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ContractCodeHistoryOperationType.UNRECOGNIZED;\n }\n}\nexports.contractCodeHistoryOperationTypeFromJSON = contractCodeHistoryOperationTypeFromJSON;\nfunction contractCodeHistoryOperationTypeToJSON(object) {\n switch (object) {\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE\";\n case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:\n return \"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.contractCodeHistoryOperationTypeToJSON = contractCodeHistoryOperationTypeToJSON;\nconst baseAccessTypeParam = { value: 0 };\nexports.AccessTypeParam = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.value !== 0) {\n writer.uint32(8).int32(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAccessTypeParam);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.value = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAccessTypeParam);\n message.value =\n object.value !== undefined && object.value !== null ? accessTypeFromJSON(object.value) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.value !== undefined && (obj.value = accessTypeToJSON(message.value));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseAccessTypeParam);\n message.value = (_a = object.value) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nconst baseAccessConfig = { permission: 0, address: \"\" };\nexports.AccessConfig = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.permission !== 0) {\n writer.uint32(8).int32(message.permission);\n }\n if (message.address !== \"\") {\n writer.uint32(18).string(message.address);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAccessConfig);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.permission = reader.int32();\n break;\n case 2:\n message.address = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAccessConfig);\n message.permission =\n object.permission !== undefined && object.permission !== null\n ? accessTypeFromJSON(object.permission)\n : 0;\n message.address = object.address !== undefined && object.address !== null ? String(object.address) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.permission !== undefined && (obj.permission = accessTypeToJSON(message.permission));\n message.address !== undefined && (obj.address = message.address);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseAccessConfig);\n message.permission = (_a = object.permission) !== null && _a !== void 0 ? _a : 0;\n message.address = (_b = object.address) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseParams = { instantiateDefaultPermission: 0, maxWasmCodeSize: long_1.default.UZERO };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.codeUploadAccess !== undefined) {\n exports.AccessConfig.encode(message.codeUploadAccess, writer.uint32(10).fork()).ldelim();\n }\n if (message.instantiateDefaultPermission !== 0) {\n writer.uint32(16).int32(message.instantiateDefaultPermission);\n }\n if (!message.maxWasmCodeSize.isZero()) {\n writer.uint32(24).uint64(message.maxWasmCodeSize);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeUploadAccess = exports.AccessConfig.decode(reader, reader.uint32());\n break;\n case 2:\n message.instantiateDefaultPermission = reader.int32();\n break;\n case 3:\n message.maxWasmCodeSize = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.codeUploadAccess =\n object.codeUploadAccess !== undefined && object.codeUploadAccess !== null\n ? exports.AccessConfig.fromJSON(object.codeUploadAccess)\n : undefined;\n message.instantiateDefaultPermission =\n object.instantiateDefaultPermission !== undefined && object.instantiateDefaultPermission !== null\n ? accessTypeFromJSON(object.instantiateDefaultPermission)\n : 0;\n message.maxWasmCodeSize =\n object.maxWasmCodeSize !== undefined && object.maxWasmCodeSize !== null\n ? long_1.default.fromString(object.maxWasmCodeSize)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeUploadAccess !== undefined &&\n (obj.codeUploadAccess = message.codeUploadAccess\n ? exports.AccessConfig.toJSON(message.codeUploadAccess)\n : undefined);\n message.instantiateDefaultPermission !== undefined &&\n (obj.instantiateDefaultPermission = accessTypeToJSON(message.instantiateDefaultPermission));\n message.maxWasmCodeSize !== undefined &&\n (obj.maxWasmCodeSize = (message.maxWasmCodeSize || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseParams);\n message.codeUploadAccess =\n object.codeUploadAccess !== undefined && object.codeUploadAccess !== null\n ? exports.AccessConfig.fromPartial(object.codeUploadAccess)\n : undefined;\n message.instantiateDefaultPermission = (_a = object.instantiateDefaultPermission) !== null && _a !== void 0 ? _a : 0;\n message.maxWasmCodeSize =\n object.maxWasmCodeSize !== undefined && object.maxWasmCodeSize !== null\n ? long_1.default.fromValue(object.maxWasmCodeSize)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseCodeInfo = { creator: \"\" };\nexports.CodeInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.codeHash.length !== 0) {\n writer.uint32(10).bytes(message.codeHash);\n }\n if (message.creator !== \"\") {\n writer.uint32(18).string(message.creator);\n }\n if (message.instantiateConfig !== undefined) {\n exports.AccessConfig.encode(message.instantiateConfig, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCodeInfo);\n message.codeHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeHash = reader.bytes();\n break;\n case 2:\n message.creator = reader.string();\n break;\n case 5:\n message.instantiateConfig = exports.AccessConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCodeInfo);\n message.codeHash =\n object.codeHash !== undefined && object.codeHash !== null\n ? bytesFromBase64(object.codeHash)\n : new Uint8Array();\n message.creator = object.creator !== undefined && object.creator !== null ? String(object.creator) : \"\";\n message.instantiateConfig =\n object.instantiateConfig !== undefined && object.instantiateConfig !== null\n ? exports.AccessConfig.fromJSON(object.instantiateConfig)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeHash !== undefined &&\n (obj.codeHash = base64FromBytes(message.codeHash !== undefined ? message.codeHash : new Uint8Array()));\n message.creator !== undefined && (obj.creator = message.creator);\n message.instantiateConfig !== undefined &&\n (obj.instantiateConfig = message.instantiateConfig\n ? exports.AccessConfig.toJSON(message.instantiateConfig)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCodeInfo);\n message.codeHash = (_a = object.codeHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.creator = (_b = object.creator) !== null && _b !== void 0 ? _b : \"\";\n message.instantiateConfig =\n object.instantiateConfig !== undefined && object.instantiateConfig !== null\n ? exports.AccessConfig.fromPartial(object.instantiateConfig)\n : undefined;\n return message;\n },\n};\nconst baseContractInfo = { codeId: long_1.default.UZERO, creator: \"\", admin: \"\", label: \"\", ibcPortId: \"\" };\nexports.ContractInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.codeId.isZero()) {\n writer.uint32(8).uint64(message.codeId);\n }\n if (message.creator !== \"\") {\n writer.uint32(18).string(message.creator);\n }\n if (message.admin !== \"\") {\n writer.uint32(26).string(message.admin);\n }\n if (message.label !== \"\") {\n writer.uint32(34).string(message.label);\n }\n if (message.created !== undefined) {\n exports.AbsoluteTxPosition.encode(message.created, writer.uint32(42).fork()).ldelim();\n }\n if (message.ibcPortId !== \"\") {\n writer.uint32(50).string(message.ibcPortId);\n }\n if (message.extension !== undefined) {\n any_1.Any.encode(message.extension, writer.uint32(58).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContractInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.codeId = reader.uint64();\n break;\n case 2:\n message.creator = reader.string();\n break;\n case 3:\n message.admin = reader.string();\n break;\n case 4:\n message.label = reader.string();\n break;\n case 5:\n message.created = exports.AbsoluteTxPosition.decode(reader, reader.uint32());\n break;\n case 6:\n message.ibcPortId = reader.string();\n break;\n case 7:\n message.extension = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContractInfo);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.creator = object.creator !== undefined && object.creator !== null ? String(object.creator) : \"\";\n message.admin = object.admin !== undefined && object.admin !== null ? String(object.admin) : \"\";\n message.label = object.label !== undefined && object.label !== null ? String(object.label) : \"\";\n message.created =\n object.created !== undefined && object.created !== null\n ? exports.AbsoluteTxPosition.fromJSON(object.created)\n : undefined;\n message.ibcPortId =\n object.ibcPortId !== undefined && object.ibcPortId !== null ? String(object.ibcPortId) : \"\";\n message.extension =\n object.extension !== undefined && object.extension !== null\n ? any_1.Any.fromJSON(object.extension)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.creator !== undefined && (obj.creator = message.creator);\n message.admin !== undefined && (obj.admin = message.admin);\n message.label !== undefined && (obj.label = message.label);\n message.created !== undefined &&\n (obj.created = message.created ? exports.AbsoluteTxPosition.toJSON(message.created) : undefined);\n message.ibcPortId !== undefined && (obj.ibcPortId = message.ibcPortId);\n message.extension !== undefined &&\n (obj.extension = message.extension ? any_1.Any.toJSON(message.extension) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseContractInfo);\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.creator = (_a = object.creator) !== null && _a !== void 0 ? _a : \"\";\n message.admin = (_b = object.admin) !== null && _b !== void 0 ? _b : \"\";\n message.label = (_c = object.label) !== null && _c !== void 0 ? _c : \"\";\n message.created =\n object.created !== undefined && object.created !== null\n ? exports.AbsoluteTxPosition.fromPartial(object.created)\n : undefined;\n message.ibcPortId = (_d = object.ibcPortId) !== null && _d !== void 0 ? _d : \"\";\n message.extension =\n object.extension !== undefined && object.extension !== null\n ? any_1.Any.fromPartial(object.extension)\n : undefined;\n return message;\n },\n};\nconst baseContractCodeHistoryEntry = { operation: 0, codeId: long_1.default.UZERO };\nexports.ContractCodeHistoryEntry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.operation !== 0) {\n writer.uint32(8).int32(message.operation);\n }\n if (!message.codeId.isZero()) {\n writer.uint32(16).uint64(message.codeId);\n }\n if (message.updated !== undefined) {\n exports.AbsoluteTxPosition.encode(message.updated, writer.uint32(26).fork()).ldelim();\n }\n if (message.msg.length !== 0) {\n writer.uint32(34).bytes(message.msg);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n message.msg = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.operation = reader.int32();\n break;\n case 2:\n message.codeId = reader.uint64();\n break;\n case 3:\n message.updated = exports.AbsoluteTxPosition.decode(reader, reader.uint32());\n break;\n case 4:\n message.msg = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n message.operation =\n object.operation !== undefined && object.operation !== null\n ? contractCodeHistoryOperationTypeFromJSON(object.operation)\n : 0;\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromString(object.codeId) : long_1.default.UZERO;\n message.updated =\n object.updated !== undefined && object.updated !== null\n ? exports.AbsoluteTxPosition.fromJSON(object.updated)\n : undefined;\n message.msg =\n object.msg !== undefined && object.msg !== null ? bytesFromBase64(object.msg) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.operation !== undefined &&\n (obj.operation = contractCodeHistoryOperationTypeToJSON(message.operation));\n message.codeId !== undefined && (obj.codeId = (message.codeId || long_1.default.UZERO).toString());\n message.updated !== undefined &&\n (obj.updated = message.updated ? exports.AbsoluteTxPosition.toJSON(message.updated) : undefined);\n message.msg !== undefined &&\n (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseContractCodeHistoryEntry);\n message.operation = (_a = object.operation) !== null && _a !== void 0 ? _a : 0;\n message.codeId =\n object.codeId !== undefined && object.codeId !== null ? long_1.default.fromValue(object.codeId) : long_1.default.UZERO;\n message.updated =\n object.updated !== undefined && object.updated !== null\n ? exports.AbsoluteTxPosition.fromPartial(object.updated)\n : undefined;\n message.msg = (_b = object.msg) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseAbsoluteTxPosition = { blockHeight: long_1.default.UZERO, txIndex: long_1.default.UZERO };\nexports.AbsoluteTxPosition = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.blockHeight.isZero()) {\n writer.uint32(8).uint64(message.blockHeight);\n }\n if (!message.txIndex.isZero()) {\n writer.uint32(16).uint64(message.txIndex);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAbsoluteTxPosition);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockHeight = reader.uint64();\n break;\n case 2:\n message.txIndex = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAbsoluteTxPosition);\n message.blockHeight =\n object.blockHeight !== undefined && object.blockHeight !== null\n ? long_1.default.fromString(object.blockHeight)\n : long_1.default.UZERO;\n message.txIndex =\n object.txIndex !== undefined && object.txIndex !== null ? long_1.default.fromString(object.txIndex) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockHeight !== undefined && (obj.blockHeight = (message.blockHeight || long_1.default.UZERO).toString());\n message.txIndex !== undefined && (obj.txIndex = (message.txIndex || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseAbsoluteTxPosition);\n message.blockHeight =\n object.blockHeight !== undefined && object.blockHeight !== null\n ? long_1.default.fromValue(object.blockHeight)\n : long_1.default.UZERO;\n message.txIndex =\n object.txIndex !== undefined && object.txIndex !== null ? long_1.default.fromValue(object.txIndex) : long_1.default.UZERO;\n return message;\n },\n};\nconst baseModel = {};\nexports.Model = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseModel);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseModel);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseModel);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Any = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseAny = { typeUrl: \"\" };\nexports.Any = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.typeUrl !== \"\") {\n writer.uint32(10).string(message.typeUrl);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAny);\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.typeUrl = reader.string();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAny);\n message.typeUrl = object.typeUrl !== undefined && object.typeUrl !== null ? String(object.typeUrl) : \"\";\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.typeUrl !== undefined && (obj.typeUrl = message.typeUrl);\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseAny);\n message.typeUrl = (_a = object.typeUrl) !== null && _a !== void 0 ? _a : \"\";\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=any.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Duration = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseDuration = { seconds: long_1.default.ZERO, nanos: 0 };\nexports.Duration = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.seconds.isZero()) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDuration);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDuration);\n message.seconds =\n object.seconds !== undefined && object.seconds !== null ? long_1.default.fromString(object.seconds) : long_1.default.ZERO;\n message.nanos = object.nanos !== undefined && object.nanos !== null ? Number(object.nanos) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || long_1.default.ZERO).toString());\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseDuration);\n message.seconds =\n object.seconds !== undefined && object.seconds !== null ? long_1.default.fromValue(object.seconds) : long_1.default.ZERO;\n message.nanos = (_a = object.nanos) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=duration.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Timestamp = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"google.protobuf\";\nconst baseTimestamp = { seconds: long_1.default.ZERO, nanos: 0 };\nexports.Timestamp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.seconds.isZero()) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTimestamp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTimestamp);\n message.seconds =\n object.seconds !== undefined && object.seconds !== null ? long_1.default.fromString(object.seconds) : long_1.default.ZERO;\n message.nanos = object.nanos !== undefined && object.nanos !== null ? Number(object.nanos) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.seconds !== undefined && (obj.seconds = (message.seconds || long_1.default.ZERO).toString());\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseTimestamp);\n message.seconds =\n object.seconds !== undefined && object.seconds !== null ? long_1.default.fromValue(object.seconds) : long_1.default.ZERO;\n message.nanos = (_a = object.nanos) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=timestamp.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryParamsResponse = exports.QueryParamsRequest = exports.QueryDenomTracesResponse = exports.QueryDenomTracesRequest = exports.QueryDenomTraceResponse = exports.QueryDenomTraceRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst transfer_1 = require(\"../../../../ibc/applications/transfer/v1/transfer\");\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nconst baseQueryDenomTraceRequest = { hash: \"\" };\nexports.QueryDenomTraceRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash !== \"\") {\n writer.uint32(10).string(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomTraceRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomTraceRequest);\n message.hash = object.hash !== undefined && object.hash !== null ? String(object.hash) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined && (obj.hash = message.hash);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomTraceRequest);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryDenomTraceResponse = {};\nexports.QueryDenomTraceResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denomTrace !== undefined) {\n transfer_1.DenomTrace.encode(message.denomTrace, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomTraceResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomTrace = transfer_1.DenomTrace.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomTraceResponse);\n message.denomTrace =\n object.denomTrace !== undefined && object.denomTrace !== null\n ? transfer_1.DenomTrace.fromJSON(object.denomTrace)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denomTrace !== undefined &&\n (obj.denomTrace = message.denomTrace ? transfer_1.DenomTrace.toJSON(message.denomTrace) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDenomTraceResponse);\n message.denomTrace =\n object.denomTrace !== undefined && object.denomTrace !== null\n ? transfer_1.DenomTrace.fromPartial(object.denomTrace)\n : undefined;\n return message;\n },\n};\nconst baseQueryDenomTracesRequest = {};\nexports.QueryDenomTracesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomTracesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryDenomTracesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryDenomTracesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryDenomTracesResponse = {};\nexports.QueryDenomTracesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.denomTraces) {\n transfer_1.DenomTrace.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryDenomTracesResponse);\n message.denomTraces = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denomTraces.push(transfer_1.DenomTrace.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomTracesResponse);\n message.denomTraces = ((_a = object.denomTraces) !== null && _a !== void 0 ? _a : []).map((e) => transfer_1.DenomTrace.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.denomTraces) {\n obj.denomTraces = message.denomTraces.map((e) => (e ? transfer_1.DenomTrace.toJSON(e) : undefined));\n }\n else {\n obj.denomTraces = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryDenomTracesResponse);\n message.denomTraces = ((_a = object.denomTraces) === null || _a === void 0 ? void 0 : _a.map((e) => transfer_1.DenomTrace.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryParamsRequest = {};\nexports.QueryParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryParamsRequest);\n return message;\n },\n};\nconst baseQueryParamsResponse = {};\nexports.QueryParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n transfer_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = transfer_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? transfer_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? transfer_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? transfer_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.DenomTrace = this.DenomTrace.bind(this);\n this.DenomTraces = this.DenomTraces.bind(this);\n this.Params = this.Params.bind(this);\n }\n DenomTrace(request) {\n const data = exports.QueryDenomTraceRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomTrace\", data);\n return promise.then((data) => exports.QueryDenomTraceResponse.decode(new minimal_1.default.Reader(data)));\n }\n DenomTraces(request) {\n const data = exports.QueryDenomTracesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"DenomTraces\", data);\n return promise.then((data) => exports.QueryDenomTracesResponse.decode(new minimal_1.default.Reader(data)));\n }\n Params(request) {\n const data = exports.QueryParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Query\", \"Params\", data);\n return promise.then((data) => exports.QueryParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.DenomTrace = exports.FungibleTokenPacketData = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nconst baseFungibleTokenPacketData = { denom: \"\", amount: long_1.default.UZERO, sender: \"\", receiver: \"\" };\nexports.FungibleTokenPacketData = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.denom !== \"\") {\n writer.uint32(10).string(message.denom);\n }\n if (!message.amount.isZero()) {\n writer.uint32(16).uint64(message.amount);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(34).string(message.receiver);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFungibleTokenPacketData);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.denom = reader.string();\n break;\n case 2:\n message.amount = reader.uint64();\n break;\n case 3:\n message.sender = reader.string();\n break;\n case 4:\n message.receiver = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFungibleTokenPacketData);\n message.denom = object.denom !== undefined && object.denom !== null ? String(object.denom) : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? long_1.default.fromString(object.amount) : long_1.default.UZERO;\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.receiver =\n object.receiver !== undefined && object.receiver !== null ? String(object.receiver) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.denom !== undefined && (obj.denom = message.denom);\n message.amount !== undefined && (obj.amount = (message.amount || long_1.default.UZERO).toString());\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseFungibleTokenPacketData);\n message.denom = (_a = object.denom) !== null && _a !== void 0 ? _a : \"\";\n message.amount =\n object.amount !== undefined && object.amount !== null ? long_1.default.fromValue(object.amount) : long_1.default.UZERO;\n message.sender = (_b = object.sender) !== null && _b !== void 0 ? _b : \"\";\n message.receiver = (_c = object.receiver) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseDenomTrace = { path: \"\", baseDenom: \"\" };\nexports.DenomTrace = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.baseDenom !== \"\") {\n writer.uint32(18).string(message.baseDenom);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDenomTrace);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.path = reader.string();\n break;\n case 2:\n message.baseDenom = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDenomTrace);\n message.path = object.path !== undefined && object.path !== null ? String(object.path) : \"\";\n message.baseDenom =\n object.baseDenom !== undefined && object.baseDenom !== null ? String(object.baseDenom) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.path !== undefined && (obj.path = message.path);\n message.baseDenom !== undefined && (obj.baseDenom = message.baseDenom);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseDenomTrace);\n message.path = (_a = object.path) !== null && _a !== void 0 ? _a : \"\";\n message.baseDenom = (_b = object.baseDenom) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseParams = { sendEnabled: false, receiveEnabled: false };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sendEnabled === true) {\n writer.uint32(8).bool(message.sendEnabled);\n }\n if (message.receiveEnabled === true) {\n writer.uint32(16).bool(message.receiveEnabled);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sendEnabled = reader.bool();\n break;\n case 2:\n message.receiveEnabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseParams);\n message.sendEnabled =\n object.sendEnabled !== undefined && object.sendEnabled !== null ? Boolean(object.sendEnabled) : false;\n message.receiveEnabled =\n object.receiveEnabled !== undefined && object.receiveEnabled !== null\n ? Boolean(object.receiveEnabled)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sendEnabled !== undefined && (obj.sendEnabled = message.sendEnabled);\n message.receiveEnabled !== undefined && (obj.receiveEnabled = message.receiveEnabled);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseParams);\n message.sendEnabled = (_a = object.sendEnabled) !== null && _a !== void 0 ? _a : false;\n message.receiveEnabled = (_b = object.receiveEnabled) !== null && _b !== void 0 ? _b : false;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=transfer.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgTransferResponse = exports.MsgTransfer = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst coin_1 = require(\"../../../../cosmos/base/v1beta1/coin\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.applications.transfer.v1\";\nconst baseMsgTransfer = {\n sourcePort: \"\",\n sourceChannel: \"\",\n sender: \"\",\n receiver: \"\",\n timeoutTimestamp: long_1.default.UZERO,\n};\nexports.MsgTransfer = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.sourcePort !== \"\") {\n writer.uint32(10).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(18).string(message.sourceChannel);\n }\n if (message.token !== undefined) {\n coin_1.Coin.encode(message.token, writer.uint32(26).fork()).ldelim();\n }\n if (message.sender !== \"\") {\n writer.uint32(34).string(message.sender);\n }\n if (message.receiver !== \"\") {\n writer.uint32(42).string(message.receiver);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim();\n }\n if (!message.timeoutTimestamp.isZero()) {\n writer.uint32(56).uint64(message.timeoutTimestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTransfer);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sourcePort = reader.string();\n break;\n case 2:\n message.sourceChannel = reader.string();\n break;\n case 3:\n message.token = coin_1.Coin.decode(reader, reader.uint32());\n break;\n case 4:\n message.sender = reader.string();\n break;\n case 5:\n message.receiver = reader.string();\n break;\n case 6:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.timeoutTimestamp = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTransfer);\n message.sourcePort =\n object.sourcePort !== undefined && object.sourcePort !== null ? String(object.sourcePort) : \"\";\n message.sourceChannel =\n object.sourceChannel !== undefined && object.sourceChannel !== null ? String(object.sourceChannel) : \"\";\n message.token =\n object.token !== undefined && object.token !== null ? coin_1.Coin.fromJSON(object.token) : undefined;\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n message.receiver =\n object.receiver !== undefined && object.receiver !== null ? String(object.receiver) : \"\";\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? client_1.Height.fromJSON(object.timeoutHeight)\n : undefined;\n message.timeoutTimestamp =\n object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null\n ? long_1.default.fromString(object.timeoutTimestamp)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.token !== undefined && (obj.token = message.token ? coin_1.Coin.toJSON(message.token) : undefined);\n message.sender !== undefined && (obj.sender = message.sender);\n message.receiver !== undefined && (obj.receiver = message.receiver);\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgTransfer);\n message.sourcePort = (_a = object.sourcePort) !== null && _a !== void 0 ? _a : \"\";\n message.sourceChannel = (_b = object.sourceChannel) !== null && _b !== void 0 ? _b : \"\";\n message.token =\n object.token !== undefined && object.token !== null ? coin_1.Coin.fromPartial(object.token) : undefined;\n message.sender = (_c = object.sender) !== null && _c !== void 0 ? _c : \"\";\n message.receiver = (_d = object.receiver) !== null && _d !== void 0 ? _d : \"\";\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? client_1.Height.fromPartial(object.timeoutHeight)\n : undefined;\n message.timeoutTimestamp =\n object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null\n ? long_1.default.fromValue(object.timeoutTimestamp)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseMsgTransferResponse = {};\nexports.MsgTransferResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTransferResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgTransferResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTransferResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Transfer = this.Transfer.bind(this);\n }\n Transfer(request) {\n const data = exports.MsgTransfer.encode(request).finish();\n const promise = this.rpc.request(\"ibc.applications.transfer.v1.Msg\", \"Transfer\", data);\n return promise.then((data) => exports.MsgTransferResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Acknowledgement = exports.PacketState = exports.Packet = exports.Counterparty = exports.IdentifiedChannel = exports.Channel = exports.orderToJSON = exports.orderFromJSON = exports.Order = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\n/**\n * State defines if a channel is in one of the following states:\n * CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A channel has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /** STATE_TRYOPEN - A channel has acknowledged the handshake step on the counterparty chain. */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /**\n * STATE_OPEN - A channel has completed the handshake. Open channels are\n * ready to send and receive packets.\n */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n /**\n * STATE_CLOSED - A channel has been closed and can no longer be used to send or receive\n * packets.\n */\n State[State[\"STATE_CLOSED\"] = 4] = \"STATE_CLOSED\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State = exports.State || (exports.State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case 4:\n case \"STATE_CLOSED\":\n return State.STATE_CLOSED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n case State.STATE_CLOSED:\n return \"STATE_CLOSED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.stateToJSON = stateToJSON;\n/** Order defines if a channel is ORDERED or UNORDERED */\nvar Order;\n(function (Order) {\n /** ORDER_NONE_UNSPECIFIED - zero-value for channel ordering */\n Order[Order[\"ORDER_NONE_UNSPECIFIED\"] = 0] = \"ORDER_NONE_UNSPECIFIED\";\n /**\n * ORDER_UNORDERED - packets can be delivered in any order, which may differ from the order in\n * which they were sent.\n */\n Order[Order[\"ORDER_UNORDERED\"] = 1] = \"ORDER_UNORDERED\";\n /** ORDER_ORDERED - packets are delivered exactly in the order which they were sent */\n Order[Order[\"ORDER_ORDERED\"] = 2] = \"ORDER_ORDERED\";\n Order[Order[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(Order = exports.Order || (exports.Order = {}));\nfunction orderFromJSON(object) {\n switch (object) {\n case 0:\n case \"ORDER_NONE_UNSPECIFIED\":\n return Order.ORDER_NONE_UNSPECIFIED;\n case 1:\n case \"ORDER_UNORDERED\":\n return Order.ORDER_UNORDERED;\n case 2:\n case \"ORDER_ORDERED\":\n return Order.ORDER_ORDERED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return Order.UNRECOGNIZED;\n }\n}\nexports.orderFromJSON = orderFromJSON;\nfunction orderToJSON(object) {\n switch (object) {\n case Order.ORDER_NONE_UNSPECIFIED:\n return \"ORDER_NONE_UNSPECIFIED\";\n case Order.ORDER_UNORDERED:\n return \"ORDER_UNORDERED\";\n case Order.ORDER_ORDERED:\n return \"ORDER_ORDERED\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.orderToJSON = orderToJSON;\nconst baseChannel = { state: 0, ordering: 0, connectionHops: \"\", version: \"\" };\nexports.Channel = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseChannel);\n message.connectionHops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseChannel);\n message.state = object.state !== undefined && object.state !== null ? stateFromJSON(object.state) : 0;\n message.ordering =\n object.ordering !== undefined && object.ordering !== null ? orderFromJSON(object.ordering) : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.connectionHops = ((_a = object.connectionHops) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.version = object.version !== undefined && object.version !== null ? String(object.version) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseChannel);\n message.state = (_a = object.state) !== null && _a !== void 0 ? _a : 0;\n message.ordering = (_b = object.ordering) !== null && _b !== void 0 ? _b : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.connectionHops = ((_c = object.connectionHops) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n message.version = (_d = object.version) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseIdentifiedChannel = {\n state: 0,\n ordering: 0,\n connectionHops: \"\",\n version: \"\",\n portId: \"\",\n channelId: \"\",\n};\nexports.IdentifiedChannel = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.ordering !== 0) {\n writer.uint32(16).int32(message.ordering);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.connectionHops) {\n writer.uint32(34).string(v);\n }\n if (message.version !== \"\") {\n writer.uint32(42).string(message.version);\n }\n if (message.portId !== \"\") {\n writer.uint32(50).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(58).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedChannel);\n message.connectionHops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.state = reader.int32();\n break;\n case 2:\n message.ordering = reader.int32();\n break;\n case 3:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 4:\n message.connectionHops.push(reader.string());\n break;\n case 5:\n message.version = reader.string();\n break;\n case 6:\n message.portId = reader.string();\n break;\n case 7:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseIdentifiedChannel);\n message.state = object.state !== undefined && object.state !== null ? stateFromJSON(object.state) : 0;\n message.ordering =\n object.ordering !== undefined && object.ordering !== null ? orderFromJSON(object.ordering) : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.connectionHops = ((_a = object.connectionHops) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.version = object.version !== undefined && object.version !== null ? String(object.version) : \"\";\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.ordering !== undefined && (obj.ordering = orderToJSON(message.ordering));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n if (message.connectionHops) {\n obj.connectionHops = message.connectionHops.map((e) => e);\n }\n else {\n obj.connectionHops = [];\n }\n message.version !== undefined && (obj.version = message.version);\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseIdentifiedChannel);\n message.state = (_a = object.state) !== null && _a !== void 0 ? _a : 0;\n message.ordering = (_b = object.ordering) !== null && _b !== void 0 ? _b : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.connectionHops = ((_c = object.connectionHops) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n message.version = (_d = object.version) !== null && _d !== void 0 ? _d : \"\";\n message.portId = (_e = object.portId) !== null && _e !== void 0 ? _e : \"\";\n message.channelId = (_f = object.channelId) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseCounterparty = { portId: \"\", channelId: \"\" };\nexports.Counterparty = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCounterparty);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCounterparty);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCounterparty);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst basePacket = {\n sequence: long_1.default.UZERO,\n sourcePort: \"\",\n sourceChannel: \"\",\n destinationPort: \"\",\n destinationChannel: \"\",\n timeoutTimestamp: long_1.default.UZERO,\n};\nexports.Packet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.sequence.isZero()) {\n writer.uint32(8).uint64(message.sequence);\n }\n if (message.sourcePort !== \"\") {\n writer.uint32(18).string(message.sourcePort);\n }\n if (message.sourceChannel !== \"\") {\n writer.uint32(26).string(message.sourceChannel);\n }\n if (message.destinationPort !== \"\") {\n writer.uint32(34).string(message.destinationPort);\n }\n if (message.destinationChannel !== \"\") {\n writer.uint32(42).string(message.destinationChannel);\n }\n if (message.data.length !== 0) {\n writer.uint32(50).bytes(message.data);\n }\n if (message.timeoutHeight !== undefined) {\n client_1.Height.encode(message.timeoutHeight, writer.uint32(58).fork()).ldelim();\n }\n if (!message.timeoutTimestamp.isZero()) {\n writer.uint32(64).uint64(message.timeoutTimestamp);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePacket);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = reader.uint64();\n break;\n case 2:\n message.sourcePort = reader.string();\n break;\n case 3:\n message.sourceChannel = reader.string();\n break;\n case 4:\n message.destinationPort = reader.string();\n break;\n case 5:\n message.destinationChannel = reader.string();\n break;\n case 6:\n message.data = reader.bytes();\n break;\n case 7:\n message.timeoutHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.timeoutTimestamp = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePacket);\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n message.sourcePort =\n object.sourcePort !== undefined && object.sourcePort !== null ? String(object.sourcePort) : \"\";\n message.sourceChannel =\n object.sourceChannel !== undefined && object.sourceChannel !== null ? String(object.sourceChannel) : \"\";\n message.destinationPort =\n object.destinationPort !== undefined && object.destinationPort !== null\n ? String(object.destinationPort)\n : \"\";\n message.destinationChannel =\n object.destinationChannel !== undefined && object.destinationChannel !== null\n ? String(object.destinationChannel)\n : \"\";\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? client_1.Height.fromJSON(object.timeoutHeight)\n : undefined;\n message.timeoutTimestamp =\n object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null\n ? long_1.default.fromString(object.timeoutTimestamp)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort);\n message.sourceChannel !== undefined && (obj.sourceChannel = message.sourceChannel);\n message.destinationPort !== undefined && (obj.destinationPort = message.destinationPort);\n message.destinationChannel !== undefined && (obj.destinationChannel = message.destinationChannel);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.timeoutHeight !== undefined &&\n (obj.timeoutHeight = message.timeoutHeight ? client_1.Height.toJSON(message.timeoutHeight) : undefined);\n message.timeoutTimestamp !== undefined &&\n (obj.timeoutTimestamp = (message.timeoutTimestamp || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, basePacket);\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n message.sourcePort = (_a = object.sourcePort) !== null && _a !== void 0 ? _a : \"\";\n message.sourceChannel = (_b = object.sourceChannel) !== null && _b !== void 0 ? _b : \"\";\n message.destinationPort = (_c = object.destinationPort) !== null && _c !== void 0 ? _c : \"\";\n message.destinationChannel = (_d = object.destinationChannel) !== null && _d !== void 0 ? _d : \"\";\n message.data = (_e = object.data) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.timeoutHeight =\n object.timeoutHeight !== undefined && object.timeoutHeight !== null\n ? client_1.Height.fromPartial(object.timeoutHeight)\n : undefined;\n message.timeoutTimestamp =\n object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null\n ? long_1.default.fromValue(object.timeoutTimestamp)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst basePacketState = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.PacketState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n if (message.data.length !== 0) {\n writer.uint32(34).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePacketState);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n case 4:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePacketState);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, basePacketState);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n message.data = (_c = object.data) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseAcknowledgement = {};\nexports.Acknowledgement = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== undefined) {\n writer.uint32(170).bytes(message.result);\n }\n if (message.error !== undefined) {\n writer.uint32(178).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseAcknowledgement);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 21:\n message.result = reader.bytes();\n break;\n case 22:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseAcknowledgement);\n message.result =\n object.result !== undefined && object.result !== null ? bytesFromBase64(object.result) : undefined;\n message.error = object.error !== undefined && object.error !== null ? String(object.error) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined &&\n (obj.result = message.result !== undefined ? base64FromBytes(message.result) : undefined);\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseAcknowledgement);\n message.result = (_a = object.result) !== null && _a !== void 0 ? _a : undefined;\n message.error = (_b = object.error) !== null && _b !== void 0 ? _b : undefined;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=channel.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryNextSequenceReceiveResponse = exports.QueryNextSequenceReceiveRequest = exports.QueryUnreceivedAcksResponse = exports.QueryUnreceivedAcksRequest = exports.QueryUnreceivedPacketsResponse = exports.QueryUnreceivedPacketsRequest = exports.QueryPacketAcknowledgementsResponse = exports.QueryPacketAcknowledgementsRequest = exports.QueryPacketAcknowledgementResponse = exports.QueryPacketAcknowledgementRequest = exports.QueryPacketReceiptResponse = exports.QueryPacketReceiptRequest = exports.QueryPacketCommitmentsResponse = exports.QueryPacketCommitmentsRequest = exports.QueryPacketCommitmentResponse = exports.QueryPacketCommitmentRequest = exports.QueryChannelConsensusStateResponse = exports.QueryChannelConsensusStateRequest = exports.QueryChannelClientStateResponse = exports.QueryChannelClientStateRequest = exports.QueryConnectionChannelsResponse = exports.QueryConnectionChannelsRequest = exports.QueryChannelsResponse = exports.QueryChannelsRequest = exports.QueryChannelResponse = exports.QueryChannelRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst channel_1 = require(\"../../../../ibc/core/channel/v1/channel\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\nconst baseQueryChannelRequest = { portId: \"\", channelId: \"\" };\nexports.QueryChannelRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryChannelRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryChannelResponse = {};\nexports.QueryChannelResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelResponse);\n message.channel =\n object.channel !== undefined && object.channel !== null ? channel_1.Channel.fromJSON(object.channel) : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryChannelResponse);\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? channel_1.Channel.fromPartial(object.channel)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryChannelsRequest = {};\nexports.QueryChannelsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryChannelsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryChannelsResponse = {};\nexports.QueryChannelsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.channels) {\n channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelsResponse);\n message.channels = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channels.push(channel_1.IdentifiedChannel.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryChannelsResponse);\n message.channels = ((_a = object.channels) !== null && _a !== void 0 ? _a : []).map((e) => channel_1.IdentifiedChannel.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.channels) {\n obj.channels = message.channels.map((e) => (e ? channel_1.IdentifiedChannel.toJSON(e) : undefined));\n }\n else {\n obj.channels = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryChannelsResponse);\n message.channels = ((_a = object.channels) === null || _a === void 0 ? void 0 : _a.map((e) => channel_1.IdentifiedChannel.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryConnectionChannelsRequest = { connection: \"\" };\nexports.QueryConnectionChannelsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connection !== \"\") {\n writer.uint32(10).string(message.connection);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionChannelsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionChannelsRequest);\n message.connection =\n object.connection !== undefined && object.connection !== null ? String(object.connection) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connection !== undefined && (obj.connection = message.connection);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionChannelsRequest);\n message.connection = (_a = object.connection) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionChannelsResponse = {};\nexports.QueryConnectionChannelsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.channels) {\n channel_1.IdentifiedChannel.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionChannelsResponse);\n message.channels = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.channels.push(channel_1.IdentifiedChannel.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionChannelsResponse);\n message.channels = ((_a = object.channels) !== null && _a !== void 0 ? _a : []).map((e) => channel_1.IdentifiedChannel.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.channels) {\n obj.channels = message.channels.map((e) => (e ? channel_1.IdentifiedChannel.toJSON(e) : undefined));\n }\n else {\n obj.channels = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionChannelsResponse);\n message.channels = ((_a = object.channels) === null || _a === void 0 ? void 0 : _a.map((e) => channel_1.IdentifiedChannel.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryChannelClientStateRequest = { portId: \"\", channelId: \"\" };\nexports.QueryChannelClientStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelClientStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelClientStateRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryChannelClientStateRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryChannelClientStateResponse = {};\nexports.QueryChannelClientStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.identifiedClientState !== undefined) {\n client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelClientStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelClientStateResponse);\n message.identifiedClientState =\n object.identifiedClientState !== undefined && object.identifiedClientState !== null\n ? client_1.IdentifiedClientState.fromJSON(object.identifiedClientState)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.identifiedClientState !== undefined &&\n (obj.identifiedClientState = message.identifiedClientState\n ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState)\n : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryChannelClientStateResponse);\n message.identifiedClientState =\n object.identifiedClientState !== undefined && object.identifiedClientState !== null\n ? client_1.IdentifiedClientState.fromPartial(object.identifiedClientState)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryChannelConsensusStateRequest = {\n portId: \"\",\n channelId: \"\",\n revisionNumber: long_1.default.UZERO,\n revisionHeight: long_1.default.UZERO,\n};\nexports.QueryChannelConsensusStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.revisionNumber.isZero()) {\n writer.uint32(24).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(32).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelConsensusStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.revisionNumber = reader.uint64();\n break;\n case 4:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelConsensusStateRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromString(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromString(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryChannelConsensusStateRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromValue(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromValue(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryChannelConsensusStateResponse = { clientId: \"\" };\nexports.QueryChannelConsensusStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryChannelConsensusStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryChannelConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryChannelConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketCommitmentRequest = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.QueryPacketCommitmentRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketCommitmentRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketCommitmentRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketCommitmentRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryPacketCommitmentResponse = {};\nexports.QueryPacketCommitmentResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.commitment.length !== 0) {\n writer.uint32(10).bytes(message.commitment);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketCommitmentResponse);\n message.commitment = new Uint8Array();\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commitment = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketCommitmentResponse);\n message.commitment =\n object.commitment !== undefined && object.commitment !== null\n ? bytesFromBase64(object.commitment)\n : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.commitment !== undefined &&\n (obj.commitment = base64FromBytes(message.commitment !== undefined ? message.commitment : new Uint8Array()));\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketCommitmentResponse);\n message.commitment = (_a = object.commitment) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketCommitmentsRequest = { portId: \"\", channelId: \"\" };\nexports.QueryPacketCommitmentsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketCommitmentsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketCommitmentsRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketCommitmentsRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketCommitmentsResponse = {};\nexports.QueryPacketCommitmentsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.commitments) {\n channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketCommitmentsResponse);\n message.commitments = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.commitments.push(channel_1.PacketState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryPacketCommitmentsResponse);\n message.commitments = ((_a = object.commitments) !== null && _a !== void 0 ? _a : []).map((e) => channel_1.PacketState.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.commitments) {\n obj.commitments = message.commitments.map((e) => (e ? channel_1.PacketState.toJSON(e) : undefined));\n }\n else {\n obj.commitments = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryPacketCommitmentsResponse);\n message.commitments = ((_a = object.commitments) === null || _a === void 0 ? void 0 : _a.map((e) => channel_1.PacketState.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryPacketReceiptRequest = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.QueryPacketReceiptRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketReceiptRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketReceiptRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketReceiptRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryPacketReceiptResponse = { received: false };\nexports.QueryPacketReceiptResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.received === true) {\n writer.uint32(16).bool(message.received);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketReceiptResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.received = reader.bool();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketReceiptResponse);\n message.received =\n object.received !== undefined && object.received !== null ? Boolean(object.received) : false;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.received !== undefined && (obj.received = message.received);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketReceiptResponse);\n message.received = (_a = object.received) !== null && _a !== void 0 ? _a : false;\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketAcknowledgementRequest = { portId: \"\", channelId: \"\", sequence: long_1.default.UZERO };\nexports.QueryPacketAcknowledgementRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (!message.sequence.isZero()) {\n writer.uint32(24).uint64(message.sequence);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketAcknowledgementRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.sequence = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketAcknowledgementRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromString(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.sequence !== undefined && (obj.sequence = (message.sequence || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketAcknowledgementRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.sequence =\n object.sequence !== undefined && object.sequence !== null\n ? long_1.default.fromValue(object.sequence)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryPacketAcknowledgementResponse = {};\nexports.QueryPacketAcknowledgementResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.acknowledgement.length !== 0) {\n writer.uint32(10).bytes(message.acknowledgement);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketAcknowledgementResponse);\n message.acknowledgement = new Uint8Array();\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.acknowledgement = reader.bytes();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketAcknowledgementResponse);\n message.acknowledgement =\n object.acknowledgement !== undefined && object.acknowledgement !== null\n ? bytesFromBase64(object.acknowledgement)\n : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketAcknowledgementResponse);\n message.acknowledgement = (_a = object.acknowledgement) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketAcknowledgementsRequest = { portId: \"\", channelId: \"\" };\nexports.QueryPacketAcknowledgementsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryPacketAcknowledgementsRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryPacketAcknowledgementsResponse = {};\nexports.QueryPacketAcknowledgementsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.acknowledgements) {\n channel_1.PacketState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsResponse);\n message.acknowledgements = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.acknowledgements.push(channel_1.PacketState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsResponse);\n message.acknowledgements = ((_a = object.acknowledgements) !== null && _a !== void 0 ? _a : []).map((e) => channel_1.PacketState.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.acknowledgements) {\n obj.acknowledgements = message.acknowledgements.map((e) => (e ? channel_1.PacketState.toJSON(e) : undefined));\n }\n else {\n obj.acknowledgements = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryPacketAcknowledgementsResponse);\n message.acknowledgements = ((_a = object.acknowledgements) === null || _a === void 0 ? void 0 : _a.map((e) => channel_1.PacketState.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryUnreceivedPacketsRequest = {\n portId: \"\",\n channelId: \"\",\n packetCommitmentSequences: long_1.default.UZERO,\n};\nexports.QueryUnreceivedPacketsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n writer.uint32(26).fork();\n for (const v of message.packetCommitmentSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnreceivedPacketsRequest);\n message.packetCommitmentSequences = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n }\n else {\n message.packetCommitmentSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedPacketsRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.packetCommitmentSequences = ((_a = object.packetCommitmentSequences) !== null && _a !== void 0 ? _a : []).map((e) => long_1.default.fromString(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n if (message.packetCommitmentSequences) {\n obj.packetCommitmentSequences = message.packetCommitmentSequences.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.packetCommitmentSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseQueryUnreceivedPacketsRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.packetCommitmentSequences = ((_c = object.packetCommitmentSequences) === null || _c === void 0 ? void 0 : _c.map((e) => long_1.default.fromValue(e))) || [];\n return message;\n },\n};\nconst baseQueryUnreceivedPacketsResponse = { sequences: long_1.default.UZERO };\nexports.QueryUnreceivedPacketsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n writer.uint32(10).fork();\n for (const v of message.sequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnreceivedPacketsResponse);\n message.sequences = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.sequences.push(reader.uint64());\n }\n }\n else {\n message.sequences.push(reader.uint64());\n }\n break;\n case 2:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedPacketsResponse);\n message.sequences = ((_a = object.sequences) !== null && _a !== void 0 ? _a : []).map((e) => long_1.default.fromString(e));\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.sequences) {\n obj.sequences = message.sequences.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.sequences = [];\n }\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedPacketsResponse);\n message.sequences = ((_a = object.sequences) === null || _a === void 0 ? void 0 : _a.map((e) => long_1.default.fromValue(e))) || [];\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryUnreceivedAcksRequest = { portId: \"\", channelId: \"\", packetAckSequences: long_1.default.UZERO };\nexports.QueryUnreceivedAcksRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n writer.uint32(26).fork();\n for (const v of message.packetAckSequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnreceivedAcksRequest);\n message.packetAckSequences = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.packetAckSequences.push(reader.uint64());\n }\n }\n else {\n message.packetAckSequences.push(reader.uint64());\n }\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedAcksRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.packetAckSequences = ((_a = object.packetAckSequences) !== null && _a !== void 0 ? _a : []).map((e) => long_1.default.fromString(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n if (message.packetAckSequences) {\n obj.packetAckSequences = message.packetAckSequences.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.packetAckSequences = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseQueryUnreceivedAcksRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.packetAckSequences = ((_c = object.packetAckSequences) === null || _c === void 0 ? void 0 : _c.map((e) => long_1.default.fromValue(e))) || [];\n return message;\n },\n};\nconst baseQueryUnreceivedAcksResponse = { sequences: long_1.default.UZERO };\nexports.QueryUnreceivedAcksResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n writer.uint32(10).fork();\n for (const v of message.sequences) {\n writer.uint64(v);\n }\n writer.ldelim();\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryUnreceivedAcksResponse);\n message.sequences = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.sequences.push(reader.uint64());\n }\n }\n else {\n message.sequences.push(reader.uint64());\n }\n break;\n case 2:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedAcksResponse);\n message.sequences = ((_a = object.sequences) !== null && _a !== void 0 ? _a : []).map((e) => long_1.default.fromString(e));\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.sequences) {\n obj.sequences = message.sequences.map((e) => (e || long_1.default.UZERO).toString());\n }\n else {\n obj.sequences = [];\n }\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryUnreceivedAcksResponse);\n message.sequences = ((_a = object.sequences) === null || _a === void 0 ? void 0 : _a.map((e) => long_1.default.fromValue(e))) || [];\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryNextSequenceReceiveRequest = { portId: \"\", channelId: \"\" };\nexports.QueryNextSequenceReceiveRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryNextSequenceReceiveRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryNextSequenceReceiveRequest);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryNextSequenceReceiveRequest);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseQueryNextSequenceReceiveResponse = { nextSequenceReceive: long_1.default.UZERO };\nexports.QueryNextSequenceReceiveResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.nextSequenceReceive.isZero()) {\n writer.uint32(8).uint64(message.nextSequenceReceive);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryNextSequenceReceiveResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.nextSequenceReceive = reader.uint64();\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryNextSequenceReceiveResponse);\n message.nextSequenceReceive =\n object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null\n ? long_1.default.fromString(object.nextSequenceReceive)\n : long_1.default.UZERO;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.nextSequenceReceive !== undefined &&\n (obj.nextSequenceReceive = (message.nextSequenceReceive || long_1.default.UZERO).toString());\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryNextSequenceReceiveResponse);\n message.nextSequenceReceive =\n object.nextSequenceReceive !== undefined && object.nextSequenceReceive !== null\n ? long_1.default.fromValue(object.nextSequenceReceive)\n : long_1.default.UZERO;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Channel = this.Channel.bind(this);\n this.Channels = this.Channels.bind(this);\n this.ConnectionChannels = this.ConnectionChannels.bind(this);\n this.ChannelClientState = this.ChannelClientState.bind(this);\n this.ChannelConsensusState = this.ChannelConsensusState.bind(this);\n this.PacketCommitment = this.PacketCommitment.bind(this);\n this.PacketCommitments = this.PacketCommitments.bind(this);\n this.PacketReceipt = this.PacketReceipt.bind(this);\n this.PacketAcknowledgement = this.PacketAcknowledgement.bind(this);\n this.PacketAcknowledgements = this.PacketAcknowledgements.bind(this);\n this.UnreceivedPackets = this.UnreceivedPackets.bind(this);\n this.UnreceivedAcks = this.UnreceivedAcks.bind(this);\n this.NextSequenceReceive = this.NextSequenceReceive.bind(this);\n }\n Channel(request) {\n const data = exports.QueryChannelRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"Channel\", data);\n return promise.then((data) => exports.QueryChannelResponse.decode(new minimal_1.default.Reader(data)));\n }\n Channels(request) {\n const data = exports.QueryChannelsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"Channels\", data);\n return promise.then((data) => exports.QueryChannelsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionChannels(request) {\n const data = exports.QueryConnectionChannelsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ConnectionChannels\", data);\n return promise.then((data) => exports.QueryConnectionChannelsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelClientState(request) {\n const data = exports.QueryChannelClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ChannelClientState\", data);\n return promise.then((data) => exports.QueryChannelClientStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelConsensusState(request) {\n const data = exports.QueryChannelConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"ChannelConsensusState\", data);\n return promise.then((data) => exports.QueryChannelConsensusStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketCommitment(request) {\n const data = exports.QueryPacketCommitmentRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketCommitment\", data);\n return promise.then((data) => exports.QueryPacketCommitmentResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketCommitments(request) {\n const data = exports.QueryPacketCommitmentsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketCommitments\", data);\n return promise.then((data) => exports.QueryPacketCommitmentsResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketReceipt(request) {\n const data = exports.QueryPacketReceiptRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketReceipt\", data);\n return promise.then((data) => exports.QueryPacketReceiptResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketAcknowledgement(request) {\n const data = exports.QueryPacketAcknowledgementRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketAcknowledgement\", data);\n return promise.then((data) => exports.QueryPacketAcknowledgementResponse.decode(new minimal_1.default.Reader(data)));\n }\n PacketAcknowledgements(request) {\n const data = exports.QueryPacketAcknowledgementsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"PacketAcknowledgements\", data);\n return promise.then((data) => exports.QueryPacketAcknowledgementsResponse.decode(new minimal_1.default.Reader(data)));\n }\n UnreceivedPackets(request) {\n const data = exports.QueryUnreceivedPacketsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"UnreceivedPackets\", data);\n return promise.then((data) => exports.QueryUnreceivedPacketsResponse.decode(new minimal_1.default.Reader(data)));\n }\n UnreceivedAcks(request) {\n const data = exports.QueryUnreceivedAcksRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"UnreceivedAcks\", data);\n return promise.then((data) => exports.QueryUnreceivedAcksResponse.decode(new minimal_1.default.Reader(data)));\n }\n NextSequenceReceive(request) {\n const data = exports.QueryNextSequenceReceiveRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Query\", \"NextSequenceReceive\", data);\n return promise.then((data) => exports.QueryNextSequenceReceiveResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgAcknowledgementResponse = exports.MsgAcknowledgement = exports.MsgTimeoutOnCloseResponse = exports.MsgTimeoutOnClose = exports.MsgTimeoutResponse = exports.MsgTimeout = exports.MsgRecvPacketResponse = exports.MsgRecvPacket = exports.MsgChannelCloseConfirmResponse = exports.MsgChannelCloseConfirm = exports.MsgChannelCloseInitResponse = exports.MsgChannelCloseInit = exports.MsgChannelOpenConfirmResponse = exports.MsgChannelOpenConfirm = exports.MsgChannelOpenAckResponse = exports.MsgChannelOpenAck = exports.MsgChannelOpenTryResponse = exports.MsgChannelOpenTry = exports.MsgChannelOpenInitResponse = exports.MsgChannelOpenInit = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst channel_1 = require(\"../../../../ibc/core/channel/v1/channel\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.core.channel.v1\";\nconst baseMsgChannelOpenInit = { portId: \"\", signer: \"\" };\nexports.MsgChannelOpenInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenInit);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null ? channel_1.Channel.fromJSON(object.channel) : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgChannelOpenInit);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? channel_1.Channel.fromPartial(object.channel)\n : undefined;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgChannelOpenInitResponse = {};\nexports.MsgChannelOpenInitResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenInitResponse);\n return message;\n },\n};\nconst baseMsgChannelOpenTry = {\n portId: \"\",\n previousChannelId: \"\",\n counterpartyVersion: \"\",\n signer: \"\",\n};\nexports.MsgChannelOpenTry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.previousChannelId !== \"\") {\n writer.uint32(18).string(message.previousChannelId);\n }\n if (message.channel !== undefined) {\n channel_1.Channel.encode(message.channel, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(42).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenTry);\n message.proofInit = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.previousChannelId = reader.string();\n break;\n case 3:\n message.channel = channel_1.Channel.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofInit = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenTry);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.previousChannelId =\n object.previousChannelId !== undefined && object.previousChannelId !== null\n ? String(object.previousChannelId)\n : \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null ? channel_1.Channel.fromJSON(object.channel) : undefined;\n message.counterpartyVersion =\n object.counterpartyVersion !== undefined && object.counterpartyVersion !== null\n ? String(object.counterpartyVersion)\n : \"\";\n message.proofInit =\n object.proofInit !== undefined && object.proofInit !== null\n ? bytesFromBase64(object.proofInit)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.previousChannelId !== undefined && (obj.previousChannelId = message.previousChannelId);\n message.channel !== undefined &&\n (obj.channel = message.channel ? channel_1.Channel.toJSON(message.channel) : undefined);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseMsgChannelOpenTry);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.previousChannelId = (_b = object.previousChannelId) !== null && _b !== void 0 ? _b : \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? channel_1.Channel.fromPartial(object.channel)\n : undefined;\n message.counterpartyVersion = (_c = object.counterpartyVersion) !== null && _c !== void 0 ? _c : \"\";\n message.proofInit = (_d = object.proofInit) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_e = object.signer) !== null && _e !== void 0 ? _e : \"\";\n return message;\n },\n};\nconst baseMsgChannelOpenTryResponse = {};\nexports.MsgChannelOpenTryResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenTryResponse);\n return message;\n },\n};\nconst baseMsgChannelOpenAck = {\n portId: \"\",\n channelId: \"\",\n counterpartyChannelId: \"\",\n counterpartyVersion: \"\",\n signer: \"\",\n};\nexports.MsgChannelOpenAck = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.counterpartyChannelId !== \"\") {\n writer.uint32(26).string(message.counterpartyChannelId);\n }\n if (message.counterpartyVersion !== \"\") {\n writer.uint32(34).string(message.counterpartyVersion);\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(42).bytes(message.proofTry);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(58).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenAck);\n message.proofTry = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.counterpartyChannelId = reader.string();\n break;\n case 4:\n message.counterpartyVersion = reader.string();\n break;\n case 5:\n message.proofTry = reader.bytes();\n break;\n case 6:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenAck);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.counterpartyChannelId =\n object.counterpartyChannelId !== undefined && object.counterpartyChannelId !== null\n ? String(object.counterpartyChannelId)\n : \"\";\n message.counterpartyVersion =\n object.counterpartyVersion !== undefined && object.counterpartyVersion !== null\n ? String(object.counterpartyVersion)\n : \"\";\n message.proofTry =\n object.proofTry !== undefined && object.proofTry !== null\n ? bytesFromBase64(object.proofTry)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.counterpartyChannelId !== undefined &&\n (obj.counterpartyChannelId = message.counterpartyChannelId);\n message.counterpartyVersion !== undefined && (obj.counterpartyVersion = message.counterpartyVersion);\n message.proofTry !== undefined &&\n (obj.proofTry = base64FromBytes(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseMsgChannelOpenAck);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.counterpartyChannelId = (_c = object.counterpartyChannelId) !== null && _c !== void 0 ? _c : \"\";\n message.counterpartyVersion = (_d = object.counterpartyVersion) !== null && _d !== void 0 ? _d : \"\";\n message.proofTry = (_e = object.proofTry) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_f = object.signer) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseMsgChannelOpenAckResponse = {};\nexports.MsgChannelOpenAckResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenAckResponse);\n return message;\n },\n};\nconst baseMsgChannelOpenConfirm = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelOpenConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(26).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n message.proofAck = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofAck = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.proofAck =\n object.proofAck !== undefined && object.proofAck !== null\n ? bytesFromBase64(object.proofAck)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofAck !== undefined &&\n (obj.proofAck = base64FromBytes(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgChannelOpenConfirm);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.proofAck = (_c = object.proofAck) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_d = object.signer) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseMsgChannelOpenConfirmResponse = {};\nexports.MsgChannelOpenConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelOpenConfirmResponse);\n return message;\n },\n};\nconst baseMsgChannelCloseInit = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelCloseInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelCloseInit);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgChannelCloseInit);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.signer = (_c = object.signer) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgChannelCloseInitResponse = {};\nexports.MsgChannelCloseInitResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelCloseInitResponse);\n return message;\n },\n};\nconst baseMsgChannelCloseConfirm = { portId: \"\", channelId: \"\", signer: \"\" };\nexports.MsgChannelCloseConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.portId !== \"\") {\n writer.uint32(10).string(message.portId);\n }\n if (message.channelId !== \"\") {\n writer.uint32(18).string(message.channelId);\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(26).bytes(message.proofInit);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n message.proofInit = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.portId = reader.string();\n break;\n case 2:\n message.channelId = reader.string();\n break;\n case 3:\n message.proofInit = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n message.portId = object.portId !== undefined && object.portId !== null ? String(object.portId) : \"\";\n message.channelId =\n object.channelId !== undefined && object.channelId !== null ? String(object.channelId) : \"\";\n message.proofInit =\n object.proofInit !== undefined && object.proofInit !== null\n ? bytesFromBase64(object.proofInit)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.portId !== undefined && (obj.portId = message.portId);\n message.channelId !== undefined && (obj.channelId = message.channelId);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgChannelCloseConfirm);\n message.portId = (_a = object.portId) !== null && _a !== void 0 ? _a : \"\";\n message.channelId = (_b = object.channelId) !== null && _b !== void 0 ? _b : \"\";\n message.proofInit = (_c = object.proofInit) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_d = object.signer) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseMsgChannelCloseConfirmResponse = {};\nexports.MsgChannelCloseConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgChannelCloseConfirmResponse);\n return message;\n },\n};\nconst baseMsgRecvPacket = { signer: \"\" };\nexports.MsgRecvPacket = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofCommitment.length !== 0) {\n writer.uint32(18).bytes(message.proofCommitment);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRecvPacket);\n message.proofCommitment = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofCommitment = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgRecvPacket);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromJSON(object.packet) : undefined;\n message.proofCommitment =\n object.proofCommitment !== undefined && object.proofCommitment !== null\n ? bytesFromBase64(object.proofCommitment)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofCommitment !== undefined &&\n (obj.proofCommitment = base64FromBytes(message.proofCommitment !== undefined ? message.proofCommitment : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgRecvPacket);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined;\n message.proofCommitment = (_a = object.proofCommitment) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgRecvPacketResponse = {};\nexports.MsgRecvPacketResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgRecvPacketResponse);\n return message;\n },\n};\nconst baseMsgTimeout = { nextSequenceRecv: long_1.default.UZERO, signer: \"\" };\nexports.MsgTimeout = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (!message.nextSequenceRecv.isZero()) {\n writer.uint32(32).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeout);\n message.proofUnreceived = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTimeout);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromJSON(object.packet) : undefined;\n message.proofUnreceived =\n object.proofUnreceived !== undefined && object.proofUnreceived !== null\n ? bytesFromBase64(object.proofUnreceived)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.nextSequenceRecv =\n object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null\n ? long_1.default.fromString(object.nextSequenceRecv)\n : long_1.default.UZERO;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = base64FromBytes(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgTimeout);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined;\n message.proofUnreceived = (_a = object.proofUnreceived) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.nextSequenceRecv =\n object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null\n ? long_1.default.fromValue(object.nextSequenceRecv)\n : long_1.default.UZERO;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgTimeoutResponse = {};\nexports.MsgTimeoutResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgTimeoutResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTimeoutResponse);\n return message;\n },\n};\nconst baseMsgTimeoutOnClose = { nextSequenceRecv: long_1.default.UZERO, signer: \"\" };\nexports.MsgTimeoutOnClose = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.proofUnreceived.length !== 0) {\n writer.uint32(18).bytes(message.proofUnreceived);\n }\n if (message.proofClose.length !== 0) {\n writer.uint32(26).bytes(message.proofClose);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (!message.nextSequenceRecv.isZero()) {\n writer.uint32(40).uint64(message.nextSequenceRecv);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n message.proofUnreceived = new Uint8Array();\n message.proofClose = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.proofUnreceived = reader.bytes();\n break;\n case 3:\n message.proofClose = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.nextSequenceRecv = reader.uint64();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromJSON(object.packet) : undefined;\n message.proofUnreceived =\n object.proofUnreceived !== undefined && object.proofUnreceived !== null\n ? bytesFromBase64(object.proofUnreceived)\n : new Uint8Array();\n message.proofClose =\n object.proofClose !== undefined && object.proofClose !== null\n ? bytesFromBase64(object.proofClose)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.nextSequenceRecv =\n object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null\n ? long_1.default.fromString(object.nextSequenceRecv)\n : long_1.default.UZERO;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.proofUnreceived !== undefined &&\n (obj.proofUnreceived = base64FromBytes(message.proofUnreceived !== undefined ? message.proofUnreceived : new Uint8Array()));\n message.proofClose !== undefined &&\n (obj.proofClose = base64FromBytes(message.proofClose !== undefined ? message.proofClose : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.nextSequenceRecv !== undefined &&\n (obj.nextSequenceRecv = (message.nextSequenceRecv || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgTimeoutOnClose);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined;\n message.proofUnreceived = (_a = object.proofUnreceived) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofClose = (_b = object.proofClose) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.nextSequenceRecv =\n object.nextSequenceRecv !== undefined && object.nextSequenceRecv !== null\n ? long_1.default.fromValue(object.nextSequenceRecv)\n : long_1.default.UZERO;\n message.signer = (_c = object.signer) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgTimeoutOnCloseResponse = {};\nexports.MsgTimeoutOnCloseResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgTimeoutOnCloseResponse);\n return message;\n },\n};\nconst baseMsgAcknowledgement = { signer: \"\" };\nexports.MsgAcknowledgement = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.packet !== undefined) {\n channel_1.Packet.encode(message.packet, writer.uint32(10).fork()).ldelim();\n }\n if (message.acknowledgement.length !== 0) {\n writer.uint32(18).bytes(message.acknowledgement);\n }\n if (message.proofAcked.length !== 0) {\n writer.uint32(26).bytes(message.proofAcked);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAcknowledgement);\n message.acknowledgement = new Uint8Array();\n message.proofAcked = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packet = channel_1.Packet.decode(reader, reader.uint32());\n break;\n case 2:\n message.acknowledgement = reader.bytes();\n break;\n case 3:\n message.proofAcked = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgAcknowledgement);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromJSON(object.packet) : undefined;\n message.acknowledgement =\n object.acknowledgement !== undefined && object.acknowledgement !== null\n ? bytesFromBase64(object.acknowledgement)\n : new Uint8Array();\n message.proofAcked =\n object.proofAcked !== undefined && object.proofAcked !== null\n ? bytesFromBase64(object.proofAcked)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.packet !== undefined && (obj.packet = message.packet ? channel_1.Packet.toJSON(message.packet) : undefined);\n message.acknowledgement !== undefined &&\n (obj.acknowledgement = base64FromBytes(message.acknowledgement !== undefined ? message.acknowledgement : new Uint8Array()));\n message.proofAcked !== undefined &&\n (obj.proofAcked = base64FromBytes(message.proofAcked !== undefined ? message.proofAcked : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgAcknowledgement);\n message.packet =\n object.packet !== undefined && object.packet !== null ? channel_1.Packet.fromPartial(object.packet) : undefined;\n message.acknowledgement = (_a = object.acknowledgement) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofAcked = (_b = object.proofAcked) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_c = object.signer) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgAcknowledgementResponse = {};\nexports.MsgAcknowledgementResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgAcknowledgementResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ChannelOpenInit = this.ChannelOpenInit.bind(this);\n this.ChannelOpenTry = this.ChannelOpenTry.bind(this);\n this.ChannelOpenAck = this.ChannelOpenAck.bind(this);\n this.ChannelOpenConfirm = this.ChannelOpenConfirm.bind(this);\n this.ChannelCloseInit = this.ChannelCloseInit.bind(this);\n this.ChannelCloseConfirm = this.ChannelCloseConfirm.bind(this);\n this.RecvPacket = this.RecvPacket.bind(this);\n this.Timeout = this.Timeout.bind(this);\n this.TimeoutOnClose = this.TimeoutOnClose.bind(this);\n this.Acknowledgement = this.Acknowledgement.bind(this);\n }\n ChannelOpenInit(request) {\n const data = exports.MsgChannelOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenInit\", data);\n return promise.then((data) => exports.MsgChannelOpenInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenTry(request) {\n const data = exports.MsgChannelOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenTry\", data);\n return promise.then((data) => exports.MsgChannelOpenTryResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenAck(request) {\n const data = exports.MsgChannelOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenAck\", data);\n return promise.then((data) => exports.MsgChannelOpenAckResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelOpenConfirm(request) {\n const data = exports.MsgChannelOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelOpenConfirm\", data);\n return promise.then((data) => exports.MsgChannelOpenConfirmResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelCloseInit(request) {\n const data = exports.MsgChannelCloseInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseInit\", data);\n return promise.then((data) => exports.MsgChannelCloseInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ChannelCloseConfirm(request) {\n const data = exports.MsgChannelCloseConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"ChannelCloseConfirm\", data);\n return promise.then((data) => exports.MsgChannelCloseConfirmResponse.decode(new minimal_1.default.Reader(data)));\n }\n RecvPacket(request) {\n const data = exports.MsgRecvPacket.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"RecvPacket\", data);\n return promise.then((data) => exports.MsgRecvPacketResponse.decode(new minimal_1.default.Reader(data)));\n }\n Timeout(request) {\n const data = exports.MsgTimeout.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Timeout\", data);\n return promise.then((data) => exports.MsgTimeoutResponse.decode(new minimal_1.default.Reader(data)));\n }\n TimeoutOnClose(request) {\n const data = exports.MsgTimeoutOnClose.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"TimeoutOnClose\", data);\n return promise.then((data) => exports.MsgTimeoutOnCloseResponse.decode(new minimal_1.default.Reader(data)));\n }\n Acknowledgement(request) {\n const data = exports.MsgAcknowledgement.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.channel.v1.Msg\", \"Acknowledgement\", data);\n return promise.then((data) => exports.MsgAcknowledgementResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Params = exports.Height = exports.ClientUpdateProposal = exports.ClientConsensusStates = exports.ConsensusStateWithHeight = exports.IdentifiedClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nconst baseIdentifiedClientState = { clientId: \"\" };\nexports.IdentifiedClientState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedClientState);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseIdentifiedClientState);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseIdentifiedClientState);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n return message;\n },\n};\nconst baseConsensusStateWithHeight = {};\nexports.ConsensusStateWithHeight = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.height !== undefined) {\n exports.Height.encode(message.height, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusStateWithHeight);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = exports.Height.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusStateWithHeight);\n message.height =\n object.height !== undefined && object.height !== null ? exports.Height.fromJSON(object.height) : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = message.height ? exports.Height.toJSON(message.height) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusStateWithHeight);\n message.height =\n object.height !== undefined && object.height !== null ? exports.Height.fromPartial(object.height) : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n return message;\n },\n};\nconst baseClientConsensusStates = { clientId: \"\" };\nexports.ClientConsensusStates = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.consensusStates) {\n exports.ConsensusStateWithHeight.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientConsensusStates);\n message.consensusStates = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.consensusStates.push(exports.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseClientConsensusStates);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.consensusStates = ((_a = object.consensusStates) !== null && _a !== void 0 ? _a : []).map((e) => exports.ConsensusStateWithHeight.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? exports.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseClientConsensusStates);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.consensusStates =\n ((_b = object.consensusStates) === null || _b === void 0 ? void 0 : _b.map((e) => exports.ConsensusStateWithHeight.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseClientUpdateProposal = { title: \"\", description: \"\", clientId: \"\" };\nexports.ClientUpdateProposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.title !== \"\") {\n writer.uint32(10).string(message.title);\n }\n if (message.description !== \"\") {\n writer.uint32(18).string(message.description);\n }\n if (message.clientId !== \"\") {\n writer.uint32(26).string(message.clientId);\n }\n if (message.header !== undefined) {\n any_1.Any.encode(message.header, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientUpdateProposal);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.title = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n message.clientId = reader.string();\n break;\n case 4:\n message.header = any_1.Any.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseClientUpdateProposal);\n message.title = object.title !== undefined && object.title !== null ? String(object.title) : \"\";\n message.description =\n object.description !== undefined && object.description !== null ? String(object.description) : \"\";\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.header =\n object.header !== undefined && object.header !== null ? any_1.Any.fromJSON(object.header) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.title !== undefined && (obj.title = message.title);\n message.description !== undefined && (obj.description = message.description);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header !== undefined && (obj.header = message.header ? any_1.Any.toJSON(message.header) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseClientUpdateProposal);\n message.title = (_a = object.title) !== null && _a !== void 0 ? _a : \"\";\n message.description = (_b = object.description) !== null && _b !== void 0 ? _b : \"\";\n message.clientId = (_c = object.clientId) !== null && _c !== void 0 ? _c : \"\";\n message.header =\n object.header !== undefined && object.header !== null ? any_1.Any.fromPartial(object.header) : undefined;\n return message;\n },\n};\nconst baseHeight = { revisionNumber: long_1.default.UZERO, revisionHeight: long_1.default.UZERO };\nexports.Height = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.revisionNumber.isZero()) {\n writer.uint32(8).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(16).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeight);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.revisionNumber = reader.uint64();\n break;\n case 2:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeight);\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromString(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromString(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHeight);\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromValue(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromValue(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseParams = { allowedClients: \"\" };\nexports.Params = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.allowedClients) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseParams);\n message.allowedClients = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.allowedClients.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseParams);\n message.allowedClients = ((_a = object.allowedClients) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.allowedClients) {\n obj.allowedClients = message.allowedClients.map((e) => e);\n }\n else {\n obj.allowedClients = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseParams);\n message.allowedClients = ((_a = object.allowedClients) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=client.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryClientParamsResponse = exports.QueryClientParamsRequest = exports.QueryConsensusStatesResponse = exports.QueryConsensusStatesRequest = exports.QueryConsensusStateResponse = exports.QueryConsensusStateRequest = exports.QueryClientStatesResponse = exports.QueryClientStatesRequest = exports.QueryClientStateResponse = exports.QueryClientStateRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nconst baseQueryClientStateRequest = { clientId: \"\" };\nexports.QueryClientStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientStateRequest);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientStateRequest);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryClientStateResponse = {};\nexports.QueryClientStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientStateResponse);\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientStateResponse);\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryClientStatesRequest = {};\nexports.QueryClientStatesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientStatesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientStatesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryClientStatesRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryClientStatesResponse = {};\nexports.QueryClientStatesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.clientStates) {\n client_1.IdentifiedClientState.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientStatesResponse);\n message.clientStates = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientStates.push(client_1.IdentifiedClientState.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientStatesResponse);\n message.clientStates = ((_a = object.clientStates) !== null && _a !== void 0 ? _a : []).map((e) => client_1.IdentifiedClientState.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.clientStates) {\n obj.clientStates = message.clientStates.map((e) => (e ? client_1.IdentifiedClientState.toJSON(e) : undefined));\n }\n else {\n obj.clientStates = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientStatesResponse);\n message.clientStates = ((_a = object.clientStates) === null || _a === void 0 ? void 0 : _a.map((e) => client_1.IdentifiedClientState.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryConsensusStateRequest = {\n clientId: \"\",\n revisionNumber: long_1.default.UZERO,\n revisionHeight: long_1.default.UZERO,\n latestHeight: false,\n};\nexports.QueryConsensusStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (!message.revisionNumber.isZero()) {\n writer.uint32(16).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(24).uint64(message.revisionHeight);\n }\n if (message.latestHeight === true) {\n writer.uint32(32).bool(message.latestHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConsensusStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.revisionNumber = reader.uint64();\n break;\n case 3:\n message.revisionHeight = reader.uint64();\n break;\n case 4:\n message.latestHeight = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConsensusStateRequest);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromString(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromString(object.revisionHeight)\n : long_1.default.UZERO;\n message.latestHeight =\n object.latestHeight !== undefined && object.latestHeight !== null\n ? Boolean(object.latestHeight)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n message.latestHeight !== undefined && (obj.latestHeight = message.latestHeight);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryConsensusStateRequest);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromValue(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromValue(object.revisionHeight)\n : long_1.default.UZERO;\n message.latestHeight = (_b = object.latestHeight) !== null && _b !== void 0 ? _b : false;\n return message;\n },\n};\nconst baseQueryConsensusStateResponse = {};\nexports.QueryConsensusStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConsensusStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryConsensusStatesRequest = { clientId: \"\" };\nexports.QueryConsensusStatesRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConsensusStatesRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConsensusStatesRequest);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConsensusStatesRequest);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryConsensusStatesResponse = {};\nexports.QueryConsensusStatesResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.consensusStates) {\n client_1.ConsensusStateWithHeight.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConsensusStatesResponse);\n message.consensusStates = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusStates.push(client_1.ConsensusStateWithHeight.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryConsensusStatesResponse);\n message.consensusStates = ((_a = object.consensusStates) !== null && _a !== void 0 ? _a : []).map((e) => client_1.ConsensusStateWithHeight.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.consensusStates) {\n obj.consensusStates = message.consensusStates.map((e) => e ? client_1.ConsensusStateWithHeight.toJSON(e) : undefined);\n }\n else {\n obj.consensusStates = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConsensusStatesResponse);\n message.consensusStates =\n ((_a = object.consensusStates) === null || _a === void 0 ? void 0 : _a.map((e) => client_1.ConsensusStateWithHeight.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryClientParamsRequest = {};\nexports.QueryClientParamsRequest = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientParamsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseQueryClientParamsRequest);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseQueryClientParamsRequest);\n return message;\n },\n};\nconst baseQueryClientParamsResponse = {};\nexports.QueryClientParamsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.params !== undefined) {\n client_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientParamsResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.params = client_1.Params.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? client_1.Params.fromJSON(object.params) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.params !== undefined && (obj.params = message.params ? client_1.Params.toJSON(message.params) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryClientParamsResponse);\n message.params =\n object.params !== undefined && object.params !== null ? client_1.Params.fromPartial(object.params) : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ClientState = this.ClientState.bind(this);\n this.ClientStates = this.ClientStates.bind(this);\n this.ConsensusState = this.ConsensusState.bind(this);\n this.ConsensusStates = this.ConsensusStates.bind(this);\n this.ClientParams = this.ClientParams.bind(this);\n }\n ClientState(request) {\n const data = exports.QueryClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientState\", data);\n return promise.then((data) => exports.QueryClientStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClientStates(request) {\n const data = exports.QueryClientStatesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientStates\", data);\n return promise.then((data) => exports.QueryClientStatesResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConsensusState(request) {\n const data = exports.QueryConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusState\", data);\n return promise.then((data) => exports.QueryConsensusStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConsensusStates(request) {\n const data = exports.QueryConsensusStatesRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ConsensusStates\", data);\n return promise.then((data) => exports.QueryConsensusStatesResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClientParams(request) {\n const data = exports.QueryClientParamsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Query\", \"ClientParams\", data);\n return promise.then((data) => exports.QueryClientParamsResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgSubmitMisbehaviourResponse = exports.MsgSubmitMisbehaviour = exports.MsgUpgradeClientResponse = exports.MsgUpgradeClient = exports.MsgUpdateClientResponse = exports.MsgUpdateClient = exports.MsgCreateClientResponse = exports.MsgCreateClient = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst any_1 = require(\"../../../../google/protobuf/any\");\nexports.protobufPackage = \"ibc.core.client.v1\";\nconst baseMsgCreateClient = { signer: \"\" };\nexports.MsgCreateClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateClient);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgCreateClient);\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMsgCreateClient);\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.signer = (_a = object.signer) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseMsgCreateClientResponse = {};\nexports.MsgCreateClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgCreateClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgCreateClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgCreateClientResponse);\n return message;\n },\n};\nconst baseMsgUpdateClient = { clientId: \"\", signer: \"\" };\nexports.MsgUpdateClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.header !== undefined) {\n any_1.Any.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateClient);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.header = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpdateClient);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.header =\n object.header !== undefined && object.header !== null ? any_1.Any.fromJSON(object.header) : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header !== undefined && (obj.header = message.header ? any_1.Any.toJSON(message.header) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgUpdateClient);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.header =\n object.header !== undefined && object.header !== null ? any_1.Any.fromPartial(object.header) : undefined;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgUpdateClientResponse = {};\nexports.MsgUpdateClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpdateClientResponse);\n return message;\n },\n};\nconst baseMsgUpgradeClient = { clientId: \"\", signer: \"\" };\nexports.MsgUpgradeClient = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(18).fork()).ldelim();\n }\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(26).fork()).ldelim();\n }\n if (message.proofUpgradeClient.length !== 0) {\n writer.uint32(34).bytes(message.proofUpgradeClient);\n }\n if (message.proofUpgradeConsensusState.length !== 0) {\n writer.uint32(42).bytes(message.proofUpgradeConsensusState);\n }\n if (message.signer !== \"\") {\n writer.uint32(50).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpgradeClient);\n message.proofUpgradeClient = new Uint8Array();\n message.proofUpgradeConsensusState = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.proofUpgradeClient = reader.bytes();\n break;\n case 5:\n message.proofUpgradeConsensusState = reader.bytes();\n break;\n case 6:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgUpgradeClient);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.proofUpgradeClient =\n object.proofUpgradeClient !== undefined && object.proofUpgradeClient !== null\n ? bytesFromBase64(object.proofUpgradeClient)\n : new Uint8Array();\n message.proofUpgradeConsensusState =\n object.proofUpgradeConsensusState !== undefined && object.proofUpgradeConsensusState !== null\n ? bytesFromBase64(object.proofUpgradeConsensusState)\n : new Uint8Array();\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.proofUpgradeClient !== undefined &&\n (obj.proofUpgradeClient = base64FromBytes(message.proofUpgradeClient !== undefined ? message.proofUpgradeClient : new Uint8Array()));\n message.proofUpgradeConsensusState !== undefined &&\n (obj.proofUpgradeConsensusState = base64FromBytes(message.proofUpgradeConsensusState !== undefined\n ? message.proofUpgradeConsensusState\n : new Uint8Array()));\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseMsgUpgradeClient);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.proofUpgradeClient = (_b = object.proofUpgradeClient) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofUpgradeConsensusState = (_c = object.proofUpgradeConsensusState) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.signer = (_d = object.signer) !== null && _d !== void 0 ? _d : \"\";\n return message;\n },\n};\nconst baseMsgUpgradeClientResponse = {};\nexports.MsgUpgradeClientResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgUpgradeClientResponse);\n return message;\n },\n};\nconst baseMsgSubmitMisbehaviour = { clientId: \"\", signer: \"\" };\nexports.MsgSubmitMisbehaviour = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.misbehaviour !== undefined) {\n any_1.Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(26).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.misbehaviour = any_1.Any.decode(reader, reader.uint32());\n break;\n case 3:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.misbehaviour =\n object.misbehaviour !== undefined && object.misbehaviour !== null\n ? any_1.Any.fromJSON(object.misbehaviour)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.misbehaviour !== undefined &&\n (obj.misbehaviour = message.misbehaviour ? any_1.Any.toJSON(message.misbehaviour) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgSubmitMisbehaviour);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.misbehaviour =\n object.misbehaviour !== undefined && object.misbehaviour !== null\n ? any_1.Any.fromPartial(object.misbehaviour)\n : undefined;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgSubmitMisbehaviourResponse = {};\nexports.MsgSubmitMisbehaviourResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgSubmitMisbehaviourResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.CreateClient = this.CreateClient.bind(this);\n this.UpdateClient = this.UpdateClient.bind(this);\n this.UpgradeClient = this.UpgradeClient.bind(this);\n this.SubmitMisbehaviour = this.SubmitMisbehaviour.bind(this);\n }\n CreateClient(request) {\n const data = exports.MsgCreateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"CreateClient\", data);\n return promise.then((data) => exports.MsgCreateClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpdateClient(request) {\n const data = exports.MsgUpdateClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpdateClient\", data);\n return promise.then((data) => exports.MsgUpdateClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n UpgradeClient(request) {\n const data = exports.MsgUpgradeClient.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"UpgradeClient\", data);\n return promise.then((data) => exports.MsgUpgradeClientResponse.decode(new minimal_1.default.Reader(data)));\n }\n SubmitMisbehaviour(request) {\n const data = exports.MsgSubmitMisbehaviour.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.client.v1.Msg\", \"SubmitMisbehaviour\", data);\n return promise.then((data) => exports.MsgSubmitMisbehaviourResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerkleProof = exports.MerklePath = exports.MerklePrefix = exports.MerkleRoot = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst proofs_1 = require(\"../../../../confio/proofs\");\nexports.protobufPackage = \"ibc.core.commitment.v1\";\nconst baseMerkleRoot = {};\nexports.MerkleRoot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerkleRoot);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMerkleRoot);\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMerkleRoot);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMerklePrefix = {};\nexports.MerklePrefix = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.keyPrefix.length !== 0) {\n writer.uint32(10).bytes(message.keyPrefix);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerklePrefix);\n message.keyPrefix = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPrefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMerklePrefix);\n message.keyPrefix =\n object.keyPrefix !== undefined && object.keyPrefix !== null\n ? bytesFromBase64(object.keyPrefix)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.keyPrefix !== undefined &&\n (obj.keyPrefix = base64FromBytes(message.keyPrefix !== undefined ? message.keyPrefix : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMerklePrefix);\n message.keyPrefix = (_a = object.keyPrefix) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMerklePath = { keyPath: \"\" };\nexports.MerklePath = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.keyPath) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.keyPath.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = ((_a = object.keyPath) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.keyPath) {\n obj.keyPath = message.keyPath.map((e) => e);\n }\n else {\n obj.keyPath = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMerklePath);\n message.keyPath = ((_a = object.keyPath) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseMerkleProof = {};\nexports.MerkleProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.proofs) {\n proofs_1.CommitmentProof.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.proofs.push(proofs_1.CommitmentProof.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = ((_a = object.proofs) !== null && _a !== void 0 ? _a : []).map((e) => proofs_1.CommitmentProof.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.proofs) {\n obj.proofs = message.proofs.map((e) => (e ? proofs_1.CommitmentProof.toJSON(e) : undefined));\n }\n else {\n obj.proofs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMerkleProof);\n message.proofs = ((_a = object.proofs) === null || _a === void 0 ? void 0 : _a.map((e) => proofs_1.CommitmentProof.fromPartial(e))) || [];\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=commitment.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Version = exports.ConnectionPaths = exports.ClientPaths = exports.Counterparty = exports.IdentifiedConnection = exports.ConnectionEnd = exports.stateToJSON = exports.stateFromJSON = exports.State = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst commitment_1 = require(\"../../../../ibc/core/commitment/v1/commitment\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\n/**\n * State defines if a connection is in one of the following states:\n * INIT, TRYOPEN, OPEN or UNINITIALIZED.\n */\nvar State;\n(function (State) {\n /** STATE_UNINITIALIZED_UNSPECIFIED - Default State */\n State[State[\"STATE_UNINITIALIZED_UNSPECIFIED\"] = 0] = \"STATE_UNINITIALIZED_UNSPECIFIED\";\n /** STATE_INIT - A connection end has just started the opening handshake. */\n State[State[\"STATE_INIT\"] = 1] = \"STATE_INIT\";\n /**\n * STATE_TRYOPEN - A connection end has acknowledged the handshake step on the counterparty\n * chain.\n */\n State[State[\"STATE_TRYOPEN\"] = 2] = \"STATE_TRYOPEN\";\n /** STATE_OPEN - A connection end has completed the handshake. */\n State[State[\"STATE_OPEN\"] = 3] = \"STATE_OPEN\";\n State[State[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(State = exports.State || (exports.State = {}));\nfunction stateFromJSON(object) {\n switch (object) {\n case 0:\n case \"STATE_UNINITIALIZED_UNSPECIFIED\":\n return State.STATE_UNINITIALIZED_UNSPECIFIED;\n case 1:\n case \"STATE_INIT\":\n return State.STATE_INIT;\n case 2:\n case \"STATE_TRYOPEN\":\n return State.STATE_TRYOPEN;\n case 3:\n case \"STATE_OPEN\":\n return State.STATE_OPEN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return State.UNRECOGNIZED;\n }\n}\nexports.stateFromJSON = stateFromJSON;\nfunction stateToJSON(object) {\n switch (object) {\n case State.STATE_UNINITIALIZED_UNSPECIFIED:\n return \"STATE_UNINITIALIZED_UNSPECIFIED\";\n case State.STATE_INIT:\n return \"STATE_INIT\";\n case State.STATE_TRYOPEN:\n return \"STATE_TRYOPEN\";\n case State.STATE_OPEN:\n return \"STATE_OPEN\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.stateToJSON = stateToJSON;\nconst baseConnectionEnd = { clientId: \"\", state: 0, delayPeriod: long_1.default.UZERO };\nexports.ConnectionEnd = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(24).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConnectionEnd);\n message.versions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 3:\n message.state = reader.int32();\n break;\n case 4:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseConnectionEnd);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.versions = ((_a = object.versions) !== null && _a !== void 0 ? _a : []).map((e) => exports.Version.fromJSON(e));\n message.state = object.state !== undefined && object.state !== null ? stateFromJSON(object.state) : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromString(object.delayPeriod)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseConnectionEnd);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.versions = ((_b = object.versions) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Version.fromPartial(e))) || [];\n message.state = (_c = object.state) !== null && _c !== void 0 ? _c : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromValue(object.delayPeriod)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseIdentifiedConnection = { id: \"\", clientId: \"\", state: 0, delayPeriod: long_1.default.UZERO };\nexports.IdentifiedConnection = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n for (const v of message.versions) {\n exports.Version.encode(v, writer.uint32(26).fork()).ldelim();\n }\n if (message.state !== 0) {\n writer.uint32(32).int32(message.state);\n }\n if (message.counterparty !== undefined) {\n exports.Counterparty.encode(message.counterparty, writer.uint32(42).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(48).uint64(message.delayPeriod);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseIdentifiedConnection);\n message.versions = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.versions.push(exports.Version.decode(reader, reader.uint32()));\n break;\n case 4:\n message.state = reader.int32();\n break;\n case 5:\n message.counterparty = exports.Counterparty.decode(reader, reader.uint32());\n break;\n case 6:\n message.delayPeriod = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseIdentifiedConnection);\n message.id = object.id !== undefined && object.id !== null ? String(object.id) : \"\";\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.versions = ((_a = object.versions) !== null && _a !== void 0 ? _a : []).map((e) => exports.Version.fromJSON(e));\n message.state = object.state !== undefined && object.state !== null ? stateFromJSON(object.state) : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromString(object.delayPeriod)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.id !== undefined && (obj.id = message.id);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.versions) {\n obj.versions = message.versions.map((e) => (e ? exports.Version.toJSON(e) : undefined));\n }\n else {\n obj.versions = [];\n }\n message.state !== undefined && (obj.state = stateToJSON(message.state));\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? exports.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseIdentifiedConnection);\n message.id = (_a = object.id) !== null && _a !== void 0 ? _a : \"\";\n message.clientId = (_b = object.clientId) !== null && _b !== void 0 ? _b : \"\";\n message.versions = ((_c = object.versions) === null || _c === void 0 ? void 0 : _c.map((e) => exports.Version.fromPartial(e))) || [];\n message.state = (_d = object.state) !== null && _d !== void 0 ? _d : 0;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? exports.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromValue(object.delayPeriod)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseCounterparty = { clientId: \"\", connectionId: \"\" };\nexports.Counterparty = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.connectionId !== \"\") {\n writer.uint32(18).string(message.connectionId);\n }\n if (message.prefix !== undefined) {\n commitment_1.MerklePrefix.encode(message.prefix, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCounterparty);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.connectionId = reader.string();\n break;\n case 3:\n message.prefix = commitment_1.MerklePrefix.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCounterparty);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? commitment_1.MerklePrefix.fromJSON(object.prefix)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.prefix !== undefined &&\n (obj.prefix = message.prefix ? commitment_1.MerklePrefix.toJSON(message.prefix) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCounterparty);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.connectionId = (_b = object.connectionId) !== null && _b !== void 0 ? _b : \"\";\n message.prefix =\n object.prefix !== undefined && object.prefix !== null\n ? commitment_1.MerklePrefix.fromPartial(object.prefix)\n : undefined;\n return message;\n },\n};\nconst baseClientPaths = { paths: \"\" };\nexports.ClientPaths = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.paths) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientPaths);\n message.paths = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseClientPaths);\n message.paths = ((_a = object.paths) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseClientPaths);\n message.paths = ((_a = object.paths) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseConnectionPaths = { clientId: \"\", paths: \"\" };\nexports.ConnectionPaths = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n for (const v of message.paths) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConnectionPaths);\n message.paths = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.paths.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseConnectionPaths);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.paths = ((_a = object.paths) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n if (message.paths) {\n obj.paths = message.paths.map((e) => e);\n }\n else {\n obj.paths = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseConnectionPaths);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.paths = ((_b = object.paths) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n return message;\n },\n};\nconst baseVersion = { identifier: \"\", features: \"\" };\nexports.Version = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.identifier !== \"\") {\n writer.uint32(10).string(message.identifier);\n }\n for (const v of message.features) {\n writer.uint32(18).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVersion);\n message.features = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifier = reader.string();\n break;\n case 2:\n message.features.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseVersion);\n message.identifier =\n object.identifier !== undefined && object.identifier !== null ? String(object.identifier) : \"\";\n message.features = ((_a = object.features) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.identifier !== undefined && (obj.identifier = message.identifier);\n if (message.features) {\n obj.features = message.features.map((e) => e);\n }\n else {\n obj.features = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseVersion);\n message.identifier = (_a = object.identifier) !== null && _a !== void 0 ? _a : \"\";\n message.features = ((_b = object.features) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=connection.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryClientImpl = exports.QueryConnectionConsensusStateResponse = exports.QueryConnectionConsensusStateRequest = exports.QueryConnectionClientStateResponse = exports.QueryConnectionClientStateRequest = exports.QueryClientConnectionsResponse = exports.QueryClientConnectionsRequest = exports.QueryConnectionsResponse = exports.QueryConnectionsRequest = exports.QueryConnectionResponse = exports.QueryConnectionRequest = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst connection_1 = require(\"../../../../ibc/core/connection/v1/connection\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst pagination_1 = require(\"../../../../cosmos/base/query/v1beta1/pagination\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nconst baseQueryConnectionRequest = { connectionId: \"\" };\nexports.QueryConnectionRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionRequest);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionRequest);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryConnectionResponse = {};\nexports.QueryConnectionResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connection !== undefined) {\n connection_1.ConnectionEnd.encode(message.connection, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connection = connection_1.ConnectionEnd.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionResponse);\n message.connection =\n object.connection !== undefined && object.connection !== null\n ? connection_1.ConnectionEnd.fromJSON(object.connection)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connection !== undefined &&\n (obj.connection = message.connection ? connection_1.ConnectionEnd.toJSON(message.connection) : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionResponse);\n message.connection =\n object.connection !== undefined && object.connection !== null\n ? connection_1.ConnectionEnd.fromPartial(object.connection)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionsRequest = {};\nexports.QueryConnectionsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pagination !== undefined) {\n pagination_1.PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pagination = pagination_1.PageRequest.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromJSON(object.pagination)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageRequest.toJSON(message.pagination) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseQueryConnectionsRequest);\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageRequest.fromPartial(object.pagination)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionsResponse = {};\nexports.QueryConnectionsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.connections) {\n connection_1.IdentifiedConnection.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.pagination !== undefined) {\n pagination_1.PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim();\n }\n if (message.height !== undefined) {\n client_1.Height.encode(message.height, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionsResponse);\n message.connections = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connections.push(connection_1.IdentifiedConnection.decode(reader, reader.uint32()));\n break;\n case 2:\n message.pagination = pagination_1.PageResponse.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionsResponse);\n message.connections = ((_a = object.connections) !== null && _a !== void 0 ? _a : []).map((e) => connection_1.IdentifiedConnection.fromJSON(e));\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromJSON(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromJSON(object.height) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.connections) {\n obj.connections = message.connections.map((e) => (e ? connection_1.IdentifiedConnection.toJSON(e) : undefined));\n }\n else {\n obj.connections = [];\n }\n message.pagination !== undefined &&\n (obj.pagination = message.pagination ? pagination_1.PageResponse.toJSON(message.pagination) : undefined);\n message.height !== undefined && (obj.height = message.height ? client_1.Height.toJSON(message.height) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionsResponse);\n message.connections = ((_a = object.connections) === null || _a === void 0 ? void 0 : _a.map((e) => connection_1.IdentifiedConnection.fromPartial(e))) || [];\n message.pagination =\n object.pagination !== undefined && object.pagination !== null\n ? pagination_1.PageResponse.fromPartial(object.pagination)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? client_1.Height.fromPartial(object.height) : undefined;\n return message;\n },\n};\nconst baseQueryClientConnectionsRequest = { clientId: \"\" };\nexports.QueryClientConnectionsRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientConnectionsRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryClientConnectionsRequest);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientConnectionsRequest);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryClientConnectionsResponse = { connectionPaths: \"\" };\nexports.QueryClientConnectionsResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.connectionPaths) {\n writer.uint32(10).string(v);\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryClientConnectionsResponse);\n message.connectionPaths = [];\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionPaths.push(reader.string());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseQueryClientConnectionsResponse);\n message.connectionPaths = ((_a = object.connectionPaths) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.connectionPaths) {\n obj.connectionPaths = message.connectionPaths.map((e) => e);\n }\n else {\n obj.connectionPaths = [];\n }\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryClientConnectionsResponse);\n message.connectionPaths = ((_a = object.connectionPaths) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionClientStateRequest = { connectionId: \"\" };\nexports.QueryConnectionClientStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionClientStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionClientStateRequest);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionClientStateRequest);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseQueryConnectionClientStateResponse = {};\nexports.QueryConnectionClientStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.identifiedClientState !== undefined) {\n client_1.IdentifiedClientState.encode(message.identifiedClientState, writer.uint32(10).fork()).ldelim();\n }\n if (message.proof.length !== 0) {\n writer.uint32(18).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionClientStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.identifiedClientState = client_1.IdentifiedClientState.decode(reader, reader.uint32());\n break;\n case 2:\n message.proof = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionClientStateResponse);\n message.identifiedClientState =\n object.identifiedClientState !== undefined && object.identifiedClientState !== null\n ? client_1.IdentifiedClientState.fromJSON(object.identifiedClientState)\n : undefined;\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.identifiedClientState !== undefined &&\n (obj.identifiedClientState = message.identifiedClientState\n ? client_1.IdentifiedClientState.toJSON(message.identifiedClientState)\n : undefined);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionClientStateResponse);\n message.identifiedClientState =\n object.identifiedClientState !== undefined && object.identifiedClientState !== null\n ? client_1.IdentifiedClientState.fromPartial(object.identifiedClientState)\n : undefined;\n message.proof = (_a = object.proof) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nconst baseQueryConnectionConsensusStateRequest = {\n connectionId: \"\",\n revisionNumber: long_1.default.UZERO,\n revisionHeight: long_1.default.UZERO,\n};\nexports.QueryConnectionConsensusStateRequest = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (!message.revisionNumber.isZero()) {\n writer.uint32(16).uint64(message.revisionNumber);\n }\n if (!message.revisionHeight.isZero()) {\n writer.uint32(24).uint64(message.revisionHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionConsensusStateRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.revisionNumber = reader.uint64();\n break;\n case 3:\n message.revisionHeight = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionConsensusStateRequest);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromString(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromString(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.revisionNumber !== undefined &&\n (obj.revisionNumber = (message.revisionNumber || long_1.default.UZERO).toString());\n message.revisionHeight !== undefined &&\n (obj.revisionHeight = (message.revisionHeight || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseQueryConnectionConsensusStateRequest);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n message.revisionNumber =\n object.revisionNumber !== undefined && object.revisionNumber !== null\n ? long_1.default.fromValue(object.revisionNumber)\n : long_1.default.UZERO;\n message.revisionHeight =\n object.revisionHeight !== undefined && object.revisionHeight !== null\n ? long_1.default.fromValue(object.revisionHeight)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseQueryConnectionConsensusStateResponse = { clientId: \"\" };\nexports.QueryConnectionConsensusStateResponse = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusState !== undefined) {\n any_1.Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim();\n }\n if (message.clientId !== \"\") {\n writer.uint32(18).string(message.clientId);\n }\n if (message.proof.length !== 0) {\n writer.uint32(26).bytes(message.proof);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseQueryConnectionConsensusStateResponse);\n message.proof = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 2:\n message.clientId = reader.string();\n break;\n case 3:\n message.proof = reader.bytes();\n break;\n case 4:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseQueryConnectionConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromJSON(object.consensusState)\n : undefined;\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.proof =\n object.proof !== undefined && object.proof !== null ? bytesFromBase64(object.proof) : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusState !== undefined &&\n (obj.consensusState = message.consensusState ? any_1.Any.toJSON(message.consensusState) : undefined);\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.proof !== undefined &&\n (obj.proof = base64FromBytes(message.proof !== undefined ? message.proof : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseQueryConnectionConsensusStateResponse);\n message.consensusState =\n object.consensusState !== undefined && object.consensusState !== null\n ? any_1.Any.fromPartial(object.consensusState)\n : undefined;\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.proof = (_b = object.proof) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n return message;\n },\n};\nclass QueryClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Connection = this.Connection.bind(this);\n this.Connections = this.Connections.bind(this);\n this.ClientConnections = this.ClientConnections.bind(this);\n this.ConnectionClientState = this.ConnectionClientState.bind(this);\n this.ConnectionConsensusState = this.ConnectionConsensusState.bind(this);\n }\n Connection(request) {\n const data = exports.QueryConnectionRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"Connection\", data);\n return promise.then((data) => exports.QueryConnectionResponse.decode(new minimal_1.default.Reader(data)));\n }\n Connections(request) {\n const data = exports.QueryConnectionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"Connections\", data);\n return promise.then((data) => exports.QueryConnectionsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ClientConnections(request) {\n const data = exports.QueryClientConnectionsRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ClientConnections\", data);\n return promise.then((data) => exports.QueryClientConnectionsResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionClientState(request) {\n const data = exports.QueryConnectionClientStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionClientState\", data);\n return promise.then((data) => exports.QueryConnectionClientStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionConsensusState(request) {\n const data = exports.QueryConnectionConsensusStateRequest.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Query\", \"ConnectionConsensusState\", data);\n return promise.then((data) => exports.QueryConnectionConsensusStateResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.QueryClientImpl = QueryClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=query.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MsgClientImpl = exports.MsgConnectionOpenConfirmResponse = exports.MsgConnectionOpenConfirm = exports.MsgConnectionOpenAckResponse = exports.MsgConnectionOpenAck = exports.MsgConnectionOpenTryResponse = exports.MsgConnectionOpenTry = exports.MsgConnectionOpenInitResponse = exports.MsgConnectionOpenInit = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst connection_1 = require(\"../../../../ibc/core/connection/v1/connection\");\nconst any_1 = require(\"../../../../google/protobuf/any\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nexports.protobufPackage = \"ibc.core.connection.v1\";\nconst baseMsgConnectionOpenInit = { clientId: \"\", delayPeriod: long_1.default.UZERO, signer: \"\" };\nexports.MsgConnectionOpenInit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(18).fork()).ldelim();\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(32).uint64(message.delayPeriod);\n }\n if (message.signer !== \"\") {\n writer.uint32(42).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.delayPeriod = reader.uint64();\n break;\n case 5:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? connection_1.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null ? connection_1.Version.fromJSON(object.version) : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromString(object.delayPeriod)\n : long_1.default.UZERO;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseMsgConnectionOpenInit);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? connection_1.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? connection_1.Version.fromPartial(object.version)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromValue(object.delayPeriod)\n : long_1.default.UZERO;\n message.signer = (_b = object.signer) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseMsgConnectionOpenInitResponse = {};\nexports.MsgConnectionOpenInitResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenInitResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenTry = {\n clientId: \"\",\n previousConnectionId: \"\",\n delayPeriod: long_1.default.UZERO,\n signer: \"\",\n};\nexports.MsgConnectionOpenTry = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.previousConnectionId !== \"\") {\n writer.uint32(18).string(message.previousConnectionId);\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(26).fork()).ldelim();\n }\n if (message.counterparty !== undefined) {\n connection_1.Counterparty.encode(message.counterparty, writer.uint32(34).fork()).ldelim();\n }\n if (!message.delayPeriod.isZero()) {\n writer.uint32(40).uint64(message.delayPeriod);\n }\n for (const v of message.counterpartyVersions) {\n connection_1.Version.encode(v, writer.uint32(50).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(58).fork()).ldelim();\n }\n if (message.proofInit.length !== 0) {\n writer.uint32(66).bytes(message.proofInit);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(74).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(82).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(90).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(98).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.counterpartyVersions = [];\n message.proofInit = new Uint8Array();\n message.proofClient = new Uint8Array();\n message.proofConsensus = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.previousConnectionId = reader.string();\n break;\n case 3:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 4:\n message.counterparty = connection_1.Counterparty.decode(reader, reader.uint32());\n break;\n case 5:\n message.delayPeriod = reader.uint64();\n break;\n case 6:\n message.counterpartyVersions.push(connection_1.Version.decode(reader, reader.uint32()));\n break;\n case 7:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofInit = reader.bytes();\n break;\n case 9:\n message.proofClient = reader.bytes();\n break;\n case 10:\n message.proofConsensus = reader.bytes();\n break;\n case 11:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 12:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.previousConnectionId =\n object.previousConnectionId !== undefined && object.previousConnectionId !== null\n ? String(object.previousConnectionId)\n : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? connection_1.Counterparty.fromJSON(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromString(object.delayPeriod)\n : long_1.default.UZERO;\n message.counterpartyVersions = ((_a = object.counterpartyVersions) !== null && _a !== void 0 ? _a : []).map((e) => connection_1.Version.fromJSON(e));\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.proofInit =\n object.proofInit !== undefined && object.proofInit !== null\n ? bytesFromBase64(object.proofInit)\n : new Uint8Array();\n message.proofClient =\n object.proofClient !== undefined && object.proofClient !== null\n ? bytesFromBase64(object.proofClient)\n : new Uint8Array();\n message.proofConsensus =\n object.proofConsensus !== undefined && object.proofConsensus !== null\n ? bytesFromBase64(object.proofConsensus)\n : new Uint8Array();\n message.consensusHeight =\n object.consensusHeight !== undefined && object.consensusHeight !== null\n ? client_1.Height.fromJSON(object.consensusHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.previousConnectionId !== undefined && (obj.previousConnectionId = message.previousConnectionId);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.counterparty !== undefined &&\n (obj.counterparty = message.counterparty ? connection_1.Counterparty.toJSON(message.counterparty) : undefined);\n message.delayPeriod !== undefined && (obj.delayPeriod = (message.delayPeriod || long_1.default.UZERO).toString());\n if (message.counterpartyVersions) {\n obj.counterpartyVersions = message.counterpartyVersions.map((e) => (e ? connection_1.Version.toJSON(e) : undefined));\n }\n else {\n obj.counterpartyVersions = [];\n }\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofInit !== undefined &&\n (obj.proofInit = base64FromBytes(message.proofInit !== undefined ? message.proofInit : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = base64FromBytes(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = base64FromBytes(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f, _g;\n const message = Object.assign({}, baseMsgConnectionOpenTry);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.previousConnectionId = (_b = object.previousConnectionId) !== null && _b !== void 0 ? _b : \"\";\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.counterparty =\n object.counterparty !== undefined && object.counterparty !== null\n ? connection_1.Counterparty.fromPartial(object.counterparty)\n : undefined;\n message.delayPeriod =\n object.delayPeriod !== undefined && object.delayPeriod !== null\n ? long_1.default.fromValue(object.delayPeriod)\n : long_1.default.UZERO;\n message.counterpartyVersions = ((_c = object.counterpartyVersions) === null || _c === void 0 ? void 0 : _c.map((e) => connection_1.Version.fromPartial(e))) || [];\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.proofInit = (_d = object.proofInit) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.proofClient = (_e = object.proofClient) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.proofConsensus = (_f = object.proofConsensus) !== null && _f !== void 0 ? _f : new Uint8Array();\n message.consensusHeight =\n object.consensusHeight !== undefined && object.consensusHeight !== null\n ? client_1.Height.fromPartial(object.consensusHeight)\n : undefined;\n message.signer = (_g = object.signer) !== null && _g !== void 0 ? _g : \"\";\n return message;\n },\n};\nconst baseMsgConnectionOpenTryResponse = {};\nexports.MsgConnectionOpenTryResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenTryResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenAck = { connectionId: \"\", counterpartyConnectionId: \"\", signer: \"\" };\nexports.MsgConnectionOpenAck = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.counterpartyConnectionId !== \"\") {\n writer.uint32(18).string(message.counterpartyConnectionId);\n }\n if (message.version !== undefined) {\n connection_1.Version.encode(message.version, writer.uint32(26).fork()).ldelim();\n }\n if (message.clientState !== undefined) {\n any_1.Any.encode(message.clientState, writer.uint32(34).fork()).ldelim();\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(42).fork()).ldelim();\n }\n if (message.proofTry.length !== 0) {\n writer.uint32(50).bytes(message.proofTry);\n }\n if (message.proofClient.length !== 0) {\n writer.uint32(58).bytes(message.proofClient);\n }\n if (message.proofConsensus.length !== 0) {\n writer.uint32(66).bytes(message.proofConsensus);\n }\n if (message.consensusHeight !== undefined) {\n client_1.Height.encode(message.consensusHeight, writer.uint32(74).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(82).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n message.proofTry = new Uint8Array();\n message.proofClient = new Uint8Array();\n message.proofConsensus = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.counterpartyConnectionId = reader.string();\n break;\n case 3:\n message.version = connection_1.Version.decode(reader, reader.uint32());\n break;\n case 4:\n message.clientState = any_1.Any.decode(reader, reader.uint32());\n break;\n case 5:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 6:\n message.proofTry = reader.bytes();\n break;\n case 7:\n message.proofClient = reader.bytes();\n break;\n case 8:\n message.proofConsensus = reader.bytes();\n break;\n case 9:\n message.consensusHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 10:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n message.counterpartyConnectionId =\n object.counterpartyConnectionId !== undefined && object.counterpartyConnectionId !== null\n ? String(object.counterpartyConnectionId)\n : \"\";\n message.version =\n object.version !== undefined && object.version !== null ? connection_1.Version.fromJSON(object.version) : undefined;\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromJSON(object.clientState)\n : undefined;\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.proofTry =\n object.proofTry !== undefined && object.proofTry !== null\n ? bytesFromBase64(object.proofTry)\n : new Uint8Array();\n message.proofClient =\n object.proofClient !== undefined && object.proofClient !== null\n ? bytesFromBase64(object.proofClient)\n : new Uint8Array();\n message.proofConsensus =\n object.proofConsensus !== undefined && object.proofConsensus !== null\n ? bytesFromBase64(object.proofConsensus)\n : new Uint8Array();\n message.consensusHeight =\n object.consensusHeight !== undefined && object.consensusHeight !== null\n ? client_1.Height.fromJSON(object.consensusHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.counterpartyConnectionId !== undefined &&\n (obj.counterpartyConnectionId = message.counterpartyConnectionId);\n message.version !== undefined &&\n (obj.version = message.version ? connection_1.Version.toJSON(message.version) : undefined);\n message.clientState !== undefined &&\n (obj.clientState = message.clientState ? any_1.Any.toJSON(message.clientState) : undefined);\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.proofTry !== undefined &&\n (obj.proofTry = base64FromBytes(message.proofTry !== undefined ? message.proofTry : new Uint8Array()));\n message.proofClient !== undefined &&\n (obj.proofClient = base64FromBytes(message.proofClient !== undefined ? message.proofClient : new Uint8Array()));\n message.proofConsensus !== undefined &&\n (obj.proofConsensus = base64FromBytes(message.proofConsensus !== undefined ? message.proofConsensus : new Uint8Array()));\n message.consensusHeight !== undefined &&\n (obj.consensusHeight = message.consensusHeight ? client_1.Height.toJSON(message.consensusHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseMsgConnectionOpenAck);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n message.counterpartyConnectionId = (_b = object.counterpartyConnectionId) !== null && _b !== void 0 ? _b : \"\";\n message.version =\n object.version !== undefined && object.version !== null\n ? connection_1.Version.fromPartial(object.version)\n : undefined;\n message.clientState =\n object.clientState !== undefined && object.clientState !== null\n ? any_1.Any.fromPartial(object.clientState)\n : undefined;\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.proofTry = (_c = object.proofTry) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.proofClient = (_d = object.proofClient) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.proofConsensus = (_e = object.proofConsensus) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.consensusHeight =\n object.consensusHeight !== undefined && object.consensusHeight !== null\n ? client_1.Height.fromPartial(object.consensusHeight)\n : undefined;\n message.signer = (_f = object.signer) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseMsgConnectionOpenAckResponse = {};\nexports.MsgConnectionOpenAckResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenAckResponse);\n return message;\n },\n};\nconst baseMsgConnectionOpenConfirm = { connectionId: \"\", signer: \"\" };\nexports.MsgConnectionOpenConfirm = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.connectionId !== \"\") {\n writer.uint32(10).string(message.connectionId);\n }\n if (message.proofAck.length !== 0) {\n writer.uint32(18).bytes(message.proofAck);\n }\n if (message.proofHeight !== undefined) {\n client_1.Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.signer !== \"\") {\n writer.uint32(34).string(message.signer);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n message.proofAck = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.connectionId = reader.string();\n break;\n case 2:\n message.proofAck = reader.bytes();\n break;\n case 3:\n message.proofHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.signer = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n message.connectionId =\n object.connectionId !== undefined && object.connectionId !== null ? String(object.connectionId) : \"\";\n message.proofAck =\n object.proofAck !== undefined && object.proofAck !== null\n ? bytesFromBase64(object.proofAck)\n : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromJSON(object.proofHeight)\n : undefined;\n message.signer = object.signer !== undefined && object.signer !== null ? String(object.signer) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.connectionId !== undefined && (obj.connectionId = message.connectionId);\n message.proofAck !== undefined &&\n (obj.proofAck = base64FromBytes(message.proofAck !== undefined ? message.proofAck : new Uint8Array()));\n message.proofHeight !== undefined &&\n (obj.proofHeight = message.proofHeight ? client_1.Height.toJSON(message.proofHeight) : undefined);\n message.signer !== undefined && (obj.signer = message.signer);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseMsgConnectionOpenConfirm);\n message.connectionId = (_a = object.connectionId) !== null && _a !== void 0 ? _a : \"\";\n message.proofAck = (_b = object.proofAck) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proofHeight =\n object.proofHeight !== undefined && object.proofHeight !== null\n ? client_1.Height.fromPartial(object.proofHeight)\n : undefined;\n message.signer = (_c = object.signer) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseMsgConnectionOpenConfirmResponse = {};\nexports.MsgConnectionOpenConfirmResponse = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseMsgConnectionOpenConfirmResponse);\n return message;\n },\n};\nclass MsgClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.ConnectionOpenInit = this.ConnectionOpenInit.bind(this);\n this.ConnectionOpenTry = this.ConnectionOpenTry.bind(this);\n this.ConnectionOpenAck = this.ConnectionOpenAck.bind(this);\n this.ConnectionOpenConfirm = this.ConnectionOpenConfirm.bind(this);\n }\n ConnectionOpenInit(request) {\n const data = exports.MsgConnectionOpenInit.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenInit\", data);\n return promise.then((data) => exports.MsgConnectionOpenInitResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenTry(request) {\n const data = exports.MsgConnectionOpenTry.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenTry\", data);\n return promise.then((data) => exports.MsgConnectionOpenTryResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenAck(request) {\n const data = exports.MsgConnectionOpenAck.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenAck\", data);\n return promise.then((data) => exports.MsgConnectionOpenAckResponse.decode(new minimal_1.default.Reader(data)));\n }\n ConnectionOpenConfirm(request) {\n const data = exports.MsgConnectionOpenConfirm.encode(request).finish();\n const promise = this.rpc.request(\"ibc.core.connection.v1.Msg\", \"ConnectionOpenConfirm\", data);\n return promise.then((data) => exports.MsgConnectionOpenConfirmResponse.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.MsgClientImpl = MsgClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tx.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Fraction = exports.Header = exports.Misbehaviour = exports.ConsensusState = exports.ClientState = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst duration_1 = require(\"../../../../google/protobuf/duration\");\nconst client_1 = require(\"../../../../ibc/core/client/v1/client\");\nconst timestamp_1 = require(\"../../../../google/protobuf/timestamp\");\nconst commitment_1 = require(\"../../../../ibc/core/commitment/v1/commitment\");\nconst types_1 = require(\"../../../../tendermint/types/types\");\nconst validator_1 = require(\"../../../../tendermint/types/validator\");\nconst proofs_1 = require(\"../../../../confio/proofs\");\nexports.protobufPackage = \"ibc.lightclients.tendermint.v1\";\nconst baseClientState = {\n chainId: \"\",\n upgradePath: \"\",\n allowUpdateAfterExpiry: false,\n allowUpdateAfterMisbehaviour: false,\n};\nexports.ClientState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.chainId !== \"\") {\n writer.uint32(10).string(message.chainId);\n }\n if (message.trustLevel !== undefined) {\n exports.Fraction.encode(message.trustLevel, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustingPeriod !== undefined) {\n duration_1.Duration.encode(message.trustingPeriod, writer.uint32(26).fork()).ldelim();\n }\n if (message.unbondingPeriod !== undefined) {\n duration_1.Duration.encode(message.unbondingPeriod, writer.uint32(34).fork()).ldelim();\n }\n if (message.maxClockDrift !== undefined) {\n duration_1.Duration.encode(message.maxClockDrift, writer.uint32(42).fork()).ldelim();\n }\n if (message.frozenHeight !== undefined) {\n client_1.Height.encode(message.frozenHeight, writer.uint32(50).fork()).ldelim();\n }\n if (message.latestHeight !== undefined) {\n client_1.Height.encode(message.latestHeight, writer.uint32(58).fork()).ldelim();\n }\n for (const v of message.proofSpecs) {\n proofs_1.ProofSpec.encode(v, writer.uint32(66).fork()).ldelim();\n }\n for (const v of message.upgradePath) {\n writer.uint32(74).string(v);\n }\n if (message.allowUpdateAfterExpiry === true) {\n writer.uint32(80).bool(message.allowUpdateAfterExpiry);\n }\n if (message.allowUpdateAfterMisbehaviour === true) {\n writer.uint32(88).bool(message.allowUpdateAfterMisbehaviour);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseClientState);\n message.proofSpecs = [];\n message.upgradePath = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chainId = reader.string();\n break;\n case 2:\n message.trustLevel = exports.Fraction.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 4:\n message.unbondingPeriod = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 5:\n message.maxClockDrift = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 6:\n message.frozenHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 7:\n message.latestHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 8:\n message.proofSpecs.push(proofs_1.ProofSpec.decode(reader, reader.uint32()));\n break;\n case 9:\n message.upgradePath.push(reader.string());\n break;\n case 10:\n message.allowUpdateAfterExpiry = reader.bool();\n break;\n case 11:\n message.allowUpdateAfterMisbehaviour = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseClientState);\n message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : \"\";\n message.trustLevel =\n object.trustLevel !== undefined && object.trustLevel !== null\n ? exports.Fraction.fromJSON(object.trustLevel)\n : undefined;\n message.trustingPeriod =\n object.trustingPeriod !== undefined && object.trustingPeriod !== null\n ? duration_1.Duration.fromJSON(object.trustingPeriod)\n : undefined;\n message.unbondingPeriod =\n object.unbondingPeriod !== undefined && object.unbondingPeriod !== null\n ? duration_1.Duration.fromJSON(object.unbondingPeriod)\n : undefined;\n message.maxClockDrift =\n object.maxClockDrift !== undefined && object.maxClockDrift !== null\n ? duration_1.Duration.fromJSON(object.maxClockDrift)\n : undefined;\n message.frozenHeight =\n object.frozenHeight !== undefined && object.frozenHeight !== null\n ? client_1.Height.fromJSON(object.frozenHeight)\n : undefined;\n message.latestHeight =\n object.latestHeight !== undefined && object.latestHeight !== null\n ? client_1.Height.fromJSON(object.latestHeight)\n : undefined;\n message.proofSpecs = ((_a = object.proofSpecs) !== null && _a !== void 0 ? _a : []).map((e) => proofs_1.ProofSpec.fromJSON(e));\n message.upgradePath = ((_b = object.upgradePath) !== null && _b !== void 0 ? _b : []).map((e) => String(e));\n message.allowUpdateAfterExpiry =\n object.allowUpdateAfterExpiry !== undefined && object.allowUpdateAfterExpiry !== null\n ? Boolean(object.allowUpdateAfterExpiry)\n : false;\n message.allowUpdateAfterMisbehaviour =\n object.allowUpdateAfterMisbehaviour !== undefined && object.allowUpdateAfterMisbehaviour !== null\n ? Boolean(object.allowUpdateAfterMisbehaviour)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.trustLevel !== undefined &&\n (obj.trustLevel = message.trustLevel ? exports.Fraction.toJSON(message.trustLevel) : undefined);\n message.trustingPeriod !== undefined &&\n (obj.trustingPeriod = message.trustingPeriod ? duration_1.Duration.toJSON(message.trustingPeriod) : undefined);\n message.unbondingPeriod !== undefined &&\n (obj.unbondingPeriod = message.unbondingPeriod ? duration_1.Duration.toJSON(message.unbondingPeriod) : undefined);\n message.maxClockDrift !== undefined &&\n (obj.maxClockDrift = message.maxClockDrift ? duration_1.Duration.toJSON(message.maxClockDrift) : undefined);\n message.frozenHeight !== undefined &&\n (obj.frozenHeight = message.frozenHeight ? client_1.Height.toJSON(message.frozenHeight) : undefined);\n message.latestHeight !== undefined &&\n (obj.latestHeight = message.latestHeight ? client_1.Height.toJSON(message.latestHeight) : undefined);\n if (message.proofSpecs) {\n obj.proofSpecs = message.proofSpecs.map((e) => (e ? proofs_1.ProofSpec.toJSON(e) : undefined));\n }\n else {\n obj.proofSpecs = [];\n }\n if (message.upgradePath) {\n obj.upgradePath = message.upgradePath.map((e) => e);\n }\n else {\n obj.upgradePath = [];\n }\n message.allowUpdateAfterExpiry !== undefined &&\n (obj.allowUpdateAfterExpiry = message.allowUpdateAfterExpiry);\n message.allowUpdateAfterMisbehaviour !== undefined &&\n (obj.allowUpdateAfterMisbehaviour = message.allowUpdateAfterMisbehaviour);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseClientState);\n message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : \"\";\n message.trustLevel =\n object.trustLevel !== undefined && object.trustLevel !== null\n ? exports.Fraction.fromPartial(object.trustLevel)\n : undefined;\n message.trustingPeriod =\n object.trustingPeriod !== undefined && object.trustingPeriod !== null\n ? duration_1.Duration.fromPartial(object.trustingPeriod)\n : undefined;\n message.unbondingPeriod =\n object.unbondingPeriod !== undefined && object.unbondingPeriod !== null\n ? duration_1.Duration.fromPartial(object.unbondingPeriod)\n : undefined;\n message.maxClockDrift =\n object.maxClockDrift !== undefined && object.maxClockDrift !== null\n ? duration_1.Duration.fromPartial(object.maxClockDrift)\n : undefined;\n message.frozenHeight =\n object.frozenHeight !== undefined && object.frozenHeight !== null\n ? client_1.Height.fromPartial(object.frozenHeight)\n : undefined;\n message.latestHeight =\n object.latestHeight !== undefined && object.latestHeight !== null\n ? client_1.Height.fromPartial(object.latestHeight)\n : undefined;\n message.proofSpecs = ((_b = object.proofSpecs) === null || _b === void 0 ? void 0 : _b.map((e) => proofs_1.ProofSpec.fromPartial(e))) || [];\n message.upgradePath = ((_c = object.upgradePath) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n message.allowUpdateAfterExpiry = (_d = object.allowUpdateAfterExpiry) !== null && _d !== void 0 ? _d : false;\n message.allowUpdateAfterMisbehaviour = (_e = object.allowUpdateAfterMisbehaviour) !== null && _e !== void 0 ? _e : false;\n return message;\n },\n};\nconst baseConsensusState = {};\nexports.ConsensusState = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim();\n }\n if (message.root !== undefined) {\n commitment_1.MerkleRoot.encode(message.root, writer.uint32(18).fork()).ldelim();\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(26).bytes(message.nextValidatorsHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusState);\n message.nextValidatorsHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.root = commitment_1.MerkleRoot.decode(reader, reader.uint32());\n break;\n case 3:\n message.nextValidatorsHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusState);\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? fromJsonTimestamp(object.timestamp)\n : undefined;\n message.root =\n object.root !== undefined && object.root !== null ? commitment_1.MerkleRoot.fromJSON(object.root) : undefined;\n message.nextValidatorsHash =\n object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null\n ? bytesFromBase64(object.nextValidatorsHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.root !== undefined && (obj.root = message.root ? commitment_1.MerkleRoot.toJSON(message.root) : undefined);\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseConsensusState);\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? timestamp_1.Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.root =\n object.root !== undefined && object.root !== null ? commitment_1.MerkleRoot.fromPartial(object.root) : undefined;\n message.nextValidatorsHash = (_a = object.nextValidatorsHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseMisbehaviour = { clientId: \"\" };\nexports.Misbehaviour = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.clientId !== \"\") {\n writer.uint32(10).string(message.clientId);\n }\n if (message.header1 !== undefined) {\n exports.Header.encode(message.header1, writer.uint32(18).fork()).ldelim();\n }\n if (message.header2 !== undefined) {\n exports.Header.encode(message.header2, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseMisbehaviour);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clientId = reader.string();\n break;\n case 2:\n message.header1 = exports.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.header2 = exports.Header.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseMisbehaviour);\n message.clientId =\n object.clientId !== undefined && object.clientId !== null ? String(object.clientId) : \"\";\n message.header1 =\n object.header1 !== undefined && object.header1 !== null ? exports.Header.fromJSON(object.header1) : undefined;\n message.header2 =\n object.header2 !== undefined && object.header2 !== null ? exports.Header.fromJSON(object.header2) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.clientId !== undefined && (obj.clientId = message.clientId);\n message.header1 !== undefined &&\n (obj.header1 = message.header1 ? exports.Header.toJSON(message.header1) : undefined);\n message.header2 !== undefined &&\n (obj.header2 = message.header2 ? exports.Header.toJSON(message.header2) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseMisbehaviour);\n message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : \"\";\n message.header1 =\n object.header1 !== undefined && object.header1 !== null\n ? exports.Header.fromPartial(object.header1)\n : undefined;\n message.header2 =\n object.header2 !== undefined && object.header2 !== null\n ? exports.Header.fromPartial(object.header2)\n : undefined;\n return message;\n },\n};\nconst baseHeader = {};\nexports.Header = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.signedHeader !== undefined) {\n types_1.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n if (message.trustedHeight !== undefined) {\n client_1.Height.encode(message.trustedHeight, writer.uint32(26).fork()).ldelim();\n }\n if (message.trustedValidators !== undefined) {\n validator_1.ValidatorSet.encode(message.trustedValidators, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeader);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = types_1.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n case 3:\n message.trustedHeight = client_1.Height.decode(reader, reader.uint32());\n break;\n case 4:\n message.trustedValidators = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeader);\n message.signedHeader =\n object.signedHeader !== undefined && object.signedHeader !== null\n ? types_1.SignedHeader.fromJSON(object.signedHeader)\n : undefined;\n message.validatorSet =\n object.validatorSet !== undefined && object.validatorSet !== null\n ? validator_1.ValidatorSet.fromJSON(object.validatorSet)\n : undefined;\n message.trustedHeight =\n object.trustedHeight !== undefined && object.trustedHeight !== null\n ? client_1.Height.fromJSON(object.trustedHeight)\n : undefined;\n message.trustedValidators =\n object.trustedValidators !== undefined && object.trustedValidators !== null\n ? validator_1.ValidatorSet.fromJSON(object.trustedValidators)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? types_1.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n message.trustedHeight !== undefined &&\n (obj.trustedHeight = message.trustedHeight ? client_1.Height.toJSON(message.trustedHeight) : undefined);\n message.trustedValidators !== undefined &&\n (obj.trustedValidators = message.trustedValidators\n ? validator_1.ValidatorSet.toJSON(message.trustedValidators)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHeader);\n message.signedHeader =\n object.signedHeader !== undefined && object.signedHeader !== null\n ? types_1.SignedHeader.fromPartial(object.signedHeader)\n : undefined;\n message.validatorSet =\n object.validatorSet !== undefined && object.validatorSet !== null\n ? validator_1.ValidatorSet.fromPartial(object.validatorSet)\n : undefined;\n message.trustedHeight =\n object.trustedHeight !== undefined && object.trustedHeight !== null\n ? client_1.Height.fromPartial(object.trustedHeight)\n : undefined;\n message.trustedValidators =\n object.trustedValidators !== undefined && object.trustedValidators !== null\n ? validator_1.ValidatorSet.fromPartial(object.trustedValidators)\n : undefined;\n return message;\n },\n};\nconst baseFraction = { numerator: long_1.default.UZERO, denominator: long_1.default.UZERO };\nexports.Fraction = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.numerator.isZero()) {\n writer.uint32(8).uint64(message.numerator);\n }\n if (!message.denominator.isZero()) {\n writer.uint32(16).uint64(message.denominator);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseFraction);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.numerator = reader.uint64();\n break;\n case 2:\n message.denominator = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseFraction);\n message.numerator =\n object.numerator !== undefined && object.numerator !== null\n ? long_1.default.fromString(object.numerator)\n : long_1.default.UZERO;\n message.denominator =\n object.denominator !== undefined && object.denominator !== null\n ? long_1.default.fromString(object.denominator)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.numerator !== undefined && (obj.numerator = (message.numerator || long_1.default.UZERO).toString());\n message.denominator !== undefined && (obj.denominator = (message.denominator || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseFraction);\n message.numerator =\n object.numerator !== undefined && object.numerator !== null\n ? long_1.default.fromValue(object.numerator)\n : long_1.default.UZERO;\n message.denominator =\n object.denominator !== undefined && object.denominator !== null\n ? long_1.default.fromValue(object.denominator)\n : long_1.default.UZERO;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=tendermint.js.map","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Event = exports.LastCommitInfo = exports.BlockParams = exports.ConsensusParams = exports.ResponseApplySnapshotChunk = exports.ResponseLoadSnapshotChunk = exports.ResponseOfferSnapshot = exports.ResponseListSnapshots = exports.ResponseCommit = exports.ResponseEndBlock = exports.ResponseDeliverTx = exports.ResponseCheckTx = exports.ResponseBeginBlock = exports.ResponseQuery = exports.ResponseInitChain = exports.ResponseSetOption = exports.ResponseInfo = exports.ResponseFlush = exports.ResponseEcho = exports.ResponseException = exports.Response = exports.RequestApplySnapshotChunk = exports.RequestLoadSnapshotChunk = exports.RequestOfferSnapshot = exports.RequestListSnapshots = exports.RequestCommit = exports.RequestEndBlock = exports.RequestDeliverTx = exports.RequestCheckTx = exports.RequestBeginBlock = exports.RequestQuery = exports.RequestInitChain = exports.RequestSetOption = exports.RequestInfo = exports.RequestFlush = exports.RequestEcho = exports.Request = exports.responseApplySnapshotChunk_ResultToJSON = exports.responseApplySnapshotChunk_ResultFromJSON = exports.ResponseApplySnapshotChunk_Result = exports.responseOfferSnapshot_ResultToJSON = exports.responseOfferSnapshot_ResultFromJSON = exports.ResponseOfferSnapshot_Result = exports.evidenceTypeToJSON = exports.evidenceTypeFromJSON = exports.EvidenceType = exports.checkTxTypeToJSON = exports.checkTxTypeFromJSON = exports.CheckTxType = exports.protobufPackage = void 0;\nexports.ABCIApplicationClientImpl = exports.Snapshot = exports.Evidence = exports.VoteInfo = exports.ValidatorUpdate = exports.Validator = exports.TxResult = exports.EventAttribute = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst types_1 = require(\"../../tendermint/types/types\");\nconst proof_1 = require(\"../../tendermint/crypto/proof\");\nconst params_1 = require(\"../../tendermint/types/params\");\nconst keys_1 = require(\"../../tendermint/crypto/keys\");\nexports.protobufPackage = \"tendermint.abci\";\nvar CheckTxType;\n(function (CheckTxType) {\n CheckTxType[CheckTxType[\"NEW\"] = 0] = \"NEW\";\n CheckTxType[CheckTxType[\"RECHECK\"] = 1] = \"RECHECK\";\n CheckTxType[CheckTxType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(CheckTxType = exports.CheckTxType || (exports.CheckTxType = {}));\nfunction checkTxTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"NEW\":\n return CheckTxType.NEW;\n case 1:\n case \"RECHECK\":\n return CheckTxType.RECHECK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CheckTxType.UNRECOGNIZED;\n }\n}\nexports.checkTxTypeFromJSON = checkTxTypeFromJSON;\nfunction checkTxTypeToJSON(object) {\n switch (object) {\n case CheckTxType.NEW:\n return \"NEW\";\n case CheckTxType.RECHECK:\n return \"RECHECK\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.checkTxTypeToJSON = checkTxTypeToJSON;\nvar EvidenceType;\n(function (EvidenceType) {\n EvidenceType[EvidenceType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n EvidenceType[EvidenceType[\"DUPLICATE_VOTE\"] = 1] = \"DUPLICATE_VOTE\";\n EvidenceType[EvidenceType[\"LIGHT_CLIENT_ATTACK\"] = 2] = \"LIGHT_CLIENT_ATTACK\";\n EvidenceType[EvidenceType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(EvidenceType = exports.EvidenceType || (exports.EvidenceType = {}));\nfunction evidenceTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return EvidenceType.UNKNOWN;\n case 1:\n case \"DUPLICATE_VOTE\":\n return EvidenceType.DUPLICATE_VOTE;\n case 2:\n case \"LIGHT_CLIENT_ATTACK\":\n return EvidenceType.LIGHT_CLIENT_ATTACK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return EvidenceType.UNRECOGNIZED;\n }\n}\nexports.evidenceTypeFromJSON = evidenceTypeFromJSON;\nfunction evidenceTypeToJSON(object) {\n switch (object) {\n case EvidenceType.UNKNOWN:\n return \"UNKNOWN\";\n case EvidenceType.DUPLICATE_VOTE:\n return \"DUPLICATE_VOTE\";\n case EvidenceType.LIGHT_CLIENT_ATTACK:\n return \"LIGHT_CLIENT_ATTACK\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.evidenceTypeToJSON = evidenceTypeToJSON;\nvar ResponseOfferSnapshot_Result;\n(function (ResponseOfferSnapshot_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Snapshot accepted, apply chunks */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** REJECT - Reject this specific snapshot, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT\"] = 3] = \"REJECT\";\n /** REJECT_FORMAT - Reject all snapshots of this format, try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_FORMAT\"] = 4] = \"REJECT_FORMAT\";\n /** REJECT_SENDER - Reject all snapshots from the sender(s), try others */\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"REJECT_SENDER\"] = 5] = \"REJECT_SENDER\";\n ResponseOfferSnapshot_Result[ResponseOfferSnapshot_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseOfferSnapshot_Result = exports.ResponseOfferSnapshot_Result || (exports.ResponseOfferSnapshot_Result = {}));\nfunction responseOfferSnapshot_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseOfferSnapshot_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseOfferSnapshot_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseOfferSnapshot_Result.ABORT;\n case 3:\n case \"REJECT\":\n return ResponseOfferSnapshot_Result.REJECT;\n case 4:\n case \"REJECT_FORMAT\":\n return ResponseOfferSnapshot_Result.REJECT_FORMAT;\n case 5:\n case \"REJECT_SENDER\":\n return ResponseOfferSnapshot_Result.REJECT_SENDER;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseOfferSnapshot_Result.UNRECOGNIZED;\n }\n}\nexports.responseOfferSnapshot_ResultFromJSON = responseOfferSnapshot_ResultFromJSON;\nfunction responseOfferSnapshot_ResultToJSON(object) {\n switch (object) {\n case ResponseOfferSnapshot_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseOfferSnapshot_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseOfferSnapshot_Result.ABORT:\n return \"ABORT\";\n case ResponseOfferSnapshot_Result.REJECT:\n return \"REJECT\";\n case ResponseOfferSnapshot_Result.REJECT_FORMAT:\n return \"REJECT_FORMAT\";\n case ResponseOfferSnapshot_Result.REJECT_SENDER:\n return \"REJECT_SENDER\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseOfferSnapshot_ResultToJSON = responseOfferSnapshot_ResultToJSON;\nvar ResponseApplySnapshotChunk_Result;\n(function (ResponseApplySnapshotChunk_Result) {\n /** UNKNOWN - Unknown result, abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /** ACCEPT - Chunk successfully accepted */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ACCEPT\"] = 1] = \"ACCEPT\";\n /** ABORT - Abort all snapshot restoration */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"ABORT\"] = 2] = \"ABORT\";\n /** RETRY - Retry chunk (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY\"] = 3] = \"RETRY\";\n /** RETRY_SNAPSHOT - Retry snapshot (combine with refetch and reject) */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"RETRY_SNAPSHOT\"] = 4] = \"RETRY_SNAPSHOT\";\n /** REJECT_SNAPSHOT - Reject this snapshot, try others */\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"REJECT_SNAPSHOT\"] = 5] = \"REJECT_SNAPSHOT\";\n ResponseApplySnapshotChunk_Result[ResponseApplySnapshotChunk_Result[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ResponseApplySnapshotChunk_Result = exports.ResponseApplySnapshotChunk_Result || (exports.ResponseApplySnapshotChunk_Result = {}));\nfunction responseApplySnapshotChunk_ResultFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN\":\n return ResponseApplySnapshotChunk_Result.UNKNOWN;\n case 1:\n case \"ACCEPT\":\n return ResponseApplySnapshotChunk_Result.ACCEPT;\n case 2:\n case \"ABORT\":\n return ResponseApplySnapshotChunk_Result.ABORT;\n case 3:\n case \"RETRY\":\n return ResponseApplySnapshotChunk_Result.RETRY;\n case 4:\n case \"RETRY_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT;\n case 5:\n case \"REJECT_SNAPSHOT\":\n return ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ResponseApplySnapshotChunk_Result.UNRECOGNIZED;\n }\n}\nexports.responseApplySnapshotChunk_ResultFromJSON = responseApplySnapshotChunk_ResultFromJSON;\nfunction responseApplySnapshotChunk_ResultToJSON(object) {\n switch (object) {\n case ResponseApplySnapshotChunk_Result.UNKNOWN:\n return \"UNKNOWN\";\n case ResponseApplySnapshotChunk_Result.ACCEPT:\n return \"ACCEPT\";\n case ResponseApplySnapshotChunk_Result.ABORT:\n return \"ABORT\";\n case ResponseApplySnapshotChunk_Result.RETRY:\n return \"RETRY\";\n case ResponseApplySnapshotChunk_Result.RETRY_SNAPSHOT:\n return \"RETRY_SNAPSHOT\";\n case ResponseApplySnapshotChunk_Result.REJECT_SNAPSHOT:\n return \"REJECT_SNAPSHOT\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.responseApplySnapshotChunk_ResultToJSON = responseApplySnapshotChunk_ResultToJSON;\nconst baseRequest = {};\nexports.Request = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.echo !== undefined) {\n exports.RequestEcho.encode(message.echo, writer.uint32(10).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.RequestFlush.encode(message.flush, writer.uint32(18).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.RequestInfo.encode(message.info, writer.uint32(26).fork()).ldelim();\n }\n if (message.setOption !== undefined) {\n exports.RequestSetOption.encode(message.setOption, writer.uint32(34).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.RequestInitChain.encode(message.initChain, writer.uint32(42).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.RequestQuery.encode(message.query, writer.uint32(50).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.RequestBeginBlock.encode(message.beginBlock, writer.uint32(58).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.RequestCheckTx.encode(message.checkTx, writer.uint32(66).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.RequestDeliverTx.encode(message.deliverTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.RequestEndBlock.encode(message.endBlock, writer.uint32(82).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.RequestCommit.encode(message.commit, writer.uint32(90).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.RequestListSnapshots.encode(message.listSnapshots, writer.uint32(98).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.RequestOfferSnapshot.encode(message.offerSnapshot, writer.uint32(106).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.RequestLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(114).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.RequestApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequest);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.echo = exports.RequestEcho.decode(reader, reader.uint32());\n break;\n case 2:\n message.flush = exports.RequestFlush.decode(reader, reader.uint32());\n break;\n case 3:\n message.info = exports.RequestInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.setOption = exports.RequestSetOption.decode(reader, reader.uint32());\n break;\n case 5:\n message.initChain = exports.RequestInitChain.decode(reader, reader.uint32());\n break;\n case 6:\n message.query = exports.RequestQuery.decode(reader, reader.uint32());\n break;\n case 7:\n message.beginBlock = exports.RequestBeginBlock.decode(reader, reader.uint32());\n break;\n case 8:\n message.checkTx = exports.RequestCheckTx.decode(reader, reader.uint32());\n break;\n case 9:\n message.deliverTx = exports.RequestDeliverTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.endBlock = exports.RequestEndBlock.decode(reader, reader.uint32());\n break;\n case 11:\n message.commit = exports.RequestCommit.decode(reader, reader.uint32());\n break;\n case 12:\n message.listSnapshots = exports.RequestListSnapshots.decode(reader, reader.uint32());\n break;\n case 13:\n message.offerSnapshot = exports.RequestOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 14:\n message.loadSnapshotChunk = exports.RequestLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 15:\n message.applySnapshotChunk = exports.RequestApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequest);\n message.echo =\n object.echo !== undefined && object.echo !== null ? exports.RequestEcho.fromJSON(object.echo) : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null ? exports.RequestFlush.fromJSON(object.flush) : undefined;\n message.info =\n object.info !== undefined && object.info !== null ? exports.RequestInfo.fromJSON(object.info) : undefined;\n message.setOption =\n object.setOption !== undefined && object.setOption !== null\n ? exports.RequestSetOption.fromJSON(object.setOption)\n : undefined;\n message.initChain =\n object.initChain !== undefined && object.initChain !== null\n ? exports.RequestInitChain.fromJSON(object.initChain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null ? exports.RequestQuery.fromJSON(object.query) : undefined;\n message.beginBlock =\n object.beginBlock !== undefined && object.beginBlock !== null\n ? exports.RequestBeginBlock.fromJSON(object.beginBlock)\n : undefined;\n message.checkTx =\n object.checkTx !== undefined && object.checkTx !== null\n ? exports.RequestCheckTx.fromJSON(object.checkTx)\n : undefined;\n message.deliverTx =\n object.deliverTx !== undefined && object.deliverTx !== null\n ? exports.RequestDeliverTx.fromJSON(object.deliverTx)\n : undefined;\n message.endBlock =\n object.endBlock !== undefined && object.endBlock !== null\n ? exports.RequestEndBlock.fromJSON(object.endBlock)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? exports.RequestCommit.fromJSON(object.commit)\n : undefined;\n message.listSnapshots =\n object.listSnapshots !== undefined && object.listSnapshots !== null\n ? exports.RequestListSnapshots.fromJSON(object.listSnapshots)\n : undefined;\n message.offerSnapshot =\n object.offerSnapshot !== undefined && object.offerSnapshot !== null\n ? exports.RequestOfferSnapshot.fromJSON(object.offerSnapshot)\n : undefined;\n message.loadSnapshotChunk =\n object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null\n ? exports.RequestLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk)\n : undefined;\n message.applySnapshotChunk =\n object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null\n ? exports.RequestApplySnapshotChunk.fromJSON(object.applySnapshotChunk)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.echo !== undefined && (obj.echo = message.echo ? exports.RequestEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.RequestFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.RequestInfo.toJSON(message.info) : undefined);\n message.setOption !== undefined &&\n (obj.setOption = message.setOption ? exports.RequestSetOption.toJSON(message.setOption) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.RequestInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.RequestQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.RequestBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.RequestCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.RequestDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.RequestEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.RequestCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.RequestListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.RequestOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.RequestLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.RequestApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequest);\n message.echo =\n object.echo !== undefined && object.echo !== null ? exports.RequestEcho.fromPartial(object.echo) : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null\n ? exports.RequestFlush.fromPartial(object.flush)\n : undefined;\n message.info =\n object.info !== undefined && object.info !== null ? exports.RequestInfo.fromPartial(object.info) : undefined;\n message.setOption =\n object.setOption !== undefined && object.setOption !== null\n ? exports.RequestSetOption.fromPartial(object.setOption)\n : undefined;\n message.initChain =\n object.initChain !== undefined && object.initChain !== null\n ? exports.RequestInitChain.fromPartial(object.initChain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null\n ? exports.RequestQuery.fromPartial(object.query)\n : undefined;\n message.beginBlock =\n object.beginBlock !== undefined && object.beginBlock !== null\n ? exports.RequestBeginBlock.fromPartial(object.beginBlock)\n : undefined;\n message.checkTx =\n object.checkTx !== undefined && object.checkTx !== null\n ? exports.RequestCheckTx.fromPartial(object.checkTx)\n : undefined;\n message.deliverTx =\n object.deliverTx !== undefined && object.deliverTx !== null\n ? exports.RequestDeliverTx.fromPartial(object.deliverTx)\n : undefined;\n message.endBlock =\n object.endBlock !== undefined && object.endBlock !== null\n ? exports.RequestEndBlock.fromPartial(object.endBlock)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? exports.RequestCommit.fromPartial(object.commit)\n : undefined;\n message.listSnapshots =\n object.listSnapshots !== undefined && object.listSnapshots !== null\n ? exports.RequestListSnapshots.fromPartial(object.listSnapshots)\n : undefined;\n message.offerSnapshot =\n object.offerSnapshot !== undefined && object.offerSnapshot !== null\n ? exports.RequestOfferSnapshot.fromPartial(object.offerSnapshot)\n : undefined;\n message.loadSnapshotChunk =\n object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null\n ? exports.RequestLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk)\n : undefined;\n message.applySnapshotChunk =\n object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null\n ? exports.RequestApplySnapshotChunk.fromPartial(object.applySnapshotChunk)\n : undefined;\n return message;\n },\n};\nconst baseRequestEcho = { message: \"\" };\nexports.RequestEcho = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestEcho);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestEcho);\n message.message = object.message !== undefined && object.message !== null ? String(object.message) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRequestEcho);\n message.message = (_a = object.message) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseRequestFlush = {};\nexports.RequestFlush = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestFlush);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestFlush);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestFlush);\n return message;\n },\n};\nconst baseRequestInfo = { version: \"\", blockVersion: long_1.default.UZERO, p2pVersion: long_1.default.UZERO };\nexports.RequestInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.version !== \"\") {\n writer.uint32(10).string(message.version);\n }\n if (!message.blockVersion.isZero()) {\n writer.uint32(16).uint64(message.blockVersion);\n }\n if (!message.p2pVersion.isZero()) {\n writer.uint32(24).uint64(message.p2pVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = reader.string();\n break;\n case 2:\n message.blockVersion = reader.uint64();\n break;\n case 3:\n message.p2pVersion = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestInfo);\n message.version = object.version !== undefined && object.version !== null ? String(object.version) : \"\";\n message.blockVersion =\n object.blockVersion !== undefined && object.blockVersion !== null\n ? long_1.default.fromString(object.blockVersion)\n : long_1.default.UZERO;\n message.p2pVersion =\n object.p2pVersion !== undefined && object.p2pVersion !== null\n ? long_1.default.fromString(object.p2pVersion)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined && (obj.version = message.version);\n message.blockVersion !== undefined &&\n (obj.blockVersion = (message.blockVersion || long_1.default.UZERO).toString());\n message.p2pVersion !== undefined && (obj.p2pVersion = (message.p2pVersion || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRequestInfo);\n message.version = (_a = object.version) !== null && _a !== void 0 ? _a : \"\";\n message.blockVersion =\n object.blockVersion !== undefined && object.blockVersion !== null\n ? long_1.default.fromValue(object.blockVersion)\n : long_1.default.UZERO;\n message.p2pVersion =\n object.p2pVersion !== undefined && object.p2pVersion !== null\n ? long_1.default.fromValue(object.p2pVersion)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseRequestSetOption = { key: \"\", value: \"\" };\nexports.RequestSetOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestSetOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.value = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestSetOption);\n message.key = object.key !== undefined && object.key !== null ? String(object.key) : \"\";\n message.value = object.value !== undefined && object.value !== null ? String(object.value) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.value !== undefined && (obj.value = message.value);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRequestSetOption);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : \"\";\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : \"\";\n return message;\n },\n};\nconst baseRequestInitChain = { chainId: \"\", initialHeight: long_1.default.ZERO };\nexports.RequestInitChain = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (message.consensusParams !== undefined) {\n exports.ConsensusParams.encode(message.consensusParams, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(34).fork()).ldelim();\n }\n if (message.appStateBytes.length !== 0) {\n writer.uint32(42).bytes(message.appStateBytes);\n }\n if (!message.initialHeight.isZero()) {\n writer.uint32(48).int64(message.initialHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestInitChain);\n message.validators = [];\n message.appStateBytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 5:\n message.appStateBytes = reader.bytes();\n break;\n case 6:\n message.initialHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseRequestInitChain);\n message.time =\n object.time !== undefined && object.time !== null ? fromJsonTimestamp(object.time) : undefined;\n message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : \"\";\n message.consensusParams =\n object.consensusParams !== undefined && object.consensusParams !== null\n ? exports.ConsensusParams.fromJSON(object.consensusParams)\n : undefined;\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => exports.ValidatorUpdate.fromJSON(e));\n message.appStateBytes =\n object.appStateBytes !== undefined && object.appStateBytes !== null\n ? bytesFromBase64(object.appStateBytes)\n : new Uint8Array();\n message.initialHeight =\n object.initialHeight !== undefined && object.initialHeight !== null\n ? long_1.default.fromString(object.initialHeight)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.time !== undefined && (obj.time = fromTimestamp(message.time).toISOString());\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? exports.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appStateBytes !== undefined &&\n (obj.appStateBytes = base64FromBytes(message.appStateBytes !== undefined ? message.appStateBytes : new Uint8Array()));\n message.initialHeight !== undefined &&\n (obj.initialHeight = (message.initialHeight || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseRequestInitChain);\n message.time =\n object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined;\n message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : \"\";\n message.consensusParams =\n object.consensusParams !== undefined && object.consensusParams !== null\n ? exports.ConsensusParams.fromPartial(object.consensusParams)\n : undefined;\n message.validators = ((_b = object.validators) === null || _b === void 0 ? void 0 : _b.map((e) => exports.ValidatorUpdate.fromPartial(e))) || [];\n message.appStateBytes = (_c = object.appStateBytes) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.initialHeight =\n object.initialHeight !== undefined && object.initialHeight !== null\n ? long_1.default.fromValue(object.initialHeight)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseRequestQuery = { path: \"\", height: long_1.default.ZERO, prove: false };\nexports.RequestQuery = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(10).bytes(message.data);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.prove === true) {\n writer.uint32(32).bool(message.prove);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestQuery);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.path = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.prove = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestQuery);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.path = object.path !== undefined && object.path !== null ? String(object.path) : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.prove = object.prove !== undefined && object.prove !== null ? Boolean(object.prove) : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.path !== undefined && (obj.path = message.path);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.prove !== undefined && (obj.prove = message.prove);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseRequestQuery);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.path = (_b = object.path) !== null && _b !== void 0 ? _b : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.prove = (_c = object.prove) !== null && _c !== void 0 ? _c : false;\n return message;\n },\n};\nconst baseRequestBeginBlock = {};\nexports.RequestBeginBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.header !== undefined) {\n types_1.Header.encode(message.header, writer.uint32(18).fork()).ldelim();\n }\n if (message.lastCommitInfo !== undefined) {\n exports.LastCommitInfo.encode(message.lastCommitInfo, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.byzantineValidators) {\n exports.Evidence.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestBeginBlock);\n message.byzantineValidators = [];\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.header = types_1.Header.decode(reader, reader.uint32());\n break;\n case 3:\n message.lastCommitInfo = exports.LastCommitInfo.decode(reader, reader.uint32());\n break;\n case 4:\n message.byzantineValidators.push(exports.Evidence.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseRequestBeginBlock);\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n message.header =\n object.header !== undefined && object.header !== null ? types_1.Header.fromJSON(object.header) : undefined;\n message.lastCommitInfo =\n object.lastCommitInfo !== undefined && object.lastCommitInfo !== null\n ? exports.LastCommitInfo.fromJSON(object.lastCommitInfo)\n : undefined;\n message.byzantineValidators = ((_a = object.byzantineValidators) !== null && _a !== void 0 ? _a : []).map((e) => exports.Evidence.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.header !== undefined && (obj.header = message.header ? types_1.Header.toJSON(message.header) : undefined);\n message.lastCommitInfo !== undefined &&\n (obj.lastCommitInfo = message.lastCommitInfo\n ? exports.LastCommitInfo.toJSON(message.lastCommitInfo)\n : undefined);\n if (message.byzantineValidators) {\n obj.byzantineValidators = message.byzantineValidators.map((e) => (e ? exports.Evidence.toJSON(e) : undefined));\n }\n else {\n obj.byzantineValidators = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRequestBeginBlock);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.header =\n object.header !== undefined && object.header !== null ? types_1.Header.fromPartial(object.header) : undefined;\n message.lastCommitInfo =\n object.lastCommitInfo !== undefined && object.lastCommitInfo !== null\n ? exports.LastCommitInfo.fromPartial(object.lastCommitInfo)\n : undefined;\n message.byzantineValidators = ((_b = object.byzantineValidators) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Evidence.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseRequestCheckTx = { type: 0 };\nexports.RequestCheckTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n if (message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n case 2:\n message.type = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx =\n object.tx !== undefined && object.tx !== null ? bytesFromBase64(object.tx) : new Uint8Array();\n message.type = object.type !== undefined && object.type !== null ? checkTxTypeFromJSON(object.type) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.type !== undefined && (obj.type = checkTxTypeToJSON(message.type));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRequestCheckTx);\n message.tx = (_a = object.tx) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.type = (_b = object.type) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseRequestDeliverTx = {};\nexports.RequestDeliverTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.tx.length !== 0) {\n writer.uint32(10).bytes(message.tx);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tx = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx =\n object.tx !== undefined && object.tx !== null ? bytesFromBase64(object.tx) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRequestDeliverTx);\n message.tx = (_a = object.tx) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseRequestEndBlock = { height: long_1.default.ZERO };\nexports.RequestEndBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestEndBlock);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestEndBlock);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseRequestEndBlock);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseRequestCommit = {};\nexports.RequestCommit = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestCommit);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestCommit);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestCommit);\n return message;\n },\n};\nconst baseRequestListSnapshots = {};\nexports.RequestListSnapshots = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestListSnapshots);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseRequestListSnapshots);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseRequestListSnapshots);\n return message;\n },\n};\nconst baseRequestOfferSnapshot = {};\nexports.RequestOfferSnapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.snapshot !== undefined) {\n exports.Snapshot.encode(message.snapshot, writer.uint32(10).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(18).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.appHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshot = exports.Snapshot.decode(reader, reader.uint32());\n break;\n case 2:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.snapshot =\n object.snapshot !== undefined && object.snapshot !== null\n ? exports.Snapshot.fromJSON(object.snapshot)\n : undefined;\n message.appHash =\n object.appHash !== undefined && object.appHash !== null\n ? bytesFromBase64(object.appHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.snapshot !== undefined &&\n (obj.snapshot = message.snapshot ? exports.Snapshot.toJSON(message.snapshot) : undefined);\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseRequestOfferSnapshot);\n message.snapshot =\n object.snapshot !== undefined && object.snapshot !== null\n ? exports.Snapshot.fromPartial(object.snapshot)\n : undefined;\n message.appHash = (_a = object.appHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseRequestLoadSnapshotChunk = { height: long_1.default.UZERO, format: 0, chunk: 0 };\nexports.RequestLoadSnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunk !== 0) {\n writer.uint32(24).uint32(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunk = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.UZERO;\n message.format = object.format !== undefined && object.format !== null ? Number(object.format) : 0;\n message.chunk = object.chunk !== undefined && object.chunk !== null ? Number(object.chunk) : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n message.format !== undefined && (obj.format = message.format);\n message.chunk !== undefined && (obj.chunk = message.chunk);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseRequestLoadSnapshotChunk);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.UZERO;\n message.format = (_a = object.format) !== null && _a !== void 0 ? _a : 0;\n message.chunk = (_b = object.chunk) !== null && _b !== void 0 ? _b : 0;\n return message;\n },\n};\nconst baseRequestApplySnapshotChunk = { index: 0, sender: \"\" };\nexports.RequestApplySnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.chunk.length !== 0) {\n writer.uint32(18).bytes(message.chunk);\n }\n if (message.sender !== \"\") {\n writer.uint32(26).string(message.sender);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.chunk = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.chunk = reader.bytes();\n break;\n case 3:\n message.sender = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.index = object.index !== undefined && object.index !== null ? Number(object.index) : 0;\n message.chunk =\n object.chunk !== undefined && object.chunk !== null ? bytesFromBase64(object.chunk) : new Uint8Array();\n message.sender = object.sender !== undefined && object.sender !== null ? String(object.sender) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = message.index);\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n message.sender !== undefined && (obj.sender = message.sender);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseRequestApplySnapshotChunk);\n message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0;\n message.chunk = (_b = object.chunk) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.sender = (_c = object.sender) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseResponse = {};\nexports.Response = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.exception !== undefined) {\n exports.ResponseException.encode(message.exception, writer.uint32(10).fork()).ldelim();\n }\n if (message.echo !== undefined) {\n exports.ResponseEcho.encode(message.echo, writer.uint32(18).fork()).ldelim();\n }\n if (message.flush !== undefined) {\n exports.ResponseFlush.encode(message.flush, writer.uint32(26).fork()).ldelim();\n }\n if (message.info !== undefined) {\n exports.ResponseInfo.encode(message.info, writer.uint32(34).fork()).ldelim();\n }\n if (message.setOption !== undefined) {\n exports.ResponseSetOption.encode(message.setOption, writer.uint32(42).fork()).ldelim();\n }\n if (message.initChain !== undefined) {\n exports.ResponseInitChain.encode(message.initChain, writer.uint32(50).fork()).ldelim();\n }\n if (message.query !== undefined) {\n exports.ResponseQuery.encode(message.query, writer.uint32(58).fork()).ldelim();\n }\n if (message.beginBlock !== undefined) {\n exports.ResponseBeginBlock.encode(message.beginBlock, writer.uint32(66).fork()).ldelim();\n }\n if (message.checkTx !== undefined) {\n exports.ResponseCheckTx.encode(message.checkTx, writer.uint32(74).fork()).ldelim();\n }\n if (message.deliverTx !== undefined) {\n exports.ResponseDeliverTx.encode(message.deliverTx, writer.uint32(82).fork()).ldelim();\n }\n if (message.endBlock !== undefined) {\n exports.ResponseEndBlock.encode(message.endBlock, writer.uint32(90).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.ResponseCommit.encode(message.commit, writer.uint32(98).fork()).ldelim();\n }\n if (message.listSnapshots !== undefined) {\n exports.ResponseListSnapshots.encode(message.listSnapshots, writer.uint32(106).fork()).ldelim();\n }\n if (message.offerSnapshot !== undefined) {\n exports.ResponseOfferSnapshot.encode(message.offerSnapshot, writer.uint32(114).fork()).ldelim();\n }\n if (message.loadSnapshotChunk !== undefined) {\n exports.ResponseLoadSnapshotChunk.encode(message.loadSnapshotChunk, writer.uint32(122).fork()).ldelim();\n }\n if (message.applySnapshotChunk !== undefined) {\n exports.ResponseApplySnapshotChunk.encode(message.applySnapshotChunk, writer.uint32(130).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponse);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exception = exports.ResponseException.decode(reader, reader.uint32());\n break;\n case 2:\n message.echo = exports.ResponseEcho.decode(reader, reader.uint32());\n break;\n case 3:\n message.flush = exports.ResponseFlush.decode(reader, reader.uint32());\n break;\n case 4:\n message.info = exports.ResponseInfo.decode(reader, reader.uint32());\n break;\n case 5:\n message.setOption = exports.ResponseSetOption.decode(reader, reader.uint32());\n break;\n case 6:\n message.initChain = exports.ResponseInitChain.decode(reader, reader.uint32());\n break;\n case 7:\n message.query = exports.ResponseQuery.decode(reader, reader.uint32());\n break;\n case 8:\n message.beginBlock = exports.ResponseBeginBlock.decode(reader, reader.uint32());\n break;\n case 9:\n message.checkTx = exports.ResponseCheckTx.decode(reader, reader.uint32());\n break;\n case 10:\n message.deliverTx = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n case 11:\n message.endBlock = exports.ResponseEndBlock.decode(reader, reader.uint32());\n break;\n case 12:\n message.commit = exports.ResponseCommit.decode(reader, reader.uint32());\n break;\n case 13:\n message.listSnapshots = exports.ResponseListSnapshots.decode(reader, reader.uint32());\n break;\n case 14:\n message.offerSnapshot = exports.ResponseOfferSnapshot.decode(reader, reader.uint32());\n break;\n case 15:\n message.loadSnapshotChunk = exports.ResponseLoadSnapshotChunk.decode(reader, reader.uint32());\n break;\n case 16:\n message.applySnapshotChunk = exports.ResponseApplySnapshotChunk.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponse);\n message.exception =\n object.exception !== undefined && object.exception !== null\n ? exports.ResponseException.fromJSON(object.exception)\n : undefined;\n message.echo =\n object.echo !== undefined && object.echo !== null ? exports.ResponseEcho.fromJSON(object.echo) : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null ? exports.ResponseFlush.fromJSON(object.flush) : undefined;\n message.info =\n object.info !== undefined && object.info !== null ? exports.ResponseInfo.fromJSON(object.info) : undefined;\n message.setOption =\n object.setOption !== undefined && object.setOption !== null\n ? exports.ResponseSetOption.fromJSON(object.setOption)\n : undefined;\n message.initChain =\n object.initChain !== undefined && object.initChain !== null\n ? exports.ResponseInitChain.fromJSON(object.initChain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null ? exports.ResponseQuery.fromJSON(object.query) : undefined;\n message.beginBlock =\n object.beginBlock !== undefined && object.beginBlock !== null\n ? exports.ResponseBeginBlock.fromJSON(object.beginBlock)\n : undefined;\n message.checkTx =\n object.checkTx !== undefined && object.checkTx !== null\n ? exports.ResponseCheckTx.fromJSON(object.checkTx)\n : undefined;\n message.deliverTx =\n object.deliverTx !== undefined && object.deliverTx !== null\n ? exports.ResponseDeliverTx.fromJSON(object.deliverTx)\n : undefined;\n message.endBlock =\n object.endBlock !== undefined && object.endBlock !== null\n ? exports.ResponseEndBlock.fromJSON(object.endBlock)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? exports.ResponseCommit.fromJSON(object.commit)\n : undefined;\n message.listSnapshots =\n object.listSnapshots !== undefined && object.listSnapshots !== null\n ? exports.ResponseListSnapshots.fromJSON(object.listSnapshots)\n : undefined;\n message.offerSnapshot =\n object.offerSnapshot !== undefined && object.offerSnapshot !== null\n ? exports.ResponseOfferSnapshot.fromJSON(object.offerSnapshot)\n : undefined;\n message.loadSnapshotChunk =\n object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null\n ? exports.ResponseLoadSnapshotChunk.fromJSON(object.loadSnapshotChunk)\n : undefined;\n message.applySnapshotChunk =\n object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null\n ? exports.ResponseApplySnapshotChunk.fromJSON(object.applySnapshotChunk)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.exception !== undefined &&\n (obj.exception = message.exception ? exports.ResponseException.toJSON(message.exception) : undefined);\n message.echo !== undefined && (obj.echo = message.echo ? exports.ResponseEcho.toJSON(message.echo) : undefined);\n message.flush !== undefined &&\n (obj.flush = message.flush ? exports.ResponseFlush.toJSON(message.flush) : undefined);\n message.info !== undefined && (obj.info = message.info ? exports.ResponseInfo.toJSON(message.info) : undefined);\n message.setOption !== undefined &&\n (obj.setOption = message.setOption ? exports.ResponseSetOption.toJSON(message.setOption) : undefined);\n message.initChain !== undefined &&\n (obj.initChain = message.initChain ? exports.ResponseInitChain.toJSON(message.initChain) : undefined);\n message.query !== undefined &&\n (obj.query = message.query ? exports.ResponseQuery.toJSON(message.query) : undefined);\n message.beginBlock !== undefined &&\n (obj.beginBlock = message.beginBlock ? exports.ResponseBeginBlock.toJSON(message.beginBlock) : undefined);\n message.checkTx !== undefined &&\n (obj.checkTx = message.checkTx ? exports.ResponseCheckTx.toJSON(message.checkTx) : undefined);\n message.deliverTx !== undefined &&\n (obj.deliverTx = message.deliverTx ? exports.ResponseDeliverTx.toJSON(message.deliverTx) : undefined);\n message.endBlock !== undefined &&\n (obj.endBlock = message.endBlock ? exports.ResponseEndBlock.toJSON(message.endBlock) : undefined);\n message.commit !== undefined &&\n (obj.commit = message.commit ? exports.ResponseCommit.toJSON(message.commit) : undefined);\n message.listSnapshots !== undefined &&\n (obj.listSnapshots = message.listSnapshots\n ? exports.ResponseListSnapshots.toJSON(message.listSnapshots)\n : undefined);\n message.offerSnapshot !== undefined &&\n (obj.offerSnapshot = message.offerSnapshot\n ? exports.ResponseOfferSnapshot.toJSON(message.offerSnapshot)\n : undefined);\n message.loadSnapshotChunk !== undefined &&\n (obj.loadSnapshotChunk = message.loadSnapshotChunk\n ? exports.ResponseLoadSnapshotChunk.toJSON(message.loadSnapshotChunk)\n : undefined);\n message.applySnapshotChunk !== undefined &&\n (obj.applySnapshotChunk = message.applySnapshotChunk\n ? exports.ResponseApplySnapshotChunk.toJSON(message.applySnapshotChunk)\n : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseResponse);\n message.exception =\n object.exception !== undefined && object.exception !== null\n ? exports.ResponseException.fromPartial(object.exception)\n : undefined;\n message.echo =\n object.echo !== undefined && object.echo !== null ? exports.ResponseEcho.fromPartial(object.echo) : undefined;\n message.flush =\n object.flush !== undefined && object.flush !== null\n ? exports.ResponseFlush.fromPartial(object.flush)\n : undefined;\n message.info =\n object.info !== undefined && object.info !== null ? exports.ResponseInfo.fromPartial(object.info) : undefined;\n message.setOption =\n object.setOption !== undefined && object.setOption !== null\n ? exports.ResponseSetOption.fromPartial(object.setOption)\n : undefined;\n message.initChain =\n object.initChain !== undefined && object.initChain !== null\n ? exports.ResponseInitChain.fromPartial(object.initChain)\n : undefined;\n message.query =\n object.query !== undefined && object.query !== null\n ? exports.ResponseQuery.fromPartial(object.query)\n : undefined;\n message.beginBlock =\n object.beginBlock !== undefined && object.beginBlock !== null\n ? exports.ResponseBeginBlock.fromPartial(object.beginBlock)\n : undefined;\n message.checkTx =\n object.checkTx !== undefined && object.checkTx !== null\n ? exports.ResponseCheckTx.fromPartial(object.checkTx)\n : undefined;\n message.deliverTx =\n object.deliverTx !== undefined && object.deliverTx !== null\n ? exports.ResponseDeliverTx.fromPartial(object.deliverTx)\n : undefined;\n message.endBlock =\n object.endBlock !== undefined && object.endBlock !== null\n ? exports.ResponseEndBlock.fromPartial(object.endBlock)\n : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null\n ? exports.ResponseCommit.fromPartial(object.commit)\n : undefined;\n message.listSnapshots =\n object.listSnapshots !== undefined && object.listSnapshots !== null\n ? exports.ResponseListSnapshots.fromPartial(object.listSnapshots)\n : undefined;\n message.offerSnapshot =\n object.offerSnapshot !== undefined && object.offerSnapshot !== null\n ? exports.ResponseOfferSnapshot.fromPartial(object.offerSnapshot)\n : undefined;\n message.loadSnapshotChunk =\n object.loadSnapshotChunk !== undefined && object.loadSnapshotChunk !== null\n ? exports.ResponseLoadSnapshotChunk.fromPartial(object.loadSnapshotChunk)\n : undefined;\n message.applySnapshotChunk =\n object.applySnapshotChunk !== undefined && object.applySnapshotChunk !== null\n ? exports.ResponseApplySnapshotChunk.fromPartial(object.applySnapshotChunk)\n : undefined;\n return message;\n },\n};\nconst baseResponseException = { error: \"\" };\nexports.ResponseException = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.error !== \"\") {\n writer.uint32(10).string(message.error);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseException);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseException);\n message.error = object.error !== undefined && object.error !== null ? String(object.error) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.error !== undefined && (obj.error = message.error);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseException);\n message.error = (_a = object.error) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseResponseEcho = { message: \"\" };\nexports.ResponseEcho = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.message !== \"\") {\n writer.uint32(10).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseEcho);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseEcho);\n message.message = object.message !== undefined && object.message !== null ? String(object.message) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.message !== undefined && (obj.message = message.message);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseEcho);\n message.message = (_a = object.message) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseResponseFlush = {};\nexports.ResponseFlush = {\n encode(_, writer = minimal_1.default.Writer.create()) {\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseFlush);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(_) {\n const message = Object.assign({}, baseResponseFlush);\n return message;\n },\n toJSON(_) {\n const obj = {};\n return obj;\n },\n fromPartial(_) {\n const message = Object.assign({}, baseResponseFlush);\n return message;\n },\n};\nconst baseResponseInfo = {\n data: \"\",\n version: \"\",\n appVersion: long_1.default.UZERO,\n lastBlockHeight: long_1.default.ZERO,\n};\nexports.ResponseInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data !== \"\") {\n writer.uint32(10).string(message.data);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (!message.appVersion.isZero()) {\n writer.uint32(24).uint64(message.appVersion);\n }\n if (!message.lastBlockHeight.isZero()) {\n writer.uint32(32).int64(message.lastBlockHeight);\n }\n if (message.lastBlockAppHash.length !== 0) {\n writer.uint32(42).bytes(message.lastBlockAppHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseInfo);\n message.lastBlockAppHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.string();\n break;\n case 2:\n message.version = reader.string();\n break;\n case 3:\n message.appVersion = reader.uint64();\n break;\n case 4:\n message.lastBlockHeight = reader.int64();\n break;\n case 5:\n message.lastBlockAppHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseInfo);\n message.data = object.data !== undefined && object.data !== null ? String(object.data) : \"\";\n message.version = object.version !== undefined && object.version !== null ? String(object.version) : \"\";\n message.appVersion =\n object.appVersion !== undefined && object.appVersion !== null\n ? long_1.default.fromString(object.appVersion)\n : long_1.default.UZERO;\n message.lastBlockHeight =\n object.lastBlockHeight !== undefined && object.lastBlockHeight !== null\n ? long_1.default.fromString(object.lastBlockHeight)\n : long_1.default.ZERO;\n message.lastBlockAppHash =\n object.lastBlockAppHash !== undefined && object.lastBlockAppHash !== null\n ? bytesFromBase64(object.lastBlockAppHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined && (obj.data = message.data);\n message.version !== undefined && (obj.version = message.version);\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || long_1.default.UZERO).toString());\n message.lastBlockHeight !== undefined &&\n (obj.lastBlockHeight = (message.lastBlockHeight || long_1.default.ZERO).toString());\n message.lastBlockAppHash !== undefined &&\n (obj.lastBlockAppHash = base64FromBytes(message.lastBlockAppHash !== undefined ? message.lastBlockAppHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseResponseInfo);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : \"\";\n message.version = (_b = object.version) !== null && _b !== void 0 ? _b : \"\";\n message.appVersion =\n object.appVersion !== undefined && object.appVersion !== null\n ? long_1.default.fromValue(object.appVersion)\n : long_1.default.UZERO;\n message.lastBlockHeight =\n object.lastBlockHeight !== undefined && object.lastBlockHeight !== null\n ? long_1.default.fromValue(object.lastBlockHeight)\n : long_1.default.ZERO;\n message.lastBlockAppHash = (_c = object.lastBlockAppHash) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseResponseSetOption = { code: 0, log: \"\", info: \"\" };\nexports.ResponseSetOption = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseSetOption);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseSetOption);\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseResponseSetOption);\n message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;\n message.log = (_b = object.log) !== null && _b !== void 0 ? _b : \"\";\n message.info = (_c = object.info) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseResponseInitChain = {};\nexports.ResponseInitChain = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.consensusParams !== undefined) {\n exports.ConsensusParams.encode(message.consensusParams, writer.uint32(10).fork()).ldelim();\n }\n for (const v of message.validators) {\n exports.ValidatorUpdate.encode(v, writer.uint32(18).fork()).ldelim();\n }\n if (message.appHash.length !== 0) {\n writer.uint32(26).bytes(message.appHash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseInitChain);\n message.validators = [];\n message.appHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.consensusParams = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.validators.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 3:\n message.appHash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseInitChain);\n message.consensusParams =\n object.consensusParams !== undefined && object.consensusParams !== null\n ? exports.ConsensusParams.fromJSON(object.consensusParams)\n : undefined;\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => exports.ValidatorUpdate.fromJSON(e));\n message.appHash =\n object.appHash !== undefined && object.appHash !== null\n ? bytesFromBase64(object.appHash)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.consensusParams !== undefined &&\n (obj.consensusParams = message.consensusParams\n ? exports.ConsensusParams.toJSON(message.consensusParams)\n : undefined);\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseResponseInitChain);\n message.consensusParams =\n object.consensusParams !== undefined && object.consensusParams !== null\n ? exports.ConsensusParams.fromPartial(object.consensusParams)\n : undefined;\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ValidatorUpdate.fromPartial(e))) || [];\n message.appHash = (_b = object.appHash) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst baseResponseQuery = {\n code: 0,\n log: \"\",\n info: \"\",\n index: long_1.default.ZERO,\n height: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseQuery = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.index.isZero()) {\n writer.uint32(40).int64(message.index);\n }\n if (message.key.length !== 0) {\n writer.uint32(50).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(58).bytes(message.value);\n }\n if (message.proofOps !== undefined) {\n proof_1.ProofOps.encode(message.proofOps, writer.uint32(66).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(72).int64(message.height);\n }\n if (message.codespace !== \"\") {\n writer.uint32(82).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseQuery);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.index = reader.int64();\n break;\n case 6:\n message.key = reader.bytes();\n break;\n case 7:\n message.value = reader.bytes();\n break;\n case 8:\n message.proofOps = proof_1.ProofOps.decode(reader, reader.uint32());\n break;\n case 9:\n message.height = reader.int64();\n break;\n case 10:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseQuery);\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n message.index =\n object.index !== undefined && object.index !== null ? long_1.default.fromString(object.index) : long_1.default.ZERO;\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n message.proofOps =\n object.proofOps !== undefined && object.proofOps !== null\n ? proof_1.ProofOps.fromJSON(object.proofOps)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.codespace =\n object.codespace !== undefined && object.codespace !== null ? String(object.codespace) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.index !== undefined && (obj.index = (message.index || long_1.default.ZERO).toString());\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.proofOps !== undefined &&\n (obj.proofOps = message.proofOps ? proof_1.ProofOps.toJSON(message.proofOps) : undefined);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseResponseQuery);\n message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;\n message.log = (_b = object.log) !== null && _b !== void 0 ? _b : \"\";\n message.info = (_c = object.info) !== null && _c !== void 0 ? _c : \"\";\n message.index =\n object.index !== undefined && object.index !== null ? long_1.default.fromValue(object.index) : long_1.default.ZERO;\n message.key = (_d = object.key) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.value = (_e = object.value) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.proofOps =\n object.proofOps !== undefined && object.proofOps !== null\n ? proof_1.ProofOps.fromPartial(object.proofOps)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.codespace = (_f = object.codespace) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseResponseBeginBlock = {};\nexports.ResponseBeginBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => exports.Event.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseBeginBlock);\n message.events = ((_a = object.events) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Event.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseResponseCheckTx = {\n code: 0,\n log: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseCheckTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseCheckTx);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseCheckTx);\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n message.gasWanted =\n object.gas_wanted !== undefined && object.gas_wanted !== null\n ? long_1.default.fromString(object.gas_wanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gas_used !== undefined && object.gas_used !== null\n ? long_1.default.fromString(object.gas_used)\n : long_1.default.ZERO;\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => exports.Event.fromJSON(e));\n message.codespace =\n object.codespace !== undefined && object.codespace !== null ? String(object.codespace) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || long_1.default.ZERO).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseResponseCheckTx);\n message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.log = (_c = object.log) !== null && _c !== void 0 ? _c : \"\";\n message.info = (_d = object.info) !== null && _d !== void 0 ? _d : \"\";\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromValue(object.gasWanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromValue(object.gasUsed) : long_1.default.ZERO;\n message.events = ((_e = object.events) === null || _e === void 0 ? void 0 : _e.map((e) => exports.Event.fromPartial(e))) || [];\n message.codespace = (_f = object.codespace) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseResponseDeliverTx = {\n code: 0,\n log: \"\",\n info: \"\",\n gasWanted: long_1.default.ZERO,\n gasUsed: long_1.default.ZERO,\n codespace: \"\",\n};\nexports.ResponseDeliverTx = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.code !== 0) {\n writer.uint32(8).uint32(message.code);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.log !== \"\") {\n writer.uint32(26).string(message.log);\n }\n if (message.info !== \"\") {\n writer.uint32(34).string(message.info);\n }\n if (!message.gasWanted.isZero()) {\n writer.uint32(40).int64(message.gasWanted);\n }\n if (!message.gasUsed.isZero()) {\n writer.uint32(48).int64(message.gasUsed);\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(58).fork()).ldelim();\n }\n if (message.codespace !== \"\") {\n writer.uint32(66).string(message.codespace);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseDeliverTx);\n message.events = [];\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.code = reader.uint32();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.log = reader.string();\n break;\n case 4:\n message.info = reader.string();\n break;\n case 5:\n message.gasWanted = reader.int64();\n break;\n case 6:\n message.gasUsed = reader.int64();\n break;\n case 7:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n case 8:\n message.codespace = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseDeliverTx);\n message.code = object.code !== undefined && object.code !== null ? Number(object.code) : 0;\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.log = object.log !== undefined && object.log !== null ? String(object.log) : \"\";\n message.info = object.info !== undefined && object.info !== null ? String(object.info) : \"\";\n message.gasWanted =\n object.gas_wanted !== undefined && object.gas_wanted !== null\n ? long_1.default.fromString(object.gas_wanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gas_used !== undefined && object.gas_used !== null\n ? long_1.default.fromString(object.gas_used)\n : long_1.default.ZERO;\n message.events = ((_a = object.events) !== null && _a !== void 0 ? _a : []).map((e) => exports.Event.fromJSON(e));\n message.codespace =\n object.codespace !== undefined && object.codespace !== null ? String(object.codespace) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.code !== undefined && (obj.code = message.code);\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.log !== undefined && (obj.log = message.log);\n message.info !== undefined && (obj.info = message.info);\n message.gasWanted !== undefined && (obj.gas_wanted = (message.gasWanted || long_1.default.ZERO).toString());\n message.gasUsed !== undefined && (obj.gas_used = (message.gasUsed || long_1.default.ZERO).toString());\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n message.codespace !== undefined && (obj.codespace = message.codespace);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f;\n const message = Object.assign({}, baseResponseDeliverTx);\n message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.log = (_c = object.log) !== null && _c !== void 0 ? _c : \"\";\n message.info = (_d = object.info) !== null && _d !== void 0 ? _d : \"\";\n message.gasWanted =\n object.gasWanted !== undefined && object.gasWanted !== null\n ? long_1.default.fromValue(object.gasWanted)\n : long_1.default.ZERO;\n message.gasUsed =\n object.gasUsed !== undefined && object.gasUsed !== null ? long_1.default.fromValue(object.gasUsed) : long_1.default.ZERO;\n message.events = ((_e = object.events) === null || _e === void 0 ? void 0 : _e.map((e) => exports.Event.fromPartial(e))) || [];\n message.codespace = (_f = object.codespace) !== null && _f !== void 0 ? _f : \"\";\n return message;\n },\n};\nconst baseResponseEndBlock = {};\nexports.ResponseEndBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validatorUpdates) {\n exports.ValidatorUpdate.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.consensusParamUpdates !== undefined) {\n exports.ConsensusParams.encode(message.consensusParamUpdates, writer.uint32(18).fork()).ldelim();\n }\n for (const v of message.events) {\n exports.Event.encode(v, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = [];\n message.events = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validatorUpdates.push(exports.ValidatorUpdate.decode(reader, reader.uint32()));\n break;\n case 2:\n message.consensusParamUpdates = exports.ConsensusParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.events.push(exports.Event.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = ((_a = object.validatorUpdates) !== null && _a !== void 0 ? _a : []).map((e) => exports.ValidatorUpdate.fromJSON(e));\n message.consensusParamUpdates =\n object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null\n ? exports.ConsensusParams.fromJSON(object.consensusParamUpdates)\n : undefined;\n message.events = ((_b = object.events) !== null && _b !== void 0 ? _b : []).map((e) => exports.Event.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validatorUpdates) {\n obj.validatorUpdates = message.validatorUpdates.map((e) => (e ? exports.ValidatorUpdate.toJSON(e) : undefined));\n }\n else {\n obj.validatorUpdates = [];\n }\n message.consensusParamUpdates !== undefined &&\n (obj.consensusParamUpdates = message.consensusParamUpdates\n ? exports.ConsensusParams.toJSON(message.consensusParamUpdates)\n : undefined);\n if (message.events) {\n obj.events = message.events.map((e) => (e ? exports.Event.toJSON(e) : undefined));\n }\n else {\n obj.events = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseResponseEndBlock);\n message.validatorUpdates = ((_a = object.validatorUpdates) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ValidatorUpdate.fromPartial(e))) || [];\n message.consensusParamUpdates =\n object.consensusParamUpdates !== undefined && object.consensusParamUpdates !== null\n ? exports.ConsensusParams.fromPartial(object.consensusParamUpdates)\n : undefined;\n message.events = ((_b = object.events) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Event.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseResponseCommit = { retainHeight: long_1.default.ZERO };\nexports.ResponseCommit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (!message.retainHeight.isZero()) {\n writer.uint32(24).int64(message.retainHeight);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseCommit);\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.retainHeight = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseCommit);\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.retainHeight =\n object.retainHeight !== undefined && object.retainHeight !== null\n ? long_1.default.fromString(object.retainHeight)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.retainHeight !== undefined && (obj.retainHeight = (message.retainHeight || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseCommit);\n message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.retainHeight =\n object.retainHeight !== undefined && object.retainHeight !== null\n ? long_1.default.fromValue(object.retainHeight)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseResponseListSnapshots = {};\nexports.ResponseListSnapshots = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.snapshots) {\n exports.Snapshot.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.snapshots.push(exports.Snapshot.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = ((_a = object.snapshots) !== null && _a !== void 0 ? _a : []).map((e) => exports.Snapshot.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.snapshots) {\n obj.snapshots = message.snapshots.map((e) => (e ? exports.Snapshot.toJSON(e) : undefined));\n }\n else {\n obj.snapshots = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseListSnapshots);\n message.snapshots = ((_a = object.snapshots) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Snapshot.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseResponseOfferSnapshot = { result: 0 };\nexports.ResponseOfferSnapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseOfferSnapshot);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseOfferSnapshot);\n message.result =\n object.result !== undefined && object.result !== null\n ? responseOfferSnapshot_ResultFromJSON(object.result)\n : 0;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseOfferSnapshot_ResultToJSON(message.result));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseOfferSnapshot);\n message.result = (_a = object.result) !== null && _a !== void 0 ? _a : 0;\n return message;\n },\n};\nconst baseResponseLoadSnapshotChunk = {};\nexports.ResponseLoadSnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.chunk.length !== 0) {\n writer.uint32(10).bytes(message.chunk);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.chunk = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk =\n object.chunk !== undefined && object.chunk !== null ? bytesFromBase64(object.chunk) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.chunk !== undefined &&\n (obj.chunk = base64FromBytes(message.chunk !== undefined ? message.chunk : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseResponseLoadSnapshotChunk);\n message.chunk = (_a = object.chunk) !== null && _a !== void 0 ? _a : new Uint8Array();\n return message;\n },\n};\nconst baseResponseApplySnapshotChunk = { result: 0, refetchChunks: 0, rejectSenders: \"\" };\nexports.ResponseApplySnapshotChunk = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.result !== 0) {\n writer.uint32(8).int32(message.result);\n }\n writer.uint32(18).fork();\n for (const v of message.refetchChunks) {\n writer.uint32(v);\n }\n writer.ldelim();\n for (const v of message.rejectSenders) {\n writer.uint32(26).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.refetchChunks = [];\n message.rejectSenders = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.result = reader.int32();\n break;\n case 2:\n if ((tag & 7) === 2) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.refetchChunks.push(reader.uint32());\n }\n }\n else {\n message.refetchChunks.push(reader.uint32());\n }\n break;\n case 3:\n message.rejectSenders.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a, _b;\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.result =\n object.result !== undefined && object.result !== null\n ? responseApplySnapshotChunk_ResultFromJSON(object.result)\n : 0;\n message.refetchChunks = ((_a = object.refetchChunks) !== null && _a !== void 0 ? _a : []).map((e) => Number(e));\n message.rejectSenders = ((_b = object.rejectSenders) !== null && _b !== void 0 ? _b : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.result !== undefined && (obj.result = responseApplySnapshotChunk_ResultToJSON(message.result));\n if (message.refetchChunks) {\n obj.refetchChunks = message.refetchChunks.map((e) => e);\n }\n else {\n obj.refetchChunks = [];\n }\n if (message.rejectSenders) {\n obj.rejectSenders = message.rejectSenders.map((e) => e);\n }\n else {\n obj.rejectSenders = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseResponseApplySnapshotChunk);\n message.result = (_a = object.result) !== null && _a !== void 0 ? _a : 0;\n message.refetchChunks = ((_b = object.refetchChunks) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n message.rejectSenders = ((_c = object.rejectSenders) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];\n return message;\n },\n};\nconst baseConsensusParams = {};\nexports.ConsensusParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n params_1.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n params_1.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n params_1.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = params_1.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = params_1.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = params_1.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusParams);\n message.block =\n object.block !== undefined && object.block !== null ? exports.BlockParams.fromJSON(object.block) : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? params_1.EvidenceParams.fromJSON(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? params_1.ValidatorParams.fromJSON(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? params_1.VersionParams.fromJSON(object.version)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? params_1.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? params_1.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? params_1.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusParams);\n message.block =\n object.block !== undefined && object.block !== null ? exports.BlockParams.fromPartial(object.block) : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? params_1.EvidenceParams.fromPartial(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? params_1.ValidatorParams.fromPartial(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? params_1.VersionParams.fromPartial(object.version)\n : undefined;\n return message;\n },\n};\nconst baseBlockParams = { maxBytes: long_1.default.ZERO, maxGas: long_1.default.ZERO };\nexports.BlockParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxBytes.isZero()) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (!message.maxGas.isZero()) {\n writer.uint32(16).int64(message.maxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockParams);\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null\n ? long_1.default.fromString(object.maxBytes)\n : long_1.default.ZERO;\n message.maxGas =\n object.maxGas !== undefined && object.maxGas !== null ? long_1.default.fromString(object.maxGas) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockParams);\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null ? long_1.default.fromValue(object.maxBytes) : long_1.default.ZERO;\n message.maxGas =\n object.maxGas !== undefined && object.maxGas !== null ? long_1.default.fromValue(object.maxGas) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseLastCommitInfo = { round: 0 };\nexports.LastCommitInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.round !== 0) {\n writer.uint32(8).int32(message.round);\n }\n for (const v of message.votes) {\n exports.VoteInfo.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLastCommitInfo);\n message.votes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.round = reader.int32();\n break;\n case 2:\n message.votes.push(exports.VoteInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseLastCommitInfo);\n message.round = object.round !== undefined && object.round !== null ? Number(object.round) : 0;\n message.votes = ((_a = object.votes) !== null && _a !== void 0 ? _a : []).map((e) => exports.VoteInfo.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.round !== undefined && (obj.round = message.round);\n if (message.votes) {\n obj.votes = message.votes.map((e) => (e ? exports.VoteInfo.toJSON(e) : undefined));\n }\n else {\n obj.votes = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseLastCommitInfo);\n message.round = (_a = object.round) !== null && _a !== void 0 ? _a : 0;\n message.votes = ((_b = object.votes) === null || _b === void 0 ? void 0 : _b.map((e) => exports.VoteInfo.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseEvent = { type: \"\" };\nexports.Event = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n for (const v of message.attributes) {\n exports.EventAttribute.encode(v, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvent);\n message.attributes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.attributes.push(exports.EventAttribute.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseEvent);\n message.type = object.type !== undefined && object.type !== null ? String(object.type) : \"\";\n message.attributes = ((_a = object.attributes) !== null && _a !== void 0 ? _a : []).map((e) => exports.EventAttribute.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n if (message.attributes) {\n obj.attributes = message.attributes.map((e) => (e ? exports.EventAttribute.toJSON(e) : undefined));\n }\n else {\n obj.attributes = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseEvent);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : \"\";\n message.attributes = ((_b = object.attributes) === null || _b === void 0 ? void 0 : _b.map((e) => exports.EventAttribute.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseEventAttribute = { index: false };\nexports.EventAttribute = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n if (message.index === true) {\n writer.uint32(24).bool(message.index);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEventAttribute);\n message.key = new Uint8Array();\n message.value = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.index = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEventAttribute);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.value =\n object.value !== undefined && object.value !== null ? bytesFromBase64(object.value) : new Uint8Array();\n message.index = object.index !== undefined && object.index !== null ? Boolean(object.index) : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.value !== undefined &&\n (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));\n message.index !== undefined && (obj.index = message.index);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseEventAttribute);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.index = (_c = object.index) !== null && _c !== void 0 ? _c : false;\n return message;\n },\n};\nconst baseTxResult = { height: long_1.default.ZERO, index: 0 };\nexports.TxResult = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.index !== 0) {\n writer.uint32(16).uint32(message.index);\n }\n if (message.tx.length !== 0) {\n writer.uint32(26).bytes(message.tx);\n }\n if (message.result !== undefined) {\n exports.ResponseDeliverTx.encode(message.result, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxResult);\n message.tx = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 3:\n message.tx = reader.bytes();\n break;\n case 4:\n message.result = exports.ResponseDeliverTx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxResult);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.index = object.index !== undefined && object.index !== null ? Number(object.index) : 0;\n message.tx =\n object.tx !== undefined && object.tx !== null ? bytesFromBase64(object.tx) : new Uint8Array();\n message.result =\n object.result !== undefined && object.result !== null\n ? exports.ResponseDeliverTx.fromJSON(object.result)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.index !== undefined && (obj.index = message.index);\n message.tx !== undefined &&\n (obj.tx = base64FromBytes(message.tx !== undefined ? message.tx : new Uint8Array()));\n message.result !== undefined &&\n (obj.result = message.result ? exports.ResponseDeliverTx.toJSON(message.result) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseTxResult);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0;\n message.tx = (_b = object.tx) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.result =\n object.result !== undefined && object.result !== null\n ? exports.ResponseDeliverTx.fromPartial(object.result)\n : undefined;\n return message;\n },\n};\nconst baseValidator = { power: long_1.default.ZERO };\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (!message.power.isZero()) {\n writer.uint32(24).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 3:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.address =\n object.address !== undefined && object.address !== null\n ? bytesFromBase64(object.address)\n : new Uint8Array();\n message.power =\n object.power !== undefined && object.power !== null ? long_1.default.fromString(object.power) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));\n message.power !== undefined && (obj.power = (message.power || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidator);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.power =\n object.power !== undefined && object.power !== null ? long_1.default.fromValue(object.power) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseValidatorUpdate = { power: long_1.default.ZERO };\nexports.ValidatorUpdate = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (!message.power.isZero()) {\n writer.uint32(16).int64(message.power);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorUpdate);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.power = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidatorUpdate);\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined;\n message.power =\n object.power !== undefined && object.power !== null ? long_1.default.fromString(object.power) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.power !== undefined && (obj.power = (message.power || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseValidatorUpdate);\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null\n ? keys_1.PublicKey.fromPartial(object.pubKey)\n : undefined;\n message.power =\n object.power !== undefined && object.power !== null ? long_1.default.fromValue(object.power) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseVoteInfo = { signedLastBlock: false };\nexports.VoteInfo = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(10).fork()).ldelim();\n }\n if (message.signedLastBlock === true) {\n writer.uint32(16).bool(message.signedLastBlock);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVoteInfo);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 2:\n message.signedLastBlock = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVoteInfo);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.Validator.fromJSON(object.validator)\n : undefined;\n message.signedLastBlock =\n object.signedLastBlock !== undefined && object.signedLastBlock !== null\n ? Boolean(object.signedLastBlock)\n : false;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.signedLastBlock !== undefined && (obj.signedLastBlock = message.signedLastBlock);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseVoteInfo);\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.Validator.fromPartial(object.validator)\n : undefined;\n message.signedLastBlock = (_a = object.signedLastBlock) !== null && _a !== void 0 ? _a : false;\n return message;\n },\n};\nconst baseEvidence = { type: 0, height: long_1.default.ZERO, totalVotingPower: long_1.default.ZERO };\nexports.Evidence = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.validator !== undefined) {\n exports.Validator.encode(message.validator, writer.uint32(18).fork()).ldelim();\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (!message.totalVotingPower.isZero()) {\n writer.uint32(40).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvidence);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.validator = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvidence);\n message.type = object.type !== undefined && object.type !== null ? evidenceTypeFromJSON(object.type) : 0;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.Validator.fromJSON(object.validator)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.time =\n object.time !== undefined && object.time !== null ? fromJsonTimestamp(object.time) : undefined;\n message.totalVotingPower =\n object.totalVotingPower !== undefined && object.totalVotingPower !== null\n ? long_1.default.fromString(object.totalVotingPower)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = evidenceTypeToJSON(message.type));\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.Validator.toJSON(message.validator) : undefined);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.time !== undefined && (obj.time = fromTimestamp(message.time).toISOString());\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseEvidence);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.Validator.fromPartial(object.validator)\n : undefined;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.time =\n object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined;\n message.totalVotingPower =\n object.totalVotingPower !== undefined && object.totalVotingPower !== null\n ? long_1.default.fromValue(object.totalVotingPower)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseSnapshot = { height: long_1.default.UZERO, format: 0, chunks: 0 };\nexports.Snapshot = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).uint64(message.height);\n }\n if (message.format !== 0) {\n writer.uint32(16).uint32(message.format);\n }\n if (message.chunks !== 0) {\n writer.uint32(24).uint32(message.chunks);\n }\n if (message.hash.length !== 0) {\n writer.uint32(34).bytes(message.hash);\n }\n if (message.metadata.length !== 0) {\n writer.uint32(42).bytes(message.metadata);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSnapshot);\n message.hash = new Uint8Array();\n message.metadata = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.uint64();\n break;\n case 2:\n message.format = reader.uint32();\n break;\n case 3:\n message.chunks = reader.uint32();\n break;\n case 4:\n message.hash = reader.bytes();\n break;\n case 5:\n message.metadata = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSnapshot);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.UZERO;\n message.format = object.format !== undefined && object.format !== null ? Number(object.format) : 0;\n message.chunks = object.chunks !== undefined && object.chunks !== null ? Number(object.chunks) : 0;\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n message.metadata =\n object.metadata !== undefined && object.metadata !== null\n ? bytesFromBase64(object.metadata)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.UZERO).toString());\n message.format !== undefined && (obj.format = message.format);\n message.chunks !== undefined && (obj.chunks = message.chunks);\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.metadata !== undefined &&\n (obj.metadata = base64FromBytes(message.metadata !== undefined ? message.metadata : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseSnapshot);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.UZERO;\n message.format = (_a = object.format) !== null && _a !== void 0 ? _a : 0;\n message.chunks = (_b = object.chunks) !== null && _b !== void 0 ? _b : 0;\n message.hash = (_c = object.hash) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.metadata = (_d = object.metadata) !== null && _d !== void 0 ? _d : new Uint8Array();\n return message;\n },\n};\nclass ABCIApplicationClientImpl {\n constructor(rpc) {\n this.rpc = rpc;\n this.Echo = this.Echo.bind(this);\n this.Flush = this.Flush.bind(this);\n this.Info = this.Info.bind(this);\n this.SetOption = this.SetOption.bind(this);\n this.DeliverTx = this.DeliverTx.bind(this);\n this.CheckTx = this.CheckTx.bind(this);\n this.Query = this.Query.bind(this);\n this.Commit = this.Commit.bind(this);\n this.InitChain = this.InitChain.bind(this);\n this.BeginBlock = this.BeginBlock.bind(this);\n this.EndBlock = this.EndBlock.bind(this);\n this.ListSnapshots = this.ListSnapshots.bind(this);\n this.OfferSnapshot = this.OfferSnapshot.bind(this);\n this.LoadSnapshotChunk = this.LoadSnapshotChunk.bind(this);\n this.ApplySnapshotChunk = this.ApplySnapshotChunk.bind(this);\n }\n Echo(request) {\n const data = exports.RequestEcho.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Echo\", data);\n return promise.then((data) => exports.ResponseEcho.decode(new minimal_1.default.Reader(data)));\n }\n Flush(request) {\n const data = exports.RequestFlush.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Flush\", data);\n return promise.then((data) => exports.ResponseFlush.decode(new minimal_1.default.Reader(data)));\n }\n Info(request) {\n const data = exports.RequestInfo.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Info\", data);\n return promise.then((data) => exports.ResponseInfo.decode(new minimal_1.default.Reader(data)));\n }\n SetOption(request) {\n const data = exports.RequestSetOption.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"SetOption\", data);\n return promise.then((data) => exports.ResponseSetOption.decode(new minimal_1.default.Reader(data)));\n }\n DeliverTx(request) {\n const data = exports.RequestDeliverTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"DeliverTx\", data);\n return promise.then((data) => exports.ResponseDeliverTx.decode(new minimal_1.default.Reader(data)));\n }\n CheckTx(request) {\n const data = exports.RequestCheckTx.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"CheckTx\", data);\n return promise.then((data) => exports.ResponseCheckTx.decode(new minimal_1.default.Reader(data)));\n }\n Query(request) {\n const data = exports.RequestQuery.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Query\", data);\n return promise.then((data) => exports.ResponseQuery.decode(new minimal_1.default.Reader(data)));\n }\n Commit(request) {\n const data = exports.RequestCommit.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"Commit\", data);\n return promise.then((data) => exports.ResponseCommit.decode(new minimal_1.default.Reader(data)));\n }\n InitChain(request) {\n const data = exports.RequestInitChain.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"InitChain\", data);\n return promise.then((data) => exports.ResponseInitChain.decode(new minimal_1.default.Reader(data)));\n }\n BeginBlock(request) {\n const data = exports.RequestBeginBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"BeginBlock\", data);\n return promise.then((data) => exports.ResponseBeginBlock.decode(new minimal_1.default.Reader(data)));\n }\n EndBlock(request) {\n const data = exports.RequestEndBlock.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"EndBlock\", data);\n return promise.then((data) => exports.ResponseEndBlock.decode(new minimal_1.default.Reader(data)));\n }\n ListSnapshots(request) {\n const data = exports.RequestListSnapshots.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ListSnapshots\", data);\n return promise.then((data) => exports.ResponseListSnapshots.decode(new minimal_1.default.Reader(data)));\n }\n OfferSnapshot(request) {\n const data = exports.RequestOfferSnapshot.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"OfferSnapshot\", data);\n return promise.then((data) => exports.ResponseOfferSnapshot.decode(new minimal_1.default.Reader(data)));\n }\n LoadSnapshotChunk(request) {\n const data = exports.RequestLoadSnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"LoadSnapshotChunk\", data);\n return promise.then((data) => exports.ResponseLoadSnapshotChunk.decode(new minimal_1.default.Reader(data)));\n }\n ApplySnapshotChunk(request) {\n const data = exports.RequestApplySnapshotChunk.encode(request).finish();\n const promise = this.rpc.request(\"tendermint.abci.ABCIApplication\", \"ApplySnapshotChunk\", data);\n return promise.then((data) => exports.ResponseApplySnapshotChunk.decode(new minimal_1.default.Reader(data)));\n }\n}\nexports.ABCIApplicationClientImpl = ABCIApplicationClientImpl;\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.crypto\";\nconst basePublicKey = {};\nexports.PublicKey = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.ed25519 !== undefined) {\n writer.uint32(10).bytes(message.ed25519);\n }\n if (message.secp256k1 !== undefined) {\n writer.uint32(18).bytes(message.secp256k1);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePublicKey);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ed25519 = reader.bytes();\n break;\n case 2:\n message.secp256k1 = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePublicKey);\n message.ed25519 =\n object.ed25519 !== undefined && object.ed25519 !== null ? bytesFromBase64(object.ed25519) : undefined;\n message.secp256k1 =\n object.secp256k1 !== undefined && object.secp256k1 !== null\n ? bytesFromBase64(object.secp256k1)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.ed25519 !== undefined &&\n (obj.ed25519 = message.ed25519 !== undefined ? base64FromBytes(message.ed25519) : undefined);\n message.secp256k1 !== undefined &&\n (obj.secp256k1 = message.secp256k1 !== undefined ? base64FromBytes(message.secp256k1) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, basePublicKey);\n message.ed25519 = (_a = object.ed25519) !== null && _a !== void 0 ? _a : undefined;\n message.secp256k1 = (_b = object.secp256k1) !== null && _b !== void 0 ? _b : undefined;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=keys.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProofOps = exports.ProofOp = exports.DominoOp = exports.ValueOp = exports.Proof = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.crypto\";\nconst baseProof = { total: long_1.default.ZERO, index: long_1.default.ZERO };\nexports.Proof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.total.isZero()) {\n writer.uint32(8).int64(message.total);\n }\n if (!message.index.isZero()) {\n writer.uint32(16).int64(message.index);\n }\n if (message.leafHash.length !== 0) {\n writer.uint32(26).bytes(message.leafHash);\n }\n for (const v of message.aunts) {\n writer.uint32(34).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProof);\n message.aunts = [];\n message.leafHash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.int64();\n break;\n case 2:\n message.index = reader.int64();\n break;\n case 3:\n message.leafHash = reader.bytes();\n break;\n case 4:\n message.aunts.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseProof);\n message.total =\n object.total !== undefined && object.total !== null ? long_1.default.fromString(object.total) : long_1.default.ZERO;\n message.index =\n object.index !== undefined && object.index !== null ? long_1.default.fromString(object.index) : long_1.default.ZERO;\n message.leafHash =\n object.leafHash !== undefined && object.leafHash !== null\n ? bytesFromBase64(object.leafHash)\n : new Uint8Array();\n message.aunts = ((_a = object.aunts) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = (message.total || long_1.default.ZERO).toString());\n message.index !== undefined && (obj.index = (message.index || long_1.default.ZERO).toString());\n message.leafHash !== undefined &&\n (obj.leafHash = base64FromBytes(message.leafHash !== undefined ? message.leafHash : new Uint8Array()));\n if (message.aunts) {\n obj.aunts = message.aunts.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.aunts = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseProof);\n message.total =\n object.total !== undefined && object.total !== null ? long_1.default.fromValue(object.total) : long_1.default.ZERO;\n message.index =\n object.index !== undefined && object.index !== null ? long_1.default.fromValue(object.index) : long_1.default.ZERO;\n message.leafHash = (_a = object.leafHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.aunts = ((_b = object.aunts) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];\n return message;\n },\n};\nconst baseValueOp = {};\nexports.ValueOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key.length !== 0) {\n writer.uint32(10).bytes(message.key);\n }\n if (message.proof !== undefined) {\n exports.Proof.encode(message.proof, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValueOp);\n message.key = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.proof = exports.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValueOp);\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? exports.Proof.fromJSON(object.proof) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? exports.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValueOp);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? exports.Proof.fromPartial(object.proof) : undefined;\n return message;\n },\n};\nconst baseDominoOp = { key: \"\", input: \"\", output: \"\" };\nexports.DominoOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.input !== \"\") {\n writer.uint32(18).string(message.input);\n }\n if (message.output !== \"\") {\n writer.uint32(26).string(message.output);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseDominoOp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n case 2:\n message.input = reader.string();\n break;\n case 3:\n message.output = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseDominoOp);\n message.key = object.key !== undefined && object.key !== null ? String(object.key) : \"\";\n message.input = object.input !== undefined && object.input !== null ? String(object.input) : \"\";\n message.output = object.output !== undefined && object.output !== null ? String(object.output) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.key !== undefined && (obj.key = message.key);\n message.input !== undefined && (obj.input = message.input);\n message.output !== undefined && (obj.output = message.output);\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseDominoOp);\n message.key = (_a = object.key) !== null && _a !== void 0 ? _a : \"\";\n message.input = (_b = object.input) !== null && _b !== void 0 ? _b : \"\";\n message.output = (_c = object.output) !== null && _c !== void 0 ? _c : \"\";\n return message;\n },\n};\nconst baseProofOp = { type: \"\" };\nexports.ProofOp = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n if (message.key.length !== 0) {\n writer.uint32(18).bytes(message.key);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofOp);\n message.key = new Uint8Array();\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.key = reader.bytes();\n break;\n case 3:\n message.data = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProofOp);\n message.type = object.type !== undefined && object.type !== null ? String(object.type) : \"\";\n message.key =\n object.key !== undefined && object.key !== null ? bytesFromBase64(object.key) : new Uint8Array();\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = message.type);\n message.key !== undefined &&\n (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseProofOp);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : \"\";\n message.key = (_b = object.key) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.data = (_c = object.data) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseProofOps = {};\nexports.ProofOps = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.ops) {\n exports.ProofOp.encode(v, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProofOps);\n message.ops = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ops.push(exports.ProofOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseProofOps);\n message.ops = ((_a = object.ops) !== null && _a !== void 0 ? _a : []).map((e) => exports.ProofOp.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.ops) {\n obj.ops = message.ops.map((e) => (e ? exports.ProofOp.toJSON(e) : undefined));\n }\n else {\n obj.ops = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseProofOps);\n message.ops = ((_a = object.ops) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ProofOp.fromPartial(e))) || [];\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=proof.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashedParams = exports.VersionParams = exports.ValidatorParams = exports.EvidenceParams = exports.BlockParams = exports.ConsensusParams = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst duration_1 = require(\"../../google/protobuf/duration\");\nexports.protobufPackage = \"tendermint.types\";\nconst baseConsensusParams = {};\nexports.ConsensusParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.block !== undefined) {\n exports.BlockParams.encode(message.block, writer.uint32(10).fork()).ldelim();\n }\n if (message.evidence !== undefined) {\n exports.EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).ldelim();\n }\n if (message.validator !== undefined) {\n exports.ValidatorParams.encode(message.validator, writer.uint32(26).fork()).ldelim();\n }\n if (message.version !== undefined) {\n exports.VersionParams.encode(message.version, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensusParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = exports.BlockParams.decode(reader, reader.uint32());\n break;\n case 2:\n message.evidence = exports.EvidenceParams.decode(reader, reader.uint32());\n break;\n case 3:\n message.validator = exports.ValidatorParams.decode(reader, reader.uint32());\n break;\n case 4:\n message.version = exports.VersionParams.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensusParams);\n message.block =\n object.block !== undefined && object.block !== null ? exports.BlockParams.fromJSON(object.block) : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? exports.EvidenceParams.fromJSON(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.ValidatorParams.fromJSON(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? exports.VersionParams.fromJSON(object.version)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined &&\n (obj.block = message.block ? exports.BlockParams.toJSON(message.block) : undefined);\n message.evidence !== undefined &&\n (obj.evidence = message.evidence ? exports.EvidenceParams.toJSON(message.evidence) : undefined);\n message.validator !== undefined &&\n (obj.validator = message.validator ? exports.ValidatorParams.toJSON(message.validator) : undefined);\n message.version !== undefined &&\n (obj.version = message.version ? exports.VersionParams.toJSON(message.version) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensusParams);\n message.block =\n object.block !== undefined && object.block !== null ? exports.BlockParams.fromPartial(object.block) : undefined;\n message.evidence =\n object.evidence !== undefined && object.evidence !== null\n ? exports.EvidenceParams.fromPartial(object.evidence)\n : undefined;\n message.validator =\n object.validator !== undefined && object.validator !== null\n ? exports.ValidatorParams.fromPartial(object.validator)\n : undefined;\n message.version =\n object.version !== undefined && object.version !== null\n ? exports.VersionParams.fromPartial(object.version)\n : undefined;\n return message;\n },\n};\nconst baseBlockParams = { maxBytes: long_1.default.ZERO, maxGas: long_1.default.ZERO, timeIotaMs: long_1.default.ZERO };\nexports.BlockParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxBytes.isZero()) {\n writer.uint32(8).int64(message.maxBytes);\n }\n if (!message.maxGas.isZero()) {\n writer.uint32(16).int64(message.maxGas);\n }\n if (!message.timeIotaMs.isZero()) {\n writer.uint32(24).int64(message.timeIotaMs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxBytes = reader.int64();\n break;\n case 2:\n message.maxGas = reader.int64();\n break;\n case 3:\n message.timeIotaMs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockParams);\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null\n ? long_1.default.fromString(object.maxBytes)\n : long_1.default.ZERO;\n message.maxGas =\n object.maxGas !== undefined && object.maxGas !== null ? long_1.default.fromString(object.maxGas) : long_1.default.ZERO;\n message.timeIotaMs =\n object.timeIotaMs !== undefined && object.timeIotaMs !== null\n ? long_1.default.fromString(object.timeIotaMs)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n message.maxGas !== undefined && (obj.maxGas = (message.maxGas || long_1.default.ZERO).toString());\n message.timeIotaMs !== undefined && (obj.timeIotaMs = (message.timeIotaMs || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockParams);\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null ? long_1.default.fromValue(object.maxBytes) : long_1.default.ZERO;\n message.maxGas =\n object.maxGas !== undefined && object.maxGas !== null ? long_1.default.fromValue(object.maxGas) : long_1.default.ZERO;\n message.timeIotaMs =\n object.timeIotaMs !== undefined && object.timeIotaMs !== null\n ? long_1.default.fromValue(object.timeIotaMs)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseEvidenceParams = { maxAgeNumBlocks: long_1.default.ZERO, maxBytes: long_1.default.ZERO };\nexports.EvidenceParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.maxAgeNumBlocks.isZero()) {\n writer.uint32(8).int64(message.maxAgeNumBlocks);\n }\n if (message.maxAgeDuration !== undefined) {\n duration_1.Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).ldelim();\n }\n if (!message.maxBytes.isZero()) {\n writer.uint32(24).int64(message.maxBytes);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseEvidenceParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxAgeNumBlocks = reader.int64();\n break;\n case 2:\n message.maxAgeDuration = duration_1.Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxBytes = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseEvidenceParams);\n message.maxAgeNumBlocks =\n object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null\n ? long_1.default.fromString(object.maxAgeNumBlocks)\n : long_1.default.ZERO;\n message.maxAgeDuration =\n object.maxAgeDuration !== undefined && object.maxAgeDuration !== null\n ? duration_1.Duration.fromJSON(object.maxAgeDuration)\n : undefined;\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null\n ? long_1.default.fromString(object.maxBytes)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.maxAgeNumBlocks !== undefined &&\n (obj.maxAgeNumBlocks = (message.maxAgeNumBlocks || long_1.default.ZERO).toString());\n message.maxAgeDuration !== undefined &&\n (obj.maxAgeDuration = message.maxAgeDuration ? duration_1.Duration.toJSON(message.maxAgeDuration) : undefined);\n message.maxBytes !== undefined && (obj.maxBytes = (message.maxBytes || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseEvidenceParams);\n message.maxAgeNumBlocks =\n object.maxAgeNumBlocks !== undefined && object.maxAgeNumBlocks !== null\n ? long_1.default.fromValue(object.maxAgeNumBlocks)\n : long_1.default.ZERO;\n message.maxAgeDuration =\n object.maxAgeDuration !== undefined && object.maxAgeDuration !== null\n ? duration_1.Duration.fromPartial(object.maxAgeDuration)\n : undefined;\n message.maxBytes =\n object.maxBytes !== undefined && object.maxBytes !== null ? long_1.default.fromValue(object.maxBytes) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseValidatorParams = { pubKeyTypes: \"\" };\nexports.ValidatorParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.pubKeyTypes) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKeyTypes.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = ((_a = object.pubKeyTypes) !== null && _a !== void 0 ? _a : []).map((e) => String(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.pubKeyTypes) {\n obj.pubKeyTypes = message.pubKeyTypes.map((e) => e);\n }\n else {\n obj.pubKeyTypes = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorParams);\n message.pubKeyTypes = ((_a = object.pubKeyTypes) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseVersionParams = { appVersion: long_1.default.UZERO };\nexports.VersionParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.appVersion.isZero()) {\n writer.uint32(8).uint64(message.appVersion);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVersionParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.appVersion = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVersionParams);\n message.appVersion =\n object.appVersion !== undefined && object.appVersion !== null\n ? long_1.default.fromString(object.appVersion)\n : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.appVersion !== undefined && (obj.appVersion = (message.appVersion || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseVersionParams);\n message.appVersion =\n object.appVersion !== undefined && object.appVersion !== null\n ? long_1.default.fromValue(object.appVersion)\n : long_1.default.UZERO;\n return message;\n },\n};\nconst baseHashedParams = { blockMaxBytes: long_1.default.ZERO, blockMaxGas: long_1.default.ZERO };\nexports.HashedParams = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.blockMaxBytes.isZero()) {\n writer.uint32(8).int64(message.blockMaxBytes);\n }\n if (!message.blockMaxGas.isZero()) {\n writer.uint32(16).int64(message.blockMaxGas);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHashedParams);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockMaxBytes = reader.int64();\n break;\n case 2:\n message.blockMaxGas = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHashedParams);\n message.blockMaxBytes =\n object.blockMaxBytes !== undefined && object.blockMaxBytes !== null\n ? long_1.default.fromString(object.blockMaxBytes)\n : long_1.default.ZERO;\n message.blockMaxGas =\n object.blockMaxGas !== undefined && object.blockMaxGas !== null\n ? long_1.default.fromString(object.blockMaxGas)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockMaxBytes !== undefined &&\n (obj.blockMaxBytes = (message.blockMaxBytes || long_1.default.ZERO).toString());\n message.blockMaxGas !== undefined && (obj.blockMaxGas = (message.blockMaxGas || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseHashedParams);\n message.blockMaxBytes =\n object.blockMaxBytes !== undefined && object.blockMaxBytes !== null\n ? long_1.default.fromValue(object.blockMaxBytes)\n : long_1.default.ZERO;\n message.blockMaxGas =\n object.blockMaxGas !== undefined && object.blockMaxGas !== null\n ? long_1.default.fromValue(object.blockMaxGas)\n : long_1.default.ZERO;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=params.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TxProof = exports.BlockMeta = exports.LightBlock = exports.SignedHeader = exports.Proposal = exports.CommitSig = exports.Commit = exports.Vote = exports.Data = exports.Header = exports.BlockID = exports.Part = exports.PartSetHeader = exports.signedMsgTypeToJSON = exports.signedMsgTypeFromJSON = exports.SignedMsgType = exports.blockIDFlagToJSON = exports.blockIDFlagFromJSON = exports.BlockIDFlag = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst proof_1 = require(\"../../tendermint/crypto/proof\");\nconst types_1 = require(\"../../tendermint/version/types\");\nconst timestamp_1 = require(\"../../google/protobuf/timestamp\");\nconst validator_1 = require(\"../../tendermint/types/validator\");\nexports.protobufPackage = \"tendermint.types\";\n/** BlockIdFlag indicates which BlcokID the signature is for */\nvar BlockIDFlag;\n(function (BlockIDFlag) {\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_UNKNOWN\"] = 0] = \"BLOCK_ID_FLAG_UNKNOWN\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_ABSENT\"] = 1] = \"BLOCK_ID_FLAG_ABSENT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_COMMIT\"] = 2] = \"BLOCK_ID_FLAG_COMMIT\";\n BlockIDFlag[BlockIDFlag[\"BLOCK_ID_FLAG_NIL\"] = 3] = \"BLOCK_ID_FLAG_NIL\";\n BlockIDFlag[BlockIDFlag[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(BlockIDFlag = exports.BlockIDFlag || (exports.BlockIDFlag = {}));\nfunction blockIDFlagFromJSON(object) {\n switch (object) {\n case 0:\n case \"BLOCK_ID_FLAG_UNKNOWN\":\n return BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN;\n case 1:\n case \"BLOCK_ID_FLAG_ABSENT\":\n return BlockIDFlag.BLOCK_ID_FLAG_ABSENT;\n case 2:\n case \"BLOCK_ID_FLAG_COMMIT\":\n return BlockIDFlag.BLOCK_ID_FLAG_COMMIT;\n case 3:\n case \"BLOCK_ID_FLAG_NIL\":\n return BlockIDFlag.BLOCK_ID_FLAG_NIL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return BlockIDFlag.UNRECOGNIZED;\n }\n}\nexports.blockIDFlagFromJSON = blockIDFlagFromJSON;\nfunction blockIDFlagToJSON(object) {\n switch (object) {\n case BlockIDFlag.BLOCK_ID_FLAG_UNKNOWN:\n return \"BLOCK_ID_FLAG_UNKNOWN\";\n case BlockIDFlag.BLOCK_ID_FLAG_ABSENT:\n return \"BLOCK_ID_FLAG_ABSENT\";\n case BlockIDFlag.BLOCK_ID_FLAG_COMMIT:\n return \"BLOCK_ID_FLAG_COMMIT\";\n case BlockIDFlag.BLOCK_ID_FLAG_NIL:\n return \"BLOCK_ID_FLAG_NIL\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.blockIDFlagToJSON = blockIDFlagToJSON;\n/** SignedMsgType is a type of signed message in the consensus. */\nvar SignedMsgType;\n(function (SignedMsgType) {\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_UNKNOWN\"] = 0] = \"SIGNED_MSG_TYPE_UNKNOWN\";\n /** SIGNED_MSG_TYPE_PREVOTE - Votes */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PREVOTE\"] = 1] = \"SIGNED_MSG_TYPE_PREVOTE\";\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PRECOMMIT\"] = 2] = \"SIGNED_MSG_TYPE_PRECOMMIT\";\n /** SIGNED_MSG_TYPE_PROPOSAL - Proposals */\n SignedMsgType[SignedMsgType[\"SIGNED_MSG_TYPE_PROPOSAL\"] = 32] = \"SIGNED_MSG_TYPE_PROPOSAL\";\n SignedMsgType[SignedMsgType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(SignedMsgType = exports.SignedMsgType || (exports.SignedMsgType = {}));\nfunction signedMsgTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"SIGNED_MSG_TYPE_UNKNOWN\":\n return SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN;\n case 1:\n case \"SIGNED_MSG_TYPE_PREVOTE\":\n return SignedMsgType.SIGNED_MSG_TYPE_PREVOTE;\n case 2:\n case \"SIGNED_MSG_TYPE_PRECOMMIT\":\n return SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT;\n case 32:\n case \"SIGNED_MSG_TYPE_PROPOSAL\":\n return SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return SignedMsgType.UNRECOGNIZED;\n }\n}\nexports.signedMsgTypeFromJSON = signedMsgTypeFromJSON;\nfunction signedMsgTypeToJSON(object) {\n switch (object) {\n case SignedMsgType.SIGNED_MSG_TYPE_UNKNOWN:\n return \"SIGNED_MSG_TYPE_UNKNOWN\";\n case SignedMsgType.SIGNED_MSG_TYPE_PREVOTE:\n return \"SIGNED_MSG_TYPE_PREVOTE\";\n case SignedMsgType.SIGNED_MSG_TYPE_PRECOMMIT:\n return \"SIGNED_MSG_TYPE_PRECOMMIT\";\n case SignedMsgType.SIGNED_MSG_TYPE_PROPOSAL:\n return \"SIGNED_MSG_TYPE_PROPOSAL\";\n default:\n return \"UNKNOWN\";\n }\n}\nexports.signedMsgTypeToJSON = signedMsgTypeToJSON;\nconst basePartSetHeader = { total: 0 };\nexports.PartSetHeader = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.total !== 0) {\n writer.uint32(8).uint32(message.total);\n }\n if (message.hash.length !== 0) {\n writer.uint32(18).bytes(message.hash);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePartSetHeader);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = reader.uint32();\n break;\n case 2:\n message.hash = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePartSetHeader);\n message.total = object.total !== undefined && object.total !== null ? Number(object.total) : 0;\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.total !== undefined && (obj.total = message.total);\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, basePartSetHeader);\n message.total = (_a = object.total) !== null && _a !== void 0 ? _a : 0;\n message.hash = (_b = object.hash) !== null && _b !== void 0 ? _b : new Uint8Array();\n return message;\n },\n};\nconst basePart = { index: 0 };\nexports.Part = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.index !== 0) {\n writer.uint32(8).uint32(message.index);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, basePart);\n message.bytes = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.index = reader.uint32();\n break;\n case 2:\n message.bytes = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, basePart);\n message.index = object.index !== undefined && object.index !== null ? Number(object.index) : 0;\n message.bytes =\n object.bytes !== undefined && object.bytes !== null ? bytesFromBase64(object.bytes) : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromJSON(object.proof) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.index !== undefined && (obj.index = message.index);\n message.bytes !== undefined &&\n (obj.bytes = base64FromBytes(message.bytes !== undefined ? message.bytes : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, basePart);\n message.index = (_a = object.index) !== null && _a !== void 0 ? _a : 0;\n message.bytes = (_b = object.bytes) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromPartial(object.proof) : undefined;\n return message;\n },\n};\nconst baseBlockID = {};\nexports.BlockID = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.hash.length !== 0) {\n writer.uint32(10).bytes(message.hash);\n }\n if (message.partSetHeader !== undefined) {\n exports.PartSetHeader.encode(message.partSetHeader, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockID);\n message.hash = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.bytes();\n break;\n case 2:\n message.partSetHeader = exports.PartSetHeader.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockID);\n message.hash =\n object.hash !== undefined && object.hash !== null ? bytesFromBase64(object.hash) : new Uint8Array();\n message.partSetHeader =\n object.partSetHeader !== undefined && object.partSetHeader !== null\n ? exports.PartSetHeader.fromJSON(object.partSetHeader)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.hash !== undefined &&\n (obj.hash = base64FromBytes(message.hash !== undefined ? message.hash : new Uint8Array()));\n message.partSetHeader !== undefined &&\n (obj.partSetHeader = message.partSetHeader ? exports.PartSetHeader.toJSON(message.partSetHeader) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseBlockID);\n message.hash = (_a = object.hash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.partSetHeader =\n object.partSetHeader !== undefined && object.partSetHeader !== null\n ? exports.PartSetHeader.fromPartial(object.partSetHeader)\n : undefined;\n return message;\n },\n};\nconst baseHeader = { chainId: \"\", height: long_1.default.ZERO };\nexports.Header = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.version !== undefined) {\n types_1.Consensus.encode(message.version, writer.uint32(10).fork()).ldelim();\n }\n if (message.chainId !== \"\") {\n writer.uint32(18).string(message.chainId);\n }\n if (!message.height.isZero()) {\n writer.uint32(24).int64(message.height);\n }\n if (message.time !== undefined) {\n timestamp_1.Timestamp.encode(message.time, writer.uint32(34).fork()).ldelim();\n }\n if (message.lastBlockId !== undefined) {\n exports.BlockID.encode(message.lastBlockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.lastCommitHash.length !== 0) {\n writer.uint32(50).bytes(message.lastCommitHash);\n }\n if (message.dataHash.length !== 0) {\n writer.uint32(58).bytes(message.dataHash);\n }\n if (message.validatorsHash.length !== 0) {\n writer.uint32(66).bytes(message.validatorsHash);\n }\n if (message.nextValidatorsHash.length !== 0) {\n writer.uint32(74).bytes(message.nextValidatorsHash);\n }\n if (message.consensusHash.length !== 0) {\n writer.uint32(82).bytes(message.consensusHash);\n }\n if (message.appHash.length !== 0) {\n writer.uint32(90).bytes(message.appHash);\n }\n if (message.lastResultsHash.length !== 0) {\n writer.uint32(98).bytes(message.lastResultsHash);\n }\n if (message.evidenceHash.length !== 0) {\n writer.uint32(106).bytes(message.evidenceHash);\n }\n if (message.proposerAddress.length !== 0) {\n writer.uint32(114).bytes(message.proposerAddress);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseHeader);\n message.lastCommitHash = new Uint8Array();\n message.dataHash = new Uint8Array();\n message.validatorsHash = new Uint8Array();\n message.nextValidatorsHash = new Uint8Array();\n message.consensusHash = new Uint8Array();\n message.appHash = new Uint8Array();\n message.lastResultsHash = new Uint8Array();\n message.evidenceHash = new Uint8Array();\n message.proposerAddress = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.version = types_1.Consensus.decode(reader, reader.uint32());\n break;\n case 2:\n message.chainId = reader.string();\n break;\n case 3:\n message.height = reader.int64();\n break;\n case 4:\n message.time = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 5:\n message.lastBlockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.lastCommitHash = reader.bytes();\n break;\n case 7:\n message.dataHash = reader.bytes();\n break;\n case 8:\n message.validatorsHash = reader.bytes();\n break;\n case 9:\n message.nextValidatorsHash = reader.bytes();\n break;\n case 10:\n message.consensusHash = reader.bytes();\n break;\n case 11:\n message.appHash = reader.bytes();\n break;\n case 12:\n message.lastResultsHash = reader.bytes();\n break;\n case 13:\n message.evidenceHash = reader.bytes();\n break;\n case 14:\n message.proposerAddress = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseHeader);\n message.version =\n object.version !== undefined && object.version !== null\n ? types_1.Consensus.fromJSON(object.version)\n : undefined;\n message.chainId = object.chainId !== undefined && object.chainId !== null ? String(object.chainId) : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.time =\n object.time !== undefined && object.time !== null ? fromJsonTimestamp(object.time) : undefined;\n message.lastBlockId =\n object.lastBlockId !== undefined && object.lastBlockId !== null\n ? exports.BlockID.fromJSON(object.lastBlockId)\n : undefined;\n message.lastCommitHash =\n object.lastCommitHash !== undefined && object.lastCommitHash !== null\n ? bytesFromBase64(object.lastCommitHash)\n : new Uint8Array();\n message.dataHash =\n object.dataHash !== undefined && object.dataHash !== null\n ? bytesFromBase64(object.dataHash)\n : new Uint8Array();\n message.validatorsHash =\n object.validatorsHash !== undefined && object.validatorsHash !== null\n ? bytesFromBase64(object.validatorsHash)\n : new Uint8Array();\n message.nextValidatorsHash =\n object.nextValidatorsHash !== undefined && object.nextValidatorsHash !== null\n ? bytesFromBase64(object.nextValidatorsHash)\n : new Uint8Array();\n message.consensusHash =\n object.consensusHash !== undefined && object.consensusHash !== null\n ? bytesFromBase64(object.consensusHash)\n : new Uint8Array();\n message.appHash =\n object.appHash !== undefined && object.appHash !== null\n ? bytesFromBase64(object.appHash)\n : new Uint8Array();\n message.lastResultsHash =\n object.lastResultsHash !== undefined && object.lastResultsHash !== null\n ? bytesFromBase64(object.lastResultsHash)\n : new Uint8Array();\n message.evidenceHash =\n object.evidenceHash !== undefined && object.evidenceHash !== null\n ? bytesFromBase64(object.evidenceHash)\n : new Uint8Array();\n message.proposerAddress =\n object.proposerAddress !== undefined && object.proposerAddress !== null\n ? bytesFromBase64(object.proposerAddress)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.version !== undefined &&\n (obj.version = message.version ? types_1.Consensus.toJSON(message.version) : undefined);\n message.chainId !== undefined && (obj.chainId = message.chainId);\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.time !== undefined && (obj.time = fromTimestamp(message.time).toISOString());\n message.lastBlockId !== undefined &&\n (obj.lastBlockId = message.lastBlockId ? exports.BlockID.toJSON(message.lastBlockId) : undefined);\n message.lastCommitHash !== undefined &&\n (obj.lastCommitHash = base64FromBytes(message.lastCommitHash !== undefined ? message.lastCommitHash : new Uint8Array()));\n message.dataHash !== undefined &&\n (obj.dataHash = base64FromBytes(message.dataHash !== undefined ? message.dataHash : new Uint8Array()));\n message.validatorsHash !== undefined &&\n (obj.validatorsHash = base64FromBytes(message.validatorsHash !== undefined ? message.validatorsHash : new Uint8Array()));\n message.nextValidatorsHash !== undefined &&\n (obj.nextValidatorsHash = base64FromBytes(message.nextValidatorsHash !== undefined ? message.nextValidatorsHash : new Uint8Array()));\n message.consensusHash !== undefined &&\n (obj.consensusHash = base64FromBytes(message.consensusHash !== undefined ? message.consensusHash : new Uint8Array()));\n message.appHash !== undefined &&\n (obj.appHash = base64FromBytes(message.appHash !== undefined ? message.appHash : new Uint8Array()));\n message.lastResultsHash !== undefined &&\n (obj.lastResultsHash = base64FromBytes(message.lastResultsHash !== undefined ? message.lastResultsHash : new Uint8Array()));\n message.evidenceHash !== undefined &&\n (obj.evidenceHash = base64FromBytes(message.evidenceHash !== undefined ? message.evidenceHash : new Uint8Array()));\n message.proposerAddress !== undefined &&\n (obj.proposerAddress = base64FromBytes(message.proposerAddress !== undefined ? message.proposerAddress : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n const message = Object.assign({}, baseHeader);\n message.version =\n object.version !== undefined && object.version !== null\n ? types_1.Consensus.fromPartial(object.version)\n : undefined;\n message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : \"\";\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.time =\n object.time !== undefined && object.time !== null ? timestamp_1.Timestamp.fromPartial(object.time) : undefined;\n message.lastBlockId =\n object.lastBlockId !== undefined && object.lastBlockId !== null\n ? exports.BlockID.fromPartial(object.lastBlockId)\n : undefined;\n message.lastCommitHash = (_b = object.lastCommitHash) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.dataHash = (_c = object.dataHash) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.validatorsHash = (_d = object.validatorsHash) !== null && _d !== void 0 ? _d : new Uint8Array();\n message.nextValidatorsHash = (_e = object.nextValidatorsHash) !== null && _e !== void 0 ? _e : new Uint8Array();\n message.consensusHash = (_f = object.consensusHash) !== null && _f !== void 0 ? _f : new Uint8Array();\n message.appHash = (_g = object.appHash) !== null && _g !== void 0 ? _g : new Uint8Array();\n message.lastResultsHash = (_h = object.lastResultsHash) !== null && _h !== void 0 ? _h : new Uint8Array();\n message.evidenceHash = (_j = object.evidenceHash) !== null && _j !== void 0 ? _j : new Uint8Array();\n message.proposerAddress = (_k = object.proposerAddress) !== null && _k !== void 0 ? _k : new Uint8Array();\n return message;\n },\n};\nconst baseData = {};\nexports.Data = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.txs) {\n writer.uint32(10).bytes(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseData);\n message.txs = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.txs.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseData);\n message.txs = ((_a = object.txs) !== null && _a !== void 0 ? _a : []).map((e) => bytesFromBase64(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.txs) {\n obj.txs = message.txs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));\n }\n else {\n obj.txs = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseData);\n message.txs = ((_a = object.txs) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];\n return message;\n },\n};\nconst baseVote = { type: 0, height: long_1.default.ZERO, round: 0, validatorIndex: 0 };\nexports.Vote = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (!message.height.isZero()) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(34).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(42).fork()).ldelim();\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(50).bytes(message.validatorAddress);\n }\n if (message.validatorIndex !== 0) {\n writer.uint32(56).int32(message.validatorIndex);\n }\n if (message.signature.length !== 0) {\n writer.uint32(66).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseVote);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 5:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.validatorAddress = reader.bytes();\n break;\n case 7:\n message.validatorIndex = reader.int32();\n break;\n case 8:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseVote);\n message.type = object.type !== undefined && object.type !== null ? signedMsgTypeFromJSON(object.type) : 0;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.round = object.round !== undefined && object.round !== null ? Number(object.round) : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromJSON(object.blockId) : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? fromJsonTimestamp(object.timestamp)\n : undefined;\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? bytesFromBase64(object.validatorAddress)\n : new Uint8Array();\n message.validatorIndex =\n object.validatorIndex !== undefined && object.validatorIndex !== null\n ? Number(object.validatorIndex)\n : 0;\n message.signature =\n object.signature !== undefined && object.signature !== null\n ? bytesFromBase64(object.signature)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.validatorIndex !== undefined && (obj.validatorIndex = message.validatorIndex);\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d, _e;\n const message = Object.assign({}, baseVote);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.round = (_b = object.round) !== null && _b !== void 0 ? _b : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null\n ? exports.BlockID.fromPartial(object.blockId)\n : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? timestamp_1.Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.validatorAddress = (_c = object.validatorAddress) !== null && _c !== void 0 ? _c : new Uint8Array();\n message.validatorIndex = (_d = object.validatorIndex) !== null && _d !== void 0 ? _d : 0;\n message.signature = (_e = object.signature) !== null && _e !== void 0 ? _e : new Uint8Array();\n return message;\n },\n};\nconst baseCommit = { height: long_1.default.ZERO, round: 0 };\nexports.Commit = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.height.isZero()) {\n writer.uint32(8).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(16).int32(message.round);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(26).fork()).ldelim();\n }\n for (const v of message.signatures) {\n exports.CommitSig.encode(v, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommit);\n message.signatures = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.height = reader.int64();\n break;\n case 2:\n message.round = reader.int32();\n break;\n case 3:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 4:\n message.signatures.push(exports.CommitSig.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseCommit);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.round = object.round !== undefined && object.round !== null ? Number(object.round) : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromJSON(object.blockId) : undefined;\n message.signatures = ((_a = object.signatures) !== null && _a !== void 0 ? _a : []).map((e) => exports.CommitSig.fromJSON(e));\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n if (message.signatures) {\n obj.signatures = message.signatures.map((e) => (e ? exports.CommitSig.toJSON(e) : undefined));\n }\n else {\n obj.signatures = [];\n }\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseCommit);\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.round = (_a = object.round) !== null && _a !== void 0 ? _a : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null\n ? exports.BlockID.fromPartial(object.blockId)\n : undefined;\n message.signatures = ((_b = object.signatures) === null || _b === void 0 ? void 0 : _b.map((e) => exports.CommitSig.fromPartial(e))) || [];\n return message;\n },\n};\nconst baseCommitSig = { blockIdFlag: 0 };\nexports.CommitSig = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.blockIdFlag !== 0) {\n writer.uint32(8).int32(message.blockIdFlag);\n }\n if (message.validatorAddress.length !== 0) {\n writer.uint32(18).bytes(message.validatorAddress);\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(34).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseCommitSig);\n message.validatorAddress = new Uint8Array();\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockIdFlag = reader.int32();\n break;\n case 2:\n message.validatorAddress = reader.bytes();\n break;\n case 3:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 4:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseCommitSig);\n message.blockIdFlag =\n object.blockIdFlag !== undefined && object.blockIdFlag !== null\n ? blockIDFlagFromJSON(object.blockIdFlag)\n : 0;\n message.validatorAddress =\n object.validatorAddress !== undefined && object.validatorAddress !== null\n ? bytesFromBase64(object.validatorAddress)\n : new Uint8Array();\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? fromJsonTimestamp(object.timestamp)\n : undefined;\n message.signature =\n object.signature !== undefined && object.signature !== null\n ? bytesFromBase64(object.signature)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockIdFlag !== undefined && (obj.blockIdFlag = blockIDFlagToJSON(message.blockIdFlag));\n message.validatorAddress !== undefined &&\n (obj.validatorAddress = base64FromBytes(message.validatorAddress !== undefined ? message.validatorAddress : new Uint8Array()));\n message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c;\n const message = Object.assign({}, baseCommitSig);\n message.blockIdFlag = (_a = object.blockIdFlag) !== null && _a !== void 0 ? _a : 0;\n message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? timestamp_1.Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.signature = (_c = object.signature) !== null && _c !== void 0 ? _c : new Uint8Array();\n return message;\n },\n};\nconst baseProposal = { type: 0, height: long_1.default.ZERO, round: 0, polRound: 0 };\nexports.Proposal = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (!message.height.isZero()) {\n writer.uint32(16).int64(message.height);\n }\n if (message.round !== 0) {\n writer.uint32(24).int32(message.round);\n }\n if (message.polRound !== 0) {\n writer.uint32(32).int32(message.polRound);\n }\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n timestamp_1.Timestamp.encode(message.timestamp, writer.uint32(50).fork()).ldelim();\n }\n if (message.signature.length !== 0) {\n writer.uint32(58).bytes(message.signature);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseProposal);\n message.signature = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.int32();\n break;\n case 2:\n message.height = reader.int64();\n break;\n case 3:\n message.round = reader.int32();\n break;\n case 4:\n message.polRound = reader.int32();\n break;\n case 5:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 6:\n message.timestamp = timestamp_1.Timestamp.decode(reader, reader.uint32());\n break;\n case 7:\n message.signature = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseProposal);\n message.type = object.type !== undefined && object.type !== null ? signedMsgTypeFromJSON(object.type) : 0;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromString(object.height) : long_1.default.ZERO;\n message.round = object.round !== undefined && object.round !== null ? Number(object.round) : 0;\n message.polRound =\n object.polRound !== undefined && object.polRound !== null ? Number(object.polRound) : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromJSON(object.blockId) : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? fromJsonTimestamp(object.timestamp)\n : undefined;\n message.signature =\n object.signature !== undefined && object.signature !== null\n ? bytesFromBase64(object.signature)\n : new Uint8Array();\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.type !== undefined && (obj.type = signedMsgTypeToJSON(message.type));\n message.height !== undefined && (obj.height = (message.height || long_1.default.ZERO).toString());\n message.round !== undefined && (obj.round = message.round);\n message.polRound !== undefined && (obj.polRound = message.polRound);\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString());\n message.signature !== undefined &&\n (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array()));\n return obj;\n },\n fromPartial(object) {\n var _a, _b, _c, _d;\n const message = Object.assign({}, baseProposal);\n message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;\n message.height =\n object.height !== undefined && object.height !== null ? long_1.default.fromValue(object.height) : long_1.default.ZERO;\n message.round = (_b = object.round) !== null && _b !== void 0 ? _b : 0;\n message.polRound = (_c = object.polRound) !== null && _c !== void 0 ? _c : 0;\n message.blockId =\n object.blockId !== undefined && object.blockId !== null\n ? exports.BlockID.fromPartial(object.blockId)\n : undefined;\n message.timestamp =\n object.timestamp !== undefined && object.timestamp !== null\n ? timestamp_1.Timestamp.fromPartial(object.timestamp)\n : undefined;\n message.signature = (_d = object.signature) !== null && _d !== void 0 ? _d : new Uint8Array();\n return message;\n },\n};\nconst baseSignedHeader = {};\nexports.SignedHeader = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.commit !== undefined) {\n exports.Commit.encode(message.commit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSignedHeader);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 2:\n message.commit = exports.Commit.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSignedHeader);\n message.header =\n object.header !== undefined && object.header !== null ? exports.Header.fromJSON(object.header) : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null ? exports.Commit.fromJSON(object.commit) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.commit !== undefined && (obj.commit = message.commit ? exports.Commit.toJSON(message.commit) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSignedHeader);\n message.header =\n object.header !== undefined && object.header !== null ? exports.Header.fromPartial(object.header) : undefined;\n message.commit =\n object.commit !== undefined && object.commit !== null ? exports.Commit.fromPartial(object.commit) : undefined;\n return message;\n },\n};\nconst baseLightBlock = {};\nexports.LightBlock = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.signedHeader !== undefined) {\n exports.SignedHeader.encode(message.signedHeader, writer.uint32(10).fork()).ldelim();\n }\n if (message.validatorSet !== undefined) {\n validator_1.ValidatorSet.encode(message.validatorSet, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseLightBlock);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.signedHeader = exports.SignedHeader.decode(reader, reader.uint32());\n break;\n case 2:\n message.validatorSet = validator_1.ValidatorSet.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseLightBlock);\n message.signedHeader =\n object.signedHeader !== undefined && object.signedHeader !== null\n ? exports.SignedHeader.fromJSON(object.signedHeader)\n : undefined;\n message.validatorSet =\n object.validatorSet !== undefined && object.validatorSet !== null\n ? validator_1.ValidatorSet.fromJSON(object.validatorSet)\n : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.signedHeader !== undefined &&\n (obj.signedHeader = message.signedHeader ? exports.SignedHeader.toJSON(message.signedHeader) : undefined);\n message.validatorSet !== undefined &&\n (obj.validatorSet = message.validatorSet ? validator_1.ValidatorSet.toJSON(message.validatorSet) : undefined);\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseLightBlock);\n message.signedHeader =\n object.signedHeader !== undefined && object.signedHeader !== null\n ? exports.SignedHeader.fromPartial(object.signedHeader)\n : undefined;\n message.validatorSet =\n object.validatorSet !== undefined && object.validatorSet !== null\n ? validator_1.ValidatorSet.fromPartial(object.validatorSet)\n : undefined;\n return message;\n },\n};\nconst baseBlockMeta = { blockSize: long_1.default.ZERO, numTxs: long_1.default.ZERO };\nexports.BlockMeta = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.blockId !== undefined) {\n exports.BlockID.encode(message.blockId, writer.uint32(10).fork()).ldelim();\n }\n if (!message.blockSize.isZero()) {\n writer.uint32(16).int64(message.blockSize);\n }\n if (message.header !== undefined) {\n exports.Header.encode(message.header, writer.uint32(26).fork()).ldelim();\n }\n if (!message.numTxs.isZero()) {\n writer.uint32(32).int64(message.numTxs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseBlockMeta);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockId = exports.BlockID.decode(reader, reader.uint32());\n break;\n case 2:\n message.blockSize = reader.int64();\n break;\n case 3:\n message.header = exports.Header.decode(reader, reader.uint32());\n break;\n case 4:\n message.numTxs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseBlockMeta);\n message.blockId =\n object.blockId !== undefined && object.blockId !== null ? exports.BlockID.fromJSON(object.blockId) : undefined;\n message.blockSize =\n object.blockSize !== undefined && object.blockSize !== null\n ? long_1.default.fromString(object.blockSize)\n : long_1.default.ZERO;\n message.header =\n object.header !== undefined && object.header !== null ? exports.Header.fromJSON(object.header) : undefined;\n message.numTxs =\n object.numTxs !== undefined && object.numTxs !== null ? long_1.default.fromString(object.numTxs) : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.blockId !== undefined &&\n (obj.blockId = message.blockId ? exports.BlockID.toJSON(message.blockId) : undefined);\n message.blockSize !== undefined && (obj.blockSize = (message.blockSize || long_1.default.ZERO).toString());\n message.header !== undefined && (obj.header = message.header ? exports.Header.toJSON(message.header) : undefined);\n message.numTxs !== undefined && (obj.numTxs = (message.numTxs || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseBlockMeta);\n message.blockId =\n object.blockId !== undefined && object.blockId !== null\n ? exports.BlockID.fromPartial(object.blockId)\n : undefined;\n message.blockSize =\n object.blockSize !== undefined && object.blockSize !== null\n ? long_1.default.fromValue(object.blockSize)\n : long_1.default.ZERO;\n message.header =\n object.header !== undefined && object.header !== null ? exports.Header.fromPartial(object.header) : undefined;\n message.numTxs =\n object.numTxs !== undefined && object.numTxs !== null ? long_1.default.fromValue(object.numTxs) : long_1.default.ZERO;\n return message;\n },\n};\nconst baseTxProof = {};\nexports.TxProof = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.rootHash.length !== 0) {\n writer.uint32(10).bytes(message.rootHash);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n if (message.proof !== undefined) {\n proof_1.Proof.encode(message.proof, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseTxProof);\n message.rootHash = new Uint8Array();\n message.data = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rootHash = reader.bytes();\n break;\n case 2:\n message.data = reader.bytes();\n break;\n case 3:\n message.proof = proof_1.Proof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseTxProof);\n message.rootHash =\n object.rootHash !== undefined && object.rootHash !== null\n ? bytesFromBase64(object.rootHash)\n : new Uint8Array();\n message.data =\n object.data !== undefined && object.data !== null ? bytesFromBase64(object.data) : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromJSON(object.proof) : undefined;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.rootHash !== undefined &&\n (obj.rootHash = base64FromBytes(message.rootHash !== undefined ? message.rootHash : new Uint8Array()));\n message.data !== undefined &&\n (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));\n message.proof !== undefined && (obj.proof = message.proof ? proof_1.Proof.toJSON(message.proof) : undefined);\n return obj;\n },\n fromPartial(object) {\n var _a, _b;\n const message = Object.assign({}, baseTxProof);\n message.rootHash = (_a = object.rootHash) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.data = (_b = object.data) !== null && _b !== void 0 ? _b : new Uint8Array();\n message.proof =\n object.proof !== undefined && object.proof !== null ? proof_1.Proof.fromPartial(object.proof) : undefined;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nfunction toTimestamp(date) {\n const seconds = numberToLong(date.getTime() / 1000);\n const nanos = (date.getTime() % 1000) * 1000000;\n return { seconds, nanos };\n}\nfunction fromTimestamp(t) {\n let millis = t.seconds.toNumber() * 1000;\n millis += t.nanos / 1000000;\n return new Date(millis);\n}\nfunction fromJsonTimestamp(o) {\n if (o instanceof Date) {\n return toTimestamp(o);\n }\n else if (typeof o === \"string\") {\n return toTimestamp(new Date(o));\n }\n else {\n return timestamp_1.Timestamp.fromJSON(o);\n }\n}\nfunction numberToLong(number) {\n return long_1.default.fromNumber(number);\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleValidator = exports.Validator = exports.ValidatorSet = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nconst keys_1 = require(\"../../tendermint/crypto/keys\");\nexports.protobufPackage = \"tendermint.types\";\nconst baseValidatorSet = { totalVotingPower: long_1.default.ZERO };\nexports.ValidatorSet = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n for (const v of message.validators) {\n exports.Validator.encode(v, writer.uint32(10).fork()).ldelim();\n }\n if (message.proposer !== undefined) {\n exports.Validator.encode(message.proposer, writer.uint32(18).fork()).ldelim();\n }\n if (!message.totalVotingPower.isZero()) {\n writer.uint32(24).int64(message.totalVotingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidatorSet);\n message.validators = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validators.push(exports.Validator.decode(reader, reader.uint32()));\n break;\n case 2:\n message.proposer = exports.Validator.decode(reader, reader.uint32());\n break;\n case 3:\n message.totalVotingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSet);\n message.validators = ((_a = object.validators) !== null && _a !== void 0 ? _a : []).map((e) => exports.Validator.fromJSON(e));\n message.proposer =\n object.proposer !== undefined && object.proposer !== null\n ? exports.Validator.fromJSON(object.proposer)\n : undefined;\n message.totalVotingPower =\n object.totalVotingPower !== undefined && object.totalVotingPower !== null\n ? long_1.default.fromString(object.totalVotingPower)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n if (message.validators) {\n obj.validators = message.validators.map((e) => (e ? exports.Validator.toJSON(e) : undefined));\n }\n else {\n obj.validators = [];\n }\n message.proposer !== undefined &&\n (obj.proposer = message.proposer ? exports.Validator.toJSON(message.proposer) : undefined);\n message.totalVotingPower !== undefined &&\n (obj.totalVotingPower = (message.totalVotingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidatorSet);\n message.validators = ((_a = object.validators) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Validator.fromPartial(e))) || [];\n message.proposer =\n object.proposer !== undefined && object.proposer !== null\n ? exports.Validator.fromPartial(object.proposer)\n : undefined;\n message.totalVotingPower =\n object.totalVotingPower !== undefined && object.totalVotingPower !== null\n ? long_1.default.fromValue(object.totalVotingPower)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseValidator = { votingPower: long_1.default.ZERO, proposerPriority: long_1.default.ZERO };\nexports.Validator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.address.length !== 0) {\n writer.uint32(10).bytes(message.address);\n }\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(18).fork()).ldelim();\n }\n if (!message.votingPower.isZero()) {\n writer.uint32(24).int64(message.votingPower);\n }\n if (!message.proposerPriority.isZero()) {\n writer.uint32(32).int64(message.proposerPriority);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseValidator);\n message.address = new Uint8Array();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.address = reader.bytes();\n break;\n case 2:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 3:\n message.votingPower = reader.int64();\n break;\n case 4:\n message.proposerPriority = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseValidator);\n message.address =\n object.address !== undefined && object.address !== null\n ? bytesFromBase64(object.address)\n : new Uint8Array();\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined;\n message.votingPower =\n object.votingPower !== undefined && object.votingPower !== null\n ? long_1.default.fromString(object.votingPower)\n : long_1.default.ZERO;\n message.proposerPriority =\n object.proposerPriority !== undefined && object.proposerPriority !== null\n ? long_1.default.fromString(object.proposerPriority)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.address !== undefined &&\n (obj.address = base64FromBytes(message.address !== undefined ? message.address : new Uint8Array()));\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || long_1.default.ZERO).toString());\n message.proposerPriority !== undefined &&\n (obj.proposerPriority = (message.proposerPriority || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseValidator);\n message.address = (_a = object.address) !== null && _a !== void 0 ? _a : new Uint8Array();\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null\n ? keys_1.PublicKey.fromPartial(object.pubKey)\n : undefined;\n message.votingPower =\n object.votingPower !== undefined && object.votingPower !== null\n ? long_1.default.fromValue(object.votingPower)\n : long_1.default.ZERO;\n message.proposerPriority =\n object.proposerPriority !== undefined && object.proposerPriority !== null\n ? long_1.default.fromValue(object.proposerPriority)\n : long_1.default.ZERO;\n return message;\n },\n};\nconst baseSimpleValidator = { votingPower: long_1.default.ZERO };\nexports.SimpleValidator = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (message.pubKey !== undefined) {\n keys_1.PublicKey.encode(message.pubKey, writer.uint32(10).fork()).ldelim();\n }\n if (!message.votingPower.isZero()) {\n writer.uint32(16).int64(message.votingPower);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseSimpleValidator);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pubKey = keys_1.PublicKey.decode(reader, reader.uint32());\n break;\n case 2:\n message.votingPower = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseSimpleValidator);\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null ? keys_1.PublicKey.fromJSON(object.pubKey) : undefined;\n message.votingPower =\n object.votingPower !== undefined && object.votingPower !== null\n ? long_1.default.fromString(object.votingPower)\n : long_1.default.ZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.pubKey !== undefined &&\n (obj.pubKey = message.pubKey ? keys_1.PublicKey.toJSON(message.pubKey) : undefined);\n message.votingPower !== undefined && (obj.votingPower = (message.votingPower || long_1.default.ZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseSimpleValidator);\n message.pubKey =\n object.pubKey !== undefined && object.pubKey !== null\n ? keys_1.PublicKey.fromPartial(object.pubKey)\n : undefined;\n message.votingPower =\n object.votingPower !== undefined && object.votingPower !== null\n ? long_1.default.fromValue(object.votingPower)\n : long_1.default.ZERO;\n return message;\n },\n};\nvar globalThis = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n if (typeof self !== \"undefined\")\n return self;\n if (typeof window !== \"undefined\")\n return window;\n if (typeof global !== \"undefined\")\n return global;\n throw \"Unable to locate global object\";\n})();\nconst atob = globalThis.atob || ((b64) => globalThis.Buffer.from(b64, \"base64\").toString(\"binary\"));\nfunction bytesFromBase64(b64) {\n const bin = atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nconst btoa = globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, \"binary\").toString(\"base64\"));\nfunction base64FromBytes(arr) {\n const bin = [];\n for (const byte of arr) {\n bin.push(String.fromCharCode(byte));\n }\n return btoa(bin.join(\"\"));\n}\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=validator.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Consensus = exports.App = exports.protobufPackage = void 0;\n/* eslint-disable */\nconst long_1 = __importDefault(require(\"long\"));\nconst minimal_1 = __importDefault(require(\"protobufjs/minimal\"));\nexports.protobufPackage = \"tendermint.version\";\nconst baseApp = { protocol: long_1.default.UZERO, software: \"\" };\nexports.App = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.protocol.isZero()) {\n writer.uint32(8).uint64(message.protocol);\n }\n if (message.software !== \"\") {\n writer.uint32(18).string(message.software);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseApp);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.protocol = reader.uint64();\n break;\n case 2:\n message.software = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseApp);\n message.protocol =\n object.protocol !== undefined && object.protocol !== null\n ? long_1.default.fromString(object.protocol)\n : long_1.default.UZERO;\n message.software =\n object.software !== undefined && object.software !== null ? String(object.software) : \"\";\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.protocol !== undefined && (obj.protocol = (message.protocol || long_1.default.UZERO).toString());\n message.software !== undefined && (obj.software = message.software);\n return obj;\n },\n fromPartial(object) {\n var _a;\n const message = Object.assign({}, baseApp);\n message.protocol =\n object.protocol !== undefined && object.protocol !== null\n ? long_1.default.fromValue(object.protocol)\n : long_1.default.UZERO;\n message.software = (_a = object.software) !== null && _a !== void 0 ? _a : \"\";\n return message;\n },\n};\nconst baseConsensus = { block: long_1.default.UZERO, app: long_1.default.UZERO };\nexports.Consensus = {\n encode(message, writer = minimal_1.default.Writer.create()) {\n if (!message.block.isZero()) {\n writer.uint32(8).uint64(message.block);\n }\n if (!message.app.isZero()) {\n writer.uint32(16).uint64(message.app);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = Object.assign({}, baseConsensus);\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.block = reader.uint64();\n break;\n case 2:\n message.app = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n fromJSON(object) {\n const message = Object.assign({}, baseConsensus);\n message.block =\n object.block !== undefined && object.block !== null ? long_1.default.fromString(object.block) : long_1.default.UZERO;\n message.app = object.app !== undefined && object.app !== null ? long_1.default.fromString(object.app) : long_1.default.UZERO;\n return message;\n },\n toJSON(message) {\n const obj = {};\n message.block !== undefined && (obj.block = (message.block || long_1.default.UZERO).toString());\n message.app !== undefined && (obj.app = (message.app || long_1.default.UZERO).toString());\n return obj;\n },\n fromPartial(object) {\n const message = Object.assign({}, baseConsensus);\n message.block =\n object.block !== undefined && object.block !== null ? long_1.default.fromValue(object.block) : long_1.default.UZERO;\n message.app = object.app !== undefined && object.app !== null ? long_1.default.fromValue(object.app) : long_1.default.UZERO;\n return message;\n },\n};\nif (minimal_1.default.util.Long !== long_1.default) {\n minimal_1.default.util.Long = long_1.default;\n minimal_1.default.configure();\n}\n//# sourceMappingURL=types.js.map","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\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 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 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","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\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 BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\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';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\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","(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 debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\"\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n self._processResponse(response);\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n abortRequest(this._currentRequest);\n this.emit(\"abort\");\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!(typeof data === \"string\" || typeof data === \"object\" && (\"length\" in data))) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (typeof encoding === \"function\") {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (typeof data === \"function\") {\n callback = data;\n data = encoding = null;\n }\n else if (typeof encoding === \"function\") {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n return;\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.substr(0, protocol.length - 1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n this._currentUrl = url.format(this._options);\n\n // Set up event handlers\n request._redirectable = this;\n for (var e = 0; e < events.length; e++) {\n request.on(events[e], eventHandlers[events[e]]);\n }\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end.\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n var location = response.headers.location;\n if (location && this._options.followRedirects !== false &&\n statusCode >= 300 && statusCode < 400) {\n // Abort the current request\n abortRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n this.emit(\"error\", new TooManyRedirectsError());\n return;\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = url.parse(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Determine the URL of the redirection\n var redirectUrl;\n try {\n redirectUrl = url.resolve(currentUrl, location);\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError(cause));\n return;\n }\n\n // Create the redirected request\n debug(\"redirecting to\", redirectUrl);\n this._isRedirect = true;\n var redirectUrlParts = url.parse(redirectUrl);\n Object.assign(this._options, redirectUrlParts);\n\n // Drop confidential headers when redirecting to another scheme:domain\n if (redirectUrlParts.protocol !== currentUrlParts.protocol ||\n !isSameOrSubdomain(redirectUrlParts.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (typeof this._options.beforeRedirect === \"function\") {\n var responseDetails = { headers: response.headers };\n try {\n this._options.beforeRedirect.call(null, this._options, responseDetails);\n }\n catch (err) {\n this.emit(\"error\", err);\n return;\n }\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n try {\n this._performRequest();\n }\n catch (cause) {\n this.emit(\"error\", new RedirectionError(cause));\n }\n }\n else {\n // The response is not a redirect; return it as-is\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n }\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters\n if (typeof input === \"string\") {\n var urlStr = input;\n try {\n input = urlToOptions(new URL(urlStr));\n }\n catch (err) {\n /* istanbul ignore next */\n input = url.parse(urlStr);\n }\n }\n else if (URL && (input instanceof URL)) {\n input = urlToOptions(input);\n }\n else {\n callback = options;\n options = input;\n input = { protocol: protocol };\n }\n if (typeof options === \"function\") {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n var options = {\n protocol: urlObject.protocol,\n hostname: urlObject.hostname.startsWith(\"[\") ?\n /* istanbul ignore next */\n urlObject.hostname.slice(1, -1) :\n urlObject.hostname,\n hash: urlObject.hash,\n search: urlObject.search,\n pathname: urlObject.pathname,\n path: urlObject.pathname + urlObject.search,\n href: urlObject.href,\n };\n if (urlObject.port !== \"\") {\n options.port = Number(urlObject.port);\n }\n return options;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, defaultMessage) {\n function CustomError(cause) {\n Error.captureStackTrace(this, this.constructor);\n if (!cause) {\n this.message = defaultMessage;\n }\n else {\n this.message = defaultMessage + \": \" + cause.message;\n this.cause = cause;\n }\n }\n CustomError.prototype = new Error();\n CustomError.prototype.constructor = CustomError;\n CustomError.prototype.name = \"Error [\" + code + \"]\";\n CustomError.prototype.code = code;\n return CustomError;\n}\n\nfunction abortRequest(request) {\n for (var e = 0; e < events.length; e++) {\n request.removeListener(events[e], eventHandlers[events[e]]);\n }\n request.on(\"error\", noop);\n request.abort();\n}\n\nfunction isSameOrSubdomain(subdomain, domain) {\n if (subdomain === domain) {\n return true;\n }\n const dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","'use strict';\n\nmodule.exports = global;\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\nvar getGlobal = function () { return polyfill; };\n\ndefineProperties(getGlobal, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = getGlobal;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (typeof global !== 'object' || !global || global.Math !== Math || global.Array !== Array) {\n\t\treturn implementation;\n\t}\n\treturn global;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimGlobal() {\n\tvar polyfill = getPolyfill();\n\tif (define.supportsDescriptors) {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(polyfill, 'globalThis');\n\t\tif (!descriptor || (descriptor.configurable && (descriptor.enumerable || descriptor.writable || globalThis !== polyfill))) { // eslint-disable-line max-len\n\t\t\tObject.defineProperty(polyfill, 'globalThis', {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: polyfill,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t}\n\t} else if (typeof globalThis !== 'object' || globalThis !== polyfill) {\n\t\tpolyfill.globalThis = polyfill;\n\t}\n\treturn polyfill;\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-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","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\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 Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\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 rh = [\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 s = [\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 sh = [\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","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.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\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\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\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\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};\n\nSHA1.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 SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\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');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar 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 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 hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\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","\"use strict\";\n\nmodule.exports = require('ws');","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.errorCodeToString = errorCodeToString;\nexports.processErrorResponse = processErrorResponse;\nexports.getVersion = getVersion;\nexports.ERROR_CODE = exports.P1_VALUES = exports.PAYLOAD_TYPE = exports.INS = exports.APP_KEY = exports.CHUNK_SIZE = exports.CLA = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar CLA = 0x55;\nexports.CLA = CLA;\nvar CHUNK_SIZE = 250;\nexports.CHUNK_SIZE = CHUNK_SIZE;\nvar APP_KEY = \"CSM\";\nexports.APP_KEY = APP_KEY;\nvar INS = {\n GET_VERSION: 0x00,\n INS_PUBLIC_KEY_SECP256K1: 0x01,\n // Obsolete\n SIGN_SECP256K1: 0x02,\n GET_ADDR_SECP256K1: 0x04\n};\nexports.INS = INS;\nvar PAYLOAD_TYPE = {\n INIT: 0x00,\n ADD: 0x01,\n LAST: 0x02\n};\nexports.PAYLOAD_TYPE = PAYLOAD_TYPE;\nvar P1_VALUES = {\n ONLY_RETRIEVE: 0x00,\n SHOW_ADDRESS_IN_DEVICE: 0x01\n};\nexports.P1_VALUES = P1_VALUES;\nvar ERROR_CODE = {\n NoError: 0x9000\n};\nexports.ERROR_CODE = ERROR_CODE;\nvar ERROR_DESCRIPTION = {\n 1: \"U2F: Unknown\",\n 2: \"U2F: Bad request\",\n 3: \"U2F: Configuration unsupported\",\n 4: \"U2F: Device Ineligible\",\n 5: \"U2F: Timeout\",\n 14: \"Timeout\",\n 0x9000: \"No errors\",\n 0x9001: \"Device is busy\",\n 0x6802: \"Error deriving keys\",\n 0x6400: \"Execution Error\",\n 0x6700: \"Wrong Length\",\n 0x6982: \"Empty Buffer\",\n 0x6983: \"Output buffer too small\",\n 0x6984: \"Data is invalid\",\n 0x6985: \"Conditions not satisfied\",\n 0x6986: \"Transaction rejected\",\n 0x6a80: \"Bad key handle\",\n 0x6b00: \"Invalid P1/P2\",\n 0x6d00: \"Instruction not supported\",\n 0x6e00: \"App does not seem to be open\",\n 0x6f00: \"Unknown error\",\n 0x6f01: \"Sign/verify error\"\n};\n\nfunction errorCodeToString(statusCode) {\n if (statusCode in ERROR_DESCRIPTION) return ERROR_DESCRIPTION[statusCode];\n return \"Unknown Status Code: \".concat(statusCode);\n}\n\nfunction isDict(v) {\n return (0, _typeof2.default)(v) === \"object\" && v !== null && !(v instanceof Array) && !(v instanceof Date);\n}\n\nfunction processErrorResponse(response) {\n if (response) {\n if (isDict(response)) {\n if (Object.prototype.hasOwnProperty.call(response, \"statusCode\")) {\n return {\n return_code: response.statusCode,\n error_message: errorCodeToString(response.statusCode)\n };\n }\n\n if (Object.prototype.hasOwnProperty.call(response, \"return_code\") && Object.prototype.hasOwnProperty.call(response, \"error_message\")) {\n return response;\n }\n }\n\n return {\n return_code: 0xffff,\n error_message: response.toString()\n };\n }\n\n return {\n return_code: 0xffff,\n error_message: response.toString()\n };\n}\n\nfunction getVersion(_x) {\n return _getVersion.apply(this, arguments);\n}\n\nfunction _getVersion() {\n _getVersion = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(transport) {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", transport.send(CLA, INS.GET_VERSION, 0, 0).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var targetId = 0;\n\n if (response.length >= 9) {\n /* eslint-disable no-bitwise */\n targetId = (response[5] << 24) + (response[6] << 16) + (response[7] << 8) + (response[8] << 0);\n /* eslint-enable no-bitwise */\n }\n\n return {\n return_code: returnCode,\n error_message: errorCodeToString(returnCode),\n // ///\n test_mode: response[0] !== 0,\n major: response[1],\n minor: response[2],\n patch: response[3],\n device_locked: response[4] === 1,\n target_id: targetId.toString(16)\n };\n }, processErrorResponse));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _getVersion.apply(this, arguments);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.serializePathv1 = serializePathv1;\nexports.signSendChunkv1 = signSendChunkv1;\nexports.publicKeyv1 = publicKeyv1;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _common = require(\"./common\");\n\nfunction serializePathv1(path) {\n if (path == null || path.length < 3) {\n throw new Error(\"Invalid path.\");\n }\n\n if (path.length > 10) {\n throw new Error(\"Invalid path. Length should be <= 10\");\n }\n\n var buf = Buffer.alloc(1 + 4 * path.length);\n buf.writeUInt8(path.length, 0);\n\n for (var i = 0; i < path.length; i += 1) {\n var v = path[i];\n\n if (i < 3) {\n // eslint-disable-next-line no-bitwise\n v |= 0x80000000; // Harden\n }\n\n buf.writeInt32LE(v, 1 + i * 4);\n }\n\n return buf;\n}\n\nfunction signSendChunkv1(_x, _x2, _x3, _x4) {\n return _signSendChunkv.apply(this, arguments);\n}\n\nfunction _signSendChunkv() {\n _signSendChunkv = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(app, chunkIdx, chunkNum, chunk) {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", app.transport.send(_common.CLA, _common.INS.SIGN_SECP256K1, chunkIdx, chunkNum, chunk, [_common.ERROR_CODE.NoError, 0x6984, 0x6a80]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var errorMessage = (0, _common.errorCodeToString)(returnCode);\n\n if (returnCode === 0x6a80 || returnCode === 0x6984) {\n errorMessage = \"\".concat(errorMessage, \" : \").concat(response.slice(0, response.length - 2).toString(\"ascii\"));\n }\n\n var signature = null;\n\n if (response.length > 2) {\n signature = response.slice(0, response.length - 2);\n }\n\n return {\n signature: signature,\n return_code: returnCode,\n error_message: errorMessage\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _signSendChunkv.apply(this, arguments);\n}\n\nfunction compressPublicKey(publicKey) {\n if (publicKey.length !== 65) {\n throw new Error(\"decompressed public key length should be 65 bytes\");\n }\n\n var y = publicKey.slice(33, 65); // eslint-disable-next-line no-bitwise\n\n var z = Buffer.from([2 + (y[y.length - 1] & 1)]);\n return Buffer.concat([z, publicKey.slice(1, 33)]);\n}\n\nfunction publicKeyv1(_x5, _x6) {\n return _publicKeyv.apply(this, arguments);\n}\n\nfunction _publicKeyv() {\n _publicKeyv = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(app, data) {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", app.transport.send(_common.CLA, _common.INS.INS_PUBLIC_KEY_SECP256K1, 0, 0, data, [_common.ERROR_CODE.NoError]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var pk = Buffer.from(response.slice(0, 65));\n return {\n pk: pk,\n compressed_pk: compressPublicKey(pk),\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode)\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _publicKeyv.apply(this, arguments);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.serializePathv2 = serializePathv2;\nexports.signSendChunkv2 = signSendChunkv2;\nexports.publicKeyv2 = publicKeyv2;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _helperV = require(\"./helperV1\");\n\nvar _common = require(\"./common\");\n\nfunction serializePathv2(path) {\n if (!path || path.length !== 5) {\n throw new Error(\"Invalid path.\");\n }\n\n var buf = Buffer.alloc(20);\n buf.writeUInt32LE(0x80000000 + path[0], 0);\n buf.writeUInt32LE(0x80000000 + path[1], 4);\n buf.writeUInt32LE(0x80000000 + path[2], 8);\n buf.writeUInt32LE(path[3], 12);\n buf.writeUInt32LE(path[4], 16);\n return buf;\n}\n\nfunction signSendChunkv2(_x, _x2, _x3, _x4) {\n return _signSendChunkv.apply(this, arguments);\n}\n\nfunction _signSendChunkv() {\n _signSendChunkv = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(app, chunkIdx, chunkNum, chunk) {\n var payloadType;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n payloadType = _common.PAYLOAD_TYPE.ADD;\n\n if (chunkIdx === 1) {\n payloadType = _common.PAYLOAD_TYPE.INIT;\n }\n\n if (chunkIdx === chunkNum) {\n payloadType = _common.PAYLOAD_TYPE.LAST;\n }\n\n return _context.abrupt(\"return\", (0, _helperV.signSendChunkv1)(app, payloadType, 0, chunk));\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _signSendChunkv.apply(this, arguments);\n}\n\nfunction publicKeyv2(_x5, _x6) {\n return _publicKeyv.apply(this, arguments);\n}\n\nfunction _publicKeyv() {\n _publicKeyv = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(app, data) {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", app.transport.send(_common.CLA, _common.INS.GET_ADDR_SECP256K1, 0, 0, data, [_common.ERROR_CODE.NoError]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var compressedPk = Buffer.from(response.slice(0, 33));\n return {\n pk: \"OBSOLETE PROPERTY\",\n compressed_pk: compressedPk,\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode)\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _publicKeyv.apply(this, arguments);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nvar _ripemd = _interopRequireDefault(require(\"ripemd160\"));\n\nvar _bech = _interopRequireDefault(require(\"bech32\"));\n\nvar _helperV = require(\"./helperV1\");\n\nvar _helperV2 = require(\"./helperV2\");\n\nvar _common = require(\"./common\");\n\n/** ******************************************************************************\n * (c) 2019 ZondaX GmbH\n * (c) 2016-2017 Ledger\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ******************************************************************************* */\nvar CosmosApp = /*#__PURE__*/function () {\n function CosmosApp(transport) {\n var scrambleKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _common.APP_KEY;\n (0, _classCallCheck2.default)(this, CosmosApp);\n\n if (!transport) {\n throw new Error(\"Transport has not been defined\");\n }\n\n this.transport = transport;\n transport.decorateAppAPIMethods(this, [\"getVersion\", \"sign\", \"getAddressAndPubKey\", \"appInfo\", \"deviceInfo\", \"getBech32FromPK\"], scrambleKey);\n }\n\n (0, _createClass2.default)(CosmosApp, [{\n key: \"serializePath\",\n value: function () {\n var _serializePath = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(path) {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0, _common.getVersion)(this.transport);\n\n case 2:\n this.versionResponse = _context.sent;\n\n if (!(this.versionResponse.return_code !== _common.ERROR_CODE.NoError)) {\n _context.next = 5;\n break;\n }\n\n throw this.versionResponse;\n\n case 5:\n _context.t0 = this.versionResponse.major;\n _context.next = _context.t0 === 1 ? 8 : _context.t0 === 2 ? 9 : 10;\n break;\n\n case 8:\n return _context.abrupt(\"return\", (0, _helperV.serializePathv1)(path));\n\n case 9:\n return _context.abrupt(\"return\", (0, _helperV2.serializePathv2)(path));\n\n case 10:\n return _context.abrupt(\"return\", {\n return_code: 0x6400,\n error_message: \"App Version is not supported\"\n });\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function serializePath(_x) {\n return _serializePath.apply(this, arguments);\n }\n\n return serializePath;\n }()\n }, {\n key: \"signGetChunks\",\n value: function () {\n var _signGetChunks = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(path, message) {\n var serializedPath, chunks, buffer, i, end;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.serializePath(path);\n\n case 2:\n serializedPath = _context2.sent;\n chunks = [];\n chunks.push(serializedPath);\n buffer = Buffer.from(message);\n\n for (i = 0; i < buffer.length; i += _common.CHUNK_SIZE) {\n end = i + _common.CHUNK_SIZE;\n\n if (i > buffer.length) {\n end = buffer.length;\n }\n\n chunks.push(buffer.slice(i, end));\n }\n\n return _context2.abrupt(\"return\", chunks);\n\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function signGetChunks(_x2, _x3) {\n return _signGetChunks.apply(this, arguments);\n }\n\n return signGetChunks;\n }()\n }, {\n key: \"getVersion\",\n value: function () {\n var _getVersion2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n _context3.next = 3;\n return (0, _common.getVersion)(this.transport);\n\n case 3:\n this.versionResponse = _context3.sent;\n return _context3.abrupt(\"return\", this.versionResponse);\n\n case 7:\n _context3.prev = 7;\n _context3.t0 = _context3[\"catch\"](0);\n return _context3.abrupt(\"return\", (0, _common.processErrorResponse)(_context3.t0));\n\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[0, 7]]);\n }));\n\n function getVersion() {\n return _getVersion2.apply(this, arguments);\n }\n\n return getVersion;\n }()\n }, {\n key: \"appInfo\",\n value: function () {\n var _appInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n return _context4.abrupt(\"return\", this.transport.send(0xb0, 0x01, 0, 0).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var result = {};\n var appName = \"err\";\n var appVersion = \"err\";\n var flagLen = 0;\n var flagsValue = 0;\n\n if (response[0] !== 1) {\n // Ledger responds with format ID 1. There is no spec for any format != 1\n result.error_message = \"response format ID not recognized\";\n result.return_code = 0x9001;\n } else {\n var appNameLen = response[1];\n appName = response.slice(2, 2 + appNameLen).toString(\"ascii\");\n var idx = 2 + appNameLen;\n var appVersionLen = response[idx];\n idx += 1;\n appVersion = response.slice(idx, idx + appVersionLen).toString(\"ascii\");\n idx += appVersionLen;\n var appFlagsLen = response[idx];\n idx += 1;\n flagLen = appFlagsLen;\n flagsValue = response[idx];\n }\n\n return {\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode),\n // //\n appName: appName,\n appVersion: appVersion,\n flagLen: flagLen,\n flagsValue: flagsValue,\n // eslint-disable-next-line no-bitwise\n flag_recovery: (flagsValue & 1) !== 0,\n // eslint-disable-next-line no-bitwise\n flag_signed_mcu_code: (flagsValue & 2) !== 0,\n // eslint-disable-next-line no-bitwise\n flag_onboarded: (flagsValue & 4) !== 0,\n // eslint-disable-next-line no-bitwise\n flag_pin_validated: (flagsValue & 128) !== 0\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function appInfo() {\n return _appInfo.apply(this, arguments);\n }\n\n return appInfo;\n }()\n }, {\n key: \"deviceInfo\",\n value: function () {\n var _deviceInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n return _context5.abrupt(\"return\", this.transport.send(0xe0, 0x01, 0, 0, Buffer.from([]), [_common.ERROR_CODE.NoError, 0x6e00]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n\n if (returnCode === 0x6e00) {\n return {\n return_code: returnCode,\n error_message: \"This command is only available in the Dashboard\"\n };\n }\n\n var targetId = response.slice(0, 4).toString(\"hex\");\n var pos = 4;\n var secureElementVersionLen = response[pos];\n pos += 1;\n var seVersion = response.slice(pos, pos + secureElementVersionLen).toString();\n pos += secureElementVersionLen;\n var flagsLen = response[pos];\n pos += 1;\n var flag = response.slice(pos, pos + flagsLen).toString(\"hex\");\n pos += flagsLen;\n var mcuVersionLen = response[pos];\n pos += 1; // Patch issue in mcu version\n\n var tmp = response.slice(pos, pos + mcuVersionLen);\n\n if (tmp[mcuVersionLen - 1] === 0) {\n tmp = response.slice(pos, pos + mcuVersionLen - 1);\n }\n\n var mcuVersion = tmp.toString();\n return {\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode),\n // //\n targetId: targetId,\n seVersion: seVersion,\n flag: flag,\n mcuVersion: mcuVersion\n };\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function deviceInfo() {\n return _deviceInfo.apply(this, arguments);\n }\n\n return deviceInfo;\n }()\n }, {\n key: \"publicKey\",\n value: function () {\n var _publicKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(path) {\n var serializedPath, data;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n _context6.next = 3;\n return this.serializePath(path);\n\n case 3:\n serializedPath = _context6.sent;\n _context6.t0 = this.versionResponse.major;\n _context6.next = _context6.t0 === 1 ? 7 : _context6.t0 === 2 ? 8 : 10;\n break;\n\n case 7:\n return _context6.abrupt(\"return\", (0, _helperV.publicKeyv1)(this, serializedPath));\n\n case 8:\n data = Buffer.concat([CosmosApp.serializeHRP(\"cosmos\"), serializedPath]);\n return _context6.abrupt(\"return\", (0, _helperV2.publicKeyv2)(this, data));\n\n case 10:\n return _context6.abrupt(\"return\", {\n return_code: 0x6400,\n error_message: \"App Version is not supported\"\n });\n\n case 11:\n _context6.next = 16;\n break;\n\n case 13:\n _context6.prev = 13;\n _context6.t1 = _context6[\"catch\"](0);\n return _context6.abrupt(\"return\", (0, _common.processErrorResponse)(_context6.t1));\n\n case 16:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this, [[0, 13]]);\n }));\n\n function publicKey(_x4) {\n return _publicKey.apply(this, arguments);\n }\n\n return publicKey;\n }()\n }, {\n key: \"getAddressAndPubKey\",\n value: function () {\n var _getAddressAndPubKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(path, hrp) {\n var _this = this;\n\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.prev = 0;\n return _context7.abrupt(\"return\", this.serializePath(path).then(function (serializedPath) {\n var data = Buffer.concat([CosmosApp.serializeHRP(hrp), serializedPath]);\n return _this.transport.send(_common.CLA, _common.INS.GET_ADDR_SECP256K1, _common.P1_VALUES.ONLY_RETRIEVE, 0, data, [_common.ERROR_CODE.NoError]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var compressedPk = Buffer.from(response.slice(0, 33));\n var bech32Address = Buffer.from(response.slice(33, -2)).toString();\n return {\n bech32_address: bech32Address,\n compressed_pk: compressedPk,\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode)\n };\n }, _common.processErrorResponse);\n }).catch(function (err) {\n return (0, _common.processErrorResponse)(err);\n }));\n\n case 4:\n _context7.prev = 4;\n _context7.t0 = _context7[\"catch\"](0);\n return _context7.abrupt(\"return\", (0, _common.processErrorResponse)(_context7.t0));\n\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this, [[0, 4]]);\n }));\n\n function getAddressAndPubKey(_x5, _x6) {\n return _getAddressAndPubKey.apply(this, arguments);\n }\n\n return getAddressAndPubKey;\n }()\n }, {\n key: \"showAddressAndPubKey\",\n value: function () {\n var _showAddressAndPubKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(path, hrp) {\n var _this2 = this;\n\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n return _context8.abrupt(\"return\", this.serializePath(path).then(function (serializedPath) {\n var data = Buffer.concat([CosmosApp.serializeHRP(hrp), serializedPath]);\n return _this2.transport.send(_common.CLA, _common.INS.GET_ADDR_SECP256K1, _common.P1_VALUES.SHOW_ADDRESS_IN_DEVICE, 0, data, [_common.ERROR_CODE.NoError]).then(function (response) {\n var errorCodeData = response.slice(-2);\n var returnCode = errorCodeData[0] * 256 + errorCodeData[1];\n var compressedPk = Buffer.from(response.slice(0, 33));\n var bech32Address = Buffer.from(response.slice(33, -2)).toString();\n return {\n bech32_address: bech32Address,\n compressed_pk: compressedPk,\n return_code: returnCode,\n error_message: (0, _common.errorCodeToString)(returnCode)\n };\n }, _common.processErrorResponse);\n }).catch(function (err) {\n return (0, _common.processErrorResponse)(err);\n }));\n\n case 4:\n _context8.prev = 4;\n _context8.t0 = _context8[\"catch\"](0);\n return _context8.abrupt(\"return\", (0, _common.processErrorResponse)(_context8.t0));\n\n case 7:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this, [[0, 4]]);\n }));\n\n function showAddressAndPubKey(_x7, _x8) {\n return _showAddressAndPubKey.apply(this, arguments);\n }\n\n return showAddressAndPubKey;\n }()\n }, {\n key: \"signSendChunk\",\n value: function () {\n var _signSendChunk = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(chunkIdx, chunkNum, chunk) {\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.t0 = this.versionResponse.major;\n _context9.next = _context9.t0 === 1 ? 3 : _context9.t0 === 2 ? 4 : 5;\n break;\n\n case 3:\n return _context9.abrupt(\"return\", (0, _helperV.signSendChunkv1)(this, chunkIdx, chunkNum, chunk));\n\n case 4:\n return _context9.abrupt(\"return\", (0, _helperV2.signSendChunkv2)(this, chunkIdx, chunkNum, chunk));\n\n case 5:\n return _context9.abrupt(\"return\", {\n return_code: 0x6400,\n error_message: \"App Version is not supported\"\n });\n\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function signSendChunk(_x9, _x10, _x11) {\n return _signSendChunk.apply(this, arguments);\n }\n\n return signSendChunk;\n }()\n }, {\n key: \"sign\",\n value: function () {\n var _sign = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(path, message) {\n var _this3 = this;\n\n return _regenerator.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n return _context11.abrupt(\"return\", this.signGetChunks(path, message).then(function (chunks) {\n return _this3.signSendChunk(1, chunks.length, chunks[0], [_common.ERROR_CODE.NoError]).then( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(response) {\n var result, i;\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n result = {\n return_code: response.return_code,\n error_message: response.error_message,\n signature: null\n };\n i = 1;\n\n case 2:\n if (!(i < chunks.length)) {\n _context10.next = 11;\n break;\n }\n\n _context10.next = 5;\n return _this3.signSendChunk(1 + i, chunks.length, chunks[i]);\n\n case 5:\n result = _context10.sent;\n\n if (!(result.return_code !== _common.ERROR_CODE.NoError)) {\n _context10.next = 8;\n break;\n }\n\n return _context10.abrupt(\"break\", 11);\n\n case 8:\n i += 1;\n _context10.next = 2;\n break;\n\n case 11:\n return _context10.abrupt(\"return\", {\n return_code: result.return_code,\n error_message: result.error_message,\n // ///\n signature: result.signature\n });\n\n case 12:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n\n return function (_x14) {\n return _ref.apply(this, arguments);\n };\n }(), _common.processErrorResponse);\n }, _common.processErrorResponse));\n\n case 1:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function sign(_x12, _x13) {\n return _sign.apply(this, arguments);\n }\n\n return sign;\n }()\n }], [{\n key: \"serializeHRP\",\n value: function serializeHRP(hrp) {\n if (hrp == null || hrp.length < 3 || hrp.length > 83) {\n throw new Error(\"Invalid HRP\");\n }\n\n var buf = Buffer.alloc(1 + hrp.length);\n buf.writeUInt8(hrp.length, 0);\n buf.write(hrp, 1);\n return buf;\n }\n }, {\n key: \"getBech32FromPK\",\n value: function getBech32FromPK(hrp, pk) {\n if (pk.length !== 33) {\n throw new Error(\"expected compressed public key [31 bytes]\");\n }\n\n var hashSha256 = _crypto.default.createHash(\"sha256\").update(pk).digest();\n\n var hashRip = new _ripemd.default().update(hashSha256).digest();\n return _bech.default.encode(hrp, _bech.default.toWords(hashRip));\n }\n }]);\n return CosmosApp;\n}();\n\nexports.default = CosmosApp;","!function(e){function r(e,r){\"use strict\";var t,a=r.ready.then((function(){function a(){if(0!==t._sodium_init())throw new Error(\"libsodium was not correctly initialized.\");for(var r=[\"crypto_aead_chacha20poly1305_decrypt\",\"crypto_aead_chacha20poly1305_decrypt_detached\",\"crypto_aead_chacha20poly1305_encrypt\",\"crypto_aead_chacha20poly1305_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_decrypt\",\"crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_encrypt\",\"crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_keygen\",\"crypto_aead_chacha20poly1305_keygen\",\"crypto_aead_xchacha20poly1305_ietf_decrypt\",\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_encrypt\",\"crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_keygen\",\"crypto_auth\",\"crypto_auth_hmacsha256\",\"crypto_auth_hmacsha256_keygen\",\"crypto_auth_hmacsha256_verify\",\"crypto_auth_hmacsha512\",\"crypto_auth_hmacsha512_keygen\",\"crypto_auth_hmacsha512_verify\",\"crypto_auth_keygen\",\"crypto_auth_verify\",\"crypto_box_beforenm\",\"crypto_box_curve25519xchacha20poly1305_keypair\",\"crypto_box_curve25519xchacha20poly1305_seal\",\"crypto_box_curve25519xchacha20poly1305_seal_open\",\"crypto_box_detached\",\"crypto_box_easy\",\"crypto_box_easy_afternm\",\"crypto_box_keypair\",\"crypto_box_open_detached\",\"crypto_box_open_easy\",\"crypto_box_open_easy_afternm\",\"crypto_box_seal\",\"crypto_box_seal_open\",\"crypto_box_seed_keypair\",\"crypto_core_ed25519_add\",\"crypto_core_ed25519_from_hash\",\"crypto_core_ed25519_from_uniform\",\"crypto_core_ed25519_is_valid_point\",\"crypto_core_ed25519_random\",\"crypto_core_ed25519_scalar_add\",\"crypto_core_ed25519_scalar_complement\",\"crypto_core_ed25519_scalar_invert\",\"crypto_core_ed25519_scalar_mul\",\"crypto_core_ed25519_scalar_negate\",\"crypto_core_ed25519_scalar_random\",\"crypto_core_ed25519_scalar_reduce\",\"crypto_core_ed25519_scalar_sub\",\"crypto_core_ed25519_sub\",\"crypto_core_ristretto255_add\",\"crypto_core_ristretto255_from_hash\",\"crypto_core_ristretto255_is_valid_point\",\"crypto_core_ristretto255_random\",\"crypto_core_ristretto255_scalar_add\",\"crypto_core_ristretto255_scalar_complement\",\"crypto_core_ristretto255_scalar_invert\",\"crypto_core_ristretto255_scalar_mul\",\"crypto_core_ristretto255_scalar_negate\",\"crypto_core_ristretto255_scalar_random\",\"crypto_core_ristretto255_scalar_reduce\",\"crypto_core_ristretto255_scalar_sub\",\"crypto_core_ristretto255_sub\",\"crypto_generichash\",\"crypto_generichash_blake2b_salt_personal\",\"crypto_generichash_final\",\"crypto_generichash_init\",\"crypto_generichash_keygen\",\"crypto_generichash_update\",\"crypto_hash\",\"crypto_hash_sha256\",\"crypto_hash_sha256_final\",\"crypto_hash_sha256_init\",\"crypto_hash_sha256_update\",\"crypto_hash_sha512\",\"crypto_hash_sha512_final\",\"crypto_hash_sha512_init\",\"crypto_hash_sha512_update\",\"crypto_kdf_derive_from_key\",\"crypto_kdf_keygen\",\"crypto_kx_client_session_keys\",\"crypto_kx_keypair\",\"crypto_kx_seed_keypair\",\"crypto_kx_server_session_keys\",\"crypto_onetimeauth\",\"crypto_onetimeauth_final\",\"crypto_onetimeauth_init\",\"crypto_onetimeauth_keygen\",\"crypto_onetimeauth_update\",\"crypto_onetimeauth_verify\",\"crypto_pwhash\",\"crypto_pwhash_scryptsalsa208sha256\",\"crypto_pwhash_scryptsalsa208sha256_ll\",\"crypto_pwhash_scryptsalsa208sha256_str\",\"crypto_pwhash_scryptsalsa208sha256_str_verify\",\"crypto_pwhash_str\",\"crypto_pwhash_str_needs_rehash\",\"crypto_pwhash_str_verify\",\"crypto_scalarmult\",\"crypto_scalarmult_base\",\"crypto_scalarmult_ed25519\",\"crypto_scalarmult_ed25519_base\",\"crypto_scalarmult_ed25519_base_noclamp\",\"crypto_scalarmult_ed25519_noclamp\",\"crypto_scalarmult_ristretto255\",\"crypto_scalarmult_ristretto255_base\",\"crypto_secretbox_detached\",\"crypto_secretbox_easy\",\"crypto_secretbox_keygen\",\"crypto_secretbox_open_detached\",\"crypto_secretbox_open_easy\",\"crypto_secretstream_xchacha20poly1305_init_pull\",\"crypto_secretstream_xchacha20poly1305_init_push\",\"crypto_secretstream_xchacha20poly1305_keygen\",\"crypto_secretstream_xchacha20poly1305_pull\",\"crypto_secretstream_xchacha20poly1305_push\",\"crypto_secretstream_xchacha20poly1305_rekey\",\"crypto_shorthash\",\"crypto_shorthash_keygen\",\"crypto_shorthash_siphashx24\",\"crypto_sign\",\"crypto_sign_detached\",\"crypto_sign_ed25519_pk_to_curve25519\",\"crypto_sign_ed25519_sk_to_curve25519\",\"crypto_sign_ed25519_sk_to_pk\",\"crypto_sign_ed25519_sk_to_seed\",\"crypto_sign_final_create\",\"crypto_sign_final_verify\",\"crypto_sign_init\",\"crypto_sign_keypair\",\"crypto_sign_open\",\"crypto_sign_seed_keypair\",\"crypto_sign_update\",\"crypto_sign_verify_detached\",\"crypto_stream_chacha20\",\"crypto_stream_chacha20_ietf_xor\",\"crypto_stream_chacha20_ietf_xor_ic\",\"crypto_stream_chacha20_keygen\",\"crypto_stream_chacha20_xor\",\"crypto_stream_chacha20_xor_ic\",\"crypto_stream_keygen\",\"crypto_stream_xchacha20_keygen\",\"crypto_stream_xchacha20_xor\",\"crypto_stream_xchacha20_xor_ic\",\"randombytes_buf\",\"randombytes_buf_deterministic\",\"randombytes_close\",\"randombytes_random\",\"randombytes_set_implementation\",\"randombytes_stir\",\"randombytes_uniform\",\"sodium_version_string\"],a=[E,x,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,q,j,z,W,J,Q,Z,$,ee,re,te,ae,_e,se,ne,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,qe,je,ze,We,Je,Qe,Ze,$e,er,rr,tr,ar,_r,sr,nr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Kr,Mr,Ir,Nr,Lr,Ur,Or,Cr,Rr,Pr,Gr,Xr,Dr,Fr,Vr,Hr,qr,jr,zr,Wr,Jr,Qr,Zr,$r,et,rt,tt,at,_t,st,nt,ct,ot,ht,pt,yt,it],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(r=e[s]>>>4)+(r-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var c={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function o(e){if(null==e)return c.URLSAFE_NO_PADDING;if(e!==c.ORIGINAL&&e!==c.ORIGINAL_NO_PADDING&&e!==c.URLSAFE&&e!=c.URLSAFE_NO_PADDING)throw new Error(\"unsupported base64 variant\");return e}function h(e,r){r=o(r),e=m(_,e,\"input\");var a,_=[],n=0|Math.floor(e.length/3),c=e.length-3*n,h=4*n+(0!==c?0==(2&r)?4:2+(c>>>1):0),p=new l(h+1),y=u(e);return _.push(y),_.push(p.address),0===t._sodium_bin2base64(p.address,p.length,y,e.length,r)&&g(_,\"conversion failed\"),p.length=h,a=s(p.to_Uint8Array()),v(_),a}function p(e,r){var t=r||\"uint8array\";if(!y(t))throw new Error(t+\" output format is not available\");if(e instanceof l){if(\"uint8array\"===t)return e.to_Uint8Array();if(\"text\"===t)return s(e.to_Uint8Array());if(\"hex\"===t)return n(e.to_Uint8Array());if(\"base64\"===t)return h(e.to_Uint8Array(),c.URLSAFE_NO_PADDING);throw new Error('What is output format \"'+t+'\"?')}if(\"object\"==typeof e){for(var a=Object.keys(e),_={},o=0;o>>24>>>8,o,y);var x=p(g,n);return v(c),x}function ze(e){var r=[];i(e);var a=new l(0|t._crypto_kdf_keybytes()),_=a.address;r.push(_),t._crypto_kdf_keygen(_);var s=p(a,e);return v(r),s}function We(e,r,a,_){var s=[];i(_),e=m(s,e,\"clientPublicKey\");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&b(s,\"invalid clientPublicKey length\"),n=u(e),s.push(n),r=m(s,r,\"clientSecretKey\");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&b(s,\"invalid clientSecretKey length\"),o=u(r),s.push(o),a=m(s,a,\"serverPublicKey\");var y,d=0|t._crypto_kx_publickeybytes();a.length!==d&&b(s,\"invalid serverPublicKey length\"),y=u(a),s.push(y);var f=new l(0|t._crypto_kx_sessionkeybytes()),E=f.address;s.push(E);var x=new l(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_client_session_keys(E,k,n,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(s),S}g(s,\"invalid usage\")}function Je(e){var r=[];i(e);var a=new l(0|t._crypto_kx_publickeybytes()),_=a.address;r.push(_);var s=new l(0|t._crypto_kx_secretkeybytes()),n=s.address;if(r.push(n),0==(0|t._crypto_kx_keypair(_,n))){var c={publicKey:p(a,e),privateKey:p(s,e),keyType:\"x25519\"};return v(r),c}g(r,\"internal error\")}function Qe(e,r){var a=[];i(r),e=m(a,e,\"seed\");var _,s=0|t._crypto_kx_seedbytes();e.length!==s&&b(a,\"invalid seed length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_kx_publickeybytes()),c=n.address;a.push(c);var o=new l(0|t._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|t._crypto_kx_seed_keypair(c,h,_))){var y={publicKey:p(n,r),privateKey:p(o,r),keyType:\"x25519\"};return v(a),y}g(a,\"internal error\")}function Ze(e,r,a,_){var s=[];i(_),e=m(s,e,\"serverPublicKey\");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&b(s,\"invalid serverPublicKey length\"),n=u(e),s.push(n),r=m(s,r,\"serverSecretKey\");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&b(s,\"invalid serverSecretKey length\"),o=u(r),s.push(o),a=m(s,a,\"clientPublicKey\");var y,d=0|t._crypto_kx_publickeybytes();a.length!==d&&b(s,\"invalid clientPublicKey length\"),y=u(a),s.push(y);var f=new l(0|t._crypto_kx_sessionkeybytes()),E=f.address;s.push(E);var x=new l(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_server_session_keys(E,k,n,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(s),S}g(s,\"invalid usage\")}function $e(e,r,a){var _=[];i(a);var s=u(e=m(_,e,\"message\")),n=e.length;_.push(s),r=m(_,r,\"key\");var c,o=0|t._crypto_onetimeauth_keybytes();r.length!==o&&b(_,\"invalid key length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_onetimeauth_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_onetimeauth(y,s,n,0,c))){var d=p(h,a);return v(_),d}g(_,\"invalid usage\")}function er(e,r){var a=[];i(r),f(a,e,\"state_address\");var _=new l(0|t._crypto_onetimeauth_bytes()),s=_.address;if(a.push(s),0==(0|t._crypto_onetimeauth_final(e,s))){var n=(t._free(e),p(_,r));return v(a),n}g(a,\"invalid usage\")}function rr(e,r){var a=[];i(r);var _=null;null!=e&&(_=u(e=m(a,e,\"key\")),e.length,a.push(_));var s=new l(144).address;if(0==(0|t._crypto_onetimeauth_init(s,_))){var n=s;return v(a),n}g(a,\"invalid usage\")}function tr(e){var r=[];i(e);var a=new l(0|t._crypto_onetimeauth_keybytes()),_=a.address;r.push(_),t._crypto_onetimeauth_keygen(_);var s=p(a,e);return v(r),s}function ar(e,r,a){var _=[];i(a),f(_,e,\"state_address\");var s=u(r=m(_,r,\"message_chunk\")),n=r.length;_.push(s),0!=(0|t._crypto_onetimeauth_update(e,s,n))&&g(_,\"invalid usage\"),v(_)}function _r(e,r,a){var _=[];e=m(_,e,\"hash\");var s,n=0|t._crypto_onetimeauth_bytes();e.length!==n&&b(_,\"invalid hash length\"),s=u(e),_.push(s);var c=u(r=m(_,r,\"message\")),o=r.length;_.push(c),a=m(_,a,\"key\");var h,p=0|t._crypto_onetimeauth_keybytes();a.length!==p&&b(_,\"invalid key length\"),h=u(a),_.push(h);var y=0==(0|t._crypto_onetimeauth_verify(s,c,o,0,h));return v(_),y}function sr(e,r,a,_,s,n,c){var o=[];i(c),f(o,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(o,\"keyLength must be an unsigned integer\");var h=u(r=m(o,r,\"password\")),y=r.length;o.push(h),a=m(o,a,\"salt\");var d,E=0|t._crypto_pwhash_saltbytes();a.length!==E&&b(o,\"invalid salt length\"),d=u(a),o.push(d),f(o,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(o,\"opsLimit must be an unsigned integer\"),f(o,s,\"memLimit\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(o,\"memLimit must be an unsigned integer\"),f(o,n,\"algorithm\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&b(o,\"algorithm must be an unsigned integer\");var x=new l(0|e),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash(k,e,0,h,y,0,d,_,0,s,n))){var S=p(x,c);return v(o),S}g(o,\"invalid usage\")}function nr(e,r,a,_,s,n){var c=[];i(n),f(c,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(c,\"keyLength must be an unsigned integer\");var o=u(r=m(c,r,\"password\")),h=r.length;c.push(o),a=m(c,a,\"salt\");var y,d=0|t._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==d&&b(c,\"invalid salt length\"),y=u(a),c.push(y),f(c,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(c,\"opsLimit must be an unsigned integer\"),f(c,s,\"memLimit\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(c,\"memLimit must be an unsigned integer\");var E=new l(0|e),x=E.address;if(c.push(x),0==(0|t._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,y,_,0,s))){var k=p(E,n);return v(c),k}g(c,\"invalid usage\")}function cr(e,r,a,_,s,n,c){var o=[];i(c);var h=u(e=m(o,e,\"password\")),y=e.length;o.push(h);var d=u(r=m(o,r,\"salt\")),E=r.length;o.push(d),f(o,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(o,\"opsLimit must be an unsigned integer\"),f(o,_,\"r\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(o,\"r must be an unsigned integer\"),f(o,s,\"p\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(o,\"p must be an unsigned integer\"),f(o,n,\"keyLength\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&b(o,\"keyLength must be an unsigned integer\");var x=new l(0|n),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash_scryptsalsa208sha256_ll(h,y,d,E,a,0,_,s,k,n))){var S=p(x,c);return v(o),S}g(o,\"invalid usage\")}function or(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"password\")),c=e.length;s.push(n),f(s,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(s,\"opsLimit must be an unsigned integer\"),f(s,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(s,\"memLimit must be an unsigned integer\");var o=new l(0|t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_scryptsalsa208sha256_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return v(s),h}g(s,\"invalid usage\")}function hr(e,r,a){var s=[];i(a),\"string\"!=typeof e&&b(s,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=c&&e.length-1!==c&&b(s,\"invalid hashed_password length\");var n=u(e),c=e.length-1;s.push(n);var o=u(r=m(s,r,\"password\")),h=r.length;s.push(o);var p=0==(0|t._crypto_pwhash_scryptsalsa208sha256_str_verify(n,o,h,0));return v(s),p}function pr(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"password\")),c=e.length;s.push(n),f(s,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(s,\"opsLimit must be an unsigned integer\"),f(s,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(s,\"memLimit must be an unsigned integer\");var o=new l(0|t._crypto_pwhash_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return v(s),h}g(s,\"invalid usage\")}function yr(e,r,a,s){var n=[];i(s),\"string\"!=typeof e&&b(n,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=o&&e.length-1!==o&&b(n,\"invalid hashed_password length\");var c=u(e),o=e.length-1;n.push(c),f(n,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(n,\"opsLimit must be an unsigned integer\"),f(n,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(n,\"memLimit must be an unsigned integer\");var h=0!=(0|t._crypto_pwhash_str_needs_rehash(c,r,0,a));return v(n),h}function ir(e,r,a){var s=[];i(a),\"string\"!=typeof e&&b(s,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=c&&e.length-1!==c&&b(s,\"invalid hashed_password length\");var n=u(e),c=e.length-1;s.push(n);var o=u(r=m(s,r,\"password\")),h=r.length;s.push(o);var p=0==(0|t._crypto_pwhash_str_verify(n,o,h,0));return v(s),p}function lr(e,r,a){var _=[];i(a),e=m(_,e,\"privateKey\");var s,n=0|t._crypto_scalarmult_scalarbytes();e.length!==n&&b(_,\"invalid privateKey length\"),s=u(e),_.push(s),r=m(_,r,\"publicKey\");var c,o=0|t._crypto_scalarmult_bytes();r.length!==o&&b(_,\"invalid publicKey length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"weak public key\")}function ur(e,r){var a=[];i(r),e=m(a,e,\"privateKey\");var _,s=0|t._crypto_scalarmult_scalarbytes();e.length!==s&&b(a,\"invalid privateKey length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"unknown error\")}function dr(e,r,a){var _=[];i(a),e=m(_,e,\"n\");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&b(_,\"invalid n length\"),s=u(e),_.push(s),r=m(_,r,\"p\");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&b(_,\"invalid p length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ed25519_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ed25519(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"invalid point or scalar is 0\")}function vr(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function gr(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function br(e,r,a){var _=[];i(a),e=m(_,e,\"n\");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&b(_,\"invalid n length\"),s=u(e),_.push(s),r=m(_,r,\"p\");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&b(_,\"invalid p length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ed25519_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ed25519_noclamp(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"invalid point or scalar is 0\")}function fr(e,r,a){var _=[];i(a),e=m(_,e,\"scalar\");var s,n=0|t._crypto_scalarmult_ristretto255_scalarbytes();e.length!==n&&b(_,\"invalid scalar length\"),s=u(e),_.push(s),r=m(_,r,\"element\");var c,o=0|t._crypto_scalarmult_ristretto255_bytes();r.length!==o&&b(_,\"invalid element length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ristretto255_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ristretto255(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"result is identity element\")}function mr(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_core_ristretto255_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_core_ristretto255_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ristretto255_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function Er(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"message\")),c=e.length;s.push(n),r=m(s,r,\"nonce\");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&b(s,\"invalid nonce length\"),o=u(r),s.push(o),a=m(s,a,\"key\");var y,d=0|t._crypto_secretbox_keybytes();a.length!==d&&b(s,\"invalid key length\"),y=u(a),s.push(y);var f=new l(0|c),E=f.address;s.push(E);var x=new l(0|t._crypto_secretbox_macbytes()),k=x.address;if(s.push(k),0==(0|t._crypto_secretbox_detached(E,k,n,c,0,o,y))){var S=p({mac:x,cipher:f},_);return v(s),S}g(s,\"invalid usage\")}function xr(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"message\")),c=e.length;s.push(n),r=m(s,r,\"nonce\");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&b(s,\"invalid nonce length\"),o=u(r),s.push(o),a=m(s,a,\"key\");var y,d=0|t._crypto_secretbox_keybytes();a.length!==d&&b(s,\"invalid key length\"),y=u(a),s.push(y);var f=new l(c+t._crypto_secretbox_macbytes()|0),E=f.address;if(s.push(E),0==(0|t._crypto_secretbox_easy(E,n,c,0,o,y))){var x=p(f,_);return v(s),x}g(s,\"invalid usage\")}function kr(e){var r=[];i(e);var a=new l(0|t._crypto_secretbox_keybytes()),_=a.address;r.push(_),t._crypto_secretbox_keygen(_);var s=p(a,e);return v(r),s}function Sr(e,r,a,_,s){var n=[];i(s);var c=u(e=m(n,e,\"ciphertext\")),o=e.length;n.push(c),r=m(n,r,\"mac\");var h,y=0|t._crypto_secretbox_macbytes();r.length!==y&&b(n,\"invalid mac length\"),h=u(r),n.push(h),a=m(n,a,\"nonce\");var d,f=0|t._crypto_secretbox_noncebytes();a.length!==f&&b(n,\"invalid nonce length\"),d=u(a),n.push(d),_=m(n,_,\"key\");var E,x=0|t._crypto_secretbox_keybytes();_.length!==x&&b(n,\"invalid key length\"),E=u(_),n.push(E);var k=new l(0|o),S=k.address;if(n.push(S),0==(0|t._crypto_secretbox_open_detached(S,c,h,o,0,d,E))){var T=p(k,s);return v(n),T}g(n,\"wrong secret key for the given ciphertext\")}function Tr(e,r,a,_){var s=[];i(_),e=m(s,e,\"ciphertext\");var n,c=t._crypto_secretbox_macbytes(),o=e.length;o>>0;return v([]),r}function ht(e,r){var a=[];i(r);for(var _=t._malloc(24),s=0;s<6;s++)t.setValue(_+4*s,t.Runtime.addFunction(e[[\"implementation_name\",\"random\",\"stir\",\"uniform\",\"buf\",\"close\"][s]]),\"i32\");0!=(0|t._randombytes_set_implementation(_))&&g(a,\"unsupported implementation\"),v(a)}function pt(e){i(e),t._randombytes_stir()}function yt(e,r){var a=[];i(r),f(a,e,\"upper_bound\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(a,\"upper_bound must be an unsigned integer\");var _=t._randombytes_uniform(e)>>>0;return v(a),_}function it(){var e=t._sodium_version_string(),r=t.UTF8ToString(e);return v([]),r}return l.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(t.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can added\");var t=e.length,a=0,_=0;if(r.length!=e.length)throw new TypeError(\"Arguments must have the same length\");for(_=0;_>=8,a+=e[_]+r[_],e[_]=255&a},e.base64_variants=c,e.compare=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(e.length!==r.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var t=0,a=1,_=e.length;_-- >0;)t|=r[_]-e[_]>>8&a,a&=(r[_]^e[_])-1>>8;return t+t+a-1},e.from_base64=function(e,r){r=o(r);var a,_=[],s=new l(3*(e=m(_,e,\"input\")).length/4),n=u(e),c=d(4),h=d(4);return _.push(n),_.push(s.address),_.push(s.result_bin_len_p),_.push(s.b64_end_p),0!==t._sodium_base642bin(s.address,s.length,n,e.length,0,c,h,r)&&g(_,\"invalid input\"),t.getValue(h,\"i32\")-n!==e.length&&g(_,\"incomplete input\"),s.length=t.getValue(c,\"i32\"),a=s.to_Uint8Array(),v(_),a},e.from_hex=function(e){var r,a=[],_=new l((e=m(a,e,\"input\")).length/2),s=u(e),n=d(4);return a.push(s),a.push(_.address),a.push(_.hex_end_p),0!==t._sodium_hex2bin(_.address,_.length,s,e.length,0,0,n)&&g(a,\"invalid input\"),t.getValue(n,\"i32\")-s!==e.length&&g(a,\"incomplete input\"),r=_.to_Uint8Array(),v(a),r},e.from_string=_,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be incremented\");for(var r=256,t=0,a=e.length;t>=8,r+=e[t],e[t]=255&r},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be checked\");for(var r=0,t=0,a=e.length;t 0\");var a,_=[],s=d(4),n=1,c=0,o=0|e.length,h=new l(o+r);_.push(s),_.push(h.address);for(var p=h.address,y=h.address+o+r;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==t._sodium_pad(s,h.address,e.length,r,h.length)&&g(_,\"internal error\"),h.length=t.getValue(s,\"i32\"),a=h.to_Uint8Array(),v(_),a},e.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((r|=0)<=0)throw new Error(\"block size must be > 0\");var a=[],_=u(e),s=d(4);return a.push(_),a.push(s),0!==t._sodium_unpad(s,_,e.length,r)&&g(a,\"unsupported/invalid padding\"),e=(e=new Uint8Array(e)).subarray(0,t.getValue(s,\"i32\")),v(a),e},e.ready=a,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=h,e.to_hex=n,e.to_string=s,e}var t=\"object\"==typeof e.sodium&&\"function\"==typeof e.sodium.onload?e.sodium.onload:null;\"function\"==typeof define&&define.amd?define([\"exports\",\"libsodium\"],r):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?r(exports,require(\"libsodium\")):e.sodium=r(e.commonJsStrict={},e.libsodium),t&&e.sodium.ready.then((function(){t(e.sodium)}))}(this);\n","!function(A){function I(A){\"use strict\";var I;void 0===(I=A)&&(I={});var g=I;\"object\"!=typeof g.sodium&&(\"object\"==typeof global?g=global:\"object\"==typeof window&&(g=window)),\"object\"==typeof g.sodium&&\"number\"==typeof g.sodium.totalMemory&&(I.TOTAL_MEMORY=g.sodium.totalMemory);var B=I;return I.ready=new Promise((function(A,I){(Q=B).onAbort=I,Q.print=function(A){},Q.printErr=function(A){},Q.onRuntimeInitialized=function(){try{Q._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},Q.useBackupModule=function(){return new Promise((function(A,I){(Q={}).onAbort=I,Q.onRuntimeInitialized=function(){Object.keys(B).forEach((function(A){\"getRandomValue\"!==A&&delete B[A]})),Object.keys(Q).forEach((function(A){B[A]=Q[A]})),A()};var g,Q=void 0!==Q?Q:{},C={};for(g in Q)Q.hasOwnProperty(g)&&(C[g]=Q[g]);var E=[],i=!1,n=!1,a=!1,r=!1;i=\"object\"==typeof window,n=\"function\"==typeof importScripts,a=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,r=!i&&!a&&!n;var o,e,t,f,c,y=\"\";function s(A){return Q.locateFile?Q.locateFile(A,y):y+A}a?(y=n?require(\"path\").dirname(y)+\"/\":__dirname+\"/\",o=function(A,I){var g=bA(A);return g?I?g:g.toString():(f||(f=require(\"fs\")),c||(c=require(\"path\")),A=c.normalize(A),f.readFileSync(A,I?null:\"utf8\"))},t=function(A){var I=o(A,!0);return I.buffer||(I=new Uint8Array(I)),G(I.buffer),I},process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),E=process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=Q),Q.inspect=function(){return\"[Emscripten Module object]\"}):r?(\"undefined\"!=typeof read&&(o=function(A){var I=bA(A);return I?_A(I):read(A)}),t=function(A){var I;return(I=bA(A))?I:\"function\"==typeof readbuffer?new Uint8Array(readbuffer(A)):(G(\"object\"==typeof(I=read(A,\"binary\"))),I)},\"undefined\"!=typeof scriptArgs?E=scriptArgs:void 0!==arguments&&(E=arguments),\"undefined\"!=typeof print&&(\"undefined\"==typeof console&&(console={}),console.log=print,console.warn=console.error=\"undefined\"!=typeof printErr?printErr:print)):(i||n)&&(n?y=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(y=document.currentScript.src),y=0!==y.indexOf(\"blob:\")?y.substr(0,y.lastIndexOf(\"/\")+1):\"\",o=function(A){try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.send(null),I.responseText}catch(I){var g=bA(A);if(g)return _A(g);throw I}},n&&(t=function(A){try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}catch(I){var g=bA(A);if(g)return g;throw I}}),e=function(A,I,g){var B=new XMLHttpRequest;B.open(\"GET\",A,!0),B.responseType=\"arraybuffer\",B.onload=function(){if(200==B.status||0==B.status&&B.response)I(B.response);else{var Q=bA(A);Q?I(Q.buffer):g()}},B.onerror=g,B.send(null)}),Q.print;var w,h=Q.printErr||void 0;for(g in C)C.hasOwnProperty(g)&&(Q[g]=C[g]);C=null,Q.arguments&&(E=Q.arguments),Q.thisProgram&&Q.thisProgram,Q.quit&&Q.quit,Q.wasmBinary&&(w=Q.wasmBinary),Q.noExitRuntime&&Q.noExitRuntime;var D,u={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),B=25;B>=0;--B)g[48+B]=52+B,g[65+B]=B,g[97+B]=26+B;function Q(A,I,B){for(var Q,C,E=0,i=I,n=B.length,a=I+(3*n>>2)-(\"=\"==B[n-2])-(\"=\"==B[n-1]);E>4,i>2),i>2]=n[0|K]|n[K+1|0]<<8|n[K+2|0]<<16|n[K+3|0]<<24,i[V+4>>2]=QA,16!=(0|(Z=Z+1|0)););for(g=X(W,A,64),K=i[(I=g)>>2],Z=i[I+4>>2],a=K,K=(QA=i[I+32>>2])+(W=i[I+128>>2])|0,I=($=i[I+36>>2])+i[I+132>>2]|0,I=K>>>0>>0?I+1|0:I,W=K,I=I+Z|0,W=I=(K=a+K|0)>>>0>>0?I+1|0:I,x=ug((Z=K)^(n[0|(K=A- -64|0)]|n[K+1|0]<<8|n[K+2|0]<<16|n[K+3|0]<<24)^-1377402159,I^(n[K+4|0]|n[K+5|0]<<8|n[K+6|0]<<16|n[K+7|0]<<24)^1359893119,32),K=I=p,I=I+1779033703|0,a=QA^(V=x-205731576|0),QA=I=V>>>0<4089235720?I+1|0:I,b=ug(a,$^I,24),m=I=p,j=K,a=x,I=I+W|0,I=(I=(x=b+Z|0)>>>0>>0?I+1|0:I)+(t=B=i[g+140>>2])|0,a=ug(a^(o=Z=(K=i[g+136>>2])+x|0),(G=x>>>0>o>>>0?I+1|0:I)^j,16),I=QA+(d=p)|0,t=ug((l=Z=V+a|0)^b,(W=V>>>0>l>>>0?I+1|0:I)^m,63),f=p,V=i[g+12>>2],Z=(b=i[g+144>>2])+($=QA=i[g+40>>2])|0,I=(T=i[g+148>>2])+(j=i[g+44>>2])|0,I=Z>>>0<$>>>0?I+1|0:I,$=Z,I=I+V|0,I=(Z=Z+i[g+8>>2]|0)>>>0<$>>>0?I+1|0:I,x=ug(Z^(n[A+72|0]|n[A+73|0]<<8|n[A+74|0]<<16|n[A+75|0]<<24)^725511199,(n[A+76|0]|n[A+77|0]<<8|n[A+78|0]<<16|n[A+79|0]<<24)^I^-1694144372,32),j=ug(r=(V=x-2067093701|0)^QA,j^(m=(QA=p)-((x>>>0<2067093701)+1150833018|0)|0),24),c=i[g+156>>2],r=j,I=I+($=p)|0,I=(I=(j=j+Z|0)>>>0>>0?I+1|0:I)+c|0,eA=ug((u=Z=j+i[g+152>>2]|0)^x,(k=j>>>0>u>>>0?I+1|0:I)^QA,16),I=m+(H=p)|0,cA=Z=V+eA|0,x=ug(r^Z,(V=V>>>0>Z>>>0?I+1|0:I)^$,63),m=p,QA=i[g+20>>2],Z=(U=i[g+160>>2])+(j=i[g+48>>2])|0,I=(iA=i[g+164>>2])+(y=i[g+52>>2])|0,$=Z,I=(I=Z>>>0>>0?I+1|0:I)+QA|0,rA=Z=Z+i[g+16>>2]|0,Z=Z>>>0<$>>>0?I+1|0:I,s=ug(rA^(n[A+80|0]|n[A+81|0]<<8|n[A+82|0]<<16|n[A+83|0]<<24)^-79577749,Z^(n[A+84|0]|n[A+85|0]<<8|n[A+86|0]<<16|n[A+87|0]<<24)^528734635,32),QA=I=p,I=I+1013904242|0,r=j^($=s-23791573|0),j=I=$>>>0<4271175723?I+1|0:I,I=ug(r,y^I,24),c=QA,Q=i[g+172>>2],r=I,e=s,s=I,rA=I+rA|0,I=(y=p)+Z|0,I=(I=s>>>0>rA>>>0?I+1|0:I)+(J=Q)|0,AA=ug(e^(F=Z=(QA=i[g+168>>2])+(s=rA)|0),(J=s>>>0>F>>>0?I+1|0:I)^c,16),I=j+(M=p)|0,y=ug(r^(_=Z=$+AA|0),(j=_>>>0<$>>>0?I+1|0:I)^y,63),c=p,s=i[g+28>>2],$=(Z=i[g+176>>2])+(D=rA=i[g+56>>2])|0,I=(yA=i[g+180>>2])+(w=i[g+60>>2])|0,I=(I=D>>>0>$>>>0?I+1|0:I)+s|0,I=(D=$)>>>0>(v=$=D+i[g+24>>2]|0)>>>0?I+1|0:I,S=ug(v^(n[A+88|0]|n[A+89|0]<<8|n[A+90|0]<<16|n[A+91|0]<<24)^327033209,I^(n[A+92|0]|n[A+93|0]<<8|n[A+94|0]<<16|n[A+95|0]<<24)^1541459225,32),s=ug(e=(r=(s=S)+1595750129|0)^rA,w^(rA=($=p)-((s>>>0<2699217167)+1521486533|0)|0),24),w=rA,Y=$,rA=i[g+188>>2],e=s,P=r,I=(D=p)+I|0,I=(I=(v=s+v|0)>>>0>>0?I+1|0:I)+(N=rA)|0,O=s=($=i[g+184>>2])+v|0,r=ug(s^S,(r=Y)^(Y=s>>>0>>0?I+1|0:I),16),I=(I=w)+(w=p)|0,v=s=P+r|0,S=D,D=I=s>>>0>>0?I+1|0:I,e=ug(e^s,S^I,63),s=p,S=m,P=x,L=_,I=m+G|0,m=o=o+x|0,I=(I=o>>>0>>0?I+1|0:I)+(N=q=i[g+196>>2])|0,_=ug((o=x=(IA=i[g+192>>2])+o|0)^r,(x=m>>>0>o>>>0?I+1|0:I)^w,32),I=(I=j)+(j=p)|0,G=I=(m=L+(G=_)|0)>>>0>>0?I+1|0:I,I=ug(P^m,I^S,24),fA=i[g+204>>2],P=I,r=_,w=o,o=I,_=w+I|0,I=(w=p)+x|0,I=(I=o>>>0>_>>>0?I+1|0:I)+(N=fA)|0,CA=x=(S=i[g+200>>2])+(o=_)|0,tA=ug(r^x,(o=o>>>0>x>>>0?I+1|0:I)^j,16),I=G+(_=p)|0,N=ug(P^(r=j=m+tA|0),(G=w)^(w=m>>>0>r>>>0?I+1|0:I),63),G=p,j=c,L=y,I=c+k|0,I=(I=(m=y+u|0)>>>0>>0?I+1|0:I)+(P=oA=i[g+212>>2])|0,u=ug((R=a)^(a=m=(x=i[g+208>>2])+(y=m)|0),(y=y>>>0>a>>>0?I+1|0:I)^d,32),I=D+(m=p)|0,j=ug(L^(c=v+u|0),(I=c>>>0>>0?I+1|0:I)^j,24),d=I,k=m,z=i[g+220>>2],L=j,R=c,I=(c=p)+y|0,I=(I=(D=a+j|0)>>>0>>0?I+1|0:I)+(P=z)|0,k=ug((D=j=(m=i[g+216>>2])+(y=D)|0)^u,(v=y>>>0>D>>>0?I+1|0:I)^k,16),I=(a=p)+d|0,aA=j=R+(y=k)|0,P=ug(L^j,(y=y>>>0>j>>>0?I+1|0:I)^c,63),c=p,d=s,L=e,I=s+J|0,I=(I=(e=e+F|0)>>>0>>0?I+1|0:I)+(u=E=i[g+228>>2])|0,e=ug((J=s=(j=i[g+224>>2])+e|0)^eA,(s=s>>>0>>0?I+1|0:I)^H,32),I=(H=p)+W|0,l=F=l+e|0,W=ug(L^F,(I=F>>>0>>0?I+1|0:I)^d,24),F=I,L=i[g+236>>2],u=W,I=(d=p)+s|0,I=(I=(J=J+W|0)>>>0>>0?I+1|0:I)+L|0,nA=ug((J=W=(BA=i[g+232>>2])+(s=J)|0)^e,(W=H)^(H=s>>>0>J>>>0?I+1|0:I),16),I=(I=F)+(F=p)|0,s=ug(u^(e=W=(s=nA)+l|0),(l=s>>>0>e>>>0?I+1|0:I)^d,63),d=p,u=f,gA=t,EA=cA,I=f+Y|0,I=(I=(cA=t+O|0)>>>0>>0?I+1|0:I)+(R=eA=i[g+244>>2])|0,f=I=(t=(W=i[g+240>>2])+(f=cA)|0)>>>0>>0?I+1|0:I,AA=ug(t^AA,I^M,32),I=(I=V)+(V=p)|0,O=M=EA+(Y=AA)|0,u=ug(gA^M,(I=Y>>>0>M>>>0?I+1|0:I)^u,24),gA=EA=p,M=I,Y=V,sA=u,I=f+EA|0,I=(I=(u=t+u|0)>>>0>>0?I+1|0:I)+(cA=i[g+252>>2])|0,u=t=(V=i[g+248>>2])+(f=u)|0,R=ug(t^AA,(R=Y)^(Y=t>>>0>>0?I+1|0:I),16),I=(I=M)+(M=p)|0,AA=ug(sA^(EA=t=(f=R)+O|0),(t=t>>>0>>0?I+1|0:I)^gA,63),gA=I=p,f=I,sA=k,I=o+eA|0,I=(I=(k=W)>>>0>(O=k+CA|0)>>>0?I+1|0:I)+f|0,O=ug(sA^(f=k=(o=O)+AA|0),(k=o>>>0>f>>>0?I+1|0:I)^a,32),I=l+(o=p)|0,e=I=(a=e+O|0)>>>0>>0?I+1|0:I,CA=AA=ug(AA^a,gA^I,24),gA=I=p,l=I,wA=AA,I=k+oA|0,I=(I=(AA=f+x|0)>>>0>>0?I+1|0:I)+l|0,CA=f=CA+(k=AA)|0,sA=ug(f^O,(l=o)^(o=f>>>0>>0?I+1|0:I),16),I=e+(l=p)|0,e=I=(f=a+sA|0)>>>0>>0?I+1|0:I,AA=ug(wA^(a=f),I^gA,63),k=p,O=N,I=iA+(f=G)|0,I=(I=(N=U+N|0)>>>0>>0?I+1|0:I)+v|0,U=I=(G=D+N|0)>>>0>>0?I+1|0:I,v=ug(G^nA,I^F,32),I=(I=t)+(t=p)|0,I=(F=(D=v)+EA|0)>>>0>>0?I+1|0:I,D=f,f=I,N=ug(O^F,D^I,24),iA=I=p,D=I,O=v,I=U+q|0,I=(I=(v=G+IA|0)>>>0>>0?I+1|0:I)+D|0,I=(G=(U=v)+N|0)>>>0>>0?I+1|0:I,U=G,D=I,nA=ug(O^G,I^t,16),I=f+(v=p)|0,EA=t=F+nA|0,N=ug(t^N,(f=t>>>0>>0?I+1|0:I)^iA,63),t=p,G=c,I=c+fA|0,I=(I=(F=S+P|0)>>>0>>0?I+1|0:I)+H|0,M=ug((S=c=F+J|0)^R,(c=c>>>0>>0?I+1|0:I)^M,32),I=w+(H=p)|0,I=r>>>0>(F=r+M|0)>>>0?I+1|0:I,r=G,G=I,r=w=ug(F^P,r^I,24),P=I=p,J=I,O=M,I=c+cA|0,I=(I=(w=(M=V)+S|0)>>>0>>0?I+1|0:I)+J|0,R=c=r+w|0,gA=ug(O^c,(M=H)^(H=c>>>0>>0?I+1|0:I),16),I=G+(J=p)|0,P=ug((S=c=F+gA|0)^r,(c=c>>>0>>0?I+1|0:I)^P,63),G=p,r=s,I=(F=d)+L|0,I=(I=(M=s+BA|0)>>>0>>0?I+1|0:I)+Y|0,w=ug((M=s=u+M|0)^tA,(s=s>>>0>>0?I+1|0:I)^_,32),I=(I=y)+(y=p)|0,_=ug(r^(Y=d=w+aA|0),(I=d>>>0>>0?I+1|0:I)^F,24),u=d=p,F=I,O=Y,Y=w,w=(I=M)+(M=Z)|0,I=s+yA|0,I=(I=w>>>0>>0?I+1|0:I)+d|0,M=s=w+(r=_)|0,w=I=s>>>0>>0?I+1|0:I,Y=ug(Y^s,I^y,16),I=(d=p)+F|0,O=ug(_^(r=y=O+(s=Y)|0),(s=r>>>0>>0?I+1|0:I)^u,63),y=p,F=t,_=S,u=Y,I=o+B|0,I=(I=(Y=K)>>>0>(S=Y+CA|0)>>>0?I+1|0:I)+t|0,S=ug(u^(t=Y=S+N|0),(o=d)^(d=t>>>0>>0?I+1|0:I),32),I=(I=c)+(c=p)|0,I=(o=S)>>>0>(Y=_+o|0)>>>0?I+1|0:I,u=_=ug((o=Y)^N,I^F,24),N=F=p,Y=I,CA=S,I=d+E|0,I=(I=(S=t+j|0)>>>0>>0?I+1|0:I)+F|0,F=t=(d=S)+_|0,tA=ug(CA^t,(S=t>>>0>>0?I+1|0:I)^c,16),I=(I=Y)+(Y=p)|0,o=t=(c=tA)+o|0,iA=ug(t^u,(_=t>>>0>>0?I+1|0:I)^N,63),c=p,N=r,I=D+(t=G)|0,I=(I=(d=U+P|0)>>>0>>0?I+1|0:I)+(u=aA=i[g+132>>2])|0,d=I=(G=(r=i[g+128>>2])+d|0)>>>0>>0?I+1|0:I,D=ug(G^sA,I^l,32),I=(I=s)+(s=p)|0,l=U=N+D|0,N=u=ug(U^P,(I=U>>>0>>0?I+1|0:I)^t,24),P=t=p,U=I,CA=D,I=d+T|0,d=D=b+G|0,I=(I=D>>>0>>0?I+1|0:I)+t|0,t=ug(CA^(D=G=D+u|0),(t=s)^(s=D>>>0>>0?I+1|0:I),16),I=(I=U)+(U=p)|0,l=G=t+l|0,fA=ug(G^N,(u=G>>>0>>0?I+1|0:I)^P,63),G=p,d=y,I=H+z|0,I=(I=(P=m+R|0)>>>0>>0?I+1|0:I)+y|0,I=(H=(N=P)+O|0)>>>0>>0?I+1|0:I,N=H,y=I,P=ug(H^nA,I^v,32),I=e+(H=p)|0,I=a>>>0>(v=a+P|0)>>>0?I+1|0:I,O=e=ug((a=v)^O,I^d,24),CA=d=p,v=I,R=a,I=y+rA|0,I=(a=$)>>>0>(e=a+N|0)>>>0?I+1|0:I,a=e,I=I+d|0,e=H,H=I=a>>>0>(y=O+a|0)>>>0?I+1|0:I,nA=ug((a=y)^P,e^I,16),I=(y=p)+v|0,O=ug((v=d=R+(e=nA)|0)^O,(I=e>>>0>v>>>0?I+1|0:I)^CA,63),d=p,N=I,P=t,R=AA,I=Q+(e=k)|0,I=(I=(t=QA)>>>0>(AA=t+AA|0)>>>0?I+1|0:I)+w|0,k=t=M+AA|0,w=ug(t^gA,(w=J)^(J=t>>>0>>0?I+1|0:I),32),I=(t=p)+f|0,CA=M=w+EA|0,e=ug(R^M,(I=M>>>0>>0?I+1|0:I)^e,24),gA=EA=p,f=I,M=t,EA=e,R=w,I=J+gA|0,I=(I=(w=e+k|0)>>>0>>0?I+1|0:I)+(AA=i[g+156>>2])|0,J=k=(t=i[g+152>>2])+w|0,e=M,M=I=k>>>0>>0?I+1|0:I,R=ug(R^k,e^I,16),I=(I=f)+(f=p)|0,e=I=(w=R)>>>0>(k=w+CA|0)>>>0?I+1|0:I,CA=ug(EA^(w=k),I^gA,63),EA=I=p,k=I,gA=v,I=S+z|0,I=(I=(v=F+m|0)>>>0>>0?I+1|0:I)+k|0,k=F=v+CA|0,P=ug(F^P,(S=U)^(U=F>>>0>>0?I+1|0:I),32),I=(F=p)+N|0,S=I=(v=gA+(S=P)|0)>>>0>>0?I+1|0:I,EA=CA=ug(CA^v,EA^I,24),gA=I=p,N=I,sA=P,I=U+q|0,I=(I=(P=k+IA|0)>>>0>>0?I+1|0:I)+N|0,I=(k=(U=P)+CA|0)>>>0>>0?I+1|0:I,U=k,N=F,F=I,CA=ug(sA^k,N^I,16),I=S+(N=p)|0,I=(k=v+CA|0)>>>0>>0?I+1|0:I,v=k,S=I,IA=ug(k^EA,I^gA,63),k=p,P=c,gA=iA,I=c+E|0,I=s+(j>>>0>(iA=j+iA|0)>>>0?I+1|0:I)|0,q=c=D+iA|0,iA=ug(c^nA,(s=y)^(y=c>>>0>>0?I+1|0:I),32),I=e+(c=p)|0,D=I=(s=w+iA|0)>>>0>>0?I+1|0:I,P=e=ug(gA^s,I^P,24),nA=I=p,w=I,I=y+aA|0,I=(I=(e=r+q|0)>>>0>>0?I+1|0:I)+w|0,q=y=P+(r=e)|0,iA=ug(y^iA,(w=y>>>0>>0?I+1|0:I)^c,16),I=D+(r=p)|0,aA=y=s+iA|0,e=ug(y^P,(s=y>>>0>>0?I+1|0:I)^nA,63),y=p,I=Q+(c=G)|0,I=H+((D=QA)>>>0>(P=D+fA|0)>>>0?I+1|0:I)|0,D=f,f=I=a>>>0>(G=a+P|0)>>>0?I+1|0:I,P=ug((a=G)^R,D^I,32),I=_+(G=p)|0,I=o>>>0>(H=o+P|0)>>>0?I+1|0:I,o=c,c=I,o=ug(H^fA,o^I,24),fA=I=p,D=I,gA=o,I=f+T|0,I=(I=(o=b)>>>0>(_=o+a|0)>>>0?I+1|0:I)+D|0,nA=f=gA+(o=_)|0,R=ug(f^P,(D=f>>>0>>0?I+1|0:I)^G,16),I=c+(o=p)|0,P=f=H+R|0,_=ug(gA^f,(G=f>>>0>>0?I+1|0:I)^fA,63),f=p,I=cA+(c=d)|0,I=M+((a=(H=V)+O|0)>>>0>>0?I+1|0:I)|0,H=I=(d=J+a|0)>>>0>>0?I+1|0:I,a=ug(d^tA,I^Y,32),I=u+(J=p)|0,Y=c,c=I=l>>>0>(M=l+a|0)>>>0?I+1|0:I,l=ug(M^O,Y^I,24),O=I=p,Y=I,gA=a,I=H+L|0,I=(I=(a=d+BA|0)>>>0>>0?I+1|0:I)+Y|0,a=ug(gA^(Y=d=a+(u=l)|0),(u=J)^(J=a>>>0>Y>>>0?I+1|0:I),16),I=c+(H=p)|0,l=ug(l^(u=d=M+a|0),(d=u>>>0>>0?I+1|0:I)^O,63),c=p,M=y,O=e,gA=a,I=F+oA|0,F=a=U+x|0,I=(I=a>>>0>>0?I+1|0:I)+y|0,e=ug(gA^(a=U=a+e|0),(y=F>>>0>a>>>0?I+1|0:I)^H,32),I=(I=G)+(G=p)|0,U=I=(H=e+P|0)>>>0>>0?I+1|0:I,P=M=ug(O^H,I^M,24),O=I=p,F=I,I=y+eA|0,I=(I=(a=(M=W)+a|0)>>>0>>0?I+1|0:I)+F|0,fA=y=P+a|0,tA=ug(y^e,(F=y>>>0>>0?I+1|0:I)^G,16),I=U+(M=p)|0,P=ug((EA=y=H+tA|0)^P,(y=y>>>0>>0?I+1|0:I)^O,63),G=p,H=f,e=_,I=w+AA|0,I=(I=(_=t+q|0)>>>0>>0?I+1|0:I)+f|0,f=I=(w=_)>>>0>(U=e+w|0)>>>0?I+1|0:I,_=ug((w=U)^CA,I^N,32),I=(I=d)+(d=p)|0,I=(a=_)>>>0>(U=a+u|0)>>>0?I+1|0:I,u=e=ug(e^(a=U),I^H,24),U=I,N=a,a=_,_=(I=w)+(w=Z)|0,I=f+yA|0,I=(I=w>>>0>_>>>0?I+1|0:I)+(H=p)|0,I=(f=(w=_)+e|0)>>>0>>0?I+1|0:I,w=f,_=I,a=ug(a^f,I^d,16),I=(e=p)+U|0,d=ug((CA=f=N+a|0)^u,(f=f>>>0>>0?I+1|0:I)^H,63),H=p,U=c,N=l,I=D+rA|0,I=(I=(u=(l=$)+nA|0)>>>0>>0?I+1|0:I)+c|0,l=D=N+u|0,c=I=D>>>0>>0?I+1|0:I,u=ug(D^iA,I^r,32),I=S+(D=p)|0,S=r=v+u|0,N=r=ug(N^r,(I=r>>>0>>0?I+1|0:I)^U,24),q=U=p,v=I,O=S,I=c+B|0,I=(I=(r=(S=K)+l|0)>>>0>>0?I+1|0:I)+U|0,I=(c=N+r|0)>>>0>>0?I+1|0:I,S=c,r=D,D=I,nA=ug(c^u,r^I,16),I=(I=v)+(v=p)|0,N=ug((c=O+(U=nA)|0)^N,(I=c>>>0>>0?I+1|0:I)^q,63),U=p,l=c,u=I,I=J+(r=k)|0,k=c=Y+IA|0,I=(I=c>>>0>>0?I+1|0:I)+(q=i[g+204>>2])|0,k=I=(c=(O=i[g+200>>2])+c|0)>>>0>>0?I+1|0:I,Y=ug(c^R,I^o,32),I=(I=s)+(s=p)|0,I=(o=Y)>>>0>(J=o+aA|0)>>>0?I+1|0:I,r=ug((o=J)^IA,I^r,24),R=aA=p,J=I,gA=o,aA=Y,I=k+R|0,I=(I=(Y=c+r|0)>>>0>>0?I+1|0:I)+(IA=i[g+164>>2])|0,Y=c=(iA=i[g+160>>2])+(k=Y)|0,aA=ug(aA^c,(o=c>>>0>>0?I+1|0:I)^s,16),I=(I=J)+(J=p)|0,r=ug(r^(gA=c=gA+(s=aA)|0),(c=c>>>0>>0?I+1|0:I)^R,63),R=I=p,s=I,sA=a,I=F+rA|0,I=(I=(a=(k=$)+fA|0)>>>0>>0?I+1|0:I)+s|0,e=ug(sA^(s=k=a+r|0),(k=a>>>0>s>>>0?I+1|0:I)^e,32),I=(F=p)+u|0,l=a=l+e|0,u=ug(r^a,(I=a>>>0>>0?I+1|0:I)^R,24),R=r=p,a=I,fA=l,sA=e,I=k+q|0,I=(I=(e=s+O|0)>>>0>>0?I+1|0:I)+r|0,l=s=e+u|0,sA=ug(sA^s,(r=F)^(F=s>>>0>>0?I+1|0:I),16),I=(r=p)+a|0,fA=ug((wA=s=fA+(k=sA)|0)^u,(s=s>>>0>>0?I+1|0:I)^R,63),k=p,I=AA+(a=G)|0,I=(I=(e=t+P|0)>>>0>>0?I+1|0:I)+_|0,e=ug((_=t=e+w|0)^nA,(t=t>>>0>>0?I+1|0:I)^v,32),I=(I=c)+(c=p)|0,w=I=e>>>0>(G=e+gA|0)>>>0?I+1|0:I,u=a=ug(G^P,I^a,24),P=I=p,v=I,a=(I=_)+(_=K)|0,I=t+B|0,I=(I=a>>>0<_>>>0?I+1|0:I)+v|0,AA=t=u+a|0,nA=ug(t^e,(v=t>>>0>>0?I+1|0:I)^c,16),I=w+(_=p)|0,R=t=G+nA|0,a=ug(t^u,(c=t>>>0>>0?I+1|0:I)^P,63),t=p,e=d,I=(G=H)+L|0,I=(I=(w=d+BA|0)>>>0>>0?I+1|0:I)+D|0,H=I=(d=w+S|0)>>>0>>0?I+1|0:I,D=ug(d^aA,I^J,32),I=(I=y)+(y=p)|0,I=(w=D)>>>0>(J=w+EA|0)>>>0?I+1|0:I,S=ug(e^(w=J),I^G,24),u=G=p,J=I,P=w,L=D,I=H+E|0,H=D=d+j|0,I=(I=D>>>0>>0?I+1|0:I)+G|0,aA=ug(L^(D=d=D+(e=S)|0),(w=H>>>0>D>>>0?I+1|0:I)^y,16),I=(I=J)+(J=p)|0,u=ug(S^(e=y=P+(G=aA)|0),(G=e>>>0>>0?I+1|0:I)^u,63),y=p,d=U,I=U+z|0,I=(I=(S=m+N|0)>>>0>>0?I+1|0:I)+o|0,I=(H=Y+S|0)>>>0>>0?I+1|0:I,Y=H,H=I,S=ug(Y^tA,I^M,32),I=(I=f)+(f=p)|0,o=d,d=I=(U=(M=S)+CA|0)>>>0>>0?I+1|0:I,N=o=ug(U^N,o^I,24),P=I=p,M=I,L=S,S=(I=Y)+(Y=W)|0,I=H+eA|0,I=(I=Y>>>0>S>>>0?I+1|0:I)+M|0,M=H=(Y=S)+o|0,o=ug(L^H,(Y=H>>>0>>0?I+1|0:I)^f,16),I=d+(H=p)|0,I=(f=U+o|0)>>>0>>0?I+1|0:I,U=f,S=I,N=ug(f^N,I^P,63),f=p,d=t,P=a,L=o,I=F+T|0,I=(I=(a=(o=b)+l|0)>>>0>>0?I+1|0:I)+t|0,t=I=a>>>0>(F=P+a|0)>>>0?I+1|0:I,o=ug(L^F,I^H,32),I=(I=G)+(G=p)|0,I=(a=o)>>>0>(H=a+e|0)>>>0?I+1|0:I,l=e=ug(P^(a=H),I^d,24),H=I,P=o,o=(I=F)+(F=Z)|0,I=t+yA|0,I=(I=o>>>0>>0?I+1|0:I)+(d=p)|0,F=t=o+e|0,o=I=t>>>0>>0?I+1|0:I,t=(G=tA=ug(P^t,I^G,16))+a|0,I=(a=p)+H|0,e=t,L=ug(H=t^l,(l=t>>>0>>0?I+1|0:I)^d,63),d=p,I=v+Q|0,I=(I=(G=QA)>>>0>(H=G+AA|0)>>>0?I+1|0:I)+(t=y)|0,v=G=H+u|0,r=ug(G^sA,(y=G>>>0>>0?I+1|0:I)^r,32),I=S+(G=p)|0,I=(H=U+r|0)>>>0>>0?I+1|0:I,U=H,S=ug(H^u,I^t,24),P=t=p,H=I,AA=U,I=y+oA|0,I=(U=x)>>>0>(v=U+v|0)>>>0?I+1|0:I,U=v,I=I+t|0,v=y=v+(u=S)|0,y=ug(y^r,(S=y>>>0>>0?I+1|0:I)^G,16),I=(U=p)+H|0,EA=t=AA+y|0,BA=ug(t^u,(G=t>>>0>>0?I+1|0:I)^P,63),H=p,P=N,I=w+IA|0,I=(I=(r=D+iA|0)>>>0>>0?I+1|0:I)+(t=f)|0,u=ug((f=D=r+N|0)^nA,(D=r>>>0>f>>>0?I+1|0:I)^_,32),I=(I=s)+(s=p)|0,N=w=(_=u)+wA|0,r=ug(P^w,(I=w>>>0<_>>>0?I+1|0:I)^t,24),w=t=p,_=I,P=r,I=D+t|0,I=(I=(r=f+r|0)>>>0>>0?I+1|0:I)+(AA=i[g+132>>2])|0,D=f=(t=i[g+128>>2])+r|0,r=I=f>>>0>>0?I+1|0:I,nA=ug(f^u,I^s,16),I=(I=_)+(_=p)|0,CA=ug(P^(f=(s=nA)+N|0),(I=f>>>0>>0?I+1|0:I)^w,63),s=p,u=f,N=I,P=y,I=cA+(w=k)|0,I=(I=(f=(y=V)+fA|0)>>>0>>0?I+1|0:I)+Y|0,M=ug((f=y=f+M|0)^aA,(k=f>>>0>>0?I+1|0:I)^J,32),I=(y=p)+c|0,I=(Y=M)>>>0>(J=Y+R|0)>>>0?I+1|0:I,w=ug((Y=J)^fA,I^w,24),gA=R=p,c=I,J=y,aA=M,I=k+R|0,I=(I=(M=f+w|0)>>>0>>0?I+1|0:I)+(fA=i[g+196>>2])|0,M=f=(y=i[g+192>>2])+(k=M)|0,aA=ug(aA^f,(R=J)^(J=f>>>0>>0?I+1|0:I),16),I=(I=c)+(c=p)|0,w=ug(w^(R=f=(k=aA)+Y|0),(f=f>>>0>>0?I+1|0:I)^gA,63),gA=I=p,k=I,I=o+q|0,I=(I=(Y=F+O|0)>>>0>>0?I+1|0:I)+k|0,I=(F=Y+w|0)>>>0>>0?I+1|0:I,Y=F,k=I,o=ug(F^P,I^U,32),I=(U=p)+N|0,u=F=u+o|0,N=ug(w^F,(I=F>>>0>>0?I+1|0:I)^gA,24),q=F=p,w=I,P=o,I=k+AA|0,I=(I=(o=t+Y|0)>>>0>>0?I+1|0:I)+F|0,O=k=o+N|0,gA=ug(P^k,(F=k>>>0>>0?I+1|0:I)^U,16),I=(I=w)+(w=p)|0,Y=k=(U=gA)+u|0,q=ug(k^N,(o=k>>>0>>0?I+1|0:I)^q,63),U=p,I=Q+(k=d)|0,I=S+((u=QA)>>>0>(N=u+L|0)>>>0?I+1|0:I)|0,v=I=(d=v+N|0)>>>0>>0?I+1|0:I,u=ug(d^nA,I^_,32),I=(I=f)+(f=p)|0,I=(_=u)>>>0>(S=_+R|0)>>>0?I+1|0:I,_=k,k=I,N=ug(S^L,_^I,24),L=I=p,_=I,P=u,I=v+rA|0,I=(I=(u=d+$|0)>>>0>>0?I+1|0:I)+_|0,_=I=(d=(v=u)+N|0)>>>0>>0?I+1|0:I,nA=ug(P^(v=d),I^f,16),I=k+(u=p)|0,R=f=S+nA|0,N=ug(f^N,(d=f>>>0>>0?I+1|0:I)^L,63),f=p,k=H,I=H+T|0,I=r+(b>>>0>(P=b+BA|0)>>>0?I+1|0:I)|0,r=c,c=I=D>>>0>(H=D+P|0)>>>0?I+1|0:I,P=ug(H^aA,r^I,32),I=l+(D=p)|0,r=k,k=I=e>>>0>(S=e+P|0)>>>0?I+1|0:I,l=e=ug(S^BA,r^I,24),r=I=p,I=c+IA|0,I=(I=(e=H+iA|0)>>>0>>0?I+1|0:I)+r|0,IA=c=l+e|0,iA=ug(c^P,(H=c>>>0>>0?I+1|0:I)^D,16),I=k+(D=p)|0,BA=c=S+iA|0,e=ug(c^l,(k=c>>>0>>0?I+1|0:I)^r,63),c=p,S=s,I=s+oA|0,I=J+((r=x)>>>0>(l=r+CA|0)>>>0?I+1|0:I)|0,a=ug((r=s=M+l|0)^tA,(s=r>>>0>>0?I+1|0:I)^a,32),I=(I=G)+(G=p)|0,P=S=ug((l=J=a+EA|0)^CA,(I=a>>>0>l>>>0?I+1|0:I)^S,24),L=J=p,M=I,I=s+cA|0,I=(I=(r=(S=V)+r|0)>>>0>>0?I+1|0:I)+J|0,J=s=P+r|0,a=ug(s^a,(S=s>>>0>>0?I+1|0:I)^G,16),I=(I=M)+(M=p)|0,CA=s=a+l|0,P=ug(s^P,(G=s>>>0>>0?I+1|0:I)^L,63),s=p,L=N,aA=a,I=F+eA|0,I=(I=(a=W)>>>0>(l=a+O|0)>>>0?I+1|0:I)+(r=f)|0,f=I=(a=l)>>>0>(F=a+N|0)>>>0?I+1|0:I,l=ug(aA^(a=F),I^M,32),I=(I=k)+(k=p)|0,N=F=(M=l)+BA|0,L=r=ug(L^F,(I=F>>>0>>0?I+1|0:I)^r,24),BA=F=p,M=I,I=f+B|0,I=(I=(a=(r=K)+a|0)>>>0>>0?I+1|0:I)+F|0,tA=f=L+a|0,aA=ug(f^l,(r=k)^(k=f>>>0>>0?I+1|0:I),16),I=(F=p)+M|0,M=f=(r=aA)+N|0,L=ug(f^L,(r=f>>>0>>0?I+1|0:I)^BA,63),f=p,N=e,I=_+z|0,_=e=m+v|0,I=(I=e>>>0>>0?I+1|0:I)+(a=c)|0,l=ug((e=v=N+e|0)^gA,(c=e>>>0<_>>>0?I+1|0:I)^w,32),I=(I=G)+(G=p)|0,v=I=(w=(v=l)+CA|0)>>>0>>0?I+1|0:I,N=a=ug(N^w,I^a,24),BA=I=p,_=I,I=c+E|0,I=(I=(a=j)>>>0>(e=a+e|0)>>>0?I+1|0:I)+_|0,_=c=N+(a=e)|0,G=ug(c^l,(a=c>>>0>>0?I+1|0:I)^G,16),I=v+(e=p)|0,I=(c=w+G|0)>>>0>>0?I+1|0:I,w=c,v=I,BA=ug(c^N,I^BA,63),c=p,l=s,O=P,I=H+yA|0,I=(I=(N=Z)>>>0>(P=N+IA|0)>>>0?I+1|0:I)+s|0,I=(H=O+(N=P)|0)>>>0>>0?I+1|0:I,N=H,s=I,P=ug(H^nA,I^u,32),I=o+(H=p)|0,o=I=(u=Y+P|0)>>>0>>0?I+1|0:I,u=ug(O^(Y=u),I^l,24),O=I=p,l=I,I=s+fA|0,I=(I=(N=y+N|0)>>>0>>0?I+1|0:I)+l|0,l=s=(IA=u)+(u=N)|0,CA=ug(s^P,(N=H)^(H=s>>>0>>0?I+1|0:I),16),I=o+(u=p)|0,I=(s=Y+CA|0)>>>0>>0?I+1|0:I,Y=s,IA=ug(s^IA,I^O,63),s=p,N=I,gA=q,I=S+(o=U)|0,I=(I=(q=J+q|0)>>>0>>0?I+1|0:I)+(O=nA=i[g+156>>2])|0,J=I=(U=(P=i[g+152>>2])+(J=q)|0)>>>0>>0?I+1|0:I,S=ug(U^iA,I^D,32),I=(I=d)+(d=p)|0,q=D=S+R|0,O=o=ug(gA^D,(I=D>>>0>>0?I+1|0:I)^o,24),R=iA=p,D=I,gA=EA=i[g+236>>2],EA=q,q=S,I=J+R|0,I=(I=(o=o+U|0)>>>0>>0?I+1|0:I)+gA|0,I=(U=(S=i[g+232>>2])+o|0)>>>0>>0?I+1|0:I,o=d,d=I,iA=ug(q^U,o^I,16),I=(J=p)+D|0,O=ug((D=o=EA+(q=iA)|0)^O,(o=o>>>0>>0?I+1|0:I)^R,63),R=I=p,q=I,EA=G,I=k+T|0,I=(I=(G=b+tA|0)>>>0>>0?I+1|0:I)+q|0,e=ug(EA^(q=b=G+O|0),(b=b>>>0>>0?I+1|0:I)^e,32),I=(G=p)+N|0,N=k=Y+e|0,T=ug(O^k,R^(I=k>>>0>>0?I+1|0:I),24),tA=k=p,Y=I,O=N,R=e,I=b+E|0,I=(I=(e=j)>>>0>(N=e+q|0)>>>0?I+1|0:I)+k|0,R=ug(R^(k=b=(e=N)+T|0),(e=e>>>0>k>>>0?I+1|0:I)^G,16),I=(I=Y)+(Y=p)|0,N=b=O+(G=R)|0,O=ug(b^T,(q=b>>>0>>0?I+1|0:I)^tA,63),G=p,b=f,EA=L,I=f+yA|0,I=a+(Z>>>0>(L=Z+L|0)>>>0?I+1|0:I)|0,u=ug((T=f=_+L|0)^CA,(f=f>>>0<_>>>0?I+1|0:I)^u,32),I=o+(_=p)|0,I=(a=D+u|0)>>>0>>0?I+1|0:I,D=a,o=b,b=I,L=a=ug(EA^a,o^I,24),CA=I=p,o=I,EA=a,tA=u,I=f+oA|0,I=(I=(a=x)>>>0>(u=a+T|0)>>>0?I+1|0:I)+o|0,L=f=L+(a=u)|0,tA=ug(tA^f,(o=f>>>0>>0?I+1|0:I)^_,16),I=b+(_=p)|0,I=(f=D+tA|0)>>>0>>0?I+1|0:I,D=f,a=I,u=ug(EA^f,I^CA,63),f=p,b=c,I=c+AA|0,I=(I=(T=t+BA|0)>>>0>>0?I+1|0:I)+H|0,I=(t=l+T|0)>>>0>>0?I+1|0:I,l=t,t=I,T=ug(l^iA,I^J,32),I=r+(c=p)|0,r=b,b=I=(H=M+T|0)>>>0>>0?I+1|0:I,r=M=ug(H^BA,r^I,24),BA=I=p,J=I,I=t+z|0,I=(I=(M=m+l|0)>>>0>>0?I+1|0:I)+J|0,l=m=r+(t=M)|0,T=ug(m^T,(M=c)^(c=t>>>0>m>>>0?I+1|0:I),16),I=b+(J=p)|0,z=m=H+T|0,M=ug(m^r,(t=m>>>0>>0?I+1|0:I)^BA,63),b=p,m=s,I=s+fA|0,I=(I=(H=y+IA|0)>>>0>>0?I+1|0:I)+d|0,I=(y=H+U|0)>>>0>>0?I+1|0:I,U=y,y=I,F=ug(U^aA,I^F,32),I=v+(s=p)|0,r=m,m=I=w>>>0>(d=w+F|0)>>>0?I+1|0:I,v=w=ug(d^IA,r^I,24),r=I=p,I=y+nA|0,I=(I=(U=U+P|0)>>>0

>>0?I+1|0:I)+r|0,H=y=U+w|0,F=ug(y^F,(w=s)^(s=y>>>0>>0?I+1|0:I),16),I=m+(U=p)|0,r=ug((w=y=d+F|0)^v,(y=y>>>0>>0?I+1|0:I)^r,63),m=p,d=f,P=F,I=f+e|0,I=(F=k+u|0)>>>0>>0?I+1|0:I,k=F,I=I+(v=i[g+164>>2])|0,v=ug(P^(F=f=F+i[g+160>>2]|0),(f=f>>>0>>0?I+1|0:I)^U,32),I=(I=t)+(t=p)|0,e=d,d=I=(k=(U=v)+z|0)>>>0>>0?I+1|0:I,e=ug(k^u,e^I,24),P=I=p,U=I,I=f+gA|0,I=(I=(F=F+S|0)>>>0>>0?I+1|0:I)+U|0,BA=ug((z=f=F+e|0)^v,(f=f>>>0>>0?I+1|0:I)^t,16),I=d+(U=p)|0,d=t=k+BA|0,u=ug(t^e,(k=t>>>0>>0?I+1|0:I)^P,63),t=p,e=M,S=w,I=o+rA|0,I=(I=(w=(M=$)+L|0)>>>0>>0?I+1|0:I)+(F=b)|0,Y=ug((v=M=e+w|0)^R,(b=w>>>0>v>>>0?I+1|0:I)^Y,32),I=(I=y)+(y=p)|0,o=F,F=I=(w=Y)>>>0>(M=S+w|0)>>>0?I+1|0:I,o=S=ug(e^M,o^I,24),e=I=p,S=Y,I=b+Q|0,I=(I=(Y=QA)>>>0>(v=Y+v|0)>>>0?I+1|0:I)+e|0,v=ug(S^(w=b=v+o|0),(Y=w>>>0>>0?I+1|0:I)^y,16),I=F+(S=p)|0,P=ug((F=b=M+v|0)^o,(M=F>>>0>>0?I+1|0:I)^e,63),b=p,L=r,I=c+cA|0,I=(o=V)>>>0>(r=o+l|0)>>>0?I+1|0:I,o=r,I=I+(y=m)|0,e=ug((r=c=L+r|0)^tA,(m=r>>>0>>0?I+1|0:I)^_,32),I=q+(c=p)|0,_=y,y=I=(o=N+e|0)>>>0>>0?I+1|0:I,l=ug(L^o,_^I,24),q=I=p,_=I,N=e,e=(I=r)+(r=W)|0,I=m+eA|0,I=(I=r>>>0>e>>>0?I+1|0:I)+_|0,_=I=(r=e)>>>0>(m=r+l|0)>>>0?I+1|0:I,L=ug(N^m,I^c,16),I=y+(r=p)|0,N=ug((c=o+L|0)^l,(I=c>>>0>>0?I+1|0:I)^q,63),y=p,e=I,I=B+(o=G)|0,I=s+((l=K)>>>0>(q=l+O|0)>>>0?I+1|0:I)|0,l=G=H+q|0,q=ug(G^T,(s=G>>>0>>0?I+1|0:I)^J,32),I=a+(G=p)|0,J=I=D>>>0>(H=D+q|0)>>>0?I+1|0:I,T=I=ug(H^O,I^o,24),D=I,o=I+l|0,I=(a=p)+s|0,I=(I=o>>>0>>0?I+1|0:I)+(IA=i[g+204>>2])|0,I=(s=o+i[g+200>>2]|0)>>>0>>0?I+1|0:I,o=G,G=I,IA=ug(s^q,o^I,16),I=J+(D=p)|0,I=(o=H+IA|0)>>>0>>0?I+1|0:I,H=o,J=I,a=ug(T^o,I^a,63),o=I=p,l=c,T=v,I=f+E|0,I=(I=(c=j)>>>0>(v=c+z|0)>>>0?I+1|0:I)+o|0,T=ug(T^(q=f=(c=v)+a|0),(f=f>>>0>>0?I+1|0:I)^S,32),I=(c=p)+e|0,S=I=(v=l+(S=T)|0)>>>0>>0?I+1|0:I,a=ug(a^v,o^I,24),l=I=p,o=I,R=a,I=f+Q|0,I=(I=(a=QA)>>>0>(e=a+q|0)>>>0?I+1|0:I)+o|0,T=ug((o=f=R+(a=e)|0)^T,(a=o>>>0>>0?I+1|0:I)^c,16),I=S+(e=p)|0,I=(f=v+T|0)>>>0>>0?I+1|0:I,v=f,S=I,f=ug(R^f,I^l,63),c=p,l=t,R=u,I=t+B|0,I=Y+((u=K)>>>0>(q=R+u|0)>>>0?I+1|0:I)|0,r=ug((u=t=w+q|0)^L,(t=t>>>0>>0?I+1|0:I)^r,32),I=J+(w=p)|0,J=I=H>>>0>(Y=H+r|0)>>>0?I+1|0:I,q=l=ug(R^(H=Y),I^l,24),z=I=p,Y=I,R=l,L=r,I=t+cA|0,I=(I=(r=V)>>>0>(l=r+u|0)>>>0?I+1|0:I)+Y|0,q=t=q+(r=l)|0,L=ug(L^t,(Y=w)^(w=t>>>0>>0?I+1|0:I),16),I=J+(Y=p)|0,I=(t=H+L|0)>>>0>>0?I+1|0:I,H=t,J=I,u=ug(R^t,I^z,63),t=p,R=P,I=eA+(r=b)|0,I=_+((l=W)>>>0>(P=l+P|0)>>>0?I+1|0:I)|0,l=ug((_=b=m+P|0)^IA,(b=m>>>0>_>>>0?I+1|0:I)^D,32),I=k+(m=p)|0,I=(D=d+l|0)>>>0>>0?I+1|0:I,d=D,k=I,I=ug(R^D,I^r,24),z=i[g+236>>2],R=I,r=_,_=I,r=r+I|0,I=(D=p)+b|0,I=(I=r>>>0<_>>>0?I+1|0:I)+z|0,r=I=(b=r+i[g+232>>2]|0)>>>0>>0?I+1|0:I,z=ug((_=b)^l,I^m,16),I=k+(l=p)|0,P=b=d+z|0,D=ug(R^b,(m=b>>>0>>0?I+1|0:I)^D,63),b=p,d=y,R=N,I=y+G|0,I=(I=(k=s+N|0)>>>0>>0?I+1|0:I)+(IA=i[g+164>>2])|0,U=ug((N=y=(s=k)+i[g+160>>2]|0)^BA,(y=y>>>0>>0?I+1|0:I)^U,32),I=M+(s=p)|0,M=d,d=I=F>>>0>(G=F+U|0)>>>0?I+1|0:I,M=F=ug(R^G,M^I,24),BA=I=p,k=I,R=U,I=y+oA|0,I=(I=(F=(U=x)+N|0)>>>0>>0?I+1|0:I)+k|0,IA=y=M+F|0,F=ug(R^y,(k=s)^(s=y>>>0>>0?I+1|0:I),16),I=d+(k=p)|0,I=(y=G+F|0)>>>0>>0?I+1|0:I,G=y,d=I,N=ug(y^M,I^BA,63),y=p,U=t,R=F,I=t+a|0,I=(I=(F=o+u|0)>>>0>>0?I+1|0:I)+(M=i[g+132>>2])|0,o=ug(R^(M=t=F+i[g+128>>2]|0),(t=t>>>0>>0?I+1|0:I)^k,32),I=(I=m)+(m=p)|0,a=U,U=I=o>>>0>(k=o+P|0)>>>0?I+1|0:I,a=ug(k^u,a^I,24),P=I=p,F=I,u=o,o=(I=M)+(M=$)|0,I=t+rA|0,I=(I=o>>>0>>0?I+1|0:I)+F|0,BA=t=o+a|0,AA=ug(u^t,(F=t>>>0>>0?I+1|0:I)^m,16),I=U+(M=p)|0,U=I=(m=k+AA|0)>>>0>>0?I+1|0:I,u=ug((k=m)^a,I^P,63),m=p,P=D,I=w+yA|0,w=o=(D=Z)+q|0,I=(I=o>>>0>>0?I+1|0:I)+(t=b)|0,a=ug((o=D=P+o|0)^T,(b=w>>>0>o>>>0?I+1|0:I)^e,32),I=d+(D=p)|0,I=(w=G+a|0)>>>0>>0?I+1|0:I,G=w,e=t,t=I,I=ug(P^w,e^I,24),P=i[g+156>>2],e=I,w=I,o=I+o|0,I=(d=p)+b|0,I=(I=o>>>0>>0?I+1|0:I)+P|0,I=o>>>0>(b=o+i[g+152>>2]|0)>>>0?I+1|0:I,o=D,D=I,q=ug((w=b)^a,o^I,16),I=t+(o=p)|0,a=d,d=I=(b=G+q|0)>>>0>>0?I+1|0:I,P=ug(e^(G=b),a^I,63),t=p,b=y,I=y+r|0,I=(I=(a=_+N|0)>>>0<_>>>0?I+1|0:I)+(e=i[g+204>>2])|0,I=(y=a+i[g+200>>2]|0)>>>0>>0?I+1|0:I,a=Y,Y=I,a=ug(y^L,a^I,32),I=S+(_=p)|0,I=(r=v+a|0)>>>0>>0?I+1|0:I,v=r,e=b,b=I,r=ug(r^N,e^I,24),e=I=p,L=r,I=I+Y|0,I=(I=(r=y+r|0)>>>0>>0?I+1|0:I)+(N=i[g+148>>2])|0,I=(y=r+i[g+144>>2]|0)>>>0>>0?I+1|0:I,Y=y,r=_,_=I,T=ug(y^a,r^I,16),I=b+(r=p)|0,I=(y=v+T|0)>>>0>>0?I+1|0:I,v=y,S=I,N=ug(L^y,e^I,63),y=p,b=c,L=f,I=c+s|0,c=a=f+IA|0,I=(I=a>>>0>>0?I+1|0:I)+(e=i[g+196>>2])|0,e=ug((a=f=a+i[g+192>>2]|0)^z,(f=a>>>0>>0?I+1|0:I)^l,32),I=J+(c=p)|0,b=ug(L^(s=H+e|0),(I=s>>>0>>0?I+1|0:I)^b,24),H=I,z=i[g+220>>2],l=b,R=s,I=(s=p)+f|0,f=a=a+b|0,I=(I=a>>>0>>0?I+1|0:I)+(L=z)|0,L=ug(b=(a=b=(J=i[g+216>>2])+a|0)^e,(e=f>>>0>a>>>0?I+1|0:I)^c,16),I=(I=H)+(H=p)|0,I=(f=L)>>>0>(b=R+f|0)>>>0?I+1|0:I,f=s,s=I,I=ug(l^b,f^I,63),O=i[g+236>>2],R=I,c=I,l=I+BA|0,I=(f=p)+F|0,I=(I=c>>>0>l>>>0?I+1|0:I)+O|0,q=ug((l=c=(F=l)+i[g+232>>2]|0)^q,(c=c>>>0>>0?I+1|0:I)^o,32),I=S+(F=p)|0,I=(o=v+q|0)>>>0>>0?I+1|0:I,v=o,S=f,f=I,I=ug(R^o,S^I,24),R=q,o=I,l=I+l|0,I=(S=p)+c|0,I=z+(o>>>0>l>>>0?I+1|0:I)|0,q=c=l+J|0,z=ug(R^c,(l=F)^(F=c>>>0>>0?I+1|0:I),16),I=f+(J=p)|0,I=(c=v+z|0)>>>0>>0?I+1|0:I,v=c,f=S,S=I,f=ug(o^c,f^I,63),c=p,R=u,I=rA+(o=m)|0,I=D+((u=(l=$)+u|0)>>>0>>0?I+1|0:I)|0,r=ug((l=m=w+u|0)^T,(m=w>>>0>m>>>0?I+1|0:I)^r,32),I=s+(D=p)|0,I=(w=b+r|0)>>>0>>0?I+1|0:I,b=w,s=I,u=o=ug(R^w,I^o,24),T=I=p,w=I,R=r,I=m+eA|0,I=(I=(o=W)>>>0>(r=o+l|0)>>>0?I+1|0:I)+w|0,BA=m=u+(o=r)|0,IA=ug(R^m,(r=D)^(D=o>>>0>m>>>0?I+1|0:I),16),I=s+(w=p)|0,l=ug((s=m=b+IA|0)^u,(o=s>>>0>>0?I+1|0:I)^T,63),b=p,m=t,I=t+E|0,I=_+((r=j)>>>0>(u=r+P|0)>>>0?I+1|0:I)|0,r=ug((_=t=Y+u|0)^L,(t=t>>>0>>0?I+1|0:I)^H,32),I=U+(H=p)|0,I=k>>>0>(Y=k+r|0)>>>0?I+1|0:I,k=Y,Y=m,m=I,u=Y=ug(k^P,Y^I,24),P=I=p,U=I,I=t+B|0,I=(I=(Y=K)>>>0>(_=Y+_|0)>>>0?I+1|0:I)+U|0,U=t=u+_|0,T=ug(t^r,(Y=H)^(H=t>>>0<_>>>0?I+1|0:I),16),I=m+(Y=p)|0,I=(t=k+T|0)>>>0>>0?I+1|0:I,k=t,_=I,u=ug(t^u,I^P,63),m=p,I=e+(t=y)|0,I=(I=(r=a+N|0)>>>0>>0?I+1|0:I)+(P=i[g+156>>2])|0,a=M,M=I=(y=r+i[g+152>>2]|0)>>>0>>0?I+1|0:I,e=ug(y^AA,a^I,32),I=d+(r=p)|0,I=(a=G+e|0)>>>0>>0?I+1|0:I,G=a,d=t,t=I,a=ug(a^N,d^I,24),N=I=p,R=a,I=M+I|0,I=(I=(a=a+y|0)>>>0>>0?I+1|0:I)+(P=i[g+204>>2])|0,L=y=a+i[g+200>>2]|0,a=ug(y^e,(M=y>>>0>>0?I+1|0:I)^r,16),I=t+(y=p)|0,I=(r=G+a|0)>>>0>>0?I+1|0:I,G=r,d=I,N=ug(R^r,N^I,63),t=p,P=a,I=F+Q|0,I=(I=(a=QA)>>>0>(e=a+q|0)>>>0?I+1|0:I)+(r=b)|0,b=F=(a=e)+l|0,e=ug(P^F,(e=y)^(y=a>>>0>F>>>0?I+1|0:I),32),I=_+(F=p)|0,I=(a=k+e|0)>>>0>>0?I+1|0:I,k=a,_=I,a=ug(a^l,I^r,24),r=I=p,l=a,I=y+I|0,I=(I=(a=a+b|0)>>>0>>0?I+1|0:I)+(P=i[g+132>>2])|0,q=b=a+i[g+128>>2]|0,AA=ug(b^e,(y=F)^(F=a>>>0>b>>>0?I+1|0:I),16),I=_+(a=p)|0,_=I=(b=k+AA|0)>>>0>>0?I+1|0:I,P=ug(l^(k=b),I^r,63),b=p,I=D+cA|0,I=(I=(r=V)>>>0>(e=r+BA|0)>>>0?I+1|0:I)+(y=m)|0,m=I=(r=e)>>>0>(D=r+u|0)>>>0?I+1|0:I,e=ug((r=D)^z,I^J,32),I=d+(J=p)|0,I=G>>>0>(D=G+e|0)>>>0?I+1|0:I,G=D,l=y,y=I,I=ug(D^u,l^I,24),u=i[g+164>>2],l=I,D=I,r=I+r|0,I=(d=p)+m|0,I=(I=r>>>0>>0?I+1|0:I)+u|0,I=(m=r+i[g+160>>2]|0)>>>0>>0?I+1|0:I,r=J,J=I,r=ug((D=m)^e,r^I,16),I=y+(e=p)|0,y=d,d=I=(m=G+r|0)>>>0>>0?I+1|0:I,m=ug(l^(G=m),y^I,63),y=p,l=t,R=N,I=t+H|0,I=(I=(u=U+N|0)>>>0>>0?I+1|0:I)+(z=i[g+196>>2])|0,N=ug((u=t=(H=u)+i[g+192>>2]|0)^IA,(t=t>>>0>>0?I+1|0:I)^w,32),I=S+(H=p)|0,w=I=(U=v+N|0)>>>0>>0?I+1|0:I,S=ug(R^U,I^l,24),z=I=p,v=I,R=S,I=t+yA|0,I=(I=(l=(S=Z)+u|0)>>>0>>0?I+1|0:I)+v|0,BA=t=R+(S=l)|0,IA=ug(t^N,(l=H)^(H=t>>>0>>0?I+1|0:I),16),I=w+(v=p)|0,I=(t=U+IA|0)>>>0>>0?I+1|0:I,U=t,l=ug(R^t,I^z,63),t=p,w=c,S=I,R=f,I=c+M|0,I=(I=(u=f+L|0)>>>0>>0?I+1|0:I)+(N=i[g+148>>2])|0,Y=ug((u=f=(c=u)+i[g+144>>2]|0)^T,(f=f>>>0>>0?I+1|0:I)^Y,32),I=o+(c=p)|0,I=s>>>0>(M=s+Y|0)>>>0?I+1|0:I,s=M,M=I,N=o=ug(R^s,I^w,24),T=I=p,w=I,L=Y,I=f+oA|0,I=(I=(o=(Y=x)+u|0)>>>0>>0?I+1|0:I)+w|0,w=f=N+o|0,z=ug(L^f,(Y=f>>>0>>0?I+1|0:I)^c,16),I=M+(c=p)|0,I=(f=s+z|0)>>>0>>0?I+1|0:I,s=f,M=I,o=ug(f^N,I^T,63),u=I=p,f=I,N=U,T=r,I=F+yA|0,F=r=(U=Z)+q|0,I=(I=r>>>0>>0?I+1|0:I)+f|0,e=ug(T^(r=U=r+o|0),(f=F>>>0>r>>>0?I+1|0:I)^e,32),I=(U=p)+S|0,S=I=(F=N+e|0)>>>0>>0?I+1|0:I,u=ug(o^F,u^I,24),q=I=p,o=I,N=e,e=(I=r)+(r=V)|0,I=f+cA|0,I=(I=r>>>0>e>>>0?I+1|0:I)+o|0,T=f=(r=e)+u|0,L=ug(N^f,(o=U)^(U=f>>>0>>0?I+1|0:I),16),I=S+(o=p)|0,I=(f=F+L|0)>>>0>>0?I+1|0:I,F=f,S=I,N=ug(f^u,I^q,63),f=p,I=eA+(r=b)|0,I=J+((e=W)>>>0>(u=e+P|0)>>>0?I+1|0:I)|0,v=ug((e=b=D+u|0)^IA,(b=e>>>0>>0?I+1|0:I)^v,32),I=M+(J=p)|0,M=I=s>>>0>(D=s+v|0)>>>0?I+1|0:I,I=ug((s=D)^P,I^r,24),P=i[g+204>>2],u=I,q=v,v=I,r=I+e|0,I=(D=p)+b|0,I=(I=r>>>0>>0?I+1|0:I)+P|0,P=b=r+i[g+200>>2]|0,q=ug(q^b,(e=J)^(J=b>>>0>>0?I+1|0:I),16),I=M+(v=p)|0,M=b=s+q|0,e=ug(u^b,(r=D)^(D=s>>>0>b>>>0?I+1|0:I),63),b=p,s=y,R=m,I=y+H|0,I=(I=(r=m+BA|0)>>>0>>0?I+1|0:I)+(u=i[g+220>>2])|0,r=ug((H=m=r+i[g+216>>2]|0)^z,(m=r>>>0>H>>>0?I+1|0:I)^c,32),I=_+(y=p)|0,_=s,s=I=(c=k+r|0)>>>0>>0?I+1|0:I,I=ug(R^c,_^I,24),z=i[g+156>>2],u=I,_=H,H=I,_=_+I|0,I=(k=p)+m|0,I=(I=H>>>0>_>>>0?I+1|0:I)+z|0,z=m=(H=_)+i[g+152>>2]|0,BA=ug(m^r,(H=m>>>0>>0?I+1|0:I)^y,16),I=s+(_=p)|0,y=ug(u^(s=m=c+BA|0),(r=k)^(k=c>>>0>s>>>0?I+1|0:I),63),c=p,m=t,I=t+Y|0,I=(I=(r=w+l|0)>>>0>>0?I+1|0:I)+(u=i[g+132>>2])|0,w=I=(t=r+i[g+128>>2]|0)>>>0>>0?I+1|0:I,a=ug(t^AA,I^a,32),I=d+(Y=p)|0,I=(r=G+a|0)>>>0>>0?I+1|0:I,G=r,u=m,m=I,r=ug(r^l,u^I,24),l=I=p,R=r,I=w+I|0,I=(I=(r=t+r|0)>>>0>>0?I+1|0:I)+(u=i[g+196>>2])|0,I=(t=r+i[g+192>>2]|0)>>>0>>0?I+1|0:I,w=t,r=Y,Y=I,a=ug(t^a,r^I,16),I=m+(t=p)|0,I=(r=G+a|0)>>>0>>0?I+1|0:I,G=r,d=I,u=ug(R^r,l^I,63),m=p,R=e,l=a,I=U+E|0,I=(I=(a=j)>>>0>(e=a+T|0)>>>0?I+1|0:I)+(r=b)|0,b=U=R+(a=e)|0,e=ug(l^U,(e=t)^(t=a>>>0>U>>>0?I+1|0:I),32),I=k+(U=p)|0,l=a=s+e|0,a=ug(R^a,(I=a>>>0>>0?I+1|0:I)^r,24),k=I,IA=i[g+148>>2],T=a,I=t+(s=p)|0,I=(I=(a=a+b|0)>>>0>>0?I+1|0:I)+(AA=IA)|0,O=ug((AA=b=(r=i[g+144>>2])+a|0)^e,(b=a>>>0>b>>>0?I+1|0:I)^U,16),I=(I=k)+(k=p)|0,I=(t=(U=O)+l|0)>>>0>>0?I+1|0:I,U=t,a=I,t=ug(T^t,I^s,63),s=p,R=y,I=(e=c)+J|0,I=(I=(l=y+P|0)>>>0>>0?I+1|0:I)+(T=i[g+236>>2])|0,o=ug((l=y=(c=l)+i[g+232>>2]|0)^L,(y=c>>>0>y>>>0?I+1|0:I)^o,32),I=d+(c=p)|0,d=I=G>>>0>(J=G+o|0)>>>0?I+1|0:I,P=e=ug(R^(G=J),I^e,24),T=I=p,J=I,R=o,I=y+rA|0,I=(I=(o=$)>>>0>(e=o+l|0)>>>0?I+1|0:I)+J|0,L=y=P+(o=e)|0,o=ug(R^y,(J=y>>>0>>0?I+1|0:I)^c,16),I=d+(e=p)|0,d=y=G+o|0,P=ug(y^P,(l=y>>>0>>0?I+1|0:I)^T,63),y=p,T=u,I=H+B|0,I=(I=(G=K)>>>0>(u=G+z|0)>>>0?I+1|0:I)+(c=m)|0,u=ug((m=G=T+(H=u)|0)^q,(G=G>>>0>>0?I+1|0:I)^v,32),I=S+(H=p)|0,S=ug(T^(v=F+u|0),(I=F>>>0>v>>>0?I+1|0:I)^c,24),F=I,z=i[g+164>>2],q=S,R=v,I=G+(c=p)|0,G=S=m+S|0,I=(I=S>>>0>>0?I+1|0:I)+(T=z)|0,S=H,H=I=(m=(v=i[g+160>>2])+G|0)>>>0>>0?I+1|0:I,iA=ug(m^u,S^I,16),I=(I=F)+(F=p)|0,S=I=(G=R+(S=iA)|0)>>>0>>0?I+1|0:I,q=ug(q^G,I^c,63),c=p,u=f,R=N,I=f+oA|0,I=Y+((N=x)>>>0>(T=R+N|0)>>>0?I+1|0:I)|0,_=ug((N=f=w+T|0)^BA,(f=f>>>0>>0?I+1|0:I)^_,32),I=D+(w=p)|0,D=I=(Y=M+_|0)>>>0>>0?I+1|0:I,T=u=ug(R^(M=Y),I^u,24),BA=I=p,Y=I,R=_,I=f+Q|0,I=(I=(u=(_=QA)+N|0)>>>0<_>>>0?I+1|0:I)+Y|0,Y=f=T+u|0,N=ug(R^f,(_=w)^(w=f>>>0>>0?I+1|0:I),16),I=D+(_=p)|0,I=(f=M+N|0)>>>0>>0?I+1|0:I,M=f,D=I,u=ug(f^T,I^BA,63),T=I=p,f=I,R=o,I=b+oA|0,b=o=x+AA|0,I=(I=o>>>0>>0?I+1|0:I)+f|0,e=ug(R^(o=x=o+u|0),(b=b>>>0>o>>>0?I+1|0:I)^e,32),I=S+(f=p)|0,oA=x=G+e|0,S=I=G>>>0>x>>>0?I+1|0:I,R=x=ug(u^x,T^I,24),I=(G=p)+b|0,I=(I=(o=o+x|0)>>>0>>0?I+1|0:I)+IA|0,T=ug((u=x=o+r|0)^e,(o=r>>>0>u>>>0?I+1|0:I)^f,16),I=(I=S)+(S=p)|0,oA=x=(b=T)+oA|0,f=ug(R^x,(b=b>>>0>x>>>0?I+1|0:I)^G,63),G=p,x=s,R=t,I=s+J|0,s=r=t+L|0,I=(I=r>>>0>>0?I+1|0:I)+(e=i[g+196>>2])|0,e=ug((r=t=r+i[g+192>>2]|0)^iA,(t=r>>>0>>0?I+1|0:I)^F,32),I=D+(s=p)|0,D=x,x=I=(F=M+e|0)>>>0>>0?I+1|0:I,R=I=ug(R^F,D^I,24),M=I,D=I+r|0,I=(J=p)+t|0,I=z+(D>>>0>>0?I+1|0:I)|0,z=t=D+v|0,L=ug(t^e,(r=s)^(s=t>>>0>>0?I+1|0:I),16),I=x+(M=p)|0,I=(t=F+L|0)>>>0>>0?I+1|0:I,F=t,r=J,J=I,r=ug(R^t,r^I,63),x=p,I=rA+(t=y)|0,I=H+((D=$)>>>0>(v=D+P|0)>>>0?I+1|0:I)|0,D=y=m+v|0,v=ug(y^N,(m=y>>>0>>0?I+1|0:I)^_,32),I=a+(y=p)|0,a=t,t=I=(H=U+v|0)>>>0>>0?I+1|0:I,a=_=ug(H^P,a^I,24),e=I=p,_=v,v=(I=D)+(D=Z)|0,I=m+yA|0,I=(I=D>>>0>v>>>0?I+1|0:I)+e|0,U=m=(D=v)+a|0,N=ug(_^m,(D=m>>>0>>0?I+1|0:I)^y,16),I=t+(v=p)|0,t=ug((P=m=H+N|0)^a,(m=m>>>0>>0?I+1|0:I)^e,63),y=p,H=c,I=c+B|0,I=w+((a=(_=K)+q|0)>>>0<_>>>0?I+1|0:I)|0,I=(c=Y+a|0)>>>0>>0?I+1|0:I,Y=c,c=I,_=ug(Y^O,I^k,32),I=l+(k=p)|0,I=(w=d+_|0)>>>0>>0?I+1|0:I,d=w,a=H,H=I,a=ug(w^q,a^I,24),l=I=p,w=I,e=_,_=(I=Y)+(Y=QA)|0,I=c+Q|0,I=(I=Y>>>0>_>>>0?I+1|0:I)+w|0,q=c=_+a|0,_=ug(e^c,(Y=k)^(k=c>>>0<_>>>0?I+1|0:I),16),I=H+(w=p)|0,I=(c=d+_|0)>>>0>>0?I+1|0:I,d=c,H=I,e=ug(c^a,I^l,63),c=p,a=r,l=_,I=o+cA|0,I=(I=(r=(_=V)+u|0)>>>0<_>>>0?I+1|0:I)+(Y=x)|0,_=o=a+r|0,x=I=o>>>0>>0?I+1|0:I,r=ug(l^o,I^w,32),I=(I=m)+(m=p)|0,o=Y,Y=I=r>>>0>(w=r+P|0)>>>0?I+1|0:I,I=ug(a^w,o^I,24),l=i[g+220>>2],a=I,P=r,o=_,_=I,r=o+I|0,I=(o=p)+x|0,I=(I=r>>>0<_>>>0?I+1|0:I)+l|0,P=ug(P^(u=x=r+i[g+216>>2]|0),(_=r>>>0>u>>>0?I+1|0:I)^m,16),I=Y+(r=p)|0,Y=I=w>>>0>(x=w+P|0)>>>0?I+1|0:I,x=ug(a^(w=x),I^o,63),m=p,R=t,I=(o=y)+s|0,y=a=t+z|0,I=(I=a>>>0>>0?I+1|0:I)+(l=i[g+204>>2])|0,S=ug((a=t=a+i[g+200>>2]|0)^T,(t=a>>>0>>0?I+1|0:I)^S,32),I=H+(y=p)|0,d=I=(s=d+S|0)>>>0>>0?I+1|0:I,l=o=ug(R^s,I^o,24),T=I=p,H=I,R=S,I=t+eA|0,I=(I=(o=(S=W)+a|0)>>>0>>0?I+1|0:I)+H|0,z=t=l+o|0,BA=ug(R^t,(H=t>>>0>>0?I+1|0:I)^y,16),I=d+(S=p)|0,I=(t=s+BA|0)>>>0>>0?I+1|0:I,s=t,d=I,t=ug(t^l,I^T,63),y=p,R=e,I=(o=c)+D|0,I=(e=e+U|0)>>>0>>0?I+1|0:I,U=e,I=I+(l=T=i[g+156>>2])|0,l=ug((e=c=(a=i[g+152>>2])+e|0)^L,(c=e>>>0>>0?I+1|0:I)^M,32),I=(I=b)+(b=p)|0,M=I=(U=l+oA|0)>>>0>>0?I+1|0:I,oA=o=ug(R^U,I^o,24),L=I=p,D=I,R=o,I=c+E|0,I=(I=(o=j)>>>0>(e=o+e|0)>>>0?I+1|0:I)+D|0,oA=c=oA+(o=e)|0,IA=ug(c^l,(D=c>>>0>>0?I+1|0:I)^b,16),I=M+(c=p)|0,I=(b=U+IA|0)>>>0>>0?I+1|0:I,U=b,M=I,l=ug(R^b,I^L,63),b=p,R=f,I=(o=G)+k|0,G=e=f+q|0,I=(I=e>>>0>>0?I+1|0:I)+(L=i[g+236>>2])|0,v=ug((e=f=e+i[g+232>>2]|0)^N,(G=e>>>0>>0?I+1|0:I)^v,32),I=J+(k=p)|0,N=f=F+v|0,f=ug(R^f,(I=f>>>0>>0?I+1|0:I)^o,24),J=I,L=i[g+132>>2],q=f,R=N,N=v,I=(F=p)+G|0,I=(I=(o=f+e|0)>>>0>>0?I+1|0:I)+L|0,I=(f=(v=i[g+128>>2])+o|0)>>>0>>0?I+1|0:I,G=f,o=k,k=I,N=ug(N^f,o^I,16),I=(I=J)+(J=p)|0,I=(f=R+(o=N)|0)>>>0>>0?I+1|0:I,o=f,f=F,F=I,q=I=ug(q^o,f^I,63),e=I,u=I+u|0,I=(f=p)+_|0,I=L+(e>>>0>u>>>0?I+1|0:I)|0,u=ug((e=_=u+v|0)^BA,(v=v>>>0>e>>>0?I+1|0:I)^S,32),I=M+(S=p)|0,I=U>>>0>(_=U+u|0)>>>0?I+1|0:I,U=_,_=f,f=I,q=_=ug(q^U,_^I,24),L=I=p,M=I,R=_,I=v+B|0,I=(I=(e=(_=K)+e|0)>>>0<_>>>0?I+1|0:I)+M|0,q=v=q+e|0,BA=ug(v^u,(M=v>>>0>>0?I+1|0:I)^S,16),I=f+(v=p)|0,I=U>>>0>(S=U+BA|0)>>>0?I+1|0:I,U=S,S=I,u=ug(R^U,I^L,63),f=p,_=m,R=x,I=m+H|0,m=e=x+z|0,I=(I=e>>>0>>0?I+1|0:I)+(L=i[g+148>>2])|0,z=ug((e=x=e+i[g+144>>2]|0)^IA,(x=m>>>0>e>>>0?I+1|0:I)^c,32),I=F+(m=p)|0,H=I=(c=o+z|0)>>>0>>0?I+1|0:I,L=I=ug(R^c,I^_,24),o=I,_=I+e|0,I=(F=p)+x|0,I=T+(o>>>0>_>>>0?I+1|0:I)|0,T=x=a+_|0,z=ug(x^z,(o=a>>>0>x>>>0?I+1|0:I)^m,16),I=H+(_=p)|0,m=ug(L^(H=x=c+z|0),(a=F)^(F=c>>>0>H>>>0?I+1|0:I),63),c=p,x=y,L=t,I=y+D|0,y=a=t+oA|0,I=(I=a>>>0>>0?I+1|0:I)+(e=i[g+164>>2])|0,e=ug((a=t=a+i[g+160>>2]|0)^N,(t=a>>>0>>0?I+1|0:I)^J,32),I=Y+(y=p)|0,Y=x,x=I=w>>>0>(J=w+e|0)>>>0?I+1|0:I,w=ug(L^J,Y^I,24),N=I=p,D=I,R=w,I=t+Q|0,I=(I=(w=QA)>>>0>(Y=w+a|0)>>>0?I+1|0:I)+D|0,oA=t=R+(w=Y)|0,L=ug(t^e,(D=t>>>0>>0?I+1|0:I)^y,16),I=x+(w=p)|0,I=(t=J+L|0)>>>0>>0?I+1|0:I,J=t,Y=I,t=ug(R^t,I^N,63),y=p,x=b,I=b+yA|0,I=k+((a=Z)>>>0>(e=a+l|0)>>>0?I+1|0:I)|0,r=ug((a=b=G+e|0)^P,(b=a>>>0>>0?I+1|0:I)^r,32),I=d+(G=p)|0,e=x,x=I=s>>>0>(k=s+r|0)>>>0?I+1|0:I,e=k=ug((s=k)^l,e^I,24),l=I=p,N=r,I=b+rA|0,I=(I=(r=(k=$)+a|0)>>>0>>0?I+1|0:I)+l|0,d=b=e+r|0,r=ug(N^b,(a=G)^(G=b>>>0>>0?I+1|0:I),16),I=x+(k=p)|0,l=ug((a=b=s+r|0)^e,(b=s>>>0>a>>>0?I+1|0:I)^l,63),x=p,s=c,N=m,P=r,I=c+M|0,I=(I=(r=m+q|0)>>>0>>0?I+1|0:I)+(e=i[g+196>>2])|0,r=ug(P^(M=m=r+i[g+192>>2]|0),(m=r>>>0>m>>>0?I+1|0:I)^k,32),I=Y+(c=p)|0,e=s,s=I=(k=J+r|0)>>>0>>0?I+1|0:I,I=ug(N^k,e^I,24),N=i[g+204>>2],e=I,Y=M,M=I,Y=Y+I|0,I=(J=p)+m|0,I=(I=Y>>>0>>0?I+1|0:I)+N|0,P=m=Y+i[g+200>>2]|0,q=ug(m^r,(M=m>>>0>>0?I+1|0:I)^c,16),I=s+(Y=p)|0,m=ug(e^(s=m=k+q|0),(k=s>>>0>>0?I+1|0:I)^J,63),c=p,J=y,N=t,R=a,I=y+o|0,I=(I=(a=t+T|0)>>>0>>0?I+1|0:I)+(e=IA=i[g+212>>2])|0,a=ug((o=t=(r=i[g+208>>2])+a|0)^BA,(t=t>>>0>>0?I+1|0:I)^v,32),I=(I=b)+(b=p)|0,e=J,J=I=(y=R+a|0)>>>0>>0?I+1|0:I,I=ug(N^y,e^I,24),N=i[g+220>>2],R=I,e=a,a=o,o=I,a=a+I|0,I=(v=p)+t|0,I=(I=a>>>0>>0?I+1|0:I)+N|0,T=t=a+i[g+216>>2]|0,a=ug(e^t,(o=t>>>0>>0?I+1|0:I)^b,16),I=J+(e=p)|0,J=b=y+a|0,b=ug(R^b,(t=v)^(v=y>>>0>b>>>0?I+1|0:I),63),t=p,R=l,I=D+E|0,I=(I=(l=j)>>>0>(N=l+oA|0)>>>0?I+1|0:I)+(y=x)|0,N=ug((x=D=R+(l=N)|0)^z,(D=D>>>0>>0?I+1|0:I)^_,32),I=S+(_=p)|0,I=U>>>0>(l=U+N|0)>>>0?I+1|0:I,U=l,l=y,y=I,l=ug(R^U,l^I,24),S=I=p,R=l,I=D+I|0,I=(I=(l=l+x|0)>>>0>>0?I+1|0:I)+(z=i[g+236>>2])|0,oA=x=(D=l)+i[g+232>>2]|0,z=ug(x^N,(D=D>>>0>x>>>0?I+1|0:I)^_,16),I=y+(_=p)|0,N=ug(R^(y=x=U+z|0),(U=U>>>0>y>>>0?I+1|0:I)^S,63),x=p,S=f,R=u,I=f+eA|0,I=G+((u=(l=W)+u|0)>>>0>>0?I+1|0:I)|0,w=ug((l=f=d+u|0)^L,(f=f>>>0>>0?I+1|0:I)^w,32),I=F+(G=p)|0,H=I=H>>>0>(d=H+w|0)>>>0?I+1|0:I,u=S=ug(R^d,I^S,24),L=I=p,F=I,R=w,I=f+cA|0,I=(I=(w=V)>>>0>(S=w+l|0)>>>0?I+1|0:I)+F|0,F=f=u+(w=S)|0,l=ug(R^f,(l=G)^(G=f>>>0>>0?I+1|0:I),16),I=H+(w=p)|0,I=(f=d+l|0)>>>0>>0?I+1|0:I,d=f,H=I,S=ug(f^u,I^L,63),u=I=p,f=I,L=a,I=M+eA|0,M=a=P+W|0,I=(I=a>>>0>>0?I+1|0:I)+f|0,e=ug(L^(a=W=a+S|0),(W=M>>>0>a>>>0?I+1|0:I)^e,32),I=U+(f=p)|0,U=I=y>>>0>(M=y+e|0)>>>0?I+1|0:I,P=I=ug(S^(y=M),u^I,24),S=I,a=I+a|0,I=(M=p)+W|0,I=IA+(a>>>0>>0?I+1|0:I)|0,u=ug((u=e)^(e=W=a+r|0),(S=r>>>0>e>>>0?I+1|0:I)^f,16),I=U+(r=p)|0,y=ug(P^(U=W=y+u|0),(a=M)^(M=y>>>0>U>>>0?I+1|0:I),63),f=p,W=c,L=m,I=c+o|0,c=a=m+T|0,I=(I=a>>>0>>0?I+1|0:I)+(P=i[g+164>>2])|0,_=ug((a=m=a+i[g+160>>2]|0)^z,(m=c>>>0>a>>>0?I+1|0:I)^_,32),I=H+(c=p)|0,I=(o=d+_|0)>>>0>>0?I+1|0:I,d=o,H=W,W=I,I=ug(L^o,H^I,24),T=i[g+196>>2],L=I,P=_,o=I,_=I+a|0,I=(H=p)+m|0,I=(I=o>>>0>_>>>0?I+1|0:I)+T|0,P=ug(P^(a=m=(o=_)+i[g+192>>2]|0),(_=c)^(c=o>>>0>a>>>0?I+1|0:I),16),I=W+(T=p)|0,I=(m=d+P|0)>>>0>>0?I+1|0:I,d=m,o=H,H=I,o=ug(L^m,o^I,63),W=p,m=t,L=b,I=t+D|0,I=(I=(_=b+oA|0)>>>0>>0?I+1|0:I)+(eA=i[g+204>>2])|0,w=ug((_=b=(t=_)+i[g+200>>2]|0)^l,(b=t>>>0>b>>>0?I+1|0:I)^w,32),I=k+(t=p)|0,I=s>>>0>(D=s+w|0)>>>0?I+1|0:I,s=D,D=m,m=I,l=D=ug(L^s,D^I,24),eA=I=p,k=I,L=D,I=b+cA|0,I=(I=(D=_+V|0)>>>0>>0?I+1|0:I)+k|0,l=ug((_=V=l+D|0)^w,(l=t)^(t=D>>>0>_>>>0?I+1|0:I),16),I=m+(k=p)|0,D=I=s>>>0>(V=s+l|0)>>>0?I+1|0:I,V=ug(L^(s=V),I^eA,63),b=p,I=G+(m=x)|0,G=w=F+N|0,I=(I=w>>>0>>0?I+1|0:I)+(eA=i[g+236>>2])|0,Y=ug((w=x=w+i[g+232>>2]|0)^q,(x=G>>>0>w>>>0?I+1|0:I)^Y,32),I=v+(G=p)|0,v=m,m=I=(F=J+Y|0)>>>0>>0?I+1|0:I,v=ug(F^N,v^I,24),q=I=p,J=I,I=x+yA|0,I=(I=(w=w+Z|0)>>>0>>0?I+1|0:I)+J|0,N=ug((J=Z=w+v|0)^Y,(N=G)^(G=w>>>0>J>>>0?I+1|0:I),16),I=m+(yA=p)|0,w=I=F>>>0>(Z=F+N|0)>>>0?I+1|0:I,x=ug(v^(F=Z),I^q,63),m=p,I=S+B|0,I=(I=(v=e+K|0)>>>0>>0?I+1|0:I)+(Y=W)|0,I=v>>>0>(K=v+o|0)>>>0?I+1|0:I,v=K,K=I,I=E+I|0,j=I=(Y=j+v|0)>>>0>>0?I+1|0:I,e=Y,Y=ug(v^N,K^yA,32),I=D+(v=p)|0,S=ug((D=K=s+Y|0)^o,(K=s>>>0>D>>>0?I+1|0:I)^W,24),I=(o=p)+j|0,I=(s=S)>>>0>(W=e+s|0)>>>0?I+1|0:I,s=W,i[g>>2]=s,i[g+4>>2]=I,Z=I,I=ug(s^Y,I^v,16),Y=W=p,i[g+120>>2]=I,i[g+124>>2]=Y,j=I,D=I+D|0,I=Y+K|0,i[g+80>>2]=D,I=D>>>0>>0?I+1|0:I,i[g+84>>2]=I,hA=g,DA=ug(S^D,I^o,63),i[hA+40>>2]=DA,i[g+44>>2]=p,K=b,o=V,I=c+b|0,I=(I=(j=a+V|0)>>>0>>0?I+1|0:I)+(D=i[g+132>>2])|0,j=I=(V=j+i[g+128>>2]|0)>>>0>>0?I+1|0:I,c=ug(V^u,I^r,32),I=w+(D=p)|0,a=K,K=I=F>>>0>(b=F+c|0)>>>0?I+1|0:I,w=ug(o^(F=b),a^I,24),I=j+(Y=p)|0,I=(b=w+V|0)>>>0>>0?I+1|0:I,V=(j=i[g+144>>2])+b|0,I=i[g+148>>2]+I|0,I=V>>>0>>0?I+1|0:I,i[g+8>>2]=V,i[g+12>>2]=I,I=ug(c^V,I^D,16),b=W=p,i[g+96>>2]=I,i[g+100>>2]=b,V=I,j=I+F|0,I=b+K|0,K=j,i[g+88>>2]=K,I=V>>>0>K>>>0?I+1|0:I,i[g+92>>2]=I,hA=g,DA=ug(w^K,I^Y,63),i[hA+48>>2]=DA,i[g+52>>2]=p,a=$,I=t+m|0,I=(I=(V=_+x|0)>>>0>>0?I+1|0:I)+(j=i[g+220>>2])|0,I=(W=V+i[g+216>>2]|0)>>>0>>0?I+1|0:I,$=W,j=W,V=a+W|0,W=I,I=I+rA|0,I=V>>>0>>0?I+1|0:I,j=V,V=I,a=j,o=x,j=ug(P^$,W^T,32),I=M+(x=p)|0,m=ug(o^(b=W=U+j|0),(W=U>>>0>b>>>0?I+1|0:I)^m,24),I=(c=p)+V|0,V=$=a+(t=m)|0,i[g+16>>2]=V,I=t>>>0>V>>>0?I+1|0:I,i[g+20>>2]=I,I=ug(V^j,I^x,16),K=p,i[g+104>>2]=I,i[g+108>>2]=K,V=I,$=I+b|0,I=W+K|0,W=$,i[g+64>>2]=W,I=V>>>0>W>>>0?I+1|0:I,i[g+68>>2]=I,hA=g,DA=ug(t^W,I^c,63),i[hA+56>>2]=DA,i[g+60>>2]=p,I=f+Q|0,I=(I=(V=y+QA|0)>>>0>>0?I+1|0:I)+G|0,QA=I=J>>>0>(V=J+V|0)>>>0?I+1|0:I,x=ug(V^l,I^k,32),I=H+(b=p)|0,K=I=d>>>0>($=d+x|0)>>>0?I+1|0:I,m=ug($^y,f^I,24),I=QA+(t=p)|0,I=V>>>0>(j=m+V|0)>>>0?I+1|0:I,V=(QA=i[g+152>>2])+j|0,I=i[g+156>>2]+I|0,I=V>>>0>>0?I+1|0:I,i[g+24>>2]=V,i[g+28>>2]=I,I=ug(x^V,I^b,16),i[g+112>>2]=I,QA=p,i[g+116>>2]=QA,V=I+$|0,I=K+QA|0,K=V,i[g+72>>2]=K,I=K>>>0<$>>>0?I+1|0:I,i[g+76>>2]=I,hA=g,DA=ug(m^K,I^t,63),i[hA+32>>2]=DA,i[g+36>>2]=p,I=i[g+68>>2]^(n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24)^Z,K=i[g+64>>2]^(n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24)^s,C[0|A]=K,C[A+1|0]=K>>>8,C[A+2|0]=K>>>16,C[A+3|0]=K>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,Z=1;I=(K=Z<<3)+A|0,W=K=g+K|0,V=i[K>>2]^(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24),QA=i[(K=K- -64|0)>>2],K=i[K+4>>2]^i[W+4>>2]^(n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24),W=V^QA,C[0|I]=W,C[I+1|0]=W>>>8,C[I+2|0]=W>>>16,C[I+3|0]=W>>>24,C[I+4|0]=K,C[I+5|0]=K>>>8,C[I+6|0]=K>>>16,C[I+7|0]=K>>>24,8!=(0|(Z=Z+1|0)););h=g+256|0}function F(A,I,g,B){var Q=0,C=0,E=0,n=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0;for(function(A,I){for(var g=0,B=0,Q=0,C=0,E=0;C=Q=(B=g<<3)+A|0,E=dA(I+B|0),i[C>>2]=E,i[Q+4>>2]=p,16!=(0|(g=g+1|0)););}(g,I),I=X(B,A,64),o=i[g>>2],f=i[g+4>>2],B=0;;){if(Q=ug(l=i[(E=I)+32>>2],t=i[E+36>>2],14),s=p,Q=ug(l,t,18)^Q,D=p^s,C=o,o=ug(l,t,41)^Q,Q=(p^D)+f|0,Q=o>>>0>(s=C+o|0)>>>0?Q+1|0:Q,o=s,y=i[E+48>>2],o=(D=i[(f=34784+(L=B<<3)|0)>>2])+o|0,Q=i[f+4>>2]+Q|0,Q=o>>>0>>0?Q+1|0:Q,o=(f=y^((k=i[E+40>>2])^y)&l)+o|0,Q=(((C=i[E+52>>2])^(u=i[E+44>>2]))&t^C)+Q|0,Q=o>>>0>>0?Q+1|0:Q,s=(a=o)+(o=i[E+56>>2])|0,Q=i[E+60>>2]+Q|0,Q=o>>>0>s>>>0?Q+1|0:Q,f=s+(D=i[E+24>>2])|0,o=Q,Q=Q+i[E+28>>2]|0,Q=f>>>0>>0?Q+1|0:Q,D=f,c=Q,i[E+24>>2]=f,i[E+28>>2]=Q,Q=ug(F=i[E>>2],f=i[E+4>>2],28),h=p,Q=ug(F,f,34)^Q,n=p^h,h=s+(ug(F,f,39)^Q)|0,Q=o+(p^n)|0,Q=s>>>0>h>>>0?Q+1|0:Q,s=(a=F&((n=i[E+16>>2])|(r=i[E+8>>2]))|n&r)+h|0,Q=(f&((h=i[E+20>>2])|(o=i[E+12>>2]))|o&h)+Q|0,s=Q=a>>>0>(e=s)>>>0?Q+1|0:Q,i[E+56>>2]=e,i[E+60>>2]=Q,Q=ug(D,c,14),a=p,d=ug(D,c,18)^Q,a^=p,w=n,Q=((t^u)&c^u)+C|0,Q=(n=(l^k)&D^k)>>>0>(y=n+y|0)>>>0?Q+1|0:Q,C=ug(D,c,41)^d,Q=(p^a)+Q|0,Q=C>>>0>(y=C+y|0)>>>0?Q+1|0:Q,y=(a=i[(n=d=(C=(1|B)<<3)+g|0)>>2])+y|0,Q=i[n+4>>2]+Q|0,Q=a>>>0>y>>>0?Q+1|0:Q,y=(n=i[(C=C+34784|0)>>2])+y|0,Q=i[C+4>>2]+Q|0,n=Q=n>>>0>y>>>0?Q+1|0:Q,Q=Q+h|0,h=y=w+(C=a=y)|0,C=Q=C>>>0>y>>>0?Q+1|0:Q,i[E+16>>2]=y,i[E+20>>2]=Q,y=E,Q=ug(e,s,28),E=p,G=ug(e,s,34)^Q,H=p^E,E=(Q=a)+(a=(r|F)&e|r&F)|0,Q=((o|f)&s|o&f)+n|0,Q=E>>>0>>0?Q+1|0:Q,n=ug(e,s,39)^G,Q=(p^H)+Q|0,G=E=n+E|0,E=Q=E>>>0>>0?Q+1|0:Q,i[y+48>>2]=G,i[y+52>>2]=Q,a=y,Q=ug(h,C,14),y=p,n=ug(h,C,18)^Q,H=p^y,w=r,Q=((t^c)&C^t)+u|0,Q=(r=(D^l)&h^l)>>>0>(y=r+k|0)>>>0?Q+1|0:Q,n=ug(h,C,41)^n,Q=(p^H)+Q|0,Q=n>>>0>(y=n+y|0)>>>0?Q+1|0:Q,y=(k=i[(r=U=(n=(2|B)<<3)+g|0)>>2])+y|0,Q=i[r+4>>2]+Q|0,Q=y>>>0>>0?Q+1|0:Q,y=(r=i[(n=n+34784|0)>>2])+y|0,Q=i[n+4>>2]+Q|0,Q=r>>>0>y>>>0?Q+1|0:Q,y=w+(n=r=y)|0,w=o,o=Q,Q=w+Q|0,n=Q=n>>>0>y>>>0?Q+1|0:Q,i[a+8>>2]=y,i[a+12>>2]=Q,Q=ug(G,E,28),k=p,u=ug(G,E,34)^Q,k^=p,Q=((f|s)&E|f&s)+o|0,Q=(r=(H=(e|F)&G|e&F)+r|0)>>>0>>0?Q+1|0:Q,o=r,r=ug(G,E,39)^u,Q=(p^k)+Q|0,k=o=o+r|0,o=Q=o>>>0>>0?Q+1|0:Q,i[a+40>>2]=k,i[a+44>>2]=Q,r=a,Q=ug(y,n,14),a=p,u=ug(y,n,18)^Q,H=p^a,w=F,Q=(c^(C^c)&n)+t|0,Q=(a=(F=D^(h^D)&y)+l|0)>>>0>>0?Q+1|0:Q,t=a,a=ug(y,n,41)^u,Q=(p^H)+Q|0,Q=a>>>0>(t=t+a|0)>>>0?Q+1|0:Q,t=(u=i[(l=F=(a=(3|B)<<3)+g|0)>>2])+t|0,Q=i[l+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,t=(l=i[(a=a+34784|0)>>2])+t|0,Q=i[a+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,l=t,t=w+(a=t)|0,w=f,f=Q,Q=w+Q|0,a=Q=a>>>0>t>>>0?Q+1|0:Q,i[r>>2]=t,i[r+4>>2]=Q,Q=ug(k,o,28),u=p,H=ug(k,o,34)^Q,u^=p,Q=((E|s)&o|E&s)+f|0,Q=(l=(v=(e|G)&k|e&G)+l|0)>>>0>>0?Q+1|0:Q,f=l,l=ug(k,o,39)^H,Q=(p^u)+Q|0,Q=(f=f+l|0)>>>0>>0?Q+1|0:Q,l=f,f=Q,i[r+32>>2]=l,i[r+36>>2]=Q,Q=ug(t,a,14),u=p,H=ug(t,a,18)^Q,u^=p,w=e,Q=c+(C^(C^n)&a)|0,Q=(e=D+(h^(y^h)&t)|0)>>>0>>0?Q+1|0:Q,c=ug(t,a,41)^H,Q=(p^u)+Q|0,Q=c>>>0>(D=c+e|0)>>>0?Q+1|0:Q,D=(u=i[(e=S=(c=(4|B)<<3)+g|0)>>2])+D|0,Q=i[e+4>>2]+Q|0,Q=D>>>0>>0?Q+1|0:Q,D=(e=i[(c=c+34784|0)>>2])+D|0,Q=i[c+4>>2]+Q|0,c=s,s=Q=e>>>0>D>>>0?Q+1|0:Q,Q=c+Q|0,c=Q=(e=D)>>>0>(D=w+e|0)>>>0?Q+1|0:Q,i[r+56>>2]=D,i[r+60>>2]=Q,Q=ug(l,f,28),u=p,H=ug(l,f,34)^Q,u^=p,Q=((E|o)&f|E&o)+s|0,Q=(e=(v=(k|G)&l|k&G)+e|0)>>>0>>0?Q+1|0:Q,s=e,e=ug(l,f,39)^H,Q=(p^u)+Q|0,u=s=s+e|0,s=Q=e>>>0>s>>>0?Q+1|0:Q,i[r+24>>2]=u,i[r+28>>2]=Q,Q=ug(D,c,14),e=p,H=ug(D,c,18)^Q,v=p^e,w=G,Q=C+(n^(n^a)&c)|0,Q=(e=h+(y^(t^y)&D)|0)>>>0>>0?Q+1|0:Q,C=ug(D,c,41)^H,Q=(p^v)+Q|0,Q=C>>>0>(h=C+e|0)>>>0?Q+1|0:Q,h=(H=i[(e=G=(C=(5|B)<<3)+g|0)>>2])+h|0,Q=i[e+4>>2]+Q|0,Q=h>>>0>>0?Q+1|0:Q,h=(e=i[(C=C+34784|0)>>2])+h|0,Q=i[C+4>>2]+Q|0,Q=e>>>0>h>>>0?Q+1|0:Q,h=w+(C=e=h)|0,w=E,E=Q,Q=w+Q|0,C=Q=C>>>0>h>>>0?Q+1|0:Q,i[r+48>>2]=h,i[r+52>>2]=Q,Q=ug(u,s,28),H=p,v=ug(u,s,34)^Q,H^=p,Q=((o|f)&s|o&f)+E|0,Q=(e=(_=(l|k)&u|l&k)+e|0)>>>0<_>>>0?Q+1|0:Q,E=e,e=ug(u,s,39)^v,Q=(p^H)+Q|0,v=E=E+e|0,E=Q=E>>>0>>0?Q+1|0:Q,i[r+16>>2]=v,i[r+20>>2]=Q,Q=ug(h,C,14),e=p,H=ug(h,C,18)^Q,_=p^e,w=k,Q=n+(a^(a^c)&C)|0,Q=(e=y+(t^(t^D)&h)|0)>>>0>>0?Q+1|0:Q,n=ug(h,C,41)^H,Q=(p^_)+Q|0,Q=n>>>0>(y=n+e|0)>>>0?Q+1|0:Q,y=(k=i[(e=R=(n=(6|B)<<3)+g|0)>>2])+y|0,Q=i[e+4>>2]+Q|0,Q=y>>>0>>0?Q+1|0:Q,y=(e=i[(n=n+34784|0)>>2])+y|0,Q=i[n+4>>2]+Q|0,Q=e>>>0>y>>>0?Q+1|0:Q,y=w+(n=e=y)|0,w=o,o=Q,Q=w+Q|0,n=Q=n>>>0>y>>>0?Q+1|0:Q,i[r+40>>2]=y,i[r+44>>2]=Q,Q=ug(v,E,28),k=p,H=ug(v,E,34)^Q,k^=p,Q=((f|s)&E|f&s)+o|0,Q=(e=(_=(u|l)&v|u&l)+e|0)>>>0<_>>>0?Q+1|0:Q,o=e,e=ug(v,E,39)^H,Q=(p^k)+Q|0,_=o=o+e|0,o=Q=o>>>0>>0?Q+1|0:Q,i[r+8>>2]=_,i[r+12>>2]=Q,Q=ug(y,n,14),e=p,k=ug(y,n,18)^Q,H=p^e,w=l,Q=a+(c^(C^c)&n)|0,Q=(e=t+(D^(h^D)&y)|0)>>>0>>0?Q+1|0:Q,a=ug(y,n,41)^k,Q=(p^H)+Q|0,Q=a>>>0>(t=a+e|0)>>>0?Q+1|0:Q,t=(l=i[(e=k=(a=(7|B)<<3)+g|0)>>2])+t|0,Q=i[e+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,t=(e=i[(a=a+34784|0)>>2])+t|0,Q=i[a+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,t=w+(a=e=t)|0,w=f,f=Q,Q=w+Q|0,a=Q=a>>>0>t>>>0?Q+1|0:Q,i[r+32>>2]=t,i[r+36>>2]=Q,Q=ug(_,o,28),l=p,H=ug(_,o,34)^Q,l^=p,Q=((E|s)&o|E&s)+f|0,Q=(e=(w=(u|v)&_|u&v)+e|0)>>>0>>0?Q+1|0:Q,f=e,e=ug(_,o,39)^H,Q=(p^l)+Q|0,w=f=f+e|0,f=Q=e>>>0>f>>>0?Q+1|0:Q,i[r>>2]=w,i[r+4>>2]=Q,e=r,Q=ug(t,a,14),r=p,l=ug(t,a,18)^Q,H=p^r,Q=c+(C^(C^n)&a)|0,Q=(r=D+(h^(y^h)&t)|0)>>>0>>0?Q+1|0:Q,c=ug(t,a,41)^l,Q=(p^H)+Q|0,Q=c>>>0>(D=c+r|0)>>>0?Q+1|0:Q,D=(l=i[(r=H=(c=(8|B)<<3)+g|0)>>2])+D|0,Q=i[r+4>>2]+Q|0,Q=D>>>0>>0?Q+1|0:Q,D=(r=i[(c=c+34784|0)>>2])+D|0,Q=i[c+4>>2]+Q|0,Q=r>>>0>D>>>0?Q+1|0:Q,l=D,r=s,s=Q,Q=r+Q|0,r=Q=(c=D)>>>0>(D=c+u|0)>>>0?Q+1|0:Q,i[e+24>>2]=D,i[e+28>>2]=Q,c=e,Q=ug(w,f,28),e=p,u=ug(w,f,34)^Q,Y=p^e,e=(Q=l)+(l=(_|v)&w|_&v)|0,Q=((E|o)&f|E&o)+s|0,Q=e>>>0>>0?Q+1|0:Q,s=e,e=ug(w,f,39)^u,Q=(p^Y)+Q|0,Y=s=s+e|0,s=Q=e>>>0>s>>>0?Q+1|0:Q,i[c+56>>2]=Y,i[c+60>>2]=Q,Q=ug(D,r,14),e=p,l=ug(D,r,18)^Q,u=p^e,Q=C+(n^(n^a)&r)|0,Q=(e=h+(y^(t^y)&D)|0)>>>0>>0?Q+1|0:Q,C=ug(D,r,41)^l,Q=(p^u)+Q|0,Q=C>>>0>(h=C+e|0)>>>0?Q+1|0:Q,h=(u=i[(e=l=(C=(9|B)<<3)+g|0)>>2])+h|0,Q=i[e+4>>2]+Q|0,Q=h>>>0>>0?Q+1|0:Q,h=(e=i[(C=C+34784|0)>>2])+h|0,Q=i[C+4>>2]+Q|0,Q=e>>>0>h>>>0?Q+1|0:Q,e=E,E=Q,Q=e+Q|0,e=Q=(C=h)>>>0>(h=C+v|0)>>>0?Q+1|0:Q,i[c+16>>2]=h,i[c+20>>2]=Q,Q=ug(Y,s,28),u=p,v=ug(Y,s,34)^Q,u^=p,Q=((o|f)&s|o&f)+E|0,Q=(C=(b=(w|_)&Y|w&_)+C|0)>>>0>>0?Q+1|0:Q,E=C,C=ug(Y,s,39)^v,Q=(p^u)+Q|0,b=E=E+C|0,E=Q=E>>>0>>0?Q+1|0:Q,i[c+48>>2]=b,i[c+52>>2]=Q,Q=ug(h,e,14),C=p,u=ug(h,e,18)^Q,v=p^C,Q=n+(a^(r^a)&e)|0,Q=(C=y+(t^(t^D)&h)|0)>>>0>>0?Q+1|0:Q,n=C,C=ug(h,e,41)^u,Q=(p^v)+Q|0,Q=C>>>0>(y=n+C|0)>>>0?Q+1|0:Q,y=(u=i[(n=v=(C=(10|B)<<3)+g|0)>>2])+y|0,Q=i[n+4>>2]+Q|0,Q=y>>>0>>0?Q+1|0:Q,y=(n=i[(C=C+34784|0)>>2])+y|0,Q=i[C+4>>2]+Q|0,Q=n>>>0>y>>>0?Q+1|0:Q,u=y,n=o,o=Q,Q=n+Q|0,n=Q=(C=y)>>>0>(y=C+_|0)>>>0?Q+1|0:Q,i[c+8>>2]=y,i[c+12>>2]=Q,C=c,Q=ug(b,E,28),c=p,_=ug(b,E,34)^Q,N=p^c,c=(Q=u)+(u=(w|Y)&b|w&Y)|0,Q=((f|s)&E|f&s)+o|0,Q=c>>>0>>0?Q+1|0:Q,o=c,c=ug(b,E,39)^_,Q=(p^N)+Q|0,c=Q=(o=o+c|0)>>>0>>0?Q+1|0:Q,i[C+40>>2]=o,i[C+44>>2]=Q,Q=ug(y,n,14),u=p,_=ug(y,n,18)^Q,N=p^u,m=w,Q=a+(r^(r^e)&n)|0,Q=(u=t+(D^(h^D)&y)|0)>>>0>>0?Q+1|0:Q,a=ug(y,n,41)^_,Q=(p^N)+Q|0,Q=a>>>0>(t=a+u|0)>>>0?Q+1|0:Q,t=(w=i[(u=(a=(11|B)<<3)+g|0)>>2])+t|0,Q=i[u+4>>2]+Q|0,Q=t>>>0>>0?Q+1|0:Q,t=(_=i[(a=a+34784|0)>>2])+t|0,Q=i[a+4>>2]+Q|0,Q=t>>>0<_>>>0?Q+1|0:Q,w=t,_=f,f=Q,Q=_+Q|0,a=Q=(a=t)>>>0>(t=m+a|0)>>>0?Q+1|0:Q,i[C>>2]=t,i[C+4>>2]=Q,_=C,Q=ug(o,c,28),C=p,N=ug(o,c,34)^Q,M=p^C,C=(Q=w)+(w=(Y|b)&o|Y&b)|0,Q=((E|s)&c|E&s)+f|0,Q=C>>>0>>0?Q+1|0:Q,f=C,C=ug(o,c,39)^N,Q=(p^M)+Q|0,C=Q=C>>>0>(f=f+C|0)>>>0?Q+1|0:Q,i[_+32>>2]=f,i[_+36>>2]=Q,w=_,Q=ug(t,a,14),_=p,N=ug(t,a,18)^Q,M=p^_,m=Y,Q=r+(e^(n^e)&a)|0,Q=(_=D+(h^(y^h)&t)|0)>>>0>>0?Q+1|0:Q,r=ug(t,a,41)^N,Q=(p^M)+Q|0,Q=r>>>0>(D=r+_|0)>>>0?Q+1|0:Q,D=(N=i[(Y=_=(r=(12|B)<<3)+g|0)>>2])+D|0,Q=i[Y+4>>2]+Q|0,Q=D>>>0>>0?Q+1|0:Q,D=(Y=i[(r=r+34784|0)>>2])+D|0,Q=i[r+4>>2]+Q|0,Q=D>>>0>>0?Q+1|0:Q,Y=D,D=m+(r=D)|0,m=s,s=Q,Q=m+Q|0,N=D,D=Q=r>>>0>D>>>0?Q+1|0:Q,i[w+56>>2]=N,i[w+60>>2]=Q,r=w,Q=ug(f,C,28),w=p,M=ug(f,C,34)^Q,m=p^w,w=(Q=Y)+(Y=(o|b)&f|o&b)|0,Q=((E|c)&C|E&c)+s|0,Q=w>>>0>>0?Q+1|0:Q,s=w,w=ug(f,C,39)^M,Q=(p^m)+Q|0,Y=s=s+w|0,s=Q=s>>>0>>0?Q+1|0:Q,i[r+24>>2]=Y,i[r+28>>2]=Q,w=r,Q=ug(N,D,14),r=p,M=ug(N,D,18)^Q,m=p^r,P=b,Q=e+(n^(n^a)&D)|0,Q=(r=h+(y^(t^y)&N)|0)>>>0>>0?Q+1|0:Q,e=r,r=ug(N,D,41)^M,Q=(p^m)+Q|0,Q=r>>>0>(h=e+r|0)>>>0?Q+1|0:Q,r=(r=h)+(M=i[(h=(e=(13|B)<<3)+g|0)>>2])|0,Q=i[h+4>>2]+Q|0,Q=r>>>0>>0?Q+1|0:Q,r=(b=i[(e=e+34784|0)>>2])+r|0,Q=i[e+4>>2]+Q|0,Q=r>>>0>>0?Q+1|0:Q,b=r,e=r,m=E,E=Q,Q=m+Q|0,M=r=P+r|0,r=Q=r>>>0>>0?Q+1|0:Q,i[w+48>>2]=M,i[w+52>>2]=Q,e=w,Q=ug(Y,s,28),w=p,m=ug(Y,s,34)^Q,P=p^w,w=(Q=b)+(b=(o|f)&Y|o&f)|0,Q=((C|c)&s|C&c)+E|0,Q=w>>>0>>0?Q+1|0:Q,E=w,w=ug(Y,s,39)^m,Q=(p^P)+Q|0,b=E=E+w|0,E=Q=E>>>0>>0?Q+1|0:Q,i[e+16>>2]=b,i[e+20>>2]=Q,Q=ug(M,r,14),w=p,m=ug(M,r,18)^Q,P=p^w,Q=n+(a^(a^D)&r)|0,Q=(w=y+(t^(t^N)&M)|0)>>>0>>0?Q+1|0:Q,n=ug(M,r,41)^m,Q=(p^P)+Q|0,Q=n>>>0>(y=n+w|0)>>>0?Q+1|0:Q,n=(n=y)+(P=i[(y=(w=(14|B)<<3)+g|0)>>2])|0,Q=i[y+4>>2]+Q|0,Q=n>>>0

>>0?Q+1|0:Q,n=(m=i[(w=w+34784|0)>>2])+n|0,Q=i[w+4>>2]+Q|0,P=n,w=Q=n>>>0>>0?Q+1|0:Q,Q=c+Q|0,m=n=o+n|0,o=Q=n>>>0>>0?Q+1|0:Q,i[e+40>>2]=n,i[e+44>>2]=Q,n=e,Q=ug(b,E,28),c=p,e=ug(b,E,34)^Q,J=p^c,c=(Q=P)+(P=(f|Y)&b|f&Y)|0,Q=((C|s)&E|C&s)+w|0,Q=c>>>0

>>0?Q+1|0:Q,e=ug(b,E,39)^e,Q=(p^J)+Q|0,Q=e>>>0>(c=e+c|0)>>>0?Q+1|0:Q,e=c,c=Q,i[n+8>>2]=e,i[n+12>>2]=Q,Q=ug(m,o,14),n=p,P=ug(m,o,18)^Q,J=p^n,Q=a+(D^(r^D)&o)|0,Q=(w=t+(N^(N^M)&m)|0)>>>0>>0?Q+1|0:Q,D=ug(m,o,41)^P,Q=(p^J)+Q|0,Q=(o=D+w|0)>>>0>>0?Q+1|0:Q,o=(r=i[(a=D=(t=(15|B)<<3)+g|0)>>2])+o|0,Q=i[a+4>>2]+Q|0,Q=o>>>0>>0?Q+1|0:Q,o=(a=i[(t=t+34784|0)>>2])+o|0,Q=i[t+4>>2]+Q|0,Q=o>>>0>>0?Q+1|0:Q,t=f+(a=o)|0,o=Q,Q=C+Q|0,i[(n=I)+32>>2]=t,i[n+36>>2]=t>>>0>>0?Q+1|0:Q,Q=ug(e,c,28),f=p,C=ug(e,c,34)^Q,n=p^f,Q=((E|s)&c|E&s)+o|0,s=(t=(E=a)+(a=(Y|b)&e|Y&b)|0)+(E=ug(e,c,39)^C)|0,Q=(p^n)+(a>>>0>t>>>0?Q+1|0:Q)|0,i[(f=I)>>2]=s,i[f+4>>2]=E>>>0>s>>>0?Q+1|0:Q,64==(0|B)){for(;s=g=(B=x<<3)+A|0,B=(E=i[(Q=I+B|0)>>2])+i[s>>2]|0,Q=i[s+4>>2]+i[Q+4>>2]|0,i[s>>2]=B,i[s+4>>2]=B>>>0>>0?Q+1|0:Q,8!=(0|(x=x+1|0)););break}c=((B=B+16|0)<<3)+g|0,Y=s=i[y+4>>2],Q=s>>>6|0,s=((63&s)<<26|(b=i[y>>2])>>>6)^ug(b,s,19),Q^=p,s=(C=ug(b,Y,61)^s)+(E=w=i[l>>2])|0,Q=(f=i[l+4>>2])+(p^Q)|0,Q=E>>>0>s>>>0?Q+1|0:Q,s=(o=i[(E=g+L|0)>>2])+s|0,Q=i[E+4>>2]+Q|0,s=o>>>0>(C=s)>>>0?Q+1|0:Q,o=E=i[d+4>>2],Q=E>>>7|0,E=((127&E)<<25|(t=i[d>>2])>>>7)^ug(t,E,1),Q^=p,a=C,C=ug(t,o,8)^E,Q=(p^Q)+s|0,n=E=a+C|0,E=Q=E>>>0>>0?Q+1|0:Q,i[c>>2]=n,i[c+4>>2]=Q,Q=i[(c=d)+76>>2]+o|0,C=t,o=(t=i[c+72>>2])>>>0>(C=s=C+t|0)>>>0?Q+1|0:Q,s=t=i[D+4>>2],Q=t>>>6|0,t=((63&t)<<26|(e=i[D>>2])>>>6)^ug(e,t,19),Q^=p,a=C,C=ug(e,s,61)^t,Q=(p^Q)+o|0,o=C>>>0>(a=t=a+C|0)>>>0?Q+1|0:Q,t=C=i[c+12>>2],Q=C>>>7|0,C=((127&C)<<25|(r=i[c+8>>2])>>>7)^ug(r,C,1),Q^=p,d=a,a=ug(r,t,8)^C,Q=(p^Q)+o|0,Q=(C=d+a|0)>>>0>>0?Q+1|0:Q,a=C,o=Q,i[c+128>>2]=C,i[c+132>>2]=Q,c=U,C=t,Q=ug(n,E,19),U=p,t=Q,Q=E>>>6|0,E=(E=ug(n,E,61)^t^((63&E)<<26|n>>>6))+(n=d=i[u>>2])|0,Q=(t=i[u+4>>2])+(p^Q^U)|0,Q=E>>>0>>0?Q+1|0:Q,n=E,Q=Q+C|0,r=E=E+r|0,E=E>>>0>>0?Q+1|0:Q,n=C=i[F+4>>2],Q=C>>>7|0,C=((127&C)<<25|(U=i[F>>2])>>>7)^ug(U,C,1),Q^=p,m=r,r=ug(U,n,8)^C,Q=(p^Q)+E|0,Q=(C=m+r|0)>>>0>>0?Q+1|0:Q,r=C,E=Q,i[c+128>>2]=C,i[c+132>>2]=Q,c=(Q=U)+(U=i[(C=F)+72>>2])|0,Q=i[C+76>>2]+n|0,n=Q=c>>>0>>0?Q+1|0:Q,Q=ug(a,o,19),U=p,F=c,c=Q,Q=o>>>6|0,c=ug(a,o,61)^c^((63&o)<<26|a>>>6),Q=(p^Q^U)+n|0,U=o=F+c|0,o=o>>>0>>0?Q+1|0:Q,c=n=i[C+12>>2],Q=n>>>7|0,n=((127&n)<<25|(a=i[C+8>>2])>>>7)^ug(a,n,1),Q^=p,F=ug(a,c,8)^n,Q=(p^Q)+o|0,Q=(n=F+U|0)>>>0>>0?Q+1|0:Q,F=n,o=Q,i[C+128>>2]=n,i[C+132>>2]=Q,C=S,n=c,Q=ug(r,E,19),S=p,m=a,a=Q,Q=E>>>6|0,E=(E=ug(r,E,61)^a^((63&E)<<26|r>>>6))+(a=U=i[h>>2])|0,Q=(c=i[h+4>>2])+(p^Q^S)|0,Q=E>>>0>>0?Q+1|0:Q,a=E,Q=Q+n|0,S=E=m+E|0,E=E>>>0>>0?Q+1|0:Q,a=n=i[G+4>>2],Q=n>>>7|0,n=((127&n)<<25|(r=i[G>>2])>>>7)^ug(r,n,1),Q^=p,m=S,S=ug(r,a,8)^n,Q=(p^Q)+E|0,Q=(n=m+S|0)>>>0>>0?Q+1|0:Q,S=n,E=Q,i[C+128>>2]=n,i[C+132>>2]=Q,C=(Q=r)+(r=i[(n=G)+72>>2])|0,Q=i[n+76>>2]+a|0,a=Q=C>>>0>>0?Q+1|0:Q,Q=ug(F,o,19),r=p,G=C,m=Q,Q=(C=o)>>>6|0,C=m^((63&C)<<26|F>>>6)^ug(F,C,61),Q=(p^Q^r)+a|0,o=C>>>0>(r=o=G+C|0)>>>0?Q+1|0:Q,Q=(C=a=i[n+12>>2])>>>7|0,a=((127&C)<<25|(G=i[n+8>>2])>>>7)^ug(G,C,1),Q^=p,F=r,r=ug(G,C,8)^a,Q=(p^Q)+o|0,F=a=F+r|0,o=Q=r>>>0>a>>>0?Q+1|0:Q,i[n+128>>2]=a,i[n+132>>2]=Q,n=R,a=C,Q=ug(S,E,19),R=p,C=Q,Q=E>>>6|0,C=ug(S,E,61)^C^((63&E)<<26|S>>>6),Q=(p^Q^R)+s|0,Q=(E=C+e|0)>>>0>>0?Q+1|0:Q,C=E,Q=Q+a|0,G=E=E+G|0,E=E>>>0>>0?Q+1|0:Q,Q=(C=r=i[k+4>>2])>>>7|0,r=((127&C)<<25|(a=i[k>>2])>>>7)^ug(a,C,1),Q^=p,S=G,G=ug(a,C,8)^r,Q=(p^Q)+E|0,E=Q=(r=S+G|0)>>>0>>0?Q+1|0:Q,i[n+128>>2]=r,i[n+132>>2]=Q,Q=i[(n=k)+76>>2]+C|0,a=(C=a=(G=i[n+72>>2])+a|0)>>>0>>0?Q+1|0:Q,Q=ug(F,o,19),G=p,S=C,k=Q,Q=(C=o)>>>6|0,C=k^((63&C)<<26|F>>>6)^ug(F,C,61),Q=(p^Q^G)+a|0,F=o=S+C|0,o=C>>>0>o>>>0?Q+1|0:Q,Q=(C=a=i[n+12>>2])>>>7|0,a=((127&C)<<25|(G=i[n+8>>2])>>>7)^ug(G,C,1),Q^=p,S=F,F=ug(G,C,8)^a,Q=(p^Q)+o|0,Q=(a=S+F|0)>>>0>>0?Q+1|0:Q,F=a,o=Q,i[n+128>>2]=a,i[n+132>>2]=Q,a=C,Q=ug(r,E,19),k=p,C=Q,Q=E>>>6|0,E=(E=ug(r,E,61)^C^((63&E)<<26|r>>>6))+(C=i[(n=H)+72>>2])|0,Q=i[n+76>>2]+(p^Q^k)|0,Q=E>>>0>>0?Q+1|0:Q,C=E,Q=Q+a|0,C=Q=(E=E+G|0)>>>0>>0?Q+1|0:Q,Q=ug(w,f,1),a=p,G=E,r=Q,Q=(E=f)>>>7|0,r=r^((127&E)<<25|w>>>7)^ug(w,E,8),Q=(p^Q^a)+C|0,a=E=G+r|0,E=Q=E>>>0>>0?Q+1|0:Q,i[n+128>>2]=a,i[n+132>>2]=Q,Q=i[(C=l)+76>>2]+f|0,f=n=(r=i[C+72>>2])+w|0,n=n>>>0>>0?Q+1|0:Q,Q=ug(F,o,19),r=p,w=f,f=Q,Q=o>>>6|0,f=ug(F,o,61)^f^((63&o)<<26|F>>>6),Q=(p^Q^r)+n|0,o=(r=o=w+f|0)>>>0>>0?Q+1|0:Q,f=n=i[C+12>>2],Q=n>>>7|0,n=((127&n)<<25|(F=i[C+8>>2])>>>7)^ug(F,n,1),Q^=p,w=r,r=ug(F,f,8)^n,Q=(p^Q)+o|0,Q=(n=w+r|0)>>>0>>0?Q+1|0:Q,r=n,o=Q,i[C+128>>2]=n,i[C+132>>2]=Q,n=f,Q=ug(a,E,19),G=p,C=Q,Q=E>>>6|0,E=(E=ug(a,E,61)^C^((63&E)<<26|a>>>6))+(f=i[(C=v)+72>>2])|0,Q=i[C+76>>2]+(p^Q^G)|0,Q=E>>>0>>0?Q+1|0:Q,f=E,Q=Q+n|0,f=Q=(E=E+F|0)>>>0>>0?Q+1|0:Q,Q=ug(d,t,1),n=p,w=E,a=Q,Q=(E=t)>>>7|0,a=a^((127&E)<<25|d>>>7)^ug(d,E,8),Q=(p^Q^n)+f|0,n=E=w+a|0,E=Q=E>>>0>>0?Q+1|0:Q,i[C+128>>2]=n,i[C+132>>2]=Q,f=(a=i[(C=u)+72>>2])+d|0,Q=i[C+76>>2]+t|0,t=Q=a>>>0>f>>>0?Q+1|0:Q,Q=ug(r,o,19),a=p,w=f,f=Q,Q=o>>>6|0,f=ug(r,o,61)^f^((63&o)<<26|r>>>6),Q=(p^Q^a)+t|0,o=(a=o=w+f|0)>>>0>>0?Q+1|0:Q,f=t=i[C+12>>2],Q=t>>>7|0,t=((127&t)<<25|(r=i[C+8>>2])>>>7)^ug(r,t,1),Q^=p,w=a,a=ug(r,f,8)^t,Q=(p^Q)+o|0,Q=a>>>0>(t=w+a|0)>>>0?Q+1|0:Q,a=t,o=Q,i[C+128>>2]=a,i[C+132>>2]=Q,C=f,Q=ug(n,E,19),d=p,f=Q,Q=E>>>6|0,E=(E=ug(n,E,61)^f^((63&E)<<26|n>>>6))+(f=i[(t=_)+72>>2])|0,Q=i[t+76>>2]+(p^Q^d)|0,Q=E>>>0>>0?Q+1|0:Q,f=E,Q=Q+C|0,f=Q=(E=E+r|0)>>>0>>0?Q+1|0:Q,Q=ug(U,c,1),C=p,r=E,n=Q,Q=(E=c)>>>7|0,n=n^((127&E)<<25|U>>>7)^ug(U,E,8),Q=(p^Q^C)+f|0,C=E=r+n|0,E=Q=E>>>0>>0?Q+1|0:Q,i[t+128>>2]=C,i[t+132>>2]=Q,t=(n=i[(f=h)+72>>2])+U|0,Q=i[f+76>>2]+c|0,c=Q=n>>>0>t>>>0?Q+1|0:Q,Q=ug(a,o,19),n=p,r=t,t=Q,Q=o>>>6|0,t=ug(a,o,61)^t^((63&o)<<26|a>>>6),Q=(p^Q^n)+c|0,o=(n=o=r+t|0)>>>0>>0?Q+1|0:Q,c=t=i[f+12>>2],Q=t>>>7|0,t=((127&t)<<25|(h=i[f+8>>2])>>>7)^ug(h,t,1),Q^=p,t=ug(h,c,8)^t,Q=(p^Q)+o|0,Q=t>>>0>(h=t+n|0)>>>0?Q+1|0:Q,t=h,o=Q,i[f+128>>2]=t,i[f+132>>2]=Q,h=(c=i[(f=y)+72>>2])+b|0,Q=i[f+76>>2]+Y|0,y=Q=c>>>0>h>>>0?Q+1|0:Q,Q=ug(C,E,19),c=p,a=h,n=Q,Q=E>>>6|0,h=ug(C,E,61)^n^((63&E)<<26|C>>>6),Q=(p^Q^c)+y|0,h=Q=(E=a+h|0)>>>0>>0?Q+1|0:Q,Q=ug(e,s,1),y=p,C=E,a=Q,Q=(E=s)>>>7|0,E=C+(c=a^((127&E)<<25|e>>>7)^ug(e,E,8))|0,Q=(p^Q^y)+h|0,i[f+128>>2]=E,i[f+132>>2]=E>>>0>>0?Q+1|0:Q,Q=i[(E=D)+76>>2]+s|0,s=f=(h=i[E+72>>2])+e|0,f=f>>>0>>0?Q+1|0:Q,Q=ug(t,o,19),h=p,C=Q,Q=o>>>6|0,o=ug(t,o,61)^C^((63&o)<<26|t>>>6),Q=(p^Q^h)+f|0,s=o>>>0>(y=s=o+s|0)>>>0?Q+1|0:Q,D=((127&(f=h=i[E+12>>2]))<<25|(o=i[E+8>>2])>>>7)^ug(o,f,1),Q=p^f>>>7,D=(h=ug(o,f,8)^D)+y|0,Q=(p^Q)+s|0,i[E+128>>2]=D,i[E+132>>2]=h>>>0>D>>>0?Q+1|0:Q}}function G(A){var I,g,B,Q,E,i,a,r,o,e,t,f,c,y,s,w,h,D,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0,CA=0,EA=0;y=HI(A),s=n[A+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,w=HI(A+5|0),h=p,IA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,gA=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,D=HI(A+13|0),BA=p,M=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,Z=HI(A+18|0),d=p,m=HI(A+21|0),_=n[A+23|0]|n[A+24|0]<<8|n[A+25|0]<<16|n[A+26|0]<<24,k=HI(A+26|0),l=p,AA=n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,q=n[A+31|0]|n[A+32|0]<<8|n[A+33|0]<<16|n[A+34|0]<<24,T=HI(A+34|0),W=p,P=n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24,O=HI(A+39|0),J=p,Y=HI(A+42|0),G=n[A+44|0]|n[A+45|0]<<8|n[A+46|0]<<16|n[A+47|0]<<24,F=HI(A+47|0),u=2097151&((3&l)<<30|k>>>2),k=eg(I=2097151&((3&(H=p))<<30|F>>>2),0,136657,0)+u|0,l=p,l=u>>>0>k>>>0?l+1|0:l,F=eg(g=(n[A+49|0]|n[A+50|0]<<8|n[A+51|0]<<16|n[A+52|0]<<24)>>>7&2097151,0,-997805,-1),u=p+l|0,u=F>>>0>(k=F+k|0)>>>0?u+1|0:u,l=eg(B=(n[A+52|0]|n[A+53|0]<<8|n[A+54|0]<<16|n[A+55|0]<<24)>>>4&2097151,0,654183,0),F=p+u|0,F=l>>>0>(k=l+k|0)>>>0?F+1|0:F,u=k,l=HI(A+55|0),k=u+(l=eg(Q=2097151&((1&(k=p))<<31|l>>>1),0,470296,0))|0,u=p+F|0,u=l>>>0>k>>>0?u+1|0:u,F=eg(E=(n[A+57|0]|n[A+58|0]<<8|n[A+59|0]<<16|n[A+60|0]<<24)>>>6&2097151,0,666643,0),l=p+u|0,U=l=F>>>0>(k=F+k|0)>>>0?l+1|0:l,F=l,b=G>>>5&2097151,l=2097151&Y,G=eg(i=(n[A+60|0]|n[A+61|0]<<8|n[A+62|0]<<16|n[A+63|0]<<24)>>>3|0,0,-683901,-1)+l|0,u=p,Y=G,S=u=l>>>0>G>>>0?u+1|0:u,N=(u=G)- -1048576|0,L=G=S-((u>>>0<4293918720)-1|0)|0,u=G>>21,r=b=(G=(2097151&G)<<11|N>>>21)+b|0,V=l=G>>>0>b>>>0?u+1|0:u,u=eg(b,l,-683901,-1),l=p+F|0,j=H=u+k|0,v=u>>>0>H>>>0?l+1|0:l,F=_>>>5&2097151,H=eg(I,0,-997805,-1)+F|0,u=p,u=F>>>0>H>>>0?u+1|0:u,l=eg(g,0,654183,0),F=p+u|0,F=l>>>0>(H=l+H|0)>>>0?F+1|0:F,u=eg(B,0,470296,0),l=p+F|0,l=u>>>0>(H=u+H|0)>>>0?l+1|0:l,F=eg(Q,0,666643,0),u=p+l|0,F=F>>>0>(_=H=F+H|0)>>>0?u+1|0:u,u=2097151&m,H=eg(I,0,654183,0)+u|0,l=p,l=u>>>0>H>>>0?l+1|0:l,G=(u=H)+(H=eg(g,0,470296,0))|0,u=p+l|0,u=G>>>0>>0?u+1|0:u,H=eg(B,0,666643,0),l=p+u|0,b=G=H+G|0,G=l=G>>>0>>0?l+1|0:l,z=(u=b)- -1048576|0,R=H=l-((u>>>0<4293918720)-1|0)|0,F=(u=H>>>21|0)+F|0,m=F=(l=(2097151&H)<<11|z>>>21)>>>0>(_=H=l+_|0)>>>0?F+1|0:F,K=(u=_)- -1048576|0,f=k- -1048576|0,U=U-((k>>>0<4293918720)-1|0)|0,l=(u=(F=x=F-((u>>>0<4293918720)-1|0)|0)>>21)+v|0,U=(l=(k=(2097151&F)<<11|K>>>21)>>>0>(x=k+j|0)>>>0?l+1|0:l)-(((u=-2097152&f)>>>0>(k=x)>>>0)+(H=U)|0)|0,QA=(u=k-u|0)-(l=-2097152&(c=u- -1048576|0))|0,CA=U-((u>>>0>>0)+(k=U-((u>>>0<4293918720)-1|0)|0)|0)|0,l=eg(r,V,136657,0)+_|0,u=m+p|0,u=l>>>0<_>>>0?u+1|0:u,$=(_=l)-(l=-2097152&K)|0,j=u-((l>>>0>_>>>0)+F|0)|0,U=Y-(u=-2097152&N)|0,v=S-((u>>>0>Y>>>0)+L|0)|0,u=2097151&((7&J)<<29|O>>>3),F=eg(i,0,136657,0)+u|0,l=p,l=u>>>0>F>>>0?l+1|0:l,_=(u=F)+(F=eg(E,0,-683901,-1))|0,u=p+l|0,Y=_,_=F>>>0>_>>>0?u+1|0:u,u=eg(Q,0,-683901,-1),l=p,F=u,l=(u=P>>>6&2097151)>>>0>(F=F+u|0)>>>0?l+1|0:l,m=(u=eg(i,0,-997805,-1))+F|0,F=p+l|0,F=u>>>0>m>>>0?F+1|0:F,l=eg(E,0,136657,0),u=p+F|0,K=l=(N=u=l>>>0>(m=l+m|0)>>>0?u+1|0:u)-(((u=m)>>>0<4293918720)-1|0)|0,u=(2097151&l)<<11|(O=u- -1048576|0)>>>21,l=(l>>21)+_|0,S=l=u>>>0>(Y=u+Y|0)>>>0?l+1|0:l,x=(u=Y)- -1048576|0,L=l=l-((u>>>0<4293918720)-1|0)|0,u=(F=l>>21)+v|0,o=_=(l=(2097151&l)<<11|x>>>21)+U|0,X=u=l>>>0>_>>>0?u+1|0:u,l=eg(_,u,-683901,-1),u=p+j|0,EA=F=l+$|0,P=l>>>0>F>>>0?u+1|0:u,v=b,u=2097151&((7&d)<<29|Z>>>3),F=eg(I,0,470296,0)+u|0,l=p,l=u>>>0>F>>>0?l+1|0:l,u=eg(g,0,666643,0),l=p+l|0,U=F=u+F|0,F=u>>>0>F>>>0?l+1|0:l,_=M>>>6&2097151,b=eg(I,0,666643,0)+_|0,u=p,d=_=(M=u=_>>>0>b>>>0?u+1|0:u)-(((u=b)>>>0<4293918720)-1|0)|0,l=(l=_>>>21|0)+F|0,J=l=(u=(2097151&_)<<11|($=u- -1048576|0)>>>21)>>>0>(_=u+U|0)>>>0?l+1|0:l,Z=l-(((u=_)>>>0<4293918720)-1|0)|0,j=u- -1048576|0,a=Y-(u=-2097152&x)|0,e=F=S-((u>>>0>Y>>>0)+L|0)|0,u=((U=Z)>>>21|0)+G|0,u=(Y=(2097151&U)<<11|j>>>21)>>>0>(v=Y+v|0)>>>0?u+1|0:u,v=(G=eg(r,V,-997805,-1))+((Y=v)-(l=-2097152&z)|0)|0,l=p+(u-((8191&R)+(l>>>0>Y>>>0)|0)|0)|0,l=G>>>0>v>>>0?l+1|0:l,u=eg(o,X,136657,0),l=p+l|0,l=u>>>0>(G=u+v|0)>>>0?l+1|0:l,F=eg(a,F,-683901,-1),u=p+l|0,S=u=F>>>0>(G=F+G|0)>>>0?u+1|0:u,x=(u=G)- -1048576|0,L=F=S-((u>>>0<4293918720)-1|0)|0,l=(u=F>>21)+P|0,v=l=(F=(2097151&F)<<11|x>>>21)>>>0>(Y=F+EA|0)>>>0?l+1|0:l,R=(u=F=Y)- -1048576|0,u=(u=(Y=P=l-((u>>>0<4293918720)-1|0)|0)>>21)+CA|0,QA=P=(l=(2097151&Y)<<11|R>>>21)+QA|0,P=l>>>0>P>>>0?u+1|0:u,CA=F-(u=-2097152&R)|0,EA=v-((u>>>0>F>>>0)+Y|0)|0,Z=G-(u=-2097152&x)|0,z=S-((u>>>0>G>>>0)+L|0)|0,u=eg(r,V,654183,0),F=p+(J-((8191&U)+((l=-2097152&j)>>>0>_>>>0)|0)|0)|0,F=u>>>0>(G=u+(_-l|0)|0)>>>0?F+1|0:F,l=eg(o,X,-997805,-1),u=p+F|0,u=l>>>0>(G=l+G|0)>>>0?u+1|0:u,F=eg(a,e,136657,0),l=p+u|0,x=G=F+G|0,Y=F>>>0>G>>>0?l+1|0:l,R=m-(u=-2097152&O)|0,J=N-((u>>>0>m>>>0)+K|0)|0,l=2097151&((1&W)<<31|T>>>1),G=eg(B,0,-683901,-1)+l|0,u=p,u=l>>>0>G>>>0?u+1|0:u,l=eg(Q,0,136657,0),u=p+u|0,u=l>>>0>(F=l+G|0)>>>0?u+1|0:u,G=(l=F)+(F=eg(i,0,654183,0))|0,l=p+u|0,l=F>>>0>G>>>0?l+1|0:l,u=eg(E,0,-997805,-1),l=p+l|0,m=F=u+G|0,G=u>>>0>F>>>0?l+1|0:l,u=eg(g,0,-683901,-1),F=p,l=u,F=(u=q>>>4&2097151)>>>0>(l=l+u|0)>>>0?F+1|0:F,_=(u=l)+(l=eg(B,0,136657,0))|0,u=p+F|0,u=l>>>0>_>>>0?u+1|0:u,F=eg(Q,0,-997805,-1),l=p+u|0,l=F>>>0>(_=F+_|0)>>>0?l+1|0:l,F=eg(i,0,470296,0),u=p+l|0,u=F>>>0>(_=F+_|0)>>>0?u+1|0:u,F=eg(E,0,654183,0),l=p+u|0,S=l=F>>>0>(_=F+_|0)>>>0?l+1|0:l,K=(u=_)- -1048576|0,L=F=l-((u>>>0<4293918720)-1|0)|0,u=(u=F>>21)+G|0,G=F=(l=(2097151&F)<<11|K>>>21)+m|0,v=u=l>>>0>F>>>0?u+1|0:u,U=(u=F)- -1048576|0,m=F=v-((u>>>0<4293918720)-1|0)|0,l=(u=F>>21)+J|0,t=N=(F=(2097151&F)<<11|U>>>21)+R|0,q=l=F>>>0>N>>>0?l+1|0:l,u=eg(N,l,-683901,-1),F=p+Y|0,J=l=u+x|0,Y=u>>>0>l>>>0?F+1|0:F,T=G-(u=-2097152&U)|0,W=m=v-((u>>>0>G>>>0)+m|0)|0,F=(u=eg(r,V,470296,0))+(b-(l=-2097152&$)|0)|0,l=p+(M-((2047&d)+(l>>>0>b>>>0)|0)|0)|0,l=u>>>0>F>>>0?l+1|0:l,u=eg(o,X,654183,0),l=p+l|0,l=u>>>0>(F=u+F|0)>>>0?l+1|0:l,G=(u=eg(a,e,-997805,-1))+F|0,F=p+l|0,F=u>>>0>G>>>0?F+1|0:F,l=eg(N,q,136657,0),u=p+F|0,u=l>>>0>(G=l+G|0)>>>0?u+1|0:u,F=eg(T,m,-683901,-1),l=p+u|0,v=l=F>>>0>(G=F+G|0)>>>0?l+1|0:l,d=(u=G)- -1048576|0,m=F=l-((u>>>0<4293918720)-1|0)|0,u=(u=F>>21)+Y|0,Y=u=(l=(2097151&F)<<11|d>>>21)>>>0>(F=l+J|0)>>>0?u+1|0:u,U=(u=F)- -1048576|0,l=(u=(b=J=Y-((u>>>0<4293918720)-1|0)|0)>>21)+z|0,Z=M=(J=(2097151&b)<<11|U>>>21)+Z|0,J=M>>>0>>0?l+1|0:l,z=F-(u=-2097152&U)|0,O=Y-((u>>>0>F>>>0)+b|0)|0,x=G-(u=-2097152&d)|0,N=v-((u>>>0>G>>>0)+m|0)|0,l=2097151&((1&BA)<<31|D>>>1),G=eg(r,V,666643,0)+l|0,u=p,u=l>>>0>G>>>0?u+1|0:u,F=eg(o,X,470296,0),l=p+u|0,l=F>>>0>(G=F+G|0)>>>0?l+1|0:l,F=eg(a,e,654183,0),u=p+l|0,u=F>>>0>(G=F+G|0)>>>0?u+1|0:u,l=eg(t,q,-997805,-1),F=p+u|0,F=l>>>0>(G=l+G|0)>>>0?F+1|0:F,u=eg(T,W,136657,0),l=p+F|0,m=G=u+G|0,b=u>>>0>G>>>0?l+1|0:l,Y=_-(u=-2097152&K)|0,_=S-((u>>>0>_>>>0)+L|0)|0,u=eg(I,0,-683901,-1),l=p,F=u,l=(u=AA>>>7&2097151)>>>0>(F=F+u|0)>>>0?l+1|0:l,G=(u=eg(g,0,136657,0))+F|0,F=p+l|0,F=u>>>0>G>>>0?F+1|0:F,l=eg(B,0,-997805,-1),u=p+F|0,u=l>>>0>(G=l+G|0)>>>0?u+1|0:u,F=eg(Q,0,654183,0),l=p+u|0,l=F>>>0>(G=F+G|0)>>>0?l+1|0:l,F=eg(i,0,666643,0),u=p+l|0,u=F>>>0>(G=F+G|0)>>>0?u+1|0:u,F=eg(E,0,470296,0),l=p+u|0,u=l=F>>>0>(G=F+G|0)>>>0?l+1|0:l,l=H>>21,G=(H=(2097151&H)<<11|f>>>21)+(F=G)|0,F=u+l|0,L=F=G>>>0>>0?F+1|0:F,S=(u=G)- -1048576|0,v=F=F-((u>>>0<4293918720)-1|0)|0,u=(l=F>>21)+_|0,V=H=(F=(2097151&F)<<11|S>>>21)+Y|0,R=u=F>>>0>H>>>0?u+1|0:u,u=eg(H,u,-683901,-1),l=p+b|0,b=F=u+m|0,H=u>>>0>F>>>0?l+1|0:l,u=eg(o,X,666643,0),F=p,l=u,F=(u=gA>>>4&2097151)>>>0>(l=l+u|0)>>>0?F+1|0:F,_=(u=l)+(l=eg(a,e,470296,0))|0,u=p+F|0,u=l>>>0>_>>>0?u+1|0:u,F=eg(t,q,654183,0),l=p+u|0,l=F>>>0>(_=F+_|0)>>>0?l+1|0:l,u=eg(T,W,-997805,-1),l=p+l|0,l=u>>>0>(F=u+_|0)>>>0?l+1|0:l,_=(u=F)+(F=eg(V,R,136657,0))|0,u=p+l|0,m=u=F>>>0>_>>>0?u+1|0:u,M=(u=_)- -1048576|0,Y=F=m-((u>>>0<4293918720)-1|0)|0,u=(l=F>>21)+H|0,F=u=(F=(2097151&F)<<11|M>>>21)>>>0>(H=b=F+b|0)>>>0?u+1|0:u,d=(u=H)- -1048576|0,u=(l=(b=U=F-((u>>>0<4293918720)-1|0)|0)>>21)+N|0,$=K=(U=(2097151&b)<<11|d>>>21)+x|0,U=U>>>0>K>>>0?u+1|0:u,u=G-(l=-2097152&S)|0,G=L-((l>>>0>G>>>0)+v|0)|0,v=u,u=(u=k>>21)+G|0,S=u=(l=(2097151&k)<<11|c>>>21)>>>0>(G=k=v+l|0)>>>0?u+1|0:u,K=(u=G)- -1048576|0,L=k=S-((u>>>0<4293918720)-1|0)|0,N=u=k>>21,u=eg(X=(2097151&k)<<11|K>>>21,u,-683901,-1),l=p+F|0,l=u>>>0>(k=u+H|0)>>>0?l+1|0:l,j=(F=k)-(u=-2097152&d)|0,x=l-((u>>>0>F>>>0)+b|0)|0,l=eg(X,N,136657,0)+_|0,u=m+p|0,u=l>>>0<_>>>0?u+1|0:u,AA=(F=l)-(l=-2097152&M)|0,M=u-((l>>>0>F>>>0)+Y|0)|0,u=eg(a,e,666643,0),l=p,F=u,l=(u=IA>>>7&2097151)>>>0>(F=F+u|0)>>>0?l+1|0:l,k=(u=eg(t,q,470296,0))+F|0,F=p+l|0,F=u>>>0>k>>>0?F+1|0:F,l=eg(T,W,654183,0),u=p+F|0,u=l>>>0>(k=l+k|0)>>>0?u+1|0:u,l=eg(V,R,-997805,-1),u=p+u|0,Y=F=l+k|0,F=l>>>0>F>>>0?u+1|0:u,u=2097151&((3&h)<<30|w>>>2),k=eg(t,q,666643,0)+u|0,l=p,l=u>>>0>k>>>0?l+1|0:l,u=eg(T,W,470296,0),l=p+l|0,l=u>>>0>(k=u+k|0)>>>0?l+1|0:l,H=(u=k)+(k=eg(V,R,654183,0))|0,u=p+l|0,b=u=k>>>0>H>>>0?u+1|0:u,d=(u=k=H)- -1048576|0,u=(l=(_=H=b-((u>>>0<4293918720)-1|0)|0)>>21)+F|0,m=Y=(H=(2097151&_)<<11|d>>>21)+Y|0,F=u=H>>>0>Y>>>0?u+1|0:u,Y=(u=Y)- -1048576|0,u=(l=(H=v=F-((u>>>0<4293918720)-1|0)|0)>>21)+M|0,IA=q=(v=(2097151&H)<<11|Y>>>21)+AA|0,v=v>>>0>q>>>0?u+1|0:u,u=eg(X,N,-997805,-1),F=p+F|0,F=u>>>0>(l=u+m|0)>>>0?F+1|0:F,gA=l-(u=-2097152&Y)|0,BA=F-((u>>>0>l>>>0)+H|0)|0,u=eg(X,N,654183,0)+k|0,l=b+p|0,l=u>>>0>>0?l+1|0:l,AA=(F=u)-(u=-2097152&d)|0,q=l-((u>>>0>F>>>0)+_|0)|0,u=eg(T,W,666643,0),F=p,l=u,F=(u=s>>>5&2097151)>>>0>(l=l+u|0)>>>0?F+1|0:F,k=(u=l)+(l=eg(V,R,470296,0))|0,u=p+F|0,_=k,F=l>>>0>k>>>0?u+1|0:u,l=2097151&y,k=eg(V,R,666643,0)+l|0,u=p,H=k,Y=k=(m=u=l>>>0>k>>>0?u+1|0:u)-(((u=k)>>>0<4293918720)-1|0)|0,F=(l=k>>21)+F|0,b=F=(u=(2097151&k)<<11|(M=u- -1048576|0)>>>21)>>>0>(k=u+_|0)>>>0?F+1|0:F,d=(u=k)- -1048576|0,_=F=F-((u>>>0<4293918720)-1|0)|0,u=(l=F>>21)+q|0,F=u=(F=(2097151&F)<<11|d>>>21)>>>0>(R=F+AA|0)>>>0?u+1|0:u,u=eg(X,N,470296,0)+k|0,l=b+p|0,_=(l=u>>>0>>0?l+1|0:l)-(((k=-2097152&d)>>>0>(b=u)>>>0)+_|0)|0,b=u=u-k|0,k=(l=eg(X,N,666643,0))+(H-(u=-2097152&M)|0)|0,u=p+(m-((u>>>0>H>>>0)+Y|0)|0)|0,H=k,l=(l=(u=l>>>0>k>>>0?u+1|0:u)>>21)+_|0,W=k=b+(u=(2097151&u)<<11|k>>>21)|0,F=(u=(l=u>>>0>k>>>0?l+1|0:l)>>21)+F|0,_=k=(l=(2097151&l)<<11|k>>>21)+R|0,l=(F=l>>>0>(u=k)>>>0?F+1|0:F)>>21,F=(2097151&F)<<11|u>>>21,u=l+BA|0,Y=k=F+gA|0,F=(u=F>>>0>(l=k)>>>0?u+1|0:u)>>21,u=(2097151&u)<<11|l>>>21,l=F+v|0,v=k=u+IA|0,u=(u=(l=u>>>0>(F=k)>>>0?l+1|0:l)>>21)+x|0,R=F=(l=(2097151&l)<<11|F>>>21)+j|0,l=(l=(u=l>>>0>F>>>0?u+1|0:u)>>21)+U|0,N=F=(u=(2097151&u)<<11|F>>>21)+$|0,u=(l=u>>>0>F>>>0?l+1|0:l)>>21,l=(2097151&l)<<11|F>>>21,F=u+O|0,M=k=l+z|0,l=(F=l>>>0>(u=k)>>>0?F+1|0:F)>>21,F=(2097151&F)<<11|u>>>21,u=l+J|0,d=k=F+Z|0,F=(u=F>>>0>(l=k)>>>0?u+1|0:u)>>21,u=(2097151&u)<<11|l>>>21,l=F+EA|0,J=k=u+CA|0,u=(u=(l=u>>>0>(F=k)>>>0?l+1|0:l)>>21)+P|0,U=F=(l=(2097151&l)<<11|F>>>21)+QA|0,l=(u=l>>>0>F>>>0?u+1|0:u)>>21,k=(2097151&u)<<11|F>>>21,u=G-(F=-2097152&K)|0,F=(S-((F>>>0>G>>>0)+L|0)|0)+l|0,L=k=k+u|0,P=(2097151&(F=u>>>0>(l=k)>>>0?F+1|0:F))<<11|l>>>21,m=u=F>>21,l=2097151&H,F=eg(P,u,666643,0)+l|0,u=p,b=F,k=u=l>>>0>F>>>0?u+1|0:u,C[0|A]=F,C[A+1|0]=(255&u)<<24|F>>>8,u=2097151&W,F=eg(P,m,470296,0)+u|0,l=p,l=u>>>0>F>>>0?l+1|0:l,H=F,G=(2097151&(F=k))<<11|b>>>21,F=(u=F>>21)+l|0,F=G>>>0>(S=H+G|0)>>>0?F+1|0:F,G=S,C[A+4|0]=(2047&F)<<21|G>>>11,u=l=F,F=G,C[A+3|0]=(7&u)<<29|F>>>3,F=2097151&_,_=eg(P,m,654183,0)+F|0,u=p,u=F>>>0>_>>>0?u+1|0:u,F=_,_=(2097151&l)<<11|G>>>21,l=(l>>21)+u|0,l=_>>>0>(S=F+_|0)>>>0?l+1|0:l,_=S,u=l,C[A+6|0]=(63&u)<<26|_>>>6,H=0,F=31&((65535&k)<<16|b>>>16),l=b=2097151&G,C[A+2|0]=F|l<<5,F=2097151&Y,G=eg(P,m,-997805,-1)+F|0,l=p,F=l=F>>>0>G>>>0?l+1|0:l,F=(l=u>>21)+F|0,Y=G=(u=(2097151&u)<<11|_>>>21)+G|0,F=u>>>0>G>>>0?F+1|0:F,C[A+9|0]=(511&F)<<23|G>>>9,u=l=F,F=G,C[A+8|0]=(1&u)<<31|F>>>1,G=0,F=_&=2097151,C[A+5|0]=(524287&H)<<13|b>>>19|F<<2,F=2097151&v,H=eg(P,m,136657,0)+F|0,u=p,u=(u=F>>>0>H>>>0?u+1|0:u)+(F=l>>21)|0,b=H=(l=(2097151&l)<<11|Y>>>21)+H|0,u=l>>>0>H>>>0?u+1|0:u,l=H,C[A+12|0]=(4095&u)<<20|l>>>12,F=u,C[A+11|0]=(15&u)<<28|l>>>4,H=0,l=v=2097151&Y,C[A+7|0]=(16383&G)<<18|_>>>14|l<<7,u=2097151&R,G=eg(P,m,-683901,-1)+u|0,l=p,l=u>>>0>G>>>0?l+1|0:l,l=(u=F>>21)+l|0,_=G=(F=(2097151&F)<<11|b>>>21)+G|0,u=l=F>>>0>G>>>0?l+1|0:l,C[A+14|0]=(127&u)<<25|G>>>7,G=0,F=Y=2097151&b,C[A+10|0]=(131071&H)<<15|v>>>17|F<<4,l=u>>21,F=(u=(2097151&u)<<11|_>>>21)>>>0>(b=u+(2097151&N)|0)>>>0?l+1|0:l,C[A+17|0]=(1023&F)<<22|b>>>10,u=F,F=b,C[A+16|0]=(3&u)<<30|F>>>2,F=m=2097151&_,C[A+13|0]=(1048575&G)<<12|Y>>>20|F<<1,F=(2097151&u)<<11|b>>>21,u>>=21,u=F>>>0>(_=F+(2097151&M)|0)>>>0?u+1|0:u,l=_,C[A+20|0]=(8191&u)<<19|l>>>13,C[A+19|0]=(31&u)<<27|l>>>5,l=Y=2097151&b,C[A+15|0]=(32767&H)<<17|m>>>15|l<<6,k=(2097151&u)<<11|_>>>21,u=l=u>>21,k=u=k>>>0>(m=k+(2097151&d)|0)>>>0?u+1|0:u,C[A+21|0]=m,u=_,C[A+18|0]=(262143&G)<<14|Y>>>18|u<<3,u=k,C[A+22|0]=(255&u)<<24|m>>>8,F=u,u>>=21,F=(_=(H=(2097151&F)<<11|m>>>21)+(2097151&J)|0)>>>0>>0?u+1|0:u,C[(l=A)+25|0]=(2047&F)<<21|_>>>11,u=F,F=_,C[l+24|0]=(7&u)<<29|F>>>3,F=l,H=(2097151&u)<<11|_>>>21,u>>=21,l=u=H>>>0>(G=b=H+(2097151&U)|0)>>>0?u+1|0:u,C[F+27|0]=(63&u)<<26|G>>>6,H=0,u=b=2097151&_,C[F+23|0]=31&((65535&k)<<16|m>>>16)|u<<5,l=(u=l)>>21,l=(u=(2097151&u)<<11|G>>>21)>>>0>(k=u+(2097151&L)|0)>>>0?l+1|0:l,F=k,C[A+31|0]=(131071&l)<<15|F>>>17,u=l,C[A+30|0]=(511&u)<<23|F>>>9,C[A+29|0]=(1&u)<<31|F>>>1,l=0,G&=2097151,C[A+26|0]=(524287&H)<<13|b>>>19|G<<2,C[A+28|0]=(16383&l)<<18|G>>>14|F<<7}function k(A){var I,g=0,B=0,Q=0,C=0,E=0,r=0,o=0,t=0,f=0,c=0,y=0,s=0,w=0;h=I=h-16|0;A:{I:{g:{B:{Q:{C:{E:{i:{n:{a:{r:{o:{if((A|=0)>>>0<=244){if(3&(g=(E=i[8961])>>>(B=(t=A>>>0<11?16:A+11&-8)>>>3|0)|0)){A=(C=i[35892+(g=(Q=B+(1&(-1^g))|0)<<3)>>2])+8|0,(0|(B=i[C+8>>2]))!=(0|(g=g+35884|0))?(i[B+12>>2]=g,i[g+8>>2]=B):(s=35844,w=vI(-2,Q)&E,i[s>>2]=w),g=Q<<3,i[C+4>>2]=3|g,i[4+(g=g+C|0)>>2]=1|i[g+4>>2];break A}if((c=i[8963])>>>0>=t>>>0)break o;if(g){B=A=(g=(0-(A=(0-(A=2<>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,r=i[35892+(A=(B=((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)|0)<<3)>>2],(0|(g=i[r+8>>2]))!=(0|(A=A+35884|0))?(i[g+12>>2]=A,i[A+8>>2]=g):(E=vI(-2,B)&E,i[8961]=E),A=r+8|0,i[r+4>>2]=3|t,C=(g=B<<3)-t|0,i[4+(Q=r+t|0)>>2]=1|C,i[g+r>>2]=C,c&&(B=35884+((g=c>>>3|0)<<3)|0,r=i[8966],(g=1<>2]:(i[8961]=g|E,g=B),i[B+8>>2]=r,i[g+12>>2]=r,i[r+12>>2]=B,i[r+8>>2]=g),i[8966]=Q,i[8963]=C;break A}if(!(o=i[8962]))break o;for(B=A=(g=(o&0-o)-1|0)>>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,g=i[36148+(((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)<<2)>>2],C=(-8&i[g+4>>2])-t|0,B=g;(A=i[B+16>>2])||(A=i[B+20>>2]);)C=(Q=(B=(-8&i[A+4>>2])-t|0)>>>0>>0)?B:C,g=Q?A:g,B=A;if((f=g+t|0)>>>0<=g>>>0)break r;if(y=i[g+24>>2],(0|(Q=i[g+12>>2]))!=(0|g)){A=i[g+8>>2],i[A+12>>2]=Q,i[Q+8>>2]=A;break I}if(!(A=i[(B=g+20|0)>>2])){if(!(A=i[g+16>>2]))break a;B=g+16|0}for(;r=B,Q=A,(A=i[(B=A+20|0)>>2])||(B=Q+16|0,A=i[Q+16>>2]););i[r>>2]=0;break I}if(t=-1,!(A>>>0>4294967231)&&(t=-8&(A=A+11|0),f=i[8962])){E=31,C=0-t|0,t>>>0<=16777215&&(A=A>>>8|0,A<<=r=A+1048320>>>16&8,E=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|r)|0)<<1|t>>>A+21&1)|0);e:{t:{if(B=i[36148+(E<<2)>>2])for(A=0,g=t<<(31==(0|E)?0:25-(E>>>1|0)|0);;){if(!((r=(-8&i[B+4>>2])-t|0)>>>0>=C>>>0||(Q=B,C=r))){C=0,A=B;break t}if(r=i[B+20>>2],B=i[16+((g>>>29&4)+B|0)>>2],A=r?(0|r)==(0|B)?A:r:A,g<<=1,!B)break}else A=0;if(!(A|Q)){if(!(A=(0-(A=2<>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,A=i[36148+(((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)<<2)>>2]}if(!A)break e}for(;C=(B=(g=(-8&i[A+4>>2])-t|0)>>>0>>0)?g:C,Q=B?A:Q,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!Q|i[8963]-t>>>0<=C>>>0)){if((o=Q+t|0)>>>0<=Q>>>0)break r;if(E=i[Q+24>>2],(0|Q)!=(0|(g=i[Q+12>>2]))){A=i[Q+8>>2],i[A+12>>2]=g,i[g+8>>2]=A;break g}if(!(A=i[(B=Q+20|0)>>2])){if(!(A=i[Q+16>>2]))break n;B=Q+16|0}for(;r=B,g=A,(A=i[(B=A+20|0)>>2])||(B=g+16|0,A=i[g+16>>2]););i[r>>2]=0;break g}}}if((B=i[8963])>>>0>=t>>>0){Q=i[8966],(g=B-t|0)>>>0>=16?(i[8963]=g,A=Q+t|0,i[8966]=A,i[A+4>>2]=1|g,i[B+Q>>2]=g,i[Q+4>>2]=3|t):(i[8966]=0,i[8963]=0,i[Q+4>>2]=3|B,i[4+(A=B+Q|0)>>2]=1|i[A+4>>2]),A=Q+8|0;break A}if((o=i[8964])>>>0>t>>>0){g=o-t|0,i[8964]=g,A=(B=i[8967])+t|0,i[8967]=A,i[A+4>>2]=1|g,i[B+4>>2]=3|t,A=B+8|0;break A}if(A=0,g=f=t+47|0,i[9079]?B=i[9081]:(i[9082]=-1,i[9083]=-1,i[9080]=4096,i[9081]=4096,i[9079]=I+12&-16^1431655768,i[9084]=0,i[9072]=0,B=4096),(B=(r=g+B|0)&(C=0-B|0))>>>0<=t>>>0)break A;if((Q=i[9071])&&Q>>>0<(E=(g=i[9069])+B|0)>>>0|g>>>0>=E>>>0)break A;if(4&n[36288])break C;o:{e:{if(Q=i[8967])for(A=36292;;){if(Q>>>0<(g=i[A>>2])+i[A+4>>2]>>>0&&g>>>0<=Q>>>0)break e;if(!(A=i[A+8>>2]))break}if(-1==(0|(g=II(0))))break E;if(E=B,(A=(Q=i[9080])-1|0)&g&&(E=(B-g|0)+(A+g&0-Q)|0),E>>>0<=t>>>0|E>>>0>2147483646)break E;if((Q=i[9071])&&Q>>>0<(C=(A=i[9069])+E|0)>>>0|A>>>0>=C>>>0)break E;if((0|g)!=(0|(A=II(E))))break o;break Q}if((E=C&r-o)>>>0>2147483646)break E;if((0|(g=II(E)))==(i[A>>2]+i[A+4>>2]|0))break i;A=g}if(!(-1==(0|A)|t+48>>>0<=E>>>0)){if((g=(g=i[9081])+(f-E|0)&0-g)>>>0>2147483646){g=A;break Q}if(-1!=(0|II(g))){E=g+E|0,g=A;break Q}II(0-E|0);break E}if(g=A,-1!=(0|A))break Q;break E}e()}Q=0;break I}g=0;break g}if(-1!=(0|g))break Q}i[9072]=4|i[9072]}if(B>>>0>2147483646)break B;if((g=II(B))>>>0>=(A=II(0))>>>0|-1==(0|g)|-1==(0|A))break B;if((E=A-g|0)>>>0<=t+40>>>0)break B}A=i[9069]+E|0,i[9069]=A,A>>>0>a[9070]&&(i[9070]=A);Q:{C:{E:{if(r=i[8967]){for(A=36292;;){if(((Q=i[A>>2])+(B=i[A+4>>2])|0)==(0|g))break E;if(!(A=i[A+8>>2]))break}break C}for((A=i[8965])>>>0<=g>>>0&&A||(i[8965]=g),A=0,i[9074]=E,i[9073]=g,i[8969]=-1,i[8970]=i[9079],i[9076]=0;B=35884+(Q=A<<3)|0,i[Q+35892>>2]=B,i[Q+35896>>2]=B,32!=(0|(A=A+1|0)););B=(Q=E-40|0)-(A=g+8&7?-8-g&7:0)|0,i[8964]=B,A=A+g|0,i[8967]=A,i[A+4>>2]=1|B,i[4+(g+Q|0)>>2]=40,i[8968]=i[9083];break Q}if(!(8&n[A+12|0]|g>>>0<=r>>>0|Q>>>0>r>>>0)){i[A+4>>2]=B+E,B=(A=r+8&7?-8-r&7:0)+r|0,i[8967]=B,A=(g=i[8964]+E|0)-A|0,i[8964]=A,i[B+4>>2]=1|A,i[4+(g+r|0)>>2]=40,i[8968]=i[9083];break Q}}(Q=i[8965])>>>0>g>>>0&&(i[8965]=g,Q=0),B=g+E|0,A=36292;C:{E:{i:{n:{a:{r:{for(;;){if((0|B)!=i[A>>2]){if(A=i[A+8>>2])continue;break r}break}if(!(8&n[A+12|0]))break a}for(A=36292;;){if((B=i[A>>2])>>>0<=r>>>0&&(C=B+i[A+4>>2]|0)>>>0>r>>>0)break n;A=i[A+8>>2]}}if(i[A>>2]=g,i[A+4>>2]=i[A+4>>2]+E,i[4+(f=(g+8&7?-8-g&7:0)+g|0)>>2]=3|t,B=((E=B+(B+8&7?-8-B&7:0)|0)-f|0)-t|0,o=t+f|0,(0|E)==(0|r)){i[8967]=o,A=i[8964]+B|0,i[8964]=A,i[o+4>>2]=1|A;break E}if(i[8966]==(0|E)){i[8966]=o,A=i[8963]+B|0,i[8963]=A,i[o+4>>2]=1|A,i[A+o>>2]=A;break E}if(1==(3&(A=i[E+4>>2]))){r=-8&A;a:if(A>>>0<=255){if(Q=i[E+8>>2],A=A>>>3|0,(0|(g=i[E+12>>2]))==(0|Q)){s=35844,w=i[8961]&vI(-2,A),i[s>>2]=w;break a}i[Q+12>>2]=g,i[g+8>>2]=Q}else{if(t=i[E+24>>2],(0|E)==(0|(g=i[E+12>>2])))if((C=i[(A=E+20|0)>>2])||(C=i[(A=E+16|0)>>2])){for(;Q=A,(C=i[(A=(g=C)+20|0)>>2])||(A=g+16|0,C=i[g+16>>2]););i[Q>>2]=0}else g=0;else A=i[E+8>>2],i[A+12>>2]=g,i[g+8>>2]=A;if(t){Q=i[E+28>>2];r:{if(i[(A=36148+(Q<<2)|0)>>2]==(0|E)){if(i[A>>2]=g,g)break r;s=35848,w=i[8962]&vI(-2,Q),i[s>>2]=w;break a}if(i[t+(i[t+16>>2]==(0|E)?16:20)>>2]=g,!g)break a}i[g+24>>2]=t,(A=i[E+16>>2])&&(i[g+16>>2]=A,i[A+24>>2]=g),(A=i[E+20>>2])&&(i[g+20>>2]=A,i[A+24>>2]=g)}}E=E+r|0,B=B+r|0}if(i[E+4>>2]=-2&i[E+4>>2],i[o+4>>2]=1|B,i[B+o>>2]=B,B>>>0<=255){g=35884+((A=B>>>3|0)<<3)|0,(B=i[8961])&(A=1<>2]:(i[8961]=A|B,A=g),i[g+8>>2]=o,i[A+12>>2]=o,i[o+12>>2]=g,i[o+8>>2]=A;break E}if(A=31,B>>>0<=16777215&&(A=B>>>8|0,A<<=C=A+1048320>>>16&8,A=28+((A=((A<<=Q=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|Q|C)|0)<<1|B>>>A+21&1)|0),i[o+28>>2]=A,i[o+16>>2]=0,i[o+20>>2]=0,C=36148+(A<<2)|0,(Q=i[8962])&(g=1<>>1|0)|0),g=i[C>>2];;){if(Q=g,(-8&i[g+4>>2])==(0|B))break i;if(g=A>>>29|0,A<<=1,!(g=i[16+(C=Q+(4&g)|0)>>2]))break}i[C+16>>2]=o,i[o+24>>2]=Q}else i[8962]=g|Q,i[C>>2]=o,i[o+24>>2]=C;i[o+12>>2]=o,i[o+8>>2]=o;break E}for(B=(Q=E-40|0)-(A=g+8&7?-8-g&7:0)|0,i[8964]=B,A=A+g|0,i[8967]=A,i[A+4>>2]=1|B,i[4+(g+Q|0)>>2]=40,i[8968]=i[9083],i[(B=(A=(C+(C-39&7?39-C&7:0)|0)-47|0)>>>0>>0?r:A)+4>>2]=27,A=i[9076],i[B+16>>2]=i[9075],i[B+20>>2]=A,A=i[9074],i[B+8>>2]=i[9073],i[B+12>>2]=A,i[9075]=B+8,i[9074]=E,i[9073]=g,i[9076]=0,A=B+24|0;i[A+4>>2]=7,g=A+8|0,A=A+4|0,g>>>0>>0;);if((0|B)==(0|r))break Q;if(i[B+4>>2]=-2&i[B+4>>2],C=B-r|0,i[r+4>>2]=1|C,i[B>>2]=C,C>>>0<=255){g=35884+((A=C>>>3|0)<<3)|0,(B=i[8961])&(A=1<>2]:(i[8961]=A|B,A=g),i[g+8>>2]=r,i[A+12>>2]=r,i[r+12>>2]=g,i[r+8>>2]=A;break Q}if(A=31,i[r+16>>2]=0,i[r+20>>2]=0,C>>>0<=16777215&&(A=C>>>8|0,A<<=Q=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|Q)|0)<<1|C>>>A+21&1)|0),i[r+28>>2]=A,Q=36148+(A<<2)|0,(B=i[8962])&(g=1<>>1|0)|0),g=i[Q>>2];;){if(B=g,(0|C)==(-8&i[g+4>>2]))break C;if(g=A>>>29|0,A<<=1,!(g=i[16+(Q=B+(4&g)|0)>>2]))break}i[Q+16>>2]=r,i[r+24>>2]=B}else i[8962]=g|B,i[Q>>2]=r,i[r+24>>2]=Q;i[r+12>>2]=r,i[r+8>>2]=r;break Q}A=i[Q+8>>2],i[A+12>>2]=o,i[Q+8>>2]=o,i[o+24>>2]=0,i[o+12>>2]=Q,i[o+8>>2]=A}A=f+8|0;break A}A=i[B+8>>2],i[A+12>>2]=r,i[B+8>>2]=r,i[r+24>>2]=0,i[r+12>>2]=B,i[r+8>>2]=A}if(!((A=i[8964])>>>0<=t>>>0)){g=A-t|0,i[8964]=g,A=(B=i[8967])+t|0,i[8967]=A,i[A+4>>2]=1|g,i[B+4>>2]=3|t,A=B+8|0;break A}}i[8960]=48,A=0;break A}g:if(E){B=i[Q+28>>2];B:{if(i[(A=36148+(B<<2)|0)>>2]==(0|Q)){if(i[A>>2]=g,g)break B;f=vI(-2,B)&f,i[8962]=f;break g}if(i[E+(i[E+16>>2]==(0|Q)?16:20)>>2]=g,!g)break g}i[g+24>>2]=E,(A=i[Q+16>>2])&&(i[g+16>>2]=A,i[A+24>>2]=g),(A=i[Q+20>>2])&&(i[g+20>>2]=A,i[A+24>>2]=g)}g:if(C>>>0<=15)A=C+t|0,i[Q+4>>2]=3|A,i[4+(A=A+Q|0)>>2]=1|i[A+4>>2];else if(i[Q+4>>2]=3|t,i[o+4>>2]=1|C,i[C+o>>2]=C,C>>>0<=255)g=35884+((A=C>>>3|0)<<3)|0,(B=i[8961])&(A=1<>2]:(i[8961]=A|B,A=g),i[g+8>>2]=o,i[A+12>>2]=o,i[o+12>>2]=g,i[o+8>>2]=A;else{A=31,C>>>0<=16777215&&(A=C>>>8|0,A<<=r=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|r)|0)<<1|C>>>A+21&1)|0),i[o+28>>2]=A,i[o+16>>2]=0,i[o+20>>2]=0,B=36148+(A<<2)|0;B:{if((g=1<>>1|0)|0),t=i[B>>2];;){if((-8&i[(g=t)+4>>2])==(0|C))break B;if(B=A>>>29|0,A<<=1,!(t=i[16+(B=g+(4&B)|0)>>2]))break}i[B+16>>2]=o,i[o+24>>2]=g}else i[8962]=g|f,i[B>>2]=o,i[o+24>>2]=B;i[o+12>>2]=o,i[o+8>>2]=o;break g}A=i[g+8>>2],i[A+12>>2]=o,i[g+8>>2]=o,i[o+24>>2]=0,i[o+12>>2]=g,i[o+8>>2]=A}A=Q+8|0;break A}I:if(y){B=i[g+28>>2];g:{if(i[(A=36148+(B<<2)|0)>>2]==(0|g)){if(i[A>>2]=Q,Q)break g;s=35848,w=vI(-2,B)&o,i[s>>2]=w;break I}if(i[(i[y+16>>2]==(0|g)?16:20)+y>>2]=Q,!Q)break I}i[Q+24>>2]=y,(A=i[g+16>>2])&&(i[Q+16>>2]=A,i[A+24>>2]=Q),(A=i[g+20>>2])&&(i[Q+20>>2]=A,i[A+24>>2]=Q)}C>>>0<=15?(A=C+t|0,i[g+4>>2]=3|A,i[4+(A=A+g|0)>>2]=1|i[A+4>>2]):(i[g+4>>2]=3|t,i[f+4>>2]=1|C,i[C+f>>2]=C,c&&(B=35884+((A=c>>>3|0)<<3)|0,Q=i[8966],(A=1<>2]:(i[8961]=A|E,A=B),i[B+8>>2]=Q,i[A+12>>2]=Q,i[Q+12>>2]=B,i[Q+8>>2]=A),i[8966]=f,i[8963]=C),A=g+8|0}return h=I+16|0,0|A}function _(A,I,g){var B,Q,C,E,n,a,o,e,t,f,c,y,s,w,h,D,u,l,F,G,k,_,H,Y,b,m,v,U,S,N,M,d,P,R,J,x,L,K,q,X,V,W,T,j,Z,O,z,$,AA,IA,gA,BA,QA,CA,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,eA=0,tA=0,fA=0,cA=0,yA=0,sA=0,wA=0,hA=0,DA=0,uA=0,pA=0,lA=0,FA=0,GA=0,kA=0,_A=0,HA=0,YA=0,bA=0;eA=A,B=EA=HA=i[g+4>>2],t=EA>>31,x=EA=(DA=i[I+20>>2])<<1,EA=eg(B,t,EA,H=EA>>31),nA=p,iA=EA,Q=EA=i[g>>2],C=EA>>31,f=EA=i[I+24>>2],rA=eg(Q,C,EA,E=EA>>31),EA=p+nA|0,EA=(iA=iA+rA|0)>>>0>>0?EA+1|0:EA,nA=iA,L=iA=oA=i[g+8>>2],u=iA>>31,c=iA=i[I+16>>2],iA=nA+(rA=eg(oA,u,iA,n=iA>>31))|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,K=EA=pA=i[g+12>>2],l=EA>>31,q=EA=(sA=i[I+12>>2])<<1,EA=(rA=eg(pA,l,EA,Y=EA>>31))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=EA,O=EA=uA=i[g+16>>2],k=EA>>31,y=EA=i[I+8>>2],rA=eg(uA,k,EA,a=EA>>31),EA=p+iA|0,EA=(nA=nA+rA|0)>>>0>>0?EA+1|0:EA,aA=nA,z=iA=cA=i[g+20>>2],b=iA>>31,X=iA=(fA=i[I+4>>2])<<1,nA=eg(cA,b,iA,m=iA>>31),EA=p+EA|0,EA=(iA=aA+nA|0)>>>0>>0?EA+1|0:EA,nA=iA,$=iA=yA=i[g+24>>2],V=iA>>31,s=iA=i[I>>2],rA=eg(yA,V,iA,o=iA>>31),iA=p+EA|0,iA=(nA=nA+rA|0)>>>0>>0?iA+1|0:iA,lA=i[g+28>>2],F=EA=r(lA,19),G=EA>>31,W=EA=(wA=i[I+36>>2])<<1,EA=(rA=eg(F,G,EA,v=EA>>31))+nA|0,nA=p+iA|0,nA=EA>>>0>>0?nA+1|0:nA,iA=EA,hA=i[g+32>>2],FA=EA=r(hA,19),GA=EA>>31,w=EA=i[I+32>>2],rA=eg(FA,GA,EA,e=EA>>31),EA=p+nA|0,EA=(iA=iA+rA|0)>>>0>>0?EA+1|0:EA,nA=iA,AA=i[g+36>>2],h=g=r(AA,19),D=g>>31,T=g=(I=i[I+28>>2])<<1,iA=eg(h,D,g,U=g>>31),EA=p+EA|0,tA=g=nA+iA|0,g=g>>>0>>0?EA+1|0:EA,EA=eg(c,n,B,t),iA=p,DA=eg(Q,C,rA=DA,S=rA>>31),nA=p+iA|0,nA=(EA=DA+EA|0)>>>0>>0?nA+1|0:nA,DA=sA,sA=eg(oA,u,sA,N=sA>>31),iA=p+nA|0,iA=(EA=sA+EA|0)>>>0>>0?iA+1|0:iA,nA=(sA=eg(y,a,pA,l))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,sA=fA,nA=eg(uA,k,fA,M=fA>>31),EA=p+EA|0,EA=(iA=iA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(s,o,cA,b),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=iA,d=iA=r(yA,19),iA=nA+(wA=eg(iA,_=iA>>31,fA=wA,P=fA>>31))|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,EA=(wA=eg(w,e,F,G))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,wA=I,I=(nA=eg(FA,GA,I,R=I>>31))+EA|0,EA=p+iA|0,EA=I>>>0>>0?EA+1|0:EA,iA=eg(h,D,f,E),EA=p+EA|0,_A=I=iA+I|0,I=I>>>0>>0?EA+1|0:EA,EA=eg(B,t,q,Y),nA=p,iA=(yA=eg(Q,C,c,n))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,yA=eg(y,a,oA,u),nA=p+EA|0,nA=(iA=yA+iA|0)>>>0>>0?nA+1|0:nA,EA=(yA=eg(pA,l,X,m))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(yA=eg(s,o,uA,k))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,aA=nA,j=iA=r(cA,19),nA=eg(iA,J=iA>>31,W,v),EA=p+EA|0,EA=(iA=aA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(w,e,d,_),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,cA=eg(F,G,T,U),nA=p+EA|0,nA=(iA=cA+iA|0)>>>0>>0?nA+1|0:nA,EA=(cA=eg(FA,GA,f,E))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(cA=eg(h,D,x,H))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,cA=nA,gA=EA,yA=iA=nA+33554432|0,BA=EA=iA>>>0<33554432?EA+1|0:EA,nA=_A,_A=(67108863&EA)<<6|iA>>>26,EA=(EA>>26)+I|0,EA=(nA=nA+_A|0)>>>0<_A>>>0?EA+1|0:EA,QA=I=(_A=nA)+16777216|0,EA=g+(iA=(nA=I>>>0<16777216?EA+1|0:EA)>>25)|0,EA=(I=(nA=(33554431&nA)<<7|I>>>25)+tA|0)>>>0>>0?EA+1|0:EA,YA=I=(g=I)+33554432|0,I=EA=I>>>0<33554432?EA+1|0:EA,EA=-67108864&YA,i[eA+24>>2]=g-EA,tA=eA,g=eg(B,t,X,m),EA=p,iA=eg(Q,C,y,a),nA=p+EA|0,nA=(g=iA+g|0)>>>0>>0?nA+1|0:nA,iA=eg(s,o,oA,u),EA=p+nA|0,EA=(g=iA+g|0)>>>0>>0?EA+1|0:EA,nA=g,eA=g=r(pA,19),iA=eg(g,pA=g>>31,W,v),EA=p+EA|0,EA=(g=nA+iA|0)>>>0>>0?EA+1|0:EA,iA=g,IA=g=r(uA,19),g=iA+(nA=eg(w,e,g,Z=g>>31))|0,iA=p+EA|0,iA=g>>>0>>0?iA+1|0:iA,nA=eg(T,U,j,J),EA=p+iA|0,EA=(g=nA+g|0)>>>0>>0?EA+1|0:EA,iA=eg(f,E,d,_),nA=p+EA|0,nA=(g=iA+g|0)>>>0>>0?nA+1|0:nA,iA=eg(F,G,x,H),EA=p+nA|0,EA=(g=iA+g|0)>>>0>>0?EA+1|0:EA,iA=eg(FA,GA,c,n),EA=p+EA|0,EA=(g=iA+g|0)>>>0>>0?EA+1|0:EA,nA=eg(h,D,q,Y),iA=p+EA|0,aA=g=nA+g|0,g=g>>>0>>0?iA+1|0:iA,EA=eg(s,o,B,t),nA=p,iA=(uA=eg(Q,C,sA,M))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,nA=iA,uA=iA=r(oA,19),iA=nA+(oA=eg(iA,kA=iA>>31,fA,P))|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,oA=eg(w,e,eA,pA),EA=p+nA|0,EA=(iA=oA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(IA,Z,wA,R),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=(oA=eg(f,E,j,J))+iA|0,iA=p+EA|0,iA=nA>>>0>>0?iA+1|0:iA,oA=eg(d,_,rA,S),EA=p+iA|0,EA=(nA=oA+nA|0)>>>0>>0?EA+1|0:EA,iA=(oA=eg(c,n,F,G))+nA|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,oA=eg(FA,GA,DA,N),EA=p+nA|0,EA=(iA=oA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(h,D,y,a),EA=p+EA|0,bA=iA=nA+iA|0,oA=iA>>>0>>0?EA+1|0:EA,EA=eg(EA=r(B,19),EA>>31,W,v),iA=p,nA=eg(Q,C,s,o),iA=p+iA|0,iA=(EA=nA+EA|0)>>>0>>0?iA+1|0:iA,nA=(HA=eg(w,e,uA,kA))+EA|0,EA=p+iA|0,iA=(eA=eg(eA,pA,T,U))+nA|0,nA=p+(nA>>>0>>0?EA+1|0:EA)|0,nA=iA>>>0>>0?nA+1|0:nA,eA=eg(f,E,IA,Z),EA=p+nA|0,EA=(iA=eA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(x,H,j,J),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=(eA=eg(c,n,d,_))+iA|0,iA=p+EA|0,iA=nA>>>0>>0?iA+1|0:iA,eA=eg(F,G,q,Y),EA=p+iA|0,EA=(nA=eA+nA|0)>>>0>>0?EA+1|0:EA,iA=(eA=eg(FA,GA,y,a))+nA|0,nA=p+EA|0,nA=iA>>>0>>0?nA+1|0:nA,eA=eg(h,D,X,m),EA=p+nA|0,EA=(iA=eA+iA|0)>>>0>>0?EA+1|0:EA,eA=iA,HA=EA,pA=iA=iA+33554432|0,uA=EA=iA>>>0<33554432?EA+1|0:EA,kA=(67108863&EA)<<6|iA>>>26,iA=(nA=EA>>26)+oA|0,oA=EA=kA+bA|0,nA=aA,EA=EA>>>0>>0?iA+1|0:iA,CA=iA=oA+16777216|0,aA=(33554431&(EA=iA>>>0<16777216?EA+1|0:EA))<<7|iA>>>25,EA=(EA>>25)+g|0,EA=(iA=nA+aA|0)>>>0>>0?EA+1|0:EA,kA=g=iA+33554432|0,g=EA=g>>>0<33554432?EA+1|0:EA,EA=-67108864&kA,i[tA+8>>2]=iA-EA,aA=tA,EA=eg(f,E,B,t),nA=p,iA=(tA=eg(Q,C,wA,R))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,nA=eg(L,u,rA,S),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(c,n,K,l),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,tA=eg(O,k,DA,N),nA=p+EA|0,nA=(iA=tA+iA|0)>>>0>>0?nA+1|0:nA,EA=(tA=eg(y,a,z,b))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(tA=eg(sA,M,$,V))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,nA=eg(s,o,tA=lA,bA=tA>>31),EA=p+EA|0,EA=(iA=iA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(FA,GA,fA,P),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,lA=eg(h,D,w,e),nA=p+EA|0,nA=(iA=lA+iA|0)>>>0>>0?nA+1|0:nA,EA=I>>26,I=(lA=(67108863&I)<<6|YA>>>26)+iA|0,iA=EA+nA|0,EA=iA=I>>>0>>0?iA+1|0:iA,YA=I=(nA=I)+16777216|0,I=EA=I>>>0<16777216?EA+1|0:EA,EA=-33554432&YA,i[aA+28>>2]=nA-EA,lA=aA,EA=eg(y,a,B,t),iA=p,aA=eg(Q,C,DA,N),nA=p+iA|0,nA=(EA=aA+EA|0)>>>0>>0?nA+1|0:nA,aA=eg(L,u,sA,M),iA=p+nA|0,iA=(EA=aA+EA|0)>>>0>>0?iA+1|0:iA,nA=(aA=eg(s,o,K,l))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,nA=eg(IA,Z,fA,P),EA=p+EA|0,EA=(iA=iA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(w,e,j,J),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,aA=eg(d,_,wA,R),nA=p+EA|0,nA=(iA=aA+iA|0)>>>0>>0?nA+1|0:nA,EA=(aA=eg(f,E,F,G))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(aA=eg(FA,GA,rA,S))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,nA=eg(h,D,c,n),EA=p+EA|0,aA=iA=iA+nA|0,EA=(EA=iA>>>0>>0?EA+1|0:EA)+(iA=g>>26)|0,EA=(g=aA+(nA=(67108863&g)<<6|kA>>>26)|0)>>>0>>0?EA+1|0:EA,FA=g=(iA=g)+16777216|0,g=nA=g>>>0<16777216?EA+1|0:EA,EA=-33554432&FA,i[lA+12>>2]=iA-EA,EA=eg(B,t,T,U),nA=p,iA=(aA=eg(Q,C,w,e))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,nA=eg(f,E,L,u),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,aA=eg(K,l,x,H),nA=p+EA|0,nA=(iA=aA+iA|0)>>>0>>0?nA+1|0:nA,EA=(aA=eg(c,n,O,k))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,nA=(aA=eg(q,Y,z,b))+EA|0,EA=p+iA|0,EA=nA>>>0>>0?EA+1|0:EA,iA=nA,nA=eg(y,a,$,V),EA=p+EA|0,EA=(iA=iA+nA|0)>>>0>>0?EA+1|0:EA,nA=eg(tA,bA,X,m),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,hA=eg(s,o,aA=hA,GA=aA>>31),nA=p+EA|0,nA=(iA=hA+iA|0)>>>0>>0?nA+1|0:nA,EA=(hA=eg(h,D,W,v))+iA|0,iA=p+nA|0,iA=EA>>>0>>0?iA+1|0:iA,hA=EA,EA=(EA=I>>25)+iA|0,EA=(I=hA+(nA=(33554431&I)<<7|YA>>>25)|0)>>>0>>0?EA+1|0:EA,hA=I=(iA=I)+33554432|0,I=EA=I>>>0<33554432?EA+1|0:EA,EA=-67108864&hA,i[lA+32>>2]=iA-EA,nA=iA=cA-(EA=-67108864&yA)|0,EA=(EA=gA-((EA>>>0>cA>>>0)+BA|0)|0)+(iA=g>>25)|0,EA=(g=nA+(cA=(33554431&g)<<7|FA>>>25)|0)>>>0>>0?EA+1|0:EA,(iA=g+33554432|0)>>>0<33554432&&(EA=EA+1|0),EA=(_A-(-33554432&QA)|0)+((67108863&EA)<<6|iA>>>26)|0,i[A+20>>2]=EA,EA=-67108864&iA,i[A+16>>2]=g-EA,EA=eg(w,e,B,t),nA=p,iA=(fA=eg(Q,C,fA,P))+EA|0,EA=p+nA|0,EA=iA>>>0>>0?EA+1|0:EA,nA=(fA=eg(L,u,wA,R))+iA|0,iA=p+EA|0,iA=nA>>>0>>0?iA+1|0:iA,EA=(fA=eg(f,E,K,l))+nA|0,nA=p+iA|0,iA=(rA=eg(O,k,rA,S))+EA|0,EA=p+(EA>>>0>>0?nA+1|0:nA)|0,EA=iA>>>0>>0?EA+1|0:EA,nA=eg(c,n,z,b),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=eg(DA,N,$,V),EA=p+EA|0,EA=(iA=nA+iA|0)>>>0>>0?EA+1|0:EA,nA=(rA=eg(y,a,tA,bA))+iA|0,iA=p+EA|0,iA=nA>>>0>>0?iA+1|0:iA,EA=(rA=eg(aA,GA,sA,M))+nA|0,nA=p+iA|0,nA=EA>>>0>>0?nA+1|0:nA,iA=(rA=eg(s,o,AA,AA>>31))+EA|0,EA=p+nA|0,g=iA,EA=(EA=iA>>>0>>0?EA+1|0:EA)+(iA=I>>26)|0,EA=(I=g+(nA=(67108863&I)<<6|hA>>>26)|0)>>>0>>0?EA+1|0:EA,EA=(I=(g=I)+16777216|0)>>>0<16777216?EA+1|0:EA,I=-33554432&(iA=I),i[A+36>>2]=g-I,nA=oA-(-33554432&CA)|0,rA=eA-(I=-67108864&pA)|0,DA=HA-((I>>>0>eA>>>0)+uA|0)|0,EA=eg((33554431&(I=EA))<<7|iA>>>25,EA>>=25,19,0),iA=p+DA|0,EA=iA=(I=EA+rA|0)>>>0>>0?iA+1|0:iA,g=((67108863&(EA=(g=I+33554432|0)>>>0<33554432?EA+1|0:EA))<<6|(iA=g)>>>26)+nA|0,i[A+4>>2]=g,g=A,A=-67108864&iA,i[g>>2]=I-A}function H(A,I){var g,B,Q,C,E,n,a,o,e,t,f,c,y,s,w,h,D,u,l,F,G,k,_,H,Y,b,m,v,U,S,N,M,d,P,R,J,x,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0;W=A,t=K=(L=i[I+12>>2])<<1,j=L,L=eg(K,E=K>>31,L,H=L>>31),X=p,K=L,g=L=i[I+16>>2],n=L>>31,D=L=(O=i[I+8>>2])<<1,V=eg(g,n,L,y=L>>31),L=p+X|0,L=(K=K+V|0)>>>0>>0?L+1|0:L,X=K,s=K=(V=i[I+20>>2])<<1,w=K>>31,a=K=(z=i[I+4>>2])<<1,q=eg(s,w,K,B=K>>31),K=p+L|0,K=(X=X+q|0)>>>0>>0?K+1|0:K,F=L=T=i[I+24>>2],f=L>>31,o=L=(BA=i[I>>2])<<1,q=eg(T,f,L,Q=L>>31),L=p+K|0,L=(X=q+X|0)>>>0>>0?L+1|0:L,Z=X,K=i[I+32>>2],h=X=r(K,19),Y=K,X=eg(X,c=X>>31,K,G=K>>31),L=p+L|0,L=(K=Z+X|0)>>>0>>0?L+1|0:L,Z=K,AA=i[I+36>>2],e=K=r(AA,38),C=K>>31,S=I=(X=i[I+28>>2])<<1,q=eg(K,C,I,b=I>>31),I=p+L|0,IA=K=Z+q|0,$=K>>>0>>0?I+1|0:I,I=eg(a,B,g,n),L=p,K=eg(D,y,j,H),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,N=V,q=eg(V,k=V>>31,o,Q),K=p+L|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=eg(h,c,S,b),L=p+K|0,L=(I=q+I|0)>>>0>>0?L+1|0:L,K=eg(e,C,T,f),L=p+L|0,Z=I=K+I|0,QA=I>>>0>>0?L+1|0:L,I=eg(a,B,t,E),K=p,L=(O=eg(q=O,u=q>>31,q,u))+I|0,I=p+K|0,I=L>>>0>>0?I+1|0:I,K=(O=eg(o,Q,g,n))+L|0,L=p+I|0,L=K>>>0>>0?L+1|0:L,_=I=r(X,38),O=X,I=(X=eg(I,l=I>>31,X,m=X>>31))+K|0,K=p+L|0,K=I>>>0>>0?K+1|0:K,I=(L=I)+(X=eg(h,c,I=T<<1,I>>31))|0,L=p+K|0,L=I>>>0>>0?L+1|0:L,K=eg(e,C,s,w),L=p+L|0,v=I=K+I|0,P=L=I>>>0>>0?L+1|0:L,I=L,M=L=v+33554432|0,R=I=L>>>0<33554432?I+1|0:I,L=(L=I>>26)+QA|0,QA=I=(K=(67108863&I)<<6|M>>>26)+Z|0,K=I>>>0>>0?L+1|0:L,J=I=I+16777216|0,L=(L=(K=I>>>0<16777216?K+1|0:K)>>25)+$|0,L=(I=(K=(33554431&K)<<7|I>>>25)+IA|0)>>>0>>0?L+1|0:L,K=I,I=L,Z=L=K+33554432|0,X=I=L>>>0<33554432?I+1|0:I,I=-67108864&L,i[W+24>>2]=K-I,I=eg(o,Q,q,u),L=p,z=eg(a,B,W=z,gA=W>>31),K=p+L|0,K=(I=z+I|0)>>>0>>0?K+1|0:K,L=I,z=I=r(T,19),I=L+(T=eg(I,IA=I>>31,T,f))|0,L=p+K|0,L=I>>>0>>0?L+1|0:L,K=(T=eg(s,w,_,l))+I|0,I=p+L|0,I=K>>>0>>0?I+1|0:I,d=L=g<<1,T=eg(h,c,L,U=L>>31),L=p+I|0,L=(K=T+K|0)>>>0>>0?L+1|0:L,I=K,K=eg(e,C,t,E),L=p+L|0,$=I=I+K|0,T=I>>>0>>0?L+1|0:L,I=eg(s,w,z,IA),L=p,W=eg(o,Q,W,gA),K=p+L|0,K=(I=W+I|0)>>>0>>0?K+1|0:K,W=eg(g,n,_,l),L=p+K|0,L=(I=W+I|0)>>>0>>0?L+1|0:L,K=(W=eg(h,c,t,E))+I|0,I=p+L|0,I=K>>>0>>0?I+1|0:I,W=eg(e,C,q,u),L=p+I|0,gA=K=W+K|0,W=K>>>0>>0?L+1|0:L,I=eg(I=r(V,38),I>>31,V,k),L=p,V=I,K=eg(I=BA,K=I>>31,I,K),L=p+L|0,L=(I=V+K|0)>>>0>>0?L+1|0:L,V=eg(z,IA,d,U),K=p+L|0,K=(I=V+I|0)>>>0>>0?K+1|0:K,V=eg(t,E,_,l),L=p+K|0,L=(I=V+I|0)>>>0>>0?L+1|0:L,K=(V=eg(h,c,D,y))+I|0,I=p+L|0,I=K>>>0>>0?I+1|0:I,V=eg(a,B,e,C),L=p+I|0,z=K=V+K|0,IA=L=K>>>0>>0?L+1|0:L,BA=I=K+33554432|0,x=L=I>>>0<33554432?L+1|0:L,K=(I=L>>26)+W|0,W=L=(V=(67108863&L)<<6|BA>>>26)+gA|0,L=L>>>0>>0?K+1|0:K,gA=I=W+16777216|0,V=(33554431&(L=I>>>0<16777216?L+1|0:L))<<7|I>>>25,L=(L>>25)+T|0,L=(K=V+$|0)>>>0>>0?L+1|0:L,T=K=(I=K)+33554432|0,V=L=K>>>0<33554432?L+1|0:L,L=-67108864&K,i[A+8>>2]=I-L,I=eg(D,y,N,k),L=p,K=eg(g,n,t,E),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=eg(a,B,F,f),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=eg(o,Q,O,m),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=($=eg(e,C,Y,G))+I|0,I=p+L|0,L=X>>26,X=(Z=(67108863&X)<<6|Z>>>26)+K|0,K=(I=K>>>0<$>>>0?I+1|0:I)+L|0,L=K=X>>>0>>0?K+1|0:K,Z=K=(I=X)+16777216|0,X=L=K>>>0<16777216?L+1|0:L,L=-33554432&K,i[A+28>>2]=I-L,I=eg(o,Q,j,H),K=p,L=(q=eg(a,B,q,u))+I|0,I=p+K|0,I=L>>>0>>0?I+1|0:I,q=eg(F,f,_,l),K=p+I|0,K=(L=q+L|0)>>>0>>0?K+1|0:K,I=(q=eg(h,c,s,w))+L|0,L=p+K|0,L=I>>>0>>0?L+1|0:L,K=eg(e,C,g,n),L=p+L|0,L=(L=(I=K+I|0)>>>0>>0?L+1|0:L)+(K=V>>26)|0,K=I=(V=(67108863&V)<<6|T>>>26)+I|0,I=L=I>>>0>>0?L+1|0:L,T=L=K+16777216|0,V=I=L>>>0<16777216?I+1|0:I,I=-33554432&L,i[A+12>>2]=K-I,q=A,I=eg(F,f,D,y),L=p,K=eg(g,n,g,n),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=eg(t,E,s,w),L=p+L|0,L=(I=K+I|0)>>>0>>0?L+1|0:L,K=(j=eg(a,B,S,b))+I|0,I=p+L|0,I=K>>>0>>0?I+1|0:I,L=(j=eg(o,Q,Y,G))+K|0,K=p+I|0,K=L>>>0>>0?K+1|0:K,I=(AA=eg(e,C,j=AA,$=j>>31))+L|0,L=p+K|0,L=I>>>0>>0?L+1|0:L,A=I,L=(I=X>>25)+L|0,L=(K=A+(X=(33554431&X)<<7|Z>>>25)|0)>>>0>>0?L+1|0:L,AA=K=(I=K)+33554432|0,X=L=K>>>0<33554432?L+1|0:L,L=-67108864&K,i[q+32>>2]=I-L,L=V>>25,K=(V=(33554431&V)<<7|T>>>25)+(v-(I=-67108864&M)|0)|0,I=L+(P-((I>>>0>v>>>0)+R|0)|0)|0,L=I=K>>>0>>0?I+1|0:I,V=I=K+33554432|0,I=((67108863&(L=I>>>0<33554432?L+1|0:L))<<6|I>>>26)+(QA=QA-(-33554432&J)|0)|0,i[q+20>>2]=I,I=-67108864&V,i[q+16>>2]=K-I,V=q,I=eg(t,E,F,f),K=p,L=(q=eg(N,k,d,U))+I|0,I=p+K|0,I=L>>>0>>0?I+1|0:I,K=(q=eg(D,y,O,m))+L|0,L=p+I|0,L=K>>>0>>0?L+1|0:L,I=(q=eg(a,B,Y,G))+K|0,K=p+L|0,K=I>>>0>>0?K+1|0:K,q=eg(o,Q,j,$),L=p+K|0,K=I=q+I|0,L=(I=I>>>0>>0?L+1|0:L)+(L=X>>26)|0,L=(K=(X=(67108863&X)<<6|AA>>>26)+K|0)>>>0>>0?L+1|0:L,X=K,I=L,I=(L=K+16777216|0)>>>0<16777216?I+1|0:I,K=-33554432&L,i[V+36>>2]=X-K,q=eg((33554431&I)<<7|L>>>25,I>>25,19,0),L=p+(IA-(((K=-67108864&BA)>>>0>z>>>0)+x|0)|0)|0,K=I=q+(z-K|0)|0,I=I>>>0>>0?L+1|0:L,I=(W-(-33554432&gA)|0)+((67108863&(I=(L=K+33554432|0)>>>0<33554432?I+1|0:I))<<6|L>>>26)|0,i[V+4>>2]=I,A=-67108864&L,i[V>>2]=K-A}function Y(A,I,g){var B,Q=0,C=0,E=0,n=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,D=0,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0,CA=0;for(h=B=h-2048|0,Yg(B+1024|0,I),QI(B+1024|0,A),Yg(B,B+1024|0),QI(B,g),I=0;n=i[(Q=f=(B+1024|0)+(64|(A=F<<7))|0)>>2],e=i[(E=t=(B+1024|0)+(96|A)|0)>>2],E=i[E+4>>2],a=n,w=i[Q+4>>2],o=e,Q=A+(B+1024|0)|0,r=i[(n=(B+1024|0)+(32|A)|0)>>2],e=i[n+4>>2],o=ug(o^(l=rI(i[Q>>2],i[Q+4>>2],r,e)),(C=E)^(E=p),32),e=ug(a=(s=rI(a,w,o,C=p))^r,e^(r=p),24),P=ug((m=rI(l,a=E,e,E=p))^o,(y=p)^C,16),E=ug(e^(R=rI(s,r,P,S=p)),(N=p)^E,63),e=p,o=i[(r=(B+1024|0)+(104|A)|0)>>2],s=i[r+4>>2],H=i[(C=l=(B+1024|0)+(72|A)|0)>>2],c=i[C+4>>2],G=ug((G=o)^(k=rI(u=i[(C=o=(B+1024|0)+(8|A)|0)>>2],w=i[C+4>>2],U=i[(C=(B+1024|0)+(40|A)|0)>>2],a=i[C+4>>2])),(w=s)^(s=p),32),a=ug(c=(u=rI(H,c,G,w=p))^U,a^(U=p),24),V=ug((M=rI(k,c=s,a,s=p))^G,(J=p)^w,16),s=ug(a^(O=rI(u,U,V,j=p)),(z=p)^s,63),a=p,G=i[(k=U=(B+1024|0)+(112|A)|0)>>2],u=i[k+4>>2],v=i[(k=(B+1024|0)+(80|A)|0)>>2],D=i[k+4>>2],H=G,G=(B+1024|0)+(16|A)|0,Y=i[(b=w=(B+1024|0)+(48|A)|0)>>2],b=i[b+4>>2],H=ug(H^(d=rI(i[G>>2],i[G+4>>2],Y,b)),(c=u)^(u=p),32),b=ug(D=(c=rI(v,D,H,_=p))^Y,b^(Y=p),24),IA=ug(($=rI(d,D=u,b,u=p))^H,(AA=p)^_,16),u=ug(b^(W=rI(c,Y,IA,gA=p)),(q=p)^u,63),b=p,H=i[(Y=(B+1024|0)+(120|A)|0)>>2],_=i[Y+4>>2],BA=i[(c=d=(B+1024|0)+(88|A)|0)>>2],X=i[c+4>>2],L=ug((v=H)^(T=rI(Z=i[(c=H=(B+1024|0)+(24|A)|0)>>2],D=i[c+4>>2],x=i[(A=(B+1024|0)+(56|A)|0)>>2],c=i[A+4>>2])),(D=_)^(_=p),32),c=ug(D=(X=rI(BA,X,L,K=p))^x,c^(x=p),24),v=x,L=ug((x=rI(T,D=_,c,_=p))^L,(T=p)^K,16),_=ug(c^(X=rI(X,v,L,K=p)),(Z=p)^_,63),c=p,v=W,D=q,W=ug(L^(m=rI(m,y,s,a)),K^(y=p),32),s=ug((L=rI(v,D,W,q=p))^s,(K=p)^a,24),a=rI(a=m,y,s,m=p),y=p,i[Q>>2]=a,i[Q+4>>2]=y,Q=ug(a^W,q^y,16),a=p,i[Y>>2]=Q,i[Y+4>>2]=a,Q=rI(L,K,Q,a),a=p,i[k>>2]=Q,i[k+4>>2]=a,QA=C,CA=ug(Q^s,a^m,63),i[QA>>2]=CA,i[C+4>>2]=p,y=u,a=ug(P^(C=rI(M,J,u,b)),S^(s=p),32),Q=ug(y^(u=rI(X,Z,a,k=p)),(Q=b)^(b=p),24),C=rI(C,y=s,Q,s=p),Y=p,i[o>>2]=C,i[o+4>>2]=Y,o=ug(C^a,k^Y,16),C=p,i[t>>2]=o,i[t+4>>2]=C,t=rI(u,b,o,C),i[d>>2]=t,o=p,i[d+4>>2]=o,QA=w,CA=ug(Q^t,o^s,63),i[QA>>2]=CA,i[w+4>>2]=p,Q=rI($,AA,_,c),a=rI(R,N,C=ug(V^Q,j^(o=p),32),s=p),Q=rI(Q,w=o,t=ug(a^_,(k=p)^c,24),o=p),u=w=p,i[G>>2]=Q,i[G+4>>2]=u,Q=ug(Q^C,s^u,16),C=p,i[r>>2]=Q,i[r+4>>2]=C,Q=rI(a,k,Q,C),i[f>>2]=Q,C=f,f=p,i[C+4>>2]=f,QA=A,CA=ug(Q^t,f^o,63),i[QA>>2]=CA,i[A+4>>2]=p,C=E,Q=ug(IA^(f=rI(x,T,E,e)),gA^(t=p),32),A=ug(C^(r=rI(O,z,Q,E=p)),(A=e)^(e=p),24),f=rI(f,C=t,A,t=p),C=o=p,i[H>>2]=f,i[H+4>>2]=C,f=ug(Q^f,E^C,16),Q=p,i[U>>2]=f,i[U+4>>2]=Q,f=rI(r,e,f,Q),i[l>>2]=f,Q=p,i[l+4>>2]=Q,QA=n,CA=ug(A^f,Q^t,63),i[QA>>2]=CA,i[n+4>>2]=p,8!=(0|(F=F+1|0)););for(;F=i[768+(A=(t=I<<4)+(B+1024|0)|0)>>2],f=i[A+772>>2],a=i[(Q=A+512|0)>>2],o=i[Q+4>>2],C=F,F=i[A+256>>2],Q=i[A+260>>2],E=ug(C^(n=rI(i[A>>2],i[A+4>>2],F,Q)),(E=f)^(f=p),32),Q=ug(C=(r=rI(a,o,E,e=p))^F,Q^(F=p),24),w=F,s=ug((o=rI(n,f,Q,F=p))^E,(C=p)^e,16),F=ug(Q^(U=rI(r,w,s,a=p)),(k=p)^F,63),f=p,Q=i[A+780>>2],u=i[A+520>>2],y=i[A+524>>2],r=ug((G=i[A+776>>2])^(e=rI(w=i[(n=t=(B+1024|0)+(8|t)|0)>>2],e=i[n+4>>2],n=i[A+264>>2],E=i[A+268>>2])),(w=Q)^(Q=p),32),E=ug(w=(G=rI(u,y,r,l=p))^n,E^(n=p),24),y=G,u=ug((G=rI(e,w=Q,E,Q=p))^r,(w=p)^l,16),Q=ug(E^(Y=rI(y,n,u,b=p)),(d=p)^Q,63),n=p,E=i[A+900>>2],D=i[A+640>>2],m=i[A+644>>2],c=i[A+896>>2],e=i[A+384>>2],r=i[A+388>>2],H=ug(c^(l=rI(i[A+128>>2],i[A+132>>2],e,r)),(y=E)^(E=p),32),r=ug(y=(c=rI(D,m,H,_=p))^e,r^(e=p),24),D=c,c=ug((c=H)^(H=rI(l,y=E,r,E=p)),(y=_)^(_=p),16),E=ug(r^(y=rI(D,e,c,m=p)),(P=p)^E,63),e=p,r=i[A+908>>2],q=i[A+648>>2],j=i[A+652>>2],v=i[A+904>>2],l=i[A+392>>2],S=i[A+396>>2],N=ug(v^(R=rI(i[A+136>>2],i[A+140>>2],l,S)),(D=r)^(r=p),32),v=S=ug(D=(J=rI(q,j,N,M=p))^l,S^(l=p),24),N=ug((S=rI(R,D=r,S,r=p))^N,(R=p)^M,16),r=ug(v^(J=rI(J,l,N,M=p)),(V=p)^r,63),l=p,v=y,D=P,y=ug(N^(o=rI(o,C,Q,n)),M^(C=p),32),Q=ug((N=rI(v,D,y,P=p))^Q,(M=p)^n,24),n=rI(n=o,C,Q,o=p),C=p,i[A>>2]=n,i[A+4>>2]=C,n=ug(n^y,P^C,16),C=p,i[A+904>>2]=n,i[A+908>>2]=C,n=rI(N,M,n,C),C=p,i[A+640>>2]=n,i[A+644>>2]=C,QA=A,CA=ug(Q^n,o^C,63),i[QA+264>>2]=CA,i[A+268>>2]=p,y=E,n=rI(G,w,E,e),s=rI(J,V,o=ug(s^n,a^(E=p),32),C=p),n=rI(n,a=E,Q=ug(y^s,(Q=e)^(e=p),24),E=p),a=p,i[t>>2]=n,i[t+4>>2]=a,t=ug(n^o,C^a,16),n=p,i[A+768>>2]=t,i[A+772>>2]=n,t=rI(s,e,t,n),i[A+648>>2]=t,n=p,i[A+652>>2]=n,QA=A,CA=ug(Q^t,n^E,63),i[QA+384>>2]=CA,i[A+388>>2]=p,o=r,E=ug(u^(Q=rI(H,_,r,l)),b^(n=p),32),t=ug(o^(r=rI(U,k,E,e=p)),(C=l)^(l=p),24),Q=rI(Q,C=n,t,n=p),C=o=p,i[A+128>>2]=Q,i[A+132>>2]=C,Q=ug(Q^E,C^e,16),E=p,i[A+776>>2]=Q,i[A+780>>2]=E,Q=rI(r,l,Q,E),i[A+512>>2]=Q,E=p,i[A+516>>2]=E,QA=A,CA=ug(Q^t,n^E,63),i[QA+392>>2]=CA,i[A+396>>2]=p,t=rI(S,R,F,f),e=rI(Y,d,n=ug(c^t,m^(Q=p),32),E=p),f=rI(C=t,Q,F=ug(e^F,(r=p)^f,24),t=p),Q=p,i[A+136>>2]=f,i[A+140>>2]=Q,f=ug(n^f,E^Q,16),Q=p,i[A+896>>2]=f,i[A+900>>2]=Q,f=rI(e,r,f,Q),i[A+520>>2]=f,Q=p,i[A+524>>2]=Q,QA=A,CA=ug(f^F,Q^t,63),i[QA+256>>2]=CA,i[A+260>>2]=p,8!=(0|(I=I+1|0)););Yg(g,B),QI(g,B+1024|0),h=B+2048|0}function b(A,I,g){var B,Q=0,C=0,E=0,n=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,D=0,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0,CA=0;for(h=B=h-2048|0,Yg(B+1024|0,I),QI(B+1024|0,A),Yg(B,B+1024|0),I=0;n=i[(Q=f=(B+1024|0)+(64|(A=F<<7))|0)>>2],e=i[(E=t=(B+1024|0)+(96|A)|0)>>2],E=i[E+4>>2],a=n,w=i[Q+4>>2],o=e,Q=A+(B+1024|0)|0,r=i[(n=(B+1024|0)+(32|A)|0)>>2],e=i[n+4>>2],o=ug(o^(l=rI(i[Q>>2],i[Q+4>>2],r,e)),(C=E)^(E=p),32),e=ug(a=(s=rI(a,w,o,C=p))^r,e^(r=p),24),P=ug((m=rI(l,a=E,e,E=p))^o,(y=p)^C,16),E=ug(e^(R=rI(s,r,P,S=p)),(N=p)^E,63),e=p,o=i[(r=(B+1024|0)+(104|A)|0)>>2],s=i[r+4>>2],H=i[(C=l=(B+1024|0)+(72|A)|0)>>2],c=i[C+4>>2],G=ug((G=o)^(k=rI(u=i[(C=o=(B+1024|0)+(8|A)|0)>>2],w=i[C+4>>2],U=i[(C=(B+1024|0)+(40|A)|0)>>2],a=i[C+4>>2])),(w=s)^(s=p),32),a=ug(c=(u=rI(H,c,G,w=p))^U,a^(U=p),24),V=ug((M=rI(k,c=s,a,s=p))^G,(J=p)^w,16),s=ug(a^(O=rI(u,U,V,j=p)),(z=p)^s,63),a=p,G=i[(k=U=(B+1024|0)+(112|A)|0)>>2],u=i[k+4>>2],v=i[(k=(B+1024|0)+(80|A)|0)>>2],D=i[k+4>>2],H=G,G=(B+1024|0)+(16|A)|0,Y=i[(b=w=(B+1024|0)+(48|A)|0)>>2],b=i[b+4>>2],H=ug(H^(d=rI(i[G>>2],i[G+4>>2],Y,b)),(c=u)^(u=p),32),b=ug(D=(c=rI(v,D,H,_=p))^Y,b^(Y=p),24),IA=ug(($=rI(d,D=u,b,u=p))^H,(AA=p)^_,16),u=ug(b^(W=rI(c,Y,IA,gA=p)),(q=p)^u,63),b=p,H=i[(Y=(B+1024|0)+(120|A)|0)>>2],_=i[Y+4>>2],BA=i[(c=d=(B+1024|0)+(88|A)|0)>>2],X=i[c+4>>2],L=ug((v=H)^(T=rI(Z=i[(c=H=(B+1024|0)+(24|A)|0)>>2],D=i[c+4>>2],x=i[(A=(B+1024|0)+(56|A)|0)>>2],c=i[A+4>>2])),(D=_)^(_=p),32),c=ug(D=(X=rI(BA,X,L,K=p))^x,c^(x=p),24),v=x,L=ug((x=rI(T,D=_,c,_=p))^L,(T=p)^K,16),_=ug(c^(X=rI(X,v,L,K=p)),(Z=p)^_,63),c=p,v=W,D=q,W=ug(L^(m=rI(m,y,s,a)),K^(y=p),32),s=ug((L=rI(v,D,W,q=p))^s,(K=p)^a,24),a=rI(a=m,y,s,m=p),y=p,i[Q>>2]=a,i[Q+4>>2]=y,Q=ug(a^W,q^y,16),a=p,i[Y>>2]=Q,i[Y+4>>2]=a,Q=rI(L,K,Q,a),a=p,i[k>>2]=Q,i[k+4>>2]=a,QA=C,CA=ug(Q^s,a^m,63),i[QA>>2]=CA,i[C+4>>2]=p,y=u,a=ug(P^(C=rI(M,J,u,b)),S^(s=p),32),Q=ug(y^(u=rI(X,Z,a,k=p)),(Q=b)^(b=p),24),C=rI(C,y=s,Q,s=p),Y=p,i[o>>2]=C,i[o+4>>2]=Y,o=ug(C^a,k^Y,16),C=p,i[t>>2]=o,i[t+4>>2]=C,t=rI(u,b,o,C),i[d>>2]=t,o=p,i[d+4>>2]=o,QA=w,CA=ug(Q^t,o^s,63),i[QA>>2]=CA,i[w+4>>2]=p,Q=rI($,AA,_,c),a=rI(R,N,C=ug(V^Q,j^(o=p),32),s=p),Q=rI(Q,w=o,t=ug(a^_,(k=p)^c,24),o=p),u=w=p,i[G>>2]=Q,i[G+4>>2]=u,Q=ug(Q^C,s^u,16),C=p,i[r>>2]=Q,i[r+4>>2]=C,Q=rI(a,k,Q,C),i[f>>2]=Q,C=f,f=p,i[C+4>>2]=f,QA=A,CA=ug(Q^t,f^o,63),i[QA>>2]=CA,i[A+4>>2]=p,C=E,Q=ug(IA^(f=rI(x,T,E,e)),gA^(t=p),32),A=ug(C^(r=rI(O,z,Q,E=p)),(A=e)^(e=p),24),f=rI(f,C=t,A,t=p),C=o=p,i[H>>2]=f,i[H+4>>2]=C,f=ug(Q^f,E^C,16),Q=p,i[U>>2]=f,i[U+4>>2]=Q,f=rI(r,e,f,Q),i[l>>2]=f,Q=p,i[l+4>>2]=Q,QA=n,CA=ug(A^f,Q^t,63),i[QA>>2]=CA,i[n+4>>2]=p,8!=(0|(F=F+1|0)););for(;F=i[768+(A=(t=I<<4)+(B+1024|0)|0)>>2],f=i[A+772>>2],a=i[(Q=A+512|0)>>2],o=i[Q+4>>2],C=F,F=i[A+256>>2],Q=i[A+260>>2],E=ug(C^(n=rI(i[A>>2],i[A+4>>2],F,Q)),(E=f)^(f=p),32),Q=ug(C=(r=rI(a,o,E,e=p))^F,Q^(F=p),24),w=F,s=ug((o=rI(n,f,Q,F=p))^E,(C=p)^e,16),F=ug(Q^(U=rI(r,w,s,a=p)),(k=p)^F,63),f=p,Q=i[A+780>>2],u=i[A+520>>2],y=i[A+524>>2],r=ug((G=i[A+776>>2])^(e=rI(w=i[(n=t=(B+1024|0)+(8|t)|0)>>2],e=i[n+4>>2],n=i[A+264>>2],E=i[A+268>>2])),(w=Q)^(Q=p),32),E=ug(w=(G=rI(u,y,r,l=p))^n,E^(n=p),24),y=G,u=ug((G=rI(e,w=Q,E,Q=p))^r,(w=p)^l,16),Q=ug(E^(Y=rI(y,n,u,b=p)),(d=p)^Q,63),n=p,E=i[A+900>>2],D=i[A+640>>2],m=i[A+644>>2],c=i[A+896>>2],e=i[A+384>>2],r=i[A+388>>2],H=ug(c^(l=rI(i[A+128>>2],i[A+132>>2],e,r)),(y=E)^(E=p),32),r=ug(y=(c=rI(D,m,H,_=p))^e,r^(e=p),24),D=c,c=ug((c=H)^(H=rI(l,y=E,r,E=p)),(y=_)^(_=p),16),E=ug(r^(y=rI(D,e,c,m=p)),(P=p)^E,63),e=p,r=i[A+908>>2],q=i[A+648>>2],j=i[A+652>>2],v=i[A+904>>2],l=i[A+392>>2],S=i[A+396>>2],N=ug(v^(R=rI(i[A+136>>2],i[A+140>>2],l,S)),(D=r)^(r=p),32),v=S=ug(D=(J=rI(q,j,N,M=p))^l,S^(l=p),24),N=ug((S=rI(R,D=r,S,r=p))^N,(R=p)^M,16),r=ug(v^(J=rI(J,l,N,M=p)),(V=p)^r,63),l=p,v=y,D=P,y=ug(N^(o=rI(o,C,Q,n)),M^(C=p),32),Q=ug((N=rI(v,D,y,P=p))^Q,(M=p)^n,24),n=rI(n=o,C,Q,o=p),C=p,i[A>>2]=n,i[A+4>>2]=C,n=ug(n^y,P^C,16),C=p,i[A+904>>2]=n,i[A+908>>2]=C,n=rI(N,M,n,C),C=p,i[A+640>>2]=n,i[A+644>>2]=C,QA=A,CA=ug(Q^n,o^C,63),i[QA+264>>2]=CA,i[A+268>>2]=p,y=E,n=rI(G,w,E,e),s=rI(J,V,o=ug(s^n,a^(E=p),32),C=p),n=rI(n,a=E,Q=ug(y^s,(Q=e)^(e=p),24),E=p),a=p,i[t>>2]=n,i[t+4>>2]=a,t=ug(n^o,C^a,16),n=p,i[A+768>>2]=t,i[A+772>>2]=n,t=rI(s,e,t,n),i[A+648>>2]=t,n=p,i[A+652>>2]=n,QA=A,CA=ug(Q^t,n^E,63),i[QA+384>>2]=CA,i[A+388>>2]=p,o=r,E=ug(u^(Q=rI(H,_,r,l)),b^(n=p),32),t=ug(o^(r=rI(U,k,E,e=p)),(C=l)^(l=p),24),Q=rI(Q,C=n,t,n=p),C=o=p,i[A+128>>2]=Q,i[A+132>>2]=C,Q=ug(Q^E,C^e,16),E=p,i[A+776>>2]=Q,i[A+780>>2]=E,Q=rI(r,l,Q,E),i[A+512>>2]=Q,E=p,i[A+516>>2]=E,QA=A,CA=ug(Q^t,n^E,63),i[QA+392>>2]=CA,i[A+396>>2]=p,t=rI(S,R,F,f),e=rI(Y,d,n=ug(c^t,m^(Q=p),32),E=p),f=rI(C=t,Q,F=ug(e^F,(r=p)^f,24),t=p),Q=p,i[A+136>>2]=f,i[A+140>>2]=Q,f=ug(n^f,E^Q,16),Q=p,i[A+896>>2]=f,i[A+900>>2]=Q,f=rI(e,r,f,Q),i[A+520>>2]=f,Q=p,i[A+524>>2]=Q,QA=A,CA=ug(f^F,Q^t,63),i[QA+256>>2]=CA,i[A+260>>2]=p,8!=(0|(I=I+1|0)););Yg(g,B),QI(g,B+1024|0),h=B+2048|0}function m(A){var I=0,g=0,B=0,Q=0,C=0,E=0,n=0,r=0,o=0;A:if(A|=0){C=(B=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(3&I))break A;if((B=B-(I=i[B>>2])|0)>>>0>2])))return i[8963]=A,i[C+4>>2]=-2&I,i[B+4>>2]=1|A,void(i[A+B>>2]=A)}else{if(I>>>0<=255){if(Q=i[B+8>>2],I=I>>>3|0,(0|(g=i[B+12>>2]))==(0|Q)){r=35844,o=i[8961]&vI(-2,I),i[r>>2]=o;break I}i[Q+12>>2]=g,i[g+8>>2]=Q;break I}if(n=i[B+24>>2],(0|B)==(0|(I=i[B+12>>2])))if((g=i[(Q=B+20|0)>>2])||(g=i[(Q=B+16|0)>>2])){for(;E=Q,(g=i[(Q=(I=g)+20|0)>>2])||(Q=I+16|0,g=i[I+16>>2]););i[E>>2]=0}else I=0;else g=i[B+8>>2],i[g+12>>2]=I,i[I+8>>2]=g;if(!n)break I;Q=i[B+28>>2];g:{if(i[(g=36148+(Q<<2)|0)>>2]==(0|B)){if(i[g>>2]=I,I)break g;r=35848,o=i[8962]&vI(-2,Q),i[r>>2]=o;break I}if(i[n+(i[n+16>>2]==(0|B)?16:20)>>2]=I,!I)break I}if(i[I+24>>2]=n,(g=i[B+16>>2])&&(i[I+16>>2]=g,i[g+24>>2]=I),!(g=i[B+20>>2]))break I;i[I+20>>2]=g,i[g+24>>2]=I}}if(!(B>>>0>=C>>>0)&&1&(I=i[C+4>>2])){I:{if(!(2&I)){if(i[8967]==(0|C)){if(i[8967]=B,A=i[8964]+A|0,i[8964]=A,i[B+4>>2]=1|A,i[8966]!=(0|B))break A;return i[8963]=0,void(i[8966]=0)}if(i[8966]==(0|C))return i[8966]=B,A=i[8963]+A|0,i[8963]=A,i[B+4>>2]=1|A,void(i[A+B>>2]=A);A=(-8&I)+A|0;g:if(I>>>0<=255){if(I=I>>>3|0,(0|(g=i[C+8>>2]))==(0|(Q=i[C+12>>2]))){r=35844,o=i[8961]&vI(-2,I),i[r>>2]=o;break g}i[g+12>>2]=Q,i[Q+8>>2]=g}else{if(n=i[C+24>>2],(0|C)==(0|(I=i[C+12>>2])))if((g=i[(Q=C+20|0)>>2])||(g=i[(Q=C+16|0)>>2])){for(;E=Q,(g=i[(Q=(I=g)+20|0)>>2])||(Q=I+16|0,g=i[I+16>>2]););i[E>>2]=0}else I=0;else g=i[C+8>>2],i[g+12>>2]=I,i[I+8>>2]=g;if(n){Q=i[C+28>>2];B:{if(i[(g=36148+(Q<<2)|0)>>2]==(0|C)){if(i[g>>2]=I,I)break B;r=35848,o=i[8962]&vI(-2,Q),i[r>>2]=o;break g}if(i[n+(i[n+16>>2]==(0|C)?16:20)>>2]=I,!I)break g}i[I+24>>2]=n,(g=i[C+16>>2])&&(i[I+16>>2]=g,i[g+24>>2]=I),(g=i[C+20>>2])&&(i[I+20>>2]=g,i[g+24>>2]=I)}}if(i[B+4>>2]=1|A,i[A+B>>2]=A,i[8966]!=(0|B))break I;return void(i[8963]=A)}i[C+4>>2]=-2&I,i[B+4>>2]=1|A,i[A+B>>2]=A}if(A>>>0<=255)return I=35884+((A=A>>>3|0)<<3)|0,(g=i[8961])&(A=1<>2]:(i[8961]=A|g,A=I),i[I+8>>2]=B,i[A+12>>2]=B,i[B+12>>2]=I,void(i[B+8>>2]=A);Q=31,i[B+16>>2]=0,i[B+20>>2]=0,A>>>0<=16777215&&(I=A>>>8|0,I<<=E=I+1048320>>>16&8,Q=28+((I=((I<<=Q=I+520192>>>16&4)<<(g=I+245760>>>16&2)>>>15|0)-(g|Q|E)|0)<<1|A>>>I+21&1)|0),i[B+28>>2]=Q,E=36148+(Q<<2)|0;I:{g:{if((g=i[8962])&(I=1<>>1|0)|0),I=i[E>>2];;){if(g=I,(-8&i[I+4>>2])==(0|A))break g;if(I=Q>>>29|0,Q<<=1,!(I=i[16+(E=g+(4&I)|0)>>2]))break}i[E+16>>2]=B,i[B+24>>2]=g}else i[8962]=I|g,i[E>>2]=B,i[B+24>>2]=E;i[B+12>>2]=B,i[B+8>>2]=B;break I}A=i[g+8>>2],i[A+12>>2]=B,i[g+8>>2]=B,i[B+24>>2]=0,i[B+12>>2]=g,i[B+8>>2]=A}A=i[8969]-1|0,i[8969]=A||-1}}}function v(A,I){var g,B=0,Q=0,C=0,E=0,n=0,a=0,r=0;g=A+I|0;A:{I:if(!(1&(B=i[A+4>>2]))){if(!(3&B))break A;if(I=(B=i[A>>2])+I|0,(0|(A=A-B|0))==i[8966]){if(3==(3&(B=i[g+4>>2])))return i[8963]=I,i[g+4>>2]=-2&B,i[A+4>>2]=1|I,void(i[g>>2]=I)}else{if(B>>>0<=255){if(C=i[A+8>>2],B=B>>>3|0,(0|(Q=i[A+12>>2]))==(0|C)){a=35844,r=i[8961]&vI(-2,B),i[a>>2]=r;break I}i[C+12>>2]=Q,i[Q+8>>2]=C;break I}if(n=i[A+24>>2],(0|(B=i[A+12>>2]))==(0|A))if((Q=i[(C=A+20|0)>>2])||(Q=i[(C=A+16|0)>>2])){for(;E=C,(Q=i[(C=(B=Q)+20|0)>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0}else B=0;else Q=i[A+8>>2],i[Q+12>>2]=B,i[B+8>>2]=Q;if(!n)break I;C=i[A+28>>2];g:{if(i[(Q=36148+(C<<2)|0)>>2]==(0|A)){if(i[Q>>2]=B,B)break g;a=35848,r=i[8962]&vI(-2,C),i[a>>2]=r;break I}if(i[n+(i[n+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}if(i[B+24>>2]=n,(Q=i[A+16>>2])&&(i[B+16>>2]=Q,i[Q+24>>2]=B),!(Q=i[A+20>>2]))break I;i[B+20>>2]=Q,i[Q+24>>2]=B}}I:{if(!(2&(B=i[g+4>>2]))){if(i[8967]==(0|g)){if(i[8967]=A,I=i[8964]+I|0,i[8964]=I,i[A+4>>2]=1|I,i[8966]!=(0|A))break A;return i[8963]=0,void(i[8966]=0)}if(i[8966]==(0|g))return i[8966]=A,I=i[8963]+I|0,i[8963]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);I=(-8&B)+I|0;g:if(B>>>0<=255){if(C=i[g+8>>2],B=B>>>3|0,(0|(Q=i[g+12>>2]))==(0|C)){a=35844,r=i[8961]&vI(-2,B),i[a>>2]=r;break g}i[C+12>>2]=Q,i[Q+8>>2]=C}else{if(n=i[g+24>>2],(0|g)==(0|(B=i[g+12>>2])))if((C=i[(Q=g+20|0)>>2])||(C=i[(Q=g+16|0)>>2])){for(;E=Q,(C=i[(Q=(B=C)+20|0)>>2])||(Q=B+16|0,C=i[B+16>>2]););i[E>>2]=0}else B=0;else Q=i[g+8>>2],i[Q+12>>2]=B,i[B+8>>2]=Q;if(n){C=i[g+28>>2];B:{if(i[(Q=36148+(C<<2)|0)>>2]==(0|g)){if(i[Q>>2]=B,B)break B;a=35848,r=i[8962]&vI(-2,C),i[a>>2]=r;break g}if(i[n+(i[n+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=n,(Q=i[g+16>>2])&&(i[B+16>>2]=Q,i[Q+24>>2]=B),(Q=i[g+20>>2])&&(i[B+20>>2]=Q,i[Q+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[8966]!=(0|A))break I;return void(i[8963]=I)}i[g+4>>2]=-2&B,i[A+4>>2]=1|I,i[A+I>>2]=I}if(I>>>0<=255)return B=35884+((I=I>>>3|0)<<3)|0,(Q=i[8961])&(I=1<>2]:(i[8961]=I|Q,I=B),i[B+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=B,void(i[A+8>>2]=I);C=31,i[A+16>>2]=0,i[A+20>>2]=0,I>>>0<=16777215&&(B=I>>>8|0,B<<=E=B+1048320>>>16&8,C=28+((B=((B<<=C=B+520192>>>16&4)<<(Q=B+245760>>>16&2)>>>15|0)-(Q|C|E)|0)<<1|I>>>B+21&1)|0),i[A+28>>2]=C,E=36148+(C<<2)|0;I:{if((Q=i[8962])&(B=1<>>1|0)|0),B=i[E>>2];;){if(Q=B,(-8&i[B+4>>2])==(0|I))break I;if(B=C>>>29|0,C<<=1,!(B=i[16+(E=Q+(4&B)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=Q}else i[8962]=B|Q,i[E>>2]=A,i[A+24>>2]=E;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[Q+8>>2],i[I+12>>2]=A,i[Q+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=Q,i[A+8>>2]=I}}function U(A,I,g,B,Q){var E,a,r,o,e,t,f,c,y,s,w,D,u,p,l,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0,U=0,S=0,N=0,M=0,d=0,P=0,R=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0;for(h=E=h+-64|0,a=i[A+60>>2],r=i[A+56>>2],K=i[A+52>>2],x=i[A+48>>2],o=i[A+44>>2],e=i[A+40>>2],t=i[A+36>>2],f=i[A+32>>2],c=i[A+28>>2],y=i[A+24>>2],s=i[A+20>>2],w=i[A+16>>2],D=i[A+12>>2],u=i[A+8>>2],p=i[A+4>>2],l=i[A>>2];;){if(!Q&B>>>0>63|Q)k=g;else{if(_=0,k=F=EA(E,0,64),B|Q)for(;C[F+_|0]=n[I+_|0],!Q&(_=_+1|0)>>>0>>0|Q;);I=k,V=g}for(q=20,m=l,v=p,U=u,S=D,_=w,F=s,g=y,N=c,H=f,Y=t,M=e,d=a,P=r,G=K,R=x,L=o;b=_,m=Hg((_=_+m|0)^R,16),R=Hg(b^(H=m+H|0),12),b=H,H=Hg((H=m)^(m=_+R|0),8),_=Hg(R^(J=b+H|0),7),b=F,v=Hg((F=F+v|0)^G,16),G=Hg(b^(Y=v+Y|0),12),b=Y,Y=Hg((Y=v)^(v=F+G|0),8),F=Hg(G^(X=b+Y|0),7),G=g,U=Hg((g=g+U|0)^P,16),b=P=Hg(G^(M=U+M|0),12),P=Hg((G=U)^(U=g+P|0),8),g=Hg(b^(M=P+M|0),7),G=N,S=Hg((N=N+S|0)^d,16),L=G=Hg(G^(d=S+L|0),12),b=d,d=Hg((d=S)^(S=N+G|0),8),N=Hg(L^(G=b+d|0),7),b=M,M=Hg((m=F+m|0)^d,16),F=Hg((R=b+M|0)^F,12),d=Hg(M^(m=F+m|0),8),F=Hg(F^(M=R+d|0),7),H=Hg((v=g+v|0)^H,16),g=Hg((G=H+G|0)^g,12),R=Hg(H^(v=g+v|0),8),g=Hg(g^(L=G+R|0),7),H=Hg((U=N+U|0)^Y,16),N=Hg((Y=H+J|0)^N,12),G=Hg(H^(U=N+U|0),8),N=Hg(N^(H=Y+G|0),7),Y=Hg((S=_+S|0)^P,16),_=Hg((J=Y+X|0)^_,12),P=Hg(Y^(S=_+S|0),8),_=Hg(_^(Y=J+P|0),7),q=q-2|0;);if(q=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,J=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,X=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,W=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,T=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,j=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,Z=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,O=n[I+32|0]|n[I+33|0]<<8|n[I+34|0]<<16|n[I+35|0]<<24,z=n[I+36|0]|n[I+37|0]<<8|n[I+38|0]<<16|n[I+39|0]<<24,$=n[I+40|0]|n[I+41|0]<<8|n[I+42|0]<<16|n[I+43|0]<<24,AA=n[I+44|0]|n[I+45|0]<<8|n[I+46|0]<<16|n[I+47|0]<<24,IA=n[I+48|0]|n[I+49|0]<<8|n[I+50|0]<<16|n[I+51|0]<<24,gA=n[I+52|0]|n[I+53|0]<<8|n[I+54|0]<<16|n[I+55|0]<<24,BA=n[I+56|0]|n[I+57|0]<<8|n[I+58|0]<<16|n[I+59|0]<<24,b=n[I+60|0]|n[I+61|0]<<8|n[I+62|0]<<16|n[I+63|0]<<24,xI(k,m+l^(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24)),xI(k+4|0,v+p^q),xI(k+8|0,U+u^J),xI(k+12|0,S+D^X),xI(k+16|0,_+w^W),xI(k+20|0,F+s^T),xI(k+24|0,g+y^j),xI(k+28|0,N+c^Z),xI(k+32|0,H+f^O),xI(k+36|0,Y+t^z),xI(k+40|0,$^M+e),xI(k+44|0,AA^L+o),xI(k+48|0,IA^R+x),xI(k+52|0,gA^G+K),xI(k+56|0,BA^P+r),xI(k+60|0,b^d+a),K=((x=(g=x)+1|0)>>>0>>0)+K|0,!Q&B>>>0<=64){if(!(!B|!Q&B>>>0>63|0!=(0|Q)))for(F=0;C[F+V|0]=n[k+F|0],(0|B)!=(0|(F=F+1|0)););i[A+52>>2]=K,i[A+48>>2]=x,h=E- -64|0;break}I=I- -64|0,g=k- -64|0,Q=Q-1|0,Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q}}function S(A,I,g,B){var Q=0,C=0,E=0,a=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,v=0;if(c=i[A+36>>2],a=i[A+32>>2],E=i[A+28>>2],C=i[A+24>>2],o=i[A+20>>2],!B&g>>>0>=16|B)for(H=!n[A+80|0]<<24,s=i[A+4>>2],Y=r(s,5),D=i[A+8>>2],_=r(D,5),G=i[A+12>>2],k=r(G,5),Q=i[A+16>>2],u=r(Q,5),b=Q,w=i[A>>2];Q=eg(e=((n[I+3|0]|n[I+4|0]<<8|n[I+5|0]<<16|n[I+6|0]<<24)>>>2&67108863)+C|0,0,G,0),t=p,C=(y=eg(o=(67108863&(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24))+o|0,0,b,0))+Q|0,Q=p+t|0,Q=C>>>0>>0?Q+1|0:Q,f=C,C=eg(t=((n[I+6|0]|n[I+7|0]<<8|n[I+8|0]<<16|n[I+9|0]<<24)>>>4&67108863)+E|0,0,D,0),Q=p+Q|0,Q=C>>>0>(E=f+C|0)>>>0?Q+1|0:Q,C=E,E=eg(y=((n[I+9|0]|n[I+10|0]<<8|n[I+11|0]<<16|n[I+12|0]<<24)>>>6|0)+a|0,0,s,0),Q=p+Q|0,Q=E>>>0>(a=C+E|0)>>>0?Q+1|0:Q,C=a,a=eg(h=c+H+((n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24)>>>8)|0,0,w,0),Q=p+Q|0,m=c=C+a|0,c=a>>>0>c>>>0?Q+1|0:Q,Q=eg(e,0,D,0),E=p,a=(C=eg(o,0,G,0))+Q|0,Q=p+E|0,Q=C>>>0>a>>>0?Q+1|0:Q,E=eg(t,0,s,0),Q=p+Q|0,Q=E>>>0>(a=E+a|0)>>>0?Q+1|0:Q,E=eg(y,0,w,0),Q=p+Q|0,Q=E>>>0>(a=E+a|0)>>>0?Q+1|0:Q,E=eg(h,0,u,0),Q=p+Q|0,v=a=E+a|0,a=E>>>0>a>>>0?Q+1|0:Q,Q=eg(e,0,s,0),C=p,E=(l=eg(o,0,D,0))+Q|0,Q=p+C|0,Q=E>>>0>>0?Q+1|0:Q,C=eg(t,0,w,0),Q=p+Q|0,Q=C>>>0>(E=C+E|0)>>>0?Q+1|0:Q,C=eg(y,0,u,0),Q=p+Q|0,Q=C>>>0>(E=C+E|0)>>>0?Q+1|0:Q,C=eg(h,0,k,0),Q=p+Q|0,l=E=C+E|0,E=C>>>0>E>>>0?Q+1|0:Q,Q=eg(e,0,w,0),f=p,C=(F=eg(o,0,s,0))+Q|0,Q=p+f|0,Q=C>>>0>>0?Q+1|0:Q,f=eg(t,0,u,0),Q=p+Q|0,Q=(C=f+C|0)>>>0>>0?Q+1|0:Q,f=eg(y,0,k,0),Q=p+Q|0,Q=(C=f+C|0)>>>0>>0?Q+1|0:Q,f=eg(h,0,_,0),Q=p+Q|0,Q=(C=f+C|0)>>>0>>0?Q+1|0:Q,f=C,C=Q,Q=eg(e,0,u,0),F=p,e=(o=eg(o,0,w,0))+Q|0,Q=p+F|0,Q=e>>>0>>0?Q+1|0:Q,o=eg(t,0,k,0),Q=p+Q|0,Q=(e=o+e|0)>>>0>>0?Q+1|0:Q,o=eg(y,0,_,0),Q=p+Q|0,Q=(e=o+e|0)>>>0>>0?Q+1|0:Q,o=eg(h,0,Y,0),Q=p+Q|0,Q=(e=o+e|0)>>>0>>0?Q+1|0:Q,o=e,t=(67108863&Q)<<6|e>>>26,Q=C,t=(67108863&(Q=(e=t+f|0)>>>0>>0?Q+1|0:Q))<<6|(C=e)>>>26,Q=E,Q=(C=t+l|0)>>>0>>0?Q+1|0:Q,t=C,C=(67108863&Q)<<6|C>>>26,Q=a,y=E=C+v|0,E=(67108863&(Q=C>>>0>E>>>0?Q+1|0:Q))<<6|E>>>26,Q=c,c=a=E+m|0,C=(67108863&e)+((Q=r((67108863&(Q=E>>>0>a>>>0?Q+1|0:Q))<<6|a>>>26,5)+(67108863&o)|0)>>>26|0)|0,E=67108863&t,a=67108863&y,c&=67108863,o=67108863&Q,I=I+16|0,!(B=B-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|B;);i[A+20>>2]=o,i[A+36>>2]=c,i[A+32>>2]=a,i[A+28>>2]=E,i[A+24>>2]=C}function N(A,I,g){var B,Q,E,i,a=0,r=0,o=0,e=0,t=0;return h=E=h-160|0,mI(I,g,32,0),C[0|I]=248&n[0|I],C[I+31|0]=63&n[I+31|0]|64,CA(E,I),nI(A,E),r=n[(Q=g)+8|0]|n[Q+9|0]<<8|n[Q+10|0]<<16|n[Q+11|0]<<24,a=n[Q+12|0]|n[Q+13|0]<<8|n[Q+14|0]<<16|n[Q+15|0]<<24,o=n[Q+16|0]|n[Q+17|0]<<8|n[Q+18|0]<<16|n[Q+19|0]<<24,e=n[Q+20|0]|n[Q+21|0]<<8|n[Q+22|0]<<16|n[Q+23|0]<<24,t=n[0|Q]|n[Q+1|0]<<8|n[Q+2|0]<<16|n[Q+3|0]<<24,g=n[Q+4|0]|n[Q+5|0]<<8|n[Q+6|0]<<16|n[Q+7|0]<<24,B=I,i=n[Q+28|0]|n[Q+29|0]<<8|n[Q+30|0]<<16|n[Q+31|0]<<24,I=n[Q+24|0]|n[Q+25|0]<<8|n[Q+26|0]<<16|n[Q+27|0]<<24,C[B+24|0]=I,C[B+25|0]=I>>>8,C[B+26|0]=I>>>16,C[B+27|0]=I>>>24,C[B+28|0]=i,C[B+29|0]=i>>>8,C[B+30|0]=i>>>16,C[B+31|0]=i>>>24,C[B+16|0]=o,C[B+17|0]=o>>>8,C[B+18|0]=o>>>16,C[B+19|0]=o>>>24,C[B+20|0]=e,C[B+21|0]=e>>>8,C[B+22|0]=e>>>16,C[B+23|0]=e>>>24,C[B+8|0]=r,C[B+9|0]=r>>>8,C[B+10|0]=r>>>16,C[B+11|0]=r>>>24,C[B+12|0]=a,C[B+13|0]=a>>>8,C[B+14|0]=a>>>16,C[B+15|0]=a>>>24,C[0|B]=t,C[B+1|0]=t>>>8,C[B+2|0]=t>>>16,C[B+3|0]=t>>>24,C[B+4|0]=g,C[B+5|0]=g>>>8,C[B+6|0]=g>>>16,C[B+7|0]=g>>>24,o=n[(a=A)+8|0]|n[a+9|0]<<8|n[a+10|0]<<16|n[a+11|0]<<24,e=n[a+12|0]|n[a+13|0]<<8|n[a+14|0]<<16|n[a+15|0]<<24,t=n[a+16|0]|n[a+17|0]<<8|n[a+18|0]<<16|n[a+19|0]<<24,g=n[a+20|0]|n[a+21|0]<<8|n[a+22|0]<<16|n[a+23|0]<<24,I=n[0|a]|n[a+1|0]<<8|n[a+2|0]<<16|n[a+3|0]<<24,A=n[a+4|0]|n[a+5|0]<<8|n[a+6|0]<<16|n[a+7|0]<<24,r=n[a+28|0]|n[a+29|0]<<8|n[a+30|0]<<16|n[a+31|0]<<24,a=n[a+24|0]|n[a+25|0]<<8|n[a+26|0]<<16|n[a+27|0]<<24,C[B+56|0]=a,C[B+57|0]=a>>>8,C[B+58|0]=a>>>16,C[B+59|0]=a>>>24,C[B+60|0]=r,C[B+61|0]=r>>>8,C[B+62|0]=r>>>16,C[B+63|0]=r>>>24,C[B+48|0]=t,C[B+49|0]=t>>>8,C[B+50|0]=t>>>16,C[B+51|0]=t>>>24,C[B+52|0]=g,C[B+53|0]=g>>>8,C[B+54|0]=g>>>16,C[B+55|0]=g>>>24,C[B+40|0]=o,C[B+41|0]=o>>>8,C[B+42|0]=o>>>16,C[B+43|0]=o>>>24,C[B+44|0]=e,C[B+45|0]=e>>>8,C[B+46|0]=e>>>16,C[B+47|0]=e>>>24,C[B+32|0]=I,C[B+33|0]=I>>>8,C[B+34|0]=I>>>16,C[B+35|0]=I>>>24,C[B+36|0]=A,C[B+37|0]=A>>>8,C[B+38|0]=A>>>16,C[B+39|0]=A>>>24,h=E+160|0,0}function M(A,I,g){var B,Q=0,E=0,i=0;h=B=h+-64|0;A:{if(!(!g|g>>>0>=65)){if(Q=-1,!(n[A+80|0]|n[A+81|0]<<8|n[A+82|0]<<16|n[A+83|0]<<24|n[A+84|0]|n[A+85|0]<<8|n[A+86|0]<<16|n[A+87|0]<<24)){if(E=A,(Q=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)>>>0>=129){if(iA(A,128),l(A,i=A+96|0),Q=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,Q>>>0>=129)break A;X(i,A+224|0,Q),Q=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24}iA(E,Q),n[A+356|0]&&(C[A+88|0]=255,C[A+89|0]=255,C[A+90|0]=255,C[A+91|0]=255,C[A+92|0]=255,C[A+93|0]=255,C[A+94|0]=255,C[A+95|0]=255),C[A+80|0]=255,C[A+81|0]=255,C[A+82|0]=255,C[A+83|0]=255,C[A+84|0]=255,C[A+85|0]=255,C[A+86|0]=255,C[A+87|0]=255,EA((Q=A+96|0)+(E=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0,0,256-E|0),l(A,Q),tI(B,n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24),tI(8|B,n[A+8|0]|n[A+9|0]<<8|n[A+10|0]<<16|n[A+11|0]<<24,n[A+12|0]|n[A+13|0]<<8|n[A+14|0]<<16|n[A+15|0]<<24),tI(B+16|0,n[A+16|0]|n[A+17|0]<<8|n[A+18|0]<<16|n[A+19|0]<<24,n[A+20|0]|n[A+21|0]<<8|n[A+22|0]<<16|n[A+23|0]<<24),tI(B+24|0,n[A+24|0]|n[A+25|0]<<8|n[A+26|0]<<16|n[A+27|0]<<24,n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24),tI(B+32|0,n[A+32|0]|n[A+33|0]<<8|n[A+34|0]<<16|n[A+35|0]<<24,n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24),tI(B+40|0,n[A+40|0]|n[A+41|0]<<8|n[A+42|0]<<16|n[A+43|0]<<24,n[A+44|0]|n[A+45|0]<<8|n[A+46|0]<<16|n[A+47|0]<<24),tI(B+48|0,n[A+48|0]|n[A+49|0]<<8|n[A+50|0]<<16|n[A+51|0]<<24,n[A+52|0]|n[A+53|0]<<8|n[A+54|0]<<16|n[A+55|0]<<24),tI(B+56|0,n[A+56|0]|n[A+57|0]<<8|n[A+58|0]<<16|n[A+59|0]<<24,n[A+60|0]|n[A+61|0]<<8|n[A+62|0]<<16|n[A+63|0]<<24),X(I,B,g),fI(A,64),fI(Q,256),Q=0}return h=B- -64|0,Q}OI(),e()}t(1854,1886,306,1931),e()}function d(A,I){var g,B,Q,C,E,a,r,o,e,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,l=0,F=0;g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,u=HI(I+4|0),t=p,h=HI(I+7|0),c=p,D=HI(I+10|0),f=p,B=HI(I+13|0),s=p,y=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,Q=HI(I+20|0),l=p,C=HI(I+23|0),E=p,a=HI(I+26|0),r=p,o=HI(I+29|0),I=f<<3|D>>>29,F=f=D<<3,D=f=f+16777216|0,f=I=f>>>0<16777216?I+1|0:I,c=I=c<<5|h>>>27,e=w=h<<5,t=I=t<<6|(h=u)>>>26,u=I=16777216+(h<<=6)|0,w=I,I=(I=(t=I>>>0<16777216?t+1|0:t)>>25)+c|0,I=(t=e+(w=(33554431&t)<<7|w>>>25)|0)>>>0>>0?I+1|0:I,(c=t+33554432|0)>>>0<33554432&&(I=I+1|0),I=(F-(-33554432&D)|0)+((67108863&I)<<6|c>>>26)|0,i[A+12>>2]=I,I=-67108864&c,i[A+8>>2]=t-I,I=0,w=y=(c=y)+16777216|0,y=I=y>>>0<16777216?1:I,F=c-(-33554432&w)|0,I=s<<2|(c=B)>>>30,s=c<<2,c=I,I=(I=f>>25)+c|0,t=I=(f=(t=s)+(s=(33554431&f)<<7|D>>>25)|0)>>>0>>0?I+1|0:I,c=I=f+33554432|0,I=((67108863&(t=I>>>0<33554432?t+1|0:t))<<6|I>>>26)+F|0,i[A+20>>2]=I,I=-67108864&c,i[A+16>>2]=f-I,s=(t=Q)<<7,I=(I=l<<7|t>>>25)+(t=y>>25)|0,I=(y=s+(c=(33554431&y)<<7|w>>>25)|0)>>>0>>0?I+1|0:I,y=t=y,c=t=t+33554432|0,t=I=t>>>0<33554432?I+1|0:I,I=-67108864&c,i[(f=A)+24>>2]=y-I,y=f,I=E<<5|(f=C)>>>27,l=f<<=5,s=f=f+16777216|0,f=I=f>>>0<16777216?I+1|0:I,I=(l-(-33554432&s)|0)+((67108863&t)<<6|c>>>26)|0,i[y+28>>2]=I,c=(t=a)<<4,t=I=r<<4|t>>>28,I=(I=f>>25)+t|0,I=(f=(w=c)+(c=(33554431&f)<<7|s>>>25)|0)>>>0>>0?I+1|0:I,f=t=f,c=t=t+33554432|0,t=I=t>>>0<33554432?I+1|0:I,I=-67108864&c,i[y+32>>2]=f-I,I=0,f=y=(y=o)<<2&33554428,I=(y=y+16777216|0)>>>0<16777216?I+1|0:I,t=(f-(33554432&y)|0)+((67108863&t)<<6|c>>>26)|0,i[A+36>>2]=t,y=eg((33554431&I)<<7|y>>>25,I>>>25|0,19,0),I=p,I=(t=y+g|0)>>>0>>0?I+1|0:I,(f=t+33554432|0)>>>0<33554432&&(I=I+1|0),I=(h-(-33554432&u)|0)+((67108863&I)<<6|f>>>26)|0,i[A+4>>2]=I,I=A,A=-67108864&f,i[I>>2]=t-A}function P(A,I){var g,B,Q,C,E,n,a,r,o,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,l=0,F=0,G=0,k=0;l=t=i[(e=I)+4>>2],D=t>>31,F=t=i[e+8>>2],B=t>>31,w=t=i[e+12>>2],u=t>>31,G=t=i[e+16>>2],Q=t>>31,h=t=i[e+20>>2],s=t>>31,k=t=i[e+24>>2],C=t>>31,E=t=i[e>>2],n=t>>31,c=t=eg(e=i[e+36>>2],e>>31,121666,0),e=p,g=t=t+16777216|0,t=e=t>>>0<16777216?e+1|0:e,a=c-(-33554432&g)|0,f=eg(e=i[I+32>>2],e>>31,121666,0),r=p,c=eg(I=i[I+28>>2],I>>31,121666,0),e=p,y=f,o=I=c+16777216|0,f=I,I=(I=(e=I>>>0<16777216?e+1|0:e)>>25)+r|0,I=(e=y+(f=(33554431&e)<<7|f>>>25)|0)>>>0>>0?I+1|0:I,f=e,e=I,y=I=f+33554432|0,I=((67108863&(e=I>>>0<33554432?e+1|0:e))<<6|I>>>26)+a|0,i[A+36>>2]=I,I=-67108864&y,i[A+32>>2]=f-I,y=c-(-33554432&o)|0,e=eg(k,C,121666,0),k=p,c=eg(h,s,121666,0),I=p,f=e,h=e=c+16777216|0,s=e,e=(e=(I=e>>>0<16777216?I+1|0:I)>>25)+k|0,e=(I=f+(s=(33554431&I)<<7|s>>>25)|0)>>>0>>0?e+1|0:e,(f=I+33554432|0)>>>0<33554432&&(e=e+1|0),e=y+((67108863&e)<<6|f>>>26)|0,i[A+28>>2]=e,e=-67108864&f,i[A+24>>2]=I-e,h=c-(-33554432&h)|0,I=eg(G,Q,121666,0),G=p,c=eg(w,u,121666,0),e=p,y=I,w=I=c+16777216|0,u=(33554431&(e=I>>>0<16777216?e+1|0:e))<<7|I>>>25,e=(e>>25)+G|0,I=e=(f=y+u|0)>>>0>>0?e+1|0:e,I=((67108863&(I=(e=f+33554432|0)>>>0<33554432?I+1|0:I))<<6|e>>>26)+h|0,i[A+20>>2]=I,I=-67108864&e,i[A+16>>2]=f-I,w=c-(-33554432&w)|0,e=eg(F,B,121666,0),F=p,c=eg(l,D,121666,0),I=p,y=e,l=e=c+16777216|0,D=(33554431&(I=e>>>0<16777216?I+1|0:I))<<7|e>>>25,I=(I>>25)+F|0,e=I=(f=y+D|0)>>>0>>0?I+1|0:I,y=I=f+33554432|0,I=((67108863&(e=I>>>0<33554432?e+1|0:e))<<6|I>>>26)+w|0,i[A+12>>2]=I,I=-67108864&y,i[A+8>>2]=f-I,I=eg((33554431&t)<<7|g>>>25,t>>25,19,0),e=p,y=c-(-33554432&l)|0,t=eg(E,n,121666,0),e=p+e|0,e=(I=t+I|0)>>>0>>0?e+1|0:e,(t=I+33554432|0)>>>0<33554432&&(e=e+1|0),e=y+((67108863&e)<<6|t>>>26)|0,i[A+4>>2]=e,e=A,A=-67108864&t,i[e>>2]=I-A}function R(A,I,g,B){var Q,E=0,a=0;h=Q=h-16|0,E=-31;A:{I:{g:{B:switch(B-1|0){case 1:if(I>>>0<13)break I;B=n[35660]|n[35661]<<8|n[35662]<<16|n[35663]<<24,E=n[35656]|n[35657]<<8|n[35658]<<16|n[35659]<<24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,B=n[35665]|n[35666]<<8|n[35667]<<16|n[35668]<<24,E=n[35661]|n[35662]<<8|n[35663]<<16|n[35664]<<24,C[A+5|0]=E,C[A+6|0]=E>>>8,C[A+7|0]=E>>>16,C[A+8|0]=E>>>24,C[A+9|0]=B,C[A+10|0]=B>>>8,C[A+11|0]=B>>>16,C[A+12|0]=B>>>24,a=-12,B=12;break g;case 0:break B;default:break A}if(I>>>0<12)break I;B=n[35673]|n[35674]<<8|n[35675]<<16|n[35676]<<24,E=n[35669]|n[35670]<<8|n[35671]<<16|n[35672]<<24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,B=n[35677]|n[35678]<<8|n[35679]<<16|n[35680]<<24,C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,a=-11,B=11}if(E=oA(g))break A;if(qA(Q+5|0,19),!((E=I+a|0)>>>0<=(I=YA(Q+5|0))>>>0)&&(A=X(A+B|0,Q+5|0,I+1|0),!((B=E-I|0)>>>0<4)&&(C[0|(A=A+I|0)]=36,C[A+1|0]=109,C[A+2|0]=61,C[A+3|0]=0,qA(Q+5|0,i[g+44>>2]),!((B=B-3|0)>>>0<=(I=YA(Q+5|0))>>>0)&&(A=X(A+3|0,Q+5|0,I+1|0),!((B=B-I|0)>>>0<4)&&(C[0|(A=A+I|0)]=44,C[A+1|0]=116,C[A+2|0]=61,C[A+3|0]=0,qA(Q+5|0,i[g+40>>2]),!((B=B-3|0)>>>0<=(I=YA(Q+5|0))>>>0)&&(A=X(A+3|0,Q+5|0,I+1|0),!((B=B-I|0)>>>0<4)&&(C[0|(A=A+I|0)]=44,C[A+1|0]=112,C[A+2|0]=61,C[A+3|0]=0,qA(Q+5|0,i[g+48>>2]),!((B=B-3|0)>>>0<=(I=YA(Q+5|0))>>>0)&&(A=X(A+3|0,Q+5|0,I+1|0),!((B=B-I|0)>>>0<2)&&(C[0|(A=A+I|0)]=36,C[A+1|0]=0,O(A=A+1|0,I=B-1|0,i[g+16>>2],i[g+20>>2],3)))))))))){if(E=-31,(B=(B=I)-(I=YA(A))|0)>>>0<2)break A;return C[0|(A=A+I|0)]=36,C[A+1|0]=0,A=O(A+1|0,B-1|0,i[g>>2],i[g+4>>2],3),h=Q+16|0,A?0:-31}}E=-31}return h=Q+16|0,E}function J(A,I,g,B){var Q,E=0;Q=E=h,h=E=E-576&-64,i[E+188>>2]=0,xI(E+188|0,I);A:if(I>>>0<=64){if((0|iI(E+192|0,0,0,I))<0)break A;if((0|hg(E+192|0,E+188|0,4,0))<0)break A;if((0|hg(E+192|0,g,B,0))<0)break A;dI(E+192|0,A,I)}else if(!((0|iI(E+192|0,0,0,64))<0||(0|hg(E+192|0,E+188|0,4,0))<0||(0|hg(E+192|0,g,B,0))<0||(0|dI(E+192|0,E+112|0,64))<0)){if(g=i[E+116>>2],B=i[E+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[E+124>>2],B=i[E+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[E+140>>2],B=i[E+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[E+132>>2],B=i[E+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(X(E+48|0,E+112|0,64),(0|GI(E+112|0,64,E+48|0,64,0,0,0))<0)break A;if(g=i[E+116>>2],B=i[E+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[E+124>>2],B=i[E+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[E+140>>2],B=i[E+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[E+132>>2],B=i[E+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}X(E+48|0,E+112|0,64),(0|GI(E+112|0,I,E+48|0,64,0,0,0))<0||X(A,E+112|0,I)}fI(E+192|0,384),h=Q}function x(A,I,g){var B=0,Q=0,C=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0;for(C=2036477234,e=857760878,t=1634760805,E=1797285236,o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,B=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,Q=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,a=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,c=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,y=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,w=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,h=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,f=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,I=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24;r=o,t=Hg((s=g)^(g=o+t|0),16),r=c=Hg(r^(o=t+c|0),12),c=Hg((s=t)^(t=g+c|0),8),o=Hg(r^(D=c+o|0),7),r=B,e=Hg((g=B+e|0)^f,16),r=f=Hg(r^(B=e+y|0),12),f=Hg((s=e)^(e=g+f|0),8),g=Hg(r^(y=f+B|0),7),r=Q,B=Hg((C=C+Q|0)^i,16),r=i=Hg(r^(Q=B+w|0),12),s=Hg(B^(i=C+i|0),8),C=Hg(r^(B=s+Q|0),7),E=Hg((Q=I)^(I=E+a|0),16),a=Hg((Q=E+h|0)^a,12),I=Hg(E^(u=I+a|0),8),E=Hg(a^(Q=I+Q|0),7),r=B,B=Hg((B=I)^(I=g+t|0),16),g=Hg((a=r+B|0)^g,12),I=Hg(B^(t=I+g|0),8),B=Hg(g^(w=a+I|0),7),r=Q,Q=Hg((g=C+e|0)^c,16),C=Hg((a=r+Q|0)^C,12),g=Hg(Q^(e=g+C|0),8),Q=Hg(C^(h=a+g|0),7),a=Hg((C=E+i|0)^f,16),E=Hg((i=a+D|0)^E,12),f=Hg(a^(C=C+E|0),8),a=Hg(E^(c=i+f|0),7),i=Hg((E=o+u|0)^s,16),o=Hg((y=i+y|0)^o,12),i=Hg(i^(E=E+o|0),8),o=Hg(o^(y=y+i|0),7),10!=(0|(p=p+1|0)););xI(A,t),xI(A+4|0,e),xI(A+8|0,C),xI(A+12|0,E),xI(A+16|0,g),xI(A+20|0,f),xI(A+24|0,i),xI(A+28|0,I)}function L(A){var I,g=0,B=0;h=I=h-48|0,g=n[28+(A|=0)|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,i[I+24>>2]=n[A+24|0]|n[A+25|0]<<8|n[A+26|0]<<16|n[A+27|0]<<24,i[I+28>>2]=g,g=n[A+20|0]|n[A+21|0]<<8|n[A+22|0]<<16|n[A+23|0]<<24,i[I+16>>2]=n[A+16|0]|n[A+17|0]<<8|n[A+18|0]<<16|n[A+19|0]<<24,i[I+20>>2]=g,g=n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24,i[I>>2]=n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,i[I+4>>2]=g,g=n[A+12|0]|n[A+13|0]<<8|n[A+14|0]<<16|n[A+15|0]<<24,i[I+8>>2]=n[A+8|0]|n[A+9|0]<<8|n[A+10|0]<<16|n[A+11|0]<<24,i[I+12>>2]=g,g=n[A+40|0]|n[A+41|0]<<8|n[A+42|0]<<16|n[A+43|0]<<24,i[I+32>>2]=n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24,i[I+36>>2]=g,Vg[i[8957]](I,I,40,0,A+32|0,0,A),g=i[I+28>>2],B=i[I+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[I+36>>2],B=i[I+32>>2],C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,C[A+40|0]=g,C[A+41|0]=g>>>8,C[A+42|0]=g>>>16,C[A+43|0]=g>>>24,XI(A),h=I+48|0}function K(A,I,g){var B=0,Q=0,C=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0,l=0,F=0;for(Q=2036477234,C=857760878,E=1634760805,i=1797285236,w=20,o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,s=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,h=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,c=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,e=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,a=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,t=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,f=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,r=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,B=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,I=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24;D=B,B=Hg(E+a|0,7)^c,y=D^Hg(B+E|0,9),u=Hg(B+y|0,13)^a,c=Hg(y+u|0,18),I=Hg(C+o|0,7)^I,t=Hg(I+C|0,9)^t,o=Hg(I+t|0,13)^o,l=Hg(t+o|0,18),f=Hg(g+Q|0,7)^f,a=Hg(f+Q|0,9)^s,p=Hg(a+f|0,13)^g,F=Hg(a+p|0,18),g=Hg(i+e|0,7)^h,r=Hg(g+i|0,9)^r,e=Hg(g+r|0,13)^e,D=Hg(r+e|0,18),o=Hg((E^=c)+g|0,7)^o,s=Hg(o+E|0,9)^a,h=Hg(o+s|0,13)^g,E=Hg(s+h|0,18)^E,g=Hg((C^=l)+B|0,7)^p,r=Hg(g+C|0,9)^r,c=Hg(g+r|0,13)^B,C=Hg(r+c|0,18)^C,e=Hg((Q^=F)+I|0,7)^e,B=Hg(e+Q|0,9)^y,I=Hg(B+e|0,13)^I,Q=Hg(I+B|0,18)^Q,a=Hg((i^=D)+f|0,7)^u,t=Hg(a+i|0,9)^t,f=Hg(a+t|0,13)^f,i=Hg(t+f|0,18)^i,y=w>>>0>2,w=w-2|0,y;);return xI(A,E),xI(A+4|0,C),xI(A+8|0,Q),xI(A+12|0,i),xI(A+16|0,g),xI(A+20|0,r),xI(A+24|0,B),xI(A+28|0,I),0}function q(A,I,g,B,Q,E,a){var r,o,e,t,f,c,y,s=0;return h=r=h-560|0,ig(r+352|0,a),mI(r+288|0,E,32,0),V(r+352|0,r+320|0,32,0),V(r+352|0,g,B,Q),UI(r+352|0,r+224|0),o=n[(s=E)+32|0]|n[s+33|0]<<8|n[s+34|0]<<16|n[s+35|0]<<24,e=n[s+36|0]|n[s+37|0]<<8|n[s+38|0]<<16|n[s+39|0]<<24,t=n[s+40|0]|n[s+41|0]<<8|n[s+42|0]<<16|n[s+43|0]<<24,f=n[s+44|0]|n[s+45|0]<<8|n[s+46|0]<<16|n[s+47|0]<<24,c=n[s+48|0]|n[s+49|0]<<8|n[s+50|0]<<16|n[s+51|0]<<24,E=n[s+52|0]|n[s+53|0]<<8|n[s+54|0]<<16|n[s+55|0]<<24,y=n[s+60|0]|n[s+61|0]<<8|n[s+62|0]<<16|n[s+63|0]<<24,s=n[s+56|0]|n[s+57|0]<<8|n[s+58|0]<<16|n[s+59|0]<<24,C[A+56|0]=s,C[A+57|0]=s>>>8,C[A+58|0]=s>>>16,C[A+59|0]=s>>>24,C[A+60|0]=y,C[A+61|0]=y>>>8,C[A+62|0]=y>>>16,C[A+63|0]=y>>>24,C[A+48|0]=c,C[A+49|0]=c>>>8,C[A+50|0]=c>>>16,C[A+51|0]=c>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=t,C[A+41|0]=t>>>8,C[A+42|0]=t>>>16,C[A+43|0]=t>>>24,C[A+44|0]=f,C[A+45|0]=f>>>8,C[A+46|0]=f>>>16,C[A+47|0]=f>>>24,C[0|(E=A+32|0)]=o,C[E+1|0]=o>>>8,C[E+2|0]=o>>>16,C[E+3|0]=o>>>24,C[E+4|0]=e,C[E+5|0]=e>>>8,C[E+6|0]=e>>>16,C[E+7|0]=e>>>24,G(r+224|0),CA(r,r+224|0),nI(A,r),ig(r+352|0,a),V(r+352|0,A,64,0),V(r+352|0,g,B,Q),UI(r+352|0,r+160|0),G(r+160|0),C[r+288|0]=248&n[r+288|0],C[r+319|0]=63&n[r+319|0]|64,function(A,I,g,B){var Q,E,i,a,r,o,e,t,f,c,y,s,w,h,D,u,l,F,G,k,_,H,Y,b,m,v,U,S,N,M,d,P,R,J,x,L,K,q,X,V,W,T,j,Z,O,z,$,AA,IA=0,gA=0,BA=0,QA=0,CA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,eA=0,tA=0,fA=0,cA=0,yA=0,sA=0,wA=0,hA=0,DA=0,uA=0,pA=0,lA=0,FA=0,GA=0,kA=0,_A=0,HA=0,YA=0,bA=0,mA=0,vA=0,UA=0,SA=0,NA=0,MA=0,dA=0,PA=0,RA=0,JA=0,xA=0,LA=0,KA=0,qA=0,XA=0,VA=0,WA=0,TA=0,jA=0,ZA=0,OA=0;RA=HI(I),sA=n[I+2|0]|n[I+3|0]<<8|n[I+4|0]<<16|n[I+5|0]<<24,WA=HI(I+5|0),YA=p,wA=n[I+7|0]|n[I+8|0]<<8|n[I+9|0]<<16|n[I+10|0]<<24,hA=n[I+10|0]|n[I+11|0]<<8|n[I+12|0]<<16|n[I+13|0]<<24,mA=HI(I+13|0),oA=p,tA=n[I+15|0]|n[I+16|0]<<8|n[I+17|0]<<16|n[I+18|0]<<24,KA=HI(I+18|0),fA=p,bA=HI(I+21|0),iA=n[I+23|0]|n[I+24|0]<<8|n[I+25|0]<<16|n[I+26|0]<<24,aA=HI(I+26|0),QA=p,BA=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,NA=HI(g),pA=n[(I=g)+2|0]|n[I+3|0]<<8|n[I+4|0]<<16|n[I+5|0]<<24,XA=HI(I+5|0),rA=p,cA=n[I+7|0]|n[I+8|0]<<8|n[I+9|0]<<16|n[I+10|0]<<24,yA=n[I+10|0]|n[I+11|0]<<8|n[I+12|0]<<16|n[I+13|0]<<24,VA=HI(I+13|0),eA=p,CA=n[I+15|0]|n[I+16|0]<<8|n[I+17|0]<<16|n[I+18|0]<<24,qA=HI(I+18|0),gA=p,JA=HI(I+21|0),IA=n[I+23|0]|n[I+24|0]<<8|n[I+25|0]<<16|n[I+26|0]<<24,nA=HI(I+26|0),g=p,I=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,Z=HI(B),O=n[B+2|0]|n[B+3|0]<<8|n[B+4|0]<<16|n[B+5|0]<<24,z=HI(B+5|0),$=p,MA=n[B+7|0]|n[B+8|0]<<8|n[B+9|0]<<16|n[B+10|0]<<24,xA=n[B+10|0]|n[B+11|0]<<8|n[B+12|0]<<16|n[B+13|0]<<24,LA=HI(B+13|0),SA=p,vA=n[B+15|0]|n[B+16|0]<<8|n[B+17|0]<<16|n[B+18|0]<<24,TA=HI(B+18|0),_A=p,FA=HI(B+21|0),I=eg(Q=I>>>7|0,0,E=2097151&((3&QA)<<30|aA>>>2),0),EA=p,QA=I,I=eg(i=2097151&((3&g)<<30|nA>>>2),0,a=BA>>>7|0,0),g=p+EA|0,EA=BA=QA+I|0,BA=I>>>0>BA>>>0?g+1|0:g,I=eg(E,0,i,0),QA=p,IA=(g=eg(r=IA>>>5&2097151,0,a,0))+I|0,I=p+QA|0,g=I=g>>>0>IA>>>0?I+1|0:I,I=eg(Q,0,o=iA>>>5&2097151,0),g=p+g|0,iA=IA=I+IA|0,lA=g=I>>>0>IA>>>0?g+1|0:g,DA=(I=IA)- -1048576|0,uA=g=g-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+BA|0,aA=I=(g=(2097151&g)<<11|DA>>>21)>>>0>(BA=QA=g+EA|0)>>>0?I+1|0:I,GA=(I=BA)- -1048576|0,nA=EA=aA-((I>>>0<4293918720)-1|0)|0,QA=eg(Q,0,a,0),g=HA=(PA=p)-(((I=QA)>>>0<4293918720)-1|0)|0,IA=EA>>21,HA=(2097151&EA)<<11|GA>>>21,QA=I-(EA=-2097152&(dA=I- -1048576|0))|0,I=(PA-((I>>>0>>0)+g|0)|0)+IA|0,P=I=QA>>>0>(v=HA+QA|0)>>>0?I+1|0:I,EA=eg(v,I,-683901,-1),QA=p,R=I=g>>21,I=eg(S=(2097151&g)<<11|dA>>>21,I,136657,0),IA=p+QA|0,HA=g=I+EA|0,EA=I>>>0>g>>>0?IA+1|0:IA,I=eg(e=2097151&((1&eA)<<31|VA>>>1),0,E,0),g=p,IA=I,I=eg(t=yA>>>4&2097151,0,a,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,I=eg(f=CA>>>6&2097151,0,o,0),g=p+g|0,g=I>>>0>(IA=I+IA|0)>>>0?g+1|0:g,m=I=0,QA=IA,IA=eg(c=2097151&JA,I,y=2097151&((7&fA)<<29|KA>>>3),0),I=p+g|0,I=IA>>>0>(QA=QA+IA|0)>>>0?I+1|0:I,IA=eg(s=2097151&((7&gA)<<29|qA>>>3),0,w=2097151&bA,0),g=p+I|0,g=IA>>>0>(QA=IA+QA|0)>>>0?g+1|0:g,I=eg(r,0,h=tA>>>6&2097151,0),IA=p+g|0,IA=I>>>0>(QA=I+QA|0)>>>0?IA+1|0:IA,g=eg(i,0,D=2097151&((1&oA)<<31|mA>>>1),0),I=p+IA|0,g=g>>>0>(IA=QA=g+QA|0)>>>0?I+1|0:I,I=eg(Q,0,u=hA>>>4&2097151,0),g=p+g|0,fA=IA=I+IA|0,QA=I>>>0>IA>>>0?g+1|0:g,I=eg(E,0,t,0),g=p,gA=(IA=I)+(I=eg(l=cA>>>7&2097151,0,a,0))|0,IA=p+g|0,IA=I>>>0>gA>>>0?IA+1|0:IA,g=eg(o,0,e,0),I=p+IA|0,I=g>>>0>(gA=g+gA|0)>>>0?I+1|0:I,IA=eg(f,0,w,0),g=p+I|0,g=IA>>>0>(gA=IA+gA|0)>>>0?g+1|0:g,I=eg(c,m,h,0),g=p+g|0,g=I>>>0>(IA=I+gA|0)>>>0?g+1|0:g,gA=(I=IA)+(IA=eg(y,0,s,0))|0,I=p+g|0,I=IA>>>0>gA>>>0?I+1|0:I,g=eg(r,0,D,0),IA=p+I|0,IA=g>>>0>(gA=g+gA|0)>>>0?IA+1|0:IA,g=eg(i,0,u,0),I=p+IA|0,g=g>>>0>(IA=gA=g+gA|0)>>>0?I+1|0:I,I=eg(Q,0,F=wA>>>7&2097151,0),g=p+g|0,yA=IA=I+IA|0,CA=g=I>>>0>IA>>>0?g+1|0:g,eA=(I=IA)- -1048576|0,gA=g=g-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+QA|0,g=I=(g=(2097151&g)<<11|eA>>>21)>>>0>(cA=g+fA|0)>>>0?I+1|0:I,I=I+EA|0,I=(IA=QA=cA)>>>0>(cA=IA+HA|0)>>>0?I+1|0:I,EA=(EA=g)-(((g=QA)>>>0<4293918720)-1|0)|0,oA=g- -1048576|0,tA=(g=IA=cA)-(IA=-2097152&oA)|0,fA=I-((QA=EA)+(g>>>0>>0)|0)|0,N=BA-(I=-2097152&GA)|0,J=g=aA-((I>>>0>BA>>>0)+nA|0)|0,I=eg(S,R,-997805,-1),IA=p+CA|0,IA=I>>>0>(BA=I+yA|0)>>>0?IA+1|0:IA,CA=(I=BA)+(BA=eg(v,P,136657,0))|0,I=p+IA|0,g=eg(N,g,-683901,-1),I=p+(BA>>>0>CA>>>0?I+1|0:I)|0,I=g>>>0>(IA=g+CA|0)>>>0?I+1|0:I,EA=IA-(g=-2097152&eA)|0,CA=I-((g>>>0>IA>>>0)+gA|0)|0,I=eg(E,0,l,0),IA=p,BA=(g=eg(G=2097151&((3&rA)<<30|XA>>>2),0,a,0))+I|0,I=p+IA|0,I=g>>>0>BA>>>0?I+1|0:I,IA=eg(o,0,t,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,I=eg(e,0,w,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,g=eg(f,0,y,0),I=p+IA|0,I=g>>>0>(BA=g+BA|0)>>>0?I+1|0:I,IA=eg(c,m,D,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,IA=eg(s,0,h,0),I=p+g|0,I=IA>>>0>(BA=IA+BA|0)>>>0?I+1|0:I,IA=eg(r,0,u,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,I=eg(i,0,F,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,g=eg(Q,0,k=2097151&((3&YA)<<30|WA>>>2),0),I=p+IA|0,BA=g>>>0>(gA=BA=g+BA|0)>>>0?I+1|0:I,I=eg(E,0,G,0),g=p,IA=I,I=eg(_=pA>>>5&2097151,0,a,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,nA=(I=eg(o,0,l,0))+IA|0,IA=p+g|0,IA=I>>>0>nA>>>0?IA+1|0:IA,g=eg(t,0,w,0),I=p+IA|0,I=g>>>0>(nA=g+nA|0)>>>0?I+1|0:I,g=eg(e,0,y,0),I=p+I|0,I=g>>>0>(IA=g+nA|0)>>>0?I+1|0:I,nA=(g=IA)+(IA=eg(f,0,h,0))|0,g=p+I|0,g=IA>>>0>nA>>>0?g+1|0:g,I=eg(c,m,u,0),g=p+g|0,g=I>>>0>(IA=I+nA|0)>>>0?g+1|0:g,nA=(I=eg(s,0,D,0))+IA|0,IA=p+g|0,IA=I>>>0>nA>>>0?IA+1|0:IA,g=eg(r,0,F,0),I=p+IA|0,I=g>>>0>(nA=g+nA|0)>>>0?I+1|0:I,g=eg(i,0,k,0),I=p+I|0,g=I=g>>>0>(IA=g+nA|0)>>>0?I+1|0:I,I=eg(Q,0,H=sA>>>5&2097151,0),g=p+g|0,cA=IA=I+IA|0,XA=g=I>>>0>IA>>>0?g+1|0:g,AA=(I=IA)- -1048576|0,VA=IA=g-((I>>>0<4293918720)-1|0)|0,I=(I=IA>>21)+BA|0,yA=IA=(g=(2097151&IA)<<11|AA>>>21)+gA|0,qA=I=g>>>0>IA>>>0?I+1|0:I,WA=(I=IA)- -1048576|0,JA=IA=qA-((I>>>0<4293918720)-1|0)|0,g=(I=IA>>21)+CA|0,eA=BA=(IA=(2097151&IA)<<11|WA>>>21)+EA|0,PA=g=IA>>>0>BA>>>0?g+1|0:g,mA=(I=BA)- -1048576|0,HA=IA=g-((I>>>0<4293918720)-1|0)|0,I=(I=IA>>21)+fA|0,CA=IA=(g=(2097151&IA)<<11|mA>>>21)+tA|0,sA=IA=(GA=I=g>>>0>IA>>>0?I+1|0:I)-(((I=IA)>>>0<4293918720)-1|0)|0,aA=(2097151&IA)<<11|(bA=I- -1048576|0)>>>21,gA=IA>>21,I=eg(E,0,f,0),g=p,IA=I,I=eg(a,0,e,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,I=eg(c,m,w,0),g=p+g|0,g=I>>>0>(IA=I+IA|0)>>>0?g+1|0:g,BA=(I=IA)+(IA=eg(o,0,s,0))|0,I=p+g|0,I=IA>>>0>BA>>>0?I+1|0:I,g=eg(r,0,y,0),IA=p+I|0,IA=g>>>0>(BA=g+BA|0)>>>0?IA+1|0:IA,g=eg(i,0,h,0),I=p+IA|0,I=g>>>0>(BA=g+BA|0)>>>0?I+1|0:I,IA=eg(Q,0,D,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,IA=eg(S,R,-683901,-1),g=(I=g)+p|0,g=IA>>>0>(EA=BA+IA|0)>>>0?g+1|0:g,IA=EA,EA=(EA=I)-(((I=BA)>>>0<4293918720)-1|0)|0,pA=I- -1048576|0,nA=(I=IA)-(IA=-2097152&pA)|0,IA=g-((BA=EA)+(I>>>0>>0)|0)|0,I=(I=QA>>21)+IA|0,I=(g=(2097151&QA)<<11|oA>>>21)>>>0>(QA=g+nA|0)>>>0?I+1|0:I,EA=(g=QA)-(IA=-2097152&(rA=g- -1048576|0))|0,IA=(I-((g>>>0>>0)+(QA=nA=I-((g>>>0<4293918720)-1|0)|0)|0)|0)+gA|0,x=aA=EA+aA|0,L=IA=EA>>>0>aA>>>0?IA+1|0:IA,nA=eg(aA,IA,-683901,-1),EA=p,g=eg(o,0,c,m),I=p,IA=g,g=eg(a,0,f,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,gA=(g=IA)+(IA=eg(E,0,s,0))|0,g=p+I|0,g=IA>>>0>gA>>>0?g+1|0:g,IA=eg(r,0,w,0),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,IA=eg(i,0,y,0),g=p+I|0,g=IA>>>0>(gA=IA+gA|0)>>>0?g+1|0:g,I=eg(Q,0,h,0),IA=p+g|0,IA=I>>>0>(gA=I+gA|0)>>>0?IA+1|0:IA,I=(I=BA>>21)+IA|0,wA=gA=(I=(g=(2097151&BA)<<11|pA>>>21)>>>0>(BA=g+gA|0)>>>0?I+1|0:I)-(((g=BA)>>>0<4293918720)-1|0)|0,BA=g-(IA=-2097152&(UA=g- -1048576|0))|0,IA=(I-((g>>>0>>0)+gA|0)|0)+(QA>>21)|0,K=BA=(I=(2097151&QA)<<11|rA>>>21)+BA|0,q=IA=I>>>0>BA>>>0?IA+1|0:IA,g=eg(BA,IA,136657,0),I=p+EA|0,KA=IA=g+nA|0,hA=g>>>0>IA>>>0?I+1|0:I,g=eg(w,0,_,0),I=p,IA=g,g=eg(Y=2097151&NA,0,o,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,BA=(g=IA)+(IA=eg(y,0,G,0))|0,g=p+I|0,g=IA>>>0>BA>>>0?g+1|0:g,I=eg(h,0,l,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,g=eg(t,0,D,0),I=p+IA|0,I=g>>>0>(BA=g+BA|0)>>>0?I+1|0:I,IA=eg(e,0,u,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,IA=eg(f,0,F,0),I=p+g|0,I=IA>>>0>(BA=IA+BA|0)>>>0?I+1|0:I,IA=eg(c,m,H,0),g=p+I|0,g=IA>>>0>(BA=IA+BA|0)>>>0?g+1|0:g,I=eg(s,0,k,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,g=eg(r,0,b=2097151&RA,0),I=p+IA|0,I=g>>>0>(BA=g+BA|0)>>>0?I+1|0:I,QA=BA=(IA=(n[B+23|0]|n[B+24|0]<<8|n[B+25|0]<<16|n[B+26|0]<<24)>>>5&2097151)+BA|0,BA=IA>>>0>BA>>>0?I+1|0:I,I=eg(y,0,_,0),g=p,IA=I,I=eg(w,0,Y,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,gA=(I=eg(h,0,G,0))+IA|0,IA=p+g|0,IA=I>>>0>gA>>>0?IA+1|0:IA,g=eg(D,0,l,0),I=p+IA|0,I=g>>>0>(gA=g+gA|0)>>>0?I+1|0:I,g=eg(t,0,u,0),I=p+I|0,I=g>>>0>(IA=g+gA|0)>>>0?I+1|0:I,gA=(g=IA)+(IA=eg(e,0,F,0))|0,g=p+I|0,g=IA>>>0>gA>>>0?g+1|0:g,I=eg(f,0,k,0),g=p+g|0,g=I>>>0>(IA=I+gA|0)>>>0?g+1|0:g,gA=(I=eg(c,m,b,0))+IA|0,IA=p+g|0,IA=I>>>0>gA>>>0?IA+1|0:IA,g=eg(s,0,H,0),I=p+IA|0,I=g>>>0>(gA=g+gA|0)>>>0?I+1|0:I,gA=IA=(g=2097151&FA)+gA|0,tA=IA=(oA=I=g>>>0>IA>>>0?I+1|0:I)-(((I=IA)>>>0<4293918720)-1|0)|0,I=(2097151&IA)<<11|(YA=I- -1048576|0)>>>21,IA=(IA>>>21|0)+BA|0,rA=IA=I>>>0>(QA=I+QA|0)>>>0?IA+1|0:IA,NA=iA-(I=-2097152&DA)|0,FA=lA-((I>>>0>iA>>>0)+uA|0)|0,g=eg(E,0,r,0),I=p,IA=g,g=eg(a,0,c,m),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,BA=(g=IA)+(IA=eg(i,0,o,0))|0,g=p+I|0,g=IA>>>0>BA>>>0?g+1|0:g,I=eg(Q,0,w,0),IA=p+g|0,IA=I>>>0>(BA=I+BA|0)>>>0?IA+1|0:IA,EA=BA,I=eg(a,0,s,0),g=p,BA=I,I=eg(E,0,c,m),g=p+g|0,g=I>>>0>(BA=BA+I|0)>>>0?g+1|0:g,iA=(I=BA)+(BA=eg(o,0,r,0))|0,I=p+g|0,I=BA>>>0>iA>>>0?I+1|0:I,g=eg(i,0,w,0),I=p+I|0,I=g>>>0>(BA=g+iA|0)>>>0?I+1|0:I,iA=(g=BA)+(BA=eg(Q,0,y,0))|0,g=p+I|0,aA=g=BA>>>0>iA>>>0?g+1|0:g,lA=(I=BA=iA)- -1048576|0,nA=iA=g-((I>>>0<4293918720)-1|0)|0,g=(I=iA>>21)+IA|0,EA=g=(IA=EA=(iA=(2097151&iA)<<11|lA>>>21)+EA|0)>>>0>>0?g+1|0:g,uA=(I=IA)- -1048576|0,g=(I=(iA=DA=g-((I>>>0<4293918720)-1|0)|0)>>21)+FA|0,X=g=(DA=(2097151&iA)<<11|uA>>>21)>>>0>(U=NA=DA+NA|0)>>>0?g+1|0:g,FA=eg(U,g,470296,0),DA=p,M=IA-(g=-2097152&uA)|0,dA=I=EA-((g>>>0>IA>>>0)+iA|0)|0,g=eg(N,J,666643,0),IA=p+DA|0,IA=g>>>0>(iA=g+FA|0)>>>0?IA+1|0:IA,g=eg(M,I,654183,0),I=p+IA|0,g=g>>>0>(EA=iA=g+iA|0)>>>0?I+1|0:I,I=BA-(IA=-2097152&lA)|0,IA=(wA>>21)+(iA=aA-((IA>>>0>BA>>>0)+nA|0)|0)|0,V=nA=(BA=(2097151&wA)<<11|UA>>>21)+I|0,RA=IA=BA>>>0>nA>>>0?IA+1|0:IA,jA=QA- -1048576|0,BA=iA=rA-((QA>>>0<4293918720)-1|0)|0,I=eg(nA,IA,-997805,-1),g=p+g|0,I=(g=I>>>0>(IA=I+EA|0)>>>0?g+1|0:g)+rA|0,I=IA>>>0>(QA=IA+QA|0)>>>0?I+1|0:I,FA=(IA=QA)-(g=-2097152&jA)|0,DA=I-((g>>>0>IA>>>0)+BA|0)|0,I=eg(M,dA,470296,0),g=p,QA=(IA=I)+(I=eg(U,X,666643,0))|0,IA=p+g|0,IA=I>>>0>QA>>>0?IA+1|0:IA,g=eg(nA,RA,654183,0),I=p+IA|0,g=oA+(g>>>0>(QA=g+QA|0)>>>0?I+1|0:I)|0,rA=(IA=gA+QA|0)-(I=-2097152&YA)|0,iA=(g=IA>>>0>>0?g+1|0:g)-((I>>>0>IA>>>0)+tA|0)|0,g=eg(h,0,_,0),I=p,IA=g,g=eg(y,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,g=eg(D,0,G,0),I=p+I|0,I=g>>>0>(IA=g+IA|0)>>>0?I+1|0:I,QA=(g=IA)+(IA=eg(u,0,l,0))|0,g=p+I|0,g=IA>>>0>QA>>>0?g+1|0:g,I=eg(t,0,F,0),IA=p+g|0,IA=I>>>0>(QA=I+QA|0)>>>0?IA+1|0:IA,I=eg(e,0,k,0),g=p+IA|0,g=I>>>0>(QA=I+QA|0)>>>0?g+1|0:g,IA=eg(f,0,H,0),I=p+g|0,I=IA>>>0>(QA=IA+QA|0)>>>0?I+1|0:I,g=eg(s,0,b,0),I=p+I|0,I=g>>>0>(IA=g+QA|0)>>>0?I+1|0:I,g=IA,QA=(IA=2097151&((7&_A)<<29|TA>>>3))>>>0>(gA=QA=g+IA|0)>>>0?I+1|0:I,I=eg(D,0,_,0),g=p,EA=(IA=I)+(I=eg(h,0,Y,0))|0,IA=p+g|0,IA=I>>>0>EA>>>0?IA+1|0:IA,g=eg(u,0,G,0),I=p+IA|0,I=g>>>0>(EA=g+EA|0)>>>0?I+1|0:I,IA=eg(F,0,l,0),g=p+I|0,g=IA>>>0>(EA=IA+EA|0)>>>0?g+1|0:g,IA=eg(t,0,k,0),I=p+g|0,I=IA>>>0>(EA=IA+EA|0)>>>0?I+1|0:I,IA=eg(e,0,H,0),g=p+I|0,g=IA>>>0>(EA=IA+EA|0)>>>0?g+1|0:g,I=eg(f,0,b,0),IA=p+g|0,I=I>>>0>(g=EA=I+EA|0)>>>0?IA+1|0:IA,lA=IA=EA+(g=vA>>>6&2097151)|0,fA=IA=(aA=I=g>>>0>IA>>>0?I+1|0:I)-(((I=IA)>>>0<4293918720)-1|0)|0,I=(2097151&IA)<<11|(uA=I- -1048576|0)>>>21,IA=(IA>>>21|0)+QA|0,nA=IA=I>>>0>(gA=I+gA|0)>>>0?IA+1|0:IA,wA=(I=gA)- -1048576|0,EA=IA=IA-((I>>>0<4293918720)-1|0)|0,I=(g=IA>>>21|0)+iA|0,oA=QA=(IA=(2097151&IA)<<11|wA>>>21)+rA|0,pA=IA=(iA=I=IA>>>0>QA>>>0?I+1|0:I)-(((I=QA)>>>0<4293918720)-1|0)|0,I=(2097151&IA)<<11|(tA=I- -1048576|0)>>>21,IA=(IA>>21)+DA|0,I=(g=IA=I>>>0>(QA=I+FA|0)>>>0?IA+1|0:IA)+hA|0,rA=(rA=g)-(((g=QA)>>>0<4293918720)-1|0)|0,ZA=g- -1048576|0,OA=(g=IA=_A=QA+KA|0)-(IA=-2097152&ZA)|0,kA=(I=QA>>>0>_A>>>0?I+1|0:I)-((QA=rA)+(g>>>0>>0)|0)|0,I=eg(K,q,-997805,-1),g=p+iA|0,UA=IA=I+oA|0,rA=I>>>0>IA>>>0?g+1|0:g,g=eg(V,RA,470296,0),I=p,IA=g,g=eg(M,dA,666643,0),I=p+I|0,I=(I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I)+nA|0,I=(g=IA+gA|0)>>>0>>0?I+1|0:I,wA=(IA=g)-(g=-2097152&wA)|0,hA=I-((g>>>0>IA>>>0)+EA|0)|0,I=eg(V,RA,666643,0),g=p+aA|0,oA=IA=I+lA|0,iA=I>>>0>IA>>>0?g+1|0:g,g=eg(u,0,_,0),I=p,IA=g,g=eg(D,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,g=eg(F,0,G,0),I=p+I|0,I=g>>>0>(IA=g+IA|0)>>>0?I+1|0:I,gA=(g=IA)+(IA=eg(k,0,l,0))|0,g=p+I|0,g=IA>>>0>gA>>>0?g+1|0:g,I=eg(t,0,H,0),IA=p+g|0,IA=I>>>0>(gA=I+gA|0)>>>0?IA+1|0:IA,I=eg(e,0,b,0),g=p+IA|0,I=g=I>>>0>(gA=I+gA|0)>>>0?g+1|0:g,EA=gA=(IA=2097151&((1&SA)<<31|LA>>>1))+gA|0,gA=IA>>>0>gA>>>0?I+1|0:I,g=eg(F,0,_,0),I=p,IA=g,g=eg(u,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,nA=(g=IA)+(IA=eg(k,0,G,0))|0,g=p+I|0,g=IA>>>0>nA>>>0?g+1|0:g,I=eg(H,0,l,0),g=p+g|0,g=I>>>0>(IA=I+nA|0)>>>0?g+1|0:g,nA=(I=eg(t,0,b,0))+IA|0,IA=p+g|0,I=I>>>0>(g=nA)>>>0?IA+1|0:IA,aA=IA=nA+(g=xA>>>4&2097151)|0,xA=IA=(YA=I=g>>>0>IA>>>0?I+1|0:I)-(((I=IA)>>>0<4293918720)-1|0)|0,I=(2097151&IA)<<11|(TA=I- -1048576|0)>>>21,IA=(IA>>>21|0)+gA|0,nA=EA=I+EA|0,SA=IA=I>>>0>EA>>>0?IA+1|0:IA,KA=(I=EA)- -1048576|0,vA=IA=IA-((I>>>0<4293918720)-1|0)|0,I=(g=IA>>>21|0)+iA|0,lA=IA=(_A=(IA=(IA=(2097151&IA)<<11|KA>>>21)>>>0>(g=gA=IA+oA|0)>>>0?I+1|0:I)-(((I=-2097152&uA)>>>0>g>>>0)+fA|0)|0)-(((I=EA=g-I|0)>>>0<4293918720)-1|0)|0,g=(g=IA>>21)+hA|0,FA=IA=(I=(2097151&IA)<<11|(NA=I- -1048576|0)>>>21)+wA|0,uA=g=I>>>0>IA>>>0?g+1|0:g,DA=(I=IA)- -1048576|0,wA=gA=g-((I>>>0<4293918720)-1|0)|0,d=CA-(I=-2097152&bA)|0,LA=IA=GA-((I>>>0>CA>>>0)+sA|0)|0,I=(g=gA>>21)+rA|0,I=(gA=(2097151&gA)<<11|DA>>>21)>>>0>(CA=gA+UA|0)>>>0?I+1|0:I,iA=(gA=eg(x,L,136657,0))+(CA-(g=-2097152&tA)|0)|0,g=p+(I-((g>>>0>CA>>>0)+pA|0)|0)|0,g=gA>>>0>iA>>>0?g+1|0:g,IA=eg(d,IA,-683901,-1),I=p+g|0,iA=gA=IA+iA|0,oA=IA=(hA=I=IA>>>0>gA>>>0?I+1|0:I)-(((I=gA)>>>0<4293918720)-1|0)|0,g=(g=IA>>21)+kA|0,CA=IA=(I=(2097151&IA)<<11|(bA=I- -1048576|0)>>>21)+OA|0,tA=g=I>>>0>IA>>>0?g+1|0:g,fA=IA=g-(((I=IA)>>>0<4293918720)-1|0)|0,UA=(2097151&IA)<<11|(GA=I- -1048576|0)>>>21,pA=IA>>21,g=eg(o,0,_,0),I=p,IA=g,g=eg(E,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,gA=(g=eg(w,0,G,0))+IA|0,IA=p+I|0,IA=g>>>0>gA>>>0?IA+1|0:IA,I=eg(y,0,l,0),g=p+IA|0,g=I>>>0>(gA=I+gA|0)>>>0?g+1|0:g,IA=eg(t,0,h,0),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,IA=eg(e,0,D,0),g=p+I|0,g=IA>>>0>(gA=IA+gA|0)>>>0?g+1|0:g,IA=eg(f,0,u,0),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,g=eg(c,m,k,0),IA=p+I|0,IA=g>>>0>(gA=g+gA|0)>>>0?IA+1|0:IA,I=eg(s,0,F,0),g=p+IA|0,g=I>>>0>(gA=I+gA|0)>>>0?g+1|0:g,IA=eg(r,0,H,0),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,IA=eg(i,0,b,0),g=p+I|0,g=IA>>>0>(gA=IA+gA|0)>>>0?g+1|0:g,I=HI(B+26|0),IA=2097151&((3&(IA=p))<<30|I>>>2),I=g,sA=gA=IA+gA|0,gA=I=IA>>>0>gA>>>0?I+1|0:I,I=eg(N,J,470296,0),g=p,kA=(IA=I)+(I=eg(v,P,666643,0))|0,IA=p+g|0,IA=I>>>0>kA>>>0?IA+1|0:IA,I=eg(U,X,654183,0),g=p+IA|0,g=I>>>0>(kA=I+kA|0)>>>0?g+1|0:g,I=eg(M,dA,-997805,-1),g=p+g|0,g=I>>>0>(IA=I+kA|0)>>>0?g+1|0:g,kA=(I=IA)+(IA=eg(V,RA,136657,0))|0,I=p+g|0,I=(I=IA>>>0>kA>>>0?I+1|0:I)+gA|0,I=(g=kA)>>>0>(IA=g+sA|0)>>>0?I+1|0:I,g=IA,IA=I,W=(I=sA)- -1048576|0,gA=rA=gA-((I>>>0<4293918720)-1|0)|0,rA=g,IA=(g=BA>>21)+IA|0,IA=(I=(2097151&BA)<<11|jA>>>21)>>>0>(BA=rA+I|0)>>>0?IA+1|0:IA,g=BA-(I=-2097152&W)|0,sA=eg(K,q,-683901,-1),I=(BA=IA-((I>>>0>BA>>>0)+gA|0)|0)+p|0,IA=I=sA>>>0>(kA=g+sA|0)>>>0?I+1|0:I,rA=BA-(((I=g)>>>0<4293918720)-1|0)|0,T=I- -1048576|0,IA=(g=QA>>21)+IA|0,IA=(I=(2097151&QA)<<11|ZA>>>21)>>>0>(QA=I+(sA=kA)|0)>>>0?IA+1|0:IA,sA=g=QA-(I=-2097152&T)|0,I=(QA=IA-((I>>>0>QA>>>0)+(BA=rA)|0)|0)+pA|0,j=g- -1048576|0,rA=QA-((g>>>0<4293918720)-1|0)|0,jA=(g=IA=UA=g+UA|0)-(IA=-2097152&j)|0,ZA=(sA>>>0>g>>>0?I+1|0:I)-((g>>>0>>0)+(QA=rA)|0)|0,OA=CA-(I=-2097152&GA)|0,kA=tA-((I>>>0>CA>>>0)+fA|0)|0,UA=iA-(I=-2097152&bA)|0,bA=hA-((I>>>0>iA>>>0)+oA|0)|0,g=eg(K,q,654183,0),I=p+uA|0,I=g>>>0>(IA=g+FA|0)>>>0?I+1|0:I,iA=((CA=IA)-(g=-2097152&DA)|0)+(IA=eg(x,L,-997805,-1))|0,g=p+(I-((g>>>0>CA>>>0)+wA|0)|0)|0,g=IA>>>0>iA>>>0?g+1|0:g,IA=eg(d,LA,136657,0),I=p+g|0,GA=CA=IA+iA|0,iA=IA>>>0>CA>>>0?I+1|0:I,sA=eA-(I=-2097152&mA)|0,hA=PA-((I>>>0>eA>>>0)+HA|0)|0,I=eg(v,P,-997805,-1),g=p,IA=I,I=eg(S,R,654183,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,I=eg(N,J,136657,0),g=p+g|0,g=I>>>0>(IA=I+IA|0)>>>0?g+1|0:g,CA=(I=IA)+(IA=eg(U,X,-683901,-1))|0,I=p+g|0,IA=qA+(IA>>>0>CA>>>0?I+1|0:I)|0,oA=(g=CA+yA|0)-(I=-2097152&WA)|0,tA=(IA=g>>>0>>0?IA+1|0:IA)-((I>>>0>g>>>0)+JA|0)|0,I=eg(v,P,654183,0),g=p,IA=I,I=eg(S,R,470296,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,CA=(I=IA)+(IA=eg(N,J,-997805,-1))|0,I=p+g|0,g=CA+cA|0,IA=XA+(IA>>>0>CA>>>0?I+1|0:I)|0,CA=(I=eg(U,X,136657,0))+g|0,g=p+(g>>>0>>0?IA+1|0:IA)|0,g=I>>>0>CA>>>0?g+1|0:g,IA=eg(M,dA,-683901,-1),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,yA=(IA=CA)-(g=-2097152&AA)|0,eA=I-((g>>>0>IA>>>0)+VA|0)|0,g=eg(E,0,_,0),I=p,IA=g,g=eg(a,0,Y,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,CA=(g=IA)+(IA=eg(o,0,G,0))|0,g=p+I|0,g=IA>>>0>CA>>>0?g+1|0:g,IA=eg(w,0,l,0),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,g=eg(t,0,y,0),IA=p+I|0,IA=g>>>0>(CA=g+CA|0)>>>0?IA+1|0:IA,I=eg(e,0,h,0),g=p+IA|0,g=I>>>0>(CA=I+CA|0)>>>0?g+1|0:g,IA=eg(f,0,D,0),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,IA=eg(c,m,F,0),g=p+I|0,g=IA>>>0>(CA=IA+CA|0)>>>0?g+1|0:g,IA=eg(s,0,u,0),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,g=eg(r,0,k,0),IA=p+I|0,IA=g>>>0>(CA=g+CA|0)>>>0?IA+1|0:IA,I=eg(Q,0,b,0),g=p+IA|0,g=I>>>0>(CA=I+CA|0)>>>0?g+1|0:g,IA=eg(i,0,H,0),I=p+g|0,I=IA>>>0>(CA=IA+CA|0)>>>0?I+1|0:I,g=(B=(n[B+28|0]|n[B+29|0]<<8|n[B+30|0]<<16|n[B+31|0]<<24)>>>7|0)>>>0>(IA=B+CA|0)>>>0?I+1|0:I,I=IA,IA=gA>>21,gA=I+(B=(2097151&gA)<<11|W>>>21)|0,I=g+IA|0,CA=gA,fA=I=B>>>0>gA>>>0?I+1|0:I,uA=(I=gA)- -1048576|0,pA=g=fA-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+eA|0,gA=B=(g=(2097151&g)<<11|uA>>>21)+yA|0,rA=I=g>>>0>B>>>0?I+1|0:I,wA=(I=B)- -1048576|0,cA=g=rA-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+tA|0,yA=I=(g=(2097151&g)<<11|wA>>>21)>>>0>(B=g+oA|0)>>>0?I+1|0:I,tA=(I=B)- -1048576|0,eA=g=yA-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+hA|0,mA=oA=(g=(2097151&g)<<11|tA>>>21)+sA|0,HA=I=g>>>0>oA>>>0?I+1|0:I,I=eg(oA,I,-683901,-1),g=p+iA|0,oA=IA=I+GA|0,iA=I>>>0>IA>>>0?g+1|0:g,FA=B-(I=-2097152&tA)|0,GA=eA=yA-((I>>>0>B>>>0)+eA|0)|0,g=eg(K,q,470296,0)+EA|0,I=_A+p|0,I=g>>>0>>0?I+1|0:I,EA=((IA=g)-(B=-2097152&NA)|0)+(g=eg(x,L,654183,0))|0,IA=p+(I-((B>>>0>IA>>>0)+lA|0)|0)|0,I=eg(d,LA,-997805,-1),g=p+(g>>>0>EA>>>0?IA+1|0:IA)|0,g=I>>>0>(B=I+EA|0)>>>0?g+1|0:g,IA=(I=B)+(B=eg(mA,HA,136657,0))|0,I=p+g|0,I=B>>>0>IA>>>0?I+1|0:I,B=eg(FA,eA,-683901,-1),g=p+I|0,yA=g=B>>>0>(IA=B+IA|0)>>>0?g+1|0:g,hA=(I=IA)- -1048576|0,eA=B=g-((I>>>0<4293918720)-1|0)|0,I=(I=B>>21)+iA|0,EA=I=(g=(2097151&B)<<11|hA>>>21)>>>0>(B=g+oA|0)>>>0?I+1|0:I,tA=(I=B)- -1048576|0,g=(I=(iA=oA=EA-((I>>>0<4293918720)-1|0)|0)>>21)+bA|0,bA=lA=(oA=(2097151&iA)<<11|tA>>>21)+UA|0,oA=oA>>>0>lA>>>0?g+1|0:g,XA=B-(I=-2097152&tA)|0,VA=EA-((I>>>0>B>>>0)+iA|0)|0,JA=IA-(I=-2097152&hA)|0,PA=yA-((I>>>0>IA>>>0)+eA|0)|0,I=eg(K,q,666643,0),IA=p+(SA-(((g=-2097152&KA)>>>0>nA>>>0)+vA|0)|0)|0,IA=I>>>0>(B=I+(nA-g|0)|0)>>>0?IA+1|0:IA,I=eg(x,L,470296,0),g=p+IA|0,g=I>>>0>(B=I+B|0)>>>0?g+1|0:g,IA=(I=B)+(B=eg(d,LA,654183,0))|0,I=p+g|0,eA=IA,B=B>>>0>IA>>>0?I+1|0:I,nA=gA-(I=-2097152&wA)|0,iA=rA-((I>>>0>gA>>>0)+cA|0)|0,g=eg(v,P,470296,0),I=p,IA=g,g=eg(S,R,666643,0),I=p+I|0,I=g>>>0>(IA=IA+g|0)>>>0?I+1|0:I,gA=(g=IA)+(IA=eg(N,J,654183,0))|0,g=p+I|0,g=IA>>>0>gA>>>0?g+1|0:g,IA=eg(U,X,-997805,-1),I=p+g|0,I=IA>>>0>(gA=IA+gA|0)>>>0?I+1|0:I,g=eg(M,dA,136657,0),IA=p+I|0,IA=g>>>0>(gA=g+gA|0)>>>0?IA+1|0:IA,I=eg(V,RA,-683901,-1),g=p+IA|0,I=fA+(I>>>0>(gA=I+gA|0)>>>0?g+1|0:g)|0,I=(IA=gA+CA|0)>>>0>>0?I+1|0:I,g=(gA=IA)-(IA=-2097152&uA)|0,IA=I-((IA>>>0>gA>>>0)+pA|0)|0,I=(I=BA>>21)+IA|0,EA=BA=(gA=g)+(g=(2097151&BA)<<11|T>>>21)|0,cA=IA=(rA=I=g>>>0>BA>>>0?I+1|0:I)-(((I=BA)>>>0<4293918720)-1|0)|0,g=(2097151&IA)<<11|(_A=I- -1048576|0)>>>21,IA=(IA>>21)+iA|0,DA=BA=g+nA|0,sA=IA=g>>>0>BA>>>0?IA+1|0:IA,I=eg(BA,IA,-683901,-1),g=p+B|0,g=I>>>0>(IA=I+eA|0)>>>0?g+1|0:g,B=eg(mA,HA,-997805,-1),I=p+g|0,I=B>>>0>(IA=B+IA|0)>>>0?I+1|0:I,B=eg(FA,GA,136657,0),g=p+I|0,nA=IA=B+IA|0,gA=B>>>0>IA>>>0?g+1|0:g,g=eg(k,0,_,0),I=p,B=g,g=eg(F,0,Y,0),I=p+I|0,I=g>>>0>(B=B+g|0)>>>0?I+1|0:I,g=eg(H,0,G,0),IA=p+I|0,IA=g>>>0>(B=g+B|0)>>>0?IA+1|0:IA,I=eg(b,0,l,0),g=p+IA|0,I=g=I>>>0>(B=I+B|0)>>>0?g+1|0:g,CA=B=(g=MA>>>7&2097151)+B|0,B=g>>>0>B>>>0?I+1|0:I,I=eg(H,0,_,0),g=p,IA=I,I=eg(k,0,Y,0),g=p+g|0,g=I>>>0>(IA=IA+I|0)>>>0?g+1|0:g,I=eg(b,0,G,0),g=p+g|0,g=I>>>0>(IA=I+IA|0)>>>0?g+1|0:g,BA=(I=IA)+(IA=2097151&((3&$)<<30|z>>>2))|0,I=g,iA=BA,tA=IA=(BA=I=IA>>>0>BA>>>0?I+1|0:I)-(((I=iA)>>>0<4293918720)-1|0)|0,g=(g=IA>>>21|0)+B|0,CA=IA=(I=(2097151&IA)<<11|(vA=I- -1048576|0)>>>21)+CA|0,fA=g=I>>>0>IA>>>0?g+1|0:g,lA=(I=IA)- -1048576|0,yA=B=g-((I>>>0<4293918720)-1|0)|0,I=(g=B>>>21|0)+YA|0,I=(B=aA+((2097151&B)<<11|lA>>>21)|0)>>>0>>0?I+1|0:I,aA=((IA=B)-(g=-2097152&TA)|0)+(B=eg(x,L,666643,0))|0,g=p+(I-((g>>>0>IA>>>0)+xA|0)|0)|0,g=B>>>0>aA>>>0?g+1|0:g,I=eg(d,LA,470296,0),g=p+g|0,g=I>>>0>(B=I+aA|0)>>>0?g+1|0:g,IA=(I=B)+(B=eg(DA,sA,136657,0))|0,I=p+g|0,I=B>>>0>IA>>>0?I+1|0:I,g=eg(mA,HA,654183,0),I=p+I|0,I=g>>>0>(B=g+IA|0)>>>0?I+1|0:I,g=eg(FA,GA,-997805,-1),IA=p+I|0,uA=B=g+B|0,eA=IA=g>>>0>B>>>0?IA+1|0:IA,wA=(I=B)- -1048576|0,aA=B=IA-((I>>>0<4293918720)-1|0)|0,g=(I=B>>21)+gA|0,gA=IA=(B=(2097151&B)<<11|wA>>>21)+nA|0,B=g=B>>>0>IA>>>0?g+1|0:g,nA=IA=g-(((I=IA)>>>0<4293918720)-1|0)|0,g=(2097151&IA)<<11|(hA=I- -1048576|0)>>>21,IA=(IA>>21)+PA|0,qA=pA=g+JA|0,pA=g>>>0>pA>>>0?IA+1|0:IA,IA=QA>>21,QA=(I=(2097151&QA)<<11|j>>>21)+(EA-(g=-2097152&_A)|0)|0,g=IA+(rA-((g>>>0>EA>>>0)+cA|0)|0)|0,rA=g=I>>>0>QA>>>0?g+1|0:g,cA=g=g-(((I=QA)>>>0<4293918720)-1|0)|0,SA=IA=g>>21,g=eg(MA=(2097151&g)<<11|(_A=I- -1048576|0)>>>21,IA,-683901,-1),I=p+B|0,I=g>>>0>(IA=g+gA|0)>>>0?I+1|0:I,JA=IA-(g=-2097152&hA)|0,PA=I-((g>>>0>IA>>>0)+nA|0)|0,I=eg(MA,SA,136657,0),g=p+eA|0,g=I>>>0>(B=I+uA|0)>>>0?g+1|0:g,YA=B-(I=-2097152&wA)|0,xA=g-((I>>>0>B>>>0)+aA|0)|0,B=(I=eg(d,LA,666643,0))+(CA-(g=-2097152&lA)|0)|0,g=p+(fA-((g>>>0>CA>>>0)+yA|0)|0)|0,g=I>>>0>B>>>0?g+1|0:g,IA=(I=B)+(B=eg(DA,sA,-997805,-1))|0,I=p+g|0,I=B>>>0>IA>>>0?I+1|0:I,B=(g=eg(mA,HA,470296,0))+IA|0,IA=p+I|0,IA=g>>>0>B>>>0?IA+1|0:IA,I=eg(FA,GA,654183,0),g=p+IA|0,fA=B=I+B|0,EA=I>>>0>B>>>0?g+1|0:g,gA=BA,g=eg(b,0,_,0),I=p,B=g,g=eg(H,0,Y,0),I=p+I|0,I=g>>>0>(B=B+g|0)>>>0?I+1|0:I,g=B,g=(B=O>>>5&2097151)>>>0>(IA=g+B|0)>>>0?I+1|0:I,B=2097151&Z,BA=eg(b,0,Y,0)+B|0,I=p,eA=B=(yA=I=B>>>0>BA>>>0?I+1|0:I)-(((I=BA)>>>0<4293918720)-1|0)|0,CA=IA,g=g+(IA=B>>>21|0)|0,aA=g=(I=(2097151&B)<<11|(lA=I- -1048576|0)>>>21)>>>0>(B=CA+I|0)>>>0?g+1|0:g,uA=(I=B)- -1048576|0,nA=g=g-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>>21|0)+gA|0,I=(g=(2097151&g)<<11|uA>>>21)>>>0>(CA=g+iA|0)>>>0?I+1|0:I,CA=(IA=eg(DA,sA,654183,0))+((gA=CA)-(g=-2097152&vA)|0)|0,g=p+(I-((16383&tA)+(g>>>0>gA>>>0)|0)|0)|0,I=eg(mA,HA,666643,0),IA=p+(IA>>>0>CA>>>0?g+1|0:g)|0,IA=I>>>0>(gA=I+CA|0)>>>0?IA+1|0:IA,g=eg(FA,GA,470296,0),I=p+IA|0,wA=gA=g+gA|0,iA=I=g>>>0>gA>>>0?I+1|0:I,hA=(I=gA)- -1048576|0,CA=g=iA-((I>>>0<4293918720)-1|0)|0,I=(IA=g>>21)+EA|0,tA=gA=(g=(2097151&g)<<11|hA>>>21)+fA|0,g=I=g>>>0>gA>>>0?I+1|0:I,fA=(I=gA)- -1048576|0,I=(IA=(gA=EA=g-((I>>>0<4293918720)-1|0)|0)>>21)+xA|0,EA=(EA=(2097151&gA)<<11|fA>>>21)>>>0>(YA=vA=EA+YA|0)>>>0?I+1|0:I,I=eg(MA,SA,-997805,-1);g=p+g|0,g=I>>>0>(IA=I+tA|0)>>>0?g+1|0:g,xA=IA-(I=-2097152&fA)|0,vA=g-((I>>>0>IA>>>0)+gA|0)|0,I=eg(MA,SA,654183,0),g=p+iA|0,g=I>>>0>(IA=I+wA|0)>>>0?g+1|0:g,tA=IA-(I=-2097152&hA)|0,fA=g-((I>>>0>IA>>>0)+CA|0)|0,IA=(g=eg(DA,sA,470296,0))+(B-(I=-2097152&uA)|0)|0,I=p+(aA-((16383&nA)+(I>>>0>B>>>0)|0)|0)|0,I=g>>>0>IA>>>0?I+1|0:I,B=(g=eg(FA,GA,666643,0))+IA|0,IA=p+I|0,IA=g>>>0>B>>>0?IA+1|0:IA,gA=B,B=(I=eg(DA,sA,666643,0))+(BA-(g=-2097152&lA)|0)|0,g=p+(yA-((4095&eA)+(g>>>0>BA>>>0)|0)|0)|0,iA=g=I>>>0>B>>>0?g+1|0:g,eA=(I=B)- -1048576|0,CA=BA=g-((I>>>0<4293918720)-1|0)|0,IA=(I=BA>>21)+IA|0,aA=BA=(g=(2097151&BA)<<11|eA>>>21)+gA|0,gA=IA=g>>>0>BA>>>0?IA+1|0:IA,nA=(I=BA)- -1048576|0,BA=IA=IA-((I>>>0<4293918720)-1|0)|0,g=(I=IA>>21)+fA|0,IA=g=(IA=(2097151&IA)<<11|nA>>>21)>>>0>(yA=IA+tA|0)>>>0?g+1|0:g,g=eg(MA,SA,470296,0),I=p+gA|0,I=g>>>0>(aA=g+aA|0)>>>0?I+1|0:I,g=aA-(gA=-2097152&nA)|0,gA=I-((gA>>>0>aA>>>0)+BA|0)|0,nA=g,BA=(I=eg(MA,SA,666643,0))+(B-(g=-2097152&eA)|0)|0,g=p+(iA-((g>>>0>B>>>0)+CA|0)|0)|0,I=(I=(g=I>>>0>BA>>>0?g+1|0:g)>>21)+gA|0,CA=B=nA+(g=(2097151&g)<<11|(B=BA)>>>21)|0,IA=(g=(I=g>>>0>B>>>0?I+1|0:I)>>21)+IA|0,gA=B=(I=(2097151&I)<<11|B>>>21)+yA|0,B=(2097151&(IA=I>>>0>(g=B)>>>0?IA+1|0:IA))<<11|g>>>21,g=(I=IA>>21)+vA|0,aA=IA=B+xA|0,IA=(g=B>>>0>(I=IA)>>>0?g+1|0:g)>>21,g=(2097151&g)<<11|I>>>21,I=IA+EA|0,uA=B=g+YA|0,g=(g=(I=g>>>0>B>>>0?I+1|0:I)>>21)+PA|0,wA=B=(I=(2097151&I)<<11|B>>>21)+JA|0,I=(I=(g=I>>>0>B>>>0?g+1|0:g)>>21)+pA|0,hA=B=(g=(2097151&g)<<11|B>>>21)+qA|0,IA=(g=(I=g>>>0>B>>>0?I+1|0:I)>>21)+VA|0,tA=B=(I=(2097151&I)<<11|B>>>21)+XA|0,B=(2097151&(IA=I>>>0>(g=B)>>>0?IA+1|0:IA))<<11|g>>>21,g=(I=IA>>21)+oA|0,fA=IA=B+bA|0,IA=(g=B>>>0>(I=IA)>>>0?g+1|0:g)>>21,g=(2097151&g)<<11|I>>>21,I=IA+kA|0,pA=B=g+OA|0,g=(g=(I=g>>>0>B>>>0?I+1|0:I)>>21)+ZA|0,yA=B=(I=(2097151&I)<<11|B>>>21)+jA|0,I=(g=I>>>0>B>>>0?g+1|0:g)>>21,iA=(IA=(2097151&g)<<11|B>>>21)+(g=QA-(B=-2097152&_A)|0)|0,IA=(rA-((B>>>0>QA>>>0)+cA|0)|0)+I|0,eA=iA,cA=(2097151&(IA=g>>>0>(I=iA)>>>0?IA+1|0:IA))<<11|I>>>21,EA=g=IA>>21,I=2097151&BA,B=eg(cA,g,666643,0)+I|0,g=p,iA=B,B=g=I>>>0>B>>>0?g+1|0:g,C[0|A]=iA,C[A+1|0]=(255&g)<<24|iA>>>8,BA=A,g=2097151&CA,IA=eg(cA,EA,470296,0)+g|0,I=p,I=g>>>0>IA>>>0?I+1|0:I,CA=IA,QA=(2097151&(IA=B))<<11|iA>>>21,IA=I+(g=IA>>21)|0,IA=QA>>>0>(CA=CA+QA|0)>>>0?IA+1|0:IA,QA=CA,C[BA+4|0]=(2047&IA)<<21|QA>>>11,I=IA,IA=QA,C[BA+3|0]=(7&I)<<29|IA>>>3,IA=2097151&gA,gA=eg(cA,EA,654183,0)+IA|0,g=p,g=IA>>>0>gA>>>0?g+1|0:g,IA=gA,gA=(2097151&I)<<11|QA>>>21,I=(I>>21)+g|0,g=I=gA>>>0>(CA=IA+gA|0)>>>0?I+1|0:I,C[BA+6|0]=(63&I)<<26|CA>>>6,gA=0,I=nA=2097151&QA,C[BA+2|0]=31&((65535&B)<<16|iA>>>16)|I<<5,B=2097151&aA,IA=eg(cA,EA,-997805,-1)+B|0,I=p,B=I=B>>>0>IA>>>0?I+1|0:I,I=g>>21,QA=(g=(2097151&g)<<11|CA>>>21)+IA|0,IA=I+B|0,iA=QA,IA=g>>>0>QA>>>0?IA+1|0:IA,C[BA+9|0]=(511&IA)<<23|QA>>>9,I=IA,C[BA+8|0]=(1&I)<<31|QA>>>1,QA=0,B=aA=2097151&CA,C[BA+5|0]=(524287&gA)<<13|nA>>>19|B<<2,B=2097151&uA,IA=eg(cA,EA,136657,0)+B|0,g=p,g=B>>>0>IA>>>0?g+1|0:g,B=IA,g=g+(IA=I>>21)|0,CA=B=B+(I=(2097151&I)<<11|iA>>>21)|0,g=I>>>0>B>>>0?g+1|0:g,C[BA+12|0]=(4095&g)<<20|B>>>12,B=g,I=g,g=CA,C[BA+11|0]=(15&I)<<28|g>>>4,BA=0,g=nA=2097151&iA,C[A+7|0]=(16383&QA)<<18|aA>>>14|g<<7,IA=A,g=2097151&wA,QA=eg(cA,EA,-683901,-1)+g|0,I=p,I=(I=g>>>0>QA>>>0?I+1|0:I)+(g=B>>21)|0,g=I=(B=(2097151&B)<<11|CA>>>21)>>>0>(gA=QA=B+QA|0)>>>0?I+1|0:I,C[IA+14|0]=(127&I)<<25|gA>>>7,QA=0,B=iA=2097151&CA,C[IA+10|0]=(131071&BA)<<15|nA>>>17|B<<4,B=IA,I>>=21,IA=(g=(2097151&g)<<11|gA>>>21)>>>0>(CA=g+(2097151&hA)|0)>>>0?I+1|0:I,C[B+17|0]=(1023&IA)<<22|CA>>>10,I=IA,C[B+16|0]=(3&I)<<30|CA>>>2,B=EA=2097151&gA,C[A+13|0]=(1048575&QA)<<12|iA>>>20|B<<1,g=I,I>>=21,g=(IA=(2097151&g)<<11|CA>>>21)>>>0>(gA=IA+(2097151&tA)|0)>>>0?I+1|0:I,C[(B=A)+20|0]=(8191&g)<<19|gA>>>13,I=g,g=gA,C[B+19|0]=(31&I)<<27|g>>>5,g=iA=2097151&CA,C[B+15|0]=(32767&BA)<<17|EA>>>15|g<<6,g=I,I>>=21,g=(B=(2097151&g)<<11|gA>>>21)>>>0>(EA=B+(2097151&fA)|0)>>>0?I+1|0:I,C[A+21|0]=EA,I=gA,C[A+18|0]=(262143&QA)<<14|iA>>>18|I<<3,B=g,I=g,g=EA,C[A+22|0]=(255&I)<<24|g>>>8,g=I>>21,IA=(I=(2097151&I)<<11|EA>>>21)>>>0>(gA=I+(2097151&pA)|0)>>>0?g+1|0:g,C[A+25|0]=(2047&IA)<<21|gA>>>11,I=IA,IA=gA,C[A+24|0]=(7&I)<<29|IA>>>3,g=I>>21,g=(BA=(2097151&I)<<11|gA>>>21)>>>0>(CA=BA+(2097151&yA)|0)>>>0?g+1|0:g,BA=CA,I=g,C[(IA=A)+27|0]=(63&I)<<26|BA>>>6,IA=0,g=CA=2097151&gA,C[A+23|0]=31&((65535&B)<<16|EA>>>16)|g<<5,g=I,I>>=21,I=(g=(2097151&g)<<11|BA>>>21)>>>0>(QA=g+(2097151&eA)|0)>>>0?I+1|0:I,B=QA,C[A+31|0]=(131071&I)<<15|B>>>17,C[A+30|0]=(511&I)<<23|B>>>9,C[A+29|0]=(1&I)<<31|B>>>1,I=0,gA=BA&=2097151,C[A+26|0]=(524287&IA)<<13|CA>>>19|gA<<2,C[A+28|0]=(16383&I)<<18|gA>>>14|B<<7}(E,r+160|0,r+288|0,r+224|0),fI(r+288|0,64),fI(r+224|0,64),I&&(i[I>>2]=64,i[I+4>>2]=0),h=r+560|0,0}function X(A,I,g){var B,Q=0,E=0;if(g>>>0>=512)return s(0|A,0|I,0|g),A;B=A+g|0;A:if(3&(A^I))if(B>>>0<4)g=A;else if((Q=B-4|0)>>>0>>0)g=A;else for(g=A;C[0|g]=n[0|I],C[g+1|0]=n[I+1|0],C[g+2|0]=n[I+2|0],C[g+3|0]=n[I+3|0],I=I+4|0,Q>>>0>=(g=g+4|0)>>>0;);else{I:if((0|g)<1)g=A;else if(3&A)for(g=A;;){if(C[0|g]=n[0|I],I=I+1|0,B>>>0<=(g=g+1|0)>>>0)break I;if(!(3&g))break}else g=A;if(!((Q=-4&B)>>>0<64||(E=Q+-64|0)>>>0>>0))for(;i[g>>2]=i[I>>2],i[g+4>>2]=i[I+4>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=i[I+12>>2],i[g+16>>2]=i[I+16>>2],i[g+20>>2]=i[I+20>>2],i[g+24>>2]=i[I+24>>2],i[g+28>>2]=i[I+28>>2],i[g+32>>2]=i[I+32>>2],i[g+36>>2]=i[I+36>>2],i[g+40>>2]=i[I+40>>2],i[g+44>>2]=i[I+44>>2],i[g+48>>2]=i[I+48>>2],i[g+52>>2]=i[I+52>>2],i[g+56>>2]=i[I+56>>2],i[g+60>>2]=i[I+60>>2],I=I- -64|0,E>>>0>=(g=g- -64|0)>>>0;);if(g>>>0>=Q>>>0)break A;for(;i[g>>2]=i[I>>2],I=I+4|0,Q>>>0>(g=g+4|0)>>>0;);}if(g>>>0>>0)for(;C[0|g]=n[0|I],I=I+1|0,(0|B)!=(0|(g=g+1|0)););return A}function V(A,I,g,B){var Q,E=0,a=0,r=0,o=0,e=0,t=0,f=0;if(h=Q=h-704|0,g|B)if(E=B<<3|g>>>29,r=(f=i[(a=A)+72>>2])+(e=g<<3)|0,E=E+(o=i[a+76>>2])|0,t=r,i[a+72>>2]=r,E=r>>>0>>0?E+1|0:E,i[a+76>>2]=E,t=(e=(0|E)==(0|o)&f>>>0>t>>>0|E>>>0>>0)+i[(a=r=a- -64|0)>>2]|0,E=i[a+4>>2],E=e>>>0>t>>>0?E+1|0:E,r=(e=B>>>29|0)+t|0,i[a>>2]=r,i[a+4>>2]=r>>>0>>0?E+1|0:E,(0|(E=B))==(0|(t=0-((o=127&((7&o)<<29|f>>>3))>>>0>128)|0))&g>>>0>=(r=128-o|0)>>>0|E>>>0>t>>>0){for(a=0,E=0;C[80+(A+(e=a+o|0)|0)|0]=n[I+a|0],(0|r)!=(0|(a=a+1|0))|(0|(E=a>>>0<1?E+1|0:E))!=(0|t););if(F(A,A+80|0,Q,E=Q+640|0),I=I+r|0,!(B=B-((g>>>0>>0)+t|0)|0)&(g=g-r|0)>>>0>127|B)for(;F(A,I,Q,E),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B)for(a=0,E=0;C[80+(A+a|0)|0]=n[I+a|0],(0|g)!=(0|(a=o=a+1|0))|(0|B)!=(0|(E=o>>>0<1?E+1|0:E)););fI(Q,704)}else for(a=g,r=(g=!B&g>>>0>1|0!=(0|B))?a:1,f=g?B:0,a=0,E=0;C[80+(A+(B=a+o|0)|0)|0]=n[I+a|0],(0|r)!=(0|(a=g=a+1|0))|(0|(E=g>>>0<1?E+1|0:E))!=(0|f););return h=Q+704|0,0}function W(A,I,g,B,Q,E,n,a){A|=0,I|=0,g|=0,B|=0,Q|=0,E|=0,n|=0,a|=0;var r,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,D=0;h=r=h-16|0,i[r+12>>2]=0,pg(a);A:{if(B){w=4&a;I:{g:{B:{for(;;){o=f;Q:{C:{for(;;){if(y=C[g+o|0],255!=(0|(t=w?LA(y):KA(y))))break C;if(!Q)break Q;if(!gg(Q,y))break B;if(!((o=o+1|0)>>>0>>0))break}A=f+1|0,i[r+12>>2]=A>>>0>>0?B:A;break g}if(s=(s<<6)+t|0,(t=e+6|0)>>>0<8)e=t;else{if(e=e-2|0,I>>>0<=c>>>0){i[r+12>>2]=o,i[8960]=68,o=1;break I}C[A+c|0]=s>>>e,c=c+1|0}if((f=o+1|0)>>>0>>0)continue}break}i[r+12>>2]=f;break g}i[r+12>>2]=o}o=0}if(!(e>>>0<=4)){A=-1;break A}}if(A=-1,!((-1<>2];;){g:{if(I>>>0<=E>>>0)i[8960]=68;else{if(61==(0|(n=C[A+E|0]))){Q=Q-1|0;break g}if(B&&gg(B,n))break g;i[8960]=28}a=-1;break I}if(E=E+1|0,i[g>>2]=E,!Q)break}return a}(g,B,r+12|0,Q,e>>>1|0)))){A=0;I:if(Q&&!((o=i[r+12>>2])>>>0>=B>>>0)){g:{for(;;){if(!gg(Q,C[g+o|0]))break g;if((0|(o=o+1|0))==(0|B))break}i[r+12>>2]=B;break I}i[r+12>>2]=o}D=c}}return I=i[r+12>>2],n?i[n>>2]=I+g:(0|I)!=(0|B)&&(i[8960]=28,A=-1),E&&(i[E>>2]=D),h=r+16|0,0|A}function T(A,I,g){var B,Q,C,E=0;h=B=h-16|0,Q=i[A+20>>2],i[A+20>>2]=0,C=i[A+4>>2],i[A+4>>2]=0,E=-26;A:{I:{g:switch(g-1|0){case 1:if(E=-32,XA(I,35621,9))break A;I=I+9|0;break I;case 0:break g;default:break A}if(E=-32,XA(I,35631,8))break A;I=I+8|0}if(!XA(I,35640,3)&&(I=bA(I+3|0,B+12|0))){if(E=-26,19!=i[B+12>>2])break A;if(!XA(I,35644,3)&&(I=bA(I+3|0,B+12|0))&&(i[A+44>>2]=i[B+12>>2],!XA(I,35648,3)&&(I=bA(I+3|0,B+12|0))&&(i[A+40>>2]=i[B+12>>2],!XA(I,35652,3)&&(I=bA(I+3|0,B+12|0))&&(g=i[B+12>>2],i[A+48>>2]=g,i[A+52>>2]=g,36==(0|(g=n[0|I]))&&(i[B+12>>2]=Q,I=36==(0|g)?I+1|0:I,!W(i[A+16>>2],Q,I,YA(I),0,B+12|0,B+8|0,3)&&(i[A+20>>2]=i[B+12>>2],I=i[B+8>>2],36==(0|(g=n[0|I]))&&(i[B+12>>2]=C,I=36==(0|g)?I+1|0:I,!W(i[A>>2],C,I,YA(I),0,B+12|0,B+8|0,3)))))))){if(i[A+4>>2]=i[B+12>>2],I=i[B+8>>2],E=oA(A))break A;return h=B+16|0,n[0|I]?-32:0}}E=-32}return h=B+16|0,E}function j(A,I){var g;for(h=g=h-192|0,H(g+144|0,I),H(g+96|0,g+144|0),H(g+96|0,g+96|0),_(g+96|0,I,g+96|0),_(g+144|0,g+144|0,g+96|0),H(g+48|0,g+144|0),_(g+96|0,g+96|0,g+48|0),H(g+48|0,g+96|0),I=1;H(g+48|0,g+48|0),5!=(0|(I=I+1|0)););for(_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),I=1;H(g+48|0,g+48|0),10!=(0|(I=I+1|0)););for(_(g+48|0,g+48|0,g+96|0),H(g,g+48|0),I=1;H(g,g),20!=(0|(I=I+1|0)););for(_(g+48|0,g,g+48|0),I=1;H(g+48|0,g+48|0),11!=(0|(I=I+1|0)););for(_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),I=1;H(g+48|0,g+48|0),50!=(0|(I=I+1|0)););for(_(g+48|0,g+48|0,g+96|0),H(g,g+48|0),I=1;H(g,g),100!=(0|(I=I+1|0)););for(_(g+48|0,g,g+48|0),I=1;H(g+48|0,g+48|0),51!=(0|(I=I+1|0)););for(_(g+96|0,g+48|0,g+96|0),I=1;H(g+96|0,g+96|0),6!=(0|(I=I+1|0)););_(A,g+96|0,g+144|0),h=g+192|0}function Z(A,I){var g,B,Q,E,n,a,o,e,t,f,c=0,y=0,s=0,w=0,h=0,D=0,u=0;(y=s=i[A+60>>2])|(c=i[A+56>>2])&&(s=c,C[(w=c+A|0)- -64|0]=1,!(y=(c=c+1|0)>>>0<1?y+1|0:y)&c>>>0<=15&&EA(w+65|0,0,15-s|0),C[A+80|0]=1,S(A,A- -64|0,16,0)),t=i[A+52>>2],f=i[A+48>>2],s=i[A+44>>2],u=i[A+24>>2],h=i[A+28>>2]+(u>>>26|0)|0,c=i[A+32>>2]+(h>>>26|0)|0,e=(g=(E=(-67108864|(Q=i[A+36>>2]+(c>>>26|0)|0))+((o=(a=67108863&c)+((h=(D=67108863&h)+((y=(c=(67108863&u)+((y=i[A+20>>2]+r(Q>>>26|0,5)|0)>>>26|0)|0)+((n=5+(w=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>31)&c|(B=67108863&(u=(E>>>31|0)-1|0))&y,y=0,y=(c=w&g|B&n|e<<26)>>>0>(w=c+i[A+40>>2]|0)>>>0?1:y,xI(I,w),h=(c=(D=D&g|h&B)<<20|e>>>6)+s|0,s=0,s=c>>>0>h>>>0?1:s,c=y,y=s,y=c>>>0>(h=c+h|0)>>>0?y+1|0:y,xI(I+4|0,h),s=0,s=(c=(w=g&a|B&o)<<14|D>>>12)>>>0>(D=c+f|0)>>>0?1:s,c=y,y=s,y=c>>>0>(D=c+D|0)>>>0?y+1|0:y,xI(I+8|0,D),xI(s=I+12|0,y=y+(w=(I=(u&E|g&Q)<<8|w>>>18)+t|0)|0),fI(A,88)}function O(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var E=0,i=0,a=0,o=0,f=0,c=0,y=0,s=0,w=0;pg(Q|=0),i=(E=(B>>>0)/3|0)<<2,(E=r(E,-3)+B|0)&&(i=2&Q?(2|i)+(E>>>1|0)|0:i+4|0);A:{I:{g:{B:{if(I>>>0>i>>>0){if(!(4&Q)){if(a=0,!B)break g;Q=0,E=0;break B}if(a=0,!B)break g;for(Q=0,E=0;;){for(f=n[g+o|0]|f<<8,Q=Q+8|0;c=E,y=Q,s=A+E|0,w=CI(f>>>(Q=Q-6|0)&63),C[0|s]=w,E=E+1|0,Q>>>0>5;);if((0|(o=o+1|0))==(0|B))break}if(a=E,!Q)break g;s=A+E|0,w=CI(f<<12-y&63),C[0|s]=w,a=c+2|0;break g}OI(),e()}for(;;){for(f=n[g+o|0]|f<<8,Q=Q+8|0;c=E,y=Q,s=A+E|0,w=EI(f>>>(Q=Q-6|0)&63),C[0|s]=w,E=E+1|0,Q>>>0>5;);if((0|(o=o+1|0))==(0|B))break}a=E,Q&&(s=A+E|0,w=EI(f<<12-y&63),C[0|s]=w,a=c+2|0)}if((E=a)>>>0<=i>>>0){if(E>>>0>>0)break I;i=E;break A}t(35568,35587,230,35603),e()}EA(A+E|0,61,i-E|0)}return EA(A+i|0,0,(I>>>0>(g=i+1|0)>>>0?I:g)-i|0),0|A}function z(A,I,g,B){var Q=0,E=0,a=0,r=0,o=0,e=0;A:{if((Q=i[A+56>>2])|(E=i[A+60>>2])){if(e=A,o=a=16-Q|0,o=(a=(0|(r=0-((Q>>>0>16)+E|0)|0))==(0|B)&g>>>0>>0|B>>>0>>0)?g:o,(a=r=a?B:r)|o){if(C[(A+Q|0)- -64|0]=n[0|I],E=1,Q=0,1!=(0|o)|a)for(;r=E+i[A+56>>2]|0,C[(A+r|0)- -64|0]=n[I+E|0],(0|o)!=(0|(E=E+1|0))|(0|(Q=E>>>0<1?Q+1|0:Q))!=(0|a););Q=i[A+56>>2],E=i[A+60>>2]}if(r=Q+o|0,Q=E+a|0,E=r,i[e+56>>2]=E,Q=E>>>0>>0?Q+1|0:Q,i[e+60>>2]=Q,!Q&E>>>0<16)break A;S(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(Q=g)-(E=o)|0,B=B-((Q>>>0>>0)+a|0)|0,I=I+E|0}if(!B&g>>>0>=16|B&&(S(A,I,Q=-16&g,B),g&=15,B=0,I=I+Q|0),g|B){for(E=0,Q=0;e=E+i[A+56>>2]|0,C[(A+e|0)- -64|0]=n[I+E|0],(0|g)!=(0|(E=E+1|0))|(0|B)!=(0|(Q=E>>>0<1?Q+1|0:Q)););I=A,Q=g+i[A+56>>2]|0,A=B+i[A+60>>2]|0,i[I+56>>2]=Q,i[I+60>>2]=g>>>0>Q>>>0?A+1|0:A}}}function $(A,I){var g=0,B=0,Q=0,C=0,E=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0;A:if(A&&(2!=i[A+36>>2]||(Q=i[I>>2],n[I+8|0]<2&&!Q)?(function(A,I,g){var B,Q=0,C=0,E=0;if(h=B=h-4096|0,vg(B+3072|0),vg(B+2048|0),!(!A|!I)&&(i[B+2048>>2]=i[I>>2],i[B+2052>>2]=0,i[B+2056>>2]=i[I+4>>2],i[B+2060>>2]=0,i[B+2064>>2]=n[I+8|0],i[B+2068>>2]=0,i[B+2072>>2]=i[A+16>>2],i[B+2076>>2]=0,i[B+2080>>2]=i[A+8>>2],i[B+2084>>2]=0,i[B+2088>>2]=i[A+36>>2],i[B+2092>>2]=0,i[A+20>>2]))for(I=0;(E=127&I)||(Q=i[B+2100>>2],Q=(C=i[B+2096>>2]+1|0)>>>0<1?Q+1|0:Q,i[B+2096>>2]=C,i[B+2100>>2]=Q,vg(B),vg(B+1024|0),Y(B+3072|0,B+2048|0,B),Y(B+3072|0,B,B+1024|0)),E=i[4+(C=(B+1024|0)+(E<<3)|0)>>2],i[(Q=(I<<3)+g|0)>>2]=i[C>>2],i[Q+4>>2]=E,(I=I+1|0)>>>0>2];);h=B+4096|0}(A,I,t=i[A+4>>2]),Q=i[I>>2],B=0):(t=i[A+4>>2],B=1),c=B,!((E=!((B=n[I+8|0])|Q)<<1)>>>0>=(g=i[A+20>>2])>>>0)))for(C=i[A+24>>2],g=(Q=(r(C,i[I+4>>2])+E|0)+r(g,B)|0)+((Q>>>0)%(C>>>0)|0?-1:C-1|0)|0;;){if(f=1==((Q>>>0)%(C>>>0)|0)?Q-1|0:g,c?(o=i[A>>2],g=i[o+4>>2]+(f<<10)|0):(o=i[A>>2],g=(E<<3)+t|0),B=i[g+4>>2],y=i[g>>2],g=i[A+28>>2],i[I+12>>2]=E,B=(B>>>0)%(g>>>0)|0,e=i[I+4>>2],g=n[I+8|0]?B:e,o=i[o+4>>2],s=C,w=B,C=i[I>>2],e=(o+(r(s,g=(B=C)?w:g)<<10)|0)+(FA(A,I,y,!0&(0|g)==(0|e))<<10)|0,B=o+(f<<10)|0,g=o+(Q<<10)|0,C?Y(B,e,g):b(B,e,g),(E=E+1|0)>>>0>=a[A+20>>2])break A;Q=Q+1|0,g=f+1|0,C=i[A+24>>2]}}function AA(A,I,g){var B,Q,C,E,n,a,r,o,e,t,f,c,y=0,s=0,w=0,h=0,D=0,u=0,p=0,l=0,F=0;B=i[I+4>>2],Q=i[A+4>>2],C=i[I+8>>2],s=i[A+8>>2],E=i[I+12>>2],w=i[A+12>>2],n=i[I+16>>2],h=i[A+16>>2],a=i[I+20>>2],D=i[A+20>>2],r=i[I+24>>2],u=i[A+24>>2],o=i[I+28>>2],p=i[A+28>>2],e=i[I+32>>2],l=i[A+32>>2],t=i[I+36>>2],F=i[A+36>>2],c=(g=0-g|0)&((f=i[I>>2])^(y=i[A>>2])),i[A>>2]=c^y,y=F,F=g&(F^t),i[A+36>>2]=y^F,y=l,l=g&(l^e),i[A+32>>2]=y^l,y=p,p=g&(p^o),i[A+28>>2]=y^p,y=u,u=g&(u^r),i[A+24>>2]=y^u,y=D,D=g&(D^a),i[A+20>>2]=y^D,y=h,h=g&(h^n),i[A+16>>2]=y^h,y=w,w=g&(w^E),i[A+12>>2]=y^w,y=s,s=g&(s^C),i[A+8>>2]=y^s,y=A,A=g&(B^Q),i[y+4>>2]=A^Q,i[I+36>>2]=F^t,i[I+32>>2]=l^e,i[I+28>>2]=p^o,i[I+24>>2]=u^r,i[I+20>>2]=D^a,i[I+16>>2]=h^n,i[I+12>>2]=w^E,i[I+8>>2]=s^C,i[I+4>>2]=A^B,i[I>>2]=f^c}function IA(A,I){var g;i[A>>2]=67108863&(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24),i[A+4>>2]=(n[I+3|0]|n[I+4|0]<<8|n[I+5|0]<<16|n[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(n[I+6|0]|n[I+7|0]<<8|n[I+8|0]<<16|n[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(n[I+9|0]|n[I+10|0]<<8|n[I+11|0]<<16|n[I+12|0]<<24)>>>6&66076671,g=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,i[A+44>>2]=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,i[A+48>>2]=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,I=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,C[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I}function gA(A,I,g){var B=0;A:if((0|A)!=(0|I)){if((I-A|0)-g>>>0<=0-(g<<1)>>>0)return X(A,I,g);if(B=3&(A^I),A>>>0>>0){if(B)B=A;else{if(3&A)for(B=A;;){if(!g)break A;if(C[0|B]=n[0|I],I=I+1|0,g=g-1|0,!(3&(B=B+1|0)))break}else B=A;if(!(g>>>0<=3))for(;i[B>>2]=i[I>>2],I=I+4|0,B=B+4|0,(g=g-4|0)>>>0>3;);}if(g)for(;C[0|B]=n[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);}else{if(!B){if(A+g&3)for(;;){if(!g)break A;if(C[0|(B=(g=g-1|0)+A|0)]=n[I+g|0],!(3&B))break}if(!(g>>>0<=3))for(;i[(g=g-4|0)+A>>2]=i[I+g>>2],g>>>0>3;);}if(!g)break A;for(;C[(g=g-1|0)+A|0]=n[I+g|0],g;);}}return A}function BA(A,I){var g,B=0;h=g=h-48|0,function(A,I){var g,B,Q,C,E,n,a,o,e=0;B=i[I+28>>2],Q=i[I+24>>2],C=i[I+20>>2],E=i[I+16>>2],n=i[I+12>>2],a=i[I+8>>2],o=i[I+4>>2],e=i[I>>2],g=i[I+36>>2],I=i[I+32>>2],e=r(((B+(Q+(C+(E+(n+(a+(o+(e+(r(g,19)+16777216>>>25|0)>>26)>>25)>>26)>>25)>>26)>>25)>>26)>>25)+I>>26)+g>>25,19)+e|0,i[A>>2]=67108863&e,e=o+(e>>26)|0,i[A+4>>2]=33554431&e,e=a+(e>>25)|0,i[A+8>>2]=67108863&e,e=n+(e>>26)|0,i[A+12>>2]=33554431&e,e=E+(e>>25)|0,i[A+16>>2]=67108863&e,e=C+(e>>26)|0,i[A+20>>2]=33554431&e,e=Q+(e>>25)|0,i[A+24>>2]=67108863&e,e=B+(e>>26)|0,i[A+28>>2]=33554431&e,I=I+(e>>25)|0,i[A+32>>2]=67108863&I,i[A+36>>2]=g+(I>>26)&33554431}(g,I),I=i[g>>2],C[0|A]=I,C[A+2|0]=I>>>16,C[A+1|0]=I>>>8,B=i[g+4>>2],C[A+5|0]=B>>>14,C[A+4|0]=B>>>6,C[A+3|0]=B<<2|I>>>24,I=i[g+8>>2],C[A+8|0]=I>>>13,C[A+7|0]=I>>>5,C[A+6|0]=I<<3|B>>>22,B=i[g+12>>2],C[A+11|0]=B>>>11,C[A+10|0]=B>>>3,C[A+9|0]=B<<5|I>>>21,I=i[g+16>>2],C[A+15|0]=I>>>18,C[A+14|0]=I>>>10,C[A+13|0]=I>>>2,C[A+12|0]=I<<6|B>>>19,I=i[g+20>>2],C[A+16|0]=I,C[A+18|0]=I>>>16,C[A+17|0]=I>>>8,B=i[g+24>>2],C[A+21|0]=B>>>15,C[A+20|0]=B>>>7,C[A+19|0]=B<<1|I>>>24,I=i[g+28>>2],C[A+24|0]=I>>>13,C[A+23|0]=I>>>5,C[A+22|0]=I<<3|B>>>23,B=i[g+32>>2],C[A+27|0]=B>>>12,C[A+26|0]=B>>>4,C[A+25|0]=B<<4|I>>>21,I=i[g+36>>2],C[A+31|0]=I>>>18,C[A+30|0]=I>>>10,C[A+29|0]=I>>>2,C[A+28|0]=I<<6|B>>>20,h=g+48|0}function QA(A,I,g,B){var Q=0,E=0,i=0,a=0,r=0,o=0;A:if(g|B)for(o=A+224|0,i=A+96|0,Q=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24;;){if(a=96+(A+Q|0)|0,r=E=256-Q|0,!B&g>>>0<=E>>>0){X(a,I,g),I=g+(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24;break A}if(X(a,I,E),Q=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)+E|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,iA(A,128),l(A,i),X(i,o,128),Q=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,I=I+E|0,!((g=(E=g)-r|0)|(B=B-(E>>>0>>0)|0)))break}return 0}function CA(A,I){var g,B=0,Q=0,E=0,i=0;for(h=g=h-464|0;Q=B<<1,i=n[I+B|0],C[Q+(g+400|0)|0]=15&i,C[(g+400|0)+(1|Q)|0]=i>>>4,32!=(0|(B=B+1|0)););for(B=0;I=((Q=(I=B)+n[0|(B=(g+400|0)+E|0)]|0)<<24)- -134217728|0,C[0|B]=Q-(I>>24&240),B=I>>28,63!=(0|(E=E+1|0)););for(C[g+463|0]=n[g+463|0]+B,zI(A),B=1;fg(g,B>>>1|0,C[(g+400|0)+B|0]),OA(g+240|0,A,g),DI(A,g+240|0),I=B>>>0<62,B=B+2|0,I;);for(JI(g+240|0,A),_I(g+120|0,g+240|0),AI(g+240|0,g+120|0),_I(g+120|0,g+240|0),AI(g+240|0,g+120|0),_I(g+120|0,g+240|0),AI(g+240|0,g+120|0),DI(A,g+240|0),B=0;fg(g,B>>>1|0,C[(g+400|0)+B|0]),OA(g+240|0,A,g),DI(A,g+240|0),I=B>>>0<62,B=B+2|0,I;);h=g+464|0}function EA(A,I,g){var B=0,Q=0,E=0,n=0;if(g&&(C[(B=A+g|0)-1|0]=I,C[0|A]=I,!(g>>>0<3||(C[B-2|0]=I,C[A+1|0]=I,C[B-3|0]=I,C[A+2|0]=I,g>>>0<7||(C[B-4|0]=I,C[A+3|0]=I,g>>>0<9||(Q=(B=0-A&3)+A|0,I=r(255&I,16843009),i[Q>>2]=I,i[(B=(g=g-B&-4)+Q|0)-4>>2]=I,g>>>0<9||(i[Q+8>>2]=I,i[Q+4>>2]=I,i[B-8>>2]=I,i[B-12>>2]=I,g>>>0<25||(i[Q+24>>2]=I,i[Q+20>>2]=I,i[Q+16>>2]=I,i[Q+12>>2]=I,i[B-16>>2]=I,i[B-20>>2]=I,i[B-24>>2]=I,i[B-28>>2]=I,(g=g-(n=4&Q|24)|0)>>>0<32))))))))for(B=I,E=I,I=Q+n|0;i[I+24>>2]=E,i[I+28>>2]=B,i[I+16>>2]=E,i[I+20>>2]=B,i[I+8>>2]=E,i[I+12>>2]=B,i[I>>2]=E,i[I+4>>2]=B,I=I+32|0,(g=g-32|0)>>>0>31;);return A}function iA(A,I){var g,B,Q,E=0,i=0;i=E=A- -64|0,B=1+(g=n[E+4|0]|n[E+5|0]<<8|n[E+6|0]<<16|n[E+7|0]<<24)|0,E=(I=I+(E=Q=n[0|E]|n[E+1|0]<<8|n[E+2|0]<<16|n[E+3|0]<<24)|0)>>>0>>0?B:g,C[0|i]=I,C[i+1|0]=I>>>8,C[i+2|0]=I>>>16,C[i+3|0]=I>>>24,C[i+4|0]=E,C[i+5|0]=E>>>8,C[i+6|0]=E>>>16,C[i+7|0]=E>>>24,I=(E=(0|E)==(0|g)&I>>>0>>0|E>>>0>>0)+(n[A+72|0]|n[A+73|0]<<8|n[A+74|0]<<16|n[A+75|0]<<24)|0,i=n[A+76|0]|n[A+77|0]<<8|n[A+78|0]<<16|n[A+79|0]<<24,E=I>>>0>>0?i+1|0:i,C[A+72|0]=I,C[A+73|0]=I>>>8,C[A+74|0]=I>>>16,C[A+75|0]=I>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24}function nA(A,I,g,B,Q,C,E){var n,a,r,o,e=0;return h=n=h-352|0,K(n,C,E),!Q&B>>>0<=g-A>>>0|A>>>0>=g>>>0&&!(!Q&B>>>0>A-g>>>0|Q&&A>>>0>g>>>0)||(g=gA(A,g,B)),i[n+56>>2]=0,i[n+60>>2]=0,i[n+48>>2]=0,i[n+52>>2]=0,i[n+40>>2]=0,i[n+44>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,(a=!((E=(e=!Q&B>>>0>32|0!=(0|Q))?32:B)|(e=e?0:Q)))||X(n- -64|0,g,E),o=C+16|0,$I(n+32|0,n+32|0,r=E+32|0,C=r>>>0<32?e+1|0:e,o,n),lg(n+96|0,n+32|0),a||X(A,n- -64|0,E),fI(n+32|0,64),!Q&B>>>0>=33|Q&&Ag(A+E|0,C=g+E|0,(g=B)-E|0,Q-(e+(g>>>0>>0)|0)|0,o,n),fI(n,32),yg(n+96|0,A,B,Q),Fg(n+96|0,I),fI(n+96|0,256),h=n+352|0,0}function aA(A,I){i[A>>2]=1634760805,i[A+4>>2]=857760878,i[A+8>>2]=2036477234,i[A+12>>2]=1797285236,i[A+16>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+20>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i[A+24>>2]=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,i[A+28>>2]=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,i[A+32>>2]=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,i[A+36>>2]=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,i[A+40>>2]=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,i[A+44>>2]=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24}function rA(A,I,g,B,Q,C,E){var n,a,r=0,o=0;h=n=h-96|0,K(n,C,E),a=C+16|0,Vg[i[8952]](n+32|0,32,0,a,n),C=-1;A:{if(!(0|Vg[i[8946]](g,I,B,Q,n+32|0))){if(C=0,!A)break A;!Q&B>>>0<=A-I>>>0|A>>>0<=I>>>0&&!(!Q&B>>>0>I-A>>>0|Q&&A>>>0>>0)||(I=gA(A,I,B)),g=(C=!Q&B>>>0>32|0!=(0|Q))?32:B,E=C=C?0:Q,g|C?(o=X(n- -64|0,I,g),C=E,$I(n+32|0,n+32|0,r=g+32|0,C=r>>>0<32?C+1|0:C,a,n),X(A,o,g)):(C=E,$I(n+32|0,n+32|0,r=g+32|0,C=r>>>0<32?C+1|0:C,a,n)),C=0,!Q&B>>>0<33||Ag((r=A)+(A=g)|0,A+I|0,B-A|0,Q-(E+(A>>>0>B>>>0)|0)|0,a,n)}fI(n,32)}return h=n+96|0,C}function oA(A){var I=0,g=0,B=0;if(!A)return-25;if(!i[A>>2])return-1;A:{I:{if(I=-2,!(a[A+4>>2]<16)&&(i[A+8>>2]||(I=-18,!i[A+12>>2]))){if(g=i[A+20>>2],!i[A+16>>2])break I;if(I=-6,!(g>>>0<8)&&(i[A+24>>2]||(I=-20,!i[A+28>>2]))&&(i[A+32>>2]||(I=-21,!i[A+36>>2]))){if(!(g=i[A+48>>2]))return-16;if(I=-17,!(g>>>0>16777215||(I=-14,(B=i[A+44>>2])>>>0<8||(I=-15,B>>>0>2097152||(I=-14,g<<3>>>0>B>>>0))))){if(!i[A+40>>2])return-12;if(A=i[A+52>>2])break A;I=-28}}}return I}return g?-19:-6}return A>>>0>16777215?-29:0}function eA(A,I,g){var B,Q,C,E,n,a,r,o,e,t,f,c,y,s,w,h,D,u,p,l;f=i[I+4>>2],B=i[A+4>>2],c=i[I+8>>2],Q=i[A+8>>2],y=i[I+12>>2],C=i[A+12>>2],s=i[I+16>>2],E=i[A+16>>2],w=i[I+20>>2],n=i[A+20>>2],h=i[I+24>>2],a=i[A+24>>2],D=i[I+28>>2],r=i[A+28>>2],u=i[I+32>>2],o=i[A+32>>2],p=i[I+36>>2],e=i[A+36>>2],t=i[A>>2],l=i[I>>2]^t,I=0-g|0,i[A>>2]=t^l&I,i[A+36>>2]=I&(e^p)^e,i[A+32>>2]=I&(o^u)^o,i[A+28>>2]=I&(r^D)^r,i[A+24>>2]=I&(a^h)^a,i[A+20>>2]=I&(n^w)^n,i[A+16>>2]=I&(E^s)^E,i[A+12>>2]=I&(C^y)^C,i[A+8>>2]=I&(Q^c)^Q,i[A+4>>2]=I&(B^f)^B}function tA(A,I){for(var g=0,B=0,Q=0,E=0,i=0,a=0,r=0,o=0;C[A+g|0]=n[(g>>>3|0)+I|0]>>>(7&g)&1,256!=(0|(g=g+1|0)););for(;;){a=(I=a)+1|0;A:if(n[0|(i=A+I|0)]&&(g=a,Q=1,!(I>>>0>254)))for(;;){I:if(E=C[0|(B=A+g|0)])if((0|(o=(r=C[0|i])+(E<<=Q)|0))<=15)C[0|i]=o,C[0|B]=0;else{if((0|(B=r-E|0))<-15)break A;for(C[0|i]=B;;){if(!n[0|(B=A+g|0)]){C[0|B]=1;break I}if(C[0|B]=0,B=g>>>0<255,g=g+1|0,!B)break}}if(Q>>>0>5)break A;if(!((g=I+(Q=Q+1|0)|0)>>>0<256))break}if(256==(0|a))break}}function fA(A,I,g,B){var Q,C,E,n,a=0;h=Q=h+-64|0,EA(Q+8|0,0,52),a=YA(A),i[Q+20>>2]=a,i[Q+36>>2]=a,i[Q+4>>2]=a,C=k(a),i[Q+32>>2]=C,E=k(a),i[Q+16>>2]=E,n=k(a),i[Q>>2]=n;A:if(!n|!C|!E||!(a=k(a)))m(C),m(E),m(n),A=-22;else{if(A=T(Q,A,B)){m(i[Q+32>>2]),m(i[Q+16>>2]),m(i[Q>>2]),m(a);break A}A=0,I=pA(i[Q+40>>2],i[Q+44>>2],i[Q+52>>2],I,g,i[Q+16>>2],i[Q+20>>2],a,i[Q+4>>2],0,0,B),m(i[Q+32>>2]),m(i[Q+16>>2]),(I||zA(a,i[Q>>2],i[Q+4>>2]))&&(A=-35),m(a),m(i[Q>>2])}return h=Q- -64|0,A}function cA(A,I){var g,B,Q=0;h=g=h-288|0,d(B=A+40|0,I),wg(Q=A+80|0),H(g+240|0,B),_(g+192|0,g+240|0,2128),yA(g+240|0,g+240|0,Q),sA(g+192|0,g+192|0,Q),H(g+144|0,g+192|0),_(g+144|0,g+144|0,g+192|0),H(A,g+144|0),_(A,A,g+192|0),_(A,A,g+240|0),function(A,I){var g,B=0;for(h=g=h-144|0,H(g+96|0,I),H(g+48|0,g+96|0),H(g+48|0,g+48|0),_(g+48|0,I,g+48|0),_(g+96|0,g+96|0,g+48|0),H(g+96|0,g+96|0),_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),B=1;H(g+48|0,g+48|0),5!=(0|(B=B+1|0)););for(_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),B=1;H(g+48|0,g+48|0),10!=(0|(B=B+1|0)););for(_(g+48|0,g+48|0,g+96|0),H(g,g+48|0),B=1;H(g,g),20!=(0|(B=B+1|0)););for(_(g+48|0,g,g+48|0),B=1;H(g+48|0,g+48|0),11!=(0|(B=B+1|0)););for(_(g+96|0,g+48|0,g+96|0),H(g+48|0,g+96|0),B=1;H(g+48|0,g+48|0),50!=(0|(B=B+1|0)););for(_(g+48|0,g+48|0,g+96|0),H(g,g+48|0),B=1;H(g,g),100!=(0|(B=B+1|0)););for(_(g+48|0,g,g+48|0),B=1;H(g+48|0,g+48|0),51!=(0|(B=B+1|0)););_(g+96|0,g+48|0,g+96|0),H(g+96|0,g+96|0),H(g+96|0,g+96|0),_(A,g+96|0,I),h=g+144|0}(A,A),_(A,A,g+144|0),_(A,A,g+240|0),H(g+96|0,A),_(g+96|0,g+96|0,g+192|0),yA(g+48|0,g+96|0,g+240|0);A:{if(!RI(g+48|0)){if(sA(g,g+96|0,g+240|0),Q=-1,!RI(g))break A;_(A,A,2176)}(0|KI(A))==(n[I+31|0]>>>7|0)&&mA(A,A),_(A+120|0,A,B),Q=0}return h=g+288|0,Q}function yA(A,I,g){var B,Q,C,E,n,a,r,o,e,t,f,c,y,s,w,h,D,u;B=i[g+4>>2],Q=i[I+4>>2],C=i[g+8>>2],E=i[I+8>>2],n=i[g+12>>2],a=i[I+12>>2],r=i[g+16>>2],o=i[I+16>>2],e=i[g+20>>2],t=i[I+20>>2],f=i[g+24>>2],c=i[I+24>>2],y=i[g+28>>2],s=i[I+28>>2],w=i[g+32>>2],h=i[I+32>>2],D=i[g+36>>2],u=i[I+36>>2],i[A>>2]=i[I>>2]-i[g>>2],i[A+36>>2]=u-D,i[A+32>>2]=h-w,i[A+28>>2]=s-y,i[A+24>>2]=c-f,i[A+20>>2]=t-e,i[A+16>>2]=o-r,i[A+12>>2]=a-n,i[A+8>>2]=E-C,i[A+4>>2]=Q-B}function sA(A,I,g){var B,Q,C,E,n,a,r,o,e,t,f,c,y,s,w,h,D,u;B=i[g+4>>2],Q=i[I+4>>2],C=i[g+8>>2],E=i[I+8>>2],n=i[g+12>>2],a=i[I+12>>2],r=i[g+16>>2],o=i[I+16>>2],e=i[g+20>>2],t=i[I+20>>2],f=i[g+24>>2],c=i[I+24>>2],y=i[g+28>>2],s=i[I+28>>2],w=i[g+32>>2],h=i[I+32>>2],D=i[g+36>>2],u=i[I+36>>2],i[A>>2]=i[g>>2]+i[I>>2],i[A+36>>2]=D+u,i[A+32>>2]=w+h,i[A+28>>2]=y+s,i[A+24>>2]=f+c,i[A+20>>2]=e+t,i[A+16>>2]=r+o,i[A+12>>2]=n+a,i[A+8>>2]=C+E,i[A+4>>2]=B+Q}function wA(A){var I,g=0,B=0,Q=0,E=0;for(C[11+(I=h-16|0)|0]=0,C[I+12|0]=0,C[I+13|0]=0,C[I+14|0]=0,i[I+8>>2]=0;;){for(Q=n[A+B|0],g=0;C[0|(E=(I+8|0)+g|0)]=n[0|E]|Q^n[(3232+(g<<5)|0)+B|0],7!=(0|(g=g+1|0)););if(31==(0|(B=B+1|0)))break}for(B=127&n[A+31|0],A=0,g=0;C[0|(Q=(I+8|0)+g|0)]=n[0|Q]|B^n[3263+(g<<5)|0],7!=(0|(g=g+1|0)););for(g=0;g=n[(I+8|0)+A|0]-1|g,7!=(0|(A=A+1|0)););return g>>>8&1}function hA(A,I){var g=0,B=0,Q=0,E=0,i=0;for(EA(X(A,1952,64)- -64|0,0,293);Q=B=(g=E<<3)+A|0,g=I+g|0,i=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24,B=(n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24)^(n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24),g=(n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24)^i,C[0|Q]=g,C[Q+1|0]=g>>>8,C[Q+2|0]=g>>>16,C[Q+3|0]=g>>>24,C[Q+4|0]=B,C[Q+5|0]=B>>>8,C[Q+6|0]=B>>>16,C[Q+7|0]=B>>>24,8!=(0|(E=E+1|0)););}function DA(A,I,g,B,Q){var C,E=0;h=C=h+-64|0;A:{I:{if(E=!g,(g=YA(A))>>>0<128&&E){if(i[C+56>>2]=0,i[C+48>>2]=0,i[C+52>>2]=0,i[C+40>>2]=0,i[C+44>>2]=0,E=function(A){var I=0,g=0;return I=0,A&&(g=A,I=A,(1|A)>>>0<65536||(I=g)),g=I,!(A=k(I))|!(3&n[A-4|0])||EA(A,0,g),A}(g))break I}else i[8960]=28;A=-1;break A}i[C+32>>2]=0,i[C+36>>2]=0,i[C+8>>2]=E,i[C+16>>2]=E,i[C+20>>2]=g,i[C>>2]=E,i[C+12>>2]=g,i[C+24>>2]=0,i[C+28>>2]=0,i[C+4>>2]=g,T(C,A,Q)?(i[8960]=28,A=-1):(A=1,(0|I)==i[C+40>>2]&&(A=i[C+44>>2]!=(B>>>10|0))),m(E)}return h=C- -64|0,A}function uA(A,I){var g,B=0,Q=0,E=0,o=0;if(h=g=h-48|0,!((B=oA(A))||(B=-26,I-1>>>0>1||(E=i[A+44>>2],B=i[A+48>>2],i[g>>2]=0,Q=i[A+40>>2],i[g+28>>2]=B,i[g+12>>2]=-1,i[g+8>>2]=Q,B=((Q=E>>>0<(Q=B<<3)>>>0?Q:E)>>>0)/((E=B<<2)>>>0)|0,i[g+20>>2]=B,i[g+24>>2]=B<<2,i[g+16>>2]=r(B,E),B=i[A+52>>2],i[g+36>>2]=I,i[g+32>>2]=B,B=function(A,I){var g,B=0;return h=g=h-80|0,B=-25,!A|!I||(B=k(i[A+20>>2]<<3),i[A+4>>2]=B,B?(B=function(A,I){var g,B=0,Q=0;h=g=h-16|0,Q=-22;A:if(!(!A|!I)&&1024==(((B=I<<10)>>>0)/(I>>>0)|0)&&(I=k(12),i[A>>2]=I,I)){i[I>>2]=0,i[I+4>>2]=0,I=function(A,I){if(I>>>0>4294967168)A=48;else{if(!(I=function(A){var I=0,g=0,B=0,Q=0,C=0,E=0;return A>>>0>=4294967168?(i[8960]=48,0):(A=k(76+(B=A>>>0<11?16:A+11&-8)|0))?(I=A-8|0,63&A?(Q=(-8&(E=i[(C=A-4|0)>>2]))-(g=(A=(A=(A+63&-64)-8|0)-I>>>0>15?A:A- -64|0)-I|0)|0,3&E?(i[A+4>>2]=Q|1&i[A+4>>2]|2,i[4+(Q=A+Q|0)>>2]=1|i[Q+4>>2],i[C>>2]=g|1&i[C>>2]|2,i[A+4>>2]=1|i[A+4>>2],v(I,g)):(I=i[I>>2],i[A+4>>2]=Q,i[A>>2]=I+g)):A=I,3&(I=i[A+4>>2])&&((g=-8&I)>>>0<=B+16>>>0||(i[A+4>>2]=B|1&I|2,I=A+B|0,B=g-B|0,i[I+4>>2]=3|B,i[4+(g=A+g|0)>>2]=1|i[g+4>>2],v(I,B))),A+8|0):0}(I)))return 48;i[A>>2]=I,A=0}return A}(g+12|0,B),i[8960]=I;I:{if(I)i[g+12>>2]=0;else if(I=i[g+12>>2])break I;m(i[A>>2]),i[A>>2]=0;break A}i[i[A>>2]>>2]=I,i[i[A>>2]+4>>2]=I,i[i[A>>2]+8>>2]=B,Q=0}return h=g+16|0,Q}(A,i[A+16>>2]))?eI(A,i[I+56>>2]):(function(A,I,g){var B,Q=0;B=Q=h,h=Q=Q-448&-64,!A|!I||(iI(Q- -64|0,0,0,64),xI(Q+60|0,i[I+48>>2]),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,i[I+4>>2]),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,i[I+44>>2]),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,i[I+40>>2]),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,19),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,g),hg(Q- -64|0,Q+60|0,4,0),xI(Q+60|0,i[I+12>>2]),hg(Q- -64|0,Q+60|0,4,0),(g=i[I+8>>2])&&(hg(Q- -64|0,g,i[I+12>>2],0),1&C[I+56|0]&&(fI(i[I+8>>2],i[I+12>>2]),i[I+12>>2]=0)),xI(Q+60|0,i[I+20>>2]),hg(Q- -64|0,Q+60|0,4,0),(g=i[I+16>>2])&&hg(Q- -64|0,g,i[I+20>>2],0),xI(Q+60|0,i[I+28>>2]),hg(Q- -64|0,Q+60|0,4,0),(g=i[I+24>>2])&&(hg(Q- -64|0,g,i[I+28>>2],0),2&n[I+56|0]&&(fI(i[I+24>>2],i[I+28>>2]),i[I+28>>2]=0)),xI(Q+60|0,i[I+36>>2]),hg(Q- -64|0,Q+60|0,4,0),(g=i[I+32>>2])&&hg(Q- -64|0,g,i[I+36>>2],0),dI(Q- -64|0,A,64)),h=B}(g,I,i[A+36>>2]),fI(g- -64|0,8),function(A,I){var g,B=0,Q=0,C=0;if(h=g=h-1024|0,i[I+28>>2])for(C=A+68|0,Q=A- -64|0;xI(Q,0),xI(C,B),J(g,1024,A,72),TA(i[i[I>>2]+4>>2]+(r(i[I+24>>2],B)<<10)|0,g),xI(Q,1),J(g,1024,A,72),TA(1024+(i[i[I>>2]+4>>2]+(r(i[I+24>>2],B)<<10)|0)|0,g),(B=B+1|0)>>>0>2];);fI(g,1024),h=g+1024|0}(g,A),fI(g,72),B=0):B=-22),h=g+80|0,B}(g,A))))){if(i[g+8>>2])for(;kA(g,o),(o=o+1|0)>>>0>2];);!function(A,I){var g,B=0,Q=0;if(h=g=h-2048|0,!(!A|!I)){if(Yg(g+1024|0,(i[i[I>>2]+4>>2]+(i[I+24>>2]<<10)|0)-1024|0),a[I+28>>2]>=2)for(B=1;Q=i[I+24>>2],QI(g+1024|0,(i[i[I>>2]+4>>2]+(Q+r(B,Q)<<10)|0)-1024|0),(B=B+1|0)>>>0>2];);!function(A,I){for(var g=0,B=0;tI((g=B<<3)+A|0,i[(g=I+g|0)>>2],i[g+4>>2]),128!=(0|(B=B+1|0)););}(g,g+1024|0),J(i[A>>2],i[A+4>>2],g,1024),fI(g+1024|0,1024),fI(g,1024),eI(I,i[A+56>>2])}h=g+2048|0}(A,g),B=0}return h=g+48|0,B}function pA(A,I,g,B,Q,C,E,n,a,r,o,e){var t,f;return h=t=h+-64|0,(f=k(a))?(i[t+32>>2]=0,i[t+36>>2]=0,i[t+24>>2]=0,i[t+28>>2]=0,i[t+20>>2]=E,i[t+16>>2]=C,i[t+12>>2]=Q,i[t+8>>2]=B,i[t+4>>2]=a,i[t>>2]=f,i[t+56>>2]=0,i[t+52>>2]=g,i[t+48>>2]=g,i[t+44>>2]=I,i[t+40>>2]=A,(g=uA(t,e))?fI(f,a):!r|!o||!R(r,o,t,e)?(n&&X(n,f,a),fI(f,a),g=0):(fI(f,a),fI(r,o),g=-31),m(f)):g=-22,h=t- -64|0,g}function lA(A,I,g,B,Q,E){var i,a,o=0,e=0,t=0;return h=i=h-592|0,o=-1,function(A){var I=0,g=0,B=0,Q=0,C=0;for(I=32,g=1;C=(B=n[(I=I-1|0)+A|0])-(Q=n[I+3456|0])>>8&g|255&C,g&=65535+(B^Q)>>>8,I;);return 0!=(0|C)}(a=A+32|0)&&(wA(A)||function(A){var I=0,g=0;for(g=127&(-1^n[A+31|0]),I=30;g=-1^n[A+I|0]|g,I=I-1|0;);return 1&(((255&g)-1&236-n[0|A])>>>8^-1)}(Q)&&(wA(Q)||cA(i+128|0,Q)||(ig(i+384|0,E),V(i+384|0,A,32,0),V(i+384|0,Q,32,0),V(i+384|0,I,g,B),UI(i+384|0,i+320|0),G(i+320|0),function(A,I,g,B){var Q;h=Q=h-2272|0,tA(Q+2016|0,I),tA(Q+1760|0,B),FI(Q+480|0,g),JI(Q+320|0,g),DI(Q,Q+320|0),VA(Q+320|0,Q,Q+480|0),DI(Q+160|0,Q+320|0),FI(I=Q+640|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+800|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+960|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+1120|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+1280|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(I=Q+1440|0,Q+160|0),VA(Q+320|0,Q,I),DI(Q+160|0,Q+320|0),FI(Q+1600|0,Q+160|0),Ug(A),wg(A+40|0),wg(A+80|0),B=255;A:{for(;;){if(!(n[(g=B)+(Q+2016|0)|0]|n[(Q+1760|0)+g|0])){if(B=g-1|0,g)continue;break A}break}if(!((0|g)<0))for(;AI(Q+320|0,A),(0|(g=C[(I=g)+(Q+2016|0)|0]))>=1?(DI(Q+160|0,Q+320|0),VA(Q+320|0,Q+160|0,(Q+480|0)+r((254&g)>>>1|0,160)|0)):(0|g)>-1||(DI(Q+160|0,Q+320|0),WA(Q+320|0,Q+160|0,(Q+480|0)+r((0-g&254)>>>1|0,160)|0)),(0|(g=C[I+(Q+1760|0)|0]))>=1?(DI(Q+160|0,Q+320|0),OA(Q+320|0,Q+160|0,r((254&g)>>>1|0,120)+2272|0)):(0|g)>-1||(DI(Q+160|0,Q+320|0),ZA(Q+320|0,Q+160|0,r((0-g&254)>>>1|0,120)+2272|0)),_I(A,Q+320|0),g=I-1|0,(0|I)>0;);}h=Q+2272|0}(i+8|0,i+320|0,i+128|0,a),nI(i+288|0,i+8|0),e=-1,t=Gg(i+288|0,A),o=((i+288|0)==(0|A)?e:t)|zA(A,i+288|0,32)))),h=i+592|0,o}function FA(A,I,g,B){var Q=0,C=0;A:if(i[I>>2])C=i[A+24>>2],Q=i[A+20>>2],B=B?i[I+12>>2]+(C+(-1^Q)|0)|0:(C-Q|0)-!i[I+12>>2]|0,C=0,3!=(0|(I=n[I+8|0]))&&(C=r(Q,I+1|0));else{if(!(Q=n[I+8|0])){B=i[I+12>>2]-1|0,C=0;break A}if(Q=r(Q,i[A+20>>2]),I=i[I+12>>2],B){B=(I+Q|0)-1|0,C=0;break A}B=Q-!I|0,C=0}return I=C+(Q=B-1|0)|0,eg(g,0,g,0),eg(B,0,p,0),function(A,I,g){var B=0,Q=0,C=0,E=0,i=0,n=0,a=0,e=0,t=0;A:{I:{g:{B:{Q:{C:{E:{i:{n:{if(Q=I){if(!(B=g))break n;break i}return D=A-r((A>>>0)/(g>>>0)|0,g)|0,u=0,void(p=0)}if(!A)break E;break C}if(!((E=B-1|0)&B))break Q;i=0-(E=(o(B)+33|0)-o(Q)|0)|0;break g}return D=0,u=Q,void(p=0)}if((B=32-o(Q)|0)>>>0<31)break B;break I}if(D=A&E,u=0,1==(0|B))break A;return g=31&(A=B?31-o(B-1^B)|0:32),void(p=(63&A)>>>0>=32?0:I>>>g|0)}E=B+1|0,i=63-B|0}if(B=I,C=31&(Q=63&E),Q>>>0>=32?(Q=0,C=B>>>C|0):(Q=B>>>C|0,C=((1<>>C),B=31&(i&=63),i>>>0>=32?(I=A<>>32-B|I<>>31)-(e=g&(n=i-((Q=Q<<1|C>>>31)+(B>>>0>>0)|0)>>31))|0,Q=Q-(a>>>0>>0)|0,I=I<<1|A>>>31,A=t|A<<1,t=1&n,E=E-1|0;);return D=C,u=Q,void(p=I<<1|A>>>31)}D=A,u=I,I=0}p=I}(I-(g=p)|0,(I>>>0>>0)-(I>>>0>>0)|0,i[A+24>>2]),p=u,D}function GA(A,I,g,B,Q,C,E,i,n,a){var r;return h=r=h-352|0,_g(r+32|0,64,n,a),lg(r+96|0,r+32|0),fI(r+32|0,64),yg(r+96|0,C,E,i),yg(r+96|0,34688,0-E&15,0),yg(r+96|0,I,g,B),yg(r+96|0,34688,0-g&15,0),tI(r+24|0,E,i),yg(r+96|0,r+24|0,8,0),tI(r+24|0,g,B),yg(r+96|0,r+24|0,8,0),Fg(r+96|0,r),fI(r+96|0,256),Q=kg(r,Q),fI(r,16),A&&(Q?(EA(A,0,g),Q=-1):(BI(A,I,g,B,n,1,a),Q=0)),h=r+352|0,Q}function kA(A,I){var g,B=0,Q=0,E=0;if(h=g=h-32|0,!(!A|!i[A+28>>2]))for(i[g+16>>2]=I,B=1;;){if(C[g+24|0]=Q,I=0,E=0,B)for(;i[g+28>>2]=0,B=i[g+28>>2],i[g+8>>2]=i[g+24>>2],i[g+12>>2]=B,i[g+20>>2]=I,B=i[g+20>>2],i[g>>2]=i[g+16>>2],i[g+4>>2]=B,$(A,g),(I=I+1|0)>>>0<(E=i[A+28>>2])>>>0;);if(B=E,4==(0|(Q=Q+1|0)))break}h=g+32|0}function _A(A,I,g,B,Q,C,E,n,a,r,o){var e;return h=e=h-336|0,_g(e+16|0,64,r,o),lg(e+80|0,e+16|0),fI(e+16|0,64),yg(e+80|0,E,n,a),yg(e+80|0,34688,0-n&15,0),BI(A,B,Q,C,r,1,o),yg(e+80|0,A,Q,C),yg(e+80|0,34688,0-Q&15,0),tI(e+8|0,n,a),yg(e+80|0,e+8|0,8,0),tI(e+8|0,Q,C),yg(e+80|0,e+8|0,8,0),Fg(e+80|0,I),fI(e+80|0,256),g&&(i[g>>2]=16,i[g+4>>2]=0),h=e+336|0,0}function HA(A,I,g,B,Q,C,E,i,n,a){var r;return h=r=h-352|0,og(r+32|0,n,a),lg(r+96|0,r+32|0),fI(r+32|0,64),yg(r+96|0,C,E,i),tI(r+24|0,E,i),yg(r+96|0,r+24|0,8,0),yg(r+96|0,I,g,B),tI(r+24|0,g,B),yg(r+96|0,r+24|0,8,0),Fg(r+96|0,r),fI(r+96|0,256),Q=kg(r,Q),fI(r,16),A&&(Q?(EA(A,0,g),Q=-1):(NI(A,I,g,B,n,a),Q=0)),h=r+352|0,Q}function YA(A){var I=0,g=0,B=0;A:{I:if(3&(I=A)){if(!n[0|A])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!n[0|I])break}break A}for(;g=I,I=I+4|0,!((-1^(B=i[g>>2]))&B-16843009&-2139062144););if(!(255&B))return g-A|0;for(;B=n[g+1|0],g=I=g+1|0,B;);}return I-A|0}function bA(A,I){var g,B=0,Q=0,C=0,E=0,a=0;A:if(!(((g=n[0|A])-48&255)>>>0>9)){for(Q=g,B=A;;){if(E=B,C>>>0>429496729)break A;if((Q=(255&Q)-48|0)>>>0>(-1^(B=r(C,10)))>>>0)break A;if(C=B+Q|0,!(((Q=n[0|(B=E+1|0)])-48&255)>>>0<10))break}(0|A)==(0|B)|(48==(0|g)?(0|A)!=(0|E):0)||(i[I>>2]=C,a=B)}return a}function mA(A,I){var g,B,Q,C,E,n,a,r,o;g=i[I+4>>2],B=i[I+8>>2],Q=i[I+12>>2],C=i[I+16>>2],E=i[I+20>>2],n=i[I+24>>2],a=i[I+28>>2],r=i[I+32>>2],o=i[I+36>>2],i[A>>2]=0-i[I>>2],i[A+36>>2]=0-o,i[A+32>>2]=0-r,i[A+28>>2]=0-a,i[A+24>>2]=0-n,i[A+20>>2]=0-E,i[A+16>>2]=0-C,i[A+12>>2]=0-Q,i[A+8>>2]=0-B,i[A+4>>2]=0-g}function vA(A,I,g){var B=0;B=I<<8&16711680|I<<24,B|=255&(g<<8|I>>>24)|65280&(g<<24|I>>>8),I=-16777216&((255&g)<<24|I>>>8)|16711680&((16777215&g)<<8|I>>>24)|g>>>8&65280|g>>>24|0,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,I=B,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24}function UA(A,I,g){var B;B=A,g?(i[A+48>>2]=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24):(i[A+48>>2]=0,g=0),i[B+52>>2]=g,i[A+56>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+60>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24}function SA(A,I){var g,B,Q,C,E,n,a,r,o;g=i[I+8>>2],B=i[I+12>>2],Q=i[I+16>>2],C=i[I+20>>2],E=i[I+24>>2],n=i[I+28>>2],a=i[I>>2],r=i[I+4>>2],o=i[I+36>>2],i[A+32>>2]=i[I+32>>2],i[A+36>>2]=o,i[A+24>>2]=E,i[A+28>>2]=n,i[A+16>>2]=Q,i[A+20>>2]=C,i[A+8>>2]=g,i[A+12>>2]=B,i[A>>2]=a,i[A+4>>2]=r}function NA(A,I,g,B,Q,C,E,a,r,o,e){var t;return h=t=h-48|0,i[t+8>>2]=0,i[t>>2]=0,i[t+4>>2]=0,x(t+16|0,o,e),e=n[o+16|0]|n[o+17|0]<<8|n[o+18|0]<<16|n[o+19|0]<<24,o=n[o+20|0]|n[o+21|0]<<8|n[o+22|0]<<16|n[o+23|0]<<24,i[t+4>>2]=e,i[t+8>>2]=o,function(A,I,g,B,Q,C,E,n,a,r,o){var e;h=e=h-336|0,rg(e+16|0,64,r,o),lg(e+80|0,e+16|0),fI(e+16|0,64),yg(e+80|0,E,n,a),yg(e+80|0,34704,0-n&15,0),SI(A,B,Q,C,r,1,o),yg(e+80|0,A,Q,C),yg(e+80|0,34704,0-Q&15,0),tI(e+8|0,n,a),yg(e+80|0,e+8|0,8,0),tI(e+8|0,Q,C),yg(e+80|0,e+8|0,8,0),Fg(e+80|0,I),fI(e+80|0,256),g&&(i[g>>2]=16,i[g+4>>2]=0),h=e+336|0}(A,I,g,B,Q,C,E,a,r,t,t+16|0),fI(t+16|0,32),h=t+48|0,0}function MA(A,I,g,B,Q,C,E,a,r,o){var e;return h=e=h-48|0,i[e+8>>2]=0,i[e>>2]=0,i[e+4>>2]=0,x(e+16|0,r,o),o=n[r+16|0]|n[r+17|0]<<8|n[r+18|0]<<16|n[r+19|0]<<24,r=n[r+20|0]|n[r+21|0]<<8|n[r+22|0]<<16|n[r+23|0]<<24,i[e+4>>2]=o,i[e+8>>2]=r,A=function(A,I,g,B,Q,C,E,i,n,a){var r;return h=r=h-352|0,rg(r+32|0,64,n,a),lg(r+96|0,r+32|0),fI(r+32|0,64),yg(r+96|0,C,E,i),yg(r+96|0,34704,0-E&15,0),yg(r+96|0,I,g,B),yg(r+96|0,34704,0-g&15,0),tI(r+24|0,E,i),yg(r+96|0,r+24|0,8,0),tI(r+24|0,g,B),yg(r+96|0,r+24|0,8,0),Fg(r+96|0,r),fI(r+96|0,256),Q=kg(r,Q),fI(r,16),A&&(Q?(EA(A,0,g),Q=-1):(SI(A,I,g,B,n,1,a),Q=0)),h=r+352|0,Q}(A,I,g,B,Q,C,E,a,e,e+16|0),fI(e+16|0,32),h=e+48|0,A}function dA(A){var I;return I=n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,A=n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24,p=65280&(A<<24|I>>>8)|255&(A<<8|I>>>24)|I<<8&16711680|I<<24,-16777216&((255&A)<<24|I>>>8)|16711680&((16777215&A)<<8|I>>>24)|A>>>8&65280|A>>>24|0}function PA(A,I,g,B,Q,C,E,n,a,r,o){var e;return h=e=h-336|0,og(e+16|0,r,o),lg(e+80|0,e+16|0),fI(e+16|0,64),yg(e+80|0,E,n,a),tI(e+8|0,n,a),yg(e+80|0,e+8|0,8,0),NI(A,B,Q,C,r,o),yg(e+80|0,A,Q,C),tI(e+8|0,Q,C),yg(e+80|0,e+8|0,8,0),Fg(e+80|0,I),fI(e+80|0,256),g&&(i[g>>2]=16,i[g+4>>2]=0),h=e+336|0,0}function RA(A,I,g,B){var Q;if(h=Q=h-192|0,!(!g|(I-1&255)>>>0>=64|(B-1&255)>>>0>=64))return E[Q+130>>1]=257,C[Q+129|0]=B,C[Q+128|0]=I,WI(Q+128|4),tI(Q+128|8,0,0),EA(Q+144|0,0,48),hA(A,Q+128|0),EA(B+Q|0,0,128-B|0),QA(I=A,A=X(Q,g,B),128,0),fI(A,128),h=A+192|0,0;OI(),e()}function JA(A,I,g){i[A+48>>2]=g?n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24:0,i[A+52>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+56>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i[A+60>>2]=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24}function xA(A,I,g,B,Q,C,E){var n;return h=n=h-16|0,A=EA(A,0,128),E>>>0<2147483649&&!(B|C)?E>>>0>8191&&Q|C?(cI(n,16),A=pA(Q,E>>>10|0,1,I,g,n,16,0,32,A,128,2)?-1:0):(i[8960]=28,A=-1):(i[8960]=22,A=-1),h=n+16|0,A}function LA(A){var I=0;return(0-(I=A+4&(A+65488>>>8^-1)&(57-A>>>8^-1)&255|((I=A-65|0)>>>8^-1)&I&(90-A>>>8^-1)&255|A+185&(A+65439>>>8^-1)&(122-A>>>8^-1)&255|63&(1+(16288^A)>>>8^-1)|62&(1+(16338^A)>>>8^-1))>>>8^-1)&1+(65470^A)>>>8&255|I}function KA(A){var I=0;return(0-(I=A+4&(A+65488>>>8^-1)&(57-A>>>8^-1)&255|((I=A-65|0)>>>8^-1)&I&(90-A>>>8^-1)&255|A+185&(A+65439>>>8^-1)&(122-A>>>8^-1)&255|63&(1+(16336^A)>>>8^-1)|62&(1+(16340^A)>>>8^-1))>>>8^-1)&1+(65470^A)>>>8&255|I}function qA(A,I){var g,B,Q=0,E=0,i=0,n=0;for(h=g=h-16|0,Q=10;n=Q,i=(I>>>0)/10|0,C[0|(E=(Q=Q-1|0)+(g+6|0)|0)]=I-r(i,10)|48,!(I>>>0<10)&&(I=i,Q););B=X(I=A,E,A=11-n|0)+A|0,C[0|B]=0,h=g+16|0}function XA(A,I,g){var B=0,Q=0,C=0;if(!g)return 0;A:if(B=n[0|A]){for(;;){if((0|(Q=n[0|I]))==(0|B)&&!(!(g=g-1|0)|!Q)){if(I=I+1|0,B=n[A+1|0],A=A+1|0,B)continue;break A}break}C=B}return(255&C)-n[0|I]|0}function VA(A,I,g){var B,Q,C,E=0;h=Q=h-48|0,sA(A,E=I+40|0,I),yA(B=A+40|0,E,I),_(E=A+80|0,A,g),_(B,B,g+40|0),_(C=A+120|0,g+120|0,I+120|0),_(A,I+80|0,g+80|0),sA(Q,A,A),yA(A,E,B),sA(B,E,B),sA(E,Q,C),yA(C,Q,C),h=Q+48|0}function WA(A,I,g){var B,Q,C,E=0;h=Q=h-48|0,sA(A,E=I+40|0,I),yA(B=A+40|0,E,I),_(E=A+80|0,A,g+40|0),_(B,B,g),_(C=A+120|0,g+120|0,I+120|0),_(A,I+80|0,g+80|0),sA(Q,A,A),yA(A,E,B),sA(B,E,B),yA(E,Q,C),sA(C,Q,C),h=Q+48|0}function TA(A,I){for(var g=0,B=0,Q=0,C=0;Q=(g=B<<3)+A|0,C=n[0|(g=I+g|0)]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,i[Q>>2]=C,i[Q+4>>2]=g,128!=(0|(B=B+1|0)););}function jA(A,I,g){var B;if(i[12+(B=h-16|0)>>2]=A,i[B+8>>2]=I,I=0,i[B+4>>2]=0,(0|g)>=1)for(;i[B+4>>2]=i[B+4>>2]|n[i[B+8>>2]+I|0]^n[i[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(i[B+4>>2]-1>>>8&1)-1|0}function ZA(A,I,g){var B,Q,C,E=0;h=Q=h-48|0,sA(A,E=I+40|0,I),yA(B=A+40|0,E,I),_(E=A+80|0,A,g+40|0),_(B,B,g),_(C=A+120|0,g+80|0,I+120|0),sA(Q,I=I+80|0,I),yA(A,E,B),sA(B,E,B),yA(E,Q,C),sA(C,Q,C),h=Q+48|0}function OA(A,I,g){var B,Q,C,E=0;h=Q=h-48|0,sA(A,E=I+40|0,I),yA(B=A+40|0,E,I),_(E=A+80|0,A,g),_(B,B,g+40|0),_(C=A+120|0,g+80|0,I+120|0),sA(Q,I=I+80|0,I),yA(A,E,B),sA(B,E,B),sA(E,Q,C),yA(C,Q,C),h=Q+48|0}function zA(A,I,g){var B;if(i[12+(B=h-16|0)>>2]=A,i[B+8>>2]=I,I=0,C[B+7|0]=0,g)for(;C[B+7|0]=n[B+7|0]|n[i[B+8>>2]+I|0]^n[i[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(n[B+7|0]-1>>>8&1)-1|0}function $A(A,I,g){var B,Q=0,E=0;if(h=B=h-16|0,C[B+15|0]=0,E=-1,!(0|Vg[i[8950]](A,I,g))){for(;C[B+15|0]=n[A+Q|0]|n[B+15|0],32!=(0|(Q=Q+1|0)););E=0-(n[B+15|0]-1>>>8&1)|0}return h=B+16|0,E}function AI(A,I){var g,B,Q,C,E;h=B=h-48|0,H(A,I),H(g=A+80|0,E=I+40|0),function(A,I){var g,B,Q,C,E,n,a,o,e,t,f,c,y,s,w,h,D,u,l,F,G,k,_,H,Y,b,m,v,U,S,N,M,d,P,R,J,x,L,K=0,q=0,X=0,V=0,W=0,T=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,QA=0,CA=0,EA=0,iA=0,nA=0;E=K=(W=i[I+12>>2])<<1,n=K>>31,a=K=(O=i[I+4>>2])<<1,K=eg(E,n,K,g=K>>31),X=p,q=K,k=K=gA=i[I+8>>2],V=eg(K,z=K>>31,K,z),K=p+X|0,K=(q=q+V|0)>>>0>>0?K+1|0:K,V=q,B=q=BA=i[I+16>>2],o=q>>31,e=q=(QA=i[I>>2])<<1,X=eg(B,o,q,Q=q>>31),K=p+K|0,K=(q=V+X|0)>>>0>>0?K+1|0:K,j=q,X=i[I+28>>2],l=q=r(X,38),U=X,V=eg(q,h=q>>31,X,_=X>>31),K=p+K|0,K=(q=j+V|0)>>>0>>0?K+1|0:K,T=q,j=i[I+32>>2],Z=eg(f=q=r(j,19),c=q>>31,q=(V=i[I+24>>2])<<1,q>>31),q=p+K|0,q=Z>>>0>($=T+Z|0)>>>0?q+1|0:q,T=$,IA=i[I+36>>2],t=K=r(IA,38),C=K>>31,D=I=($=i[I+20>>2])<<1,Z=eg(K,C,I,s=I>>31),I=p+q|0,H=(K=T+Z|0)<<1,P=K=(K>>>0>>0?I+1|0:I)<<1|K>>>31,S=I=H+33554432|0,R=K=I>>>0<33554432?K+1|0:K,I=K>>26,K=(67108863&K)<<6|S>>>26,q=eg(a,g,B,o),Z=p,T=K,u=K=gA<<1,CA=W,W=eg(K,w=K>>31,W,Y=W>>31),K=p+Z|0,K=(q=W+q|0)>>>0>>0?K+1|0:K,gA=$,W=(Z=eg($,F=$>>31,e,Q))+q|0,q=p+K|0,q=W>>>0>>0?q+1|0:q,BA=W,N=K=X<<1,W=eg(f,c,K,b=K>>31),K=p+q|0,K=(X=BA+W|0)>>>0>>0?K+1|0:K,q=X,W=V,X=eg(t,C,V,y=V>>31),K=p+K|0,K=(q=q+X|0)>>>0>>0?K+1|0:K,X=q,I=I+(q=K<<1|q>>>31)|0,EA=K=T+(X<<=1)|0,K=K>>>0>>0?I+1|0:I,J=I=EA+16777216|0,I=(33554431&(K=I>>>0<16777216?K+1|0:K))<<7|I>>>25,X=K>>25,K=eg(E,n,CA,Y),q=p,T=I,I=(Z=eg(B,o,u,w))+K|0,K=p+q|0,K=I>>>0>>0?K+1|0:K,q=eg(a,g,D,s),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(Z=eg(e,Q,V,y))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,Z=j,j=eg(f,c,j,G=j>>31),K=p+I|0,K=(q=j+q|0)>>>0>>0?K+1|0:K,I=(j=eg(t,C,N,b))+q|0,q=p+K|0,I=((K=I)>>>0>>0?q+1|0:q)<<1|K>>>31,j=K<<1,K=I+X|0,K=(q=T+j|0)>>>0>>0?K+1|0:K,iA=q=(I=q)+33554432|0,X=K=q>>>0<33554432?K+1|0:K,K=-67108864&q,i[A+24>>2]=I-K,j=A,I=eg(I=r($,38),I>>31,$,F),K=p,T=I,$=eg(I=QA,q=I>>31,I,q),q=p+K|0,q=(I=T+$|0)>>>0<$>>>0?q+1|0:q,K=I,AA=I=r(V,19),m=I>>31,M=I=B<<1,I=K+(V=eg(AA,m,I,v=I>>31))|0,K=p+q|0,K=I>>>0>>0?K+1|0:K,q=eg(E,n,l,h),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(V=eg(f,c,u,w))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,V=eg(a,g,t,C),K=p+I|0,x=K=((I=q=V+q|0)>>>0>>0?K+1|0:K)<<1|I>>>31,QA=I=33554432+($=I<<1)|0,BA=q=I>>>0<33554432?K+1|0:K,I=(67108863&q)<<6|I>>>26,V=q>>26,K=eg(AA,m,D,s),q=p,nA=I,I=(O=eg(e,Q,T=O,d=T>>31))+K|0,K=p+q|0,K=I>>>0>>0?K+1|0:K,q=(O=eg(B,o,l,h))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,O=eg(f,c,E,n),K=p+I|0,K=(q=O+q|0)>>>0>>0?K+1|0:K,I=(O=eg(t,C,k,z))+q|0,q=p+K|0,I=((K=I)>>>0>>0?q+1|0:q)<<1|K>>>31,O=K<<1,K=I+V|0,K=(q=nA+O|0)>>>0>>0?K+1|0:K,O=q,(I=q+16777216|0)>>>0<16777216&&(K=K+1|0),nA=I,q=I,I=K>>25,K=(33554431&K)<<7|q>>>25,V=I,I=eg(e,Q,k,z),q=p,L=K,T=eg(a,g,T,d),K=p+q|0,K=(I=T+I|0)>>>0>>0?K+1|0:K,T=eg(AA,m,W,y),q=p+K|0,q=(I=T+I|0)>>>0>>0?q+1|0:q,T=eg(D,s,l,h),K=p+q|0,K=(I=T+I|0)>>>0>>0?K+1|0:K,q=eg(f,c,M,v),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(T=eg(t,C,E,n))+I|0,I=p+K|0,K=(K=(I=q>>>0>>0?I+1|0:I)<<1|q>>>31)+V|0,q=K=(I=L+(q<<=1)|0)>>>0>>0?K+1|0:K,T=K=I+33554432|0,V=q=K>>>0<33554432?q+1|0:q,K&=-67108864,i[j+8>>2]=I-K,I=eg(u,w,gA,F),q=p,K=(AA=eg(B,o,E,n))+I|0,I=p+q|0,I=K>>>0>>0?I+1|0:I,q=(AA=eg(a,g,W,y))+K|0,K=p+I|0,K=q>>>0>>0?K+1|0:K,I=(AA=eg(e,Q,U,_))+q|0,q=p+K|0,q=I>>>0>>0?q+1|0:q,AA=eg(t,C,Z,G),K=p+q|0,K=(K=(K=(I=AA+I|0)>>>0>>0?K+1|0:K)<<1|I>>>31)+(q=X>>26)|0,q=I=(X=(67108863&X)<<6|iA>>>26)+(I<<1)|0,I=K=I>>>0>>0?K+1|0:K,iA=K=q+16777216|0,X=I=K>>>0<16777216?I+1|0:I,I=-33554432&K,i[j+28>>2]=q-I,I=eg(e,Q,CA,Y),K=p,q=eg(a,g,k,z),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=eg(W,y,l,h),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(z=eg(f,c,D,s))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,K=(z=eg(t,C,B,o))+q|0,q=p+I|0,I=K,K=(K>>>0>>0?q+1|0:q)<<1|K>>>31,q=I<<1,K=(I=V>>26)+K|0,K=(q=q+(V=(67108863&V)<<6|T>>>26)|0)>>>0>>0?K+1|0:K,CA=q=(I=q)+16777216|0,V=K=q>>>0<16777216?K+1|0:K,K=-33554432&q,i[j+12>>2]=I-K,z=A,I=eg(W,y,u,w),K=p,q=eg(B,o,B,o),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=eg(E,n,D,s),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=eg(a,g,N,b),K=p+K|0,K=(I=q+I|0)>>>0>>0?K+1|0:K,q=(j=eg(e,Q,Z,G))+I|0,I=p+K|0,I=q>>>0>>0?I+1|0:I,K=(IA=eg(t,C,j=IA,T=j>>31))+q|0,q=p+I|0,A=(I=K)<<1,K=(I=X>>25)+(K=(K>>>0>>0?q+1|0:q)<<1|K>>>31)|0,K=(q=A+(X=(33554431&X)<<7|iA>>>25)|0)>>>0>>0?K+1|0:K,IA=q=(I=q)+33554432|0,X=K=q>>>0<33554432?K+1|0:K,K=-67108864&q,i[z+32>>2]=I-K,K=V>>25,q=(V=(33554431&V)<<7|CA>>>25)+(H-(I=-67108864&S)|0)|0,I=K+(P-((I>>>0>H>>>0)+R|0)|0)|0,K=I=q>>>0>>0?I+1|0:I,V=I=q+33554432|0,I=((67108863&(K=I>>>0<33554432?K+1|0:K))<<6|I>>>26)+(EA=EA-(-33554432&J)|0)|0,i[z+20>>2]=I,I=-67108864&V,i[z+16>>2]=q-I,I=eg(E,n,W,y),q=p,K=(W=eg(gA,F,M,v))+I|0,I=p+q|0,I=K>>>0>>0?I+1|0:I,q=(W=eg(u,w,U,_))+K|0,K=p+I|0,K=q>>>0>>0?K+1|0:K,I=(W=eg(a,g,Z,G))+q|0,q=p+K|0,q=I>>>0>>0?q+1|0:q,W=eg(e,Q,j,T),K=p+q|0,K=(K=(K=(I=W+I|0)>>>0>>0?K+1|0:K)<<1|I>>>31)+(q=X>>26)|0,K=(I=(X=(67108863&X)<<6|IA>>>26)+(I<<1)|0)>>>0>>0?K+1|0:K,q=I,X=I,I=K,I=(K=q+16777216|0)>>>0<16777216?I+1|0:I,q=-33554432&K,i[z+36>>2]=X-q,V=O-(-33554432&nA)|0,I=(K=eg((33554431&I)<<7|K>>>25,I>>25,19,0))+($-(q=-67108864&QA)|0)|0,q=p+(x-((q>>>0>$>>>0)+BA|0)|0)|0,q=I>>>0>>0?q+1|0:q,K=I,I=q,I=((67108863&(I=(q=K+33554432|0)>>>0<33554432?I+1|0:I))<<6|q>>>26)+V|0,i[z+4>>2]=I,A=-67108864&q,i[z>>2]=K-A}(C=A+120|0,I+80|0),sA(Q=A+40|0,I,E),H(B,Q),sA(Q,g,A),yA(g,g,A),yA(A,B,Q),yA(C,C,g),h=B+48|0}function II(A){var I,g;return(A=(I=i[8943])+(g=A+3&-4)|0)>>>0<=I>>>0&&(0|g)>=1||A>>>0>Wg()<<16>>>0&&!(0|w(0|A))?(i[8960]=48,-1):(i[8943]=A,I)}function gI(A,I){var g;return h=g=h+-64|0,(I-1&255)>>>0>=64&&(OI(),e()),C[g+3|0]=1,C[g+1|0]=0,C[g+2|0]=1,C[0|g]=I,WI(4|g),tI(8|g,0,0),EA(g+16|0,0,48),hA(A,g),h=g- -64|0,0}function BI(A,I,g,B,Q,C,E){var i=0,n=0;i=B,1==(((i=(n=g+63|0)>>>0<63?i+1|0:i)>>>6|0)+(0!=(0|(i=(63&i)<<26|n>>>6)))|0)&(n=0-i|0)>>>0>>0&&(OI(),e()),SI(A,I,g,B,Q,C,E)}function QI(A,I){for(var g=0,B=0,Q=0,C=0;B=(g=Q<<3)+A|0,C=i[(g=I+g|0)>>2],g=i[B+4>>2]^i[g+4>>2],i[B>>2]=i[B>>2]^C,i[B+4>>2]=g,128!=(0|(Q=Q+1|0)););}function CI(A){var I,g;return 95&(1+(32704^A)>>>8^-1)|45&(1+(16321^A)>>>8^-1)|(I=A+65510>>>8&255)&A+65|(g=A+65484>>>8|0)&A+71&(255^I)|A+252&A+65474>>>8&(-1^g)&255}function EI(A){var I,g;return 47&(1+(16320^A)>>>8^-1)|43&(1+(16321^A)>>>8^-1)|(I=A+65510>>>8&255)&A+65|(g=A+65484>>>8|0)&A+71&(255^I)|A+252&A+65474>>>8&(-1^g)&255}function iI(A,I,g,B){var Q=0;Q=-1;A:if(!(g>>>0>64|B-1>>>0>63)){I:{if(!g||!I){if(!gI(A,255&B))break I;break A}if(RA(A,255&B,I,255&g))break A}Q=0}return Q}function nI(A,I){var g,B,Q;h=g=h-144|0,j(g+96|0,I+80|0),_(g+48|0,I,g+96|0),_(g,I+40|0,g+96|0),BA(A,g),B=A,Q=KI(g+48|0)<<7^n[A+31|0],C[B+31|0]=Q,h=g+144|0}function aI(A,I){var g,B=0;if(C[15+(g=h-16|0)|0]=0,I)for(;C[g+15|0]=n[A+B|0]|n[g+15|0],(0|(B=B+1|0))!=(0|I););return n[g+15|0]-1>>>8&1}function rI(A,I,g,B){var Q;return B=I+B|0,B=(Q=A+g|0)>>>0>>0?B+1|0:B,g=eg(A<<1&-2,1&(I=I<<1|A>>>31),g,0),A=p+B|0,p=A=(I=g+Q|0)>>>0>>0?A+1|0:A,I}function oI(A,I,g){var B,Q=0;if(B=g>>>3|0)for(g=0;vA((Q=g<<3)+A|0,i[(Q=I+Q|0)>>2],i[Q+4>>2]),(0|B)!=(0|(g=g+1|0)););}function eI(A,I){var g=0;!function(A,I){I&&((I=i[A>>2])&&fI(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&fI(I,i[A+20>>2]<<3))}(A,4&I),m(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&m(g),m(I),i[A>>2]=0}function tI(A,I,g){C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24}function fI(A,I){var g;if(i[12+(g=h-16|0)>>2]=A,I)for(A=0;C[i[g+12>>2]+A|0]=0,(0|I)!=(0|(A=A+1|0)););}function cI(A,I){A|=0;var g=0,B=0,Q=0;if(I|=0)for(;B=A+g|0,Q=YI(),C[0|B]=Q,(0|(g=g+1|0))!=(0|I););}function yI(A,I,g,B,Q){var C,E;return A|=0,I|=0,g|=0,B|=0,h=C=(E=h)-128&-64,IA(C,Q|=0),z(C,I,g,B),Z(C,A),h=E,0}function sI(A){var I=0,g=0,B=0;for(I=1;I=n[0|(B=A+g|0)]+I|0,C[0|B]=I,I=I>>>8|0,4!=(0|(g=g+1|0)););}function wI(A,I,g,B,Q,C,E,i){var n,a=0;return h=n=h-32|0,a=-1,jI(n,E,i)||(a=Qg(A,I,g,B,Q,C,n),fI(n,32)),h=n+32|0,a}function hI(A,I,g,B,Q,C,E,i){var n,a=0;return h=n=h-32|0,a=-1,jI(n,E,i)||(a=Cg(A,I,g,B,Q,C,n),fI(n,32)),h=n+32|0,a}function DI(A,I){var g,B,Q;_(A,I,g=I+120|0),_(A+40|0,B=I+40|0,Q=I+80|0),_(A+80|0,Q,g),_(A+120|0,I,B)}function uI(A,I,g,B,Q,C,E){return!B&g>>>0>=16|B?hI(A,I+16|0,I,g-16|0,B-(g>>>0<16)|0,Q,C,E):-1}function pI(A,I){for(var g=0,B=0;C[0|(B=A+g|0)]=n[0|B]^n[I+g|0],8!=(0|(g=g+1|0)););}function lI(A,I,g){var B,Q;h=B=(Q=h)-384&-64,qI(B,0,0,24),sg(B,I,32,0),sg(B,g,32,0),TI(B,A,24),h=Q}function FI(A,I){var g;sA(A,g=I+40|0,I),yA(A+40|0,g,I),SA(A+80|0,I+80|0),_(A+120|0,I+120|0,2224)}function GI(A,I,g,B,Q,C,E){return I-1>>>0>63|E>>>0>64?-1:function(A,I,g,B,Q,C,E){var i,n=0;if(i=n=h,h=n=n-384&-64,!(!A|(B-1&255)>>>0>=64|(Q|C?!I:0)|E>>>0>=65|(E?!g:0)))return E?RA(n,B,g,E):gI(n,B),QA(n,I,Q,C),M(n,A,B),h=i,0;OI(),e()}(A,g,C,255&I,B,Q,255&E)}function kI(A,I,g,B,Q,C,E){return!B&g>>>0>=4294967280|B&&(OI(),e()),wI(A+16|0,A,I,g,B,Q,C,E)}function _I(A,I){var g;_(A,I,g=I+120|0),_(A+40|0,I+40|0,I=I+80|0),_(A+80|0,I,g)}function HI(A){var I;return I=n[0|A]|n[A+1|0]<<8,A=n[A+2|0],p=A>>>16|0,I|A<<16}function YI(){var A,I;return h=A=h-16|0,C[A+15|0]=0,I=0|f(1024,A+15|0,0),h=A+16|0,0|I}function bI(A,I,g,B,Q){var E;return h=E=h-416|0,function(A,I){var g,B=0,Q=0;for(h=g=h-192|0,MI(A),EA(g- -64|0,54,128),C[g+64|0]=54^n[0|I],B=1;C[0|(Q=(g- -64|0)+B|0)]=n[0|Q]^n[I+B|0],32!=(0|(B=B+1|0)););for(V(A,g- -64|0,128,0),MI(A=A+208|0),EA(g- -64|0,92,128),C[g+64|0]=92^n[0|I],B=1;C[0|(Q=(g- -64|0)+B|0)]=n[0|Q]^n[I+B|0],32!=(0|(B=B+1|0)););V(A,g- -64|0,128,0),fI(g- -64|0,128),fI(g,64),h=g+192|0}(E,Q),V(E,I,g,B),function(A,I){var g,B=0;h=g=h+-64|0,function(A,I){var g;h=g=h+-64|0,UI(A,g),V(A=A+208|0,g,64,0),UI(A,I),fI(g,64),h=g- -64|0}(A,g),B=i[g+28>>2],A=i[g+24>>2],C[I+24|0]=A,C[I+25|0]=A>>>8,C[I+26|0]=A>>>16,C[I+27|0]=A>>>24,C[I+28|0]=B,C[I+29|0]=B>>>8,C[I+30|0]=B>>>16,C[I+31|0]=B>>>24,B=i[g+20>>2],A=i[g+16>>2],C[I+16|0]=A,C[I+17|0]=A>>>8,C[I+18|0]=A>>>16,C[I+19|0]=A>>>24,C[I+20|0]=B,C[I+21|0]=B>>>8,C[I+22|0]=B>>>16,C[I+23|0]=B>>>24,B=i[g+12>>2],A=i[g+8>>2],C[I+8|0]=A,C[I+9|0]=A>>>8,C[I+10|0]=A>>>16,C[I+11|0]=A>>>24,C[I+12|0]=B,C[I+13|0]=B>>>8,C[I+14|0]=B>>>16,C[I+15|0]=B>>>24,B=i[g+4>>2],A=i[g>>2],C[0|I]=A,C[I+1|0]=A>>>8,C[I+2|0]=A>>>16,C[I+3|0]=A>>>24,C[I+4|0]=B,C[I+5|0]=B>>>8,C[I+6|0]=B>>>16,C[I+7|0]=B>>>24,h=g- -64|0}(E,A),h=E+416|0,0}function mI(A,I,g,B){var Q;return h=Q=h-208|0,MI(Q),V(Q,I,g,B),UI(Q,A),h=Q+208|0,0}function vI(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function UI(A,I){var g;h=g=h-704|0,function(A,I){var g,B=0;(g=i[A+72>>2]>>>3&127)>>>0<=111?X(80+(A+g|0)|0,35424,112-g|0):(X((B=A+80|0)+g|0,35424,128-g|0),F(A,B,I,I+640|0),EA(B,0,112)),oI(A+192|0,A- -64|0,16),F(A,A+80|0,I,I+640|0)}(A,g),oI(I,A,64),fI(g,704),fI(A,208),h=g+704|0}function SI(A,I,g,B,Q,C,E){1==(0|B)|B>>>0>1&&(OI(),e()),Vg[i[8957]](A,I,g,B,Q,C,E)}function NI(A,I,g,B,Q,C){1==(0|B)|B>>>0>1&&(OI(),e()),Vg[i[8956]](A,I,g,B,Q,1,0,C)}function MI(A){i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,X(A,34720,64)}function dI(A,I,g){return g>>>0>=256&&(t(2016,2036,107,2089),e()),M(A,I,255&g)}function PI(){var A;h=A=h-16|0,C[A+15|0]=0,f(1062,A+15|0,0),h=A+16|0}function RI(A){var I;return h=I=h-32|0,BA(I,A),A=aI(I,32),h=I+32|0,A}function JI(A,I){var g;h=g=h-128|0,function(A,I){SA(A,I),SA(A+40|0,I+40|0),SA(A+80|0,I+80|0)}(g+8|0,I),AI(A,g+8|0),h=g+128|0}function xI(A,I){C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24}function LI(A,I,g){eA(A,I,g),eA(A+40|0,I+40|0,g),eA(A+80|0,I+80|0,g)}function KI(A){var I;return h=I=h-32|0,BA(I,A),h=I+32|0,1&C[0|I]}function qI(A,I,g,B){return 0|iI(A|=0,I|=0,g|=0,B|=0)}function XI(A){C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0}function VI(A){i[A>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0}function WI(A){C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0}function TI(A,I,g){return 0|dI(A|=0,I|=0,g|=0)}function jI(A,I,g){return 0|function(A,I,g){var B,Q=0;return h=B=h-32|0,Q=-1,$A(B,g,I)||(Q=K(A,35552,B)),h=B+32|0,Q}(A|=0,I|=0,g|=0)}function ZI(A,I,g){return 0|$A(A|=0,I|=0,g|=0)}function OI(){var A;(A=i[9105])&&Vg[0|A](),c(),e()}function zI(A){Ug(A),wg(A+40|0),wg(A+80|0),Ug(A+120|0)}function $I(A,I,g,B,Q,C){Vg[i[8953]](A,I,g,B,Q,0,0,C)}function Ag(A,I,g,B,Q,C){Vg[i[8953]](A,I,g,B,Q,1,0,C)}function Ig(A,I){return A|=0,cI(I|=0,32),0|cg(A,I)}function gg(A,I){return A=function(A,I){var g=0,B=0;A:{if(B=255&I){if(3&A)for(;;){if(!(g=n[0|A])|(0|g)==(255&I))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(g=i[A>>2]))&g-16843009&-2139062144))for(B=r(B,16843009);;){if((-1^(g^=B))&g-16843009&-2139062144)break I;if(g=i[A+4>>2],A=A+4|0,g-16843009&(-1^g)&-2139062144)break}for(;(B=n[0|(g=A)])&&(A=g+1|0,(0|B)!=(255&I)););return g}return YA(A)+A|0}return A}(A,I),n[0|A]==(255&I)?A:0}function Bg(A,I,g,B,Q,C){return q(A,I,g,B,Q,C,0),0}function Qg(A,I,g,B,Q,C,E){return nA(A,I,g,B,Q,C,E)}function Cg(A,I,g,B,Q,C,E){return rA(A,I,g,B,Q,C,E)}function Eg(A,I,g,B,Q,C,E){return GI(A,I,g,B,Q,C,E)}function ig(A,I){MI(A),I&&V(A,35728,34,0)}function ng(A,I,g,B,Q){return lA(A,I,g,B,Q,0)}function ag(A,I){return 0|cg(A|=0,I|=0)}function rg(A,I,g,B){Vg[i[8955]](A,I,0,g,B)}function og(A,I,g){Vg[i[8954]](A,64,0,I,g)}function eg(A,I,g,B){return function(A,I,g,B){var Q,C,E,i,n=0,a=0;return i=r(n=g>>>16|0,a=A>>>16|0),n=(65535&(a=((E=r(Q=65535&g,C=65535&A))>>>16|0)+r(a,Q)|0))+r(n,C)|0,A=(r(I,g)+i|0)+r(A,B)+(a>>>16)+(n>>>16)|0,p=A,65535&E|n<<16}(A,I,g,B)}function tg(A,I){return(255&(A^I))-1>>>31|0}function fg(A,I,g){!function(A,I,g){var B,Q;h=B=h-128|0,wg(A),wg(A+40|0),Ug(A+80|0),LI(A,I,tg(g=g-((0-(Q=(128&g)>>>7|0)&g)<<1)<<24>>24,1)),LI(A,I+120|0,tg(g,2)),LI(A,I+240|0,tg(g,3)),LI(A,I+360|0,tg(g,4)),LI(A,I+480|0,tg(g,5)),LI(A,I+600|0,tg(g,6)),LI(A,I+720|0,tg(g,7)),LI(A,I+840|0,tg(g,8)),SA(B+8|0,A+40|0),SA(B+48|0,A),mA(B+88|0,A+80|0),LI(A,B+8|0,Q),h=B+128|0}(A,r(I,960)+3488|0,g)}function cg(A,I){return 0|Vg[i[8951]](A,I)}function yg(A,I,g,B){Vg[i[8948]](A,I,g,B)}function sg(A,I,g,B){return hg(A,I,g,B)}function wg(A){i[A>>2]=1,EA(A+4|0,0,36)}function hg(A,I,g,B){return QA(A,I,g,B)}function Dg(A,I,g){return function(A,I,g){var B=0,Q=0,C=0,E=0;return B=31&(C=E=63&g),C>>>0>=32?B=-1>>>B|0:(Q=-1>>>B|0,B=(1<>>B),C=B&A,B=I&Q,Q=31&E,E>>>0>=32?(B=C<>>32-Q|B<>>0>=32?(B=-1<>>32-g|-1<>>0>=32?(g=0,A=B>>>I|0):(g=B>>>I|0,A=((1<>>I),p=g|C,A|E}(A,I,g)}function ug(A,I,g){return function(A,I,g){var B=0,Q=0,C=0,E=0,i=0;return B=31&(E=63&g),E>>>0>=32?(Q=-1<>>32-B|-1<>>0>=32?(Q=0,E=B>>>C|0):(Q=B>>>C|0,E=((1<>>C),i=Q,C=31&(B=0-g&63),B>>>0>=32?(Q=0,g=-1>>>C|0):(Q=-1>>>C|0,g=(1<>>C),A&=g,I&=Q,Q=31&B,B>>>0>=32?(g=A<>>32-Q|I<>>0<18,U=U+2|0,Y;);xI(A,g+1634760805|0),xI(A+4|0,h+B|0),xI(A+8|0,D+Q|0),xI(A+12|0,b+C|0),xI(A+16|0,u+E|0),xI(A+20|0,H+857760878|0),xI(A+24|0,p+e|0),xI(A+28|0,l+t|0),xI(A+32|0,F+f|0),xI(A+36|0,_+c|0),xI(A+40|0,I+2036477234|0),xI(A+44|0,s+i|0),xI(A+48|0,y+a|0),xI(A+52|0,w+r|0),xI(A+56|0,k+o|0),xI(A+60|0,G+1797285236|0)}(A,I,g)}function vg(A){EA(A,0,1024)}function Ug(A){EA(A,0,40)}function Sg(){return 16}function Ng(){return 32}function Mg(){return 24}function dg(){return-17}function Pg(){return 64}function Rg(){return 1}function Jg(){return 2}function xg(){return 8}function Lg(){return 0}function Kg(){return-1}function qg(){return 3}Q(I=n,1024,\"InsgcmV0dXJuIE1vZHVsZS5nZXRSYW5kb21WYWx1ZSgpOyB9IgB7IGlmIChNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPT09IHVuZGVmaW5lZCkgeyB0cnkgeyB2YXIgd2luZG93XyA9ICdvYmplY3QnID09PSB0eXBlb2Ygd2luZG93ID8gd2luZG93IDogc2VsZjsgdmFyIGNyeXB0b18gPSB0eXBlb2Ygd2luZG93Xy5jcnlwdG8gIT09ICd1bmRlZmluZWQnID8gd2luZG93Xy5jcnlwdG8gOiB3aW5kb3dfLm1zQ3J5cHRvOyB2YXIgcmFuZG9tVmFsdWVzU3RhbmRhcmQgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IG5ldyBVaW50MzJBcnJheSgxKTsgY3J5cHRvXy5nZXRSYW5kb21WYWx1ZXMoYnVmKTsgcmV0dXJuIGJ1ZlswXSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVzU3RhbmRhcmQoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVzU3RhbmRhcmQ7IH0gY2F0Y2ggKGUpIHsgdHJ5IHsgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOyB2YXIgcmFuZG9tVmFsdWVOb2RlSlMgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IGNyeXB0b1sncmFuZG9tQnl0ZXMnXSg0KTsgcmV0dXJuIChidWZbMF0gPDwgMjQgfCBidWZbMV0gPDwgMTYgfCBidWZbMl0gPDwgOCB8IGJ1ZlszXSkgPj4+IDA7IH07IHJhbmRvbVZhbHVlTm9kZUpTKCk7IE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9IHJhbmRvbVZhbHVlTm9kZUpTOyB9IGNhdGNoIChlKSB7IHRocm93ICdObyBzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm91bmQnOyB9IH0gfSB9AExpYnNvZGl1bURSR2J1Zl9sZW4gPD0gU0laRV9NQVgAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwByYW5kb21ieXRlcwBTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGJsYWtlMmJfZmluYWwAAAAAAAAAAAjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FtvdXRsZW4gPD0gVUlOVDhfTUFYAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAAAAAAAAAtnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu\"),Q(I,2224,\"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ\"),Q(I,2272,\"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/\"),Q(I,3264,\"AQ==\"),Q(I,3296,\"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=\"),Q(I,3487,\"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\"),Q(I,34460,\"AQ==\"),Q(I,34496,\"AQ==\"),Q(I,34528,\"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw==\"),Q(I,34720,\"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA\"),Q(I,35568,\"YjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJA==\"),Q(I,35728,\"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMBADEuMC4xOA==\"),Q(I,35772,\"UI5QAABAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAAN\");var Xg,Vg=((Xg=[null,yI,function(A,I,g,B,Q){var C;return A|=0,h=C=h-16|0,yI(C,I|=0,g|=0,B|=0,Q|=0),A=kg(A,C),h=C+16|0,0|A},function(A,I){return IA(A|=0,I|=0),0},function(A,I,g,B){return z(A|=0,I|=0,g|=0,B|=0),0},function(A,I){return Z(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0;var B,Q=0,E=0;if(h=B=h-336|0,Q=-1,!function(A){var I,g=0,B=0,Q=0,E=0;for(C[11+(I=h-16|0)|0]=0,C[I+12|0]=0,C[I+13|0]=0,C[I+14|0]=0,i[I+8>>2]=0;;){for(Q=n[A+B|0],g=0;C[0|(E=(I+8|0)+g|0)]=n[0|E]|Q^n[(34464+(g<<5)|0)+B|0],7!=(0|(g=g+1|0)););if(31==(0|(B=B+1|0)))break}for(B=127&n[A+31|0],A=0,g=0;C[0|(Q=(I+8|0)+g|0)]=n[0|Q]|B^n[34495+(g<<5)|0],7!=(0|(g=g+1|0)););for(g=0;g=n[(I+8|0)+A|0]-1|g,7!=(0|(A=A+1|0)););return g>>>8&1}(g|=0)){for(Q=0;C[A+Q|0]=n[I+Q|0],32!=(0|(Q=Q+1|0)););for(C[0|A]=248&n[0|A],C[A+31|0]=63&n[A+31|0]|64,d(B+288|0,g),wg(B+240|0),Ug(B+192|0),SA(B+144|0,B+288|0),wg(B+96|0),g=254,I=0;Q=I,E=g,AA(B+240|0,B+144|0,Q^=I=n[(g>>>3|0)+A|0]>>>(7&g)&1),AA(B+192|0,B+96|0,Q),g=g-1|0,yA(B+48|0,B+144|0,B+96|0),yA(B,B+240|0,B+192|0),sA(B+240|0,B+240|0,B+192|0),sA(B+192|0,B+144|0,B+96|0),_(B+96|0,B+48|0,B+240|0),_(B+192|0,B+192|0,B),H(B+48|0,B),H(B,B+240|0),sA(B+144|0,B+96|0,B+192|0),yA(B+192|0,B+96|0,B+192|0),_(B+240|0,B,B+48|0),yA(B,B,B+48|0),H(B+192|0,B+192|0),P(B+96|0,B),H(B+144|0,B+144|0),sA(B+48|0,B+48|0,B+96|0),_(B+96|0,B+288|0,B+192|0),_(B+192|0,B,B+48|0),E;);AA(B+240|0,B+144|0,I),AA(B+192|0,B+96|0,I),j(B+192|0,B+192|0),_(B+240|0,B+240|0,B+192|0),BA(A,B+240|0),Q=0}return h=B+336|0,0|Q},function(A,I){A|=0,I|=0;var g,B=0;for(h=g=h-208|0;C[A+B|0]=n[I+B|0],32!=(0|(B=B+1|0)););return C[0|A]=248&n[0|A],C[A+31|0]=63&n[A+31|0]|64,CA(g+48|0,A),function(A,I,g){var B;h=B=h-96|0,sA(B+48|0,g,I),yA(B,g,I),j(B,B),_(A,B+48|0,B),h=B+96|0}(g,g+88|0,g+128|0),BA(A,g),h=g+208|0,0},function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0;if(h=E=h-112|0,(I|=0)|(g|=0)){a=n[Q+28|0]|n[Q+29|0]<<8|n[Q+30|0]<<16|n[Q+31|0]<<24,i[E+24>>2]=n[Q+24|0]|n[Q+25|0]<<8|n[Q+26|0]<<16|n[Q+27|0]<<24,i[E+28>>2]=a,a=n[Q+20|0]|n[Q+21|0]<<8|n[Q+22|0]<<16|n[Q+23|0]<<24,i[E+16>>2]=n[Q+16|0]|n[Q+17|0]<<8|n[Q+18|0]<<16|n[Q+19|0]<<24,i[E+20>>2]=a,a=n[Q+4|0]|n[Q+5|0]<<8|n[Q+6|0]<<16|n[Q+7|0]<<24,i[E>>2]=n[0|Q]|n[Q+1|0]<<8|n[Q+2|0]<<16|n[Q+3|0]<<24,i[E+4>>2]=a,a=n[Q+12|0]|n[Q+13|0]<<8|n[Q+14|0]<<16|n[Q+15|0]<<24,i[E+8>>2]=n[Q+8|0]|n[Q+9|0]<<8|n[Q+10|0]<<16|n[Q+11|0]<<24,i[E+12>>2]=a,Q=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24,B=n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=Q,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;;){for(mg(A,E+96|0,E),Q=8,B=1;B=n[0|(a=(E+96|0)+Q|0)]+B|0,C[0|a]=B,B=B>>>8|0,16!=(0|(Q=Q+1|0)););if(A=A- -64|0,g=g-1|0,!(!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g))break}if(!(I|g))break A}for(Q=0,mg(E+32|0,E+96|0,E);C[A+Q|0]=n[(E+32|0)+Q|0],(0|I)!=(0|(Q=Q+1|0)););}fI(E+32|0,64),fI(E,32)}return h=E+112|0,0},function(A,I,g,B,Q,E,a,r){A|=0,I|=0,Q|=0,E|=0,a|=0,r|=0;var o,e=0,t=0;if(h=o=h-112|0,(g|=0)|(B|=0)){for(e=n[r+28|0]|n[r+29|0]<<8|n[r+30|0]<<16|n[r+31|0]<<24,i[o+24>>2]=n[r+24|0]|n[r+25|0]<<8|n[r+26|0]<<16|n[r+27|0]<<24,i[o+28>>2]=e,e=n[r+20|0]|n[r+21|0]<<8|n[r+22|0]<<16|n[r+23|0]<<24,i[o+16>>2]=n[r+16|0]|n[r+17|0]<<8|n[r+18|0]<<16|n[r+19|0]<<24,i[o+20>>2]=e,e=n[r+4|0]|n[r+5|0]<<8|n[r+6|0]<<16|n[r+7|0]<<24,i[o>>2]=n[0|r]|n[r+1|0]<<8|n[r+2|0]<<16|n[r+3|0]<<24,i[o+4>>2]=e,e=8,t=n[r+12|0]|n[r+13|0]<<8|n[r+14|0]<<16|n[r+15|0]<<24,i[o+8>>2]=n[r+8|0]|n[r+9|0]<<8|n[r+10|0]<<16|n[r+11|0]<<24,i[o+12>>2]=t,r=n[Q+4|0]|n[Q+5|0]<<8|n[Q+6|0]<<16|n[Q+7|0]<<24,i[o+96>>2]=n[0|Q]|n[Q+1|0]<<8|n[Q+2|0]<<16|n[Q+3|0]<<24,i[o+100>>2]=r;C[(o+96|0)+e|0]=E,E=(255&a)<<24|E>>>8,a=a>>>8|0,16!=(0|(e=e+1|0)););if(!B&g>>>0>63|B)for(;;){for(e=0,mg(o+32|0,o+96|0,o);C[A+e|0]=n[(o+32|0)+e|0]^n[I+e|0],r=1,64!=(0|(e=e+1|0)););for(e=8;Q=n[0|(E=(o+96|0)+e|0)]+r|0,C[0|E]=Q,r=Q>>>8|0,16!=(0|(e=e+1|0)););if(I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(g|B)for(e=0,mg(o+32|0,o+96|0,o);C[A+e|0]=n[(o+32|0)+e|0]^n[I+e|0],(0|g)!=(0|(e=e+1|0)););fI(o+32|0,64),fI(o,32)}return h=o+112|0,0},function(A,I,g,B,Q){var C;return A|=0,B|=0,h=C=h+-64|0,(I|=0)|(g|=0)&&(aA(C,Q|=0),UA(C,B,0),U(C,A=EA(A,0,I),A,I,g),fI(C,64)),h=C- -64|0,0},function(A,I,g,B,Q){var C;return A|=0,B|=0,h=C=h+-64|0,(I|=0)|(g|=0)&&(aA(C,Q|=0),JA(C,B,0),U(C,A=EA(A,0,I),A,I,g),fI(C,64)),h=C- -64|0,0},function(A,I,g,B,Q,C,E,i){var n;return A|=0,I|=0,Q|=0,E|=0,i|=0,h=n=h-80|0,(g|=0)|(B|=0)&&(xI(n+8|0,C|=0),xI(n+12|0,E),aA(n+16|0,i),UA(n+16|0,Q,n+8|0),U(n+16|0,I,A,g,B),fI(n+16|0,64)),h=n+80|0,0},function(A,I,g,B,Q,C,E){var i;return A|=0,I|=0,Q|=0,E|=0,h=i=h-80|0,(g|=0)|(B|=0)&&(xI(i+12|0,C|=0),aA(i+16|0,E),JA(i+16|0,Q,i+12|0),U(i+16|0,I,A,g,B),fI(i+16|0,64)),h=i+80|0,0}]).grow=function(A){var I=this.length;return this.length=this.length+A,I},Xg.set=function(A,I){this[A]=I},Xg.get=function(A){return this[A]},Xg);function Wg(){return B.byteLength/65536|0}return{h:Vg,i:function(){},j:function(A,I,g,B,Q,C,E,i,n,a,r,o){return 0|PA(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},k:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){if(!Q&B>>>0<4294967280)return PA(A,A+B|0,0,g,B,Q,C,E,n,a,r),I&&(Q=(A=B+16|0)>>>0<16?Q+1|0:Q,i[I>>2]=A,i[I+4>>2]=Q),0;OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,r|=0,o|=0)},l:function(A,I,g,B,Q,C,E,i,n,a,r,o){return 0|_A(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},m:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){if(!Q&B>>>0<4294967280)return _A(A,A+B|0,0,g,B,Q,C,E,n,a,r),I&&(Q=(A=B+16|0)>>>0<16?Q+1|0:Q,i[I>>2]=A,i[I+4>>2]=Q),0;OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,r|=0,o|=0)},n:function(A,I,g,B,Q,C,E,i,n,a,r){return 0|HA(A|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},o:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){var o=0;return o=-1,!Q&B>>>0>=16|Q&&(o=HA(A,g,B-16|0,Q-(B>>>0<16)|0,(g+B|0)-16|0,C,E,n,a,r)),I&&(i[I>>2]=o?0:B-16|0,i[I+4>>2]=o?0:Q-(B>>>0<16)|0),o}(A|=0,I|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,a|=0,r|=0,o|=0)},p:function(A,I,g,B,Q,C,E,i,n,a,r){return 0|GA(A|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},q:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){var o=0;return o=-1,!Q&B>>>0>=16|Q&&(o=GA(A,g,B-16|0,Q-(B>>>0<16)|0,(g+B|0)-16|0,C,E,n,a,r)),I&&(i[I>>2]=o?0:B-16|0,i[I+4>>2]=o?0:Q-(B>>>0<16)|0),o}(A|=0,I|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,a|=0,r|=0,o|=0)},r:Ng,s:function(){return 12},t:Lg,u:Sg,v:dg,w:bg,x:Ng,y:xg,z:Lg,A:Sg,B:dg,C:bg,D:function(A,I,g,B,Q,C,E,i,n,a,r,o){return 0|NA(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},E:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){if(!Q&B>>>0<4294967280)return NA(A,A+B|0,0,g,B,Q,C,E,n,a,r),I&&(Q=(A=B+16|0)>>>0<16?Q+1|0:Q,i[I>>2]=A,i[I+4>>2]=Q),0;OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,r|=0,o|=0)},F:function(A,I,g,B,Q,C,E,i,n,a,r){return 0|MA(A|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},G:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r){var o=0;return o=-1,!Q&B>>>0>=16|Q&&(o=MA(A,g,B-16|0,Q-(B>>>0<16)|0,(g+B|0)-16|0,C,E,n,a,r)),I&&(i[I>>2]=o?0:B-16|0,i[I+4>>2]=o?0:Q-(B>>>0<16)|0),o}(A|=0,I|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,a|=0,r|=0,o|=0)},H:Ng,I:Mg,J:Lg,K:Sg,L:dg,M:bg,N:Ng,O:Ng,P:function(A,I,g,B,Q){return 0|bI(A|=0,I|=0,g|=0,B|=0,Q|=0)},Q:function(A,I,g,B,Q){return 0|function(A,I,g,B,Q){var C;return h=C=h-32|0,bI(C,I,g,B,Q),I=Gg(A,C),g=zA(C,A,32),h=C+32|0,g|((0|A)==(0|C)?-1:I)}(A|=0,I|=0,g|=0,B|=0,Q|=0)},R:bg,S:Ng,T:Ng,U:Ng,V:Ng,W:Mg,X:Sg,Y:dg,Z:function(A,I,g){return 0|function(A,I,g){var B,Q=0;return h=B=h+-64|0,mI(B,g,32,0),g=i[B+28>>2],Q=i[B+24>>2],C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,C[I+28|0]=g,C[I+29|0]=g>>>8,C[I+30|0]=g>>>16,C[I+31|0]=g>>>24,g=i[B+20>>2],Q=i[B+16>>2],C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,C[I+20|0]=g,C[I+21|0]=g>>>8,C[I+22|0]=g>>>16,C[I+23|0]=g>>>24,g=i[B+12>>2],Q=i[B+8>>2],C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,C[I+12|0]=g,C[I+13|0]=g>>>8,C[I+14|0]=g>>>16,C[I+15|0]=g>>>24,g=i[B+4>>2],Q=i[B>>2],C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,C[I+4|0]=g,C[I+5|0]=g>>>8,C[I+6|0]=g>>>16,C[I+7|0]=g>>>24,fI(B,64),A=cg(A,I),h=B- -64|0,A}(A|=0,I|=0,g|=0)},_:Ig,$:jI,aa:function(A,I,g,B,Q,C,E){return 0|Qg(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},ba:function(A,I,g,B,Q,C,E,i){return 0|wI(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0)},ca:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){return!B&g>>>0>=4294967280|B&&(OI(),e()),Qg(A+16|0,A,I,g,B,Q,C)}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},da:function(A,I,g,B,Q,C,E){return 0|kI(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},ea:function(A,I,g,B,Q,C,E){return 0|Cg(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},fa:function(A,I,g,B,Q,C,E,i){return 0|hI(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,i|=0)},ga:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){return!B&g>>>0>=16|B?Cg(A,I+16|0,I,g-16|0,B-(g>>>0<16)|0,Q,C):-1}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},ha:function(A,I,g,B,Q,C,E){return 0|uI(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},ia:function(A,I,g,B,Q){return 0|function(A,I,g,B,Q){var E,n=0;return h=E=h-96|0,n=-1,Ig(E+32|0,E)||(lI(E- -64|0,E+32|0,Q),n=kI(A+32|0,I,g,B,E- -64|0,Q,E),I=i[E+60>>2],g=i[E+56>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[E+52>>2],g=i[E+48>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[E+44>>2],g=i[E+40>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[E+36>>2],g=i[E+32>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,fI(E,32),fI(E+32|0,32),fI(E- -64|0,24)),h=E+96|0,n}(A|=0,I|=0,g|=0,B|=0,Q|=0)},ja:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){var E,i=0;return h=E=h-32|0,i=-1,!B&g>>>0>=48|B&&(lI(E,I,Q),i=uI(A,I+32|0,g-32|0,B-(g>>>0<32)|0,E,I,C)),h=E+32|0,i}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},ka:function(){return 48},la:Sg,ma:Pg,na:Ng,oa:Sg,pa:Pg,qa:Ng,ra:function(){return 384},sa:function(A,I,g,B,Q,C,E){return 0|Eg(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},ta:qI,ua:function(A,I,g,B){return 0|sg(A|=0,I|=0,g|=0,B|=0)},va:TI,wa:bg,xa:Pg,ya:function(A,I,g,B){return 0|mI(A|=0,I|=0,g|=0,B|=0)},za:Sg,Aa:Pg,Ba:xg,Ca:Ng,Da:function(A,I,g,B,Q,a){return 0|function(A,I,g,B,Q,a){var r,o;return h=r=h-32|0,o=n[0|Q]|n[Q+1|0]<<8|n[Q+2|0]<<16|n[Q+3|0]<<24,Q=n[Q+4|0]|n[Q+5|0]<<8|n[Q+6|0]<<16|n[Q+7|0]<<24,i[r+24>>2]=0,i[r+28>>2]=0,i[r+16>>2]=o,i[r+20>>2]=Q,tI(r,g,B),i[r+8>>2]=0,i[r+12>>2]=0,I-16>>>0>=49?(i[8960]=28,A=-1):(g=r+16|0,A=I-1>>>0>63?-1:function(A,I,g,B,Q){var a,r=0;if(a=r=h,h=r=r-384&-64,!(!I|!A|(g-1&255)>>>0>=64))return function(A,I,g,B,Q){var a;if(h=a=h-192|0,!(!g|(I-1&255)>>>0>=64))return E[a+130>>1]=257,C[a+129|0]=32,C[a+128|0]=I,WI(a+128|4),tI(a+128|8,0,0),i[a+152>>2]=0,i[a+156>>2]=0,i[a+144>>2]=0,i[a+148>>2]=0,B?function(A,I){var g,B=0;B=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,C[A+32|0]=g,C[A+33|0]=g>>>8,C[A+34|0]=g>>>16,C[A+35|0]=g>>>24,C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,B=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,I=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,C[A+44|0]=B,C[A+45|0]=B>>>8,C[A+46|0]=B>>>16,C[A+47|0]=B>>>24}(a+128|0,B):(i[a+168>>2]=0,i[a+172>>2]=0,i[a+160>>2]=0,i[a+164>>2]=0),Q?function(A,I){var g,B=0;B=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,C[A+48|0]=g,C[A+49|0]=g>>>8,C[A+50|0]=g>>>16,C[A+51|0]=g>>>24,C[A+52|0]=B,C[A+53|0]=B>>>8,C[A+54|0]=B>>>16,C[A+55|0]=B>>>24,B=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,I=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,C[A+56|0]=I,C[A+57|0]=I>>>8,C[A+58|0]=I>>>16,C[A+59|0]=I>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24}(a+128|0,Q):(i[a+184>>2]=0,i[a+188>>2]=0,i[a+176>>2]=0,i[a+180>>2]=0),hA(A,a+128|0),EA(a+32|0,0,96),QA(I=A,A=X(a,g,32),128,0),fI(A,128),void(h=A+192|0);OI(),e()}(r,g,I,B,Q),QA(r,0,0,0),M(r,A,g),h=a,0;OI(),e()}(A,a,255&I,r,g)),h=r+32|0,A}(A|=0,I|=0,g|=0,B|=0,Q|=0,a|=0)},Ea:bg,Fa:function(A,I,g){return A|=0,Eg(I|=0,32,g|=0,32,0,0,0),0|ag(A,I)},Ga:function(A,I){return A|=0,cI(I|=0,32),0|ag(A,I)},Ha:function(A,I,g,B,Q){I|=0,g|=0,Q|=0;var E,i,a=0;if(i=a=h,h=a=a-512&-64,E=(A|=0)||I){if(A=-1,!ZI(a+96|0,B|=0,Q)){for(I=I||E,A=0,qI(a+128|0,0,0,64),sg(a+128|0,a+96|0,32,0),fI(a+96|0,32),sg(a+128|0,g,32,0),sg(a+128|0,Q,32,0),TI(a+128|0,a+32|0,64),fI(a+128|0,384);g=(a+32|0)+A|0,C[A+E|0]=n[0|g],C[A+I|0]=n[g+32|0],32!=(0|(A=A+1|0)););fI(a+32|0,64),A=0}return h=i,0|A}OI(),e()},Ia:function(A,I,g,B,Q){I|=0,g|=0,Q|=0;var E,i,a=0;if(i=a=h,h=a=a-512&-64,E=(A|=0)||I){if(A=-1,!ZI(a+96|0,B|=0,Q)){for(I=I||E,A=0,qI(a+128|0,0,0,64),sg(a+128|0,a+96|0,32,0),fI(a+96|0,32),sg(a+128|0,Q,32,0),sg(a+128|0,g,32,0),TI(a+128|0,a+32|0,64),fI(a+128|0,384);g=(a+32|0)+A|0,C[A+I|0]=n[0|g],C[A+E|0]=n[g+32|0],32!=(0|(A=A+1|0)););fI(a+32|0,64),A=0}return h=i,0|A}OI(),e()},Ja:Ng,Ka:Ng,La:Ng,Ma:Ng,Na:Rg,Oa:Jg,Pa:Jg,Qa:Sg,Ra:Kg,Sa:Lg,Ta:Kg,Ua:Sg,Va:function(){return 128},Wa:function(){return 35681},Xa:Rg,Ya:Kg,Za:function(){return 8192},_a:function(){return-2147483648},$a:Jg,ab:function(){return 67108864},bb:qg,cb:function(){return 268435456},db:function(){return 4},eb:function(){return 1073741824},fb:function(A,I,g,B,Q,C,E,n,a,r,o){return 0|function(A,I,g,B,Q,C,E,n,a,r,o){switch(o-1|0){case 0:return function(A,I,g,B,Q,C,E,n,a,r){var o,e;e=I,o=EA(A,0,I),A=22;A:if(!g){if(!(!g&I>>>0<16)){if(C|a|r>>>0>2147483648)break A;if(!(!a&n>>>0<3|r>>>0<8192)){if(A=28,(0|B)==(0|o))break A;return pA(n,r>>>10|0,1,B,Q,E,16,o,e,0,0,1)?-1:0}}A=28}return i[8960]=A,-1}(A,I,g,B,Q,C,E,n,a,r);case 1:return function(A,I,g,B,Q,C,E,n,a,r){var o,e;e=I,o=EA(A,0,I),A=22;A:if(!g){if(!(!g&I>>>0<16)){if(C|a|r>>>0>2147483648)break A;if(!(!(n|a)|r>>>0<8192)){if(A=28,(0|B)==(0|o))break A;return pA(n,r>>>10|0,1,B,Q,E,16,o,e,0,0,2)?-1:0}}A=28}return i[8960]=A,-1}(A,I,g,B,Q,C,E,n,a,r)}return i[8960]=28,-1}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0,a|=0,r|=0,o|=0)},gb:function(A,I,g,B,Q,C,E){return 0|xA(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0)},hb:function(A,I,g,B,Q,C,E,n){return 0|function(A,I,g,B,Q,C,E,n){switch(n-1|0){case 1:return xA(A,I,g,B,Q,C,E);default:OI(),e();case 0:}return function(A,I,g,B,Q,C,E){var n;return h=n=h-16|0,A=EA(A,0,128),E>>>0<2147483649&&!(B|C)?E>>>0>8191&&!C&Q>>>0>=3|0!=(0|C)?(cI(n,16),A=pA(Q,E>>>10|0,1,I,g,n,16,0,32,A,128,1)?-1:0):(i[8960]=28,A=-1):(i[8960]=22,A=-1),h=n+16|0,A}(A,I,g,B,Q,C,E)}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0,E|=0,n|=0)},ib:function(A,I,g,B){return 0|function(A,I,g,B){return XA(A,35681,10)?XA(A,35692,9)?(i[8960]=28,-1):function(A,I,g,B){A:{if(1==(0|B)|B>>>0>1)i[8960]=22;else{if(!(A=fA(A,I,g,1)))break A;-35==(0|A)&&(i[8960]=28)}A=-1}return A}(A,I,g,B):function(A,I,g,B){A:{if(1==(0|B)|B>>>0>1)i[8960]=22;else{if(!(A=fA(A,I,g,2)))break A;-35==(0|A)&&(i[8960]=28)}A=-1}return A}(A,I,g,B)}(A|=0,I|=0,g|=0,B|=0)},jb:function(A,I,g,B){return 0|function(A,I,g,B){return XA(A,35681,10)?XA(A,35692,9)?(i[8960]=28,-1):DA(A,I,g,B,1):DA(A,I,g,B,2)}(A|=0,I|=0,g|=0,B|=0)},kb:ag,lb:ZI,mb:Ng,nb:Ng,ob:Ng,pb:Mg,qb:Sg,rb:dg,sb:bg,tb:Qg,ub:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){return!B&g>>>0>=4294967280|B&&(OI(),e()),nA(A+16|0,A,I,g,B,Q,C),0}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},vb:Cg,wb:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){return!B&g>>>0>=16|B?rA(A,I+16|0,I,g-16|0,B-(g>>>0<16)|0,Q,C):-1}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},xb:bg,yb:function(A,I,g){return A|=0,g|=0,cI(I|=0,24),x(A,I,g),XI(A),g=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,I=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},zb:function(A,I,g){return x(A|=0,I|=0,g|=0),XI(A),g=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,I=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Ab:L,Bb:function(A,I,g,B,Q,E,a,r,o,t){return 0|function(A,I,g,B,Q,E,a,r,o,t){var f,c=0;if(h=f=h-336|0,g&&(i[g>>2]=0,i[g+4>>2]=0),!E&Q>>>0<4294967279)return _g(f+16|0,64,c=A+32|0,A),lg(f+80|0,f+16|0),fI(f+16|0,64),yg(f+80|0,a,r,o),yg(f+80|0,35712,0-r&15,0),EA(f+16|0,0,64),C[f+16|0]=t,BI(f+16|0,f+16|0,64,0,c,1,A),yg(f+80|0,f+16|0,64,0),C[0|I]=n[f+16|0],BI(a=I+1|0,B,Q,E,c,2,A),yg(f+80|0,a,Q,E),yg(f+80|0,35712,15&Q,0),tI(f+8|0,r,o),yg(f+80|0,f+8|0,8,0),tI(f+8|0,Q- -64|0,E-((Q>>>0<4294967232)-1|0)|0),yg(f+80|0,f+8|0,8,0),Fg(f+80|0,I=Q+a|0),fI(f+80|0,256),pI(A+36|0,I),sI(c),(2&t||aI(c,4))&&L(A),g&&(E=(A=Q+17|0)>>>0<17?E+1|0:E,i[g>>2]=A,i[g+4>>2]=E),h=f+336|0,0;OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,E|=0,a|=0,r|=0,o|=0,t|=0)},Cb:function(A,I,g,B,Q,E,a,r,o,t){return 0|function(A,I,g,B,Q,E,a,r,o,t){var f,c=0,y=0,s=0,w=0,D=0;h=f=h-352|0,g&&(i[g>>2]=0,i[g+4>>2]=0),B&&(C[0|B]=255),w=-1;A:{if(!(!a&E>>>0<17)){if(!(c=a-(E>>>0<17)|0)&(y=E-17|0)>>>0>=4294967279|c)break A;_g(f+32|0,64,s=A+32|0,A),lg(f+96|0,f+32|0),fI(f+32|0,64),yg(f+96|0,r,o,t),yg(f+96|0,35712,0-o&15,0),EA(f+32|0,0,64),C[f+32|0]=n[0|Q],BI(f+32|0,f+32|0,64,0,s,1,A),D=n[f+32|0],C[f+32|0]=n[0|Q],yg(f+96|0,f+32|0,64,0),yg(f+96|0,r=Q+1|0,y,c),yg(f+96|0,35712,E-1&15,0),tI(f+24|0,o,t),yg(f+96|0,f+24|0,8,0),tI(f+24|0,Q=E+47|0,a=Q>>>0<47?a+1|0:a),yg(f+96|0,f+24|0,8,0),Fg(f+96|0,f),fI(f+96|0,256),zA(f,r+y|0,16)?fI(f,16):(BI(I,r,y,c,s,2,A),pI(A+36|0,f),sI(s),(2&D||aI(s,4))&&L(A),g&&(i[g>>2]=y,i[g+4>>2]=c),w=0,B&&(C[0|B]=D))}return h=f+352|0,w}OI(),e()}(A|=0,I|=0,g|=0,B|=0,Q|=0,E|=0,a|=0,r|=0,o|=0,t|=0)},Db:function(){return 52},Eb:function(){return 17},Fb:Mg,Gb:Ng,Hb:function(){return-18},Ib:Lg,Jb:Rg,Kb:Jg,Lb:qg,Mb:xg,Nb:Sg,Ob:function(A,I,g,B,Q){return 0|function(A,I,g,B){var Q=0,C=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0;if(Q=1886610805^(E=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24),i=1936682341^(C=n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24),a=1852142177^E,o=1819895653^C,E=1852075885^(t=n[B+8|0]|n[B+9|0]<<8|n[B+10|0]<<16|n[B+11|0]<<24),C=1685025377^(B=n[B+12|0]|n[B+13|0]<<8|n[B+14|0]<<16|n[B+15|0]<<24),t^=2037671283,r=1952801890^B,(0|(B=(I+g|0)-(y=7&g)|0))!=(0|I)){for(;e=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,f=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,c=Dg(E,C,13),s=p,w=1+(C=C+i|0)|0,i=C,h=Dg(C=Q+E|0,i=C>>>0>>0?w:i,32),w=p,r=Q=r^f,E=Dg(t^=e,Q,16),Q=a+t|0,a=o+r|0,t=o=(a=Q>>>0>>0?a+1|0:a)^p,o=Dg(E^=Q,o,21),r=p,c=Dg(C^=c,i^=s,17),D=p,i=a+i|0,a=Q,i=Dg(Q=Q+C|0,C=a>>>0>Q>>>0?i+1|0:i,32),a=p,s=Dg(c^=Q,C^=D,13),D=p,w=1+(Q=t+w|0)|0,t=Q,E=(Q=E+h|0)>>>0>>0?w:t,c=t=Q+c|0,C=E+C|0,C=Dg(t,h=Q>>>0>t>>>0?C+1|0:C,32),t=p,o=Dg(Q^=o,E^=r,16),E=a+E|0,E=(Q=Q+i|0)>>>0>>0?E+1|0:E,i=C+(a=Q^o)|0,C=(r=t)+(t=E^p)|0,t=Dg(a,t,21)^i,r=(w=i>>>0>>0?C+1|0:C)^p,a=C=h^D,C=Dg(o=c^s,C,17),E=E+a|0,o=(a=Q+o|0)>>>0>>0?E+1|0:E,E=C^a,C=o^p,Q=i^e,i=f^w,a=Dg(a,o,32),o=p,(0|B)!=(0|(I=I+8|0)););I=B}switch(B=g<<24,g=0,y-1|0){case 6:B|=n[I+6|0]<<16;case 5:B|=n[I+5|0]<<8;case 4:B|=n[I+4|0];case 3:e=(g=n[I+3|0])>>>8|0,g<<=24,B|=e;case 2:g|=(e=n[I+2|0])<<16,B|=f=e>>>16|0;case 1:g|=(e=n[I+1|0])<<8,B|=f=e>>>24|0;case 0:g=n[0|I]|g}return e=Dg(E,C,13),f=p,I=C+i|0,y=Dg(E=Q+E|0,C=E>>>0>>0?I+1|0:I,32),c=p,i=Q=B^r,Q=Dg(I=g^t,Q,16),i=i+o|0,o=a=(i=(r=I)>>>0>(I=I+a|0)>>>0?i+1|0:i)^p,a=Dg(Q^=I,a,21),t=p,e=Dg(E^=e,C^=f,17),f=p,C=i+C|0,r=I,C=Dg(I=I+E|0,E=r>>>0>I>>>0?C+1|0:C,32),i=p,e=Dg(r=I^e,E^=f,13),f=p,s=1+(I=o+c|0)|0,o=I,E=(Q=(I=Q+y|0)>>>0>>0?s:o)+E|0,E=Dg(r=o=I+r|0,o=I>>>0>o>>>0?E+1|0:E,32),y=p,a=Dg(I^=a,Q^=t,16),Q=i+Q|0,Q=(I=I+C|0)>>>0>>0?Q+1|0:Q,C=I^a,a=i=Q^p,i=Dg(C,i,21),t=p,f=o^=f,o=Dg(r^=e,o,17),e=p,Q=Q+f|0,s=I,r=Dg(I=I+r|0,Q=s>>>0>I>>>0?Q+1|0:Q,32),f=p,e=Dg(I^=o,o=Q^e,13),c=p,s=I,a=1+(I=a+y|0)|0,Q=I,B=o+(B^(Q=(I=E+C|0)>>>0>>0?a:Q))|0,g=Dg(C=E=s+(g^=I)|0,E=g>>>0>E>>>0?B+1|0:B,32),a=p,i=Dg(I^=i,B=Q^t,16),B=B+f|0,B=(Q=I)>>>0>(I=I+(255^r)|0)>>>0?B+1|0:B,Q=I^i,o=i=B^p,i=Dg(Q,i,21),t=p,r=E^=c,E=Dg(C^=e,E,17),e=p,B=B+r|0,r=I,C=Dg(I=I+C|0,B=r>>>0>I>>>0?B+1|0:B,32),r=p,f=Dg(E^=I,e^=B,13),y=p,o=1+(I=a+o|0)|0,B=I,Q=(B=(I=g+Q|0)>>>0>>0?o:B)+e|0,a=Q=I>>>0>(g=I+E|0)>>>0?Q+1|0:Q,Q=Dg(g,Q,32),o=p,i=Dg(I^=i,B^=t,16),B=B+r|0,r=I,E=(I=I+C|0)^i,i=C=(B=r>>>0>I>>>0?B+1|0:B)^p,C=Dg(E,C,21),t=p,r=a^=y,a=Dg(g^=f,a,17),e=p,B=B+r|0,r=I,r=Dg(I=I+g|0,g=r>>>0>I>>>0?B+1|0:B,32),f=p,y=Dg(a^=I,e^=g,13),c=p,B=1+(I=i+o|0)|0,g=I,Q=(B=(I=Q+E|0)>>>0>>0?B:g)+e|0,i=Q=I>>>0>(g=I+a|0)>>>0?Q+1|0:Q,Q=Dg(g,Q,32),a=p,C=Dg(I^=C,B^=t,16),B=B+f|0,o=I,E=(I=I+r|0)^C,o=C=(B=o>>>0>I>>>0?B+1|0:B)^p,C=Dg(E,C,21),t=p,r=i^=c,i=Dg(g^=y,i,17),e=p,B=B+r|0,r=I,B=Dg(I=I+g|0,g=r>>>0>I>>>0?B+1|0:B,32),r=p,e=g^=e,f=Dg(i^=I,g,13),y=p,o=1+(I=a+o|0)|0,g=I,a=E=t^(Q=(I=Q+E|0)>>>0>>0?o:g),E=Dg(g=I^C,E,16),C=a+r|0,r=g,E=Dg((g=g+B|0)^E,(B=r>>>0>g>>>0?C+1|0:C)^p,21),C=p,Q=Q+e|0,o=1+(B=B+(Q=((r=I)>>>0>(I=I+i|0)>>>0?Q+1|0:Q)^y)|0)|0,r=B,g=(I=g+(B=I^f)|0)>>>0>>0?o:r,B=Dg(B,Q,17)^I^E,Q=p^g^C,tI(A,Dg(I,g,32)^B,p^Q),0}(A|=0,I|=0,g|=0,Q|=0)},Pb:function(A){cI(A|=0,16)},Qb:function(){return 208},Rb:Pg,Sb:Ng,Tb:Ng,Ub:Pg,Vb:function(){return-65},Wb:function(A,I,g){return 0|N(A|=0,I|=0,g|=0)},Xb:function(A,I){return 0|function(A,I){var g;return h=g=h-32|0,cI(g,32),N(A,I,g),fI(g,32),h=g+32|0,0}(A|=0,I|=0)},Yb:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){var E,n;return h=E=h-16|0,n=g,g=B,Bg(A,E+8|0,gA(A- -64|0,n,B),B,Q,C),64!=i[E+8>>2]|i[E+12>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),EA(A,0,g- -64|0),A=-1):(A=0,I&&(i[I>>2]=B- -64,i[I+4>>2]=Q-((B>>>0<4294967232)-1|0))),h=E+16|0,A}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},Zb:function(A,I,g,B,Q,C){return 0|function(A,I,g,B,Q,C){var E=0;A:{I:{if(!(!Q&B>>>0<64||(Q=Q-1|0,!(Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q)&B>>>0>4294967231|Q))){if(!ng(g,E=g- -64|0,B,Q,C))break I;A&&EA(A,0,B)}if(g=-1,!I)break A;return i[I>>2]=0,i[I+4>>2]=0,-1}I&&(i[I>>2]=B,i[I+4>>2]=Q),g=0,A&&gA(A,E,B)}return g}(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},_b:function(A,I,g,B,Q,C){return 0|Bg(A|=0,I|=0,g|=0,B|=0,Q|=0,C|=0)},$b:function(A,I,g,B,Q){return 0|ng(A|=0,I|=0,g|=0,B|=0,Q|=0)},ac:function(A){return MI(A|=0),0},bc:function(A,I,g,B){return 0|V(A|=0,I|=0,g|=0,B|=0)},cc:function(A,I,g,B){return 0|function(A,I,g,B){var Q;return h=Q=h+-64|0,UI(A,Q),A=q(I,g,Q,64,0,B,1),h=Q- -64|0,A}(A|=0,I|=0,g|=0,B|=0)},dc:function(A,I,g){return 0|function(A,I,g){var B;return h=B=h+-64|0,UI(A,B),A=lA(I,B,64,0,g,1),h=B- -64|0,A}(A|=0,I|=0,g|=0)},ec:function(A,I){A|=0;var g,B=0;return h=g=h-256|0,B=-1,wA(I|=0)||cA(g+96|0,I)||function(A){var I;return h=I=h-160|0,function(A,I){var g,B=0;for(h=g=h-1760|0,FI(g+480|0,I),JI(g+320|0,I),DI(g,g+320|0),VA(g+320|0,g,g+480|0),DI(g+160|0,g+320|0),FI(I=g+640|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+800|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+960|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+1120|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+1280|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(I=g+1440|0,g+160|0),VA(g+320|0,g,I),DI(g+160|0,g+320|0),FI(g+1600|0,g+160|0),zI(A),I=252;JI(g+320|0,A),B=I,(0|(I=C[I+34208|0]))>=1?(DI(g+160|0,g+320|0),VA(g+320|0,g+160|0,(g+480|0)+r((254&I)>>>1|0,160)|0)):(0|I)>-1||(DI(g+160|0,g+320|0),WA(g+320|0,g+160|0,(g+480|0)+r((0-I&254)>>>1|0,160)|0)),DI(A,g+320|0),I=B-1|0,B;);h=g+1760|0}(I,A),A=RI(I),h=I+160|0,A}(g+96|0)&&(wg(g),yA(g,g,I=g+136|0),wg(g+48|0),sA(g+48|0,g+48|0,I),j(g,g),_(g+48|0,g+48|0,g),BA(A,g+48|0),B=0),h=g+256|0,0|B},fc:function(A,I){A|=0;var g,B=0;return h=g=h+-64|0,mI(g,I|=0,32,0),C[0|g]=248&n[0|g],C[g+31|0]=63&n[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,fI(g,64),h=g- -64|0,0},gc:YI,hc:PI,ic:function(A){var I=0,g=0;if((A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;(I=YI())>>>0>>0;);A=(I>>>0)%(A>>>0)|0}else A=0;return 0|A},jc:cI,kc:function(A,I,g){_g(A|=0,I|=0,1784,g|=0)},lc:Ng,mc:function(){var A=0,I=0;return(A=i[9097])&&(A=i[A+20>>2])&&(I=0|Vg[0|A]()),0|I},nc:function(A,I,g){!function(A,I,g){1==(0|g)|g>>>0>1&&(t(1796,1816,197,1842),e()),cI(A,I)}(A|=0,I|=0,g|=0)},oc:function(A,I,g,B){A|=0,g|=0;var Q=0,E=0,i=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;Q=I<<1,E=(i=n[I+g|0])>>>4|0,C[Q+A|0]=87+(E+(E+65526>>>8&217)|0),E=(1|Q)+A|0,Q=15&i,C[0|E]=22272+((Q<<8)+(Q+65526&55552)|0)>>>8,(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return C[I+A|0]=0,0|A}OI(),e()},pc:function(A,I,g,B,Q,E,a){A|=0,I|=0,g|=0,Q|=0,E|=0,a|=0;var r=0,o=0,e=0,t=0,f=0,c=0,y=0,s=0,w=0,h=0,D=0;A:if(B|=0){I:{g:{B:for(;;){for(o=r;;){Q:{if(!(255&((w=(65526+(y=(223&(c=n[g+o|0]))-55&255)^y+65520)>>>8|0)|(e=65526+(h=48^c)>>>8|0)))){if(e=1,!Q|255&f)break g;if(gg(Q,c))break Q;r=o;break A}if(I>>>0<=t>>>0){i[8960]=68,e=0;break g}if(r=y&w|e&h,255&f?(C[A+t|0]=r|D,t=t+1|0):D=r<<4,f^=-1,e=1,(r=o+1|0)>>>0>>0)continue B;break I}if(f=0,!((o=o+1|0)>>>0>>0))break}break}r=(A=r+1|0)>>>0>>0?B:A;break A}r=o}255&f?(i[8960]=28,s=-1,r=r-1|0,t=0):e||(t=0,s=-1)}return a?i[a>>2]=g+r:(0|B)!=(0|r)&&(i[8960]=28,s=-1),E&&(i[E>>2]=t),0|s},qc:function(A,I){var g;return A|=0,pg(I|=0),A=r(g=(A>>>0)/3|0,-3)+A|0,r(4-(3-A&0-(I>>>1&1))|0,1&(A|A>>>1))+(g<<2|1)|0},rc:O,sc:W,tc:function(){var A=0;return i[9104]?A=1:(i[9086]=0,function(){var A;h=A=h-16|0,VI(A),i[A>>2]&&(VI(A),EA(36348,0,40)),h=A+16|0}(),i[9085]=1,PI(),function(){var A=0;(0|(A=0|y(30)))>=1?i[8944]=A:A=i[8944],A>>>0<=15&&(OI(),e()),cI(36400,16)}(),i[9104]=1,A=0),0|A},uc:function(A,I,g,B,Q){A|=0,I|=0,g|=0,Q|=0;var E,a=0,r=0,o=0;h=E=h-16|0;A:{if(B|=0){if(o=-1,(a=(a=B-1|0)-(r=a&B?(g>>>0)%(B>>>0)|0:g&a)|0)>>>0>=(-1^g)>>>0)break A;if(!((g=g+a|0)>>>0>=Q>>>0))for(A&&(i[A>>2]=g+1),A=I+g|0,o=0,C[E+15|0]=0,I=B>>>0>1?B:1,B=0;Q=g=A-B|0,r=n[0|g]&n[E+15|0],g=(B^a)-1>>>24|0,C[0|Q]=r|128&g,C[E+15|0]=g|n[E+15|0],(0|I)!=(0|(B=B+1|0)););}else o=-1;return h=E+16|0,0|o}OI(),e()},vc:function(A,I,g,B){A|=0,I|=0,g|=0,B|=0;var Q,C=0,E=0,a=0,r=0,o=0;if(i[12+(Q=h-16|0)>>2]=0,B-1>>>0>>0){for(o=(C=g-1|0)+I|0,g=0,I=0;r=((128^(E=n[o-g|0]))-1&i[Q+12>>2]-1&a-1)>>>8&1,i[Q+12>>2]=i[Q+12>>2]|0-r&g,I|=r,a|=E,(0|B)!=(0|(g=g+1|0)););i[A>>2]=C-i[Q+12>>2],A=I-1|0}else A=-1;return 0|A},wc:function(){return 35762},xc:function(){return 10},yc:qg,zc:Rg,Ac:function(){return 35840},Bc:k,Cc:m}}(A)}(vA)},instantiate:function(A,I){return{then:function(I){var g=new u.Module(A);I({instance:new u.Instance(g)})}}},RuntimeError:Error};function p(A,I,g,B){switch(\"*\"===(g=g||\"i8\").charAt(g.length-1)&&(g=\"i32\"),g){case\"i1\":case\"i8\":_[A>>0]=I;break;case\"i16\":Y[A>>1]=I;break;case\"i32\":b[A>>2]=I;break;case\"i64\":nA=[I>>>0,(iA=I,+Math.abs(iA)>=1?iA>0?(0|Math.min(+Math.floor(iA/4294967296),4294967295))>>>0:~~+Math.ceil((iA-+(~~iA>>>0))/4294967296)>>>0:0)],b[A>>2]=nA[0],b[A+4>>2]=nA[1];break;case\"float\":m[A>>2]=I;break;case\"double\":v[A>>3]=I;break;default:IA(\"invalid type for setValue: \"+g)}}function l(A,I,g){switch(\"*\"===(I=I||\"i8\").charAt(I.length-1)&&(I=\"i32\"),I){case\"i1\":case\"i8\":return _[A>>0];case\"i16\":return Y[A>>1];case\"i32\":case\"i64\":return b[A>>2];case\"float\":return m[A>>2];case\"double\":return v[A>>3];default:IA(\"invalid type for getValue: \"+I)}return null}w=[],\"object\"!=typeof u&&IA(\"no native wasm support detected\");var F=!1;function G(A,I){A||IA(\"Assertion failed: \"+I)}var k,_,H,Y,b,m,v,U=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function S(A,I,g){for(var B=I+g,Q=I;A[Q]&&!(Q>=B);)++Q;if(Q-I>16&&A.subarray&&U)return U.decode(A.subarray(I,Q));for(var C=\"\";I>10,56320|1023&a)}}else C+=String.fromCharCode((31&E)<<6|i)}else C+=String.fromCharCode(E)}return C}function N(A,I){return A?S(H,A,I):\"\"}function M(A,I){return A%I>0&&(A+=I-A%I),A}function d(A){k=A,Q.HEAP8=_=new Int8Array(A),Q.HEAP16=Y=new Int16Array(A),Q.HEAP32=b=new Int32Array(A),Q.HEAPU8=H=new Uint8Array(A),Q.HEAPU16=new Uint16Array(A),Q.HEAPU32=new Uint32Array(A),Q.HEAPF32=m=new Float32Array(A),Q.HEAPF64=v=new Float64Array(A)}var P,R=Q.INITIAL_MEMORY||16777216;(D=Q.wasmMemory?Q.wasmMemory:new u.Memory({initial:R/65536,maximum:32768}))&&(k=D.buffer),R=k.byteLength,d(k);var J=[],x=[],L=[],K=[];function q(){if(Q.preRun)for(\"function\"==typeof Q.preRun&&(Q.preRun=[Q.preRun]);Q.preRun.length;)T(Q.preRun.shift());fA(J)}function X(){fA(x)}function V(){fA(L)}function W(){if(Q.postRun)for(\"function\"==typeof Q.postRun&&(Q.postRun=[Q.postRun]);Q.postRun.length;)j(Q.postRun.shift());fA(K)}function T(A){J.unshift(A)}function j(A){K.unshift(A)}x.push({func:function(){UA()}});var Z=0,O=null,z=null;function $(A){Z++,Q.monitorRunDependencies&&Q.monitorRunDependencies(Z)}function AA(A){if(Z--,Q.monitorRunDependencies&&Q.monitorRunDependencies(Z),0==Z&&(null!==O&&(clearInterval(O),O=null),z)){var I=z;z=null,I()}}function IA(A){throw Q.onAbort&&Q.onAbort(A),h(A+=\"\"),F=!0,A=\"abort(\"+A+\"). Build with -s ASSERTIONS=1 for more info.\",new u.RuntimeError(A)}function gA(A,I){return String.prototype.startsWith?A.startsWith(I):0===A.indexOf(I)}Q.preloadedImages={},Q.preloadedAudios={};var BA=\"data:application/octet-stream;base64,\";function QA(A){return gA(A,BA)}var CA=\"file://\";function EA(A){return gA(A,CA)}var iA,nA,aA=\"<<< WASM_BINARY_FILE >>>\";function rA(A){try{if(A==aA&&w)return new Uint8Array(w);var I=bA(A);if(I)return I;if(t)return t(A);throw\"both async and sync fetching of the wasm failed\"}catch(A){IA(A)}}function oA(){if(!w&&(i||n)){if(\"function\"==typeof fetch&&!EA(aA))return fetch(aA,{credentials:\"same-origin\"}).then((function(A){if(!A.ok)throw\"failed to load wasm binary file at '\"+aA+\"'\";return A.arrayBuffer()})).catch((function(){return rA(aA)}));if(e)return new Promise((function(A,I){e(aA,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return rA(aA)}))}function eA(){var A={a:vA};function I(A,I){var g=A.exports;Q.asm=g,P=Q.asm.h,AA()}function g(A){I(A.instance)}function B(I){return oA().then((function(I){return u.instantiate(I,A)})).then(I,(function(A){h(\"failed to asynchronously prepare wasm: \"+A),IA(A)}))}if($(),Q.instantiateWasm)try{return Q.instantiateWasm(A,I)}catch(A){return h(\"Module.instantiateWasm callback failed with error: \"+A),!1}return w||\"function\"!=typeof u.instantiateStreaming||QA(aA)||EA(aA)||\"function\"!=typeof fetch?B(g):fetch(aA,{credentials:\"same-origin\"}).then((function(I){return u.instantiateStreaming(I,A).then(g,(function(A){return h(\"wasm streaming compile failed: \"+A),h(\"falling back to ArrayBuffer instantiation\"),B(g)}))})),{}}QA(aA)||(aA=s(aA));var tA={1024:function(){return Q.getRandomValue()},1062:function(){if(void 0===Q.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),Q.getRandomValue=g}catch(A){try{var B=require(\"crypto\"),C=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};C(),Q.getRandomValue=C}catch(A){throw\"No secure random number generator found\"}}}};function fA(A){for(;A.length>0;){var I=A.shift();if(\"function\"!=typeof I){var g=I.func;\"number\"==typeof g?void 0===I.arg?P.get(g)():P.get(g)(I.arg):g(void 0===I.arg?null:I.arg)}else I(Q)}}function cA(A,I,g,B){IA(\"Assertion failed: \"+N(A)+\", at: \"+[I?N(I):\"unknown filename\",g,B?N(B):\"unknown function\"])}function yA(){IA()}function sA(A,I,g){var B=GA(I,g);return tA[A].apply(null,B)}function wA(A,I,g){H.copyWithin(A,I,I+g)}function hA(){return H.length}function DA(A){try{return D.grow(A-k.byteLength+65535>>>16),d(D.buffer),1}catch(A){}}function uA(A){A>>>=0;var I=hA(),g=2147483648;if(A>g)return!1;for(var B=1;B<=4;B*=2){var Q=I*(1+.2/B);if(Q=Math.min(Q,A+100663296),DA(Math.min(g,M(Math.max(16777216,A,Q),65536))))return!0}return!1}function pA(A){return b[SA()>>2]=A,A}function lA(A){switch(A){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return\"object\"==typeof navigator&&navigator.hardwareConcurrency||1}return pA(28),-1}var FA=[];function GA(A,I){var g;for(FA.length=0,I>>=2;g=H[A++];){var B=g<105;B&&1&I&&I++,FA.push(B?v[I++>>1]:b[I]),++I}return FA}var kA=!1;function _A(A){for(var I=[],g=0;g255&&(kA&&G(!1,\"Character code \"+B+\" (\"+String.fromCharCode(B)+\") at offset \"+g+\" not in 0x00-0xFF.\"),B&=255),I.push(String.fromCharCode(B))}return I.join(\"\")}var HA=\"function\"==typeof atob?atob:function(A){var I,g,B,Q,C,E,i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",n=\"\",a=0;A=A.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{I=i.indexOf(A.charAt(a++))<<2|(Q=i.indexOf(A.charAt(a++)))>>4,g=(15&Q)<<4|(C=i.indexOf(A.charAt(a++)))>>2,B=(3&C)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==C&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a0||(q(),Z>0||(Q.setStatus?(Q.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){Q.setStatus(\"\")}),1),I()}),1)):I()))}if(Q._malloc=function(){return(Q._malloc=Q.asm.Bc).apply(null,arguments)},Q._free=function(){return(Q._free=Q.asm.Cc).apply(null,arguments)},Q.setValue=p,Q.getValue=l,Q.UTF8ToString=N,z=function A(){mA||NA(),mA||(z=A)},Q.run=NA,Q.preInit)for(\"function\"==typeof Q.preInit&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();NA()}))};var g,Q=void 0!==Q?Q:{},C={};for(g in Q)Q.hasOwnProperty(g)&&(C[g]=Q[g]);var E=[],i=!1,n=!1,a=!1,r=!1;i=\"object\"==typeof window,n=\"function\"==typeof importScripts,a=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,r=!i&&!a&&!n;var o,e,t,f,c,y=\"\";function s(A){return Q.locateFile?Q.locateFile(A,y):y+A}a?(y=n?require(\"path\").dirname(y)+\"/\":__dirname+\"/\",o=function(A,I){var g=HA(A);return g?I?g:g.toString():(f||(f=require(\"fs\")),c||(c=require(\"path\")),A=c.normalize(A),f.readFileSync(A,I?null:\"utf8\"))},t=function(A){var I=o(A,!0);return I.buffer||(I=new Uint8Array(I)),F(I.buffer),I},process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),E=process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=Q),Q.inspect=function(){return\"[Emscripten Module object]\"}):r?(\"undefined\"!=typeof read&&(o=function(A){var I=HA(A);return I?GA(I):read(A)}),t=function(A){var I;return(I=HA(A))?I:\"function\"==typeof readbuffer?new Uint8Array(readbuffer(A)):(F(\"object\"==typeof(I=read(A,\"binary\"))),I)},\"undefined\"!=typeof scriptArgs?E=scriptArgs:void 0!==arguments&&(E=arguments),\"undefined\"!=typeof print&&(\"undefined\"==typeof console&&(console={}),console.log=print,console.warn=console.error=\"undefined\"!=typeof printErr?printErr:print)):(i||n)&&(n?y=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(y=document.currentScript.src),y=0!==y.indexOf(\"blob:\")?y.substr(0,y.lastIndexOf(\"/\")+1):\"\",o=function(A){try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.send(null),I.responseText}catch(I){var g=HA(A);if(g)return GA(g);throw I}},n&&(t=function(A){try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}catch(I){var g=HA(A);if(g)return g;throw I}}),e=function(A,I,g){var B=new XMLHttpRequest;B.open(\"GET\",A,!0),B.responseType=\"arraybuffer\",B.onload=function(){if(200==B.status||0==B.status&&B.response)I(B.response);else{var Q=HA(A);Q?I(Q.buffer):g()}},B.onerror=g,B.send(null)}),Q.print;var w,h,D=Q.printErr||void 0;for(g in C)C.hasOwnProperty(g)&&(Q[g]=C[g]);function u(A,I,g,B){switch(\"*\"===(g=g||\"i8\").charAt(g.length-1)&&(g=\"i32\"),g){case\"i1\":case\"i8\":k[A>>0]=I;break;case\"i16\":H[A>>1]=I;break;case\"i32\":Y[A>>2]=I;break;case\"i64\":EA=[I>>>0,(CA=I,+Math.abs(CA)>=1?CA>0?(0|Math.min(+Math.floor(CA/4294967296),4294967295))>>>0:~~+Math.ceil((CA-+(~~CA>>>0))/4294967296)>>>0:0)],Y[A>>2]=EA[0],Y[A+4>>2]=EA[1];break;case\"float\":b[A>>2]=I;break;case\"double\":m[A>>3]=I;break;default:$(\"invalid type for setValue: \"+g)}}function p(A,I,g){switch(\"*\"===(I=I||\"i8\").charAt(I.length-1)&&(I=\"i32\"),I){case\"i1\":case\"i8\":return k[A>>0];case\"i16\":return H[A>>1];case\"i32\":case\"i64\":return Y[A>>2];case\"float\":return b[A>>2];case\"double\":return m[A>>3];default:$(\"invalid type for getValue: \"+I)}return null}C=null,Q.arguments&&(E=Q.arguments),Q.thisProgram&&Q.thisProgram,Q.quit&&Q.quit,Q.wasmBinary&&(w=Q.wasmBinary),Q.noExitRuntime&&Q.noExitRuntime,\"object\"!=typeof WebAssembly&&$(\"no native wasm support detected\");var l=!1;function F(A,I){A||$(\"Assertion failed: \"+I)}var G,k,_,H,Y,b,m,v=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function U(A,I,g){for(var B=I+g,Q=I;A[Q]&&!(Q>=B);)++Q;if(Q-I>16&&A.subarray&&v)return v.decode(A.subarray(I,Q));for(var C=\"\";I>10,56320|1023&a)}}else C+=String.fromCharCode((31&E)<<6|i)}else C+=String.fromCharCode(E)}return C}function S(A,I){return A?U(_,A,I):\"\"}function N(A,I){return A%I>0&&(A+=I-A%I),A}function M(A){G=A,Q.HEAP8=k=new Int8Array(A),Q.HEAP16=H=new Int16Array(A),Q.HEAP32=Y=new Int32Array(A),Q.HEAPU8=_=new Uint8Array(A),Q.HEAPU16=new Uint16Array(A),Q.HEAPU32=new Uint32Array(A),Q.HEAPF32=b=new Float32Array(A),Q.HEAPF64=m=new Float64Array(A)}Q.INITIAL_MEMORY;var d,P=[],R=[],J=[],x=[];function L(){if(Q.preRun)for(\"function\"==typeof Q.preRun&&(Q.preRun=[Q.preRun]);Q.preRun.length;)V(Q.preRun.shift());eA(P)}function K(){eA(R)}function q(){eA(J)}function X(){if(Q.postRun)for(\"function\"==typeof Q.postRun&&(Q.postRun=[Q.postRun]);Q.postRun.length;)W(Q.postRun.shift());eA(x)}function V(A){P.unshift(A)}function W(A){x.unshift(A)}R.push({func:function(){mA()}});var T=0,j=null,Z=null;function O(A){T++,Q.monitorRunDependencies&&Q.monitorRunDependencies(T)}function z(A){if(T--,Q.monitorRunDependencies&&Q.monitorRunDependencies(T),0==T&&(null!==j&&(clearInterval(j),j=null),Z)){var I=Z;Z=null,I()}}function $(A){throw Q.onAbort&&Q.onAbort(A),D(A+=\"\"),l=!0,A=\"abort(\"+A+\"). Build with -s ASSERTIONS=1 for more info.\",new WebAssembly.RuntimeError(A)}function AA(A,I){return String.prototype.startsWith?A.startsWith(I):0===A.indexOf(I)}Q.preloadedImages={},Q.preloadedAudios={};var IA=\"data:application/octet-stream;base64,\";function gA(A){return AA(A,IA)}var BA=\"file://\";function QA(A){return AA(A,BA)}var CA,EA,iA=\"data:application/octet-stream;base64,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CiASfnwgCSALfnwiEUKAgIAQfCIUQhqHfCIiQoCAgAh8IiNCGYd8IhkgGUKAgIAQfCIZQoCAgOAPg30+AgggACASIBh+IA0gDn58IAkgEH58IAwgHH58IAsgF358IBNCGod8IhMgE0KAgIAIfCITQoCAgPAPg30+AhwgACAMIBp+IAkgFX58IBAgFn58IAogD358IAsgDX58IBlCGod8IgogCkKAgIAIfCIKQoCAgPAPg30+AgwgACAQIBJ+IA0gDX58IA4gD358IAkgG358IAwgF358IAsgA6wiDX58IBNCGYd8IgsgC0KAgIAQfCILQoCAgOAPg30+AiAgACAgICFCgICA8A+DfSAeIB9CgICAYIN9IApCGYd8IgpCgICAEHwiD0IaiHw+AhQgACAKIA9CgICA4A+DfT4CECAAIA4gEH4gGCAdfnwgEiAcfnwgCSAXfnwgDCANfnwgC0Iah3wiCSAJQoCAgAh8IglCgICA8A+DfT4CJCAAICIgI0KAgIDwD4N9IBEgFEKAgIBgg30gCUIZh0ITfnwiCUKAgIAQfCIMQhqIfD4CBCAAIAkgDEKAgIDgD4N9PgIACxAAIAAzAAAgADEAAkIQhoQL8wICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACwkAIAAgATcAAAuCBAEDfyACQYAETwRAIAAgASACEAQaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvsAQESfyACKAIEIQMgASgCBCEEIAIoAgghBSABKAIIIQYgAigCDCEHIAEoAgwhCCACKAIQIQkgASgCECEKIAIoAhQhCyABKAIUIQwgAigCGCENIAEoAhghDiACKAIcIQ8gASgCHCEQIAIoAiAhESABKAIgIRIgAigCJCETIAEoAiQhFCAAIAIoAgAgASgCAGo2AgAgACATIBRqNgIkIAAgESASajYCICAAIA8gEGo2AhwgACANIA5qNgIYIAAgCyAMajYCFCAAIAkgCmo2AhAgACAHIAhqNgIMIAAgBSAGajYCCCAAIAMgBGo2AgQLGAEBf0HEnAIoAgAiAARAIAARDgALEAIAC0ABA38gACABIAFB+ABqIgIQCyAAQShqIAFBKGoiAyABQdAAaiIEEAsgAEHQAGogBCACEAsgAEH4AGogASADEAsL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREg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czYCFCABIAUgEHM2AhAgASAEIA9zNgIMIAEgAyANczYCCCABIAAgC3M2AgQgASAWIBdzNgIACykBAX8jAEGAAWsiAiQAIAJBCGogARDoAiAAIAJBCGoQOSACQYABaiQACzIBAX8gACABIAFB+ABqIgIQCyAAQShqIAFBKGogAUHQAGoiARALIABB0ABqIAEgAhALC68CARN/IAEoAgQhDCAAKAIEIQMgASgCCCENIAAoAgghBCABKAIMIQ4gACgCDCEFIAEoAhAhDyAAKAIQIQYgASgCFCEQIAAoAhQhByABKAIYIREgACgCGCEIIAEoAhwhEiAAKAIcIQkgASgCICETIAAoAiAhCiABKAIkIRQgACgCJCELIABBACACayICIAAoAgAiFSABKAIAc3EgFXM2AgAgACALIAsgFHMgAnFzNgIkIAAgCiAKIBNzIAJxczYCICAAIAkgCSAScyACcXM2AhwgACAIIAggEXMgAnFzNgIYIAAgByAHIBBzIAJxczYCFCAAIAYgBiAPcyACcXM2AhAgACAFIAUgDnMgAnFzNgIMIAAgBCAEIA1zIAJxczYCCCAAIAMgAyAMcyACcXM2AgQLJAEBfyMAQSBrIgEkACABIAAQLSABQSAQZSEAIAFBIGokACAAC6YEAgp/Dn4gACgCJCEEIAAoAiAhBSAAKAIcIQYgACgCGCEHIAAoAhQhAyACQhBaBEAgAC0AUEVBGHQhCCAAKAIEIglBBWytIRkgACgCCCIKQQVsrSEXIAAoAgwiC0EFbK0hFSAAKAIQIgxBBWytIRMgDK0hGiALrSEYIAqtIRYgCa0hFCAANQIAIRIDQCABKAADQQJ2Qf///x9xIAdqrSINIBh+IAEoAABB////H3EgA2qtIg4gGn58IAEoAAZBBHZB////H3EgBmqtIg8gFn58IAEoAAlBBnYgBWqtIhAgFH58IAQgCGogASgADEEIdmqtIhEgEn58IA0gFn4gDiAYfnwgDyAUfnwgECASfnwgESATfnwgDSAUfiAOIBZ+fCAPIBJ+fCAQIBN+fCARIBV+fCANIBJ+IA4gFH58IA8gE358IBAgFX58IBEgF358IA0gE34gDiASfnwgDyAVfnwgECAXfnwgESAZfnwiDUIaiEL/////D4N8Ig5CGohC/////w+DfCIPQhqIQv////8Pg3wiEEIaiEL/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aiAFIAYQDCAJQQhqIAYQESAJQdAAaiAJQQhqQggQDCAAIAMgBCAHIAgQogEgCUHQAGogACAEEAwgCUEIaiAEEBEgCUHQAGogCUEIakIIEAwgCUHQAGogARAjIAlB0ABqQYACEAkgAgRAIAJCEDcDAAsgCUHQAmokAEEACygAIAJCgICAgBBaBEAQFAALIAAgASACIANCASAEQfCXAigCABEVABoLFgAgAELAACABIAJB6JcCKAIAEREAGgsyACAAIAIEfyACKAAABUEACzYCMCAAIAEoAAA2AjQgACABKAAENgI4IAAgASgACDYCPAs9ACAAAn8gAgRAIAAgAigAADYCMCACKAAEDAELIABBADYCMEEACzYCNCAAIAEoAAA2AjggACABKAAENgI8CxkAIAAgASACIANCASAEQeSXAigCABEVABoLKAEBfyMAQRBrIgAkACAAQQA6AA9BpgggAEEPakEAEAEaIABBEGokAAtqAQN/IwBBEGsiAyQAIANBADoAD0F/IQUgACABIAJB2JcCKAIAEQMARQRAA0AgAyAAIARqLQAAIAMtAA9yOgAPIARBAWoiBEEgRw0AC0EAIAMtAA9BAWtBCHZBAXFrIQULIANBEGokACAFCxMAIAAgAUHAB2xBoBtqIAIQ5gILEAAgAEIANwIAIABCADcCCAsdACAAEDggAEEoahAdIABB0ABqEB0gAEH4AGoQOAuAAgEIfwNAIAAgAmogASACQQN2ai0AACACQQdxdkEBcToAACACQQFqIgJBgAJHDQALA0AgBCIBQQFqIQQCQCAAIAFqIgYtAABFDQAgBCECQQEhBSABQf4BSw0AA0ACQCAAIAJqIgMsAAAiB0UNACAHIAV0IgcgBiwAACIIaiIJQQ9MBEAgBiAJOgAAIANBADoAAAwBCyAIIAdrIgNBcUgNAiAGIAM6AAADQCAAIAJqIgMtAABFBEAgA0EBOgAADAILIANBADoAACACQf8BSSEDIAJBAWohAiADDQALCyAFQQVLDQEgBUEBaiIFIAFqIgJBgAJJDQALCyAEQYACRw0ACwuVAQEEfyMAQTBrIgUkACAAIAFBKGoiAyABEBMgAEEoaiIEIAMgARAWIABB0ABqIgMgACACQShqEAsgBCAEIAIQCyAAQfgAaiIGIAJB+ABqIAFB+ABqEAsgACABQdAAaiACQdAA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CSACQYAIaiQAC/ADAQJ/IwAiAyEEIANBwANrQUBxIgMkACAARSABRXJFBEAgA0FAa0EAQQBBwAAQPhogA0E8aiABKAIwEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIEEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIsEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIoEAogA0FAayADQTxqQgQQGBogA0E8akETEAogA0FAayADQTxqQgQQGBogA0E8aiACEAogA0FAayADQTxqQgQQGBogA0E8aiABKAIMEAogA0FAayADQTxqQgQQGBoCQCABKAIIIgJFDQAgA0FAayACIAE1AgwQGBogAS0AOEEBcUUNACABKAIIIAEoAgwQCSABQQA2AgwLIANBPGogASgCFBAKIANBQGsgA0E8akIEEBgaIAEoAhAiAgRAIANBQGsgAiABNQIUEBgaCyADQTxqIAEoAhwQCiADQUBrIANBPGpCBBAYGgJAIAEoAhgiAkUNACADQUBrIAIgATUCHBAYGiABLQA4QQJxRQ0AIAEoAhggASgCHBAJIAFBADYCHAsgA0E8aiABKAIkEAogA0FAayADQTxqQgQQGBogASgCICICBEAgA0FAayACIAE1AiQQGBoLIANBQGsgAEHAABA9GgsgBCQAC68BAQN/IwBBEGsiAiQAQWohAwJAIABFIAFFcg0AIAFBCnQiBCABbkGACEcNACAAQQwQICIBNgIAIAFFDQAgAUIANwIAQYCYAiACQQxqIAQQsgEiATYCAAJAAkAgAQRAIAJBADYCDAwBCyACKAIMIgENAQsgACgCABAZIABBADYCAAwBCyAAKAIAIAE2AgAgACgCACABNgIEIAAoAgAgBDYCCEEAIQMLIAJBEGokACADC4cBAQJ/IwBB0ABrIgMkAEFnIQICQCAARSABRXINACAAIAAoAhRBA3QQICICNgIEIAJFBEBBaiECDAELIAAgACgCEBC8ASICBEAgACABKAI4EIMBDAELIAMgASAAKAIkELsBIANBQGtBCBAJIAMgABC6ASADQcgAEAlBACECCyADQdAAaiQAIAILkwEBBH8jAEEgayICJAACQCAARQ0AIAAoAhxFDQAgAiABNgIQQQEhBANAIAIgAzoAGEEAIQFBACEFIAQEQANAIAJBADYCHCACIAIpAxg3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ACAAIAEgAiADrSAErUIghoQgBSAGEGoLFwAgACABIAKtIAOtQiCGhCAEIAUQuwILFgAgACABKQAANwAwIAAgASkACDcAOAsYACAAIAEgAiADrSAErUIghoQgBSAGEGsLEwAgACABrSACrUIghoQgAxCSAgsTACAAIAEgAq0gA61CIIaEEJMCCyEAIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYgBxCUAgsfACAAIAEgAq0gA61CIIaEIAStIAWtQiCGhCAGEIwBCy0AIAAgAa0gAq1CIIaEIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChCVAgsXACAAIAEgAq0gA61CIIaEIAQgBRCzAgsSACAAIAEgAq0gA61CIIaEEDQLEgAgACABIAKtIAOtQiCGhBAlCxkAIAAgASACIAOtIAStQiCGhCAFIAYQlAELFgAgACABKQAANwAgIAAgASkACDcAKAsXACAAIAEgAq0gA61CIIaEIAQgBRC1AgsVACAAIAEgAq0gA61CIIaEIAQQtgILGQAgACABIAKtIAOtQiCGhCAEIAUgBhCVAQsXACAAIAEgAq0gA61CIIaEIAQgBRC4AgsbACAAIAEgAiADrSAErUIghoQgBSAGIAcQlgELGAAgACABIAIgA60gBK1CIIaEIAUgBhBoCxkAIAAgASACrSADrUIghoQgBCAFIAYQlwELFwAgACABIAKtIAOtQiCGhCAEIAUQuQILGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJgBCxgAIAAgASACIAOtIAStQiCGhCAFIAYQaQsVACAAIAEgAq0gA61CIIaEIAQQwAILFQAgACABIAKtIAOtQiCGhCAEEJoBCyUAIAAgASADIAStIAWtQiCGhCAGIAetIAitQiCGhCAJIAoQyQILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCcAQslACAAIAEgAiADrSAErUIghoQgBSAGrSAHrUIghoQgCSAKEMsCCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxCdAQslACAAIAEgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCSAKEM8CCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQngELJQAgACABIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChDQAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEJ8BCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0QILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKABCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQ0gILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKEBCwQAQQoLBgBBspcCCwsAIAAgASACEIICCw0AIAAgASACIAMQgwILCAAgABA1QQALCQAgACABEIgCCwsAIAAgASACEIoBCwUAQb9/CwUAQdABCywBAX8jAEFAaiIDJAAgACADECcgASADQsAAIAJBARCHASEAIANBQGskACAACy4BAX8jAEFAaiIEJAAgACAEECcgASACIARCwAAgA0EBEIkBIQAgBEFAayQAIAALewEBfwJAAkACQCADQsAAVA0AIANCQHwiA0K/////D1YNACACIAJBQGsiBSADIAQQhgFFDQEgAEUNACAAQQAgA6cQEBoLQX8hAiABRQ0BIAFCADcDAEF/DwsgAQRAIAEgAzcDAAtBACECIABFDQAgACAFIAOnEEcaCyACC3MBAX8jAEEQayIFJAAgACAFQQhqIABBQGsgAiADpyICEEcgAyAEEIgBGgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQEBpBfyEADAELQQAhACABRQ0AIAEgA0JAfTcDAAsgBUEQaiQAIAALbQEBfyMAQUBqIgIkACACIAFCIBA0GiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQCSACQUBrJABBAAuGAQECfyMAQYACayICJABBfyEDAkAgARB1DQAgAkHgAGogARCuAQ0AIAJB4ABqEOUCRQ0AIAIQHSACIAIgAkGIAWoiARAWIAJBMGoQHSACQTBqIAJBMGogARATIAIgAhA6IAJBMGogAkEwaiACEAsgACACQTBqEC1BACEDCyACQYACaiQAIAMLLAEBfyMAQSBrIgIkACACQSAQHyAAIAEg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ASACQhB9IAMgBBBqBSAFCwslACACQvD///8PWgRAEBQACyAAQRBqIAAgASACIAMgBBBrGkEACwsAIAAgASACEL8CCy8AIAFCgICAgBBaBEBBACIAQYQOaiAAQZgOakHFASAAQbIOahAAAAsgACABpxAfCzMBAn8jAEEgayIDJABBfyEEIAMgAiABEKgBRQRAIABB4JUCIAMQbSEECyADQSBqJAAgBAtWAQF/IwBBQGoiAyQAIAMgAkIgEDQaIAEgAykDGDcAGCABIAMpAxA3ABAgASADKQMINwAIIAEgAykDADcAACADQcAAEAkgACABEHIhACADQUBrJAAgAAtAAQF/IwBBIGsiBCQAIAQgASACIAMQmgEaIAAgBBCAASEBIAQgAEEgEEUhAyAEQSBqJAAgA0F/IAEgACAERhtyC0MBAX8jAEFAaiICJAAgACACEMICIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACACQUBrJAALNwEBfyMAQUBqIgIkACAAIAIQJyAAQdABaiIAIAJCwAAQHBogACABECcgAkHAABAJIAJBQGskAAvhAQEDfyMAQcABayICJAAgABA1IAJBQGtBNkGAARAQGiACIAEtAABBNnM6AEBBASEDA0AgAkFAayADaiIEIAQtAAAgASADai0AAHM6AAAgA0EBaiIDQSBHDQALIAAgAkFAa0KAARAcGiAAQdABaiIAEDUgAkFAa0HcAEGAARAQGiACIAEtAABB3ABzOgBAQQEhAwNAIAJBQGsgA2oiBCAELQAAIAEgA2otAABzOgAAIANBAWoiA0EgRw0ACyAAIAJBQGtCgAEQHBogAkFAa0GAARAJIAJBwAAQCSACQcABaiQAC2YBAX4gACkAACIBQjiGIAFCKIZCgICAgICAwP8Ag4QgAUIYhkKAgICAgOA/gyABQgiGQoCAgIDwH4OEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhAsmAQJ/AkBBpJwCKAIAIgBFDQAgACgCFCIARQ0AIAARAQAhAQsgAQtkACAAIAFCKIZCgICAgICAwP8AgyABQjiGhCABQhiGQoCAgICA4D+DIAFCCIZCgICAgPAfg4SEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4D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BiADakENEAggDXMiDSAGakESEAggBXMhBSAaQRJJIRAgGkECaiEaIBANAAsgACACQeXwwYsGahAKIABBBGogByASahAKIABBCGogCCATahAKIABBDGogESAUahAKIABBEGogCSAVahAKIABBFGogDkHuyIGZA2oQCiAAQRhqIAogG2oQCiAAQRxqIAsgHGoQCiAAQSBqIAwgHWoQCiAAQSRqIA8gHmoQCiAAQShqIAFBstqIywdqEAogAEEsaiAEIBZqEAogAEEwaiADIBdqEAogAEE0aiAGIBhqEAogAEE4aiANIBlqEAogAEE8aiAFQfTKgdkGahAKCzoBAX8jAEHgAGsiAyQAIANBMGogAiABEBMgAyACIAEQFiADIAMQOiAAIANBMGogAxALIANB4ABqJAALdgECfyMAQdABayICJAADQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyACQTBqIAAQdiACIAJB2ABqIAJBgAFqENwCIAAgAhAtIAJB0AFqJABBAAu9AwEMfiABNAIEIQIgATQCCCEDIAE0AgwhBCABNAIQIQUgATQCFCEGIAE0AhghByABNAIAIQsgACABNAIkQsK2B34iCCAIQoCAgAh8IghCgICA8A+DfSABNAIgQsK2B34gATQCHELCtgd+IglCgICACHwiCkIZh3wiDEKAgIAQfCINQhqIfD4CJCAAIAwgDUKAgIDgD4N9PgIgIAAgCSAKQoCAgPAPg30gB0LCtgd+IAZCwrYHfiIGQoCAgAh8IgdCGYd8IglCgICAEHwiCkIaiHw+AhwgACAJIApCgICA4A+DfT4CGCAAIAYgB0KAgIDwD4N9IAVCwrYHfiAEQsK2B34iBEKAgIAIfCIFQhmHfCIGQoCAgBB8IgdCGoh8PgIUIAAgBiAHQoCAgOAPg30+AhAgACAEIAVCgICA8A+DfSADQsK2B34gAkLCtgd+IgJCgICACHwiA0IZh3wiBEKAgIAQfCIFQhqIfD4CDCAAIAQgBUKAgIDgD4N9PgIIIAAgAiADQoCAgPAPg30gCEIZh0ITfiALQsK2B358IgJCgICAEHwiA0IaiHw+AgQgACACIANCgICA4A+DfT4CAAvcAQEFfyMAQRBrIgNBADYACyADQQA2AggDQCAAIAJqLQAAIQRBACEBA0AgA0EIaiABaiIFIAUtAAAgAUEFdEGgjQJqIAJqLQAAIARzcjoAACABQQFqIgFBB0cNAAsgAkEBaiICQR9HDQALIAAtAB9B/wBxIQJBACEAQQAhAQNAIANBCGogAWoiBCAELQAAIAIgAUEFdEG/jQJqLQAAc3I6AAAgAUEBaiIBQQdHDQALQQAhAQNAIANBCGogAGotAABBAWsgAXIhASAAQQFqIgBBB0cNAAsgAUEIdkEBcQvcBAEDfyMAQdACayIDJABBfyEEIAIQ3wJFBEBBACEEA0AgACAEaiABIARqLQAAOgAAIARBAWoiBEEgRw0ACyAAIAAtAABB+AFxOgAAIAAgAC0AH0E/cUHAAHI6AB8gA0GgAmogAhB7IANB8AFqEB0gA0HAAWoQOCADQZABaiADQaACahAsIANB4ABqEB1B/gEhAkEAIQQDQCADQfABaiADQZABaiAAIAIiBUEDdmotAAAgAkEHcXZBAXEiASAEcyIEEE4gA0HAAWogA0HgAGogBBBOIAJBAWshAiADQTBqIANBkAFqIANB4ABqEBYgAyADQfABaiADQcABahAWIANB8AFqIANB8AFqIANBwAFqEBMgA0HAAWogA0GQAWogA0HgAGoQEyADQeAAaiADQTBqIANB8AFqEAsgA0HAAWogA0HAAWogAxALIANBMGogAxAOIAMgA0HwAWoQDiADQZABaiADQeAAaiADQcABahATIANBwAFqIANB4ABqIANBwAFqEBYgA0HwAWogAyADQTBqEAsgAyADIANBMGoQFiADQcABaiADQcABahAOIANB4ABqIAMQ3gIgA0GQAWogA0GQAWoQDiADQTBqIANBMGogA0HgAGoQEyADQeAAaiADQaACaiADQcABahALIANBwAFqIAMgA0EwahALIAEhBCAFDQALIANB8AFqIANBkAFqIAEQTiADQcABaiADQeAAaiABEE4gA0HAAWogA0HAAWoQOiADQfABaiADQfABaiADQcABahALIAAgA0HwAWoQLUEAIQQLIANB0AJqJAAgBAtUAQV/QSAhAUEBIQIDQCAAIAFBAWsiAWotAAAiBCABQYAbai0AACIFa0EIdSACcSADQf8BcXIhAyAEIAVzQf//A2pBCHYgAnEhAiABDQALIANBAEcL6B4BOn4gARAPIRIg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CiAAIAtC////AIMgBEIVh3wiBkIKiDwAESAAIAZCAog8ABAgACAEQv///wCDIgdCAYYgBUIUiIQ8AA0gACAMQv///wCDIAZCFYd8IgRCDYg8ABQgACAEQgWIPAATIAAgBkL///8AgyIFQgaGIAdCD4iEPAAPIAAgDkL///8AgyAEQhWHfCIGPAAVIAAgBEIDhiAFQhKIhDwAEiAAIAZCCIg8ABYgACAPQv///wCDIAZCFYd8IgRCC4g8ABkgACAEQgOIPAAYIAAgEEL///8AgyAEQhWHfCIFQgaIPAAbIAAgBkIQiEIfgyAEQv///wCDIgRCBYaEPAAXIAAgDUL///8AgyAFQhWHfCIGQhGIPAAfIAAgBkIJiDwAHiAAIAZCAYg8AB0gACAFQv///wCDIgVCAoYgBEITiIQ8ABogACAGQgeGIAVCDoiEPAAcC1IBA38gAC0AH0F/c0H/AHEhAUEeIQIDQCABIAAgAmotAABBf3NyIQEgAkEBayIDIQIgAw0ACyABQf8BcUEBa0HsASAALQAAa3FBCHZBf3NBAXELjAQBAn8jAEHgDWsiAiQAIAJB4ANqIAEQGyACQcACaiABEE8gAiACQcACahAVIAJBwAJqIAIgAkHgA2oQGiACQaABaiACQcACahAVIAJBgAVqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAZqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAdqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJB4AhqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBgApqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBoAtqIgEgAkGgAWoQGyACQcACaiACIAEQGiACQaABaiACQcACahAVIAJBwAxqIAJBoAFqEBsgABCrAUH8ASEBA0AgAkHAAmogABBPAkAgASIDQaCLAmosAAAiAUEBTgRAIAJBoAFqIAJBwAJqEBUgAkHAAmogAkGgAWogAkHgA2ogAUH+AXFBAXZBoAFsahAaDAELIAFBf0oNACACQaABaiACQcACahAVIAJBwAJqIAJBoAFqIAJB4ANqQQAgAWtB/gFx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/////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBnxsL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4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ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBnI0CCwEBAEHAjQILAQEAQeCNAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQaCPAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB8JUCC4UBYjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJABBkJcCCyhTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAMS4wLjE4AEG8lwILOVCOUAAAQAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ==\";function nA(A){try{if(A==iA&&w)return new Uint8Array(w);var I=HA(A);if(I)return I;if(t)return t(A);throw\"both async and sync fetching of the wasm failed\"}catch(A){$(A)}}function aA(){if(!w&&(i||n)){if(\"function\"==typeof fetch&&!QA(iA))return fetch(iA,{credentials:\"same-origin\"}).then((function(A){if(!A.ok)throw\"failed to load wasm binary file at '\"+iA+\"'\";return A.arrayBuffer()})).catch((function(){return nA(iA)}));if(e)return new Promise((function(A,I){e(iA,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return nA(iA)}))}function rA(){var A={a:bA};function I(A,I){var g=A.exports;Q.asm=g,M((h=Q.asm.g).buffer),d=Q.asm.h,z()}function g(A){I(A.instance)}function B(I){return aA().then((function(I){return WebAssembly.instantiate(I,A)})).then(I,(function(A){D(\"failed to asynchronously prepare wasm: \"+A),$(A)}))}if(O(),Q.instantiateWasm)try{return Q.instantiateWasm(A,I)}catch(A){return D(\"Module.instantiateWasm callback failed with error: \"+A),!1}return w||\"function\"!=typeof WebAssembly.instantiateStreaming||gA(iA)||QA(iA)||\"function\"!=typeof fetch?B(g):fetch(iA,{credentials:\"same-origin\"}).then((function(I){return WebAssembly.instantiateStreaming(I,A).then(g,(function(A){return D(\"wasm streaming compile failed: \"+A),D(\"falling back to ArrayBuffer instantiation\"),B(g)}))})),{}}gA(iA)||(iA=s(iA));var oA={1024:function(){return Q.getRandomValue()},1062:function(){if(void 0===Q.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),Q.getRandomValue=g}catch(A){try{var B=require(\"crypto\"),C=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};C(),Q.getRandomValue=C}catch(A){throw\"No secure random number generator found\"}}}};function eA(A){for(;A.length>0;){var I=A.shift();if(\"function\"!=typeof I){var g=I.func;\"number\"==typeof g?void 0===I.arg?d.get(g)():d.get(g)(I.arg):g(void 0===I.arg?null:I.arg)}else I(Q)}}function tA(A,I,g,B){$(\"Assertion failed: \"+S(A)+\", at: \"+[I?S(I):\"unknown filename\",g,B?S(B):\"unknown function\"])}function fA(){$()}function cA(A,I,g){var B=lA(I,g);return oA[A].apply(null,B)}function yA(A,I,g){_.copyWithin(A,I,I+g)}function sA(){return _.length}function wA(A){try{return h.grow(A-G.byteLength+65535>>>16),M(h.buffer),1}catch(A){}}function hA(A){A>>>=0;var I=sA(),g=2147483648;if(A>g)return!1;for(var B=1;B<=4;B*=2){var Q=I*(1+.2/B);if(Q=Math.min(Q,A+100663296),wA(Math.min(g,N(Math.max(16777216,A,Q),65536))))return!0}return!1}function DA(A){return Y[vA()>>2]=A,A}function uA(A){switch(A){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return\"object\"==typeof navigator&&navigator.hardwareConcurrency||1}return DA(28),-1}var pA=[];function lA(A,I){var g;for(pA.length=0,I>>=2;g=_[A++];){var B=g<105;B&&1&I&&I++,pA.push(B?m[I++>>1]:Y[I]),++I}return pA}var FA=!1;function GA(A){for(var I=[],g=0;g255&&(FA&&F(!1,\"Character code \"+B+\" (\"+String.fromCharCode(B)+\") at offset \"+g+\" not in 0x00-0xFF.\"),B&=255),I.push(String.fromCharCode(B))}return I.join(\"\")}var kA=\"function\"==typeof atob?atob:function(A){var I,g,B,Q,C,E,i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",n=\"\",a=0;A=A.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{I=i.indexOf(A.charAt(a++))<<2|(Q=i.indexOf(A.charAt(a++)))>>4,g=(15&Q)<<4|(C=i.indexOf(A.charAt(a++)))>>2,B=(3&C)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==C&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a0||(L(),T>0||(Q.setStatus?(Q.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){Q.setStatus(\"\")}),1),I()}),1)):I()))}if(Q._malloc=function(){return(Q._malloc=Q.asm.Bc).apply(null,arguments)},Q._free=function(){return(Q._free=Q.asm.Cc).apply(null,arguments)},Q.setValue=u,Q.getValue=p,Q.UTF8ToString=S,Z=function A(){YA||UA(),YA||(Z=A)},Q.run=UA,Q.preInit)for(\"function\"==typeof Q.preInit&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();UA()})).catch((function(){return B.useBackupModule()})),I}\"function\"==typeof define&&define.amd?define([\"exports\"],I):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this);\n","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\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;\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","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","var fs = require('fs')\nvar path = require('path')\nvar os = require('os')\n\n// Workaround to fix webpack's build warnings: 'the request of a dependency is an expression'\nvar runtimeRequire = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require // eslint-disable-line\n\nvar vars = (process.config && process.config.variables) || {}\nvar prebuildsOnly = !!process.env.PREBUILDS_ONLY\nvar abi = process.versions.modules // TODO: support old node where this is undef\nvar runtime = isElectron() ? 'electron' : 'node'\nvar arch = os.arch()\nvar platform = os.platform()\nvar libc = process.env.LIBC || (isAlpine(platform) ? 'musl' : 'glibc')\nvar armv = process.env.ARM_VERSION || (arch === 'arm64' ? '8' : vars.arm_version) || ''\nvar uv = (process.versions.uv || '').split('.')[0]\n\nmodule.exports = load\n\nfunction load (dir) {\n return runtimeRequire(load.path(dir))\n}\n\nload.path = function (dir) {\n dir = path.resolve(dir || '.')\n\n try {\n var name = runtimeRequire(path.join(dir, 'package.json')).name.toUpperCase().replace(/-/g, '_')\n if (process.env[name + '_PREBUILD']) dir = process.env[name + '_PREBUILD']\n } catch (err) {}\n\n if (!prebuildsOnly) {\n var release = getFirst(path.join(dir, 'build/Release'), matchBuild)\n if (release) return release\n\n var debug = getFirst(path.join(dir, 'build/Debug'), matchBuild)\n if (debug) return debug\n }\n\n var prebuild = resolve(dir)\n if (prebuild) return prebuild\n\n var nearby = resolve(path.dirname(process.execPath))\n if (nearby) return nearby\n\n var target = [\n 'platform=' + platform,\n 'arch=' + arch,\n 'runtime=' + runtime,\n 'abi=' + abi,\n 'uv=' + uv,\n armv ? 'armv=' + armv : '',\n 'libc=' + libc,\n 'node=' + process.versions.node,\n process.versions.electron ? 'electron=' + process.versions.electron : '',\n typeof __webpack_require__ === 'function' ? 'webpack=true' : '' // eslint-disable-line\n ].filter(Boolean).join(' ')\n\n throw new Error('No native build was found for ' + target + '\\n loaded from: ' + dir + '\\n')\n\n function resolve (dir) {\n // Find matching \"prebuilds/-\" directory\n var tuples = readdirSync(path.join(dir, 'prebuilds')).map(parseTuple)\n var tuple = tuples.filter(matchTuple(platform, arch)).sort(compareTuples)[0]\n if (!tuple) return\n\n // Find most specific flavor first\n var prebuilds = path.join(dir, 'prebuilds', tuple.name)\n var parsed = readdirSync(prebuilds).map(parseTags)\n var candidates = parsed.filter(matchTags(runtime, abi))\n var winner = candidates.sort(compareTags(runtime))[0]\n if (winner) return path.join(prebuilds, winner.file)\n }\n}\n\nfunction readdirSync (dir) {\n try {\n return fs.readdirSync(dir)\n } catch (err) {\n return []\n }\n}\n\nfunction getFirst (dir, filter) {\n var files = readdirSync(dir).filter(filter)\n return files[0] && path.join(dir, files[0])\n}\n\nfunction matchBuild (name) {\n return /\\.node$/.test(name)\n}\n\nfunction parseTuple (name) {\n // Example: darwin-x64+arm64\n var arr = name.split('-')\n if (arr.length !== 2) return\n\n var platform = arr[0]\n var architectures = arr[1].split('+')\n\n if (!platform) return\n if (!architectures.length) return\n if (!architectures.every(Boolean)) return\n\n return { name, platform, architectures }\n}\n\nfunction matchTuple (platform, arch) {\n return function (tuple) {\n if (tuple == null) return false\n if (tuple.platform !== platform) return false\n return tuple.architectures.includes(arch)\n }\n}\n\nfunction compareTuples (a, b) {\n // Prefer single-arch prebuilds over multi-arch\n return a.architectures.length - b.architectures.length\n}\n\nfunction parseTags (file) {\n var arr = file.split('.')\n var extension = arr.pop()\n var tags = { file: file, specificity: 0 }\n\n if (extension !== 'node') return\n\n for (var i = 0; i < arr.length; i++) {\n var tag = arr[i]\n\n if (tag === 'node' || tag === 'electron' || tag === 'node-webkit') {\n tags.runtime = tag\n } else if (tag === 'napi') {\n tags.napi = true\n } else if (tag.slice(0, 3) === 'abi') {\n tags.abi = tag.slice(3)\n } else if (tag.slice(0, 2) === 'uv') {\n tags.uv = tag.slice(2)\n } else if (tag.slice(0, 4) === 'armv') {\n tags.armv = tag.slice(4)\n } else if (tag === 'glibc' || tag === 'musl') {\n tags.libc = tag\n } else {\n continue\n }\n\n tags.specificity++\n }\n\n return tags\n}\n\nfunction matchTags (runtime, abi) {\n return function (tags) {\n if (tags == null) return false\n if (tags.runtime !== runtime && !runtimeAgnostic(tags)) return false\n if (tags.abi !== abi && !tags.napi) return false\n if (tags.uv && tags.uv !== uv) return false\n if (tags.armv && tags.armv !== armv) return false\n if (tags.libc && tags.libc !== libc) return false\n\n return true\n }\n}\n\nfunction runtimeAgnostic (tags) {\n return tags.runtime === 'node' && tags.napi\n}\n\nfunction compareTags (runtime) {\n // Precedence: non-agnostic runtime, abi over napi, then by specificity.\n return function (a, b) {\n if (a.runtime !== b.runtime) {\n return a.runtime === runtime ? -1 : 1\n } else if (a.abi !== b.abi) {\n return a.abi ? -1 : 1\n } else if (a.specificity !== b.specificity) {\n return a.specificity > b.specificity ? -1 : 1\n } else {\n return 0\n }\n }\n}\n\nfunction isElectron () {\n if (process.versions && process.versions.electron) return true\n if (process.env.ELECTRON_RUN_AS_NODE) return true\n return typeof window !== 'undefined' && window.process && window.process.type === 'renderer'\n}\n\nfunction isAlpine (platform) {\n return platform === 'linux' && fs.existsSync('/etc/alpine-release')\n}\n\n// Exposed for unit tests\n// TODO: move to lib\nload.parseTags = parseTags\nload.matchTags = matchTags\nload.compareTags = compareTags\nload.parseTuple = parseTuple\nload.matchTuple = matchTuple\nload.compareTuples = compareTuples\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\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","// Top level file is just a mixin of submodules & constants\n'use strict';\n\nconst { Deflate, deflate, deflateRaw, gzip } = require('./lib/deflate');\n\nconst { Inflate, inflate, inflateRaw, ungzip } = require('./lib/inflate');\n\nconst constants = require('./lib/zlib/constants');\n\nmodule.exports.Deflate = Deflate;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateRaw = deflateRaw;\nmodule.exports.gzip = gzip;\nmodule.exports.Inflate = Inflate;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateRaw = inflateRaw;\nmodule.exports.ungzip = ungzip;\nmodule.exports.constants = constants;\n","'use strict';\n\n\nconst zlib_deflate = require('./zlib/deflate');\nconst utils = require('./utils/common');\nconst strings = require('./utils/strings');\nconst msg = require('./zlib/messages');\nconst ZStream = require('./zlib/zstream');\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED\n} = require('./zlib/constants');\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n let status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = zlib_deflate.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n this.result = utils.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n const deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nmodule.exports.Deflate = Deflate;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateRaw = deflateRaw;\nmodule.exports.gzip = gzip;\nmodule.exports.constants = require('./zlib/constants');\n","'use strict';\n\n\nconst zlib_inflate = require('./zlib/inflate');\nconst utils = require('./utils/common');\nconst strings = require('./utils/strings');\nconst msg = require('./zlib/messages');\nconst ZStream = require('./zlib/zstream');\nconst GZheader = require('./zlib/gzheader');\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = require('./zlib/constants');\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n this.options = utils.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n let status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = zlib_inflate.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = zlib_inflate.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n zlib_inflate.inflateReset(strm);\n status = zlib_inflate.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n const inflator = new Inflate(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || msg[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nmodule.exports.Inflate = Inflate;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateRaw = inflateRaw;\nmodule.exports.ungzip = inflate;\nmodule.exports.constants = require('./zlib/constants');\n","'use strict';\n\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nmodule.exports.assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nmodule.exports.flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n","// String encode/decode helpers\n'use strict';\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nmodule.exports.string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nmodule.exports.buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nmodule.exports.utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nmodule.exports = adler32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n","'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nmodule.exports = crc32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = require('./trees');\nconst adler32 = require('./adler32');\nconst crc32 = require('./crc32');\nconst msg = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_PARTIAL_FLUSH, Z_FULL_FLUSH, Z_FINISH, Z_BLOCK,\n Z_OK, Z_STREAM_END, Z_STREAM_ERROR, Z_DATA_ERROR, Z_BUF_ERROR,\n Z_DEFAULT_COMPRESSION,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY,\n Z_UNKNOWN,\n Z_DEFLATED\n} = require('./constants');\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = msg[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n _tr_init(s);\n return Z_OK;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n};\n\n\nconst deflate = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n};\n\n\nmodule.exports.deflateInit = deflateInit;\nmodule.exports.deflateInit2 = deflateInit2;\nmodule.exports.deflateReset = deflateReset;\nmodule.exports.deflateResetKeep = deflateResetKeep;\nmodule.exports.deflateSetHeader = deflateSetHeader;\nmodule.exports.deflate = deflate;\nmodule.exports.deflateEnd = deflateEnd;\nmodule.exports.deflateSetDictionary = deflateSetDictionary;\nmodule.exports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = require('./adler32');\nconst crc32 = require('./crc32');\nconst inflate_fast = require('./inffast');\nconst inflate_table = require('./inftrees');\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH, Z_BLOCK, Z_TREES,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR, Z_BUF_ERROR,\n Z_DEFLATED\n} = require('./constants');\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n};\n\n\nmodule.exports.inflateReset = inflateReset;\nmodule.exports.inflateReset2 = inflateReset2;\nmodule.exports.inflateResetKeep = inflateResetKeep;\nmodule.exports.inflateInit = inflateInit;\nmodule.exports.inflateInit2 = inflateInit2;\nmodule.exports.inflate = inflate;\nmodule.exports.inflateEnd = inflateEnd;\nmodule.exports.inflateGetHeader = inflateGetHeader;\nmodule.exports.inflateSetDictionary = inflateSetDictionary;\nmodule.exports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nmodule.exports = inflate_table;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES = 30;\n/* number of distance codes */\n\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nmodule.exports._tr_init = _tr_init;\nmodule.exports._tr_stored_block = _tr_stored_block;\nmodule.exports._tr_flush_block = _tr_flush_block;\nmodule.exports._tr_tally = _tr_tally;\nmodule.exports._tr_align = _tr_align;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n","'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\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// 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'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\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 Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\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 get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\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 get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\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 get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\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 get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(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 } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\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'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\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); // 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\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // 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\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // 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\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // 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\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; // 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\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // 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\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\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 if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\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 get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\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.\n\n\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\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\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\n if (er) {\n errorOrDestroy(stream, 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) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\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 maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\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 if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\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\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\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 } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // 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\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || 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); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\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 // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\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; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // 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\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 = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\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; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\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.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\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.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\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.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\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\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\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 } // 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\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\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 cleanedUp = true; // 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\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\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', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\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 = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\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 if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\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, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\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\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\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.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\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 stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\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\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\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 get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\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 get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\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 get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\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 get() {\n return this._readableState.length;\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.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\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.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\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\n return -1;\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// 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'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\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 Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // 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\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\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}; // 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.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\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\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}; // 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.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\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 Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\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// 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'use strict';\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} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // 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 // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // 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\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // 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\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // 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\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // 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\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // 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\n this.sync = true; // 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\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\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 value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // 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 // 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 // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\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.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\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 if (typeof cb !== 'function') cb = nop;\n if (state.ending) 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 return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !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 ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\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 get() {\n return this._writableState && this._writableState.getBuffer();\n }\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\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 get() {\n return this._writableState.highWaterMark;\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.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\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\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\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 (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else 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 process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, 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 errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\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 if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\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) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\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} // 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.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\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 var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\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 doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // 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\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 ERR_METHOD_NOT_IMPLEMENTED('_write()'));\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); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\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 get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.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\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\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\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\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 get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: 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 key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\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\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\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\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\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) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\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\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\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.finalCalled = false;\n this._writableState.prefinished = 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\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\n\nfunction from(Readable, iterable, opts) {\n var iterator;\n\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts)); // Reading boolean to protect against _read\n // being called before last iteration completion.\n\n var reading = false;\n\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n\n function next() {\n return _next2.apply(this, arguments);\n }\n\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _ref = yield iterator.next(),\n value = _ref.value,\n done = _ref.done;\n\n if (done) {\n readable.push(null);\n } else if (readable.push((yield value))) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n\n return readable;\n}\n\nmodule.exports = from;","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('stream');\n","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n exports.finished = require('./lib/internal/streams/end-of-stream.js');\n exports.pipeline = require('./lib/internal/streams/pipeline.js');\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\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","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0)\n this.set = [first]\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached)\n return cached\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const l = rangeList.length\n const rangeMap = new Map()\n for (const comp of rangeList) {\n if (isNullSet(comp))\n return [comp]\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has(''))\n rangeMap.delete('')\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null)\n return null\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((options, k) => {\n options[k] = true\n return options\n }, {})\nmodule.exports = parseOptions\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin)))\n minver = setMin\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom)\n return true\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom)\n return true\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY)\n return true\n else if (options.includePrerelease)\n sub = [ new Comparator('>=0.0.0-0') ]\n else\n sub = [ new Comparator('>=0.0.0') ]\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease)\n return true\n else\n dom = [ new Comparator('>=0.0.0') ]\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\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}","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\n\t\t\t// This just needs to be something that won't trample other user's Symbol.for use\n\t\t\t// It also will guide people to the source of their issues, if this is problematic.\n\t\t\t// META: It's a resource locator!\n\t\t\tresult = _Symbol['for']('https://github.com/benlesh/symbol-observable');\n\t\t\ttry {\n\t\t\t\t_Symbol.observable = result;\n\t\t\t} catch (err) {\n\t\t\t\t// Do nothing. In some environments, users have frozen `Symbol` for security reasons,\n\t\t\t\t// if it is frozen assigning to it will throw. In this case, we don't care, because\n\t\t\t\t// they will need to use the returned value from the ponyfill.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};","module.exports = require('./lib/ponyfill');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeSignDoc = exports.Secp256k1Wallet = exports.Secp256k1HdWallet = exports.rawSecp256k1PubkeyToRawAddress = exports.pubkeyType = exports.pubkeyToRawAddress = exports.pubkeyToAddress = exports.parseCoins = exports.makeStdTx = exports.makeSignDoc = exports.makeCosmoshubPath = exports.isStdTx = exports.isSinglePubkey = exports.isSecp256k1Pubkey = exports.encodeSecp256k1Signature = exports.encodeSecp256k1Pubkey = exports.encodeBech32Pubkey = exports.encodeAminoPubkey = exports.decodeSignature = exports.decodeBech32Pubkey = exports.decodeAminoPubkey = exports.coins = exports.coin = void 0;\nvar amino_1 = require(\"@cosmjs/amino\");\nObject.defineProperty(exports, \"coin\", { enumerable: true, get: function () { return amino_1.coin; } });\nObject.defineProperty(exports, \"coins\", { enumerable: true, get: function () { return amino_1.coins; } });\nObject.defineProperty(exports, \"decodeAminoPubkey\", { enumerable: true, get: function () { return amino_1.decodeAminoPubkey; } });\nObject.defineProperty(exports, \"decodeBech32Pubkey\", { enumerable: true, get: function () { return amino_1.decodeBech32Pubkey; } });\nObject.defineProperty(exports, \"decodeSignature\", { enumerable: true, get: function () { return amino_1.decodeSignature; } });\nObject.defineProperty(exports, \"encodeAminoPubkey\", { enumerable: true, get: function () { return amino_1.encodeAminoPubkey; } });\nObject.defineProperty(exports, \"encodeBech32Pubkey\", { enumerable: true, get: function () { return amino_1.encodeBech32Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Pubkey\", { enumerable: true, get: function () { return amino_1.encodeSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"encodeSecp256k1Signature\", { enumerable: true, get: function () { return amino_1.encodeSecp256k1Signature; } });\nObject.defineProperty(exports, \"isSecp256k1Pubkey\", { enumerable: true, get: function () { return amino_1.isSecp256k1Pubkey; } });\nObject.defineProperty(exports, \"isSinglePubkey\", { enumerable: true, get: function () { return amino_1.isSinglePubkey; } });\nObject.defineProperty(exports, \"isStdTx\", { enumerable: true, get: function () { return amino_1.isStdTx; } });\nObject.defineProperty(exports, \"makeCosmoshubPath\", { enumerable: true, get: function () { return amino_1.makeCosmoshubPath; } });\nObject.defineProperty(exports, \"makeSignDoc\", { enumerable: true, get: function () { return amino_1.makeSignDoc; } });\nObject.defineProperty(exports, \"makeStdTx\", { enumerable: true, get: function () { return amino_1.makeStdTx; } });\nObject.defineProperty(exports, \"parseCoins\", { enumerable: true, get: function () { return amino_1.parseCoins; } });\nObject.defineProperty(exports, \"pubkeyToAddress\", { enumerable: true, get: function () { return amino_1.pubkeyToAddress; } });\nObject.defineProperty(exports, \"pubkeyToRawAddress\", { enumerable: true, get: function () { return amino_1.pubkeyToRawAddress; } });\nObject.defineProperty(exports, \"pubkeyType\", { enumerable: true, get: function () { return amino_1.pubkeyType; } });\nObject.defineProperty(exports, \"rawSecp256k1PubkeyToRawAddress\", { enumerable: true, get: function () { return amino_1.rawSecp256k1PubkeyToRawAddress; } });\nObject.defineProperty(exports, \"Secp256k1HdWallet\", { enumerable: true, get: function () { return amino_1.Secp256k1HdWallet; } });\nObject.defineProperty(exports, \"Secp256k1Wallet\", { enumerable: true, get: function () { return amino_1.Secp256k1Wallet; } });\nObject.defineProperty(exports, \"serializeSignDoc\", { enumerable: true, get: function () { return amino_1.serializeSignDoc; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBinary = exports.SigningCosmWasmClient = exports.fromBinary = exports.CosmWasmClient = void 0;\nvar cosmwasm_stargate_1 = require(\"@cosmjs/cosmwasm-stargate\");\nObject.defineProperty(exports, \"CosmWasmClient\", { enumerable: true, get: function () { return cosmwasm_stargate_1.CosmWasmClient; } });\nObject.defineProperty(exports, \"fromBinary\", { enumerable: true, get: function () { return cosmwasm_stargate_1.fromBinary; } });\nObject.defineProperty(exports, \"SigningCosmWasmClient\", { enumerable: true, get: function () { return cosmwasm_stargate_1.SigningCosmWasmClient; } });\nObject.defineProperty(exports, \"toBinary\", { enumerable: true, get: function () { return cosmwasm_stargate_1.toBinary; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = exports.pathToString = exports.Bip39 = void 0;\nvar crypto_1 = require(\"@cosmjs/crypto\");\nObject.defineProperty(exports, \"Bip39\", { enumerable: true, get: function () { return crypto_1.Bip39; } });\nObject.defineProperty(exports, \"pathToString\", { enumerable: true, get: function () { return crypto_1.pathToString; } });\nObject.defineProperty(exports, \"Random\", { enumerable: true, get: function () { return crypto_1.Random; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.toRfc3339 = exports.toHex = exports.toBech32 = exports.toBase64 = exports.toAscii = exports.fromUtf8 = exports.fromRfc3339 = exports.fromHex = exports.fromBech32 = exports.fromBase64 = exports.fromAscii = exports.Bech32 = void 0;\nvar encoding_1 = require(\"@cosmjs/encoding\");\nObject.defineProperty(exports, \"Bech32\", { enumerable: true, get: function () { return encoding_1.Bech32; } });\nObject.defineProperty(exports, \"fromAscii\", { enumerable: true, get: function () { return encoding_1.fromAscii; } });\nObject.defineProperty(exports, \"fromBase64\", { enumerable: true, get: function () { return encoding_1.fromBase64; } });\nObject.defineProperty(exports, \"fromBech32\", { enumerable: true, get: function () { return encoding_1.fromBech32; } });\nObject.defineProperty(exports, \"fromHex\", { enumerable: true, get: function () { return encoding_1.fromHex; } });\nObject.defineProperty(exports, \"fromRfc3339\", { enumerable: true, get: function () { return encoding_1.fromRfc3339; } });\nObject.defineProperty(exports, \"fromUtf8\", { enumerable: true, get: function () { return encoding_1.fromUtf8; } });\nObject.defineProperty(exports, \"toAscii\", { enumerable: true, get: function () { return encoding_1.toAscii; } });\nObject.defineProperty(exports, \"toBase64\", { enumerable: true, get: function () { return encoding_1.toBase64; } });\nObject.defineProperty(exports, \"toBech32\", { enumerable: true, get: function () { return encoding_1.toBech32; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return encoding_1.toHex; } });\nObject.defineProperty(exports, \"toRfc3339\", { enumerable: true, get: function () { return encoding_1.toRfc3339; } });\nObject.defineProperty(exports, \"toUtf8\", { enumerable: true, get: function () { return encoding_1.toUtf8; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FaucetClient = void 0;\nvar faucet_client_1 = require(\"@cosmjs/faucet-client\");\nObject.defineProperty(exports, \"FaucetClient\", { enumerable: true, get: function () { return faucet_client_1.FaucetClient; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupNodeLedger = exports.setupNodeLocal = exports.setupWebLedger = exports.setupWebKeplr = void 0;\n/**\n * Setup helper functions\n *\n * These are multiple helper function to get quickly started.\n * There are currently 4 different functions to choose from:\n * (a) Web / Keplr\n * (b) Web / Ledger\n * (c) Node / Local Mnemonic\n * (d) Node / Ledger\n */\nconst amino_1 = require(\"../amino\");\nconst cosmwasm_stargate_1 = require(\"../cosmwasm-stargate\");\nconst ledger_amino_1 = require(\"../ledger-amino\");\nconst proto_signing_1 = require(\"../proto-signing\");\n/**\n * (a) Web / Keplr\n * Prompts keplr and returns a signing client after the user\n * gave permissions.\n *\n * @param config\n * @returns SigningCosmWasmClient\n */\nasync function setupWebKeplr(config) {\n // check browser compatibility\n if (!window.keplr) {\n throw new Error(\"Keplr is not supported or installed on this browser!\");\n }\n // try to enable keplr with given chainId\n await window.keplr.enable(config.chainId).catch(() => {\n throw new Error(\"Keplr can't connect to this chainId!\");\n });\n const { prefix, gasPrice } = config;\n // Setup signer\n const offlineSigner = await window.getOfflineSignerAuto(config.chainId);\n // Init SigningCosmWasmClient client\n const signingClient = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(config.rpcEndpoint, offlineSigner, {\n prefix,\n gasPrice,\n });\n return signingClient;\n}\nexports.setupWebKeplr = setupWebKeplr;\n/**\n * (b) Web / Ledger\n * Returns a signing client after the user gave permissions.\n *\n * @param config\n * @returns SigningCosmWasmClient\n */\nasync function setupWebLedger(config, transport) {\n const { prefix, gasPrice } = config;\n const interactiveTimeout = 120000;\n // Prepare ledger\n const ledgerTransport = await transport.create(interactiveTimeout, interactiveTimeout);\n // Setup signer\n const offlineSigner = new ledger_amino_1.LedgerSigner(ledgerTransport, {\n hdPaths: [(0, amino_1.makeCosmoshubPath)(0)],\n prefix: prefix,\n });\n // Init SigningCosmWasmClient client\n const client = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(config.rpcEndpoint, offlineSigner, {\n prefix,\n gasPrice,\n });\n const chainId = await client.getChainId();\n if (chainId !== config.chainId) {\n throw Error(\"Given ChainId doesn't match the clients ChainID!\");\n }\n return client;\n}\nexports.setupWebLedger = setupWebLedger;\n/**\n * (c) Node / Local Mnemonic\n * Using a local mnemonic and returns a signing clien\n *\n * @param config\n * @param mnemonic\n * @returns SigningCosmWasmClient\n */\nasync function setupNodeLocal(config, mnemonic) {\n const { prefix, gasPrice } = config;\n // Setup signer\n const offlineSigner = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix });\n // Init SigningCosmWasmClient client\n const client = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(config.rpcEndpoint, offlineSigner, {\n prefix,\n gasPrice,\n });\n const chainId = await client.getChainId();\n if (chainId !== config.chainId) {\n throw Error(\"Given ChainId doesn't match the clients ChainID!\");\n }\n return client;\n}\nexports.setupNodeLocal = setupNodeLocal;\n/**\n * (d) Node / Ledger\n * Returns a signing client after the user gave permissions.\n *\n * @param config\n * @returns SigningCosmWasmClient\n */\nasync function setupNodeLedger(config, transport) {\n const { prefix, gasPrice } = config;\n const interactiveTimeout = 120000;\n // Prepare ledger\n const ledgerTransport = await transport.create(interactiveTimeout, interactiveTimeout);\n // Setup signer\n const offlineSigner = new ledger_amino_1.LedgerSigner(ledgerTransport, {\n hdPaths: [(0, amino_1.makeCosmoshubPath)(0)],\n prefix: prefix,\n });\n const client = await cosmwasm_stargate_1.SigningCosmWasmClient.connectWithSigner(config.rpcEndpoint, offlineSigner, {\n prefix: prefix,\n gasPrice: gasPrice,\n });\n const chainId = await client.getChainId();\n if (chainId !== config.chainId) {\n throw Error(\"Given ChainId doesn't match the clients ChainID!\");\n }\n return client;\n}\nexports.setupNodeLedger = setupNodeLedger;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupWebLedger = exports.setupWebKeplr = exports.setupNodeLocal = exports.setupNodeLedger = void 0;\n/**\n * Exporting all the defined CosmJS symbols\n */\n__exportStar(require(\"./amino\"), exports);\n__exportStar(require(\"./cosmwasm-stargate\"), exports);\n__exportStar(require(\"./crypto\"), exports);\n__exportStar(require(\"./encoding\"), exports);\n__exportStar(require(\"./faucet-client\"), exports);\n__exportStar(require(\"./ledger-amino\"), exports);\n__exportStar(require(\"./math\"), exports);\n__exportStar(require(\"./proto-signing\"), exports);\n__exportStar(require(\"./stargate\"), exports);\n__exportStar(require(\"./utils\"), exports);\n/**\n * Exporting CosmWasmJS Helpers\n */\nvar setup_1 = require(\"./helpers/setup\");\nObject.defineProperty(exports, \"setupNodeLedger\", { enumerable: true, get: function () { return setup_1.setupNodeLedger; } });\nObject.defineProperty(exports, \"setupNodeLocal\", { enumerable: true, get: function () { return setup_1.setupNodeLocal; } });\nObject.defineProperty(exports, \"setupWebKeplr\", { enumerable: true, get: function () { return setup_1.setupWebKeplr; } });\nObject.defineProperty(exports, \"setupWebLedger\", { enumerable: true, get: function () { return setup_1.setupWebLedger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LedgerSigner = void 0;\nvar ledger_amino_1 = require(\"@cosmjs/ledger-amino\");\nObject.defineProperty(exports, \"LedgerSigner\", { enumerable: true, get: function () { return ledger_amino_1.LedgerSigner; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Decimal = void 0;\nvar math_1 = require(\"@cosmjs/math\");\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return math_1.Decimal; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Registry = exports.DirectSecp256k1HdWallet = void 0;\nvar proto_signing_1 = require(\"@cosmjs/proto-signing\");\nObject.defineProperty(exports, \"DirectSecp256k1HdWallet\", { enumerable: true, get: function () { return proto_signing_1.DirectSecp256k1HdWallet; } });\nObject.defineProperty(exports, \"Registry\", { enumerable: true, get: function () { return proto_signing_1.Registry; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setupTxExtension = exports.setupStakingExtension = exports.setupMintExtension = exports.setupIbcExtension = exports.setupGovExtension = exports.setupDistributionExtension = exports.setupBankExtension = exports.setupAuthExtension = exports.createPagination = exports.calculateFee = exports.QueryClient = exports.GasPrice = void 0;\nvar stargate_1 = require(\"@cosmjs/stargate\");\nObject.defineProperty(exports, \"GasPrice\", { enumerable: true, get: function () { return stargate_1.GasPrice; } });\nObject.defineProperty(exports, \"QueryClient\", { enumerable: true, get: function () { return stargate_1.QueryClient; } });\n// Queries\nvar stargate_2 = require(\"@cosmjs/stargate\");\nObject.defineProperty(exports, \"calculateFee\", { enumerable: true, get: function () { return stargate_2.calculateFee; } });\nObject.defineProperty(exports, \"createPagination\", { enumerable: true, get: function () { return stargate_2.createPagination; } });\nObject.defineProperty(exports, \"setupAuthExtension\", { enumerable: true, get: function () { return stargate_2.setupAuthExtension; } });\nObject.defineProperty(exports, \"setupBankExtension\", { enumerable: true, get: function () { return stargate_2.setupBankExtension; } });\nObject.defineProperty(exports, \"setupDistributionExtension\", { enumerable: true, get: function () { return stargate_2.setupDistributionExtension; } });\nObject.defineProperty(exports, \"setupGovExtension\", { enumerable: true, get: function () { return stargate_2.setupGovExtension; } });\nObject.defineProperty(exports, \"setupIbcExtension\", { enumerable: true, get: function () { return stargate_2.setupIbcExtension; } });\nObject.defineProperty(exports, \"setupMintExtension\", { enumerable: true, get: function () { return stargate_2.setupMintExtension; } });\nObject.defineProperty(exports, \"setupStakingExtension\", { enumerable: true, get: function () { return stargate_2.setupStakingExtension; } });\nObject.defineProperty(exports, \"setupTxExtension\", { enumerable: true, get: function () { return stargate_2.setupTxExtension; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonNullObject = void 0;\nvar utils_1 = require(\"@cosmjs/utils\");\nObject.defineProperty(exports, \"isNonNullObject\", { enumerable: true, get: function () { return utils_1.isNonNullObject; } });\n","'use strict';\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0x00) { // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) { // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) { // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80 || // overlong\n buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0 // surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80 || // overlong\n buf[i] === 0xf4 && buf[i + 1] > 0x8f || buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = isValidUTF8;\n","'use strict';\n\ntry {\n module.exports = require('node-gyp-build')(__dirname);\n} catch (e) {\n module.exports = require('./fallback');\n}\n","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nmodule.exports = WebSocket;\n","'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) return target.slice(0, offset);\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n // Required until https://github.com/nodejs/node/issues/9006 is resolved.\n const length = buffer.length;\n for (let i = 0; i < length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = Buffer.from(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\ntry {\n const bufferUtil = require('bufferutil');\n const bu = bufferUtil.BufferUtil || bufferUtil;\n\n module.exports = {\n concat,\n mask(source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bu.mask(source, mask, output, offset, length);\n },\n toArrayBuffer,\n toBuffer,\n unmask(buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bu.unmask(buffer, mask);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n };\n}\n","'use strict';\n\nmodule.exports = {\n BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n EMPTY_BUFFER: Buffer.alloc(0),\n NOOP: () => {}\n};\n","'use strict';\n\n/**\n * Class representing an event.\n *\n * @private\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @param {Object} target A reference to the target to which the event was\n * dispatched\n */\n constructor(type, target) {\n this.target = target;\n this.type = type;\n }\n}\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n * @private\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(data, target) {\n super('message', target);\n\n this.data = data;\n }\n}\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n * @private\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {Number} code The status code explaining why the connection is being\n * closed\n * @param {String} reason A human-readable string explaining why the\n * connection is closing\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(code, reason, target) {\n super('close', target);\n\n this.wasClean = target._closeFrameReceived && target._closeFrameSent;\n this.reason = reason;\n this.code = code;\n }\n}\n\n/**\n * Class representing an open event.\n *\n * @extends Event\n * @private\n */\nclass OpenEvent extends Event {\n /**\n * Create a new `OpenEvent`.\n *\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(target) {\n super('open', target);\n }\n}\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n * @private\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {Object} error The error that generated this event\n * @param {WebSocket} target A reference to the target to which the event was\n * dispatched\n */\n constructor(error, target) {\n super('error', target);\n\n this.message = error.message;\n this.error = error;\n }\n}\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {Function} listener The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean`` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, listener, options) {\n if (typeof listener !== 'function') return;\n\n function onMessage(data) {\n listener.call(this, new MessageEvent(data, this));\n }\n\n function onClose(code, message) {\n listener.call(this, new CloseEvent(code, message, this));\n }\n\n function onError(error) {\n listener.call(this, new ErrorEvent(error, this));\n }\n\n function onOpen() {\n listener.call(this, new OpenEvent(this));\n }\n\n const method = options && options.once ? 'once' : 'on';\n\n if (type === 'message') {\n onMessage._listener = listener;\n this[method](type, onMessage);\n } else if (type === 'close') {\n onClose._listener = listener;\n this[method](type, onClose);\n } else if (type === 'error') {\n onError._listener = listener;\n this[method](type, onError);\n } else if (type === 'open') {\n onOpen._listener = listener;\n this[method](type, onOpen);\n } else {\n this[method](type, listener);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {Function} listener The listener to remove\n * @public\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners(type);\n\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i] === listener || listeners[i]._listener === listener) {\n this.removeListener(type, listeners[i]);\n }\n }\n }\n};\n\nmodule.exports = EventTarget;\n","'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n\n if (header === undefined || header === '') return offers;\n\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 /* ' ' */ || code === 0x09 /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n","'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n","'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode, NOOP } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {Buffer} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n //\n // An `'error'` event is emitted, only on Node.js < 10.0.0, if the\n // `zlib.DeflateRaw` instance is closed while data is being processed.\n // This can happen if `PerMessageDeflate#cleanup()` is called at the wrong\n // time due to an abnormal WebSocket closure.\n //\n this._deflate.on('error', NOOP);\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) data = data.slice(0, data.length - 4);\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {String} [binaryType=nodebuffer] The type for binary data\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Boolean} [isServer=false] Specifies whether to operate in client or\n * server mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(binaryType, extensions, isServer, maxPayload) {\n super();\n\n this._binaryType = binaryType || BINARY_TYPES[0];\n this[kWebSocket] = undefined;\n this._extensions = extensions || {};\n this._isServer = !!isServer;\n this._maxPayload = maxPayload | 0;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._state = GET_INFO;\n this._loop = false;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = buf.slice(n);\n return buf.slice(0, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = buf.slice(n);\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n let err;\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n err = this.getInfo();\n break;\n case GET_PAYLOAD_LENGTH_16:\n err = this.getPayloadLength16();\n break;\n case GET_PAYLOAD_LENGTH_64:\n err = this.getPayloadLength64();\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n err = this.getData(cb);\n break;\n default:\n // `INFLATING`\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n cb(err);\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getInfo() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (!this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n this._loop = false;\n return error(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n }\n\n if (compressed) {\n this._loop = false;\n return error(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n }\n\n if (this._payloadLength > 0x7d) {\n this._loop = false;\n return error(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n }\n } else {\n this._loop = false;\n return error(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n }\n } else if (this._masked) {\n this._loop = false;\n return error(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength16() {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n return this.haveLength();\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n getPayloadLength64() {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n this._loop = false;\n return error(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n return this.haveLength();\n }\n\n /**\n * Payload length has been read.\n *\n * @return {(RangeError|undefined)} A possible error\n * @private\n */\n haveLength() {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n this._loop = false;\n return error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n if (this._masked) unmask(data, this._mask);\n }\n\n if (this._opcode > 0x07) return this.controlMessage(data);\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its lenght is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n return this.dataMessage();\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n return cb(\n error(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n )\n );\n }\n\n this._fragments.push(buf);\n }\n\n const er = this.dataMessage();\n if (er) return cb(er);\n\n this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @return {(Error|undefined)} A possible error\n * @private\n */\n dataMessage() {\n if (this._fin) {\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else {\n data = fragments;\n }\n\n this.emit('message', data);\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!isValidUTF8(buf)) {\n this._loop = false;\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('message', buf.toString());\n }\n }\n\n this._state = GET_INFO;\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data) {\n if (this._opcode === 0x08) {\n this._loop = false;\n\n if (data.length === 0) {\n this.emit('conclude', 1005, '');\n this.end();\n } else if (data.length === 1) {\n return error(\n RangeError,\n 'invalid payload length 1',\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n return error(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n }\n\n const buf = data.slice(2);\n\n if (!isValidUTF8(buf)) {\n return error(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n }\n\n this.emit('conclude', code, buf.toString());\n this.end();\n }\n } else if (this._opcode === 0x09) {\n this.emit('ping', data);\n } else {\n this.emit('pong', data);\n }\n\n this._state = GET_INFO;\n }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode, errorCode) {\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, error);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls$\" }] */\n\n'use strict';\n\nconst net = require('net');\nconst tls = require('tls');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst mask = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {(net.Socket|tls.Socket)} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n */\n constructor(socket, extensions) {\n this._extensions = extensions || {};\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._deflating = false;\n this._queue = [];\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {Buffer} data The data to frame\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {Buffer[]} The framed data as a list of `Buffer` instances\n * @public\n */\n static frame(data, options) {\n const merge = options.mask && options.readOnly;\n let offset = options.mask ? 6 : 2;\n let payloadLength = data.length;\n\n if (data.length >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (data.length > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(data.length, 2);\n } else if (payloadLength === 127) {\n target.writeUInt32BE(0, 2);\n target.writeUInt32BE(data.length, 6);\n }\n\n if (!options.mask) return [target, data];\n\n randomFillSync(mask, 0, 4);\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (merge) {\n applyMask(data, mask, target, offset, data.length);\n return [target];\n }\n\n applyMask(data, mask, data, 0, data.length);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {String} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || data === '') {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n buf.write(data, 2);\n }\n\n if (this._deflating) {\n this.enqueue([this.doClose, buf, mask, cb]);\n } else {\n this.doClose(buf, mask, cb);\n }\n }\n\n /**\n * Frames and sends a close message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @private\n */\n doClose(data, mask, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x08,\n mask,\n readOnly: false\n }),\n cb\n );\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPing, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPing(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a ping message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPing(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x09,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n const buf = toBuffer(data);\n\n if (buf.length > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n if (this._deflating) {\n this.enqueue([this.doPong, buf, mask, toBuffer.readOnly, cb]);\n } else {\n this.doPong(buf, mask, toBuffer.readOnly, cb);\n }\n }\n\n /**\n * Frames and sends a pong message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified\n * @param {Function} [cb] Callback\n * @private\n */\n doPong(data, mask, readOnly, cb) {\n this.sendFrame(\n Sender.frame(data, {\n fin: true,\n rsv1: false,\n opcode: 0x0a,\n mask,\n readOnly\n }),\n cb\n );\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const buf = toBuffer(data);\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (rsv1 && perMessageDeflate) {\n rsv1 = buf.length >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n if (perMessageDeflate) {\n const opts = {\n fin: options.fin,\n rsv1,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n };\n\n if (this._deflating) {\n this.enqueue([this.dispatch, buf, this._compress, opts, cb]);\n } else {\n this.dispatch(buf, this._compress, opts, cb);\n }\n } else {\n this.sendFrame(\n Sender.frame(buf, {\n fin: options.fin,\n rsv1: false,\n opcode,\n mask: options.mask,\n readOnly: toBuffer.readOnly\n }),\n cb\n );\n }\n }\n\n /**\n * Dispatches a data message.\n *\n * @param {Buffer} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += data.length;\n this._deflating = true;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < this._queue.length; i++) {\n const callback = this._queue[i][4];\n\n if (typeof callback === 'function') callback(err);\n }\n\n return;\n }\n\n this._bufferedBytes -= data.length;\n this._deflating = false;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (!this._deflating && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[1].length;\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[1].length;\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {Buffer[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n","'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let resumeOnReceiverDrain = true;\n let terminateOnDestroy = true;\n\n function receiverOnDrain() {\n if (resumeOnReceiverDrain) ws._socket.resume();\n }\n\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n });\n } else {\n ws._receiver.removeAllListeners('drain');\n ws._receiver.on('drain', receiverOnDrain);\n }\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg) {\n if (!duplex.push(msg)) {\n resumeOnReceiverDrain = false;\n ws._socket.pause();\n }\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (\n (ws.readyState === ws.OPEN || ws.readyState === ws.CLOSING) &&\n !resumeOnReceiverDrain\n ) {\n resumeOnReceiverDrain = true;\n if (!ws._receiver._writableState.needDrain) ws._socket.resume();\n }\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n","'use strict';\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\ntry {\n let isValidUTF8 = require('utf-8-validate');\n\n /* istanbul ignore if */\n if (typeof isValidUTF8 === 'object') {\n isValidUTF8 = isValidUTF8.Validation.isValidUTF8; // utf-8-validate@<3.0.0\n }\n\n module.exports = {\n isValidStatusCode,\n isValidUTF8(buf) {\n return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n }\n };\n} catch (e) /* istanbul ignore next */ {\n module.exports = {\n isValidStatusCode,\n isValidUTF8: _isValidUTF8\n };\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls|https$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst https = require('https');\nconst net = require('net');\nconst tls = require('tls');\nconst { createHash } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst WebSocket = require('./websocket');\nconst { format, parse } = require('./extension');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) this.clients = new Set();\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Close the server.\n *\n * @param {Function} [cb] Callback\n * @public\n */\n close(cb) {\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSED) {\n process.nextTick(emitClose, this);\n return;\n }\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n //\n // Terminate all associated clients.\n //\n if (this.clients) {\n for (const client of this.clients) client.terminate();\n }\n\n const server = this._server;\n\n if (server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // Close the http server if it was internally created.\n //\n if (this.options.port != null) {\n server.close(emitClose.bind(undefined, this));\n return;\n }\n }\n\n process.nextTick(emitClose, this);\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key =\n req.headers['sec-websocket-key'] !== undefined\n ? req.headers['sec-websocket-key'].trim()\n : false;\n const version = +req.headers['sec-websocket-version'];\n const extensions = {};\n\n if (\n req.method !== 'GET' ||\n req.headers.upgrade.toLowerCase() !== 'websocket' ||\n !key ||\n !keyRegex.test(key) ||\n (version !== 8 && version !== 13) ||\n !this.shouldHandle(req)\n ) {\n return abortHandshake(socket, 400);\n }\n\n if (this.options.perMessageDeflate) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = parse(req.headers['sec-websocket-extensions']);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n return abortHandshake(socket, 400);\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(key, extensions, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Object} extensions The accepted extensions\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(key, extensions, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new WebSocket(null);\n let protocol = req.headers['sec-websocket-protocol'];\n\n if (protocol) {\n protocol = protocol.split(',').map(trim);\n\n //\n // Optionally call external protocol selection handler.\n //\n if (this.options.handleProtocols) {\n protocol = this.options.handleProtocols(protocol, req);\n } else {\n protocol = protocol[0];\n }\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, this.options.maxPayload);\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => this.clients.delete(ws));\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of \n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle premature socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n if (socket.writable) {\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.write(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n }\n\n socket.removeListener('error', socketOnError);\n socket.destroy();\n}\n\n/**\n * Remove whitespace characters from both ends of a string.\n *\n * @param {String} str The string\n * @return {String} A new string representing `str` stripped of whitespace\n * characters from both its beginning and end\n * @private\n */\nfunction trim(str) {\n return str.trim();\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Readable$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { Readable } = require('stream');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst { addEventListener, removeEventListener } = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst protocolVersions = [8, 13];\nconst closeTimeout = 30 * 1000;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = '';\n this._closeTimer = null;\n this._extensions = {};\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (Array.isArray(protocols)) {\n protocols = protocols.join(', ');\n } else if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = undefined;\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._isServer = true;\n }\n }\n\n /**\n * This deviates from the WHATWG interface since ws doesn't support the\n * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n * type).\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onclose(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onerror(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onopen(listener) {}\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return undefined;\n }\n\n /* istanbul ignore next */\n set onmessage(listener) {}\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {(net.Socket|tls.Socket)} socket The network socket between the\n * server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Number} [maxPayload=0] The maximum allowed message size\n * @private\n */\n setSocket(socket, head, maxPayload) {\n const receiver = new Receiver(\n this.binaryType,\n this._extensions,\n this._isServer,\n maxPayload\n );\n\n this._sender = new Sender(socket, this._extensions);\n this._receiver = receiver;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n socket.setTimeout(0);\n socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {String} [data] A string explaining why the connection is closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n //\n // Specify a timeout for the closing handshake to complete.\n //\n this._closeTimer = setTimeout(\n this._socket.destroy.bind(this._socket),\n closeTimeout\n );\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n return abortHandshake(this, this._req, msg);\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]._listener) return listeners[i]._listener;\n }\n\n return undefined;\n },\n set(listener) {\n const listeners = this.listeners(method);\n for (let i = 0; i < listeners.length; i++) {\n //\n // Remove only the listeners added via `addEventListener`.\n //\n if (listeners[i]._listener) this.removeListener(method, listeners[i]);\n }\n this.addEventListener(method, listener);\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {String} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n createConnection: undefined,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: undefined,\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n websocket._url = address.href;\n } else {\n parsedUrl = new URL(address);\n websocket._url = address;\n }\n\n const isUnixSocket = parsedUrl.protocol === 'ws+unix:';\n\n if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {\n const err = new Error(`Invalid URL: ${websocket.url}`);\n\n if (websocket._redirects === 0) {\n throw err;\n } else {\n emitErrorAndClose(websocket, err);\n return;\n }\n }\n\n const isSecure =\n parsedUrl.protocol === 'wss:' || parsedUrl.protocol === 'https:';\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const get = isSecure ? https.get : http.get;\n let perMessageDeflate;\n\n opts.createConnection = isSecure ? tlsConnect : netConnect;\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket',\n ...opts.headers\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols) {\n opts.headers['Sec-WebSocket-Protocol'] = protocols;\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isUnixSocket) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req = (websocket._req = get(opts));\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req.aborted) return;\n\n req = websocket._req = null;\n emitErrorAndClose(websocket, err);\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n let addr;\n\n try {\n addr = new URL(location, address);\n } catch (err) {\n emitErrorAndClose(websocket, err);\n return;\n }\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the `upgrade`\n // event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n const protList = (protocols || '').split(/, */);\n let protError;\n\n if (!protocols && serverProt) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (protocols && !serverProt) {\n protError = 'Server sent no subprotocol';\n } else if (serverProt && !protList.includes(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (extensionNames.length) {\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message =\n 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n }\n\n websocket.setSocket(socket, head, opts.maxPayload);\n });\n}\n\n/**\n * Emit the `'error'` and `'close'` event.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {Error} The error to emit\n * @private\n */\nfunction emitErrorAndClose(websocket, err) {\n websocket._readyState = WebSocket.CLOSING;\n websocket.emit('error', err);\n websocket.emitClose();\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n stream.once('abort', websocket.emitClose.bind(websocket));\n websocket.emit('error', err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n cb(err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {String} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (websocket._socket[kWebSocket] === undefined) return;\n\n websocket._socket.removeListener('data', socketOnData);\n process.nextTick(resume, websocket._socket);\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n this[kWebSocket]._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket._socket[kWebSocket] !== undefined) {\n websocket._socket.removeListener('data', socketOnData);\n\n //\n // On Node.js < 14.0.0 the `'error'` event is emitted synchronously. See\n // https://github.com/websockets/ws/issues/1940.\n //\n process.nextTick(resume, websocket._socket);\n\n websocket.close(err[kStatusCode]);\n }\n\n websocket.emit('error', err);\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The message\n * @private\n */\nfunction receiverOnMessage(data) {\n this[kWebSocket].emit('message', data);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n websocket.pong(data, !websocket._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * Resume a readable stream\n *\n * @param {Readable} stream The readable stream\n * @private\n */\nfunction resume(stream) {\n stream.resume();\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('data', socketOnData);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n let chunk;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk.\n //\n if (\n !this._readableState.endEmitted &&\n !websocket._closeFrameReceived &&\n !websocket._receiver._writableState.errorEmitted &&\n (chunk = websocket._socket.read()) !== null\n ) {\n websocket._receiver.write(chunk);\n }\n\n websocket._receiver.end();\n\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 extendStatics(d, b);\n };\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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NO_IL = exports.NO = exports.MemoryStream = exports.Stream = void 0;\nvar ponyfill_1 = require(\"symbol-observable/ponyfill\");\nvar globalthis_1 = require(\"globalthis\");\nvar $$observable = ponyfill_1.default(globalthis_1.getPolyfill());\nvar NO = {};\nexports.NO = NO;\nfunction noop() { }\nfunction cp(a) {\n var l = a.length;\n var b = Array(l);\n for (var i = 0; i < l; ++i)\n b[i] = a[i];\n return b;\n}\nfunction and(f1, f2) {\n return function andFn(t) {\n return f1(t) && f2(t);\n };\n}\nfunction _try(c, t, u) {\n try {\n return c.f(t);\n }\n catch (e) {\n u._e(e);\n return NO;\n }\n}\nvar NO_IL = {\n _n: noop,\n _e: noop,\n _c: noop,\n};\nexports.NO_IL = NO_IL;\n// mutates the input\nfunction internalizeProducer(producer) {\n producer._start = function _start(il) {\n il.next = il._n;\n il.error = il._e;\n il.complete = il._c;\n this.start(il);\n };\n producer._stop = producer.stop;\n}\nvar StreamSub = /** @class */ (function () {\n function StreamSub(_stream, _listener) {\n this._stream = _stream;\n this._listener = _listener;\n }\n StreamSub.prototype.unsubscribe = function () {\n this._stream._remove(this._listener);\n };\n return StreamSub;\n}());\nvar Observer = /** @class */ (function () {\n function Observer(_listener) {\n this._listener = _listener;\n }\n Observer.prototype.next = function (value) {\n this._listener._n(value);\n };\n Observer.prototype.error = function (err) {\n this._listener._e(err);\n };\n Observer.prototype.complete = function () {\n this._listener._c();\n };\n return Observer;\n}());\nvar FromObservable = /** @class */ (function () {\n function FromObservable(observable) {\n this.type = 'fromObservable';\n this.ins = observable;\n this.active = false;\n }\n FromObservable.prototype._start = function (out) {\n this.out = out;\n this.active = true;\n this._sub = this.ins.subscribe(new Observer(out));\n if (!this.active)\n this._sub.unsubscribe();\n };\n FromObservable.prototype._stop = function () {\n if (this._sub)\n this._sub.unsubscribe();\n this.active = false;\n };\n return FromObservable;\n}());\nvar Merge = /** @class */ (function () {\n function Merge(insArr) {\n this.type = 'merge';\n this.insArr = insArr;\n this.out = NO;\n this.ac = 0;\n }\n Merge.prototype._start = function (out) {\n this.out = out;\n var s = this.insArr;\n var L = s.length;\n this.ac = L;\n for (var i = 0; i < L; i++)\n s[i]._add(this);\n };\n Merge.prototype._stop = function () {\n var s = this.insArr;\n var L = s.length;\n for (var i = 0; i < L; i++)\n s[i]._remove(this);\n this.out = NO;\n };\n Merge.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n Merge.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Merge.prototype._c = function () {\n if (--this.ac <= 0) {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n }\n };\n return Merge;\n}());\nvar CombineListener = /** @class */ (function () {\n function CombineListener(i, out, p) {\n this.i = i;\n this.out = out;\n this.p = p;\n p.ils.push(this);\n }\n CombineListener.prototype._n = function (t) {\n var p = this.p, out = this.out;\n if (out === NO)\n return;\n if (p.up(t, this.i)) {\n var b = cp(p.vals);\n out._n(b);\n }\n };\n CombineListener.prototype._e = function (err) {\n var out = this.out;\n if (out === NO)\n return;\n out._e(err);\n };\n CombineListener.prototype._c = function () {\n var p = this.p;\n if (p.out === NO)\n return;\n if (--p.Nc === 0)\n p.out._c();\n };\n return CombineListener;\n}());\nvar Combine = /** @class */ (function () {\n function Combine(insArr) {\n this.type = 'combine';\n this.insArr = insArr;\n this.out = NO;\n this.ils = [];\n this.Nc = this.Nn = 0;\n this.vals = [];\n }\n Combine.prototype.up = function (t, i) {\n var v = this.vals[i];\n var Nn = !this.Nn ? 0 : v === NO ? --this.Nn : this.Nn;\n this.vals[i] = t;\n return Nn === 0;\n };\n Combine.prototype._start = function (out) {\n this.out = out;\n var s = this.insArr;\n var n = this.Nc = this.Nn = s.length;\n var vals = this.vals = new Array(n);\n if (n === 0) {\n out._n([]);\n out._c();\n }\n else {\n for (var i = 0; i < n; i++) {\n vals[i] = NO;\n s[i]._add(new CombineListener(i, out, this));\n }\n }\n };\n Combine.prototype._stop = function () {\n var s = this.insArr;\n var n = s.length;\n var ils = this.ils;\n for (var i = 0; i < n; i++)\n s[i]._remove(ils[i]);\n this.out = NO;\n this.ils = [];\n this.vals = [];\n };\n return Combine;\n}());\nvar FromArray = /** @class */ (function () {\n function FromArray(a) {\n this.type = 'fromArray';\n this.a = a;\n }\n FromArray.prototype._start = function (out) {\n var a = this.a;\n for (var i = 0, n = a.length; i < n; i++)\n out._n(a[i]);\n out._c();\n };\n FromArray.prototype._stop = function () {\n };\n return FromArray;\n}());\nvar FromPromise = /** @class */ (function () {\n function FromPromise(p) {\n this.type = 'fromPromise';\n this.on = false;\n this.p = p;\n }\n FromPromise.prototype._start = function (out) {\n var prod = this;\n this.on = true;\n this.p.then(function (v) {\n if (prod.on) {\n out._n(v);\n out._c();\n }\n }, function (e) {\n out._e(e);\n }).then(noop, function (err) {\n setTimeout(function () { throw err; });\n });\n };\n FromPromise.prototype._stop = function () {\n this.on = false;\n };\n return FromPromise;\n}());\nvar Periodic = /** @class */ (function () {\n function Periodic(period) {\n this.type = 'periodic';\n this.period = period;\n this.intervalID = -1;\n this.i = 0;\n }\n Periodic.prototype._start = function (out) {\n var self = this;\n function intervalHandler() { out._n(self.i++); }\n this.intervalID = setInterval(intervalHandler, this.period);\n };\n Periodic.prototype._stop = function () {\n if (this.intervalID !== -1)\n clearInterval(this.intervalID);\n this.intervalID = -1;\n this.i = 0;\n };\n return Periodic;\n}());\nvar Debug = /** @class */ (function () {\n function Debug(ins, arg) {\n this.type = 'debug';\n this.ins = ins;\n this.out = NO;\n this.s = noop;\n this.l = '';\n if (typeof arg === 'string')\n this.l = arg;\n else if (typeof arg === 'function')\n this.s = arg;\n }\n Debug.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n Debug.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Debug.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var s = this.s, l = this.l;\n if (s !== noop) {\n try {\n s(t);\n }\n catch (e) {\n u._e(e);\n }\n }\n else if (l)\n console.log(l + ':', t);\n else\n console.log(t);\n u._n(t);\n };\n Debug.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Debug.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Debug;\n}());\nvar Drop = /** @class */ (function () {\n function Drop(max, ins) {\n this.type = 'drop';\n this.ins = ins;\n this.out = NO;\n this.max = max;\n this.dropped = 0;\n }\n Drop.prototype._start = function (out) {\n this.out = out;\n this.dropped = 0;\n this.ins._add(this);\n };\n Drop.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Drop.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n if (this.dropped++ >= this.max)\n u._n(t);\n };\n Drop.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Drop.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Drop;\n}());\nvar EndWhenListener = /** @class */ (function () {\n function EndWhenListener(out, op) {\n this.out = out;\n this.op = op;\n }\n EndWhenListener.prototype._n = function () {\n this.op.end();\n };\n EndWhenListener.prototype._e = function (err) {\n this.out._e(err);\n };\n EndWhenListener.prototype._c = function () {\n this.op.end();\n };\n return EndWhenListener;\n}());\nvar EndWhen = /** @class */ (function () {\n function EndWhen(o, ins) {\n this.type = 'endWhen';\n this.ins = ins;\n this.out = NO;\n this.o = o;\n this.oil = NO_IL;\n }\n EndWhen.prototype._start = function (out) {\n this.out = out;\n this.o._add(this.oil = new EndWhenListener(out, this));\n this.ins._add(this);\n };\n EndWhen.prototype._stop = function () {\n this.ins._remove(this);\n this.o._remove(this.oil);\n this.out = NO;\n this.oil = NO_IL;\n };\n EndWhen.prototype.end = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n EndWhen.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n EndWhen.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n EndWhen.prototype._c = function () {\n this.end();\n };\n return EndWhen;\n}());\nvar Filter = /** @class */ (function () {\n function Filter(passes, ins) {\n this.type = 'filter';\n this.ins = ins;\n this.out = NO;\n this.f = passes;\n }\n Filter.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n Filter.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Filter.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO || !r)\n return;\n u._n(t);\n };\n Filter.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Filter.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Filter;\n}());\nvar FlattenListener = /** @class */ (function () {\n function FlattenListener(out, op) {\n this.out = out;\n this.op = op;\n }\n FlattenListener.prototype._n = function (t) {\n this.out._n(t);\n };\n FlattenListener.prototype._e = function (err) {\n this.out._e(err);\n };\n FlattenListener.prototype._c = function () {\n this.op.inner = NO;\n this.op.less();\n };\n return FlattenListener;\n}());\nvar Flatten = /** @class */ (function () {\n function Flatten(ins) {\n this.type = 'flatten';\n this.ins = ins;\n this.out = NO;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n }\n Flatten.prototype._start = function (out) {\n this.out = out;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n this.ins._add(this);\n };\n Flatten.prototype._stop = function () {\n this.ins._remove(this);\n if (this.inner !== NO)\n this.inner._remove(this.il);\n this.out = NO;\n this.open = true;\n this.inner = NO;\n this.il = NO_IL;\n };\n Flatten.prototype.less = function () {\n var u = this.out;\n if (u === NO)\n return;\n if (!this.open && this.inner === NO)\n u._c();\n };\n Flatten.prototype._n = function (s) {\n var u = this.out;\n if (u === NO)\n return;\n var _a = this, inner = _a.inner, il = _a.il;\n if (inner !== NO && il !== NO_IL)\n inner._remove(il);\n (this.inner = s)._add(this.il = new FlattenListener(u, this));\n };\n Flatten.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Flatten.prototype._c = function () {\n this.open = false;\n this.less();\n };\n return Flatten;\n}());\nvar Fold = /** @class */ (function () {\n function Fold(f, seed, ins) {\n var _this = this;\n this.type = 'fold';\n this.ins = ins;\n this.out = NO;\n this.f = function (t) { return f(_this.acc, t); };\n this.acc = this.seed = seed;\n }\n Fold.prototype._start = function (out) {\n this.out = out;\n this.acc = this.seed;\n out._n(this.acc);\n this.ins._add(this);\n };\n Fold.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n this.acc = this.seed;\n };\n Fold.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO)\n return;\n u._n(this.acc = r);\n };\n Fold.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Fold.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Fold;\n}());\nvar Last = /** @class */ (function () {\n function Last(ins) {\n this.type = 'last';\n this.ins = ins;\n this.out = NO;\n this.has = false;\n this.val = NO;\n }\n Last.prototype._start = function (out) {\n this.out = out;\n this.has = false;\n this.ins._add(this);\n };\n Last.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n this.val = NO;\n };\n Last.prototype._n = function (t) {\n this.has = true;\n this.val = t;\n };\n Last.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Last.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n if (this.has) {\n u._n(this.val);\n u._c();\n }\n else\n u._e(new Error('last() failed because input stream completed'));\n };\n return Last;\n}());\nvar MapOp = /** @class */ (function () {\n function MapOp(project, ins) {\n this.type = 'map';\n this.ins = ins;\n this.out = NO;\n this.f = project;\n }\n MapOp.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n MapOp.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n MapOp.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var r = _try(this, t, u);\n if (r === NO)\n return;\n u._n(r);\n };\n MapOp.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n MapOp.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return MapOp;\n}());\nvar Remember = /** @class */ (function () {\n function Remember(ins) {\n this.type = 'remember';\n this.ins = ins;\n this.out = NO;\n }\n Remember.prototype._start = function (out) {\n this.out = out;\n this.ins._add(out);\n };\n Remember.prototype._stop = function () {\n this.ins._remove(this.out);\n this.out = NO;\n };\n return Remember;\n}());\nvar ReplaceError = /** @class */ (function () {\n function ReplaceError(replacer, ins) {\n this.type = 'replaceError';\n this.ins = ins;\n this.out = NO;\n this.f = replacer;\n }\n ReplaceError.prototype._start = function (out) {\n this.out = out;\n this.ins._add(this);\n };\n ReplaceError.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n ReplaceError.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n u._n(t);\n };\n ReplaceError.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n try {\n this.ins._remove(this);\n (this.ins = this.f(err))._add(this);\n }\n catch (e) {\n u._e(e);\n }\n };\n ReplaceError.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return ReplaceError;\n}());\nvar StartWith = /** @class */ (function () {\n function StartWith(ins, val) {\n this.type = 'startWith';\n this.ins = ins;\n this.out = NO;\n this.val = val;\n }\n StartWith.prototype._start = function (out) {\n this.out = out;\n this.out._n(this.val);\n this.ins._add(out);\n };\n StartWith.prototype._stop = function () {\n this.ins._remove(this.out);\n this.out = NO;\n };\n return StartWith;\n}());\nvar Take = /** @class */ (function () {\n function Take(max, ins) {\n this.type = 'take';\n this.ins = ins;\n this.out = NO;\n this.max = max;\n this.taken = 0;\n }\n Take.prototype._start = function (out) {\n this.out = out;\n this.taken = 0;\n if (this.max <= 0)\n out._c();\n else\n this.ins._add(this);\n };\n Take.prototype._stop = function () {\n this.ins._remove(this);\n this.out = NO;\n };\n Take.prototype._n = function (t) {\n var u = this.out;\n if (u === NO)\n return;\n var m = ++this.taken;\n if (m < this.max)\n u._n(t);\n else if (m === this.max) {\n u._n(t);\n u._c();\n }\n };\n Take.prototype._e = function (err) {\n var u = this.out;\n if (u === NO)\n return;\n u._e(err);\n };\n Take.prototype._c = function () {\n var u = this.out;\n if (u === NO)\n return;\n u._c();\n };\n return Take;\n}());\nvar Stream = /** @class */ (function () {\n function Stream(producer) {\n this._prod = producer || NO;\n this._ils = [];\n this._stopID = NO;\n this._dl = NO;\n this._d = false;\n this._target = null;\n this._err = NO;\n }\n Stream.prototype._n = function (t) {\n var a = this._ils;\n var L = a.length;\n if (this._d)\n this._dl._n(t);\n if (L == 1)\n a[0]._n(t);\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._n(t);\n }\n };\n Stream.prototype._e = function (err) {\n if (this._err !== NO)\n return;\n this._err = err;\n var a = this._ils;\n var L = a.length;\n this._x();\n if (this._d)\n this._dl._e(err);\n if (L == 1)\n a[0]._e(err);\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._e(err);\n }\n if (!this._d && L == 0)\n throw this._err;\n };\n Stream.prototype._c = function () {\n var a = this._ils;\n var L = a.length;\n this._x();\n if (this._d)\n this._dl._c();\n if (L == 1)\n a[0]._c();\n else if (L == 0)\n return;\n else {\n var b = cp(a);\n for (var i = 0; i < L; i++)\n b[i]._c();\n }\n };\n Stream.prototype._x = function () {\n if (this._ils.length === 0)\n return;\n if (this._prod !== NO)\n this._prod._stop();\n this._err = NO;\n this._ils = [];\n };\n Stream.prototype._stopNow = function () {\n // WARNING: code that calls this method should\n // first check if this._prod is valid (not `NO`)\n this._prod._stop();\n this._err = NO;\n this._stopID = NO;\n };\n Stream.prototype._add = function (il) {\n var ta = this._target;\n if (ta)\n return ta._add(il);\n var a = this._ils;\n a.push(il);\n if (a.length > 1)\n return;\n if (this._stopID !== NO) {\n clearTimeout(this._stopID);\n this._stopID = NO;\n }\n else {\n var p = this._prod;\n if (p !== NO)\n p._start(this);\n }\n };\n Stream.prototype._remove = function (il) {\n var _this = this;\n var ta = this._target;\n if (ta)\n return ta._remove(il);\n var a = this._ils;\n var i = a.indexOf(il);\n if (i > -1) {\n a.splice(i, 1);\n if (this._prod !== NO && a.length <= 0) {\n this._err = NO;\n this._stopID = setTimeout(function () { return _this._stopNow(); });\n }\n else if (a.length === 1) {\n this._pruneCycles();\n }\n }\n };\n // If all paths stemming from `this` stream eventually end at `this`\n // stream, then we remove the single listener of `this` stream, to\n // force it to end its execution and dispose resources. This method\n // assumes as a precondition that this._ils has just one listener.\n Stream.prototype._pruneCycles = function () {\n if (this._hasNoSinks(this, []))\n this._remove(this._ils[0]);\n };\n // Checks whether *there is no* path starting from `x` that leads to an end\n // listener (sink) in the stream graph, following edges A->B where B is a\n // listener of A. This means these paths constitute a cycle somehow. Is given\n // a trace of all visited nodes so far.\n Stream.prototype._hasNoSinks = function (x, trace) {\n if (trace.indexOf(x) !== -1)\n return true;\n else if (x.out === this)\n return true;\n else if (x.out && x.out !== NO)\n return this._hasNoSinks(x.out, trace.concat(x));\n else if (x._ils) {\n for (var i = 0, N = x._ils.length; i < N; i++)\n if (!this._hasNoSinks(x._ils[i], trace.concat(x)))\n return false;\n return true;\n }\n else\n return false;\n };\n Stream.prototype.ctor = function () {\n return this instanceof MemoryStream ? MemoryStream : Stream;\n };\n /**\n * Adds a Listener to the Stream.\n *\n * @param {Listener} listener\n */\n Stream.prototype.addListener = function (listener) {\n listener._n = listener.next || noop;\n listener._e = listener.error || noop;\n listener._c = listener.complete || noop;\n this._add(listener);\n };\n /**\n * Removes a Listener from the Stream, assuming the Listener was added to it.\n *\n * @param {Listener} listener\n */\n Stream.prototype.removeListener = function (listener) {\n this._remove(listener);\n };\n /**\n * Adds a Listener to the Stream returning a Subscription to remove that\n * listener.\n *\n * @param {Listener} listener\n * @returns {Subscription}\n */\n Stream.prototype.subscribe = function (listener) {\n this.addListener(listener);\n return new StreamSub(this, listener);\n };\n /**\n * Add interop between most.js and RxJS 5\n *\n * @returns {Stream}\n */\n Stream.prototype[$$observable] = function () {\n return this;\n };\n /**\n * Creates a new Stream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {Stream}\n */\n Stream.create = function (producer) {\n if (producer) {\n if (typeof producer.start !== 'function'\n || typeof producer.stop !== 'function')\n throw new Error('producer requires both start and stop functions');\n internalizeProducer(producer); // mutates the input\n }\n return new Stream(producer);\n };\n /**\n * Creates a new MemoryStream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {MemoryStream}\n */\n Stream.createWithMemory = function (producer) {\n if (producer)\n internalizeProducer(producer); // mutates the input\n return new MemoryStream(producer);\n };\n /**\n * Creates a Stream that does nothing when started. It never emits any event.\n *\n * Marble diagram:\n *\n * ```text\n * never\n * -----------------------\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n Stream.never = function () {\n return new Stream({ _start: noop, _stop: noop });\n };\n /**\n * Creates a Stream that immediately emits the \"complete\" notification when\n * started, and that's it.\n *\n * Marble diagram:\n *\n * ```text\n * empty\n * -|\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n Stream.empty = function () {\n return new Stream({\n _start: function (il) { il._c(); },\n _stop: noop,\n });\n };\n /**\n * Creates a Stream that immediately emits an \"error\" notification with the\n * value you passed as the `error` argument when the stream starts, and that's\n * it.\n *\n * Marble diagram:\n *\n * ```text\n * throw(X)\n * -X\n * ```\n *\n * @factory true\n * @param error The error event to emit on the created stream.\n * @return {Stream}\n */\n Stream.throw = function (error) {\n return new Stream({\n _start: function (il) { il._e(error); },\n _stop: noop,\n });\n };\n /**\n * Creates a stream from an Array, Promise, or an Observable.\n *\n * @factory true\n * @param {Array|PromiseLike|Observable} input The input to make a stream from.\n * @return {Stream}\n */\n Stream.from = function (input) {\n if (typeof input[$$observable] === 'function')\n return Stream.fromObservable(input);\n else if (typeof input.then === 'function')\n return Stream.fromPromise(input);\n else if (Array.isArray(input))\n return Stream.fromArray(input);\n throw new TypeError(\"Type of input to from() must be an Array, Promise, or Observable\");\n };\n /**\n * Creates a Stream that immediately emits the arguments that you give to\n * *of*, then completes.\n *\n * Marble diagram:\n *\n * ```text\n * of(1,2,3)\n * 123|\n * ```\n *\n * @factory true\n * @param a The first value you want to emit as an event on the stream.\n * @param b The second value you want to emit as an event on the stream. One\n * or more of these values may be given as arguments.\n * @return {Stream}\n */\n Stream.of = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n return Stream.fromArray(items);\n };\n /**\n * Converts an array to a stream. The returned stream will emit synchronously\n * all the items in the array, and then complete.\n *\n * Marble diagram:\n *\n * ```text\n * fromArray([1,2,3])\n * 123|\n * ```\n *\n * @factory true\n * @param {Array} array The array to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromArray = function (array) {\n return new Stream(new FromArray(array));\n };\n /**\n * Converts a promise to a stream. The returned stream will emit the resolved\n * value of the promise, and then complete. However, if the promise is\n * rejected, the stream will emit the corresponding error.\n *\n * Marble diagram:\n *\n * ```text\n * fromPromise( ----42 )\n * -----------------42|\n * ```\n *\n * @factory true\n * @param {PromiseLike} promise The promise to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromPromise = function (promise) {\n return new Stream(new FromPromise(promise));\n };\n /**\n * Converts an Observable into a Stream.\n *\n * @factory true\n * @param {any} observable The observable to be converted as a stream.\n * @return {Stream}\n */\n Stream.fromObservable = function (obs) {\n if (obs.endWhen !== undefined)\n return obs;\n var o = typeof obs[$$observable] === 'function' ? obs[$$observable]() : obs;\n return new Stream(new FromObservable(o));\n };\n /**\n * Creates a stream that periodically emits incremental numbers, every\n * `period` milliseconds.\n *\n * Marble diagram:\n *\n * ```text\n * periodic(1000)\n * ---0---1---2---3---4---...\n * ```\n *\n * @factory true\n * @param {number} period The interval in milliseconds to use as a rate of\n * emission.\n * @return {Stream}\n */\n Stream.periodic = function (period) {\n return new Stream(new Periodic(period));\n };\n Stream.prototype._map = function (project) {\n return new (this.ctor())(new MapOp(project, this));\n };\n /**\n * Transforms each event from the input Stream through a `project` function,\n * to get a Stream that emits those transformed events.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7------\n * map(i => i * 10)\n * --10--30-50----70-----\n * ```\n *\n * @param {Function} project A function of type `(t: T) => U` that takes event\n * `t` of type `T` from the input Stream and produces an event of type `U`, to\n * be emitted on the output Stream.\n * @return {Stream}\n */\n Stream.prototype.map = function (project) {\n return this._map(project);\n };\n /**\n * It's like `map`, but transforms each input event to always the same\n * constant value on the output Stream.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7-----\n * mapTo(10)\n * --10--10-10----10----\n * ```\n *\n * @param projectedValue A value to emit on the output Stream whenever the\n * input Stream emits any value.\n * @return {Stream}\n */\n Stream.prototype.mapTo = function (projectedValue) {\n var s = this.map(function () { return projectedValue; });\n var op = s._prod;\n op.type = 'mapTo';\n return s;\n };\n /**\n * Only allows events that pass the test given by the `passes` argument.\n *\n * Each event from the input stream is given to the `passes` function. If the\n * function returns `true`, the event is forwarded to the output stream,\n * otherwise it is ignored and not forwarded.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2--3-----4-----5---6--7-8--\n * filter(i => i % 2 === 0)\n * ------2--------4---------6----8--\n * ```\n *\n * @param {Function} passes A function of type `(t: T) => boolean` that takes\n * an event from the input stream and checks if it passes, by returning a\n * boolean.\n * @return {Stream}\n */\n Stream.prototype.filter = function (passes) {\n var p = this._prod;\n if (p instanceof Filter)\n return new Stream(new Filter(and(p.f, passes), p.ins));\n return new Stream(new Filter(passes, this));\n };\n /**\n * Lets the first `amount` many events from the input stream pass to the\n * output stream, then makes the output stream complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * take(3)\n * --a---b--c|\n * ```\n *\n * @param {number} amount How many events to allow from the input stream\n * before completing the output stream.\n * @return {Stream}\n */\n Stream.prototype.take = function (amount) {\n return new (this.ctor())(new Take(amount, this));\n };\n /**\n * Ignores the first `amount` many events from the input stream, and then\n * after that starts forwarding events from the input stream to the output\n * stream.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * drop(3)\n * --------------d---e--\n * ```\n *\n * @param {number} amount How many events to ignore from the input stream\n * before forwarding all events from the input stream to the output stream.\n * @return {Stream}\n */\n Stream.prototype.drop = function (amount) {\n return new Stream(new Drop(amount, this));\n };\n /**\n * When the input stream completes, the output stream will emit the last event\n * emitted by the input stream, and then will also complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c--d----|\n * last()\n * -----------------d|\n * ```\n *\n * @return {Stream}\n */\n Stream.prototype.last = function () {\n return new Stream(new Last(this));\n };\n /**\n * Prepends the given `initial` value to the sequence of events emitted by the\n * input stream. The returned stream is a MemoryStream, which means it is\n * already `remember()`'d.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3---\n * startWith(0)\n * 0--1---2-----3---\n * ```\n *\n * @param initial The value or event to prepend.\n * @return {MemoryStream}\n */\n Stream.prototype.startWith = function (initial) {\n return new MemoryStream(new StartWith(this, initial));\n };\n /**\n * Uses another stream to determine when to complete the current stream.\n *\n * When the given `other` stream emits an event or completes, the output\n * stream will complete. Before that happens, the output stream will behaves\n * like the input stream.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3--4----5----6---\n * endWhen( --------a--b--| )\n * ---1---2-----3--4--|\n * ```\n *\n * @param other Some other stream that is used to know when should the output\n * stream of this operator complete.\n * @return {Stream}\n */\n Stream.prototype.endWhen = function (other) {\n return new (this.ctor())(new EndWhen(other, this));\n };\n /**\n * \"Folds\" the stream onto itself.\n *\n * Combines events from the past throughout\n * the entire execution of the input stream, allowing you to accumulate them\n * together. It's essentially like `Array.prototype.reduce`. The returned\n * stream is a MemoryStream, which means it is already `remember()`'d.\n *\n * The output stream starts by emitting the `seed` which you give as argument.\n * Then, when an event happens on the input stream, it is combined with that\n * seed value through the `accumulate` function, and the output value is\n * emitted on the output stream. `fold` remembers that output value as `acc`\n * (\"accumulator\"), and then when a new input event `t` happens, `acc` will be\n * combined with that to produce the new `acc` and so forth.\n *\n * Marble diagram:\n *\n * ```text\n * ------1-----1--2----1----1------\n * fold((acc, x) => acc + x, 3)\n * 3-----4-----5--7----8----9------\n * ```\n *\n * @param {Function} accumulate A function of type `(acc: R, t: T) => R` that\n * takes the previous accumulated value `acc` and the incoming event from the\n * input stream and produces the new accumulated value.\n * @param seed The initial accumulated value, of type `R`.\n * @return {MemoryStream}\n */\n Stream.prototype.fold = function (accumulate, seed) {\n return new MemoryStream(new Fold(accumulate, seed, this));\n };\n /**\n * Replaces an error with another stream.\n *\n * When (and if) an error happens on the input stream, instead of forwarding\n * that error to the output stream, *replaceError* will call the `replace`\n * function which returns the stream that the output stream will replicate.\n * And, in case that new stream also emits an error, `replace` will be called\n * again to get another stream to start replicating.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2-----3--4-----X\n * replaceError( () => --10--| )\n * --1---2-----3--4--------10--|\n * ```\n *\n * @param {Function} replace A function of type `(err) => Stream` that takes\n * the error that occurred on the input stream or on the previous replacement\n * stream and returns a new stream. The output stream will behave like the\n * stream that this function returns.\n * @return {Stream}\n */\n Stream.prototype.replaceError = function (replace) {\n return new (this.ctor())(new ReplaceError(replace, this));\n };\n /**\n * Flattens a \"stream of streams\", handling only one nested stream at a time\n * (no concurrency).\n *\n * If the input stream is a stream that emits streams, then this operator will\n * return an output stream which is a flat stream: emits regular events. The\n * flattening happens without concurrency. It works like this: when the input\n * stream emits a nested stream, *flatten* will start imitating that nested\n * one. However, as soon as the next nested stream is emitted on the input\n * stream, *flatten* will forget the previous nested one it was imitating, and\n * will start imitating the new nested one.\n *\n * Marble diagram:\n *\n * ```text\n * --+--------+---------------\n * \\ \\\n * \\ ----1----2---3--\n * --a--b----c----d--------\n * flatten\n * -----a--b------1----2---3--\n * ```\n *\n * @return {Stream}\n */\n Stream.prototype.flatten = function () {\n return new Stream(new Flatten(this));\n };\n /**\n * Passes the input stream to a custom operator, to produce an output stream.\n *\n * *compose* is a handy way of using an existing function in a chained style.\n * Instead of writing `outStream = f(inStream)` you can write\n * `outStream = inStream.compose(f)`.\n *\n * @param {function} operator A function that takes a stream as input and\n * returns a stream as well.\n * @return {Stream}\n */\n Stream.prototype.compose = function (operator) {\n return operator(this);\n };\n /**\n * Returns an output stream that behaves like the input stream, but also\n * remembers the most recent event that happens on the input stream, so that a\n * newly added listener will immediately receive that memorised event.\n *\n * @return {MemoryStream}\n */\n Stream.prototype.remember = function () {\n return new MemoryStream(new Remember(this));\n };\n /**\n * Returns an output stream that identically behaves like the input stream,\n * but also runs a `spy` function for each event, to help you debug your app.\n *\n * *debug* takes a `spy` function as argument, and runs that for each event\n * happening on the input stream. If you don't provide the `spy` argument,\n * then *debug* will just `console.log` each event. This helps you to\n * understand the flow of events through some operator chain.\n *\n * Please note that if the output stream has no listeners, then it will not\n * start, which means `spy` will never run because no actual event happens in\n * that case.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3-----4--\n * debug\n * --1----2-----3-----4--\n * ```\n *\n * @param {function} labelOrSpy A string to use as the label when printing\n * debug information on the console, or a 'spy' function that takes an event\n * as argument, and does not need to return anything.\n * @return {Stream}\n */\n Stream.prototype.debug = function (labelOrSpy) {\n return new (this.ctor())(new Debug(this, labelOrSpy));\n };\n /**\n * *imitate* changes this current Stream to emit the same events that the\n * `other` given Stream does. This method returns nothing.\n *\n * This method exists to allow one thing: **circular dependency of streams**.\n * For instance, let's imagine that for some reason you need to create a\n * circular dependency where stream `first$` depends on stream `second$`\n * which in turn depends on `first$`:\n *\n * \n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var first$ = second$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * ```\n *\n * However, that is invalid JavaScript, because `second$` is undefined\n * on the first line. This is how *imitate* can help solve it:\n *\n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var secondProxy$ = xs.create();\n * var first$ = secondProxy$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * secondProxy$.imitate(second$);\n * ```\n *\n * We create `secondProxy$` before the others, so it can be used in the\n * declaration of `first$`. Then, after both `first$` and `second$` are\n * defined, we hook `secondProxy$` with `second$` with `imitate()` to tell\n * that they are \"the same\". `imitate` will not trigger the start of any\n * stream, it just binds `secondProxy$` and `second$` together.\n *\n * The following is an example where `imitate()` is important in Cycle.js\n * applications. A parent component contains some child components. A child\n * has an action stream which is given to the parent to define its state:\n *\n * \n * ```js\n * const childActionProxy$ = xs.create();\n * const parent = Parent({...sources, childAction$: childActionProxy$});\n * const childAction$ = parent.state$.map(s => s.child.action$).flatten();\n * childActionProxy$.imitate(childAction$);\n * ```\n *\n * Note, though, that **`imitate()` does not support MemoryStreams**. If we\n * would attempt to imitate a MemoryStream in a circular dependency, we would\n * either get a race condition (where the symptom would be \"nothing happens\")\n * or an infinite cyclic emission of values. It's useful to think about\n * MemoryStreams as cells in a spreadsheet. It doesn't make any sense to\n * define a spreadsheet cell `A1` with a formula that depends on `B1` and\n * cell `B1` defined with a formula that depends on `A1`.\n *\n * If you find yourself wanting to use `imitate()` with a\n * MemoryStream, you should rework your code around `imitate()` to use a\n * Stream instead. Look for the stream in the circular dependency that\n * represents an event stream, and that would be a candidate for creating a\n * proxy Stream which then imitates the target Stream.\n *\n * @param {Stream} target The other stream to imitate on the current one. Must\n * not be a MemoryStream.\n */\n Stream.prototype.imitate = function (target) {\n if (target instanceof MemoryStream)\n throw new Error('A MemoryStream was given to imitate(), but it only ' +\n 'supports a Stream. Read more about this restriction here: ' +\n 'https://github.com/staltz/xstream#faq');\n this._target = target;\n for (var ils = this._ils, N = ils.length, i = 0; i < N; i++)\n target._add(ils[i]);\n this._ils = [];\n };\n /**\n * Forces the Stream to emit the given value to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param value The \"next\" value you want to broadcast to all listeners of\n * this Stream.\n */\n Stream.prototype.shamefullySendNext = function (value) {\n this._n(value);\n };\n /**\n * Forces the Stream to emit the given error to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param {any} error The error you want to broadcast to all the listeners of\n * this Stream.\n */\n Stream.prototype.shamefullySendError = function (error) {\n this._e(error);\n };\n /**\n * Forces the Stream to emit the \"completed\" event to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n */\n Stream.prototype.shamefullySendComplete = function () {\n this._c();\n };\n /**\n * Adds a \"debug\" listener to the stream. There can only be one debug\n * listener, that's why this is 'setDebugListener'. To remove the debug\n * listener, just call setDebugListener(null).\n *\n * A debug listener is like any other listener. The only difference is that a\n * debug listener is \"stealthy\": its presence/absence does not trigger the\n * start/stop of the stream (or the producer inside the stream). This is\n * useful so you can inspect what is going on without changing the behavior\n * of the program. If you have an idle stream and you add a normal listener to\n * it, the stream will start executing. But if you set a debug listener on an\n * idle stream, it won't start executing (not until the first normal listener\n * is added).\n *\n * As the name indicates, we don't recommend using this method to build app\n * logic. In fact, in most cases the debug operator works just fine. Only use\n * this one if you know what you're doing.\n *\n * @param {Listener} listener\n */\n Stream.prototype.setDebugListener = function (listener) {\n if (!listener) {\n this._d = false;\n this._dl = NO;\n }\n else {\n this._d = true;\n listener._n = listener.next || noop;\n listener._e = listener.error || noop;\n listener._c = listener.complete || noop;\n this._dl = listener;\n }\n };\n /**\n * Blends multiple streams together, emitting events from all of them\n * concurrently.\n *\n * *merge* takes multiple streams as arguments, and creates a stream that\n * behaves like each of the argument streams, in parallel.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b----c---d------\n * merge\n * --1-a--2--b--3-c---d--4---\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to merge together with other streams.\n * @param {Stream} stream2 A stream to merge together with other streams. Two\n * or more streams may be given as arguments.\n * @return {Stream}\n */\n Stream.merge = function merge() {\n var streams = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n streams[_i] = arguments[_i];\n }\n return new Stream(new Merge(streams));\n };\n /**\n * Combines multiple input streams together to return a stream whose events\n * are arrays that collect the latest events from each input stream.\n *\n * *combine* internally remembers the most recent event from each of the input\n * streams. When any of the input streams emits an event, that event together\n * with all the other saved events are combined into an array. That array will\n * be emitted on the output stream. It's essentially a way of joining together\n * the events from multiple streams.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b-----c--d------\n * combine\n * ----1a-2a-2b-3b-3c-3d-4d--\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to combine together with other streams.\n * @param {Stream} stream2 A stream to combine together with other streams.\n * Multiple streams, not just two, may be given as arguments.\n * @return {Stream}\n */\n Stream.combine = function combine() {\n var streams = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n streams[_i] = arguments[_i];\n }\n return new Stream(new Combine(streams));\n };\n return Stream;\n}());\nexports.Stream = Stream;\nvar MemoryStream = /** @class */ (function (_super) {\n __extends(MemoryStream, _super);\n function MemoryStream(producer) {\n var _this = _super.call(this, producer) || this;\n _this._has = false;\n return _this;\n }\n MemoryStream.prototype._n = function (x) {\n this._v = x;\n this._has = true;\n _super.prototype._n.call(this, x);\n };\n MemoryStream.prototype._add = function (il) {\n var ta = this._target;\n if (ta)\n return ta._add(il);\n var a = this._ils;\n a.push(il);\n if (a.length > 1) {\n if (this._has)\n il._n(this._v);\n return;\n }\n if (this._stopID !== NO) {\n if (this._has)\n il._n(this._v);\n clearTimeout(this._stopID);\n this._stopID = NO;\n }\n else if (this._has)\n il._n(this._v);\n else {\n var p = this._prod;\n if (p !== NO)\n p._start(this);\n }\n };\n MemoryStream.prototype._stopNow = function () {\n this._has = false;\n _super.prototype._stopNow.call(this);\n };\n MemoryStream.prototype._x = function () {\n this._has = false;\n _super.prototype._x.call(this);\n };\n MemoryStream.prototype.map = function (project) {\n return this._map(project);\n };\n MemoryStream.prototype.mapTo = function (projectedValue) {\n return _super.prototype.mapTo.call(this, projectedValue);\n };\n MemoryStream.prototype.take = function (amount) {\n return _super.prototype.take.call(this, amount);\n };\n MemoryStream.prototype.endWhen = function (other) {\n return _super.prototype.endWhen.call(this, other);\n };\n MemoryStream.prototype.replaceError = function (replace) {\n return _super.prototype.replaceError.call(this, replace);\n };\n MemoryStream.prototype.remember = function () {\n return this;\n };\n MemoryStream.prototype.debug = function (labelOrSpy) {\n return _super.prototype.debug.call(this, labelOrSpy);\n };\n return MemoryStream;\n}(Stream));\nexports.MemoryStream = MemoryStream;\nvar xs = Stream;\nexports.default = xs;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFrRTtBQUNsRSx5Q0FBMEQ7QUFFMUQsSUFBTSxZQUFZLEdBQUcsa0JBQXdCLENBQUMsd0JBQWEsRUFBRSxDQUFDLENBQUM7QUFFL0QsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBOC9ETCxnQkFBRTtBQTcvRFgsU0FBUyxJQUFJLEtBQUssQ0FBQztBQUVuQixTQUFTLEVBQUUsQ0FBSSxDQUFXO0lBQ3hCLElBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkIsSUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBSSxFQUFxQixFQUFFLEVBQXFCO0lBQzFELE9BQU8sU0FBUyxLQUFLLENBQUMsQ0FBSTtRQUN4QixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU1ELFNBQVMsSUFBSSxDQUFPLENBQW1CLEVBQUUsQ0FBSSxFQUFFLENBQWM7SUFDM0QsSUFBSTtRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNmO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFRRCxJQUFNLEtBQUss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TCxVQUFNLFVBQWlEO1FBQ3JELE9BQU8saUJBQU0sS0FBSyxZQUFDLFVBQWlCLENBQW9CLENBQUM7SUFDM0QsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXhFRCxDQUFxQyxNQUFNLEdBd0UxQztBQXhFWSxvQ0FBWTtBQTJFekIsSUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0FBRWxCLGtCQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUgZnJvbSAnc3ltYm9sLW9ic2VydmFibGUvcG9ueWZpbGwnO1xuaW1wb3J0IHsgZ2V0UG9seWZpbGwgYXMgZ2V0R2xvYmFsVGhpcyB9IGZyb20gJ2dsb2JhbHRoaXMnO1xuXG5jb25zdCAkJG9ic2VydmFibGUgPSBwb255ZmlsbFN5bWJvbE9ic2VydmFibGUoZ2V0R2xvYmFsVGhpcygpKTtcblxuY29uc3QgTk8gPSB7fTtcbmZ1bmN0aW9uIG5vb3AoKSB7IH1cblxuZnVuY3Rpb24gY3A8VD4oYTogQXJyYXk8VD4pOiBBcnJheTxUPiB7XG4gIGNvbnN0IGwgPSBhLmxlbmd0aDtcbiAgY29uc3QgYiA9IEFycmF5KGwpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGw7ICsraSkgYltpXSA9IGFbaV07XG4gIHJldHVybiBiO1xufVxuXG5mdW5jdGlvbiBhbmQ8VD4oZjE6ICh0OiBUKSA9PiBib29sZWFuLCBmMjogKHQ6IFQpID0+IGJvb2xlYW4pOiAodDogVCkgPT4gYm9vbGVhbiB7XG4gIHJldHVybiBmdW5jdGlvbiBhbmRGbih0OiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGYxKHQpICYmIGYyKHQpO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgRkNvbnRhaW5lcjxULCBSPiB7XG4gIGYodDogVCk6IFI7XG59XG5cbmZ1bmN0aW9uIF90cnk8VCwgUj4oYzogRkNvbnRhaW5lcjxULCBSPiwgdDogVCwgdTogU3RyZWFtPGFueT4pOiBSIHwge30ge1xuICB0cnkge1xuICAgIHJldHVybiBjLmYodCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB1Ll9lKGUpO1xuICAgIHJldHVybiBOTztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBfbjogKHY6IFQpID0+IHZvaWQ7XG4gIF9lOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIF9jOiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBOT19JTDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+ID0ge1xuICBfbjogbm9vcCxcbiAgX2U6IG5vb3AsXG4gIF9jOiBub29wLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgX3N0YXJ0KGxpc3RlbmVyOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZDtcbiAgX3N0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0U2VuZGVyPFQ+IHtcbiAgb3V0OiBTdHJlYW08VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0b3I8VCwgUj4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFI+LCBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8Uj4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluczogU3RyZWFtPFQ+O1xuICBfc3RhcnQob3V0OiBTdHJlYW08Uj4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0b3I8VCwgVT4gZXh0ZW5kcyBJbnRlcm5hbFByb2R1Y2VyPFU+LCBPdXRTZW5kZXI8VT4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGluc0FycjogQXJyYXk8U3RyZWFtPFQ+PjtcbiAgX3N0YXJ0KG91dDogU3RyZWFtPFU+KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlcjxUPiB7XG4gIHN0YXJ0OiAobGlzdGVuZXI6IExpc3RlbmVyPFQ+KSA9PiB2b2lkO1xuICBzdG9wOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyPFQ+IHtcbiAgbmV4dDogKHg6IFQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbXBsZXRlOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbiB7XG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzZXJ2YWJsZTxUPiB7XG4gIHN1YnNjcmliZShsaXN0ZW5lcjogTGlzdGVuZXI8VD4pOiBTdWJzY3JpcHRpb247XG59XG5cbi8vIG11dGF0ZXMgdGhlIGlucHV0XG5mdW5jdGlvbiBpbnRlcm5hbGl6ZVByb2R1Y2VyPFQ+KHByb2R1Y2VyOiBQcm9kdWNlcjxUPiAmIFBhcnRpYWw8SW50ZXJuYWxQcm9kdWNlcjxUPj4pIHtcbiAgcHJvZHVjZXIuX3N0YXJ0ID0gZnVuY3Rpb24gX3N0YXJ0KGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+ICYgUGFydGlhbDxMaXN0ZW5lcjxUPj4pIHtcbiAgICBpbC5uZXh0ID0gaWwuX247XG4gICAgaWwuZXJyb3IgPSBpbC5fZTtcbiAgICBpbC5jb21wbGV0ZSA9IGlsLl9jO1xuICAgIHRoaXMuc3RhcnQoaWwgYXMgTGlzdGVuZXI8VD4pO1xuICB9O1xuICBwcm9kdWNlci5fc3RvcCA9IHByb2R1Y2VyLnN0b3A7XG59XG5cbmNsYXNzIFN0cmVhbVN1YjxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0cmVhbTogU3RyZWFtPFQ+LCBwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RyZWFtLl9yZW1vdmUodGhpcy5fbGlzdGVuZXIpO1xuICB9XG59XG5cbmNsYXNzIE9ic2VydmVyPFQ+IGltcGxlbWVudHMgTGlzdGVuZXI8VD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9saXN0ZW5lcjogSW50ZXJuYWxMaXN0ZW5lcjxUPikgeyB9XG5cbiAgbmV4dCh2YWx1ZTogVCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9uKHZhbHVlKTtcbiAgfVxuXG4gIGVycm9yKGVycjogYW55KSB7XG4gICAgdGhpcy5fbGlzdGVuZXIuX2UoZXJyKTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIHRoaXMuX2xpc3RlbmVyLl9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRnJvbU9ic2VydmFibGU8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbU9ic2VydmFibGUnO1xuICBwdWJsaWMgaW5zOiBPYnNlcnZhYmxlPFQ+O1xuICBwdWJsaWMgb3V0PzogU3RyZWFtPFQ+O1xuICBwcml2YXRlIGFjdGl2ZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfc3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Iob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHRoaXMuaW5zID0gb2JzZXJ2YWJsZTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX3N1YiA9IHRoaXMuaW5zLnN1YnNjcmliZShuZXcgT2JzZXJ2ZXIob3V0KSk7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZSkgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfc3RvcCgpIHtcbiAgICBpZiAodGhpcy5fc3ViKSB0aGlzLl9zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VTaWduYXR1cmUge1xuICAoKTogU3RyZWFtPGFueT47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08VDE+O1xuICA8VDEsIFQyPihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPik6IFN0cmVhbTxUMSB8IFQyPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFQxIHwgVDIgfCBUMz47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQ+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNj47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDc+O1xuICA8VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4PihcbiAgICBzMTogU3RyZWFtPFQxPixcbiAgICBzMjogU3RyZWFtPFQyPixcbiAgICBzMzogU3RyZWFtPFQzPixcbiAgICBzNDogU3RyZWFtPFQ0PixcbiAgICBzNTogU3RyZWFtPFQ1PixcbiAgICBzNjogU3RyZWFtPFQ2PixcbiAgICBzNzogU3RyZWFtPFQ3PixcbiAgICBzODogU3RyZWFtPFQ4Pik6IFN0cmVhbTxUMSB8IFQyIHwgVDMgfCBUNCB8IFQ1IHwgVDYgfCBUNyB8IFQ4PjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFQxIHwgVDIgfCBUMyB8IFQ0IHwgVDUgfCBUNiB8IFQ3IHwgVDggfCBUOT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08VDEgfCBUMiB8IFQzIHwgVDQgfCBUNSB8IFQ2IHwgVDcgfCBUOCB8IFQ5IHwgVDEwPjtcbiAgPFQ+KC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPFQ+Pik6IFN0cmVhbTxUPjtcbn1cblxuY2xhc3MgTWVyZ2U8VD4gaW1wbGVtZW50cyBBZ2dyZWdhdG9yPFQsIFQ+LCBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnbWVyZ2UnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08VD4+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgYWM6IG51bWJlcjsgLy8gYWMgaXMgYWN0aXZlQ291bnRcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxUPj4pIHtcbiAgICB0aGlzLmluc0FyciA9IGluc0FycjtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmFjID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgdGhpcy5hYyA9IEw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBMID0gcy5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIHNbaV0uX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGlmICgtLXRoaXMuYWMgPD0gMCkge1xuICAgICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgICB1Ll9jKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZVNpZ25hdHVyZSB7XG4gICgpOiBTdHJlYW08QXJyYXk8YW55Pj47XG4gIDxUMT4oczE6IFN0cmVhbTxUMT4pOiBTdHJlYW08W1QxXT47XG4gIDxUMSwgVDI+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+KTogU3RyZWFtPFtUMSwgVDJdPjtcbiAgPFQxLCBUMiwgVDM+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+KTogU3RyZWFtPFtUMSwgVDIsIFQzXT47XG4gIDxUMSwgVDIsIFQzLCBUND4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDU+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDVdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz4oXG4gICAgczE6IFN0cmVhbTxUMT4sXG4gICAgczI6IFN0cmVhbTxUMj4sXG4gICAgczM6IFN0cmVhbTxUMz4sXG4gICAgczQ6IFN0cmVhbTxUND4sXG4gICAgczU6IFN0cmVhbTxUNT4sXG4gICAgczY6IFN0cmVhbTxUNj4sXG4gICAgczc6IFN0cmVhbTxUNz4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDg+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDhdPjtcbiAgPFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDk+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+KTogU3RyZWFtPFtUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5XT47XG4gIDxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNywgVDgsIFQ5LCBUMTA+KFxuICAgIHMxOiBTdHJlYW08VDE+LFxuICAgIHMyOiBTdHJlYW08VDI+LFxuICAgIHMzOiBTdHJlYW08VDM+LFxuICAgIHM0OiBTdHJlYW08VDQ+LFxuICAgIHM1OiBTdHJlYW08VDU+LFxuICAgIHM2OiBTdHJlYW08VDY+LFxuICAgIHM3OiBTdHJlYW08VDc+LFxuICAgIHM4OiBTdHJlYW08VDg+LFxuICAgIHM5OiBTdHJlYW08VDk+LFxuICAgIHMxMDogU3RyZWFtPFQxMD4pOiBTdHJlYW08W1QxLCBUMiwgVDMsIFQ0LCBUNSwgVDYsIFQ3LCBUOCwgVDksIFQxMF0+O1xuICA8VD4oLi4uc3RyZWFtOiBBcnJheTxTdHJlYW08VD4+KTogU3RyZWFtPEFycmF5PFQ+PjtcbiAgKC4uLnN0cmVhbTogQXJyYXk8U3RyZWFtPGFueT4+KTogU3RyZWFtPEFycmF5PGFueT4+O1xufVxuXG5jbGFzcyBDb21iaW5lTGlzdGVuZXI8VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+LCBPdXRTZW5kZXI8QXJyYXk8VD4+IHtcbiAgcHJpdmF0ZSBpOiBudW1iZXI7XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxUPj47XG4gIHByaXZhdGUgcDogQ29tYmluZTxUPjtcblxuICBjb25zdHJ1Y3RvcihpOiBudW1iZXIsIG91dDogU3RyZWFtPEFycmF5PFQ+PiwgcDogQ29tYmluZTxUPikge1xuICAgIHRoaXMuaSA9IGk7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5wID0gcDtcbiAgICBwLmlscy5wdXNoKHRoaXMpO1xuICB9XG5cbiAgX24odDogVCk6IHZvaWQge1xuICAgIGNvbnN0IHAgPSB0aGlzLnAsIG91dCA9IHRoaXMub3V0O1xuICAgIGlmIChvdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKHAudXAodCwgdGhpcy5pKSkge1xuICAgICAgY29uc3QgYiA9IGNwKHAudmFscyk7XG4gICAgICBvdXQuX24oYik7XG4gICAgfVxuICB9XG5cbiAgX2UoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvdXQgPSB0aGlzLm91dDtcbiAgICBpZiAob3V0ID09PSBOTykgcmV0dXJuO1xuICAgIG91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgcCA9IHRoaXMucDtcbiAgICBpZiAocC5vdXQgPT09IE5PKSByZXR1cm47XG4gICAgaWYgKC0tcC5OYyA9PT0gMCkgcC5vdXQuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBDb21iaW5lPFI+IGltcGxlbWVudHMgQWdncmVnYXRvcjxhbnksIEFycmF5PFI+PiB7XG4gIHB1YmxpYyB0eXBlID0gJ2NvbWJpbmUnO1xuICBwdWJsaWMgaW5zQXJyOiBBcnJheTxTdHJlYW08YW55Pj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxBcnJheTxSPj47XG4gIHB1YmxpYyBpbHM6IEFycmF5PENvbWJpbmVMaXN0ZW5lcjxhbnk+PjtcbiAgcHVibGljIE5jOiBudW1iZXI7IC8vICpOKnVtYmVyIG9mIHN0cmVhbXMgc3RpbGwgdG8gc2VuZCAqYypvbXBsZXRlXG4gIHB1YmxpYyBObjogbnVtYmVyOyAvLyAqTip1bWJlciBvZiBzdHJlYW1zIHN0aWxsIHRvIHNlbmQgKm4qZXh0XG4gIHB1YmxpYyB2YWxzOiBBcnJheTxSPjtcblxuICBjb25zdHJ1Y3RvcihpbnNBcnI6IEFycmF5PFN0cmVhbTxhbnk+Pikge1xuICAgIHRoaXMuaW5zQXJyID0gaW5zQXJyO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMuTmMgPSB0aGlzLk5uID0gMDtcbiAgICB0aGlzLnZhbHMgPSBbXTtcbiAgfVxuXG4gIHVwKHQ6IGFueSwgaTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsc1tpXTtcbiAgICBjb25zdCBObiA9ICF0aGlzLk5uID8gMCA6IHYgPT09IE5PID8gLS10aGlzLk5uIDogdGhpcy5ObjtcbiAgICB0aGlzLnZhbHNbaV0gPSB0O1xuICAgIHJldHVybiBObiA9PT0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxBcnJheTxSPj4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICBjb25zdCBzID0gdGhpcy5pbnNBcnI7XG4gICAgY29uc3QgbiA9IHRoaXMuTmMgPSB0aGlzLk5uID0gcy5sZW5ndGg7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudmFscyA9IG5ldyBBcnJheShuKTtcbiAgICBpZiAobiA9PT0gMCkge1xuICAgICAgb3V0Ll9uKFtdKTtcbiAgICAgIG91dC5fYygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICB2YWxzW2ldID0gTk87XG4gICAgICAgIHNbaV0uX2FkZChuZXcgQ29tYmluZUxpc3RlbmVyKGksIG91dCwgdGhpcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IHMgPSB0aGlzLmluc0FycjtcbiAgICBjb25zdCBuID0gcy5sZW5ndGg7XG4gICAgY29uc3QgaWxzID0gdGhpcy5pbHM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHNbaV0uX3JlbW92ZShpbHNbaV0pO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPEFycmF5PFI+PjtcbiAgICB0aGlzLmlscyA9IFtdO1xuICAgIHRoaXMudmFscyA9IFtdO1xuICB9XG59XG5cbmNsYXNzIEZyb21BcnJheTxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmcm9tQXJyYXknO1xuICBwdWJsaWMgYTogQXJyYXk8VD47XG5cbiAgY29uc3RydWN0b3IoYTogQXJyYXk8VD4pIHtcbiAgICB0aGlzLmEgPSBhO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IGEgPSB0aGlzLmE7XG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBhLmxlbmd0aDsgaSA8IG47IGkrKykgb3V0Ll9uKGFbaV0pO1xuICAgIG91dC5fYygpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gIH1cbn1cblxuY2xhc3MgRnJvbVByb21pc2U8VD4gaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPFQ+IHtcbiAgcHVibGljIHR5cGUgPSAnZnJvbVByb21pc2UnO1xuICBwdWJsaWMgb246IGJvb2xlYW47XG4gIHB1YmxpYyBwOiBQcm9taXNlTGlrZTxUPjtcblxuICBjb25zdHJ1Y3RvcihwOiBQcm9taXNlTGlrZTxUPikge1xuICAgIHRoaXMub24gPSBmYWxzZTtcbiAgICB0aGlzLnAgPSBwO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHByb2QgPSB0aGlzO1xuICAgIHRoaXMub24gPSB0cnVlO1xuICAgIHRoaXMucC50aGVuKFxuICAgICAgKHY6IFQpID0+IHtcbiAgICAgICAgaWYgKHByb2Qub24pIHtcbiAgICAgICAgICBvdXQuX24odik7XG4gICAgICAgICAgb3V0Ll9jKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiB7XG4gICAgICAgIG91dC5fZShlKTtcbiAgICAgIH0sXG4gICAgKS50aGVuKG5vb3AsIChlcnI6IGFueSkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRocm93IGVycjsgfSk7XG4gICAgfSk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uID0gZmFsc2U7XG4gIH1cbn1cblxuY2xhc3MgUGVyaW9kaWMgaW1wbGVtZW50cyBJbnRlcm5hbFByb2R1Y2VyPG51bWJlcj4ge1xuICBwdWJsaWMgdHlwZSA9ICdwZXJpb2RpYyc7XG4gIHB1YmxpYyBwZXJpb2Q6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbnRlcnZhbElEOiBhbnk7XG4gIHByaXZhdGUgaTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHBlcmlvZDogbnVtYmVyKSB7XG4gICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgdGhpcy5pbnRlcnZhbElEID0gLTE7XG4gICAgdGhpcy5pID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IEludGVybmFsTGlzdGVuZXI8bnVtYmVyPik6IHZvaWQge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIGludGVydmFsSGFuZGxlcigpIHsgb3V0Ll9uKHNlbGYuaSsrKTsgfVxuICAgIHRoaXMuaW50ZXJ2YWxJRCA9IHNldEludGVydmFsKGludGVydmFsSGFuZGxlciwgdGhpcy5wZXJpb2QpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJRCAhPT0gLTEpIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElEKTtcbiAgICB0aGlzLmludGVydmFsSUQgPSAtMTtcbiAgICB0aGlzLmkgPSAwO1xuICB9XG59XG5cbmNsYXNzIERlYnVnPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkZWJ1Zyc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIHM6ICh0OiBUKSA9PiBhbnk7IC8vIHNweVxuICBwcml2YXRlIGw6IHN0cmluZzsgLy8gbGFiZWxcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPik7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogKHQ6IFQpID0+IGFueSk7XG4gIGNvbnN0cnVjdG9yKGluczogU3RyZWFtPFQ+LCBhcmc/OiBzdHJpbmcgfCAoKHQ6IFQpID0+IGFueSkpO1xuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgYXJnPzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5zID0gbm9vcDtcbiAgICB0aGlzLmwgPSAnJztcbiAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHRoaXMubCA9IGFyZzsgZWxzZSBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5zID0gYXJnO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMsIGwgPSB0aGlzLmw7XG4gICAgaWYgKHMgIT09IG5vb3ApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHModCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHUuX2UoZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsKSBjb25zb2xlLmxvZyhsICsgJzonLCB0KTsgZWxzZSBjb25zb2xlLmxvZyh0KTtcbiAgICB1Ll9uKHQpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBEcm9wPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkcm9wJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBtYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBkcm9wcGVkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobWF4OiBudW1iZXIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5tYXggPSBtYXg7XG4gICAgdGhpcy5kcm9wcGVkID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuZHJvcHBlZCA9IDA7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmRyb3BwZWQrKyA+PSB0aGlzLm1heCkgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9jKCk7XG4gIH1cbn1cblxuY2xhc3MgRW5kV2hlbkxpc3RlbmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxMaXN0ZW5lcjxhbnk+IHtcbiAgcHJpdmF0ZSBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcDogRW5kV2hlbjxUPjtcblxuICBjb25zdHJ1Y3RvcihvdXQ6IFN0cmVhbTxUPiwgb3A6IEVuZFdoZW48VD4pIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wID0gb3A7XG4gIH1cblxuICBfbigpIHtcbiAgICB0aGlzLm9wLmVuZCgpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICB0aGlzLm91dC5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcC5lbmQoKTtcbiAgfVxufVxuXG5jbGFzcyBFbmRXaGVuPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdlbmRXaGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBvOiBTdHJlYW08YW55PjsgLy8gbyA9IG90aGVyXG4gIHByaXZhdGUgb2lsOiBJbnRlcm5hbExpc3RlbmVyPGFueT47IC8vIG9pbCA9IG90aGVyIEludGVybmFsTGlzdGVuZXJcblxuICBjb25zdHJ1Y3RvcihvOiBTdHJlYW08YW55PiwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm8gPSBvO1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm8uX2FkZCh0aGlzLm9pbCA9IG5ldyBFbmRXaGVuTGlzdGVuZXIob3V0LCB0aGlzKSk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vLl9yZW1vdmUodGhpcy5vaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub2lsID0gTk9fSUw7XG4gIH1cblxuICBlbmQoKTogdm9pZCB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMuZW5kKCk7XG4gIH1cbn1cblxuY2xhc3MgRmlsdGVyPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmaWx0ZXInO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIGY6ICh0OiBUKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHBhc3NlczogKHQ6IFQpID0+IGJvb2xlYW4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcGFzc2VzO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTyB8fCAhcikgcmV0dXJuO1xuICAgIHUuX24odCk7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIEZsYXR0ZW5MaXN0ZW5lcjxUPiBpbXBsZW1lbnRzIEludGVybmFsTGlzdGVuZXI8VD4ge1xuICBwcml2YXRlIG91dDogU3RyZWFtPFQ+O1xuICBwcml2YXRlIG9wOiBGbGF0dGVuPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG91dDogU3RyZWFtPFQ+LCBvcDogRmxhdHRlbjxUPikge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMub3AgPSBvcDtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICB0aGlzLm91dC5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgdGhpcy5vdXQuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIHRoaXMub3AuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5vcC5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRmxhdHRlbjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFN0cmVhbTxUPiwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdmbGF0dGVuJztcbiAgcHVibGljIGluczogU3RyZWFtPFN0cmVhbTxUPj47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHJpdmF0ZSBvcGVuOiBib29sZWFuO1xuICBwdWJsaWMgaW5uZXI6IFN0cmVhbTxUPjsgLy8gQ3VycmVudCBpbm5lciBTdHJlYW1cbiAgcHJpdmF0ZSBpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPjsgLy8gQ3VycmVudCBpbm5lciBJbnRlcm5hbExpc3RlbmVyXG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08U3RyZWFtPFQ+Pikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5uZXIgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5pbCA9IE5PX0lMO1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIGlmICh0aGlzLmlubmVyICE9PSBOTykgdGhpcy5pbm5lci5fcmVtb3ZlKHRoaXMuaWwpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgdGhpcy5pbm5lciA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLmlsID0gTk9fSUw7XG4gIH1cblxuICBsZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLmlubmVyID09PSBOTykgdS5fYygpO1xuICB9XG5cbiAgX24oczogU3RyZWFtPFQ+KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHsgaW5uZXIsIGlsIH0gPSB0aGlzO1xuICAgIGlmIChpbm5lciAhPT0gTk8gJiYgaWwgIT09IE5PX0lMKSBpbm5lci5fcmVtb3ZlKGlsKTtcbiAgICAodGhpcy5pbm5lciA9IHMpLl9hZGQodGhpcy5pbCA9IG5ldyBGbGF0dGVuTGlzdGVuZXIodSwgdGhpcykpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5sZXNzKCk7XG4gIH1cbn1cblxuY2xhc3MgRm9sZDxULCBSPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFI+IHtcbiAgcHVibGljIHR5cGUgPSAnZm9sZCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG4gIHB1YmxpYyBzZWVkOiBSO1xuICBwcml2YXRlIGFjYzogUjsgLy8gaW5pdGlhbGl6ZWQgYXMgc2VlZFxuXG4gIGNvbnN0cnVjdG9yKGY6IChhY2M6IFIsIHQ6IFQpID0+IFIsIHNlZWQ6IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gKHQ6IFQpID0+IGYodGhpcy5hY2MsIHQpO1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkID0gc2VlZDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuYWNjID0gdGhpcy5zZWVkO1xuICAgIG91dC5fbih0aGlzLmFjYyk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5hY2MgPSB0aGlzLnNlZWQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIGNvbnN0IHIgPSBfdHJ5KHRoaXMsIHQsIHUpO1xuICAgIGlmIChyID09PSBOTykgcmV0dXJuO1xuICAgIHUuX24odGhpcy5hY2MgPSByIGFzIFIpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2MoKTtcbiAgfVxufVxuXG5jbGFzcyBMYXN0PFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdsYXN0JztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHByaXZhdGUgaGFzOiBib29sZWFuO1xuICBwcml2YXRlIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPikge1xuICAgIHRoaXMuaW5zID0gaW5zO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICAgIHRoaXMuaGFzID0gZmFsc2U7XG4gICAgdGhpcy52YWwgPSBOTyBhcyBUO1xuICB9XG5cbiAgX3N0YXJ0KG91dDogU3RyZWFtPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vdXQgPSBvdXQ7XG4gICAgdGhpcy5oYXMgPSBmYWxzZTtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLnZhbCA9IE5PIGFzIFQ7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgdGhpcy5oYXMgPSB0cnVlO1xuICAgIHRoaXMudmFsID0gdDtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHUuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXMpIHtcbiAgICAgIHUuX24odGhpcy52YWwpO1xuICAgICAgdS5fYygpO1xuICAgIH0gZWxzZSB1Ll9lKG5ldyBFcnJvcignbGFzdCgpIGZhaWxlZCBiZWNhdXNlIGlucHV0IHN0cmVhbSBjb21wbGV0ZWQnKSk7XG4gIH1cbn1cblxuY2xhc3MgTWFwT3A8VCwgUj4gaW1wbGVtZW50cyBPcGVyYXRvcjxULCBSPiB7XG4gIHB1YmxpYyB0eXBlID0gJ21hcCc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFI+O1xuICBwdWJsaWMgZjogKHQ6IFQpID0+IFI7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogKHQ6IFQpID0+IFIsIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08Uj47XG4gICAgdGhpcy5mID0gcHJvamVjdDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxSPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFI+O1xuICB9XG5cbiAgX24odDogVCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICBjb25zdCByID0gX3RyeSh0aGlzLCB0LCB1KTtcbiAgICBpZiAociA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9uKHIgYXMgUik7XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFJlbWVtYmVyPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxQcm9kdWNlcjxUPiB7XG4gIHB1YmxpYyB0eXBlID0gJ3JlbWVtYmVyJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG5cbiAgY29uc3RydWN0b3IoaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQob3V0KTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcy5vdXQpO1xuICAgIHRoaXMub3V0ID0gTk8gYXMgU3RyZWFtPFQ+O1xuICB9XG59XG5cbmNsYXNzIFJlcGxhY2VFcnJvcjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAncmVwbGFjZUVycm9yJztcbiAgcHVibGljIGluczogU3RyZWFtPFQ+O1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD47XG4gIHB1YmxpYyBmOiAoZXJyOiBhbnkpID0+IFN0cmVhbTxUPjtcblxuICBjb25zdHJ1Y3RvcihyZXBsYWNlcjogKGVycjogYW55KSA9PiBTdHJlYW08VD4sIGluczogU3RyZWFtPFQ+KSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy5mID0gcmVwbGFjZXI7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fbih0KTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICh1ID09PSBOTykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgICAgKHRoaXMuaW5zID0gdGhpcy5mKGVycikpLl9hZGQodGhpcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdS5fZShlKTtcbiAgICB9XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmNsYXNzIFN0YXJ0V2l0aDxUPiBpbXBsZW1lbnRzIEludGVybmFsUHJvZHVjZXI8VD4ge1xuICBwdWJsaWMgdHlwZSA9ICdzdGFydFdpdGgnO1xuICBwdWJsaWMgaW5zOiBTdHJlYW08VD47XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxUPjtcbiAgcHVibGljIHZhbDogVDtcblxuICBjb25zdHJ1Y3RvcihpbnM6IFN0cmVhbTxUPiwgdmFsOiBUKSB7XG4gICAgdGhpcy5pbnMgPSBpbnM7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gICAgdGhpcy52YWwgPSB2YWw7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICB0aGlzLm91dCA9IG91dDtcbiAgICB0aGlzLm91dC5fbih0aGlzLnZhbCk7XG4gICAgdGhpcy5pbnMuX2FkZChvdXQpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzLm91dCk7XG4gICAgdGhpcy5vdXQgPSBOTyBhcyBTdHJlYW08VD47XG4gIH1cbn1cblxuY2xhc3MgVGFrZTxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHVibGljIHR5cGUgPSAndGFrZSc7XG4gIHB1YmxpYyBpbnM6IFN0cmVhbTxUPjtcbiAgcHVibGljIG91dDogU3RyZWFtPFQ+O1xuICBwdWJsaWMgbWF4OiBudW1iZXI7XG4gIHByaXZhdGUgdGFrZW46IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtYXg6IG51bWJlciwgaW5zOiBTdHJlYW08VD4pIHtcbiAgICB0aGlzLmlucyA9IGlucztcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLnRha2VuID0gMDtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMudGFrZW4gPSAwO1xuICAgIGlmICh0aGlzLm1heCA8PSAwKSBvdXQuX2MoKTsgZWxzZSB0aGlzLmlucy5fYWRkKHRoaXMpO1xuICB9XG5cbiAgX3N0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5pbnMuX3JlbW92ZSh0aGlzKTtcbiAgICB0aGlzLm91dCA9IE5PIGFzIFN0cmVhbTxUPjtcbiAgfVxuXG4gIF9uKHQ6IFQpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgY29uc3QgbSA9ICsrdGhpcy50YWtlbjtcbiAgICBpZiAobSA8IHRoaXMubWF4KSB1Ll9uKHQpOyBlbHNlIGlmIChtID09PSB0aGlzLm1heCkge1xuICAgICAgdS5fbih0KTtcbiAgICAgIHUuX2MoKTtcbiAgICB9XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAodSA9PT0gTk8pIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKHUgPT09IE5PKSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdHJlYW08VD4gaW1wbGVtZW50cyBJbnRlcm5hbExpc3RlbmVyPFQ+IHtcbiAgcHVibGljIF9wcm9kOiBJbnRlcm5hbFByb2R1Y2VyPFQ+O1xuICBwcm90ZWN0ZWQgX2lsczogQXJyYXk8SW50ZXJuYWxMaXN0ZW5lcjxUPj47IC8vICdpbHMnID0gSW50ZXJuYWwgbGlzdGVuZXJzXG4gIHByb3RlY3RlZCBfc3RvcElEOiBhbnk7XG4gIHByb3RlY3RlZCBfZGw6IEludGVybmFsTGlzdGVuZXI8VD47IC8vIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX2Q6IGJvb2xlYW47IC8vIGZsYWcgaW5kaWNhdGluZyB0aGUgZXhpc3RlbmNlIG9mIHRoZSBkZWJ1ZyBsaXN0ZW5lclxuICBwcm90ZWN0ZWQgX3RhcmdldDogU3RyZWFtPFQ+IHwgbnVsbDsgLy8gaW1pdGF0aW9uIHRhcmdldCBpZiB0aGlzIFN0cmVhbSB3aWxsIGltaXRhdGVcbiAgcHJvdGVjdGVkIF9lcnI6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9kdWNlcj86IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICB0aGlzLl9wcm9kID0gcHJvZHVjZXIgfHwgTk8gYXMgSW50ZXJuYWxQcm9kdWNlcjxUPjtcbiAgICB0aGlzLl9pbHMgPSBbXTtcbiAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB0aGlzLl9kbCA9IE5PIGFzIEludGVybmFsTGlzdGVuZXI8VD47XG4gICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgIHRoaXMuX3RhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gIH1cblxuICBfbih0OiBUKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgaWYgKHRoaXMuX2QpIHRoaXMuX2RsLl9uKHQpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX24odCk7IGVsc2UgaWYgKEwgPT0gMCkgcmV0dXJuOyBlbHNlIHtcbiAgICAgIGNvbnN0IGIgPSBjcChhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTDsgaSsrKSBiW2ldLl9uKHQpO1xuICAgIH1cbiAgfVxuXG4gIF9lKGVycjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VyciAhPT0gTk8pIHJldHVybjtcbiAgICB0aGlzLl9lcnIgPSBlcnI7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fZShlcnIpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2UoZXJyKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2UoZXJyKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kICYmIEwgPT0gMCkgdGhyb3cgdGhpcy5fZXJyO1xuICB9XG5cbiAgX2MoKTogdm9pZCB7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBMID0gYS5sZW5ndGg7XG4gICAgdGhpcy5feCgpO1xuICAgIGlmICh0aGlzLl9kKSB0aGlzLl9kbC5fYygpO1xuICAgIGlmIChMID09IDEpIGFbMF0uX2MoKTsgZWxzZSBpZiAoTCA9PSAwKSByZXR1cm47IGVsc2Uge1xuICAgICAgY29uc3QgYiA9IGNwKGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMOyBpKyspIGJbaV0uX2MoKTtcbiAgICB9XG4gIH1cblxuICBfeCgpOiB2b2lkIHsgLy8gdGVhciBkb3duIGxvZ2ljLCBhZnRlciBlcnJvciBvciBjb21wbGV0ZVxuICAgIGlmICh0aGlzLl9pbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3Byb2QgIT09IE5PKSB0aGlzLl9wcm9kLl9zdG9wKCk7XG4gICAgdGhpcy5fZXJyID0gTk87XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICAvLyBXQVJOSU5HOiBjb2RlIHRoYXQgY2FsbHMgdGhpcyBtZXRob2Qgc2hvdWxkXG4gICAgLy8gZmlyc3QgY2hlY2sgaWYgdGhpcy5fcHJvZCBpcyB2YWxpZCAobm90IGBOT2ApXG4gICAgdGhpcy5fcHJvZC5fc3RvcCgpO1xuICAgIHRoaXMuX2VyciA9IE5PO1xuICAgIHRoaXMuX3N0b3BJRCA9IE5PO1xuICB9XG5cbiAgX2FkZChpbDogSW50ZXJuYWxMaXN0ZW5lcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IHRhID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICh0YSkgcmV0dXJuIHRhLl9hZGQoaWwpO1xuICAgIGNvbnN0IGEgPSB0aGlzLl9pbHM7XG4gICAgYS5wdXNoKGlsKTtcbiAgICBpZiAoYS5sZW5ndGggPiAxKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3N0b3BJRCAhPT0gTk8pIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdG9wSUQpO1xuICAgICAgdGhpcy5fc3RvcElEID0gTk87XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfcmVtb3ZlKGlsOiBJbnRlcm5hbExpc3RlbmVyPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgdGEgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKHRhKSByZXR1cm4gdGEuX3JlbW92ZShpbCk7XG4gICAgY29uc3QgYSA9IHRoaXMuX2lscztcbiAgICBjb25zdCBpID0gYS5pbmRleE9mKGlsKTtcbiAgICBpZiAoaSA+IC0xKSB7XG4gICAgICBhLnNwbGljZShpLCAxKTtcbiAgICAgIGlmICh0aGlzLl9wcm9kICE9PSBOTyAmJiBhLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHRoaXMuX2VyciA9IE5PO1xuICAgICAgICB0aGlzLl9zdG9wSUQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3N0b3BOb3coKSk7XG4gICAgICB9IGVsc2UgaWYgKGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuX3BydW5lQ3ljbGVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYWxsIHBhdGhzIHN0ZW1taW5nIGZyb20gYHRoaXNgIHN0cmVhbSBldmVudHVhbGx5IGVuZCBhdCBgdGhpc2BcbiAgLy8gc3RyZWFtLCB0aGVuIHdlIHJlbW92ZSB0aGUgc2luZ2xlIGxpc3RlbmVyIG9mIGB0aGlzYCBzdHJlYW0sIHRvXG4gIC8vIGZvcmNlIGl0IHRvIGVuZCBpdHMgZXhlY3V0aW9uIGFuZCBkaXNwb3NlIHJlc291cmNlcy4gVGhpcyBtZXRob2RcbiAgLy8gYXNzdW1lcyBhcyBhIHByZWNvbmRpdGlvbiB0aGF0IHRoaXMuX2lscyBoYXMganVzdCBvbmUgbGlzdGVuZXIuXG4gIF9wcnVuZUN5Y2xlcygpIHtcbiAgICBpZiAodGhpcy5faGFzTm9TaW5rcyh0aGlzLCBbXSkpIHRoaXMuX3JlbW92ZSh0aGlzLl9pbHNbMF0pO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHdoZXRoZXIgKnRoZXJlIGlzIG5vKiBwYXRoIHN0YXJ0aW5nIGZyb20gYHhgIHRoYXQgbGVhZHMgdG8gYW4gZW5kXG4gIC8vIGxpc3RlbmVyIChzaW5rKSBpbiB0aGUgc3RyZWFtIGdyYXBoLCBmb2xsb3dpbmcgZWRnZXMgQS0+QiB3aGVyZSBCIGlzIGFcbiAgLy8gbGlzdGVuZXIgb2YgQS4gVGhpcyBtZWFucyB0aGVzZSBwYXRocyBjb25zdGl0dXRlIGEgY3ljbGUgc29tZWhvdy4gSXMgZ2l2ZW5cbiAgLy8gYSB0cmFjZSBvZiBhbGwgdmlzaXRlZCBub2RlcyBzbyBmYXIuXG4gIF9oYXNOb1NpbmtzKHg6IEludGVybmFsTGlzdGVuZXI8YW55PiwgdHJhY2U6IEFycmF5PGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAodHJhY2UuaW5kZXhPZih4KSAhPT0gLTEpXG4gICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgaWYgKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0ID09PSB0aGlzKVxuICAgICAgICByZXR1cm4gdHJ1ZTsgZWxzZVxuICAgICAgICBpZiAoKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgJiYgKHggYXMgYW55IGFzIE91dFNlbmRlcjxhbnk+KS5vdXQgIT09IE5PKVxuICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIGFueSBhcyBPdXRTZW5kZXI8YW55Pikub3V0LCB0cmFjZS5jb25jYXQoeCkpOyBlbHNlXG4gICAgICAgICAgaWYgKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgTiA9ICh4IGFzIFN0cmVhbTxhbnk+KS5faWxzLmxlbmd0aDsgaSA8IE47IGkrKylcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLl9oYXNOb1NpbmtzKCh4IGFzIFN0cmVhbTxhbnk+KS5faWxzW2ldLCB0cmFjZS5jb25jYXQoeCkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGN0b3IoKTogdHlwZW9mIFN0cmVhbSB7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBNZW1vcnlTdHJlYW0gPyBNZW1vcnlTdHJlYW0gOiBTdHJlYW07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIExpc3RlbmVyIHRvIHRoZSBTdHJlYW0uXG4gICAqXG4gICAqIEBwYXJhbSB7TGlzdGVuZXJ9IGxpc3RlbmVyXG4gICAqL1xuICBhZGRMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiB2b2lkIHtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX24gPSBsaXN0ZW5lci5uZXh0IHx8IG5vb3A7XG4gICAgKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pLl9lID0gbGlzdGVuZXIuZXJyb3IgfHwgbm9vcDtcbiAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgIHRoaXMuX2FkZChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgTGlzdGVuZXIgZnJvbSB0aGUgU3RyZWFtLCBhc3N1bWluZyB0aGUgTGlzdGVuZXIgd2FzIGFkZGVkIHRvIGl0LlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgcmVtb3ZlTGlzdGVuZXIobGlzdGVuZXI6IFBhcnRpYWw8TGlzdGVuZXI8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlKGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBMaXN0ZW5lciB0byB0aGUgU3RyZWFtIHJldHVybmluZyBhIFN1YnNjcmlwdGlvbiB0byByZW1vdmUgdGhhdFxuICAgKiBsaXN0ZW5lci5cbiAgICpcbiAgICogQHBhcmFtIHtMaXN0ZW5lcn0gbGlzdGVuZXJcbiAgICogQHJldHVybnMge1N1YnNjcmlwdGlvbn1cbiAgICovXG4gIHN1YnNjcmliZShsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4pOiBTdWJzY3JpcHRpb24ge1xuICAgIHRoaXMuYWRkTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgIHJldHVybiBuZXcgU3RyZWFtU3ViPFQ+KHRoaXMsIGxpc3RlbmVyIGFzIEludGVybmFsTGlzdGVuZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBpbnRlcm9wIGJldHdlZW4gbW9zdC5qcyBhbmQgUnhKUyA1XG4gICAqXG4gICAqIEByZXR1cm5zIHtTdHJlYW19XG4gICAqL1xuICBbJCRvYnNlcnZhYmxlXSgpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgU3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZTxUPihwcm9kdWNlcj86IFByb2R1Y2VyPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICBpZiAocHJvZHVjZXIpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvZHVjZXIuc3RhcnQgIT09ICdmdW5jdGlvbidcbiAgICAgICAgfHwgdHlwZW9mIHByb2R1Y2VyLnN0b3AgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncHJvZHVjZXIgcmVxdWlyZXMgYm90aCBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMnKTtcbiAgICAgIGludGVybmFsaXplUHJvZHVjZXIocHJvZHVjZXIpOyAvLyBtdXRhdGVzIHRoZSBpbnB1dFxuICAgIH1cbiAgICByZXR1cm4gbmV3IFN0cmVhbShwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTWVtb3J5U3RyZWFtIGdpdmVuIGEgUHJvZHVjZXIuXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9kdWNlcn0gcHJvZHVjZXIgQW4gb3B0aW9uYWwgUHJvZHVjZXIgdGhhdCBkaWN0YXRlcyBob3cgdG9cbiAgICogc3RhcnQsIGdlbmVyYXRlIGV2ZW50cywgYW5kIHN0b3AgdGhlIFN0cmVhbS5cbiAgICogQHJldHVybiB7TWVtb3J5U3RyZWFtfVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVdpdGhNZW1vcnk8VD4ocHJvZHVjZXI/OiBQcm9kdWNlcjxUPik6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgaWYgKHByb2R1Y2VyKSBpbnRlcm5hbGl6ZVByb2R1Y2VyKHByb2R1Y2VyKTsgLy8gbXV0YXRlcyB0aGUgaW5wdXRcbiAgICByZXR1cm4gbmV3IE1lbW9yeVN0cmVhbTxUPihwcm9kdWNlciBhcyBJbnRlcm5hbFByb2R1Y2VyPFQ+ICYgUHJvZHVjZXI8VD4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBTdHJlYW0gdGhhdCBkb2VzIG5vdGhpbmcgd2hlbiBzdGFydGVkLiBJdCBuZXZlciBlbWl0cyBhbnkgZXZlbnQuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqICAgICAgICAgIG5ldmVyXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZmFjdG9yeSB0cnVlXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBuZXZlcjxUID0gYW55PigpOiBTdHJlYW08VD4ge1xuICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KHsgX3N0YXJ0OiBub29wLCBfc3RvcDogbm9vcCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgU3RyZWFtIHRoYXQgaW1tZWRpYXRlbHkgZW1pdHMgdGhlIFwiY29tcGxldGVcIiBub3RpZmljYXRpb24gd2hlblxuICAgKiBzdGFydGVkLCBhbmQgdGhhdCdzIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBlbXB0eVxuICAgKiAtfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZW1wdHk8VCA9IGFueT4oKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPih7XG4gICAgICBfc3RhcnQoaWw6IEludGVybmFsTGlzdGVuZXI8YW55PikgeyBpbC5fYygpOyB9LFxuICAgICAgX3N0b3A6IG5vb3AsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIGFuIFwiZXJyb3JcIiBub3RpZmljYXRpb24gd2l0aCB0aGVcbiAgICogdmFsdWUgeW91IHBhc3NlZCBhcyB0aGUgYGVycm9yYCBhcmd1bWVudCB3aGVuIHRoZSBzdHJlYW0gc3RhcnRzLCBhbmQgdGhhdCdzXG4gICAqIGl0LlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiB0aHJvdyhYKVxuICAgKiAtWFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0gZXJyb3IgVGhlIGVycm9yIGV2ZW50IHRvIGVtaXQgb24gdGhlIGNyZWF0ZWQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgdGhyb3coZXJyb3I6IGFueSk6IFN0cmVhbTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxhbnk+KHtcbiAgICAgIF9zdGFydChpbDogSW50ZXJuYWxMaXN0ZW5lcjxhbnk+KSB7IGlsLl9lKGVycm9yKTsgfSxcbiAgICAgIF9zdG9wOiBub29wLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gZnJvbSBhbiBBcnJheSwgUHJvbWlzZSwgb3IgYW4gT2JzZXJ2YWJsZS5cbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fFByb21pc2VMaWtlfE9ic2VydmFibGV9IGlucHV0IFRoZSBpbnB1dCB0byBtYWtlIGEgc3RyZWFtIGZyb20uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tPFQ+KGlucHV0OiBQcm9taXNlTGlrZTxUPiB8IFN0cmVhbTxUPiB8IEFycmF5PFQ+IHwgT2JzZXJ2YWJsZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dFskJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nKVxuICAgICAgcmV0dXJuIFN0cmVhbS5mcm9tT2JzZXJ2YWJsZTxUPihpbnB1dCBhcyBPYnNlcnZhYmxlPFQ+KTsgZWxzZVxuICAgICAgaWYgKHR5cGVvZiAoaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pLnRoZW4gPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBTdHJlYW0uZnJvbVByb21pc2U8VD4oaW5wdXQgYXMgUHJvbWlzZUxpa2U8VD4pOyBlbHNlXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSlcbiAgICAgICAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpbnB1dCk7XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUeXBlIG9mIGlucHV0IHRvIGZyb20oKSBtdXN0IGJlIGFuIEFycmF5LCBQcm9taXNlLCBvciBPYnNlcnZhYmxlYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0cmVhbSB0aGF0IGltbWVkaWF0ZWx5IGVtaXRzIHRoZSBhcmd1bWVudHMgdGhhdCB5b3UgZ2l2ZSB0b1xuICAgKiAqb2YqLCB0aGVuIGNvbXBsZXRlcy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogb2YoMSwyLDMpXG4gICAqIDEyM3xcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIGEgVGhlIGZpcnN0IHZhbHVlIHlvdSB3YW50IHRvIGVtaXQgYXMgYW4gZXZlbnQgb24gdGhlIHN0cmVhbS5cbiAgICogQHBhcmFtIGIgVGhlIHNlY29uZCB2YWx1ZSB5b3Ugd2FudCB0byBlbWl0IGFzIGFuIGV2ZW50IG9uIHRoZSBzdHJlYW0uIE9uZVxuICAgKiBvciBtb3JlIG9mIHRoZXNlIHZhbHVlcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgb2Y8VD4oLi4uaXRlbXM6IEFycmF5PFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gU3RyZWFtLmZyb21BcnJheTxUPihpdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgdG8gYSBzdHJlYW0uIFRoZSByZXR1cm5lZCBzdHJlYW0gd2lsbCBlbWl0IHN5bmNocm9ub3VzbHlcbiAgICogYWxsIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXksIGFuZCB0aGVuIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tQXJyYXkoWzEsMiwzXSlcbiAgICogMTIzfFxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbUFycmF5PFQ+KGFycmF5OiBBcnJheTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21BcnJheTxUPihhcnJheSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgcHJvbWlzZSB0byBhIHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSB3aWxsIGVtaXQgdGhlIHJlc29sdmVkXG4gICAqIHZhbHVlIG9mIHRoZSBwcm9taXNlLCBhbmQgdGhlbiBjb21wbGV0ZS4gSG93ZXZlciwgaWYgdGhlIHByb21pc2UgaXNcbiAgICogcmVqZWN0ZWQsIHRoZSBzdHJlYW0gd2lsbCBlbWl0IHRoZSBjb3JyZXNwb25kaW5nIGVycm9yLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBmcm9tUHJvbWlzZSggLS0tLTQyIClcbiAgICogLS0tLS0tLS0tLS0tLS0tLS00MnxcbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtQcm9taXNlTGlrZX0gcHJvbWlzZSBUaGUgcHJvbWlzZSB0byBiZSBjb252ZXJ0ZWQgYXMgYSBzdHJlYW0uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUHJvbWlzZTxUPihwcm9taXNlOiBQcm9taXNlTGlrZTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IEZyb21Qcm9taXNlPFQ+KHByb21pc2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBPYnNlcnZhYmxlIGludG8gYSBTdHJlYW0uXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHthbnl9IG9ic2VydmFibGUgVGhlIG9ic2VydmFibGUgdG8gYmUgY29udmVydGVkIGFzIGEgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgZnJvbU9ic2VydmFibGU8VD4ob2JzOiB7IHN1YnNjcmliZTogYW55IH0pOiBTdHJlYW08VD4ge1xuICAgIGlmICgob2JzIGFzIFN0cmVhbTxUPikuZW5kV2hlbiAhPT0gdW5kZWZpbmVkKSByZXR1cm4gb2JzIGFzIFN0cmVhbTxUPjtcbiAgICBjb25zdCBvID0gdHlwZW9mIG9ic1skJG9ic2VydmFibGVdID09PSAnZnVuY3Rpb24nID8gb2JzWyQkb2JzZXJ2YWJsZV0oKSA6IG9icztcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRnJvbU9ic2VydmFibGUobykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJlYW0gdGhhdCBwZXJpb2RpY2FsbHkgZW1pdHMgaW5jcmVtZW50YWwgbnVtYmVycywgZXZlcnlcbiAgICogYHBlcmlvZGAgbWlsbGlzZWNvbmRzLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAgICAgcGVyaW9kaWMoMTAwMClcbiAgICogLS0tMC0tLTEtLS0yLS0tMy0tLTQtLS0uLi5cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IHBlcmlvZCBUaGUgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIHVzZSBhcyBhIHJhdGUgb2ZcbiAgICogZW1pc3Npb24uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBwZXJpb2RpYyhwZXJpb2Q6IG51bWJlcik6IFN0cmVhbTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxudW1iZXI+KG5ldyBQZXJpb2RpYyhwZXJpb2QpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCbGVuZHMgbXVsdGlwbGUgc3RyZWFtcyB0b2dldGhlciwgZW1pdHRpbmcgZXZlbnRzIGZyb20gYWxsIG9mIHRoZW1cbiAgICogY29uY3VycmVudGx5LlxuICAgKlxuICAgKiAqbWVyZ2UqIHRha2VzIG11bHRpcGxlIHN0cmVhbXMgYXMgYXJndW1lbnRzLCBhbmQgY3JlYXRlcyBhIHN0cmVhbSB0aGF0XG4gICAqIGJlaGF2ZXMgbGlrZSBlYWNoIG9mIHRoZSBhcmd1bWVudCBzdHJlYW1zLCBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLS0tLTQtLS1cbiAgICogLS0tLWEtLS0tLWItLS0tYy0tLWQtLS0tLS1cbiAgICogICAgICAgICAgICBtZXJnZVxuICAgKiAtLTEtYS0tMi0tYi0tMy1jLS0tZC0tNC0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQGZhY3RvcnkgdHJ1ZVxuICAgKiBAcGFyYW0ge1N0cmVhbX0gc3RyZWFtMSBBIHN0cmVhbSB0byBtZXJnZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIG1lcmdlIHRvZ2V0aGVyIHdpdGggb3RoZXIgc3RyZWFtcy4gVHdvXG4gICAqIG9yIG1vcmUgc3RyZWFtcyBtYXkgYmUgZ2l2ZW4gYXMgYXJndW1lbnRzLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBzdGF0aWMgbWVyZ2U6IE1lcmdlU2lnbmF0dXJlID0gZnVuY3Rpb24gbWVyZ2UoLi4uc3RyZWFtczogQXJyYXk8U3RyZWFtPGFueT4+KSB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08YW55PihuZXcgTWVyZ2Uoc3RyZWFtcykpO1xuICB9IGFzIE1lcmdlU2lnbmF0dXJlO1xuXG4gIC8qKlxuICAgKiBDb21iaW5lcyBtdWx0aXBsZSBpbnB1dCBzdHJlYW1zIHRvZ2V0aGVyIHRvIHJldHVybiBhIHN0cmVhbSB3aG9zZSBldmVudHNcbiAgICogYXJlIGFycmF5cyB0aGF0IGNvbGxlY3QgdGhlIGxhdGVzdCBldmVudHMgZnJvbSBlYWNoIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbWJpbmUqIGludGVybmFsbHkgcmVtZW1iZXJzIHRoZSBtb3N0IHJlY2VudCBldmVudCBmcm9tIGVhY2ggb2YgdGhlIGlucHV0XG4gICAqIHN0cmVhbXMuIFdoZW4gYW55IG9mIHRoZSBpbnB1dCBzdHJlYW1zIGVtaXRzIGFuIGV2ZW50LCB0aGF0IGV2ZW50IHRvZ2V0aGVyXG4gICAqIHdpdGggYWxsIHRoZSBvdGhlciBzYXZlZCBldmVudHMgYXJlIGNvbWJpbmVkIGludG8gYW4gYXJyYXkuIFRoYXQgYXJyYXkgd2lsbFxuICAgKiBiZSBlbWl0dGVkIG9uIHRoZSBvdXRwdXQgc3RyZWFtLiBJdCdzIGVzc2VudGlhbGx5IGEgd2F5IG9mIGpvaW5pbmcgdG9nZXRoZXJcbiAgICogdGhlIGV2ZW50cyBmcm9tIG11bHRpcGxlIHN0cmVhbXMuXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLS0yLS0tLS0zLS0tLS0tLS00LS0tXG4gICAqIC0tLS1hLS0tLS1iLS0tLS1jLS1kLS0tLS0tXG4gICAqICAgICAgICAgIGNvbWJpbmVcbiAgICogLS0tLTFhLTJhLTJiLTNiLTNjLTNkLTRkLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBmYWN0b3J5IHRydWVcbiAgICogQHBhcmFtIHtTdHJlYW19IHN0cmVhbTEgQSBzdHJlYW0gdG8gY29tYmluZSB0b2dldGhlciB3aXRoIG90aGVyIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7U3RyZWFtfSBzdHJlYW0yIEEgc3RyZWFtIHRvIGNvbWJpbmUgdG9nZXRoZXIgd2l0aCBvdGhlciBzdHJlYW1zLlxuICAgKiBNdWx0aXBsZSBzdHJlYW1zLCBub3QganVzdCB0d28sIG1heSBiZSBnaXZlbiBhcyBhcmd1bWVudHMuXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIHN0YXRpYyBjb21iaW5lOiBDb21iaW5lU2lnbmF0dXJlID0gZnVuY3Rpb24gY29tYmluZSguLi5zdHJlYW1zOiBBcnJheTxTdHJlYW08YW55Pj4pIHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxBcnJheTxhbnk+PihuZXcgQ29tYmluZTxhbnk+KHN0cmVhbXMpKTtcbiAgfSBhcyBDb21iaW5lU2lnbmF0dXJlO1xuXG4gIHByb3RlY3RlZCBfbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHwgTWVtb3J5U3RyZWFtPFU+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VT4obmV3IE1hcE9wPFQsIFU+KHByb2plY3QsIHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIHRocm91Z2ggYSBgcHJvamVjdGAgZnVuY3Rpb24sXG4gICAqIHRvIGdldCBhIFN0cmVhbSB0aGF0IGVtaXRzIHRob3NlIHRyYW5zZm9ybWVkIGV2ZW50cy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMy0tNS0tLS0tNy0tLS0tLVxuICAgKiAgICBtYXAoaSA9PiBpICogMTApXG4gICAqIC0tMTAtLTMwLTUwLS0tLTcwLS0tLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByb2plY3QgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gVWAgdGhhdCB0YWtlcyBldmVudFxuICAgKiBgdGAgb2YgdHlwZSBgVGAgZnJvbSB0aGUgaW5wdXQgU3RyZWFtIGFuZCBwcm9kdWNlcyBhbiBldmVudCBvZiB0eXBlIGBVYCwgdG9cbiAgICogYmUgZW1pdHRlZCBvbiB0aGUgb3V0cHV0IFN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgbWFwPFU+KHByb2plY3Q6ICh0OiBUKSA9PiBVKTogU3RyZWFtPFU+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwKHByb2plY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgbGlrZSBgbWFwYCwgYnV0IHRyYW5zZm9ybXMgZWFjaCBpbnB1dCBldmVudCB0byBhbHdheXMgdGhlIHNhbWVcbiAgICogY29uc3RhbnQgdmFsdWUgb24gdGhlIG91dHB1dCBTdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tMS0tLTMtLTUtLS0tLTctLS0tLVxuICAgKiAgICAgICBtYXBUbygxMClcbiAgICogLS0xMC0tMTAtMTAtLS0tMTAtLS0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gcHJvamVjdGVkVmFsdWUgQSB2YWx1ZSB0byBlbWl0IG9uIHRoZSBvdXRwdXQgU3RyZWFtIHdoZW5ldmVyIHRoZVxuICAgKiBpbnB1dCBTdHJlYW0gZW1pdHMgYW55IHZhbHVlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IFN0cmVhbTxVPiB7XG4gICAgY29uc3QgcyA9IHRoaXMubWFwKCgpID0+IHByb2plY3RlZFZhbHVlKTtcbiAgICBjb25zdCBvcDogT3BlcmF0b3I8VCwgVT4gPSBzLl9wcm9kIGFzIE9wZXJhdG9yPFQsIFU+O1xuICAgIG9wLnR5cGUgPSAnbWFwVG8nO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgZmlsdGVyPFMgZXh0ZW5kcyBUPihwYXNzZXM6ICh0OiBUKSA9PiB0IGlzIFMpOiBTdHJlYW08Uz47XG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogT25seSBhbGxvd3MgZXZlbnRzIHRoYXQgcGFzcyB0aGUgdGVzdCBnaXZlbiBieSB0aGUgYHBhc3Nlc2AgYXJndW1lbnQuXG4gICAqXG4gICAqIEVhY2ggZXZlbnQgZnJvbSB0aGUgaW5wdXQgc3RyZWFtIGlzIGdpdmVuIHRvIHRoZSBgcGFzc2VzYCBmdW5jdGlvbi4gSWYgdGhlXG4gICAqIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgLCB0aGUgZXZlbnQgaXMgZm9yd2FyZGVkIHRvIHRoZSBvdXRwdXQgc3RyZWFtLFxuICAgKiBvdGhlcndpc2UgaXQgaXMgaWdub3JlZCBhbmQgbm90IGZvcndhcmRlZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tMy0tLS0tNC0tLS0tNS0tLTYtLTctOC0tXG4gICAqICAgICBmaWx0ZXIoaSA9PiBpICUgMiA9PT0gMClcbiAgICogLS0tLS0tMi0tLS0tLS0tNC0tLS0tLS0tLTYtLS0tOC0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXNzZXMgQSBmdW5jdGlvbiBvZiB0eXBlIGAodDogVCkgPT4gYm9vbGVhbmAgdGhhdCB0YWtlc1xuICAgKiBhbiBldmVudCBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gYW5kIGNoZWNrcyBpZiBpdCBwYXNzZXMsIGJ5IHJldHVybmluZyBhXG4gICAqIGJvb2xlYW4uXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGZpbHRlcihwYXNzZXM6ICh0OiBUKSA9PiBib29sZWFuKTogU3RyZWFtPFQ+IHtcbiAgICBjb25zdCBwID0gdGhpcy5fcHJvZDtcbiAgICBpZiAocCBpbnN0YW5jZW9mIEZpbHRlcilcbiAgICAgIHJldHVybiBuZXcgU3RyZWFtPFQ+KG5ldyBGaWx0ZXI8VD4oXG4gICAgICAgIGFuZCgocCBhcyBGaWx0ZXI8VD4pLmYsIHBhc3NlcyksXG4gICAgICAgIChwIGFzIEZpbHRlcjxUPikuaW5zXG4gICAgICApKTtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgRmlsdGVyPFQ+KHBhc3NlcywgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIExldHMgdGhlIGZpcnN0IGBhbW91bnRgIG1hbnkgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSBwYXNzIHRvIHRoZVxuICAgKiBvdXRwdXQgc3RyZWFtLCB0aGVuIG1ha2VzIHRoZSBvdXRwdXQgc3RyZWFtIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS0tLWQtLS1lLS1cbiAgICogICAgdGFrZSgzKVxuICAgKiAtLWEtLS1iLS1jfFxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gYWxsb3cgZnJvbSB0aGUgaW5wdXQgc3RyZWFtXG4gICAqIGJlZm9yZSBjb21wbGV0aW5nIHRoZSBvdXRwdXQgc3RyZWFtLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICB0YWtlKGFtb3VudDogbnVtYmVyKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFRha2U8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogSWdub3JlcyB0aGUgZmlyc3QgYGFtb3VudGAgbWFueSBldmVudHMgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCBhbmQgdGhlblxuICAgKiBhZnRlciB0aGF0IHN0YXJ0cyBmb3J3YXJkaW5nIGV2ZW50cyBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gdG8gdGhlIG91dHB1dFxuICAgKiBzdHJlYW0uXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tYS0tLWItLWMtLS0tZC0tLWUtLVxuICAgKiAgICAgICBkcm9wKDMpXG4gICAqIC0tLS0tLS0tLS0tLS0tZC0tLWUtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBIb3cgbWFueSBldmVudHMgdG8gaWdub3JlIGZyb20gdGhlIGlucHV0IHN0cmVhbVxuICAgKiBiZWZvcmUgZm9yd2FyZGluZyBhbGwgZXZlbnRzIGZyb20gdGhlIGlucHV0IHN0cmVhbSB0byB0aGUgb3V0cHV0IHN0cmVhbS5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgZHJvcChhbW91bnQ6IG51bWJlcik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IERyb3A8VD4oYW1vdW50LCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgaW5wdXQgc3RyZWFtIGNvbXBsZXRlcywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBlbWl0IHRoZSBsYXN0IGV2ZW50XG4gICAqIGVtaXR0ZWQgYnkgdGhlIGlucHV0IHN0cmVhbSwgYW5kIHRoZW4gd2lsbCBhbHNvIGNvbXBsZXRlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLWEtLS1iLS1jLS1kLS0tLXxcbiAgICogICAgICAgbGFzdCgpXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tZHxcbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmVhbX1cbiAgICovXG4gIGxhc3QoKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxUPihuZXcgTGFzdDxUPih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGVuZHMgdGhlIGdpdmVuIGBpbml0aWFsYCB2YWx1ZSB0byB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGVtaXR0ZWQgYnkgdGhlXG4gICAqIGlucHV0IHN0cmVhbS4gVGhlIHJldHVybmVkIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXNcbiAgICogYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLS1cbiAgICogICBzdGFydFdpdGgoMClcbiAgICogMC0tMS0tLTItLS0tLTMtLS1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBpbml0aWFsIFRoZSB2YWx1ZSBvciBldmVudCB0byBwcmVwZW5kLlxuICAgKiBAcmV0dXJuIHtNZW1vcnlTdHJlYW19XG4gICAqL1xuICBzdGFydFdpdGgoaW5pdGlhbDogVCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFN0YXJ0V2l0aDxUPih0aGlzLCBpbml0aWFsKSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyBhbm90aGVyIHN0cmVhbSB0byBkZXRlcm1pbmUgd2hlbiB0byBjb21wbGV0ZSB0aGUgY3VycmVudCBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gdGhlIGdpdmVuIGBvdGhlcmAgc3RyZWFtIGVtaXRzIGFuIGV2ZW50IG9yIGNvbXBsZXRlcywgdGhlIG91dHB1dFxuICAgKiBzdHJlYW0gd2lsbCBjb21wbGV0ZS4gQmVmb3JlIHRoYXQgaGFwcGVucywgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCBiZWhhdmVzXG4gICAqIGxpa2UgdGhlIGlucHV0IHN0cmVhbS5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLS0tNS0tLS02LS0tXG4gICAqICAgZW5kV2hlbiggLS0tLS0tLS1hLS1iLS18IClcbiAgICogLS0tMS0tLTItLS0tLTMtLTQtLXxcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBTb21lIG90aGVyIHN0cmVhbSB0aGF0IGlzIHVzZWQgdG8ga25vdyB3aGVuIHNob3VsZCB0aGUgb3V0cHV0XG4gICAqIHN0cmVhbSBvZiB0aGlzIG9wZXJhdG9yIGNvbXBsZXRlLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBlbmRXaGVuKG90aGVyOiBTdHJlYW08YW55Pik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyAodGhpcy5jdG9yKCkpPFQ+KG5ldyBFbmRXaGVuPFQ+KG90aGVyLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJGb2xkc1wiIHRoZSBzdHJlYW0gb250byBpdHNlbGYuXG4gICAqXG4gICAqIENvbWJpbmVzIGV2ZW50cyBmcm9tIHRoZSBwYXN0IHRocm91Z2hvdXRcbiAgICogdGhlIGVudGlyZSBleGVjdXRpb24gb2YgdGhlIGlucHV0IHN0cmVhbSwgYWxsb3dpbmcgeW91IHRvIGFjY3VtdWxhdGUgdGhlbVxuICAgKiB0b2dldGhlci4gSXQncyBlc3NlbnRpYWxseSBsaWtlIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYC4gVGhlIHJldHVybmVkXG4gICAqIHN0cmVhbSBpcyBhIE1lbW9yeVN0cmVhbSwgd2hpY2ggbWVhbnMgaXQgaXMgYWxyZWFkeSBgcmVtZW1iZXIoKWAnZC5cbiAgICpcbiAgICogVGhlIG91dHB1dCBzdHJlYW0gc3RhcnRzIGJ5IGVtaXR0aW5nIHRoZSBgc2VlZGAgd2hpY2ggeW91IGdpdmUgYXMgYXJndW1lbnQuXG4gICAqIFRoZW4sIHdoZW4gYW4gZXZlbnQgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpdCBpcyBjb21iaW5lZCB3aXRoIHRoYXRcbiAgICogc2VlZCB2YWx1ZSB0aHJvdWdoIHRoZSBgYWNjdW11bGF0ZWAgZnVuY3Rpb24sIGFuZCB0aGUgb3V0cHV0IHZhbHVlIGlzXG4gICAqIGVtaXR0ZWQgb24gdGhlIG91dHB1dCBzdHJlYW0uIGBmb2xkYCByZW1lbWJlcnMgdGhhdCBvdXRwdXQgdmFsdWUgYXMgYGFjY2BcbiAgICogKFwiYWNjdW11bGF0b3JcIiksIGFuZCB0aGVuIHdoZW4gYSBuZXcgaW5wdXQgZXZlbnQgYHRgIGhhcHBlbnMsIGBhY2NgIHdpbGwgYmVcbiAgICogY29tYmluZWQgd2l0aCB0aGF0IHRvIHByb2R1Y2UgdGhlIG5ldyBgYWNjYCBhbmQgc28gZm9ydGguXG4gICAqXG4gICAqIE1hcmJsZSBkaWFncmFtOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIC0tLS0tLTEtLS0tLTEtLTItLS0tMS0tLS0xLS0tLS0tXG4gICAqICAgZm9sZCgoYWNjLCB4KSA9PiBhY2MgKyB4LCAzKVxuICAgKiAzLS0tLS00LS0tLS01LS03LS0tLTgtLS0tOS0tLS0tLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gYWNjdW11bGF0ZSBBIGZ1bmN0aW9uIG9mIHR5cGUgYChhY2M6IFIsIHQ6IFQpID0+IFJgIHRoYXRcbiAgICogdGFrZXMgdGhlIHByZXZpb3VzIGFjY3VtdWxhdGVkIHZhbHVlIGBhY2NgIGFuZCB0aGUgaW5jb21pbmcgZXZlbnQgZnJvbSB0aGVcbiAgICogaW5wdXQgc3RyZWFtIGFuZCBwcm9kdWNlcyB0aGUgbmV3IGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKiBAcGFyYW0gc2VlZCBUaGUgaW5pdGlhbCBhY2N1bXVsYXRlZCB2YWx1ZSwgb2YgdHlwZSBgUmAuXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIGZvbGQ8Uj4oYWNjdW11bGF0ZTogKGFjYzogUiwgdDogVCkgPT4gUiwgc2VlZDogUik6IE1lbW9yeVN0cmVhbTxSPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08Uj4obmV3IEZvbGQ8VCwgUj4oYWNjdW11bGF0ZSwgc2VlZCwgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFuIGVycm9yIHdpdGggYW5vdGhlciBzdHJlYW0uXG4gICAqXG4gICAqIFdoZW4gKGFuZCBpZikgYW4gZXJyb3IgaGFwcGVucyBvbiB0aGUgaW5wdXQgc3RyZWFtLCBpbnN0ZWFkIG9mIGZvcndhcmRpbmdcbiAgICogdGhhdCBlcnJvciB0byB0aGUgb3V0cHV0IHN0cmVhbSwgKnJlcGxhY2VFcnJvciogd2lsbCBjYWxsIHRoZSBgcmVwbGFjZWBcbiAgICogZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgc3RyZWFtIHRoYXQgdGhlIG91dHB1dCBzdHJlYW0gd2lsbCByZXBsaWNhdGUuXG4gICAqIEFuZCwgaW4gY2FzZSB0aGF0IG5ldyBzdHJlYW0gYWxzbyBlbWl0cyBhbiBlcnJvciwgYHJlcGxhY2VgIHdpbGwgYmUgY2FsbGVkXG4gICAqIGFnYWluIHRvIGdldCBhbm90aGVyIHN0cmVhbSB0byBzdGFydCByZXBsaWNhdGluZy5cbiAgICpcbiAgICogTWFyYmxlIGRpYWdyYW06XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICogLS0xLS0tMi0tLS0tMy0tNC0tLS0tWFxuICAgKiAgIHJlcGxhY2VFcnJvciggKCkgPT4gLS0xMC0tfCApXG4gICAqIC0tMS0tLTItLS0tLTMtLTQtLS0tLS0tLTEwLS18XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXBsYWNlIEEgZnVuY3Rpb24gb2YgdHlwZSBgKGVycikgPT4gU3RyZWFtYCB0aGF0IHRha2VzXG4gICAqIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkIG9uIHRoZSBpbnB1dCBzdHJlYW0gb3Igb24gdGhlIHByZXZpb3VzIHJlcGxhY2VtZW50XG4gICAqIHN0cmVhbSBhbmQgcmV0dXJucyBhIG5ldyBzdHJlYW0uIFRoZSBvdXRwdXQgc3RyZWFtIHdpbGwgYmVoYXZlIGxpa2UgdGhlXG4gICAqIHN0cmVhbSB0aGF0IHRoaXMgZnVuY3Rpb24gcmV0dXJucy5cbiAgICogQHJldHVybiB7U3RyZWFtfVxuICAgKi9cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IFJlcGxhY2VFcnJvcjxUPihyZXBsYWNlLCB0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhdHRlbnMgYSBcInN0cmVhbSBvZiBzdHJlYW1zXCIsIGhhbmRsaW5nIG9ubHkgb25lIG5lc3RlZCBzdHJlYW0gYXQgYSB0aW1lXG4gICAqIChubyBjb25jdXJyZW5jeSkuXG4gICAqXG4gICAqIElmIHRoZSBpbnB1dCBzdHJlYW0gaXMgYSBzdHJlYW0gdGhhdCBlbWl0cyBzdHJlYW1zLCB0aGVuIHRoaXMgb3BlcmF0b3Igd2lsbFxuICAgKiByZXR1cm4gYW4gb3V0cHV0IHN0cmVhbSB3aGljaCBpcyBhIGZsYXQgc3RyZWFtOiBlbWl0cyByZWd1bGFyIGV2ZW50cy4gVGhlXG4gICAqIGZsYXR0ZW5pbmcgaGFwcGVucyB3aXRob3V0IGNvbmN1cnJlbmN5LiBJdCB3b3JrcyBsaWtlIHRoaXM6IHdoZW4gdGhlIGlucHV0XG4gICAqIHN0cmVhbSBlbWl0cyBhIG5lc3RlZCBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIHN0YXJ0IGltaXRhdGluZyB0aGF0IG5lc3RlZFxuICAgKiBvbmUuIEhvd2V2ZXIsIGFzIHNvb24gYXMgdGhlIG5leHQgbmVzdGVkIHN0cmVhbSBpcyBlbWl0dGVkIG9uIHRoZSBpbnB1dFxuICAgKiBzdHJlYW0sICpmbGF0dGVuKiB3aWxsIGZvcmdldCB0aGUgcHJldmlvdXMgbmVzdGVkIG9uZSBpdCB3YXMgaW1pdGF0aW5nLCBhbmRcbiAgICogd2lsbCBzdGFydCBpbWl0YXRpbmcgdGhlIG5ldyBuZXN0ZWQgb25lLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS1cbiAgICogICBcXCAgICAgICAgXFxcbiAgICogICAgXFwgICAgICAgLS0tLTEtLS0tMi0tLTMtLVxuICAgKiAgICAtLWEtLWItLS0tYy0tLS1kLS0tLS0tLS1cbiAgICogICAgICAgICAgIGZsYXR0ZW5cbiAgICogLS0tLS1hLS1iLS0tLS0tMS0tLS0yLS0tMy0tXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBmbGF0dGVuPFI+KHRoaXM6IFN0cmVhbTxTdHJlYW08Uj4gfCBNZW1vcnlTdHJlYW08Uj4+KTogU3RyZWFtPFI+IHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbTxSPihuZXcgRmxhdHRlbih0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VzIHRoZSBpbnB1dCBzdHJlYW0gdG8gYSBjdXN0b20gb3BlcmF0b3IsIHRvIHByb2R1Y2UgYW4gb3V0cHV0IHN0cmVhbS5cbiAgICpcbiAgICogKmNvbXBvc2UqIGlzIGEgaGFuZHkgd2F5IG9mIHVzaW5nIGFuIGV4aXN0aW5nIGZ1bmN0aW9uIGluIGEgY2hhaW5lZCBzdHlsZS5cbiAgICogSW5zdGVhZCBvZiB3cml0aW5nIGBvdXRTdHJlYW0gPSBmKGluU3RyZWFtKWAgeW91IGNhbiB3cml0ZVxuICAgKiBgb3V0U3RyZWFtID0gaW5TdHJlYW0uY29tcG9zZShmKWAuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wZXJhdG9yIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHN0cmVhbSBhcyBpbnB1dCBhbmRcbiAgICogcmV0dXJucyBhIHN0cmVhbSBhcyB3ZWxsLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBjb21wb3NlPFU+KG9wZXJhdG9yOiAoc3RyZWFtOiBTdHJlYW08VD4pID0+IFUpOiBVIHtcbiAgICByZXR1cm4gb3BlcmF0b3IodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sIGJ1dCBhbHNvXG4gICAqIHJlbWVtYmVycyB0aGUgbW9zdCByZWNlbnQgZXZlbnQgdGhhdCBoYXBwZW5zIG9uIHRoZSBpbnB1dCBzdHJlYW0sIHNvIHRoYXQgYVxuICAgKiBuZXdseSBhZGRlZCBsaXN0ZW5lciB3aWxsIGltbWVkaWF0ZWx5IHJlY2VpdmUgdGhhdCBtZW1vcmlzZWQgZXZlbnQuXG4gICAqXG4gICAqIEByZXR1cm4ge01lbW9yeVN0cmVhbX1cbiAgICovXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBNZW1vcnlTdHJlYW08VD4obmV3IFJlbWVtYmVyPFQ+KHRoaXMpKTtcbiAgfVxuXG4gIGRlYnVnKCk6IFN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogc3RyaW5nKTogU3RyZWFtPFQ+O1xuICBkZWJ1ZyhsYWJlbE9yU3B5OiAodDogVCkgPT4gYW55KTogU3RyZWFtPFQ+O1xuICAvKipcbiAgICogUmV0dXJucyBhbiBvdXRwdXQgc3RyZWFtIHRoYXQgaWRlbnRpY2FsbHkgYmVoYXZlcyBsaWtlIHRoZSBpbnB1dCBzdHJlYW0sXG4gICAqIGJ1dCBhbHNvIHJ1bnMgYSBgc3B5YCBmdW5jdGlvbiBmb3IgZWFjaCBldmVudCwgdG8gaGVscCB5b3UgZGVidWcgeW91ciBhcHAuXG4gICAqXG4gICAqICpkZWJ1ZyogdGFrZXMgYSBgc3B5YCBmdW5jdGlvbiBhcyBhcmd1bWVudCwgYW5kIHJ1bnMgdGhhdCBmb3IgZWFjaCBldmVudFxuICAgKiBoYXBwZW5pbmcgb24gdGhlIGlucHV0IHN0cmVhbS4gSWYgeW91IGRvbid0IHByb3ZpZGUgdGhlIGBzcHlgIGFyZ3VtZW50LFxuICAgKiB0aGVuICpkZWJ1Zyogd2lsbCBqdXN0IGBjb25zb2xlLmxvZ2AgZWFjaCBldmVudC4gVGhpcyBoZWxwcyB5b3UgdG9cbiAgICogdW5kZXJzdGFuZCB0aGUgZmxvdyBvZiBldmVudHMgdGhyb3VnaCBzb21lIG9wZXJhdG9yIGNoYWluLlxuICAgKlxuICAgKiBQbGVhc2Ugbm90ZSB0aGF0IGlmIHRoZSBvdXRwdXQgc3RyZWFtIGhhcyBubyBsaXN0ZW5lcnMsIHRoZW4gaXQgd2lsbCBub3RcbiAgICogc3RhcnQsIHdoaWNoIG1lYW5zIGBzcHlgIHdpbGwgbmV2ZXIgcnVuIGJlY2F1c2Ugbm8gYWN0dWFsIGV2ZW50IGhhcHBlbnMgaW5cbiAgICogdGhhdCBjYXNlLlxuICAgKlxuICAgKiBNYXJibGUgZGlhZ3JhbTpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiAtLTEtLS0tMi0tLS0tMy0tLS0tNC0tXG4gICAqICAgICAgICAgZGVidWdcbiAgICogLS0xLS0tLTItLS0tLTMtLS0tLTQtLVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbGFiZWxPclNweSBBIHN0cmluZyB0byB1c2UgYXMgdGhlIGxhYmVsIHdoZW4gcHJpbnRpbmdcbiAgICogZGVidWcgaW5mb3JtYXRpb24gb24gdGhlIGNvbnNvbGUsIG9yIGEgJ3NweScgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBldmVudFxuICAgKiBhcyBhcmd1bWVudCwgYW5kIGRvZXMgbm90IG5lZWQgdG8gcmV0dXJuIGFueXRoaW5nLlxuICAgKiBAcmV0dXJuIHtTdHJlYW19XG4gICAqL1xuICBkZWJ1ZyhsYWJlbE9yU3B5Pzogc3RyaW5nIHwgKCh0OiBUKSA9PiBhbnkpKTogU3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmN0b3IoKSk8VD4obmV3IERlYnVnPFQ+KHRoaXMsIGxhYmVsT3JTcHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAqaW1pdGF0ZSogY2hhbmdlcyB0aGlzIGN1cnJlbnQgU3RyZWFtIHRvIGVtaXQgdGhlIHNhbWUgZXZlbnRzIHRoYXQgdGhlXG4gICAqIGBvdGhlcmAgZ2l2ZW4gU3RyZWFtIGRvZXMuIFRoaXMgbWV0aG9kIHJldHVybnMgbm90aGluZy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZXhpc3RzIHRvIGFsbG93IG9uZSB0aGluZzogKipjaXJjdWxhciBkZXBlbmRlbmN5IG9mIHN0cmVhbXMqKi5cbiAgICogRm9yIGluc3RhbmNlLCBsZXQncyBpbWFnaW5lIHRoYXQgZm9yIHNvbWUgcmVhc29uIHlvdSBuZWVkIHRvIGNyZWF0ZSBhXG4gICAqIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2hlcmUgc3RyZWFtIGBmaXJzdCRgIGRlcGVuZHMgb24gc3RyZWFtIGBzZWNvbmQkYFxuICAgKiB3aGljaCBpbiB0dXJuIGRlcGVuZHMgb24gYGZpcnN0JGA6XG4gICAqXG4gICAqIDwhLS0gc2tpcC1leGFtcGxlIC0tPlxuICAgKiBgYGBqc1xuICAgKiBpbXBvcnQgZGVsYXkgZnJvbSAneHN0cmVhbS9leHRyYS9kZWxheSdcbiAgICpcbiAgICogdmFyIGZpcnN0JCA9IHNlY29uZCQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBIb3dldmVyLCB0aGF0IGlzIGludmFsaWQgSmF2YVNjcmlwdCwgYmVjYXVzZSBgc2Vjb25kJGAgaXMgdW5kZWZpbmVkXG4gICAqIG9uIHRoZSBmaXJzdCBsaW5lLiBUaGlzIGlzIGhvdyAqaW1pdGF0ZSogY2FuIGhlbHAgc29sdmUgaXQ6XG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGltcG9ydCBkZWxheSBmcm9tICd4c3RyZWFtL2V4dHJhL2RlbGF5J1xuICAgKlxuICAgKiB2YXIgc2Vjb25kUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIHZhciBmaXJzdCQgPSBzZWNvbmRQcm94eSQubWFwKHggPT4geCAqIDEwKS50YWtlKDMpO1xuICAgKiB2YXIgc2Vjb25kJCA9IGZpcnN0JC5tYXAoeCA9PiB4ICsgMSkuc3RhcnRXaXRoKDEpLmNvbXBvc2UoZGVsYXkoMTAwKSk7XG4gICAqIHNlY29uZFByb3h5JC5pbWl0YXRlKHNlY29uZCQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogV2UgY3JlYXRlIGBzZWNvbmRQcm94eSRgIGJlZm9yZSB0aGUgb3RoZXJzLCBzbyBpdCBjYW4gYmUgdXNlZCBpbiB0aGVcbiAgICogZGVjbGFyYXRpb24gb2YgYGZpcnN0JGAuIFRoZW4sIGFmdGVyIGJvdGggYGZpcnN0JGAgYW5kIGBzZWNvbmQkYCBhcmVcbiAgICogZGVmaW5lZCwgd2UgaG9vayBgc2Vjb25kUHJveHkkYCB3aXRoIGBzZWNvbmQkYCB3aXRoIGBpbWl0YXRlKClgIHRvIHRlbGxcbiAgICogdGhhdCB0aGV5IGFyZSBcInRoZSBzYW1lXCIuIGBpbWl0YXRlYCB3aWxsIG5vdCB0cmlnZ2VyIHRoZSBzdGFydCBvZiBhbnlcbiAgICogc3RyZWFtLCBpdCBqdXN0IGJpbmRzIGBzZWNvbmRQcm94eSRgIGFuZCBgc2Vjb25kJGAgdG9nZXRoZXIuXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSB3aGVyZSBgaW1pdGF0ZSgpYCBpcyBpbXBvcnRhbnQgaW4gQ3ljbGUuanNcbiAgICogYXBwbGljYXRpb25zLiBBIHBhcmVudCBjb21wb25lbnQgY29udGFpbnMgc29tZSBjaGlsZCBjb21wb25lbnRzLiBBIGNoaWxkXG4gICAqIGhhcyBhbiBhY3Rpb24gc3RyZWFtIHdoaWNoIGlzIGdpdmVuIHRvIHRoZSBwYXJlbnQgdG8gZGVmaW5lIGl0cyBzdGF0ZTpcbiAgICpcbiAgICogPCEtLSBza2lwLWV4YW1wbGUgLS0+XG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IGNoaWxkQWN0aW9uUHJveHkkID0geHMuY3JlYXRlKCk7XG4gICAqIGNvbnN0IHBhcmVudCA9IFBhcmVudCh7Li4uc291cmNlcywgY2hpbGRBY3Rpb24kOiBjaGlsZEFjdGlvblByb3h5JH0pO1xuICAgKiBjb25zdCBjaGlsZEFjdGlvbiQgPSBwYXJlbnQuc3RhdGUkLm1hcChzID0+IHMuY2hpbGQuYWN0aW9uJCkuZmxhdHRlbigpO1xuICAgKiBjaGlsZEFjdGlvblByb3h5JC5pbWl0YXRlKGNoaWxkQWN0aW9uJCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBOb3RlLCB0aG91Z2gsIHRoYXQgKipgaW1pdGF0ZSgpYCBkb2VzIG5vdCBzdXBwb3J0IE1lbW9yeVN0cmVhbXMqKi4gSWYgd2VcbiAgICogd291bGQgYXR0ZW1wdCB0byBpbWl0YXRlIGEgTWVtb3J5U3RyZWFtIGluIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgd2Ugd291bGRcbiAgICogZWl0aGVyIGdldCBhIHJhY2UgY29uZGl0aW9uICh3aGVyZSB0aGUgc3ltcHRvbSB3b3VsZCBiZSBcIm5vdGhpbmcgaGFwcGVuc1wiKVxuICAgKiBvciBhbiBpbmZpbml0ZSBjeWNsaWMgZW1pc3Npb24gb2YgdmFsdWVzLiBJdCdzIHVzZWZ1bCB0byB0aGluayBhYm91dFxuICAgKiBNZW1vcnlTdHJlYW1zIGFzIGNlbGxzIGluIGEgc3ByZWFkc2hlZXQuIEl0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgdG9cbiAgICogZGVmaW5lIGEgc3ByZWFkc2hlZXQgY2VsbCBgQTFgIHdpdGggYSBmb3JtdWxhIHRoYXQgZGVwZW5kcyBvbiBgQjFgIGFuZFxuICAgKiBjZWxsIGBCMWAgZGVmaW5lZCB3aXRoIGEgZm9ybXVsYSB0aGF0IGRlcGVuZHMgb24gYEExYC5cbiAgICpcbiAgICogSWYgeW91IGZpbmQgeW91cnNlbGYgd2FudGluZyB0byB1c2UgYGltaXRhdGUoKWAgd2l0aCBhXG4gICAqIE1lbW9yeVN0cmVhbSwgeW91IHNob3VsZCByZXdvcmsgeW91ciBjb2RlIGFyb3VuZCBgaW1pdGF0ZSgpYCB0byB1c2UgYVxuICAgKiBTdHJlYW0gaW5zdGVhZC4gTG9vayBmb3IgdGhlIHN0cmVhbSBpbiB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSB0aGF0XG4gICAqIHJlcHJlc2VudHMgYW4gZXZlbnQgc3RyZWFtLCBhbmQgdGhhdCB3b3VsZCBiZSBhIGNhbmRpZGF0ZSBmb3IgY3JlYXRpbmcgYVxuICAgKiBwcm94eSBTdHJlYW0gd2hpY2ggdGhlbiBpbWl0YXRlcyB0aGUgdGFyZ2V0IFN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJlYW19IHRhcmdldCBUaGUgb3RoZXIgc3RyZWFtIHRvIGltaXRhdGUgb24gdGhlIGN1cnJlbnQgb25lLiBNdXN0XG4gICAqIG5vdCBiZSBhIE1lbW9yeVN0cmVhbS5cbiAgICovXG4gIGltaXRhdGUodGFyZ2V0OiBTdHJlYW08VD4pOiB2b2lkIHtcbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgTWVtb3J5U3RyZWFtKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIE1lbW9yeVN0cmVhbSB3YXMgZ2l2ZW4gdG8gaW1pdGF0ZSgpLCBidXQgaXQgb25seSAnICtcbiAgICAgICAgJ3N1cHBvcnRzIGEgU3RyZWFtLiBSZWFkIG1vcmUgYWJvdXQgdGhpcyByZXN0cmljdGlvbiBoZXJlOiAnICtcbiAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9zdGFsdHoveHN0cmVhbSNmYXEnKTtcbiAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gICAgZm9yIChsZXQgaWxzID0gdGhpcy5faWxzLCBOID0gaWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBOOyBpKyspIHRhcmdldC5fYWRkKGlsc1tpXSk7XG4gICAgdGhpcy5faWxzID0gW107XG4gIH1cblxuICAvKipcbiAgICogRm9yY2VzIHRoZSBTdHJlYW0gdG8gZW1pdCB0aGUgZ2l2ZW4gdmFsdWUgdG8gaXRzIGxpc3RlbmVycy5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCBpZiB5b3UgdXNlIHRoaXMsIHlvdSBhcmUgbW9zdCBsaWtlbHkgZG9pbmcgc29tZXRoaW5nXG4gICAqIFRoZSBXcm9uZyBXYXkuIFBsZWFzZSB0cnkgdG8gdW5kZXJzdGFuZCB0aGUgcmVhY3RpdmUgd2F5IGJlZm9yZSB1c2luZyB0aGlzXG4gICAqIG1ldGhvZC4gVXNlIGl0IG9ubHkgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgXCJuZXh0XCIgdmFsdWUgeW91IHdhbnQgdG8gYnJvYWRjYXN0IHRvIGFsbCBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZE5leHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9uKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBnaXZlbiBlcnJvciB0byBpdHMgbGlzdGVuZXJzLlxuICAgKlxuICAgKiBBcyB0aGUgbmFtZSBpbmRpY2F0ZXMsIGlmIHlvdSB1c2UgdGhpcywgeW91IGFyZSBtb3N0IGxpa2VseSBkb2luZyBzb21ldGhpbmdcbiAgICogVGhlIFdyb25nIFdheS4gUGxlYXNlIHRyeSB0byB1bmRlcnN0YW5kIHRoZSByZWFjdGl2ZSB3YXkgYmVmb3JlIHVzaW5nIHRoaXNcbiAgICogbWV0aG9kLiBVc2UgaXQgb25seSB3aGVuIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGVycm9yIFRoZSBlcnJvciB5b3Ugd2FudCB0byBicm9hZGNhc3QgdG8gYWxsIHRoZSBsaXN0ZW5lcnMgb2ZcbiAgICogdGhpcyBTdHJlYW0uXG4gICAqL1xuICBzaGFtZWZ1bGx5U2VuZEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLl9lKGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIFN0cmVhbSB0byBlbWl0IHRoZSBcImNvbXBsZXRlZFwiIGV2ZW50IHRvIGl0cyBsaXN0ZW5lcnMuXG4gICAqXG4gICAqIEFzIHRoZSBuYW1lIGluZGljYXRlcywgaWYgeW91IHVzZSB0aGlzLCB5b3UgYXJlIG1vc3QgbGlrZWx5IGRvaW5nIHNvbWV0aGluZ1xuICAgKiBUaGUgV3JvbmcgV2F5LiBQbGVhc2UgdHJ5IHRvIHVuZGVyc3RhbmQgdGhlIHJlYWN0aXZlIHdheSBiZWZvcmUgdXNpbmcgdGhpc1xuICAgKiBtZXRob2QuIFVzZSBpdCBvbmx5IHdoZW4geW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLlxuICAgKi9cbiAgc2hhbWVmdWxseVNlbmRDb21wbGV0ZSgpIHtcbiAgICB0aGlzLl9jKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIFwiZGVidWdcIiBsaXN0ZW5lciB0byB0aGUgc3RyZWFtLiBUaGVyZSBjYW4gb25seSBiZSBvbmUgZGVidWdcbiAgICogbGlzdGVuZXIsIHRoYXQncyB3aHkgdGhpcyBpcyAnc2V0RGVidWdMaXN0ZW5lcicuIFRvIHJlbW92ZSB0aGUgZGVidWdcbiAgICogbGlzdGVuZXIsIGp1c3QgY2FsbCBzZXREZWJ1Z0xpc3RlbmVyKG51bGwpLlxuICAgKlxuICAgKiBBIGRlYnVnIGxpc3RlbmVyIGlzIGxpa2UgYW55IG90aGVyIGxpc3RlbmVyLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgYVxuICAgKiBkZWJ1ZyBsaXN0ZW5lciBpcyBcInN0ZWFsdGh5XCI6IGl0cyBwcmVzZW5jZS9hYnNlbmNlIGRvZXMgbm90IHRyaWdnZXIgdGhlXG4gICAqIHN0YXJ0L3N0b3Agb2YgdGhlIHN0cmVhbSAob3IgdGhlIHByb2R1Y2VyIGluc2lkZSB0aGUgc3RyZWFtKS4gVGhpcyBpc1xuICAgKiB1c2VmdWwgc28geW91IGNhbiBpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gd2l0aG91dCBjaGFuZ2luZyB0aGUgYmVoYXZpb3JcbiAgICogb2YgdGhlIHByb2dyYW0uIElmIHlvdSBoYXZlIGFuIGlkbGUgc3RyZWFtIGFuZCB5b3UgYWRkIGEgbm9ybWFsIGxpc3RlbmVyIHRvXG4gICAqIGl0LCB0aGUgc3RyZWFtIHdpbGwgc3RhcnQgZXhlY3V0aW5nLiBCdXQgaWYgeW91IHNldCBhIGRlYnVnIGxpc3RlbmVyIG9uIGFuXG4gICAqIGlkbGUgc3RyZWFtLCBpdCB3b24ndCBzdGFydCBleGVjdXRpbmcgKG5vdCB1bnRpbCB0aGUgZmlyc3Qgbm9ybWFsIGxpc3RlbmVyXG4gICAqIGlzIGFkZGVkKS5cbiAgICpcbiAgICogQXMgdGhlIG5hbWUgaW5kaWNhdGVzLCB3ZSBkb24ndCByZWNvbW1lbmQgdXNpbmcgdGhpcyBtZXRob2QgdG8gYnVpbGQgYXBwXG4gICAqIGxvZ2ljLiBJbiBmYWN0LCBpbiBtb3N0IGNhc2VzIHRoZSBkZWJ1ZyBvcGVyYXRvciB3b3JrcyBqdXN0IGZpbmUuIE9ubHkgdXNlXG4gICAqIHRoaXMgb25lIGlmIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0xpc3RlbmVyPFQ+fSBsaXN0ZW5lclxuICAgKi9cbiAgc2V0RGVidWdMaXN0ZW5lcihsaXN0ZW5lcjogUGFydGlhbDxMaXN0ZW5lcjxUPj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFsaXN0ZW5lcikge1xuICAgICAgdGhpcy5fZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fZGwgPSBOTyBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kID0gdHJ1ZTtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fbiA9IGxpc3RlbmVyLm5leHQgfHwgbm9vcDtcbiAgICAgIChsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+KS5fZSA9IGxpc3RlbmVyLmVycm9yIHx8IG5vb3A7XG4gICAgICAobGlzdGVuZXIgYXMgSW50ZXJuYWxMaXN0ZW5lcjxUPikuX2MgPSBsaXN0ZW5lci5jb21wbGV0ZSB8fCBub29wO1xuICAgICAgdGhpcy5fZGwgPSBsaXN0ZW5lciBhcyBJbnRlcm5hbExpc3RlbmVyPFQ+O1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWVtb3J5U3RyZWFtPFQ+IGV4dGVuZHMgU3RyZWFtPFQ+IHtcbiAgcHJpdmF0ZSBfdj86IFQ7XG4gIHByaXZhdGUgX2hhcz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJvZHVjZXI6IEludGVybmFsUHJvZHVjZXI8VD4pIHtcbiAgICBzdXBlcihwcm9kdWNlcik7XG4gIH1cblxuICBfbih4OiBUKSB7XG4gICAgdGhpcy5fdiA9IHg7XG4gICAgdGhpcy5faGFzID0gdHJ1ZTtcbiAgICBzdXBlci5fbih4KTtcbiAgfVxuXG4gIF9hZGQoaWw6IEludGVybmFsTGlzdGVuZXI8VD4pOiB2b2lkIHtcbiAgICBjb25zdCB0YSA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAodGEpIHJldHVybiB0YS5fYWRkKGlsKTtcbiAgICBjb25zdCBhID0gdGhpcy5faWxzO1xuICAgIGEucHVzaChpbCk7XG4gICAgaWYgKGEubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc3RvcElEICE9PSBOTykge1xuICAgICAgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N0b3BJRCk7XG4gICAgICB0aGlzLl9zdG9wSUQgPSBOTztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hhcykgaWwuX24odGhpcy5fdiEpOyBlbHNlIHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLl9wcm9kO1xuICAgICAgaWYgKHAgIT09IE5PKSBwLl9zdGFydCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBfc3RvcE5vdygpIHtcbiAgICB0aGlzLl9oYXMgPSBmYWxzZTtcbiAgICBzdXBlci5fc3RvcE5vdygpO1xuICB9XG5cbiAgX3goKTogdm9pZCB7XG4gICAgdGhpcy5faGFzID0gZmFsc2U7XG4gICAgc3VwZXIuX3goKTtcbiAgfVxuXG4gIG1hcDxVPihwcm9qZWN0OiAodDogVCkgPT4gVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcChwcm9qZWN0KSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICBtYXBUbzxVPihwcm9qZWN0ZWRWYWx1ZTogVSk6IE1lbW9yeVN0cmVhbTxVPiB7XG4gICAgcmV0dXJuIHN1cGVyLm1hcFRvKHByb2plY3RlZFZhbHVlKSBhcyBNZW1vcnlTdHJlYW08VT47XG4gIH1cblxuICB0YWtlKGFtb3VudDogbnVtYmVyKTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIudGFrZShhbW91bnQpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIGVuZFdoZW4ob3RoZXI6IFN0cmVhbTxhbnk+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZW5kV2hlbihvdGhlcikgYXMgTWVtb3J5U3RyZWFtPFQ+O1xuICB9XG5cbiAgcmVwbGFjZUVycm9yKHJlcGxhY2U6IChlcnI6IGFueSkgPT4gU3RyZWFtPFQ+KTogTWVtb3J5U3RyZWFtPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIucmVwbGFjZUVycm9yKHJlcGxhY2UpIGFzIE1lbW9yeVN0cmVhbTxUPjtcbiAgfVxuXG4gIHJlbWVtYmVyKCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWJ1ZygpOiBNZW1vcnlTdHJlYW08VD47XG4gIGRlYnVnKGxhYmVsT3JTcHk6IHN0cmluZyk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweTogKHQ6IFQpID0+IGFueSk6IE1lbW9yeVN0cmVhbTxUPjtcbiAgZGVidWcobGFiZWxPclNweT86IHN0cmluZyB8ICgodDogVCkgPT4gYW55KSB8IHVuZGVmaW5lZCk6IE1lbW9yeVN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlYnVnKGxhYmVsT3JTcHkgYXMgYW55KSBhcyBNZW1vcnlTdHJlYW08VD47XG4gIH1cbn1cblxuZXhwb3J0IHsgTk8sIE5PX0lMIH07XG5jb25zdCB4cyA9IFN0cmVhbTtcbnR5cGUgeHM8VD4gPSBTdHJlYW08VD47XG5leHBvcnQgZGVmYXVsdCB4cztcbiJdfQ==","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(3607);\n"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","module","exports","fn","self","this","args","arguments","apply","err","undefined","__esModule","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","prototype","obj","_typeof","Symbol","iterator","constructor","decompress","compress","codecimpl_1","compressBatch","proof","centries","lookup","registry","Map","entry","entries","exist","centry","compressExist","push","nonexist","Error","non","left","right","lookupInners","path","map","inner","sig","ics23","InnerOp","encode","finish","idx","get","set","leaf","decompressBatch","comp","decompressExist","batch","compressed","valuesById","values","$protobuf","$Reader","Reader","$Writer","Writer","$util","util","$root","roots","HashOp","create","LengthOp","ExistenceProof","properties","keys","newBuffer","emptyArray","message","writer","hasOwnProperty","uint32","bytes","LeafOp","fork","ldelim","encodeDelimited","decode","reader","end","len","pos","tag","skipType","decodeDelimited","verify","isString","Array","isArray","fromObject","object","base64","toObject","options","arrays","defaults","String","slice","call","j","toJSON","toJSONOptions","NonExistenceProof","CommitmentProof","$oneOfFields","oneOfGetter","oneOfSetter","BatchProof","CompressedBatchProof","oneofs","hash","prehashKey","prehashValue","prefix","int32","enums","suffix","ProofSpec","leafSpec","innerSpec","maxDepth","minDepth","InnerSpec","isInteger","childOrder","childSize","minPrefixLength","maxPrefixLength","emptyChild","end2","BatchEntry","CompressedBatchEntry","CompressedExistenceProof","CompressedNonExistenceProof","batchVerifyNonMembership","batchVerifyMembership","verifyNonMembership","verifyMembership","compress_1","proofs_1","specs_1","spec","root","match","p","bytesEqual","x","find","getExistForKey","verifyExistence","_a","bytesBefore","getNonExistForKey","verifyNonExistence","items","norm","tendermintSpec","iavlSpec","calculateExistenceRoot","ics23_1","doHash","applyInner","applyLeaf","ripemd160_1","sha256_1","sha512_1","ensure","maybe","pkey","prepareLeafData","ensureHash","ensureLength","pvalue","data","Uint8Array","ensureBytes","child","preimage","h","NO_HASH","l","NO_PREFIX","b","hashOp","lengthOp","doHashOrNoop","VAR_PROTO","encodeVarintProto","REQUIRE_32_BYTES","REQUIRE_64_BYTES","FIXED32_LITTLE","encodeFixed32Le","doLengthOp","SHA256","sha256","SHA512","sha512","RIPEMD160","ripemd160","BITCOIN","SHA512_256","sha512_256","n","enc","Math","abs","floor","ensureLeftNeighbor","ensureSpec","smtSpec","ops_1","calc","ensureBytesEqual","res","ensureLeaf","ensureInner","ensureLeftMost","minPrefix","maxPrefix","getPadding","step","hasPadding","ensureRightMost","mutleft","mutright","topleft","pop","topright","leftidx","orderFromPadding","isLeftStep","branch","op","order","findIndex","val","getPosition","from","leftKey","rightKey","ensureBytesBefore","a","first","last","min","check","ensurePrefix","hasPrefix","maxLeftChildBytes","protobuf","configure","_configure","BufferWriter","BufferReader","build","rpc","LongBits","utf8","indexOutOfRange","writeLength","RangeError","buffer","buf","create_array","Buffer","isBuffer","readLongVarint","bits","lo","hi","readFixed32_end","readFixed64","_slice","subarray","sint32","bool","fixed32","sfixed32","float","readFloatLE","double","readDoubleLE","start","string","read","skip","wireType","BufferReader_","Long","merge","int64","uint64","sint64","zzDecode","fixed64","sfixed64","utf8Slice","toString","Service","rpcImpl","requestDelimited","responseDelimited","EventEmitter","Boolean","rpcCall","method","requestCtor","responseCtor","request","callback","asPromise","response","emit","setTimeout","endedByRPC","off","zero","toNumber","zzEncode","zeroHash","fromNumber","sign","parseInt","fromString","low","high","unsigned","toLong","charCodeAt","fromHash","toHash","fromCharCode","mask","part0","part1","part2","dst","src","ifNotSet","newError","name","CustomError","captureStackTrace","stack","inquire","pool","isNode","global","process","versions","node","window","freeze","emptyObject","Number","isFinite","isObject","isset","isSet","prop","utf8Write","e","_Buffer_from","_Buffer_allocUnsafe","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","fromBits","lcFirst","str","charAt","toLowerCase","substring","ProtocolError","fieldNames","fieldMap","longs","json","encoding","allocUnsafe","size","Op","next","noop","State","head","tail","states","writeByte","VarintOp","writeVarint64","writeFixed32","alloc","_push","writeFloatLE","writeDoubleLE","writeBytes","write","reset","BufferWriter_","writeStringBuffer","writeBytesBuffer","copy","byteLength","pubkeyToAddress","pubkeyToRawAddress","rawSecp256k1PubkeyToRawAddress","rawEd25519PubkeyToRawAddress","crypto_1","encoding_1","encoding_2","pubkeys_1","pubkeyData","pubkey","isSecp256k1Pubkey","fromBase64","isEd25519Pubkey","isMultisigThresholdPubkey","encodeAminoPubkey","toBech32","parseCoins","coins","coin","math_1","amount","denom","outAmount","Uint53","_err","replace","input","split","filter","part","Uint64","encodeBech32Pubkey","decodeBech32Pubkey","decodeAminoPubkey","encodeSecp256k1Pubkey","utils_1","type","pubkeyType","secp256k1","toBase64","pubkeyAminoPrefixSecp256k1","fromHex","pubkeyAminoPrefixEd25519","pubkeyAminoPrefixSr25519","pubkeyAminoPrefixMultisigThreshold","arrayContentStartsWith","rest","ed25519","sr25519","prefixFromReader","splice","shift","threshold","thresholdBytesLength","decodeUvarint","pubkeys","pubkeyLength","pubkeyLengthBytesSize","encodedPubkey","multisigThreshold","decodeMultisigPubkey","toHex","encodeUvarint","checked","out","bechEncoded","fromBech32","executeKdf","makeStdTx","isStdTx","serializeSignDoc","makeSignDoc","encodeSecp256k1Signature","decodeSignature","Secp256k1Wallet","Secp256k1HdWallet","extractKdfConfiguration","isSinglePubkey","makeCosmoshubPath","createMultisigThresholdPubkey","addresses_1","coins_1","multisig_1","paths_1","secp256k1hdwallet_1","secp256k1wallet_1","signature_1","signdoc_1","stdtx_1","wallet_1","compareArrays","aHex","bHex","nosort","uintThreshold","outPubkeys","sort","lhs","rhs","Slip10RawIndex","hardened","normal","includes","serializationTypeV1","basicPasswordHashingOptions","algorithm","params","outputLength","opsLimit","memLimitKib","serialization","JSON","parse","isNonNullObject","kdf","defaultOptions","bip39Password","hdPaths","mnemonic","_b","secret","seed","accounts","hdPath","static","mnemonicChecked","EnglishMnemonic","Bip39","mnemonicToSeed","entropyLength","entropy","Random","getBytes","fromMnemonic","password","deserializeTypeV1","encryptionKey","untypedRoot","decryptedBytes","decrypt","encryption","decryptedDocument","fromUtf8","assert","every","account","isDerivationJson","thing","firstPrefix","stringToPath","deserializeWithEncryptionKey","async","getAccountsWithPrivkeys","algo","address","signerAddress","signDoc","privkey","signature","Secp256k1","createSignature","signatureBytes","r","s","signed","kdfConfiguration","serializeWithEncryptionKey","dataToEncrypt","pathToString","dataToEncryptRaw","toUtf8","stringify","encryptionConfiguration","supportedAlgorithms","xchacha20poly1305Ietf","encryptedData","encrypt","Slip10","derivePath","Slip10Curve","makeKeypair","compressPubkey","all","getKeyPair","uncompressed","Sha256","digest","pub_key","sortedJsonStringify","sortedObject","sortedKeys","result","forEach","msgs","fee","chainId","memo","accountNumber","sequence","chain_id","account_number","txValue","msg","signatures","content","cosmjsSalt","toAscii","configuration","isArgon2idOptions","Argon2id","execute","plaintext","config","nonce","xchacha20NonceLength","Xchacha20poly1305Ietf","ciphertext","__importDefault","mod","cosmWasmTypes","long_1","aminoType","toAmino","sender","wasmByteCode","wasm_byte_code","fromAmino","instantiatePermission","codeId","label","funds","admin","code_id","default","newAdmin","contract","new_admin","CosmWasmClient","stargate_1","tendermint_rpc_1","types_1","queries_1","tmClient","codesCache","queryClient","QueryClient","withExtensions","setupAuthExtension","setupBankExtension","setupWasmExtension","setupTxExtension","endpoint","Tendermint34Client","connect","getTmClient","forceGetTmClient","getQueryClient","forceGetQueryClient","status","nodeInfo","network","syncInfo","latestBlockHeight","searchAddress","auth","accountFromAny","test","getAccount","height","block","id","blockId","toUpperCase","header","version","app","time","toRfc3339WithNanoseconds","txs","searchDenom","bank","balance","txsQuery","query","minHeight","maxHeight","MAX_SAFE_INTEGER","withFilters","originalQuery","isSearchByHeightQuery","isSearchBySentFromOrToQuery","sentQuery","sentFromOrTo","receivedQuery","sent","received","rawQuery","sentHashes","t","isSearchByTagsQuery","tags","join","tx","disconnect","timeoutMs","pollIntervalMs","timedOut","txPollTimeout","pollForTx","txId","TimeoutError","sleep","getTx","code","rawLog","transactionHash","gasUsed","gasWanted","broadcasted","broadcastTxSync","codeSpace","log","transactionId","clearTimeout","codeInfos","wasm","listCodeInfo","creator","dataHash","checksum","cached","codeInfo","getCode","codeDetails","contracts","listContractsByCodeId","retrievedAddress","contractInfo","getContractInfo","ibcPortId","getContractCodeHistory","operations","ContractCodeHistoryOperationType","CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT","CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS","CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE","operation","fromAscii","getContract","queryContractRaw","queryMsg","queryContractSmart","startsWith","txSearchAll","isMsgExecuteEncodeObject","isMsgMigrateEncodeObject","isMsgClearAdminEncodeObject","isMsgUpdateAdminEncodeObject","isMsgInstantiateContractEncodeObject","isMsgStoreCodeEncodeObject","encodeObject","typeUrl","fromBinary","toBinary","SigningCosmWasmClient","aminotypes_1","cosmwasmclient_1","encodeobjects_1","signingcosmwasmclient_1","wasm_1","query_1","base","createProtobufRpcClient","queryService","QueryClientImpl","paginationKey","pagination","createPagination","Codes","Code","ContractsByCode","ContractInfo","ContractHistory","getAllContractState","AllContractState","queryData","RawContractState","SmartContractState","responseText","amino_1","proto_signing_1","tx_1","tx_2","signing_1","tx_3","tx_4","pako_1","createDeliverTxResponseErrorMessage","createDefaultRegistry","Registry","defaultRegistryTypes","register","MsgClearAdmin","MsgExecuteContract","MsgMigrateContract","MsgStoreCode","MsgInstantiateContract","MsgUpdateAdmin","signer","super","aminoTypes","AminoTypes","additions","broadcastTimeoutMs","broadcastPollIntervalMs","gasPrice","messages","anyMsgs","m","encodeAsAny","accountFromSigner","getAccounts","getSequence","gasInfo","simulate","assertDefined","senderAddress","wasmCode","gzip","level","storeCodeMsg","fromPartial","signAndBroadcast","isDeliverTxFailure","parsedLogs","logs","parseRawLog","codeIdAttr","findAttribute","originalSize","originalChecksum","compressedSize","compressedChecksum","instantiateContractMsg","contractAddress","updateAdminMsg","clearAdminMsg","migrateMsg","migrateContractMsg","executeContractMsg","recipientAddress","sendMsg","fromAddress","toAddress","delegatorAddress","validatorAddress","delegateMsg","MsgDelegate","undelegateMsg","MsgUndelegate","withdrawDelegatorRewardMsg","MsgWithdrawDelegatorReward","usedFee","gasEstimation","muliplier","calculateFee","round","txRaw","txBytes","TxRaw","broadcastTx","explicitSignerData","signerData","getChainId","isOfflineDirectSigner","signDirect","signAmino","encodePubkey","signMode","SignMode","SIGN_MODE_LEGACY_AMINO_JSON","signedTxBody","signedTxBodyBytes","signedGasLimit","Int53","gas","signedSequence","signedAuthInfoBytes","makeAuthInfoBytes","bodyBytes","authInfoBytes","txBody","txBodyBytes","gasLimit","mnemonicToEntropy","entropyToMnemonic","pbkdf2_1","sha_1","wordlist","bytesToBitstring","byte","padStart","deriveChecksumBits","checksumLengthBits","bitstringToByte","bin","allowedEntropyLengths","allowedWordLengths","indexOf","binary","index","normalize","words","word","dividerIndex","entropyBits","checksumBits","entropyBytes","mnemonicMatcher","allowedWordsLengths","mnemonicBytes","salt","saltBytes","pbkdf2Sha512","Hmac","hashFunctionConstructor","originalKey","blockSize","update","zeroPadding","oKeyPad","keyByte","iKeyPad","messageHasher","innerHash","slip10CurveFromString","Sha512","Secp256k1Signature","ExtendedSecp256k1Signature","Ripemd160","Ed25519Keypair","Ed25519","keccak256","Keccak256","bip39_1","hmac_1","keccak_1","libsodium_1","random_1","ripemd_1","secp256k1_1","secp256k1signature_1","slip10_1","sha3_1","firstData","impl","keccak_256","toRealUint8Array","libsodium_wrappers_1","ready","crypto_pwhash","crypto_pwhash_ALG_ARGON2ID13","libsodiumPrivkey","toLibsodiumPrivkey","keypair","crypto_sign_seed_keypair","fromLibsodiumPrivkey","privateKey","keyPair","crypto_sign_detached","crypto_sign_verify_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_decrypt","__createBinding","o","k","k2","__setModuleDefault","v","__importStar","pbkdf2Sha512Noble","pbkdf2Sha512Crypto","pbkdf2Sha512Subtle","getSubtle","getCryptoModule","crypto","g","globalThis","subtle","webcrypto","iterations","keylen","importKey","deriveBits","pbkdf2","pbkdf2Async","c","dkLen","count","globalObject","cryptoApi","msCrypto","getRandomValues","randomBytes","bn_js_1","elliptic_1","ec","secp256k1N","keyFromPrivate","validate","gte","getPrivate","getPublic","messageHash","recoveryParam","canonical","toArray","keyFromPublic","toDer","signatureForElliptic","point","recoverPubKey","recovery","trimLeadingNullBytes","inData","numberOfLeadingNullBytes","bodyLength","rLength","rData","sLength","sData","paddingLength","padding","toFixedLength","rEncoded","sEncoded","curveString","Uint32","hardenedIndex","normalIndex","isHardened","curve","master","rawIndex","chainCode","il","ir","isZero","isGteN","parentPrivkey","parentChainCode","payload","toBytesBigEndian","serializedPoint","childImpl","mul","encodeCompressed","returnChainCode","returnChildKeyAsNumber","add","returnChildKey","newI","reduce","current","component","fullMatch","numberString","apostrophe","charCode","listOfNumbers","base64js","fromByteArray","base64String","toByteArray","Bech32","bech32","limit","toWords","Infinity","decodedAddress","fromWords","hexstring","hexByteAsString","toRfc3339","fromRfc3339","ascii_1","base64_1","bech32_1","hex_1","rfc3339_1","utf8_1","rfc3339Matcher","padded","integer","filled","matches","exec","year","month","day","hour","minute","second","milliSeconds","tzOffsetSign","tzOffsetHours","tzOffsetMinutes","tzOffset","timestamp","Date","UTC","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","TextEncoder","TextDecoder","fatal","FaucetClient","axios_1","baseUrl","strippedBaseUrl","body","post","faucetclient_1","isJsonCompatibleValue","isJsonCompatibleArray","isJsonCompatibleDictionary","item","makeJsonRpcId","counter","jsonRpcCode","isJsonRpcSuccessResponse","isJsonRpcErrorResponse","parseJsonRpcSuccessResponse","parseJsonRpcResponse","parseJsonRpcRequest","parseJsonRpcId","parseJsonRpcErrorResponse","JsonRpcClient","id_1","jsonrpcclient_1","parse_1","stream_1","connection","filteredStream","responseStream","pendingResponses","firstEvent","sendRequest","compatibility_1","parseError","maybeUndefinedData","jsonrpc","_","invalidRequest","methodNotFound","invalidParams","internalError","serverError","LedgerSigner","LedgerConnector","ledgerconnector_1","ledgersigner_1","ledger_cosmos_js_1","semver_1","unharden","cosmosHdPath","transport","_c","_d","_e","testModeAllowed","ledgerAppName","requiredLedgerAppVersion","minLedgerAppVersion","verifyCosmosAppIsOpen","getVersion","handleLedgerErrors","major","minor","patch","test_mode","testMode","verifyAppMode","verifyDeviceIsReady","hdPathToUse","publicKey","compressed_pk","promise","getPubkey","pubkeyToUse","fromDer","appInfo","appName","getCosmosAppVersion","getOpenAppName","verifyAppVersion","showAddressAndPubKey","error_message","errorMessage","device_locked","deviceLocked","rejectionMessage","connector","getPubkeys","getCosmosAddress","showAddress","accountIndex","accountForAddress","Decimal","atomics","fractionalDigits","verifyFractionalDigits","badCharacter","whole","fractional","search","parts","quantity","padEnd","cmp","factor","pow","div","trimmedFractionalPart","toFloatApproximation","isNaN","plus","sum","minus","difference","sub","ltn","multiply","product","equals","compare","isLessThan","isLessThanOrEqual","isGreaterThan","isGreaterThanOrEqual","decimal_1","integers_1","uint64MaxValue","fromBytes","endianess","beBytes","reverse","toBytesLittleEndian","MIN_SAFE_INTEGER","isNeg","gt","bigint","decodeTxRaw","authInfo","AuthInfo","TxBody","DirectSecp256k1HdWallet","signBytes","makeSignBytes","hashedMessage","DirectSecp256k1Wallet","isTxBodyEncodeObject","isTsProtoGeneratedType","isPbjsGeneratedType","decodePubkey","decode_1","directsecp256k1hdwallet_1","directsecp256k1wallet_1","pubkey_1","registry_1","signer_1","keys_1","keys_2","any_1","decodeSinglePubkey","PubKey","pubkeyProto","Any","LegacyAminoPubKey","publicKeys","coin_1","defaultTypeUrls","cosmosCoin","cosmosMsgSend","cosmosTxBody","googleAny","customTypes","types","Coin","MsgSend","lookupType","lookupTypeWithError","encodeTxBody","binaryValue","txBodyFields","wrappedMessages","decodeTxBody","decoded","decodedTxBody","makeSignerInfos","signers","modeInfo","single","mode","feeAmount","SIGN_MODE_DIRECT","signerInfos","SignDoc","StreamingSocket","SocketWrapper","ReconnectingSocket","QueueingStreamingSocket","ConnectionStatus","queueingstreamingsocket_1","reconnectingsocket_1","socketwrapper_1","streamingsocket_1","xstream_1","url","timeout","reconnectedHandler","queue","isProcessingQueue","eventProducer","listener","eventProducerListener","stop","events","Stream","connectionStatusProducer","DefaultValueProducer","Unconnected","connectionStatus","ValueAndUpdates","socket","subscribe","event","Disconnected","Connecting","connected","Connected","processQueue","reconnect","getQueueLength","queueRequest","send","unshift","unconnected","disconnected","timeoutIndex","reconnectTimeout","updates","calculateTimeout","complete","isomorphic_ws_1","messageHandler","errorHandler","openHandler","closeHandler","closed","connectedResolver","connectedRejecter","onerror","onmessage","messageEvent","onopen","onclose","closeEvent","started","now","timeoutId","close","elapsed","readyState","OPEN","CLOSED","CONNECTING","wasClean","CLOSING","errorEvent","auth_1","vesting_1","uint64FromProto","accountFromBaseAccount","pubKey","_f","_g","BaseAccount","baseAccount","ModuleAccount","BaseVestingAccount","ContinuousVestingAccount","baseVestingAccount","DelayedVestingAccount","PeriodicVestingAccount","isAminoMsgTransfer","isAminoMsgUndelegate","isAminoMsgBeginRedelegate","isAminoMsgDelegate","isAminoMsgEditValidator","isAminoMsgCreateValidator","isAminoMsgUnjail","isAminoMsgDeposit","isAminoMsgVote","isAminoMsgSubmitProposal","isAminoMsgSubmitEvidence","isAminoMsgFundCommunityPool","isAminoMsgWithdrawValidatorCommission","isAminoMsgWithdrawDelegatorReward","isAminoMsgSetWithdrawAddress","isAminoMsgVerifyInvariant","isAminoMsgMultiSend","isAminoMsgSend","gov_1","omitDefault","isLong","isAminoConverter","converter","defaultTypes","from_address","to_address","inputs","outputs","output","depositor","withdrawAddress","delegator_address","withdraw_address","validator_address","proposalId","proposal_id","option","voter","voteOptionFromJSON","initialDeposit","proposer","proposal","assertDefinedAndNotNull","textProposal","TextProposal","description","title","initial_deposit","any_content","validatorSrcAddress","validatorDstAddress","validator_src_address","validator_dst_address","commission","minSelfDelegation","moniker","identity","website","security_contact","securityContact","details","rate","max_rate","maxRate","max_change_rate","maxChangeRate","min_self_delegation","decodedPubkey","commissionRate","commission_rate","sourcePort","sourceChannel","token","receiver","timeoutHeight","timeoutTimestamp","source_port","source_channel","timeout_height","revision_height","revisionHeight","revision_number","revisionNumber","timeout_timestamp","createDefaultTypes","_typeUrl","_value","isMsgVoteEncodeObject","isMsgSubmitProposalEncodeObject","isMsgDepositEncodeObject","isMsgTransferEncodeObject","isMsgWithdrawDelegatorRewardEncodeObject","isMsgUndelegateEncodeObject","isMsgDelegateEncodeObject","isMsgSendEncodeObject","GasPrice","matchResult","checkDenom","decimalAmount","fromUserInput","processedGasPrice","gasPriceAmount","ceil","assertIsDeliverTxSuccess","assertIsDeliverTxFailure","SigningStargateClient","setupStakingExtension","setupMintExtension","setupIbcExtension","setupGovExtension","setupDistributionExtension","decodeCosmosSdkDecFromProto","makeMultisignedTx","StargateClient","isDeliverTxSuccess","accounts_1","aminomsgs_1","fee_1","multisignature_1","search_1","signingstargateclient_1","stargateclient_1","parseLogs","parseLog","parseEvent","parseAttribute","attributes","msg_index","logsToParse","eventType","attrKey","firstLogs","attr","makeCompactBitArray","byteCount","extraBits","bytePos","bitPos","CompactBitArray","elems","extraBitsStored","multisigPubkey","addresses","fill","signaturesList","signerInfo","multi","bitarray","modeInfos","MultiSignature","Account","utils_2","Balance","allBalances","balances","AllBalances","totalSupply","supply","TotalSupply","supplyOf","SupplyOf","denomMetadata","metadata","DenomMetadata","denomsMetadata","metadatas","DenomsMetadata","distribution","communityPool","CommunityPool","delegationRewards","DelegationRewards","delegationTotalRewards","DelegationTotalRewards","delegatorValidators","DelegatorValidators","delegatorWithdrawAddress","DelegatorWithdrawAddress","Params","validatorCommission","ValidatorCommission","validatorOutstandingRewards","ValidatorOutstandingRewards","validatorSlashes","startingHeight","endingHeight","ValidatorSlashes","gov","parametersType","paramsType","proposals","proposalStatus","depositorAddress","voterAddress","Proposals","Proposal","longify","deposits","Deposits","deposit","Deposit","tally","TallyResult","votes","Votes","vote","Vote","channel_1","query_2","query_3","query_4","tendermint_1","decodeTendermintClientStateAny","clientState","ClientState","channelQueryService","clientQueryService","connectionQueryService","transferQueryService","ibc","channel","portId","channelId","Channel","channels","Channels","allChannels","nextKey","connectionChannels","ConnectionChannels","allConnectionChannels","ChannelClientState","consensusState","ChannelConsensusState","packetCommitment","PacketCommitment","packetCommitments","PacketCommitments","allPacketCommitments","commitments","packetReceipt","PacketReceipt","packetAcknowledgement","PacketAcknowledgement","packetAcknowledgements","PacketAcknowledgements","allPacketAcknowledgements","acknowledgements","unreceivedPackets","packetCommitmentSequences","UnreceivedPackets","unreceivedAcks","packetAckSequences","UnreceivedAcks","nextSequenceReceive","NextSequenceReceive","client","state","clientId","ClientStates","allStates","clientStates","consensusHeight","ConsensusState","QueryConsensusStateRequest","latestHeight","consensusStates","ConsensusStates","allConsensusStates","ClientParams","stateTm","statesTm","allStatesTm","consensusStateTm","decodeTendermintConsensusStateAny","connectionId","Connection","connections","Connections","allConnections","clientConnections","ClientConnections","ConnectionClientState","ConnectionConsensusState","QueryConnectionConsensusStateRequest","transfer","denomTrace","DenomTrace","denomTraces","DenomTraces","allDenomTraces","verified","responseData","queryVerified","setupSlashingExtension","queryclient_1","bank_1","distribution_1","ibc_1","mint_1","slashing_1","staking_1","__1","mint","blocksPerYear","goalBonded","inflationMin","inflationMax","inflationRateChange","mintDenom","inflation","Inflation","annualProvisions","AnnualProvisions","checkAndParseOp","kind","arrayContentEquals","extensionSetups","extensions","setupExtension","extension","moduleKey","moduleValue","store","desiredHeight","queryRawProof","subProof","ops","storeProof","getNextHeader","appHash","queryKey","abciQuery","prove","searchHeight","nextHeader","headersSubscription","subscribeNewBlockHeader","firstHeader","correctHeader","blockchain","blockMetas","meta","slashing","signingInfo","consAddress","SigningInfo","signingInfos","SigningInfos","staking","delegation","Delegation","delegatorAddr","validatorAddr","delegatorDelegations","DelegatorDelegations","delegatorUnbondingDelegations","DelegatorUnbondingDelegations","delegatorValidator","DelegatorValidator","historicalInfo","HistoricalInfo","Pool","redelegations","sourceValidatorAddress","destinationValidatorAddress","Redelegations","srcValidatorAddr","dstValidatorAddr","unbondingDelegation","UnbondingDelegation","validator","Validator","validatorDelegations","ValidatorDelegations","validators","Validators","validatorUnbondingDelegations","ValidatorUnbondingDelegations","service_1","ServiceClientImpl","GetTx","SimulateRequest","Tx","Fee","SIGN_MODE_UNSPECIFIED","Simulate","toAccAddress","pagination_1","PageRequest","offset","countTotal","service","queryUnverified","checkedValue","fromBytesBE","asString","fromAtomics","tx_5","tx_6","tx_7","tx_8","tx_9","tx_10","tx_11","MsgExec","MsgGrant","MsgRevoke","MsgMultiSend","MsgFundCommunityPool","MsgSetWithdrawAddress","MsgWithdrawValidatorCommission","MsgGrantAllowance","MsgRevokeAllowance","MsgDeposit","MsgSubmitProposal","MsgVote","MsgBeginRedelegate","MsgCreateValidator","MsgEditValidator","MsgTransfer","MsgAcknowledgement","MsgChannelCloseConfirm","MsgChannelCloseInit","MsgChannelOpenAck","MsgChannelOpenConfirm","MsgChannelOpenInit","MsgChannelOpenTry","MsgRecvPacket","MsgTimeout","MsgTimeoutOnClose","MsgCreateClient","MsgSubmitMisbehaviour","MsgUpdateClient","MsgUpgradeClient","MsgConnectionOpenAck","MsgConnectionOpenConfirm","MsgConnectionOpenInit","MsgConnectionOpenTry","withdrawMsg","transferAmount","timeoutTimestampNanoseconds","transferMsg","signedTxBodyEncodeObject","txBodyEncodeObject","delegatedAmount","delegationResponse","concat","streams","subscriptions","queues","completedStreams","Set","activeStreamIndex","unsubscribe","clear","producer","emitAllQueuesEvents","streamIndex","element","isDone","stream","has","callbacks","internalValue","onStarted","onStop","dropDuplicates","valueToKey","instream","emittedKeys","debug","__exportStar","toListPromise","fromListPromise","concat_1","defaultvalueproducer_1","dropduplicates_1","promise_1","valueandupdates_1","take","iterable","catch","lastValue","asArray","countStream","Reducer","reducer","initState","completed","subscription","evt","increment","append","list","MemoryStream","createWithMemory","searchImplementation","newValue","DateTime","toSeconds","fromSeconds","fromRfc3339WithNanoseconds","dateTimeString","nanosecondsMatch","nanoseconds","dateTime","millisecondIso","toISOString","seconds","nanos","checkedNanos","getTime","BlockIdFlag","tendermint34","VoteType","SubscriptionEventType","Method","broadcastTxSyncSuccess","broadcastTxCommitSuccess","WebsocketClient","HttpClient","dates_1","rpcclients_1","tendermint34_1","tendermint34_2","createJsonRpcRequest","numbersWithoutZero","paramsCopy","random","http","json_rpc_1","rpcclient_1","filterBadStatus","fetch","hasProtocol","instanceOfRpcStreamingClient","httpclient_1","websocketclient_1","listen","socket_1","defaultErrorHandler","toJsonRpcResponse","RpcEventProducer","running","connectToClient","endRequest","idSubscription","closeSubscriptions","idEventSubscription","nonResponseSubscription","onError","subscriptionStreams","endsWith","cleanBaseUrl","errorSubscription","jsonRpcResponseStream","pendingResponse","responseForRequestId","waitFor","adaptor34","hasher_1","requests_1","responses_1","responses","Responses","hashTx","hashBlock","jsonrpc_1","encodings_1","requests","encodeHeightParam","param","may","Integer","req","assertNotEmpty","page","per_page","order_by","eventTag","buildQuery","raw","decodeQueryProof","decodeAttribute","attribute","optional","decodeEvent","assertArray","decodeEvents","decodeTxData","assertNumber","codespace","gas_wanted","gas_used","decodeValidatorUpdate","assertObject","votingPower","voting_power","proposerPriority","proposer_priority","decodeBlockParams","maxBytes","max_bytes","maxGas","max_gas","decodeEvidenceParams","maxAgeNumBlocks","max_age_num_blocks","maxAgeDuration","max_age_duration","decodeConsensusParams","evidence","decodeBlockId","total","decodeBlockVersion","decodeHeader","lastBlockId","last_block_id","lastCommitHash","assertSet","last_commit_hash","data_hash","validatorsHash","validators_hash","nextValidatorsHash","next_validators_hash","consensusHash","consensus_hash","app_hash","lastResultsHash","last_results_hash","evidenceHash","evidence_hash","proposerAddress","proposer_address","decodeBlockMeta","block_id","block_size","numTxs","num_txs","decodeCommitSignature","blockIdFlag","block_id_flag","decodeCommit","decodeValidatorGenesis","power","decodeValidatorInfo","decodeNodeInfo","listenAddr","listen_addr","assertString","other","dictionaryToStringMap","protocolVersion","protocol_version","p2p","decodeSyncInfo","latestBlockHash","latest_block_hash","latestAppHash","latest_app_hash","latestBlockTime","latest_block_time","latest_block_height","catchingUp","assertBoolean","catching_up","decodeTxProof","rootHash","root_hash","leafHash","leaf_hash","aunts","decodeTxResponse","tx_result","decodeBlock","lastCommit","last_commit","decodeBlockResponse","lastBlockHeight","last_block_height","lastBlockAppHash","last_block_app_hash","proofOps","results","txs_results","validatorUpdates","validator_updates","consensusUpdates","consensus_param_updates","beginBlockEvents","begin_block_events","endBlockEvents","end_block_events","totalCount","total_count","blocks","lastHeight","last_height","block_metas","decodeBroadcastTxSync","checkTx","check_tx","deliverTx","deliver_tx","signed_header","commit","genesis","genesisTime","genesis_time","consensusParams","consensus_params","appState","app_state","node_info","sync_info","validatorInfo","validator_info","decodeTxEvent","TxResult","blockHeight","block_height","encodeBlockId","encodeVersion","encodeBytes","encodeTime","encodeInt","encodeString","fallback","transform","num","milliseconds","secondsArray","nanosecondsArray","blockArray","appArray","hashTree","hashes","hashLeaf","slicePoint","largestPowerOf2","log2","getSplitPoint","hashInner","tendermint34client_1","components","adaptor_1","rpcClient","detectVersion","Status","AbciInfo","doCall","encodeAbciInfo","decodeAbciInfo","AbciQuery","encodeAbciQuery","decodeAbciQuery","Block","encodeBlock","BlockResults","encodeBlockResults","decodeBlockResults","BlockSearch","resp","encodeBlockSearch","decodeBlockSearch","blockSearch","Blockchain","encodeBlockchain","decodeBlockchain","BroadcastTxSync","encodeBroadcastTx","BroadcastTxAsync","decodeBroadcastTxAsync","BroadcastTxCommit","decodeBroadcastTxCommit","Commit","encodeCommit","Genesis","encodeGenesis","decodeGenesis","Health","encodeHealth","decodeHealth","encodeStatus","decodeStatus","subscribeNewBlock","Subscribe","NewBlock","decodeNewBlockEvent","NewBlockHeader","decodeNewBlockHeaderEvent","subscribeTx","encodeTx","decodeTx","TxSearch","encodeTxSearch","decodeTxSearch","txSearch","encodeValidators","decodeValidators","encodeSubscribe","condition","isUint8Array","arrays_1","assert_1","sleep_1","typechecks_1","ms","SHA2","utils_js_1","Hash","blockLen","outputLen","padOffset","isLE","finished","destroyed","view","createView","toBytes","dataView","roundClean","digestInto","byteOffset","setBigUint64","_32n","BigInt","_u32_max","wh","wl","setUint32","oview","destroy","_cloneInto","to","add5H","add5L","add4H","add4L","add3H","add3L","rotlBL","rotlBH","rotlSL","rotlSH","rotr32L","rotr32H","rotrBL","rotrBH","rotrSL","rotrSH","shrSL","shrSH","toBig","fromBig","U32_MASK64","le","lst","Ah","Uint32Array","Al","Bh","Bl","Cl","Ch","Dl","Dh","El","Eh","web","hmac","HMAC","_key","assertHash","iHash","pad","oHash","getPrototypeOf","hmac_js_1","pbkdf2Init","_password","_salt","_opts","opts","checkOpts","asyncTick","DK","PRF","PRFSalt","pbkdf2Output","prfW","u","arr","ti","Ti","setInt32","ui","asyncLoop","_sha2_js_1","Rho","Id","Pi","idxL","idxR","shifts","shiftsL","shiftsR","Kl","Kr","rotl","f","group","y","z","BUF","h0","h1","h2","h3","h4","getUint32","al","ar","bl","br","cl","cr","dl","dr","el","er","rGroup","hbl","hbr","rl","rr","sl","sr","tl","tr","wrapConstructor","Maj","SHA256_K","IV","SHA256_W","A","B","C","D","E","F","G","H","W15","W2","s0","rotr","s1","T1","T2","shake256","shake128","keccak_512","keccak_384","keccak_224","sha3_512","sha3_384","sha3_256","sha3_224","Keccak","keccakP","u64","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","R","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","rounds","idx1","idx0","B0","B1","Th","Tl","curH","curL","PI","enableXOF","posOut","state32","u32","keccak","writeInto","xofInto","xof","genShake","wrapConstructorWithOpts","sha384","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","Fh","Fl","Gh","Gl","Hh","Hl","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","sigma1h","sigma1l","CHIh","CHIl","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","All","SHA384","assertBytes","assertBool","concatBytes","utf8ToBytes","nextTick","hexToBytes","bytesToHex","u8","DataView","hexes","isSafeInteger","uint8a","hex","array","hexByte","nodeRequire","require","bind","setImmediate","iters","tick","cb","ts","diff","lengths","clone","def","assign","hashConstructor","hashC","tmp","hashCons","bytesLength","ctx","pending","b64","s64","chunk","invalidEncoding","_listeners","on","listeners","factory","Float32Array","f32","f8b","writeFloat_f32_cpy","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatBE","readFloatBE","writeFloat_ieee754","writeUint","exponent","LN2","readFloat_ieee754","readUint","uint","mantissa","NaN","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleBE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","moduleName","eval","SIZE","MAX","slab","c1","c2","utils","settle","buildFullPath","buildURL","https","httpFollow","httpsFollow","zlib","pkg","createError","enhanceError","isHttps","setProxy","proxy","location","hostname","host","port","username","headers","beforeRedirect","redirection","href","resolvePromise","rejectPromise","isStream","isArrayBuffer","fullPath","baseURL","parsed","protocol","urlAuth","Authorization","isHttpsRequest","agent","httpsAgent","httpAgent","paramsSerializer","agents","socketPath","proxyEnv","proxyUrl","env","parsedProxyUrl","noProxyEnv","no_proxy","NO_PROXY","shouldProxy","trim","some","proxyElement","substr","proxyUrlAuth","isHttpsProxy","maxRedirects","maxBodyLength","aborted","lastRequest","statusCode","pipe","createUnzip","statusText","statusMessage","responseType","responseBuffer","totalResponseBytes","maxContentLength","responseEncoding","stripBOM","abort","transitional","clarifyTimeoutError","cancelToken","cancel","cookies","parseHeaders","isURLSameOrigin","requestData","requestHeaders","isFormData","XMLHttpRequest","unescape","encodeURIComponent","btoa","onloadend","responseHeaders","getAllResponseHeaders","open","onreadystatechange","responseURL","onabort","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","xsrfHeaderName","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","Axios","mergeConfig","createInstance","defaultConfig","context","extend","axios","instanceConfig","Cancel","CancelToken","isCancel","promises","spread","isAxiosError","__CANCEL__","executor","reason","throwIfRequested","source","InterceptorManager","dispatchRequest","interceptors","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","rejected","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","handlers","use","eject","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","common","adapter","transformResponse","number","fileName","lineNumber","columnNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","axiosKeys","otherKeys","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isFile","isBlob","isArrayBufferView","isURLSearchParams","rawValue","parser","encoder","stringifySafely","strictJSONParsing","thisArg","serializedParams","isDate","hashmarkIndex","relativeURL","expires","domain","secure","cookie","isNumber","toGMTString","document","RegExp","decodeURIComponent","remove","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","setAttribute","pathname","requestURL","normalizedName","ignoreDuplicateOf","line","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","console","warn","schema","allowUnknown","isFunction","FormData","ArrayBuffer","isView","URLSearchParams","assignValue","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","ALPHABET","ALPHABET_MAP","polymodStep","pre","prefixChk","chk","__decode","LIMIT","lowered","uppered","lastIndexOf","wordChars","convert","inBits","outBits","maxV","decodeUnsafe","toWordsUnsafe","fromWordsUnsafe","inherits","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","red","_init","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","move","dest","max","_initNumber","_initArray","_parseHex","_parseBase","w","_strip","limbLen","limbPow","imuln","_iaddn","_move","_expand","_normSign","for","inspect","zeros","groupSizes","groupBases","smallMulTo","carry","ncarry","rword","maxJ","groupSize","groupBase","modrn","idivn","ret","toBuffer","toArrayLike","ArrayType","reqLength","allocate","_toArrayLikeLE","position","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","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","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","q","iushln","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","divmod","positive","divn","umod","divRound","dm","half","r2","andln","acc","modn","egcd","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gten","lt","lten","lte","eqn","eq","Red","toRed","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","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","outLen","prev","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","Rand","rand","generate","_rand","getByte","unmask","__dirname","lengthOpToJSON","lengthOpFromJSON","hashOpToJSON","hashOpFromJSON","protobufPackage","minimal_1","KECCAK","UNRECOGNIZED","VAR_RLP","FIXED32_BIG","FIXED64_BIG","FIXED64_LITTLE","baseExistenceProof","fromJSON","bytesFromBase64","base64FromBytes","baseNonExistenceProof","baseCommitmentProof","baseLeafOp","baseInnerOp","baseProofSpec","baseInnerSpec","baseBatchProof","baseBatchEntry","baseCompressedBatchProof","baseCompressedBatchEntry","baseCompressedExistenceProof","baseCompressedNonExistenceProof","atob","baseBaseAccount","UZERO","fromValue","baseModuleAccount","permissions","baseParams","maxMemoCharacters","txSigLimit","txSizeCostPerByte","sigVerifyCostEd25519","sigVerifyCostSecp256k1","QueryParamsResponse","QueryParamsRequest","QueryAccountResponse","QueryAccountRequest","QueryAccountsResponse","QueryAccountsRequest","baseQueryAccountsRequest","baseQueryAccountsResponse","PageResponse","baseQueryAccountRequest","baseQueryAccountResponse","baseQueryParamsRequest","baseQueryParamsResponse","Accounts","Grant","GenericAuthorization","timestamp_1","baseGenericAuthorization","baseGrant","toTimestamp","authorization","expiration","Timestamp","millis","fromTimestamp","MsgClientImpl","MsgRevokeResponse","MsgGrantResponse","MsgExecResponse","authz_1","baseMsgGrant","granter","grantee","grant","baseMsgExecResponse","baseMsgExec","baseMsgGrantResponse","baseMsgRevoke","msgTypeUrl","baseMsgRevokeResponse","Exec","Revoke","Metadata","DenomUnit","Supply","Output","Input","SendEnabled","defaultSendEnabled","sendEnabled","baseSendEnabled","enabled","baseInput","baseOutput","baseSupply","baseDenomUnit","aliases","baseMetadata","display","symbol","denomUnits","QueryDenomMetadataResponse","QueryDenomMetadataRequest","QueryDenomsMetadataResponse","QueryDenomsMetadataRequest","QuerySupplyOfResponse","QuerySupplyOfRequest","QueryTotalSupplyResponse","QueryTotalSupplyRequest","QueryAllBalancesResponse","QueryAllBalancesRequest","QueryBalanceResponse","QueryBalanceRequest","baseQueryBalanceRequest","baseQueryBalanceResponse","baseQueryAllBalancesRequest","baseQueryAllBalancesResponse","baseQueryTotalSupplyRequest","baseQueryTotalSupplyResponse","baseQuerySupplyOfRequest","baseQuerySupplyOfResponse","baseQueryDenomsMetadataRequest","baseQueryDenomsMetadataResponse","baseQueryDenomMetadataRequest","baseQueryDenomMetadataResponse","MsgMultiSendResponse","MsgSendResponse","baseMsgSend","baseMsgSendResponse","baseMsgMultiSend","baseMsgMultiSendResponse","Send","MultiSend","SearchTxsResult","TxMsgData","MsgData","SimulationResponse","Result","GasInfo","Attribute","StringEvent","ABCIMessageLog","TxResponse","baseTxResponse","ZERO","txhash","Event","_h","_j","baseABCIMessageLog","msgIndex","baseStringEvent","baseAttribute","baseGasInfo","baseResult","baseSimulationResponse","baseMsgData","msgType","baseTxMsgData","baseSearchTxsResult","pageNumber","pageTotal","basePageRequest","basePageResponse","DecProto","IntProto","DecCoin","baseCoin","baseDecCoin","baseIntProto","int","baseDecProto","dec","baseLegacyAminoPubKey","baseMultiSignature","baseCompactBitArray","PrivKey","basePubKey","basePrivKey","CommunityPoolSpendProposalWithDeposit","DelegationDelegatorReward","DelegatorStartingInfo","CommunityPoolSpendProposal","FeePool","ValidatorSlashEvents","ValidatorSlashEvent","ValidatorAccumulatedCommission","ValidatorCurrentRewards","ValidatorHistoricalRewards","communityTax","baseProposerReward","bonusProposerReward","withdrawAddrEnabled","baseValidatorHistoricalRewards","referenceCount","cumulativeRewardRatio","baseValidatorCurrentRewards","period","rewards","baseValidatorAccumulatedCommission","baseValidatorOutstandingRewards","baseValidatorSlashEvent","validatorPeriod","fraction","baseValidatorSlashEvents","validatorSlashEvents","baseFeePool","baseCommunityPoolSpendProposal","recipient","baseDelegatorStartingInfo","previousPeriod","stake","baseDelegationDelegatorReward","reward","baseCommunityPoolSpendProposalWithDeposit","QueryCommunityPoolResponse","QueryCommunityPoolRequest","QueryDelegatorWithdrawAddressResponse","QueryDelegatorWithdrawAddressRequest","QueryDelegatorValidatorsResponse","QueryDelegatorValidatorsRequest","QueryDelegationTotalRewardsResponse","QueryDelegationTotalRewardsRequest","QueryDelegationRewardsResponse","QueryDelegationRewardsRequest","QueryValidatorSlashesResponse","QueryValidatorSlashesRequest","QueryValidatorCommissionResponse","QueryValidatorCommissionRequest","QueryValidatorOutstandingRewardsResponse","QueryValidatorOutstandingRewardsRequest","baseQueryValidatorOutstandingRewardsRequest","baseQueryValidatorOutstandingRewardsResponse","baseQueryValidatorCommissionRequest","baseQueryValidatorCommissionResponse","baseQueryValidatorSlashesRequest","baseQueryValidatorSlashesResponse","slashes","baseQueryDelegationRewardsRequest","baseQueryDelegationRewardsResponse","baseQueryDelegationTotalRewardsRequest","baseQueryDelegationTotalRewardsResponse","baseQueryDelegatorValidatorsRequest","baseQueryDelegatorValidatorsResponse","baseQueryDelegatorWithdrawAddressRequest","baseQueryDelegatorWithdrawAddressResponse","baseQueryCommunityPoolRequest","baseQueryCommunityPoolResponse","MsgFundCommunityPoolResponse","MsgWithdrawValidatorCommissionResponse","MsgWithdrawDelegatorRewardResponse","MsgSetWithdrawAddressResponse","baseMsgSetWithdrawAddress","baseMsgSetWithdrawAddressResponse","baseMsgWithdrawDelegatorReward","baseMsgWithdrawDelegatorRewardResponse","baseMsgWithdrawValidatorCommission","baseMsgWithdrawValidatorCommissionResponse","baseMsgFundCommunityPool","baseMsgFundCommunityPoolResponse","SetWithdrawAddress","WithdrawDelegatorReward","WithdrawValidatorCommission","FundCommunityPool","MsgRevokeAllowanceResponse","MsgGrantAllowanceResponse","baseMsgGrantAllowance","allowance","baseMsgGrantAllowanceResponse","baseMsgRevokeAllowance","baseMsgRevokeAllowanceResponse","GrantAllowance","RevokeAllowance","TallyParams","VotingParams","DepositParams","WeightedVoteOption","proposalStatusToJSON","proposalStatusFromJSON","ProposalStatus","voteOptionToJSON","VoteOption","duration_1","VOTE_OPTION_UNSPECIFIED","VOTE_OPTION_YES","VOTE_OPTION_ABSTAIN","VOTE_OPTION_NO","VOTE_OPTION_NO_WITH_VETO","PROPOSAL_STATUS_UNSPECIFIED","PROPOSAL_STATUS_DEPOSIT_PERIOD","PROPOSAL_STATUS_VOTING_PERIOD","PROPOSAL_STATUS_PASSED","PROPOSAL_STATUS_REJECTED","PROPOSAL_STATUS_FAILED","baseWeightedVoteOption","weight","baseTextProposal","baseDeposit","baseProposal","finalTallyResult","submitTime","depositEndTime","totalDeposit","votingStartTime","votingEndTime","fromJsonTimestamp","baseTallyResult","yes","abstain","no","noWithVeto","baseVote","baseDepositParams","minDeposit","maxDepositPeriod","Duration","baseVotingParams","votingPeriod","baseTallyParams","quorum","vetoThreshold","QueryTallyResultResponse","QueryTallyResultRequest","QueryDepositsResponse","QueryDepositsRequest","QueryDepositResponse","QueryDepositRequest","QueryVotesResponse","QueryVotesRequest","QueryVoteResponse","QueryVoteRequest","QueryProposalsResponse","QueryProposalsRequest","QueryProposalResponse","QueryProposalRequest","baseQueryProposalRequest","baseQueryProposalResponse","baseQueryProposalsRequest","baseQueryProposalsResponse","baseQueryVoteRequest","baseQueryVoteResponse","baseQueryVotesRequest","baseQueryVotesResponse","votingParams","depositParams","tallyParams","baseQueryDepositRequest","baseQueryDepositResponse","baseQueryDepositsRequest","baseQueryDepositsResponse","baseQueryTallyResultRequest","baseQueryTallyResultResponse","MsgDepositResponse","MsgVoteWeightedResponse","MsgVoteWeighted","MsgVoteResponse","MsgSubmitProposalResponse","baseMsgSubmitProposal","baseMsgSubmitProposalResponse","baseMsgVote","baseMsgVoteResponse","baseMsgVoteWeighted","baseMsgVoteWeightedResponse","baseMsgDeposit","baseMsgDepositResponse","SubmitProposal","VoteWeighted","Minter","baseMinter","QueryAnnualProvisionsResponse","QueryAnnualProvisionsRequest","QueryInflationResponse","QueryInflationRequest","baseQueryInflationRequest","baseQueryInflationResponse","baseQueryAnnualProvisionsRequest","baseQueryAnnualProvisionsResponse","QuerySigningInfosResponse","QuerySigningInfosRequest","QuerySigningInfoResponse","QuerySigningInfoRequest","baseQuerySigningInfoRequest","baseQuerySigningInfoResponse","valSigningInfo","ValidatorSigningInfo","baseQuerySigningInfosRequest","baseQuerySigningInfosResponse","baseValidatorSigningInfo","startHeight","indexOffset","tombstoned","missedBlocksCounter","jailedUntil","signedBlocksWindow","minSignedPerWindow","downtimeJailDuration","slashFractionDoubleSign","slashFractionDowntime","QueryPoolResponse","QueryPoolRequest","QueryHistoricalInfoResponse","QueryHistoricalInfoRequest","QueryDelegatorValidatorResponse","QueryDelegatorValidatorRequest","QueryRedelegationsResponse","QueryRedelegationsRequest","QueryDelegatorUnbondingDelegationsResponse","QueryDelegatorUnbondingDelegationsRequest","QueryDelegatorDelegationsResponse","QueryDelegatorDelegationsRequest","QueryUnbondingDelegationResponse","QueryUnbondingDelegationRequest","QueryDelegationResponse","QueryDelegationRequest","QueryValidatorUnbondingDelegationsResponse","QueryValidatorUnbondingDelegationsRequest","QueryValidatorDelegationsResponse","QueryValidatorDelegationsRequest","QueryValidatorResponse","QueryValidatorRequest","QueryValidatorsResponse","QueryValidatorsRequest","baseQueryValidatorsRequest","baseQueryValidatorsResponse","baseQueryValidatorRequest","baseQueryValidatorResponse","baseQueryValidatorDelegationsRequest","baseQueryValidatorDelegationsResponse","delegationResponses","DelegationResponse","baseQueryValidatorUnbondingDelegationsRequest","baseQueryValidatorUnbondingDelegationsResponse","unbondingResponses","baseQueryDelegationRequest","baseQueryDelegationResponse","baseQueryUnbondingDelegationRequest","baseQueryUnbondingDelegationResponse","unbond","baseQueryDelegatorDelegationsRequest","baseQueryDelegatorDelegationsResponse","baseQueryDelegatorUnbondingDelegationsRequest","baseQueryDelegatorUnbondingDelegationsResponse","baseQueryRedelegationsRequest","baseQueryRedelegationsResponse","redelegationResponses","RedelegationResponse","baseQueryDelegatorValidatorRequest","baseQueryDelegatorValidatorResponse","baseQueryHistoricalInfoRequest","baseQueryHistoricalInfoResponse","hist","baseQueryPoolRequest","baseQueryPoolResponse","RedelegationEntryResponse","Redelegation","RedelegationEntry","UnbondingDelegationEntry","DVVTriplets","DVVTriplet","DVPairs","DVPair","ValAddresses","Description","Commission","CommissionRates","bondStatusToJSON","bondStatusFromJSON","BondStatus","BOND_STATUS_UNSPECIFIED","BOND_STATUS_UNBONDED","BOND_STATUS_UNBONDING","BOND_STATUS_BONDED","baseHistoricalInfo","Header","valset","baseCommissionRates","baseCommission","commissionRates","updateTime","baseDescription","baseValidator","operatorAddress","jailed","tokens","delegatorShares","unbondingHeight","consensusPubkey","unbondingTime","baseValAddresses","baseDVPair","baseDVPairs","pairs","baseDVVTriplet","baseDVVTriplets","triplets","baseDelegation","shares","baseUnbondingDelegation","baseUnbondingDelegationEntry","creationHeight","initialBalance","completionTime","baseRedelegationEntry","sharesDst","baseRedelegation","maxValidators","maxEntries","historicalEntries","bondDenom","baseDelegationResponse","baseRedelegationEntryResponse","redelegationEntry","baseRedelegationResponse","redelegation","basePool","notBondedTokens","bondedTokens","MsgUndelegateResponse","MsgBeginRedelegateResponse","MsgDelegateResponse","MsgEditValidatorResponse","MsgCreateValidatorResponse","baseMsgCreateValidator","baseMsgCreateValidatorResponse","baseMsgEditValidator","baseMsgEditValidatorResponse","baseMsgDelegate","baseMsgDelegateResponse","baseMsgBeginRedelegate","baseMsgBeginRedelegateResponse","baseMsgUndelegate","baseMsgUndelegateResponse","CreateValidator","EditValidator","Delegate","BeginRedelegate","Undelegate","SignatureDescriptor_Data_Multi","SignatureDescriptor_Data_Single","SignatureDescriptor_Data","SignatureDescriptor","SignatureDescriptors","signModeToJSON","signModeFromJSON","SIGN_MODE_TEXTUAL","baseSignatureDescriptors","baseSignatureDescriptor","baseSignatureDescriptor_Data","baseSignatureDescriptor_Data_Single","baseSignatureDescriptor_Data_Multi","GetTxResponse","GetTxRequest","SimulateResponse","BroadcastTxResponse","BroadcastTxRequest","GetTxsEventResponse","GetTxsEventRequest","broadcastModeToJSON","broadcastModeFromJSON","BroadcastMode","orderByToJSON","orderByFromJSON","OrderBy","abci_1","ORDER_BY_UNSPECIFIED","ORDER_BY_ASC","ORDER_BY_DESC","BROADCAST_MODE_UNSPECIFIED","BROADCAST_MODE_BLOCK","BROADCAST_MODE_SYNC","BROADCAST_MODE_ASYNC","baseGetTxsEventRequest","orderBy","baseGetTxsEventResponse","txResponses","baseBroadcastTxRequest","baseBroadcastTxResponse","txResponse","baseSimulateRequest","baseSimulateResponse","baseGetTxRequest","baseGetTxResponse","BroadcastTx","GetTxsEvent","ModeInfo_Multi","ModeInfo_Single","ModeInfo","SignerInfo","baseTx","baseTxRaw","baseSignDoc","baseTxBody","extensionOptions","nonCriticalExtensionOptions","baseAuthInfo","baseSignerInfo","baseModeInfo","baseModeInfo_Single","baseModeInfo_Multi","baseFee","payer","PermanentLockedAccount","Period","baseBaseVestingAccount","endTime","originalVesting","delegatedFree","delegatedVesting","baseContinuousVestingAccount","startTime","baseDelayedVestingAccount","basePeriod","basePeriodicVestingAccount","vestingPeriods","basePermanentLockedAccount","QueryCodesResponse","QueryCodesRequest","QueryCodeResponse","CodeInfoResponse","QueryCodeRequest","QuerySmartContractStateResponse","QuerySmartContractStateRequest","QueryRawContractStateResponse","QueryRawContractStateRequest","QueryAllContractStateResponse","QueryAllContractStateRequest","QueryContractsByCodeResponse","QueryContractsByCodeRequest","QueryContractHistoryResponse","QueryContractHistoryRequest","QueryContractInfoResponse","QueryContractInfoRequest","baseQueryContractInfoRequest","baseQueryContractInfoResponse","baseQueryContractHistoryRequest","baseQueryContractHistoryResponse","ContractCodeHistoryEntry","baseQueryContractsByCodeRequest","baseQueryContractsByCodeResponse","baseQueryAllContractStateRequest","baseQueryAllContractStateResponse","models","Model","baseQueryRawContractStateRequest","baseQueryRawContractStateResponse","baseQuerySmartContractStateRequest","baseQuerySmartContractStateResponse","baseQueryCodeRequest","baseCodeInfoResponse","baseQueryCodeResponse","baseQueryCodesRequest","baseQueryCodesResponse","MsgClearAdminResponse","MsgUpdateAdminResponse","MsgMigrateContractResponse","MsgExecuteContractResponse","MsgInstantiateContractResponse","MsgStoreCodeResponse","baseMsgStoreCode","AccessConfig","baseMsgStoreCodeResponse","baseMsgInstantiateContract","baseMsgInstantiateContractResponse","baseMsgExecuteContract","baseMsgExecuteContractResponse","baseMsgMigrateContract","baseMsgMigrateContractResponse","baseMsgUpdateAdmin","baseMsgUpdateAdminResponse","baseMsgClearAdmin","baseMsgClearAdminResponse","StoreCode","InstantiateContract","ExecuteContract","MigrateContract","UpdateAdmin","ClearAdmin","AbsoluteTxPosition","CodeInfo","AccessTypeParam","contractCodeHistoryOperationTypeToJSON","contractCodeHistoryOperationTypeFromJSON","accessTypeToJSON","accessTypeFromJSON","AccessType","ACCESS_TYPE_UNSPECIFIED","ACCESS_TYPE_NOBODY","ACCESS_TYPE_ONLY_ADDRESS","ACCESS_TYPE_EVERYBODY","CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED","baseAccessTypeParam","baseAccessConfig","permission","instantiateDefaultPermission","maxWasmCodeSize","codeUploadAccess","baseCodeInfo","codeHash","instantiateConfig","baseContractInfo","created","baseContractCodeHistoryEntry","updated","baseAbsoluteTxPosition","txIndex","baseModel","baseAny","baseDuration","baseTimestamp","QueryDenomTracesResponse","QueryDenomTracesRequest","QueryDenomTraceResponse","QueryDenomTraceRequest","transfer_1","baseQueryDenomTraceRequest","baseQueryDenomTraceResponse","baseQueryDenomTracesRequest","baseQueryDenomTracesResponse","FungibleTokenPacketData","baseFungibleTokenPacketData","baseDenomTrace","baseDenom","receiveEnabled","MsgTransferResponse","client_1","baseMsgTransfer","Height","baseMsgTransferResponse","Transfer","Acknowledgement","PacketState","Packet","Counterparty","IdentifiedChannel","orderToJSON","orderFromJSON","Order","stateToJSON","stateFromJSON","STATE_UNINITIALIZED_UNSPECIFIED","STATE_INIT","STATE_TRYOPEN","STATE_OPEN","STATE_CLOSED","ORDER_NONE_UNSPECIFIED","ORDER_UNORDERED","ORDER_ORDERED","baseChannel","ordering","connectionHops","counterparty","baseIdentifiedChannel","baseCounterparty","basePacket","destinationPort","destinationChannel","basePacketState","baseAcknowledgement","QueryNextSequenceReceiveResponse","QueryNextSequenceReceiveRequest","QueryUnreceivedAcksResponse","QueryUnreceivedAcksRequest","QueryUnreceivedPacketsResponse","QueryUnreceivedPacketsRequest","QueryPacketAcknowledgementsResponse","QueryPacketAcknowledgementsRequest","QueryPacketAcknowledgementResponse","QueryPacketAcknowledgementRequest","QueryPacketReceiptResponse","QueryPacketReceiptRequest","QueryPacketCommitmentsResponse","QueryPacketCommitmentsRequest","QueryPacketCommitmentResponse","QueryPacketCommitmentRequest","QueryChannelConsensusStateResponse","QueryChannelConsensusStateRequest","QueryChannelClientStateResponse","QueryChannelClientStateRequest","QueryConnectionChannelsResponse","QueryConnectionChannelsRequest","QueryChannelsResponse","QueryChannelsRequest","QueryChannelResponse","QueryChannelRequest","baseQueryChannelRequest","baseQueryChannelResponse","proofHeight","baseQueryChannelsRequest","baseQueryChannelsResponse","baseQueryConnectionChannelsRequest","baseQueryConnectionChannelsResponse","baseQueryChannelClientStateRequest","baseQueryChannelClientStateResponse","identifiedClientState","IdentifiedClientState","baseQueryChannelConsensusStateRequest","baseQueryChannelConsensusStateResponse","baseQueryPacketCommitmentRequest","baseQueryPacketCommitmentResponse","commitment","baseQueryPacketCommitmentsRequest","baseQueryPacketCommitmentsResponse","baseQueryPacketReceiptRequest","baseQueryPacketReceiptResponse","baseQueryPacketAcknowledgementRequest","baseQueryPacketAcknowledgementResponse","acknowledgement","baseQueryPacketAcknowledgementsRequest","baseQueryPacketAcknowledgementsResponse","baseQueryUnreceivedPacketsRequest","baseQueryUnreceivedPacketsResponse","sequences","baseQueryUnreceivedAcksRequest","baseQueryUnreceivedAcksResponse","baseQueryNextSequenceReceiveRequest","baseQueryNextSequenceReceiveResponse","MsgAcknowledgementResponse","MsgTimeoutOnCloseResponse","MsgTimeoutResponse","MsgRecvPacketResponse","MsgChannelCloseConfirmResponse","MsgChannelCloseInitResponse","MsgChannelOpenConfirmResponse","MsgChannelOpenAckResponse","MsgChannelOpenTryResponse","MsgChannelOpenInitResponse","baseMsgChannelOpenInit","baseMsgChannelOpenInitResponse","baseMsgChannelOpenTry","previousChannelId","counterpartyVersion","proofInit","baseMsgChannelOpenTryResponse","baseMsgChannelOpenAck","counterpartyChannelId","proofTry","baseMsgChannelOpenAckResponse","baseMsgChannelOpenConfirm","proofAck","baseMsgChannelOpenConfirmResponse","baseMsgChannelCloseInit","baseMsgChannelCloseInitResponse","baseMsgChannelCloseConfirm","baseMsgChannelCloseConfirmResponse","baseMsgRecvPacket","packet","proofCommitment","baseMsgRecvPacketResponse","baseMsgTimeout","nextSequenceRecv","proofUnreceived","baseMsgTimeoutResponse","baseMsgTimeoutOnClose","proofClose","baseMsgTimeoutOnCloseResponse","baseMsgAcknowledgement","proofAcked","baseMsgAcknowledgementResponse","ChannelOpenInit","ChannelOpenTry","ChannelOpenAck","ChannelOpenConfirm","ChannelCloseInit","ChannelCloseConfirm","RecvPacket","Timeout","TimeoutOnClose","ClientUpdateProposal","ClientConsensusStates","ConsensusStateWithHeight","baseIdentifiedClientState","baseConsensusStateWithHeight","baseClientConsensusStates","baseClientUpdateProposal","baseHeight","allowedClients","QueryClientParamsResponse","QueryClientParamsRequest","QueryConsensusStatesResponse","QueryConsensusStatesRequest","QueryConsensusStateResponse","QueryClientStatesResponse","QueryClientStatesRequest","QueryClientStateResponse","QueryClientStateRequest","baseQueryClientStateRequest","baseQueryClientStateResponse","baseQueryClientStatesRequest","baseQueryClientStatesResponse","baseQueryConsensusStateRequest","baseQueryConsensusStateResponse","baseQueryConsensusStatesRequest","baseQueryConsensusStatesResponse","baseQueryClientParamsRequest","baseQueryClientParamsResponse","MsgSubmitMisbehaviourResponse","MsgUpgradeClientResponse","MsgUpdateClientResponse","MsgCreateClientResponse","baseMsgCreateClient","baseMsgCreateClientResponse","baseMsgUpdateClient","baseMsgUpdateClientResponse","baseMsgUpgradeClient","proofUpgradeClient","proofUpgradeConsensusState","baseMsgUpgradeClientResponse","baseMsgSubmitMisbehaviour","misbehaviour","baseMsgSubmitMisbehaviourResponse","CreateClient","UpdateClient","UpgradeClient","SubmitMisbehaviour","MerkleProof","MerklePath","MerklePrefix","MerkleRoot","baseMerkleRoot","baseMerklePrefix","keyPrefix","baseMerklePath","keyPath","baseMerkleProof","proofs","Version","ConnectionPaths","ClientPaths","IdentifiedConnection","ConnectionEnd","commitment_1","baseConnectionEnd","delayPeriod","baseIdentifiedConnection","baseClientPaths","paths","baseConnectionPaths","baseVersion","identifier","features","QueryConnectionConsensusStateResponse","QueryConnectionClientStateResponse","QueryConnectionClientStateRequest","QueryClientConnectionsResponse","QueryClientConnectionsRequest","QueryConnectionsResponse","QueryConnectionsRequest","QueryConnectionResponse","QueryConnectionRequest","connection_1","baseQueryConnectionRequest","baseQueryConnectionResponse","baseQueryConnectionsRequest","baseQueryConnectionsResponse","baseQueryClientConnectionsRequest","baseQueryClientConnectionsResponse","connectionPaths","baseQueryConnectionClientStateRequest","baseQueryConnectionClientStateResponse","baseQueryConnectionConsensusStateRequest","baseQueryConnectionConsensusStateResponse","MsgConnectionOpenConfirmResponse","MsgConnectionOpenAckResponse","MsgConnectionOpenTryResponse","MsgConnectionOpenInitResponse","baseMsgConnectionOpenInit","baseMsgConnectionOpenInitResponse","baseMsgConnectionOpenTry","previousConnectionId","counterpartyVersions","proofClient","proofConsensus","baseMsgConnectionOpenTryResponse","baseMsgConnectionOpenAck","counterpartyConnectionId","baseMsgConnectionOpenAckResponse","baseMsgConnectionOpenConfirm","baseMsgConnectionOpenConfirmResponse","ConnectionOpenInit","ConnectionOpenTry","ConnectionOpenAck","ConnectionOpenConfirm","Fraction","Misbehaviour","validator_1","baseClientState","upgradePath","allowUpdateAfterExpiry","allowUpdateAfterMisbehaviour","trustLevel","trustingPeriod","unbondingPeriod","maxClockDrift","frozenHeight","proofSpecs","baseConsensusState","baseMisbehaviour","header1","header2","baseHeader","signedHeader","SignedHeader","validatorSet","ValidatorSet","trustedHeight","trustedValidators","baseFraction","numerator","denominator","LastCommitInfo","BlockParams","ConsensusParams","ResponseApplySnapshotChunk","ResponseLoadSnapshotChunk","ResponseOfferSnapshot","ResponseListSnapshots","ResponseCommit","ResponseEndBlock","ResponseDeliverTx","ResponseCheckTx","ResponseBeginBlock","ResponseQuery","ResponseInitChain","ResponseSetOption","ResponseInfo","ResponseFlush","ResponseEcho","ResponseException","Response","RequestApplySnapshotChunk","RequestLoadSnapshotChunk","RequestOfferSnapshot","RequestListSnapshots","RequestCommit","RequestEndBlock","RequestDeliverTx","RequestCheckTx","RequestBeginBlock","RequestQuery","RequestInitChain","RequestSetOption","RequestInfo","RequestFlush","RequestEcho","Request","responseApplySnapshotChunk_ResultToJSON","responseApplySnapshotChunk_ResultFromJSON","ResponseApplySnapshotChunk_Result","responseOfferSnapshot_ResultToJSON","responseOfferSnapshot_ResultFromJSON","ResponseOfferSnapshot_Result","evidenceTypeToJSON","evidenceTypeFromJSON","EvidenceType","checkTxTypeToJSON","checkTxTypeFromJSON","CheckTxType","ABCIApplicationClientImpl","Snapshot","Evidence","VoteInfo","ValidatorUpdate","EventAttribute","proof_1","params_1","NEW","RECHECK","UNKNOWN","DUPLICATE_VOTE","LIGHT_CLIENT_ATTACK","ACCEPT","ABORT","REJECT","REJECT_FORMAT","REJECT_SENDER","RETRY","RETRY_SNAPSHOT","REJECT_SNAPSHOT","baseRequest","echo","flush","setOption","initChain","beginBlock","endBlock","listSnapshots","offerSnapshot","loadSnapshotChunk","applySnapshotChunk","baseRequestEcho","baseRequestFlush","baseRequestInfo","blockVersion","p2pVersion","baseRequestSetOption","baseRequestInitChain","initialHeight","appStateBytes","baseRequestQuery","baseRequestBeginBlock","lastCommitInfo","byzantineValidators","baseRequestCheckTx","baseRequestDeliverTx","baseRequestEndBlock","baseRequestCommit","baseRequestListSnapshots","baseRequestOfferSnapshot","snapshot","baseRequestLoadSnapshotChunk","format","baseRequestApplySnapshotChunk","baseResponse","exception","baseResponseException","baseResponseEcho","baseResponseFlush","baseResponseInfo","appVersion","baseResponseSetOption","baseResponseInitChain","baseResponseQuery","ProofOps","baseResponseBeginBlock","baseResponseCheckTx","baseResponseDeliverTx","baseResponseEndBlock","consensusParamUpdates","baseResponseCommit","retainHeight","baseResponseListSnapshots","snapshots","baseResponseOfferSnapshot","baseResponseLoadSnapshotChunk","baseResponseApplySnapshotChunk","refetchChunks","rejectSenders","baseConsensusParams","EvidenceParams","ValidatorParams","VersionParams","baseBlockParams","baseLastCommitInfo","baseEvent","baseEventAttribute","baseTxResult","baseValidatorUpdate","PublicKey","baseVoteInfo","signedLastBlock","baseEvidence","totalVotingPower","baseSnapshot","chunks","Echo","Flush","Info","SetOption","DeliverTx","CheckTx","Query","InitChain","BeginBlock","EndBlock","ListSnapshots","OfferSnapshot","LoadSnapshotChunk","ApplySnapshotChunk","basePublicKey","ProofOp","DominoOp","ValueOp","Proof","baseProof","baseValueOp","baseDominoOp","baseProofOp","baseProofOps","HashedParams","timeIotaMs","baseEvidenceParams","baseValidatorParams","pubKeyTypes","baseVersionParams","baseHashedParams","blockMaxBytes","blockMaxGas","TxProof","BlockMeta","LightBlock","CommitSig","Data","BlockID","Part","PartSetHeader","signedMsgTypeToJSON","signedMsgTypeFromJSON","SignedMsgType","blockIDFlagToJSON","blockIDFlagFromJSON","BlockIDFlag","BLOCK_ID_FLAG_UNKNOWN","BLOCK_ID_FLAG_ABSENT","BLOCK_ID_FLAG_COMMIT","BLOCK_ID_FLAG_NIL","SIGNED_MSG_TYPE_UNKNOWN","SIGNED_MSG_TYPE_PREVOTE","SIGNED_MSG_TYPE_PRECOMMIT","SIGNED_MSG_TYPE_PROPOSAL","basePartSetHeader","basePart","baseBlockID","partSetHeader","Consensus","_k","baseData","validatorIndex","baseCommit","baseCommitSig","polRound","baseSignedHeader","baseLightBlock","baseBlockMeta","baseTxProof","SimpleValidator","baseValidatorSet","baseSimpleValidator","App","baseApp","software","baseConsensus","formatArgs","useColors","namespace","humanize","color","lastC","save","namespaces","storage","setItem","removeItem","load","getItem","DEBUG","__nwjs","documentElement","style","WebkitAppearance","firebug","table","$1","localStorage","localstorage","warned","colors","formatters","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","curr","coerce","formatter","selectColor","init","delimiter","newDebug","toNamespace","regexp","disable","names","skips","enable","browser","tty","inspectOpts","stderr","colorCode","hideDate","isatty","fd","deprecate","supportsColor","O","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicate","defineProperties","predicates","getOwnPropertySymbols","elliptic","curves","eddsa","getNAF","getJSF","BaseCurve","conf","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","_fixedNafMul","doubles","_getDoubles","naf","I","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","jsf","ja","jb","decodePoint","pointFromX","_encode","compact","getX","getY","precompute","beta","_getBeta","_hasDoubles","dbl","Base","EdwardsCurve","twisted","mOneA","d","dd","oneC","Point","zOne","_mulA","_mulC","y2","pointFromY","isInfinity","_extDbl","nx","ny","nt","nz","_projDbl","_extAdd","_projAdd","mulAdd","k1","jmulAdd","zi","eqXToP","xc","short","edwards","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","isRed","inf","JPoint","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","_endoWnafMulAdd","npoints","ncoeffs","endoMul","obj2point","ys1","dyinv","_precompute","negate","zinv","zinv2","ay","pz2","z2","u1","u2","s2","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","zs","PresetCurve","defineCurve","HmacDRBG","KeyPair","Signature","EC","nh","priv","fromPrivate","pub","fromPublic","genKeyPair","drbg","pers","persEnc","hmacStrength","entropyEnc","ns2","_truncateToN","truncOnly","bkey","ns1","iter","kp","kpX","sinv","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","_importPrivate","privEnc","_importPublic","pubEnc","derive","_importDER","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","toDER","backHalf","parseBytes","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","Rencoded","encodePoint","s_","pubBytes","S","makeSignature","SG","intFromLE","fromSecret","lastIx","normed","xIsOdd","decodeInt","isPoint","cachedProperty","_secret","_pub","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","minAssert","minUtils","zero2","m8","d1","d2","m14","m24","computer","littleEndian","URL","Writable","eventHandlers","arg1","arg2","arg3","_redirectable","RedirectionError","createErrorType","TooManyRedirectsError","MaxBodyLengthExceededError","WriteAfterEndError","RedirectableRequest","responseCallback","_sanitizeOptions","_options","_ended","_ending","_redirectCount","_redirects","_requestBodyLength","_requestBodyBuffers","_onNativeResponse","_processResponse","_performRequest","wrap","protocols","nativeProtocols","scheme","nativeProtocol","wrappedProtocol","urlStr","urlToOptions","equal","wrappedRequest","urlObject","removeMatchingHeaders","regex","defaultMessage","cause","abortRequest","removeListener","_currentRequest","currentRequest","setHeader","removeHeader","msecs","destroyOnTimeout","addListener","startTimer","_timeout","clearTimer","once","property","searchPos","_currentUrl","_isRedirect","buffers","writeNext","trackRedirects","followRedirects","redirectUrl","currentHostHeader","currentUrlParts","currentHost","currentUrl","redirectUrlParts","subdomain","dot","isSameOrSubdomain","responseDetails","responseUrl","redirects","implementation","getPolyfill","shim","polyfill","getGlobal","define","getOwnPropertyDescriptor","flag","argv","terminatorPosition","Transform","HashBase","_block","_blockSize","_blockOffset","_length","_finalized","_transform","_flush","throwIfNotStringOrBuffer","_update","_digest","sha","ripemd","sha1","sha224","BlockHash","pendingTotal","outSize","padLength","_delta8","_delta32","join32","_pad","outer","rotl32","sum32","sum32_3","sum32_4","K","Kh","T","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","W","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","bh","ch","dh","eh","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","predResist","minEntropy","_reseed","reseedInterval","V","nonceEnc","_hmac","kmac","reseed","addEnc","temp","_interopRequireDefault","errorCodeToString","processErrorResponse","_x","_getVersion","ERROR_CODE","P1_VALUES","PAYLOAD_TYPE","INS","APP_KEY","CHUNK_SIZE","CLA","_regenerator","_asyncToGenerator2","_typeof2","GET_VERSION","INS_PUBLIC_KEY_SECP256K1","SIGN_SECP256K1","GET_ADDR_SECP256K1","INIT","ADD","LAST","ONLY_RETRIEVE","SHOW_ADDRESS_IN_DEVICE","NoError","ERROR_DESCRIPTION","return_code","mark","_callee","_context","abrupt","errorCodeData","returnCode","targetId","target_id","serializePathv1","writeUInt8","writeInt32LE","signSendChunkv1","_x2","_x3","_x4","_signSendChunkv","publicKeyv1","_x5","_x6","_publicKeyv","_common","chunkIdx","chunkNum","compressPublicKey","_callee2","_context2","pk","serializePathv2","writeUInt32LE","signSendChunkv2","publicKeyv2","_helperV","payloadType","_classCallCheck2","_createClass2","_crypto","_ripemd","_bech","_helperV2","CosmosApp","scrambleKey","decorateAppAPIMethods","_sign","_signSendChunk","_showAddressAndPubKey","_getAddressAndPubKey","_publicKey","_deviceInfo","_appInfo","_getVersion2","_signGetChunks","_serializePath","versionResponse","t0","serializedPath","serializePath","_callee3","_context3","_callee4","_context4","flagLen","flagsValue","appNameLen","appVersionLen","flag_recovery","flag_signed_mcu_code","flag_onboarded","flag_pin_validated","_callee5","_context5","secureElementVersionLen","seVersion","flagsLen","mcuVersionLen","mcuVersion","_callee6","_context6","serializeHRP","_callee7","hrp","_this","_context7","compressedPk","bech32_address","_callee8","_this2","_context8","_x7","_x8","_callee9","_context9","_x9","_x10","_x11","_callee11","_this3","_context11","signGetChunks","signSendChunk","_ref","_callee10","_context10","_x14","_x12","_x13","hashSha256","createHash","hashRip","sodium","onload","_sodium_init","Y","M","L","U","P","X","J","Z","$","te","ae","se","ne","ce","oe","he","pe","ye","ue","de","ve","ge","be","fe","me","Ee","xe","ke","Se","Te","we","Ye","Be","Ae","Ke","Me","Ie","Ne","Le","Ue","Oe","Ce","Re","Pe","Ge","Xe","De","Fe","Ve","He","qe","je","ze","We","Je","Qe","Ze","$e","_r","nr","hr","pr","yr","lr","ur","vr","gr","fr","mr","Er","xr","kr","Sr","Tr","wr","Yr","Br","Ar","Mr","Ir","Nr","Lr","Ur","Or","Cr","Rr","Pr","Gr","Xr","Dr","Fr","Vr","Hr","qr","jr","zr","Wr","Jr","Qr","Zr","$r","et","rt","tt","at","_t","st","ct","ot","ht","pt","yt","it","UTF8ToString","randombytes_buf","crypto_secretbox_NONCEBYTES","crypto_secretbox_KEYBYTES","crypto_secretbox_easy","crypto_secretbox_open_easy","memcmp","useBackupModule","escape","ORIGINAL","ORIGINAL_NO_PADDING","URLSAFE","URLSAFE_NO_PADDING","_sodium_bin2base64","to_Uint8Array","HEAPU8","_malloc","_free","_crypto_aead_chacha20poly1305_abytes","_crypto_aead_chacha20poly1305_npubbytes","_crypto_aead_chacha20poly1305_keybytes","_crypto_aead_chacha20poly1305_decrypt","_crypto_box_macbytes","_crypto_aead_chacha20poly1305_decrypt_detached","_crypto_aead_chacha20poly1305_encrypt","_crypto_aead_chacha20poly1305_encrypt_detached","mac","_crypto_aead_chacha20poly1305_ietf_abytes","_crypto_aead_chacha20poly1305_ietf_npubbytes","_crypto_aead_chacha20poly1305_ietf_keybytes","_crypto_aead_chacha20poly1305_ietf_decrypt","_crypto_aead_chacha20poly1305_ietf_decrypt_detached","_crypto_aead_chacha20poly1305_ietf_encrypt","_crypto_aead_chacha20poly1305_ietf_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_keygen","_crypto_aead_chacha20poly1305_keygen","_crypto_aead_xchacha20poly1305_ietf_abytes","_crypto_aead_xchacha20poly1305_ietf_npubbytes","_crypto_aead_xchacha20poly1305_ietf_keybytes","_crypto_aead_xchacha20poly1305_ietf_decrypt","_crypto_aead_xchacha20poly1305_ietf_decrypt_detached","_crypto_aead_xchacha20poly1305_ietf_encrypt","_crypto_aead_xchacha20poly1305_ietf_encrypt_detached","_crypto_aead_xchacha20poly1305_ietf_keygen","_crypto_auth_keybytes","_crypto_auth_bytes","_crypto_auth","_crypto_auth_hmacsha256_keybytes","_crypto_auth_hmacsha256_bytes","_crypto_auth_hmacsha256","_crypto_auth_hmacsha256_keygen","_crypto_auth_hmacsha256_verify","_crypto_auth_hmacsha512_keybytes","_crypto_auth_hmacsha512_bytes","_crypto_auth_hmacsha512","_crypto_auth_hmacsha512_keygen","_crypto_auth_hmacsha512_verify","_crypto_auth_keygen","_crypto_auth_verify","_crypto_box_publickeybytes","_crypto_box_secretkeybytes","_crypto_box_beforenmbytes","_crypto_box_beforenm","_crypto_box_curve25519xchacha20poly1305_publickeybytes","_crypto_box_curve25519xchacha20poly1305_secretkeybytes","_crypto_box_curve25519xchacha20poly1305_keypair","keyType","_crypto_box_curve25519xchacha20poly1305_sealbytes","_crypto_box_curve25519xchacha20poly1305_seal","_crypto_box_curve25519xchacha20poly1305_seal_open","_crypto_box_noncebytes","_crypto_box_detached","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_open_detached","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_sealbytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_seedbytes","_crypto_box_seed_keypair","_crypto_core_ed25519_bytes","_crypto_core_ed25519_add","_crypto_core_ed25519_from_hash","_crypto_core_ed25519_from_uniform","_crypto_core_ed25519_is_valid_point","_crypto_core_ed25519_random","_crypto_core_ed25519_scalarbytes","_crypto_core_ed25519_scalar_add","_crypto_core_ed25519_scalar_complement","_crypto_core_ed25519_scalar_invert","_crypto_core_ed25519_scalar_mul","_crypto_core_ed25519_scalar_negate","_crypto_core_ed25519_scalar_random","_crypto_core_ed25519_nonreducedscalarbytes","_crypto_core_ed25519_scalar_reduce","_crypto_core_ed25519_scalar_sub","_crypto_core_ed25519_sub","_crypto_core_ristretto255_bytes","_crypto_core_ristretto255_add","_crypto_core_ristretto255_from_hash","_crypto_core_ristretto255_is_valid_point","_crypto_core_ristretto255_random","_crypto_core_ristretto255_scalarbytes","_crypto_core_ristretto255_scalar_add","_crypto_core_ristretto255_scalar_complement","_crypto_core_ristretto255_scalar_invert","_crypto_core_ristretto255_scalar_mul","_crypto_core_ristretto255_scalar_negate","_crypto_core_ristretto255_scalar_random","_crypto_core_ristretto255_nonreducedscalarbytes","_crypto_core_ristretto255_scalar_reduce","_crypto_core_ristretto255_scalar_sub","_crypto_core_ristretto255_sub","_crypto_generichash","_crypto_generichash_blake2b_saltbytes","_crypto_generichash_blake2b_personalbytes","_crypto_generichash_blake2b_salt_personal","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keygen","_crypto_generichash_update","_crypto_hash_bytes","_crypto_hash","_crypto_hash_sha256_bytes","_crypto_hash_sha256","_crypto_hash_sha256_final","_crypto_hash_sha256_init","_crypto_hash_sha256_update","_crypto_hash_sha512_bytes","_crypto_hash_sha512","_crypto_hash_sha512_final","_crypto_hash_sha512_init","_crypto_hash_sha512_update","_crypto_kdf_keybytes","_crypto_kdf_derive_from_key","_crypto_kdf_keygen","_crypto_kx_publickeybytes","_crypto_kx_secretkeybytes","_crypto_kx_sessionkeybytes","_crypto_kx_client_session_keys","sharedRx","sharedTx","_crypto_kx_keypair","_crypto_kx_seedbytes","_crypto_kx_seed_keypair","_crypto_kx_server_session_keys","_crypto_onetimeauth_keybytes","_crypto_onetimeauth_bytes","_crypto_onetimeauth","_crypto_onetimeauth_final","_crypto_onetimeauth_init","_crypto_onetimeauth_keygen","_crypto_onetimeauth_update","_crypto_onetimeauth_verify","_crypto_pwhash_saltbytes","_crypto_pwhash","_crypto_pwhash_scryptsalsa208sha256_saltbytes","_crypto_pwhash_scryptsalsa208sha256","_crypto_pwhash_scryptsalsa208sha256_ll","_crypto_pwhash_scryptsalsa208sha256_strbytes","_crypto_pwhash_scryptsalsa208sha256_str","_crypto_pwhash_scryptsalsa208sha256_str_verify","_crypto_pwhash_strbytes","_crypto_pwhash_str","_crypto_pwhash_str_needs_rehash","_crypto_pwhash_str_verify","_crypto_scalarmult_scalarbytes","_crypto_scalarmult_bytes","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_ed25519_scalarbytes","_crypto_scalarmult_ed25519_bytes","_crypto_scalarmult_ed25519","_crypto_scalarmult_ed25519_base","_crypto_scalarmult_ed25519_base_noclamp","_crypto_scalarmult_ed25519_noclamp","_crypto_scalarmult_ristretto255_scalarbytes","_crypto_scalarmult_ristretto255_bytes","_crypto_scalarmult_ristretto255","_crypto_scalarmult_ristretto255_base","_crypto_secretbox_noncebytes","_crypto_secretbox_keybytes","_crypto_secretbox_macbytes","_crypto_secretbox_detached","cipher","_crypto_secretbox_easy","_crypto_secretbox_keygen","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_secretstream_xchacha20poly1305_headerbytes","_crypto_secretstream_xchacha20poly1305_keybytes","_crypto_secretstream_xchacha20poly1305_init_pull","_crypto_secretstream_xchacha20poly1305_init_push","_crypto_secretstream_xchacha20poly1305_keygen","_crypto_secretstream_xchacha20poly1305_abytes","_crypto_secretstream_xchacha20poly1305_pull","_crypto_secretstream_xchacha20poly1305_push","_crypto_secretstream_xchacha20poly1305_rekey","_crypto_shorthash_keybytes","_crypto_shorthash_bytes","_crypto_shorthash","_crypto_shorthash_keygen","_crypto_shorthash_siphashx24_keybytes","_crypto_shorthash_siphashx24_bytes","_crypto_shorthash_siphashx24","_crypto_sign_secretkeybytes","_crypto_sign_bytes","_crypto_sign","_crypto_sign_detached","_crypto_sign_publickeybytes","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_ed25519_sk_to_pk","_crypto_sign_seedbytes","_crypto_sign_ed25519_sk_to_seed","_crypto_sign_final_create","_crypto_sign_final_verify","_crypto_sign_init","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_seed_keypair","_crypto_sign_update","_crypto_sign_verify_detached","_crypto_stream_chacha20_keybytes","_crypto_stream_chacha20_noncebytes","_crypto_stream_chacha20","_crypto_stream_chacha20_ietf_noncebytes","_crypto_stream_chacha20_ietf_keybytes","_crypto_stream_chacha20_ietf_xor","_crypto_stream_chacha20_ietf_xor_ic","_crypto_stream_chacha20_keygen","_crypto_stream_chacha20_xor","_crypto_stream_chacha20_xor_ic","_crypto_stream_keybytes","_crypto_stream_keygen","_crypto_stream_xchacha20_keybytes","_crypto_stream_xchacha20_keygen","_crypto_stream_xchacha20_noncebytes","_crypto_stream_xchacha20_xor","_crypto_stream_xchacha20_xor_ic","_randombytes_buf","_randombytes_seedbytes","_randombytes_buf_deterministic","_randombytes_close","_randombytes_random","setValue","Runtime","addFunction","_randombytes_set_implementation","_randombytes_stir","_randombytes_uniform","_sodium_version_string","base64_variants","from_base64","result_bin_len_p","b64_end_p","_sodium_base642bin","getValue","from_hex","hex_end_p","_sodium_hex2bin","from_string","is_zero","libsodium","memzero","output_formats","_sodium_pad","unpad","_sodium_unpad","symbols","to_base64","to_hex","to_string","totalMemory","TOTAL_MEMORY","onAbort","print","printErr","onRuntimeInitialized","importScripts","locateFile","bA","readFileSync","_A","readbuffer","scriptArgs","currentScript","thisProgram","quit","wasmBinary","noExitRuntime","Memory","Module","Instance","grow","Wg","Int8Array","Int16Array","Int32Array","Uint16Array","fround","trunc","AA","IA","gA","BA","QA","CA","EA","iA","nA","aA","rA","oA","eA","tA","fA","cA","yA","sA","wA","hA","DA","ug","dA","HI","eg","vI","II","uA","pA","lA","FA","GA","kA","HA","YA","Yg","QI","rI","Hg","xI","mI","nI","tI","fI","OI","qA","iI","hg","dI","GI","Vg","XI","ig","UI","mA","vA","UA","SA","NA","MA","PA","RA","JA","xA","LA","KA","XA","VA","WA","TA","jA","ZA","OA","pg","gg","CI","EI","vg","zI","fg","DI","JI","_I","AI","$I","lg","Ag","yg","Fg","zA","wg","RI","KI","eI","FI","Ug","Gg","kg","BI","og","NI","rg","SI","WI","cI","$A","gI","aI","oI","YI","yI","sI","wI","jI","Qg","hI","Cg","uI","pI","lI","qI","sg","TI","kI","bI","MI","LI","VI","ZI","Ig","cg","Bg","Eg","ng","ag","tg","Dg","bg","mg","Sg","Ng","Mg","dg","Pg","Rg","Jg","xg","Lg","Kg","qg","Xg","ba","ca","ea","fa","ga","ha","ia","ka","la","ma","na","oa","pa","qa","ra","sa","ta","ua","va","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","$a","ab","db","eb","fb","gb","hb","ib","kb","lb","mb","nb","ob","pb","qb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","wc","yc","zc","Ac","Bc","Cc","instantiate","RuntimeError","HEAP8","HEAP16","HEAP32","HEAPU16","HEAPU32","HEAPF32","HEAPF64","INITIAL_MEMORY","wasmMemory","maximum","preRun","postRun","func","monitorRunDependencies","clearInterval","preloadedImages","preloadedAudios","credentials","ok","arrayBuffer","asm","instantiateWasm","instantiateStreaming","getRandomValue","copyWithin","hardwareConcurrency","___wasm_call_ctors","_crypto_aead_chacha20poly1305_ietf_nsecbytes","_crypto_aead_chacha20poly1305_ietf_messagebytes_max","_crypto_aead_chacha20poly1305_nsecbytes","_crypto_aead_chacha20poly1305_messagebytes_max","_crypto_aead_xchacha20poly1305_ietf_nsecbytes","_crypto_aead_xchacha20poly1305_ietf_messagebytes_max","_crypto_box_messagebytes_max","_crypto_box_detached_afternm","_crypto_box_open_detached_afternm","_crypto_generichash_bytes_min","_crypto_generichash_bytes_max","_crypto_generichash_bytes","_crypto_generichash_keybytes_min","_crypto_generichash_keybytes_max","_crypto_generichash_statebytes","_crypto_kdf_bytes_min","_crypto_kdf_bytes_max","_crypto_kdf_contextbytes","_crypto_pwhash_alg_argon2i13","_crypto_pwhash_alg_argon2id13","_crypto_pwhash_alg_default","_crypto_pwhash_bytes_min","_crypto_pwhash_bytes_max","_crypto_pwhash_passwd_min","_crypto_pwhash_passwd_max","_crypto_pwhash_strprefix","_crypto_pwhash_opslimit_min","_crypto_pwhash_opslimit_max","_crypto_pwhash_memlimit_min","_crypto_pwhash_memlimit_max","_crypto_pwhash_opslimit_interactive","_crypto_pwhash_memlimit_interactive","_crypto_pwhash_opslimit_moderate","_crypto_pwhash_memlimit_moderate","_crypto_pwhash_opslimit_sensitive","_crypto_pwhash_memlimit_sensitive","_crypto_pwhash_str_alg","_crypto_secretbox_messagebytes_max","_crypto_secretstream_xchacha20poly1305_statebytes","_crypto_secretstream_xchacha20poly1305_messagebytes_max","_crypto_secretstream_xchacha20poly1305_tag_message","_crypto_secretstream_xchacha20poly1305_tag_push","_crypto_secretstream_xchacha20poly1305_tag_rekey","_crypto_secretstream_xchacha20poly1305_tag_final","_crypto_sign_statebytes","_crypto_sign_messagebytes_max","_randombytes","_sodium_bin2hex","_sodium_base64_encoded_len","_sodium_library_version_major","_sodium_library_version_minor","_sodium_library_minimal","___errno_location","calledRun","setStatus","run","preInit","WebAssembly","__isLong__","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","radix","radixToPower","TWO_PWR_16_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","isNegative","radixLong","rem1","rem","remDiv","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","eqz","isPositive","notEquals","neq","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","thisNeg","otherNeg","not","addend","a48","a32","a16","a00","b48","b32","b16","c48","c32","c16","c00","subtract","subtrahend","multiplier","get_high","b00","divide","divisor","approx","div_u","div_s","toUnsigned","shru","shr","approxRes","approxRem","modulo","rem_u","rem_s","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytesLE","toBytesBE","fromBytesLE","Yallist","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","doUse","hit","isStale","del","unshiftNode","maxAge","walker","delete","removeNode","Entry","forEachStep","thisp","stale","dispose","noDisposeOnSet","updateAgeOnGet","mL","allowStale","lengthCalculator","lC","itemCount","rforEach","dump","dumpLru","peek","expiresAt","prune","plural","msAbs","isPlural","parseFloat","long","fmtShort","fs","os","runtimeRequire","vars","variables","prebuildsOnly","PREBUILDS_ONLY","abi","modules","runtime","electron","ELECTRON_RUN_AS_NODE","arch","platform","libc","LIBC","existsSync","isAlpine","armv","ARM_VERSION","arm_version","uv","dir","readdirSync","getFirst","files","matchBuild","parseTuple","architectures","matchTuple","tuple","compareTuples","parseTags","file","specificity","napi","matchTags","runtimeAgnostic","compareTags","release","prebuild","nearby","dirname","execPath","prebuilds","winner","keysShim","isArgs","isEnumerable","propertyIsEnumerable","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","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","callee","Deflate","deflate","deflateRaw","Inflate","inflate","inflateRaw","ungzip","constants","zlib_deflate","strings","ZStream","Z_NO_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","chunkSize","windowBits","memLevel","strategy","ended","strm","avail_out","deflateInit2","deflateSetHeader","dictionary","dict","string2buf","deflateSetDictionary","_dict_set","deflator","flush_mode","_flush_mode","next_in","avail_in","next_out","onData","deflateEnd","onEnd","flattenChunks","zlib_inflate","GZheader","Z_NEED_DICT","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","inflateInit2","inflateGetHeader","inflateSetDictionary","inflator","last_avail_out","inflateReset","next_out_utf8","utf8border","utf8str","buf2string","inflateEnd","_has","sources","STR_APPLY_UIA_OK","__","_utf8len","m_pos","str_len","buf_len","utf16buf","c_len","buf2binstring","adler","Z_PARTIAL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","crcTable","makeTable","crc","_tr_init","_tr_stored_block","_tr_flush_block","_tr_tally","_tr_align","adler32","crc32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","rank","HASH","hash_shift","hash_mask","flush_pending","pending_buf","pending_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","insert","ins_h","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","configuration_table","max_block_size","pending_buf_size","max_start","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","deflateReset","deflateInit","beg","old_flush","text","hcrc","extra","comment","level_flags","bstate","deflate_huff","deflate_rle","dictLength","tmpDict","avail","deflateInfo","xflags","extra_len","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","inflate_fast","inflate_table","TYPE","BAD","zswap32","InflateState","havedict","flags","wbits","ncode","nlen","ndist","have","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset2","lenfix","distfix","virgin","fixedtables","sym","updatewindow","inflateInit","put","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","inf_leave","dictid","inflateInfo","lbase","lext","dbase","dext","lens_index","codes","table_index","incr","drop","used","huff","base_index","MAXBITS","offs","extra_index","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lx","build_tree","stree","xbits","overflow","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","NodeError","getMessage","oneOf","expected","actual","determiner","this_len","objectKeys","Duplex","Readable","allowHalfOpen","readable","onend","_writableState","onEndNT","highWaterMark","getBuffer","_readableState","PassThrough","ReadableState","EElistenerCount","emitter","OurUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","_read","_destroy","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","endFn","stdout","unpipe","onunpipe","unpipeInfo","hasUnpiped","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","prependListener","_events","dests","ev","removeAllListeners","asyncIterator","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","prefinish","_write","err2","CorkedRequest","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","final","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","rState","hasInstance","Function","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","_defineProperty","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","lastPromise","wrapForNext","_Object$create","ownKeys","enumerableOnly","custom","_classCallCheck","hasStrings","_getString","_getBuffer","getOwnPropertyDescriptors","_objectSpread","customInspect","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","eos","called","_len","onlegacyfinish","writableEnded","readableEnded","onrequest","isRequest","_asyncToGenerator","_next2","ERR_MISSING_ARGS","destroyer","popCallback","destroys","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","READABLE_STREAM","pipeline","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","__proto__","awrap","skipTempReset","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ARRAY16","fn1","fn2","fn3","fn4","fn5","readInt32LE","copyProps","SafeBuffer","encodingOrOffset","allocUnsafeSlow","SlowBuffer","ANY","Comparator","parseOptions","loose","semver","operator","COMPARATORLOOSE","COMPARATOR","SemVer","intersects","includePrerelease","Range","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","range","parseRange","isNullSet","isAny","comps","memoKey","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","compRe","rangeList","parseComparator","replaceGTE0","rangeMap","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","testSet","comparators","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","replaceCaret","CARETLOOSE","CARET","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","tM","tm","tp","tpr","prerelease","allowed","MAX_LENGTH","compareIdentifiers","LOOSE","FULL","compareMain","comparePre","compareBuild","inc","rtl","COERCERTL","lastIndex","COERCE","versionA","versionB","version1","version2","hasPre","defaultResult","internalRe","SEMVER_SPEC_VERSION","rcompareIdentifiers","valid","clean","rcompare","compareLoose","rsort","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","MAX_SAFE_COMPONENT_LENGTH","NODE_DEBUG","numeric","anum","bnum","createToken","isGlobal","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","LONETILDE","LONECARET","r1","maxSV","rangeObj","minSV","minver","setMin","comparator","compver","hilo","gtfn","ltefn","ltfn","ecomp","ranges","simplified","original","simpleSubset","dom","eqSet","gtltComp","higher","lower","hasDomLT","hasDomGT","higherGT","lowerLT","needDomLTPre","needDomGTPre","sawNonNull","OUTER","simpleSub","simpleDom","isSub","isEncoding","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckExtraBytes","utf8CheckIncomplete","hasFlag","forceColor","translateLevel","hasBasic","has256","has16m","haveStream","streamIsTTY","TERM","osRelease","CI_NAME","TEAMCITY_VERSION","COLORTERM","TERM_PROGRAM_VERSION","TERM_PROGRAM","FORCE_COLOR","isTTY","_Symbol","observable","cosmwasm_stargate_1","faucet_client_1","setupNodeLedger","setupNodeLocal","setupWebLedger","setupWebKeplr","ledger_amino_1","keplr","offlineSigner","getOfflineSignerAuto","connectWithSigner","rpcEndpoint","interactiveTimeout","ledgerTransport","setup_1","stargate_2","WebSocket","createWebSocketStream","Server","Receiver","Sender","EMPTY_BUFFER","totalLength","_mask","_unmask","toArrayBuffer","readOnly","bufferUtil","bu","BufferUtil","BINARY_TYPES","GUID","kStatusCode","kWebSocket","NOOP","MessageEvent","CloseEvent","_closeFrameReceived","_closeFrameSent","OpenEvent","ErrorEvent","EventTarget","onMessage","onClose","onOpen","_listener","removeEventListener","tokenChars","elem","configurations","offers","extensionName","paramName","mustUnescape","isEscaping","inQuotes","SyntaxError","kDone","kRun","concurrency","jobs","job","Limiter","TRAILER","kPerMessageDeflate","kTotalLength","kCallback","kBuffers","zlibLimiter","deflateOnData","inflateOnData","_maxPayload","inflateOnError","_inflate","isServer","maxPayload","_threshold","_isServer","_deflate","concurrencyLimit","offer","serverNoContextTakeover","server_no_context_takeover","clientNoContextTakeover","client_no_context_takeover","serverMaxWindowBits","server_max_window_bits","clientMaxWindowBits","client_max_window_bits","accept","normalizeParams","acceptAsServer","acceptAsClient","cleanup","accepted","fin","_decompress","_compress","Z_DEFAULT_WINDOWBITS","createInflateRaw","zlibInflateOptions","createDeflateRaw","zlibDeflateOptions","PerMessageDeflate","isValidStatusCode","isValidUTF8","ErrorCtor","binaryType","_binaryType","_extensions","_bufferedBytes","_buffers","_compressed","_payloadLength","_fragmented","_masked","_fin","_opcode","_totalPayloadLength","_messageLength","_fragments","_state","_loop","startLoop","getInfo","getPayloadLength16","getPayloadLength64","getMask","getData","haveLength","readUInt16BE","readUInt32BE","controlMessage","dataMessage","messageLength","fragments","randomFillSync","applyMask","_socket","_firstFragment","_deflating","_queue","payloadLength","opcode","rsv1","writeUInt16BE","writeUInt32BE","enqueue","doClose","sendFrame","frame","ping","doPing","pong","doPong","perMessageDeflate","dispatch","dequeue","Reflect","duplexOnEnd","duplexOnError","resumeOnReceiverDrain","terminateOnDestroy","receiverOnDrain","_receiver","duplex","terminate","_isValidUTF8","Validation","keyRegex","server","socketOnError","abortHandshake","STATUS_CODES","handleProtocols","clientTracking","verifyClient","noServer","backlog","_server","createServer","writeHead","emitConnection","_removeListeners","addListeners","listening","upgrade","handleUpgrade","clients","shouldHandle","origin","authorized","encrypted","completeUpgrade","_protocol","setSocket","net","tls","readyStates","protocolVersions","_closeCode","_closeMessage","_closeTimer","_readyState","_sender","_bufferedAmount","initAsClient","bufferedAmount","_url","receiverOnConclude","receiverOnError","receiverOnMessage","receiverOnPing","receiverOnPong","setNoDelay","socketOnClose","socketOnData","socketOnEnd","_req","sendAfterClose","websocket","createConnection","parsedUrl","isUnixSocket","emitErrorAndClose","isSecure","defaultPort","tlsConnect","netConnect","Upgrade","handshakeTimeout","Origin","addr","serverProt","protList","protError","secWebSocketExtensions","extensionNames","servername","isIP","receiverOnFinish","extendStatics","__extends","NO_IL","NO","ponyfill_1","globalthis_1","$$observable","cp","_try","_n","internalizeProducer","_start","_stop","StreamSub","_stream","_remove","Observer","FromObservable","ins","active","_sub","Merge","insArr","_add","CombineListener","ils","up","vals","Nc","Combine","Nn","FromArray","FromPromise","prod","Periodic","intervalID","setInterval","Debug","Drop","dropped","EndWhenListener","EndWhen","oil","Filter","passes","FlattenListener","less","Flatten","Fold","Last","MapOp","project","Remember","ReplaceError","replacer","StartWith","Take","taken","_prod","_ils","_stopID","_dl","_target","_stopNow","_pruneCycles","_hasNoSinks","trace","never","empty","throw","fromObservable","fromPromise","fromArray","of","_i","obs","endWhen","periodic","_map","mapTo","projectedValue","f1","f2","startWith","fold","accumulate","replaceError","flatten","compose","remember","labelOrSpy","imitate","shamefullySendNext","shamefullySendError","shamefullySendComplete","setDebugListener","combine","_super","_v","inserted","Node","pushNode","forEachReverse","getReverse","mapReverse","reduceReverse","toArrayReverse","sliceReverse","deleteCount","nodes","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","nmd","children","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/get-started.md b/docs/get-started.md index 9229ecb..c52f705 100644 --- a/docs/get-started.md +++ b/docs/get-started.md @@ -29,6 +29,17 @@ So your `package.json` should look like: } ``` +**CosmWasmJS in the browser** +You can access all the objects of the cosmwasm from the global `cosmwasm` object if you load CosmWasmJS with a ` +``` + # Basics ## Clients diff --git a/package.json b/package.json index fe42dc3..2bdfe04 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "rm -rf ./build && tsc", - "lint": "eslint --max-warnings 0 \"./src/**/*.ts\"" + "lint": "eslint --max-warnings 0 \"./src/**/*.ts\"", + "webpack": "npx webpack" }, "bin": "src/cli/bin/cli", "repository": { @@ -34,21 +35,23 @@ "homepage": "https://github.com/CosmWasm/CosmWasmJS#readme", "dependencies": { "@cosmjs/amino": "0.28.0-rc1", + "@cosmjs/cli": "0.28.0-rc1", "@cosmjs/cosmwasm-stargate": "0.28.0-rc1", "@cosmjs/crypto": "0.28.0-rc1", "@cosmjs/encoding": "0.28.0-rc1", "@cosmjs/faucet-client": "0.28.0-rc1", "@cosmjs/ledger-amino": "0.28.0-rc1", + "@cosmjs/math": "0.28.0-rc1", "@cosmjs/proto-signing": "0.28.0-rc1", "@cosmjs/stargate": "0.28.0-rc1", - "@cosmjs/cli": "0.28.0-rc1", - "@cosmjs/math": "0.28.0-rc1", - "@cosmjs/utils": "0.28.0-rc1" + "@cosmjs/utils": "0.28.0-rc1", + "bufferutil": "^4.0.6" }, "devDependencies": { "@types/ledgerhq__hw-transport": "^4.21.4", "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", + "buffer": "^6.0.3", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-config-standard": "^16.0.3", @@ -57,7 +60,15 @@ "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-promise": "^5.2.0", "eslint-plugin-simple-import-sort": "^7.0.0", + "path-browserify": "^1.0.1", "prettier": "^2.5.1", - "typescript": "^4.5.5" + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "ts-loader": "^9.2.7", + "tsconfig-paths-webpack-plugin": "^3.5.2", + "typescript": "^4.5.5", + "utf-8-validate": "^5.0.8", + "webpack": "^5.70.0", + "webpack-cli": "^4.9.2" } } diff --git a/tsconfig.json b/tsconfig.json index 586a795..00485c6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,11 @@ "declaration": true, "outDir": "./build", "strict": true, - "esModuleInterop": true + "esModuleInterop": true, + "baseUrl": "./", + "paths": { + "*": ["src/*"] + } }, "include": ["src"], "exclude": ["node_modules", "**/__tests__/*"] diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..3b007e5 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,66 @@ +const webpack = require("webpack"); +const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin"); +// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; + +const commonConfig = { + mode: "production", + entry: "./src/index.ts", + devtool: "source-map", + module: { + rules: [ + { + test: /\.tsx?$/, + use: "ts-loader", + exclude: /node_modules/, + }, + ], + }, + resolve: { + extensions: [".tsx", ".ts", ".js"], + plugins: [new TsconfigPathsPlugin()], + }, + plugins: [ + new webpack.IgnorePlugin({ + resourceRegExp: + /wordlists\/(french|spanish|italian|korean|chinese_simplified|chinese_traditional|japanese)\.json$/, + }), + ], +}; + +const webConfig = { + ...commonConfig, + target: "web", + output: { + filename: "bundle.js", + libraryTarget: "umd", + library: "CosmWasmJS", + }, + resolve: { + ...commonConfig.resolve, + fallback: { + stream: require.resolve("stream-browserify"), + buffer: require.resolve("buffer"), + path: require.resolve("path-browserify"), + }, + }, + plugins: [ + ...commonConfig.plugins, + new webpack.ProvidePlugin({ + Buffer: ["buffer", "Buffer"], + }), + new webpack.ProvidePlugin({ + process: "process/browser", + }), + ], +}; + +const nodeConfig = { + ...commonConfig, + target: "node", + output: { + libraryTarget: "commonjs", + filename: "bundle.node.js", + }, +}; + +module.exports = [webConfig, nodeConfig]; diff --git a/yarn.lock b/yarn.lock index c47dc51..7d4062f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,7 +32,7 @@ "@confio/ics23@^0.6.8": version "0.6.8" - resolved "https://registry.yarnpkg.com/@confio/ics23/-/ics23-0.6.8.tgz#2a6b4f1f2b7b20a35d9a0745bb5a446e72930b3d" + resolved "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz" integrity sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w== dependencies: "@noble/hashes" "^1.0.0" @@ -40,7 +40,7 @@ "@cosmjs/amino@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.28.0-rc1.tgz#0666d29c758972621cce0a9f0835f427125a0a42" + resolved "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.28.0-rc1.tgz" integrity sha512-XPDzj4a1P9OnrUCh9Otw3b/wOwwSCd2bbtA9/hMFqSRGFBouTkjtAyGS4gadfPUSch+banVzAHMgf/TxAi6e5g== dependencies: "@cosmjs/crypto" "0.28.0-rc1" @@ -50,7 +50,7 @@ "@cosmjs/cli@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/cli/-/cli-0.28.0-rc1.tgz#7277b66a8b80bdf0b27ef6a1f38431cf74a5a487" + resolved "https://registry.npmjs.org/@cosmjs/cli/-/cli-0.28.0-rc1.tgz" integrity sha512-u9L1C1KcVHASreoz7J0mlwBfDgP7vUPqhHy8C+Ab7nomONOVQi/IndV2x7yJz87cegOf4K77u2x3AA+3mC3kjA== dependencies: "@cosmjs/amino" "0.28.0-rc1" @@ -75,7 +75,7 @@ "@cosmjs/cosmwasm-stargate@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.28.0-rc1.tgz#1577c76542fbf0d8968edb157d666b085eda5da8" + resolved "https://registry.npmjs.org/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.28.0-rc1.tgz" integrity sha512-Y2hxs7BPvI0WsnHQqxnMCWEbd8l9JzF9etTMAtGOwFZJzPWz7G1WYdQ0/WKCJscymFV7cUvRPxX2NhVrZkhHgA== dependencies: "@cosmjs/amino" "0.28.0-rc1" @@ -93,7 +93,7 @@ "@cosmjs/crypto@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.28.0-rc1.tgz#2267050eec7d341ca3b73150a306b3c6c7fde3ec" + resolved "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.0-rc1.tgz" integrity sha512-7SaOH1HHVyDOTTB1mUb1aULpSlEVuVR3HWKyDjVN+loJtIx2iaS9HbS5tJKwISky6xiPrCyC0WrYaXHY9nQ/mg== dependencies: "@cosmjs/encoding" "0.28.0-rc1" @@ -106,7 +106,7 @@ "@cosmjs/encoding@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.28.0-rc1.tgz#59ab625854afafeaaa1ae4cda72b8bafa774d390" + resolved "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.0-rc1.tgz" integrity sha512-FMQoAMR9aVDS3iTE1CyCwWEZPJF9/kTGjLjzmpWbYAJuSKJCx6sjYZhwFHZTfChuw21tIsY65MmxkTD6H0y2Hg== dependencies: base64-js "^1.3.0" @@ -115,14 +115,14 @@ "@cosmjs/faucet-client@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/faucet-client/-/faucet-client-0.28.0-rc1.tgz#5b2bd6cd0cccd79f13641d7dbe9b0a571a64ad8b" + resolved "https://registry.npmjs.org/@cosmjs/faucet-client/-/faucet-client-0.28.0-rc1.tgz" integrity sha512-SxHgxEL4CT85XU4PGR94ML04MyIkxShIsef9Ir7blMK5bxhrYY/bowDzgc3tghRxYkP2Ks8Lm3tovkU6dRZ7PQ== dependencies: axios "^0.21.2" "@cosmjs/json-rpc@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.28.0-rc1.tgz#329a905981626af9923c9c9453393a892c21961b" + resolved "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.28.0-rc1.tgz" integrity sha512-LIdg0/2gAKX4q5u/tO56dhDZt3AnL06UWnZpFMmoYK83qxoit37ETWG7T1JTRNPekNjyKfIDdZJescIL8DiMBg== dependencies: "@cosmjs/stream" "0.28.0-rc1" @@ -130,7 +130,7 @@ "@cosmjs/ledger-amino@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/ledger-amino/-/ledger-amino-0.28.0-rc1.tgz#17cf93a78785986751e9da1e155a1188e676cfe8" + resolved "https://registry.npmjs.org/@cosmjs/ledger-amino/-/ledger-amino-0.28.0-rc1.tgz" integrity sha512-lrwa4jpjfmWyCBBmxQv1V0OXSGLjKzV3+43GXx8Y5IZcpOFsJP3l34MDBT5hIt7glsDe3p76CtdrsFLBTiEJUA== dependencies: "@cosmjs/amino" "0.28.0-rc1" @@ -143,14 +143,14 @@ "@cosmjs/math@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.28.0-rc1.tgz#a00b800ebeb5658913cd227820d9c2132be1c7cb" + resolved "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.0-rc1.tgz" integrity sha512-GAtOTmXmw59TeZwUO/D6bNDm4Aqq5/Uhq/W8HIG+4nsS20zsd5f6m/e/t+2+bVFxVapK9IkMdfChJW2eM2znXA== dependencies: bn.js "^5.2.0" "@cosmjs/proto-signing@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.28.0-rc1.tgz#db869068c89e31d39788421016b12f080155e46e" + resolved "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.0-rc1.tgz" integrity sha512-EFQXGBNu84O5Qst2tCX4WuPpe6cXRmR0M0aE6WTq34piC/uvgDcZaXuXy+gCdZCVcnqgGQfH7SWrtEyg73uTeg== dependencies: "@cosmjs/amino" "0.28.0-rc1" @@ -162,7 +162,7 @@ "@cosmjs/socket@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.28.0-rc1.tgz#e8a8f90b6919e829603a14e6ef808bd40a7ea179" + resolved "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.28.0-rc1.tgz" integrity sha512-PDVowr34/Am2kn+W39xSjvKYNXfjgLhwQ+aOC8YpDcYv/Re6Q0JVweoSWPcaWmFkTn/p8py3GinvHoTdzFWvWw== dependencies: "@cosmjs/stream" "0.28.0-rc1" @@ -172,7 +172,7 @@ "@cosmjs/stargate@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.28.0-rc1.tgz#a7415dd7e4304ce5f6832eac505c7b5e422135c2" + resolved "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.28.0-rc1.tgz" integrity sha512-l0unFhqjI92whleJar7lyQgEgd9XUYJ1Vnhsht/pAEOpiAXRJRWb4rDxYRyw94yto0ijy6UXOaV0QvWval22cA== dependencies: "@confio/ics23" "^0.6.8" @@ -190,14 +190,14 @@ "@cosmjs/stream@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.28.0-rc1.tgz#5797502dc6692a2ac40d68e4e86fb33995e9de49" + resolved "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.28.0-rc1.tgz" integrity sha512-x7IPmuuLgENJc8U7IXk8L7h7lpj8MvuuXuAu5RQVd1DxAgtaZd3rkY8ye1vwz2VaulLmbrqtZ0ZuputnLsKwww== dependencies: xstream "^11.14.0" "@cosmjs/tendermint-rpc@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.0-rc1.tgz#2dec8eee6318bb47590ad9cadf5eede9edbaabd6" + resolved "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.0-rc1.tgz" integrity sha512-zfzbxsdni1ayjt5yg/Hr80vSoxseuVyg79n3jzphlXK8OrK3pExXY5a2dPot54tJ+De8Tm/3OWA+o1y08k58PA== dependencies: "@cosmjs/crypto" "0.28.0-rc1" @@ -212,9 +212,14 @@ "@cosmjs/utils@0.28.0-rc1": version "0.28.0-rc1" - resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.28.0-rc1.tgz#004e4ce8f66d0830ab9ac7a8532661471df5d6aa" + resolved "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.0-rc1.tgz" integrity sha512-LKGKaXR92LouFe06uOr0/q45k2nUs+8VUy3XNKGRtjXlTPuOLZ1m8tqy1kFYe4bofwdmm2/Qbj1BL6mkCwutGA== +"@discoveryjs/json-ext@^0.5.0": + version "0.5.6" + resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz" + integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== + "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" @@ -275,7 +280,7 @@ "@noble/hashes@^1", "@noble/hashes@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.0.0.tgz" integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== "@nodelib/fs.scandir@2.1.5": @@ -352,7 +357,28 @@ resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@types/json-schema@^7.0.9": +"@types/eslint-scope@^3.7.3": + version "3.7.3" + resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz" + integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.4.1" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz" + integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -386,7 +412,7 @@ "@typescript-eslint/eslint-plugin@^5.11.0": version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz#2809052b85911ced9c54a60dac10e515e9114497" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz" integrity sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ== dependencies: "@typescript-eslint/scope-manager" "5.13.0" @@ -411,7 +437,7 @@ "@typescript-eslint/scope-manager@5.13.0": version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz#cf6aff61ca497cb19f0397eea8444a58f46156b6" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz" integrity sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA== dependencies: "@typescript-eslint/types" "5.13.0" @@ -419,7 +445,7 @@ "@typescript-eslint/type-utils@5.13.0": version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz#b0efd45c85b7bab1125c97b752cab3a86c7b615d" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz" integrity sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg== dependencies: "@typescript-eslint/utils" "5.13.0" @@ -428,12 +454,12 @@ "@typescript-eslint/types@5.13.0": version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.13.0.tgz#da1de4ae905b1b9ff682cab0bed6b2e3be9c04e5" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz" integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== "@typescript-eslint/typescript-estree@5.13.0": version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz#b37c07b748ff030a3e93d87c842714e020b78141" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz" integrity sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA== dependencies: "@typescript-eslint/types" "5.13.0" @@ -446,7 +472,7 @@ "@typescript-eslint/utils@5.13.0": version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.13.0.tgz#2328feca700eb02837298339a2e49c46b41bd0af" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz" integrity sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ== dependencies: "@types/json-schema" "^7.0.9" @@ -458,12 +484,165 @@ "@typescript-eslint/visitor-keys@5.13.0": version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz#f45ff55bcce16403b221ac9240fbeeae4764f0fd" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz" integrity sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g== dependencies: "@typescript-eslint/types" "5.13.0" eslint-visitor-keys "^3.0.0" +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz" + integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== + +"@webpack-cli/info@^1.4.1": + version "1.4.1" + resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz" + integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.6.1": + version "1.6.1" + resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz" + integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" @@ -474,7 +653,17 @@ acorn@^7.4.0: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -ajv@^6.10.0, ajv@^6.12.4: +acorn@^8.4.1, acorn@^8.5.0: + version "8.7.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -520,7 +709,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: @@ -557,7 +746,7 @@ array.prototype.flat@^1.2.5: ast-types@0.14.2: version "0.14.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz" integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== dependencies: tslib "^2.0.1" @@ -576,7 +765,7 @@ axios@^0.21.2: babylon@^6.18.0: version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== balanced-match@^1.0.0: @@ -584,7 +773,7 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.3.0: +base64-js@^1.3.0, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -624,11 +813,37 @@ brorand@^1.1.0: resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browserslist@^4.14.5: + version "4.20.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz" + integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== + dependencies: + caniuse-lite "^1.0.30001313" + electron-to-chromium "^1.4.76" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + dependencies: + node-gyp-build "^4.3.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" @@ -644,9 +859,14 @@ callsites@^3.0.0: camelcase@^5.0.0: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +caniuse-lite@^1.0.30001313: + version "1.0.30001313" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz" + integrity sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q== + chalk@^2.0.0: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -656,23 +876,37 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4, chalk@^4.0.0: +chalk@^4, chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + cliui@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -697,6 +931,21 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^2.0.14: + version "2.0.16" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" @@ -710,7 +959,7 @@ cosmjs-types@^0.4.0: long "^4.0.0" protobufjs "~6.11.2" -cross-spawn@^7.0.2: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -742,7 +991,7 @@ debug@^4.0.1, debug@^4.1.1, debug@^4.3.2: decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= deep-is@^0.1.3: @@ -759,7 +1008,7 @@ define-properties@^1.1.3: diff@^4, diff@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== dir-glob@^3.0.1: @@ -783,6 +1032,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +electron-to-chromium@^1.4.76: + version "1.4.76" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz" + integrity sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA== + elliptic@^6.5.3: version "6.5.4" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" @@ -801,6 +1055,14 @@ emoji-regex@^8.0.0: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +enhanced-resolve@^5.0.0, enhanced-resolve@^5.7.0, enhanced-resolve@^5.9.2: + version "5.9.2" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz" + integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enquirer@^2.3.5: version "2.3.6" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" @@ -808,6 +1070,11 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" +envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" @@ -834,6 +1101,11 @@ es-abstract@^1.19.0, es-abstract@^1.19.1: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" @@ -843,6 +1115,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" @@ -935,7 +1212,7 @@ eslint-plugin-simple-import-sort@^7.0.0: resolved "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz" integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== -eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -1029,7 +1306,7 @@ espree@^7.3.0, espree@^7.3.1: esprima@^4.0.0, esprima@~4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.0: @@ -1061,11 +1338,26 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@^3.3.0: +events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" @@ -1097,6 +1389,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastest-levenshtein@^1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" + integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + fastq@^1.6.0: version "1.13.0" resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" @@ -1125,9 +1422,9 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@^4.1.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -1148,7 +1445,7 @@ flatted@^3.1.0: follow-redirects@^1.14.0: version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz" integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== fs.realpath@^1.0.0: @@ -1168,7 +1465,7 @@ functional-red-black-tree@^1.0.1: get-caller-file@^2.0.1: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: @@ -1180,6 +1477,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" @@ -1195,6 +1497,11 @@ glob-parent@^5.1.2: dependencies: is-glob "^4.0.1" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@^7.1.3: version "7.2.0" resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" @@ -1233,6 +1540,11 @@ globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" +graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.9" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" @@ -1293,6 +1605,16 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^4.0.6: version "4.0.6" resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" @@ -1311,6 +1633,14 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" @@ -1324,7 +1654,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1338,6 +1668,11 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" @@ -1406,6 +1741,13 @@ is-number@^7.0.0: resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" @@ -1419,6 +1761,11 @@ is-shared-array-buffer@^1.0.1: resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" @@ -1445,11 +1792,25 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + isomorphic-ws@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" @@ -1463,6 +1824,11 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" @@ -1485,6 +1851,11 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + ledger-cosmos-js@^2.1.8: version "2.1.8" resolved "https://registry.npmjs.org/ledger-cosmos-js/-/ledger-cosmos-js-2.1.8.tgz" @@ -1515,6 +1886,11 @@ libsodium@^0.7.0: resolved "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz" integrity sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A== +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" @@ -1525,7 +1901,7 @@ locate-path@^2.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" @@ -1554,15 +1930,20 @@ lru-cache@^6.0.0: make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4: +micromatch@^4.0.0, micromatch@^4.0.4: version "4.0.4" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -1570,6 +1951,23 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + +mime-types@^2.1.27: + version "2.1.34" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" @@ -1607,6 +2005,28 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-gyp-build@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" + integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== + +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.12.0" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" @@ -1643,6 +2063,13 @@ once@^1.3.0: dependencies: wrappy "1" +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + optionator@^0.9.1: version "0.9.1" resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" @@ -1664,7 +2091,7 @@ p-limit@^1.1.0: p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -1678,7 +2105,7 @@ p-locate@^2.0.0: p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" @@ -1690,7 +2117,7 @@ p-try@^1.0.0: p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@^2.0.2: @@ -1705,6 +2132,11 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" @@ -1712,7 +2144,7 @@ path-exists@^3.0.0: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: @@ -1720,7 +2152,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -1735,11 +2167,23 @@ path-type@^4.0.0: resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.2.3: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" @@ -1757,6 +2201,11 @@ prettier@^2.5.1: resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz" integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + progress@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" @@ -1810,7 +2259,14 @@ queue-microtask@^1.2.2: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -readable-stream@^3.6.0: +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -1826,7 +2282,7 @@ readonly-date@^1.0.0: recast@^0.20: version "0.20.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" + resolved "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz" integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== dependencies: ast-types "0.14.2" @@ -1834,6 +2290,13 @@ recast@^0.20: source-map "~0.6.1" tslib "^2.0.1" +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" @@ -1846,7 +2309,7 @@ regexpp@^3.0.0, regexpp@^3.1.0, regexpp@^3.2.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-from-string@^2.0.2: @@ -1856,15 +2319,27 @@ require-from-string@^2.0.2: require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.10.1, resolve@^1.20.0: +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve@^1.10.1, resolve@^1.20.0, resolve@^1.9.0: version "1.22.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== @@ -1907,28 +2382,51 @@ rxjs@6: dependencies: tslib "^1.9.0" -safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.1.0, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + semver@^6.1.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -1950,6 +2448,11 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" @@ -1964,27 +2467,40 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -source-map-support@^0.5.17: +source-map-support@^0.5.17, source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2026,6 +2542,11 @@ strip-bom@^3.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" @@ -2045,6 +2566,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" @@ -2066,6 +2594,32 @@ table@^6.0.9: string-width "^4.2.3" strip-ansi "^6.0.1" +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.1.3: + version "5.3.1" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz" + integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== + dependencies: + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + terser "^5.7.2" + +terser@^5.7.2: + version "5.12.0" + resolved "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz" + integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== + dependencies: + acorn "^8.5.0" + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" @@ -2078,9 +2632,19 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +ts-loader@^9.2.7: + version "9.2.7" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.7.tgz#948654099ca96992b62ec47bd9cee5632006e101" + integrity sha512-Fxh44mKli9QezgbdCXkEJWxnedQ0ead7DXTH+lfXEPedu+Y9EtMJ2aQ9G3Dj1j7Q612E8931rww8NDZha4Tibg== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + ts-node@^8: version "8.10.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz" integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== dependencies: arg "^4.1.0" @@ -2089,6 +2653,15 @@ ts-node@^8: source-map-support "^0.5.17" yn "3.1.1" +tsconfig-paths-webpack-plugin@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.2.tgz#01aafff59130c04a8c4ebc96a3045c43c376449a" + integrity sha512-EhnfjHbzm5IYI9YPNVIxx1moxMI4bpHD2e0zTXeDNQcwjjRaGepP7IhTHJkyDBG0CAOoxRfe7jCG630Ou+C6Pw== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.7.0" + tsconfig-paths "^3.9.0" + tsconfig-paths@^3.12.0: version "3.12.0" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz" @@ -2099,6 +2672,16 @@ tsconfig-paths@^3.12.0: minimist "^1.2.0" strip-bom "^3.0.0" +tsconfig-paths@^3.9.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz#f3e9b8f6876698581d94470c03c95b3a48c0e3d7" + integrity sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" @@ -2106,7 +2689,7 @@ tslib@^1.8.1, tslib@^1.9.0: tslib@^2.0.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== tsutils@^3.21.0: @@ -2135,7 +2718,7 @@ typescript@^4.5.5: typescript@~4.4: version "4.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz" integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== unbox-primitive@^1.0.1: @@ -2155,6 +2738,13 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +utf-8-validate@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.8.tgz#4a735a61661dbb1c59a0868c397d2fe263f14e58" + integrity sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA== + dependencies: + node-gyp-build "^4.3.0" + util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" @@ -2165,6 +2755,75 @@ v8-compile-cache@^2.0.3: resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +watchpack@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz" + integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webpack-cli@^4.9.2: + version "4.9.2" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz" + integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.1.1" + "@webpack-cli/info" "^1.4.1" + "@webpack-cli/serve" "^1.6.1" + colorette "^2.0.14" + commander "^7.0.0" + execa "^5.0.0" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-merge@^5.7.3: + version "5.8.0" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.70.0: + version "5.70.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz" + integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.9.2" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.3.1" + webpack-sources "^3.2.3" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" @@ -2178,7 +2837,7 @@ which-boxed-primitive@^1.0.2: which-module@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^2.0.1: @@ -2188,6 +2847,11 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" @@ -2195,7 +2859,7 @@ word-wrap@^1.2.3: wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -2222,7 +2886,7 @@ xstream@^11.14.0: y18n@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== yallist@^4.0.0: @@ -2232,7 +2896,7 @@ yallist@^4.0.0: yargs-parser@^18.1.2: version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" @@ -2240,7 +2904,7 @@ yargs-parser@^18.1.2: yargs@^15.3.1: version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" @@ -2257,5 +2921,5 @@ yargs@^15.3.1: yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==